/* The world is the primary surface; UI stays at its edges. */
.action-vignette,.action-target,.action-map,.action-loot,.action-tip,.action-vitals,.action-hotbar-wrap,.action-help-button{display:none}
body:has(.action-game){background:#cddccd;overflow:hidden}
.game-layout:has(.action-game){max-width:none;padding:0;height:100dvh}
.action-game.game-shell{display:block;position:relative;width:100%;height:100dvh;max-height:none;min-height:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:#cddccd}
.action-game .canvas-wrap{position:absolute;inset:0;margin:0!important;min-height:0}
.action-game #game{display:block;width:100%;height:100%;outline:none;cursor:crosshair}
.action-game .action-vignette{display:block;pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,#35595b38,transparent 20%,transparent 74%,#35595b55);z-index:1}
.action-game .game-topbar{position:absolute;z-index:4;top:20px;left:26px;right:26px;height:44px;padding:0;display:flex;gap:13px;background:none;box-shadow:none;border:0;pointer-events:none}
.action-game .game-topbar>*{pointer-events:auto}
.action-game .location{font-size:18px;font-weight:650;letter-spacing:1px;color:#f1e6cc;text-shadow:0 2px 8px #000}
.action-game .back-center{width:32px;min-height:32px;color:#dfcba7;background:#10212799;border:1px solid #beaa742c;border-radius:6px}
.action-game .resources{margin-left:auto;padding:0 8px}.action-game .resources .health{display:none}.action-game .coins{gap:7px;color:#f2dba2;font-size:15px}
.action-game .hud-button{min-width:38px;min-height:37px;padding:6px 10px;background:#101c23c7;border:1px solid #c6b68b38;border-radius:6px;color:#dedccc;font-size:13px}
.action-game .objective-strip{position:absolute;left:34px;top:84px;z-index:3;max-width:310px;padding:0;min-height:0;display:block;background:none;border:0;box-shadow:none;pointer-events:none;color:#e3dec9}
.action-game .hero-progress{display:none}.action-game .objective-copy{gap:7px;min-width:0;text-shadow:0 2px 8px #000}
.action-game .objective-copy strong{font-size:14px;font-weight:600;line-height:1.6;color:#f3d9a1}
.action-game .objective-copy>span{font-size:12px;line-height:1.7;color:#c4cecb;max-width:275px}
.action-game .objective-strip .chocolate-strip{pointer-events:auto;display:flex;margin:16px 0 0;padding:7px 10px;width:max-content;max-width:300px;min-height:0;gap:8px;background:#181c1eba;border:1px solid #c6a57526;border-radius:7px;backdrop-filter:blur(12px);box-shadow:none}
.action-game .objective-strip .chocolate-strip strong{font-size:11px;white-space:nowrap}.action-game .objective-strip .chocolate-strip span:not(.chocolate-cube){font-size:10px;color:#b1b2a5}.action-game .objective-strip .chocolate-strip .chocolate-cube{width:23px;height:25px}.action-game .objective-strip .chocolate-strip button{padding:5px 6px;font-size:10px;min-height:30px;max-width:98px}.action-game .objective-strip .chocolate-strip[data-active=true]{border-color:#e3bc786b;background:#4a3724d1}
.action-game .chapter-strip{position:absolute;top:231px;left:34px;z-index:4;width:280px;display:flex;flex-wrap:wrap;padding:9px 12px;border-radius:7px;border:1px solid #9ecabb30;background:#11292bd9;backdrop-filter:blur(12px)}.action-game .chapter-strip>div{display:block;flex-basis:100%}.action-game .chapter-strip strong{font-size:12px}.action-game .chapter-strip span{font-size:11px;display:block;margin-top:5px}.action-game .chapter-strip button{min-height:30px;font-size:11px;padding:5px 9px}
.action-game .action-target{display:block;position:absolute;top:85px;left:50%;transform:translateX(-50%);width:265px;z-index:3;color:#f1e7d3;text-shadow:0 1px 5px #000;text-align:center;pointer-events:none}
.action-target>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px}.action-target>div:first-child span{font-size:11px;color:#dacabc;font-variant-numeric:tabular-nums}.action-enemy-track{height:7px;margin-top:8px;background:#250f13c9;border:1px solid #e2aa7638;border-radius:2px;overflow:hidden}.action-enemy-track i{display:block;height:100%;background:linear-gradient(90deg,#973c34,#e78662);transition:width .12s}.action-target p{font-size:11px;color:#c9c5b2;margin:7px 0;line-height:1.5}.action-target[data-phase=windup] p{color:#ffb394}.action-target[data-phase=recover] p{color:#ffda8b}
.action-game .action-map{display:block;position:absolute;right:30px;top:86px;width:174px;padding:6px;background:#0c1c23c9;border:1px solid #bca47744;border-radius:7px;z-index:3;box-shadow:0 5px 25px #0005;pointer-events:none}.action-map>div{display:flex;justify-content:space-between;padding:1px 3px 6px;font-size:10px;letter-spacing:1px;color:#c9c8b8}.action-map kbd{font-size:9px;padding:0 4px;line-height:1.4}.action-map canvas{display:block;width:162px;height:114px;opacity:.85;border-radius:2px}
.action-game .view-buttons{position:absolute;z-index:4;right:30px;top:246px;gap:7px}.action-game .view-buttons button{min-height:28px;padding:5px 10px;font-size:11px;border-radius:5px;background:#10212cce;border-color:#b2a37b44}.action-game .view-buttons kbd{font-size:10px}
.action-game .game-bottom{position:absolute;z-index:4;bottom:28px;right:28px;left:auto;top:auto;width:238px;max-width:238px;height:auto;min-height:0;padding:0;background:none;border:0;box-shadow:none;display:block;pointer-events:none}
.action-game .desktop-movement,.action-game .battle-controls,.action-game .mobile-pad{display:none!important}.action-game .context-controls{width:100%;display:flex;align-items:flex-end;gap:8px;pointer-events:auto}.action-game .context-copy{min-height:0;text-align:right}.action-game .context-copy strong{font-size:12px;line-height:1.5;color:#f1dcc0;text-shadow:0 1px 5px #000}.action-game .context-copy p{font-size:11px;line-height:1.5;max-width:205px;color:#b6c2bd}.action-game .context-actions #interact{font-size:12px;min-height:36px;min-width:100px;padding:7px 13px;border-radius:6px;box-shadow:0 2px 6px #0004}.action-game .context-controls:has(#interact:disabled){visibility:hidden}
.action-game .action-vitals{display:flex;align-items:center;gap:10px;position:absolute;bottom:34px;left:30px;width:216px;z-index:4;pointer-events:none}.action-portrait{width:52px;height:62px;flex:none;border-radius:28px 28px 8px 8px;background-color:#223334;background-image:url('/games/assets/explorer-actions.png');background-size:220px 165px;background-position:-111px -108px;border:1px solid #c5a57575;box-shadow:0 4px 20px #0006}.action-vital-copy{flex:1;min-width:0;text-shadow:0 1px 4px #000}.action-vital-copy>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#f2e5c7}.action-vital-copy>div:first-child span{font-size:11px;color:#d0bf98}.action-health-track{height:9px;border:1px solid #d29a7455;background:#331e20bb;margin-top:7px;border-radius:2px;overflow:hidden}.action-health-track i{display:block;height:100%;background:linear-gradient(90deg,#9d4640,#e69c74);transition:width .15s}.action-health-numbers{display:flex;gap:4px;margin-top:4px;align-items:baseline;color:#ead8c2;font-size:10px}.action-health-numbers strong{font-size:14px;font-variant-numeric:tabular-nums}.action-xp-track{height:3px;background:#50675a44;margin-top:6px}.action-xp-track i{display:block;height:100%;background:#95c8b1}.action-vitals[data-low=true] .action-health-track i{background:#ed614f}
.action-game .action-hotbar-wrap{display:block;position:absolute;bottom:27px;left:50%;transform:translateX(-50%);z-index:5}.action-hotbar{display:flex;gap:7px;padding:8px;background:linear-gradient(#14242be6,#0e1920f2);border:1px solid #ae986147;border-radius:9px;box-shadow:0 8px 30px #0006,inset 0 1px #d2c49b1c;backdrop-filter:blur(14px)}
.action-hotbar button{position:relative;width:68px;min-height:83px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border:1px solid #bda16d66;background:linear-gradient(150deg,#434337,#242c29);border-radius:5px;padding:9px 2px 5px;color:#f1e3bf;cursor:pointer;overflow:hidden;transition:border-color .12s,transform .12s;isolation:isolate}.action-hotbar button:nth-child(2){background:linear-gradient(145deg,#375456,#202f38)}.action-hotbar button:nth-child(3){background:linear-gradient(145deg,#625535,#302d24)}.action-hotbar button:nth-child(4){background:linear-gradient(145deg,#554558,#2a2538)}.action-hotbar button:nth-child(5){background:linear-gradient(145deg,#3e5649,#24352c)}.action-hotbar button:not(:disabled):hover{border-color:#f5d89e;transform:translateY(-3px)}.action-hotbar button:active:not(:disabled){transform:translateY(0)}.action-hotbar button:disabled{cursor:default;opacity:.65}.action-hotbar button[data-cooling=true]{opacity:.85}.action-hotbar button[data-cooling=true]::after{content:'';position:absolute;inset:0;background:conic-gradient(#030b12bd calc(var(--cooldown)*360deg),transparent 0);z-index:-1}
.action-hotbar kbd{position:absolute;top:3px;left:4px;border:0;background:none;box-shadow:none;padding:0;font-size:10px;line-height:1;color:#d5d2bc}.action-icon{display:block;height:32px;line-height:31px;font-size:26px;margin:4px 0 3px;text-shadow:0 0 13px #edd9a956}.action-hotbar b{font-size:11px;font-weight:600;line-height:1.5}.action-hotbar small{font-size:9px;color:#bdc6b8;line-height:1.5;min-height:14px;font-variant-numeric:tabular-nums}.action-cat-icon{width:34px;background-image:url('/games/assets/character-atlas.png');background-size:102px 68px;background-position:-34px 0}
.action-game .action-tip{display:block;position:absolute;bottom:144px;left:50%;transform:translateX(-50%);z-index:3;font-size:11px;white-space:nowrap;color:#d8d9c5;text-shadow:0 2px 8px #000;pointer-events:none}.action-tip span{padding:0 9px;color:#8b9a91}.action-game .action-help-button{display:block;position:absolute;left:31px;bottom:111px;z-index:4;padding:5px 8px;background:#0f2428a6;color:#a8bcb6;border:1px solid #819f8e2b;border-radius:5px;font-size:10px;cursor:pointer}
.action-game .action-loot{display:flex;flex-direction:column;align-items:center;gap:7px;position:absolute;top:24%;left:50%;transform:translateX(-50%);z-index:4;pointer-events:none;text-shadow:0 2px 8px #000;background:linear-gradient(90deg,transparent,#15262cd9,transparent);padding:14px 50px;white-space:nowrap}.action-loot strong{font-size:15px;color:#f3ddac;font-weight:500}.action-loot span{font-size:12px;color:#beddd1}.action-growth{display:block;width:max-content;margin:0 auto 8px;padding:7px 16px;border:1px solid #e5c47c88;border-radius:5px;background:#403922ed;color:#f2d694;font-size:12px;cursor:pointer}
.action-game .canvas-toast{z-index:5;bottom:178px;max-width:420px;padding:8px 13px;background:#10232be6;border:1px solid #c3ad793d;font-size:12px;line-height:1.6;border-radius:6px;pointer-events:none;box-shadow:0 4px 15px #0005}
.action-game [hidden]{display:none!important}.action-game .map-overview-note{z-index:3;top:58px;bottom:auto;right:auto;width:max-content;background:#0e222dd9;border-radius:6px;padding:8px;max-width:450px;left:50%;transform:translateX(-50%)}
.action-help-grid{display:grid;gap:12px;margin:20px 0}.action-help-grid article{background:#122d36b5;padding:13px 16px;border:1px solid #839a9130;border-radius:8px}.action-help-grid b{font-size:15px;color:#f1d49b}.action-help-grid p{font-size:13px;line-height:1.85;color:#c0d2cd;margin:6px 0 0}
@media(max-width:1000px){.action-game .objective-strip{left:20px;max-width:248px}.action-game .game-topbar{left:18px;right:18px}.action-game .location{font-size:16px}.action-game .action-target{top:82px;width:225px}.action-game .action-vitals{left:20px;width:178px}.action-portrait{width:42px;height:51px;background-size:185px 139px;background-position:-94px -90px}.action-game .game-bottom{width:175px;max-width:175px;right:18px}.action-game .context-copy p{display:none}.action-hotbar button{width:59px;min-height:78px}.action-game .action-map{right:20px;transform:scale(.86);transform-origin:top right}.action-game .view-buttons{right:20px;top:224px}.action-game .action-help-button{left:20px}}
@media(max-width:700px){.action-game .game-topbar{top:10px;left:10px;right:10px;gap:7px}.action-game .location{font-size:13px;letter-spacing:0}.action-game .objective-strip{top:65px;left:15px;max-width:220px}.action-game .objective-copy strong{font-size:12px}.action-game .objective-copy>span{font-size:10px;max-width:200px}.action-game .objective-strip .chocolate-strip{margin-top:8px;max-width:215px}.action-game .objective-strip .chocolate-strip>div{display:block}.action-game #chocolate-hint{display:none}.action-game .action-map{top:64px;right:13px;transform:scale(.65)}.action-game .view-buttons{top:169px;right:13px}.action-game .action-target{top:218px;width:200px}.action-game .action-target p{font-size:10px}.action-game .action-vitals{bottom:128px;left:15px;width:168px}.action-game .action-help-button{bottom:198px;left:15px}.action-game .action-hotbar-wrap{bottom:20px}.action-hotbar{gap:5px;padding:6px}.action-hotbar button{width:58px;min-height:78px}.action-game .game-bottom{bottom:126px;right:15px;width:140px;max-width:140px}.action-game .action-tip{bottom:225px;font-size:10px;white-space:normal;width:220px;text-align:center}.action-game .action-tip span{padding:0 3px}.action-game .canvas-toast{bottom:235px;max-width:88%}.action-game .chapter-strip{top:200px;left:15px;width:205px}.action-game[data-input=touch] .action-hotbar kbd{display:none}.action-game[data-input=touch] .mobile-pad{display:grid!important;position:fixed;left:18px;bottom:205px;transform:scale(.8);transform-origin:bottom left;pointer-events:auto}.action-game[data-input=touch] .action-tip{display:none}.action-game .map-overview-note{max-width:75%;font-size:10px}}
@media(prefers-reduced-motion:reduce){.action-hotbar button,.action-enemy-track i,.action-health-track i{transition:none}}

.action-game .context-controls{flex-direction:column;align-items:flex-end}.action-game .context-copy{width:100%}.action-game .context-copy strong{display:block;max-width:none;white-space:normal;overflow:visible;text-overflow:clip}.action-game .context-copy p{display:none}.action-game .context-actions{width:auto}

/* Keep every resource label beside its own value and bar. */
.action-game .action-vitals{width:270px;align-items:flex-start;gap:12px;bottom:27px;padding:12px 14px;background:#0c1921dc;border:1px solid #acbfb62b;border-radius:9px}
.action-game .action-portrait{margin-top:4px}.action-game .action-vital-copy{min-width:0}.action-identity{margin-bottom:10px}.action-identity b{font-size:14px}.action-identity #action-level{font-size:13px;color:#d6e6e1}
.action-game .action-health-numbers{justify-content:space-between;align-items:center;font-size:13px;margin:0 0 5px;color:#ffb6a9}.action-game .action-health-numbers strong{font-size:16px;color:#fff1ec}.action-health-numbers small{font-size:12px;color:#d3bdb7}.vital-label{font-weight:600;white-space:nowrap}
.action-game .action-health-track{height:10px;margin:0;background:#542d30;border-color:#fc938a55}.action-game .action-health-track i{background:linear-gradient(90deg,#c65051,#f17c6d)}
.action-experience{display:block;width:100%;margin-top:12px;padding:0;border:0;background:none;box-shadow:none;text-align:left;pointer-events:auto;color:#b8d9ff;cursor:pointer;border-radius:3px}.action-experience:hover{color:#e0efff}.action-experience:focus-visible{outline:2px solid #9eceff;outline-offset:5px}.action-xp-numbers{display:flex;align-items:center;justify-content:space-between;font-size:13px}.action-xp-numbers strong{font-size:12px;font-weight:500;color:#d9e9ff}.action-game .action-xp-track{display:block;height:6px;border-radius:2px;background:#264058;margin:5px 0 0;overflow:hidden}.action-game .action-xp-track i{display:block;background:linear-gradient(90deg,#5b97dd,#9ccafa)}#action-xp-hint{display:block;font-size:11px;line-height:1.6;color:#9cbbd7;margin-top:4px}
.action-game .action-help-button{bottom:201px}.action-game .action-hotbar b{font-size:12px}.action-game .action-hotbar small{font-size:10px}.action-game .action-target p{font-size:13px}.action-game .action-target>div:first-child{font-size:15px}.action-game .action-target>div:first-child span{font-size:12px}
@media(max-width:1000px){.action-game .action-vitals{width:220px;gap:9px;padding:10px}.action-game .action-portrait{display:none}.action-game .action-help-button{bottom:184px}}
@media(max-width:760px){.action-game .action-vitals{bottom:131px;width:186px;left:15px}.action-game .action-help-button{bottom:303px}.action-game .action-tip{bottom:320px}.action-game .canvas-toast{bottom:350px}.action-game .game-bottom{bottom:142px}.action-game .action-target{top:214px}.action-game .action-hotbar-wrap{bottom:20px}.action-game .action-target{width:200px}.action-game .action-target p{font-size:12px}}

@media(min-width:761px) and (max-width:900px){.action-game .action-vitals{bottom:137px;width:210px}.action-game .action-help-button{bottom:310px}.action-game .action-tip{display:none}.action-game .game-bottom{bottom:139px}}

/* Story stays brief in the world; the journal holds the longer trail of clues. */
.story-caption{position:absolute;z-index:4;bottom:183px;left:50%;transform:translateX(-50%);width:min(460px,calc(100% - 40px));display:flex;align-items:center;gap:13px;padding:13px 14px;background:linear-gradient(115deg,#173037f5,#0e1f28f2);border:1px solid #b5b39357;border-left:3px solid #d5bd80;border-radius:10px;box-shadow:0 8px 28px #0005;backdrop-filter:blur(12px);pointer-events:none;color:#e1e8db}.story-caption[hidden]{display:none}.story-face{display:block;width:44px;height:44px;flex:none;border-radius:50%;color:#ead199;background:#30453a;padding:6px}.story-face:has(.kit-portrait){padding:0}.story-caption>div{flex:1;min-width:0}.story-caption b{font-size:12px;font-weight:600;color:#e8cb8f}.story-caption p{font-size:14px;line-height:1.75;margin:4px 0 0;text-wrap:pretty}.story-caption button{pointer-events:auto;align-self:flex-start;width:30px;height:30px;flex:none;border:0;background:transparent;color:#a7b9b8;font-size:21px;cursor:pointer;border-radius:6px}.story-caption button:hover{background:#abc9bb20;color:#fff}.action-game:has(.story-caption:not([hidden])) .action-tip{visibility:hidden}
dialog[data-mode=story-opening],dialog[data-mode=story-book],dialog[data-mode=ending]{width:min(570px,calc(100vw - 24px));background:linear-gradient(145deg,#253e44,#15262f);border-color:#b9ac805e}dialog[data-mode=story-opening] .modal-heading,dialog[data-mode=story-book] .modal-heading,dialog[data-mode=ending] .modal-heading{background:linear-gradient(#243d43 85%,#233b42eb)}.story-opening-art{width:100%;height:200px;border:1px solid #f9e6ba35;border-radius:12px;background:url('/games/assets/chocolate-clearing.png') center 56%/cover;box-shadow:inset 0 -25px 35px #13232935}.story-opening-copy{padding:17px 3px 0}.story-opening-copy>span{font-size:12px;letter-spacing:2px;color:#b9c7bb}.story-opening-copy p{font-size:16px;line-height:1.8;color:#f0ead7;margin:12px 0 0}.story-opening-copy p:last-child{color:#c4d2cb}.story-book-goal{padding:15px 18px;border:1px solid #bdad7447;background:#b99d4d0d;border-radius:10px;margin:0 0 20px}.story-book-goal span{display:block;font-size:12px;color:#c1b382;letter-spacing:1px;margin-bottom:9px}.story-book-goal strong{font-size:17px;line-height:1.6;color:#f0e3bd;font-weight:600}.story-pages{display:grid;gap:8px;max-height:50dvh;overflow:auto;padding:2px 4px 2px 0;scrollbar-width:thin;scrollbar-color:#64877b transparent}.story-pages details{border:1px solid #9bb9ad26;background:#0d252b55;border-radius:9px}.story-pages details[open]{border-color:#b5bb8061;background:#34494144}.story-pages summary{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 15px;font-size:15px;color:#dfe5d2;cursor:pointer}.story-pages summary::-webkit-details-marker{display:none}.story-pages summary>.kit-icon,.story-pages summary>.kit-portrait{height:25px;width:25px;flex:none;color:#d4bf88}.story-pages summary>span:not(.kit-portrait){flex:1}.story-pages summary i{font-size:18px;color:#9daf9c;font-style:normal}.story-pages details[open] summary i{transform:rotate(180deg)}.story-pages p{margin:0;padding:0 17px 16px 52px;font-size:14px;line-height:1.9;color:#c6d7cc}.story-ending-art .chapter-scene{aspect-ratio:2.7;filter:saturate(.65) brightness(1.12)}.story-ending-copy p{font-size:16px;line-height:1.9;color:#d8e0d1;margin:14px 0}.story-ending-copy strong{display:block;font-weight:600;color:#f5dfad;margin-top:5px}.story-ending-copy>span{display:block;font-size:14px;line-height:1.8;color:#9fb8ad;padding-top:9px}.story-ending-copy+.ending-credit{font-size:12px;color:#c4b995;margin:24px 0 0}
@media(max-width:900px){.story-caption{bottom:320px;width:min(400px,calc(100% - 32px));padding:10px 12px;gap:10px}.story-caption p{font-size:13px}.story-face{width:36px;height:36px}.story-caption button{width:25px;height:28px}.action-game:has(.story-caption:not([hidden])) .action-help-button{visibility:hidden}}
@media(max-width:560px){.story-opening-art{height:145px}.story-opening-copy p{font-size:15px}.story-book-goal{padding:12px 14px}.story-book-goal strong{font-size:15px}.story-pages summary{font-size:14px;padding:12px}.story-pages p{padding-left:16px}.story-caption{bottom:315px}.story-caption p{font-size:12px;line-height:1.65}.story-caption button{min-width:32px;min-height:32px}.story-ending-copy p{font-size:14px}}
@media(max-height:600px) and (min-width:901px){.story-caption{bottom:162px;width:400px}.story-opening-art{height:130px}.story-opening-copy{padding-top:12px}.story-opening-copy p{font-size:14px;margin-top:8px}}

/* Keep door actions readable at the point of interaction. */
.action-game .context-controls[data-passage=true]{padding:12px 14px;border:1px solid #d6b77b66;border-radius:9px;background:#11252ced;box-shadow:0 5px 20px #0004;pointer-events:auto}.action-game .context-controls[data-passage=true] .context-copy p{display:block;font-size:12px;line-height:1.6;color:#c8d8cc;margin:5px 0 0}.action-game .context-controls[data-passage=true] .context-actions{width:100%}.action-game .context-controls[data-passage=true] #interact{width:100%;min-height:44px;font-size:14px}dialog[data-mode=gate] .modal-actions{position:sticky;bottom:-27px;padding:13px 0;background:#18333e;box-shadow:0 -12px 18px #18333e;margin-bottom:-14px}dialog[data-mode=gate] .primary:focus-visible{outline:2px solid #fff0b8;outline-offset:4px}dialog[data-mode=gate] kbd{color:inherit;background:#6b582419;border-color:#73592f55;font-size:12px;margin-left:7px}dialog[data-mode=gate] .chapter-scene{max-height:145px}@media(max-width:820px){dialog[data-mode=gate] .modal-actions{bottom:-23px}.action-game .context-controls[data-passage=true]{padding:9px 10px}.action-game .context-controls[data-passage=true] #interact{font-size:12px}.action-game .context-controls[data-passage=true] .context-copy p{font-size:11px}}
.game-shell.action-game[data-input] .game-bottom:has([data-passage=true]){height:auto;min-height:0;padding:0}.game-shell.action-game[data-input] .context-controls[data-passage=true]{width:100%;max-width:none;flex:none;flex-direction:column;align-items:stretch;gap:10px}.game-shell.action-game[data-input] .context-controls[data-passage=true] .context-copy{width:100%;flex:none;text-align:left}.game-shell.action-game[data-input] .context-controls[data-passage=true] .context-copy strong{font-size:14px}.game-shell.action-game[data-input] .context-controls[data-passage=true] .context-copy p{font-size:12px}
/* A reward has one visible path: earn, choose, receive. */
.action-game .reward-ready{color:#ffe3a1;background:#6b5027e8;border-color:#e6c07899;box-shadow:0 0 16px #ecc06b1c;white-space:nowrap}
.action-game .action-identity #action-ward{font-size:10px;color:#c8ecff;border:1px solid #92c9e56b;border-radius:4px;background:#294f638c;padding:2px 5px;white-space:nowrap;text-shadow:none}
dialog:is([data-mode=supply],[data-mode=supply-result]) .modal-description:empty{display:none}
.reward-rule{font-size:15px;color:#bcd0c9;margin:0 0 16px;text-align:center;line-height:1.6}.reward-rule b{color:#f0dfb5;font-weight:500}
.reward-progress{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 16px;margin-bottom:24px;border:1px solid #91b4a631;border-radius:8px;background:#102a3255;color:#b5c9c2;font-size:13px}.reward-progress>b{font-weight:500;font-variant-numeric:tabular-nums;color:#e9ddba}
.reward-stamps{display:flex;gap:8px}.reward-stamps i{display:grid;place-items:center;width:31px;height:31px;border-radius:7px;border:1px solid #9ab6ad50;background:#294049;color:#94aea6;font-style:normal;font-size:14px}.reward-stamps i.filled{background:#c3a66a;color:#203c33;border-color:#e8cf91;font-size:20px}
.supply-heading .reward-count{font-size:13px;color:#ffde96;background:#dec27617;border:1px solid #dec27640;border-radius:5px;padding:5px 9px}
dialog[data-mode=supply] .supply-value small:first-child{display:block;margin:0;font-size:12px}dialog[data-mode=supply] .supply-note{line-height:1.7;min-height:44px;margin-bottom:16px}dialog[data-mode=supply] .supply-value{min-height:73px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px 6px;margin:10px 0 6px}dialog[data-mode=supply] .supply-value small:first-child{flex-basis:100%}dialog[data-mode=supply] .supply-value small{margin:0}dialog[data-mode=supply] .supply-choice:disabled{opacity:.78}
dialog[data-mode=supply-result]{width:min(500px,calc(100vw - 24px))}.reward-receipt{text-align:center;padding:6px 8px 15px;--reward-color:#f3d08b}.reward-receipt[data-kind=ward]{--reward-color:#b3ddf6}.reward-receipt-art{width:96px;height:96px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;border:1px solid #ddc17f40;background:radial-gradient(circle,#b5944738,#a7831905 75%);box-shadow:0 0 40px #ebc5630c;color:var(--reward-color)}.reward-receipt[data-kind=ward] .reward-receipt-art{border-color:#9ad4ed50;background:radial-gradient(circle,#6dabcb35,#6dabcb05 75%)}.reward-receipt-art .kit-icon{width:54px;height:54px}.reward-receipt>strong{display:block;font-size:26px;font-weight:600;color:var(--reward-color)}.reward-receipt p{font-size:15px;color:#c4d6d1;line-height:1.9;margin:18px 0 24px}.reward-receipt p b{color:#e5f5ff;font-weight:600}.reward-wallet{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:17px auto 24px;width:200px;font-variant-numeric:tabular-nums;font-size:28px}.reward-wallet>span{color:#a5b8ae}.reward-wallet>i{font-size:22px;font-style:normal;color:#849f92}.reward-wallet>b{color:#ffe0a1;font-weight:600}.reward-wallet small{flex-basis:100%;color:#a5bdb1;font-size:13px;margin-top:-8px}.reward-receipt-next{display:block;padding-top:17px;border-top:1px solid #8ba49d2b;color:#a9c1b8;font-size:14px}dialog[data-mode=supply-result] .primary:focus-visible{outline:2px solid #fff0b8;outline-offset:4px}dialog[data-mode=supply-result] .primary kbd{color:inherit;background:#6b582419;border-color:#73592f55;font-size:12px;margin-left:7px}
@media(max-width:620px){.reward-progress{gap:10px;padding:10px;margin-bottom:18px}.reward-rule{font-size:14px}.reward-stamps{gap:5px}.reward-stamps i{width:28px;height:28px}dialog[data-mode=supply] .supply-value small{font-size:12px}.reward-receipt>strong{font-size:23px}}
/* Passive feedback never captures a click or asks for a confirmation. */
.field-notice{position:absolute;z-index:4;bottom:183px;left:50%;transform:translateX(-50%);width:min(410px,calc(100% - 40px));display:flex;align-items:center;gap:13px;padding:16px 18px 19px;background:linear-gradient(115deg,#213c40f5,#12272ff2);border:1px solid #c6b57b66;border-radius:10px;box-shadow:0 8px 28px #0005;pointer-events:none;color:#e1e8db;overflow:hidden}.field-notice[hidden]{display:none}.notice-icon{width:43px;height:43px;flex:none;color:#edcf8e}.field-notice>div{flex:1;min-width:0}.field-notice b{font-size:17px;font-weight:600;color:#f2ddb0}.field-notice p{font-size:13px;line-height:1.7;color:#c9d9d1;margin:5px 0 0}.notice-timer{position:absolute;left:0;right:0;bottom:0;height:2px;background:#d1b97866;transform:scaleX(var(--notice-progress,1));transform-origin:left;pointer-events:none}.story-caption{overflow:hidden}.story-caption .notice-timer{background:#c4d0be55}.action-game:has(.field-notice:not([hidden])) :is(.action-tip,.canvas-toast){visibility:hidden}
@media(max-width:900px){.field-notice{bottom:320px;width:min(390px,calc(100% - 32px));padding:12px 14px 15px}.field-notice b{font-size:15px}.notice-icon{width:36px;height:36px}.action-game:has(.field-notice:not([hidden])) .action-help-button{visibility:hidden}}
@media(max-width:560px){.field-notice{bottom:315px}.field-notice p{font-size:12px}}
@media(max-height:600px) and (min-width:901px){.field-notice{bottom:162px}}
/* Keep the main task visible even when a useful preparation tip changes. */
.action-game .quest-tracker{display:flex;flex-direction:column;gap:8px;width:282px;max-width:100%;pointer-events:auto;padding:12px 14px;text-align:left;background:linear-gradient(120deg,#172b30e8,#102029ce);border:1px solid #b3a57844;border-left:3px solid #d4b77c;border-radius:8px;box-shadow:0 5px 18px #0003;color:#e8e2cb;cursor:pointer;backdrop-filter:blur(10px)}.quest-tracker:hover{background:#223a3fea;border-color:#dcc28899}.quest-tracker:focus-visible{outline:2px solid #ffe1a1;outline-offset:4px}.quest-tracker-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:10px;letter-spacing:.7px;color:#abbdaf}.quest-open-label{white-space:nowrap;color:#dfc992}.quest-open-label kbd{font:inherit;padding:1px 4px;background:#d6cb9f12;border:1px solid #c6ba8555;border-radius:3px;margin-left:3px}.quest-current{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.quest-current strong{font-size:14px;line-height:1.5;font-weight:600;color:#f2deb0}.quest-current>b{font-size:15px;white-space:nowrap;font-variant-numeric:tabular-nums;color:#ffe3a1;font-weight:600}.quest-tracker #objective-hint{font-size:11px;line-height:1.6;color:#bccfc4}.quest-pieces{display:flex;gap:6px}.quest-pieces i{display:grid;place-items:center;height:18px;flex:1;max-width:52px;border:1px solid #93b1a73b;border-radius:3px;color:#839d90;background:#08252b77;font-size:10px;font-style:normal}.quest-pieces .filled{background:linear-gradient(135deg,#e2c58e,#b69b68);color:#263c32;border-color:#e6cd99}.quest-progress{display:block;height:4px;background:#82a19628;border-radius:3px;overflow:hidden}.quest-progress>i{display:block;height:100%;background:#d9be87;transition:width .25s}.quest-tracker[data-complete=true]{border-left-color:#92c9ac}.quest-tracker[data-complete=true] .quest-current strong,.quest-tracker[data-complete=true] .quest-current>b{color:#b8dec5}.action-game .objective-strip .chocolate-strip{margin-top:10px}.action-game .chapter-strip{top:282px}
dialog[data-mode=quest]{width:min(590px,calc(100vw - 24px))}dialog[data-mode=quest] .modal-description:empty{display:none}.quest-summary{display:flex;gap:16px;align-items:center;margin-bottom:23px}.quest-summary-icon{width:52px;height:52px;padding:10px;flex:none;border-radius:10px;background:#b9a5691a;border:1px solid #dcc68c40;color:#ebd197}.quest-summary>div>span{font-size:12px;color:#acbeb4}.quest-summary h3{font-size:22px;font-weight:600;color:#f0dfb4;margin:6px 0 7px}.quest-summary p{font-size:12px;color:#adc3b6;margin:0;line-height:1.6}.quest-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}.quest-step{display:flex;align-items:center;gap:12px;position:relative;padding:15px 14px;border:1px solid #8ea79929;border-radius:8px;background:#10272b70}.quest-step-mark{flex:none;display:grid;place-items:center;width:28px;height:28px;border:1px solid #93ad9f55;border-radius:50%;font-size:13px;color:#9caf9f}.quest-step>div{flex:1;min-width:0}.quest-step-title{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.quest-step-title b{font-size:15px;font-weight:500;color:#aebcb5;line-height:1.5}.quest-step-title>span{font-size:12px;color:#82968b;white-space:nowrap;font-variant-numeric:tabular-nums}.quest-step p{font-size:13px;line-height:1.7;margin:8px 0 0;color:#c4d3c7}.quest-step[data-status=done]{background:#27463835}.quest-step[data-status=done] .quest-step-mark{color:#b4ddbe;background:#59836835;border-color:#8bb39866}.quest-step[data-status=done] .quest-step-title>span{color:#9bc6a9}.quest-step[data-status=active]{border-color:#e0c07c9c;background:linear-gradient(115deg,#6c60482f,#1a353c);padding-top:32px}.quest-step[data-status=active] .quest-step-title b{color:#f3ddac;font-weight:600}.quest-step[data-status=active] .quest-step-title>span{color:#f6d58f;font-size:15px}.quest-step[data-status=active] .quest-step-mark{border-color:#e0c3838c;background:#d8bd7c24;color:#f1d593}.quest-step>small{position:absolute;top:10px;left:54px;font-size:10px;color:#d0b985;letter-spacing:1px}.quest-optional{margin-top:23px;border-top:1px solid #9fafa036;padding-top:16px}.quest-optional summary{cursor:pointer;font-size:14px;color:#c4d2c6;min-height:28px}.quest-optional summary>span{float:right;color:#94af9e;font-size:12px}.quest-optional>p{font-size:12px;color:#94aa9b;margin:10px 0}.quest-side{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #81998b1a}.quest-side>span{width:28px;height:28px;flex:none;color:#bbcbad}.quest-side>div{flex:1}.quest-side b{font-weight:500;font-size:14px;color:#d0dccb}.quest-side small{display:block;font-size:12px;color:#92ac9b;margin-top:5px}.quest-side>i{font-style:normal;color:#749383}.quest-side[data-done=true]>i{color:#c6dfae}.quest-detour{font-size:13px;line-height:1.7;border-left:2px solid #9abfd9;padding:8px 12px;background:#86acc512;color:#c0d7e4;margin:0 0 17px}dialog[data-mode=quest] .modal-actions{margin-top:22px}dialog[data-mode=quest] .primary kbd{color:inherit;background:#6b582419;border-color:#73592f55;font-size:12px;margin-left:7px}
@media(max-width:1000px){.action-game .quest-tracker{width:242px;padding:10px 12px}.quest-current strong{font-size:13px}.quest-current>b{font-size:13px}}
@media(max-width:700px){.action-game .quest-tracker{width:218px;max-width:calc(100vw - 152px);padding:9px 10px;gap:6px}.quest-current strong{font-size:12px}.quest-current>b{font-size:12px}.quest-tracker #objective-hint{font-size:10px}.quest-pieces i{height:15px}.quest-tracker-heading{font-size:9px;letter-spacing:0}.action-game .chapter-strip{top:282px}.quest-summary h3{font-size:19px}.quest-step{padding:12px 10px;gap:10px}.quest-step-title b{font-size:14px}.quest-step p{font-size:12px}.quest-step>small{left:49px}.quest-summary{gap:12px}.quest-summary-icon{width:45px;height:45px;padding:8px}}
dialog[data-input=touch] .quest-open-label kbd,.action-game[data-input=touch] .quest-open-label kbd{display:none}

/* Three quiet pips show landed strikes; they disappear when the chain ends. */
.action-combo{position:absolute;bottom:100%;left:0;display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:8px;background:#172427eb;border:1px solid #cdb47770;border-radius:5px;color:#e8d4a8;font-size:12px;pointer-events:none;overflow:hidden}.action-combo[hidden]{display:none}.action-combo b{font-weight:600;white-space:nowrap}.action-combo>span:last-child{font-size:10px;color:#cbbd9f}.combo-dots{display:flex;gap:6px}.combo-dots i{width:7px;height:7px;transform:rotate(45deg);border:1px solid #bdaa7566;background:#202c30}.combo-dots i[data-lit=true]{background:#eed39a;border-color:#ffe7b8;box-shadow:0 0 8px #e7c38077}.action-combo::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:#ecd0929c;transform:scaleX(var(--combo-time,1));transform-origin:left}.action-combo[data-step="3"]{color:#ffe4a6;border-color:#f0c77b;background:#483724eb}.action-game:has(.action-combo:not([hidden])) .action-tip{visibility:hidden}.action-game:has(.action-combo:not([hidden])) .action-growth{visibility:hidden}

/* The full map already carries the route; leave its edges clear of duplicate hints. */
.action-game.map-open .action-map,.action-game.map-open .action-tip{display:none}

.defense-summary{display:grid;gap:10px;padding:20px 24px;border-radius:12px;background:#9acf9f12;border:1px solid #94c9af44;color:#c1e3c9}.defense-summary strong{font-size:26px;color:#f4dfaa}.defense-summary meter{width:100%;height:14px;accent-color:#84c69a}.defense-summary+ .modal-description{font-size:15px;line-height:1.8}

#action-enemy-gear{display:block;margin-top:7px;color:#e8d7a7;font-size:10px}#action-enemy-gear[hidden]{display:none}.action-target[data-phase=rally] p,.action-target[data-phase=shopping] p{color:#ffe09d}.action-target>div:first-child strong{min-width:0}.action-target>div:first-child span{flex-shrink:0;white-space:nowrap}

#beasts-open{white-space:nowrap}@media(max-width:700px){.action-game #beasts-open{font-size:12px;padding:6px;min-width:40px}.action-game .game-topbar{gap:5px}}
/* Rune clues stay compact and share the adventure's pause and keyboard controls. */
#modal[data-mode=inscription]{max-width:560px}.rune-panel>small{display:block;color:#c3d7d4;font-size:14px}.rune-glyphs{padding:24px 12px;margin:14px 0;text-align:center;letter-spacing:.3em;font:36px/1.6 Georgia,serif;color:#f2d494;background:linear-gradient(120deg,#143b43,#31595e);border:1px solid #bca87366;border-radius:14px;text-shadow:0 0 14px #edd88a66}.rune-panel h3{font-size:20px;margin:14px 0}.rune-experience,.rune-exchange{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px}.rune-experience strong{color:#e7dfb4;font-variant-numeric:tabular-nums}.rune-progress{height:10px;margin:10px 0 22px;background:#102d34;border-radius:6px;overflow:hidden}.rune-progress i{display:block;height:100%;background:#a8d4c3;border-radius:inherit}.rune-exchange{padding:16px;background:#edd49513;border:1px solid #e8cc8b44;border-radius:12px}.rune-exchange>span:first-child{display:flex;align-items:center;gap:8px;color:#f5d797}.rune-exchange .kit-icon{width:24px;height:24px}.rune-footnote{font-size:14px;line-height:1.8;color:#b9cecb;margin:16px 0 0}.rune-translation{border-left:3px solid #a6ddc4;padding:4px 0 4px 18px}.rune-translation>span{font-size:14px;color:#b0e6cb}.rune-translation p,.rune-journal p{font-size:19px;line-height:1.85;margin:8px 0;color:#f2e7c8}.rune-panel[data-readable=true] .rune-glyphs{padding:10px;font-size:26px;color:#c8e8d2}.rune-journal{display:grid;gap:14px}.rune-journal article{border:1px solid #99bcaf44;border-radius:12px;padding:18px;background:#b6dec10a}.rune-journal small{color:#b9cecb;font-size:14px}.rune-journal h3{font-size:19px;color:#f2d697;margin:8px 0}.rune-journal p{font-size:17px}.rune-panel .kit-receipt{margin-top:16px}
@media(max-width:560px){.rune-glyphs{font-size:30px;padding:16px 8px}.rune-translation p{font-size:17px}.rune-exchange{padding:12px}}
