@font-face{font-family:LumenSerif;src:local('Georgia')}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#101f2b;color:#e9eddf;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #efd08f;outline-offset:5px}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button svg{vertical-align:middle}.hidden{display:none!important}#app{max-width:1520px;margin:auto;padding:0 64px}.topbar{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #bbcbb512;position:relative;z-index:3}.brand{display:flex;gap:12px;align-items:center;background:none;border:0;padding:0;text-align:left;letter-spacing:4px;font-size:22px;font-weight:600;line-height:1.2}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:2.1px;color:#91a7a5;margin-top:6px}.brand-mark{font-size:42px;font-weight:300;color:#e4c78c;line-height:1}.top-actions{display:flex;gap:12px;align-items:center}.icon-btn{border:1px solid #afc7b719;border-radius:11px;background:#ffffff03;min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;transition:.2s}.icon-btn:hover,.text-btn:hover{background:#c5dfc50c;border-color:#b8d2bb4a}.text-btn{font-size:12px;padding:0 16px}.stamp-pill{display:flex;align-items:center;gap:7px;font-size:12px;color:#a7b9ac;margin-right:9px}.stamp-pill>span:first-child{font-size:20px;color:#dfc88c}.stamp-pill b{color:#ecdeb7;font-weight:600}.hero{display:grid;grid-template-columns:.92fr 1.08fr;min-height:580px;position:relative;align-items:center}.hero-copy{z-index:1;padding:48px 0 46px}.eyebrow{display:flex;gap:9px;align-items:center;color:#9ac3b3;font-size:9px;letter-spacing:1.7px;font-weight:600}.eyebrow i,.badge-dot{width:5px;height:5px;border-radius:50%;background:#b7d9b3;box-shadow:0 0 12px #b7d9b380}.hero h1{font-family:LumenSerif,Georgia,'Times New Roman',serif;font-size:clamp(40px,4.1vw,65px);font-weight:400;line-height:1.13;letter-spacing:-2px;margin:26px 0 20px}.hero h1 span{color:#c0d8c4}.intro{font-size:14px;line-height:1.9;max-width:355px;color:#99b0b0;margin:0 0 29px}.primary{background:#e4ca92;color:#192e34;border:0;border-radius:9px;padding:12px 22px;font-weight:650;box-shadow:0 5px 25px #d9bf6e0a;transition:background .2s,transform .2s}.primary:hover{background:#f1dcaa;transform:translateY(-1px)}.primary.large{font-size:13px;display:flex;justify-content:space-between;gap:40px;min-width:256px;padding:16px 21px}.primary.large>span:last-child{font-size:20px;line-height:20px;font-weight:400}.hero-meta{display:flex;gap:12px;align-items:center;font-size:10px;color:#8b9e9f;margin-top:16px}.tiny-spark{font-style:normal;color:#c7b98c;margin-right:3px}.dot{color:#5d747a}.quiet-link{padding:0;border:0;background:none;color:#afc3b7;font-size:11px;margin-top:32px}.quiet-link span{margin-left:10px}.hero-art{position:relative;align-self:stretch;margin-right:-40px;margin-left:-70px;display:flex;align-items:center;pointer-events:none;overflow:hidden}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101f2b 0%,transparent 18%,transparent 90%,#101f2b 100%);pointer-events:none}.hero-art img{width:100%;height:100%;max-height:580px;object-fit:contain;filter:saturate(.9)}.art-badge{position:absolute;bottom:36px;left:50%;transform:translateX(-40%);z-index:1;color:#bdcfc2;font-size:9px;letter-spacing:.6px;white-space:nowrap;padding:9px 14px;border:1px solid #b4c8af20;background:#10252b99;border-radius:20px;display:flex;gap:8px;align-items:center;backdrop-filter:blur(8px)}.section-top{display:flex;align-items:center;justify-content:space-between;margin:4px 0 18px}.section-top h2{font-size:13px;font-weight:500;letter-spacing:.2px;margin:0}.section-top>span{font-size:10px;color:#819b9e}.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.route-card{min-height:132px;text-align:left;border:1px solid #93b9a825;border-radius:12px;background:#152b34;display:flex;align-items:center;gap:17px;padding:23px 20px;transition:.2s;position:relative;overflow:hidden}.route-card:hover{background:#19323b;border-color:#bfd9b84c;transform:translateY(-2px)}.route-card.selected{background:linear-gradient(115deg,#203c3c,#162d35);border-color:#92bba53b}.route-icon{width:40px;height:47px;flex-shrink:0;border-radius:8px;background:#9ab99710;color:#cfdbb3;display:flex;align-items:center;justify-content:center;font-size:25px;border:1px solid #b1caaa21;transform:rotate(-5deg)}.route-icon.purple{color:#bfadd4;background:#b9a1d00a;border-color:#b9a1d022;transform:rotate(6deg)}.route-icon.coral{color:#d6b29e;background:#d6b29e0a;border-color:#d6b29e22;transform:rotate(-3deg)}.tag{font-size:8px;letter-spacing:1.6px;font-weight:600;color:#94b3aa}.route-card h3{font-family:Georgia,serif;font-size:17px;letter-spacing:-.3px;font-weight:400;margin:5px 0 6px}.route-card p{font-size:10px;color:#809b9e;margin:0;line-height:1.6}.card-arrow{align-self:flex-start;font-size:17px;color:#92aaa1;margin-left:auto;line-height:1;position:absolute;right:13px;top:13px}footer{min-height:104px;display:flex;align-items:center;gap:20px;color:#59757d;font-size:9px;letter-spacing:.15px}.footer-link{padding:0;border:0;background:none;color:#849d9e;font-size:9px}.footer-note{margin-left:auto}#game{padding:22px 0 0}.game-top{display:flex;align-items:center;justify-content:space-between;padding:0 4px 18px;gap:8px}.chapter-label h2{font-family:Georgia,serif;font-size:26px;font-weight:400;margin:3px 0 0;line-height:1.2}.game-numbers{display:flex;align-items:center;gap:12px}.hud-chip{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums;font-size:16px;padding:9px 15px;border:1px solid #b0c6ac20;border-radius:11px}.hud-chip small{font-size:9px;color:#86a3a4}.hud-symbol{color:#e3c785}.timer{font-size:13px}.timer>span:first-child{color:#9bb8af}#stage{position:relative;height:calc(100dvh - 246px);min-height:400px;max-height:800px;border:1px solid #769a8d2e;border-radius:18px;overflow:hidden;background:#15353b;touch-action:none;user-select:none}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair;outline:none!important}.stage-top{position:absolute;inset:22px 24px auto;display:flex;justify-content:space-between;pointer-events:none}.objective{display:flex;flex-direction:column;gap:9px;font-size:11px;color:#cbdcc9;text-shadow:0 2px 5px #0b2535}.objective>span{background:#0e2736b0;backdrop-filter:blur(5px);border:1px solid #9ebdaf22;padding:8px 12px;border-radius:8px}.objective #beacon-dots{display:flex;gap:6px;padding-left:4px}.beacon-dot{width:18px;height:5px;border-radius:3px;background:#b6d0b429}.beacon-dot.on{background:#efd394;box-shadow:0 0 8px #efd39455}#hearts{color:#ead7a5;font-size:20px;letter-spacing:3px;text-shadow:0 2px 9px #0b2535}#hearts .empty{color:#5b7a7b}.tutorial-hint{position:absolute;left:22px;bottom:24px;border:1px solid #b7d4b22b;background:#0d2835da;backdrop-filter:blur(8px);border-radius:11px;padding:12px 15px;display:flex;gap:12px;max-width:310px;pointer-events:none}.tutorial-hint #hint-icon{font-size:24px;color:#ddcc9a}.tutorial-hint b{display:block;font-size:11px;font-weight:500;color:#e2e8d7;margin-bottom:3px}.tutorial-hint div>span{display:block;font-size:10px;color:#93b1ad;line-height:1.6}.dash-wrap{position:absolute;right:24px;bottom:20px;display:flex;flex-direction:column;align-items:center;gap:5px}.dash-wrap>span{font-size:9px;color:#b4c9ba;text-shadow:0 1px 5px #091e2b}#dash-btn{position:relative;width:62px;height:62px;border:1px solid #d4dfb980;background:#dfd29c1f;backdrop-filter:blur(4px);border-radius:50%;color:#f5dea2;display:flex;align-items:center;justify-content:center;box-shadow:0 0 24px #ddd38e10;touch-action:none}#dash-btn.ready:active{transform:scale(.94);background:#e6d59650}#dash-btn.cooling{color:#8baca566;border-color:#88b6aa33}#dash-cooldown{position:absolute;font-size:14px;color:#e1dfbe;font-weight:600}.toast{position:absolute;left:50%;top:100px;transform:translateX(-50%);padding:11px 18px;border-radius:10px;background:#102c35ef;border:1px solid #d8ce9433;font-size:13px;color:#efe1b9;text-align:center;pointer-events:none;min-width:180px}.game-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:55px;font-size:10px;color:#7b999b}.controls{display:flex;gap:18px;align-items:center;font-size:9px}.controls>span{display:flex;gap:5px;align-items:center}kbd{font:inherit;color:#afc5bc;border:1px solid #91b19e24;border-radius:4px;padding:3px 5px;line-height:1}.save-indicator{display:flex;align-items:center;gap:6px;font-size:9px}.save-indicator i{width:4px;height:4px;border-radius:50%;background:#85bd9f}.touch-hint{display:none;position:absolute;bottom:18px;left:24px;color:#a0c0b09c;font-size:9px;pointer-events:none}.modal{position:fixed;inset:0;background:#061521cc;backdrop-filter:blur(10px);z-index:20;display:flex;align-items:center;justify-content:center;padding:24px;overflow:auto}.modal-content{background:linear-gradient(145deg,#1c3740,#122831);border:1px solid #aac4b336;border-radius:20px;padding:36px;max-width:560px;width:100%;position:relative;box-shadow:0 20px 100px #0006;max-height:calc(100dvh - 48px);overflow:auto}.modal-content.wide{max-width:780px}.modal-content h2{font-family:Georgia,serif;font-size:33px;line-height:1.2;letter-spacing:-.8px;font-weight:400;margin:8px 0 15px}.modal-content p{color:#a2b8b4;font-size:13px;line-height:1.85}.modal-content .modal-kicker{font-size:9px;color:#c3bc93;letter-spacing:1.7px}.modal-close{position:absolute;right:17px;top:15px;border:0;background:none;font-size:22px;color:#8da8a7;padding:4px 8px;z-index:2}.modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.secondary{background:transparent;border:1px solid #adc4ad35;border-radius:9px;padding:12px 18px;color:#b6cdc0;font-weight:500;font-size:12px}.secondary:hover{background:#adccae0c}.danger{color:#e2aaa8}.portrait{width:90px;height:90px;float:right;margin:0 0 12px 14px;border-radius:50%;border:1px solid #bbc9a326;background:#12313a}.story-letter{background:#e1cf9d0a;border-left:2px solid #b1b08c;padding:10px 18px;font-family:Georgia,serif;font-style:italic;font-size:15px!important;color:#c8d7c0!important;margin:20px 0}.steps{display:grid;gap:16px;margin:24px 0}.step{display:flex;gap:14px;align-items:flex-start}.step-icon{color:#ead29a;width:30px;font-size:22px;text-align:center}.step b{font-size:13px;font-weight:500;color:#d3dec9}.step p{margin:3px 0 0;font-size:11px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid #adc5b51a;gap:20px}.setting-row label{font-size:13px}.setting-row small{display:block;color:#8da7a7;font-size:10px;margin-top:3px}.setting-row select{background:#0e2733;color:#cedbc9;border:1px solid #b1c7b52e;padding:8px 10px;border-radius:7px}.switch{width:44px;height:25px;appearance:none;flex-shrink:0;border-radius:20px;background:#0e2631;border:1px solid #8cae9e30;position:relative;cursor:pointer}.switch:before{content:'';position:absolute;top:4px;left:4px;width:15px;height:15px;border-radius:50%;background:#6e928b;transition:.2s}.switch:checked{background:#bbcea0}.switch:checked:before{left:23px;background:#254940}.result-icon{width:66px;height:66px;border-radius:50%;background:#d5cf9410;border:1px solid #d9cf9650;display:flex;align-items:center;justify-content:center;font-size:32px;color:#edd7a0;margin-bottom:18px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:23px 0}.stat-box{border:1px solid #acc7b21a;background:#132e37;border-radius:9px;padding:14px 10px;text-align:center}.stat-box strong{display:block;color:#ead6a7;font-size:24px;font-family:Georgia,serif;font-weight:400}.stat-box span{font-size:9px;color:#8aa6a3}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.upgrade{border:1px solid #abc7a932;background:#16323b;border-radius:12px;padding:24px 15px;display:flex;flex-direction:column;text-align:center;align-items:center;gap:12px;transition:.2s}.upgrade:hover{transform:translateY(-4px);border-color:#e1d19580;background:#23423f}.upgrade .u-icon{font-size:33px;color:#e5d297;line-height:1.2}.upgrade b{font-size:13px;font-weight:500}.upgrade p{margin:0;font-size:10px;line-height:1.7}.upgrade .tag{margin-top:auto;padding-top:5px;color:#b9c79a}.album-map{display:flex;gap:6px;margin:25px 0}.island{flex:1;text-align:center;padding:14px 5px;border:1px solid #afc7af24;border-radius:10px;color:#6d8f92}.island.open{color:#dfd19d;background:#d5cc8b0a;border-color:#d2c98d40}.island i{font-size:25px;font-style:normal;display:block}.island span{font-size:8px;line-height:1.5;display:block;margin-top:6px}.skin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.skin{border:1px solid #a9c6b32e;border-radius:10px;background:#15303a;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10px;position:relative}.skin.active{border-color:#e2cf93}.skin-dot{width:22px;height:36px;border-radius:5px 5px 8px 8px;transform:rotate(-12deg);box-shadow:3px 4px 0 #071f2b}.skin small{color:#8fa8a2;font-size:9px}.notice{font-size:10px!important;color:#859f9f!important;margin:18px 0 0!important}.sr-only{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}.modal-content h3{font-size:13px;font-weight:500;color:#c8d4bf;margin:24px 0 12px}.score-list{padding:0;list-style:none}.score-list li{display:flex;justify-content:space-between;border-bottom:1px solid #adc5b514;padding:9px 0;font-size:11px;color:#96b0ab}.score-list strong{color:#ded6b1;font-weight:500}body.playing .topbar{height:76px}body.playing #app{max-width:1560px;padding:0 48px}.locked{opacity:.6}.modal-content .center{text-align:center}.small-note{font-size:10px;color:#8ba6a3}#score-label{font-variant-numeric:tabular-nums;color:#b9c9af}.game-top .tag{font-size:8px}.notification-banner{border:1px solid #e5c9a844;background:#3d3835;padding:8px 12px;border-radius:7px;color:#ead6b3;font-size:11px;margin-top:10px}
@media(min-width:1500px){.hero h1{font-size:65px}.hero{min-height:640px}.hero-art img{max-height:650px}.hero-art{margin-right:-20px}.route-card{padding:26px;min-height:140px}.hero-copy{padding-left:15px}}
@media(max-width:1150px){#app{padding:0 32px}.hero{min-height:530px}.hero h1{font-size:48px}.hero-art{margin-left:-75px;margin-right:-25px}.route-card{gap:12px;padding:20px 15px}.route-icon{width:32px;height:39px;font-size:21px}.route-card h3{font-size:15px}.route-card p{font-size:9px}.tag{font-size:7px;letter-spacing:1.2px}.controls{gap:8px}.game-bottom{font-size:9px}}
@media(max-width:800px){#app{padding:0 24px}.topbar{height:80px}.hero{min-height:480px;grid-template-columns:1fr 1fr}.hero h1{font-size:41px}.hero-copy{padding:30px 0}.eyebrow{font-size:7px;letter-spacing:1px;max-width:240px}.intro{font-size:12px;max-width:300px}.hero-art{margin-right:-24px;margin-left:-75px}.hero-art img{max-height:450px;object-fit:cover;object-position:54% center}.art-badge{display:none}.route-grid{grid-template-columns:1fr;gap:10px}.route-card{min-height:90px;padding:17px 23px;gap:20px}.route-card h3{font-size:18px}.route-card p{font-size:11px}.route-icon{width:39px;height:45px}.tag{font-size:8px}.card-arrow{right:22px;top:25px}.section-top{margin-top:5px}.footer-note{display:none}.top-actions{gap:7px}.stamp-pill{margin-right:0}.pill-label{display:none}.controls{display:none}body.playing #app{padding:0 20px}.modal-content h2{font-size:29px}}
@media(max-width:560px){#app{padding:0 20px}.topbar{height:73px}.brand{font-size:18px;gap:8px;letter-spacing:3px}.brand small{font-size:6px;letter-spacing:1.5px;margin-top:5px}.brand-mark{font-size:33px}.icon-btn{min-width:34px;height:34px;border-radius:9px}.text-btn{font-size:10px;padding:0 11px}.top-actions{gap:6px}.stamp-pill{font-size:10px;gap:4px}.stamp-pill>span:first-child{font-size:17px}.hero{display:flex;flex-direction:column;align-items:stretch;min-height:auto}.hero-copy{padding:29px 0 5px;z-index:2}.eyebrow{max-width:none;font-size:7px;letter-spacing:1.2px}.hero h1{font-size:46px;line-height:1.1;letter-spacing:-1.8px;margin:22px 0 16px}.intro{font-size:12px;line-height:1.8;max-width:320px;margin-bottom:22px}.primary.large{min-width:247px;font-size:12px;padding:15px 18px}.hero-meta{font-size:9px;gap:9px;margin-top:13px}.quiet-link{margin-top:17px;font-size:10px}.hero-art{margin:-40px -20px 12px 0;height:255px;align-self:auto;z-index:0;justify-content:flex-end}.hero-art img{width:100%;height:310px;object-fit:contain;object-position:top right;transform:translate(16px,-10px)}.hero-art:after{background:linear-gradient(0deg,#101f2b 0%,transparent 25%,transparent 80%,#101f2b 100%)}.section-top{margin:4px 0 15px}.section-top h2{font-size:12px}.section-top>span{font-size:8px}.route-card{padding:16px 18px;min-height:95px}.route-card h3{font-size:17px}.route-card p{font-size:10px}.route-card .tag{font-size:7px}.card-arrow{right:15px;top:18px}footer{flex-wrap:wrap;min-height:90px;padding:24px 0;gap:9px;font-size:8px}.footer-link{font-size:8px}.modal{padding:15px}.modal-content{padding:30px 24px;border-radius:16px;max-height:calc(100dvh - 30px)}.modal-content h2{font-size:28px}.modal-content p{font-size:12px}.modal-actions{gap:9px}.modal-actions button{flex:1;white-space:nowrap;font-size:11px}.upgrade-grid{grid-template-columns:1fr;gap:10px}.upgrade{padding:17px;display:grid;grid-template-columns:40px 1fr;gap:4px 13px;text-align:left}.upgrade .u-icon{grid-row:1/4;font-size:29px}.upgrade p{font-size:11px}.upgrade .tag{padding-top:3px}.portrait{width:70px;height:70px}.stats-grid{gap:6px}.stat-box{padding:12px 6px}.stat-box strong{font-size:21px}.stat-box span{font-size:8px}.skin-grid{gap:7px}.skin{font-size:9px}.island span{font-size:7px}.album-map{gap:4px}.island{padding:10px 3px}body.playing #app{padding:0 10px}body.playing .topbar{height:57px;padding:0 8px}body.playing .brand{font-size:15px}body.playing .brand-mark{font-size:28px}body.playing .brand small{display:none}body.playing .stamp-pill{display:none}body.playing #journal-btn{display:none}#game{padding-top:14px}.game-top{padding:0 8px 12px}.chapter-label h2{font-size:20px}.chapter-label .tag{font-size:6px;letter-spacing:1px}.game-numbers{gap:5px}.hud-chip{gap:5px;font-size:13px;padding:7px 8px;border-radius:8px}.hud-chip small{display:none}.timer{font-size:11px}.game-numbers .icon-btn{min-width:30px;height:32px}#stage{height:calc(100dvh - 174px);min-height:360px;border-radius:13px}.stage-top{inset:15px 14px auto}.objective{font-size:9px;gap:7px}.objective>span{padding:6px 9px}#hearts{font-size:17px;letter-spacing:1px}.beacon-dot{width:14px;height:4px}.dash-wrap{right:18px;bottom:25px}#dash-btn{width:65px;height:65px}.tutorial-hint{left:14px;bottom:104px;max-width:235px;padding:10px 12px;gap:9px}.tutorial-hint b{font-size:10px}.tutorial-hint div>span{font-size:9px}.tutorial-hint #hint-icon{font-size:20px}.touch-hint{display:block}.game-bottom{min-height:35px;padding:0 8px;font-size:9px}.save-indicator{font-size:8px}.toast{top:80px;max-width:85%;font-size:11px;padding:10px 14px}.setting-row{gap:10px}.setting-row label{font-size:12px}.setting-row small{font-size:9px}}
@media(max-width:375px){.top-actions{gap:4px}.brand{font-size:15px;gap:5px}.brand small{font-size:5px}.hero h1{font-size:41px}.stamp-pill{display:none}.text-btn{padding:0 9px}.hero-art{height:230px}.game-numbers{gap:3px}.hud-chip{padding:6px}.chapter-label h2{font-size:18px}.modal-content{padding:28px 20px}}
@media(max-height:560px) and (orientation:landscape){body.playing .topbar{display:none}body.playing #app{padding:0 10px}#game{padding-top:8px}.game-top{padding-bottom:8px}.chapter-label h2{font-size:19px}.game-top .tag{display:none}.hud-chip{padding:5px 10px}.game-numbers .icon-btn{height:30px}#stage{height:calc(100dvh - 89px);min-height:220px}.game-bottom{min-height:28px}.tutorial-hint{bottom:15px;max-width:240px}.touch-hint{display:none}.stage-top{inset:12px 15px auto}.dash-wrap{bottom:10px}.modal-content{max-height:calc(100dvh - 20px);padding:24px}.modal{padding:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.save-indicator.unsaved{color:#e4bd99}.save-indicator.unsaved i{background:#db9b82}
/* Version 2: long journeys, compact touch controls, accessible scenes. */
.migration-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#24463f66;border:1px solid #b9cf9e24;border-radius:10px;padding:12px 16px;margin-top:18px;font-size:11px;color:#bfceba}.migration-notice button{border:0;background:none;color:#ecd399;white-space:nowrap}.stage-right{display:flex;align-items:flex-end;flex-direction:column;gap:10px}.boss-tag{font-size:9px;letter-spacing:1.1px;padding:7px 10px;border:1px solid #dab29870;background:#312e3bd9;color:#ebcc9d;border-radius:8px}.retry-rule{border-left:2px solid #d6c68d;padding:6px 0 6px 16px}.control-choice{padding-top:9px;font-size:11px;color:#adbfaf}.control-choice>div{display:flex;gap:8px;margin-top:10px}.control-choice .secondary{flex:1;padding:11px}.chosen{border-color:#efd49b;background:#ddcd8d16;color:#efddaa}.world-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:22px 0 14px}.world-tile{border:1px solid #aac4ae1c;border-radius:9px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;color:#6c8a8c;gap:6px}.world-tile.open{color:#d7d8ad;background:#bbcb9610;border-color:#c0ce9d33}.world-tile i{font-style:normal;font-size:25px}.world-tile b{font-size:10px;font-weight:500}.world-tile span{font-size:8px}.world-tile progress{appearance:none;width:100%;height:3px;border:0;background:#8ca89525;border-radius:3px}.world-tile progress::-webkit-progress-bar{background:#8ca89525;border-radius:3px}.world-tile progress::-webkit-progress-value{background:#d3cf99;border-radius:3px}.portal-status{padding:10px 12px;border-radius:8px;background:#a4b5d50b;border:1px solid #a4b5d526;font-size:11px;color:#8fa6ad}.portal-status.unlocked{background:#b5a4dc14;color:#dfc8f0;border-color:#bca4dd50}.modal-content.cinematic{padding:0;overflow:hidden;max-width:850px}.cinema-art{position:relative;height:275px;overflow:hidden;background:#19303b}.cinema-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#19333b,transparent 50%)}.cinema-bg{height:100%;width:100%;object-fit:cover;object-position:center 45%;animation:scene-pan 16s linear infinite alternate;opacity:.75}.cinema-rays{position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent,#edda8b13,transparent 30%,#b1d8c018,transparent 55%,#c8a6eb10,transparent);animation:scene-rays 25s linear infinite;transform-origin:center}.cinema-moth{position:absolute;width:120px;left:calc(50% - 60px);top:85px;filter:drop-shadow(0 0 25px #e7ce6a55);animation:scene-flight 5s ease-in-out infinite;z-index:1}.scene-threshold .cinema-bg{filter:hue-rotate(40deg)}.scene-portal .cinema-moth{width:100px;left:calc(50% - 50px);animation:portal-flight 9s ease-in-out infinite}.cinema-copy{padding:25px 35px 30px}.cinema-copy h2{font-size:33px}.cinema-copy p{min-height:74px;margin-bottom:0}.cinema-copy .modal-actions{margin-top:20px}.reduced-motion .cinema-bg,.reduced-motion .cinema-rays,.reduced-motion .cinema-moth{animation:none!important}.reduced-motion *{transition:none!important}@keyframes scene-pan{from{transform:scale(1.04) translateX(-1%)}to{transform:scale(1.15) translateX(1%)}}@keyframes scene-rays{to{transform:rotate(360deg)}}@keyframes scene-flight{0%,100%{transform:translate(-30px,10px) rotate(-5deg)}50%{transform:translate(30px,-12px) rotate(5deg)}}@keyframes portal-flight{0%,100%{transform:translate(-60px,25px) scale(1.05)}50%{transform:translate(20px,-10px) scale(.7)}}
@media(max-width:560px){.hero h1{font-size:43px}.world-grid{grid-template-columns:repeat(2,1fr);gap:7px}.world-tile{padding:10px;display:grid;grid-template-columns:28px 1fr;gap:4px 8px;text-align:left}.world-tile i{grid-row:1/3;font-size:23px}.world-tile progress{grid-column:1/3}.world-tile b{font-size:10px}.boss-tag{font-size:7px;padding:5px 7px;letter-spacing:.6px}.stage-right{gap:7px}.cinema-art{height:200px}.cinema-moth{top:55px;width:100px;left:calc(50% - 50px)}.cinema-copy{padding:20px 22px 24px}.cinema-copy h2{font-size:26px}.cinema-copy p{font-size:12px;min-height:0}.modal-content.cinematic{max-height:calc(100dvh - 30px);overflow:auto}.migration-notice{font-size:10px;padding:10px;align-items:flex-start}.setting-row label{max-width:65%}.setting-row select{max-width:46%;font-size:11px}.control-choice .secondary{font-size:10px;padding:11px 8px}.touch-hint{max-width:calc(100% - 110px);bottom:14px;font-size:8px}.tutorial-hint{bottom:110px;max-width:220px}.game-top .chapter-label{min-width:0}.chapter-label h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.chapter-label .tag{font-size:6px}.game-numbers{flex-shrink:0}#dash-btn{width:68px;height:68px}.dash-wrap{bottom:27px}}
@media(max-width:370px){.chapter-label h2{max-width:165px;font-size:17px}.hero h1{font-size:39px}.world-tile span{font-size:7px}}
@media(max-height:560px) and (orientation:landscape){.cinema-art{height:145px}.cinema-moth{top:20px;width:90px}.cinema-copy{padding:15px 24px 20px}.cinema-copy h2{font-size:25px;margin:7px 0}.cinema-copy p{font-size:11px;min-height:0;line-height:1.6}.modal-content.cinematic{overflow:auto}.cinema-copy .modal-actions{margin-top:12px}.tutorial-hint{max-width:220px;bottom:18px}.touch-hint{display:none}.boss-tag{font-size:7px;padding:4px 7px}.world-grid{grid-template-columns:repeat(5,1fr)}}
@media(pointer:coarse){.controls{display:none}.touch-hint{display:block}.icon-btn{min-width:40px;min-height:40px}.game-numbers .icon-btn{min-width:36px;min-height:36px}.route-card{min-height:98px}}
@supports(padding:max(0px)){body.playing #app{padding-bottom:env(safe-area-inset-bottom)}.dash-wrap{right:max(18px,env(safe-area-inset-right))}}
/* V2.1: readable combat guidance and an uninterrupted last-light ceremony. */
.boss-guide{position:absolute;left:22px;bottom:25px;z-index:4;max-width:370px;width:calc(100% - 135px);background:#102b35ed;border:1px solid #92b9b66b;border-radius:13px;padding:14px 16px;box-shadow:0 8px 28px #07152244;backdrop-filter:blur(8px)}.boss-guide b{display:block;font-size:12px;color:#e8dfbd;font-weight:600}.boss-guide p{font-size:11px;line-height:1.6;color:#b9cecb;margin:6px 0 8px}.boss-guide button{border:0;border-bottom:1px solid #d1d9bb66;color:#d6e6c6;background:none;padding:3px 0;font-size:10px}.boss-guide[data-stage=ready]{border-color:#7ae0ca99}.boss-guide[data-stage=ready] b{color:#a9f3d7}.ceremony-banner{position:absolute;left:50%;top:5%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);text-align:center;border:1px solid #eed9a456;border-radius:14px;padding:16px 24px;background:#102b35e8;pointer-events:none;box-shadow:0 8px 30px #0c182b44;z-index:6}.ceremony-banner>span{display:block;color:#f1db9d;font-size:25px;line-height:1;margin-bottom:9px}.ceremony-banner b{display:block;font:23px Georgia,serif;color:#f3e7bd}.ceremony-banner small{display:block;color:#becdc0;max-width:330px;line-height:1.7;font-size:11px;margin:8px auto 0}.celebrating .dash-wrap,.celebrating .touch-hint{opacity:.25}.celebrating #canvas{cursor:default}.boss-lesson{display:grid;gap:15px;margin:22px 0}.boss-lesson>div{padding-left:36px;position:relative}.boss-lesson>div>span{position:absolute;left:0;top:0;border:1px solid #d8c48c66;border-radius:50%;height:25px;width:25px;display:grid;place-items:center;color:#ead69f;font-size:12px}.boss-lesson b{font-size:13px;color:#e5dcc2}.boss-lesson p{font-size:12px;margin:5px 0 0;line-height:1.7}.dash-diagram{text-align:center;font-size:19px;border:1px solid #abcebd33;padding:13px;border-radius:10px;color:#b8eed8}.dash-diagram span{color:#e9d392;letter-spacing:9px;padding:0 16px}.boss-guide:not(.hidden)~.toast{top:16%;bottom:auto}
@media(max-width:560px){.boss-guide{left:12px;bottom:28px;max-width:260px;width:calc(100% - 105px);padding:11px 12px}.boss-guide b{font-size:10px;line-height:1.5}.boss-guide p{font-size:9px;line-height:1.5;margin:5px 0}.boss-guide button{font-size:9px;min-height:27px}.ceremony-banner{top:16%;padding:15px 18px}.ceremony-banner b{font-size:20px}.ceremony-banner small{font-size:10px;max-width:255px}.boss-lesson{gap:12px}.boss-lesson p{font-size:11px}.boss-guide:not(.hidden)~.touch-hint{display:none}}
@media(max-height:560px) and (orientation:landscape){.boss-guide{left:13px;bottom:13px;max-width:330px;width:calc(100% - 110px);padding:8px 12px}.boss-guide b{font-size:10px}.boss-guide p{font-size:9px;line-height:1.4;margin:3px 0}.boss-guide button{font-size:9px;padding:2px 0}.ceremony-banner{top:3%;padding:9px 17px}.ceremony-banner>span{display:none}.ceremony-banner b{font-size:19px}.ceremony-banner small{display:none}}

@media(max-height:560px) and (orientation:landscape){.boss-guide:not(.hidden)~.toast{top:4%}}
