:root{--ink: #241b33;--paper: #fff8e7;--paper-sh: #e9dcc0;--sky1: #3fb6ff;--sky2: #c9f1ff;--sun: #ffd93b;--sun-sh: #e0a800;--cloud-ink: #3f6f9c;--hill-far: #a9e3b7;--hill-mid: #6fcb73;--hill-mid-ink: #2f7a4b;--tree: #3f9f4c;--grass: #6ad636;--grass-sh: #45b02a;--dirt: #c97f3d;--dirt-sh: #a3602a;--mint: #44d67a;--mint-sh: #2aa85a;--bump: #ff9f1c;--bump-sh: #e07a00;--warn: #ff9f1c;--bad: #e23b4f;--sw: #b57bee;--coil: #d6dcea;--plate: #8d93a8;--p1: #ff5d73;--p1-sh: #d63d55;--p2: #50b7ff;--p2-sh: #2f8fd6;--skin: #ffcf9e;--shorts: #3f3a5a;--gold: #ffd93b;--gold-sh: #e0a800;--silver: #e3eaf4;--silver-sh: #9fb0c6;--bronze: #e0905a;--bronze-sh: #a5612a;--shadow: rgba(36, 27, 51, .28);--scrim: rgba(36, 27, 51, .45);--scrim-light: rgba(36, 27, 51, .35);--letterbox: #10263d;--letterbox-line: #1d3a58;--font: Fredoka, "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;--outline: 4px;--motion: 1;--stage-scale: 1;--hud-scale: 1;--band: calc(12px + 48px * var(--hud-scale) + 8px)}:root[data-motion=on]{--motion: 0}@media(prefers-reduced-motion:reduce){:root:not([data-motion=off]){--motion: 0}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;width:100%;margin:0;overflow:hidden;position:fixed;overscroll-behavior:none}body{background:var(--letterbox);color:var(--ink);font-family:var(--font);font-weight:500;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#root,.app{position:fixed;inset:0}#root{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}input{font:inherit}:focus-visible{outline:4px solid var(--sun);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.card-title{margin:0;font-size:32px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.05}.display-l{font-size:40px}.eyebrow{margin:0;font-size:15px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;opacity:.75}.body{margin:0;font-size:18px;line-height:1.35}.caption{font-size:15px;font-weight:600;opacity:.75}.label,.lab{font-size:15px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.muted-text{opacity:.8}.hint-text{margin:0;font-size:18px;font-style:italic;line-height:1.35}.tips{display:grid;gap:8px;width:100%;padding-top:10px;border-top:3px dashed var(--paper-sh)}.tip{margin:0;font-size:16px;line-height:1.35;text-align:left}.btn{min-height:52px;padding:0 22px;border:3px solid var(--ink);border-radius:14px;background:var(--paper);color:var(--ink);font-size:18px;font-weight:700;letter-spacing:.02em;box-shadow:0 5px 0 var(--ink);transition:transform calc(var(--motion) * 80ms),box-shadow calc(var(--motion) * 80ms);position:relative;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 0 var(--ink)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px 0 var(--ink)}.btn:disabled{cursor:not-allowed;background:var(--paper-sh);color:#8d8372;box-shadow:0 5px #8d8372;border-color:#8d8372}.btn-primary{background:var(--mint);color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;font-size:20px}.btn-primary:disabled{-webkit-text-stroke:0}.btn-danger{background:var(--bad);color:#fff;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}.btn-paper{background:var(--paper)}.btn-ghost{background:transparent;border-color:transparent;box-shadow:none;text-decoration:underline;text-underline-offset:4px}.btn-ghost:hover:not(:disabled),.btn-ghost:active:not(:disabled){transform:none;box-shadow:none}.btn-small{min-height:44px;padding:0 14px;font-size:16px;border-radius:12px;box-shadow:0 4px 0 var(--ink)}.btn-tall{min-height:56px}.btn-wide{min-width:240px}.icon-btn{display:inline-grid;place-items:center;padding:0;border:3px solid var(--ink);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 4px 0 var(--ink);flex:none;transition:transform calc(var(--motion) * 80ms)}.icon-btn-48{width:48px;height:48px;border-width:4px;box-shadow:0 5px 0 var(--ink)}.icon-btn-44{width:44px;height:44px}.icon-btn.hud-card{width:48px;padding:0;border-radius:50%;justify-content:center}.icon-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.icon-btn[aria-pressed=true]{background:var(--paper-sh)}.icon{display:block}.button-row,.button-col{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center}.button-row.stretch>.btn{flex:1 1 150px}.button-col{flex-direction:column;align-items:stretch}.button-col>.btn,.button-col .stack-tight>.btn{width:100%}.stack-tight{display:flex;flex-direction:column;gap:6px;align-items:center}.row-between{display:flex;gap:12px;align-items:center;justify-content:space-between}.row-between>.btn{flex:1}.ball-dot,.ball{display:inline-block;width:18px;height:18px;border:3px solid var(--ink);border-radius:50%;vertical-align:-3px;flex:none}.ball-p1{background:var(--p1)}.ball-p2{background:var(--p2)}.chip-static,.lobby-chip,.you-chip{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:3px solid var(--ink);border-radius:999px;background:#fff;font-size:16px;font-weight:700}.sticker{display:inline-block;padding:4px 14px;border:3px solid var(--ink);border-radius:10px;background:var(--sun);font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 3px 0 var(--ink);transform:rotate(-3deg)}.sticker-perfect{background:var(--mint);color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;justify-self:center}.medal{position:relative;display:inline-grid;place-items:center;border:4px solid var(--ink);border-radius:50%;color:var(--ink);flex:none;background:var(--m);box-shadow:inset 0 calc(var(--msh-h) * -1) 0 var(--msh)}.medal:before{content:"";position:absolute;left:18%;top:-40%;width:44%;height:40%;border:3px solid var(--ink);border-radius:4px 4px 0 0;background:linear-gradient(90deg,var(--p1) 0 50%,var(--p2) 50% 100%);z-index:-1}.medal-20{width:20px;height:20px;border-width:2.5px;--msh-h: 4px}.medal-28{width:28px;height:28px;border-width:3px;--msh-h: 6px}.medal-42{width:42px;height:42px;--msh-h: 9px}.medal-96{width:96px;height:96px;--msh-h: 20px}.medal-gold{--m: var(--gold);--msh: var(--gold-sh)}.medal-silver{--m: var(--silver);--msh: var(--silver-sh)}.medal-bronze{--m: var(--bronze);--msh: var(--bronze-sh);color:#fff}.medal-none{background:transparent;border-style:dashed;border-color:#241b3373;box-shadow:none;color:#241b3373}.medal-none:before{display:none}.medal-q{font-weight:700;font-size:.5em}.medal-pop{animation:medal-pop calc(var(--motion) * .32s) cubic-bezier(.2,1.4,.4,1) both}@keyframes medal-pop{0%{transform:scale(1.6);opacity:0}60%{transform:scale(.92,1.08);opacity:1}to{transform:scale(1)}}.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:12px;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow:auto;background:linear-gradient(var(--sky1),var(--sky2) 70%,var(--grass) 70.5%);text-align:center}.screen.rejoin{background:linear-gradient(var(--sky1),var(--sky2))}.screen.title{justify-content:flex-start;padding:0;gap:0;background:var(--sky2)}.title-backdrop{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.title-backdrop .clouds{animation:clouds-drift calc(var(--motion) * 60s) linear infinite}@keyframes clouds-drift{0%{transform:translate(0)}to{transform:translate(360px)}}.title-backdrop .wave-arm{transform-origin:12px -52px;animation:wave calc(var(--motion) * 1.6s) ease-in-out infinite}@keyframes wave{0%,to{transform:rotate(0)}50%{transform:rotate(-14deg)}}.title-ui{position:relative;width:100%;max-width:1000px;min-height:100%;margin:0 auto;padding:14px 16px 12px;display:flex;flex-direction:column;align-items:center;gap:10px}.logo{margin:0;transform:rotate(-3deg);text-align:center;line-height:.86;font-weight:700;letter-spacing:.01em}.logo .line{display:block;font-size:clamp(64px,11vw,118px);color:#fff;-webkit-text-stroke:9px var(--ink);paint-order:stroke fill;text-shadow:0 9px 0 var(--ink)}.logo .line.flash{color:var(--sun);font-size:clamp(50px,8.6vw,92px)}.logo .o{display:inline-block;width:.78em;height:.78em;margin:0 .02em;border:8px solid var(--ink);border-radius:50%;vertical-align:-.05em;background:linear-gradient(90deg,var(--p1) 0 50%,var(--p2) 50% 100%);box-shadow:0 9px 0 var(--ink);position:relative}.logo .o:after{content:"";position:absolute;left:15%;top:13%;width:22%;height:13%;border-radius:50%;background:#ffffffd9;transform:rotate(-25deg)}.tag-sticker{margin:4px 0 0;padding:4px 14px;border:4px solid var(--ink);border-radius:12px;background:var(--paper);font-size:17px;font-weight:700;letter-spacing:.08em;box-shadow:0 4px 0 var(--ink);transform:rotate(2deg);white-space:nowrap}.shared-card{display:flex;align-items:center;gap:14px;width:min(100%,640px);min-height:96px;padding:12px 16px;border:4px solid var(--ink);border-radius:16px;background:var(--paper);box-shadow:0 5px 0 var(--ink);text-align:left}.shared-text{flex:1;font-size:17px;font-weight:700}.menu{display:flex;flex-direction:column;gap:12px;margin-top:4px}.mode-btn{width:min(400px,calc(100vw - 32px));height:56px;display:flex;align-items:center;gap:12px;padding:0 18px;border:4px solid var(--ink);border-radius:18px;font-size:26px;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--bg);box-shadow:0 7px 0 var(--ink),inset 0 -7px 0 var(--sh);white-space:nowrap;transition:transform calc(var(--motion) * 80ms),box-shadow calc(var(--motion) * 80ms)}.mode-btn.solo{--bg: var(--mint);--sh: var(--mint-sh)}.mode-btn.local{--bg: var(--sun);--sh: var(--sun-sh)}.mode-btn.online{--bg: var(--p2);--sh: var(--p2-sh);color:#fff}.mode-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 9px 0 var(--ink),inset 0 -7px 0 var(--sh)}.mode-btn:active:not(:disabled){transform:translateY(5px);box-shadow:0 2px 0 var(--ink),inset 0 -7px 0 var(--sh)}.mode-btn:disabled{--bg: var(--paper-sh);--sh: #cbbf9f;color:#8d8372;cursor:not-allowed}.mode-btn .ico{width:40px;height:40px;display:flex;align-items:center;justify-content:center;flex:none}.mode-btn.local .ico .ball:first-child{margin-right:-6px}.mode-btn .sub{margin-left:auto;align-self:flex-end;padding-bottom:11px;font-size:12px;font-weight:600;letter-spacing:.06em;opacity:.85}.mode-btn:disabled .sub{white-space:normal;text-align:right;line-height:1.1;max-width:55%}.tray{width:min(100%,980px);margin-top:6px;padding:12px 16px 14px;border:4px solid var(--ink);border-radius:22px;background:#fff8e7f0;box-shadow:0 7px 0 var(--ink)}.tray .head{display:flex;align-items:center;gap:10px;margin-bottom:14px;font-size:15px;font-weight:700;letter-spacing:.08em;flex-wrap:wrap}.badge,.num-badge{display:inline-grid;place-items:center;padding:3px 9px;border-radius:9px;background:var(--ink);color:#fff;font-size:14px;line-height:1}.tray .legend{margin-left:auto;font-size:13px;font-weight:600;opacity:.7;letter-spacing:.04em}.levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.tile{position:relative;display:flex;flex-direction:column;min-height:118px;padding:10px 12px;border:4px solid var(--ink);border-radius:16px;background:#fff;box-shadow:0 5px 0 var(--ink);text-align:left;cursor:pointer}.tile.cur{outline:4px solid var(--p2);outline-offset:3px}.tile:focus-visible{outline-color:var(--sun)}.tile .num{position:absolute;left:-10px;top:-14px;width:36px;height:36px;display:grid;place-items:center;border:4px solid var(--ink);border-radius:50%;background:var(--sun);font-size:18px;font-weight:700}.tile .ribbon{position:absolute;right:-8px;top:-14px;padding:3px 9px;border:3px solid var(--ink);border-radius:8px;background:var(--p2);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;transform:rotate(3deg);-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}.tile .name{margin-left:16px;font-size:17px;font-weight:700;line-height:1.05;text-transform:uppercase}.tile .par{margin-left:16px;font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--p2-sh)}.tile .row{margin-top:auto;padding-top:10px;display:flex;align-items:center;gap:10px}.tile .best{font-size:14px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.tile .best small{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;opacity:.65}.tile .teach{position:absolute;right:-6px;bottom:-10px;max-width:calc(100% - 8px);padding:3px 8px;border:3px solid var(--ink);border-radius:7px;background:var(--paper-sh);font-size:10px;font-weight:700;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:rotate(2deg)}.server-pill,.version-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border:4px solid var(--ink);border-radius:12px;background:var(--paper);font-size:14px;font-weight:700;box-shadow:0 4px 0 var(--ink)}.server-pill{position:absolute;right:16px;top:14px}.server-pill i{width:10px;height:10px;border:2px solid var(--ink);border-radius:50%;background:var(--mint)}.server-waking i{background:var(--plate);animation:pulse calc(var(--motion) * 1.2s) ease-in-out infinite}.server-offline i{background:var(--bump)}@keyframes pulse{50%{opacity:.35}}.title-corners{width:100%;margin-top:auto;padding-top:4px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.corner-left{display:flex}.version-pill{font-size:13px;font-weight:600;border-width:0;box-shadow:none;background:#fff8e7d9;border-radius:9px}.corner-right{display:flex;gap:10px}@media(max-width:760px){.levels{grid-template-columns:repeat(2,minmax(0,1fr))}.tray .legend{display:none}.mode-btn{font-size:22px}.mode-btn .sub{display:none}}.title-ui.with-shared{gap:6px}.title-ui.with-shared .logo .line{font-size:clamp(52px,8vw,84px);-webkit-text-stroke:7px var(--ink);text-shadow:0 7px 0 var(--ink)}.title-ui.with-shared .logo .line.flash{font-size:clamp(40px,6.4vw,64px)}.title-ui.with-shared .tag-sticker{margin-top:0}.title-ui.with-shared .shared-card{min-height:0;padding:8px 14px}.title-ui.with-shared .mode-btn{height:48px}.title-ui.with-shared .menu{gap:8px}.title-ui.with-shared .tray{margin-top:2px}.title-ui.with-shared .tile{min-height:96px}@media(max-height:480px){.title-ui{padding-top:6px;gap:6px}.logo .line{font-size:46px;-webkit-text-stroke:6px var(--ink);text-shadow:0 6px 0 var(--ink)}.logo .line.flash{font-size:32px}.logo .o{border-width:5px;box-shadow:0 6px 0 var(--ink)}.tag-sticker{margin-top:0;padding:2px 10px;font-size:13px}.shared-card{min-height:0;padding:6px 12px}.menu{flex-direction:row;gap:8px;margin-top:0}.mode-btn{width:min(256px,calc((100vw - 48px) / 3));height:44px;padding:0 12px;border-radius:14px;font-size:20px;box-shadow:0 5px 0 var(--ink),inset 0 -5px 0 var(--sh)}.mode-btn .ico{width:30px;height:30px}.mode-btn .sub{display:none}.tray{margin-top:2px;padding:8px 12px 10px}.tray .head{margin-bottom:8px;font-size:13px}.tray .legend{display:none}.levels{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tile{min-height:64px;padding:6px 10px}.tile .name{font-size:15px}.tile .row{padding-top:4px}.tile .teach,.corner-left{display:none}.title-corners{justify-content:flex-end;padding-top:0}.overlay{padding:12px}.card{gap:6px;max-height:calc(100vh - 24px);padding:8px 14px}.card:has(.card-actions){padding-bottom:0}.card .card-title{font-size:24px}.card .display-l{font-size:26px}.card .eyebrow{font-size:12px}.card .body,.card .hint-text,.card .first-line{font-size:15px}.card .sun-pill{padding:2px 10px;font-size:15px}.card .teach-blurb,.card .coach-card,.card .tips,.campaign-card>.caption{display:none}.intro-card>.eyebrow,.intro-card>.card-title,.intro-card>.sun-pill{order:-2}.intro-card>.first-line{order:-1}.intro-card .card-actions .caption{display:none}.results-card{grid-template-columns:auto auto;column-gap:16px}.results-card>.eyebrow,.results-card>.results-main,.results-card>.card-actions{grid-column:1 / -1}.results-card>.player-row{justify-self:end}.results-card>.best-line{justify-self:start}.card .flavour{display:none}.card .btn{min-height:44px;font-size:16px}.card .btn-primary{font-size:17px}.card .button-col{gap:8px}.card .card-actions{position:sticky;bottom:0;z-index:1;width:100%;margin-top:2px;padding:6px 0 8px;background:var(--paper);border-top:3px dashed var(--paper-sh)}.card[data-scroll=more] .card-actions:before{content:"";position:absolute;left:50%;top:-9px;width:14px;height:14px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--paper);transform:translate(-50%) rotate(45deg);animation:scroll-cue calc(var(--motion) * .7s + 1ms) ease-in-out infinite alternate}.results-medal{width:72px;height:72px}.results-team-label,.verdict{font-size:22px}.results-team-number{font-size:40px}.results-par{font-size:18px}.card .campaign-medal{display:none}.scorecard{border-spacing:0 2px;font-size:14px}.scorecard th,.scorecard td{padding:2px 8px}.scorecard .strong{font-size:16px}.player-row .chip-static{height:34px;font-size:15px}}.lobby-top{width:100%;max-width:640px;display:flex;justify-content:space-between;align-items:center}.back-btn{display:inline-flex;align-items:center;gap:6px}.you-chip{height:36px;font-size:15px;background:var(--paper)}.lobby-card{width:100%;max-width:640px;display:flex;flex-direction:column;gap:14px;padding:20px 24px;border:4px solid var(--ink);border-radius:18px;background:var(--paper);box-shadow:0 6px 0 var(--ink);text-align:left}.lobby-card.centered{align-items:center;text-align:center}.lobby-card .btn{width:100%}.lobby-card .button-row.stretch .btn,.lobby-card .start-row .btn{width:auto}.divider{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;opacity:.75}.divider:before,.divider:after{content:"";flex:1;border-top:3px dashed var(--paper-sh)}.code-form{display:flex;gap:10px}.code-form .btn{width:120px;flex:none}.code-input{flex:1;min-width:0;height:56px;padding:0 12px;border:4px solid var(--ink);border-radius:14px;background:#fff;font-size:32px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;text-align:center}.code-input::placeholder{font-size:16px;letter-spacing:.12em;opacity:.5}.code-tile{padding:12px 0;border:4px solid var(--ink);border-radius:14px;background:#fff;font-size:56px;font-weight:700;letter-spacing:.22em;line-height:1;text-align:center;user-select:all;-webkit-user-select:all}.fallback-copy{display:grid;gap:6px}.fallback-copy input{width:100%;min-height:44px;padding:0 10px;border:3px solid var(--ink);border-radius:10px;font-size:16px}.status{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:600}.status i{width:12px;height:12px;border-radius:50%;background:var(--plate);box-shadow:0 0 0 4px #8d93a84d;animation:pulse calc(var(--motion) * 1.4s) ease-in-out infinite;flex:none}.status.good i{background:var(--mint);box-shadow:0 0 0 4px #44d67a4d;animation:none}.chips{display:flex;gap:10px;flex-wrap:wrap}.holes{display:flex;gap:8px;flex-wrap:wrap}.hole{flex:1 1 110px;height:44px;border:3px solid var(--ink);border-radius:12px;background:#fff;font-size:16px;font-weight:700}.hole.on{background:var(--sun);box-shadow:inset 0 -5px 0 var(--sun-sh)}.start-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.start-row .stack-tight{align-items:flex-start}.start-btn.bounce{animation:bounce calc(var(--motion) * .5s) ease-out 3}@keyframes bounce{30%{transform:translateY(-8px)}60%{transform:translateY(0)}}.foot{margin:0;font-size:15px;opacity:.75}.spinner{width:36px;height:36px;border:5px solid var(--paper-sh);border-top-color:var(--ink);border-radius:50%;animation:spin calc(var(--motion) * .9s + (1 - var(--motion)) * 2.5s) linear infinite;flex:none}.spinner.small{width:22px;height:22px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.overlay{position:fixed;inset:0;display:flex;align-items:safe center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow:auto;z-index:20}.overlay-light{background:var(--scrim-light)}.overlay-dark{background:var(--scrim)}.overlay-none{background:transparent}.card{display:grid;gap:14px;width:min(92vw,640px);max-height:92vh;overflow:auto;padding:24px 28px;border:4px solid var(--ink);border-radius:18px;background:var(--paper);box-shadow:0 6px 0 var(--ink);text-align:center;justify-items:center;animation:card-in calc(var(--motion) * .22s) cubic-bezier(.2,1.2,.4,1) both}@keyframes card-in{0%{transform:translateY(calc(var(--motion) * 24px));opacity:0}}.card:focus{outline:none}.card-narrow{width:min(92vw,520px)}.card-wide{width:min(92vw,720px)}.card-xwide{width:min(92vw,820px)}.card .button-row,.card .button-col,.card .rows{width:100%}.sun-pill{display:inline-block;padding:4px 14px;border:3px solid var(--ink);border-radius:999px;background:var(--sun);font-size:20px;font-weight:700;letter-spacing:.06em}.teach-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.teach-tag{padding:4px 10px;border-radius:8px;background:var(--paper-sh);font-size:14px;font-weight:700;letter-spacing:.06em}.teach-blurb{font-size:16px}.first-line{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:700}.results-main{display:flex;align-items:center;gap:24px;width:100%;justify-content:center;text-align:left}.results-medal{width:110px;height:110px;display:grid;place-items:center;flex:none}.results-headline{margin:0;display:flex;align-items:baseline;gap:12px;line-height:1}.results-team-label{font-size:28px;font-weight:700;letter-spacing:.06em}.results-team-number{font-size:56px;font-weight:700}.results-par{font-size:24px;font-weight:600;opacity:.75}.verdict{margin:4px 0 0;font-size:28px;font-weight:700;letter-spacing:.04em}.verdict-good{color:var(--mint-sh)}.verdict-even{color:#6a6478}.verdict-over{color:var(--bump-sh)}.flavour{margin:0;font-size:16px}.medal-word{margin:4px 0 0;font-size:18px;font-weight:700;letter-spacing:.08em}.player-row{display:flex;gap:12px;justify-content:center;margin:0;padding:0;list-style:none;flex-wrap:wrap}.best-line{margin:0;font-size:16px;font-weight:600}.campaign-head{display:flex;align-items:center;justify-content:center;gap:32px}.campaign-headline{display:grid;gap:6px;justify-items:center}.campaign-medal{display:grid;place-items:center;padding-top:36px}.scorecard{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:17px}.scorecard th,.scorecard td{padding:6px 10px;text-align:center}.scorecard thead th{font-size:13px;letter-spacing:.12em;text-transform:uppercase;opacity:.7}.scorecard tbody th{text-align:left;font-weight:700;display:flex;align-items:center;gap:8px}.scorecard tbody tr{background:#fff}.scorecard tbody tr>:first-child{border-radius:10px 0 0 10px}.scorecard tbody tr>:last-child{border-radius:0 10px 10px 0}.scorecard .total-row{background:var(--paper-sh);font-weight:700}.scorecard .strong{font-weight:700;font-size:20px}.delta-good{color:var(--mint-sh)}.delta-even{color:#6a6478}.delta-over{color:var(--bump-sh)}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:21;opacity:var(--motion)}.confetti i{position:absolute;top:-20px;width:12px;height:12px;border:2px solid var(--ink);animation:confetti-fall calc(var(--motion) * 2s) ease-in both}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(540deg)}}.rows{display:grid;gap:8px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:0 14px;border:3px solid var(--paper-sh);border-radius:12px;background:#fff;text-align:left}.row-label{font-size:18px;font-weight:700}.toggle-row,.danger-row{width:100%;font:inherit}.danger-row .row-label{color:var(--bad)}.switch{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700}.switch .knob{position:relative;width:48px;height:28px;border:3px solid var(--ink);border-radius:999px;background:var(--paper-sh);transition:background calc(var(--motion) * .12s)}.switch .knob:after{content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;border:3px solid var(--ink);border-radius:50%;background:#fff;transition:transform calc(var(--motion) * .12s)}.switch.on .knob{background:var(--mint)}.switch.on .knob:after{transform:translate(20px)}.segmented{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.seg{min-height:36px;padding:0 12px;border:3px solid var(--ink);border-radius:10px;background:var(--paper);font-size:15px;font-weight:700}.seg.on{background:var(--sun);box-shadow:inset 0 -4px 0 var(--sun-sh)}.slider-row input[type=range]{flex:1;max-width:220px;accent-color:var(--mint-sh)}.game{position:fixed;inset:0;background:var(--letterbox);box-shadow:inset 0 0 0 1px var(--letterbox-line)}.stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.stage-canvas{display:block;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline:none}.stage-layer{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform:translate(-50%,-50%) scale(var(--stage-scale));transform-origin:center;pointer-events:none;overflow:hidden;z-index:10;--power: 0;--aim-ready: 0;--dragging: 0;--ball-x: 640;--ball-y: 360}.hud{position:absolute;inset:0;pointer-events:none}.cl{position:absolute;display:flex;align-items:center;gap:8px;pointer-events:none}.cl>*{pointer-events:auto}.hud-top{position:absolute;top:12px;left:16px;width:calc((100% - 32px) / var(--hud-scale));display:flex;align-items:flex-start;justify-content:space-between;gap:12px;transform:scale(var(--hud-scale));transform-origin:top left;pointer-events:none}.hud-top .cl{position:static;flex:none}.hud-top .tr{flex:0 1 auto;min-width:0;justify-content:flex-end}.bl{left:16px;bottom:12px;gap:12px;transform:scale(var(--hud-scale));transform-origin:bottom left}.br{right:16px;bottom:12px;transform:scale(var(--hud-scale));transform-origin:bottom right}.hud-card{display:flex;align-items:center;gap:8px;height:48px;padding:0 12px;border:4px solid var(--ink);border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 5px 0 var(--ink);white-space:nowrap;font-weight:700}.level-chip{font:inherit;cursor:pointer}.lvl{font-size:20px;text-transform:uppercase}.par-pill{padding:2px 10px;border-radius:999px;background:var(--p2-sh);color:#fff;font-size:15px}.team{justify-content:center;gap:10px;min-width:280px}.team .lab{font-size:15px;font-weight:600;letter-spacing:.08em;opacity:1}.team .big{font-size:28px}.team .par{font-size:16px;font-weight:600}.delta{padding:2px 10px;border-radius:999px;font-size:14px;letter-spacing:.04em;animation:delta-pulse calc(var(--motion) * .3s) ease-out}.delta-good{background:var(--mint);color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}.delta.delta-even{background:var(--paper);color:var(--ink);border:2px solid var(--paper-sh)}.delta.delta-over{background:var(--bump);color:#fff;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}@keyframes delta-pulse{40%{transform:scale(1.15)}}.chip{min-width:160px;justify-content:flex-start;opacity:.72;transition:transform calc(var(--motion) * .2s),opacity calc(var(--motion) * .2s),box-shadow calc(var(--motion) * .2s)}.chip .caret{width:0;overflow:hidden;font-size:14px;color:#fff;transition:width calc(var(--motion) * .2s);display:inline-flex;align-items:center}.chip.active{opacity:1;color:#fff;transform:translateY(-2px) scale(1.06);box-shadow:0 7px 0 var(--ink)}.chip.active .caret{width:14px}.chip.red.active{background:var(--p1)}.chip.blue.active{background:var(--p2)}.chip.wobble{animation:chip-wobble calc(var(--motion) * .22s) ease-in-out}@keyframes chip-wobble{0%,to{transform:translateY(-2px) scale(1.06) rotate(0)}25%{transform:translateY(-2px) scale(1.06) rotate(-3deg)}75%{transform:translateY(-2px) scale(1.06) rotate(3deg)}}.chip .dot{width:18px;height:18px;border:3px solid var(--ink);border-radius:50%;flex:none}.chip.red .dot{background:var(--p1)}.chip.blue .dot{background:var(--p2)}.chip .col{display:grid;grid-template-columns:auto auto;align-items:baseline;column-gap:6px;line-height:1.05;min-width:0}.chip .name{font-size:18px}.chip .sub-tag{font-size:13px;letter-spacing:.06em;opacity:.85}.chip .status{grid-column:1 / -1;display:block;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;letter-spacing:.06em;opacity:.9;margin:0}.chip .cnt{margin-left:auto;padding:0 8px;border-radius:999px;background:var(--ink);color:#fff;font-size:16px;line-height:24px}.chip.active .cnt{background:#fff;color:var(--ink)}.meter{width:300px;gap:8px;transition:opacity calc(var(--motion) * .15s)}.meter.frozen{opacity:.6}.meter .lab{font-size:15px;letter-spacing:.08em;opacity:1}.meter .bar{position:relative;flex:1;height:18px;border:3px solid var(--ink);border-radius:9px;background:#fff;overflow:hidden}.meter .fill{height:100%;width:calc(var(--power) * 100%);background:var(--p1);opacity:calc(.55 + var(--aim-ready) * .45);box-shadow:inset 0 -6px 0 var(--p1-sh)}.meter-p2 .fill{background:var(--p2);box-shadow:inset 0 -6px 0 var(--p2-sh)}.meter .tick{position:absolute;top:0;bottom:0;width:2px;background:#241b3359}.meter .t25{left:25%}.meter .t50{left:50%}.meter .t75{left:75%}.meter .num{min-width:36px;font-size:22px;text-align:right}.meter .deg{font-size:15px;font-weight:600;opacity:.8}.hint-pill{height:40px;max-width:560px;padding:0 16px;display:block;line-height:34px;border:3px solid var(--ink);border-radius:999px;background:#fff8e7eb;color:var(--ink);font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 0 var(--ink);pointer-events:none}.net{display:flex;align-items:center;gap:6px;height:28px;min-width:90px;padding:0 10px;border:3px solid var(--ink);border-radius:999px;background:var(--paper);font-size:15px;font-weight:700}.net i{width:10px;height:10px;border-radius:50%;background:var(--mint)}.net-ok i{background:var(--bump)}.net-bad i{background:var(--p1-sh)}.compact .lvl-name,.compact .mute,.compact .meter .deg,.compact .chip .name,.compact .chip .status{display:none}.compact .chip{min-width:64px;gap:6px;padding:0 10px}.compact .chip .col{display:flex;align-items:center;gap:6px}.compact .chip .sub-tag{font-size:15px;font-weight:700}.compact .chip.partner .sub-tag{display:none}.compact .chip .cnt{margin-left:0}.compact .team{min-width:200px;gap:6px}.compact .meter{width:220px;height:44px}.compact .hint-pill{max-width:300px}.compact.touch .meter{display:none}.float-power{position:absolute;left:calc(var(--ball-x) * 1px);top:calc(var(--ball-y) * 1px);height:44px;min-width:64px;padding:0 14px;justify-content:center;background:var(--active);color:#fff;font-size:24px;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;transform:translate(-50%,calc(-100% - 40px)) scale(var(--hud-scale));transform-origin:bottom center;opacity:var(--dragging);transition:opacity calc(var(--motion) * .12s);pointer-events:none}.banner{position:absolute;left:50%;top:calc(var(--band) + 12px);width:500px;min-height:56px;padding:4px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:4px solid var(--ink);border-radius:16px;box-shadow:0 5px 0 var(--ink);color:#fff;font-size:28px;font-weight:700;letter-spacing:.04em;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;transform:translate(-50%) scale(var(--hud-scale));transform-origin:top center;animation:banner-in calc(var(--motion) * .2s + 1ms) ease-out both;pointer-events:none}.banner small{font-size:15px;font-weight:600;letter-spacing:0;-webkit-text-stroke:0}.banner-p1{background:var(--p1)}.banner-p2{background:var(--p2)}.banner-paper{background:var(--paper);color:var(--ink);-webkit-text-stroke:0}.banner-warn{background:var(--bump)}@keyframes banner-in{0%{transform:translate(-50%) translateY(calc(var(--motion) * -44px)) scale(var(--hud-scale));opacity:0}}.toasts{position:absolute;left:50%;top:calc(var(--band) + 76px);display:flex;flex-direction:column;align-items:center;gap:6px;transform:translate(-50%) scale(var(--hud-scale));transform-origin:top center;pointer-events:none}.toast{max-width:600px;min-height:40px;padding:8px 18px;border-radius:12px;background:var(--ink);color:#fff;font-size:16px;font-weight:600;text-align:center;animation:toast-in calc(var(--motion) * .18s + 1ms) ease-out both}.toast-good{background:var(--mint-sh)}.toast-bad{background:var(--bad)}@keyframes toast-in{0%{transform:translateY(calc(var(--motion) * 12px));opacity:0}}@keyframes scroll-cue{0%{transform:translate(-50%,calc(var(--motion) * -4px)) rotate(45deg)}to{transform:translate(-50%,calc(var(--motion) * 2px)) rotate(45deg)}}.viewport-toasts .toasts{position:fixed;top:auto;bottom:24px;transform:translate(-50%);z-index:30}.coach{display:flex;align-items:center;gap:14px;padding:10px 16px;border:3px solid var(--ink);border-radius:14px;background:var(--paper);box-shadow:0 4px 0 var(--ink);font-size:16px;font-weight:600}.coach-text{margin:0}.coach-stage{--coach-w: 600px;--coach-h: 90px;--coach-gap: 150px;--coach-x: clamp(calc(var(--coach-w) / 2 * var(--hud-scale) + 8px), calc(var(--ball-x) * 1px), calc(1280px - var(--coach-w) / 2 * var(--hud-scale) - 8px));position:absolute;left:var(--coach-x);top:clamp(calc(var(--band) + 140px + (var(--coach-h) + var(--coach-gap)) * var(--hud-scale)),calc(var(--ball-y) * 1px),720px);width:var(--coach-w);transform:translate(-50%,calc(-100% - var(--coach-gap) * var(--hud-scale))) scale(var(--hud-scale));transform-origin:bottom center;pointer-events:auto;opacity:calc(1 - var(--dragging));transition:opacity calc(var(--motion) * .15s);animation:toast-in calc(var(--motion) * .2s + 1ms) ease-out both}.compact .coach-stage{--coach-w: 480px}.coach-stage:after{content:"";position:absolute;left:clamp(20px,calc(50% + (var(--ball-x) * 1px - var(--coach-x)) / var(--hud-scale)),calc(100% - 20px));bottom:-12px;width:18px;height:18px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);background:var(--paper);transform:translate(-50%) rotate(45deg)}.coach-stage.coach-faded{opacity:0;pointer-events:none}.coach-stage .coach-text{flex:1 1 auto}.coach-card{justify-content:center;background:#fff}.coach-hand .coach-finger{animation:coach-pull calc(var(--motion) * 1.8s) ease-in-out infinite}.coach-hand .coach-band{animation:coach-band calc(var(--motion) * 1.8s) ease-in-out infinite}@keyframes coach-pull{0%{transform:translate(0)}8%,28%{transform:translate(var(--coach-dx),var(--coach-dy))}70%,to{transform:translate(0)}}@keyframes coach-band{0%{transform:scale(1)}8%,28%{transform:scale(.02)}70%,to{transform:scale(1)}}.keycaps{display:inline-flex;gap:4px}kbd{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border:3px solid var(--ink);border-radius:7px;background:#fff;font:700 13px var(--font);box-shadow:0 2px 0 var(--ink)}.rotate-glyph{width:36px;height:64px;border:4px solid var(--ink);border-radius:8px;background:#fff;animation:rotate-phone calc(var(--motion) * 2.4s) ease-in-out infinite}@keyframes rotate-phone{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.net-band{position:absolute;left:50%;top:calc(var(--band) + 12px);display:flex;align-items:center;gap:14px;padding:8px 18px;border:4px solid var(--ink);border-radius:16px;background:var(--paper);box-shadow:0 5px 0 var(--ink);transform:translate(-50%) scale(var(--hud-scale));transform-origin:top center;pointer-events:auto;font-size:18px;font-weight:700}.net-band-text{display:flex;flex-direction:column;line-height:1.15}.net-band-text small{font-size:14px;font-weight:600;opacity:.75}.net-card{justify-items:center}
