@font-face{font-family:'Kiba UI';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/noto-sans-400-v1.ttf') format('truetype')}
/* UI cursors remain visible over the entire game, including outside a modal. */
#game[data-game-cursor="paw"],#game[data-game-cursor="paw"] *,#resolutionNotice,#resolutionNotice *{cursor:url('../images/ui/paw-cursor-v1.png') 16 12,auto!important}
#game[data-game-cursor="hidden"],#game[data-game-cursor="hidden"] *{cursor:none!important}
#game[data-game-cursor="hidden"] :is(button,a[href],summary,input,select,textarea),#game[data-game-cursor="hidden"] :is(button,a[href],summary,input,select,textarea) *{cursor:url('../images/ui/paw-cursor-v1.png') 16 12,auto!important}
@font-face{font-family:'Kiba UI';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-sans-500-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba UI';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/noto-sans-600-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba UI';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/noto-sans-700-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba UI';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/noto-sans-800-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/noto-serif-jp-400-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-serif-jp-500-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/noto-serif-jp-600-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/noto-serif-jp-700-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story Latin';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/noto-serif-400-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story Latin';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/noto-serif-500-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story Latin';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/noto-serif-600-v1.ttf') format('truetype')}
@font-face{font-family:'Kiba Story Latin';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/noto-serif-700-v1.ttf') format('truetype')}
:root{--font-ui:'Kiba UI','Kiba Story','Segoe UI',sans-serif;--font-story:'Kiba Story','Kiba Story Latin',Georgia,serif;color-scheme:dark;--ink:#0e171c;--paper:#ebe7d8;--gold:#d9ba7b;--muted:#aaa99b}*{box-sizing:border-box}body{margin:0;background:var(--ink);font-family:var(--font-ui);color:var(--paper);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #e3d7b12a;background:#122128ab;transition:background .2s,border-color .2s}button:hover{background:#314046;border-color:#d9ba7b}button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}#game{width:100vw;height:100dvh;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block;}.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:24px 34px;background:linear-gradient(#0b131bcb,transparent);pointer-events:none}.hud button{pointer-events:auto}.hud-left,.hud-right{display:flex;align-items:center;gap:22px}.crest{font-family:var(--font-story);border:1px solid #d9ba7b75;font-size:27px;width:47px;height:52px;text-align:center;line-height:49px;color:var(--gold)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:700}#health{font-size:24px;letter-spacing:5px;margin-top:4px;color:#d58370}#health .empty{color:#ffffff25}.hud-right button{padding:10px 14px;font-size:11px;background:#102027a0}kbd{font:10px var(--font-ui);border:1px solid #ffffff30;border-radius:3px;padding:3px 6px;color:#d3d6c9;margin:0 3px}.hud-right kbd{margin-left:8px}#quest{position:absolute;left:35px;top:108px;max-width:340px}#quest p{font-size:12px;line-height:1.8;color:#ced6d0;margin-top:7px;text-shadow:0 1px 4px #000}#controls{position:absolute;bottom:0;left:0;right:0;padding:25px 35px;display:flex;gap:22px;align-items:center;background:linear-gradient(transparent,#0b151dcc);font-size:10px;color:#a8b4b4}#controls .area{margin-left:auto;letter-spacing:2px;text-transform:uppercase;font-size:9px}#toast{position:absolute;bottom:105px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#102028ee;border:1px solid #d9ba7b66;color:#eee1c0;font-size:12px;opacity:0;transition:opacity .25s;max-width:80%;text-align:center;pointer-events:none}#toast.visible{opacity:1}#prompt{position:absolute;left:50%;bottom:75px;transform:translateX(-50%);font-size:12px;background:#14242dea;padding:10px 18px;border:1px solid #d9ba7b55}.overlay{position:absolute;inset:0;background:linear-gradient(90deg,#091318dd 5%,#0c192281 55%,#0c18222b);z-index:10}.menu-content{position:absolute;top:50%;left:10%;transform:translateY(-51%);width:460px;text-align:center}.chapter{font-size:9px;letter-spacing:3px;color:#d5c59f}.title-mark{font-family:var(--font-story);font-size:25px;color:#d58a6e;margin-top:28px}h1{font-family:var(--font-story);font-size:clamp(90px,12vw,164px);font-weight:500;line-height:.92;letter-spacing:18px;margin:10px 0 19px 18px;text-shadow:0 4px 35px #0005}.subtitle{display:flex;align-items:center;justify-content:center;gap:22px;font-size:12px;letter-spacing:5px;color:#d7bd88}.subtitle span{height:1px;width:56px;background:#d7bd8870}.intro{font-family:var(--font-story);font-size:23px;line-height:1.65;color:#d7ded7;margin:28px 0}.menu-actions{display:flex;justify-content:center;gap:12px;flex-direction:column;align-items:center}.primary{background:#d8bd84;color:#17242a;border:1px solid #d8bd84;padding:16px 25px;font-size:12px;font-weight:700;letter-spacing:.5px;min-width:245px;display:flex;align-items:center;justify-content:space-between;gap:25px}.primary:hover{background:#eed9ac;color:#101b20}.menu-actions>button:not(.primary){border:0;background:transparent;font-size:12px;padding:12px 30px;color:#d8bd84}.menu-note{font-size:8px;letter-spacing:2px;color:#869894;margin:25px 0 0}.menu-bottom{position:absolute;bottom:28px;left:35px;right:35px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:2px;color:#adbab4}.menu-bottom i{color:#d9ba7b;padding:0 15px}.menu-bottom button{border:0;background:transparent;color:#c5cbbf;font-size:11px}.panel-overlay{display:flex;align-items:center;justify-content:center;background:#061015a8;backdrop-filter:blur(8px)}.panel{background:#132228f5;border:1px solid #bdad843c;padding:42px;max-width:570px;width:calc(100% - 36px);box-shadow:0 30px 100px #0004}.panel h2{font-family:var(--font-story);font-size:39px;font-weight:500;line-height:1.15;margin:17px 0 20px}.panel p{font-size:13px;line-height:1.9;color:#bac8c4}.panel .primary{margin-top:25px;width:100%}.secondary{margin-top:14px;padding:12px 20px;width:100%;font-size:11px;color:inherit;border:1px solid #e3d7b12a;background:#122128ab}.secondary:hover{background:#314046;border-color:#d9ba7b}.map-panel{max-width:770px}.realm-map{margin:23px 0}.realm-map h3{font-size:11px;font-weight:500;letter-spacing:1px;color:#d8bd84}.map-track{display:flex;gap:5px}.map-node{flex:1;border:1px solid #64767959;background:#1a2d32;padding:13px 7px;text-align:center;font-size:10px;line-height:1.9;color:#bdccc5}.map-node.active{border-color:#d9ba7b;color:#f4e5bd}.map-node.locked{opacity:.35}.map-legend{font-size:10px!important}#bossHud{position:absolute;left:30%;right:30%;top:115px;text-align:center}#bossName{font:19px var(--font-story);letter-spacing:2px}#bossHud>div{height:5px;background:#111d26;margin-top:10px}#bossHealth{height:100%;display:block;background:#bf6b61;transition:width .2s}
.world-map{border:1px solid #d9ba7b25;background:#0c1b20}.world-map svg{width:100%;height:230px;display:block}.map-panel{max-height:94dvh;overflow:auto;padding:28px 36px}.map-panel h2{margin:10px 0 16px}.travel-label{font-size:10px!important;color:#d9ba7b!important;margin:12px 0 10px!important}.travel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.travel-grid button{padding:9px 5px;font-size:10px;border-color:#d9ba7b35}.travel-grid button:disabled{opacity:.35;cursor:default}.map-panel .primary{margin-top:16px}.map-panel .map-legend{margin:12px 0 0}#controls{gap:14px}#controls .area{max-width:260px;text-align:right;letter-spacing:1px}#quest{max-width:350px}

/* v0.4 XP and shrine training */
.progression{min-width:140px;color:#ead2a0;display:grid;gap:3px;font-size:11px}.progression b{font-size:13px}.xp-track{height:4px;background:#111d26;border-radius:4px;overflow:hidden}.xp-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#b59155,#ffe3a0)}.training-panel{max-width:800px!important}.training-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.training-stats>div{padding:18px;border:1px solid #d9ba7855;border-radius:10px;background:#14242bee;display:flex;flex-direction:column;gap:12px}.training-stats h3,.training-stats p{margin:0}.training-stats p{font-size:13px;line-height:1.5;flex:1}.training-stats b{font-size:12px;color:#edcf94}.training-stats button{border:1px solid #e6c78088;padding:10px;border-radius:6px;color:#ffe4ac;background:#be965523}.training-stats button:disabled{opacity:.35;cursor:default}

/* Kiba's shifting presence and the language control. */
.kiba-current{display:block;margin-top:2px;color:#d7c693;font-size:9px;letter-spacing:.06em;text-shadow:0 1px 5px #091318}
.kiba-lore{max-width:370px;margin:0 auto 20px;color:#bfd3c8;font-size:11px;line-height:1.6}
.language-picker{display:inline-flex;align-items:center;gap:8px;color:#dec897;font-size:10px;letter-spacing:.05em}
.language-picker select{font:inherit;color:#f4e3b8;background:#12242c;border:1px solid #d9ba7b78;border-radius:4px;padding:6px 8px;cursor:pointer;letter-spacing:0}
.language-picker select:focus-visible{outline:2px solid #e8cb8c;outline-offset:2px}
.panel .language-picker{margin-top:12px}

/* Language choices keep native names visible alongside the active language. */
.language-picker{display:inline-flex;align-items:center;gap:10px;font-size:14px;letter-spacing:0}
.language-caption{font-weight:700;color:#f1deb0}
.language-chooser{position:relative;min-width:210px}
.language-chooser summary{display:flex;align-items:center;gap:10px;min-height:50px;padding:9px 12px;border:1px solid #d9ba7ba8;border-radius:6px;background:#13272ded;color:#fff1d3;font-size:15px;font-weight:700;cursor:pointer;list-style:none}
.language-chooser summary::-webkit-details-marker{display:none}
.language-chooser summary:focus-visible,.language-option:focus-visible,.menu-secondary:focus-visible{outline:3px solid #f7d78e;outline-offset:3px}
.language-flag{width:30px;height:22px;flex:none;object-fit:contain}
.language-current{flex:1;text-align:left}
.language-chevron{width:9px;height:9px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 3px 5px}
.language-chooser[open] .language-chevron{transform:rotate(225deg);margin:5px 3px 0}
.language-options{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:20;min-width:max-content;padding:5px;background:#13272df7;border:1px solid #d9ba7ba8;border-radius:6px;box-shadow:0 15px 35px #000a}
.language-option,.menu-bottom .language-option{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:9px 12px;border:0;border-radius:4px;background:transparent;color:#f4e3bf;font-size:14px;text-align:left;white-space:nowrap}
.language-option:hover,.language-option[aria-pressed="true"]{background:#3a4b49;color:#fff5d8}
.menu-bottom .menu-secondary{min-height:50px;padding:10px 17px;border:1px solid #d9ba7ba8;border-radius:6px;background:#13272ded;color:#f4e3bf;font-size:15px;font-weight:700;letter-spacing:0}
.menu-bottom .menu-secondary:hover{background:#344744}
.panel .language-picker{margin-top:18px}
.panel .language-options{top:calc(100% + 8px);bottom:auto}
.language-picker select{min-height:50px;padding:9px 12px;font-size:15px}

/* Readable controls and status text across the three very different backdrops. */
.training-stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.hud-right button,.training-stats button,.travel-grid button{min-height:44px}
.eyebrow,.menu-note,.map-legend,.travel-label,#controls,#controls .area,.kiba-current{font-size:12px!important}
#quest p,.map-node,.training-stats b{font-size:12px}
.map-node.locked{opacity:.62}
#bossHud{padding:8px 12px;background:#102639d9;border:1px solid #e2c7928a;border-radius:8px;text-shadow:0 2px 4px #07131d}
#prompt{color:#fff2cf;border-color:#e2c68e;background:#132c3df2}
#quest{padding:10px 13px;background:#112a3cde;border:1px solid #e3cb9180;border-radius:7px;box-shadow:0 5px 18px #07131d55}
#quest p{color:#f4f2e8;text-shadow:0 1px 3px #06111b}

@media(prefers-reduced-motion:reduce){button,#toast,#bossHealth{transition:none!important}}
#help{z-index:20}.help-panel{max-width:1080px;max-height:92dvh;overflow:auto;padding:28px 32px}.help-panel h2{margin:8px 0 20px}.help-columns{display:grid;grid-template-columns:minmax(0,.9fr) minmax(340px,1.1fr);gap:28px}.help-guide{display:grid;align-content:start;gap:14px}.help-guide section,.help-settings{border:1px solid #d9ba7b55;background:#152b34e8;border-radius:8px;padding:17px 20px}.help-panel h3{font-size:16px;color:#ffe0a2;margin:0 0 7px}.help-panel p{font-size:13px;line-height:1.65;margin:0;color:#e3e8dc}.help-settings>p{margin-bottom:14px}.help-settings label{display:block;margin:14px 0 7px;font-size:13px;font-weight:700}.help-settings select{width:100%;min-height:44px;padding:8px 10px;border:1px solid #ddc387;background:#10242f;color:#fff0ce;font:inherit}.binding-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.binding-row{display:flex;flex-wrap:wrap;min-width:0;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:#0f2029;border:1px solid #d9ba7b44;border-radius:6px;font-size:12px}.binding-row>span{flex:1 1 80px;overflow-wrap:anywhere}.binding-row button{min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere;min-width:66px;padding:6px 9px;background:#284354;border-color:#d9ba7b88;color:#fff0c8;font-size:12px;font-weight:700}.binding-row button:focus-visible,.help-settings select:focus-visible{outline:3px solid #f9d989;outline-offset:2px}#bindingMessage{min-height:20px;margin:10px 0 0;color:#ffdda0}.binding-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.binding-tools button{min-height:44px;padding:8px 11px;border-color:#d9ba7b80;background:#1b3540;font-size:12px}.help-panel>.primary{margin-top:20px}.help-panel #closeHelp{justify-content:center}

.dream-active .progression,.dream-active #trainButton,.dream-active #mapButton,.dream-active #interactHint{display:none!important}
.dream-active #bossHud{background:#100c1be8;border:1px solid #c9a7ec80;border-radius:6px;padding:9px 13px}.dream-active #bossName{color:#e6ccff}.dream-active #bossHealth{background:linear-gradient(90deg,#8150b0,#d3a8f4)}.dream-active #prompt{color:#f2e3ff;background:#140d25eb;border:1px solid #d3b2f4;border-radius:6px;text-shadow:0 1px 2px #000;padding:10px 16px}
.dream-active #toast{bottom:auto;top:185px}.dream-active #prompt{bottom:auto;top:245px;max-width:80%;text-align:center}
#dialogText p{line-height:1.65}

/* The title screen stays readable over the scenery and scrolls on small/zoomed displays. */
#menu{display:flex;flex-direction:column;gap:24px;overflow-y:auto;padding:76px 32px 24px;background:linear-gradient(90deg,#091318eb 5%,#0c192299 55%,#0c182244);scroll-padding:24px}
#menu .menu-content{position:relative;top:auto;left:auto;transform:none;width:min(520px,100%);flex:none;margin:auto auto auto clamp(0px,5vw,80px);padding:26px 24px;background:linear-gradient(135deg,#0b1921f0,#0b1921d9);border:1px solid #d9ba7b38;border-radius:12px}
#menu .chapter{font-size:14px;font-weight:600;line-height:1.65;letter-spacing:2px;color:#f1ddb4}
#menu .title-mark{font-size:30px;margin-top:16px;color:#eda88c}
#menu h1{font-size:clamp(84px,12vw,144px);letter-spacing:12px;margin:10px 0 18px 12px;text-transform:uppercase}
#menu .subtitle{font-size:16px;line-height:1.5;letter-spacing:3px;gap:16px;color:#f1d49b;text-transform:uppercase}
#menu .subtitle span{flex:1;max-width:56px;background:#d7bd88}
#menu .intro{font-size:26px;line-height:1.5;color:#f4f1e5;margin:22px 0}
#menu .kiba-lore{max-width:420px;font-size:16px;line-height:1.65;color:#e0e8df;margin:0 auto 22px}
#menu .menu-actions>button{font-size:16px;line-height:1.5;min-height:52px;max-width:100%;min-width:min(280px,100%);padding:12px 22px}
#menu .menu-actions>button:not(.primary){background:#142a32;border:1px solid #d9ba7b85;color:#f4deb1;border-radius:4px;font-weight:600}
#menu .menu-actions>button:not(.primary):hover{background:#30464b}
#menu button:focus-visible,#menu .menu-secondary:focus-visible,#menu summary:focus-visible{outline:3px solid #ffe3a2;outline-offset:4px}
#menu .menu-note{position:absolute;top:16px;right:20px;margin:0;padding:9px 13px;background:#10242f;color:#fff0c8;border:1px solid #d9ba7b;border-radius:6px;font-size:14px!important;font-weight:700;line-height:1.5;letter-spacing:1px;max-width:calc(100% - 40px)}
#menu .menu-bottom{position:relative;bottom:auto;left:auto;right:auto;flex:none;gap:16px;margin-top:12px;padding:14px 18px;background:#0b1921ed;border:1px solid #d9ba7b38;border-radius:10px;color:#e0e8df;font-size:14px;line-height:1.6;letter-spacing:1px}
#menu .menu-bottom>span{font-size:14px;max-width:none}
#menu .language-caption{font-size:16px;color:#f4deb1}
#menu .language-chooser summary,#menu .language-option,#menu .menu-bottom .menu-secondary{font-size:16px}

@media(prefers-reduced-motion:reduce){#menu{scroll-behavior:auto}}

/* Release notes stay below the keyboard-accessible version badge. */
#menu .release-notes{position:absolute;z-index:30;top:14px;right:20px;max-width:calc(100% - 40px)}
#menu .release-notes>.menu-note{position:static;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;max-width:100%;cursor:pointer;list-style:none;user-select:none}
#menu .release-notes>.menu-note::-webkit-details-marker{display:none}
#menu .release-notes>.menu-note::after{content:"";width:9px;height:9px;flex:none;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-bottom:5px}
#menu .release-notes[open]>.menu-note::after{transform:rotate(225deg);margin-bottom:-4px}
#menu .release-notes>.menu-note:hover{background:#243e48}
.release-notes-panel{position:absolute;top:calc(100% + 8px);right:0;width:min(440px,calc(100vw - 40px));max-height:min(540px,calc(100dvh - 14px - var(--release-badge-height,68px) - 22px));overflow:auto;overscroll-behavior:contain;padding:20px 22px;background:#10242ff7;color:#f3eddd;border:1px solid #d9ba7b;border-radius:8px;box-shadow:0 16px 45px #0009;text-align:left;line-height:1.6;letter-spacing:0;scrollbar-gutter:stable;overflow-wrap:anywhere}
.release-notes-panel:focus-visible{outline:3px solid #ffe3a2;outline-offset:2px}
.release-notes-panel h2{font-family:var(--font-ui);font-size:22px;line-height:1.3;margin:0 0 20px;color:#fff0c8}
.release-notes-panel section+section{margin-top:20px;padding-top:16px;border-top:1px solid #d9ba7b70}
.release-notes-panel h3{font-size:18px;line-height:1.5;margin:0 0 10px;color:#fff0c8;display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.release-current{font-size:12px;font-weight:600;letter-spacing:.3px;padding:2px 8px;background:#30434a;color:#fff0c8;border:1px solid #d9ba7b85;border-radius:4px}
.release-notes-panel ul{padding-left:20px;margin:0;font-size:15px;line-height:1.65}
.release-notes-panel li+li{margin-top:9px}

/* Known shrines stay reachable when the realm list grows. */
.map-panel .travel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.map-panel .travel-grid button{min-width:0;min-height:48px;padding:10px 8px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.map-panel .travel-label{font-size:14px!important}
.map-panel .travel-grid button[data-travel-kind="dungeon"]{position:relative;padding-left:42px;text-align:left;border-color:#a6c9c5}
.map-panel .travel-grid button[data-travel-kind="dungeon"]::before{content:"";position:absolute;left:10px;top:calc(50% - 13px);width:24px;height:26px;background:#a6c9c5;mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 26"%3E%3Cpath d="M3 24V10a9 9 0 0 1 18 0v14M7 23V10a5 5 0 0 1 10 0v4M9 24v-3h3v-3h3v-3h6M3 10h4M4 6l4 2M8 2l2 4M16 2l-2 4M20 6l-4 2M17 10h4" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E') center/contain no-repeat}
.map-panel .travel-grid button[data-travel-kind="dungeon"]::after{content:attr(data-type-label);display:block;font-size:12px;line-height:1.5;color:#a6c9c5}
.realm-travel{margin-top:24px;padding-top:16px;border-top:1px solid var(--muted)}
.realm-travel h3{font-size:18px;line-height:1.5;margin:0 0 16px;color:var(--gold)}
.realm-travel h4{font-size:16px;line-height:1.5;margin:18px 0 10px;overflow-wrap:anywhere}
/* The painted atlas is a hierarchy; only the selected area's destinations expand. */
.map-panel{max-width:1180px;padding:22px 28px;background:#eee0be;color:#292218;border:3px double #6c5937;box-shadow:0 20px 80px #0009}
.map-panel>.eyebrow{display:none}.map-panel h2{font-size:28px;margin:0 0 14px}.map-panel .map-legend{color:#473e30;font-size:13px!important}
.travel-atlas h3,.travel-atlas h4{font-family:var(--font-story);color:#292218;line-height:1.4;margin:0 0 12px;overflow-wrap:anywhere}
.atlas-heading{font-size:22px}.atlas-worlds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.atlas-world{display:flex;flex-direction:column;padding:0;min-width:0;border:1px solid #776241;background:#e5d3a8;color:#292218;border-radius:5px;overflow:hidden}.atlas-painting{background-image:url('../images/ui/travel-atlas-v1.png');background-size:200% 200%;background-repeat:no-repeat}.atlas-painting[data-atlas-art="0"]{background-position:0 0}.atlas-painting[data-atlas-art="1"]{background-position:100% 0}.atlas-painting[data-atlas-art="2"]{background-position:0 100%}.atlas-painting[data-atlas-art="3"]{background-position:100% 100%}.atlas-world .atlas-painting{display:block;width:100%;aspect-ratio:1.1}.atlas-world-name{padding:12px;font-size:17px;font-weight:700;line-height:1.5;overflow-wrap:anywhere}.atlas-world:hover{border-color:#3b2f1b;background:#d3bc85}
.atlas-back{min-height:44px;margin:0 0 14px;padding:8px 12px;color:#292218;background:#eadab4;border-color:#776241;font-size:15px}.atlas-back:hover{background:#dac593}
.atlas-layout{display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(230px,1fr) minmax(230px,1fr);gap:16px;align-items:start}.atlas-region{position:relative;min-height:340px;border:1px solid #8b744a;border-radius:6px;overflow:hidden}.atlas-map-nodes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;padding:30px 18px;align-content:space-around;min-height:340px}.atlas-pin{width:48px;min-height:48px;justify-self:center;border:2px solid #58452a;border-radius:50%;background:#f8eccce8;color:#2b2115;font-size:17px;font-weight:800;box-shadow:0 2px 10px #0006}.atlas-pin:hover,.atlas-pin[aria-pressed="true"]{background:#fff2b8;border-color:#382914;box-shadow:0 0 0 3px #c48e3b}.atlas-area-list{display:grid;gap:8px}.atlas-area{min-height:48px;width:100%;padding:9px 12px;color:#292218;background:#f8efda;border:1px solid #917c53;text-align:left;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.atlas-area:hover,.atlas-area[aria-pressed="true"]{background:#dfc992;border-color:#58452a}.atlas-area[aria-pressed="true"]{box-shadow:inset 4px 0 #795422;font-weight:700}
.map-panel .atlas-targets .travel-grid{grid-template-columns:minmax(0,1fr)}.map-panel .atlas-targets .travel-grid button{background:#f8efda;color:#292218;border-color:#917c53;min-height:52px;padding:10px 12px;text-align:left}.map-panel .atlas-targets .travel-grid button:hover{background:#dfc992}.map-panel .atlas-targets .travel-grid button:disabled{opacity:.6}.map-panel .atlas-targets .travel-grid button::before{display:none}.map-panel .atlas-targets .travel-grid button::after{display:block;position:static;content:attr(data-type-label);font-size:12px;color:#51432d;background:none;mask:none}
.atlas-area[data-travel-kind="dungeon"]::after,.atlas-area[data-travel-kind="raid"]::after{display:block;content:attr(data-type-label);font-size:12px;font-weight:400;color:#51432d}.atlas-type-legend{display:flex;flex-wrap:wrap;gap:12px 22px;padding-top:16px;font-size:13px}.atlas-type::before{display:inline-block;vertical-align:middle;width:23px;height:25px;margin-right:5px;content:'';background:#5f4322;mask:var(--atlas-icon) center/contain no-repeat}.travel-atlas [data-travel-kind="rest"]{--atlas-icon:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 26"%3E%3Cpath d="M3 5Q12 8 21 5M5 11H19M8 7V24M16 7V24" fill="none" stroke="black" stroke-width="2.5" stroke-linecap="round"/%3E%3C/svg%3E')}.travel-atlas [data-travel-kind="dungeon"]{--atlas-icon:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 26"%3E%3Cpath d="M3 24V10a9 9 0 0 1 18 0v14M7 23V10a5 5 0 0 1 10 0v4M9 24v-3h3v-3h3v-3h6M3 10h4M4 6l4 2M8 2l2 4M16 2l-2 4M20 6l-4 2M17 10h4" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/%3E%3C/svg%3E')}.travel-atlas [data-travel-kind="raid"]{--atlas-icon:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 26"%3E%3Cpath d="M4 23c8 0 9-4 9-9l5 1 4-5-8-3-2-5-4 6-5-3 2 7-3 5 6-2c1 5-1 6-4 8z" fill="black"/%3E%3Ccircle cx="13" cy="10" r="1" fill="white"/%3E%3C/svg%3E')}.atlas-pin[data-travel-kind="dungeon"]{border-radius:5px}.atlas-pin[data-travel-kind="raid"]{border-style:dashed}.atlas-local-map{margin-top:16px;padding-top:10px;border-top:1px solid #917c53}.atlas-local-map summary{min-height:44px;padding:10px 4px;color:#463723;cursor:pointer;font-size:15px}.map-panel button:focus-visible,.atlas-local-map summary:focus-visible{outline:3px solid #5c2c8a;outline-offset:3px}.map-panel .primary{min-height:48px;border-color:#58452a;background:#392e22;color:#fff0cd}

.atlas-area-list{max-height:min(46vh,440px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:4px 8px 4px 4px}

/* The backpack and equipment are two readable windows inside one paused dialog. */
#inventory{z-index:25;display:flex;align-items:center;justify-content:center;padding:18px;background:#061019df;overflow:hidden}
#game:has(#inventory:not([hidden])) #toast{z-index:26;bottom:24px;background:#102028;font-size:16px}
#towerExitConfirm{z-index:160;background:#061019dc;padding:24px;overflow:auto}
.tower-exit-panel p{font-size:18px;color:#fff0cf}.tower-exit-panel button:disabled{opacity:.45;cursor:wait}
.tower-panel button:disabled{opacity:.45;cursor:not-allowed}.tower-powers button{text-align:left;line-height:1.5}.tower-stock{display:grid;gap:12px}.tower-stock>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border:1px solid #bd9a5980}.tower-stock b{grid-column:1/-1;line-height:1.4}.tower-stock button{min-height:44px;padding:8px 12px;background:#243c45;color:#fff0cf;border:1px solid #bd9a59;border-radius:4px;font:inherit}.tower-stock button:focus-visible{outline:3px solid #ffe4a2;outline-offset:3px}.tower-panel h3{color:#ffe4a2}
.inventory-shell{width:min(1000px,100%);max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;background:#11232bf7;border:1px solid #c9b27b;border-radius:14px;padding:0 22px 22px;color:#f5edda;box-shadow:0 22px 65px #000a;scrollbar-gutter:stable;line-height:1.6}
.inventory-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;background:#11232b;border-bottom:1px solid #c9b27b66}
.inventory-header h2{font:32px var(--font-story);margin:3px 0 0;line-height:1.25;color:#fff0c8}
.inventory-header .eyebrow{color:#e2cfab;letter-spacing:1px}
#inventory button{min-height:48px;border-radius:7px;color:#fff2cf;font:inherit;cursor:pointer}
#inventory button:focus-visible{outline:3px solid #fff0ad;outline-offset:3px}
#closeInventory{flex:none;padding:10px 16px;border:1px solid #d5bc87;background:#243e48;font-weight:700!important}
#closeInventory:hover{background:#3b5960}
.inventory-windows{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;padding-top:20px}
#inventory h3{font-size:21px;line-height:1.4;margin:0 0 9px;color:#ffebbd}
#inventory p{font-size:15px;line-height:1.65;margin:0 0 12px;color:#f3e7d1}
.inventory-bag{position:relative;min-height:460px;min-width:0;background:url('../images/ui/samurai-travel-bag-v1.png') center/100% 100% no-repeat;border-radius:22px;display:flex;align-items:stretch;padding:94px 14% 78px}
.inventory-bag-content{width:100%;min-width:0;padding:14px 12px;background:#101b28e8;border:1px solid #c5b4868c;border-radius:8px;align-self:stretch;box-shadow:0 6px 18px #07101ba6}
#inventoryCapacity{font-size:14px!important;color:#f1d9b3!important}
#inventoryCount{font-size:14px!important;font-weight:700;color:#ffe3af!important}
.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-content:start}
#inventory .inventory-item{min-width:0;padding:5px;background:#17100de8;border:1px solid #d4aa71a6;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px}
.inventory-item canvas{display:block;width:100%;max-width:96px;aspect-ratio:1;height:auto;border:1px solid #8d9da8;border-radius:6px;background:radial-gradient(ellipse at 50% 42%,#354858,#101a25 78%);opacity:1;filter:brightness(1.18) contrast(1.08) saturate(1.12) drop-shadow(0 1px 1px #fff0cf80)}
.inventory-item span{font-size:13px;line-height:1.45;overflow-wrap:anywhere;color:#fff0cf}
/* Selection must not shrink labels or resize the item/weapon hit targets. */
#inventory [data-inventory-item][aria-pressed="true"]{border-color:#ffe5a2;box-shadow:inset 0 0 0 1px #ffe5a2;background:#6a4c2f;color:#fff}
.inventory-item:hover{background:#513b29!important}
#inventory .inventory-empty{padding:22px 4px;text-align:center;color:#f0d9b7;font-style:italic}
.inventory-equipment{min-width:0;border:1px solid #a99060;border-radius:12px;padding:22px 18px;background:radial-gradient(ellipse at 43% 55%,#30414c,#101d29 75%);box-shadow:inset 0 0 25px #050f1680}
.inventory-character{position:relative;min-height:355px;display:flex;align-items:center;justify-content:flex-start;padding-right:60px}
#inventoryMomo{display:block;width:min(100%,330px);height:auto;filter:drop-shadow(0 12px 8px #060c1699)}
.inventory-weapon-slot{position:absolute;right:0;top:49%;transform:translateY(-10%);width:120px;text-align:center;font-size:15px;color:#ffebbf}
.inventory-weapon-slot::before{content:"";position:absolute;top:48px;right:100%;width:35px;border-top:2px solid #ccb279;transform:rotate(-12deg);transform-origin:right}
.inventory-weapon-slot>span{display:block;margin-bottom:5px;font-weight:700;text-shadow:0 2px 3px #07121c}
#inventoryWeapon{width:100%;padding:5px 8px 9px;border:1px solid #dfc18c;background:#0e202ce8;display:grid;justify-items:center;gap:4px;line-height:1.4;font-size:13px!important}
.inventory-sword{width:81px;height:108px;display:block;filter:drop-shadow(0 0 5px #dfc78045)}
#inventoryEquipped{display:block;font-size:13px;margin-top:4px;color:#e4d8bb}
.inventory-details{margin-top:20px;padding:18px 20px;border:1px solid #c6ab7480;border-radius:8px;background:#0c1b25;min-height:150px}
.inventory-details .eyebrow{display:block;color:#d6bf8e;letter-spacing:1px;margin-bottom:5px}
#inventoryDetailName{font-size:22px;margin:0 0 8px}
#inventoryDetailText{margin:0}

@media(prefers-reduced-motion:reduce){#inventory{scroll-behavior:auto}#inventory button{transition:none}}

/* Reporting is a native, user-reviewed link, reachable from either menu. */
.bug-report-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:50px;padding:10px 16px;border-radius:6px;font-size:16px;font-weight:700;line-height:1.5;text-align:center;text-decoration:none}
.bug-report-label{display:inline-flex;align-items:center;gap:8px}
.bug-report-icon{width:20px;height:20px;flex:none}
.bug-report-link:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.menu-utilities{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}
#menu .menu-utilities>.menu-secondary{flex:1 1 auto;white-space:nowrap}
#pause .panel{max-height:90dvh;overflow-y:auto;padding:clamp(18px,4vw,42px);overscroll-behavior:contain}
/* Keep secondary pause actions as readable as Resume and the report link. */
#pause .panel p{font-size:16px;line-height:1.65}
#pause button,#pause .bug-report-link,#pause .language-chooser summary,#pause select{min-height:50px;min-width:0;max-width:100%;padding:12px 16px;font-size:16px;font-weight:700;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
#pause .language-picker{display:flex;flex-wrap:wrap;font-size:16px}
#pause .language-chooser{min-width:0;max-width:100%;flex:1}
#pause .language-options{min-width:0;width:100%}
#pause button:focus-visible,#pause .bug-report-link:focus-visible,#pause summary:focus-visible,#pause select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#pause .bug-report-link{margin-top:14px;width:100%}

/* Developer access stays outside the player menus. */
#devPanel{z-index:100;padding:16px;background:var(--ink);overflow-y:auto}
#devPanel .dev-panel{width:100%;max-width:680px;max-height:calc(100dvh - 32px);overflow-y:auto;text-align:left;padding:clamp(20px,4vw,40px)}
#devPanel h2{font-size:clamp(28px,5vw,40px);line-height:1.15;overflow-wrap:anywhere}
#devPanel p{font-size:17px;line-height:1.65;overflow-wrap:anywhere;color:var(--paper)}
#devPanel .dev-version{font-size:15px;color:var(--gold)}
#devPanel button{min-height:48px;max-width:100%;padding:12px 18px;font-size:17px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
#devPanel button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#devPanel button:disabled{cursor:not-allowed;opacity:.6}
#devStatus{margin:16px 0}
#devPanel #devClose{margin-top:16px;width:100%}
.dev-tool-list{display:grid;gap:12px;margin-bottom:16px}
.dev-cache-setting{border:1px solid var(--gold);border-radius:6px;padding:14px;min-width:0}
.dev-cache-setting label{display:flex;align-items:center;gap:12px;min-height:48px;font-size:17px;font-weight:700;cursor:pointer}
#devPanel .dev-cache-setting input{flex:0 0 24px;width:24px;height:24px;min-height:24px;padding:0;accent-color:var(--gold)}
#devPanel .dev-cache-setting input:focus-visible{outline:3px solid var(--paper);outline-offset:4px}
.dev-cache-setting p{font-size:16px;line-height:1.5;margin:8px 0 0}
#quest .kiba-shield-status{margin:10px 0 0;padding:5px 8px;border:1px solid var(--gold);border-radius:5px;background:var(--ink);color:var(--paper);font-size:15px;line-height:1.4}
.training-stats.training-with-shield{grid-template-columns:repeat(2,minmax(0,1fr))}
#shieldTraining p{font-size:15px}
#shieldTraining b{font-size:14px}
.dev-tool-fields{display:grid;gap:8px;border:1px solid var(--gold);border-radius:6px;padding:14px;min-width:0}
.dev-tool-fields label{font-size:17px;font-weight:700}
#devPanel input,#devPanel select{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:10px;font:inherit;color:var(--paper);background:var(--ink);border:1px solid var(--gold);border-radius:4px}
#devPanel input:focus-visible,#devPanel select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#devTestNotice{position:absolute;z-index:6;left:12px;bottom:140px;max-width:calc(100% - 24px);padding:8px 12px;background:var(--ink);color:var(--paper);border:2px solid var(--gold);border-radius:4px;text-align:center;font-size:15px;font-weight:700;pointer-events:none}
#devInvincibleNotice{position:absolute;z-index:6;right:12px;bottom:80px;max-width:calc(100% - 24px);padding:8px 12px;background:var(--ink);color:var(--paper);border:2px solid var(--gold);border-radius:4px;font-size:16px;font-weight:700;pointer-events:none}

@media(prefers-reduced-motion:reduce){#devPanel *{transition:none;animation:none;scroll-behavior:auto}}
#coinPurse{display:flex;align-items:center;gap:5px;flex-shrink:0;color:#ffe1a4;font-size:16px;text-shadow:0 1px 3px #000}
#coinPurse img{width:30px;height:34px;object-fit:contain}
#minimap{position:absolute;right:18px;bottom:98px;z-index:3;border:2px solid #d2ba81;border-radius:7px;overflow:hidden;box-shadow:0 3px 15px #0009;pointer-events:none}
#minimap canvas{display:block;width:220px;height:140px}
.shop-panel{width:min(1000px,100%);max-width:1000px;max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;text-align:left}
.shop-panel h2{margin:0 0 16px}.shop-panel p{font-size:16px!important;line-height:1.65;color:#f5edda}
#shopCoins{font-weight:700;color:#ffe1a4}.shop-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.shop-item{display:flex;flex-direction:column;align-items:center;border:1px solid #ba9c67;border-radius:10px;padding:16px;background:#0c1b25;min-width:0}
.shop-item h3{font:700 19px var(--font-story);color:#ffe8b5;line-height:1.4;text-align:center;margin:12px 0}
.shop-item p{align-self:stretch;flex:1}.shop-item button{width:100%;min-height:48px;font-size:15px;line-height:1.5;padding:10px}
.shop-item button:disabled{opacity:1;color:#bac2c6;background:#24323c;border-color:#778188;cursor:default}
.shop-item canvas{width:112px;height:112px;border:1px solid #8d9da8;border-radius:6px;background:radial-gradient(ellipse at 50% 42%,#354858,#101a25 78%);filter:brightness(1.18) contrast(1.08) saturate(1.12)}
#shopStatus{min-height:1.7em;margin:12px 0}#closeShop{min-height:48px;margin:0}
#inventory .inventory-item{position:relative}#inventory .inventory-quantity{position:absolute;top:7px;right:7px;min-width:28px;padding:2px 5px;border:1px solid #ffe5a2;border-radius:5px;background:#101d29;color:#fff0cf;font-size:14px;font-weight:700}
#useInventoryItem,#assignQuickHeal{min-height:48px;font-size:16px;padding:10px 24px;margin:4px 12px 4px 0}#inventoryQuantity{font-weight:700;color:#ffe1a4}
#inventoryQuickHeal{color:#ffe1a4;overflow-wrap:anywhere}
.dream-active #coinPurse{display:none!important}

#journeyHUD{position:absolute;left:35px;top:108px;width:350px;max-width:calc(100% - 70px);display:flex;flex-direction:column;gap:8px;pointer-events:none}
#journeyHUD #quest{position:static;max-width:none;width:100%;margin:0}
#compass{display:grid;grid-template-columns:56px minmax(0,1fr) 44px;align-items:center;gap:9px;margin-top:10px;padding-top:10px;border-top:1px solid #d8bd80}
#compass>img{width:56px;height:68px;object-fit:contain;filter:drop-shadow(0 1px 2px #000)}
.compass-copy{display:flex;flex-direction:column;min-width:0;gap:3px;color:#fff2cf;font-size:14px;line-height:1.4}
#compassLabel{font-size:15px;color:#ffe0a3}#compassTarget{overflow-wrap:anywhere}#compassDirection{font-size:13px;color:#d5edf4}
#compassArrow{display:block;font:700 40px/1 Segoe UI Symbol,Arial,sans-serif;text-align:center;color:#ffe2a0;text-shadow:0 2px 2px #000,-1px 0 #000,1px 0 #000}

/* Secret grave: readable stone-and-bronze treatment without revealing the answer. */
#slayerSpell{padding:18px;overflow:auto;overscroll-behavior:contain}
#slayerSpell .slayer-spell-panel{width:min(570px,100%);max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;background:linear-gradient(145deg,#20272c,#11181e);border:2px solid #c1a16b;text-align:left}
#slayerSpell h2{color:#fff0d1;overflow-wrap:anywhere}
#slayerSpell p{font-size:17px;line-height:1.65;color:#f0e8dc}
#slayerSpell label{display:block;margin:20px 0 8px;font-size:18px;font-weight:700;color:#ffe2aa}
#slayerSpellInput{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:10px 12px;font:inherit;font-size:20px;color:#fff5e1;background:#080f15;border:2px solid #c1a16b;border-radius:4px}
#slayerSpellInput[aria-invalid="true"]{border-color:#ffb4a6}
#slayerSpellMessage{min-height:1.65em;margin:10px 0;color:#ffc4b7!important}
.slayer-spell-actions{display:flex;flex-wrap:wrap;gap:12px}
#slayerSpell button{min-height:48px;min-width:0;flex:1 1 180px;margin:0;font-size:17px;line-height:1.4;padding:12px 18px;justify-content:center}
#slayerSpell .secondary{margin:0;border:1px solid #d4bb8a;color:#fff0d1;background:#27323a}
#slayerSpell input:focus-visible,#slayerSpell button:focus-visible{outline:3px solid #fff0b3;outline-offset:4px}
#dialog.slayer-warning #dialogTitle{color:#831e24}
#dialog.slayer-warning .dialogue-content{outline:3px solid #a5262b;outline-offset:6px}

.resolution-notice{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;overflow:auto;background:var(--ink);color:var(--paper)}.resolution-notice p{width:100%;max-width:560px;margin:auto;font-size:18px;line-height:1.7;overflow-wrap:anywhere}.resolution-notice:focus-visible{outline:3px solid var(--gold);outline-offset:-6px}

#sellInventoryItem,#confirmInventorySale,#cancelInventorySale,#shopSell{min-height:48px;font-size:16px;padding:10px 24px;margin:4px 12px 4px 0}#inventorySaleConfirm{padding:14px;border:1px solid #d9ba7b;border-radius:8px;background:#172938}#inventorySellHint,#inventoryTradeStatus{font-size:16px;line-height:1.6;color:#ffe1a4;overflow-wrap:anywhere}#sellInventoryItem:disabled{opacity:1;color:#bac2c6;background:#24323c;border-color:#778188;cursor:default}

/* A shared paused scene, with the world's painted scroll and explicit speakers. */
#dialog.dialogue-overlay{display:flex;align-items:flex-end;justify-content:center;padding:24px;background:linear-gradient(0deg,#071118b8,transparent 80%);overflow:auto;z-index:15}
.dialogue-stage{display:grid;grid-template-columns:140px minmax(0,1fr) 140px;align-items:end;gap:8px;width:min(1600px,100%);margin:auto auto 0}
.dialogue-portrait{display:block;width:140px;height:260px;object-fit:contain;filter:brightness(.72);border-bottom:2px solid #cfb67c;border-radius:16px 16px 0 0;background:linear-gradient(0deg,#142934c9,transparent 90%)}
.dialogue-portrait.speaking{filter:none;outline:2px solid #f4d895;outline-offset:4px;box-shadow:0 8px 24px #e7c27e44}
.dialogue-scroll{grid-column:2;grid-row:1;min-width:0;aspect-ratio:1860/846;position:relative;background:url('../images/ui/dialogue-japan-v1.png') center/contain no-repeat}
#dialogPortraitLeft{grid-column:1;grid-row:1}#dialogPortraitRight{grid-column:3;grid-row:1}
#dialog[data-theme=yomi] .dialogue-scroll{background-image:url('../images/ui/dialogue-yomi-v1.png')}
#dialog[data-theme=heaven] .dialogue-scroll{background-image:url('../images/ui/dialogue-heaven-v1.png')}
#dialog[data-theme=shadow] .dialogue-scroll{background-image:url('../images/ui/dialogue-shadow-v1.png')}
.dialogue-content{position:absolute;inset:24% 19% 24%;display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;color:#241b19}
#dialog[data-theme=yomi] .dialogue-content{top:26%}
#dialog[data-theme=heaven] .dialogue-content{inset:28% 19% 25%}
#dialog[data-theme=shadow] .dialogue-content{inset:28% 20% 24%}
.dialogue-content header{flex:none}
#dialogLabel{color:#56402a;font-size:12px!important;letter-spacing:.1em}
#dialogTitle{color:#302219;font:700 25px/1.15 var(--font-story);letter-spacing:0;margin:4px 0;overflow-wrap:anywhere}
#dialogSpeaker{display:block;color:#3c2820;font-size:18px;margin-top:4px}
#dialogText{flex:1;min-height:0;overflow:auto;padding:2px 8px 2px 2px;scrollbar-color:#58472e #e0cda3}
#dialogText p{font-size:18px;line-height:1.6;margin:0;overflow-wrap:anywhere;color:#241b19}
.dialogue-content footer{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:4px;flex-wrap:wrap}
#dialogPage{font-size:15px;font-weight:700;color:#4a3829;white-space:nowrap}
#dialog #dialogOk{min-height:48px;min-width:120px;max-width:100%;padding:9px 20px;font-size:17px;letter-spacing:0;background:#2d3e3a;color:#fff4da;border:1px solid #4b4935;border-radius:6px;justify-content:center;margin:0}
#dialogText:focus-visible,#dialog #dialogOk:focus-visible{outline:3px solid #2a514c;outline-offset:3px}
#game:has(#dialog:not([hidden]))>:not(#dialog):not(#devPanel){pointer-events:none}

/* Shared Japanese-inspired typography; controls retain the clear UI face. */
h1,h2,h3{font-family:var(--font-story)}input,select,textarea{font-family:var(--font-ui)}#gameTitle{font-weight:600}.intro{font-weight:500}#dialogText p{font-family:var(--font-story);font-weight:500}#dialogTitle{font-weight:600}

/* Starting style selection: one scrollable desktop dialog, with explicit radio state. */
.weapon-selection-overlay{z-index:30;background:#091318dc;display:flex;align-items:center;justify-content:center;padding:24px}
.weapon-selection-panel{width:min(1080px,100%);max-width:1080px;max-height:calc(100dvh - 48px);overflow:auto;padding:32px;background:#101e25f7;border:1px solid #d9ba7b;scroll-padding:16px}
.weapon-selection-panel h2{font-size:clamp(26px,2.4vw,34px);line-height:1.3;margin:0 0 14px;letter-spacing:0}
.weapon-selection-panel>p{font-size:18px;color:#e0ddcf;line-height:1.6;margin:0 0 24px}
.weapon-style-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.weapon-style-choice{display:flex;flex-direction:column;gap:16px;text-align:left;padding:22px 20px;position:relative;background:#142730;color:#f3eee0;border:2px solid #84928e;min-width:0;min-height:220px}
.weapon-style-choice strong{font-size:21px;line-height:1.5;font-family:var(--font-story);padding-right:24px}
.weapon-style-choice span{font-size:17px;line-height:1.7;overflow-wrap:break-word}
.weapon-style-choice[aria-checked="true"]{border-color:#f1d493;background:#293832;box-shadow:inset 0 0 0 2px #101e25}
.weapon-style-choice[aria-checked="true"]::after{content:'✓';position:absolute;top:22px;right:15px;color:#ffe7aa;font-size:23px;font-weight:800}
.weapon-selection-actions{display:flex;justify-content:flex-end;gap:18px;margin-top:28px;flex-wrap:wrap}
.weapon-selection-actions button{font-size:18px;min-height:52px;min-width:160px;padding:14px 24px;justify-content:center}
.weapon-selection-panel button:focus-visible{outline:3px solid #ffe4a2;outline-offset:4px}

/* Camp service controls remain reachable at supported desktop zoom. */
#campServiceContent{display:grid;gap:20px} .camp-service-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-top:1px solid currentColor;padding-top:16px}.camp-service-row h3{flex-basis:100%;margin:0}.camp-service-row button{min-height:48px;min-width:140px}.camp-service-row p{flex-basis:100%;margin:0;font-size:16px}#campServiceStatus{min-height:1.5em}

#campService .shop-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}#campService button{min-height:48px;padding:10px 18px;font-size:16px}#campService button:focus-visible{outline:3px solid #ffe4a2;outline-offset:4px}

/* Equipment slots share the inventory icon contrast and stable sizing. */
.inventory-character{min-height:410px;padding-right:120px}.inventory-weapon-slot{top:52%;transform:none;width:110px}.inventory-talisman-slot{position:absolute;right:0;top:6%;width:110px;text-align:center;font-size:15px;color:#ffebbf}.inventory-talisman-slot>span{display:block;font-weight:700;margin-bottom:5px}#inventoryTalisman{width:100%;padding:5px 8px;border:1px solid #dfc18c;background:#0e202ce8;display:grid;justify-items:center;gap:4px;font-size:13px!important;line-height:1.4}#inventoryTalismanArt{width:81px;height:81px;background:radial-gradient(ellipse at 50% 42%,#354858,#101a25 78%);filter:brightness(1.18) contrast(1.08) saturate(1.12)}#inventoryTalismanName{overflow-wrap:anywhere}

/* Character values remain visible beside equipment, including fractional armor damage. */
.inventory-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:16px 0 0;padding:14px;border:1px solid #c6ab7480;border-radius:8px;background:#0c1b25}
.inventory-stat{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.inventory-stat>span{font-size:15px;line-height:1.45;color:#f1dfb7;overflow-wrap:anywhere}
.inventory-stat>strong{margin:0;font-size:18px;line-height:1.45;font-weight:700;color:#fff4d7;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.inventory-stat:first-child,.inventory-stat-armor{grid-column:1/-1}.inventory-stat-armor{font-size:16px;line-height:1.6;color:#fff4d7;overflow-wrap:anywhere}

#campExecutionWarning{margin:10px 0 0;padding:10px 14px;border:2px solid #ffd487;border-radius:6px;background:#221626f2;color:#fff1cf;font:600 16px/1.4 "Kiba UI",sans-serif;text-align:center;white-space:normal;box-shadow:0 3px 16px #0009}

/* The memory-scroll actions are primary dialog choices, readable at the desktop minimum. */
#dungeonMenu .travel-grid button{font-size:16px;line-height:1.5;min-height:48px;padding:10px 14px;overflow-wrap:anywhere}

/* Large point-budget health totals must leave the desktop HUD controls reachable. */
#health .health-count{font-family:'Kiba UI',sans-serif;letter-spacing:0;font-size:20px;margin-left:8px;color:#fff0cf}

/* Reuses the existing dark/gold panels; all duel controls stay desktop-sized. */
.duel-panel{max-width:760px;max-height:calc(100vh - 48px);overflow:auto;padding:28px 36px;font-size:17px;line-height:1.55}
.duel-panel h2{font-size:34px;line-height:1.2;margin:0 0 18px}
.duel-panel label{display:block;margin-top:15px;font-weight:700;color:#fff0cf}
.duel-panel select,.duel-panel input{display:block;width:100%;min-height:48px;font-size:19px;padding:10px 14px;background:#172b35;color:#fff0cf;border:1px solid #bd9a59}
#duelCode{font-family:var(--font-ui);letter-spacing:.15em;text-transform:uppercase}
.duel-actions{display:grid;grid-template-columns:minmax(0,280px);justify-content:center;gap:10px;margin:20px 0}
.duel-actions button,.duel-panel>button,#duelMatchLeave,.duel-result button{display:flex;align-items:center;justify-content:center;flex:none;width:280px;max-width:100%;min-width:0;height:48px;min-height:48px;padding:10px 16px;border:1px solid #bd9a59;border-radius:4px;background:#243c45;color:#fff0cf;font:600 17px/1.4 var(--font-ui);letter-spacing:0;gap:8px;text-align:center;white-space:normal}.duel-panel>button,.duel-result button{margin-inline:auto}.duel-actions button:hover,.duel-panel>button:hover,#duelMatchLeave:hover,.duel-result button:hover{background:#36545e;color:#fff0cf;border-color:#e1c489}.duel-actions button:disabled,.duel-panel>button:disabled,.duel-result button:disabled{opacity:.65;cursor:default}.duel-panel button:focus-visible,#duelMatchLeave:focus-visible,.duel-result button:focus-visible{outline:3px solid #ffe4a2;outline-offset:3px}
.duel-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.duel-participant{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:12px;align-items:center;min-height:100px;padding:12px;border:1px solid #91a8ad;background:#10212b;color:#f7edd6;overflow-wrap:anywhere}.duel-participant img{grid-column:1;grid-row:1/4;image-rendering:auto}.duel-participant strong,.duel-participant span{grid-column:2;line-height:1.5}.duel-participant span{font-size:15px}.duel-participant[data-ready="true"]{border-color:#badba8}.duel-participant[data-ready="true"] span:last-child{font-weight:700;color:#d7efc8}#duelStatus{min-height:2em;color:#ffe7b4}
#duelHUD{position:absolute;inset:0;z-index:24;pointer-events:none;color:#fff0cf}
.duel-match-header{display:flex;align-items:center;gap:20px;margin:20px;background:#10212bed;border:1px solid #b79a60;padding:16px;font-size:17px}
.duel-health{flex:1;min-width:0;display:grid;grid-template-columns:1fr auto;gap:6px 12px}
.duel-health strong{grid-column:1/-1;overflow-wrap:anywhere}
.duel-health progress{width:100%;height:18px;accent-color:#c28471;align-self:center}
#duelScore{max-width:250px;text-align:center}
#duelMatchLeave,.duel-result button{pointer-events:auto;min-height:48px;font-size:17px;padding:10px 16px}
.duel-result{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);padding:20px 36px;border:1px solid #ddbd80;background:#10212bf5;text-align:center;pointer-events:auto;min-width:330px}
.duel-result h2{font-size:32px;margin:0 0 12px}
.duel-match-footer{position:absolute;bottom:14px;left:20px;right:20px;background:#10212be8;padding:8px 14px;font-size:15px;line-height:1.5;text-align:center}
.duel-match-footer p{margin:3px 0}
#duelLiveStatus{position:absolute;top:135px;left:50%;transform:translateX(-50%);background:#10212be8;padding:8px 20px;font-size:20px;max-width:80%;text-align:center}
#duelLiveStatus:empty{display:none}
#duelButton{min-height:48px;font-size:18px}

/* Session-only diagnostics are nonmodal and never become an ARIA live feed. */
.dev-live-log{position:absolute;right:18px;bottom:18px;z-index:27;width:min(520px,calc(100% - 36px));max-height:min(44vh,420px);display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:2px solid #c2a36b;border-radius:8px;background:#0b1722f5;color:#fff0cf;box-shadow:0 4px 22px #000b;font:16px/1.5 var(--font-ui);text-align:left;pointer-events:auto;overflow:hidden}
.dev-live-log[hidden]{display:none}.dev-live-log-header{display:grid;gap:8px}.dev-live-log h2{font:700 21px/1.35 var(--font-ui);margin:0;color:#fff0cf;letter-spacing:0}
.dev-live-log-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}.dev-live-log-controls button{min-height:44px;min-width:64px;padding:8px 12px;font:600 15px/1.4 var(--font-ui);letter-spacing:0;border:1px solid #c2a36b;border-radius:5px;background:#24333b;color:#fff0cf;text-align:center;justify-content:center}
.dev-live-log-controls label{display:flex;align-items:center;gap:8px;min-height:44px;font:600 15px/1.4 var(--font-ui);color:#fff0cf;cursor:pointer}.dev-live-log-controls input{width:20px;height:20px;accent-color:#e0bd76;flex:none}
.dev-live-log-info,.dev-live-log-empty{margin:0;font-size:14px;line-height:1.5;color:#efe0bf}.dev-live-log-entries{margin:0;padding:0 5px 0 0;list-style:none;overflow:auto;min-height:52px;max-height:240px;overscroll-behavior:contain;scroll-behavior:auto;overflow-wrap:anywhere;scrollbar-gutter:stable}
.dev-live-log-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;padding:7px 0;border-top:1px solid #6b6c6880;font-size:15px;line-height:1.5;color:#fff0cf}.dev-live-log-time{font-size:13px;font-variant-numeric:tabular-nums;color:#c9d5e2}.dev-live-log-damage,.dev-live-log-received{color:#ffc9b9}.dev-live-log-preparing,.dev-live-log-attack{color:#ffe09e}.dev-live-log-defeated{color:#c5e8cc}
.dev-live-log button:focus-visible,.dev-live-log input:focus-visible,.dev-live-log-entries:focus-visible{outline:3px solid #ffe4a2;outline-offset:3px}
#bossHud>div:has(#devBossHealth:not([hidden])){position:relative;min-height:22px}#devBossHealth{position:absolute;inset:0;display:grid;place-items:center;font:700 14px/1.3 var(--font-ui);color:#fff;text-shadow:0 1px 2px #000,1px 0 2px #000,-1px 0 2px #000;pointer-events:none}#devBossHealth[hidden]{display:none}

.duel-participant[data-team="0"]{border-left:4px solid #ffaaa0}.duel-participant[data-team="1"]{border-left:4px solid #a9ceff}#duelFighter0{color:#ffaaa0}#duelFighter1{color:#a9ceff}

/* Optional combat readouts share the help panel's accessible controls. */
.combat-settings fieldset{margin:0;padding:0;border:0;min-width:0}.combat-settings legend{font-size:17px;font-weight:700;color:#ffe0a2;margin-bottom:10px}.combat-settings label{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 4px;font-size:16px;line-height:1.45;color:#fff1d3;cursor:pointer}.combat-settings input{flex:none;width:22px;height:22px;accent-color:#d9ba7b}.combat-settings label:focus-within{outline:3px solid #f9d989;outline-offset:3px;border-radius:4px}.support-link{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 16px;color:#fff1d3;text-decoration:none;border:1px solid #d9ba7b99;border-radius:5px;background:#263c40;font-size:16px;font-weight:700}.support-link:hover{background:#3b5052}.support-link:focus-visible{outline:3px solid #f9d989;outline-offset:3px}#pause .support-link{width:100%;color:inherit;border-color:#e3d7b12a;background:#122128ab}#pause .support-link:hover{background:#314046;border-color:#d9ba7b}
#dungeonMenuInfo{white-space:pre-line;}
.tower-panel{max-width:720px;max-height:90dvh;overflow-y:auto;padding:28px 36px}.tower-panel h2{font-size:32px;line-height:1.3;margin-top:0}.tower-panel p{font-size:16px;line-height:1.65}.tower-panel label{display:block;font-weight:700;margin:14px 0 8px}.tower-panel select{width:100%;min-height:48px;padding:10px 14px;background:#172b35;color:#fff0cf;border:1px solid #bd9a59;font-size:18px}.tower-actions{display:grid;gap:10px;margin-top:18px}.tower-actions button{min-height:48px;padding:10px 18px;border:1px solid #bd9a59;border-radius:4px;background:#243c45;color:#fff0cf;font-size:17px;font-weight:600}.tower-actions button:hover{background:#36545e}.tower-actions button:focus-visible,.tower-panel select:focus-visible{outline:3px solid #ffe4a2;outline-offset:3px}.tower-hud{position:absolute;top:128px;right:34px;display:grid;gap:6px;max-width:330px;background:#101b28ed;color:#fff0cf;padding:12px 18px;border:1px solid #c3aa70;pointer-events:none;font-size:17px;line-height:1.5}#towerWarning,#towerStorage{color:#ffe0a2;font-size:14px}#towerButton{min-height:48px;font-size:18px}

.atlas-area,.atlas-pin,.map-panel .atlas-targets .travel-grid button{position:relative}.atlas-area{padding-left:40px}.map-panel .atlas-targets .travel-grid button{padding-left:40px}.atlas-kind-icon{position:absolute;left:10px;top:calc(50% - 12px);width:22px;height:24px;background:#5f4322;mask:var(--atlas-icon) center/contain no-repeat;pointer-events:none}.atlas-pin{width:60px;padding-left:19px}.atlas-pin .atlas-kind-icon{left:5px;width:17px;height:20px;top:calc(50% - 10px)}

#assetLoading{position:absolute;z-index:150;bottom:0;left:0;right:0;padding:12px 24px;background:#09151cf5;color:#fff1d3;border-top:1px solid #d9ba7b75;max-height:40dvh;overflow-y:auto}#assetLoading .loading-meter{display:flex;align-items:center;gap:16px}#assetLoadingProgress{flex:1;height:8px;background:#314046;border:1px solid #d9ba7b75}#assetLoadingFill{display:block;height:100%;width:0;background:#d9ba7b}#assetLoadingPercent{min-width:5ch;text-align:right;font-size:16px;font-variant-numeric:tabular-nums}#assetLoadingText{margin:8px 0 0;font-size:16px;line-height:1.5;color:#fff1d3}#assetLoadingText:focus-visible{outline:2px solid #ffe3a2;outline-offset:2px}#assetLoading:not([data-failed]) #assetLoadingText{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}#assetLoading .loading-actions{display:flex;gap:12px;flex-wrap:wrap}#assetLoading button{pointer-events:auto;min-height:44px;padding:8px 20px;margin-top:8px}#assetLoading button:focus-visible{outline:3px solid #ffe3a2;outline-offset:3px}

#towerLeaderboard{position:fixed;z-index:120}.leaderboard-panel{max-width:780px;max-height:90dvh;overflow-y:auto;padding:28px 36px}.leaderboard-panel h2{font-size:32px}.leaderboard-panel p{font-size:15px;line-height:1.6}.leaderboard-panel label{display:block;font-weight:700;margin:12px 0 8px}.leaderboard-panel input{width:100%;min-height:48px;padding:10px 14px;background:#172b35;color:#fff0cf;border:1px solid #bd9a59;font-size:18px}.leaderboard-panel input:focus-visible{outline:3px solid #ffe4a2;outline-offset:3px}.leaderboard-table{overflow-x:auto}.leaderboard-table table{width:100%;border-collapse:collapse;font-size:16px}.leaderboard-table th,.leaderboard-table td{text-align:left;padding:10px 8px;border-bottom:1px solid #bd9a5955;overflow-wrap:anywhere}.leaderboard-table td:nth-child(2){max-width:220px}.leaderboard-panel button:disabled{opacity:.55}

/* Three independent adventure slots use the existing menu and panel design. */
.save-panel{max-width:850px;max-height:90dvh;overflow:auto;padding:25px 32px}.save-panel h2{margin:0 0 12px;font-size:30px}.save-panel p{line-height:1.6}.save-slot{padding:12px 16px;margin:10px 0;background:#142b35;border:1px solid #dac48a66;border-radius:7px}.save-slot h3{font-size:16px;color:#ffe5b0;margin:0 0 9px}.save-actions{display:flex;gap:10px;flex-wrap:wrap}.save-panel button{min-height:44px;padding:9px 16px;color:#fff0c8;background:#284354;border:1px solid #d9ba7b99;font:inherit;font-size:14px}.save-panel button:disabled{opacity:.45}.save-panel button:focus-visible{outline:3px solid #ffe3a2;outline-offset:3px}#saveConfirmation{padding:12px 16px;border:1px solid #ffe3a2;background:#302728}#saveStatus{min-height:22px;color:#ffe3a2}
