@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101611;--panel:#192019;--panel2:#1d251d;--gold:#c4a775;--pale:#ede6d4;--text:#c9cebd;--muted:#929e8b;--line:#3d4735;--green:#8a9d66;--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 45% 0,#263124 0,transparent 65%),var(--bg);color:var(--text);font:15px/1.55 var(--sans)}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:none;border:1px solid var(--line);border-radius:3px;transition:background .15s,border-color .15s,transform .15s}button:hover{background:#ffffff0a;border-color:var(--gold);color:var(--pale)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button,select,input{min-height:44px}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:600;color:var(--pale)}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1440px)/2));border-bottom:1px solid var(--line);background:#0c120de8;gap:24px}.brand{font:600 29px var(--serif);color:var(--pale);letter-spacing:2px;white-space:nowrap}.brand>span:last-child{color:var(--gold);letter-spacing:0}.sigil{font:40px var(--serif);vertical-align:-3px;color:var(--gold);margin-right:10px}.edition{font-size:12px;letter-spacing:2px;color:#a8b29c}.edition span{margin:0 18px;color:#5b6652}.header-actions{display:flex;align-items:center;gap:12px}.icon-button{width:42px;padding:0;font:22px var(--serif)}.text-button{padding:8px 19px;font-size:14px}.shell{max-width:1440px;margin:auto;padding:32px 28px 20px}.chapter-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{color:var(--gold);font-size:11px;font-weight:600;letter-spacing:2.6px;margin-bottom:5px}h1{font-size:44px;line-height:1.12;letter-spacing:.3px}.world-clock{display:flex;gap:16px;align-items:center;border-left:1px solid var(--line);padding-left:26px}.world-clock>span{color:var(--gold);font-size:34px}.world-clock strong{font:500 25px var(--serif);letter-spacing:2px}.world-clock small{display:block;color:var(--muted);font-size:12px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:25px}.play-column{min-width:0}.scene-frame{position:relative;border:1px solid #7e7250;outline:3px solid #222b20;outline-offset:3px;background:#11190e;aspect-ratio:16/9;overflow:hidden;box-shadow:0 20px 50px #0005}.scene-frame:fullscreen{aspect-ratio:auto;width:100vw;height:100dvh}.scene-frame canvas{display:block;width:100%;height:100%;object-fit:cover}.scene-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 65px #0008;background:linear-gradient(#0910098c,transparent 24%,transparent 75%,#091009d9)}.scene-top,.scene-bottom{position:absolute;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;text-shadow:0 2px 8px #000}.scene-top{top:17px;font-size:13px;color:#f1ecd8}.scene-top>span:first-child{font:600 21px var(--serif)}#compass{font-size:11px;letter-spacing:2px}.scene-bottom{bottom:10px;font-size:12px;color:#d6dbc7;gap:12px}.scene-bottom button{pointer-events:auto}.turn-label{font-size:10px;letter-spacing:2px;color:#e0c698}.scene-bottom .icon-button{min-height:34px;height:34px;width:34px;border-color:#adad8950}.scene-center{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;width:min(86%,400px);background:#10180fe8;border:1px solid #a58558;padding:20px;box-shadow:0 8px 50px #0009}.scene-center h2{font-size:30px}.scene-center p{font-size:14px;margin:8px 0}.scene-center meter{width:100%;height:10px}.narration{display:flex;gap:17px;align-items:center;padding:22px 20px;min-height:93px;border-bottom:1px solid var(--line)}.narration-mark{color:var(--gold);font-size:24px}.narration p{font:500 21px/1.4 var(--serif);color:#dce0cc}.action-bar{display:flex;align-items:center;gap:24px;padding:20px 0}.movement{display:grid;grid-template-columns:44px 48px 44px;grid-template-rows:41px 32px;gap:4px;flex-shrink:0}.movement button{font-size:26px;min-height:32px;line-height:1;background:linear-gradient(#2b3526,#1a2218)}.movement .forward{color:var(--gold)}.movement .back{grid-column:2}.primary-actions{flex:1;min-width:0}.gold-button{background:linear-gradient(#c6ac76,#ac8b53);color:#202417;border-color:#e4c68b;min-height:44px;font-weight:600;padding:10px 17px}.gold-button:hover{background:#d4ba85;color:#121b12}.primary-actions>.gold-button{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:center}.secondary-actions{display:flex;gap:8px;margin-top:7px}.secondary-actions button{flex:1;border-color:transparent;font-size:13px;min-height:36px;padding:4px}.secondary-actions span{color:var(--muted);margin-left:3px;font-size:11px}kbd{font:10px var(--sans);display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border:1px solid currentColor;border-radius:3px;opacity:.65;margin-left:5px}.player-stats{width:192px;font-size:11px}.player-stats>div{display:flex;justify-content:space-between;gap:5px;margin-bottom:6px}.player-stats>div>span{letter-spacing:1.8px;color:#bdc6af}.player-stats strong{font-weight:500;color:var(--pale)}meter{appearance:none;border:0;display:block;width:100%;height:8px;border-radius:2px;overflow:hidden;background:#2f352b}meter::-webkit-meter-bar{background:#2f352b;border:0}meter::-webkit-meter-optimum-value{background:linear-gradient(90deg,#586b45,#9ca972)}meter::-moz-meter-bar{background:#879963}.player-stats small{display:block;margin-top:8px;font-size:10px;color:var(--muted)}.journal-panel{background:#192119aa;border:1px solid var(--line);border-radius:4px;overflow:hidden}.tabs{display:flex;border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:0 13px;flex-wrap:wrap}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:13px 16px;font-size:14px}.tabs button.active{border-bottom-color:var(--gold);color:var(--gold);background:#ffffff03}.tabs button span{font-size:10px;padding:2px 4px;color:var(--muted)}.dialogue-mode{margin-left:auto;font-size:10px;color:var(--muted);padding:8px 0}.tab-panel{padding:22px;min-height:185px}.party-line{display:flex;align-items:center;gap:18px}.party-line img{width:76px;height:87px;object-fit:cover;object-position:left;border:1px solid #8d825b}.party-line h2{font-size:24px}.party-line h2 small{font:11px var(--sans);color:var(--muted);margin-left:10px}.party-line p{font:500 19px/1.5 var(--serif);font-style:italic;color:#d2d9c5;margin-top:5px}.dialogue-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.dialogue-options button{font-size:12px;padding:6px 13px;min-height:35px;background:#11190e50}.sidebar{display:flex;flex-direction:column;gap:21px}.map-panel,.quest-panel,.companions-panel{background:linear-gradient(145deg,#20291d77,#141c1477);border:1px solid var(--line);padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between}.panel-heading h2{font-size:23px}.panel-heading .icon-button{min-height:28px;height:28px;width:28px;font-size:19px;border:0}.map-wrap{position:relative;background:#141b12;margin:12px 0;border:1px solid #35412c}.map-wrap canvas{display:block;width:100%;height:auto}.map-north{position:absolute;right:10px;top:8px;font:13px var(--serif);color:var(--gold)}.map-legend{display:flex;justify-content:space-between;gap:9px;font-size:10px;color:#b3bba6}.map-legend>span{display:flex;gap:6px;align-items:center}.map-legend i{width:7px;height:7px;display:inline-block}.legend-player{background:var(--gold);transform:rotate(45deg)}.legend-path{background:#64734c}.map-note{font-size:10px;color:var(--muted);margin-top:10px}.quest-panel h2{font-size:28px;line-height:1.2;margin:7px 0 10px}.quest-panel>p:not(.eyebrow){font:16px/1.55 var(--serif);color:#b5c0a7}.quest-panel ol{list-style:none;padding:0;margin:19px 0;font-size:12px;counter-reset:steps}.quest-panel li{counter-increment:steps;display:flex;align-items:center;gap:10px;margin:10px 0;color:#7d8b76}.quest-panel li:before{content:counter(steps);font-size:10px;border:1px solid #526144;border-radius:50%;width:18px;height:18px;text-align:center;flex-shrink:0}.quest-panel li.current{color:#dbc18b}.quest-panel li.done{color:#9eaf87}.quest-panel li.done:before{content:'✓';background:#3f5433}.quest-reward{font-size:9px;letter-spacing:1.5px;color:var(--gold);padding-top:14px;border-top:1px solid var(--line)}.quest-reward span{display:block;font-size:11px;color:#b7c0a9;letter-spacing:0;margin-top:3px}.mini-party{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.mini-person{border:0;border-radius:0;min-width:0;min-height:0;text-align:left}.mini-person:hover{background:transparent}.portrait{display:block;width:100%;aspect-ratio:3/4;background-image:url('art/party.webp');background-size:300% 100%;background-repeat:no-repeat;border:1px solid #44503a;filter:saturate(.8)}.p-lyra{background-position:left}.p-morrigan{background-position:center}.p-nox{background-position:right}.mini-person.selected .portrait{border-color:var(--gold);filter:none}.mini-person strong{display:block;font:600 17px var(--serif);color:var(--pale);margin-top:6px}.mini-person small{display:block;font-size:9px;color:var(--muted);white-space:nowrap}.pause-note{display:flex;justify-content:center;gap:12px;align-items:center;color:var(--gold);font:18px var(--serif);margin-top:0}.pause-note>span{font-size:25px}.pause-note small{display:block;font:10px var(--sans);color:var(--muted);margin-top:4px}footer{display:flex;justify-content:space-between;font-size:10px;color:#8d9885;gap:15px;border-top:1px solid #303b2b;margin-top:25px;padding-top:16px}.muted{color:var(--muted)}.combat-actions,.context-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}.combat-actions button,.context-actions button{padding:10px 16px;font-size:14px}.danger-button{background:#65382e;border-color:#a85d46;color:#f8d0b8}.log{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.log article{padding-bottom:12px;border-bottom:1px solid #343e2e}.log strong{font:600 20px var(--serif);color:var(--gold)}.log small{font-size:10px;color:var(--muted);margin-left:12px}.log p{font-size:14px;line-height:1.6;margin-top:4px}.inventory{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inventory-item{background:#11180f88;border:1px solid var(--line);padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.inventory-item strong{font:600 19px var(--serif);color:var(--gold);display:block}.inventory-item small{display:block;color:var(--muted);font-size:11px}.inventory-item button{padding:8px 12px;font-size:12px}.scene-label{color:var(--gold)}dialog{background:#1a2319;color:var(--text);border:1px solid #85744f;border-radius:5px;width:min(560px,calc(100vw - 30px));max-height:85dvh;padding:25px;box-shadow:0 30px 100px #000a}dialog::backdrop{background:#070e0bba;backdrop-filter:blur(5px)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:18px}.modal-header h2{font-size:32px}dialog p{font-size:16px;line-height:1.65;margin-bottom:15px}dialog .buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}dialog .buttons button{padding:10px 15px}dialog ul{padding-left:23px}dialog li{margin:12px 0;font-size:15px}dialog canvas{width:100%;height:auto}dialog .small{font-size:13px;color:var(--muted)}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#283722;border:1px solid var(--gold);color:var(--pale);z-index:100;font-size:14px;box-shadow:0 5px 20px #0009}[hidden]{display:none!important}
@media(min-width:1500px){.shell{padding-top:37px}.scene-frame{aspect-ratio:16/9}.topbar{padding-inline:calc((100vw - 1384px)/2)}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.action-bar{gap:14px}.player-stats{width:140px}.player-stats small{font-size:9px}.movement{grid-template-columns:36px 40px 36px}.tabs{padding:0 7px}.tabs button{padding:12px}.dialogue-mode{font-size:9px}.scene-frame{aspect-ratio:4/3}.map-panel,.quest-panel,.companions-panel{padding:14px}.mini-person small{font-size:8px}}
@media(max-width:850px){.topbar{height:64px;padding:0 20px}.edition{display:none}.shell{padding:24px 18px 16px}.game-layout{grid-template-columns:1fr}.scene-frame{aspect-ratio:16/10}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}.companions-panel{grid-column:1}.pause-note{grid-column:2}.map-panel{grid-row:span 1}.map-wrap{max-width:290px;margin:12px auto}.player-stats{width:190px}.player-stats small{font-size:10px}.movement{grid-template-columns:44px 48px 44px}.quest-panel>p:not(.eyebrow){font-size:18px}.quest-panel ol{font-size:14px}.quest-panel li{margin:16px 0}.mini-person small{font-size:11px}.mini-person .portrait{max-height:125px}.dialogue-mode{font-size:10px}.mini-party{gap:15px}.map-legend,.map-note{font-size:12px}footer{font-size:11px}}
@media(max-width:520px){.topbar{padding:0 15px}.brand{font-size:25px}.sigil{font-size:30px;margin-right:4px}.header-actions{gap:8px}.text-button{padding:7px 12px}.header-actions .icon-button{width:36px}.shell{padding:21px 12px 15px}.chapter-bar{margin-bottom:22px}.eyebrow{font-size:10px;letter-spacing:2px}h1{font-size:34px}.world-clock{padding-left:13px;gap:9px}.world-clock>span{font-size:26px}.world-clock strong{font-size:23px}.world-clock small{font-size:10px}.scene-frame{aspect-ratio:1.2}.scene-top,.scene-bottom{left:15px;right:15px}.scene-top>span:first-child{font-size:20px}#compass{font-size:9px;letter-spacing:1px}.scene-bottom{gap:8px;font-size:10px}.turn-label{font-size:9px;letter-spacing:1px}.narration{padding:17px 6px;gap:10px;min-height:95px}.narration p{font-size:21px}.action-bar{display:grid;grid-template-columns:128px minmax(0,1fr);gap:15px 12px;padding:18px 0}.movement{grid-template-columns:38px 44px 38px;grid-template-rows:44px 35px;gap:4px}.player-stats{grid-column:1/-1;width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.player-stats>div{font-size:12px;grid-column:1}.player-stats meter{grid-column:1}.player-stats small{grid-column:2;grid-row:1/3;align-self:center;margin-top:0;text-align:right;font-size:11px}.primary-actions>.gold-button{font-size:13px;padding:9px 10px;min-height:45px}.secondary-actions button{font-size:12px}.secondary-actions span{font-size:10px}.tabs button{font-size:13px;padding:13px 11px}.dialogue-mode{font-size:9px;flex-basis:100%;padding:0 10px 7px;margin-top:-3px}.tab-panel{padding:17px}.party-line{gap:12px;align-items:flex-start}.party-line img{width:60px;height:77px}.party-line h2{font-size:24px}.party-line h2 small{display:block;margin-left:0;font-size:11px}.party-line p{font-size:19px}.dialogue-options button{font-size:12px;min-height:40px;padding:6px 10px}.sidebar{gap:12px}.map-panel,.quest-panel,.companions-panel{padding:13px}.panel-heading h2{font-size:21px}.quest-panel h2{font-size:25px}.quest-panel>p:not(.eyebrow){font-size:16px}.quest-panel ol{font-size:12px;margin:13px 0}.quest-panel li{align-items:flex-start;gap:6px;margin:11px 0}.quest-panel li:before{margin-top:1px}.quest-reward span{font-size:10px}.map-legend{font-size:9px;gap:5px;flex-wrap:wrap}.map-note{font-size:10px}.companions-panel{grid-column:1/-1}.mini-party{max-width:340px;gap:18px}.mini-person .portrait{aspect-ratio:1;max-height:110px}.mini-person strong{font-size:21px}.pause-note{grid-column:1/-1;font-size:22px;margin:4px 0}.pause-note small{font-size:12px}.inventory{grid-template-columns:1fr}.combat-actions button{flex:1;min-width:110px;font-size:13px;padding:10px}footer{flex-direction:column;align-items:center;font-size:10px;gap:4px}.scene-center{padding:15px}.scene-center h2{font-size:26px}.scene-center p{font-size:13px}dialog{padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.morholt{display:flex;gap:11px;align-items:center;border-top:1px solid var(--line);padding-top:13px;margin-top:15px}.morholt>span{font-size:30px;color:#c4a2cd}.morholt strong{font:600 20px var(--serif);color:var(--pale)}.morholt small{display:block;color:#aa99af;font-size:10px}.morholt button{margin-left:auto;border:0;width:32px;min-height:34px;color:var(--muted)}
#scene{touch-action:none}.portrait{background-size:300% auto}
/* Portrait and phone audit, v0.2. Use independent portraits, never stretched atlas panels. */
body{font-size:1rem}.avatar-button{display:block;padding:0;flex:none;min-height:0;border:0;background:none;border-radius:3px;overflow:hidden}.avatar-button:hover{background:none}.party-line{align-items:flex-start}.party-line>div{min-width:0}.party-line .avatar-button{width:88px;flex:0 0 88px}.party-line img{display:block;width:88px;height:106px;object-fit:cover;object-position:50% 28%;flex:none}.portrait{background:none!important;display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:50% 28%;max-height:none!important}.p-nox{object-position:50% 24%}.mini-person{min-width:0}.mini-person small{font-size:.75rem;white-space:normal;line-height:1.35}.mini-person strong{font-size:1.2rem}.horse-portrait{display:block;width:74px;height:74px;object-fit:contain;border:1px solid #716179;border-radius:3px}.morholt .avatar-button{margin:0;width:74px;flex:none}.morholt>div{min-width:0}.morholt small{font-size:.75rem}.morholt>button:last-child{min-width:44px;min-height:44px}.portrait-large{display:block;width:min(100%,320px);height:340px;object-fit:cover;object-position:50% 20%;margin:0 auto 18px;border:1px solid var(--gold)}.portrait-large.horse-large{height:auto;aspect-ratio:1;object-fit:contain}.mobile-nav{display:none}.mini-person.selected{color:var(--gold)}.mini-person.selected strong{color:var(--gold)}.tab-panel,.map-panel,.chapter-bar{scroll-margin-top:16px}.toast{max-width:calc(100vw - 30px);width:max-content;text-align:center;overflow-wrap:anywhere}.panel-heading .icon-button{width:44px;height:44px;min-height:44px}.scene-top{gap:12px}.scene-top>span:first-child{min-width:0}.scene-bottom .icon-button{min-width:44px;min-height:44px}.scene-top>span,#compass{overflow-wrap:anywhere}.map-legend,.map-note,.map-north{font-size:.75rem}.quest-panel ol{font-size:.875rem}.quest-panel>p:not(.eyebrow){font-size:1.125rem}.quest-reward{font-size:.75rem}.quest-reward span{font-size:.8125rem}.dialogue-mode{font-size:.75rem}.dialogue-options button{font-size:.875rem;min-height:44px}.log p{font-size:1rem}.log small{font-size:.75rem}.inventory-item small{font-size:.8125rem}.inventory-item button{font-size:.875rem}.player-stats small{font-size:.75rem}.focus-mode{overflow:hidden}.focus-mode .play-column{position:fixed;inset:0;z-index:45;width:100%;height:100dvh;background:var(--bg);overflow-y:auto;padding:14px max(16px,calc((100vw - 1040px)/2)) 32px}.focus-mode .scene-frame{aspect-ratio:16/9}.focus-mode .mobile-nav{display:none}#exit-focus{margin:0 0 16px auto;position:sticky;top:0;z-index:3;background:var(--panel);display:block}#exit-focus[hidden]{display:none}dialog{overscroll-behavior:contain;overflow-y:auto}dialog .modal-header{position:sticky;top:-25px;background:var(--panel);z-index:1;padding-top:8px}body:has(dialog[open]){overflow:hidden}
@media(max-width:850px){body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}.mobile-nav{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px 10px calc(7px + env(safe-area-inset-bottom,0px));background:#10180ff5;border-top:1px solid #617047;box-shadow:0 -5px 25px #0005}.mobile-nav button{border:0;font-size:.8125rem;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.mobile-nav button span{font-size:21px;line-height:1;color:var(--gold)}.toast{bottom:calc(90px + env(safe-area-inset-bottom,0px))}.map-wrap{max-width:350px}.scene-frame canvas{object-fit:fill}.secondary-actions button{font-size:.875rem;min-height:44px}.secondary-actions span{font-size:.75rem}.movement{grid-template-columns:44px 48px 44px;grid-template-rows:44px 44px}.movement button{min-width:44px;min-height:44px}.mini-party{max-width:none;gap:14px}.mini-person .portrait{max-height:none}.tabs button{min-height:48px;font-size:.875rem}.pause-note small{font-size:.8125rem}.tab-panel{min-height:0}.scene-frame{aspect-ratio:4/3}.action-bar kbd{display:none}.scene-top>span:first-child{font-size:1.2rem}#compass{font-size:.75rem;letter-spacing:1px}}
@media(max-width:520px){.shell{padding-inline:14px}.topbar{gap:10px;padding-inline:14px}.brand{font-size:24px}.header-actions{gap:5px}.header-actions .icon-button{width:40px;min-width:40px}.text-button{font-size:.875rem;padding:7px 10px}.chapter-bar{gap:14px}.chapter-bar h1{font-size:clamp(1.65rem,7vw,2.15rem)}.world-clock{gap:7px;flex:none}.world-clock small{font-size:.75rem}.world-clock>span{font-size:24px}.scene-frame{aspect-ratio:4/3}.scene-top,.scene-bottom{left:12px;right:12px}.scene-top{top:12px}.turn-label{font-size:.6875rem}.action-bar{grid-template-columns:144px minmax(0,1fr);gap:12px}.primary-actions>.gold-button{min-height:50px;font-size:.875rem;line-height:1.35;justify-content:center;text-align:center}.secondary-actions{flex-direction:column;gap:0;margin-top:4px}.secondary-actions button{min-height:44px;border:1px solid var(--line);margin-top:4px}.movement{align-self:start;grid-template-columns:44px 48px 44px;grid-template-rows:50px 46px;gap:4px}.narration p{font-size:1.3rem}.player-stats{grid-template-columns:1fr;gap:4px}.player-stats>div{font-size:.8125rem}.player-stats small{grid-column:1;grid-row:auto;text-align:left;margin-top:2px;font-size:.75rem}.tabs{gap:0;padding:0 5px}.tabs button{padding-inline:10px;font-size:.875rem}.dialogue-mode{margin:0;padding:0 10px 8px;font-size:.75rem}.party-line{gap:14px;display:grid;grid-template-columns:80px minmax(0,1fr)}.party-line .avatar-button,.party-line img{width:80px}.party-line img{height:100px}.party-line h2{font-size:1.6rem}.party-line h2 small{font-size:.8125rem;line-height:1.4;margin-top:4px}.party-line p{font-size:1.2rem}.dialogue-options{display:grid;grid-template-columns:1fr;gap:8px}.dialogue-options button{font-size:.875rem}.sidebar{grid-template-columns:1fr}.map-panel,.quest-panel,.companions-panel,.pause-note{grid-column:1}.map-panel,.quest-panel,.companions-panel{padding:18px}.map-wrap{max-width:330px}.map-legend,.map-note{font-size:.8125rem}.quest-panel h2{font-size:1.8rem}.quest-panel>p:not(.eyebrow){font-size:1.125rem}.quest-panel ol{font-size:.9375rem}.quest-panel li{margin:13px 0}.quest-reward span{font-size:.8125rem}.mini-person strong{font-size:1.25rem}.mini-person small{font-size:.75rem}.morholt strong{font-size:1.4rem}.morholt small{font-size:.8125rem}.scene-center{max-height:80%;overflow:auto;top:50%;padding:12px}.scene-center h2{font-size:1.5rem}.scene-center p{font-size:.875rem}.scene-center .eyebrow{font-size:.625rem}.combat-actions{display:grid;grid-template-columns:1fr}.combat-actions button{font-size:1rem}.focus-mode .play-column{padding:12px 14px 30px}.focus-mode .scene-frame{aspect-ratio:4/3}dialog .modal-header{top:-20px}.portrait-large{height:310px}.inventory-item{flex-wrap:wrap}.inventory-item button{min-height:44px}footer{font-size:.75rem;text-align:center}}
@media(max-width:360px){.action-bar{grid-template-columns:144px minmax(0,1fr);gap:8px}.world-clock{padding-left:8px}.world-clock>span{display:none}.header-actions .icon-button{width:36px;min-width:36px}.header-actions{gap:3px}.scene-top>span:first-child{font-size:1rem}.scene-top{gap:6px}#compass{font-size:.6875rem;letter-spacing:0}.party-line{grid-template-columns:64px minmax(0,1fr)}.party-line .avatar-button,.party-line img{width:64px}.party-line img{height:86px}}

/* Keep character selection next to the conversation on every screen. */
.tab-panel>.companions-panel{background:none;border:0;border-bottom:1px solid var(--line);padding:0 0 18px;margin-bottom:20px}.tab-panel .mini-party{max-width:360px}.tab-panel .morholt{max-width:440px}.tab-panel .mini-person small{font-size:.75rem}

.topbar{height:auto;min-height:64px;flex-wrap:wrap;padding-block:10px}.chapter-bar{flex-wrap:wrap}.header-actions .icon-button{width:44px;min-width:44px}.mini-person{padding:0}.mini-person strong{overflow-wrap:anywhere}.world-clock{max-width:100%}.world-clock small{overflow-wrap:anywhere}.tabs button{overflow-wrap:anywhere}.mobile-nav button{overflow-wrap:anywhere;min-width:0}

body{overflow-wrap:anywhere}.tab-panel .mini-party{grid-template-columns:repeat(auto-fit,minmax(min(4.2rem,100%),1fr))}.primary-actions>.gold-button{display:block}

.mini-person{display:flex;flex-direction:column;align-items:stretch}@media(max-width:360px){.mini-person strong{font-size:1.05rem}}

@media(min-width:851px){.movement{grid-template-rows:44px 44px}.movement button,.secondary-actions button{min-height:44px}}.scene-top,.scene-bottom{z-index:2}.scene-center{z-index:3}.inn-panel{padding:20px;background:linear-gradient(140deg,#31261b,#191e16);border:1px solid #7f6540;margin:16px 0}.inn-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.inn-heading h2{font-size:1.6rem}.inn-heading span{font-size:.875rem;color:var(--gold)}#inn-line{font:500 1.25rem/1.5 var(--serif);margin:12px 0 18px}.inn-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.inn-options button{font-size:.875rem;padding:10px;min-height:48px}.inside-inn .action-bar{grid-template-columns:1fr}.inside-inn .primary-actions{min-width:0}.inside-inn .scene-frame{aspect-ratio:4/3}.inn-panel{scroll-margin-top:16px}@media(max-width:520px){.inn-panel{padding:16px}.inn-options{grid-template-columns:1fr}.inside-inn .player-stats{grid-column:1/-1}}

.inside-inn .narration{display:none}

/* World-space sprites replace the former fixed horse layer. */
.saddlebags{border:1px solid #746143;padding:18px;margin-top:18px;background:#27251b88}.saddlebags>p{font-size:.875rem;margin:12px 0;color:var(--muted)}.saddle-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:.875rem}.saddle-row button,.item-actions button{font-size:.875rem;padding:8px 10px;min-height:44px}.item-actions{display:flex;gap:8px;flex-wrap:wrap}.inventory-item{align-items:flex-start;flex-wrap:wrap}.audio-slider{display:grid;grid-template-columns:1fr 3fr 45px;gap:12px;align-items:center;font-size:.875rem;margin:20px 0}.audio-slider input{min-width:0;width:100%;accent-color:var(--gold)}#audio-status{margin-top:12px}#audio-test{padding:10px 15px}#carry-status{color:var(--gold)}@media(max-width:520px){.saddle-row{flex-wrap:wrap}.audio-slider{grid-template-columns:1fr 45px}.audio-slider input{grid-row:2;grid-column:1/-1}.audio-slider output{grid-row:1;grid-column:2}.inventory-item{width:100%}}

.audio-slider input{margin:0}.audio-slider output{white-space:nowrap}.audio-slider{grid-template-columns:minmax(0,1fr) minmax(0,3fr) auto}#close-modal{flex:0 0 44px;min-width:44px}.modal-header h2{min-width:0}@media(max-width:520px){.audio-slider{grid-template-columns:minmax(0,1fr) auto}}

.roadmap-link{display:block;min-height:44px;padding:10px 14px;border:1px solid var(--gold);border-radius:3px;text-decoration:underline}

/* Inn panorama navigation stays reachable in portrait, including enlarged text. */
.inn-nav{padding:14px 16px;background:#1b2118;border:1px solid #4b4934;border-top:0}.inn-arrows{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:10px}.inn-arrows span{text-align:center;color:#e3c38b;font-family:Georgia,serif}.inn-nav p{font-size:.8rem;color:#b7b8a5;margin:10px 0}.inn-places{display:flex;flex-wrap:wrap;gap:6px}.inn-places button{min-height:44px;flex:1 0 auto;padding:8px 12px}.inn-places button[aria-pressed=true]{background:#655135;color:#fff2cd;border-color:#d1ac6b}.inn-party{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.inn-party>div{min-width:0;display:flex;flex-direction:column;gap:7px;text-align:center}.inn-party img{width:100%;height:100px;object-fit:cover;object-position:50% 16%;border:1px solid #6a573b;border-radius:6px}.inn-party small{font-size:.75rem;color:#b8baa8}.inn-party button{margin-top:auto;white-space:normal;min-height:48px;padding:8px}.mini-person.waiting{opacity:.65}.inside-inn #scene{touch-action:pan-y}@media(max-width:360px){.inn-party{grid-template-columns:1fr}.inn-party>div{display:grid;grid-template-columns:52px 1fr;align-items:center;text-align:left}.inn-party img{grid-row:span 3;height:85px}.inn-party button{grid-column:2}}

.movement .strafe-left{grid-column:1;grid-row:2;color:#ccb17b}.movement .strafe-right{grid-column:3;grid-row:2;color:#ccb17b}.movement .back{grid-column:2;grid-row:2}.scene-frame #combat-fx{position:absolute;inset:0;z-index:4;pointer-events:none}.inn-track{font-size:.875rem;color:var(--gold);margin:10px 0}.audio-note{font-size:.875rem;color:var(--muted)}

/* Same controls and save in both orientations; no orientation lock. */
.control-dock{display:contents}
@media (orientation:landscape) and (max-height:600px) and (min-width:600px){
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom,0px))}
  .topbar{min-height:48px;padding:2px max(14px,env(safe-area-inset-left,0px));gap:12px;flex-wrap:nowrap}
  .brand{font-size:24px}.sigil{font-size:28px}.edition{display:none}
  .shell{padding:6px max(14px,env(safe-area-inset-right,0px)) 14px max(14px,env(safe-area-inset-left,0px))}
  .chapter-bar{margin-bottom:10px;gap:8px;min-height:32px}.chapter-bar .eyebrow{display:none}.chapter-bar h1{font-size:1.5rem}
  .world-clock{gap:8px;padding-left:12px}.world-clock>span{font-size:22px}.world-clock>div{display:flex;align-items:center;gap:10px}.world-clock strong{font-size:20px}.world-clock small{font-size:.75rem}
  .game-layout{grid-template-columns:minmax(0,1fr)}
  .play-column{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:12px;align-items:start}
  .scene-frame,.inside-inn .scene-frame{grid-column:1;grid-row:1;aspect-ratio:auto;height:max(190px,calc(100dvh - 154px - env(safe-area-inset-bottom,0px)))}
  .control-dock{display:block;grid-column:2;grid-row:1;min-width:0;max-height:max(190px,calc(100dvh - 154px - env(safe-area-inset-bottom,0px)));overflow-y:auto;overscroll-behavior:contain;padding:0 4px 4px;scrollbar-width:thin}
  .action-bar{display:grid;grid-template-columns:144px minmax(0,1fr);gap:10px;padding:0;align-items:start}
  .movement{grid-template-columns:44px 48px 44px;grid-template-rows:44px 44px}.movement button{min-width:44px;min-height:44px}
  .primary-actions>.gold-button{font-size:.875rem;padding:8px;min-height:44px;line-height:1.35}.secondary-actions{flex-direction:column;gap:0;margin:0}.secondary-actions button{min-height:44px;font-size:.8125rem;padding:4px}.secondary-actions span{display:none}.action-bar kbd{display:none}
  .player-stats{grid-column:1/-1;width:100%;display:block}.player-stats>div{margin-bottom:3px}.player-stats small{font-size:.75rem;margin-top:3px}.player-stats small:last-child{display:none}
  .narration{grid-column:1/-1;grid-row:2;min-height:0;padding:8px 0 14px}.narration p{font-size:1.2rem}
  .journal-panel{grid-column:1/-1}.sidebar{display:grid;grid-template-columns:1fr 1fr}.pause-note{grid-column:1/-1}
  .inn-nav{padding:8px}.inn-nav p{display:none}.inn-places{margin-top:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.inn-places button{padding:7px;font-size:.8125rem;flex:0 0 auto;min-width:64px}
  .inn-panel{padding:12px;margin:10px 0}.inn-options{grid-template-columns:1fr}.inn-heading h2{font-size:1.35rem}#inn-line{font-size:1.125rem}.inn-party{grid-template-columns:1fr}
  .combat-actions,.context-actions{margin:10px 0 0;gap:6px}.combat-actions button,.context-actions button{flex:1;padding:8px;font-size:.875rem}
  .scene-top,.scene-bottom{left:12px;right:12px}.scene-top{top:10px}.scene-top>span:first-child{font-size:1.125rem}#compass{font-size:.6875rem;letter-spacing:0}.scene-center{max-height:75%;overflow-y:auto;padding:8px}.scene-center h2{font-size:1.3rem}.scene-center p{font-size:.8rem;margin:4px 0}
  .mobile-nav{position:fixed;inset:auto 0 0;z-index:40;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:3px max(12px,env(safe-area-inset-left,0px)) calc(3px + env(safe-area-inset-bottom,0px));background:#10180ff5;border-top:1px solid #617047}
  .mobile-nav button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;min-height:44px;font-size:.8125rem;border:0}.mobile-nav button span{font-size:20px;color:var(--gold)}
  .toast{bottom:calc(60px + env(safe-area-inset-bottom,0px))}
  .focus-mode .play-column{padding:8px max(14px,env(safe-area-inset-left,0px)) 20px;align-content:start}
  .focus-mode #exit-focus{grid-column:1/-1;margin:0 0 2px auto;position:static}
  .focus-mode .scene-frame{grid-row:2;height:calc(100dvh - 78px);aspect-ratio:auto}.focus-mode .control-dock{grid-row:2;max-height:calc(100dvh - 78px)}.focus-mode .narration{grid-row:3}
}

/* Touch gestures belong to the game from the first contact. */
.movement,.movement button,#inn-nav,#inn-nav button{touch-action:none!important;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.movement button.is-held,#inn-nav button.is-held{background:#665032;border-color:#efd294;transform:none}

.rat-companion-portrait,.rat-belt-icon{display:block;background-image:url('art/cellar-rat-king-v26.png');background-size:400% 400%;background-position:100% 100%;background-repeat:no-repeat}.rat-companion-portrait{width:100px;height:100px;margin:8px 0}.rat-belt-icon{width:32px;height:32px;margin:auto}
