:root{color-scheme:light;--ink:#30483b;--cream:#f4efdb;--paper:#faf5e5;--red:#d76348;--line:#d9d9be;--muted:#7b876b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#263e34;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{height:100svh;height:100dvh}button,input,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d9a84d;outline-offset:4px}button{border:0}button,[role=button]{touch-action:manipulation}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;line-height:1.5}noscript{position:fixed;bottom:20px;left:20px;z-index:20;background:var(--paper);padding:15px;border-radius:8px}

/* The course is the entire app. Home uses the same live scene as its backdrop. */
.game-shell{position:fixed;inset:0;width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#bfc2a6}
.game-toolbar{grid-row:1;display:flex;align-items:center;gap:14px;min-height:70px;padding:10px max(20px,env(safe-area-inset-right)) 10px max(20px,env(safe-area-inset-left));padding-top:max(10px,env(safe-area-inset-top));background:var(--cream);border-bottom:1px solid #50614730;z-index:2}
.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #9daa8644;background:#ececd7;border-radius:7px;font-size:23px;line-height:1;flex-shrink:0}.icon-button:hover{background:#dde3ca}.home-button{font-size:30px;background:none;border:0}
.scene-button{position:relative;padding:2px 30px 2px 0;min-width:0;text-align:left;background:none}.scene-button>span:first-child{display:block;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#849170;margin-bottom:4px}.scene-button strong{display:block;font-size:18px;letter-spacing:-.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-caret{position:absolute;right:9px;top:14px;color:#7e906d}
.toolbar-actions{display:flex;gap:8px;margin-left:auto;align-items:center}.view-button,.labels-button{height:44px;padding:0 13px;border-radius:7px;background:#ececd7;border:1px solid #9daa8644;font-size:11px;white-space:nowrap}.view-button:hover,.labels-button:hover{background:#dde3ca}.labels-button[aria-pressed=false]{opacity:.6}
.stage{grid-row:2;position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;isolation:isolate}.stage canvas{display:block;width:100%;height:100%;outline-offset:-4px;touch-action:none}.game-hud{position:absolute;left:20px;top:18px;display:flex;gap:24px;align-items:center;min-height:73px;padding:13px 19px;background:#f8f3dfed;box-shadow:0 3px 12px #364a3410;border:1px solid #a5b08a70;border-radius:8px;pointer-events:none;backdrop-filter:blur(5px)}.game-hud span{font-size:8px;font-weight:700;letter-spacing:1.1px;color:#879271}.hud-score{min-width:113px}.hud-score>span,.hud-combo>span{display:block;margin-bottom:3px}.hud-score>strong{font-size:29px;letter-spacing:-1.2px;line-height:1.1;font-weight:650}.hud-combo{min-width:70px}.hud-combo>strong{display:block;font-size:19px;font-weight:600;line-height:1.25}.hud-glide{width:114px}.hud-glide>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px}.hud-glide strong{font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.glide-track,.combo-track{height:4px;border-radius:3px;background:#d7ddc4;overflow:hidden}.glide-track i,.combo-track i{display:block;width:100%;height:100%;background:#8eaa76}.combo-track{width:65px;height:3px;margin-top:5px}.combo-track i{width:0;background:#d6ac59}.trick-feed-wrap{position:absolute;top:20px;right:22px;width:193px;text-shadow:0 1px 1px #f6f0dc;pointer-events:none}#trick-feed>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;margin-bottom:7px}#trick-feed b{color:#8a6830}#trick-note{font-size:10px;line-height:1.5;color:#697958;margin:0}.scene-tag{position:absolute;right:21px;bottom:16px;font-size:8px;letter-spacing:1.8px;color:#596e57;pointer-events:none}.stage-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;border-radius:8px;background:#f9f3dfef;border:1px solid #bdc4a890;text-align:center;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none}.stage-hint span{display:block;font-size:10px;font-weight:400;margin-top:4px;color:#8a8b70}.resume-pill{position:absolute;left:50%;top:62%;transform:translateX(-50%);background:var(--cream);border:1px solid #c1ccb0;border-radius:25px;padding:15px 24px;font-size:14px;box-shadow:0 5px 18px #273c3b30}

/* The dock stays reachable, including browser toolbars and phone safe areas. */
.control-dock{grid-row:3;position:relative;z-index:2;background:#263e34;color:#edeed7;padding:14px max(20px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));box-shadow:0 -3px 18px #2f44331a}.control-bar{display:grid;grid-template-columns:minmax(150px,1fr) 54px 54px 92px 190px;gap:10px;align-items:center;max-width:930px;margin:auto}.aim-control{min-width:0;margin-right:22px}.aim-control>div{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.aim-control label{font-size:9px;letter-spacing:1.3px;color:#c3cfae}.aim-control output{font-size:12px;font-variant-numeric:tabular-nums;color:#e9edce}input[type=range]{display:block;width:100%;height:20px;margin:0;accent-color:#a3bc8c;cursor:pointer}.steer-controls{display:contents}.steer{position:relative;width:100%;height:54px;border:1px solid #bdc8a864;border-radius:8px;background:#edf0d9;color:#314b3b;font-size:31px;line-height:1;touch-action:none;user-select:none;-webkit-user-select:none}.steer span{position:absolute;bottom:5px;right:7px;font-size:9px;color:#8b987d}.steer.pressed{background:#afc497;box-shadow:inset 0 2px 5px #314b3b30}.focus-control{position:relative;min-width:0;height:54px;border:1px solid #afc29950;background:#3c5344;color:#e4ebcb;border-radius:8px;font-size:11px;touch-action:none;user-select:none;-webkit-user-select:none}.focus-control>span{font-size:17px;vertical-align:-1px;margin-right:3px}.focus-control small{display:block;margin-top:5px;font-size:9px;font-variant-numeric:tabular-nums;color:#bccfaa}.focus-control.pressed,.is-focused .focus-control{background:#b8d6bc;color:#295b54}.is-focused .focus-control small{color:#44766b}.throw-button{display:flex;align-items:center;justify-content:space-between;gap:15px;min-width:0;height:54px;padding:0 18px;background:var(--red);color:#fff4db;border:1px solid #e9856555;border-radius:8px;box-shadow:0 3px 0 #163329;font-size:12px;font-weight:600;letter-spacing:.5px;touch-action:none;user-select:none;-webkit-user-select:none}.throw-button>span:last-child{font-size:28px;font-weight:400}.throw-button.braking{background:#e6eac9;color:#3a5742}.throw-button:active{transform:translateY(1px)}.under-game{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:930px;margin:10px auto 0;font-size:9px;color:#a4b694;line-height:1.6}.under-game p{margin:0}.under-game p>span{margin:0 6px}kbd{font:inherit;font-size:9px;color:#d0dbbb;margin-right:3px}.is-flying .aim-control{opacity:.45}.is-flying .stage-hint{display:none}

/* The landing menu is shared by desktop and phone; there is no page chrome. */
.at-home .game-shell{grid-template-rows:0 minmax(0,1fr) 0}.at-home .game-toolbar,.at-home .control-dock,.at-home .stage>:not(canvas){display:none!important}.home-screen{position:fixed;inset:0;z-index:6;width:100%;height:100%;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));overflow:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#233f3468 0%,#203c33c9 45%,#152e29f5 100%);color:#f4efd8;text-align:center}.home-content{width:100%;max-width:414px;display:flex;flex-direction:column;align-items:stretch;gap:28px;margin:auto}.home-copy .eyebrow{color:#d4dfb7;letter-spacing:3px;font-size:10px}.home-copy h1{font-family:"Arial Rounded MT Bold","Trebuchet MS",ui-sans-serif,sans-serif;font-size:clamp(94px,15vw,128px);font-weight:900;letter-spacing:-8px;line-height:.9;font-style:italic;margin:20px 0 24px;text-shadow:0 4px 0 #182e2438}.home-copy h1 span{color:#ed8867}.home-copy p{font-size:19px;line-height:1.5;color:#dee5c9;margin:0;font-weight:450;letter-spacing:-.3px}.home-actions{display:grid;gap:13px}.home-play{position:relative;width:100%;min-height:99px;text-align:left;padding:22px 57px 21px 25px;border:1px solid #edeecac7;border-radius:8px;background:#f2efda;color:#2e473b;font-size:25px;font-weight:600;letter-spacing:-.5px;box-shadow:0 4px 20px #10282118;transition:transform .14s,background .14s}.home-play>span{display:block;margin-top:7px;font-size:12px;font-weight:400;color:#7a876c;letter-spacing:0}.home-play>b{position:absolute;right:24px;top:31px;font-size:28px;font-weight:400;line-height:1}.home-play.secondary{background:#213e3296;border-color:#d1deb579;color:#eff0d8;box-shadow:none}.home-play.secondary>span{color:#bfceaa}.home-play:hover{transform:translateY(-2px);background:#ffffe9}.home-play.secondary:hover{background:#354f3ecc}.home-play:active{transform:translateY(0)}.home-links{display:flex;align-items:center;justify-content:space-between;gap:16px}.home-links button{min-height:44px;padding:8px 0;background:none;color:#d9e3c2;border-bottom:1px solid #c7d5a83b;font-size:12px;text-align:left}.home-links button:hover{color:#fff3d1;border-bottom-color:#ebebbd}.home-date{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:.5px;color:#9db192;margin-top:-12px}.home-date time{font-variant-numeric:tabular-nums}.home-resume{align-self:center;background:none;color:#f1d292;font-size:13px;border-bottom:1px solid #f1d29250;padding:5px 0 9px;margin-top:-8px}

/* Secondary information lives in game dialogs. */
dialog{width:min(540px,calc(100% - 28px));max-height:calc(100svh - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:34px;border:1px solid #d7d7ba;border-radius:12px;background:#f8f2df;color:var(--ink);box-shadow:0 20px 100px #172e3255;overscroll-behavior:contain}dialog::backdrop{background:#182e2996;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:12px;top:10px;width:40px;height:40px;border-radius:5px;background:none;color:#829173;font-size:27px}.dialog-close:hover{background:#e4e8d1}dialog .eyebrow{font-size:9px;color:#83906e;max-width:calc(100% - 28px)}dialog h2{font-size:31px;font-weight:500;letter-spacing:-1.2px;line-height:1.15;margin:13px 0 17px}dialog h3{font-size:15px;font-weight:600;margin:0 0 7px}dialog p{font-size:12px;color:#7d896d;line-height:1.75}dialog li{padding:7px 0;font-size:12px;line-height:1.7;color:#7e8a6d}dialog ol{padding-left:20px}dialog li b{color:#496441;font-weight:600}.dialog-note{border-top:1px solid var(--line);padding-top:15px;font-size:10px!important}.text-button{padding:4px 0;background:none;color:#698362;font-size:11px;border-bottom:1px solid #b7c4a673;min-height:34px}.small-button{padding:10px 13px;border:1px solid #cfd5ba;border-radius:5px;background:#f2f0dd;font-size:11px}.primary-button{padding:13px 16px;border-radius:6px;background:#36533f;color:#fbf0d8;min-height:46px;font-size:12px;font-weight:500}.primary-button:hover{background:#4b6749}.full{display:block;width:100%;margin-top:16px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid #d4dcc1;border-radius:7px;background:#e7ead5;margin-bottom:15px}.mode-switch button{border-radius:4px;min-height:43px;background:none;font-size:12px}.mode-switch button.active{background:#f9f3df;box-shadow:0 1px 4px #4b684516}.playground-panel{padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px}.playground-panel p{font-size:11px;margin-bottom:14px}.lab-settings{display:grid;grid-template-columns:1fr 1fr;gap:17px}.lab-settings label{font-size:11px;color:#6d815f}.lab-settings label:first-child{grid-column:1/-1}.lab-settings select{display:block;width:100%;min-height:42px;border:1px solid #cbd7b7;border-radius:5px;background:#f6f2de;color:#4d6549;padding:8px 9px;margin-top:7px;font-size:12px}.lab-settings output{float:right;color:#607a58;font-size:11px}.lab-settings input{margin-top:8px}.lab-settings .small-button{grid-column:1/-1;justify-self:start}.record-card{padding:17px 0;border-top:1px solid var(--line)}.record-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.record-heading>span{font-size:9px;font-weight:700;letter-spacing:1px;color:#82916d}.best-row{display:flex;align-items:baseline;gap:9px}.best-row strong{font-size:34px;font-weight:550;letter-spacing:-1px}.best-row>span{font-size:9px;letter-spacing:1px;color:#82916d}.record-card p{margin:3px 0 12px;font-size:11px}.ghost-toggle{display:flex;align-items:center;gap:8px;font-size:11px;color:#738565;min-height:25px}.ghost-toggle input{accent-color:#809873}.options-links{display:flex;align-items:center;gap:23px;border-top:1px solid var(--line);padding-top:14px}.options-links .icon-button{margin-left:auto;font-size:21px}.sound-off{position:absolute;top:6px;right:6px;font-size:11px;color:#ae8154}.bonus-list>div{display:grid;grid-template-columns:1fr auto;gap:5px 15px;padding:14px 0;border-bottom:1px solid var(--line)}.bonus-list strong{font-size:12px;font-weight:500}.bonus-list b{font-size:12px;color:#b58d44}.bonus-list small{grid-column:1/-1;color:#83916f;font-size:11px;line-height:1.6}.score-entry{display:grid;grid-template-columns:1fr auto;gap:5px;padding:14px 0;border-bottom:1px solid var(--line)}.score-entry strong{font-size:22px;font-weight:500}.score-entry span{font-size:12px}.score-entry small{grid-column:1/-1;color:#8b967d;font-size:10px}.storage-error{color:#b45d42!important}
.result{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);width:370px;max-width:calc(100% - 28px);max-height:calc(100% - 112px);overflow:auto;padding:22px;background:#fbf6e5f7;border:1px solid #c8cdb3;border-radius:10px;box-shadow:0 12px 40px #30473940;overscroll-behavior:contain}.result-kicker{font-size:9px;letter-spacing:1.5px;font-weight:700;color:#9d8350}.result h2{font-size:29px;letter-spacing:-1.2px;font-weight:500;margin:7px 0 9px}.result-points{font-size:37px;font-weight:600;letter-spacing:-1.3px;color:#c66444}.result-points span{font-size:8px;font-weight:500;letter-spacing:1px;color:#80906c}.result>p{font-size:12px;line-height:1.6;color:#7d8c6a;margin:8px 0}.result-breakdown{max-height:115px;overflow:auto;margin:12px 0}.result-breakdown>div{display:flex;justify-content:space-between;gap:10px;font-size:11px;padding:5px 0;border-bottom:1px solid #e5e5cb;color:#7c8d69}.result-actions{display:flex;gap:7px}.result-actions .primary-button{flex:1;font-size:11px}.result>small{font-size:10px;color:#7b8b6e;display:block;margin-top:7px}.result>small:empty{display:none}#toast{position:fixed;left:50%;bottom:130px;transform:translateX(-50%);z-index:20;width:max-content;max-width:calc(100% - 32px);padding:12px 20px;border-radius:7px;background:#233f32;color:#f5edcf;box-shadow:0 5px 25px #1c35223b;font-size:12px;text-align:center}

@media(max-width:900px){.game-toolbar{gap:9px;min-height:64px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.scene-button strong{font-size:16px}.view-button,.labels-button{width:42px;min-width:42px;padding:0;font-size:0}.view-button:before{content:'⊞';font-size:24px}.labels-button:before{content:'Aa';font-size:15px}.toolbar-actions{gap:6px}.trick-feed-wrap{display:none}.control-bar{grid-template-columns:minmax(110px,1fr) 50px 50px 80px 160px;gap:8px}.aim-control{margin-right:10px}.control-dock{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.game-hud{left:14px;top:14px;padding:12px 16px;gap:19px}.under-game{font-size:8px}}
@media(max-width:580px){
  .game-toolbar{gap:7px;min-height:61px;padding:8px max(10px,env(safe-area-inset-right)) 8px max(10px,env(safe-area-inset-left));padding-top:max(8px,env(safe-area-inset-top))}.home-button{min-width:34px;width:34px;font-size:28px}.scene-button{padding-right:15px;flex:1}.scene-button strong{font-size:13px;letter-spacing:-.3px;max-width:100%}.scene-button>span:first-child{font-size:7px;letter-spacing:1px}.scene-caret{right:0;top:14px;font-size:12px}.toolbar-actions{gap:3px}.toolbar-actions .icon-button,.view-button,.labels-button{width:34px;min-width:34px;height:40px;min-height:40px;border:0;background:none;border-radius:4px}.toolbar-actions .icon-button{font-size:20px}.view-button:before{font-size:23px}.labels-button:before{font-size:13px}
  .game-hud{left:10px;right:10px;top:10px;min-height:65px;gap:14px;padding:11px 13px;justify-content:space-between}.hud-score{min-width:99px;flex:1}.hud-score>strong{font-size:26px}.game-hud span{font-size:7px;letter-spacing:.8px}.hud-combo{min-width:62px}.hud-combo>strong{font-size:17px}.combo-track{width:58px}.hud-glide{width:98px}.hud-glide strong{font-size:11px}.scene-tag{display:none}.stage-hint{bottom:16px;font-size:12px;padding:10px 17px}.stage-hint span{font-size:10px}.resume-pill{padding:13px 19px;white-space:nowrap;font-size:12px}
  .control-dock{padding:10px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.control-bar{grid-template-columns:clamp(46px,13vw,62px) 56px minmax(0,1fr) clamp(46px,13vw,62px);gap:9px 8px}.aim-control{grid-column:1/-1;grid-row:1;display:flex;align-items:center;gap:15px;margin:0;padding:0 3px 1px}.aim-control>div{margin:0;gap:8px;white-space:nowrap}.aim-control label{font-size:8px;letter-spacing:.8px}.aim-control output{font-size:10px;min-width:26px;text-align:right}.aim-control input{height:26px;flex:1;min-width:0}.steer,.focus-control,.throw-button{height:60px;grid-row:2}.steer{font-size:35px}.steer span{display:none}#left{grid-column:1}#right{grid-column:4}.focus-control{grid-column:2;font-size:10px}.focus-control>span{display:block;font-size:19px;margin:0 0 2px;line-height:1}.focus-control small{margin-top:3px;font-size:7px;letter-spacing:-.3px}.throw-button{grid-column:3;font-size:10px;padding:0 12px;gap:5px}.throw-button>span:last-child{font-size:25px}.under-game{display:none}.is-flying .aim-control{visibility:hidden}.is-flying .steer,.is-flying .focus-control,.is-flying .throw-button{grid-row:2}.result{bottom:13px;padding:18px;max-height:calc(100% - 92px)}.result h2{font-size:26px}.result-points{font-size:32px}.result-breakdown{max-height:85px}.result>p{font-size:11px}
  .home-screen{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.home-content{max-width:380px;gap:25px}.home-copy h1{font-size:clamp(82px,27vw,105px);margin:17px 0 21px;letter-spacing:-6px}.home-copy p{font-size:18px}.home-play{font-size:23px;min-height:91px;padding:19px 52px 18px 22px}.home-play>b{right:22px;top:29px;font-size:27px}.home-links button{font-size:11px}.home-date{font-size:8px}.home-copy .eyebrow{font-size:9px}dialog{padding:30px 23px}dialog h2{font-size:28px}.options-links{gap:17px}#toast{bottom:148px}
}
@media(max-height:680px) and (min-width:581px){.home-content{gap:20px;max-width:400px}.home-copy h1{font-size:100px;margin:13px 0 18px}.home-copy p{font-size:18px}.home-play{min-height:86px;padding-top:17px;padding-bottom:17px;font-size:23px}.home-play>b{top:26px}.home-date{margin-top:-12px}.home-screen{padding-top:22px;padding-bottom:22px}}
@media(max-height:660px) and (max-width:580px){.home-content{gap:19px}.home-copy h1{font-size:83px;margin:12px 0 18px}.home-copy p{font-size:16px}.home-play{min-height:79px;padding:16px 50px 15px 20px;font-size:21px}.home-play>span{font-size:11px;margin-top:5px}.home-play>b{top:25px}.home-links button{min-height:35px}.home-screen{padding-top:20px;padding-bottom:20px}.home-date{margin-top:-8px}.home-resume{font-size:12px;padding-bottom:6px;margin-top:-10px}}
@media(max-height:500px) and (min-width:581px){
  .home-content{display:grid;grid-template-columns:1fr 1.15fr;max-width:790px;gap:20px 35px;align-items:center;text-align:left}.home-copy{grid-column:1;grid-row:1}.home-copy h1{font-size:94px;margin:12px 0 19px}.home-copy p{font-size:17px}.home-actions{grid-column:2;grid-row:1;gap:11px}.home-play{min-height:82px;font-size:22px;padding:16px 50px 15px 21px}.home-play>span{font-size:11px}.home-play>b{right:20px;top:26px}.home-links{grid-column:1/-1;grid-row:2}.home-date{grid-column:1/-1;grid-row:3;margin-top:-14px}.home-resume{grid-column:1/-1;grid-row:4;margin-top:-10px;justify-self:center}.game-toolbar{min-height:53px;padding-top:max(5px,env(safe-area-inset-top));padding-bottom:5px}.control-dock{padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.under-game{display:none}.steer,.focus-control,.throw-button{height:46px}.game-hud{top:10px;min-height:60px;padding:9px 13px}.hud-score>strong{font-size:24px}.stage-hint{font-size:10px;bottom:12px;padding:8px 15px}.stage-hint span{display:none}.result{bottom:10px;left:auto;right:14px;transform:none;width:370px;max-height:calc(100% - 20px);padding:15px}.result h2{font-size:23px}.result-points{font-size:29px}.result-breakdown{max-height:55px;margin:7px 0}.result>p{font-size:10px;margin:6px 0}.result-actions .primary-button,.result-actions .small-button{min-height:39px;padding:9px 12px}.resume-pill{top:65%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* A dedicated runway gauge outside the canvas: no moving halo or obstacle occlusion. */
.glide-console{--glide-color:#b6dc97;max-width:930px;margin:0 auto 13px;color:var(--glide-color)}
.glide-readout{display:flex;align-items:baseline;gap:12px;margin:0 0 7px;line-height:1;font-variant-numeric:tabular-nums}
.glide-readout>span:first-child{font-size:10px;font-weight:800;letter-spacing:1.3px;color:#edf1d7}
#glide-state{font-size:9px;font-weight:650;letter-spacing:.8px;color:var(--glide-color)}
#glide-number{margin-left:auto;font-size:21px;font-weight:700;letter-spacing:-.6px;color:var(--glide-color)}
#glide-percent{font-size:12px;min-width:36px;text-align:right;color:var(--glide-color)}
.glide-runway{position:relative;height:12px;overflow:hidden;background:#122d25;border:1px solid #b5ca9d47;border-radius:3px;isolation:isolate}
.glide-runway>i{position:absolute;inset:0 auto 0 0;width:100%;background:var(--glide-color);box-shadow:2px 0 9px var(--glide-color)}
.glide-ticks{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(5% - 2px),#203f32a6 calc(5% - 2px) 5%);pointer-events:none}
.glide-threshold{position:absolute;top:0;bottom:0;width:2px;background:#fff8d080;pointer-events:none}.glide-threshold.yellow{left:37.356%}.glide-threshold.red{left:10%}
.glide-console[data-state=low] #glide-state,.glide-console[data-state=critical] #glide-state{font-weight:800}
.glide-console[data-state=critical] .glide-runway{border-color:#f47d68;animation:glide-alert .65s ease-in-out 2 alternate}
@keyframes glide-alert{from{box-shadow:0 0 0 #f47d6800}to{box-shadow:0 0 10px #f47d6870}}
@media(max-width:580px){.game-hud{right:auto;gap:22px;min-height:59px;padding:10px 13px}.hud-score{min-width:99px}.glide-console{margin-bottom:11px}.glide-readout{gap:8px;margin-bottom:6px}.glide-readout>span:first-child{font-size:9px;letter-spacing:.9px}#glide-state{font-size:7px;letter-spacing:.3px}#glide-number{font-size:18px}#glide-percent{font-size:10px;min-width:30px}.glide-runway{height:10px}.toolbar-actions{gap:1px}.toolbar-actions .icon-button,.view-button,.labels-button{width:31px;min-width:31px}}
@media(max-height:500px) and (min-width:581px){.glide-console{margin-bottom:8px}.glide-readout{margin-bottom:5px}#glide-number{font-size:16px}.glide-runway{height:8px}.control-dock{padding-top:7px}}
@media(prefers-reduced-motion:reduce){.glide-console .glide-runway{animation:none!important}}

/* The daily decision lives in dialogs, leaving the course and glide strip clear. */
#next-course{margin:12px 0 8px}.round-total{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 17px;margin:0 0 9px}.round-total>span{font-size:10px;letter-spacing:1.3px}.round-total strong{font-size:40px;color:#b7583c;font-variant-numeric:tabular-nums}
.round-courses{display:grid;gap:8px;margin:14px 0 22px}.round-course{display:grid;grid-template-columns:28px 1fr auto;gap:11px;align-items:center;text-align:left;padding:12px;background:#e8ead8;border:1px solid #cdd4bb;border-radius:6px;color:#344e3e}.round-course>span{font-size:12px;color:#708666}.round-course div{min-width:0}.round-course b{display:block;font-size:13px}.round-course small{display:block;font-size:10px;font-weight:400;color:#718164;margin-top:5px}.round-course>strong{font-size:20px;font-weight:600}.round-course:disabled{cursor:default;opacity:.7}.round-course:disabled[data-complete=true]{opacity:1}
.last-laugh-card{border:1px solid #b4b99c;border-radius:8px;padding:18px;background:#e5e8d2}.last-laugh-card .eyebrow{font-size:9px;color:#8c6b3b}.last-laugh-card h3{margin:11px 0 9px;font-size:20px;font-weight:500;letter-spacing:-.5px}.last-laugh-card p{font-size:12px;line-height:1.65;margin:8px 0 15px}.last-laugh-card .primary-button{font-size:12px}.wager-input{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 13px}.wager-input label{font-size:10px;font-weight:700;letter-spacing:1px}.wager-input small{display:block;font-size:10px;letter-spacing:0;font-weight:400;margin-top:7px;color:#6f7f61}.wager-input input{width:128px;max-width:45%;padding:10px;border:1px solid #b3c0a0;border-radius:5px;background:#fffbef;color:#2d4d38;font-family:inherit;font-weight:600;font-size:26px;text-align:right}.wager-slider{width:100%;accent-color:#b96042}.wager-presets{display:flex;gap:8px;margin:12px 0 22px}.wager-presets button{flex:1}.wager-outcomes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.wager-outcomes>div{padding:12px 7px;border-radius:5px;background:#e9eadc;text-align:center}.wager-outcomes span{display:block;font-size:8px;letter-spacing:.5px;line-height:1.5}.wager-outcomes strong{display:block;font-size:24px;margin-top:7px;font-weight:600}.wager-outcomes .up{background:#dce6ce;color:#335c3e}.wager-outcomes .down{background:#f0ded1;color:#a44f38}.wager-contract{font-size:11px!important;line-height:1.6!important;background:#efead6;padding:12px;border-radius:5px}#wager-cancel{margin-top:9px}#round-button{margin:5px 0 16px}#forfeit-button{margin-bottom:12px;color:#a24936;border-color:#c18c76}button:disabled{cursor:default}.wager-presets button[aria-pressed=true]{background:#36523f;color:#f9efd1}
@media(max-width:580px){.round-course{gap:8px;grid-template-columns:20px 1fr auto;padding:11px 9px}.round-course b{font-size:12px}.round-course>strong{font-size:19px}.wager-outcomes{gap:5px}.wager-outcomes span{font-size:7px}.wager-outcomes strong{font-size:22px}#next-course{font-size:11px;min-height:42px;padding:10px}#wager-dialog{padding:28px 20px}.last-laugh-card{padding:15px}}

.flight-brief{max-width:930px;min-height:27px;display:flex;align-items:center;gap:10px;margin:0 auto 5px;color:#eeeacb;font-size:9px;letter-spacing:.5px;font-variant-numeric:tabular-nums}.flight-brief strong{font-size:15px;color:#f3d086;margin-right:auto}.brief-button{border:0;background:none;padding:5px 0 5px 9px;color:#d6debc;font:inherit;white-space:nowrap}.flight-brief[data-urgent=true] strong{color:#ffb578}.skill-feedback{max-width:930px;min-height:19px;font-size:10px;line-height:1.4;margin:0 auto 7px;color:#c2d7b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-feedback[data-awarded=true]{color:#ffe2a2}.wager-progress{max-width:930px;margin:0 auto 7px;color:#cee4c6;font-size:10px;line-height:1.5}.wager-progress>div{height:4px;background:#183328;border-radius:2px;margin-top:3px;overflow:hidden}.wager-progress i{display:block;height:100%;background:#72babc;width:0}.trick-legend{font-size:11px!important}.trick-legend i{display:inline-block;width:18px;height:3px;vertical-align:middle;background:#d57b44;margin:0 3px}.trick-legend .focus-key{background:#278f9b;margin-left:10px}.trickbook{display:grid;gap:9px}.trickbook .trick-card{display:grid;grid-template-columns:94px 1fr auto;gap:4px 11px;align-items:center;width:100%;text-align:left;border:1px solid #cdd3b9;border-radius:7px;background:#ecebd9;padding:12px;color:#35513e}.trick-card svg{width:94px;grid-column:1;grid-row:1/3;align-self:center}.trick-card strong{font-size:13px}.trick-card>b{font-size:12px;color:#a65e3d}.trickbook .trick-card small{grid-column:2/4;line-height:1.55;font-size:10px;color:#6c7c60}.trick-card[aria-pressed=true]{border-color:#409294;background:#e0e8d7}.trick-card[data-group=focus]{border-left:3px solid #409294}.trick-card[data-group=combo]{border-left:3px solid #b98c42}.trick-card:focus-visible{outline:3px solid #b6aa76;outline-offset:2px}
@media(max-width:580px){.flight-brief{gap:6px;font-size:8px;margin-bottom:2px;min-height:23px}.flight-brief strong{font-size:13px}.brief-button{padding-left:4px}.skill-feedback{font-size:9px;min-height:16px;margin-bottom:6px}.wager-progress{font-size:9px;margin-bottom:5px}.trickbook .trick-card{grid-template-columns:76px 1fr auto;gap:4px 8px;padding:10px}.trick-card svg{width:76px}.trick-card strong{font-size:12px}.trickbook .trick-card small{font-size:10px}.trick-card>b{font-size:11px}}

.trick-card .trick-diagram{grid-column:1;grid-row:1/3;align-self:center;line-height:0}

/* The launch clock is a game event, not a footnote in the controls. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.launch-alert{position:absolute;z-index:3;left:50%;top:18px;transform:translateX(-50%);width:310px;max-width:calc(100% - 24px);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px 18px;border:1px solid #f7d896b8;border-radius:14px;background:#203e35f2;color:#fff0c7;box-shadow:0 8px 24px #1d332f25;pointer-events:none;font-variant-numeric:tabular-nums}
.launch-alert-copy{display:flex;flex-direction:column;gap:5px}.launch-alert-copy>span{font-size:11px;font-weight:800;letter-spacing:1.6px;color:#f3ce84}.launch-alert-copy>b{font-size:13px;font-weight:650}.launch-alert-copy>small{font-size:10px;line-height:1.4;color:#cbd7bc;max-width:192px}.launch-alert>strong{font-size:64px;line-height:.95;letter-spacing:-4px;min-width:73px;text-align:right}.launch-alert>strong:after{content:'s';font-size:20px;letter-spacing:0;margin-left:2px}.launch-alert-track{position:absolute;left:18px;right:18px;bottom:9px;height:4px;border-radius:4px;background:#ffffff20;overflow:hidden}.launch-alert-track>i{display:block;width:100%;height:100%;background:#f3ce84;transform-origin:left}
.launch-alert[data-urgent=true]{background:#9d4336fa;border-color:#ffbc87;box-shadow:0 0 0 3px #e7795030,0 6px 28px #58332350}.launch-alert[data-urgent=true] .launch-alert-copy>span{color:#fff2d9}.launch-alert[data-urgent=true] .launch-alert-copy>small{color:#ffe0c1}.launch-alert.tick>strong{animation:countdown-tick .25s ease-out}.launch-alert[data-paused=true]{opacity:.7}.launch-alert[data-winding=true]>strong{font-size:30px;letter-spacing:0}.launch-alert[data-winding=true]>strong:after{content:''}@keyframes countdown-tick{from{transform:scale(1.2)}to{transform:scale(1)}}
.touch-controls{display:none}.options-utility{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.options-utility>button{flex:1;white-space:nowrap}

/* Full-bleed touch HUD. Nothing outside the scene reserves a page-sized dock. */
body.touch-layout .game-shell{display:block;height:100%;width:100%;overflow:hidden}
body.touch-layout .stage{position:absolute;inset:0;isolation:auto;z-index:auto}
body.touch-layout .stage>canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
body.touch-layout .game-shell:after{content:'';position:absolute;left:0;right:0;top:0;height:calc(162px + env(safe-area-inset-top));background:linear-gradient(#193c32eb,#193c32e5 65%,#193c3200);pointer-events:none;z-index:1}
body.touch-layout .game-toolbar{position:absolute;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));top:env(safe-area-inset-top);height:52px;min-height:52px;padding:4px 0;gap:5px;border:0;background:none;z-index:5;color:#f8ebc8}
body.touch-layout .home-button{width:40px;min-width:40px;min-height:44px;font-size:26px}
body.touch-layout .scene-button{flex:1;padding:0;min-width:0;max-width:none}.touch-layout .scene-caret{display:none}.touch-layout .scene-button strong{display:none}.touch-layout .scene-button>span:first-child{font-size:8px;line-height:1.4;letter-spacing:1px;color:#d9e4c4;margin:0;white-space:normal}
body.touch-layout .toolbar-actions{gap:2px;margin-left:0}.touch-layout .toolbar-actions .icon-button,.touch-layout .view-button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;background:#142c2566;border:1px solid #d4e4bd29;border-radius:12px;color:#f9edcf;font-size:22px}.touch-layout .view-button{font-size:0}.touch-layout .view-button:before{content:'⊞';font-size:24px}.touch-layout #labels-button{display:none}
body.touch-layout .game-hud{left:14px;right:auto;top:calc(60px + env(safe-area-inset-top));min-height:0;height:42px;padding:0;gap:12px;border:0;box-shadow:none;background:none;backdrop-filter:none;color:#fff0cf;z-index:3}.touch-layout .hud-score{min-width:70px;flex:0}.touch-layout .game-hud span{font-size:7px;letter-spacing:.7px;color:#c8d8bb}.touch-layout .hud-score>strong{font-size:25px;letter-spacing:-1px}.touch-layout .hud-combo{min-width:45px}.touch-layout .hud-combo>span{font-size:6px}.touch-layout .hud-combo>strong{font-size:15px}.touch-layout .combo-track{width:42px}
body.touch-layout .control-dock{display:contents;position:static;padding:0;background:none;box-shadow:none}
.touch-layout .control-bar,.touch-layout .flight-brief,.touch-layout .under-game{display:none}
body.touch-layout .glide-console{position:absolute;top:calc(63px + env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));width:calc(100% - 195px);min-width:111px;max-width:230px;z-index:4;margin:0}
.touch-layout .glide-readout{display:grid;grid-template-columns:1fr auto;gap:0 6px;align-items:center;margin:0 0 5px}.touch-layout .glide-readout>span:first-child{font-size:8px;letter-spacing:1px;grid-column:1;grid-row:1}.touch-layout #glide-state{display:none}.touch-layout #glide-number{font-size:13px;letter-spacing:0;grid-column:1;grid-row:2;justify-self:start;margin:3px 0 0}.touch-layout #glide-percent{font-size:25px;letter-spacing:-1px;grid-column:2;grid-row:1/3;min-width:0}.touch-layout .glide-runway{height:8px;border:0;border-radius:5px}.touch-layout .glide-ticks{background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),#173b3080 calc(10% - 2px) 10%)}
body.touch-layout .touch-controls{display:block;position:absolute;inset:0;z-index:4;pointer-events:none;user-select:none;-webkit-user-select:none}
.touch-controls:before{content:'';position:absolute;left:0;right:0;bottom:0;height:calc(196px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#193d3040 35%,#193d309c);pointer-events:none}
/* Big, familiar direction buttons; drag-to-aim is a separate optional mode. */
.steering-pad{position:absolute;left:max(3px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:min(58vw,244px);height:162px;display:grid;grid-template-rows:126px 36px;touch-action:none;pointer-events:auto;user-select:none;-webkit-user-select:none}
.button-steering{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-height:0}
.touch-steer{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-width:0;height:100%;border:2px solid #f1dcaa;border-radius:22px;background:#213e35f5;color:#fff0c9;box-shadow:0 4px 0 #102e2baa;touch-action:none;padding:8px;user-select:none;-webkit-user-select:none}
.touch-steer>span{font-size:48px;line-height:1;font-weight:700}.touch-steer>b{font-size:13px;letter-spacing:1.5px}.touch-steer[aria-pressed=true]{background:#f1cd79;color:#213c32;border-color:#fff0bb;box-shadow:0 1px 0 #102e2b;transform:translateY(2px)}
.steering-instructions{display:flex;flex-direction:column;justify-content:end;align-items:center;gap:3px;white-space:nowrap;color:#f8ebc4;text-shadow:0 1px 3px #102e2b;pointer-events:none}.steering-instructions strong{font-size:10px;letter-spacing:.25px}.steering-instructions>span{font-size:8px;letter-spacing:.8px;color:#ccdac0}
.drag-steering{border:2px solid #c9e4c2;border-radius:22px;background:#213e35f5;overflow:hidden;touch-action:none}.drag-steering svg{width:100%;height:100%;display:block}.drag-steering text{font-family:inherit;fill:#fff0c9;text-anchor:middle;font-weight:800}.drag-title{font-size:14px;letter-spacing:.5px}.drag-label{font-size:24px;letter-spacing:1px}.drag-ring{fill:#bddfc611;stroke:#bddfc655;stroke-width:2}.drag-ticks{fill:none;stroke:#e5e0b7;stroke-width:2}#drag-heading{fill:#f5cc76;stroke:#263f36;stroke-width:1}#drag-target{stroke:#a0e1c9;stroke-width:4;stroke-linecap:round}#drag-knob{fill:#dff0c8;stroke:#588874;stroke-width:3}.steering-pad.pressed #drag-knob{fill:#a0e1c9;stroke:#e8f2d5}.steering-pad.pressed .drag-ring{stroke:#aadac1}
.phone-controls-settings{display:none;border-top:1px solid #d9d9be;margin-top:18px;padding-top:18px}.touch-layout .phone-controls-settings{display:block}.phone-controls-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.phone-controls-choices button{min-height:62px;border:1px solid #afc4a7;border-radius:9px;background:#e8ead3;color:#375443;font-size:14px;font-weight:700}.phone-controls-choices button[aria-pressed=true]{background:#365e4a;border-color:#365e4a;color:#fff0ca}.phone-controls-choices small{display:block;font-size:10px;font-weight:400;margin-top:5px}.phone-controls-settings p{margin:12px 0 7px}.phone-controls-settings>small{display:block;font-size:10px;line-height:1.5;color:#7d896d}
.action-pad{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:clamp(112px,34vw,140px);height:162px;display:grid;grid-template-rows:1fr 1fr 1fr;border:1px solid #d8e4c957;border-radius:23px;overflow:hidden;box-shadow:0 4px 16px #1a302d26;background:#203e35ee;pointer-events:auto;touch-action:none}
.touch-action{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;gap:6px;flex-direction:column;background:transparent;color:#eff2d7;touch-action:none;font-size:12px;font-weight:750;letter-spacing:.6px;padding:3px;user-select:none;-webkit-user-select:none}.touch-action small{font-size:9px;letter-spacing:.3px;font-weight:500;color:#bbd4b4}.touch-both{font-size:9px;letter-spacing:.4px;border-top:1px solid #aac8b137;border-bottom:1px solid #aac8b137;background:#33534b7a;color:#b6dacf}.touch-action[aria-pressed=true]{background:#d4ddbc;color:#284737}.touch-action[aria-pressed=true] small{color:#416750}#touch-focus[aria-pressed=true],#touch-both[aria-pressed=true]{background:#9fd9ce;color:#245953}#touch-focus-fill{position:absolute;left:14px;right:14px;bottom:3px;height:2px;background:#8ac9bf;transform-origin:left;border-radius:3px;pointer-events:none}.action-pad[data-empty=true] #touch-focus{opacity:.45}
.touch-launch{position:absolute;left:50%;bottom:calc(186px + env(safe-area-inset-bottom));transform:translateX(-50%);min-height:54px;min-width:214px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 22px;border-radius:18px;background:#e77855;color:#fff4d6;border:1px solid #ffb18b;box-shadow:0 4px 0 #8e483530,0 5px 20px #1a342830;pointer-events:auto;touch-action:manipulation;font-size:13px;font-weight:800;letter-spacing:.8px}.touch-launch>b{font-size:24px;font-weight:400}.touch-launch:active{background:#f28a60}.touch-layout.is-flying .touch-launch,.touch-layout.is-winding .touch-launch{display:none}
body.touch-layout .launch-alert{top:calc(121px + env(safe-area-inset-top));width:310px;z-index:3;padding:12px 16px 17px}.touch-layout .launch-alert>strong{font-size:62px}.touch-layout .launch-alert-copy>small{font-size:10px}
.touch-layout .skill-feedback{position:absolute;left:16px;right:16px;top:calc(115px + env(safe-area-inset-top));z-index:3;max-width:none;margin:0;color:#f9edc9;font-size:11px;text-shadow:0 1px 2px #193d32,0 0 6px #193d32;pointer-events:none;text-align:center;display:none;max-height:38px;line-height:17px;overflow:hidden}.touch-layout.is-flying .skill-feedback{display:block}.touch-layout .skill-feedback[data-awarded=true]{font-weight:750;color:#fff2bc}
.touch-layout .wager-progress{position:absolute;left:16px;right:16px;top:calc(134px + env(safe-area-inset-top));bottom:auto;z-index:3;margin:0 auto;max-width:380px;padding:5px 8px;border-radius:7px;background:#1e3f35da;font-size:9px;pointer-events:none}.touch-layout:not(.is-flying) .wager-progress{display:none}.touch-layout .stage-hint{display:none}
body.touch-layout .result{z-index:6;top:calc(118px + env(safe-area-inset-top));bottom:auto;left:50%;right:auto;transform:translateX(-50%);max-height:calc(100% - 146px - env(safe-area-inset-top) - env(safe-area-inset-bottom));width:390px;padding:22px}.touch-layout.is-result .touch-controls{display:none}.touch-layout.is-result .result-breakdown{max-height:140px}.touch-layout .resume-pill{z-index:5;top:48%}.touch-layout #toast{top:calc(112px + env(safe-area-inset-top));bottom:auto;padding:7px 12px;max-height:46px;max-width:calc(100% - 28px);width:max-content;font-size:11px;line-height:15px;border:1px solid #e4dcb855;pointer-events:none}.touch-layout.has-toast .skill-feedback{visibility:hidden}.touch-layout.has-countdown #toast{top:calc(61px + env(safe-area-inset-top));left:12px;transform:none;width:calc(100% - 117px);max-height:83px;padding:10px 13px;font-size:12px;line-height:18px}.touch-layout.has-countdown.has-toast .launch-alert-copy{visibility:hidden}.touch-layout .trick-feed-wrap,.touch-layout .scene-tag{display:none}
.touch-layout.at-home .touch-controls,.touch-layout.at-home .game-shell:after{display:none}.touch-layout.at-home .stage{inset:0}.touch-layout.at-home .glide-console,.touch-layout.at-home .skill-feedback,.touch-layout.at-home .wager-progress{display:none}
@media(orientation:landscape){
  body.touch-layout .game-toolbar{right:calc(270px + env(safe-area-inset-right));height:54px}body.touch-layout .scene-button>span:first-child{font-size:8px;white-space:nowrap}body.touch-layout .home-button{width:36px;min-width:36px}body.touch-layout .toolbar-actions .icon-button,body.touch-layout .view-button{width:40px;min-width:40px}body.touch-layout .game-hud{left:auto;right:calc(156px + env(safe-area-inset-right));top:calc(9px + env(safe-area-inset-top));gap:8px}body.touch-layout .hud-score>strong{font-size:22px}body.touch-layout .hud-combo{display:none}body.touch-layout .glide-console{width:124px;min-width:0;top:calc(10px + env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}body.touch-layout .game-shell:after{height:94px}body.touch-layout .steering-pad{width:210px;height:162px;bottom:max(6px,env(safe-area-inset-bottom))}body.touch-layout .action-pad{height:126px;width:122px;bottom:max(6px,env(safe-area-inset-bottom))}body.touch-layout .touch-action{gap:3px;font-size:12px}body.touch-layout .touch-both{font-size:9px}body.touch-layout .touch-launch{bottom:max(17px,env(safe-area-inset-bottom));min-height:46px;min-width:198px}body.touch-layout .touch-controls:before{height:184px}body.touch-layout .launch-alert{top:calc(63px + env(safe-area-inset-top));width:270px;padding:9px 13px 15px}body.touch-layout .launch-alert>strong{font-size:46px;min-width:50px}body.touch-layout .launch-alert-copy>span{font-size:9px}body.touch-layout .launch-alert-copy>small{font-size:9px}body.touch-layout .launch-alert-copy>b{font-size:10px}body.touch-layout .skill-feedback{top:calc(60px + env(safe-area-inset-top));left:224px;right:150px;font-size:10px;line-height:13px;max-height:27px}body.touch-layout .wager-progress{top:auto;bottom:3px;left:224px;right:152px}body.touch-layout .result{top:calc(63px + env(safe-area-inset-top));max-height:calc(100% - 75px - env(safe-area-inset-top));width:380px;padding:16px}body.touch-layout #toast{top:calc(60px + env(safe-area-inset-top));left:calc(224px + env(safe-area-inset-left));right:150px;transform:none;max-width:none;width:auto;max-height:30px;padding:2px 7px;font-size:10px;line-height:13px}body.touch-layout.has-countdown #toast{top:calc(60px + env(safe-area-inset-top));left:calc(224px + env(safe-area-inset-left));right:150px;transform:none;max-width:none;width:auto;max-height:30px;padding:2px 7px;font-size:10px;line-height:13px}body.touch-layout.has-countdown.has-toast .launch-alert-copy{visibility:visible}
}

/* A small sports-RPG locker: real layered sprites, live outfit + motion preview. */
.home-player{display:flex;align-items:center;gap:13px;align-self:center;min-width:230px;text-align:left;padding:0 16px 0 0;border:1px solid #c3d2b23e;border-radius:13px;background:#16372c8f;color:#eee9c8;margin-top:-12px}.home-player canvas{width:62px;height:62px;image-rendering:pixelated;margin-top:-4px}.home-player>span{font-size:9px;letter-spacing:1.4px;font-weight:750}.home-player small{display:block;font-size:10px;letter-spacing:0;font-weight:400;margin-top:5px;color:#c6d7b6}.home-player>b{font-size:19px;font-weight:400;margin-left:3px}.home-content{gap:23px}.home-links{margin-top:-8px}
.player-dialog{width:min(850px,calc(100% - 28px));padding:29px;overflow:auto}.player-dialog h2{font-size:34px;margin:9px 0 23px}.player-workshop{display:grid;grid-template-columns:258px 1fr;gap:28px;align-items:start}.player-preview-column{position:sticky;top:0}.player-preview-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:15px 0 14px;border-radius:13px;border:1px solid #a6b193;background:repeating-linear-gradient(0deg,transparent 0 17px,#6c886709 17px 18px),linear-gradient(155deg,#dce4c7,#bfcaa3);overflow:hidden}.player-preview-stage:before{content:'';position:absolute;left:0;right:0;top:0;height:10px;background:repeating-linear-gradient(90deg,#40594b 0 13px,#e6e4c4 13px 26px);opacity:.3}.player-stamp{font-size:8px;letter-spacing:1.7px;font-weight:800;color:#5f7659;margin-top:8px}.player-preview-stage canvas{display:block;width:256px;height:228px;max-width:100%;image-rendering:pixelated;position:relative}.player-preview-stage>span:last-child{font-size:13px;font-weight:700;color:#355843;letter-spacing:.2px;margin-top:-10px}.player-note{font-size:10px!important;line-height:1.6!important;margin:12px 3px;color:#7d8a6b}.player-options{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.player-options label{font-size:10px;font-weight:650;color:#63795e}.player-options select{display:block;margin-top:5px;width:100%;height:41px;min-width:0;padding:0 9px;border:1px solid #c0caae;border-radius:7px;background:#fffae9;color:#344e3d;font-size:12px}.player-section-label{font-size:9px;letter-spacing:1.7px;font-weight:750;color:#79906b;margin:5px 0 12px}.player-options+.player-section-label{margin-top:24px}.throw-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.throw-choice{min-height:71px;display:flex;flex-direction:column;justify-content:center;gap:5px;align-items:center;border:1px solid #c0cbae;background:#e9ecd6;border-radius:9px;padding:8px 4px;color:#576f51;font-size:10px}.throw-choice>span{font-size:23px;line-height:1.2;color:#8b8156}.throw-choice[aria-pressed=true]{background:#365e4a;color:#fff0ca;border-color:#365e4a}.throw-choice[aria-pressed=true]>span{color:#efcb86}#player-save-status{font-size:10px;line-height:1.5;margin:10px 0 0}
@media(max-width:580px){.player-dialog{padding:23px 19px}.player-dialog h2{font-size:30px;margin-bottom:15px}.player-workshop{grid-template-columns:1fr;gap:12px}.player-preview-column{position:static;display:grid;grid-template-columns:1fr 140px;gap:0 12px;align-items:center}.player-preview-stage{grid-column:1;grid-row:1/3;min-height:180px;height:180px;padding:5px 0 12px}.player-stamp{font-size:6px;letter-spacing:1px}.player-preview-stage canvas{width:166px;height:148px}.player-preview-stage>span:last-child{font-size:11px;margin-top:-9px}.player-preview-column .primary-button{font-size:11px;margin:0;align-self:end}.player-note{font-size:9px!important;align-self:start}.player-options{gap:10px}.player-options select{height:44px}.home-player{margin-top:-8px}.home-content{gap:19px}.home-copy h1{margin-top:12px;margin-bottom:16px}.home-links{margin-top:-3px}.home-date{margin-top:-6px}}
@media(max-height:700px) and (max-width:580px){.home-content{gap:14px}.home-copy h1{font-size:76px;margin:10px 0 13px}.home-copy p{font-size:15px}.home-play{min-height:74px;font-size:21px;padding:15px 50px 14px 20px}.home-play>span{margin-top:4px;font-size:10px}.home-play>b{top:24px}.home-player canvas{width:48px;height:48px}.home-player{margin-top:0}.home-links button{min-height:34px}.home-date{font-size:8px}.home-screen{padding-top:18px;padding-bottom:18px}}
@media(max-height:500px) and (min-width:581px){.home-player{grid-column:1;grid-row:2;justify-self:start;margin:0}.home-links{grid-column:2;grid-row:2;margin:0;gap:20px}.home-date{margin-top:0}.home-player canvas{width:48px;height:48px}.home-content{gap:12px 30px}}
@media(prefers-reduced-motion:reduce){.launch-alert.tick>strong{animation:none}.launch-alert[data-urgent=true]{box-shadow:0 0 0 2px #e7795060}}

/* Planning trades the empty score/glide readout for the launch clock. The
   launch button occupies the right thumb pad until that pad becomes useful. */
.touch-layout.has-countdown .game-hud,.touch-layout.has-countdown .glide-console{visibility:hidden}
body.touch-layout .launch-alert{top:calc(59px + env(safe-area-inset-top));width:calc(100% - 24px);max-width:440px;min-height:88px;border-radius:14px;padding:11px 17px 16px}
.touch-layout.has-countdown .game-shell:after{height:calc(166px + env(safe-area-inset-top))}
.touch-layout:not(.is-flying) .action-pad{display:none}
.touch-layout .touch-launch{left:auto;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));transform:none;flex-direction:column-reverse;justify-content:center;gap:12px;width:clamp(112px,34vw,140px);min-width:0;height:162px;padding:14px 5px;border-radius:23px;font-size:12px;letter-spacing:.5px}.touch-layout .touch-launch>b{font-size:40px;line-height:1}
.touch-layout .touch-launch:after{content:'tap to launch';font-size:9px;font-weight:500;letter-spacing:.4px;order:-1}

@media(orientation:landscape){body.touch-layout .launch-alert{top:calc(4px + env(safe-area-inset-top));left:auto;right:max(12px,env(safe-area-inset-right));transform:none;min-height:51px;width:247px;max-width:none;padding:5px 12px 9px;gap:8px;border-radius:12px}body.touch-layout .launch-alert-copy{gap:3px}body.touch-layout .launch-alert-copy>small{display:none}body.touch-layout .launch-alert>strong{font-size:38px;min-width:53px}body.touch-layout .launch-alert-track{bottom:4px;left:12px;right:12px;height:2px}body.touch-layout.has-countdown .game-shell:after{height:94px}body.touch-layout .touch-launch,body.touch-layout .action-pad{height:132px;width:122px;min-width:0;bottom:max(6px,env(safe-area-inset-bottom))}body.touch-layout .touch-launch>b{font-size:30px}}

body.touch-layout .game-shell,.home-screen{height:100svh;height:100dvh}
.touch-layout .stage>canvas,.touch-controls{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.touch-layout .player-options select,.touch-layout .lab-settings select{font-size:16px;min-height:44px}

.touch-layout.is-winding .skill-feedback{visibility:hidden}
.touch-layout .wager-progress:not([hidden])~.skill-feedback{max-height:17px}
@media(orientation:landscape){body.touch-layout.has-toast .wager-progress{visibility:hidden}}
/* Competition stays inside the game menu. No outer site chrome. */
.online-status{font:11px monospace;color:#f1e8cb;margin:12px 0 0;max-width:360px}.online-status[data-state=error]{color:#ffbf9e}.board-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:22px 0 14px}.board-tabs button{border:1px solid #a7b09c;background:transparent;border-radius:7px;padding:10px 15px;color:#355648;font-weight:bold}.board-tabs button.active{background:#355648;color:#fff1cd}.board-row{display:grid;grid-template-columns:40px minmax(80px,1fr) auto;gap:12px;align-items:center;padding:14px 8px;border-bottom:1px solid #bcbda2}.board-row strong{font:700 21px monospace}.board-row span{overflow-wrap:anywhere}.board-row small{color:#657c66}.board-row.you,#board-own{background:#dce7cf;border-radius:8px}#board-own{padding:12px;margin-top:12px;font-weight:bold}.board-empty{padding:30px 10px;text-align:center;border:1px dashed #9dac91;border-radius:10px}.form-line{display:flex;gap:8px;margin:8px 0 15px}.form-line input{min-width:0;flex:1;padding:12px;border:1px solid #a8b29d;border-radius:7px;background:#fff7dc;color:#29483b}#friend-list>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #bcbda2;padding:10px 0}#board-status,#verification-status{display:block;font:12px/1.5 monospace;margin:8px 0;color:#476e59}#verification-status[data-state=error]{color:#9c3d2d}.lesson-grid p{margin:14px 0;padding:14px;background:#e6e8cd;border-radius:8px}.lesson-grid b{display:block;color:#365749;margin-bottom:6px}.challenge-banner{padding:9px 12px;background:#efd696;color:#304c3c;border-radius:6px;font:12px/1.4 monospace;margin-top:10px}.result[data-bonk=true]{animation:bonk-arrive .28s ease-out}.result[data-bonk=true] h2{color:#36674d}.result[data-bonk=true] .result-kicker::before{content:'✦ ';color:#c28728}@keyframes bonk-arrive{0%{translate:0 12px;scale:.98}100%{translate:0 0;scale:1}}@media(prefers-reduced-motion:reduce){.result[data-bonk=true]{animation:none}}@media(max-width:520px){.board-tabs button{padding:10px 11px}.scorebook h2{font-size:27px}.form-line{flex-wrap:wrap}.form-line input{min-width:160px}.online-status{font-size:10px}.home-links{flex-wrap:wrap}#download-card{font-size:11px;margin-top:7px}}
