@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;700;800;900&family=Outfit:wght@500;600;700;800;900&display=swap');
:root{font-family:'Outfit','Noto Sans JP',sans-serif;font-weight:700;color:#214d44;background:#c4eedf;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #f1838c;outline-offset:4px}[hidden]{display:none!important}.arcade{height:100dvh;display:flex;align-items:center;justify-content:center;gap:clamp(32px,5vw,80px);background-image:radial-gradient(#3c856a26 1px,transparent 1px);background-size:20px 20px}.left-wing,.right-wing{width:237px;flex-shrink:0}.edition{font-size:11px;letter-spacing:1.7px;margin-bottom:32px;display:flex;gap:8px;align-items:center}.edition i,.machine-top i{width:7px;height:7px;border-radius:50%;background:#fa8d76;display:inline-block}.left-wing h2{font-size:51px;line-height:.96;letter-spacing:-2.7px;margin:0;font-weight:900}.left-wing h2 span{display:block;margin-top:11px;color:#fffdec;text-shadow:2px 2px 0 #588a71}.little-train{display:flex;align-items:center;margin:30px 0 10px}.little-train img{width:75px;height:75px;object-fit:contain}.little-train img:nth-child(2){transform:translateY(10px) rotate(-8deg)}.little-train img:nth-child(3){transform:rotate(8deg)}.left-wing p{font-size:23px;line-height:1.7;letter-spacing:1px}.wing-foot{font-size:9px;line-height:2;letter-spacing:.5px;margin-top:30px;opacity:.75}.machine{height:min(950px,96dvh);aspect-ratio:452/830;background:#fffff3;border:2px solid #35624e;border-radius:24px;padding:9px;box-shadow:8px 10px 0 #4b88692b,0 20px 60px #30644315;display:flex;flex-direction:column;flex-shrink:0}.machine-top,.machine-bottom{height:24px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:0 8px;font-size:9px;letter-spacing:1px}.machine-top span:first-child{font-size:11px;font-weight:900}.machine-bottom{height:22px;font-size:8px;letter-spacing:.7px}.game{position:relative;isolation:isolate;flex:1;overflow:hidden;border:2px solid #35624e;border-radius:13px;background:#bae3d7;touch-action:none;user-select:none;container-type:inline-size}canvas{display:block;width:100%;height:100%}.hud{position:absolute;inset:0 0 auto;padding:4.5% 4.5% 0;z-index:4;pointer-events:none;background:linear-gradient(#edf6dfbb,transparent)}.hud-top{display:flex;align-items:flex-start;gap:20px}.score,.timer{display:flex;flex-direction:column}.score label,.timer label{font-size:2.4cqw;letter-spacing:1.6px}.score strong{font-size:7cqw;line-height:1.12;letter-spacing:-.3px;font-weight:900;font-variant-numeric:tabular-nums}.timer{margin-left:auto;text-align:right}.timer strong{font-size:6cqw;line-height:1.25;font-variant-numeric:tabular-nums}.timer.urgent{color:#c84d59}.controls{display:flex;gap:5px;pointer-events:auto}.icon-button{width:8cqw;height:8cqw;border:1.5px solid #42654e;border-radius:50%;background:#fffdf1cf;font-size:4cqw;box-shadow:0 2px 0 #41634b30;display:grid;place-items:center}.icon-button:active{transform:translateY(2px)}.nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:3%}.home-direction{font-size:3cqw;background:#fffdebeb;border:1px solid #71876a;border-radius:20px;padding:5px 10px}#hearts{margin-left:auto;font-size:3.8cqw;color:#d17476;text-shadow:0 1px 0 #fffef0;letter-spacing:2px}.overlay{position:absolute;inset:0;z-index:6}.title-screen{display:flex;align-items:center;flex-direction:column;padding-top:32%;pointer-events:none}.title-screen button{pointer-events:auto}.title-kicker{font-size:2.5cqw;letter-spacing:1.8px;border:1px solid #3d6952;border-radius:20px;padding:1.5% 4%;background:#fffdeb;transform:rotate(-3deg)}h1{font-size:18cqw;line-height:.85;letter-spacing:-1.1cqw;font-weight:900;text-align:center;transform:rotate(-4deg);margin:5% 0 0;text-shadow:0 3px 0 #fffcec}h1 span{font-size:16.5cqw;color:#fff6be;-webkit-text-stroke:1.5px #345c43;text-shadow:0 4px 0 #345c43}.title-sub{font-size:4cqw;margin:3% 0 0;letter-spacing:1.1px}.start-area{position:absolute;bottom:6%;left:7%;right:7%;text-align:center}.best-pill{display:inline-flex;gap:12px;align-items:center;background:#fffef1;border:1.5px solid #567355;border-radius:20px;padding:1.5% 5%;font-size:3cqw;margin-bottom:4%}.best-pill b{font-size:4cqw}.primary{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;border:2px solid #36583f;border-radius:16px;background:#ffe278;box-shadow:0 5px 0 #36583f;padding:4.5% 3%;font-size:4.4cqw;font-weight:900;letter-spacing:.7px;transition:transform .1s}.primary span{font-size:6cqw}.primary:hover{background:#ffe99a}.primary:active{transform:translateY(4px);box-shadow:0 1px 0 #36583f}.start-area p{font-size:2.8cqw;margin:5% 0 0}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:10px;font-size:3cqw}.title-footer{position:absolute;bottom:2%;left:5%;right:5%;display:flex;justify-content:space-between;font-size:1.7cqw;letter-spacing:.6px}.tutorial{position:absolute;top:33%;left:8%;right:8%;padding:12px 8px;background:#fffcefeF;border:1.5px solid #58704b;border-radius:15px;text-align:center;font-size:4cqw;pointer-events:none;z-index:3;box-shadow:0 4px 0 #49613c22}.tutorial span{display:block;font-size:2.8cqw;margin-top:6px}.toast{position:absolute;top:27%;left:7%;right:7%;padding:10px;background:#fffbd5ed;border:1.5px solid #577444;border-radius:15px;text-align:center;font-size:3.6cqw;z-index:5;pointer-events:none}.carry-bar{position:absolute;bottom:3%;left:4.5%;right:4.5%;display:flex;align-items:center;justify-content:space-between;padding:3% 5%;border:2px solid #567255;border-radius:17px;background:#fffdecee;box-shadow:0 4px 0 #50644427;z-index:4;pointer-events:none}.carry-bar>div>span{display:block;font-size:2.7cqw}.carry-bar b{font-size:3.4cqw;display:block}.carry-bar strong{font-size:7cqw;line-height:1}.return-preview{text-align:right}.return-preview b{font-size:6cqw;color:#bd7541;line-height:1.25}.carry-bar.pulse{animation:pop .3s ease-out}.modal-screen{display:grid;place-items:center;padding:6%;background:#284d3e66;backdrop-filter:blur(6px)}.panel{width:100%;padding:8%;border:2px solid #385b41;border-radius:23px;background:#fffdec;box-shadow:0 8px 0 #385b41;text-align:center}.eyebrow{font-size:2.5cqw;letter-spacing:1.7px;color:#648267}.panel h2{font-size:5.3cqw;margin:5% 0}.panel p{font-size:3cqw;line-height:1.7}.panel .primary{margin-top:7%}.panel .text-button{margin-top:4%}.rescued-head{display:flex;gap:15px;align-items:center;justify-content:center;margin:4% 0}.rescued-head>b{font-size:16cqw;line-height:1;color:#719f51;letter-spacing:-1px}.rescued-head>span{text-align:left;font-size:4cqw;line-height:1.6}.result-main{border-top:1px dashed #a7b69a;padding-top:4%}.result-main>span{font-size:2.8cqw;letter-spacing:2px}.result-main>strong{display:block;font-size:13cqw;line-height:1.1;font-variant-numeric:tabular-nums}.new-best{margin:3% 12%;background:#ffe783;border-radius:20px;padding:4px;color:#b96f43;font-size:3cqw;letter-spacing:1px}.result-stats{display:grid;gap:7px;border-block:1px dashed #a7b69a;padding:5% 0;margin-top:5%}.result-stats>div{display:flex;justify-content:space-between;align-items:center;font-size:2.8cqw}.result-stats b{font-size:3.8cqw}.panel .unbanked{font-size:2.5cqw;color:#8b7c61;margin-bottom:0}.how-card{margin-top:26px;background:#f6f8e6;border:1.5px solid #5c805b;border-radius:17px;padding:22px 18px;box-shadow:4px 5px 0 #91bc93;transform:rotate(-2deg)}.how-card>.eyebrow{font-size:9px}.how-step{display:flex;gap:13px;margin-top:22px}.how-step>b{font-size:19px;color:#91a775;line-height:1.1}.how-step strong{font-size:13px}.how-step p{font-size:11px;line-height:1.8;margin:6px 0 0;color:#5b7357}.keys{display:flex;gap:7px;align-items:center;border-top:1px dashed #acbfa1;padding-top:17px;margin-top:20px;font-size:9px}.keys kbd{border:1px solid #8b9e76;border-radius:5px;padding:5px;font-size:10px}.right-wing>.wing-foot{text-align:center;font-size:9px}.loading{display:flex;align-items:center;justify-content:center;flex-direction:column;background:#d2edde;gap:20px;font-size:16px;z-index:10}.loading img{width:90px;height:90px;object-fit:contain;animation:bob 1.5s infinite}#record-list{padding:0;list-style:none;margin:9% 0}#record-list li{display:flex;justify-content:space-between;border-bottom:1px dashed #a6bc94;padding:12px 0;font-size:3.7cqw}#record-list li span{font-size:2.8cqw;color:#738665}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@keyframes pop{from{transform:scale(1.08)}to{transform:scale(1)}}@keyframes bob{50%{transform:translateY(-10px)}}@media(max-width:1150px){.left-wing,.right-wing{width:195px}.arcade{gap:30px}.left-wing h2{font-size:44px}.how-card{padding:18px 13px}.how-step{gap:8px}.little-train img{width:63px;height:63px}}@media(max-width:900px){.left-wing,.right-wing{display:none}.machine{height:98dvh}}@media(max-width:500px){.machine{height:100dvh;width:100%;padding:0;border:0;border-radius:0;box-shadow:none;aspect-ratio:auto}.machine-top,.machine-bottom{display:none}.game{border:0;border-radius:0}.hud{padding-top:max(4.5%,env(safe-area-inset-top))}.carry-bar{bottom:max(3%,env(safe-area-inset-bottom))}.title-footer{bottom:max(2%,env(safe-area-inset-bottom))}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Borderless portrait game, on desktop as well as phones. */
.left-wing,.right-wing,.machine-top,.machine-bottom{display:none!important}.arcade{height:100dvh;background:#bddfd2;gap:0;overflow:hidden}.machine{height:100dvh;width:min(100vw,56.25dvh);max-width:none;aspect-ratio:auto;padding:0;border:0;border-radius:0;box-shadow:none}.game{border:0;border-radius:0;width:100%}.carry-bar{bottom:156px;padding:2% 4%}.carry-bar strong{font-size:5.6cqw}.return-preview b{font-size:4.6cqw}.flight-controls{position:absolute;bottom:max(23px,env(safe-area-inset-bottom));left:5%;right:5%;height:112px;z-index:5;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.direction-pad{pointer-events:auto;width:46%;height:85px;border:2px solid #607c5a;border-radius:44px;background:#f8fbe5c9;display:flex;justify-content:space-around;align-items:center;position:relative;touch-action:none;box-shadow:0 4px 0 #50714033}.direction-pad>span{font-size:30px;opacity:.65}.direction-pad>i{width:20px;height:20px;border-radius:50%;background:#accb8a;border:1px solid #6b945c}.direction-pad[data-direction=left]>span:first-child,.direction-pad[data-direction=right]>span:nth-child(3){opacity:1;color:#548b38;transform:scale(1.3)}.direction-pad small{position:absolute;bottom:-23px;font-size:11px;white-space:nowrap}.flap-button{pointer-events:auto;width:96px;height:96px;border:2px solid #536c41;border-radius:50%;background:#ffe58cdc;box-shadow:0 5px 0 #536c4155;font-size:39px;line-height:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;touch-action:none}.flap-button small{font-size:11px}.flap-button.tap{animation:pop .15s ease-out}.tutorial{top:27%;font-size:3.9cqw}.tutorial span{font-size:2.6cqw}.toast{top:22%}@media(max-width:500px){.machine{width:100vw;height:100dvh}}@media(max-height:690px){.flight-controls{bottom:14px;height:85px}.direction-pad{height:65px}.flap-button{width:78px;height:78px}.carry-bar{bottom:117px}.direction-pad small{bottom:-18px}}
/* Candy-pop palette, bolder numbers, clear two-hand controls. */
:root{color:#3d2936;background:#80e6e6}.arcade{background:#69d8de}.game{background:#7ce8e2}.hud{background:linear-gradient(#8ceee790,transparent)}.score strong{font-size:9cqw;color:white;font-weight:900;letter-spacing:-1px;-webkit-text-stroke:1px #422c35;text-shadow:2px 3px 0 #422c35}.score label,.timer label{color:#392b3a;font-weight:900}.timer strong{color:#fff6c8;-webkit-text-stroke:.7px #432f39;text-shadow:1px 2px 0 #432f39}.home-direction{background:#fff4b8;border:2px solid #543740;color:#583c43}.title-kicker{background:#ff83bc;border:2px solid #533242;color:#44283b;box-shadow:2px 3px 0 #533242}h1{color:#fff8dc;text-shadow:3px 4px 0 #543442;-webkit-text-stroke:1.8px #543442}h1 span{color:#ffe550;-webkit-text-stroke:1.8px #543442;text-shadow:3px 5px 0 #543442}.title-sub{color:#573147}.best-pill{background:#fff8ef;border:2px solid #543442;color:#543442}.primary{background:#ffde55;border:3px solid #543442;box-shadow:0 6px 0 #543442;color:#543442}.primary:hover{background:#ffe879}.carry-bar{background:#fff4ddeb;border:3px solid #543442;box-shadow:0 4px 0 #543442;color:#543442}.return-preview b{color:#ef528b}.direction-pad{background:#97eef0e8;border:3px solid #543442;box-shadow:0 5px 0 #543442;color:#543442}.direction-pad>i{background:#ff80b7;border:2px solid #543442;width:24px;height:24px}.direction-pad[data-direction=left]>span:first-child,.direction-pad[data-direction=right]>span:nth-child(3){color:#e93579}.flap-button{background:#ffde50ed;border:3px solid #543442;box-shadow:0 6px 0 #543442;color:#543442}.panel{background:#fff6df;border:3px solid #543442;box-shadow:0 8px 0 #543442}.rescued-head>b{color:#ec528d}.tutorial,.toast{background:#fff1bceF;border:2px solid #543442;color:#543442;box-shadow:2px 3px 0 #543442}.loading{background:#92e7e4}.title-footer{color:#493043}.start-area p{color:#493043}.direction-pad small{color:#493043;text-shadow:0 1px 0 #fff9d9}

/* Landscape playfield: compact HUD leaves the center open. */
.machine{width:100vw;height:100dvh}.game{height:100%;flex:1}.hud{padding:12px 20px 0;background:none}.hud-top{align-items:start}.score strong{font-size:36px}.score label,.timer label{font-size:10px}.timer strong{font-size:24px}.icon-button{width:34px;height:34px;font-size:18px}.nav-row{margin-top:8px}.home-direction{font-size:11px}#hearts{font-size:16px}.flight-controls{left:22px;right:22px;bottom:20px;height:80px}.direction-pad{width:145px;height:65px}.flap-button{width:76px;height:76px}.carry-bar{bottom:16px;left:36%;right:28%;padding:7px 14px;border-width:2px}.carry-bar>div>span{font-size:10px}.carry-bar b{font-size:12px}.carry-bar strong,.return-preview b{font-size:22px}.tutorial{top:24%;left:29%;right:24%;font-size:14px;padding:8px}.tutorial span{font-size:10px}.toast{top:23%;left:30%;right:25%;font-size:12px;padding:7px}.title-screen{padding-top:66px;align-items:flex-start;padding-left:8%}.title-kicker{font-size:10px;padding:5px 14px}h1{font-size:62px;letter-spacing:-4px;margin:12px 0 0}h1 span{font-size:58px}.title-sub{font-size:14px;margin:12px 0}.start-area{left:56%;right:7%;bottom:12%}.best-pill{font-size:12px;padding:4px 14px;margin-bottom:12px}.best-pill b{font-size:16px}.primary{font-size:17px;padding:12px;gap:12px}.primary span{font-size:24px}.start-area p{font-size:10px;margin:12px 0 0}.text-button{font-size:12px;padding:8px}.title-footer{font-size:8px;bottom:8px}.modal-screen{padding:16px}.panel{max-width:600px;max-height:94dvh;overflow:auto;padding:18px}.panel h2{font-size:22px;margin:10px}.panel p,.eyebrow{font-size:11px}.panel .primary{margin-top:12px}.panel .text-button{margin-top:4px}.rescued-head{margin:8px}.rescued-head>b{font-size:48px}.rescued-head>span{font-size:15px}.result-main{padding-top:5px}.result-main>span{font-size:11px}.result-main>strong{font-size:36px}.result-stats{grid-template-columns:1fr 1fr;gap:6px 24px;margin-top:8px;padding:8px 0}.result-stats>div{font-size:10px}.result-stats b{font-size:14px}.panel .unbanked{font-size:10px}.new-best{font-size:11px;margin:5px}.loading img{width:70px}#record-list li{font-size:16px}#record-list li span{font-size:12px}

.flap-button small{font-size:9px;white-space:nowrap}.direction-pad small{bottom:-17px}
.score label,.timer label{background:#fff6dce6;border-radius:5px;padding:2px 5px;color:#493043}
.game:has(#title:not([hidden]),#records-screen:not([hidden])) .hud-top :is(.score,.timer){visibility:hidden}

.boot-screen,.rotate-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;gap:24px;color:#17234e}.boot-screen img{width:min(88vw,680px);max-height:70dvh;object-fit:contain}.boot-screen span{font-size:10px;letter-spacing:3px;color:#78829a}.rotate-screen{background:#edfaff;z-index:90}.rotate-icon{font-size:64px;letter-spacing:12px;color:#513e60}.rotate-screen b{font-size:14px;letter-spacing:4px}

.face-transition{position:fixed;inset:0;width:100vw;height:100dvh;z-index:80;touch-action:none;pointer-events:auto}

/* Phone browser chrome, notches and short landscape viewports. */
html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%}.game{-webkit-touch-callout:none}.hud{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-top:max(10px,env(safe-area-inset-top))}.flight-controls{left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom))}.title-footer{left:max(20px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}.icon-button{min-width:44px;min-height:44px}.text-button{min-height:44px}
@media(orientation:landscape) and (max-height:360px){.title-screen{padding-top:54px}h1{font-size:46px;margin-top:7px}h1 span{font-size:44px}.title-sub{font-size:11px;margin-top:8px}.start-area{bottom:7%;left:58%;right:5%}.start-area p{margin-top:5px}.best-pill{margin-bottom:7px}.primary{padding:9px;font-size:15px}.start-area .text-button{padding:3px}.flight-controls{height:65px;bottom:max(18px,env(safe-area-inset-bottom))}.flap-button{height:65px;width:65px}.direction-pad{height:56px;width:130px}.carry-bar{bottom:max(12px,env(safe-area-inset-bottom));left:33%;right:25%;padding:5px 10px}.score strong{font-size:29px}.timer strong{font-size:20px}}

/* Start-of-flight control spotlight; the real controls move into place. */
.flight-controls{transition:left .35s ease,right .35s ease,bottom .35s ease,height .35s ease}.direction-pad,.flap-button{transition:width .35s ease,height .35s ease,transform .35s ease}.controls-intro .flight-controls{left:25%;right:25%;bottom:calc(50% - 70px);height:140px;z-index:12}.controls-intro .direction-pad{width:48%;height:96px;box-shadow:0 6px 0 #543442,0 0 0 9px #fff7d98c}.controls-intro .flap-button{width:112px;height:112px;box-shadow:0 6px 0 #543442,0 0 0 9px #fff7d98c;animation:control-beat 1s ease-in-out infinite}.controls-intro .direction-pad small{font-size:16px;bottom:-39px;color:#fff9dc;text-shadow:0 2px 0 #543442}.controls-intro .direction-pad small:before{content:'LEFT / '}.controls-intro .flap-button small{font-size:14px}.controls-intro .flap-button:after{content:'RIGHT / TAP';position:absolute;bottom:-36px;font-size:16px;color:#fff9dc;text-shadow:0 2px 0 #543442;white-space:nowrap}.controls-intro .flap-button{position:relative}.controls-intro:after{content:'';position:absolute;inset:0;background:#302d4a99;z-index:10;pointer-events:none}.controls-intro .flight-controls:before{content:'MOVE + TAP';position:absolute;bottom:calc(100% + 24px);left:0;right:0;text-align:center;font-size:20px;letter-spacing:4px;color:#fff8dc;text-shadow:0 2px 0 #543442}.controls-intro .carry-bar{opacity:0}@keyframes control-beat{50%{transform:scale(1.06)}}
@media(max-height:350px){.controls-intro .flight-controls{left:23%;right:23%;height:110px;bottom:calc(50% - 55px)}.controls-intro .direction-pad{height:75px}.controls-intro .flap-button{width:90px;height:90px}.controls-intro .flight-controls:before{bottom:calc(100% + 13px)}}
@media(prefers-reduced-motion:reduce){.controls-intro .flap-button{animation:none}}

/* Keep the left HUD and gameplay stick farther from the phone's camera cutout. */
.hud-top .score,.nav-row .home-direction{margin-left:24px}
.game:not(.controls-intro) #direction-pad{margin-left:24px}

/* Compact mode selection, with independent best scores. */
.mode-select{display:flex;gap:8px;margin:3px 0 6px}.mode-select button{flex:1;min-height:44px;border:2px solid #543442;border-radius:12px;background:#fff8e6;font-size:14px;letter-spacing:1px}.mode-select button[aria-pressed=true]{background:#bdeb98;box-shadow:0 3px 0 #543442}#mode-hard[aria-pressed=true]{background:#ff9cac}.start-area .mode-rule{font-size:10px;margin:8px 0 12px;min-height:14px;color:#543442}.direction-pad small{display:none}.controls-intro .direction-pad small{display:block}.title-footer{display:none}
@media(max-height:360px){.start-area{bottom:3%}.mode-select button{min-height:44px;font-size:12px}.start-area .mode-rule{margin:5px 0 7px;font-size:9px}.start-area .best-pill{margin-bottom:3px}}
/* After the upright boot logo, present the same landscape canvas on either orientation. */
.arcade{position:fixed;inset:0}.face-transition{width:100%;height:100%}
.landscape-auto .arcade{inset:auto;left:0;top:0;width:100dvh;height:100dvw;transform-origin:0 0;transform:translateX(100vw) rotate(90deg)}
.landscape-auto .machine{width:100%;height:100%}.landscape-auto .panel{max-height:94dvw}
@media(orientation:portrait) and (max-width:360px){.landscape-auto .title-screen{padding-top:54px}.landscape-auto h1{font-size:46px;margin-top:7px}.landscape-auto h1 span{font-size:44px}.landscape-auto .start-area{bottom:3%;left:58%;right:5%}.landscape-auto .best-pill{margin-bottom:3px}.landscape-auto .primary{padding:9px;font-size:15px}.landscape-auto .mode-select button{min-height:44px;font-size:12px}.landscape-auto .mode-rule{font-size:9px;margin:5px 0 7px}.landscape-auto .flight-controls{height:65px;bottom:18px}.landscape-auto .flap-button{height:65px;width:65px}.landscape-auto .direction-pad{height:56px;width:130px}.landscape-auto .carry-bar{bottom:12px;left:33%;right:25%;padding:5px 10px}.landscape-auto .controls-intro .flight-controls{height:110px;bottom:calc(50% - 55px)}.landscape-auto .controls-intro .direction-pad{height:75px;width:48%}.landscape-auto .controls-intro .flap-button{width:90px;height:90px}}
/* Circular analog thumbstick; visual Y travel does not replace tap-to-rise. */
#direction-pad{width:104px;height:104px;flex:0 0 auto;border-radius:50%;background:#b6f3ede0;border:2px solid #54344280;box-shadow:inset 0 0 0 9px #ffffff38,0 3px 0 #54344235;overflow:visible}
#direction-pad:before{content:'';position:absolute;inset:22%;border:1px dashed #54344238;border-radius:50%;pointer-events:none}
#direction-pad>i{position:absolute;left:50%;top:50%;width:43%;height:43%;margin:0;border-radius:50%;background:#ff91c4;border:2px solid #543442;box-shadow:0 3px 0 #54344255,inset 0 3px 0 #ffd7eb;transform:translate(calc(-50% + var(--stick-x,0px)),calc(-50% + var(--stick-y,0px)));transition:transform .13s ease-out;pointer-events:none}
#direction-pad.active{background:#b6f3edfa;border-color:#543442}
#direction-pad.active>i{transition:none;background:#ff77b6}
.controls-intro #direction-pad{width:116px;height:116px;box-shadow:0 4px 0 #54344255,0 0 0 9px #fff7d98c}
@media(max-height:360px){#direction-pad{width:84px;height:84px}.controls-intro #direction-pad{width:96px;height:96px}}
@media(orientation:portrait) and (max-width:360px){.landscape-auto #direction-pad{width:84px;height:84px}.landscape-auto .controls-intro #direction-pad{width:96px;height:96px}}
/* Suppress double-tap zoom on menus and on the rotated viewport's outer area. */
html,body,.arcade,.machine,button{touch-action:manipulation}
#game,#canvas,#flight-controls,#direction-pad,#flap{touch-action:none}
/* Title has separate logo, cast and menu columns at every landscape ratio. */
#title{padding:0;display:block}
#title .title-kicker{position:absolute;left:5%;top:23%;width:29%;box-sizing:border-box;text-align:center;font-size:1.45cqw;padding:1% 1%;letter-spacing:1px}
#title h1{position:absolute;left:4%;top:36%;width:32%;margin:0;font-size:7cqw;line-height:.92;letter-spacing:-.4cqw;transform:rotate(-4deg)}
#title h1 span{font-size:6.5cqw}
#title .start-area{left:67%;right:4%;top:23%;bottom:auto;display:flex;flex-direction:column;align-items:stretch;gap:7px}
#title .best-pill{align-self:center;margin:0 0 3px;padding:6px 10px;font-size:clamp(10px,1.5cqw,16px);white-space:nowrap;gap:6px}
#title .best-pill b{font-size:clamp(13px,2cqw,22px)}
#title .mode-select{margin:0;gap:6px}
#title .mode-select button{font-size:clamp(10px,1.5cqw,15px);padding:6px 2px;min-height:44px}
#title .mode-rule{margin:0;min-height:12px;font-size:10px}
#title .primary{min-height:48px;padding:8px;font-size:clamp(15px,2.1cqw,23px);margin:0;gap:12px}
#title .primary span{font-size:1.3em}
#title .text-button{padding:4px;min-height:44px;font-size:clamp(11px,1.5cqw,16px)}

/* Temporary campaign. Artwork is always contained, unfiltered and untransformed. */
.collaboration-title{position:absolute;left:20%;top:3%;width:44%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;pointer-events:auto;color:#543442;background:#fff9e9;border:2px solid #543442;border-radius:13px;box-shadow:0 3px 0 #543442;padding:6px 12px;text-align:left;min-height:44px}
.collaboration-title>span{padding:3px 10px;border-radius:99px;background:#ffe45e;font-size:clamp(9px,1.2cqw,13px);font-weight:900}
.collaboration-title strong{font-size:clamp(13px,2cqw,21px)}
.collaboration-title small{font-size:clamp(9px,1.15cqw,12px)}
.collaboration-title{padding-right:clamp(54px,7cqw,78px)}
.collaboration-title>img{position:absolute;right:8px;top:50%;width:clamp(40px,5.5cqw,62px);height:calc(100% - 12px);max-height:62px;object-fit:contain;transform:translateY(-50%);pointer-events:none}
.collaboration-details{z-index:30;pointer-events:auto;background:#25342bb0}
.collaboration-details .panel{width:min(650px,92%);max-height:94%;padding:14px;overflow:auto}
.collaboration-details h2{margin:0 0 8px;font-size:24px;color:#c66500}
.collaboration-details .collaboration-lead{font-size:15px;color:#95520a;margin:0 0 10px;font-weight:900}
.collaboration-description{display:grid;grid-template-columns:100px 1fr;gap:16px;text-align:left;align-items:center}
.collaboration-description img{width:100px;height:100px;object-fit:contain;filter:none;transform:none;opacity:1}
.collaboration-description ol{list-style:none;counter-reset:collab-step;padding:0;margin:0;display:grid;gap:6px}
.collaboration-description li{counter-increment:collab-step;position:relative;padding:8px 10px 8px 39px;border-radius:12px;background:#fffef7;font-size:13px;line-height:1.55;color:#704014}
.collaboration-description li:before{content:counter(collab-step);position:absolute;left:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:#ffad19;color:#fff;display:grid;place-items:center;font-weight:900}
.collaboration-modal-credit{display:block;margin:6px 0;font-size:10px;color:#795b38}
.collaboration-details .primary{min-height:44px;margin-top:4px;padding:8px}
.collaboration-credit{position:absolute;bottom:4px;right:7px;padding:1px 4px;background:#fff;color:#171717;font:11px sans-serif;pointer-events:none;z-index:3}
.collaboration-result{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 7px;font-size:13px;font-weight:800;color:#543442}
.collaboration-result img{width:56px;height:56px;object-fit:contain;filter:none;transform:none;opacity:1}
.collaboration-on #result .panel{max-height:94%;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;padding:14px}
.collaboration-on #result .collaboration-result{grid-column:1;grid-row:1/3;flex-direction:column;gap:2px;margin:0}
.collaboration-on #result .collaboration-result img{width:64px;height:64px}
.collaboration-on #result-eyebrow{grid-column:2;grid-row:1;align-self:end}
.collaboration-on #result .rescued-head{grid-column:2;grid-row:2;margin:0}
.collaboration-on #result .result-main{grid-column:1;grid-row:3;align-self:center}
.collaboration-on #result .result-stats{grid-column:2;grid-row:3;grid-template-columns:1fr;gap:5px;margin:0;padding:6px 0}
.collaboration-on #unbanked{grid-column:1/3;grid-row:4;margin:0;min-height:0}
.collaboration-on #retry{grid-column:1;grid-row:5;margin:0;min-height:44px;padding:8px}
.collaboration-on #home{grid-column:2;grid-row:5;margin:0;min-height:44px;padding:8px}
.collaboration-on #title .start-area{top:18%;gap:4px}
#title .collaboration-title{position:relative;left:auto;top:auto;width:100%;flex-shrink:0;padding:6px 50px 6px 8px;gap:2px}
#title .collaboration-title>span{font-size:9px;padding:2px 5px}
#title .collaboration-title strong{font-size:clamp(10px,1.3cqw,15px);line-height:1.25}
#title .collaboration-title small{font-size:9px}
#title .collaboration-title>img{right:6px;width:38px}
@media(max-height:360px){.collaboration-on #title .start-area{top:54px;gap:2px}.collaboration-on #title .best-pill{padding:3px 8px;margin:0}#title .collaboration-title{padding-top:4px;padding-bottom:4px}}

.ranking-tabs{display:flex;gap:8px;justify-content:center;margin:10px 0}
.ranking-tabs button,.ranking-entry button{min-height:44px;border:1.5px solid #543442;border-radius:10px;background:#fff8e9;padding:6px 12px;font-size:12px}
.ranking-tabs button[aria-pressed="true"]{background:#ffe278}
#records-screen .panel{max-width:560px;height:100%;max-height:100%;display:flex;flex-direction:column;overflow:hidden;padding:12px}
#records-screen h2{margin:5px 0;font-size:22px}
#records-screen .eyebrow{display:none}
#records-screen .ranking-tabs{margin:5px 0}
#records-screen #records-caption{margin:3px 0;font-size:11px}
#records-screen #record-list{flex:1;min-height:0;margin:4px 0;overflow:auto}
#records-screen #close-records{flex-shrink:0;min-height:44px;margin-top:5px;padding:7px}
#records-screen .text-button{min-height:30px;padding:3px;margin:0}
.ranking-footer{display:flex;gap:10px;flex-shrink:0;align-items:center}
#records-screen .ranking-footer>button{flex:1;width:auto;min-height:44px;margin:0}
#record-list li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 4px;font-size:15px}
#record-list li span{text-align:left;overflow-wrap:anywhere;font-size:14px;color:#543442}
#record-list li strong{font-variant-numeric:tabular-nums}
#ranking-status{font-size:12px;margin:6px 0}
#ranking-status:empty{display:none}
.ranking-entry{border-top:1px dashed #a7b69a;padding-top:9px;margin-top:6px;text-align:left}
.ranking-entry label{display:block;font-size:12px;margin-bottom:6px}
.ranking-entry-row{display:flex;gap:8px}
.ranking-entry input{min-width:0;flex:1;min-height:44px;padding:8px;border:1.5px solid #8b9e76;border-radius:10px;background:#fffef8;color:#543442;font:16px sans-serif}
.ranking-entry button{background:#ffe278;flex-shrink:0}
.ranking-entry button:disabled{opacity:.6;cursor:default}
.ranking-entry small{display:block;margin-top:5px;font-size:10px}
.ranking-entry .ranking-entry-status{font-size:12px;line-height:1.4;margin:5px 0;overflow-wrap:anywhere}
.collaboration-on #result .ranking-entry{grid-column:1/3;grid-row:5}
.collaboration-on #result:has(.ranking-entry:not([hidden])) #retry,.collaboration-on #result:has(.ranking-entry:not([hidden])) #home{grid-row:6}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .panel{padding:8px;gap:4px 14px;max-height:100%}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .collaboration-result img{width:40px;height:40px}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .rescued-head>b{font-size:36px}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .result-main>strong{font-size:30px}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .result-stats{gap:2px;padding:3px 0}
.collaboration-on #result:has(.ranking-entry:not([hidden])) .ranking-entry{padding-top:5px;margin-top:0}
#result:has(.ranking-entry:not([hidden])){padding:10px}

.ranking-entry input[readonly]{cursor:pointer}
.ranking-name-dialog{position:fixed;inset:auto;margin:0;max-width:none;max-height:none;box-sizing:border-box;border:0;padding:12px;background:#fff8e9;color:#543442;overflow:auto;overscroll-behavior:contain}
.ranking-name-dialog[open]{display:grid;align-content:start;justify-items:center}
.ranking-name-dialog::backdrop{background:#302d4acc}
.ranking-name-card{width:min(100%,460px);padding:8px;margin:0}
.ranking-name-card h2{font-size:20px;margin:4px 0 8px}
.ranking-name-card p{font-size:12px;margin:6px 0 10px;line-height:1.4}
.ranking-name-card input{box-sizing:border-box;width:100%;min-height:48px;border:2px solid #8b9e76;border-radius:10px;padding:10px;background:#fff;color:#543442;font:18px sans-serif;user-select:text}
.ranking-name-card>div{display:flex;gap:10px}
.ranking-name-card button{flex:1;min-height:44px;border:2px solid #543442;border-radius:10px;background:#ffe278;font-size:15px}
.ranking-name-card .ranking-name-cancel{background:#fff}
.ranking-name-card .ranking-name-error{color:#a32343}
.ranking-name-error:empty{display:none}
.ranking-name-card>div{margin-top:12px}
