:root{color-scheme:dark;--ink:#e7d6ac;--muted:#b4ad92;--gold:#b79a54;--deep:#141a18;--stone:#30332a;--line:#777052;--parchment:#c7ae7a;--paper-ink:#292319;--red:#8a322d;--green:#7d9665;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;font-family:var(--serif);font-size:16px}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#343b31 0,#161d1b 55%,#0c1211 100%);color:var(--ink);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:linear-gradient(#4e4c37,#302f24);border:1px solid #82714b;border-radius:2px;padding:10px 15px;box-shadow:inset 0 1px #ffffff16;transition:filter .15s,border-color .15s}button:hover:not(:disabled){filter:brightness(1.17);border-color:#d9bf79}button:disabled{cursor:default;opacity:.43}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #f4d777;outline-offset:3px}button.primary{background:linear-gradient(#65532d,#413d29);color:#fff0bc;border-color:#c7ab62}button.active,button.selected{border-color:#f0cd7d;box-shadow:inset 0 0 0 1px #d0a950;background-color:#5a5031}a{color:#e5cb88}p{line-height:1.6;margin:.75em 0 1em}h1,h2,h3{font-weight:400;line-height:1.2}h2{font-size:1.75rem;margin:0}h3{font-size:1.2rem;margin:1.1em 0 .6em}.eyebrow{font-family:var(--sans);font-size:.875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.game-shell{max-width:1340px;margin:auto;padding:0 20px}.topbar{min-height:87px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{font-size:38px;color:#c7ac66}.brand-title{display:block;font-size:1.25rem;letter-spacing:.14em}.brand-subtitle{display:block;color:#adad92;font-size:.875rem;margin-top:4px;letter-spacing:.04em}.chapter-tag{text-align:center;font-size:.875rem;color:#b5ad8e;font-family:var(--sans)}.chapter-tag span{display:block;font-family:var(--serif);font-size:1rem;color:#e2d2ae;margin-top:5px}.top-actions{display:flex;gap:9px;align-items:center}.top-actions button{font-size:.875rem;min-height:38px}.help-button{border-radius:50%;width:38px;padding:0}.stone-frame{position:relative;padding:10px;background:linear-gradient(100deg,#30362d,#48483a 38%,#363c32 70%,#272e27);border:2px solid #a29260;box-shadow:0 0 0 2px #131c15,0 0 0 4px #4d513b,0 15px 45px #0008,inset 0 0 0 3px #171f18;isolation:isolate}.view-frame{position:relative;height:clamp(300px,56vh,650px);border:3px ridge #92815b;background:#21302c;overflow:hidden;box-shadow:0 2px 8px #0008}.render-wrap,#viewport{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.render-wrap canvas{position:absolute;display:block;inset:0;width:100%;height:100%;touch-action:none;image-rendering:auto}.world-overlay{pointer-events:none}.location-hud{position:absolute;top:15px;left:17px;display:flex;align-items:center;gap:16px;color:#eee3bd;background:#111c17c9;padding:8px 14px;border:1px solid #aa95604d;pointer-events:none;max-width:calc(100% - 34px);text-shadow:1px 1px #000}.location-hud>span{font-size:1.1rem;letter-spacing:.02em}.location-hud small{font-family:var(--sans);font-size:.8125rem;color:#c0b795;white-space:nowrap}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;color:#ece8c480;font:20px var(--sans);text-shadow:0 1px 3px #000}.compass-plate{position:absolute;right:20px;bottom:14px;width:59px;height:59px;background:radial-gradient(#d0bb7c,#857043 67%,#332f23 69%,#c3ad67 73%,#252a22 77%);border-radius:50%;color:#24291e;display:flex;align-items:center;justify-content:center;box-shadow:1px 3px 5px #000a;pointer-events:none}.compass-plate>span{font-size:41px;line-height:1}.compass-plate>b{position:absolute;top:16px;left:0;width:100%;text-align:center;background:#c9b67d;font:700 .875rem var(--sans)}.control-deck{display:grid;grid-template-columns:minmax(280px,1.15fr) minmax(190px,.85fr) minmax(270px,1fr);min-height:218px;gap:16px;align-items:center;padding:15px 10px 9px;background:linear-gradient(#161d1518,#0d170e55)}.party-orbs{display:flex;align-items:center;justify-content:space-evenly;gap:8px;padding:0 4px}.hero-orb{border:0;background:none;box-shadow:none;padding:0;display:flex;flex-direction:column;align-items:center;min-width:0;flex:1;color:#eee0b3}.hero-orb:hover:not(:disabled){filter:brightness(1.15);border:0}.orb-frame{display:block;position:relative;width:104px;height:125px;padding:6px;border:2px solid #9a8851;border-radius:45% 45% 40% 40%;background:linear-gradient(100deg,#e3d085,#675536 16%,#b59b56 80%,#e9d58c);box-shadow:0 4px 7px #0009,inset 0 0 0 3px #272c23}.orb-face,.portrait-square{display:block;width:100%;height:100%;background-image:url('./assets/portraits.webp');background-size:400% 100%;background-repeat:no-repeat;background-position:0 0}.orb-face{border-radius:45% 45% 40% 40%;border:2px solid #262b20;box-shadow:inset 0 0 20px #0009}.elira.orb-face,.elira.portrait-square{background-position:33.333% 0}.corvin.orb-face,.corvin.portrait-square{background-position:66.666% 0}.ralen.orb-face{background-position:100% 0}.hero-orb.away .orb-face{filter:grayscale(.9);opacity:.55}.orb-gauge{position:absolute;top:16px;bottom:17px;width:7px;border:1px solid #222b21;background:#182119;overflow:hidden;border-radius:6px;box-shadow:0 0 0 1px #c1a86d}.orb-gauge.health{left:-3px}.orb-gauge.stamina{right:-3px}.orb-gauge i{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(90deg,#792b23,#d35942)}.orb-gauge.stamina i{background:linear-gradient(90deg,#566634,#aec87c)}.hero-name{display:block;font-size:1rem;margin-top:8px;text-shadow:1px 2px #000}.hero-vitals{font: .8125rem var(--sans);color:#b3b494;display:block;margin-top:4px}.wounded{position:absolute;bottom:17px;left:5px;right:5px;font-size:.875rem;background:#311713e3;padding:4px}.travel-controls{text-align:center;padding:0 14px;border-left:1px solid #8990673b;border-right:1px solid #8990673b;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center}.travel-controls .eyebrow{font-size:.75rem}.objective-title{font-weight:400;display:block;margin:5px 0 8px;font-size:1.05rem;line-height:1.3}.navigation-pad{display:grid;grid-template-columns:repeat(3,40px);gap:3px;margin:0 0 7px}.navigation-pad button{font:22px var(--sans);padding:0;min-height:30px;touch-action:none;background:linear-gradient(#62664d,#2b3429);border:1px solid #89936b;box-shadow:inset 0 0 0 2px #19241a}.interact-button{font-size:.875rem;padding:5px 12px;min-width:135px;white-space:nowrap}.switch-group{font-size:.875rem;margin-top:6px;padding:5px 8px}.command-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 8px}.round-command{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:none;box-shadow:none;padding:0;font-size:.875rem;white-space:nowrap;text-shadow:1px 2px #000}.round-command .round-icon{display:flex;align-items:center;justify-content:center;width:53px;height:53px;border-radius:50%;border:2px solid #c0a46a;background:radial-gradient(ellipse at 45% 35%,#c1ae76,#786b45 58%,#3f442f 62%,#a99d62 75%,#272d22 81%);box-shadow:inset 0 0 0 3px #3f422e,0 3px 3px #0007;color:#283423;font:32px var(--serif);text-shadow:0 1px #d9c491}.round-command.active{background:none;box-shadow:none;color:#f7dc94}.round-command.active .round-icon{border-color:#ffe9a5;box-shadow:0 0 7px #ebc65766,inset 0 0 0 3px #4c522f}.message-strip{min-height:35px;display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px solid #8292644a;background:#111d1780;padding:8px 12px;font: .875rem var(--sans);color:#c9caad}.supplies{display:flex;gap:15px;white-space:nowrap;color:#dcc688}.footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;color:#aaa88d;font: .75rem var(--sans)}.footer button{border:0;background:none;box-shadow:none;padding:5px 0;font-size:.8125rem;color:inherit}
.combat-deck{grid-template-columns:minmax(230px,.9fr) minmax(210px,1fr) minmax(310px,1.2fr);gap:16px;min-height:235px}.active-fighter{display:flex;align-items:center;gap:16px}.active-fighter>.hero-orb{flex:0 0 99px}.active-fighter .orb-frame{width:92px;height:113px}.active-fighter>div{flex:1;min-width:0}.active-fighter strong{display:block;font-size:1.15rem;font-weight:400;margin:7px 0 13px}.active-fighter .eyebrow{font-size:.75rem}.combat-info{align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:0 14px;border-left:1px solid #8292644a;border-right:1px solid #8292644a}.combat-info p{font-size:.9375rem;line-height:1.35;margin:8px 0}.combat-log{font: .8125rem/1.6 var(--sans);color:#babda3}.combat-commands{display:grid;grid-template-columns:repeat(5,1fr);gap:14px 8px}.combat-commands .round-icon{width:45px;height:45px;font-size:27px}.combat-commands .round-command{font-size:.8125rem}.battle-result{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);width:min(460px,90%);padding:30px;border:5px ridge #8e7041;text-align:center;box-shadow:0 14px 60px #0009}.battle-result h2{margin-top:8px}.battle-result p{font-size:1.05rem}.meter-label{display:flex;justify-content:space-between;gap:8px;font-family:var(--sans);font-size:.75rem;line-height:1.5;margin-top:8px;color:#bcbda3}.bar{height:8px;background:#121e15;border:1px solid #767b59;box-shadow:0 1px 2px #0004}.bar>span{display:block;height:100%;background:linear-gradient(90deg,#5d2925,#b75140)}.bar.stamina>span{background:linear-gradient(90deg,#526c3e,#afbc74)}
.parchment{color-scheme:light;color:var(--paper-ink);background:radial-gradient(ellipse at 25% 20%,#e5d3a0aa,transparent 67%),linear-gradient(100deg,#aa8c59,#cfb981 10%,#d1ba83 52%,#c4a86f 89%,#a48a58)}.parchment .eyebrow{color:#675536}.parchment .muted{color:#635237}.parchment a{color:#703b1d}.parchment button{color:#392d1b;border:1px solid #7d663f;background:linear-gradient(#dbc58c,#bea26b);box-shadow:inset 0 1px #f5dea888}.parchment button:hover:not(:disabled){border-color:#644d20;filter:brightness(1.06)}.parchment button.primary{background:linear-gradient(#5a6546,#354431);color:#f6e2ad;border-color:#4a4b30}.parchment button.selected,.parchment button.active{background:linear-gradient(#b99b59,#cfb67e);box-shadow:inset 0 0 0 2px #795b2e;border-color:#604922}.parchment .meter-label{color:#55462e}.parchment .bar{background:#8a7953;border-color:#736142}.parchment input{background:#ede0b3;color:#332b1c;border:1px solid #76613c;padding:10px;accent-color:#5e6b42}.parchment button:focus-visible,.parchment a:focus-visible,.parchment input:focus-visible{outline-color:#243c2b}.modal{padding:0;width:min(960px,calc(100% - 36px));max-height:92vh;border:7px ridge #947944;border-radius:2px;box-shadow:0 22px 110px #000c;overflow:auto}.modal::backdrop{background:#060c0bd9;backdrop-filter:blur(3px)}.modal-head{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:22px 26px 16px;border-bottom:1px solid #7f694155}.modal-head h2{font-size:1.6rem}.modal-head .close-button{font:30px var(--sans);line-height:1;padding:0;width:38px;height:38px;border-radius:50%;background:#b39a62}.modal-body{padding:20px 26px 28px}.modal p{font-size:1rem}.modal-body>h3:not(:first-child){margin-top:1.5em}.tabs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 22px;border-bottom:1px solid #806d4966;padding-bottom:15px}.tabs button{font-size:.9375rem;min-width:82px}.tabs .stats-tab{margin-left:auto;font-size:.875rem}.inventory-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px}.equipment-pane{border-right:1px solid #806d4966;padding-right:22px;text-align:center}.paper-doll{height:238px;width:auto;aspect-ratio:.435;background-image:url('./assets/characters.webp');background-size:344.8276% 100%;background-repeat:no-repeat;background-position:0 0;margin:0 auto;filter:drop-shadow(4px 6px 3px #322b2840)}.paper-doll.elira{aspect-ratio:.3525;background-size:425.532% 100%;background-position:37.9085% 0}.paper-doll.corvin{aspect-ratio:.372;background-size:403.226% 100%;background-position:69.814% 0}.equipment-pane h3{margin:12px 0 5px;font-size:1.15rem}.role{font: .875rem var(--sans);color:#635238;margin:0 0 16px}.equipped-slots{display:grid;gap:7px;margin-top:18px}.equipped-slots button{font-size:.875rem;display:flex;gap:12px;align-items:center;text-align:left;padding:8px}.equipped-slots button>span{font-size:26px}.pack-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px}.pack-heading h3{margin:0}.pack-heading>span{font-size:.875rem;white-space:nowrap}.inventory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.inventory-cell{min-height:104px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 6px 10px!important;border:2px inset #9b8250!important;background:#8e75422b!important}.inventory-cell.selected{box-shadow:inset 0 0 0 2px #705329!important;background:#f2df9d5c!important}.inventory-cell.empty{opacity:.45}.item-icon{font:34px var(--serif);display:inline-flex;align-items:center;justify-content:center;color:#494727;line-height:1.25}.item-name{font-size:.875rem;line-height:1.15;text-align:center;display:block;margin-top:5px}.item-count{position:absolute;top:4px;right:6px;font: .75rem var(--sans);color:#4f412a}.item-detail{display:flex;gap:16px;margin-top:18px;padding:15px;border:1px solid #8d714277;background:#e8d5a03b;min-height:150px}.item-icon.large{font-size:40px;min-width:40px;align-items:flex-start}.item-detail h3{margin:0 0 8px}.item-detail p{margin:5px 0 10px;font-size:.9375rem;line-height:1.5}.item-detail button{font-size:.875rem;padding:8px 12px}.inspection-note,.condition{font-family:var(--sans);font-size:.8125rem!important;color:#705b35}.stats-header{display:grid;grid-template-columns:125px 1fr;gap:24px;align-items:center}.portrait-square{height:157px;width:125px;border:4px ridge #9a7f47}.stats-header h3{font-size:1.5rem;margin:0 0 7px}.ratings{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 25px;max-width:570px}.ratings>div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #927d4c66;padding-bottom:5px}.ratings span{font-size:.9375rem}.ratings b{font-size:1rem;white-space:nowrap}.skills-heading{display:flex;gap:20px;justify-content:space-between;align-items:center;margin-top:23px}.skills-heading span{font-size:.875rem;color:#645535}.skill-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 25px;margin-bottom:20px}.skill-row{display:grid;grid-template-columns:minmax(125px,1fr) minmax(70px,.65fr) 41px;gap:9px;align-items:center;background:none!important;box-shadow:none!important;border:1px solid transparent!important;padding:8px 5px!important;text-align:left}.skill-row.focused{border-color:#806832!important;background:#eadb9f4d!important}.skill-label,.skill-value{font-size:.875rem}.skill-value{text-align:right}.skill-track{height:13px;position:relative;display:block;background:#6c623b3d;border:1px solid #8b7544}.skill-track i{display:block;height:100%;background:linear-gradient(#a04c36,#6b2922)}.skill-track b{position:absolute;top:-3px;bottom:-3px;width:3px;background:#e4c050;box-shadow:1px 0 #736030}.spell-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.spell{padding:15px;text-align:left;display:flex;flex-direction:column;gap:8px}.spell-name{font-size:1.2rem}.spell-desc{font-size:.9375rem;line-height:1.4}.spell-cost{font:.8125rem var(--sans);color:#625338}.power-row{display:flex;align-items:center;gap:20px;margin:25px 0}.power-row input{flex:1;max-width:450px}.choices{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 0}.choices button{font-size:.9375rem}.log-entry{border-top:1px solid #927d4c66;padding:18px 0 8px}.log-entry strong{font:.875rem var(--sans);letter-spacing:.025em}.log-entry p{margin-bottom:10px}.current-quest{margin-bottom:25px;padding:15px 20px;background:#efe0af44;border:1px solid #8a774f66}.current-quest h3{margin-top:8px}.shop-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.shop-item{border:1px solid #8a75464d;padding:10px;display:flex;gap:12px;align-items:center}.shop-item>div{flex:1}.shop-item strong{font-size:.9375rem;font-weight:400}.shop-item>div>span{display:block;font:.8125rem var(--sans);margin-top:5px}.shop-item button{font-size:.875rem;padding:8px 12px}.haggle{display:flex;align-items:center;gap:8px;margin:18px 0;font-size:.9375rem}.input-row{display:flex;gap:10px;margin-top:23px}.input-row input{min-width:0;flex:1;max-width:300px;letter-spacing:.2em;text-transform:uppercase}.story-copy{font-size:1.15rem!important;line-height:1.75;max-width:720px}.arrival-art,.dialogue-art{height:250px;background-size:cover;background-position:50% 46%;border:4px ridge #997b43;box-shadow:0 3px 8px #30251940;margin-bottom:18px}.arrival-place{text-align:center;font-size:1.8rem;margin:15px 0}.speaker-name{font-variant:small-caps;letter-spacing:.04em;font-size:1.05rem}.arrival-modal,.dialogue-modal{width:min(850px,calc(100% - 36px))}.local-map{width:100%;max-height:360px;border:4px ridge #907447;display:block}.map-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 20px;margin-top:18px;font-size:.875rem}.map-legend b{display:inline-block;min-width:22px;font-family:var(--sans)}.world-route{display:flex;gap:9px;flex-wrap:wrap}.world-route>span{border:1px solid #8c794f;padding:8px 12px;opacity:.55;font-size:.875rem}.world-route>span.visited{opacity:1;background:#60704733}.shortcut-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;font:.875rem var(--sans);border-top:1px solid #8c794f;padding-top:20px}
.chapter-cinematic{position:absolute;inset:10px;z-index:10;display:grid;grid-template-rows:minmax(250px,1fr) minmax(200px,.52fr);background:#161d17;box-shadow:0 0 0 2px #7a683e}.cinematic-picture{position:relative;overflow:hidden;min-height:0;border:3px ridge #8b7949}.cinematic-pan,.cinematic-shade{position:absolute;inset:0}.cinematic-pan{background-position:50% 50%;background-size:cover;animation:cinema-pan 20s ease-in-out both;transform-origin:50% 55%}.cinematic-shade{background:linear-gradient(#0e151344,transparent 32%,#0b1814a1)}.cinematic-figures{position:absolute;inset:16% 8% 0;display:flex;gap:8%;justify-content:center;align-items:flex-end;filter:brightness(.72) sepia(.2);animation:figures-arrive 16s ease-out both;pointer-events:none}.cinematic-figures .paper-doll{height:95%;margin:0;filter:drop-shadow(8px 8px 10px #0008);flex:none;max-width:28%}.cinematic-figures .paper-doll.elira{height:90%}.cinematic-figures .paper-doll.corvin{height:86%}.cinematic-title{position:absolute;top:24px;left:32px;right:120px;text-shadow:0 3px 9px #000,0 1px 2px #000;color:#ffebbf}.cinematic-title>span{font-size:.9375rem;letter-spacing:.12em;text-transform:uppercase}.cinematic-title h1{font-size:clamp(1.8rem,3.2vw,2.8rem);margin:9px 0;letter-spacing:.02em}.skip-intro{position:absolute;right:15px;top:18px;background:#17231dbe;border-color:#a2906277;font-size:.8125rem;padding:8px 10px}.cinematic-story{position:relative;padding:22px 7% 28px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px ridge #8b7949;border-top:0}.chapter-ornament{font-size:22px;color:#74582f;margin-bottom:7px}.cinematic-story h2{font-size:clamp(1.3rem,2.1vw,1.9rem);margin:0}.cinematic-story p{font-size:clamp(1.05rem,1.65vw,1.35rem);line-height:1.5;max-width:800px;margin:10px 0 0}.cinematic-progress{position:absolute;bottom:13px;width:90px;height:2px;background:#87734055}.cinematic-progress i{display:block;height:100%;background:#786132;width:0}.text-reveal{animation:text-reveal .8s ease-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);padding:14px 20px;max-width:min(640px,90vw);background:#1e3027f5;color:#efe1b4;border:1px solid #b0975c;box-shadow:0 8px 25px #0009;z-index:1000;font: .9375rem/1.5 var(--sans);pointer-events:none;opacity:0;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@keyframes cinema-pan{from{transform:scale(1.05) translateX(-1.3%)}to{transform:scale(1.18) translateX(1.5%)}}@keyframes figures-arrive{from{transform:translateY(12px) scale(.97);opacity:.4}to{transform:translateY(0) scale(1.02);opacity:1}}@keyframes text-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.game-shell{padding-top:10px}.control-deck{padding-top:20px;padding-bottom:14px}.orb-frame{width:115px;height:136px}.command-grid{gap:13px}}
@media(max-width:1060px){.game-shell{padding:0 12px}.control-deck{grid-template-columns:minmax(235px,1fr) minmax(165px,.75fr) minmax(245px,1fr);gap:10px;padding-left:4px;padding-right:4px}.orb-frame{width:86px;height:108px}.command-grid{gap:9px 3px}.round-icon{width:48px!important;height:48px!important;font-size:28px!important}.combat-deck{grid-template-columns:minmax(180px,.8fr) minmax(190px,.85fr) minmax(285px,1.2fr)}.active-fighter{gap:10px}.active-fighter>.hero-orb{flex-basis:75px}.active-fighter .orb-frame{width:76px;height:94px}.combat-commands .round-icon{width:38px!important;height:38px!important;font-size:24px!important}.combat-info{padding:0 10px}.skill-row{grid-template-columns:minmax(118px,1fr) minmax(65px,.6fr) 37px;gap:6px}}
@media(max-width:800px){.topbar{min-height:77px;gap:10px}.brand-title{font-size:1.05rem}.brand-subtitle{font-size:.75rem}.brand-mark{font-size:32px}.chapter-tag{display:none}.top-actions{gap:6px}.top-actions button{padding:8px 11px}.top-actions .help-button{padding:0}.view-frame{height:clamp(300px,48vh,490px)}.stone-frame{padding:7px}.control-deck{grid-template-columns:1fr 1fr;gap:15px;padding:15px 5px 11px}.party-orbs{grid-column:1;grid-row:1}.travel-controls{grid-column:2;grid-row:1;border-right:0;min-height:170px}.command-grid{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(6,1fr);gap:7px;border-top:1px solid #8990673b;padding-top:13px}.round-command{font-size:.8125rem}.orb-frame{width:84px;height:104px}.combat-deck{grid-template-columns:.9fr 1.1fr}.active-fighter{grid-column:1;grid-row:1}.combat-info{grid-column:2;grid-row:1;border-right:0;padding-right:3px}.combat-commands{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;border-top:1px solid #8990673b;padding-top:13px}.combat-commands .round-command{font-size:.75rem}.combat-commands .round-icon{width:36px!important;height:36px!important}.message-strip{font-size:.8125rem;gap:8px}.supplies{gap:8px}.supplies>span{display:none}.inventory-layout{grid-template-columns:180px minmax(0,1fr);gap:18px}.equipment-pane{padding-right:15px}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-cell{min-height:95px}.modal-head{padding:18px}.modal-body{padding:18px}.skill-columns{grid-template-columns:1fr;gap:4px}.skill-row{grid-template-columns:1fr 1fr 45px}.chapter-cinematic{inset:7px;grid-template-rows:minmax(260px,1fr) minmax(190px,.55fr)}.cinematic-story{padding:20px 5% 30px}.cinematic-title{left:22px;top:22px}.cinematic-figures{inset:22% 0 0;gap:6%}.cinematic-figures .paper-doll{max-width:32%}}
@media(max-width:530px){.game-shell{padding:0 7px}.topbar{min-height:70px}.brand{gap:5px}.brand-title{font-size:.9rem;letter-spacing:.1em}.brand-subtitle{font-size:.75rem;max-width:160px;line-height:1.3}.brand-mark{font-size:27px}.top-actions button{font-size:.8125rem;padding:8px}.help-button{width:32px!important;min-height:32px!important}.view-frame{height:42vh;min-height:280px;border-width:2px}.location-hud{top:10px;left:10px;right:10px;max-width:none;padding:7px 9px;justify-content:space-between;gap:8px}.location-hud>span{font-size:.875rem}.location-hud small{font-size:.75rem}.control-deck{gap:12px 5px;padding:12px 0 8px;grid-template-columns:1.12fr 1fr}.orb-frame{width:53px;height:75px;padding:4px;border-width:1px}.orb-face{border-width:1px}.orb-gauge{width:5px;top:12px;bottom:13px}.hero-name{font-size:.875rem}.hero-vitals{font-size:.75rem}.party-orbs{gap:6px;padding:0 2px}.travel-controls{padding:0 6px;min-height:166px}.objective-title{font-size:.9375rem}.travel-controls .eyebrow{font-size:.75rem}.navigation-pad{grid-template-columns:repeat(3,34px)}.navigation-pad button{min-height:30px}.interact-button{min-width:0;font-size:.8125rem;max-width:100%;padding:6px 9px}.command-grid{grid-template-columns:repeat(3,1fr);gap:13px 6px}.round-command{font-size:.875rem}.round-icon{width:44px!important;height:44px!important}.message-strip{align-items:flex-start;padding:8px;font-size:.75rem}.supplies{white-space:nowrap;font-size:.75rem}.footer{font-size:.75rem;align-items:flex-start}.footer>span{max-width:72%;line-height:1.5}.compass-plate{right:12px;bottom:10px;transform:scale(.85);transform-origin:bottom right}.combat-deck{grid-template-columns:1fr}.active-fighter{grid-column:1;grid-row:1;justify-content:center;padding:2px 15px}.active-fighter>.hero-orb{flex:0 0 76px}.active-fighter>div{max-width:190px}.combat-info{grid-column:1;grid-row:2;border:0;padding:4px 8px;border-top:1px solid #8990673b}.combat-log{font-size:.75rem}.combat-info .eyebrow{display:none}.combat-info p{font-size:.875rem}.combat-commands{grid-column:1;grid-row:3;grid-template-columns:repeat(5,1fr);gap:10px 4px}.combat-commands .round-command{font-size:.8125rem}.modal{width:calc(100% - 18px);border-width:5px;max-height:94vh}.modal-head{padding:14px 12px 11px}.modal-head h2{font-size:1.35rem}.modal-body{padding:15px 12px 20px}.tabs{gap:6px;margin-bottom:15px;padding-bottom:12px}.tabs button{min-width:0;flex:1;padding:9px;font-size:.875rem}.tabs .stats-tab{flex:1 0 100%;margin-left:0}.inventory-layout{grid-template-columns:1fr;gap:15px}.equipment-pane{border:0;padding:0;display:grid;grid-template-columns:100px 1fr;gap:0 14px;text-align:left}.equipment-pane .paper-doll{grid-column:1;grid-row:1/7;height:194px}.equipment-pane h3{margin-top:0}.equipment-pane .role{margin-bottom:6px}.equipment-pane>.bar,.equipment-pane>.meter-label{grid-column:2}.equipped-slots{grid-column:1/-1;grid-template-columns:1fr 1fr;margin-top:10px}.equipped-slots button{font-size:.8125rem}.pack-heading h3{font-size:1.1rem}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-cell{min-height:88px}.item-detail{padding:12px;gap:10px}.item-icon.large{display:none}.stats-header{grid-template-columns:85px 1fr;gap:14px}.portrait-square{width:85px;height:122px}.stats-header h3{font-size:1.2rem}.stats-header .role{font-size:.8125rem}.ratings{gap:6px;grid-template-columns:1fr}.ratings>div{padding-bottom:3px}.ratings span,.ratings b{font-size:.8125rem}.skills-heading{display:block}.skills-heading h3{margin-bottom:7px}.skills-heading span{display:block;margin-bottom:12px}.skill-row{grid-template-columns:1.1fr .8fr 40px}.spell-list{grid-template-columns:1fr}.shop-list{grid-template-columns:1fr}.shop-item{padding:9px}.map-legend{grid-template-columns:1fr;gap:9px}.arrival-art,.dialogue-art{height:170px}.story-copy{font-size:1.05rem!important}.chapter-cinematic{grid-template-rows:minmax(270px,1fr) minmax(215px,.6fr)}.cinematic-title{left:15px;right:15px;top:51px}.cinematic-title>span{font-size:.8125rem}.cinematic-title h1{font-size:1.7rem;max-width:300px}.cinematic-figures{inset:38% 0 0;gap:0}.cinematic-figures .paper-doll{max-width:36%;height:100%}.cinematic-story{padding:20px 18px 30px}.cinematic-story p{font-size:1.05rem}.chapter-ornament{margin-bottom:12px}.skip-intro{font-size:.8125rem}.battle-result{padding:22px}.shortcut-list{grid-template-columns:1fr}.input-row{gap:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.cinematic-pan{transform:scale(1.06)}.cinematic-figures{opacity:1}}

.combat-commands .round-command{font-size:.875rem}.render-wrap canvas:focus:not(:focus-visible){outline:none}

.modal-notice:not(:empty){margin-top:20px;padding:12px 15px;background:#526c3c22;border:1px solid #6a723f77;font:.9375rem/1.5 var(--sans);color:#394428}
/* Ravens of Valhalla — carved timber, iron and brass from the supplied UI references. */
:root{--ink:#e1d1b6;--muted:#afa087;--gold:#b79859;--deep:#141312;--line:#74634b}
body{background:#0b0e0f;color:var(--ink)}
.game-shell{max-width:1500px;padding:0 18px}.topbar{min-height:68px}.brand-mark{color:#b79c69}.brand-title{letter-spacing:.12em}.brand-subtitle{color:#9b8e79}
.stone-frame{border:19px solid #55422d;border-image:url('./assets/norse/ui-exploration.webp') 53 50 57 50 / 22px / 0 stretch;padding:27px 9px 8px;background:#231b14;box-shadow:0 15px 60px #000;}
.raven-crown{position:absolute;z-index:4;top:-20px;left:50%;transform:translateX(-50%);width:470px;height:73px;background:url('./assets/norse/ui-exploration.webp') no-repeat;background-size:975px 731px;background-position:-252px 0;pointer-events:none;max-width:65%}
.view-frame{height:clamp(330px,55vh,680px);border:3px ridge #74614c;background:#152322}.location-hud{top:16px;background:#111717c9;border-color:#80765a66;color:#e4d7be}.location-hud small{color:#b5aa96}.compass-plate{right:auto;left:50%;bottom:0;transform:translateX(-50%);width:142px;height:52px;border-radius:0;background:#26221b;border:3px ridge #9e8156;clip-path:polygon(0 50%,20% 0,80% 0,100% 50%,80% 100%,20% 100%);color:#d6c8b0}.compass-plate>b{background:#191b1a;color:#d6c8b0;font:27px Georgia;top:5px;left:34px;width:68px;border:1px solid #786d56}.compass-plate>span{display:none}
.control-deck{min-height:230px;grid-template-columns:minmax(310px,1.35fr) minmax(170px,.7fr) minmax(240px,1fr);padding:21px 9px 12px;background:radial-gradient(ellipse at 20% 55%,#423321,#201a13 65%);gap:18px;border-top:5px ridge #76624b;}
.party-orbs{gap:16px}.orb-frame{width:clamp(80px,9vw,135px)!important;height:auto!important;aspect-ratio:1;border-radius:50%;padding:7px;background:linear-gradient(125deg,#d2b581,#40372a 18%,#b99458 52%,#342e25 83%,#ad8b56);border:2px solid #a48b65;box-shadow:0 0 0 3px #171815,0 5px 7px #0009,inset 0 0 0 3px #1e2220}
.orb-frame:after{content:'ᚱ ᚲ ᛟ ᚹ ᚱ';position:absolute;inset:3px 5px auto;letter-spacing:5px;font:9px Georgia;transform:rotate(-8deg);color:#d1ad6a;pointer-events:none}
.orb-face{border-radius:50%;background-image:url('./assets/norse/ui-exploration.webp');background-size:804.45% 603.33%;background-position:6.31% 85.98%;border:2px solid #272926;}
.orb-face.ketil,.portrait-square.ketil{background-image:url('./assets/norse/ui-exploration.webp');background-size:804.45% 603.33%;background-position:27.28% 85.98%}
.orb-face.sigrun,.portrait-square.sigrun{background-image:url('./assets/norse/ui-exploration.webp');background-size:804.45% 603.33%;background-position:47.71% 85.98%}
.portrait-square.einar{background-image:url('./assets/norse/ui-exploration.webp');background-size:804.45% 603.33%;background-position:6.31% 85.98%}
.hero-name{font-variant:small-caps;font-size:1rem}.hero-vitals{color:#baaa8e}.orb-gauge{top:24%;bottom:24%;width:5px;border-color:#514c3c;box-shadow:0 0 0 1px #b29461}.orb-gauge.health{left:0}.orb-gauge.stamina{right:0}
.round-command{font-size:.8rem;color:#d2c0a1;min-width:0;white-space:normal;line-height:1.15}.round-command .round-icon{width:65px!important;height:65px!important;border:2px solid #987e54;background:radial-gradient(#292925,#151a19 62%,#97764a 65%,#352d24 70%,#121615 76%);box-shadow:inset 0 0 0 3px #282824,0 3px 6px #000b;color:#cfa566;text-shadow:1px 1px 1px #080b0a;font-size:31px!important}
.round-command .round-icon[class*='icon-bag'],.round-command .icon-map,.round-command .icon-camp,.round-command .icon-journal,.round-command .icon-rune,.round-command .icon-horn{border:0;background-image:url('./assets/norse/ui-exploration.webp');background-size:1034.286% 775.714%;box-shadow:0 2px 8px #0007}
.round-command .icon-bag{background-position:69.037% 78.753%}.round-command .icon-map{background-position:81.116% 78.753%}.round-command .icon-camp{background-position:93.196% 78.753%}.round-command .icon-journal{background-position:69.037% 94.292%}.round-command .icon-rune{background-position:81.116% 94.292%}.round-command .icon-horn{background-position:93.196% 94.292%}
.command-grid{gap:12px 14px}.travel-controls{border-color:#78654855;padding:0 9px}.navigation-pad button{background:linear-gradient(#3c3427,#221f19);border-color:#76664b;box-shadow:inset 0 0 0 2px #171816;color:#d5bd8f}.message-strip{background:#131715;color:#adab99;border-color:#62563f66}.footer{color:#878d83}.footer button{color:#b8a381}
.combat-deck{grid-template-columns:1fr 1.08fr 1fr;gap:20px}.combat-info{padding:18px 18px 12px;border:4px ridge #9e8050;min-height:225px;box-shadow:0 3px 12px #0008;display:block;color:#372b1d}.fighter-name{display:block;font-size:1.7rem;text-align:center;margin:6px 0 11px;font-weight:400}.fighter-values{display:grid;grid-template-columns:1fr 1fr;gap:7px 15px;font-size:.92rem}.fighter-values span{display:flex;justify-content:space-between;gap:8px}.fighter-values b{font-weight:400}.combat-info #attack-preview{font-size:.85rem;line-height:1.4;margin:11px 0 8px}.combat-info .combat-log{color:#615038;font:.74rem/1.4 var(--sans);border-top:1px solid #89703e66;padding-top:7px}.combat-commands{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.combat-commands .round-icon{width:59px!important;height:59px!important}.secondary-orders{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-top:5px}.secondary-orders button{font-size:.75rem;padding:5px 7px}.battle-party{align-self:center}.battle-party .orb-frame{width:clamp(64px,7vw,104px)!important}.battle-result{border-color:#93774d}
.title-screen{width:min(100%,178vh);aspect-ratio:1672/941;position:relative;margin:0 auto;top:50vh;transform:translateY(-50%);isolation:isolate;background:#101512}.title-art{position:absolute;inset:0;width:100%;height:100%;display:block}.title-options{position:absolute;inset:31.5% 2.4% 29% 75.5%;display:grid;grid-template-rows:repeat(5,1fr);gap:2.8%}.title-option{border:0;background:transparent;box-shadow:none;clip-path:polygon(5% 0,95% 0,100% 50%,95% 100%,5% 100%,0 50%);padding:0;}.title-option span{opacity:0}.title-option:hover,.title-option:focus-visible{background:#e4b66122;box-shadow:inset 0 0 0 3px #d2ad68;outline:2px solid #eecb8c;filter:none}.continue-game{position:absolute;bottom:15%;right:3.5%;width:20%;font-size:clamp(12px,1.4vw,20px);background:#171b1be8;border:2px ridge #a88753}.menu-version{position:absolute;bottom:1.7%;left:2.4%;font:clamp(10px,1vw,14px) Georgia;letter-spacing:.04em;color:#cab691;background:#0d1212c7;padding:5px 8px}
.modal{border:8px ridge #74614a}.modal-head{border-color:#92774d55}.dialogue-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.dialogue-topics button{letter-spacing:.04em;font-size:.9rem}.npc-modal .story-copy{min-height:115px}.campaign-map{margin-top:24px}.campaign-map summary{cursor:pointer;margin-bottom:15px}.campaign-map img{width:100%;height:auto}.quest-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;font-size:.94rem;margin-bottom:24px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:18px 0}.setting-row select{padding:10px;background:#d5bf8e;color:#322718;border:1px solid #856d48}
/* Inventory is a complete equipment screen, not a static illustration. */
.inventory-modal{width:min(1390px,calc(100% - 28px));max-height:96vh;background:#171916;color:#d6c7ae;color-scheme:dark;box-shadow:0 0 0 3px #191c19,0 20px 90px #000}
.inventory-modal .modal-head{padding:10px 18px;background:linear-gradient(90deg,#2c2118,#181c1b,#2c2118);border-bottom:5px ridge #75634a}.inventory-modal .modal-head h2{font-size:1.18rem;letter-spacing:.08em;font-variant:small-caps}.inventory-modal .modal-head .close-button{color:#dcc5a2;background:#262b28;border-color:#958364}
.inventory-modal .modal-body{padding:12px;background:linear-gradient(90deg,#1e1b15,#121816 40%,#191b17)}.inventory-top{display:grid;grid-template-columns:minmax(350px,.95fr) minmax(480px,1.55fr);gap:16px}.inventory-modal h3{color:#cfb999}.inventory-modal .equipment-pane{padding:0;border:0;display:block;text-align:center}.inventory-modal .pack-pane{min-width:0}.inventory-modal .equipment-pane>h3,.inventory-modal .pack-pane>h3{font-size:1.4rem;text-align:center;font-variant:small-caps;letter-spacing:.12em;margin:1px 0 12px;padding:6px;background:linear-gradient(#372b20,#201f18);border:2px ridge #756348}
.gear-display{display:grid;grid-template-columns:.8fr 1.3fr .8fr;gap:7px;min-height:355px}.gear-left,.gear-right{display:grid;gap:8px}.gear-left{grid-template-rows:1fr 1fr}.gear-right{grid-template-rows:1fr 1fr 1fr}.gear-slot{border:3px ridge #625b46;min-height:0;background:#101715;display:flex;flex-direction:column}.gear-slot>span{font-size:.84rem;background:#22251f;padding:5px 3px;border-bottom:1px solid #77654e}.gear-slot>button{flex:1;width:100%;padding:5px!important;display:flex;align-items:center;justify-content:center;position:relative;background:#111615!important;color:#c9bbaa!important;border:0!important;min-height:0}.gear-slot>button>b{position:absolute;right:5px;bottom:5px;font-size:.8rem;padding:2px 5px;background:#14261de6;color:#a8c795}.gear-slot .item-art{height:90%;max-height:160px;width:auto;max-width:94%}.empty-slot{display:flex;align-items:center;justify-content:center;flex:1;font-size:.94rem;color:#bdac8b;padding:10px;min-height:65px}
.equipped-character{align-self:stretch;min-width:0;border:1px solid #6c5b43;background-repeat:no-repeat;background-color:#151a17;background-image:url('./assets/norse/ui-inventory.webp');background-size:auto 181.3%;background-position:15.45% 26.85%}
.equipped-character.einar{background-size:742.564% 181.3%;background-position:15.96% 26.9%}
.equipped-character.ketil{background-image:url('./assets/norse/ketil-actions.webp');background-size:1366% 717%;background-position:42.6% 35.89%}
.equipped-character.sigrun{background-image:url('./assets/norse/sigrun-actions.webp');background-size:1361% 505%;background-position:1.07% 13.17%}
.gear-name{margin:7px 0 0!important;font:1rem Georgia!important;color:#bda988}.inventory-modal .inventory-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:86px;gap:4px;min-height:355px;border:4px ridge #625843;background:#100f0d;padding:5px}
.inventory-modal .inventory-cell{min-height:0!important;position:relative;padding:5px!important;border:1px solid #7f693f!important;background:radial-gradient(#2d2b21,#141814)!important;border-radius:0;box-shadow:inset 0 0 6px #0009!important}.inventory-modal .inventory-cell.selected{border-color:#d5ae61!important;box-shadow:inset 0 0 0 1px #d4a655,0 0 6px #b49955!important}.inventory-modal .inventory-cell.empty{opacity:.68}.inventory-cell.tall{grid-row:span 2}.item-art{display:block;position:relative;overflow:hidden;height:76px;width:auto;max-width:100%;flex-shrink:0}.item-art img{position:absolute;max-width:none!important;height:auto;pointer-events:none;user-select:none}.inventory-cell>.item-art{height:100%;max-height:145px;max-width:100%}.inventory-modal .item-count{top:auto;bottom:3px;right:5px;font:1rem Georgia;color:#eadbb9;background:#121714db;padding:1px 3px;text-shadow:0 1px #000}.inventory-modal .inventory-cell .item-art{filter:brightness(.96)}
.inventory-bottom{display:grid;grid-template-columns:1.05fr 1.3fr .35fr;gap:14px;margin-top:13px;padding-top:13px;border-top:5px ridge #695a41;background:radial-gradient(ellipse at 20% 20%,#392c1d,#181a15 62%)}.inventory-orbs{gap:10px}.inventory-orbs .orb-frame{width:clamp(75px,9vw,125px)!important}.inventory-orbs .hero-name{font-size:.9rem}.inventory-orbs .hero-vitals{font-size:.76rem}.inventory-modal .item-detail{margin:0;min-height:170px;max-height:245px;overflow:auto;display:flex;align-items:center;padding:10px;border:5px ridge #736249;background:#141917;gap:12px;color:#b9b49f}.inventory-modal .item-detail>.item-art{width:62px;height:auto;max-height:180px;flex-shrink:0}.inventory-modal .item-detail h3{color:#e0d1b7;font-size:1.2rem;margin:0 0 7px}.inventory-modal .item-detail p{font:.85rem/1.5 Georgia;margin:5px 0}.inventory-modal .condition{color:#a1ba85}.inventory-modal button.primary{color:#e3cf9c;background:linear-gradient(#3f3828,#20261e);border-color:#94835b}.inventory-modal .item-detail button{background:#302e22;color:#d5c39c;border-color:#827152}.inventory-exit{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;border:4px ridge #716044;padding:10px;background:#141715}.inventory-exit>span{color:#c3a261;font-size:1.1rem}.inventory-exit>strong{font-size:2rem;font-weight:400;color:#e6c36b}.inventory-exit>button{width:100%;margin-top:18px;font-variant:small-caps;padding:12px 5px}.inventory-modal .modal-notice:not(:empty){color:#d3c593;background:#40361f;border-color:#867043}
@media(min-width:1450px){.control-deck{min-height:245px}.round-command .round-icon{width:73px!important;height:73px!important}}
@media(max-width:1100px){.control-deck{grid-template-columns:1.15fr .72fr 1fr;gap:11px}.combat-deck{grid-template-columns:.95fr 1.2fr 1fr}.party-orbs{gap:9px}.orb-frame{width:clamp(68px,8.7vw,100px)!important}.round-command .round-icon{width:57px!important;height:57px!important}.inventory-top{grid-template-columns:minmax(290px,.9fr) minmax(360px,1.2fr)}.inventory-modal .inventory-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:70px}.gear-display{min-height:365px}.inventory-bottom{grid-template-columns:1fr 1.2fr .4fr}.inventory-orbs .orb-frame{width:75px!important}.inventory-modal .item-detail>.item-art{width:39px}}
@media(max-width:800px){.stone-frame{border-width:12px;padding:21px 2px 4px}.view-frame{height:46vh;min-height:310px}.raven-crown{width:360px;height:58px;background-size:750px 562.5px;background-position:-194px 0;top:-15px}.control-deck{grid-template-columns:1fr .8fr;gap:14px}.command-grid{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(6,1fr);padding-top:13px}.combat-deck{grid-template-columns:1fr 1.2fr}.battle-party{grid-column:1;grid-row:1}.combat-info{grid-column:2;grid-row:1}.combat-commands{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(6,1fr)}.secondary-orders{margin-top:7px}.orb-frame{width:clamp(66px,10vw,94px)!important}.inventory-top{grid-template-columns:1fr}.inventory-modal .equipment-pane{display:block}.gear-display{min-height:300px;max-width:430px;margin:auto}.inventory-modal .inventory-grid{grid-template-columns:repeat(8,minmax(0,1fr));grid-auto-rows:67px;min-height:230px}.inventory-bottom{grid-template-columns:1.2fr 1fr}.inventory-orbs{grid-column:1}.inventory-modal .item-detail{grid-column:1/-1;grid-row:2}.inventory-exit{grid-column:2;grid-row:1;padding:6px;flex-direction:row;flex-wrap:wrap;gap:10px}.inventory-exit>button{width:100%;margin-top:0}.inventory-orbs .orb-frame{width:72px!important}.top-actions{gap:4px}.brand-subtitle{font-size:.73rem}.menu-version{display:none}}
@media(max-width:530px){.game-shell{padding:0 5px}.topbar{min-height:63px}.brand-title{font-size:.85rem}.brand-subtitle{max-width:125px}.brand-mark{display:none}.top-actions button{font-size:.74rem;padding:7px}.control-deck{grid-template-columns:1fr 1fr;padding:13px 4px 10px}.party-orbs{gap:7px}.orb-frame{width:52px!important}.hero-name{font-size:.8rem}.hero-vitals{font-size:.7rem}.round-command .round-icon{width:46px!important;height:46px!important}.command-grid{grid-template-columns:repeat(3,1fr)}.combat-deck{grid-template-columns:1fr}.battle-party{grid-column:1;grid-row:1;max-width:270px;width:100%;margin:auto}.battle-party .orb-frame{width:67px!important}.combat-info{grid-column:1;grid-row:2;min-height:0}.combat-commands{grid-column:1;grid-row:3;grid-template-columns:repeat(3,1fr);padding-top:8px}.fighter-name{font-size:1.4rem}.inventory-modal .inventory-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:65px}.gear-display{min-height:290px}.inventory-orbs .orb-frame{width:49px!important}.inventory-orbs .hero-name{font-size:.75rem}.inventory-modal .item-detail{max-height:none}.inventory-exit>strong{font-size:1.6rem}.title-screen{aspect-ratio:auto;height:100svh;width:100%;top:0;transform:none}.title-art{height:52%;object-fit:cover;object-position:32% top}.title-screen:after{content:'';position:absolute;inset:36% 0 0;background:linear-gradient(transparent,#0f1516 25%);z-index:-1}.title-options{inset:52% 12% 11%;gap:7px;}.title-option{background:linear-gradient(100deg,#36291e,#181d1d 45%,#36291e);border:1px solid #a48a5c;clip-path:none;box-shadow:inset 0 0 0 3px #141a18;padding:8px}.title-option span{opacity:1;color:#e2c9a1;font-size:1.13rem;font-variant:small-caps}.continue-game{bottom:3%;right:12%;width:76%;padding:8px}.title-option:hover{background:#413722}.location-hud{top:11px;font-size:.82rem}.location-hud small{font-size:.68rem}.quest-list{grid-template-columns:1fr}}
.cinematic-pan.reference-intro{background-size:118.582% 186.337%;background-position:48.855% 22.936%;animation:reference-pan 18s ease-in-out both}.cinematic-title{top:17px;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:70%;text-align:center;padding:10px 24px;background:linear-gradient(100deg,#252c28e8,#111c1aea,#252c28e8);border:3px ridge #9b8056}.cinematic-title h1{font-size:clamp(1.5rem,2.4vw,2.2rem);margin:7px 0 0}.cinematic-title>span{font-size:.82rem;letter-spacing:.12em}.cinematic-story{border:10px ridge #78674c;background-color:#cab792}.cinematic-story p{max-width:950px}.equipped-character.sigrun{background-image:url('./assets/norse/sigrun.webp');background-size:452.5% 138.34%;background-position:1.95% 26.58%}
.stats-modal{width:min(1320px,calc(100% - 28px));max-height:96vh;background:#161b18;color:#dfd1b7;color-scheme:dark}.stats-modal .modal-body{padding:15px;background:linear-gradient(90deg,#29251c,#141b18 40%,#27251d)}.stats-modal .modal-head{padding:14px 20px;border-bottom:5px ridge #8d7552;background:#201d18}.stats-modal .modal-head h2{text-transform:uppercase;letter-spacing:.13em;margin:auto;font-size:1.5rem}.stats-top{display:grid;grid-template-columns:.78fr 2.05fr .85fr;gap:14px;align-items:stretch}.stats-person{display:flex;align-items:center;flex-direction:column;justify-content:center}.stats-person .hero-orb{flex:none}.stats-person .orb-frame{width:clamp(115px,14vw,195px)!important}.stats-person .hero-name,.stats-person .hero-vitals{display:none}.stats-person>strong{font-size:1rem;line-height:1.4;text-align:center;font-weight:400;margin-top:13px;color:#e5d1b5}.attributes-panel{border:6px ridge #8e7650;padding:16px 22px;background:radial-gradient(#e3d1aa,#b8a080)}.attributes-panel h3{font-size:1.7rem;text-align:center;margin:2px 0 18px}.attributes-content{display:grid;grid-template-columns:1.8fr 1fr;gap:18px}.attributes-panel .ratings{display:flex;flex-direction:column;gap:9px}.attributes-panel .ratings>div{border:0;padding:0}.attributes-panel .ratings span,.attributes-panel .ratings b{font-size:clamp(1rem,1.55vw,1.35rem);font-weight:400}.condition-panel{border-left:1px solid #816b4e;text-align:center;font-size:1.15rem;padding:7px 5px 0 18px}.condition-panel strong{display:block;font-weight:400;margin-top:10px;color:#385235}.stats-landscape p{font-variant:small-caps;text-align:center;line-height:1.55;font-size:.9rem;color:#dec5a4;text-shadow:1px 2px 2px #000;background:#18201ac2;padding:8px;margin:0}
.stats-modal .skill-columns{margin-top:20px;gap:0 20px;border-top:5px ridge #716447;border-bottom:5px ridge #716447;padding:6px 0}.stats-modal .skill-row{grid-template-columns:42px minmax(110px,1fr) minmax(120px,1.15fr) 43px;gap:10px;padding:11px 8px!important;border-bottom:2px ridge #504b38!important;border-radius:0;min-height:61px;color:#dcccb1}.stats-modal .skill-row.focused{background:#ae925918!important;box-shadow:inset 4px 0 #ccaa65!important}.stats-modal .skill-label{font-size:1rem}.stats-modal .skill-track{height:20px;background:#111816;box-shadow:0 0 0 2px #544631,inset 0 0 5px #000;border:2px solid #817b65}.stats-modal .skill-track i{background:linear-gradient(#8eb4c5,#517c96 50%,#2c4f67);border:1px solid #a1c6d6;box-shadow:inset 0 0 3px #dce3dc66}.stats-modal .skill-track b{width:2px;background:#c4a260;top:-3px;bottom:-3px}.skill-emblem{display:flex;align-items:center;justify-content:center;font-size:25px;color:#bbb6a1;width:37px;height:37px;background:radial-gradient(#313730,#131a16 65%,#ad905d 68%,#24251f 75%);border:1px solid #9c835e;border-radius:50%;box-shadow:0 2px 4px #000a}.stats-modal .skill-value{font:1rem Georgia;color:#e4d1a7}.stats-hint{font:.85rem/1.5 Georgia!important;color:#b6a989;padding:0 6px}.stats-bottom{display:flex;gap:35px;align-items:center;justify-content:space-between;padding:10px 12px}.stats-bottom>.party-orbs{width:55%;gap:23px}.stats-bottom .orb-frame{width:clamp(75px,9vw,125px)!important}.stats-modal button.stats-return{background:linear-gradient(#3b3327,#1d241d);color:#e0cba9;border:4px ridge #907752;width:31%;padding:17px;font-size:1.6rem;font-variant:small-caps;letter-spacing:.06em}
@keyframes reference-pan{from{transform:scale(1)}to{transform:scale(1.07)}}
@media(max-width:950px){.stats-top{grid-template-columns:1fr 2.4fr}.stats-modal .skill-row{grid-template-columns:30px minmax(110px,1fr) minmax(65px,1fr) 35px;gap:7px}.skill-emblem{width:29px;height:29px;font-size:21px}.stats-modal .skill-label{font-size:.88rem}.stats-modal .skill-value{font-size:.85rem}.attributes-panel{padding:14px}.stats-person .orb-frame{width:145px!important}}
@media(max-width:650px){.stats-modal .skill-columns{grid-template-columns:1fr}.stats-top{grid-template-columns:1fr}.stats-person{display:none}.attributes-panel .ratings span,.attributes-panel .ratings b{font-size:1.08rem}.attributes-panel h3{font-size:1.4rem}.stats-bottom{gap:15px;padding:10px 0}.stats-bottom>.party-orbs{width:65%;gap:6px}.stats-bottom .orb-frame{width:55px!important}.stats-bottom .hero-name{font-size:.74rem}.stats-bottom .hero-vitals{font-size:.68rem}.stats-modal button.stats-return{width:29%;font-size:1.08rem;padding:13px 5px}.stats-modal .modal-head h2{font-size:1.1rem;letter-spacing:.06em}.stats-modal .modal-body{padding:12px}.cinematic-title{max-width:92%;top:54px;padding:10px 13px}.cinematic-title h1{font-size:1.6rem}.cinematic-story{border-width:5px}}

.item-glyph{display:flex;align-items:center;justify-content:center;color:#b7a486;font-size:42px;min-width:45px;height:100%}
/* Chronicle frontispiece and image-led commerce. All actions remain live text. */
.title-screen .menu-artwork{position:absolute;inset:0;background:url('./assets/media/menu-poster-v54.webp') center/100% 100% no-repeat}
.title-screen .title-options{inset:32% 3% 8% 75%;display:flex;flex-direction:column;gap:1.5%}
.title-screen .title-option{flex:1;min-height:0;background:linear-gradient(100deg,#34281eef,#111717f2 45%,#34281eef);border:1px solid #9e8154;box-shadow:inset 0 0 0 3px #171914;padding:4px;clip-path:polygon(5% 0,95% 0,100% 50%,95% 100%,5% 100%,0 50%)}
.title-screen .title-option span{opacity:1;color:#E6DDC9;font-family:'Cormorant Garamond',serif;font-size:clamp(13px,1.65vw,28px);letter-spacing:.06em}
.title-screen .continue-game{position:static;width:100%;font-size:clamp(11px,1.1vw,19px);padding:7px}
.service-interior{display:block;width:100%;max-height:58vh;object-fit:contain;background:#111511;border:1px solid #81633f;margin-bottom:18px}
.inn-modal,.temple-modal{width:min(1150px,96vw)}
.shop-modal{width:min(1240px,96vw);background:#151918;color:#E6DDC9}
.shop-summary{display:flex;justify-content:space-between;gap:20px;align-items:center}
.wares-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;max-height:49vh;overflow:auto;padding:8px}
.ware-card{background:linear-gradient(#202322,#101414);border:1px solid #705b3e;min-width:0;display:flex;align-items:center;flex-direction:column;padding:10px;cursor:grab}
.ware-card .catalog-art{width:100%;height:105px;object-fit:contain}.ware-card strong{font-family:'Source Serif 4',serif;font-size:17px;font-weight:400}.ware-card span{font-variant-numeric:tabular-nums;color:#cfaa69;margin-top:4px}.ware-card:hover,.ware-card:focus-visible{border-color:#75b9d4;background:#29312e}
.shop-party{display:flex;justify-content:center;gap:30px;border-top:1px solid #705b3e;margin-top:18px;padding-top:16px}.shop-party .orb-frame{width:100px!important}.shop-party .portrait-drop{padding:5px}.shop-party .drop-ready{outline:2px solid #75b9d4;box-shadow:0 0 14px #75b9d455}
.purchase-card{display:flex;gap:25px;align-items:center}.purchase-card .catalog-art{width:130px;height:210px;flex-shrink:0}
@media(max-width:700px){.wares-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:45vh}.shop-summary{display:block}.shop-party{gap:15px}.shop-party .orb-frame{width:68px!important}.title-screen .title-options{inset:34% 3% 8% 65%}.title-screen .menu-artwork{background-size:cover;background-position:40% top}.title-screen .title-option span{font-size:16px}.service-interior{max-height:40vh}}

.exploration-party-status{position:absolute;left:16px;bottom:18px;max-width:360px;padding:9px 14px;background:#101714ed;border:1px solid #987c49;color:#e6d4ad;box-shadow:0 3px 14px #0008;font:14px/1.4 Georgia,serif;z-index:5;cursor:pointer}.exploration-party-status[hidden]{display:none}
