:root{--gold:#c6a663;--gold-bright:#efdbab;--bronze:#8f7040;--oxblood:#4a1d1b;--ink:#2e2319;--text:#eee1c4;--muted:#bca987;--line:#a88a4d66;--paper:#e6d1a5;--leather:#211a14;--serif:"Songti SC","Noto Serif CJK SC","STSong","SimSun",Georgia,serif;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-family:var(--serif);color:var(--text);font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#16120f}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{opacity:.5;cursor:not-allowed}button,a{-webkit-user-select:none;user-select:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold-bright);outline-offset:4px}button:hover{color:#fff1ca}[hidden]{display:none!important}a{color:inherit}.ui-icon{display:block;width:24px;height:24px;flex-shrink:0}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
#world,.scene-poster{display:block;position:fixed;inset:0;width:100%;height:100%}#world{touch-action:none;opacity:0;transition:opacity 1s}.scene-ready #world{opacity:1}.scene-poster{background:#211a14 url('/assets/loading.webp') center/cover}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(0deg,#100c0877,transparent 24%,transparent 83%,#100c0866)}.playing .vignette{background:linear-gradient(0deg,#0b080899,transparent 21%,transparent 84%,#100c0877)}
/* A cloth standard is the main menu, with the original world left visible. */
#landing{position:fixed;inset:0 auto 0 0;width:clamp(370px,35.5vw,570px);background:#371917 url('/assets/ui-banner.webp') center/100% 100% no-repeat;box-shadow:12px 0 50px #0008;z-index:3;text-align:center}
.banner-content{position:absolute;top:27.5%;left:11.5%;right:11.5%}#landing h1{font-family:var(--serif);font-weight:600;font-size:clamp(48px,5.4vw,84px);line-height:1.16;letter-spacing:3px;margin:0;white-space:nowrap;color:#f1e3be;text-shadow:0 2px 1px #150700,0 0 18px #e1b55a12}.title-flourish{display:flex;align-items:center;justify-content:center;gap:9px;margin:20px 0 17px;color:var(--gold)}.title-flourish i{height:1px;flex:1;background:linear-gradient(90deg,transparent,#ba955a)}.title-flourish i:last-child{transform:rotate(180deg)}.title-flourish .ui-icon{width:17px;height:17px}.landing-sub{font-size:clamp(14px,1.12vw,18px);line-height:1.85;letter-spacing:1px;margin:0;color:#e7d6b0}.landing-menu{display:flex;flex-direction:column;margin-top:32px;gap:10px}.gold-button,.outline-button,.metal-button{position:relative;border:1px solid #bb985c;box-shadow:inset 0 0 0 2px #231a11,inset 0 0 0 3px #ae864944,0 3px 7px #0005;background-color:var(--leather);color:var(--text);text-shadow:0 1px 1px #0009;border-radius:3px}.gold-button:before,.gold-button:after,.metal-button:before,.metal-button:after{content:'';position:absolute;width:4px;height:4px;border:1px solid #ddbf7e;border-radius:50%;top:5px;background:#75603e;box-shadow:0 0 2px #000}.gold-button:before,.metal-button:before{left:6px}.gold-button:after,.metal-button:after{right:6px}.gold-button{background-image:linear-gradient(#631f22c9,#401915de),url('/assets/ui-banner.webp');background-size:auto,500% 500%;background-position:center;border-color:#bc9553;padding:14px 24px;min-height:48px;font-size:16px;font-weight:500;letter-spacing:1px;transition:filter .2s,transform .2s}.gold-button:hover,.outline-button:hover,.metal-button:hover{filter:brightness(1.16);color:#fff0c9}.gold-button:active,.metal-button:active{transform:translateY(1px)}#enter{display:flex;align-items:center;justify-content:center;gap:20px;width:100%;min-height:65px;font-size:clamp(21px,1.7vw,27px);letter-spacing:4px;border-width:2px;border-radius:8px 2px 8px 2px;box-shadow:inset 0 0 0 2px #2e180e,inset 0 0 0 3px #d0aa68,0 7px 13px #19080688}#enter .ui-icon{width:18px}.menu-link{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;min-height:54px;font-size:clamp(18px,1.5vw,23px);letter-spacing:3px;color:#dcc28d}.menu-link:after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,#bd945755,transparent)}.menu-link .ui-icon{width:26px;height:26px}.landing-note{position:absolute;bottom:6%;left:12%;right:12%;font-size:12px;letter-spacing:2px;color:#c7a56d;margin:0;padding-top:15px;border-top:1px solid #ad89523b}
#masthead{position:fixed;z-index:15;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:26px 34px;pointer-events:none}.brand{display:none;align-items:center;gap:10px;text-decoration:none;letter-spacing:2px;font-size:20px;text-shadow:0 2px 4px #000}.brand img{width:37px;height:46px}.header-actions{display:flex;align-items:center;gap:13px;margin-left:auto;pointer-events:auto}.metal-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:9px 20px;font-size:13px;letter-spacing:1px;background:linear-gradient(180deg,#30251be8,#17130eeb)}.metal-button .ui-icon{width:18px;height:18px}.header-settings{display:none}.connection{display:none;gap:7px;align-items:center;font-family:var(--sans);font-size:10px;letter-spacing:.3px;color:#d6c7aa}.connection i{width:5px;height:5px;border-radius:50%;background:#9c7441}.connection.online i{background:#b6b18a}
#scene-caption{position:fixed;z-index:2;right:34px;bottom:40px;display:flex;gap:15px;align-items:center;color:#392718;background:#e6cba1 url('/assets/ui-parchment.webp') center/100% 100%;padding:15px 31px 17px;filter:drop-shadow(0 3px 9px #0005)}#scene-caption h2{font-size:22px;letter-spacing:3px;font-weight:600;margin:0}#scene-caption .ui-icon{width:24px;height:24px}#landing-footer{position:fixed;z-index:5;bottom:12px;right:36px}#landing-footer button{font-size:10px;letter-spacing:1px;color:#dfceb0;text-shadow:0 1px 3px #000}
/* Cinematic illustrated loading: art is independent of truthful process progress. */
#loading{position:fixed;inset:0;z-index:50;background:#100d0b;opacity:1;transition:opacity .8s ease;isolation:isolate}#loading.leaving{opacity:0;pointer-events:none}.loading-art,.loading-slide,.loading-shade{position:absolute;inset:0}.loading-art{overflow:hidden}.loading-slide{opacity:0;transition:opacity 1.4s ease}.loading-slide.active{opacity:1}.loading-slide img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.04);filter:saturate(.9);animation:loading-drift 13s ease-in-out infinite alternate;will-change:transform}.loading-slide:nth-child(2) img{animation-direction:alternate-reverse;transform-origin:70% 45%}.loading-slide:not(.active) img{animation-play-state:paused}.loading-shade{background:linear-gradient(0deg,#100b08 0%,#100b08da 9%,#100b08aa 23%,transparent 57%),linear-gradient(90deg,#110c0866,transparent 60%);pointer-events:none}.loading-brand{position:absolute;top:34px;left:42px;display:flex;gap:12px;align-items:center;font:22px var(--serif);letter-spacing:3px;text-shadow:0 2px 5px #000}.loading-brand img{width:38px;height:48px}.loading-cancel{position:absolute;right:42px;top:45px;font:12px var(--sans);padding:8px 0;border-bottom:1px solid #d4b77870;color:#e7d5b3}.loading-content{position:absolute;left:7%;bottom:21%;width:min(600px,60%);color:#f3e6cf}.loading-chapter{display:flex;align-items:center;gap:17px;color:#d5b77d;font-size:13px;letter-spacing:4px}.roman{font:28px Georgia;border-right:1px solid #ccb17a88;padding-right:18px}.loading-chapters{display:flex;gap:6px;margin-left:3px}.loading-chapters i{width:18px;height:2px;background:#9b896950}.loading-chapters i.active{background:#e5c78f}.loading-content h2{font:500 clamp(38px,4.5vw,64px)/1.25 var(--serif);letter-spacing:5px;margin:20px 0 16px;text-shadow:0 2px 5px #0008}.loading-content>p{max-width:470px;font:13px/2 var(--sans);color:#e1d3b9;margin:0;text-shadow:0 1px 3px #000}.loading-footer{position:absolute;left:7%;right:7%;bottom:5.7%}.loading-meta{display:flex;justify-content:space-between;gap:20px;align-items:baseline;font:12px var(--sans);color:#ddd0b4;letter-spacing:.5px}.loading-meta strong{font:20px Georgia;color:#ead6ad;font-variant-numeric:tabular-nums}.loading-track{height:3px;background:#e1c18e30;margin-top:12px;overflow:hidden}.loading-track>div{width:0;height:100%;background:#d2b074;transition:width .25s;box-shadow:0 0 14px #e5b96799}.loading-tip{font:11px/1.8 var(--sans);color:#96876e;margin:17px 0 0}.loading-game #masthead,.loading-game #hud{pointer-events:none}@keyframes loading-drift{from{transform:scale(1.04) translate3d(-.7%,0,0)}to{transform:scale(1.12) translate3d(.8%,-1%,0)}}
/* The gameplay HUD is a small set of leather and engraved-metal objects. */
.glass{background:linear-gradient(160deg,#362a1edf,#1a1510f5);border:1px solid #a28553;box-shadow:inset 0 0 0 2px #15100b,inset 0 0 0 3px #a285532f,0 5px 15px #0005;border-radius:3px}.glass:before,.glass:after{content:'';position:absolute;top:4px;width:4px;height:4px;background:#9d7e4b;border:1px solid #d1b477;border-radius:50%;pointer-events:none}.glass:before{left:4px}.glass:after{right:4px}.playing #masthead{padding:18px 24px}.playing .brand{display:flex;pointer-events:auto;font-size:18px}.playing .connection{display:flex}.playing .header-settings{display:flex;min-width:34px;padding:8px}.playing .header-actions{gap:9px}.playing .metal-button{min-height:33px;font-size:11px;padding:7px 14px}.playing .brand img{width:30px;height:38px}.compass{position:fixed;top:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;color:#d6c09a;font:11px Georgia;text-shadow:0 1px 4px #000}.compass i{width:62px;height:9px;background:repeating-linear-gradient(90deg,#b99b5c77 0 1px,transparent 1px 15px);position:relative}.compass i:before{content:'';position:absolute;left:0;right:0;top:4px;height:1px;background:#c5a56299}.compass b{font-weight:400;font-size:15px;color:#f0d09a}.realm-label{position:fixed;top:64px;left:26px;color:#ddc8a1;font:10px Georgia,var(--serif);letter-spacing:2px;text-shadow:0 2px 4px #000}.objective{position:fixed;top:90px;right:24px;width:244px;padding:15px 17px;display:flex;gap:12px;align-items:flex-start}.objective-icon{color:#cbae70;margin-top:3px}.objective-icon .ui-icon{width:29px;height:29px}.objective h3{font:500 19px/1.35 var(--serif);letter-spacing:1px;margin:0 0 7px}.objective p{display:none}.objective .text-button{font:10px var(--sans);padding:5px 0 0;color:#b69d73}#objective-progress{font:12px/1.5 var(--serif);color:#d8bd87}#objective-progress:empty{display:none}
.vitals{position:fixed;left:22px;bottom:27px;width:294px;display:flex;align-items:center;gap:15px;padding:14px 16px}.portrait{width:46px;height:57px;display:grid;place-items:center;flex-shrink:0}.portrait img{width:43px;height:55px;filter:drop-shadow(0 2px 2px #000)}.vitals-content{min-width:0;flex:1}.vital-identity{display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:10px}.vital-identity b{font:500 14px var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vital-identity span{font:10px var(--serif);color:#d2b880;white-space:nowrap}.vital-row{display:flex;gap:8px;align-items:center;margin-top:6px}.vital-row>span{font:10px Georgia;color:#d9c6a4;min-width:36px;text-align:right}.health-track,.stamina-track{height:8px;background:#080503aa;box-shadow:0 0 0 1px #c0a36b38,inset 0 1px 2px #000;border-radius:5px;overflow:hidden;flex:1}.health-track i,.stamina-track i{display:block;height:100%;width:100%;transition:width .15s;border-top:1px solid #ffffff20;border-radius:5px}.health-track i{background:linear-gradient(#a64b3b,#75291f)}.stamina-track i{background:linear-gradient(#c19b43,#91662b)}
.hotbar{position:fixed;right:24px;bottom:25px;display:flex;gap:13px;align-items:flex-end}.hotbar button{position:relative;display:flex;flex-direction:column;gap:8px;align-items:center;padding:0;font:13px var(--serif);min-width:47px;color:#e1c691;text-shadow:0 2px 4px #000}.medallion{width:48px;height:48px;border-radius:50%;background:radial-gradient(ellipse at 30% 20%,#53422c,#211a12 73%);border:1px solid #d1aa62;box-shadow:inset 0 0 0 2px #21180d,inset 0 0 0 3px #b99a5744,0 3px 8px #0008;transition:filter .18s,transform .18s}.medallion .ui-icon{width:25px;height:25px;filter:drop-shadow(0 1px 1px #000)}.hotbar button:hover .medallion{filter:brightness(1.25);transform:translateY(-2px)}.hotbar kbd{position:absolute;right:-3px;top:31px;font-size:9px;min-width:16px;padding:1px 3px;background:#292015;color:#cbb788}.hotbar button[aria-pressed=true] .medallion{background:#593324;border-color:#f3d59e}.movement-hint{position:fixed;bottom:8px;right:24px;font:9px var(--sans);color:#c7b799;opacity:0;transition:opacity .25s;pointer-events:none}.hotbar:hover+.movement-hint{opacity:1}kbd{font:10px Georgia,var(--serif);border:1px solid #a88a5688;padding:3px 5px;color:#dec899;display:inline-grid;place-items:center;min-width:20px;border-radius:2px;background:#21180f80}
.chat{position:fixed;left:22px;bottom:135px;width:294px;color:#decdb0}.chat-heading{display:flex;gap:10px;align-items:center;min-width:185px;min-height:32px;padding:6px 12px;font:12px var(--serif);color:#d6b679;background:#251c14e8;border:1px solid #8d713e;box-shadow:inset 0 0 0 2px #17100966,0 3px 8px #0005;border-radius:3px}.chat-heading .ui-icon{width:15px;height:15px}.chat-heading>span:last-child{margin-left:auto;transform:rotate(180deg)}.chat.collapsed .chat-heading>span:last-child{transform:none}#chat-unread{font:9px var(--sans);color:#e7c67b}.chat.collapsed #chat-body{display:none}#chat-body{padding:11px 12px 9px;background:#221910ed;border:1px solid #8d713e;border-top:0;box-shadow:0 5px 14px #0005}#chat-messages{max-height:140px;overflow:auto;font:11px/1.8 var(--sans);scrollbar-width:thin}#chat-messages p{margin:3px 0;overflow-wrap:anywhere;color:#e0d6bd}#chat-messages b{font-weight:500;color:#d5b379;margin-right:7px}#chat-form{margin-top:9px;display:flex;align-items:center;gap:6px;border-top:1px solid #af906736;padding-top:7px}#chat-form input{border:0;background:#0002;width:100%;min-width:0;padding:8px 5px;color:#eee1c4;font:10px var(--sans)}#chat-form select{font-size:10px;border:0;background:#291e13;color:#d7b87e;max-width:54px}#chat-form button{padding:3px;color:var(--gold)}#chat-form .ui-icon{width:15px;height:15px}#interaction{position:fixed;left:50%;bottom:112px;transform:translateX(-50%);display:flex;align-items:center;gap:11px;padding:8px 14px;border:1px solid #ae8d4a88;background:#21170fdc;box-shadow:0 2px 10px #0005;font:12px var(--serif);color:#ecd7ae;border-radius:3px}
#labels{position:fixed;inset:0;pointer-events:none}.nameplate{position:absolute;transform:translate(-50%,-100%);font:11px var(--serif);text-shadow:0 1px 4px #000,0 2px 2px #000;color:#f1e3ca;white-space:nowrap;text-align:center}.nameplate.npc{color:#e9ce91}.nameplate.enemy{color:#e2a288}.nameplate i{display:block;height:3px;width:45px;background:#993e2d;border:1px solid #28110b;margin:4px auto 0}.nameplate .marker{display:block;font:27px Georgia;color:#e0bd77;margin-bottom:7px}
/* Every secondary surface belongs to the same parchment folio. */
#modal-backdrop{position:fixed;inset:0;z-index:30;background:#100c0877;display:grid;place-items:center;padding:22px}.modal{position:relative;width:620px;max-width:calc(100vw - 32px);max-height:min(88dvh,800px);min-height:490px;background:#e6d1a5 url('/assets/ui-parchment.webp') center/100% 100%;color:var(--ink);display:flex;flex-direction:column;padding:42px 42px 37px 49px;box-shadow:0 15px 55px #0009;border-radius:5px;filter:drop-shadow(0 0 2px #241508)}.modal-top{position:relative;display:flex;align-items:center;justify-content:center;padding:5px 27px 22px;border-bottom:1px solid #7c5a3c55;margin-bottom:9px;flex-shrink:0}.modal-top:after{content:'◆';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);font-size:10px;color:#76522a;background:#e5cea4;padding:0 8px}.modal h2{font:600 31px/1.2 var(--serif);letter-spacing:3px;text-align:center;margin:0;color:#312316;text-shadow:0 1px #fff8}.modal-top .icon-button{position:absolute;right:-18px;top:-17px;color:#513b25}.icon-button{display:grid;place-items:center;width:33px;height:33px;padding:5px}.icon-button .ui-icon{width:21px;height:21px}.icon-button:hover{color:#7a2721}#modal-content{overflow-y:auto;overflow-x:hidden;min-height:0;padding:12px 2px 4px;scrollbar-width:thin;scrollbar-color:#9a7744 transparent}.modal h3{font:600 21px/1.35 var(--serif);letter-spacing:.5px;color:#382718}.modal p{font:13px/1.85 var(--sans);color:#5b4731;overflow-wrap:anywhere}.modal label{display:block;font:13px var(--serif);color:#644721;margin:18px 0 9px}.modal input,.modal select{width:100%;background:#8d693b16;border:1px solid #9d7b4f88;box-shadow:inset 0 2px 5px #81552113;padding:11px 12px;color:#35261a;border-radius:2px;font:13px var(--sans)}.modal input::placeholder{color:#967b5c}.modal input:focus-visible,.modal select:focus-visible{outline-color:#885a30}.modal select option{background:#ecdbb7;color:#38281a}.outline-button{padding:10px 15px;font:13px var(--serif);background:linear-gradient(#573124,#321b14);color:#f0dfb7;border-color:#98723e}.modal .gold-button{font-size:14px;min-height:43px;margin-top:13px;padding:11px 20px}.modal .text-button{color:#7d4b27}.text-button{padding:10px 0;font:12px var(--serif);letter-spacing:.5px;text-align:left;color:#d8c099}.modal .text-button:hover,.protocol-link:hover{color:#a33526;text-decoration:underline}.eyebrow{font:12px var(--serif);letter-spacing:2px;color:#7b5b31}.quest-card{position:relative;padding:20px 0 22px 54px;border-bottom:1px solid #815f3b40;min-height:140px}.quest-card:first-child{padding-top:12px}.quest-emblem{position:absolute;left:0;top:24px;color:#5b4027}.quest-emblem .ui-icon{width:35px;height:35px;stroke-width:1.7}.quest-card h3{margin:0 0 7px}.quest-card p{margin:5px 0 13px;font-size:12px;line-height:1.75}.quest-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font:13px var(--serif);color:#91642e}.quest-meta button{min-width:104px;padding:9px 13px}.rule-note{font:11px/1.8 var(--sans)!important;color:#826947!important;border-left:2px solid #9d733d60;padding-left:12px;margin-top:20px}.party-code{font:36px Georgia;letter-spacing:7px;color:#773421;margin:14px 0 23px}.member{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font:14px var(--serif);border-bottom:1px solid #8c6c453b}.member span{font-size:11px;color:#927244}.actions-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:13px}.actions-row>input{flex:1;min-width:120px;width:calc(100% - 110px)}.stats-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:25px 0}.stat{border-left:2px solid #98753c55;padding-left:13px;min-width:0}.stat span{display:block;color:#84603b;font:11px var(--sans);margin-bottom:9px}.stat strong{font:22px Georgia,var(--serif);color:#6d3c25;overflow-wrap:anywhere}.wallet-address{font:12px/1.7 monospace;color:#6c4b2b;overflow-wrap:anywhere}.receipt-row{padding:15px 0;border-bottom:1px solid #95744b3b;display:flex;align-items:center;justify-content:space-between;gap:12px}.receipt-row b{font:500 15px var(--serif)}.receipt-row span{display:block;font:10px var(--sans);color:#87704b;margin-top:6px}.receipt-row button{font-size:12px;padding:8px 12px}.protocol-link{font:11px/1.6 var(--sans);color:#80603c;text-underline-offset:4px;display:inline-block;margin-right:12px}.controls-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:20px 0}.control{font:12px var(--sans);display:flex;gap:9px;align-items:center;color:#5a4328}.control kbd{min-width:39px;font-size:11px;color:#765729;border-color:#9a7c5066;background:#b08b521c}.loadouts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.loadout{border:1px solid #9b795749;padding:17px 5px;font:14px var(--serif);text-align:center;color:#8c7653;background:#a4793820;border-radius:2px}.loadout.selected{border-color:#804b26;background:#8d4b2622;box-shadow:inset 0 0 0 2px #eed4a9,inset 0 0 0 3px #916b4188;color:#683519}.loadout .weapon-icon{display:flex;justify-content:center;margin-bottom:12px}.loadout .ui-icon{width:34px;height:34px}.modal .loadout:hover{color:#6a3626}#map-canvas{display:block;width:100%;height:auto;aspect-ratio:1;border:2px solid #78583399;box-shadow:0 2px 7px #59341633;background:#a99167;filter:sepia(.28)}
#toasts{position:fixed;left:50%;top:82px;transform:translateX(-50%);z-index:60;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(460px,90%)}.toast{padding:11px 22px;background:#281c12f0;border:1px solid #b49559;box-shadow:inset 0 0 0 2px #100b0755,0 4px 15px #0005;color:#e6d2a8;font:13px/1.5 var(--serif);text-align:center;animation:toast-in .3s ease;border-radius:3px}.toast.reward{color:#ffdea0;padding:17px 25px;border-color:#e2bf72}.toast.error{border-color:#a3553d;color:#edb597}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}}#fatal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);padding:35px;z-index:70;width:450px;max-width:90%}#fatal h2{font:26px var(--serif)}#fatal p{font:13px/1.8 var(--sans);overflow-wrap:anywhere}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#damage-flash{position:fixed;inset:0;pointer-events:none;z-index:10;box-shadow:inset 0 0 120px #a936354d;opacity:0;transition:opacity .15s}#mobile-controls{display:none}
html[lang=en] #landing h1{font-size:clamp(45px,4.5vw,68px);letter-spacing:0;line-height:1.04;white-space:normal}html[lang=en] .landing-sub{font-size:15px;letter-spacing:0;line-height:1.6}html[lang=en] #enter{font-size:21px;letter-spacing:.5px}html[lang=en] .menu-link{font-size:18px;letter-spacing:.5px}html[lang=en] .brand{letter-spacing:0;font-size:17px}html[lang=en] .hotbar button{font-size:11px}html[lang=en] .modal h2{font-size:29px;letter-spacing:1px}html[lang=en] .quest-card h3{font-size:19px}html[lang=en] .objective h3{font-size:17px;letter-spacing:0}
@media(max-width:1100px){#landing{width:390px}.banner-content{left:11%;right:11%;top:27%}#landing h1{font-size:56px}.landing-sub{font-size:14px}.landing-menu{margin-top:24px}#enter{min-height:57px;font-size:24px}.menu-link{min-height:50px;font-size:20px}.playing .brand span{font-size:16px}.compass{display:none}.objective{width:212px}.hotbar{gap:9px;right:21px}.medallion{width:44px;height:44px}.vitals{width:265px}.vital-row>span{min-width:34px}.chat{width:265px}.loading-content{width:65%}}
@media(max-width:680px){#landing{width:min(430px,100%);box-shadow:8px 0 35px #0008}.banner-content{top:28%;left:12%;right:12%}#landing h1{font-size:clamp(44px,12vw,54px)}.title-flourish{margin:19px 0 16px}.landing-sub{font-size:14px;line-height:1.8}.landing-menu{margin-top:24px;gap:12px}.menu-link{min-height:50px;font-size:20px}.landing-note{bottom:6%;font-size:11px;letter-spacing:1px}#masthead{padding:17px 19px}.header-actions{gap:8px}#wallet{font-size:10px;padding:8px 13px}#wallet .ui-icon{width:15px}#language{font-size:11px;padding:8px 14px}.metal-button{min-height:34px}.playing .header-settings{display:flex;min-width:29px;min-height:29px;padding:5px}.playing .header-settings .ui-icon{width:16px;height:16px}#scene-caption{display:none}#landing-footer{right:22px;bottom:14px}#landing-footer button{font-size:9px}.playing #masthead{padding:13px 15px}.playing .brand{gap:5px}.playing .brand img{width:23px;height:30px}.playing .brand span{font-size:12px}.playing .header-actions{gap:6px}.playing .connection{display:none}.playing #wallet{font-size:9px;padding:7px 11px;min-height:29px}.playing #wallet [data-icon]{display:none}.playing #language{min-height:29px;padding:7px 11px;font-size:10px}.realm-label{left:17px;top:48px;font-size:8px;letter-spacing:1px}.objective{top:75px;right:13px;width:185px;padding:11px 12px;gap:8px}.objective h3{font-size:16px;margin-bottom:5px}.objective-icon .ui-icon{width:22px;height:22px}.objective .text-button{font-size:9px}#objective-progress{font-size:11px}.vitals{left:14px;bottom:197px;width:213px;padding:10px;gap:9px}.portrait{width:30px;height:43px}.portrait img{width:30px;height:40px}.vital-identity{margin-bottom:7px}.vital-identity b{font-size:11px}.vital-identity span{font-size:9px}.vital-row{margin-top:5px;gap:6px}.vital-row>span{font-size:9px;min-width:32px}.health-track,.stamina-track{height:6px}.chat{left:14px;bottom:276px;width:235px}.chat-heading{font-size:11px;min-width:151px;min-height:30px}#chat-messages{max-height:110px;font-size:10px}.hotbar{left:15px;right:15px;bottom:16px;justify-content:space-between;gap:3px}.hotbar button{min-width:40px;font-size:10px;gap:6px}.medallion{width:43px;height:43px}.medallion .ui-icon{width:23px;height:23px}.hotbar kbd{display:none}.movement-hint{display:none}#interaction{bottom:auto;top:40%;font-size:11px;white-space:nowrap;padding:7px 11px}.modal{width:100%;max-width:calc(100vw - 20px);max-height:calc(100dvh - 26px);min-height:420px;padding:43px 24px 26px 31px}#modal-backdrop{padding:13px 10px}.modal-top{padding:0 6px 17px 57px;margin-bottom:25px}.modal h2{font-size:25px;letter-spacing:2px}.modal-top .icon-button{right:-14px;top:-23px}.modal p{font-size:12px}.quest-card{padding:18px 0 18px 37px;min-height:135px}.quest-emblem{top:21px}.quest-emblem .ui-icon{width:26px;height:26px}.quest-card h3{font-size:18px}.quest-card p{font-size:11px;line-height:1.8;margin-bottom:10px}.quest-meta{font-size:11px;gap:7px}.quest-meta button{font-size:11px;min-width:81px;padding:8px 10px}.controls-grid{gap:12px 7px}.control{font-size:11px;gap:6px}.stats-row{gap:18px}.stat strong{font-size:20px}.party-code{font-size:30px}.loadout{font-size:12px}.rule-note{font-size:10px!important}.loading-brand{left:22px;top:22px;font-size:18px;letter-spacing:2px}.loading-brand img{width:29px;height:36px}.loading-cancel{top:30px;right:22px;font-size:10px}.loading-slide img{object-position:68% center}.loading-content{left:7%;width:85%;bottom:24%}.loading-content h2{font-size:37px;letter-spacing:3px;margin:16px 0 12px}.loading-content>p{font-size:12px;line-height:1.9;max-width:290px}.loading-chapter{font-size:11px;letter-spacing:2px;gap:11px}.roman{font-size:23px;padding-right:11px}.loading-footer{bottom:5%;left:7%;right:7%}.loading-meta{font-size:10px}.loading-tip{font-size:10px;line-height:1.8;max-width:300px}.loading-shade{background:linear-gradient(0deg,#100b08 0%,#100b08eb 15%,#100b0866 56%,transparent 78%)}#toasts{top:65px}.toast{font-size:11px;padding:9px 17px}html[lang=en] #landing h1{font-size:51px;line-height:1.06}html[lang=en] .banner-content{top:27%}html[lang=en] .landing-sub{font-size:14px}html[lang=en] .brand span{font-size:11px}html[lang=en] .hotbar button{font-size:8px}html[lang=en] .modal h2{font-size:25px}html[lang=en] .quest-card h3{font-size:18px}html[lang=en] .objective h3{font-size:14px}html[lang=en] .objective{width:174px}}
@media(pointer:coarse),(max-width:680px){#mobile-controls{display:block}#joystick{position:fixed;left:28px;bottom:95px;width:91px;height:91px;border-radius:50%;border:1px solid #c3a06699;background:radial-gradient(#55452b33,#22190d77);box-shadow:inset 0 0 0 6px #20160933,0 2px 10px #0003;touch-action:none;z-index:17}#joystick i{position:absolute;left:28px;top:28px;width:33px;height:33px;background:radial-gradient(#bc9a58,#5d4328);border:1px solid #d5b372;box-shadow:0 3px 6px #0007;border-radius:50%}.touch-actions{position:fixed;right:23px;bottom:91px;display:grid;grid-template-columns:43px 55px;gap:8px;align-items:end;z-index:17}.touch-actions button{display:grid;place-items:center;border:1px solid #b5975b;border-radius:50%;width:43px;height:43px;background:radial-gradient(at 30% 10%,#51412ee0,#23190eef);box-shadow:inset 0 0 0 2px #22190b,0 3px 6px #0006;color:#e0c17f;touch-action:none}.touch-actions .ui-icon{width:20px;height:20px}#touch-attack{grid-column:2;grid-row:1/span 2;width:56px;height:56px}#touch-attack .ui-icon{width:25px;height:25px}#touch-block{grid-column:2;grid-row:3;width:43px;height:43px;justify-self:center}.touch-actions button:active{background:#744829}.movement-hint{display:none}}
@media(max-height:620px) and (orientation:landscape){#landing{width:35%;min-width:300px}.banner-content{top:26%;left:10%;right:10%}#landing h1{font-size:43px}.title-flourish{margin:10px 0}.landing-sub{font-size:11px}.landing-menu{margin-top:15px;gap:3px}#enter{min-height:45px;font-size:20px;padding:9px}.menu-link{min-height:38px;font-size:16px}.landing-note{bottom:4%;font-size:10px}.modal{max-height:94dvh;min-height:0;padding-top:31px}.modal h2{font-size:25px}.modal-top{padding-bottom:13px}.vitals{bottom:18px;width:230px;padding:10px}.chat{bottom:105px}.hotbar{bottom:19px}.medallion{width:39px;height:39px}.objective{top:74px;width:190px}.objective h3{font-size:16px}.loading-content{bottom:27%}.loading-content h2{font-size:36px;margin:12px 0}.loading-content>p{font-size:11px}.loading-footer{bottom:5%}.loading-tip{margin-top:9px;font-size:9px}.loading-brand{top:18px}.loading-cancel{top:27px}html[lang=en] #landing h1{font-size:40px}html[lang=en] .landing-sub{font-size:11px}html[lang=en] .menu-link{font-size:15px}html[lang=en] #enter{font-size:17px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.loading-slide img{transform:none!important}}
body.capture>*:not(canvas){display:none!important}body.capture #world{opacity:1!important}
/* Royal muster: live source-world formation and a parchment character ledger. */
.choosing-character #masthead{visibility:hidden}.choosing-character #labels,.choosing-character .movement-hint{display:none}#roster{position:fixed;inset:0;z-index:24;pointer-events:none;background:linear-gradient(90deg,#17110cbd,transparent 38%),linear-gradient(0deg,#100c08e8,transparent 39%)}#roster button,#roster input,#roster-list{pointer-events:auto}.roster-heading{position:absolute;top:37px;left:42px;max-width:550px;text-shadow:0 2px 5px #000}.roster-heading .eyebrow{color:#d2b376;letter-spacing:4px;font-size:11px}.roster-heading h2{font:500 clamp(28px,2.7vw,43px)/1.4 var(--serif);letter-spacing:3px;margin:10px 0}.roster-heading p{font:12px/1.8 var(--sans);color:#e2d2b2;margin:0}#roster-back{position:absolute;right:34px;top:30px;min-width:75px}.roster-scroll{position:absolute;top:26%;left:39px;width:291px;padding:31px 26px 28px 31px;background:url('/assets/ui-parchment.webp') center/100% 100%;filter:drop-shadow(0 8px 14px #0005);color:#382712;pointer-events:auto}#roster-count{display:block;margin-left:72px;font:11px Georgia;letter-spacing:3px;color:#80613b}.roster-scroll h3{font:500 29px/1.3 var(--serif);letter-spacing:1px;margin:15px 0 16px 32px}.roster-scroll p{font:11px/1.85 var(--sans);color:#79613b}.roster-scroll label{display:block;font:12px var(--serif);margin:15px 0 8px}.roster-scroll input{width:100%;font:16px var(--serif);color:#382712;border:1px solid #9b80524d;border-bottom:1px solid #876139;background:#a8842920;border-radius:0;min-height:42px;padding:8px 10px;outline:none}.roster-scroll input:focus{border-color:#805b2c;box-shadow:0 0 0 2px #bca16630}#roster-confirm{width:100%;font-size:16px;padding:13px 8px;margin-top:16px}#roster-status{font-size:10px;color:#907549;margin-bottom:0}.roster-bottom{position:absolute;bottom:22px;left:38px;right:38px}.roster-navigation{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:12px;font:13px var(--serif);letter-spacing:2px;color:#e0c595}.roster-navigation button{display:grid;place-items:center;width:30px;height:26px;border:1px solid #ad8a5166;background:#21170dcc;color:#d8b572}.roster-navigation .ui-icon{width:13px;height:13px}#roster-prev .ui-icon{transform:rotate(90deg)}#roster-next .ui-icon{transform:rotate(-90deg)}#roster-list{display:flex;gap:8px;overflow-x:auto;overscroll-behavior:contain;scroll-snap-type:x proximity;padding:8px 2px 13px;scrollbar-color:#8e6c3d #20160e;scrollbar-width:thin}.roster-card{position:relative;flex:0 0 83px;height:122px;padding:0;overflow:hidden;border:1px solid #99784470;border-radius:1px;background:radial-gradient(at 50% 10%,#6b554373,#211910e6);box-shadow:inset 0 0 0 3px #20140a55;scroll-snap-align:center;transition:border-color .15s,background .15s,transform .15s;color:#e7d0a4}.roster-card:hover{background:#5e4026cc;border-color:#cdb079;transform:translateY(-3px)}.roster-card.selected{border-color:#eed29b;box-shadow:inset 0 0 0 2px #805623,0 0 16px #b8904c42;background:radial-gradient(at 50% 20%,#9c713078,#4c271dea)}.roster-card img{width:100%;height:108px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 3px 4px #0008)}.roster-number{position:absolute;top:5px;left:6px;font:9px Georgia;color:#d8bd84}.roster-card-name{position:absolute;bottom:0;left:0;right:0;min-height:21px;padding:5px 2px;background:#1a100bdc;font:10px var(--serif);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.roster-card[aria-selected=true] .roster-card-name{background:#572b20e6;color:#fff1c7}
@media(min-width:1500px){.roster-scroll{top:29%;width:321px;padding:38px 29px 33px 35px}.roster-scroll h3{font-size:34px}.roster-card{flex-basis:101px;height:147px}.roster-card img{height:134px}.roster-card-name{font-size:11px}}
@media(max-width:900px){.roster-heading{left:25px;top:24px}.roster-heading h2{font-size:28px}.roster-scroll{left:22px;width:257px;top:26%;padding:30px 24px 25px 27px}.roster-scroll h3{font-size:24px}.roster-bottom{left:22px;right:22px;bottom:15px}.roster-card{flex-basis:75px;height:110px}.roster-card img{height:99px}}
@media(max-width:680px){.roster-heading{left:22px;right:65px;top:21px}.roster-heading h2{font-size:24px;letter-spacing:1px;margin:8px 0}.roster-heading .eyebrow{font-size:9px;letter-spacing:2px}.roster-heading p{font-size:10px;max-width:250px}#roster-back{top:23px;right:16px;min-width:43px;padding:7px;font-size:11px}.roster-scroll{top:auto;bottom:162px;left:15px;right:15px;width:auto;padding:17px 22px 18px 27px;display:grid;grid-template-columns:1fr 1fr;column-gap:13px;align-items:center;background-size:100% 100%}.roster-scroll #roster-count{margin-left:55px;font-size:9px;grid-column:1}.roster-scroll h3{grid-column:1;margin:5px 0 3px 35px;font-size:20px}.roster-scroll>p:not(#roster-status){display:none}.roster-scroll label{grid-column:2;grid-row:1;margin:0;font-size:10px}.roster-scroll input{grid-column:2;grid-row:2;font-size:14px;min-height:34px;padding:6px}.roster-scroll #roster-confirm{grid-column:2;grid-row:3;margin:5px 0 0;font-size:12px;padding:8px 4px;min-height:36px}.roster-scroll #roster-status{grid-column:1;grid-row:3;font-size:8px;line-height:1.5;max-width:140px;margin-top:4px}.roster-bottom{left:14px;right:14px;bottom:12px}.roster-navigation{margin-bottom:2px;font-size:11px;gap:15px}.roster-navigation button{height:22px;width:26px}.roster-card{flex-basis:70px;height:105px}.roster-card img{height:94px}.roster-card-name{font-size:9px}#roster-list{gap:7px;padding-bottom:8px}html[lang=en] .roster-heading h2{font-size:24px}html[lang=en] .roster-scroll h3{font-size:16px;margin-left:30px}}
@media(max-height:620px) and (orientation:landscape){.roster-heading{top:16px;left:25px}.roster-heading h2{font-size:24px;margin:5px 0}.roster-heading p{display:none}.roster-scroll{top:25%;left:24px;width:248px;padding:24px 24px 16px 27px}.roster-scroll h3{font-size:23px;margin:9px 0 10px 28px}.roster-scroll>p:not(#roster-status){display:none}.roster-scroll label{margin-top:8px}.roster-scroll input{min-height:34px;font-size:14px}#roster-confirm{margin-top:8px;min-height:35px;font-size:13px;padding:8px}.roster-bottom{bottom:8px}.roster-card{height:90px;flex-basis:68px}.roster-card img{height:79px}.roster-navigation{margin-bottom:0}.roster-card-name{font-size:9px}}
/* Medieval conversation sheets keep portraits and choices in the same readable panel. */
.dialogue-character{display:flex;align-items:center;gap:24px;border-bottom:1px solid #a4864a55;padding-bottom:18px}.dialogue-character img{width:108px;height:135px;object-fit:contain;background:radial-gradient(ellipse,#58402066,transparent 70%)}.dialogue-character h3{font:28px var(--serif);margin:10px 0}.dialogue-character .eyebrow{font:10px var(--serif);letter-spacing:3px}.dialogue-line{margin:28px 0;padding:0 8px 0 24px;border-left:2px solid #a98347;font:19px/1.9 var(--serif);color:#3c2819}.dialogue-choices{display:flex;gap:12px;flex-wrap:wrap}.dialogue-choices .text-button{margin-left:auto}.npc-speech{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);width:max-content;max-width:260px;padding:10px 14px;background:#e8d9bbed;border:1px solid #a5814c;color:#382514;text-shadow:none;white-space:normal;font:13px/1.65 var(--serif);box-shadow:0 4px 16px #120b0866}.npc-speech:after{content:'';position:absolute;bottom:-6px;left:48%;width:10px;height:10px;background:#e8d9bb;border-right:1px solid #a5814c;border-bottom:1px solid #a5814c;transform:rotate(45deg)}input[type=range]{accent-color:#966531;padding:0;box-shadow:none;background:transparent}.music-toggle{min-width:68px;font-size:11px!important}#roster{background:linear-gradient(90deg,#15100935,transparent 50%,#15100915)}.scene-ready .scene-poster{opacity:0}#world{image-rendering:auto}.roster-card img{filter:drop-shadow(0 3px 3px #0008)}
@media(max-width:680px){.music-toggle{min-width:48px;padding:6px!important;font-size:9px!important}.header-actions{gap:6px}.dialogue-character{gap:15px}.dialogue-character img{width:84px;height:108px}.dialogue-character h3{font-size:22px}.dialogue-line{font-size:16px;margin:20px 0}.dialogue-choices{gap:9px}.npc-speech{max-width:180px;font-size:11px}.dialogue-choices .outline-button{font-size:13px;padding:9px 12px}}
