:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#fff8eb;background:#123d46;font-synthesis:none;--orange:#ff803c;--ink:#102f32;--cream:#fff3d9}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:focus-visible,select:focus-visible{outline:3px solid #ffbf5b;outline-offset:4px}button{border:0}#world{display:block;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#082d3b7a 0%,transparent 25%,transparent 57%,#08262bba 100%)}header{position:absolute;inset:max(22px,env(safe-area-inset-top)) 30px auto;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:3}.identity{display:flex;align-items:center;gap:9px;font-size:25px;letter-spacing:5px;font-weight:850}.identity svg{width:32px;height:43px;color:var(--orange)}.identity small{font-size:8px;display:block;letter-spacing:3px;font-weight:600;margin-top:4px}.scoreboard{display:flex;align-items:center;gap:20px;background:#0b3039bc;border:1px solid #d6efee2b;padding:10px 23px;border-radius:13px;backdrop-filter:blur(12px)}.player,.opponent{display:flex;align-items:center;gap:15px;font-size:10px;letter-spacing:1px}.player{color:#ffc599}.opponent{color:#a5dfef}.player b,.opponent b{font-size:29px;line-height:1}.score-mid{text-align:center;border-inline:1px solid #ffffff24;padding:0 20px;font-variant-numeric:tabular-nums;font-weight:650}.score-mid small{display:block;font-size:7px;letter-spacing:1.8px;margin-top:5px;color:#bad3d3}.top-actions{display:flex;gap:7px}.icon{position:relative;font-size:22px;width:42px;height:42px;background:#0b3039a8;border:1px solid #d6efee38;border-radius:50%}.icon span{font-size:15px;position:absolute;right:5px;bottom:4px;color:#ffad73}.weather{position:absolute;top:116px;left:32px;display:flex;align-items:center;gap:12px}.wind-arrow{font-size:27px;color:#e1ebcb;transform:rotate(-25deg)}.weather b{display:block;font-size:14px;letter-spacing:.4px}.weather small{display:block;font-size:8px;letter-spacing:1.4px;color:#d1e2de;margin-top:4px}.status-dot{width:5px;height:5px;border-radius:50%;background:#a9dfb1;box-shadow:0 0 10px #a9dfb1}.follow{position:absolute;right:32px;top:119px;background:#123b44a8;border:1px solid #ffffff38;border-radius:20px;padding:9px 14px;font-size:11px;backdrop-filter:blur(8px)}.toast{position:absolute;left:50%;top:24%;transform:translateX(-50%);max-width:80%;padding:12px 22px;border-radius:30px;background:#fff2d9;color:#153c3a;box-shadow:0 5px 25px #001a2426;opacity:0;transition:opacity .2s;text-align:center;font-size:13px;font-weight:650;pointer-events:none;z-index:3}.toast.visible{opacity:1}.kite-tag{position:absolute;display:none;pointer-events:none;font-size:9px;letter-spacing:1.6px;font-weight:700;white-space:nowrap;padding:5px 8px;border-radius:5px;background:#153d4699;transform:translate(-50%,-100%);border-bottom:2px solid var(--orange)}.kite-tag.rival{border-color:#7adee6;color:#c7f4ff}.kite-tag i{display:none}.crosshair{position:absolute;left:50%;top:50%;pointer-events:none;opacity:.35;width:14px;height:14px;border:1px solid #fff8de;border-radius:50%;transform:translate(-50%,-50%)}.crosshair span{position:absolute;width:2px;height:2px;background:#fff;top:5px;left:5px}.bottom-hud{position:absolute;left:32px;right:32px;bottom:39px;display:flex;align-items:flex-end;justify-content:space-between;gap:26px}.control-label{font-size:8px;letter-spacing:2.3px;margin-bottom:12px;color:#dce8dd;font-weight:650}.steering{text-align:center;width:138px;flex-shrink:0}.steering small{font-size:7px;letter-spacing:1.6px;color:#bed4cd;display:block;margin-top:10px}#joystick{position:relative;width:124px;height:124px;margin:auto;border:1px solid #d5e8db65;border-radius:50%;background:#103a3b66;touch-action:none;user-select:none;box-shadow:inset 0 0 20px #07252922}#joystick>span{position:absolute;font-size:21px;opacity:.7;line-height:1}.north{top:3px;left:52px}.south{bottom:4px;left:52px}.west{left:8px;top:50px}.east{right:8px;top:50px}#stick{position:absolute;left:41px;top:41px;width:40px;height:40px;background:#faf1d2e3;border:5px solid #c6d7bf66;border-radius:50%;box-shadow:0 3px 15px #051e3580;pointer-events:none}.instrument{width:285px;max-width:32vw;margin:0 0 13px}.line-state{display:flex;align-items:center;gap:10px;margin-bottom:13px}.line-state>span:first-child{font-size:24px;font-weight:650;letter-spacing:-1px;white-space:nowrap}.line-state>span:last-child{font-size:8px;letter-spacing:1.5px;color:#c3d5ce;max-width:70px;line-height:1.5}.tension-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;margin-bottom:8px}.tension-caption b{color:#d9efb5;font-weight:500}.tension-track{height:5px;background:#ffffff28;border-radius:4px;overflow:hidden}.tension-track i{display:block;background:#d2eeb0;width:45%;height:100%;transition:background .2s}.health{display:flex;justify-content:space-between;font-size:8px;margin-top:10px;color:#c6dbd7;letter-spacing:.7px}.health b{color:#fff1d5;margin-left:6px;font-variant-numeric:tabular-nums}.instrument p{font-size:9px;line-height:1.5;color:#d2e4dc;min-height:27px;margin:12px 0 0}.reel-actions{text-align:right}.reel-buttons{display:flex;gap:10px}.reel{width:105px;height:108px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:10px;font-weight:800;letter-spacing:1px;border-radius:17px;user-select:none;touch-action:none;transition:transform .08s,background .12s;box-shadow:0 8px 22px #05292738}.reel>span{font-size:30px;font-weight:400;line-height:1}.reel small{font-size:6px;letter-spacing:1px;font-weight:650}.release{background:#edf1df;color:#25433d}.collect{background:var(--orange);color:#173b34}.reel.held{transform:translateY(4px) scale(.97);background:#ffc36d;box-shadow:0 2px 3px #05292744}.footnote{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);color:#c6d8c4;font-size:7px;letter-spacing:1.9px;white-space:nowrap}.footnote span{padding-inline:7px}.overlay{position:absolute;inset:0;z-index:5;background:linear-gradient(90deg,#082e38ee,#0a3745b5 45%,#0a37451a 85%);display:flex;align-items:center;padding:5vh 8vw;backdrop-filter:blur(2px)}.hidden{display:none!important}.eyebrow{font-size:9px;letter-spacing:2.4px;font-weight:650;display:flex;gap:10px;align-items:center;color:#d5e7d2}.eyebrow>span{width:6px;height:6px;background:var(--orange);border-radius:50%}h1{font-size:clamp(46px,7vw,100px);line-height:1.01;letter-spacing:-5px;margin:25px 0 23px;font-weight:750}h1 em{font-style:normal;color:var(--orange)}.intro{max-width:490px}.intro p{font-size:13px;color:#d5e0d5;line-height:1.8;margin-bottom:25px}.intro-options{display:flex;gap:28px;margin-bottom:23px}.intro-options>label{font-size:9px;color:#d3e3dc;letter-spacing:1px}.swatches{display:flex;gap:10px;margin-top:12px}.swatch{width:25px;height:25px;background:var(--swatch);border-radius:4px;transform:rotate(45deg);border:2px solid transparent;margin-right:4px}.swatch.active{outline:1px solid #fff3dc;outline-offset:4px}.intro select{display:block;color:#fff1d4;background:#ffffff0b;border:1px solid #ffffff35;border-radius:5px;padding:8px;margin-top:8px;font-size:10px;letter-spacing:0}.intro select option{background:#163c41}.primary{width:100%;padding:17px 20px;color:#123b36;background:var(--orange);border-radius:8px;font-weight:800;font-size:11px;letter-spacing:1.6px;display:flex;align-items:center;justify-content:space-between}.primary:hover{background:#ffae61}.practice,.secondary{display:block;background:transparent;color:#fff1d6;width:100%;padding:16px 10px;font-size:11px}.practice span{color:#b2cbc3;font-size:9px;margin-left:10px}.intro-note{font-size:7px;letter-spacing:1.15px;color:#adcbc1;margin-top:10px;white-space:nowrap}.intro-note i{font-style:normal;padding:0 7px;color:#ffad6e}.intro-side{position:absolute;right:8vw;bottom:12vh;text-align:right;font-size:14px;line-height:1.7;font-weight:650;letter-spacing:3px}.coords{font-size:8px;letter-spacing:3px;font-weight:400}.side-rule{width:40px;height:2px;background:var(--orange);margin:20px 0 20px auto}#menu,#result{justify-content:center;background:#092b39bb;backdrop-filter:blur(12px)}.dialog{max-width:440px;padding:30px;border:1px solid #9ebeb336;background:#12383deb;border-radius:18px;box-shadow:0 24px 80px #031a2340}.dialog h2{font-size:34px;line-height:1.1;letter-spacing:-1px;margin:22px 0}.dialog p{font-size:12px;color:#d2e0d2;line-height:1.7}.dialog .primary{margin-top:24px}.dialog .secondary{padding-bottom:0}.result-score{font-size:43px;font-weight:700;color:#ffac66;letter-spacing:9px;margin:20px 0}.rotate-note{position:absolute;bottom:4px;left:10px;right:10px;z-index:7;display:none;background:#123c45ed;padding:12px 28px 12px 12px;border:1px solid #a4cbc252;border-radius:8px;font-size:10px;text-align:center}.rotate-note button{background:transparent;position:absolute;right:5px;top:6px;font-size:18px}body.at-menu header,body.at-menu .weather,body.at-menu .follow,body.at-menu .bottom-hud,body.at-menu .crosshair,body.at-menu .footnote,body.at-menu .kite-tag{visibility:hidden}body.at-menu .identity{visibility:visible}body.at-menu header{pointer-events:none}
@media(max-width:850px){header{inset:16px 20px auto}.identity{font-size:19px;letter-spacing:3px}.identity svg{width:26px}.identity small{font-size:6px;letter-spacing:2px}.scoreboard{padding:8px 14px;gap:12px}.score-mid{padding:0 12px;font-size:13px}.player,.opponent{gap:9px;font-size:8px}.player b,.opponent b{font-size:24px}.icon{width:34px;height:34px;font-size:18px}.weather{top:87px;left:22px}.follow{top:91px;right:22px;padding:8px 11px;font-size:9px}.weather small{font-size:7px}.bottom-hud{left:20px;right:20px;bottom:32px;gap:15px}.steering{width:110px}#joystick{width:104px;height:104px}#stick{left:31px;top:31px}.north,.south{left:42px}.west,.east{top:40px}.reel{width:88px;height:94px;font-size:9px}.instrument{width:240px}.intro{max-width:380px}h1{letter-spacing:-3px}.intro-side{right:6vw;font-size:10px}.intro p{font-size:11px}.intro-options{margin-bottom:18px}.intro-note{font-size:6px}}
@media(max-height:550px) and (orientation:landscape){header{inset:9px 18px auto}.identity{font-size:17px}.identity svg{height:32px}.scoreboard{padding:5px 13px}.player b,.opponent b{font-size:22px}.score-mid{font-size:11px}.score-mid small{font-size:6px;margin-top:3px}.weather{top:66px;left:20px}.weather b{font-size:11px}.follow{top:66px;right:20px}.bottom-hud{bottom:20px}.control-label{margin-bottom:7px;font-size:7px}.steering{width:95px}#joystick{width:88px;height:88px}#stick{left:23px;top:23px}.north,.south{left:34px}.west,.east{top:32px}.reel{width:79px;height:80px;font-size:8px;border-radius:13px}.reel span{font-size:24px}.steering small{display:none}.instrument{margin-bottom:0}.instrument p{margin-top:6px;font-size:8px;min-height:20px}.line-state{margin-bottom:7px}.line-state>span:first-child{font-size:20px}.footnote{bottom:5px;font-size:6px}.overlay{padding:4vh 8vw}.intro{max-width:350px}h1{font-size:46px;margin:14px 0 10px;letter-spacing:-2px}.intro p{margin:8px 0 13px;font-size:10px}.eyebrow{font-size:7px}.intro-options{margin-bottom:13px;gap:20px}.swatches{margin-top:9px}.swatch{width:19px;height:19px}.intro select{padding:5px;font-size:9px;margin-top:5px}.primary{padding:12px 15px;font-size:10px}.practice{padding:9px}.intro-note{margin-top:3px}.dialog{max-width:500px;padding:22px}.dialog h2{margin:12px 0;font-size:27px}.dialog p{font-size:10px;margin:7px 0}.dialog .primary{margin-top:13px}.result-score{font-size:32px;margin:9px 0}}
@media(orientation:portrait){header{inset:max(15px,env(safe-area-inset-top)) 14px auto;flex-wrap:wrap}.identity{font-size:18px}.identity svg{height:32px}.scoreboard{position:absolute;top:64px;left:50%;transform:translateX(-50%);min-width:240px;justify-content:center}.top-actions{margin-left:auto}.weather{top:139px;left:16px}.follow{top:142px;right:14px;font-size:8px;padding:8px}.bottom-hud{left:14px;right:14px;bottom:53px;gap:0}.steering{width:100px}#joystick{width:96px;height:96px}#stick{left:27px;top:27px}.north,.south{left:38px}.west,.east{top:36px}.steering small{display:none}.reel-buttons{gap:6px}.reel{width:77px;height:89px}.control-label{font-size:7px;letter-spacing:1.4px}.instrument{position:absolute;bottom:155px;left:50%;transform:translateX(-50%);width:220px;max-width:80vw;text-align:center;margin:0}.line-state{justify-content:center}.tension-caption{text-align:left}.instrument p{font-size:9px}.rotate-note{display:block}.footnote{bottom:35px;font-size:6px}.intro{max-width:100%;width:100%}.overlay{padding:80px 8vw 45px;background:linear-gradient(90deg,#092f3ced,#092f3c99)}h1{font-size:68px;letter-spacing:-4px;margin-top:24px}.intro p{font-size:12px}.intro-options{gap:28px;margin-top:20px;margin-bottom:25px}.intro-side{display:none}.intro-note{font-size:6px;letter-spacing:.6px}.dialog{padding:24px}.dialog h2{font-size:30px}.dialog p{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Version 02: court movement, nose and automatic payout. */
.camera-view{position:absolute;right:32px;top:164px;border:1px solid #ffffff38;background:#123b44bc;border-radius:20px;padding:9px 14px;font-size:11px}.court-monitor{position:absolute;left:32px;top:172px;display:flex;align-items:center;gap:10px}.mini-court{width:38px;height:49px;border:1px solid #f1dd80;background:#1b5a4266;position:relative}.mini-court i{position:absolute;width:5px;height:8px;border-radius:2px;background:#f6efc9;transform:translate(-50%,-50%)}.court-monitor b{display:block;font-size:8px;letter-spacing:1px;color:#d5ecb8}.court-monitor small{display:block;font-size:7px;letter-spacing:1px;margin-top:5px;color:#bfd4cd}.court-monitor.warning b{color:#ff9a67}.court-monitor.warning .mini-court{border-color:#ff6c47;background:#c64e3640}.flight-readout{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.nose{display:flex;align-items:center;gap:6px}.nose>span{position:relative;font-size:17px;color:#ffb369;line-height:1;display:block}.nose>span:before{content:'';position:absolute;top:-2px;left:50%;transform:translateX(-50%);width:4px;height:4px;background:#fff3d7;border-radius:50%}.nose b{font-size:7px;font-weight:600;letter-spacing:.7px}.flight-readout>span{font-size:7px;color:#e0ebc7;letter-spacing:.5px}.instrument{width:310px}.rigging-options{display:flex;gap:20px;margin:-3px 0 19px}.rigging-options label{font-size:9px;color:#d3e3dc;letter-spacing:.7px}.line-state{margin-bottom:8px}.instrument p{font-size:9px}.reel.release.held{background:#d9ebad}.at-menu .camera-view,.at-menu .court-monitor{visibility:hidden}.dialog{max-width:470px}.crosshair{opacity:.18}
@media(max-width:850px){.camera-view{top:127px;right:22px;font-size:9px;padding:8px 11px}.court-monitor{top:133px;left:22px}.mini-court{width:28px;height:37px}.court-monitor b{font-size:7px}.court-monitor small{font-size:6px}.rigging-options{gap:16px}.rigging-options label{font-size:8px}}
@media(orientation:portrait){.camera-view{top:183px;right:14px;font-size:8px}.court-monitor{top:183px;left:16px}.mini-court{width:25px;height:33px}.court-monitor small{font-size:5px}.court-monitor b{font-size:6px}.instrument{width:250px;bottom:140px}.line-state>span:first-child{font-size:21px}.flight-readout{margin-bottom:8px}.instrument p{font-size:8px}.intro-options{margin-bottom:18px}.rigging-options{margin-bottom:24px;gap:20px}.intro h1{font-size:60px;margin-top:17px}.intro p{margin-bottom:20px}.intro-note{font-size:5.5px;letter-spacing:.35px}.intro-note i{padding:0 3px}}
@media(max-height:550px) and (orientation:landscape){.camera-view{top:100px;right:20px;font-size:8px;padding:6px 9px}.court-monitor{top:103px;left:20px}.mini-court{width:22px;height:29px}.court-monitor small{font-size:5px}.court-monitor b{font-size:6px}.rigging-options{margin-bottom:11px;gap:17px}.rigging-options label{font-size:7px}.intro h1{font-size:40px;margin-top:10px}.intro p{margin:6px 0 9px;font-size:9px}.intro-options{margin-bottom:10px}.instrument{width:265px}.line-state{margin-bottom:4px}.flight-readout{margin-bottom:7px}.nose b,.flight-readout>span{font-size:6px}.dialog{max-width:530px;padding:18px}.dialog h2{font-size:24px;margin:8px 0}.dialog p{font-size:9px;margin:5px 0}.dialog .primary{margin-top:10px}}


/* Pulse controls: a tap retrieves; a sustained press holds after the stroke. */
.thread-actions{width:260px;text-align:center;user-select:none}.release-buttons{display:flex;gap:8px;margin-bottom:9px}.thread-button{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #f3ecd549;border-radius:16px;touch-action:none;user-select:none;font-size:10px;font-weight:800;letter-spacing:.5px;min-height:82px;width:100%;background:#153f46e0;box-shadow:0 5px 18px #06282b44}.thread-button>span{font-size:25px;line-height:1.1;margin-bottom:7px}.thread-button small{display:block;font-size:6px;letter-spacing:.6px;margin-top:6px;font-weight:600}.thread-button.quick{background:#d7e6cde8;color:#21473e}.thread-button.pull{background:#ff8c44;color:#153d36;min-height:103px}.thread-button.held{transform:translateY(3px);box-shadow:0 0 0 2px #ffe7a9,inset 0 3px 9px #153c3955;background:#ffc575;color:#153d36}.thread-actions>b{display:block;font-size:8px;color:#ffd4a1;margin-top:9px;letter-spacing:1.5px}.angle-readout{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:8px;letter-spacing:.4px;margin:10px 0;color:#c6dfd5}.angle-readout b{color:#ffce99}.dialog{max-height:90vh;overflow:auto}.rigging-options{flex-wrap:wrap;gap:14px}.intro select{max-width:170px}
@media(max-width:850px){.thread-actions{width:220px}.thread-button{min-height:70px;font-size:8px;border-radius:13px}.thread-button.pull{min-height:90px}.thread-button small{font-size:5px}.thread-button>span{font-size:22px}.instrument{max-width:30vw}}
@media(orientation:portrait){.thread-actions{width:205px}.thread-button{min-height:70px}.thread-button.pull{min-height:92px}.instrument{bottom:240px;max-width:none}.steering{margin-bottom:17px}.rigging-options{gap:12px}.intro select{max-width:145px}.thread-actions>.control-label{font-size:7px}.dialog{padding:22px}}
@media(max-height:550px) and (orientation:landscape){.thread-actions{width:205px}.thread-button{min-height:52px;font-size:8px;border-radius:12px}.thread-button>span{font-size:18px;margin-bottom:3px}.thread-button small{font-size:5px;margin-top:4px}.thread-button.pull{min-height:62px}.thread-actions .control-label{margin-bottom:5px}.thread-actions>b{font-size:6px;margin-top:6px}.release-buttons{gap:7px;margin-bottom:7px}.angle-readout{margin:6px 0;font-size:7px}.rigging-options{gap:10px;margin-bottom:8px}.intro select{padding:5px}.intro-options{margin-bottom:9px}}

@media(orientation:portrait){.instrument{padding:12px;background:#103a40d9;border:1px solid #e8eadb2b;border-radius:13px;backdrop-filter:blur(8px)}.instrument p{color:#f1f0d8}.angle-readout{gap:5px 8px}.health{font-size:7px}}

/* Keep the game surface stable under rapid taps; camera zoom is explicit. */
html,body{touch-action:none;-webkit-text-size-adjust:100%;text-size-adjust:100%;height:100dvh;max-width:100%;-webkit-tap-highlight-color:transparent}
body{position:fixed;inset:0}button{touch-action:none}select{touch-action:manipulation}.overlay{touch-action:pan-y}#welcome{overflow-y:auto}.intro select{font-size:16px;min-height:40px;max-width:100%}.intro-options,.rigging-options{flex-wrap:wrap}.bottom-hud>*{min-width:0}.thread-button{overflow-wrap:break-word}
.zoom-controls{position:absolute;right:32px;top:208px;display:flex;align-items:center;gap:4px;padding:4px;background:#10383ee8;border:1px solid #ffffff40;border-radius:12px;z-index:3;user-select:none}.zoom-controls button{width:40px;height:40px;border-radius:8px;background:#28535a;font-size:24px;color:#fff3d9;line-height:1}.zoom-controls button:active{background:#ff9c50;color:#10383e}.zoom-controls button:disabled{opacity:.35;cursor:default}.zoom-controls span{min-width:36px;text-align:center;font-size:10px;font-variant-numeric:tabular-nums}.at-menu .zoom-controls{visibility:hidden}
@media(max-width:850px){.zoom-controls{right:22px;top:169px}.intro select{font-size:16px}}
@media(orientation:portrait){.zoom-controls{right:14px;top:223px}.bottom-hud{display:grid;grid-template-columns:minmax(84px,.85fr) minmax(0,1.65fr);column-gap:10px;bottom:max(54px,calc(env(safe-area-inset-bottom) + 24px))}.thread-actions{width:100%;min-width:0;grid-column:2}.steering{width:100%;min-width:0;grid-column:1}.instrument{width:min(280px,100%);max-width:100%;bottom:232px}.thread-button{font-size:9px}.thread-button small{font-size:5px;letter-spacing:.25px}.intro-options{gap:20px}.rigging-options{gap:14px}.intro select{max-width:145px}.intro-note{white-space:normal;line-height:1.8}}
@media(max-height:550px) and (orientation:landscape){.zoom-controls{top:141px;right:20px;padding:3px}.zoom-controls button{width:34px;height:34px;font-size:21px}.intro select{font-size:16px;min-height:36px}#welcome{align-items:flex-start;padding-top:20px;padding-bottom:20px}.intro h1{font-size:35px}.intro-options{margin-top:8px}.rigging-options{margin-bottom:12px}}
/* Spring-return throttle and a separate left-hand tug control. */
.tirantear-controls{width:136px;text-align:center;flex-shrink:0}.tirantear-controls>small{display:block;font-size:8px;color:#d6e6d8;letter-spacing:1.5px;margin-top:12px}.tirantear-button{width:100%;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:22px;background:#ff934b;color:#103b3d;font-weight:850;font-size:13px;letter-spacing:.8px;border:1px solid #ffdb9f;box-shadow:0 8px 28px #082a3d40;user-select:none}.tirantear-button>span{font-size:32px;line-height:1;margin-bottom:9px}.tirantear-button small{font-size:6px;letter-spacing:.3px;margin-top:10px}.tirantear-button.held{background:#ffe1a0;transform:translateY(2px)}.throttle-controls{width:156px;text-align:center;flex-shrink:0}.throttle-controls>.control-label{letter-spacing:1.4px}.throttle-lever{position:relative;height:214px;border-radius:26px;border:1px solid #c7e8d25c;background:linear-gradient(#2a6469e6,#153d44f2 50%,#5a4838ed);box-shadow:inset 0 2px 18px #04212e55;touch-action:none;user-select:none;cursor:ns-resize;outline-offset:4px}.lever-rail{position:absolute;left:50%;top:10%;bottom:10%;width:10px;transform:translateX(-50%);background:#082d34;border:1px solid #ffffff29;border-radius:10px}.lever-marks{position:absolute;inset:15px 8px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.3px;font-weight:750;color:#e9f0d4;pointer-events:none}.lever-marks span:nth-child(2){background:#103c45;padding:4px 8px;border-radius:8px}.lever-grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:72px;height:45px;border-radius:13px;background:linear-gradient(#ffdca2,#ffad61);border:1px solid #ffedc7;box-shadow:0 4px 13px #031f3277;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none}.lever-grip i{width:30px;height:2px;border-radius:4px;background:#70472966}.throttle-lever.held{border-color:#ffce83;box-shadow:0 0 0 3px #ffbd6322,inset 0 2px 18px #04212e55}.throttle-controls>b{display:block;margin-top:10px;color:#ffe1a1;font-size:10px;letter-spacing:.6px}.throttle-controls>small{display:block;font-size:7px;letter-spacing:1px;color:#d0dfd4;margin-top:7px}.throttle-controls #actionStatus{font-size:7px;color:#dce5ce;letter-spacing:.5px}.throttle-lever:focus-visible{outline:3px solid #ffe4a5}.tirantear-controls .control-label{letter-spacing:1px}
@media(orientation:portrait){.bottom-hud{display:flex;gap:14px;align-items:flex-end}.tirantear-controls{width:108px}.tirantear-button{min-height:105px;font-size:11px}.throttle-controls{width:122px}.throttle-lever{height:196px}.throttle-controls>.control-label{font-size:7px;letter-spacing:1px}.instrument{bottom:270px;width:min(260px,100%)}.lever-grip{width:64px;height:43px}.lever-marks{font-size:7px}.throttle-controls>b{font-size:9px}.toast{max-width:88%;font-size:10px;padding:9px 13px;top:27%}}
@media(max-height:550px) and (orientation:landscape){.throttle-controls{width:116px}.throttle-lever{height:146px;border-radius:21px}.lever-grip{width:61px;height:36px;border-radius:11px;gap:3px}.lever-marks{font-size:6px;inset:10px 7px}.throttle-controls .control-label{font-size:6px;margin-bottom:6px}.throttle-controls>b{margin-top:5px;font-size:8px}.throttle-controls>small{font-size:6px;margin-top:4px}.throttle-controls #actionStatus{display:none}.tirantear-controls{width:100px}.tirantear-button{min-height:83px;font-size:10px;border-radius:17px}.tirantear-button>span{font-size:25px;margin-bottom:5px}.tirantear-button small{font-size:5px;margin-top:7px}.tirantear-controls>small{font-size:6px;margin-top:7px}.instrument{max-width:38vw}.toast{font-size:10px;top:24%;padding:8px 15px}}
@media(orientation:portrait){.instrument{left:0;transform:none;bottom:160px;width:calc(100% - 140px);max-width:none;text-align:left;padding:9px}.instrument .line-state{justify-content:flex-start;gap:6px;margin-bottom:8px}.instrument .line-state>span:first-child{font-size:19px}.instrument .line-state>span:last-child{font-size:6px;letter-spacing:.8px}.instrument .flight-readout{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.instrument .angle-readout{font-size:6px;gap:4px;line-height:1.6}.instrument .tension-caption{font-size:6px;letter-spacing:.5px}.instrument .health{font-size:6px;letter-spacing:0;gap:3px}.instrument .health b{margin-left:2px}.instrument p{display:none}.at-menu .rotate-note{display:none}}
@media(max-height:550px) and (orientation:landscape){.court-monitor{display:none}.zoom-controls{left:20px;right:auto;top:103px}}
.replay-ui{position:absolute;inset:0;z-index:6;pointer-events:none}.replay-bar{position:absolute;top:96px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:30px;padding:12px 15px 12px 21px;max-width:calc(100% - 28px);border:1px solid #ffca7c88;border-radius:15px;background:#0d333dec;box-shadow:0 8px 28px #07242f44}.replay-bar strong{display:block;font-size:12px;letter-spacing:2px;color:#ffe0a1}.replay-bar span{display:block;font-size:8px;letter-spacing:1px;margin-top:6px;color:#d8e8df;white-space:nowrap}.replay-bar button{pointer-events:auto;border-radius:10px;background:#ffad61;color:#123b3c;font-size:11px;font-weight:800;padding:14px 18px;white-space:nowrap}.replay-timeline{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);width:min(440px,82%);text-align:center}.replay-timeline>span{display:inline-block;font-size:9px;letter-spacing:2px;border-radius:9px;background:#123b43e6;color:#fff0cc;padding:8px 12px;margin-bottom:10px}#replayTrack{height:5px;background:#113b49bb;border:1px solid #c3e1db33;border-radius:5px;overflow:hidden}#replayProgress{display:block;height:100%;width:0;background:#ffd08a}.replay-again{border:1px solid #e9d49a66;border-radius:10px;margin-top:15px!important;padding:13px!important;color:#ffe0a5!important}.is-replay .bottom-hud,.is-replay .weather,.is-replay .follow,.is-replay .camera-view,.is-replay .zoom-controls,.is-replay .court-monitor,.is-replay .crosshair,.is-replay .toast,.is-replay .footnote,.is-replay .rotate-note{visibility:hidden;pointer-events:none}
@media(orientation:portrait){.replay-bar{top:148px;padding:10px 12px;gap:18px}.replay-bar strong{font-size:10px;letter-spacing:1.5px}.replay-bar span{font-size:7px}.replay-bar button{font-size:10px;padding:13px}.replay-timeline{bottom:38px}}
@media(max-height:550px) and (orientation:landscape){.replay-bar{top:57px;padding:7px 11px;gap:20px;border-radius:12px}.replay-bar strong{font-size:9px}.replay-bar span{font-size:6px;margin-top:4px}.replay-bar button{font-size:9px;padding:10px 13px}.replay-timeline{bottom:16px;width:min(350px,72%)}.replay-timeline>span{font-size:7px;padding:6px 10px;margin-bottom:7px}}
.replay-actions{display:flex;justify-content:center;gap:9px;margin-bottom:9px;flex-wrap:wrap}.replay-actions span{border:1px solid #e5ca9555;border-radius:9px;background:#123b43e6;padding:7px 10px;font-size:8px;letter-spacing:.5px;color:#ffce98}.replay-actions span+span{color:#c2edf4;border-color:#b6dfe855}
@media(max-height:550px) and (orientation:landscape){.replay-actions{margin-bottom:6px;gap:7px}.replay-actions span{padding:5px 8px;font-size:7px}}

/* Independent stabilization, fast payout and force controls. */
.aux-button{width:100%;min-height:68px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid #e9f3cd99;border-radius:17px;font-size:10px;font-weight:850;letter-spacing:.5px;user-select:none;touch-action:none;box-shadow:0 5px 18px #06282b44}.aux-button>span{font-size:24px;line-height:1}.aux-button small{font-size:7px;letter-spacing:.8px}.fast-release{background:#d9eacb;color:#143d3d;margin-bottom:10px}.force-button{background:#f1e667;color:#17393a;margin-bottom:12px}.aux-button.held{background:#fff3b7;box-shadow:0 0 0 3px #fff2b9;transform:translateY(2px)}
@media(orientation:portrait){.aux-button{min-height:64px;font-size:9px;border-radius:14px}.aux-button>span{font-size:21px}.aux-button small{font-size:6px}.instrument{bottom:250px}.force-button{margin-bottom:9px}.tirantear-controls>small{margin-top:7px}}
@media(max-height:550px) and (orientation:landscape){.aux-button{min-height:43px;font-size:8px;gap:2px;border-radius:11px}.aux-button>span{font-size:17px}.aux-button small{font-size:5px}.force-button,.fast-release{margin-bottom:7px}.throttle-lever{height:116px}.tirantear-button{min-height:68px}.tirantear-controls>small{margin-top:5px}.instrument{max-width:40vw}.bottom-hud{gap:12px}}

/* Three-button controls: no throttle widget. */
.force-controls{width:156px;flex-shrink:0;text-align:center}.force-controls .force-button{min-height:118px;font-size:11px;margin-bottom:0}.force-controls #actionStatus{display:block;min-height:26px;margin-top:10px;font-size:9px;line-height:1.5;color:#fff0ca;letter-spacing:.5px}
@media(orientation:portrait){.force-controls{width:122px}.force-controls .force-button{min-height:105px;font-size:10px}.force-controls #actionStatus{font-size:8px}.instrument{bottom:230px;width:calc(100% - 140px)}.tirantear-button small{font-size:5px;line-height:1.6;padding:0 5px}}
@media(max-height:550px) and (orientation:landscape){.force-controls{width:116px}.force-controls .force-button{min-height:78px;font-size:9px}.force-controls #actionStatus{min-height:20px;font-size:7px;margin-top:7px}.tirantear-button small{font-size:5px;line-height:1.5}}
/* Leave the centre clear for the followed kite on narrow screens. */
@media(orientation:portrait){.instrument{width:calc(50% - 40px);max-width:250px}.instrument .line-state{flex-wrap:wrap;gap:3px}.instrument .line-state>span:last-child{max-width:none;font-size:5px}.instrument .health{flex-wrap:wrap;gap:4px}.instrument .flight-readout>span{font-size:6px;line-height:1.4}}

.v-readout{display:flex;flex-wrap:wrap;gap:5px 9px;padding:7px 0;margin-bottom:7px;border-bottom:1px solid #d2eeb03b;color:#e2efca;font-size:7px;line-height:1.5;letter-spacing:.4px}.v-readout b{color:#ffd097}.v-readout span:last-child{flex-basis:100%}@media(orientation:portrait){.v-readout{font-size:6px;padding:4px 0;gap:3px;margin-bottom:5px}.instrument:has(.v-readout:not(.hidden)){bottom:220px}}@media(max-height:550px) and (orientation:landscape){.v-readout{font-size:6px;gap:3px 7px;padding:3px 0;margin-bottom:3px}.v-readout span:last-child{flex-basis:auto}}

@media(max-height:550px) and (orientation:landscape){.instrument{position:fixed;left:132px;bottom:24px;width:calc(50vw - 170px);max-width:260px;margin:0}.instrument .angle-readout{font-size:6px;gap:3px 6px}.instrument p{display:none}.instrument .line-state>span:first-child{font-size:18px}.instrument .line-state>span:last-child{font-size:6px}.instrument .flight-readout{flex-wrap:wrap;gap:3px}.instrument .health{font-size:6px}.instrument .tension-caption{font-size:6px;letter-spacing:.4px}}

/* Technique sessions share the duel scene and controls. */
.mode-tabs{display:flex;gap:5px;width:max-content;padding:4px;border-radius:12px;background:#092f3c99;border:1px solid #b8dbcf44;margin-top:18px}.mode-tabs button{padding:10px 16px;border-radius:8px;background:transparent;font-size:12px;font-weight:750;color:#c7dfd8}.mode-tabs button.selected{background:#f4dfae;color:#153a3c}.mode-tabs span{font-size:8px;margin-left:6px;color:#ffad6c}.training-dialog{width:min(760px,100%);margin:auto;padding:25px;border:1px solid #afd2c64d;border-radius:22px;background:#0e333ded;box-shadow:0 24px 60px #061e3266}.training-dialog h2{font-size:40px;letter-spacing:-1.4px;margin:15px 0}.training-dialog h2 span{display:block;font-size:16px;font-weight:500;color:#c6ded2;letter-spacing:0;margin-top:7px}.training-dialog>p{font-size:13px;line-height:1.6;color:#d7e4d5}.exercise-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:24px 0 12px}.exercise{border:1px solid #bbd6c54d;border-radius:13px;padding:15px 10px;background:#163e47;color:#e8f0db;text-align:left}.exercise b{display:block;font-size:27px;color:#ffb568;margin-bottom:15px}.exercise strong{display:block;font-size:12px}.exercise small{display:block;font-size:9px;line-height:1.4;margin-top:6px;color:#bdcfc6}.exercise.selected{border-color:#ffc36f;background:#31514b;box-shadow:inset 0 -3px #ffae60}.exercise-hint{min-height:24px;border-left:2px solid #ffae60;padding-left:11px}.training-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.training-options label{font-size:10px;color:#c8dccc}.training-options select{display:block;width:100%;padding:10px;margin-top:7px;background:#1c4850;color:#fff3da;border:1px solid #c3dcc959;border-radius:9px;font-size:16px}.training-launch{display:flex;gap:12px;align-items:stretch}.training-launch button{flex:1;margin:0}.training-launch .secondary{border:1px solid #e6d4a55c;border-radius:12px;padding:13px;background:#1d454b;font-size:11px;font-weight:700}.next-sessions{display:flex;gap:8px;flex-wrap:wrap;font-size:9px;margin-top:24px;color:#96b9b4}.next-sessions span:first-child{color:#d4dfc8}.next-sessions span+span{border-left:1px solid #719591;padding-left:8px}.training-back{display:block;background:transparent;color:#e4d6b3;padding:14px 0 0;font-size:11px}.lab-panel{position:absolute;z-index:4;top:88px;left:50%;transform:translateX(-50%);width:min(700px,calc(100% - 28px));padding:13px 16px;border:1px solid #d3dab04d;border-radius:15px;background:#0c323deb;box-shadow:0 8px 24px #08252f55}.lab-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px}.lab-heading>div{flex:1}.lab-heading small{display:block;color:#e6c996;font-size:8px;letter-spacing:1px;margin-bottom:5px}.lab-heading strong{font-size:16px;letter-spacing:-.3px}.lab-heading>span{font-size:11px;color:#c9e7db;font-variant-numeric:tabular-nums}.lab-heading button{background:transparent;border:1px solid #89b6b455;border-radius:8px;font-size:10px;padding:8px}.lab-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.lab-tools button{background:#24505b;border:1px solid #a9ccc350;border-radius:7px;font-size:10px;padding:9px 10px;font-weight:650}.lab-tools button:first-child{background:#ffa15a;color:#173a3e;border-color:#ffc773}.lab-tools button:disabled{opacity:.45;cursor:default}.lab-speed{display:flex;align-items:center;gap:5px;font-size:9px;color:#bed9ce;margin-left:auto}.lab-speed select{font-size:14px;padding:6px 4px;color:#fff3d2;background:#24505b;border:1px solid #8db4ac77;border-radius:7px}.lab-status{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:9px;font-size:9px;color:#f3d19c}.lab-status label{display:flex;align-items:center;color:#cadccf;white-space:nowrap;font-size:9px;gap:4px}.lab-status input{accent-color:#ff9d54;width:14px;height:14px;margin:0}.lab-data,.lab-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:8px;color:#b9d6ce}.lab-data span:first-child{color:#ffc382}.lab-data span:nth-child(2){color:#bae9fa}.lab-legend{opacity:.85;font-size:8px;border-top:1px solid #85b1ad38;padding-top:7px}.is-training .scoreboard,.is-training .weather,.is-training .follow,.is-training .court-monitor,.is-training .rotate-note{visibility:hidden}.is-training .zoom-controls{top:290px;left:20px;right:auto}.is-training .camera-view{top:290px;right:20px}.is-training.is-demo .bottom-hud{pointer-events:none;opacity:.7}.is-replay .lab-panel{visibility:hidden;pointer-events:none}
@media(orientation:portrait){.training-dialog{padding:20px 17px}.training-dialog h2{font-size:34px}.training-dialog h2 span{font-size:13px}.training-dialog>p{font-size:11px}.exercise-grid{grid-template-columns:1fr 1fr;gap:8px;margin:17px 0 10px}.exercise{padding:12px}.exercise b{font-size:23px;margin-bottom:8px}.exercise strong{font-size:11px}.training-options{gap:9px;margin:16px 0}.training-options label{font-size:9px}.training-launch{flex-direction:column;gap:8px}.training-launch .primary{padding:14px;font-size:10px}.next-sessions{margin-top:17px}.lab-panel{top:72px;padding:11px 12px}.lab-heading strong{font-size:14px}.lab-heading{gap:8px;margin-bottom:8px}.lab-heading small{font-size:7px}.lab-tools button{font-size:9px;padding:8px 7px}.lab-speed{margin-left:0}.lab-status{align-items:flex-start;font-size:8px}.lab-status label{font-size:8px}.lab-data{gap:5px 10px;font-size:7px}.lab-legend{gap:7px;font-size:7px}.is-training .zoom-controls{top:280px;left:auto;right:14px}.is-training .camera-view{top:284px;left:14px;right:auto}}
@media(max-height:550px) and (orientation:landscape){.mode-tabs{position:absolute;right:7vw;top:80px;flex-direction:column}.mode-tabs button{font-size:10px;padding:9px 12px}.training-dialog{padding:17px 20px}.training-dialog h2{font-size:28px;margin:9px 0}.training-dialog h2 span{font-size:12px}.training-dialog>p{font-size:10px;margin:7px 0}.exercise-grid{margin:11px 0;gap:8px}.exercise{padding:10px}.exercise b{font-size:21px;margin-bottom:5px}.exercise strong{font-size:10px}.exercise small{font-size:8px}.training-options{margin:11px 0}.training-options select{padding:6px}.next-sessions{margin-top:14px}.lab-panel{top:51px;padding:7px 10px}.lab-heading{margin-bottom:6px;gap:10px}.lab-heading strong{font-size:12px}.lab-heading small{font-size:6px;display:inline;margin-right:8px}.lab-heading button{padding:5px;font-size:8px}.lab-heading>span{font-size:9px}.lab-tools button{padding:6px 9px;font-size:8px}.lab-speed select{padding:3px;font-size:12px}.lab-status{margin-top:5px;font-size:7px}.lab-status label{font-size:7px}.lab-data,.lab-legend{margin-top:4px;font-size:7px;gap:9px}.lab-legend{padding-top:4px}.is-training .zoom-controls{top:163px;left:20px}.is-training .camera-view{top:166px;right:20px}.is-training .instrument{opacity:.7}}
.training-dialog{position:relative;max-height:calc(100dvh - 30px);overflow-y:auto;overscroll-behavior:contain}
@media(max-height:550px) and (orientation:landscape){.training-dialog>p:not(.exercise-hint),.training-dialog .next-sessions{display:none}.training-dialog .training-back{position:absolute;right:20px;top:13px;padding:0;font-size:9px}.training-dialog .exercise-grid{margin:8px 0}.training-dialog .training-options{margin:8px 0}.training-dialog .training-launch .primary{padding:10px}.training-dialog h2{margin-top:10px}}
/* Training keeps the middle of the screen free for the actual encounter. */
.is-training .instrument,.is-training .footnote,.is-training .crosshair{display:none}
.is-training.is-demo .bottom-hud{display:none}
.lab-panel{top:76px;width:min(540px,calc(100% - 24px));padding:10px 12px}
.lab-heading{margin-bottom:8px}.lab-heading strong{font-size:14px}.lab-heading small{font-size:8px}
.lab-primary-tools{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:6px}
.lab-primary-tools button{min-height:38px;padding:7px 5px;font-size:11px}
.lab-panel .lab-status{margin-top:7px;font-size:10px;line-height:1.35}
.lab-details{position:absolute;z-index:5;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 24px));max-height:32dvh;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;background:#0c323df5;border:1px solid #b5ccaf66;border-radius:15px;padding:12px 14px;box-shadow:0 8px 24px #08252f55}
.lab-details-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:12px}
.lab-details-heading button{background:transparent;border:1px solid #89b6b477;border-radius:8px;min-height:32px;padding:6px 10px;font-size:11px}
.lab-details .lab-tools button{min-height:38px;font-size:11px}.lab-details .lab-speed{font-size:11px}
.lab-details .lab-status label{font-size:11px;min-height:32px;white-space:normal}.lab-details .lab-status input{width:18px;height:18px;margin-right:5px}
.lab-details .lab-data,.lab-details .lab-legend{font-size:10px;line-height:1.5}
.lab-details .lab-data{flex-direction:column;gap:4px}
.is-training .zoom-controls{top:auto;bottom:max(16px,env(safe-area-inset-bottom));left:auto;right:16px}
.is-training .camera-view{display:none}
.is-training .bottom-hud{bottom:max(24px,env(safe-area-inset-bottom))}
.is-training .tirantear-controls{width:100px}.is-training .force-controls{width:110px}
.is-training .tirantear-button{min-height:76px}.is-training .force-button{min-height:78px;font-size:10px}
.is-training .fast-release{min-height:65px;font-size:10px}.is-training .tirantear-controls>.control-label,.is-training .tirantear-controls>small{display:none}
.is-training:not(.is-demo) .zoom-controls{bottom:220px}
.lab-details-open.is-training .bottom-hud,.lab-details-open.is-training .zoom-controls{visibility:hidden;pointer-events:none}
.is-replay .lab-details{display:none}
@media(orientation:portrait){
.lab-panel{top:62px}.lab-heading{gap:7px}.lab-heading small{font-size:7px}.lab-heading strong{font-size:14px}.lab-heading button{padding:7px;font-size:10px;min-height:34px}
.is-training .zoom-controls button{width:34px;height:34px}.is-training .zoom-controls span{min-width:30px}
}
@media(max-height:550px) and (orientation:landscape){
.lab-panel{top:8px;left:50%;width:min(410px,calc(100% - 300px));padding:7px 10px}.lab-heading{margin-bottom:4px;gap:6px}.lab-heading small{display:none}.lab-heading strong{font-size:12px}.lab-heading>span{font-size:9px}.lab-heading button{padding:4px;font-size:9px;min-height:26px}
.lab-primary-tools button{min-height:30px;font-size:10px;padding:5px 3px}.lab-panel .lab-status{font-size:9px;margin-top:4px}
.lab-details{max-height:34dvh;width:min(650px,calc(100% - 32px));padding:8px 12px}.lab-details-heading{margin-bottom:5px}.lab-details .lab-data{flex-direction:row;gap:4px 12px}.lab-details .lab-legend{margin-top:4px;padding-top:4px}.lab-details .lab-status{margin-top:4px}
.is-training .tirantear-controls{width:90px}.is-training .force-controls{width:102px}.is-training .tirantear-button{min-height:62px}.is-training .fast-release{min-height:48px}.is-training .force-button{min-height:66px}.is-training .force-controls #actionStatus{font-size:7px}.is-training:not(.is-demo) .zoom-controls{bottom:124px}
}

/* Read the full demonstration as three visible actions. */
.lab-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px;font-size:9px;letter-spacing:.4px;color:#9ab8b4}.lab-stages span{padding:5px 2px;border-bottom:2px solid #42636a}.lab-stages span.active{color:#ffcb86;border-color:#ffad61;font-weight:800}.lab-stages span.done{color:#e5e9cf;border-color:#a7c8ad}.is-demo .lab-panel .lab-status{color:#ffe0ad}
@media(max-height:550px) and (orientation:landscape){.lab-stages{font-size:8px;margin-top:5px}.lab-stages span{padding:3px 1px}}

/* A clear flight view: all telemetry and secondary controls live above. */
header{inset:max(12px,env(safe-area-inset-top)) 16px auto;gap:12px;flex-wrap:nowrap;z-index:7}
.identity{font-size:17px;letter-spacing:2px;gap:6px;flex-shrink:0}.identity svg{width:24px;height:32px}.identity small{font-size:6px;letter-spacing:1.5px}
.scoreboard{position:static;transform:none;min-width:0;padding:7px 13px;gap:12px;border-radius:12px}.score-mid{padding:0 12px;font-size:13px}.score-mid small{font-size:6px;letter-spacing:.8px;margin-top:3px}.player,.opponent{font-size:8px;gap:7px}.player b,.opponent b{font-size:23px}
.top-actions{align-items:center;margin:0;gap:7px}.top-actions>.icon{width:44px;height:44px;font-size:20px}
.flight-info{position:relative;flex-shrink:0}.flight-info>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 11px;cursor:pointer;touch-action:manipulation;user-select:none;background:#103940e8;border:1px solid #e6eac455;border-radius:12px;color:#fff0ce;font-size:12px;font-weight:700}
.flight-info>summary::-webkit-details-marker{display:none}.flight-info>summary>span{font-size:18px}.flight-info>summary>i{font-style:normal;color:#ffb96e}.flight-info[open]>summary{border-color:#ffad61;background:#224b4e}.flight-info>summary:focus-visible{outline:3px solid #ffbf5b;outline-offset:3px}
.flight-info-panel{position:absolute;right:0;top:calc(100% + 9px);width:min(340px,calc(100vw - 28px));max-height:min(55dvh,520px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:15px;background:#0c303af5;border:1px solid #b8d1bd66;border-radius:16px;box-shadow:0 14px 38px #001a2870;scrollbar-width:thin;scrollbar-color:#6e9692 transparent}
.flight-info-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;font-size:14px}.flight-info-heading button{min-height:36px;padding:5px 9px;border:1px solid #b1c9b64d;border-radius:8px;background:#234b53;font-size:11px}
.flight-info .weather{position:static;visibility:visible;gap:10px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #b7c9ac33}.flight-info .weather b{font-size:13px}.flight-info .weather small{font-size:9px;letter-spacing:.4px}.flight-info .wind-arrow{font-size:23px}
.flight-info .instrument{display:block;position:static;inset:auto;transform:none;width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;text-align:left;backdrop-filter:none}
.flight-info .line-state{justify-content:flex-start;flex-wrap:nowrap;gap:10px;margin-bottom:12px}.flight-info .line-state>span:first-child{font-size:24px}.flight-info .line-state>span:last-child{font-size:9px;letter-spacing:.7px;max-width:none}
.flight-info .flight-readout{display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;justify-content:flex-start;gap:9px;margin-bottom:10px}.flight-info .nose b,.flight-info .flight-readout>span{font-size:10px;letter-spacing:.3px}
.flight-info .angle-readout{font-size:10px;line-height:1.5;gap:5px 10px;margin:10px 0}.flight-info .angle-readout>span:last-child{flex-basis:100%}.flight-info .v-readout{font-size:10px;line-height:1.5;padding:8px 0;margin-bottom:10px;gap:5px 9px}
.flight-info .tension-caption{font-size:10px;letter-spacing:.6px;margin-bottom:7px}.flight-info .health{font-size:10px;flex-wrap:wrap;gap:8px;margin-top:9px;letter-spacing:0}.flight-info .health b{margin-left:4px}.flight-info .instrument p{display:block;min-height:0;font-size:11px;line-height:1.5;margin:10px 0;color:#d9e5d9}
.panel-action{margin:8px 0 0;font-size:10px;color:#ffcf99}.panel-view{border-top:1px solid #b7c9ac33;padding-top:12px;margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.panel-view>strong{grid-column:1/-1;font-size:12px;font-weight:600}
.flight-info .follow,.flight-info .camera-view{position:static;visibility:visible;display:block;transform:none;min-height:40px;margin:0;padding:8px 7px;border-radius:9px;font-size:10px;line-height:1.4;background:#214953;border:1px solid #c4d7c54d;backdrop-filter:none}
.flight-info .zoom-controls{position:static;inset:auto;transform:none;visibility:visible;display:flex;grid-column:1/-1;justify-content:space-between;gap:7px;width:100%;margin:0;padding:5px;border-radius:10px}.flight-info .zoom-controls button{width:42px;height:38px;font-size:23px}.flight-info .zoom-controls span{font-size:12px;min-width:40px}
.flight-info .court-monitor{position:static;visibility:visible;display:flex;grid-column:1/-1;margin-top:4px;font-size:10px;gap:10px}.flight-info .court-monitor b,.flight-info .court-monitor small{font-size:9px}.flight-info .mini-court{width:28px;height:36px}
.panel-options{display:flex;gap:8px;margin-top:12px}.panel-tool{flex:1;min-height:40px;background:#244a52;border:1px solid #b1c9b64d;border-radius:9px;font-size:11px}.panel-tool span{color:#ffba82;margin-left:4px}.panel-help{font-size:10px;line-height:1.6;color:#aecac0;margin:12px 0 0}
.bottom-hud{left:16px;right:16px;bottom:max(20px,env(safe-area-inset-bottom));gap:14px;pointer-events:none}.bottom-hud>div{pointer-events:auto}.tirantear-controls{width:110px}.force-controls{width:124px}.bottom-hud .tirantear-button{width:100%;min-height:85px;border-radius:19px;font-size:12px;letter-spacing:.5px}.bottom-hud .tirantear-button>span{font-size:27px;margin-bottom:6px}.bottom-hud .aux-button{min-height:62px;font-size:10px;border-radius:16px;gap:5px;letter-spacing:.3px}.bottom-hud .aux-button>span{font-size:25px}.bottom-hud .force-controls .force-button{min-height:94px;margin:0;font-size:11px}.bottom-hud .fast-release{margin-bottom:9px}.bottom-hud .control-label,.bottom-hud small,.footnote,.rotate-note,.crosshair{display:none!important}
.kite-tag{font-size:8px;letter-spacing:1px;padding:4px 6px}.toast{top:75px;font-size:11px;padding:9px 15px}
.at-menu .flight-info{display:none}.is-replay .flight-info{display:none}
.lab-details{top:190px;bottom:auto;max-height:45dvh}.is-training .flight-info .instrument{display:block}.is-training .bottom-hud{bottom:max(20px,env(safe-area-inset-bottom))}.is-training .flight-info .camera-view{display:block}.is-training:not(.is-demo) .flight-info .zoom-controls{position:static;inset:auto;visibility:visible}.is-training.is-demo .bottom-hud{display:none}.is-training .lab-panel{top:70px}
@media(max-width:600px){
 header{inset:max(10px,env(safe-area-inset-top)) 12px auto;gap:7px}.identity{font-size:12px;letter-spacing:1px;gap:4px}.identity svg{width:20px;height:28px}.identity small{display:none}.scoreboard{gap:7px;padding:7px 9px;flex:1;justify-content:center}.score-mid{padding:0 8px;font-size:12px}.score-mid small{display:none}.player,.opponent{font-size:7px;letter-spacing:.4px;gap:5px}.player b,.opponent b{font-size:22px}.top-actions{gap:6px}.top-actions>.icon{width:40px;height:44px;font-size:19px}.flight-info>summary{padding:0 8px;font-size:11px;gap:4px}.flight-info>summary>span{display:none}.flight-info-panel{max-height:52dvh;padding:13px}
 .bottom-hud{left:12px;right:12px;bottom:max(18px,env(safe-area-inset-bottom))}.tirantear-controls{width:104px}.force-controls{width:116px}.bottom-hud .tirantear-button{min-height:80px;font-size:11px}.bottom-hud .aux-button{min-height:58px;font-size:9px}.bottom-hud .force-controls .force-button{min-height:90px;font-size:10px}.kite-tag{font-size:7px;padding:3px 5px;letter-spacing:.7px}.lab-details{top:200px;max-height:40dvh}
}
@media(max-width:380px){header .identity>div{display:none}.flight-info>summary{padding:0 10px}.flight-info-panel{width:calc(100vw - 24px)}}
@media(max-height:550px) and (orientation:landscape){
 header{inset:8px 14px auto}.identity{font-size:13px}.identity svg{width:21px;height:28px}.identity small{display:none}.scoreboard{padding:5px 12px}.top-actions>.icon,.flight-info>summary{height:40px;min-height:40px}.flight-info-panel{max-height:calc(100dvh - 66px);width:320px}.bottom-hud{bottom:max(14px,env(safe-area-inset-bottom))}.tirantear-controls{width:102px}.force-controls{width:114px}.bottom-hud .tirantear-button{min-height:66px;font-size:10px}.bottom-hud .aux-button{min-height:48px;font-size:9px}.bottom-hud .aux-button>span{font-size:20px}.bottom-hud .force-controls .force-button{min-height:76px;font-size:10px}.is-training .lab-panel{top:8px}.lab-details{top:120px;max-height:calc(100dvh - 132px)}
}

.pause-help{margin-top:18px;border-top:1px solid #c4d7bd44;padding-top:12px}.pause-help>summary{cursor:pointer;touch-action:manipulation;min-height:36px;color:#ffd09c;font-size:12px;list-style:none}.pause-help>summary::-webkit-details-marker{display:none}.pause-help[open]>summary{margin-bottom:8px}summary:focus-visible{outline:3px solid #ffbf5b;outline-offset:3px}

.fall-ui{position:absolute;z-index:6;top:78px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;max-width:calc(100% - 24px);padding:9px 11px 9px 15px;border:1px solid #ebd39577;border-radius:13px;background:#10373ee8;box-shadow:0 8px 25px #09262a33;font-size:10px;letter-spacing:.5px;color:#ffe0a7}.fall-ui button{flex-shrink:0;min-height:36px;padding:7px 11px;border-radius:8px;background:#ffae63;color:#183b3c;font-size:11px;font-weight:750}.is-falling .bottom-hud,.is-falling .flight-info,.is-falling .lab-panel{visibility:hidden;pointer-events:none}
@media(max-width:600px){.fall-ui{top:68px;gap:8px;padding:8px 10px;font-size:8px}.fall-ui button{font-size:10px;padding:6px 9px}}
@media(max-height:550px) and (orientation:landscape){.fall-ui{top:57px;padding:6px 9px;font-size:9px}.fall-ui button{min-height:30px}}
