:root{color-scheme:dark;--ink:#f8f4e9;--muted:#cbc6b9;--gold:#ffd34f;--line:#f8c74a38;--forest:#171d26;--serif:"Songti SC","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--forest);color:var(--ink);font-family:var(--sans)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{cursor:default}[hidden]{display:none!important}#app{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate;overflow:hidden}#game{position:absolute;inset:0;display:block}#game canvas{display:block}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0b0e1291,transparent 30%,transparent 70%,#0c0f1396);z-index:1}
.topbar{position:absolute;top:max(25px,env(safe-area-inset-top));left:max(35px,env(safe-area-inset-left));right:max(35px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;z-index:5;gap:20px}.identity{display:flex;align-items:center;gap:16px;font-size:12px;letter-spacing:1.5px;text-shadow:0 2px 10px #1e2631}.brand{font-weight:600;white-space:nowrap}.divider{width:1px;height:14px;background:#f4f1ea38}.edition{font-size:10px;border:1px solid #e8e3d638;padding:4px 7px;border-radius:3px;color:#dfd9ca;letter-spacing:1px;white-space:nowrap}.topbar nav{display:flex;align-items:center;gap:7px}.topbar nav button{min-width:36px;height:35px;padding:0 9px;border:1px solid #ebe7db2b;background:#161c2480;backdrop-filter:blur(10px);border-radius:6px;font-size:18px;transition:background .2s}.topbar nav button:hover{background:#374559d6}.topbar .nav-label{font-size:11px;letter-spacing:1px;padding:0 12px}.nav-divider{height:13px;width:1px;background:var(--line);margin:0 3px}#sound{font-size:10px;letter-spacing:1px;min-width:62px}
.intro{position:absolute;z-index:3;left:9.1%;top:50%;transform:translateY(-46%);width:500px;text-shadow:0 2px 32px #12171e}.intro::before{content:"";position:absolute;z-index:-1;inset:-100px -80px;background:radial-gradient(ellipse,#131820bf 0,transparent 73%);pointer-events:none}.eyebrow{font-size:10px;line-height:1.7;letter-spacing:3px;color:#dad1bb;display:flex;align-items:center;gap:12px}.eyebrow>span{width:22px;height:1px;background:#d1c6a9}h1{font-family:var(--serif);font-size:68px;line-height:1.38;font-weight:400;margin:20px 0 21px;letter-spacing:5px}p{font-size:13px;line-height:2.05;color:#e5e0d5;margin:0 0 26px;letter-spacing:.8px}.intro p{font-size:14px;line-height:2.05;color:#e8e3d7}.intro-actions{display:flex;gap:13px;align-items:center}.primary,.secondary{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:13px 21px;border-radius:4px;font-size:12px;letter-spacing:2px;transition:background .2s,transform .2s}.primary{width:226px;border:1px solid #e5dece77;background:#e6e0d0;color:#232c39;box-shadow:0 5px 30px #10141a20}.primary:hover:not(:disabled){background:#f0ece2;transform:translateY(-1px)}.primary:disabled{opacity:.6;cursor:wait}.primary>span:last-child:not(:first-child){font-size:20px;letter-spacing:0}.secondary{border:1px solid #e5dece49;background:#1d25305e;color:#e9e4d6;justify-content:center}.secondary:hover{background:#957b3d44}.intro-meta{margin-top:20px;color:#d1cab8;font-size:11px;letter-spacing:2px}.intro-keys{margin-top:17px;display:flex;gap:18px;color:#cbc4b3;font-size:10px}.intro-keys>span{display:flex;align-items:center;gap:4px}kbd{font:inherit;border:1px solid #d9d4c64a;border-radius:3px;padding:2px 5px;min-width:18px;text-align:center;white-space:nowrap}.playing .intro{pointer-events:none}
.journey{position:absolute;top:87px;left:36px;width:242px;z-index:3;text-shadow:0 2px 9px #181e27}.journey-label{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;letter-spacing:1.4px;color:#ece8dd;gap:15px}#area-name{font-weight:600}#progress-text{font-size:10px;color:#cac0a8}.track{margin-top:10px;background:#e1dac826;height:2px}.track i{display:block;width:0;height:100%;background:var(--gold);transition:width .15s}#objective-text{margin:11px 0 0;font-size:11px;line-height:1.8;letter-spacing:.5px;color:#ded8ca}.ability-bar{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.ability{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#e1dac8;background:#1a212a70;border:1px solid #d6ccb325;padding:4px 7px;border-radius:4px}.ability kbd{border:0;background:#c2b38d1c;padding:1px 3px;font-size:9px}.ability.cooldown{opacity:.4}
#game-footer{position:absolute;bottom:26px;left:36px;right:36px;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;color:#e4dece;letter-spacing:.7px}.footnote{font-family:var(--serif);font-size:13px;letter-spacing:1.5px}.desktop-help{opacity:.65;font-size:10px}.journey-stats{display:flex;gap:19px;white-space:nowrap}.journey-stats>span{display:flex;align-items:baseline;gap:8px}.journey-stats b{font-weight:400;color:#f6e0a5;font-size:16px;letter-spacing:.2px}.hint{position:absolute;left:50%;bottom:88px;transform:translateX(-50%);z-index:3;max-width:min(680px,80vw);font-size:12px;line-height:1.7;letter-spacing:1px;text-align:center;text-shadow:0 2px 8px #181e26;background:#181e27b3;padding:10px 22px;border:1px solid #e1dac720;border-radius:24px;backdrop-filter:blur(8px)}.toast{position:absolute;left:50%;top:23%;transform:translate(-50%,-5px);z-index:7;max-width:80%;font-size:13px;line-height:1.8;text-align:center;letter-spacing:1px;color:#f7eec1;opacity:0;transition:opacity .25s,transform .25s;text-shadow:0 2px 8px #1c232d;pointer-events:none;background:#1f2732de;border:1px solid #d8cfb729;border-radius:5px;padding:9px 18px}.toast.show{opacity:1;transform:translate(-50%,0)}.interact-prompt{position:absolute;left:50%;bottom:142px;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:11px;max-width:90%;padding:12px 19px;border:1px solid #e1d9c67a;border-radius:6px;background:#202935ed;box-shadow:0 6px 40px #071c2440;backdrop-filter:blur(10px);font-size:12px;letter-spacing:1px}.interact-prompt:hover{background:#323f52}.interact-prompt.insufficient{border-color:#c6a96a80;color:#e7ce9a}.interact-prompt kbd{color:#242d3a;background:#ddd5c1;padding:4px 8px}
.boss-hud{position:absolute;top:90px;left:50%;transform:translateX(-50%);width:min(360px,36vw);z-index:4;padding:12px 17px;border:1px solid #e3d9a52c;background:#151a22b8;border-radius:5px;backdrop-filter:blur(6px)}.boss-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;letter-spacing:1px}.boss-heading span:last-child{color:#eac393;font-size:10px}.boss-track{margin-top:9px;height:4px;background:#ded6c221;border-radius:2px;overflow:hidden}.boss-track i{display:block;height:100%;width:100%;background:#dfb980;transition:width .35s}.boss-hud p{font-size:10px;line-height:1.7;margin:8px 0 0;color:#d5cebd;letter-spacing:.3px}
.modal{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:22px;background:#0e1116a8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-card{position:relative;width:min(480px,100%);max-height:90vh;max-height:90dvh;overflow:auto;padding:37px 42px;text-align:left;background:linear-gradient(135deg,#293342f5,#19202afc);border:1px solid #ebe6d92d;border-radius:10px;box-shadow:0 30px 120px #031c2680;scrollbar-width:thin;scrollbar-color:#c9b27b60 transparent}.modal h2{font-family:var(--serif);font-size:35px;font-weight:400;line-height:1.5;letter-spacing:2px;margin:15px 0 17px;color:#eeeadf}.modal p{font-size:13px}.modal .primary{width:100%}.button-stack{display:grid;gap:11px;margin-top:22px}.button-stack .secondary{width:100%}.subtle{display:block;width:100%;padding:9px;border:0;background:none;font-size:11px;color:#cdc6b3;letter-spacing:1px}.subtle:hover{color:#ebe7db}.compact-card{width:410px}.compact-card p{margin-bottom:8px}.reward-note,.story-effect{font-size:12px;line-height:1.9;letter-spacing:.5px;color:#dbd2bc;border:1px solid #d5cbb231;border-left:2px solid #cbbf9f85;background:#c5b6920a;padding:12px 16px;border-radius:0 4px 4px 0}.reward-note:empty,.story-effect:empty{display:none}.result-card{width:500px}.result-card>p{margin-bottom:18px}.chapter-summary{font-size:13px;line-height:2;color:#e4ded0}.chapter-summary p{margin-bottom:15px}.chapter-summary ul{padding-left:18px;line-height:2}.ending-note{margin:20px 0 0!important;color:#b7af9b!important;font-size:10px!important;letter-spacing:1px}.close-button{display:flex;justify-content:center;align-items:center;flex-shrink:0;align-self:flex-start;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#242d3a40;color:#e1dac8;font-family:Arial,sans-serif;font-weight:200;font-size:24px}.close-button:hover{background:#cab37d20}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border-bottom:1px solid var(--line);padding-bottom:19px;flex-shrink:0}.panel-heading h2{margin:6px 0 0}
.story-modal{z-index:25}.story-card{width:min(690px,100%);display:flex;flex-direction:column;padding:0;overflow:hidden}.story-heading{padding:31px 39px 0;flex-shrink:0}.story-heading h2{margin:10px 0 20px;font-size:34px}.story-rule{display:block;width:35px;height:1px;background:#d0c5a97d}.story-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c9b27b60 transparent;padding:23px 39px 25px}.story-body{font-size:14px;line-height:2.15;letter-spacing:.7px;color:#e7e3d8}.story-body p{font-size:14px;line-height:2.15;letter-spacing:.7px;color:#e7e3d8;margin:0 0 18px}.story-body p:last-child{margin-bottom:0}.story-body strong{font-weight:500;color:#f1e9bc}.story-effect{margin-top:23px}.story-footer{position:static;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 39px 23px;border-top:1px solid var(--line);flex-shrink:0;background:#1a212a90}.archive-note{font-size:10px;color:#beb6a0;letter-spacing:.8px}.story-footer .primary{width:210px;min-height:43px;flex-shrink:0;padding:10px 17px;font-size:11px}
.journal-card{width:min(820px,100%);padding:28px 33px 31px;display:flex;flex-direction:column;overflow:hidden;height:min(640px,90dvh)}.journal-layout{display:grid;grid-template-columns:190px 1fr;min-height:0;flex:1;gap:27px;padding-top:24px}.journal-list{display:flex;flex-direction:column;align-items:stretch;gap:8px;overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#c9b27b60 transparent;padding:2px 5px 4px 0}.journal-entry,.journal-list>button{display:block;flex-shrink:0;width:100%;text-align:left;border:1px solid #dad1bb1b;background:#cab27c07;padding:13px 14px;border-radius:4px;font-size:12px;line-height:1.6;letter-spacing:.5px;transition:background .2s,border-color .2s}.journal-entry:hover:not(:disabled),.journal-list>button:hover:not(:disabled){background:#cab27c16}.journal-entry.current,.journal-entry.active,.journal-list>button[aria-selected="true"]{background:#cbbe9e16;border-color:#d1c6aa5e}.journal-entry.locked,.journal-list>button:disabled{color:#bea15f;background:transparent;border-style:dashed}.journal-entry small,.journal-entry span,.journal-list>button small{display:block;font-size:10px;color:#b8af97;margin-top:5px}.journal-detail{min-width:0;overflow:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-width:thin;scrollbar-color:#c9b27b60 transparent}.journal-detail h3{font-family:var(--serif);font-size:27px;font-weight:400;line-height:1.6;letter-spacing:2px;margin:0 0 19px;color:#e8e3d5}.journal-detail h4{font-size:11px;color:#d4cab0;font-weight:400;letter-spacing:2px;margin:0 0 10px}.journal-detail p{font-size:13px;line-height:2.15;letter-spacing:.5px;margin-bottom:17px}.journal-detail .story-effect{margin-top:20px}.empty-state{color:#c8c0ad!important;padding-top:32px;text-align:center;font-size:12px!important}
.map-panel{width:min(850px,100%);padding:29px 34px 27px;display:flex;flex-direction:column;overflow:hidden}.map-scroll{overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c9b27b60 transparent;padding:22px 3px 1px}.map-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.map-card,.map-list>button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;min-width:0;text-align:left;min-height:166px;border:1px solid #d7ceb62d;border-radius:5px;background:linear-gradient(155deg,#b2924918,#c6b89405);padding:18px 13px;color:#e6e0d0;transition:background .2s,border-color .2s}.map-card:hover:not(:disabled),.map-list>button:hover:not(:disabled){background:#c4aa6e20;border-color:#d5cbb265}.map-card.current,.map-card.active{border-color:#d5cbb28a;background:#c4b5901c}.map-card.locked,.map-list>button:disabled{opacity:.53;cursor:default;background:transparent;border-style:dashed}.map-card .map-number,.map-card .level-number,.map-card>span:first-child{font-family:var(--serif);font-size:29px;line-height:1.2;color:#d5cbb1;margin-bottom:21px}.map-card h3,.map-card strong,.map-list>button strong{display:block;font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.5;letter-spacing:1px;margin:0 0 8px}.map-card p,.map-card small,.map-list>button small{font-size:10px;line-height:1.8;letter-spacing:.3px;color:#bfb69e;margin:0}.map-card .map-state,.map-card .level-status{margin-top:auto;padding-top:13px;color:#d4c9af;font-size:10px}.future-chapters{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:25px}.future-chapters .eyebrow{white-space:nowrap;font-size:9px;letter-spacing:2px}.future-chapters p{font-size:11px;color:#cbb47f;line-height:1.8;letter-spacing:.5px;margin:0;text-align:right}
.touch-controls{position:absolute;inset:auto max(25px,env(safe-area-inset-right)) 54px max(25px,env(safe-area-inset-left));z-index:6;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;pointer-events:none}.move-pad,.action-pad{display:flex;align-items:flex-end;gap:11px}.touch-controls button{pointer-events:auto;touch-action:none;width:57px;height:57px;background:#20283473;border:1px solid #ede8dd47;backdrop-filter:blur(8px);border-radius:50%;font-size:28px;user-select:none;-webkit-user-select:none}.touch-controls button.held{background:#cec2a380;transform:scale(.96)}.touch-controls .jump-pad{display:flex;flex-direction:column;align-items:center;justify-content:center;width:65px;height:65px;font-size:27px}.touch-controls .skill-pad{display:flex;flex-direction:column;align-items:center;justify-content:center;width:49px;height:49px;font-size:11px}.touch-controls small{font-size:9px;line-height:1.2;letter-spacing:.5px;color:#e0d8c4}.skill-pad>span{margin-bottom:3px}.jump-pad>span{line-height:1.1}#rotate-note{display:none;position:absolute;left:50%;bottom:15px;transform:translateX(-50%);z-index:7;font-size:10px;white-space:nowrap;color:#cec8ba;letter-spacing:.5px}
@media(hover:hover) and (pointer:fine){.touch-controls{display:none!important}}
@media(max-width:1100px){.identity{gap:11px;font-size:11px;letter-spacing:1px}.topbar{left:25px;right:25px}.edition{display:none}.journey{left:25px;width:225px}#game-footer{left:25px;right:25px}.desktop-help{display:none}.intro{left:8%;width:440px}h1{font-size:60px}.boss-hud{left:auto;right:25px;transform:none;width:270px}}
@media(max-width:760px){.topbar{top:17px;left:19px;right:19px;gap:10px}.identity .divider,.identity #chapter{display:none}.topbar nav{gap:5px}.topbar nav button{height:32px;min-width:30px;padding:0 6px}.topbar .nav-label{font-size:10px;padding:0 8px}.nav-divider{margin:0 1px}#sound{min-width:55px;font-size:9px}.intro{width:84%;left:8%;top:49%}h1{font-size:49px;line-height:1.4;margin:17px 0 19px}.intro p{font-size:13px;margin-bottom:23px}.intro-actions{gap:9px}.intro .primary{width:212px}.intro .secondary{font-size:11px;padding:13px 14px}.intro-meta{font-size:10px;letter-spacing:1.2px}.intro-keys{gap:12px}.journey{top:70px;left:20px;width:205px}.journey-label{font-size:10px}#objective-text{font-size:10px}.ability-bar{gap:5px;margin-top:8px}.ability{font-size:9px;padding:3px 5px}.boss-hud{top:71px;right:20px;width:220px}.boss-heading{font-size:11px}#game-footer{left:20px;right:20px;bottom:20px}.footnote{font-size:11px}.journey-stats{gap:12px;font-size:9px}.journey-stats b{font-size:14px}.hint{font-size:11px;max-width:85vw;padding:8px 16px;bottom:124px}.interact-prompt{bottom:176px;font-size:11px;padding:10px 15px}.modal{padding:15px}.modal-card{padding:27px 28px}.modal h2{font-size:29px;letter-spacing:1.5px}.modal p{font-size:12px}.story-card{padding:0}.story-heading{padding:23px 27px 0}.story-heading h2{font-size:29px;margin:9px 0 15px}.story-scroll{padding:19px 27px 21px}.story-body,.story-body p{font-size:13px;line-height:2.1}.story-footer{padding:15px 27px 19px;gap:15px}.story-footer .primary{width:186px;font-size:10px}.archive-note{font-size:9px;line-height:1.8;letter-spacing:0}.journal-card{padding:22px;height:min(600px,90dvh)}.journal-layout{grid-template-columns:150px 1fr;gap:19px;padding-top:20px}.journal-entry,.journal-list>button{padding:10px 11px;font-size:11px}.journal-detail h3{font-size:24px}.journal-detail p{font-size:12px}.map-panel{padding:22px}.map-list{gap:8px}.map-card,.map-list>button{padding:13px 10px;min-height:157px}.map-card h3,.map-card strong,.map-list>button strong{font-size:15px;letter-spacing:.5px}.map-card .map-number,.map-card .level-number,.map-card>span:first-child{font-size:25px;margin-bottom:17px}.future-chapters{margin-top:20px;padding-top:17px}.future-chapters p{font-size:10px}}
@media(max-height:540px){.topbar{top:max(13px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}.topbar nav button{height:30px}.identity{font-size:10px}.intro{top:54%;width:430px}.eyebrow{font-size:9px;letter-spacing:2px}h1{font-size:39px;line-height:1.25;margin:11px 0 12px}.intro p{font-size:11px;line-height:1.7;margin-bottom:17px}.intro p br:last-child{display:none}.primary,.secondary{min-height:39px;padding:10px 17px;font-size:11px}.intro-meta{margin-top:13px;font-size:9px}.intro-keys{display:none}.journey{top:60px;width:220px}.journey-label{font-size:10px}.track{margin-top:7px}#objective-text{margin-top:7px;line-height:1.7}.ability-bar{margin-top:7px}.boss-hud{top:59px;padding:9px 12px;width:240px}.boss-hud p{font-size:9px;margin-top:5px}.boss-track{margin-top:7px}.boss-heading{font-size:10px}#game-footer{bottom:13px;font-size:9px}.footnote{display:none}.journey-stats{margin-left:auto;gap:15px}.journey-stats b{font-size:13px}.touch-controls{bottom:35px}.touch-controls button{width:48px;height:48px;font-size:25px}.touch-controls .jump-pad{width:56px;height:56px}.touch-controls .skill-pad{width:44px;height:44px}.hint{bottom:43px;font-size:10px;padding:7px 13px;max-width:48vw}.interact-prompt{bottom:88px;padding:8px 13px;font-size:10px}.modal{padding:15px}.modal-card{max-height:91dvh;padding:22px 28px}.modal h2{font-size:26px;margin:9px 0 12px}.modal p{font-size:11px;line-height:1.9;margin-bottom:15px}.button-stack{margin-top:15px;gap:8px}.subtle{padding:7px}.story-card{width:700px;padding:0}.story-heading{padding:18px 30px 0}.story-heading h2{font-size:25px;margin:5px 0 12px}.story-scroll{padding:15px 30px 18px}.story-body,.story-body p{font-size:12px;line-height:2}.story-body p{margin-bottom:14px}.story-effect{margin-top:16px;padding:9px 13px;font-size:11px}.story-footer{padding:12px 30px 15px}.story-footer .primary{min-height:36px;width:192px;padding:8px 15px}.journal-card{height:91dvh;max-width:820px;padding:18px 25px}.panel-heading{padding-bottom:12px}.panel-heading h2{margin:4px 0 0;font-size:25px}.journal-layout{padding-top:15px}.journal-detail h3{font-size:23px;margin-bottom:12px}.journal-detail p{font-size:11px;line-height:2;margin-bottom:13px}.map-panel{padding:19px 26px;width:850px}.map-scroll{padding-top:15px}.map-card,.map-list>button{min-height:139px;padding:12px 13px}.map-card .map-number,.map-card .level-number,.map-card>span:first-child{font-size:25px;margin-bottom:10px}.map-card h3,.map-card strong,.map-list>button strong{font-size:16px;margin-bottom:6px}.map-card .map-state,.map-card .level-status{padding-top:8px}.future-chapters{margin-top:17px;padding-top:13px}.future-chapters p{font-size:9px}.chapter-summary{font-size:11px}.ending-note{margin-top:14px!important}.reward-note{font-size:11px;padding:9px 13px}}
@media(orientation:portrait) and (max-width:700px){#rotate-note{display:block}.intro{top:48%;transform:translateY(-43%)}.intro::before{inset:-100px -30px}.intro h1{font-size:54px;line-height:1.4}.intro p{font-size:13px;line-height:2}.intro-actions{flex-wrap:wrap}.intro .primary{width:210px}.intro .secondary{min-height:42px}.intro-keys{display:none}.topbar{left:16px;right:16px;gap:8px}.brand{font-size:10px;letter-spacing:.5px}.topbar .nav-label{padding:0 7px;font-size:10px}.topbar nav{gap:4px}.topbar nav button{min-width:28px;padding:0 5px}.nav-divider{display:none}#sound{min-width:48px;font-size:8px}#fullscreen{display:none}.journey{top:75px;left:18px;width:210px}.boss-hud{top:187px;left:18px;right:auto;width:min(260px,72vw)}.touch-controls{inset:auto 18px 76px;gap:12px}.move-pad,.action-pad{gap:8px}.touch-controls button{width:49px;height:49px}.touch-controls .jump-pad{width:56px;height:56px}.touch-controls .skill-pad{width:42px;height:42px;font-size:9px}#game-footer{bottom:43px;left:18px;right:18px}.footnote{display:none}.journey-stats{margin-left:auto;gap:15px}.hint{bottom:155px;width:max-content;max-width:88vw;font-size:11px}.interact-prompt{bottom:215px;width:max-content;max-width:88vw;font-size:11px}.modal{padding:14px}.modal-card{max-height:90dvh;padding:28px}.modal h2{font-size:28px}.modal p{font-size:12px}.story-card{padding:0}.story-heading{padding:25px 25px 0}.story-heading h2{font-size:28px;line-height:1.5;margin:8px 0 17px}.story-scroll{padding:21px 25px 24px}.story-body,.story-body p{font-size:13px;line-height:2.2}.story-footer{padding:15px 25px 20px;flex-direction:column;align-items:stretch;gap:10px}.story-footer .primary{width:100%;min-height:43px;font-size:11px}.archive-note{font-size:9px;text-align:center}.story-effect{font-size:11px}.journal-card{height:84dvh;padding:22px}.journal-layout{display:flex;flex-direction:column;gap:16px;padding-top:17px}.journal-list{display:flex;flex-direction:row;gap:8px;flex-shrink:0;max-height:96px;overflow:auto;padding:2px 2px 7px}.journal-entry,.journal-list>button{width:136px;min-width:136px;padding:10px;font-size:11px}.journal-entry small,.journal-entry span{font-size:9px}.journal-detail{flex:1;padding:0 3px}.journal-detail h3{font-size:25px}.journal-detail p{font-size:12px}.map-panel{padding:23px;max-height:90dvh}.map-list{grid-template-columns:1fr;gap:9px}.map-card,.map-list>button{min-height:96px;padding:14px 17px 14px 63px;display:block}.map-card .map-number,.map-card .level-number,.map-card>span:first-child{position:absolute;left:18px;top:18px;margin:0;font-size:28px}.map-card h3,.map-card strong,.map-list>button strong{font-size:18px;margin-bottom:5px}.map-card p,.map-card small,.map-list>button small{font-size:10px}.map-card .map-state,.map-card .level-status{padding-top:7px}.future-chapters{display:block;gap:0;margin-top:21px;padding-top:17px}.future-chapters p{text-align:left;font-size:10px;margin-top:8px}.close-button{width:31px;height:31px;font-size:22px}.panel-heading h2{font-size:27px}.chapter-summary{font-size:12px}.reward-note{font-size:12px}.toast{top:30%;font-size:12px;width:max-content;max-width:85%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}

/* Short records live above the character; the forest never becomes a backdrop. */
#story-modal.speech-bubble{position:absolute;inset:auto;z-index:25;width:390px;height:200px;max-width:calc(100vw - 20px);padding:0;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;transform:none;overflow:visible}
#story-modal::after{content:"";position:absolute;top:calc(100% - 1px);left:var(--speech-pointer,50%);width:13px;height:13px;transform:translate(-50%,-50%) rotate(45deg);border-right:1px solid #dbd3bd66;border-bottom:1px solid #dbd3bd66;background:#202833;pointer-events:none}
#story-modal .story-card{width:100%;height:100%;max-height:none;display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid #dbd3bd66;border-radius:11px;background:linear-gradient(130deg,#2e3a4afa,#202833fc);box-shadow:0 10px 32px #021c234d;text-align:left}
#story-modal .story-heading{position:relative;padding:13px 19px 0;flex:none}
#story-modal .story-heading .eyebrow{font-size:8px;letter-spacing:1.5px;line-height:1.45;color:#cfc5ac;padding-right:52px}
#story-modal .story-heading h2{font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.45;letter-spacing:1.2px;margin:3px 55px 0 0;color:#f5f1d9}
.story-page{position:absolute;right:19px;top:23px;font-family:var(--sans);font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:1px;color:#bfb69f}
#story-modal .story-scroll{flex:1;min-height:0;padding:7px 19px 5px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c3b69444 transparent}
#story-modal .story-body,#story-modal .story-body p{font-size:13px;line-height:1.8;letter-spacing:.5px;color:#ede8dd;margin:0;font-weight:400;overflow-wrap:anywhere}
#story-modal .story-body.is-typing p::after{content:"";display:inline-block;width:3px;height:12px;margin-left:4px;vertical-align:-1px;background:#d6ccb2;animation:reading-caret 1s steps(1) infinite}
#story-modal .story-effect{font-size:10px;line-height:1.6;margin:6px 0 1px;padding:4px 8px;border:0;border-left:2px solid #cabd9c5e;color:#dad0b9;background:#cfc3a508}
#story-modal .story-footer{position:static;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;flex:none;padding:7px 12px 8px 19px;border-top:1px solid #e1d9c616;background:transparent}
#story-modal .archive-note{font-size:8px;line-height:1.5;letter-spacing:.2px;text-align:left;max-width:190px;color:#c2b9a1}
#story-modal .story-footer .primary{width:110px;min-height:29px;height:29px;padding:5px 10px;border:1px solid #e0d8c45e;border-radius:4px;background:#e6e0d0;color:#242d3a;font-size:10px;letter-spacing:1px;box-shadow:none}
#story-modal .story-footer .primary>span{font-size:14px;line-height:1}
#story-modal.compact-speech{height:166px;width:350px}
#story-modal.compact-speech .story-heading{padding:9px 14px 0}
#story-modal.compact-speech .story-heading h2{font-size:18px;margin-top:1px;line-height:1.3}
#story-modal.compact-speech .story-heading .eyebrow{font-size:7px}
#story-modal.compact-speech .story-page{top:17px;right:14px;font-size:8px}
#story-modal.compact-speech .story-scroll{padding:5px 14px 3px}
#story-modal.compact-speech .story-body,#story-modal.compact-speech .story-body p{font-size:12px;line-height:1.65;letter-spacing:.3px}
#story-modal.compact-speech .story-footer{padding:5px 10px 6px 14px}
#story-modal.compact-speech .archive-note{font-size:7px}
#story-modal.compact-speech .story-footer .primary{height:27px;min-height:27px;font-size:9px}
#story-modal.micro-speech .story-heading .eyebrow{display:none}
#story-modal.micro-speech .story-heading{padding-top:8px}
#story-modal.micro-speech .story-heading h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:17px}
#story-modal.micro-speech .story-page{top:13px}
.reading-story .touch-controls{opacity:.3;pointer-events:none}
.reading-story .touch-controls button,.reading-story .interact-prompt{pointer-events:none}
.reading-story .interact-prompt{opacity:0}
@keyframes reading-caret{0%,70%{opacity:1}71%,100%{opacity:0}}

/* Climbing and crouching are separate from jumping on touch screens. */
.vertical-pad{display:flex;gap:7px;align-items:flex-end}
.touch-controls .climb-pad,.touch-controls .crouch-pad{display:flex;flex-direction:column;justify-content:center;align-items:center;width:44px;height:48px;border-radius:15px;font-size:22px}
.climb-pad>span,.crouch-pad>span{line-height:1.1}
@media(max-height:540px){.vertical-pad{gap:5px}.touch-controls .climb-pad,.touch-controls .crouch-pad{width:37px;height:43px;font-size:19px}.move-pad{gap:7px}}
@media(orientation:portrait) and (max-width:700px){.vertical-pad{position:absolute;left:0;bottom:59px;gap:8px}.touch-controls .climb-pad,.touch-controls .crouch-pad{width:49px;height:42px;font-size:20px}.reading-story .journey{opacity:.45}}

/* A recovered chapter is a full-screen illustrated memory, shown only after its boss. */
.chapter-film{position:absolute;inset:0;z-index:40;background:#13181f;overflow:hidden;color:#eeeadf;isolation:isolate}
.film-world{position:absolute;inset:0;overflow:hidden;z-index:-1}
.film-landscape{position:absolute;inset:-4%;background:url('assets/forest-energy-ruins.png') center/cover no-repeat;opacity:.7;filter:saturate(.65) brightness(.7);animation:memory-drift 35s ease-in-out infinite alternate;transition:filter 1.8s,opacity 1.8s}
.film-world::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#131820f0 0%,#151a22ba 37%,#11151b25 73%),linear-gradient(0deg,#0c0f14b8,transparent 35%,transparent 75%,#0e1217b8);z-index:5;pointer-events:none}
.film-light{position:absolute;inset:-25%;background:radial-gradient(ellipse at 69% 47%,#f5e6a735,transparent 30%);animation:memory-breathe 6s ease-in-out infinite;transition:background 1.8s}
.film-guardian{position:absolute;right:-1%;bottom:9%;width:58%;height:72%;object-fit:contain;filter:brightness(.88) saturate(.7) drop-shadow(0 12px 45px #0b0e138c);transform-origin:center bottom;animation:guardian-breathe 5.5s ease-in-out infinite;transition:filter 1.6s,opacity 1.2s,transform 1.6s}
.film-energy-path{position:absolute;width:120%;height:130px;left:-8%;bottom:13%;border:1px solid #dcd4bf2b;border-radius:50%;transform:rotate(-9deg);box-shadow:0 -1px 20px #d0c5a926;animation:memory-breathe 4s ease-in-out infinite}
.film-energy-path::after{content:"";position:absolute;left:67%;top:-4px;width:9px;height:9px;border-radius:50%;background:#e1d9c6;box-shadow:0 0 24px #dad1ba}
.film-ruin{position:absolute;right:23%;top:12%;width:240px;height:65%;display:flex;align-items:flex-end;justify-content:center;gap:16px;opacity:0;transform:translateY(24px);transition:opacity 1.6s,transform 1.6s}
.film-ruin i{position:relative;display:block;width:62px;height:92%;background:linear-gradient(90deg,#192029f0,#7d6733ed 52%,#202834f0);clip-path:polygon(10% 5%,82% 0,100% 100%,0 100%);box-shadow:inset 0 0 40px #0a0c10}
.film-ruin i:nth-child(2){height:100%;width:82px}.film-ruin i:nth-child(3){height:69%;width:49px}
.film-ruin i::after{content:"";position:absolute;inset:15% 38% 8%;background:repeating-linear-gradient(0deg,transparent 0,transparent 17px,#dcb27866 18px,#dcb278 20px,transparent 21px);filter:drop-shadow(0 0 7px #e8bd6e);animation:memory-breathe 3.5s ease-in-out infinite}
.film-top{position:absolute;top:max(30px,env(safe-area-inset-top));left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:10px;letter-spacing:2px;color:#dad2be}
.film-top>span{padding-left:14px;border-left:1px solid #d3c8ad80}
.film-top button{background:#1d242f65;border:1px solid #e0d9c636;border-radius:4px;padding:8px 12px;font-size:10px;letter-spacing:1px}
.film-layout{position:absolute;inset:18% 8% 17%;display:flex;align-items:center;gap:6%}
.film-copy{width:44%;max-width:530px;flex-shrink:0;text-shadow:0 2px 20px #12171d}
.film-copy .eyebrow{font-size:10px;letter-spacing:2.5px;color:#d5cab0;margin-bottom:17px}
.film-copy h2{font-family:var(--serif);font-size:clamp(30px,3.65vw,58px);font-weight:400;letter-spacing:2px;line-height:1.5;white-space:pre-line;margin:0 0 23px;color:#eee9de}
.film-copy p{max-width:440px;font-size:13px;line-height:2.2;letter-spacing:.65px;margin:0;color:#dfd9ca}
.film-copy-enter{animation:memory-copy-in .8s ease both}
.film-bottom{position:absolute;left:8%;right:8%;bottom:max(37px,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:30px}
.film-bottom .primary{width:210px;min-height:43px;font-size:11px;letter-spacing:1.4px}
.film-scene-track{display:flex;align-items:center;gap:19px}
.film-counter{font-size:10px;letter-spacing:2px;color:#dad1bb;font-variant-numeric:tabular-nums}
.film-dots{display:flex;gap:7px}.film-dots i{position:relative;display:block;width:35px;height:2px;background:#ded7c324;overflow:hidden}.film-dots i.active::after{content:"";position:absolute;inset:0;background:#dcd4be;transform:scaleX(var(--film-progress,0));transform-origin:left}
.chapter-film[data-scene="1"] .film-landscape{filter:saturate(.5) brightness(.45);opacity:.8}
.chapter-film[data-scene="1"] .film-light{background:radial-gradient(ellipse at 70% 46%,#d5935640,transparent 35%)}
.chapter-film[data-scene="1"] .film-ruin{opacity:1;transform:translateY(0)}
.chapter-film[data-scene="1"] .film-guardian{filter:brightness(.48) saturate(.7) sepia(.25) drop-shadow(0 8px 45px #0d1014);transform:scale(.91);opacity:.65}
.chapter-film[data-scene="1"] .film-energy-path{border-color:#d7a26047;box-shadow:0 -1px 35px #c59b524d}
.chapter-film[data-scene="1"] .film-energy-path::after{background:#f4c684;box-shadow:0 0 32px #e9a255}
.chapter-film[data-scene="2"] .film-landscape{filter:saturate(.7) brightness(.6);opacity:.47}
.chapter-film[data-scene="2"] .film-guardian{opacity:0}
.chapter-film[data-scene="2"] .film-world::after{background:linear-gradient(0deg,#0c0f1499,transparent 50%,#0e121777)}
.chapter-film[data-scene="2"] .film-layout{inset:16% 7% 17%;gap:7%}
.chapter-film[data-scene="2"] .film-copy{width:45%}
.chapter-film[data-scene="2"] .film-copy h2{font-size:clamp(29px,3vw,45px);margin-bottom:18px}
.film-puzzle{width:48%;max-width:580px;flex-shrink:0}
.puzzle-image{position:relative;width:100%;aspect-ratio:1.65;border:1px solid #dad1ba41;background:#1f2732;box-shadow:0 18px 70px #041b2038;overflow:hidden}
.puzzle-underlay,.puzzle-piece{position:absolute;inset:0;background-image:url('assets/guardian.png'),linear-gradient(0deg,#212a3688,#cab37d1a),url('assets/forest-energy-ruins.png');background-size:95% auto,cover,cover;background-position:center 52%,center,center;background-repeat:no-repeat}
.puzzle-underlay{opacity:.15;filter:grayscale(1)}
.puzzle-piece{filter:saturate(.7);animation:puzzle-join 1.25s cubic-bezier(.2,.7,.25,1) both;animation-delay:calc(var(--piece) * .35s + .4s)}
.puzzle-piece:nth-of-type(2){clip-path:polygon(0 0,20% 0,20% 35%,23% 35%,23% 48%,20% 48%,20% 100%,0 100%);--piece-x:-70px;--piece-y:-25px}
.puzzle-piece:nth-of-type(3){clip-path:polygon(20% 0,40% 0,40% 59%,37% 59%,37% 72%,40% 72%,40% 100%,20% 100%,20% 48%,23% 48%,23% 35%,20% 35%);--piece-x:0px;--piece-y:60px}
.puzzle-piece:nth-of-type(4){clip-path:polygon(40% 0,60% 0,60% 30%,63% 30%,63% 45%,60% 45%,60% 100%,40% 100%,40% 72%,37% 72%,37% 59%,40% 59%);--piece-x:25px;--piece-y:-60px}
.puzzle-piece:nth-of-type(5){clip-path:polygon(60% 0,80% 0,80% 57%,77% 57%,77% 71%,80% 71%,80% 100%,60% 100%,60% 45%,63% 45%,63% 30%,60% 30%);--piece-x:45px;--piece-y:55px}
.puzzle-piece:nth-of-type(6){clip-path:polygon(80% 0,100% 0,100% 100%,80% 100%,80% 71%,77% 71%,77% 57%,80% 57%);--piece-x:80px;--piece-y:-35px}
.puzzle-seal{position:absolute;bottom:13px;left:15px;padding:5px 8px;font-size:9px;letter-spacing:1.4px;color:#e4decd;background:#1e2631c9;border-left:2px solid #d2c7ac68;animation:memory-copy-in 1s 2.5s both}
.puzzle-labels{display:flex;justify-content:space-between;gap:6px;padding-top:15px;color:#cbc1a8;font-size:9px;letter-spacing:.7px}
.puzzle-labels span{position:relative;padding-top:10px;text-align:center;flex:1}
.puzzle-labels span::before{content:"";position:absolute;top:0;left:50%;width:3px;height:3px;border-radius:50%;background:#d1c6aa}
.film-reward{margin-top:22px;padding:14px 0 0;border-top:1px solid #d2c6aa38;display:flex;flex-direction:column;gap:6px}
.film-reward>span{font-size:9px;letter-spacing:1.7px;color:#cac1aa}.film-reward strong{font-family:var(--serif);font-size:24px;line-height:1.5;letter-spacing:2px;font-weight:400;color:#eee9bc}.film-reward kbd{font:10px var(--sans);vertical-align:middle;letter-spacing:0;margin-left:9px;padding:4px 7px}.film-reward small{font-size:10px;line-height:1.7;color:#c8bfa8;letter-spacing:.6px}
@keyframes memory-drift{from{transform:scale(1) translateX(0)}to{transform:scale(1.07) translateX(-1.5%)}}
@keyframes memory-breathe{0%,100%{opacity:.65}50%{opacity:1}}
@keyframes guardian-breathe{0%,100%{translate:0 0;scale:1}50%{translate:0 -7px;scale:1.015}}
@keyframes memory-copy-in{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes puzzle-join{0%{opacity:0;transform:translate(var(--piece-x),var(--piece-y))}35%{opacity:1}100%{opacity:1;transform:translate(0,0)}}
@media(max-height:540px){.film-top{top:19px;font-size:8px}.film-top button{font-size:9px;padding:6px 9px}.film-layout{inset:20% 7% 21%}.film-copy{width:50%}.film-copy .eyebrow{font-size:8px;margin-bottom:9px;letter-spacing:1.5px}.film-copy h2{font-size:30px;line-height:1.4;margin-bottom:12px}.film-copy p{font-size:11px;line-height:1.9;letter-spacing:.4px}.film-bottom{bottom:17px}.film-bottom .primary{width:182px;min-height:35px;padding:8px 13px;font-size:10px}.film-guardian{right:-2%;bottom:8%;height:77%;width:55%}.chapter-film[data-scene="2"] .film-layout{inset:18% 7% 18%;gap:5%}.chapter-film[data-scene="2"] .film-copy{width:49%}.chapter-film[data-scene="2"] .film-copy h2{font-size:27px;margin-bottom:9px}.film-puzzle{width:45%}.puzzle-labels{font-size:7px;padding-top:8px;gap:2px;letter-spacing:0}.puzzle-labels span{padding-top:7px}.puzzle-seal{font-size:7px;bottom:8px;left:10px}.film-reward{margin-top:11px;padding-top:9px;gap:3px}.film-reward strong{font-size:20px}.film-reward>span{font-size:8px}.film-reward small{font-size:8px}.film-ruin{top:9%;right:18%;width:180px}}
@media(orientation:portrait) and (max-width:700px){.film-top{top:24px;left:6%;right:6%;font-size:9px;letter-spacing:1px}.film-top button{font-size:8px;padding:7px 9px}.film-layout{inset:14% 8% 14%;align-items:flex-start;flex-direction:column;justify-content:flex-start}.film-copy{width:100%;max-width:none}.film-copy .eyebrow{font-size:9px;letter-spacing:2px}.film-copy h2{font-size:37px;line-height:1.5;margin-bottom:17px}.film-copy p{font-size:12px;line-height:2.1;max-width:none}.film-world::after{background:linear-gradient(0deg,#14192055,transparent 20%,#131820d9 62%,#131820fa)}.film-guardian{width:95%;height:40%;right:-5%;bottom:8%;opacity:.88}.film-ruin{right:15%;top:auto;bottom:10%;width:180px;height:45%}.film-bottom{left:7%;right:7%;bottom:28px;gap:15px}.film-bottom .primary{width:174px;min-height:40px;font-size:10px;padding:10px 13px}.film-scene-track{gap:10px}.film-counter{font-size:8px;letter-spacing:1px}.film-dots{gap:4px}.film-dots i{width:16px}.chapter-film[data-scene="2"] .film-layout{inset:11% 8% 14%;gap:22px;justify-content:center;overflow:auto}.chapter-film[data-scene="2"] .film-copy{width:100%}.chapter-film[data-scene="2"] .film-copy h2{font-size:29px;margin-bottom:12px}.chapter-film[data-scene="2"] .film-copy .eyebrow{font-size:8px;margin-bottom:9px}.chapter-film[data-scene="2"] .film-copy p{font-size:11px;line-height:1.9}.film-puzzle{width:100%;max-width:360px;margin:0 auto}.puzzle-labels{font-size:8px;padding-top:9px;letter-spacing:.2px}.puzzle-labels span{padding-top:7px}.film-reward{margin-top:14px;padding-top:10px;gap:4px}.film-reward strong{font-size:22px}.film-reward small{font-size:9px}.film-reward>span{font-size:8px}.puzzle-seal{font-size:8px;bottom:10px;left:11px}}
@media(prefers-reduced-motion:reduce){#story-modal .is-typing p::after{animation:none}.chapter-film *, .chapter-film *::before,.chapter-film *::after{animation:none!important;transition:none!important}.puzzle-piece{opacity:1;transform:none}.film-copy-enter,.puzzle-seal{opacity:1;translate:none}}
/* Electrical UI: amber signals on graphite panels, separate from the forest. */
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.power-icon{width:15px;height:15px;display:inline-block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round;color:var(--gold);vertical-align:-3px}
.topbar .nav-label{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.topbar nav button{border-color:#ffd34f36;background:#172231c2}
.topbar nav button:hover{background:#344256}
.eyebrow{color:#f5cd62}
.intro .eyebrow{gap:9px}
.primary{background:#ffd34f;border-color:#ffe58b;color:#19222e;box-shadow:0 5px 24px #ffd34f16}
.primary:hover:not(:disabled){background:#ffe584}
.secondary{border-color:#ffd34f61;background:#172231b0;color:#f8eccc}
.secondary:hover{background:#344256}
.edition{border-color:#ffd34f45;color:#f3d887;background:#1722316b}
.track{height:3px;background:#1c2a36b8}
.track i{box-shadow:0 0 9px #ffd34f66}
.ability{color:#ffe293;border-color:#ffd34f4d;background:#172231bf}
.ability kbd{background:#ffd34f1c;color:#ffdfa4}
.hint,.toast,.interact-prompt{background:#172231ed;border-color:#ffd34f70;text-shadow:0 1px 3px #090d14}
.hint{border-radius:8px;border-left:3px solid #ffd34f}
.toast{color:#ffe7ab}
.interact-prompt:hover{background:#2c3a4c}
.interact-prompt kbd{background:#ffd34f;color:#19222e;border-color:#ffd34f}
.boss-hud{background:#172231e8;border-color:#ffc84f6b}
.boss-track i{background:linear-gradient(90deg,#f2aa37,#ffe17b)}
.journey-stats b{color:#ffdb6b}
.journey-stats>span:first-child::before{content:"";width:12px;height:14px;align-self:center;background:var(--gold);clip-path:polygon(52% 0,12% 56%,45% 56%,34% 100%,90% 39%,56% 39%,69% 0)}
.modal-card{background:linear-gradient(130deg,#293545f7,#162130fc);border-color:#ffd34f73;box-shadow:0 30px 100px #0000006b}
.modal-card .eyebrow{color:#f5cd62}
.reward-note,.story-effect{color:#ffe8b4;border-left-color:#ffd34f;background:#ffd34f09}
.journal-entry.current,.journal-entry.active,.journal-list>button[aria-selected="true"],.map-card.current,.map-card.active{border-color:#ffd34fb3;background:#ffd34f14}
.map-card .map-number,.map-card .level-number,.map-card>span:first-child{color:#ffda72}
.touch-controls button{background:#172231bd;border-color:#ffd34f85;color:#fff3d0}
.touch-controls button.held{background:#ffd34f;color:#19222e}
.touch-controls button.held small{color:#19222e}
#story-modal::after{background:#1b2736;border-right-color:#ffd34fc9;border-bottom-color:#ffd34fc9}
#story-modal .story-card{background:linear-gradient(135deg,#2a3749fa,#1b2736fc);border-color:#ffd34fc9;border-top:3px solid #ffd34f;box-shadow:0 12px 34px #080f1970,0 0 18px #ffcc3b0b}
#story-modal .story-heading .eyebrow{color:#ffdc7b;gap:7px}
#story-modal .story-heading .eyebrow::before{content:"";display:block;flex:0 0 auto;width:11px;height:11px;background:var(--gold);clip-path:polygon(48% 0,12% 58%,44% 58%,33% 100%,91% 39%,60% 39%,73% 0)}
#story-modal .story-heading h2{color:#fff4d8}
#story-modal .story-page{color:#f5cf74}
#story-modal .story-body,#story-modal .story-body p{color:#f5f1e7}
#story-modal .story-body.is-typing p::after{background:#ffd34f}
#story-modal .story-scroll{scrollbar-color:#ffd34f80 transparent}
#story-modal .story-effect{color:#ffe4a4;background:#ffd34f0a;border-left-color:#ffd34f99}
#story-modal .story-footer{border-top-color:#ffd34f2b}
#story-modal .archive-note{color:#cbc9c0}
#story-modal .story-footer .primary{background:#ffd34f;border-color:#ffe58b;color:#19222e}
#story-modal .story-footer .primary:hover{background:#ffe584}
.chapter-film{background:#111b2a}
.film-top{color:#ffe5a6}
.film-top>span{border-left:2px solid #ffd34f}
.film-top button{background:#172231c9;border-color:#ffd34f6b;color:#ffe5a6}
.film-energy-path{border-color:#ffd34f52;box-shadow:0 -1px 24px #ffd34f36}
.film-energy-path::after{background:#fff0a8;box-shadow:0 0 28px #ffce49}
.film-copy .eyebrow{color:#ffdc7b}
.film-dots i.active::after{background:#ffd34f}
.puzzle-image{border-color:#ffd34f82;background:#202b3a}
.puzzle-seal{background:#172231e0;border-left-color:#ffd34f;color:#ffe9b1}
.puzzle-labels{color:#e3d2aa}
.puzzle-labels span::before{background:#ffd34f}
.film-reward{border-top-color:#ffd34f59}
.film-reward strong{color:#ffe393}
.film-reward kbd{border-color:#ffd34f7a;background:#ffd34f12}
@media(orientation:portrait) and (max-width:700px){.topbar .power-icon{width:12px;height:12px}.topbar .nav-label{gap:4px}}

/* Three energy cells stay close to the route, without covering the game. */
.health-hud{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;min-height:24px;margin:0 0 12px;padding:5px 8px;border:1px solid #ffd34f5c;border-radius:5px;background:#172231e0;box-shadow:0 3px 12px #0a101c25;color:#ffdf82;text-shadow:none;font-size:10px;line-height:1;letter-spacing:1px}
.health-hud>.power-icon{width:15px;height:15px}
.health-label{color:#f8f0d9;font-size:10px;white-space:nowrap}
.health-cells{display:flex;gap:4px;align-items:center}
.health-cell{position:relative;display:block;width:24px;height:10px;border-radius:2px;border:1px solid #ffe392;transition:background .15s,box-shadow .15s,border-color .15s}
.health-cell.filled{background:linear-gradient(0deg,#eaaa28,#ffdd69);box-shadow:0 0 7px #ffd34f35}
.health-cell.empty{background:repeating-linear-gradient(135deg,transparent 0 4px,#cfaa6a30 4px 5px);border-color:#ac8b5c6e;box-shadow:none}
#health-count{margin-left:1px;color:#ffe499;letter-spacing:.5px;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:10px}
.health-hud.critical,.health-hud[data-health="1"],.health-hud:has(#health-cell-1.filled):has(#health-cell-2.empty){border-color:#ff946cba;background:#2a2025ed}
.health-hud.critical .filled,.health-hud[data-health="1"] .filled,.health-hud:has(#health-cell-1.filled):has(#health-cell-2.empty) .filled{background:#ffc15e;border-color:#ffe1a0;box-shadow:0 0 8px #f1a15155}
.intro-survival{display:flex;align-items:center;gap:7px;margin-top:9px;color:#e3cf9d;font-size:10px;letter-spacing:.6px;line-height:1.6}
.intro-survival>.power-icon{width:14px;height:14px}
#chapter-retry-modal{z-index:30}
.retry-card{border-top:3px solid #ffd34f}
.retry-card .eyebrow{gap:8px}
.retry-card #chapter-retry-text{color:#e5dcc7;white-space:pre-line}
@media(max-height:540px){.health-hud{min-height:21px;margin-bottom:8px;padding:3px 7px;gap:7px}.health-cell{width:21px;height:9px}.health-hud>.power-icon{width:13px;height:13px}.intro-survival{margin-top:6px;font-size:9px;gap:6px}.intro-survival>.power-icon{width:12px;height:12px}}
/* Short landscape dialogue uses the high branch's headroom. Keep life visible
   in the otherwise empty left footer until reading ends. */
@media(max-height:540px) and (orientation:landscape){.reading-story .health-hud{position:fixed;left:max(20px,env(safe-area-inset-left));top:auto;bottom:8px;margin:0}}
@media(orientation:portrait) and (max-width:700px){.health-hud{margin-bottom:10px;gap:7px}.boss-hud{top:254px}.intro-survival{font-size:10px;letter-spacing:.25px}.retry-card{padding:26px}}

/* Distinguish the second recovered memory without adding large overlays. */
.chapter-film[data-chapter="2"] .film-art{filter:hue-rotate(22deg) saturate(.75);}
