.play-library .page-heading{align-items:center;gap:24px;margin-bottom:30px}.play-library .quick-play{border:0;padding:22px 24px;border-radius:26px;background:#edf2fb;gap:20px;margin-bottom:36px}.play-library .quick-heading{flex:.85}.play-library .quick-heading h2{font-size:23px}.play-library .quick-actions{flex:1.7}.play-library .quick-actions button{background:var(--glass);box-shadow:0 3px 12px #334c7310,inset 0 1px #fff;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-radius:20px;padding:12px}.play-library .quick-actions img{width:60px;height:60px;border-radius:15px}.play-library .quick-actions button .quick-play-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;color:var(--blue)}.play-library .quick-actions small{line-height:1.4}.catalog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px}.catalog-heading h2{font-size:24px}.catalog-heading p{font-size:14px;color:var(--muted);margin-top:5px}.play-library .pick-game{margin:0;flex-shrink:0}.game-shelf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.shelf-game{display:flex;flex-direction:column;padding:0;text-align:left;min-width:0;border-radius:24px;background:#fff;box-shadow:0 2px 5px #25345106;transition:transform .2s ease,box-shadow .2s ease}.shelf-art{position:relative;width:100%;aspect-ratio:1.8;overflow:hidden;border-radius:24px 24px 0 0;background:#e9edf3}.shelf-art img{width:100%;height:100%;object-fit:cover}.shelf-duration{position:absolute;bottom:12px;left:14px;display:flex;align-items:center;gap:6px;padding:6px 9px;border-radius:10px;background:#fffffff2;color:var(--ink);font-size:12px;font-weight:550}.shelf-copy{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;width:100%;flex:1}.shelf-copy>div{min-width:0}.shelf-copy h3{font-size:21px;letter-spacing:var(--heading-tracking)}.shelf-copy p{font-size:13px;line-height:1.45;color:var(--muted);margin-top:5px}.shelf-play{display:flex;align-items:center;gap:5px;background:#eef3fc;color:#2055b5;border-radius:24px;padding:10px 13px;font-size:13px;font-weight:650;flex:none}.session-progress{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-radius:18px;background:#edf2fb;margin:0 0 18px}.session-progress strong{font-size:14px}.session-progress span{color:var(--muted);font-size:13px}.session-dots{display:flex;gap:5px}.session-dots i{width:7px;height:7px;border-radius:50%;background:#b4c2da}.session-dots i.current{width:20px;border-radius:5px;background:var(--blue)}.session-next{padding:22px;margin:20px auto;max-width:600px;text-align:center;background:#edf2fb;border-radius:24px}.session-next h2{font-size:22px}.session-next p{margin:8px 0 16px;color:var(--muted);font-size:14px}@media(hover:hover){.shelf-game:hover{transform:scale(1.03);box-shadow:0 7px 22px #25345113}}.shelf-game:active{transform:scale(.99)}@media(max-width:1050px)and (min-width:761px){.game-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.play-library .quick-play{display:block}.play-library .quick-heading{margin-bottom:16px}}@media(max-width:760px){.play-library .page-heading{flex-direction:column;align-items:stretch;gap:20px;margin-bottom:24px}.play-library .quick-play{padding:18px;margin-bottom:28px;border-radius:24px}.play-library .quick-heading{margin-bottom:14px}.play-library .quick-heading h2{font-size:21px}.play-library .quick-actions{display:grid;grid-template-columns:1fr;gap:8px}.play-library .quick-actions button{flex-wrap:nowrap;gap:12px;padding:10px;border-radius:17px}.play-library .quick-actions img{width:48px;height:48px;border-radius:12px}.play-library .quick-actions strong{font-size:15px}.play-library .quick-actions small{font-size:12px}.play-library .quick-actions svg{display:block}.catalog-heading{align-items:flex-start;flex-wrap:wrap;gap:4px;margin-bottom:14px}.catalog-heading h2{font-size:22px}.catalog-heading p{font-size:13px}.play-library .pick-game{font-size:13px;padding-left:0}.game-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.shelf-game{border-radius:20px}.shelf-art{aspect-ratio:1.2;border-radius:20px 20px 0 0}.shelf-duration{bottom:8px;left:8px;font-size:10px;padding:5px 7px;gap:4px}.shelf-duration svg{display:none}.shelf-copy{padding:13px 12px;flex-wrap:wrap;gap:12px;align-content:space-between}.shelf-copy h3{font-size:17px}.shelf-copy p{font-size:12px}.shelf-play{padding:6px 11px;font-size:12px}.session-progress{padding:12px;flex-wrap:wrap;gap:8px}.session-progress>span{width:100%;order:3}.session-next .primary-button{width:100%}}@media(max-width:350px){.shelf-copy h3{font-size:16px}.shelf-copy{padding:12px 10px}}@media(prefers-reduced-motion:reduce){.shelf-game{transition:none;transform:none!important}}[data-motion=reduce] .shelf-game{transition:none;transform:none!important}.shelf-game.coming-soon .shelf-launch{opacity:1}.shelf-game.coming-soon .shelf-art img,.shelf-game.coming-soon .shelf-copy{filter:grayscale(.6);opacity:.65}.shelf-soon{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.shelf-soon span{padding:14px 26px;border-radius:50px;background:#fffffff2;box-shadow:0 4px 14px #2534511a;color:var(--ink);font-size:20px;font-weight:650}@media(hover:hover){.shelf-game.coming-soon:hover{transform:none;box-shadow:0 4px 18px #27345409}}.shelf-game.coming-soon:active{transform:none}@media(max-width:760px){.shelf-soon span{padding:10px 18px;font-size:15px}}:root{--font-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", "Segoe UI", sans-serif;--heading-tracking: calc(-.025em + 1px) ;font-family:var(--font-body);line-height:1.5;color:#1d1d1f;background:#f5f5f7;font-synthesis:none;-webkit-font-smoothing:antialiased;font-weight:400;--blue: #2463db;--ink: #1d1d1f;--muted: #62656e;--surface: #fff;--line: #e8e9ed;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:default;opacity:.48}a{color:var(--blue);text-decoration:none}button{border:0;background:none}button,a{touch-action:manipulation}:focus-visible{outline:3px solid var(--blue);outline-offset:4px}button:focus-visible,[role=button]:focus-visible,[role=switch]:focus-visible,a[class*=button]:focus-visible{outline:none}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:var(--heading-tracking)}h1,h2,h3{text-wrap:balance}p{line-height:1.55}::selection{background:#2b6bf02e}input{accent-color:var(--blue);caret-color:var(--blue)}::-webkit-scrollbar{width:7px;height:5px}::-webkit-scrollbar-thumb{background:#c9ccd2;border-radius:8px}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:#fff;padding:14px;border-radius:10px}.skip-link:focus{top:10px}.topbar{height:84px;background:transparent}.topbar-inner{max-width:1280px;margin:0 auto;height:100%;padding:0 48px;display:flex;align-items:center;justify-content:space-between;position:relative}.brand{display:inline-flex;align-items:center;font-size:25px;font-weight:740;letter-spacing:-1.1px;gap:9px;padding:10px 0}.header-actions{display:flex;align-items:center;gap:21px}.connection-button{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:560;color:var(--muted)}.profile-button{min-height:44px;padding:0 16px;border-radius:24px;font-size:14px;font-weight:570;color:var(--muted)}.profile-button:hover{background:#ececf0}.library{max-width:1280px;margin:0 auto;padding:51px 48px 18px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px}.page-heading h1{font-size:45px;line-height:1.12;font-weight:550;letter-spacing:var(--heading-tracking)}.page-heading p{margin-top:10px;font-size:17px;color:var(--muted);letter-spacing:-.25px}.primary-button,.secondary-button{min-height:46px;padding:12px 23px;border-radius:24px;font-size:14px;line-height:1.4;font-weight:590;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .2s,transform .2s,box-shadow .2s}.primary-button{background:var(--blue);color:#fff;box-shadow:0 3px 7px #255cce12}.primary-button:hover:not(:disabled){background:#1958cf;box-shadow:0 5px 12px #255cce20}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled){transform:scale(.97)}.secondary-button{background:#f0f2f6;color:var(--ink)}.secondary-button:hover:not(:disabled){background:#e7ebf2}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--blue);font-weight:500;min-height:44px;padding:8px 5px}.text-button:hover{color:#174bad}.sheet{border:0;padding:0;border-radius:27px;background:#fff;color:var(--ink);width:min(470px,calc(100% - 32px));max-height:calc(100dvh - 64px);box-shadow:0 24px 100px #1a234f26;overflow:auto}.sheet::backdrop{background:#111b3648;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.sheet[open]{animation:sheet-enter .28s var(--ease)}.sheet-content{padding:28px 30px 30px}.sheet-handle{display:none}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.sheet-header h2{font-size:24px;line-height:1.25;letter-spacing:var(--heading-tracking);font-weight:550}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border-radius:50%;color:var(--muted)}.icon-button:hover{background:#eef0f5}.close-button{background:#f3f4f6;width:36px;height:36px;min-width:44px;min-height:44px}.sheet-intro{color:var(--muted);font-size:14px;line-height:1.65;margin-bottom:24px}.full-width{width:100%}.full-width+.full-width{margin-top:10px}.settings-group{background:#f6f7f9;border-radius:17px;margin:20px 0}.setting-row{display:flex;align-items:center;padding:18px 15px;gap:12px}.setting-row+.setting-row{border-top:1px solid #e6e8ee}.setting-row>div{flex:1}.setting-row strong,.name-setting strong{font-size:14px;font-weight:600}.setting-row p{font-size:11px;color:var(--muted);line-height:1.45;margin-top:4px}.switch{background:#dfe2e8;width:49px;height:30px;position:relative;border-radius:20px;flex:none;box-shadow:0 0 0 7px transparent;margin:7px 0}.switch:before{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px}.switch>span{position:absolute;left:3px;top:3px;height:24px;width:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #0002;display:grid;place-items:center;color:#21823d;transition:transform .2s}.switch.on{background:#36a765}.switch.on>span{transform:translate(19px)}.name-setting{display:flex;gap:13px;align-items:center;padding:12px 0}.name-setting>span:last-child{flex:1}.name-setting input{display:block;margin-top:8px;width:100%;border:0;background:#f4f5f7;border-radius:9px;padding:12px;color:var(--ink);font-size:16px}.privacy-note{margin:25px 0}.privacy-note strong{font-size:14px;font-weight:600}.privacy-note p{color:var(--muted);font-size:12px;margin-top:8px}.pair-qr{display:grid;place-items:center;background:#fff;aspect-ratio:1;margin:0 auto;width:320px;max-width:100%;overflow:hidden;border-radius:19px;box-shadow:0 5px 28px #20375309;border:1px solid #e9edf2}.pair-qr svg{display:block;width:100%;height:auto}.code-label{text-align:center;color:var(--muted);font-size:14px;margin-top:25px}.room-code{font-size:36px;letter-spacing:6px;font-weight:720;text-align:center;margin:6px 0 20px;font-variant-numeric:tabular-nums}.join-own{display:flex;margin:12px auto 0}.error-message{font-size:13px;color:#b03838;line-height:1.5;margin:14px 0;background:#fff1ee;padding:12px;border-radius:10px}.paired-success{text-align:center;padding-top:8px}.paired-success>p{font-size:14px;color:var(--muted);margin:14px 0 25px}.paired-success>.text-button{display:flex;margin:10px auto 0}.loading-screen,.game-error{min-height:60dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:21px;color:var(--muted);text-align:center}.loading-screen p{font-size:14px}.spinner{display:inline-block;height:26px;width:26px;border-radius:50%;border:2px solid #dce4ef;border-top-color:#6b7f9f;animation:spin .75s linear infinite}.spinner.small{width:16px;height:16px;border-color:#ffffff50;border-top-color:#fff}.empty-scores{padding:85px 20px 120px;text-align:center}.empty-scores h2{font-size:29px;letter-spacing:var(--heading-tracking)}.empty-scores>p{font-size:15px;color:var(--muted);margin:14px 0 27px}.best-scores{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.best-scores>section{background:#fff;border-radius:20px;display:flex;align-items:center;gap:21px;padding:17px}.best-scores img{width:110px;height:110px;border-radius:13px;object-fit:cover}.best-scores h2{font-size:19px;letter-spacing:var(--heading-tracking)}.best-scores p{font-size:12px;color:var(--muted);margin-top:9px}.best-scores strong{font-size:27px}.best-scores strong>span{font-size:12px;font-weight:400;color:var(--muted);margin-left:4px}.recent-title{font-size:22px;margin:35px 0 19px}.results-list{border-radius:19px;background:#fff;padding:0 24px}.result-row{display:flex;align-items:center;gap:15px;padding:20px 0}.result-row+.result-row{border-top:1px solid var(--line)}.result-row>div{flex:1}.result-row>div>strong{font-size:15px;font-weight:600}.result-row p{font-size:12px;color:var(--muted);margin-top:4px}.result-score{font-size:21px}.result-score small{display:block;font-size:10px;color:var(--muted);font-weight:400;text-align:right}.game-main{max-width:1100px;padding:0 35px 32px;margin:auto}.game-topline{display:flex;justify-content:space-between;align-items:center;min-height:88px}.game-topline h1{font-size:22px;font-weight:550;letter-spacing:var(--heading-tracking)}.game-topline .icon-button{width:95px;justify-content:flex-end}.back-button{color:var(--muted);justify-content:flex-start;width:95px}.player-inputs{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:20px 0}.player-inputs>label{min-width:0}.player-inputs>label:only-child{grid-column:1/-1}.player-inputs span{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.player-inputs input{border:1px solid #e1e5eb;border-radius:10px;background:#fcfcfd;width:100%;padding:11px 12px;font-size:16px;min-height:44px}.scoreboard{background:#fff;border-radius:17px 17px 0 0;border-bottom:1px solid #e8ebee;padding:17px 24px;display:flex;align-items:center;gap:28px}.frame-strip{display:grid;grid-template-columns:repeat(10,1fr);flex:1}.frame-strip>div{display:flex;align-items:center;flex-direction:column;padding:5px 3px;border-left:1px solid #edf0f3;font-size:10px;color:var(--muted);min-width:39px}.frame-strip>div.current{background:#eef4ff;border-radius:6px;color:#3061b4}.frame-strip>div>span{margin-bottom:5px}.frame-strip>div>div{display:flex;gap:4px;min-height:15px;color:var(--muted)}.frame-strip>div>div>b{font-weight:500;font-size:10px}.frame-strip>div>strong{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.lane-wrap{position:relative;height:min(51dvh,460px);min-height:340px;border-radius:0 0 20px 20px;overflow:hidden;background:#e9eef3}.bowling-lane{width:100%;height:100%;position:relative}.bowling-lane>canvas{display:block;width:100%;height:100%}.lane-status{position:absolute;left:50%;top:20px;transform:translate(-50%);background:#ffffffdb;border-radius:25px;font-size:12px;color:var(--muted);box-shadow:0 2px 12px #223a5010;padding:10px 18px;white-space:nowrap;display:flex;align-items:center;gap:8px}.lane-status>span:empty{display:none}.lane-status>.rolling-dot{display:block!important;width:6px;height:6px;background:#7694b2;border-radius:50%;animation:pulse 1s ease-in-out infinite}.lane-counter{position:absolute;bottom:17px;right:20px;font-size:11px;color:var(--muted)}.lane-fallback{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;gap:12px;color:var(--muted);text-align:center}.lane-fallback>strong{font-size:65px;font-weight:300}.lane-fallback>small{font-size:12px;line-height:1.6}.bowling-controls{display:grid;grid-template-columns:1.25fr 1fr 200px;gap:40px;align-items:center;background:#fff;padding:23px 27px;border-radius:17px;margin-top:18px}.aim-control{min-width:0}.aim-control label,.power-control label{display:flex;justify-content:space-between;font-size:12px;font-weight:550;margin-bottom:10px;gap:10px}.aim-control label>span,.power-control label>span{color:var(--muted);font-size:11px;font-weight:400}.aim-control>div{display:flex;align-items:center;gap:12px;color:var(--muted)}input[type=range]{-moz-appearance:none;appearance:none;-webkit-appearance:none;display:block;min-width:0;width:100%;height:28px;background:transparent;margin:0;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:5px;background:#d7e2f1}input[type=range]::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid #dde3eb;box-shadow:0 2px 5px #17324b24;margin-top:-9px}input[type=range]::-moz-range-track{height:4px;border-radius:5px;background:#d7e2f1}input[type=range]::-moz-range-thumb{height:20px;width:20px;background:#fff;border-radius:50%;border:1px solid #dde3eb;box-shadow:0 2px 5px #17324b24}.roll-button{min-height:49px}.game-hint{text-align:center;font-size:11px;color:var(--muted);margin-top:18px;line-height:1.6}.round-finished{text-align:center;max-width:520px;margin:32px auto 70px;padding:35px 15px}.round-finished h2{font-size:36px;letter-spacing:var(--heading-tracking);font-weight:550}.round-finished>p{font-size:14px;color:var(--muted);margin:15px 0 28px}.finish-scores{background:#fff;border-radius:18px;padding:7px 22px;margin:28px auto}.finish-scores>div{display:flex;justify-content:space-between;align-items:center;padding:17px 0}.finish-scores>div+div{border-top:1px solid var(--line)}.finish-scores>div>span{font-size:16px;font-weight:550}.finish-scores strong{font-size:30px;font-variant-numeric:tabular-nums}.finish-scores small{display:block;font-size:10px;color:var(--muted);font-weight:400}.finish-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.round-finished>.saved-note{font-size:11px;display:flex;align-items:center;justify-content:center;gap:5px;margin-top:24px}.solo-result{display:flex;flex-direction:column;margin:28px 0 34px}.solo-result strong{font-size:76px;line-height:1.1;font-weight:550;letter-spacing:-3px;color:#365c92}.solo-result span{font-size:14px;color:var(--muted);margin-top:7px}.court-wrap{position:relative;overflow:hidden;border-radius:22px;height:min(51dvh,440px);min-height:320px;background:#e9f1ed}.court-wrap canvas,.target-wrap canvas,.fruit-arena canvas{width:100%;height:100%;display:block;touch-action:none}.court-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f4f7f4d9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);padding:24px;text-align:center}.court-overlay h2{font-size:31px;letter-spacing:var(--heading-tracking)}.court-overlay p{font-size:13px;color:var(--muted);margin:12px 0 22px}.rally-controls{display:flex;align-items:center;gap:28px;background:#fff;border-radius:16px;margin-top:18px;padding:20px 27px}.rally-controls>.aim-control{flex:1}.rally-controls>.secondary-button{min-width:110px}.game-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:20px 4px 0}.game-bottom>p{font-size:12px;color:var(--muted);text-align:right}.target-wrap{height:min(51dvh,440px);min-height:330px;border-radius:22px;overflow:hidden;background:#e8f0f6}.archery-controls{display:grid;grid-template-columns:1fr 1fr 200px;gap:28px;align-items:center;background:#fff;border-radius:16px;margin-top:18px;padding:20px 27px}.fruit-timer{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center}.fruit-timer>strong{font-size:30px;font-weight:600;line-height:1.15;color:#876d59;font-variant-numeric:tabular-nums}.fruit-hearts{display:flex;align-items:center;color:#c48570;gap:6px}.fruit-hearts>span{font-size:11px;line-height:1.4;color:#968779}.fruit-hearts>.icon-button{margin-left:12px}.fruit-arena{position:relative;height:min(56dvh,480px);min-height:350px;border-radius:24px;overflow:hidden;background:#fcf5eb}.fruit-arena .court-overlay{background:#fcf5ebd6}.fruit-arena .court-overlay>p{color:#8b7460}.fruit-tap-controls{display:flex;gap:8px;flex-wrap:wrap;min-height:58px;align-items:center;margin-top:8px}.fruit-tap-controls>button{min-width:110px}.fruit-tap-controls>button>span{height:13px;width:13px;border-radius:50%;display:block}.fruit-tap-controls>span{font-size:13px;color:#8b827b}.controller-page{max-width:470px;min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) max(25px,env(safe-area-inset-right)) max(30px,env(safe-area-inset-bottom)) max(25px,env(safe-area-inset-left))}.controller-header{display:flex;align-items:center;justify-content:space-between;height:88px}.controller-connected{display:flex;align-items:center;gap:5px;font-size:11px;color:#3d8a64}.join-room,.controller-wait{text-align:center;margin-top:65px}.join-room>h1,.controller-wait>h1{font-size:35px;letter-spacing:var(--heading-tracking)}.join-room>p,.controller-wait>p{font-size:15px;color:var(--muted);margin:17px 15px 30px}.join-room form{background:#fff;border-radius:20px;padding:24px;margin-bottom:19px}.room-code-input{display:block;width:100%;background:#f4f6f9;border:1px solid #e4e9f0;border-radius:12px;margin:13px 0 20px;padding:17px 10px;text-align:center;font-size:33px;letter-spacing:7px;font-weight:550;color:#1d1d1f;font-variant-numeric:tabular-nums}.room-code-input::placeholder{color:#9faec2}.room-pill{font-size:12px;padding:8px 16px;border-radius:20px;background:#eaf0f8;color:var(--muted)}.disconnect-button{display:flex;margin:35px auto 0;color:var(--muted)}.active-controller{text-align:center;padding-top:25px}.active-controller h1{font-size:34px;letter-spacing:var(--heading-tracking)}.controller-status{font-size:14px;color:var(--muted);margin-top:12px;min-height:24px}.game-error h2{font-size:28px;color:var(--muted)}.game-error>p{font-size:14px;max-width:350px}.game-error .primary-button{margin-top:8px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sheet-enter{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{50%{opacity:.4}}@media(min-width:1500px){.library{padding-top:65px}}@media(max-width:1050px){.topbar-inner{padding:0 30px}.library{padding:38px 30px 20px}.header-actions{gap:12px}.connection-button{font-size:12px}.scoreboard{gap:20px;padding:16px}.bowling-controls{gap:24px}}@media(max-width:760px){.topbar{height:72px}.topbar-inner{padding:0 23px}.brand{font-size:24px}.connection-button{min-width:44px;justify-content:center}.connection-button>span,.connection-button>svg:last-child:not(:first-child){display:none}.connection-button>svg{width:21px;height:21px}.header-actions{gap:7px}.app:not(.in-game) .header-actions{display:none}.library{padding:29px 22px 110px}.page-heading{margin-bottom:23px}.page-heading h1{font-size:36px}.page-heading p{font-size:14px;margin-top:8px}.mobile-tabs{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:space-around;background:#ffffffeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid #e7e9ef;padding:7px 12px max(10px,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #20395703}.mobile-tabs>button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;min-width:63px;min-height:48px;color:var(--muted)}.mobile-tabs>button.active{color:var(--blue)}.mobile-tabs>button>span{font-size:10px;font-weight:500}.sheet{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:27px 27px 0 0}.sheet-content{padding:15px 26px max(28px,env(safe-area-inset-bottom))}.sheet-handle{display:block;height:5px;width:35px;background:#d8dce2;border-radius:3px;margin:0 auto 18px}.sheet-header h2{font-size:23px}.sheet-intro{font-size:14px}.sheet::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-main{padding:0 18px 30px}.game-topline{min-height:71px}.game-topline h1{font-size:19px}.game-topline .icon-button{width:80px}.back-button{width:80px;font-size:11px;gap:3px}.back-button svg{width:15px;height:15px}.scoreboard{display:block;padding:15px 13px 10px}.frame-strip{width:100%;overflow:auto;grid-template-columns:repeat(10,minmax(28px,1fr))}.frame-strip>div{min-width:28px;padding:5px 1px}.frame-strip>div>div{gap:1px;font-size:9px}.frame-strip>div>strong{font-size:11px}.lane-wrap{min-height:310px;height:42dvh;border-radius:0 0 17px 17px}.lane-status{top:16px;font-size:10px;padding:9px 13px;max-width:92%;white-space:normal;text-align:center}.lane-counter{font-size:9px;bottom:12px;right:13px}.bowling-controls{grid-template-columns:1fr 1fr;gap:19px;padding:18px;margin-top:14px}.bowling-controls>.roll-button{grid-column:1/-1;min-height:46px}.aim-control label,.power-control label{font-size:11px;gap:5px}.aim-control label>span,.power-control label>span{font-size:10px}.aim-control>div{gap:7px}.game-hint{font-size:10px;margin:14px 10px 0}.round-finished{margin-top:12px;padding-top:25px}.round-finished h2{font-size:30px}.round-finished>p{font-size:13px}.finish-actions .primary-button,.finish-actions .secondary-button{font-size:13px;padding:12px 19px}.court-wrap{height:43dvh;min-height:300px;border-radius:18px}.court-overlay h2{font-size:28px}.court-overlay>p{font-size:12px;max-width:230px}.rally-controls{padding:18px 16px;gap:18px}.rally-controls>.secondary-button{min-width:70px;padding:11px 14px;font-size:12px}.game-bottom{gap:10px;align-items:flex-start;margin-top:13px}.game-bottom>p{font-size:11px;max-width:58%;padding-top:10px}.target-wrap{height:42dvh;min-height:310px;border-radius:18px}.archery-controls{grid-template-columns:1fr 1fr;gap:18px;padding:18px 16px;margin-top:14px}.archery-controls>.primary-button{grid-column:1/-1}.fruit-arena{height:48dvh;min-height:360px;border-radius:18px}.fruit-timer>strong{font-size:27px}.fruit-hearts{gap:3px}.fruit-hearts>svg{width:14px;height:14px}.fruit-hearts>.icon-button{margin-left:3px;width:36px;min-width:44px}.fruit-tap-controls{gap:7px}.fruit-tap-controls>button{min-width:95px;padding:10px 12px;font-size:12px}.empty-scores{padding:70px 0}.empty-scores h2{font-size:25px}.empty-scores>p{font-size:13px}.best-scores{grid-template-columns:1fr;gap:13px}.best-scores>section{gap:19px;padding:14px}.best-scores img{width:96px;height:96px}.best-scores h2{font-size:18px}.best-scores strong{font-size:25px}.recent-title{font-size:21px}.results-list{padding:0 18px}.controller-page{padding-left:23px;padding-right:23px}.join-room,.controller-wait{margin-top:48px}.active-controller{padding-top:17px}.active-controller h1{font-size:31px}}@media(max-width:370px){.library{padding-left:16px;padding-right:16px}.topbar-inner{padding:0 16px}.brand{font-size:21px;gap:7px}.game-main{padding-left:12px;padding-right:12px}.frame-strip>div{min-width:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.spinner{animation:spin 2s linear infinite!important}.sheet[open]{animation:none}}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}:root[data-motion=reduce] .spinner{animation:spin 2s linear infinite!important}:root[data-contrast=high]{--muted: #3c4655;--line: #bdc4cd;--blue: #154ab2}:root[data-contrast=high] p,:root[data-contrast=high] small,:root[data-contrast=high] .game-hint,:root[data-contrast=high] .game-bottom>p{color:var(--muted)}:root[data-contrast=high] .secondary-button{background:#e4e9ef;color:#24364e}.mobile-tabs>button{color:var(--muted)}.back-button{color:var(--muted);white-space:nowrap;flex-shrink:0}.back-button svg{flex:none}.aim-control label>span,.power-control label>span{color:var(--muted)}.game-hint,.game-bottom>p{color:var(--muted)}.frame-strip>div{color:var(--muted)}.loading-screen,.setting-row p,.privacy-note p,.player-inputs span{color:var(--muted)}.fruit-hearts>span{color:#776355}.fruit-tap-controls>span{color:#756354}.round-finished>p,.solo-result>span,.finish-scores small{color:var(--muted)}.controller-status,.disconnect-button{color:var(--muted)}input[type=range]{height:44px}.frame-strip{min-width:0}.game-topline .back-button,.game-topline .icon-button{width:95px}.room-pill{color:var(--muted)}@media(max-width:760px){.game-hint{font-size:11px}.aim-control label,.power-control label{font-size:12px}.game-bottom>p{font-size:12px}.game-topline .icon-button{width:70px}.game-topline .back-button{width:85px}}.code-label{color:var(--muted)}.motion-input{background:#fff;border-radius:17px;padding:16px 20px;margin:0 0 20px;text-align:left}.input-choice-row{display:flex;justify-content:space-between;gap:20px;align-items:center}.input-permission-note{color:var(--muted);font-size:11px;margin-top:10px}.motion-body{border-top:1px solid #e8ecf2;margin-top:15px;padding-top:17px}.motion-guidance{display:flex;gap:15px;align-items:center}.motion-guidance h2{font-size:16px;letter-spacing:var(--heading-tracking);font-weight:550}.motion-guidance p{color:var(--muted);font-size:12px;margin-top:6px;max-width:60ch}.calibration-row{display:flex;justify-content:space-between;align-items:center;margin:8px 0}.calibration-row>span{color:var(--muted);font-size:11px}.calibration-row .text-button{font-size:12px}.motion-action{min-height:49px;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:14px;gap:10px}.motion-action.holding{background:#194ca7}.motion-action>span{flex:1}.motion-error{font-size:12px;line-height:1.55;color:#9b443b;background:#fff2ef;border-radius:10px;padding:12px;margin-top:12px}.motion-pause{display:flex;margin:4px auto -4px}.remote-motion{margin-top:24px;padding:18px}.remote-motion .input-choice-row{gap:10px}.remote-motion .motion-guidance{align-items:flex-start}.remote-motion .motion-guidance h2{font-size:17px;line-height:1.2}.remote-motion .motion-guidance p{font-size:13px}.remote-motion .motion-action{min-height:68px;font-size:16px}.remote-motion .calibration-row>span{max-width:65%}@media(max-width:760px){.motion-input{padding:14px 16px;margin-bottom:16px;border-radius:15px}.input-choice-row{gap:12px}.input-permission-note{font-size:11px;line-height:1.5}.motion-guidance h2{font-size:15px}.motion-guidance p{font-size:12px}.calibration-row>span{max-width:65%;font-size:11px}.motion-action{font-size:14px;min-height:52px}.remote-motion{padding:16px}}@media(max-width:370px){.motion-input{padding-left:13px;padding-right:13px}}.controller-connected{color:#2c7551}.launch-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start;padding:20px 0 48px}.launch-art{position:sticky;top:100px;overflow:hidden;border-radius:24px;background:#fff}.launch-art>img{width:100%;aspect-ratio:1.15;object-fit:cover;display:block}.launch-art>div{display:flex;flex-wrap:wrap;gap:20px;padding:20px 24px}.launch-art span{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.875rem}.launch-form{min-width:0}.launch-form h2{font-size:2rem;letter-spacing:var(--heading-tracking);margin:0 0 12px}.launch-form>p{line-height:1.55;color:var(--muted);margin-bottom:24px;font-size:1rem}.launch-form fieldset{padding:0;border:0;margin:0 0 20px}.launch-form legend{font-weight:600;font-size:.9375rem;margin-bottom:10px}.launch-form .player-inputs{margin:18px 0}.launch-form .player-inputs label span{font-size:.875rem}.launch-form .player-inputs input{font-size:1rem;min-height:48px}.best-scores{grid-template-columns:repeat(3,minmax(0,1fr))}.sports-game{max-width:850px;margin:0 auto}.sports-arena{overflow:hidden;border-radius:24px;background:#e3eee5}.hoops-game .sports-arena{background:#f2eaf7}.sports-arena svg{display:block;width:100%;height:min(48vh,460px);min-height:270px}.sports-message{min-height:48px;padding:14px 4px 8px;font-size:1rem;font-weight:550;line-height:1.4;text-align:center}.sports-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:24px;align-items:center;padding:12px 20px;background:#fff;border-radius:16px}.sports-controls label{display:block;min-width:0}.sports-controls label>span{display:flex;justify-content:space-between;gap:8px;font-size:.875rem;font-weight:600}.sports-controls output{color:var(--muted);font-variant-numeric:tabular-nums}.sports-controls input{width:100%;height:44px;display:block;margin:0}.power-track{position:relative}.power-track i{position:absolute;top:17px;height:10px;background:#308052;border-radius:4px;pointer-events:none;z-index:1;opacity:.65}.sports-live-guide{text-align:center;font-size:.875rem;color:var(--muted);padding:0 0 14px}.game-main h1:focus,.page-heading h1:focus{outline:none}@media(max-width:760px){.launch-setup{display:block;padding-top:0}.launch-art{position:static;border-radius:20px;margin-bottom:24px}.launch-art>img{aspect-ratio:2.6;object-position:center 56%}.launch-art>div{padding:13px 18px;gap:16px}.launch-art span{font-size:.8125rem}.launch-form h2{font-size:1.75rem}.launch-form .primary-button{min-height:52px}.launch-form .player-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}.launch-form .player-inputs label:only-child{grid-column:1/-1}.sports-controls{grid-template-columns:1fr 1fr;gap:8px 22px;padding:16px}.sports-controls>button{grid-column:1/-1;width:100%}.sports-arena svg{height:340px;min-height:0}.sports-arena{border-radius:20px}.best-scores{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-contrast:more){.sports-live-guide{color:var(--ink)}}.result-row p,.result-score small{color:var(--muted)}@media(max-width:760px){.motion-input:not(.motion-enabled) .input-permission-note{display:none}.motion-input:not(.motion-enabled){padding:10px 14px;margin-bottom:10px}.sports-arena svg{height:clamp(210px,30svh,290px)}.sports-message{padding-top:10px;min-height:40px;font-size:.9375rem}.sports-live-guide{padding-bottom:8px}.sports-controls{padding:12px 16px}}:root{--glass: rgba(255, 255, 255, .82);--glass-highlight: rgba(255, 255, 255, .94);--glass-shadow: 0 8px 28px rgba(38, 54, 84, .09), inset 0 1px 0 rgba(255, 255, 255, .95);--glass-blur: blur(24px) saturate(1.65)}.mobile-tabs,.game-topline,.motion-input,.sports-controls,.bowling-controls,.archery-controls,.rally-controls{background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow)}.game-topline{border-radius:28px;padding:5px 12px;min-height:56px;margin-bottom:20px}.game-topline-spacer{width:44px}.game-menu-button{border-radius:50%;background:var(--glass-highlight)}.sheet{background:#fafbfdf0;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.primary-button,.secondary-button,.icon-button,.quick-actions button{transition:transform .18s var(--ease),background-color .18s ease}.primary-button:active,.secondary-button:active,.quick-actions button:active{transform:scale(.98)}.quick-play{display:flex;align-items:center;gap:28px;padding:22px 0 26px;border-top:1px solid #dfe4ec;margin-bottom:5px}.quick-heading{display:flex;gap:12px;align-items:center;flex:1}.quick-heading>svg{color:#2463db;flex-shrink:0}.quick-heading h2{font-size:1.25rem;margin:0}.quick-heading p{font-size:.875rem;color:var(--muted);margin-top:4px}.quick-actions{display:flex;gap:12px;flex:1.2}.quick-actions button{display:flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border-radius:18px;background:#fff;flex:1;text-align:left;min-width:0}.quick-actions img{width:54px;height:54px;border-radius:12px;object-fit:cover}.quick-actions button>span:not(.sr-only){display:flex;flex:1;flex-direction:column;gap:4px}.quick-actions strong{font-size:.9375rem}.quick-actions small{font-size:.8125rem;color:var(--muted)}.quick-actions svg{color:#2463db;flex-shrink:0}.launch-form>.primary-button{margin-top:16px}.menu-how{margin:24px 0}.menu-how h3{font-size:1rem;margin-bottom:12px}.menu-how ol{padding-left:23px}.menu-how li,.menu-how p{font-size:.9375rem;color:var(--muted);line-height:1.5;margin-bottom:10px}.menu-actions{overflow:hidden;border-radius:16px;background:#fff}.menu-actions button{width:100%;min-height:56px;padding:14px 16px;display:flex;gap:12px;align-items:center;text-align:left;font-size:.9375rem}.menu-actions button+button{border-top:1px solid #e5e8ed}.menu-actions button>:last-child{margin-left:auto}.menu-actions button span{color:#2463db}@media(max-width:760px){.mobile-tabs{left:50%;right:auto;width:calc(100% - 24px);max-width:440px;transform:translate(-50%);bottom:max(12px,env(safe-area-inset-bottom));border-radius:32px;padding:6px;border-top:0;min-height:66px}.mobile-tabs button{border-radius:26px;min-height:54px;color:var(--muted)}.mobile-tabs button.active{background:#dde9ffe0;color:#1656c8}.mobile-tabs button span{font-size:.6875rem}.quick-play{display:block;padding-top:18px;padding-bottom:18px}.quick-heading{gap:8px;margin-bottom:14px}.quick-heading h2{font-size:1.125rem}.quick-actions{gap:10px}.quick-actions button{padding:10px;gap:8px;flex-wrap:wrap}.quick-actions img{width:40px;height:40px}.quick-actions svg{display:none}.quick-actions strong{font-size:.875rem}.quick-actions small{font-size:.75rem}.game-topline{padding:4px 8px;border-radius:26px;margin-bottom:16px}.game-topline h1{font-size:1rem}.game-topline .icon-button{width:44px}.launch-art>img{aspect-ratio:3.8}.launch-form>p{font-size:.9375rem;margin-bottom:18px}.launch-form h2{font-size:1.5rem}.launch-form .player-inputs{margin:14px 0}.launch-form>.primary-button{position:relative}.sheet .player-inputs input{font-size:1rem}}:root[data-transparency=reduce],:root[data-contrast=high]{--glass: #fff;--glass-highlight: #fff;--glass-blur: none;--glass-shadow: 0 2px 6px #26365412}:root[data-transparency=reduce] .sheet,:root[data-contrast=high] .sheet{background:#f7f8fa}@media(prefers-reduced-transparency:reduce){:root{--glass: #fff;--glass-highlight: #fff;--glass-blur: none}.sheet{background:#f7f8fa}}@media(prefers-reduced-motion:reduce){.primary-button:active,.secondary-button:active,.quick-actions button:active{transform:none}}:root[data-motion=reduce] .primary-button:active,:root[data-motion=reduce] .secondary-button:active,:root[data-motion=reduce] .quick-actions button:active{transform:none}@media(prefers-contrast:more){:root{--glass: #fff;--glass-highlight: #fff;--glass-blur: none}.sheet{background:#f7f8fa}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--glass: #fff;--glass-highlight: #fff;--glass-blur: none}.sheet{background:#f7f8fa}}.next-player-note{text-align:center;color:#285497;background:#eaf1ff;padding:14px 18px;border-radius:14px;font-size:.9375rem;line-height:1.5;margin-top:16px}.game-topline .game-menu-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border-radius:24px;color:#2459ae;font-size:.8125rem;font-weight:600;flex-shrink:0}.result-next-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;margin:0 auto 32px}.result-next-actions .text-button{min-height:44px}.end-game-button{color:#b52c29}.score-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 24px}.score-filter label{font-size:.9375rem;font-weight:600}.score-filter select{font:inherit;color:var(--ink);background:var(--glass);border:1px solid #b3bbc8;border-radius:12px;min-height:44px;padding:8px 14px;max-width:100%}.score-filter p{color:var(--muted);font-size:.875rem;margin-left:auto}.best-score-detail{min-width:0;flex:1}.best-scores .best-score-detail p{overflow-wrap:anywhere}.best-score-detail .text-button{display:flex;min-height:44px;margin-top:4px}@media(max-width:760px){.game-topline{gap:6px}.game-topline h1{min-width:0}.game-topline .game-menu-button{padding:0 9px;gap:4px}.game-topline .back-button{padding-left:0;padding-right:0}.score-filter{gap:10px}.score-filter p{flex-basis:100%;margin-left:0}}.game-main:has(.result-next-actions) .round-finished{margin-bottom:0;padding-bottom:12px}@media(max-width:760px){.best-scores{grid-template-columns:minmax(0,1fr)}.best-scores img{flex:0 0 84px;width:84px;height:84px}}.turn-handoff{max-width:520px;margin:40px auto;padding:32px 24px;text-align:center;background:var(--glass);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);border-radius:28px}.turn-handoff h2{font-size:1.75rem;letter-spacing:var(--heading-tracking);overflow-wrap:anywhere}.turn-handoff p{color:var(--muted);line-height:1.6;margin:14px 0}.turn-handoff .handoff-detail{font-weight:600;color:var(--ink)}.turn-handoff .primary-button{margin:12px 0 22px;min-width:180px}.turn-handoff small{display:block;color:var(--muted);line-height:1.5;font-size:.8125rem}.pick-game{min-height:44px;margin:0 0 12px}.controller-complete{text-align:center;padding:28px 18px}.controller-complete>svg{color:#247343;margin-bottom:18px}.controller-complete p{line-height:1.6;color:var(--muted);margin-top:12px}@media(max-width:760px){.turn-handoff{margin:24px auto;padding:28px 20px}.turn-handoff h2{font-size:1.5rem}.turn-handoff .primary-button{width:100%}}:root{--blue: #0066cc;--control-radius: 999px;--page: #f5f5f7;--surface: #fff;--surface-inset: #f0f0f3;--ink: #1d1d1f;--muted: #62656e;--line: #e3e3e8;--blue-hover: #005bb5;--radius-panel: 28px;--radius-group: 20px;--radius-field: 12px;--shadow-control: 0 1px 4px #1d1d1f12}html,body{background:var(--page)}button{-webkit-user-select:none;user-select:none}button,input,select,summary{scroll-margin-block:100px}.primary-button,.secondary-button{border-radius:var(--control-radius)}.primary-button{box-shadow:none}.brand{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--ink);text-decoration:none}@media(max-width:760px){.brand{font-size:20px}}.page-heading h1,.play-library .page-heading h1{font-size:clamp(40px,4.6vw,60px);font-weight:550;letter-spacing:var(--heading-tracking)}.play-library .page-heading p{max-width:40ch}.play-library .quick-play{background:linear-gradient(110deg,#dfebfa,#eceffa 65%,#f6eaf2);border:1px solid #ffffffb3;padding:30px;border-radius:32px;box-shadow:inset 0 1px #fff}.play-library .quick-heading{align-items:flex-start;gap:12px}.play-library .quick-heading>svg{color:var(--blue);margin-top:6px}.play-library .quick-heading h2{font-size:30px;line-height:1.1;letter-spacing:var(--heading-tracking)}.play-library .quick-heading p{color:var(--muted);margin-top:9px}.play-library .quick-actions{gap:12px}.play-library .quick-actions button{border:1px solid #ffffffb3;padding:16px 12px}.play-library .quick-actions button .quick-play-icon{background:#06c;color:#fff;border-radius:50%;width:36px;height:36px}.catalog-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.library-filters{display:flex;flex-wrap:wrap;gap:6px}.library-filters button{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 16px;min-height:44px;border-radius:99px;font-size:14px;font-weight:590;color:var(--muted);background:#e8ebf0;transition:background .18s ease}.library-filters .active{color:#fff;background:#1d1d1f}.shelf-game{position:relative;border-radius:26px;box-shadow:0 4px 18px #27345409}.shelf-launch{display:flex;flex-direction:column;width:100%;height:100%;padding:0;text-align:left;border-radius:inherit}.shelf-art{border-radius:26px 26px 0 0}.shelf-copy h3{font-weight:600}.shelf-play{color:#0059b3;background:#ecf3fc}.launch-form{background:var(--surface);padding:32px;border-radius:var(--radius-panel);border:0;box-shadow:none}.launch-art{box-shadow:none;border-radius:var(--radius-panel)}.game-main:has(.session-next) .finish-actions{display:none}.session-next{border:0;background:var(--surface);box-shadow:none}.session-next .primary-button{width:100%}.session-dots i.complete{background:#248a43}.menu-actions,.settings-group{border-radius:22px;overflow:hidden}@media(hover:hover){.library-filters button:not(.active):hover{background:#dce2ec}}@media(max-width:1050px){.catalog-tools{align-items:flex-start;flex-direction:column}}@media(max-width:760px){.play-library .page-heading{margin-bottom:20px}.play-library .page-heading p{font-size:15px;margin-top:6px}.play-library .quick-play{padding:20px;border-radius:26px}.play-library .quick-heading h2{font-size:26px}.play-library .quick-heading h2 br{display:none}.play-library .quick-actions button{padding:10px}.library-filters{width:100%;gap:5px}.library-filters button{flex:1 0 auto;white-space:nowrap;padding:10px;font-size:12px;gap:5px}.catalog-tools{margin-bottom:16px;gap:10px}.shelf-art,.shelf-game{border-radius:22px}.shelf-art{border-bottom-left-radius:0;border-bottom-right-radius:0}.shelf-copy{padding:14px 12px}.shelf-copy h3{font-size:18px}.launch-setup{gap:16px;padding-top:4px}.launch-form{padding:20px 16px;border-radius:24px}.launch-form h2{font-size:27px}}@media(max-width:350px){.library-filters button{font-size:11px;padding:10px 7px}.library-filters svg{display:none}.shelf-copy h3{font-size:16px}}.play-library .quick-actions .quick-play-icon svg{color:#fff}.session-recap{margin:28px auto;max-width:800px;padding:28px;border-radius:var(--radius-panel);background:var(--surface);text-align:center;border:0}.session-recap>h2{font-size:28px}.session-recap>p{font-size:14px;color:var(--muted);margin:8px 0 20px}.recap-games{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;text-align:left}.recap-game{background:var(--page);border-radius:20px;padding:16px;min-width:0}.recap-game header{display:flex;gap:10px;align-items:center}.recap-game img{width:42px;height:42px;border-radius:12px;object-fit:cover}.recap-game h3{font-size:17px}.recap-game ol{list-style:none;padding:0;margin:12px 0 0}.recap-game li{display:flex;gap:8px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.recap-name{flex:1;overflow-wrap:anywhere;min-width:0}.recap-game strong{font-variant-numeric:tabular-nums;white-space:nowrap}.recap-game small{font-size:11px;font-weight:400;color:var(--muted)}.recap-best{display:flex;align-items:center;gap:3px;font-size:11px;color:#0055ad}@media(max-width:760px){.session-recap{padding:20px 16px}.session-recap>h2{font-size:24px}.recap-games{grid-template-columns:1fr}}.session-complete .round-finished{display:none}.session-complete .session-recap{margin-top:20px}.app[hidden]{display:none}.phone-welcome{max-width:1360px;min-height:100dvh;padding:64px 40px;margin:auto;display:grid;grid-template-columns:fit-content(700px) minmax(0,500px);justify-content:center;align-items:center;gap:56px}.welcome-topbar{position:absolute;inset:0 0 auto;z-index:1}@media(max-width:760px){.welcome-topbar{position:static}.welcome-topbar+.phone-welcome{min-height:0;padding-top:8px}}.phone-welcome h1{font-size:clamp(40px,4.6vw,64px);font-weight:550;line-height:1.04;letter-spacing:calc(var(--heading-tracking) + 1px);max-width:16ch;text-wrap:balance}.phone-welcome h1:focus{outline:none}.phone-welcome-copy>p{color:var(--muted);font-size:20px;margin-top:30px;max-width:38ch}.welcome-steps{list-style:none;padding:0;margin:40px 0;display:grid;gap:20px}.welcome-steps li{display:flex;align-items:baseline;gap:12px}.welcome-steps li>span{min-width:2ch;flex:none;font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}.welcome-steps li>div{font-size:22px}.welcome-steps p{color:var(--muted);font-size:14px;margin-top:3px}.welcome-connect{border:1px solid rgba(255,255,255,.75);background:linear-gradient(150deg,#ffffff9e,#ffffff47);backdrop-filter:blur(32px) saturate(1.8);-webkit-backdrop-filter:blur(32px) saturate(1.8);box-shadow:0 6px 20px #26365412,inset 0 1px #fffffff2,inset 0 -1px #fff6;border-radius:34px;padding:30px;min-width:0;width:100%;max-width:500px;justify-self:center}:root[data-transparency=reduce] .welcome-connect .pair-qr,:root[data-contrast=high] .welcome-connect .pair-qr{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-transparency=reduce] .welcome-connect,:root[data-contrast=high] .welcome-connect{background:var(--glass);backdrop-filter:none;-webkit-backdrop-filter:none}@media(prefers-reduced-transparency:reduce){.welcome-connect .pair-qr{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}.welcome-connect{background:var(--glass);backdrop-filter:none;-webkit-backdrop-filter:none}}.welcome-connect .sheet-intro{font-size:15px}.welcome-connect .pair-qr{margin:22px auto;background:#fff;border:1px solid #dce3ed;box-shadow:0 2px 8px #2636540d;border-radius:24px;width:520px;max-width:100%;aspect-ratio:1;min-height:0}.welcome-connect .secondary-button{background:#e5e9f0;color:var(--ink);box-shadow:inset 0 0 0 1px #1f2d460f}.welcome-connect .secondary-button:hover:not(:disabled){background:#dbe1ea}.welcome-connect .room-code{font-variant-numeric:tabular-nums}.welcome-connect .paired-success{padding:20px 0}.welcome-connect .paired-success>p{font-size:18px;margin:18px 0 34px}.connected-players{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:12px;text-align:left}.connected-players li{display:grid;grid-template-columns:auto minmax(0,1fr) auto 94px auto;align-items:center;gap:10px;font-size:16px;font-weight:400;line-height:1.5;padding:8px 12px;border:1px solid #ffffffd9;border-radius:18px;background:linear-gradient(135deg,#ffffffb8,#e7edf56b);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 4px 14px #26365408,inset 0 1px #fff,inset 0 -1px #fff6}:root[data-transparency=reduce] .connected-players li,:root[data-contrast=high] .connected-players li{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:#c3c9d1;box-shadow:none}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.connected-players li{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:#c3c9d1;box-shadow:none}}.connected-players li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--muted)}.connected-player-name{overflow-wrap:anywhere}.connected-player-divider{color:#c3c9d1}.connected-player-status{color:#38674b;font-size:14px}.pending .connected-player-status{color:var(--muted)}.remove-player{display:grid;place-items:center;width:44px;min-height:44px;color:var(--muted);border-radius:50%}.remove-player:hover{color:#b42318;background:#fff1ee}.welcome-connect .paired-success .primary-button{margin:20px auto;min-height:58px;padding:15px 32px;font-size:18px;gap:12px}.welcome-connect .paired-success .primary-button svg{width:22px;height:22px}.welcome-connect .paired-success>.text-button{font-size:17px;margin-top:16px}.controller-page>main>.motion-input{margin:20px 0}.controller-page .join-room>h1,.controller-page .controller-wait>h1,.controller-page .active-controller h1{font-size:40px}.controller-page .join-room>h1,.controller-page .controller-wait>h1,.controller-page .active-controller h1,.game-topline h1,.launch-form h2,.court-overlay h2,.round-finished h2,.turn-handoff h2,.session-recap>h2,.empty-scores h2,.game-error h2{font-weight:550;letter-spacing:var(--heading-tracking)}.controller-page .join-room>h1{margin-bottom:32px}.controller-page .join-room .room-code-input{margin-top:0}.name-input{display:block;width:100%;background:#f4f6f9;border:1px solid #e4e9f0;border-radius:12px;margin:0 0 20px;padding:17px 16px;text-align:center;font-size:24px;font-weight:550;color:#1d1d1f}.name-input::placeholder{color:#9faec2}.controller-page .controller-header{display:grid;grid-template-columns:auto 1fr auto;gap:8px}.controller-header>*{white-space:nowrap}@media(max-width:370px){.controller-header .connected-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.controller-header>.room-pill{justify-self:center;padding:0;background:none;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.controller-header>.room-pill:hover{color:#1d1d1f}.controller-page .controller-wait{margin-top:32px}.controller-page .input-choice-row{flex-wrap:wrap;gap:16px}.controller-page .input-choice-row>.primary-button{width:100%}.controller-page .motion-input{padding:30px 24px;border-radius:24px}.controller-page .input-choice-row{gap:22px}.controller-page .input-choice-row>.primary-button{min-height:60px;font-size:18px;gap:12px}.controller-page .input-choice-row>.primary-button svg{width:22px;height:22px}.controller-page .input-permission-note{font-size:15px;margin-top:16px}.controller-page .motion-error{font-size:15px;padding:16px 18px;margin-top:18px;border-radius:14px}@media(max-width:760px){.phone-welcome{padding:32px 20px;grid-template-columns:1fr;gap:28px}.phone-welcome h1{font-size:clamp(30px,9.4vw,54px)}.welcome-steps li>span,.welcome-steps li>div{font-size:18px}.phone-welcome-copy>p{font-size:20px;margin-top:22px}.welcome-steps{gap:14px;margin:30px 0}.welcome-connect{padding:22px 18px;border-radius:26px}.welcome-connect .paired-success{padding:8px 0}.connected-players li{grid-template-columns:auto minmax(0,1fr) auto 84px auto;gap:6px;padding:6px 8px;font-size:15px}.connected-player-status{font-size:13px}.welcome-connect .paired-success>p{font-size:16px}}.controller-wait>p{color:var(--muted)}.play-library .quick-play{padding:22px}.play-library .quick-heading{align-items:center;gap:8px}.play-library .quick-heading>svg{margin-top:0}.play-library .quick-heading h2{font-size:22px;letter-spacing:var(--heading-tracking)}.privacy-note{font-size:13px;color:var(--muted);text-align:center}@media(max-width:760px){.play-library .quick-play{padding:18px}.play-library .quick-heading h2{font-size:20px}}.mode-switch,.night-length{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface-inset)}.mode-switch button,.night-length button{min-height:44px;padding:0 18px;border-radius:999px;font-size:15px;font-weight:570;color:var(--muted);white-space:nowrap}.mode-switch button.selected,.night-length button.selected{background:#fff;color:#1d1d1f;box-shadow:var(--shadow-control)}.group-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:-8px 0 18px;font-size:16px;color:var(--muted)}.night-row{display:flex;align-items:center;gap:24px;padding:22px 26px;margin-bottom:28px;border-radius:24px;background:#fff}.night-row>div:first-child{flex:1;min-width:0}.night-row h2{font-size:22px;font-weight:550;letter-spacing:var(--heading-tracking)}.night-row p{margin-top:4px;font-size:15px;color:var(--muted)}.night-length button{min-height:44px;padding:0 14px;font-size:14px}@media(max-width:760px){.play-library .page-heading{flex-direction:column;align-items:flex-start;gap:16px}.mode-switch{width:100%}.mode-switch button{flex:1}.night-row{flex-wrap:wrap;padding:18px;gap:14px}.night-row>div:first-child{flex-basis:100%}.night-row .primary-button{flex:1}}.app.in-game .topbar{display:none}.game-main .game-topline{background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:0;padding:0;min-height:72px;margin:8px 0 12px}.game-main .game-topline h1{font-size:26px;font-weight:550;letter-spacing:var(--heading-tracking)}.game-main .game-topline .game-menu-button{background:none;font-size:15px}.game-main .game-topline .back-button{font-size:15px}.launch-form{display:flex;flex-direction:column;gap:24px}.launch-form .player-inputs{margin:0}.launch-form>.primary-button{margin-top:6px}.setup-howto h2{font-size:24px;font-weight:550;letter-spacing:var(--heading-tracking);margin:0 0 8px}.setup-howto p{font-size:16px;line-height:1.5;color:var(--muted)}.setup-note{font-size:16px;color:#1d1d1f}.setup-check{display:flex;align-items:center;gap:10px;font-size:16px}.setup-check input{width:20px;height:20px;accent-color:var(--blue)}.launch-form .mode-switch{align-self:flex-start}.sheet{background:var(--page);backdrop-filter:none;-webkit-backdrop-filter:none}.setting-row strong,.name-setting strong{font-size:15px}.setting-row p{font-size:13px}.settings-group,.name-setting input{background:var(--surface)}.shelf-copy h3{font-weight:600;letter-spacing:var(--heading-tracking)}.launch-form>p,.launch-form .setup-howto p{margin:0}.motion-enabled .motion-body{border-top:0;margin-top:0;padding-top:0}.controller-page .motion-guidance p{font-size:16px;line-height:1.45;color:var(--ink)}.controller-page .calibration-row{justify-content:flex-end;min-height:0}.controller-page .calibration-row>span:empty{display:none}.solo-result strong,.finish-scores strong{color:#1d1d1f}.add-phone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid #e6e8ee;text-align:center}.add-phone .pair-qr{width:400px;margin:0}.add-phone p{font-size:15px;color:var(--muted)}.add-phone strong{display:block;margin-top:2px;font-size:22px;font-weight:650;letter-spacing:3px;color:#1d1d1f;font-variant-numeric:tabular-nums}@media(min-width:761px){.phone-welcome{padding:24px 40px;grid-template-columns:fit-content(700px) min(500px,42vw);gap:clamp(56px,6vw,96px)}.phone-welcome h1{font-size:clamp(34px,min(6.1vw - 10px,11dvh),88px)}.phone-welcome-copy>p{margin-top:28px;font-size:clamp(24px,2.2vw,32px)}.welcome-connect{padding:24px}.welcome-connect .pair-qr{width:min(100%,calc(100dvh - 300px));margin:0 auto 4px}.welcome-connect .code-label{margin-top:16px}.welcome-connect .room-code{margin:4px 0 12px}.welcome-connect .paired-success{padding:0}.welcome-connect .connected-players{gap:6px;margin-bottom:12px}.welcome-connect .connected-players li{padding:2px 10px}.welcome-connect .paired-success .primary-button{min-height:48px;padding:12px 24px;margin:8px auto;font-size:16px}.welcome-connect .add-phone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:16px;margin-top:16px;padding-top:16px;text-align:left}.welcome-connect .add-phone .pair-qr{width:min(280px,calc(100dvh - 390px));margin:0;justify-self:end}.welcome-connect .add-phone strong{font-size:20px;letter-spacing:2px}}.bowl-pad{display:grid;gap:14px;margin:6px 0 16px}.bowl-pad .mode-switch{justify-self:center}.bowl-pad-row{display:flex;align-items:center;gap:12px}.bowl-nudge{flex:none;width:56px;height:56px;border-radius:50%;background:var(--surface-inset);font-size:20px;color:#1d1d1f}.bowl-nudge:active:not(:disabled){background:#dfe2e8}.bowl-nudge:disabled{opacity:.4}.bowl-tracks{flex:1;display:grid;gap:14px}.bowl-track{position:relative;height:6px;border-radius:3px;background:#e3e6ec;opacity:.45}.bowl-track.active{opacity:1}.bowl-track span{position:absolute;top:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--blue);transform:translateY(-50%);transition:left .12s ease}.motion-hint{margin-top:10px;text-align:center;font-size:15px;color:#b42318}.primary-button,.secondary-button{min-height:48px;font-size:15px;font-weight:600;padding:12px 22px}.primary-button:hover:not(:disabled){background:var(--blue-hover);box-shadow:none}.secondary-button{background:var(--surface-inset);color:var(--ink)}.secondary-button:hover:not(:disabled){background:#e5e5ea}.text-button,.mode-switch button,.night-length button,.profile-button,.menu-actions button{transition:background-color .18s ease,color .18s ease}.text-button:hover,.game-main .game-topline .game-menu-button:hover{color:var(--blue-hover)}.mode-switch,.night-length{max-width:100%;flex-wrap:wrap}.mode-switch button{min-width:0;white-space:normal;overflow-wrap:anywhere}.mode-switch button:not(.selected):hover,.night-length button:not(.selected):hover,.menu-actions button:hover{background:#e5e5ea}.mode-switch button:active,.night-length button:active,.menu-actions button:active{background:#dddde3}:where(input:not([type=checkbox]):not([type=range]),select){transition:border-color .18s ease,background-color .18s ease}.name-setting input,.player-inputs input,.name-input,.room-code-input,.score-filter select{border:1px solid var(--line);border-radius:var(--radius-field);color:var(--ink);min-height:48px}.name-setting input,.player-inputs input{background:var(--surface)}.name-input,.room-code-input{background:var(--page)}input::placeholder{color:var(--muted)}:where(input:not([type=checkbox]):not([type=range]),select):hover{border-color:#b3b3bc}:where(input,select)[aria-invalid=true]{border-color:#b42318}.player-inputs span,.code-label,.result-row p,.result-score small,.saved-note,.input-permission-note,.controller-status{color:var(--muted)}.player-inputs span,.result-row p,.result-score small,.round-finished>.saved-note{font-size:13px}.topbar-inner,.library{max-width:1200px;padding-inline:40px}.topbar-inner{gap:24px}.header-actions{gap:0}.library{padding-top:48px;padding-bottom:64px}.page-heading h1,.play-library .page-heading h1{font-size:clamp(40px,4.6vw,60px);line-height:1.08}.page-heading,.play-library .page-heading{margin-bottom:32px}.shelf-game{border-radius:var(--radius-panel);box-shadow:none}.shelf-art{border-radius:var(--radius-panel) var(--radius-panel) 0 0}.shelf-copy{padding:22px}.shelf-copy h3{font-size:22px}.shelf-copy p{font-size:14px}.shelf-play{background:var(--surface-inset);color:var(--blue);font-weight:600}.group-line>span,.night-row p{overflow-wrap:anywhere}.night-row{border-radius:var(--radius-panel)}.game-main{max-width:1120px;padding-inline:40px}.game-main .game-topline{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;margin:8px 0 24px}.game-topline h1{text-align:center}.game-topline>:last-child{justify-self:end}.game-main .game-topline .game-menu-button{color:var(--blue)}.launch-setup{gap:32px;padding-top:0}.launch-art{top:24px}.launch-art>img{aspect-ratio:1.25}.setup-howto h2,.launch-form .setup-howto h2{font-size:24px;margin-bottom:12px}.launch-form .setup-howto p+p{margin-top:12px}.setup-check{align-items:flex-start;padding:16px;background:var(--page);border-radius:var(--radius-field);line-height:1.5}.setup-check input{flex-shrink:0;margin:2px 0 0}.setup-note{overflow-wrap:anywhere}.motion-input,.turn-handoff,.sports-controls,.bowling-controls,.archery-controls,.rally-controls{background:var(--surface);border-radius:var(--radius-group);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.fruit-timer>strong{color:var(--ink)}.solo-result strong,.result-score,.best-scores strong{font-variant-numeric:tabular-nums}.round-finished h2,.turn-handoff h2,.session-recap>h2{overflow-wrap:anywhere}.session-next h2{margin-bottom:16px;font-weight:550}.finish-scores>div{gap:20px}.finish-scores>div>span{min-width:0;overflow-wrap:anywhere}.finish-scores strong{flex-shrink:0}.empty-scores{border-radius:var(--radius-panel);background:var(--surface);padding:64px 24px}.empty-state-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 24px;border-radius:var(--radius-group);background:var(--page);color:var(--muted)}.best-scores{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.best-scores>section{min-width:0;padding:24px;gap:24px;border-radius:var(--radius-panel)}.best-scores img{width:96px;height:96px;flex-shrink:0;border-radius:18px}.best-scores h2{font-size:20px;font-weight:550;letter-spacing:var(--heading-tracking)}.best-scores p{font-size:14px;margin-top:4px}.best-scores strong{display:block;font-size:32px;font-weight:600;margin-top:8px}.best-scores strong>span{font-size:13px}.recent-title{font-size:24px;font-weight:620;letter-spacing:-.01em;margin-top:40px;overflow-wrap:anywhere}.results-list{border-radius:var(--radius-group)}.result-row>div{min-width:0;overflow-wrap:anywhere}.result-score{flex-shrink:0}.score-filter select{background:var(--surface)}.sheet{border-radius:var(--radius-panel);overscroll-behavior:contain}.sheet::backdrop{background:#1d1d1f40}.sheet-content{padding:28px}.sheet-header{margin-bottom:24px}.sheet-header h2{font-weight:550;letter-spacing:var(--heading-tracking)}.menu-actions,.settings-group{border-radius:var(--radius-group)}.menu-actions button+button,.setting-row+.setting-row{border-color:var(--line)}.menu-actions button span{color:var(--blue)}.name-setting{padding:0}.setting-row{padding:18px}.close-button{background:#e8e8ed}.controller-page{padding-inline:max(20px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-right))}.controller-page .controller-header{min-height:80px;height:auto;gap:8px}.controller-header .brand{font-size:20px}.controller-header>.room-pill{min-height:44px;min-width:48px}.controller-page .join-room,.controller-page .controller-wait{margin-top:40px}.controller-page .join-room>h1,.controller-page .controller-wait>h1,.controller-page .active-controller h1{font-size:clamp(32px,8vw,40px);line-height:1.1;overflow-wrap:anywhere}.controller-page .join-room>h1{font-size:clamp(34px,12vw,56px);margin-bottom:32px}.join-room form{padding:24px;border-radius:var(--radius-panel)}.name-step form{margin-top:28px}.controller-page .motion-input{padding:24px;border-radius:var(--radius-panel)}.controller-page .motion-action,.controller-page .input-choice-row>.primary-button{min-height:56px;font-size:17px}.controller-page .input-permission-note{font-size:14px}.disconnect-button{color:var(--muted);margin-top:24px}.error-message,.motion-error{color:#9c251c;background:#fff0ee;border-radius:var(--radius-field)}.secondary-button.end-game-button{color:#b42318}@media(max-width:1050px){.topbar-inner{gap:12px}.connection-button>span{display:none}.night-row{flex-wrap:wrap}.night-row>div:first-child{flex-basis:100%}}@media(max-width:760px){.topbar-inner,.library,.game-main{padding-inline:20px}.library{padding-top:24px;padding-bottom:calc(112px + env(safe-area-inset-bottom))}.page-heading,.play-library .page-heading{margin-bottom:24px}.page-heading p{font-size:15px}.shelf-copy{padding:18px}.game-main .game-topline{gap:8px;margin-bottom:16px}.game-main .game-topline h1{font-size:22px}.game-main .game-topline .back-button{width:auto;min-width:44px}.launch-art>img{aspect-ratio:2.2}.launch-art{margin-bottom:20px}.launch-form{padding:24px 20px;gap:20px}.launch-form .mode-switch{align-self:stretch}.mode-switch button{padding-inline:12px;font-size:14px}.best-scores{grid-template-columns:minmax(0,1fr)}.best-scores>section{padding:20px;gap:20px}.best-scores img{width:84px;height:84px}.sheet{border-radius:var(--radius-panel) var(--radius-panel) 0 0}.sheet-content{padding:16px 20px max(24px,env(safe-area-inset-bottom))}.sheet-header{margin-bottom:20px}.mobile-tabs>button{color:var(--muted)}.mobile-tabs>button>span{font-size:11px}}@media(max-width:370px){.controller-header .brand{font-size:18px}.launch-form,.join-room form,.controller-page .motion-input{padding:20px 16px}.game-main .game-topline h1{font-size:20px}}:root[data-contrast=high]{--muted: #3d3d42;--line: #8b8b93}:root[data-contrast=high] :is(.mode-switch,.night-length,.shelf-game,.launch-form,.best-scores>section,.settings-group,.motion-input,.turn-handoff,.sheet){border:1px solid var(--line)}:root[data-contrast=high] :is(.setup-howto p,.setup-note,.controller-status,.setting-row p){color:var(--muted)}:root[data-transparency=reduce] .sheet::backdrop,:root[data-contrast=high] .sheet::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-transparency=reduce] .court-overlay,:root[data-contrast=high] .court-overlay{background:var(--page);backdrop-filter:none;-webkit-backdrop-filter:none}@media(prefers-reduced-transparency:reduce){.sheet::backdrop,.court-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}.court-overlay{background:var(--page)}}.game-main:has(>.phone-game){display:flex;flex-direction:column;max-width:none;height:100dvh;padding:0 24px 16px}.game-main:has(>.phone-game) .game-topline{margin:4px 0 10px;min-height:76px}.game-main .phone-game,.game-main .phone-game>:is(.bowling-game,.fruit-game,.rally-game,.archery-game,.sports-game){display:flex;flex-direction:column;flex:1 1 0;min-height:0}.game-main .phone-game>.sports-game{width:100%;max-width:none}.game-main .phone-game :is(.lane-wrap,.court-wrap,.target-wrap,.fruit-arena,.sports-arena){position:relative;flex:1 1 0;height:auto;min-height:300px}.game-main .phone-game .golf-game .sports-arena{background:#d9eee9}.game-main .phone-game .hoops-game .sports-arena{background:#e8e3fa}.game-main .phone-game .sports-arena svg{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0}.game-main .phone-game :is(.court-wrap,.target-wrap,.fruit-arena) canvas{position:absolute;top:0;right:0;bottom:0;left:0}.game-main .game-topline>.game-topline-side{display:grid;grid-template-areas:"stack";align-items:center;justify-self:stretch;min-width:0}.game-topline-side>*{grid-area:stack}.game-topline-side>.back-button{justify-self:start}.game-topline-side>.game-hud{justify-self:center}.game-topline-end{justify-self:end;display:flex;align-items:center;gap:24px}.game-hud:empty{display:none}.points-star{width:.8em;height:.8em;margin-left:.2em;vertical-align:-.06em;flex-shrink:0}.hud-arrows{display:flex;gap:2px}.arrow-icon{width:36px;height:36px;transition:opacity .3s,filter .3s}.arrow-icon.spent{opacity:.25;filter:grayscale(1)}.hud-score{display:flex;align-items:center;font-size:46px;line-height:1;letter-spacing:-1px;font-variant-numeric:tabular-nums;white-space:nowrap}.hud-score>small{margin:0 .3em;font-size:.5em;font-weight:450;letter-spacing:0;color:var(--muted);text-box:trim-both cap alphabetic}.fruit-hud-score{color:#a16347}.archery-hud-score{color:#416b8c}.rally-hud-score{color:#436a64}.rally-hud-score>small{font-size:.42em}.hud-info{margin:0;font-size:24px;font-weight:600;color:var(--muted);white-space:nowrap}.game-topline .fruit-timer{position:static;transform:none;flex-direction:row;gap:.3em;font-size:46px;color:#876d59}.game-topline .fruit-timer>strong{font-size:inherit;line-height:1}.hud-score>span,.game-topline .fruit-timer>strong{text-box:trim-both cap alphabetic}.hud-score>.points-star{margin-left:.3em;vertical-align:0}.game-topline .fruit-timer>svg{width:.85em;height:.85em;flex-shrink:0;translate:0 -.05em}.game-topline .fruit-hearts{gap:4px}@media(max-width:760px){.game-main:has(>.phone-game){padding:0 12px 12px}.game-topline-side{gap:12px}.hud-score,.game-topline .fruit-timer{font-size:30px;white-space:nowrap}.hud-info{font-size:15px}.hud-info>span{display:none}.arrow-icon{width:22px;height:22px}.game-topline .fruit-hearts>svg{width:17px;height:17px}.game-main .game-topline:has(.game-hud:not(:empty)){display:flex;justify-content:space-between}.game-main .game-topline:has(.game-hud:not(:empty))>.game-topline-side{display:flex;gap:10px}.game-main .game-topline:has(.game-hud:not(:empty))>.game-topline-side:last-child{justify-content:flex-end}.game-topline:has(.game-hud:not(:empty)) :is(h1,.back-label,.game-menu-button>span){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}.wind-badge{position:absolute;top:16px;left:50%;translate:-50% 0;display:flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;background:#ffffffe6;box-shadow:0 4px 16px #29465a1a;color:#29465a;font-size:26px;white-space:nowrap}.wind-badge>svg{width:1em;height:1em;flex-shrink:0}.wind-badge>svg:nth-child(2){fill:none;stroke:#e0675a;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;transition:rotate .4s ease}.wind-badge>strong{font-variant-numeric:tabular-nums}.wind-badge>span{font-size:.6em;color:var(--muted)}@media(max-width:760px){.wind-badge{top:10px;font-size:18px;padding:6px 12px}}.library{padding-top:16px}.profile-button,.connection-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:24px;font-size:14px;font-weight:570;color:var(--muted);transition:background-color .18s ease,color .18s ease}.connection-button.connected{color:#27734f}.connection-button:hover{background:#ececf0}.profile-button[aria-disabled=true],.mobile-tabs button[aria-disabled=true]{opacity:.45;cursor:default}.profile-button[aria-disabled=true]:hover{background:none}.sheet.scores-sheet{width:min(900px,calc(100% - 32px))}@media(max-width:760px){.library{padding-top:8px}}:root{--ink: #253e50;--blue: #4267bf;--muted: #596b78}h1,h2,h3,h4,.brand,.shelf-play{font-family:var(--font-body)}h1,h2,h3,h4{letter-spacing:var(--heading-tracking)}.page-heading h1,.play-library .page-heading h1{font-size:40px;font-weight:550;line-height:1.2}.brand{font-weight:600;letter-spacing:normal}.shelf-game{border:0;border-radius:22px;box-shadow:0 2px 10px #25345105}.shelf-art{aspect-ratio:1.6;border-radius:22px 22px 0 0;background:#e2e5fc}.shelf-art img{object-position:center}.shelf-copy{align-items:center;gap:12px;padding:16px 18px}.shelf-copy h3{color:#29465a;font-size:22px;font-weight:600;letter-spacing:var(--heading-tracking);line-height:28px}.shelf-copy p{font-size:15px;font-weight:400;line-height:21px;margin-top:4px}.shelf-play{min-height:48px;padding:10px 20px;border-radius:50px;font-size:18px;font-weight:600;line-height:27px;background:#eef1fb;color:#3b5598}.shelf-game:has(.shelf-launch:focus-visible){transform:scale(1.03);box-shadow:0 7px 22px #25345113}.shelf-launch:focus-visible{outline-offset:4px}.bowling .shelf-play{background:#efedfc;color:#605799}.fruit .shelf-play{background:#fff0d8;color:#8a571d}.golf .shelf-play,.rally .shelf-play{background:#e4f2e7;color:#38674b}.hoops .shelf-play{background:#ffeddf;color:#945136}.target .shelf-play{background:#e3f2fa;color:#366d89}.court-wrap,.target-wrap,.fruit-arena,.sports-arena,.bowling-lane{border:1px solid #29465a1f;border-radius:26px;overflow:hidden;box-shadow:none}.court-overlay{background:#fffffff0;border:1px solid #29465a16;border-radius:24px;box-shadow:none}.sports-message{color:#29465a;font-weight:650}.phone-aim-preview{position:relative;height:94px;margin:16px 0 8px;border:2px solid #ccd8e8;border-radius:22px;overflow:hidden;background:linear-gradient(#dce8f1 1px,transparent 1px),linear-gradient(90deg,#dce8f1 1px,transparent 1px),#f3f7fc;background-size:25% 50%}.aim-center,.aim-position{position:absolute;border-radius:50%;transform:translate(-50%,-50%)}.aim-center{left:50%;top:50%;width:28px;height:28px;border:2px dashed #8a9eb7}.aim-position{width:17px;height:17px;background:#4267bf;border:3px solid white;box-shadow:0 2px 6px #29465a33}.is-centering .aim-position{background:#9e7631}.calibration-row{gap:12px}.calibration-row>span{font-size:12px;line-height:1.4}.motion-action{min-height:64px;border-radius:24px;box-shadow:none}.motion-action.holding{box-shadow:inset 0 2px #00000012}@media(min-width:761px)and (max-width:879px){.shelf-copy h3{font-size:20px}}@media(max-width:760px){.page-heading h1,.play-library .page-heading h1{font-size:32px}.game-shelf{gap:16px 12px}.shelf-game{border-radius:18px}.shelf-art{height:104px;aspect-ratio:auto;border-radius:18px 18px 0 0}.shelf-copy{padding:12px;align-items:flex-start}.shelf-copy h3{font-size:18px;line-height:24px}.shelf-copy p{font-size:13px;line-height:18px;margin-top:3px}.shelf-play{display:none}.game-main .game-topline h1{font-size:20px}.court-wrap,.target-wrap,.fruit-arena,.sports-arena,.bowling-lane{border-radius:20px}}@media(prefers-contrast:more){.phone-aim-preview,.shelf-game{border:1px solid #29465a}}@media(prefers-reduced-motion:reduce){.shelf-game,.shelf-game:has(.shelf-launch:focus-visible){transition:none;transform:none}}[data-motion=reduce] .shelf-game:has(.shelf-launch:focus-visible){transition:none;transform:none}:root{--nav-glass: linear-gradient(115deg, #ffffff26, #ffffff04 42%, #dce5ef10 75%, #ffffff1c), rgba(255, 255, 255, .14);--nav-blur: blur(10px) saturate(1.6) contrast(.62) brightness(1.38);--nav-border: #ffffff6b;--nav-shadow: 0 8px 28px #20334c14, 0 2px 6px #20334c0a, inset 0 1px 1px #ffffffb3, inset 0 -1px 1px #52647a24}html{scroll-padding-top:100px}.app:not(.in-game){padding-top:max(12px,env(safe-area-inset-top));background:radial-gradient(ellipse 65% 420px at 75% 0,#e4edf780,transparent),var(--page)}.topbar{position:sticky;top:max(12px,env(safe-area-inset-top));z-index:20;height:auto;background:none;pointer-events:none}.topbar-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;min-height:60px}.topbar .brand,.topbar .header-actions,.mobile-tabs{pointer-events:auto;display:flex;align-items:center;min-height:60px;border-radius:999px;background:var(--nav-glass);border:1px solid var(--nav-border);-webkit-backdrop-filter:var(--nav-blur);backdrop-filter:var(--nav-blur);box-shadow:var(--nav-shadow)}.topbar .brand{grid-column:1;justify-self:start;gap:10px;padding:5px 22px 5px 8px;font-size:20px;font-weight:600;color:#1d1d1f;letter-spacing:normal;white-space:nowrap}.brand-symbol{width:46px;height:46px;border-radius:15px;flex-shrink:0}.topbar .header-actions{grid-column:3;justify-self:end;gap:6px;padding:6px;margin:0}.topbar .profile-button,.topbar .connection-button{min-height:46px;padding:0 14px;border-radius:999px;font-size:15px;font-weight:550;color:#1d1d1f;white-space:nowrap;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.topbar .connection-button{background:linear-gradient(135deg,#ffffff52,#ffffff0d),#dbe3ed26;border:1px solid #ffffff73;box-shadow:inset 0 1px 1px #ffffffa6,inset 0 -1px 1px #52647a24,0 2px 5px #20334c0a;color:#263f60;font-weight:600}.topbar .connection-button>span{display:inline}.topbar .connection-button.connected{color:#27734f}.library{padding-top:32px}.welcome-topbar{margin-top:max(12px,env(safe-area-inset-top))}.welcome-topbar+.phone-welcome{min-height:calc(100dvh - 84px)}.mobile-tabs{display:none}@media(max-width:1000px)and (min-width:761px){.topbar-inner{padding-inline:24px}.topbar .brand{padding-right:16px;font-size:18px}.topbar .profile-button,.topbar .connection-button{padding-inline:10px;font-size:14px}}@media(max-width:760px){.app:not(.in-game){padding-top:max(8px,env(safe-area-inset-top))}.topbar{top:max(8px,env(safe-area-inset-top))}.topbar-inner{grid-template-columns:auto minmax(0,1fr) auto;gap:6px;min-height:56px;padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right))}.topbar .brand{width:56px;min-height:56px;padding:0;justify-content:center}.topbar .brand>span{display:none}.brand-symbol{width:42px;height:42px;border-radius:14px}.app:not(.in-game) .topbar .header-actions{display:flex;flex-wrap:nowrap;min-height:56px;padding:5px;gap:3px}.topbar .profile-button{display:flex;flex-direction:column;justify-content:center;min-width:48px;min-height:44px;padding:4px 6px;gap:2px;font-size:11px;border-radius:16px}.topbar .connection-button{min-height:44px;padding:0 10px;gap:4px;font-size:12px}.topbar .connection-button>svg{width:19px;height:19px;flex-shrink:0}.topbar .connection-button>span{max-width:11ch;overflow:hidden;text-overflow:ellipsis}.library{padding-top:24px;padding-bottom:max(32px,env(safe-area-inset-bottom))}}@media(max-width:360px){.topbar .connection-button{flex-direction:column;justify-content:center;padding:4px 8px;gap:2px;font-size:11px}}@media(hover:hover){.topbar .profile-button:hover:not([aria-disabled=true]),.topbar .connection-button:hover,.mobile-tabs button:hover:not([aria-disabled=true]){background:#fff6;color:#074d9f;box-shadow:inset 0 1px #ffffff80,0 1px 4px #20334c0a}}:root:is([data-transparency=reduce],[data-contrast=high]){--nav-glass: #fafbfe;--nav-blur: none;--nav-border: #76849a;--nav-shadow: none}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){:root{--nav-glass: #fafbfe;--nav-blur: none;--nav-border: #76849a;--nav-shadow: none}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--nav-glass: #fafbfe}}@media(prefers-reduced-motion:reduce){.topbar button{transition:none}}:root[data-motion=reduce] .topbar button{transition:none}@media(forced-colors:active){:root{--nav-glass: Canvas;--nav-blur: none;--nav-border: CanvasText;--nav-shadow: none}.topbar .brand{color:CanvasText}.topbar .connection-button{background:ButtonFace;color:ButtonText;border:1px solid ButtonText}}:root{--ink: #1d1d1f;--muted: #61616a;--line: #dedee5;--blue: #075bc7;--blue-hover: #074d9f}@media(prefers-contrast:more){:root{--muted: #3d3d42;--line: #8b8b93}}h1,h2{font-weight:550}.shelf-copy h3{color:var(--ink)}.shelf-game.coming-soon .shelf-copy{opacity:1;filter:none}.shelf-game.coming-soon .shelf-copy h3,.shelf-game.coming-soon .shelf-copy p{color:var(--muted)}.profile-button[aria-disabled=true],.mobile-tabs button[aria-disabled=true]{opacity:1;color:var(--muted)}:is(.primary-button,.secondary-button):disabled{opacity:1;color:var(--muted);background:#e2e7ed;box-shadow:none}.name-setting input,.player-inputs input,.name-input,.room-code-input,.score-filter select{border-color:#7c8796}:where(input,select):hover{border-color:#526273}:is(input,select,textarea):focus{outline:none}.switch{background:#68756d}.switch.on{background:#397848}.switch>span{color:#397848}.close-button{color:var(--ink)}.mobile-tabs button{transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.settings-sheet .sheet-header{margin-bottom:20px}.settings-sheet .name-setting>span{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px}.settings-sheet .name-setting input{margin:0;min-width:0}.settings-sheet .settings-group{margin:20px 0}.settings-sheet .setting-row{min-height:62px;padding:9px 16px}.settings-sheet .setting-label{display:flex;align-items:center;gap:12px;min-width:0}.settings-sheet .setting-label>svg{flex-shrink:0;color:var(--blue)}.settings-sheet .setting-row strong{font-size:15px;line-height:1.35}@media(max-width:370px){.settings-sheet .setting-row{padding-inline:12px;gap:8px}.settings-sheet .setting-label{gap:8px}.settings-sheet .setting-row strong{font-size:14px}}@media(prefers-reduced-motion:reduce){.mobile-tabs button{transition:none}}:root[data-motion=reduce] .mobile-tabs button{transition:none}@media(forced-colors:active){.switch{background:ButtonFace;border:1px solid ButtonText}.switch.on{background:Highlight}.switch>span{background:ButtonText;color:ButtonFace}:is(.primary-button,.secondary-button):disabled{background:ButtonFace;color:GrayText}}input[data-text-caret]{caret-color:transparent}.text-caret{position:fixed;left:0;top:0;z-index:1000;width:3px;border-radius:2px;background:var(--blue);box-shadow:0 0 0 .5px #075bc733;pointer-events:none;animation:text-caret-blink 1.1s ease-in-out infinite}@keyframes text-caret-blink{0%,50%{opacity:1}62%,88%{opacity:0}to{opacity:1}}.text-caret-ruler{position:absolute;top:0;left:-9999px;visibility:hidden;white-space:pre;pointer-events:none}@media(prefers-reduced-motion:reduce){.text-caret{animation:none}}:root[data-motion=reduce] .text-caret{animation:none}@media(forced-colors:active){.text-caret{forced-color-adjust:none;background:Highlight;box-shadow:none}}.topbar .scores-button>*{opacity:.35;filter:grayscale(1)}@media(forced-colors:active){.topbar .scores-button>*{opacity:1;color:GrayText}}.play-steps{display:grid;gap:10px;margin:0;padding-left:1.4rem;color:var(--ink);font-size:1rem;line-height:1.5}.play-steps li{margin:0;color:inherit;font-size:inherit}.play-steps li::marker{color:var(--blue);font-weight:650}.fruit-arena .court-overlay h2{font-size:clamp(40px,6vw,64px);line-height:1.1;font-weight:550;letter-spacing:.0135em}@media(max-width:760px){.fruit-arena .court-overlay h2{letter-spacing:.025em}}@media(min-width:761px){.sheet.end-game-sheet{width:min(540px,calc(100% - 38px));border-radius:32px}}.end-game-sheet .sheet-content{padding:32px}.end-game-sheet .sheet-header{margin-bottom:28px}.end-game-sheet .sheet-header h2{font-size:28px;line-height:1.2}.end-game-sheet .close-button{width:50px;height:50px}.end-game-sheet .close-button svg{width:23px;height:23px}.end-game-sheet .full-width{min-height:56px;font-size:17px}.end-game-sheet .full-width+.full-width{margin-top:12px}
