:root{color-scheme:light;--cellSize: 76px;--tileSize: 62px;--boardGap: 12px;--adBannerHeight: 60px;--uiScale: 1;--ctrlGap: 8px;--ctrlFont: 13px;--labelPadY: 8px;--labelPadX: 10px;--selectW: 50px;--selectPadY: 8px;--selectPadX: 10px;--btnPadY: 9px;--btnPadX: 12px;--statsFont: 16px;--undoMinW: 140px;--undoMinH: 52px;--undoFont: 16px;--player:#6f7844;--bg:#F2F0EF;--fg:#0b0d10;--muted: rgba(11,13,16,.62);--muted2: rgba(11,13,16,.46);--panel: #fff;--panel2: rgba(11,13,16,0);--hair: rgba(11,13,16,.1);--hair2: rgba(11,13,16,.16);--cell: rgba(255,255,255,.1);--cell2: rgba(255,255,255,.12);--tile: #ffffff;--shadow1: rgba(0,0,0,.06);--shadow2: rgba(0,0,0,.1);--focus: rgba(11,13,16,.92);--focusHalo: rgba(11,13,16,.1)}html{-webkit-text-size-adjust:100%}*{-webkit-tap-highlight-color:transparent;box-sizing:border-box}html,body{height:100%;overscroll-behavior:none;overflow:hidden}body{margin:0;padding:0;position:relative;overflow:hidden;inset:0;width:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;background:var(--player);color:var(--fg);display:flex;justify-content:center}html,body,#app{touch-action:none}.app{position:relative;width:min(1280px,100%);height:100vh;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;gap:0;padding:env(safe-area-inset-top,24px) env(safe-area-inset-right,14px) env(safe-area-inset-bottom,10px) env(safe-area-inset-left,14px);user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;opacity:0}.app.loaded{opacity:1}.homeMenu{position:fixed;inset:0;background:var(--player);display:flex;align-items:center;justify-content:center;z-index:50;opacity:1;visibility:visible;transition:none}.homeMenu.hidden{opacity:0;visibility:hidden;pointer-events:none}.bar,.boardWrap{opacity:1;transition:none}.app:not(.gameActive) .boardWrap{opacity:0;pointer-events:none}.app.gameActive .boardWrap{opacity:1;pointer-events:auto}.homeContent{display:flex;flex-direction:column;align-items:center;gap:24px;width:280px;--scale-max: 1.3;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 280px)), var(--scale-max));--scale-h: clamp(.85, tan(atan2(100vh - 140px, 340px)), var(--scale-max));--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.homeBrand{display:flex;flex-direction:column;align-items:center;gap:8px}.homeLogo svg{width:clamp(80px,20vw,120px);height:clamp(80px,20vw,120px);stroke:#fff;fill:#fff;stroke-width:1.5}.homeTitle{font-size:clamp(28px,7vw,40px);font-weight:700;color:#fff;margin:0;letter-spacing:-.5px}.homeButtons{display:flex;flex-direction:row;gap:12px;margin-top:16px}.homeBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:clamp(72px,20vw,84px);aspect-ratio:1;padding:12px;background:#fff;color:var(--player);border:none;border-radius:18px;cursor:pointer;transition:transform .1s ease,opacity .1s ease}.homeBtn:hover{opacity:.95}.homeBtn:active{transform:scale(.95)}.homeBtnIcon{width:clamp(28px,6vw,36px);height:clamp(28px,6vw,36px);stroke:currentColor;stroke-width:1.5;fill:none}.homeBtnLabel{font-size:11px;font-weight:600;line-height:1}.homeHowToPlayBtn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:#ffffff26;color:#fff;border:2px solid rgba(255,255,255,.3);border-radius:16px;cursor:pointer;transition:transform .1s ease,background .1s ease}.homeHowToPlayBtn:hover{background:#ffffff40}.homeHowToPlayBtn:active{transform:scale(.98)}.homeHowToPlayLabel{font-size:15px;font-weight:600}.homeHowToPlayIcon{width:22px;height:22px;stroke:#fff;stroke-width:1.5;fill:none;flex-shrink:0}.preferencesPage{position:absolute;inset:0;background:var(--player);display:flex;align-items:center;justify-content:center;z-index:55;opacity:1;visibility:visible;transition:none}.preferencesPage[hidden]{opacity:0;visibility:hidden;pointer-events:none}.prefsContent{display:flex;flex-direction:column;align-items:center;gap:28px;width:min(300px,85vw)}.prefsSection{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%;border-radius:16px;padding:20px}.prefsSectionLabel{font-size:13px;font-weight:500;color:#ffffff80}.prefsToggleBtn{display:flex;align-items:center;justify-content:center;width:clamp(72px,20vw,96px);height:clamp(72px,20vw,96px);background:#fff;color:var(--player);border:none;border-radius:16px;cursor:pointer;transition:transform .1s ease,opacity .1s ease}.prefsToggleBtn:hover{opacity:.95}.prefsToggleBtn:active{transform:scale(.95)}.prefsToggleBtn.muted{opacity:.6}.prefsAudioIcon{width:40%;height:40%;stroke-width:1.5}.prefsColorSwatches{display:flex;gap:8px;background:#ffffff1a;border-radius:10px;padding:10px}.prefsColorSwatch{width:36px;height:36px;border-radius:50%;border:1.5px solid transparent;cursor:pointer;transition:border-color .15s ease,transform .15s ease;padding:0;outline:none;-webkit-appearance:none;appearance:none}.prefsColorSwatch:hover{transform:scale(1.12)}.prefsColorSwatch.selected{border-color:#fff}.prefsFooter{display:flex;flex-direction:column;align-items:center;gap:12px}.prefsDeleteBtn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prefsDeleteBtn:hover{background:#ffffff40;border-color:#ffffff80}.prefsDeleteBtn:active{transform:scale(.98)}.prefsDeleteBtn .btnIcon{width:14px;height:14px;stroke:#fff;stroke-width:1.5;fill:none}.footer-links{margin-top:24px;font-size:12px;color:#ffffff73;display:flex;gap:8px;align-items:center}.footer-links a{color:inherit;text-decoration:none}.footer-links a:hover{color:#ffffffb3}.webControlsHint{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:16px;opacity:0;pointer-events:none;transition:opacity .3s ease}.webControlsHint .wchKeys{font-size:clamp(14px,3vw,22px);font-weight:600;color:#fff;white-space:nowrap;letter-spacing:.5px}.webControlsHint .wchLabel{font-size:clamp(12px,1.5vw,18px);color:#fff;opacity:.7;text-transform:uppercase;letter-spacing:1px}.webControlsHint.show{opacity:.85}.tutorialControlsHint{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:16px;opacity:.85}.tutorialControlsHint .wchKeys{font-size:clamp(14px,3vw,22px);font-weight:600;color:#fff;white-space:nowrap;letter-spacing:.5px}.tutorialControlsHint .wchLabel{font-size:clamp(12px,1.5vw,18px);color:#fff;opacity:.7;text-transform:uppercase;letter-spacing:1px}.speedSetup{position:absolute;inset:0;background:var(--player);display:flex;align-items:center;justify-content:center;z-index:55;opacity:1;visibility:visible;transition:none}.speedSetup[hidden]{opacity:0;visibility:hidden;pointer-events:none}.speedSetupContent{display:flex;flex-direction:column;align-items:center;gap:20px;width:300px;--scale-max: 1.3;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 300px)), var(--scale-max));--scale-h: clamp(.85, tan(atan2(100vh - 140px, 480px)), var(--scale-max));--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.onlineSetup{position:absolute;inset:0;background:var(--player);display:flex;align-items:center;justify-content:center;z-index:55;opacity:1;visibility:visible;transition:none}.onlineSetup[hidden]{opacity:0;visibility:hidden;pointer-events:none}.onlineSetupContent{display:flex;flex-direction:column;align-items:center;gap:20px;width:300px;--scale-max: 1.3;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 300px)), var(--scale-max));--scale-h: clamp(.85, tan(atan2(100vh - 140px, 480px)), var(--scale-max));--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.soloModeTab{display:grid;grid-template-columns:1fr 1fr;position:relative;border-radius:12px;background:#ffffff1a;align-self:center;padding:3px;width:200px}.soloModeTab:before{content:"";position:absolute;inset:3px;width:calc(50% - 3px);background:#fff;border-radius:9px;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(var(--tab-x, 0));z-index:0;pointer-events:none}.soloModeTabBtn{padding:7px 0;border:none;background:transparent;color:#ffffff8c;font-size:13px;font-weight:600;cursor:pointer;transition:color .2s ease;white-space:nowrap;position:relative;z-index:1;text-align:center;line-height:1}.soloModeTabBtn.selected{color:var(--player)}.modeDescription{font-size:12px;color:#ffffff8c;text-align:center;line-height:1.3}.speedPanelSlot{display:grid;width:100%}.speedPanel{grid-row:1;grid-column:1;display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;min-width:0}.speedPanel.panel-hidden{visibility:hidden;pointer-events:none}.soloSettingsSlot{display:grid;width:100%}.soloSettingsPanel{grid-row:1;grid-column:1;display:flex;flex-direction:column;align-items:center;min-width:0}.soloSettingsPanel[hidden]{visibility:hidden;pointer-events:none;display:flex}.speedSetupStartBtn{position:absolute;bottom:clamp(60px,12vh,120px);left:50%;transform:translate(-50%);width:clamp(64px,15vw,80px);height:clamp(64px,15vw,80px);border-radius:50%;border:none;background:#fff;color:var(--player);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,opacity .15s ease}.speedSetupStartBtn:hover{transform:translate(-50%) scale(1.05)}.speedSetupStartBtn:active{transform:translate(-50%) scale(.95)}.speedSetupStartBtn .btnIcon{width:clamp(28px,7vw,36px);height:clamp(28px,7vw,36px);stroke:var(--player);stroke-width:1.5;fill:none}.modeSetup{position:absolute;inset:0;background:var(--player);display:flex;align-items:center;justify-content:center;z-index:55;opacity:1;visibility:visible;transition:none}.modeSetup[hidden]{opacity:0;visibility:hidden;pointer-events:none}.setupProgressBar{position:absolute;top:52px;left:50%;transform:translate(-50%);width:var(--boardWidth, 300px);z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;box-sizing:border-box}.setupProgressBar .progressText,.setupProgressBar .tutorialPuzzleListProgressText{font-size:14px;font-weight:600;color:#fff;display:inline-flex;align-items:center;gap:3px}.setupProgressBar .progressBarTrack,.setupProgressBar .tutorialPuzzleListProgressBar{width:100%;height:12px;background:#fff;border:2px solid white;border-radius:5px;overflow:hidden;box-sizing:border-box}.setupProgressBar .progressBarFill,.setupProgressBar .tutorialPuzzleListProgressFill{height:100%;background:var(--player);border-radius:3px;transition:width .4s ease-out}.setupContent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;height:100%;width:100%;overflow-y:auto}.dailySetupContent{gap:16px;justify-content:center;padding-top:90px;padding-bottom:0;box-sizing:border-box;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 360px)), 2);--scale-h: clamp(.85, tan(atan2(100vh - 190px, 540px)), 2);--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.dailySetupCalendar{min-width:340px;background:#ffffff1a;border-radius:16px;padding:8px}.dailySetup .calendarHeader{margin-bottom:4px}.dailySetup .calNavBtn{background:#fff3;border-color:transparent;color:#fff}.dailySetup .calNavBtn:hover{background:#ffffff4d}.dailySetup .calNavBtn:disabled{opacity:.25;pointer-events:none}.dailySetup .calMonthYear{color:#fff}.dailySetup .calendarGrid{background:transparent}.dailySetup .calDayLabel{color:#fff9}.dailySetup .calDateBtn{background:#ffffff1a;border-color:transparent;color:#fff;min-height:32px;padding:2px}.dailySetup .calDateBtn:hover:not(:disabled){background:#ffffff4d}.dailySetup .calDateBtn.selected{background:#fff;color:var(--player)}.dailySetup .calDateBtn:disabled{opacity:.3}.dailySetup .calDot.completed{background:#fff}.dailySetup .calDateBtn.selected .calDot.completed{background:var(--player)}.dailySetupHeader{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.dailySetupDateDisplay{font-size:clamp(16px,4vw,20px);font-weight:600;color:#fff;text-align:center}.dailySetupPuzzleGrid{display:flex;gap:12px;width:100%;justify-content:center}.dailySetupPuzzleBtn{flex:1;max-width:80px;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px;background:#fff;color:var(--player);border:2px solid white;border-radius:16px;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.dailySetupPuzzleBtn:hover{transform:scale(1.02)}.dailySetupPuzzleBtn:active{transform:scale(.98)}.dailySetupPuzzleBtn .dailyDiffLabel{font-size:clamp(14px,1vw,24px);font-weight:700;line-height:1;color:var(--player)}.dailyStartPrefLabel{font-size:13px;color:#ffffff80;font-weight:500}.dailyStartPrefToggle{display:grid;grid-template-columns:1fr 1fr;position:relative;border-radius:12px;background:#ffffff1a;padding:3px;width:200px}.dailyStartPrefToggle:before{content:"";position:absolute;inset:3px;width:calc(50% - 3px);background:#fff;border-radius:9px;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(var(--tab-x, 0))}.dailyStartPrefBtn{font-size:13px;font-weight:600;padding:7px 0;border:none;background:transparent;color:#ffffff8c;cursor:pointer;transition:color .2s ease;position:relative;z-index:1;text-align:center}.dailyStartPrefBtn.selected,.dailySetupPuzzleBtn .dailyBestTime{color:var(--player)}.dailySetupPuzzleBtn .dailyBestStats{display:flex;flex-direction:column;gap:4px;min-height:20px}.dailySetupPuzzleBtn .dailyBestTime span{display:none}.dailySetupPuzzleBtn.completed{background:var(--player);color:#fff}.dailySetupPuzzleBtn.completed .dailyDiffLabel{color:#fff}.dailySetupPuzzleBtn.completed .dailyBestTime span{display:inline}.dailySetupPuzzleBtn.completed .dailyBestTime{color:#fff}.speedSetupRecords{width:100%;display:flex;flex-direction:column;gap:4px;padding:2px 4px}.speedSetupRecordItem{display:flex;align-items:center;gap:6px;padding:5px 10px;background:#ffffff1a;border-radius:8px;min-height:28px}.speedSetupRecordCrown{display:flex;align-items:center;color:#f5c842}.speedSetupRecordCrown svg{width:16px;height:16px}.speedSetupRecordValue{flex:1;font-size:13px;font-weight:600;color:#fff;display:flex;align-items:center;gap:5px}.speedSetupRecordDate{font-size:10px;color:#fff9}.speedSetupRecordPlayBtn{width:24px;height:24px;min-width:24px;min-height:24px;padding:5px;background:#fff;color:var(--player);border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.speedSetupRecordPlayBtn:hover{opacity:.9}.deleteConfirmDialog{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:130}.deleteConfirmDialog[hidden]{display:none}.deleteConfirmBackdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.deleteConfirmContent{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px;padding:32px 40px;background:var(--cell);color:#fff;border-radius:20px;max-width:90vw;width:320px;text-align:center}.deleteConfirmTitle{font-size:20px;font-weight:700}.deleteConfirmText{font-size:14px;line-height:1.5}.deleteConfirmTrash{stroke:#fff;fill:none}.deleteConfirmActions{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:4px}.deleteConfirmBtnPrimary{width:100%;padding:12px;font-size:15px;font-weight:700;background:#fff;color:var(--player);border:none;border-radius:16px;cursor:pointer;transition:opacity .15s ease}.deleteConfirmBtnPrimary:hover{opacity:.8}.deleteConfirmBtnSecondary{width:100%;padding:12px;font-size:15px;font-weight:600;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:16px;cursor:pointer;transition:background .15s ease}.deleteConfirmBtnSecondary:hover{background:#ffffff40}.boardWrap,.board,.cell,.tile,.tileLayer,.victory{user-select:none;-webkit-user-select:none;-ms-user-select:none;-webkit-touch-callout:none}.app,.boardWrap{min-height:0}.bar{position:sticky;top:0;z-index:120;display:flex;gap:12px;align-items:flex-start;justify-content:center;flex-wrap:wrap;padding-top:8px;width:100%;margin:0}.panel{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;width:100%}.title{font-weight:500;letter-spacing:.2px;font-size:13px;padding:10px 12px;border-radius:999px;background:var(--panel2)}.titleWrap{position:relative;justify-self:center;text-align:center}.controls .title{font-weight:500;font-size:clamp(22px,6vw,34px);line-height:1.1;letter-spacing:-.3px;color:#fff;margin:0;padding:0;max-width:72vw;white-space:nowrap;background:transparent}.controls{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--ctrlGap);align-items:center;justify-items:stretch;width:var(--boardWidth, 100%);width:100%;padding:0 4px}.navSlot{display:flex;align-items:center}.navSlot.navLeft{justify-content:flex-start}.navSlot.navRight{justify-content:flex-end}.app.ui-menuRoot .bar{pointer-events:none}.app.ui-menuRoot .bar .iconBtn{pointer-events:auto}.app:not(.gameActive) .bar .iconBtn{color:#fff}.app:not(.gameActive) .bar .controls .title{color:#fff}.app.ui-prefsOpen .bar .iconBtn,.app.ui-prefsOpen .bar .controls .title{color:#fff}label{display:flex;align-items:center;gap:6px;color:var(--muted2);padding:var(--labelPadY) var(--labelPadX);font-size:var(--ctrlFont);border-radius:999px;background:var(--panel2)}select{width:var(--selectW);padding:var(--selectPadY) var(--selectPadX);font-size:var(--ctrlFont);border-radius:12px;border:1px solid var(--hair);color:var(--fg);outline:none}select:focus{outline:none}.levelCtl select{width:auto;min-width:8ch}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sizeCtl{position:relative;gap:8px}.sizeCtl .mul{color:var(--muted);font-weight:700;padding:0 2px}button{padding:var(--btnPadY) var(--btnPadX);font-size:var(--ctrlFont);border-radius:999px;border:1px solid var(--hair);background:transparent;color:var(--player);cursor:pointer}@media(hover:hover){button:hover{opacity:.8}}button:active{transform:translateY(1px)}button:focus{outline:none}.iconBtn{display:inline-flex;align-items:center;justify-content:center;padding:8px;width:clamp(36px,15vw,64px);height:clamp(36px,15vw,64px);border:none;color:#fff;border-radius:12px;flex-shrink:0}.navStreak{position:relative;overflow:visible;width:auto;min-width:clamp(32px,12vw,58px);gap:6px;font-size:calc(clamp(32px,12vw,58px) - 16px);font-weight:600;line-height:1;padding:8px 12px}.navStreak .streakMain{display:inline-flex;align-items:center;gap:6px}.navStreak .streakCount{line-height:1}.navStreak .streakFireWrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.navStreak .fireIcon{width:1em;height:1em}.navStreak .streakRiskLabel{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);font-size:clamp(10px,2.4vw,11px);line-height:1.1;font-weight:600;white-space:nowrap;padding:2px 6px;border-radius:999px;color:#fffffffa;background:#00000038;pointer-events:none}.navStreak.streakAtRisk .streakFireWrap:before,.navStreak.streakAtRisk .streakFireWrap:after{content:"";position:absolute;top:-2px;right:-2px;border-radius:50%;transform-origin:center;animation:streakRiskPulse 1.2s ease-in-out infinite}.navStreak.streakAtRisk .streakFireWrap:before{width:12px;height:12px;background:#ff76294d;box-shadow:0 0 0 2px #ff762924}.navStreak.streakAtRisk .streakFireWrap:after{width:7px;height:7px;top:0;right:0;background:#ff7a2f;box-shadow:0 0 8px #ff7a2fd9}@keyframes streakRiskPulse{0%{transform:scale(.88);opacity:.6}50%{transform:scale(1.15);opacity:1}to{transform:scale(.88);opacity:.6}}.btnIcon{width:100%;height:100%;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.statsBar{width:var(--boardWidth, 100%);padding:0;margin-top:14px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.statsBar .stat{font-variant-numeric:tabular-nums;font-size:var(--statsFont);font-weight:400;color:#fff;white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:8px}.statIcon{width:clamp(12px,4vw,24px);height:clamp(12px,4vw,24px);flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.statValue{font-variant-numeric:tabular-nums;font-weight:500;line-height:1}.sessionBest{position:absolute;top:100%;left:50%;transform:translate(-50%);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;color:#ffffff80;white-space:nowrap;margin-top:8px;pointer-events:none}.app:not(.gameActive) .sessionBest{display:none}.onlineSprintBar:not([hidden])~.bar .sessionBest,.onlineTimedBar:not([hidden])~.bar .sessionBest{margin-top:30px}.boardActions{display:flex;justify-content:center;gap:24px;margin-top:28px}.boardActions button{min-width:var(--undoMinW);min-height:var(--undoMinH);font-size:var(--undoFont)}.boardActions .iconBtn{width:var(--undoMinH);height:var(--undoMinH);min-width:unset;padding:14px;border-radius:16px}.boardActions .btnIcon{width:clamp(36px,8vw,64px);height:clamp(36px,8vw,64px)}#moves,#time{font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;height:100%;align-items:flex-end;gap:3px;flex:1 1 0;min-width:0;overflow:hidden}#time{justify-content:flex-end}.boardWrap{border-radius:26px;padding:16px;position:relative;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:1;transition:none}.boardWrap.loaded{opacity:1}.victory{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0000;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10;visibility:hidden;pointer-events:none;transition:background .4s ease-in-out,visibility 0s .4s}.victory.show{visibility:visible;pointer-events:auto;background:#00000080;transition:background .4s ease-in-out,visibility 0s 0s}.victoryContent{background:#00000059;border-radius:20px;padding:28px 24px;display:flex;flex-direction:column;align-items:center;gap:20px;color:#fff;max-width:90vw;width:320px;text-align:center;opacity:0;transition:opacity .3s ease-in-out}.victory.show .victoryContent{opacity:1}.victoryTitle{font-size:32px;font-weight:600;letter-spacing:.2px;color:#fff}.victoryTitle:empty{display:none}.victoryStreak{display:flex;align-items:center;justify-content:center;gap:6px;font-size:18px;font-weight:500;color:orange;opacity:0;transform:scale(.3)}.victoryStreak.show{animation:streakPop .5s ease-out forwards}.victoryStreak .fireIcon{width:1.2em;height:1.2em;filter:drop-shadow(0 0 6px rgba(255,165,0,.6))}@keyframes streakPop{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.25)}60%{transform:scale(.92)}80%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.victoryStats{display:flex;align-items:center;justify-content:center;gap:24px;font-size:16px;font-weight:500;color:#ffffffb3;font-variant-numeric:tabular-nums}.victoryStatItem{display:flex;align-items:center;gap:8px}.victoryStats .statIcon{width:20px;height:20px;stroke:#ffffffb3;stroke-width:2;fill:none}.victoryBtn{padding:12px 24px;font-size:14px;font-weight:600;background:#fff;color:var(--player);border-color:#fff;border-radius:14px;min-height:44px}.victoryBtn:hover{opacity:.8}.victoryDailyButtons{display:flex;gap:16px}.victoryButtonRow{display:flex;gap:12px}.victoryStats:has(.speedVictoryStats){flex-direction:column;gap:0;width:100%}.victoryContent:has(.speedBreakdown){width:340px;padding:28px 20px}.speedVictoryStats{display:flex;flex-direction:column;align-items:center;gap:16px}.speedVictoryStat{display:flex;align-items:center;gap:8px;font-size:28px;font-weight:600;color:#fff}.speedVictoryStat .statIcon{width:24px;height:24px;stroke:#ffffffb3;stroke-width:1.5;fill:none}.speedVictoryRow{display:flex;align-items:center;gap:20px;font-size:15px;font-weight:500;color:#ffffffb3}.speedVictoryRow span{display:flex;align-items:center;gap:6px}.speedVictoryRow .statIcon{width:18px;height:18px;stroke:#ffffffb3;stroke-width:1.5;fill:none}.victoryBtn.speedRestartBtn{padding:12px 20px;min-width:56px}.victoryBtn.speedRestartBtn .btnIcon{width:22px;height:22px;stroke:var(--player);stroke-width:1.5;fill:none}.speedBreakdown{width:100%;max-height:180px;overflow-y:auto;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);-webkit-overflow-scrolling:touch}.speedBreakdown table{width:100%;border-collapse:collapse;font-size:13px;color:#ffffffd9}.speedBreakdown th{font-size:11px;font-weight:600;text-transform:uppercase;color:#ffffff80;padding:4px 8px;text-align:center}.speedBreakdown td{padding:4px 8px;text-align:center;font-variant-numeric:tabular-nums}.speedBreakdown tr.best td,.speedBreakdown tr.worst td{color:#ffffffd9}.speedBreakdown tr.avg td{border-top:1px solid rgba(255,255,255,.15);font-weight:600;color:#fff9}.speedRecordDetail{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:130}.speedRecordDetail[hidden]{display:none}.speedRecordDetailBackdrop{position:absolute;inset:0;background:#0009}.speedRecordDetailCard{position:relative;background:var(--player);border-radius:16px;padding:20px;width:min(320px,90vw);max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.speedRecordDetailHeader{display:flex;align-items:center;justify-content:space-between}.speedRecordDetailTitle{font-size:16px;font-weight:700;color:#fff}.speedRecordDetailClose{width:32px;height:32px;background:none;border:none;color:#ffffffb3;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.speedRecordDetailSummary{display:flex;justify-content:center;gap:16px;font-size:14px;color:#ffffffb3}.speedRecordDetailSummary span{display:flex;align-items:center;gap:4px}.speedRecordDetailSummary .statIcon{width:14px;height:14px;stroke:#ffffffb3;stroke-width:1.5;fill:none}.speedRecordDetailBreakdown .speedBreakdown{margin-top:0;padding-top:0;border-top:none}.speedSetupRecordItem.hasDetail{cursor:pointer}.speedSetupRecordItem.hasDetail:active{opacity:.8}.board{display:grid;gap:var(--boardGap);touch-action:none;position:relative}.board{width:var(--boardWidth);height:var(--boardWidth);place-content:center;transition:opacity .14s ease-out}.boardWrap.boardLoading .board{opacity:0;transition:none}.board.snapPulse{animation:snapPulse .4s ease-out}@keyframes snapPulse{0%{transform:scale(1)}30%{transform:scale(1.02)}60%{transform:scale(.995)}to{transform:scale(1)}}.tileLayer{position:absolute;inset:0;pointer-events:none;z-index:2;contain:layout paint}.tile.floating{position:absolute;left:0;top:0;will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .14s ease,opacity .14s ease}.tile.noTrans{transition:none!important}.cell{width:var(--cellSize);height:var(--cellSize);border-radius:12px;background:var(--cell);display:flex;align-items:center;justify-content:center}.cell.absolute{position:absolute}.cell.selected{outline:2px solid var(--focus);outline-offset:4px;box-shadow:0 0 0 8px var(--focusHalo)}.tile{width:var(--tileSize);height:var(--tileSize);border-radius:calc(var(--tileSize) * .22);background:var(--tile);display:flex;align-items:center;justify-content:center;font-weight:500;letter-spacing:.2px;font-size:calc(var(--tileSize) * .26);line-height:1}.tile.op{font-size:calc(var(--tileSize) * .32)}.particleCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}@keyframes elasticGrowth{0%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1)}30%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1.18)}55%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(.97)}75%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1.04)}to{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1)}}@keyframes elasticShrink{0%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1)}30%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(.82)}55%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1.03)}75%{transform:translate(var(--tx, 0),var(--ty, 0)) scale(.96)}to{transform:translate(var(--tx, 0),var(--ty, 0)) scale(1)}}.tile.elasticGrowth{animation:elasticGrowth .4s ease-out forwards}.tile.elasticShrink{animation:elasticShrink .4s ease-out forwards}.tile.player{background:#fff;color:var(--player);border:none;font-weight:900}.tile.player svg{width:65%;height:65%;color:inherit;stroke:currentColor;fill:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:block;pointer-events:none}.tile.player[data-icon=snapLeft] svg,.tile.player[data-icon=snapRight] svg{width:85%;height:85%}.tile.player svg *{vector-effect:non-scaling-stroke;stroke:currentColor;fill:currentColor}.app.publicDailyMode #progressBar{display:none!important}.app.publicDailyMode .titleWrap{min-width:0}.app.publicDailyMode .title{display:flex;justify-content:center;min-width:0}.publicDailyTitleBtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;max-width:100%;border:0;padding:8px 10px;border-radius:14px;color:currentColor;background:transparent;font:inherit;line-height:1.1;white-space:nowrap}.publicDailyTitleBtn .btnIcon{width:.95em;height:.95em;flex:0 0 auto;stroke:currentColor;stroke-width:1.8}.app.publicDailyMode .navRight .iconBtn{font-size:clamp(20px,6vw,30px);font-weight:800}.publicDailyDialog[hidden]{display:none}.publicDailyDialog{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.publicDailyBackdrop{position:absolute;inset:0;border:0;border-radius:0;background:#00000052;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.publicDailyContent{position:relative;width:min(100%,360px);max-height:min(82dvh,620px);overflow:auto;border-radius:18px;background:#fff;color:var(--fg);box-shadow:0 18px 54px #0000003d;padding:14px}.publicDailyDialogHeader{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:4px;margin-bottom:8px}.publicDailyDialogTitle{grid-column:2;text-align:center;font-size:18px;font-weight:800;line-height:1.2}.publicDailyCloseBtn{grid-column:3;width:40px;height:40px;padding:10px;border:0;color:var(--player)}.publicRulesList{margin:10px 8px 4px 26px;padding:0;display:grid;gap:10px;color:#0b0d10c7;font-size:16px;line-height:1.35}.publicCalendarContent{width:min(100%,390px)}.publicCalendar{background:#0b0d100a;border-radius:14px;padding:8px}.publicCalendar .calendarGrid{padding-bottom:4px}.publicCalendar .calDateIndicators,.publicCalendar .calStreak{display:none}.publicCalendar .calDateBtn{min-height:42px}@media(prefers-reduced-motion:reduce){.board.snapPulse{animation:none!important}}[hidden]{display:none!important}.dailyBestStats{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-variant-numeric:tabular-nums}.dailyBestTime{display:flex;align-items:center;justify-content:space-between;gap:3px;font-size:10px;font-weight:500;color:var(--muted);line-height:1;width:100%}.dailyBestTime .statIcon{stroke:currentColor;stroke-width:1;width:18px;height:18px}.calendarHeader{display:flex;align-items:center;justify-content:space-between;gap:8px}.calNavBtn{display:flex;align-items:center;justify-content:center;padding:6px 10px;min-height:32px;font-size:16px;background:transparent;border:1px solid var(--hair2);border-radius:8px;cursor:pointer;transition:transform .14s ease,opacity .14s ease,background-color .14s ease,color .14s ease,border-color .14s ease}.calNavBtn:hover{background:var(--panel)}.calMonthYear{flex:1;text-align:center;font-weight:600;font-size:14px;color:var(--fg)}.calendarGrid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(0,1fr);align-content:start;justify-content:center;gap:4px;padding:8px 4px;max-width:350px;margin:0 auto}.calDayLabel{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:4px 2px}.calDateBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px;min-height:38px;font-size:12px;background:var(--panel);border:1px solid var(--hair);border-radius:6px;cursor:pointer;transition:transform .14s ease,opacity .14s ease,background-color .14s ease,color .14s ease,border-color .14s ease}.calDateBtn:hover:not(:disabled){background:var(--player);color:var(--bg)}.calDateBtn.selected{background:var(--player);color:var(--bg);font-weight:600}.calDateBtn:disabled{opacity:.3;cursor:not-allowed}.calDateNum{font-size:12px;font-weight:500}.calStreak{font-size:9px;height:11px;line-height:11px;margin-bottom:2px}.calDateIndicators{display:flex;gap:2px;min-height:6px}.calDot{width:4px;height:4px;border-radius:50%;opacity:0;background:var(--player)}.calDot.completed{opacity:1}.calDateBtn.selected .calDot.completed,.calDateBtn:hover:not(:disabled) .calDot.completed{background:var(--bg)}.fireIcon{width:1em;height:1em;vertical-align:-.125em;stroke:currentColor;fill:none;flex-shrink:0}.calStreak .fireIcon{width:14px;height:14px}.controls .title .fireIcon{width:1em;height:1em}.titleStreak{display:inline-flex;align-items:center;gap:2px;margin-left:.3em;font-size:1em;vertical-align:middle;translate:0 -.05em}.titleStreak .fireIcon,.victoryTitle .fireIcon{width:1em;height:1em}.crownIcon{width:1em;height:1em;vertical-align:-.125em;stroke:currentColor;fill:none;flex-shrink:0}.victoryTitle .crownIcon,.onlineMatchResultTitle .crownIcon{width:1em;height:1em}.progressBarContainer{display:flex;flex-direction:column;gap:2px;flex:3 1 0;min-width:0}.progressBarLabels{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.progressText{font-size:12px;font-weight:500;color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}.progressPuzzleIcon{width:12px;height:12px}.progressBarTrack{width:100%;height:12px;background:#fff;border:2px solid white;border-radius:5px;overflow:hidden}.progressBarFill{height:100%;background:var(--player);border-radius:3px;transition:width .4s ease-out}@keyframes progressPulse{0%{transform:scale(1)}30%{transform:scale(1.15)}50%{transform:scale(.95)}70%{transform:scale(1.05)}to{transform:scale(1)}}#progressBar.progressBarContainer{width:var(--boardWidth, 100%);flex:none;margin:0 auto 4px;padding:0 16px;box-sizing:border-box;opacity:0;transition:opacity .2s ease-out}#progressBar.progressBarContainer.ready{opacity:1}#progressBar .progressText{font-size:14px;font-weight:600}.statsBar .progressPuzzleIcon{width:16px;height:16px}.progressBarContainer.level-up{animation:progressPulse .4s ease-out}.tutorialPuzzleContent{gap:clamp(12px,3vw,20px);align-items:center;justify-content:center;padding-top:90px;padding-bottom:0;box-sizing:border-box}.tutorialPuzzleListWrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:clamp(320px,50vw,560px);margin:0 auto;padding:0 clamp(12px,2vw,20px);box-sizing:border-box}.tutorialPuzzleListProgressText{font-size:clamp(14px,3vw,20px);font-weight:500;color:#fff;display:inline-flex;align-items:center;gap:4px}.tutorialPuzzleListProgressText .progressPuzzleIcon{width:1em;height:1em}.tutorialPuzzleListProgressBar{width:100%;min-width:0;height:clamp(8px,1.5vw,14px);background:#fff;border:2px solid white;border-radius:clamp(6px,1vw,8px);overflow:hidden;box-sizing:border-box}.tutorialPuzzleListProgressFill{height:100%;background:var(--player);border-radius:3px;transition:width .3s ease}.tutorialPuzzleList{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:clamp(8px,2vw,14px);width:100%;padding:0;box-sizing:border-box}.tutorialPuzzleBtn{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(2px,1vw,6px);color:var(--player);background:#fff;border:2px solid white;border-radius:clamp(12px,2.5vw,18px);cursor:pointer;transition:transform .15s ease,opacity .15s ease;padding:clamp(6px,1.5vw,12px);min-width:0;min-height:0;overflow:hidden}.tutorialPuzzleBtn:hover{transform:scale(1.05)}.tutorialPuzzleBtn:active{transform:scale(.95)}.tutorialPuzzleNum{font-size:clamp(12px,3vw,24px);font-weight:700;line-height:1;white-space:nowrap}.tutorialPuzzleBest{display:flex;flex-direction:column;align-items:center;gap:clamp(2px,.5vw,4px);font-size:clamp(8px,1.5vw,12px);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2;min-width:0;min-height:1.2em;flex-shrink:1}.tutorialBestTime{display:flex;align-items:center;gap:clamp(2px,.5vw,4px);white-space:nowrap}.tutorialBestIcon{width:clamp(12px,2vw,16px);height:clamp(12px,2vw,16px);stroke:currentColor;stroke-width:2;fill:none;flex-shrink:0}.tutorialPuzzleBtn.completed{color:#fff;background:var(--player)}.victoryTutorialButtons{display:flex;gap:12px}.victoryTutorialButtons .victoryBtn{display:flex;align-items:center;justify-content:center;padding:12px 20px}.victoryTutorialButtons .btnIcon{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none}.victoryTutorialCompleted{display:flex;flex-direction:column;align-items:center;gap:16px}.victoryTutorialCompleted .tutorialCompletedText{color:#fff;font-size:18px;font-weight:600}.victoryTutorialCompleted .victoryBtn{display:flex;align-items:center;justify-content:center;padding:12px 20px}.victoryTutorialCompleted .btnIcon{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;fill:none}.tutorialSetDropdown{position:relative;width:100%;margin-bottom:clamp(8px,2vw,16px);display:none}.tutorialSetDropdownBtn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:14px;font-weight:600;color:var(--player);background:#fff;border:2px solid white;border-radius:12px;cursor:pointer}.tutorialSetDropdownChevron{stroke:var(--player);stroke-width:2.5;flex-shrink:0;transition:transform .2s ease}.tutorialSetDropdown.open .tutorialSetDropdownChevron{transform:rotate(180deg)}.tutorialSetDropdownMenu{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:12px;overflow:hidden;z-index:10;box-shadow:0 4px 16px #00000026}.tutorialSetDropdownItem{width:100%;display:flex;align-items:center;padding:10px 16px;font-size:14px;font-weight:500;color:var(--player);background:transparent;border:none;border-radius:0;cursor:pointer;transition:background .1s ease}.tutorialSetDropdownItem:hover{background:#6f78441a}.tutorialSetDropdownItem.selected{font-weight:700}.tutorialSetDropdownItemProgress{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--player);opacity:.6}.devRangeRow{display:flex;align-items:center;justify-content:center;gap:10px}.devRangeLabel{font-size:13px;font-weight:600;color:#fffc;width:40px;text-align:right}.devRangeSelect{padding:6px 24px 6px 10px;font-size:14px;font-weight:600;color:var(--player);background:#fff;border:2px solid white;border-radius:8px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236f7844' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:12px;min-width:50px}.devDailyTester{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(96vw,1180px)}.devDailyRow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.devDailyLabel{font-size:12px;font-weight:600;color:#ffffffd9;letter-spacing:.3px}.devDailySelect{width:clamp(220px,50vw,320px);padding:8px 30px 8px 14px;font-size:13px;font-weight:600;color:var(--player);background:#fff;border:2px solid white;border-radius:10px;cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236f7844' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19.5 8.25l-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}.devDailyActions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.devDailyBtnCol{display:flex;flex-direction:column;gap:4px;align-items:stretch}.devDailyBtn{padding:8px 12px;border-radius:10px;border:2px solid white;background:#fff;color:var(--player);font-size:12px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.devDailySaveBtn{font-size:11px;padding:6px 10px;opacity:.85}.devDailySaveBtn--match{background:#2ecc71;border-color:#2ecc71;color:#fff;opacity:1}.devDailySaveBtn--mismatch{background:#ffe5e5;border-color:#e74c3c;color:#c0392b;opacity:.65}.devDailySolveBtn{font-size:12px;padding:8px 14px}.editorRandomActions{margin-top:2px}.editorRandomActions .devDailyLabel{margin-right:2px}.editorRandomBtn{padding:7px 10px}.devCustomPanel{width:min(100%,640px);display:flex;flex-direction:column;gap:8px;padding:10px;color:var(--player);background:#fffffff5;border:2px solid rgba(255,255,255,.98);border-radius:8px}.devCustomHeader,.devCustomControls,.devCustomActions{display:flex;align-items:center;gap:8px}.devCustomHeader{justify-content:space-between}.devCustomTitle{font-size:13px;font-weight:850;color:var(--player)}.devCustomControls{flex-wrap:wrap}.devCustomTitleInput{flex:1 1 220px;min-width:0;min-height:36px;padding:7px 10px;border:2px solid rgba(111,120,68,.2);border-radius:8px;color:var(--player);background:#fff;font-size:13px;font-weight:700}.devCustomSelect{width:100%;max-width:none;border-color:#6f784433}.devCustomMeta{min-height:16px;font-size:12px;font-weight:650;color:#6f7844b8;overflow-wrap:anywhere}.devDailyBtn:hover{transform:scale(1.04)}.devDailyBtn:active{transform:scale(.97)}.devDailyBtn:disabled{opacity:.5;cursor:not-allowed;transform:none}.devDailyBtn[data-feedback=working]{opacity:.8}.devDailyBtn[data-feedback=ok]{background:#2ecc71;border-color:#2ecc71;color:#fff;opacity:1}.devDailyBtn[data-feedback=warning]{background:#fff2c8;border-color:#d19b18;color:#7a5208;opacity:1}.devDailyBtn[data-feedback=error]{background:#ffe5e5;border-color:#e74c3c;color:#c0392b;opacity:1}.devDailyStatus{min-height:16px;font-size:12px;font-weight:600;color:#ffffffbf;text-align:center}.devDailyStatus[data-state=error]{color:#ffd2c8f2}.devDailyStatus[data-state=ok]{color:#fffffff2}.devDailyStatus[data-state=warning]{color:#ffebaafa}.editorDailyTester{margin-top:4px}.devWeekPreview{width:100%;padding:10px;color:var(--player);background:#fffffff5;border:2px solid rgba(255,255,255,.98);border-radius:8px}.devWeekPreviewHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.devWeekPreviewControls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.devWeekPreviewFilters,.devWeekPreviewViewToggles{display:inline-flex;padding:3px;gap:3px;background:#6f78441a;border:1px solid rgba(111,120,68,.16);border-radius:8px}.devWeekPreviewFilter,.devWeekPreviewViewBtn{min-height:28px;padding:0 9px;border:0;border-radius:6px;color:#6f7844b8;background:transparent;font-size:11px;font-weight:850;cursor:pointer}.devWeekPreviewFilter.selected,.devWeekPreviewViewBtn.selected{color:#fff;background:var(--player)}.devWeekPreviewTitle{font-size:13px;font-weight:800;color:var(--player);line-height:1.2}.devWeekPreviewMeta{min-height:14px;margin-top:2px;font-size:11px;font-weight:650;color:#6f7844b8;line-height:1.25}.devWeekPreviewRefresh{flex:0 0 auto;padding:6px 9px;border-color:#6f784447}.devWeekPreviewBody{display:block;width:100%;overflow-x:auto;overflow-y:visible;padding:2px 0 10px}.devWeekPreviewBody--week{display:block;overflow-x:auto;scroll-snap-type:none}.devWeekGalleryStrip{display:flex;gap:14px;width:max-content;min-width:100%;scroll-snap-type:x proximity}.devWeekVerifyReport{width:100%;margin-bottom:12px;padding:10px;color:var(--player);background:#6f784414;border:1px solid rgba(111,120,68,.18);border-radius:8px}.devWeekVerifyReport[data-state=error]{background:#9a4b1714;border-color:#9a4b1747}.devWeekVerifyReport[data-state=warning]{background:#9a7e1714;border-color:#9a7e1747}.devWeekVerifyReportHeader{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.devWeekVerifyReportHeading{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.devWeekVerifyReportTitle{font-size:13px;font-weight:900}.devWeekVerifyCounters{display:flex;align-items:center;gap:6px}.devWeekVerifyCounter{padding:3px 7px;border:1px solid rgba(111,120,68,.18);border-radius:999px;background:#ffffffa3;color:#6f7844db;font-size:10px;font-weight:900;line-height:1;white-space:nowrap}.devWeekVerifyReportTools{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.devWeekVerifyReportMessage{color:#6f7844b8;font-size:11px;font-weight:750;text-align:right}.devWeekVerifyIssueList{display:grid;gap:6px}.devWeekVerifyIssue{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 8px;background:#ffffffb8;border-radius:7px}.devWeekVerifyIssue[data-severity=error]{color:#8a2f1c}.devWeekVerifyIssueText{min-width:0;overflow-wrap:anywhere;font-size:11px;font-weight:750;line-height:1.25}.devWeekVerifyIssueActions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.devWeekVerifyLoadBtn{min-height:28px;padding:0 9px;border:1px solid rgba(111,120,68,.24);border-radius:7px;color:var(--player);background:#fff;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}.devWeekVerifyToggleAllBtn{min-height:28px;padding:0 9px;border:1px solid rgba(111,120,68,.24);border-radius:7px;color:var(--player);background:#ffffffd1;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}.devWeekVerifyReportEmpty{color:#6f7844b3;font-size:11px;font-weight:750}.devWeekMatrix{display:grid;grid-template-columns:74px repeat(3,max-content);gap:10px;align-items:start;width:max-content;min-width:100%}.devWeekMatrixCorner,.devWeekMatrixColHead,.devWeekMatrixDayHead{position:sticky;background:#f6f7f2fa;z-index:1}.devWeekMatrixCorner{left:0;top:0;min-height:30px;z-index:3}.devWeekMatrixColHead{top:0;padding:8px 10px;color:var(--player);border-bottom:1px solid rgba(111,120,68,.2);font-size:12px;font-weight:900;text-align:center}.devWeekMatrixDayHead{left:0;display:flex;flex-direction:column;gap:4px;min-height:100%;padding:12px 8px;color:var(--player);border-right:1px solid rgba(111,120,68,.16);font-size:12px;font-weight:900}.devWeekMatrixDayHead span:last-child{color:#6f78449e;font-size:11px}.devWeekMatrixDayHead.previousWeek{color:#364c68;background:#e6ecf4fa;border-right-color:#485f8042}.devWeekMatrixDayHead.previousWeek span:last-child{color:#364c68b8}.devWeekMatrixCell{min-width:0}.devWeekMatrixCell.previousWeek{padding-bottom:4px}.devWeekMatrixCell .devWeekPreviewBoardCard{scroll-snap-align:none}.devWeekPreviewBoardCard{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;width:var(--devWeekPreviewCardW, max-content);max-width:none;padding:10px;color:var(--player);background:#6f784413;border:1px solid rgba(111,120,68,.18);border-radius:8px;cursor:pointer;text-align:left;scroll-snap-align:start}.devWeekPreviewBoardCard.selected{border-color:#6f78449e;background:#6f784424}.devWeekPreviewBoardCard.loaded{box-shadow:0 0 0 2px #6f784485 inset}.devWeekPreviewBoardCard.warning{border-color:#b4740f85;background:#b4740f17}.devWeekPreviewBoardCard.previousWeek{border-color:#485f806b;background:#485f801c}.devWeekPreviewContextBadge{align-self:flex-start;margin-top:-3px;padding:3px 7px;color:#364c68;background:#485f8029;border:1px solid rgba(72,95,128,.28);border-radius:999px;font-size:10px;font-weight:900;line-height:1;text-transform:uppercase}.devWeekPreviewBoardHead{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin-bottom:5px;color:var(--player);font-size:11px;font-weight:800;line-height:1}.devWeekPreviewBoardHead span:last-child{color:#6f78449e;font-size:10px}.devWeekPreviewBoardButton{display:block;width:max-content;padding:0;border:0;color:inherit;background:transparent;cursor:pointer}.devWeekPreviewBoardButton:hover .devWeekPreviewGrid{outline:2px solid rgba(111,120,68,.7);outline-offset:4px}.devWeekPreviewGrid{display:grid;gap:4px;width:max-content;max-width:none;padding:10px;place-content:center;background:var(--player);border-radius:12px}.devWeekPreviewBoardFoot{overflow:hidden;color:#6f7844b3;font-size:10px;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.devWeekPreviewScoreBadge{align-self:flex-start;padding:4px 7px;color:#3f4725;background:#ffffffb8;border:1px solid rgba(111,120,68,.18);border-radius:7px;font-size:10px;font-weight:900;line-height:1}.devWeekPreviewScoreBadge[data-tone=strong]{color:#255033;background:#ddf7e4e6;border-color:#408b5247}.devWeekPreviewScoreBadge[data-tone=good]{color:#3f4725;background:#ffffffc7}.devWeekPreviewScoreBadge[data-tone=review]{color:#7a5208;background:#fff2c8e6;border-color:#b4740f52}.devWeekPreviewScoreBadge[data-tone=retune]{color:#8a2f1c;background:#ffe5e5e6;border-color:#b4462a52}.devWeekPreviewScoreReason{margin-top:-4px;color:#6f7844b8;font-size:10px;font-weight:750;line-height:1.25}.devWeekPreviewWarning{padding:5px 7px;color:#7a5208;background:#fff2c8e6;border:1px solid rgba(180,116,15,.32);border-radius:7px;font-size:10px;font-weight:900;line-height:1.2}.devWeekPreviewHints{width:100%;min-width:0;padding-top:2px;color:#6f7844db}.devWeekPreviewHintsTitle{margin-bottom:4px;font-size:10px;font-weight:900;text-transform:uppercase}.devWeekPreviewSolution{margin-bottom:5px;padding:4px 6px;overflow-wrap:anywhere;color:#6f7844eb;background:#ffffff94;border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;font-weight:800;line-height:1.25}.devWeekPreviewHintList{margin:0;padding-left:18px;font-size:11px;font-weight:700;line-height:1.35;white-space:normal}.devWeekPreviewHintList li+li{margin-top:3px}.devWeekPreviewNoHints{font-size:11px;font-weight:700;color:#6f78449e}.devWeekPreviewEmpty{padding:8px 4px;color:#6f7844ad;font-size:11px;font-weight:750;line-height:1.25;text-align:center}.devCdnUploadPanel{width:100%;max-width:1180px;margin:0 auto;padding:12px;border:2px solid rgba(111,120,68,.16);border-radius:8px;background:#ffffffb8}.devCdnUploadHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.devCdnUploadTitle{color:var(--player);font-size:14px;font-weight:900;line-height:1.2}.devCdnUploadMeta{margin-top:2px;color:#6f7844b3;font-size:11px;font-weight:750}.devCdnUploadControls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}.devCdnUploadField{display:flex;flex-direction:column;gap:4px;min-width:0}.devCdnUploadField span{color:#6f7844c7;font-size:10px;font-weight:900;text-transform:uppercase}.devCdnUploadField input{width:100%;min-height:36px;padding:7px 9px;color:var(--player);background:#fff;border:2px solid rgba(111,120,68,.2);border-radius:8px;font-size:13px;font-weight:800}.devCdnUploadCheck{min-height:36px;display:inline-flex;align-items:center;gap:7px;color:var(--player);font-size:12px;font-weight:800;white-space:nowrap}.devCdnUploadActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.devCdnUploadResult{min-height:78px;max-height:220px;overflow:auto;margin:10px 0 0;padding:10px;white-space:pre-wrap;color:#f4f4f0;background:#20241ceb;border-radius:8px;font-size:12px;line-height:1.45;cursor:text;user-select:text;-webkit-user-select:text;-ms-user-select:text;touch-action:pan-x pan-y}@media(max-width:640px){.devCdnUploadControls{grid-template-columns:1fr}}.workflowGenOverlay{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;padding:18px;background:#14181494}.workflowGenOverlay[hidden]{display:none}.workflowGenDialog{width:min(92vw,620px);max-height:min(88vh,720px);overflow:auto;padding:18px;color:var(--player);background:#fffffffa;border:2px solid white;border-radius:8px;box-shadow:0 16px 48px #00000047}.workflowGenHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.workflowGenHeader h2{margin:0;font-size:18px;line-height:1.2;color:var(--player)}.workflowGenIconBtn{width:34px;height:34px;border:2px solid rgba(111,120,68,.22);border-radius:8px;color:var(--player);background:#fff;font-size:22px;font-weight:700;line-height:1;cursor:pointer}.workflowGenGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.workflowGenField{display:flex;flex-direction:column;gap:5px;min-width:0}.workflowGenField span{font-size:11px;font-weight:800;color:#6f7844c7;text-transform:uppercase}.workflowGenField input,.workflowGenField select{width:100%;min-height:36px;padding:7px 9px;border:2px solid rgba(111,120,68,.2);border-radius:8px;color:var(--player);background:#fff;font-size:13px;font-weight:700}.workflowGenDifficultyRow,.workflowGenOptionRow{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:14px}.workflowGenDifficultyRow label,.workflowGenOptionRow label{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--player)}.workflowGenSeed{margin-top:14px}.workflowGenActions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.workflowGenActions .devDailyBtn{border-color:#6f784447}.workflowGenResult{min-height:96px;max-height:240px;overflow:auto;margin:14px 0 0;padding:12px;white-space:pre-wrap;color:#f4f4f0;background:#20241ceb;border-radius:8px;font-size:12px;line-height:1.45}@media(max-width:640px){.workflowGenGrid{grid-template-columns:1fr}}.editorContent{gap:14px;padding:clamp(12px,3vw,20px);padding-top:80px;padding-bottom:calc(96px + env(safe-area-inset-bottom,0px));justify-content:flex-start;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.editorContent>*{flex-shrink:0}.editorDimControls{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}.editorWeekBtn{padding:8px 12px;white-space:nowrap}.editorPalette{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.editorNumbers{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}.editorNumbers .editorToolBtn{width:38px;height:38px;border-radius:9px;font-size:14px}.editorSignToggle{font-weight:700}.editorSignToggle.negative{border-color:#fff9}.editorToolBtn{width:46px;height:46px;border-radius:11px;border:2px solid rgba(255,255,255,.3);background:transparent;color:#ffffffb3;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:transform .15s ease,opacity .15s ease,background-color .15s ease,color .15s ease,border-color .15s ease}.editorToolBtn:hover{border-color:#ffffff80;color:#fff}.editorToolBtn.selected{background:#fff;color:var(--player);border-color:#fff;font-weight:700}.editorGridWrap{display:flex;align-items:center;justify-content:center;width:100%;overflow:auto}.editorGrid{display:grid;gap:4px;touch-action:none}.editorCell{width:52px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;font-weight:600;transition:transform .1s ease;user-select:none;-webkit-user-select:none}.editorCell:active{transform:scale(.92)}.editorCell[data-state=empty]{background:#ffffff26;color:#fff6}.editorCell[data-state=hole]{background:#0003;border:2px dashed rgba(255,255,255,.2);color:transparent}.editorCell[data-state=player]{background:#fff;color:var(--player);font-weight:900}.editorCell[data-state=number]{background:#fff;color:var(--fg)}.editorCell[data-state=op]{background:#fff;color:var(--fg);font-size:20px}.editorActions{display:flex;gap:14px;align-items:center;justify-content:center}.editorTransforms{display:flex;gap:14px;align-items:center;justify-content:center;margin-top:10px}.editorActionBtn.editorTransformBtn{font-size:22px;font-weight:600;padding:0;line-height:1}.editorShuffleSolveControl{display:flex;align-items:center;gap:6px}.editorShuffleSolveInput{width:54px;height:36px;border:none;border-radius:8px;background:#fff;color:var(--player);font:700 16px/1 inherit;text-align:center;outline:none}.editorShuffleSolveInput:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--player) 45%,transparent)}.editorActionBtn{width:50px;height:50px;border-radius:50%;border:none;background:#fff;color:var(--player);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:11px;transition:transform .15s ease,opacity .15s ease}.editorActionBtn:hover{transform:scale(1.05)}.editorActionBtn:active{transform:scale(.95)}.editorActionBtn .btnIcon{width:100%;height:100%;stroke:var(--player);stroke-width:1.5;fill:none}.editorToast{position:fixed;bottom:40px;left:50%;transform:translate(-50%) translateY(20px);background:#000c;color:#fff;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:200;white-space:nowrap}.editorToast.show{opacity:1;transform:translate(-50%) translateY(0)}.gameToast{position:fixed;bottom:40px;left:50%;transform:translate(-50%) translateY(20px);background:#000c;color:#fff;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:200;white-space:nowrap}.gameToast.show{opacity:1;transform:translate(-50%) translateY(0)}.boardWrap,.board{contain:layout paint}.tileLayer{will-change:transform;transform:translateZ(0)}@media(prefers-reduced-motion:reduce){.victory,.deleteConfirmBackdrop{backdrop-filter:none;-webkit-backdrop-filter:none}}.onlineSetupContent{gap:24px;width:300px;overflow:visible;--scale-max: 1.3;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 300px)), var(--scale-max));--scale-h: clamp(.85, tan(atan2(100vh - 140px, 400px)), var(--scale-max));--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.onlineModeTab{display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;border-radius:12px;background:#ffffff1a;align-self:center;padding:3px;width:280px}.onlineModeTab:before{content:"";position:absolute;inset:3px;width:calc(33.333% - 2px);background:#fff;border-radius:9px;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(var(--tab-x, 0));z-index:0;pointer-events:none}.onlineModeTabBtn{padding:7px 0;border:none;background:transparent;color:#ffffff8c;font-size:13px;font-weight:600;cursor:pointer;transition:color .2s ease;white-space:nowrap;position:relative;z-index:1;text-align:center;line-height:1}.onlineModeTabBtn.selected{color:var(--player)}.onlineView{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.onlineView[hidden]{display:none}.onlineLandingIcon{opacity:.6;margin-bottom:4px}.onlineLandingTitle{font-size:22px;font-weight:700;color:#fff}.onlineLandingSubtitle{font-size:14px;color:#ffffff8c;margin-top:-8px}.onlineLandingBtns{display:flex;flex-direction:column;gap:12px;width:100%;max-width:260px;margin-top:8px}.onlineJoinBackBtn{padding:8px 20px;border-radius:14px;border:2px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:transform .15s ease}.onlineJoinBackBtn:active{transform:scale(.96)}#onlineViewJoin{max-width:260px}.onlineJoinTitle{font-size:16px;font-weight:600;color:#fffc}.customSelect{position:relative;display:inline-flex}.customSelectTrigger{display:flex;align-items:center;gap:6px;padding:10px 16px;border-radius:999px;border:2px solid rgba(255,255,255,.3);background:transparent;color:#ffffffd9;font-size:15px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease;white-space:nowrap;line-height:1}.customSelectTrigger:hover{border-color:#ffffff80;color:#fff}.customSelect.open .customSelectTrigger{border-color:#fff;background:#ffffff26;color:#fff}.customSelectValue{display:inline-block;text-align:center}#soloSprintDiffSelect .customSelectValue,#soloTimedDiffSelect .customSelectValue{width:58px}#soloSprintCountSelect .customSelectValue{width:18px}#soloTimedDurSelect .customSelectValue{width:42px}.customSelectChevron{width:12px;height:12px;stroke:currentColor;fill:none;flex-shrink:0;transition:transform .2s ease}.customSelect.open .customSelectChevron{transform:rotate(180deg)}.customSelectMenu{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);min-width:100%;background:color-mix(in srgb,var(--player) 100%,black 20%);border-radius:14px;padding:4px;z-index:10;display:flex;flex-direction:column;gap:2px}.customSelectOption{padding:8px 14px;border:none;border-radius:10px;background:transparent;color:#fffc;font-size:14px;font-weight:600;cursor:pointer;transition:background .1s ease;text-align:center;white-space:nowrap;line-height:1}.customSelectOption:hover{background:#ffffff26}.customSelectOption.selected{background:#fff;color:var(--player)}.lobbySettingsSlot{display:grid;width:100%}.lobbySettingsRow{grid-row:1;grid-column:1;display:flex;align-items:center;gap:14px;justify-content:center;padding:4px 0}.lobbySettingsRow[hidden]{visibility:hidden;pointer-events:none;display:flex}.lobbySettingsIcon{width:28px;height:28px;stroke:#fff9;stroke-width:1.5;fill:none;flex-shrink:0}.onlineActionBtn{padding:12px 28px;border-radius:14px;border:none;background:#fff;color:var(--player);font-size:clamp(14px,3.5vw,16px);font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease;min-width:100px}.onlineActionBtn:active{transform:scale(.96)}.onlineActionBtn:disabled{opacity:.5;pointer-events:none}.onlineActionBtnOutline{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}.onlineCodeRow{display:flex;align-items:stretch;gap:8px;width:100%}.onlinePasteBtn{width:44px;flex-shrink:0;padding:6px;border-radius:14px;border:none;background:#fff3;color:#fff;cursor:pointer;transition:transform .15s ease;display:flex;align-items:center;justify-content:center}.onlinePasteBtn:active{transform:scale(.95)}.onlineCodeInput{flex:1;min-width:0;padding:10px 12px;border-radius:14px;border:2px solid rgba(255,255,255,.3);background:#ffffff26;color:#fff;font-size:18px;font-weight:700;text-align:center;letter-spacing:4px;text-transform:uppercase;outline:none;font-family:inherit}.onlineCodeInput:focus{border-color:#fff}.onlineCodeInput::placeholder{color:#ffffff80;letter-spacing:4px;font-weight:500}.onlineLobbyContent{gap:16px;width:300px;--scale-max: 1.3;--scale-w: clamp(.85, tan(atan2(100vw - 40px, 300px)), var(--scale-max));--scale-h: clamp(.85, tan(atan2(100vh - 140px, 500px)), var(--scale-max));--scale: min(var(--scale-w), var(--scale-h));transform:scale(var(--scale));transform-origin:center center}.lobbyCodeGroup{display:flex;flex-direction:column;align-items:center;gap:4px}.lobbyCodeRow{display:flex;align-items:center;gap:10px}.lobbyCodeLabel{font-size:13px;color:#fff9;text-transform:uppercase;letter-spacing:1px;font-weight:600}.lobbyCode{font-size:40px;font-weight:800;letter-spacing:8px;color:#fff;font-family:inherit}.lobbyCopyBtn{width:36px;height:36px;padding:6px;border-radius:10px;border:2px solid transparent;background:#fff3;color:#fff;cursor:pointer;transition:transform .15s ease;display:flex;align-items:center;justify-content:center}.lobbyCopyBtn:active{transform:scale(.95)}.lobbyPlayers{display:flex;align-items:flex-start;gap:16px}.lobbyPlayer{display:flex;flex-direction:column;align-items:center;gap:6px}.lobbyPlayerDot{width:40px;height:40px;border-radius:50%;border:1px solid white;background:var(--muted);transition:background .2s ease}.lobbyPlayerLabel{font-size:13px;color:#ffffffb3;font-weight:500}.waiting-dots:after{content:"...";display:inline-block;width:1.2em;text-align:left;animation:waitingDots .8s steps(1) infinite}@keyframes waitingDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.lobbyVs{font-size:16px;font-weight:700;color:#ffffff80;padding:0 4px;height:40px;display:flex;align-items:center}.lobbyVsScore{font-size:18px;color:#ffffffd9;letter-spacing:1px}.lobbyModeInfo{display:flex;flex-direction:column;align-items:center}.lobbyDifficulty{font-size:13px;color:#ffffffb3;font-weight:500}.lobbyStartBtn{padding:12px 32px;border-radius:16px;border:none;background:#fff;color:var(--player);font-size:16px;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.lobbyStartBtn[hidden]{display:none}.lobbyStartBtn:active{transform:scale(.96)}.lobbyHostWait{padding:10px 20px;border-radius:14px;border:2px dashed rgba(255,255,255,.25);color:#fffc;font-size:13px;font-weight:600;letter-spacing:.5px;text-align:center}.lobbyHostWait[hidden]{display:none}.lobbyCancelBtn{padding:8px 20px;border-radius:14px;border:2px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:transform .15s ease}.lobbyCancelBtn:active{transform:scale(.96)}.onlineScoreBar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:8;display:flex;justify-content:center;padding:8px 16px;pointer-events:none}.onlineScoreBar[hidden]{display:none}.onlineScoreInner{display:flex;align-items:center;gap:12px;background:var(--panel);border-radius:20px;padding:6px 16px;box-shadow:0 2px 8px var(--shadow2);pointer-events:auto}.onlineScoreSide{display:flex;align-items:center;gap:6px}.onlineScoreDot{width:14px;height:14px;border-radius:50%;background:var(--muted)}.onlineBarLabel{font-size:12px;font-weight:600;color:#000;white-space:nowrap}.onlineScoreRound{font-size:12px;font-weight:600;white-space:nowrap}.onlineTimedBar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:8;display:flex;justify-content:center;padding:8px 16px;pointer-events:none}.onlineTimedBar[hidden]{display:none}.onlineTimedBarInner{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:var(--panel);border-radius:20px;padding:8px 16px 10px;box-shadow:0 2px 8px var(--shadow2);pointer-events:auto;min-width:260px}.onlineTimedTimer{font-size:20px;font-weight:800;color:var(--fg);text-align:center;font-variant-numeric:tabular-nums;line-height:1}.onlineTimedTrackRow{display:flex;align-items:center;gap:10px}.onlineTimedTrack{position:relative;display:flex;flex:1;height:8px;border-radius:4px;overflow:hidden;background:#ffffff1a}.onlineTimedTrackCenter{position:absolute;left:50%;top:-1px;bottom:-1px;width:2px;transform:translate(-50%);background:#fff3;pointer-events:none}.onlineTimedTrackFill{height:100%;transition:width .4s ease-out}.onlineTimedTrackHost{width:50%;border-radius:4px 0 0 4px}.onlineTimedTrackGuest{width:50%;border-radius:0 4px 4px 0}.onlineTimedScoreSide{display:flex;align-items:center;gap:5px;flex-shrink:0}.onlineTimedScoreDot{width:10px;height:10px;border-radius:50%;background:var(--muted)}.onlineTimedScoreNum{font-size:16px;font-weight:800;color:var(--fg);font-variant-numeric:tabular-nums}.onlineSprintBar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:8;display:flex;justify-content:center;padding:8px 16px;pointer-events:none}.onlineSprintBar[hidden]{display:none}.onlineSprintBarInner{display:flex;align-items:center;gap:12px;background:var(--panel);border-radius:20px;padding:8px 16px;box-shadow:0 2px 8px var(--shadow2);pointer-events:auto}.onlineSprintTimer{font-size:20px;font-weight:800;color:var(--fg);font-variant-numeric:tabular-nums;line-height:1}.onlineSprintDots{display:flex;flex-wrap:wrap;gap:4px;max-width:66px}.onlineSprintDots .sprintDot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--dot-color, rgba(255,255,255,.25));background:transparent;box-sizing:border-box}.onlineSprintDots .sprintDot.filled{background:var(--dot-color)}#onlineSprintGuestDots,#onlineScoreGuestDots{flex-direction:row-reverse}.onlineSprintBar.soloSprint .onlineSprintBarInner{flex-direction:column;align-items:center;gap:6px}.onlineSprintBar.soloSprint .onlineBarLabel,.onlineSprintBar.soloSprint #onlineSprintGuestDots{display:none}.onlineSprintBar.soloSprint .onlineSprintTimer{order:-1}.onlineSprintBar.soloSprint .onlineSprintDots{justify-content:center;flex-wrap:nowrap;max-width:none}.onlineTimedBar.soloTimed .onlineTimedTrackRow{display:none}.onlineCountdown{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0000008c;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.onlineCountdown[hidden]{display:none}.countdownTitle{position:absolute;top:24px;left:0;right:0;text-align:center;font-size:24px;font-weight:700;color:#fff}.countdownNumber{font-size:96px;font-weight:900;color:#fff;animation:countdownPop .6s ease-out}@keyframes countdownPop{0%{transform:scale(2);opacity:0}50%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:.8}}.onlineWaiting{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.onlineWaiting[hidden]{display:none}.onlineWaitingContent{text-align:center}.onlineWaitingText{font-size:18px;font-weight:600;color:#fff}.onlineMatchResult{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.onlineMatchResult[hidden]{display:none}.onlineMatchResultContent{background:#00000059;border-radius:20px;padding:28px 24px;text-align:center;max-width:320px;width:calc(100% - 48px);color:#fff}.onlineMatchResultTitle{font-size:28px;font-weight:800;margin-bottom:8px;color:#fff}.onlineMatchResultScore{font-size:36px;font-weight:800;margin-bottom:16px;color:#fff}.matchResultScoreRow{display:flex;align-items:center;justify-content:center;gap:16px}.matchResultSide{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.matchResultValue{font-size:28px;font-weight:800}.matchResultDivider{font-size:14px;font-weight:400;opacity:.5;padding-bottom:16px}.matchResultLabel{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.55}.timedTiebreaker{font-size:13px;font-weight:500;color:#ffffff80;margin-top:6px}.onlineMatchResultRounds{display:flex;flex-direction:column;gap:4px;margin-bottom:20px;font-size:13px;color:#ffffffb3}.onlineMatchResultRoundItem{display:flex;justify-content:space-between;padding:4px 8px;border-radius:6px;background:#ffffff1a}.onlineRoundBreakdown{max-height:200px;margin-top:0}.onlineRoundBreakdown table{font-size:12px}.onlineRoundBreakdown tr.roundWin td{color:#4ade80}.onlineRoundBreakdown tr.roundLoss td{color:#f87171}.onlineRoundBreakdown tr.roundDraw td{color:#ffffff80}.onlineMatchResultActions{display:flex;gap:10px;justify-content:center}.onlineMatchResultActions .onlineActionBtn{background:#fff;color:var(--player)}.victoryOnlineRoundResult{font-size:14px;color:#fff;font-weight:500;text-align:center;padding:4px 0}.onlineRoundVictory{display:flex;flex-direction:column;align-items:center;width:100%}.onlineRoundVictoryScore{font-size:32px;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:2px}.roundComparison{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:12px}.roundCompLine{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:#fff9}.roundCompLabel{min-width:26px;font-weight:600}.roundCompIcon{width:14px;height:14px;flex-shrink:0;opacity:.6}.victoryContent:has(.onlineRoundVictory){gap:4px;padding:28px 32px}.victoryStats:has(.onlineRoundVictory){flex-direction:column;gap:0;width:100%}.statsContent{overflow:visible;justify-content:flex-start;padding-top:calc(max(env(safe-area-inset-top,24px),24px) + 60px);--scale-w: clamp(.85, tan(atan2(100vw - 40px, 360px)), 2);--scale-h: clamp(.85, tan(atan2(100vh - 100px, 540px)), 2);--scale: min(var(--scale-w), var(--scale-h))}.statsContentInner{display:flex;flex-direction:column;align-items:center;gap:16px;width:320px;transform:scale(var(--scale));transform-origin:center top}.statsTabBar{display:grid;grid-template-columns:repeat(4,1fr);position:relative;border-radius:12px;background:#ffffff1a;padding:3px;width:100%}.statsTabBar:before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/4);background:#fff;border-radius:9px;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(var(--tab-x, 0));z-index:0;pointer-events:none}.statsTabBtn{padding:7px 0;border:none;background:transparent;color:#ffffff8c;font-size:12px;font-weight:600;cursor:pointer;transition:color .2s ease;white-space:nowrap;position:relative;z-index:1;text-align:center;line-height:1}.statsTabBtn.selected{color:var(--player)}.statsTabSlot{display:grid;width:100%;min-height:0}.statsTabSlot>.statsTabPanel{grid-area:1 / 1;display:none;flex-direction:column;gap:14px;width:100%}.statsTabSlot>.statsTabPanel.active{display:flex}.statsHeroRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.statsHeroCard{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;border-radius:12px;background:#ffffff14}.statsHeroValue{font-size:28px;font-weight:600;color:#fff}.statsHeroPuzzles{display:inline-flex;align-items:center;gap:6px;line-height:1}.statsHeroPuzzles .statsHeroPuzzleIcon{width:1em;height:1em}.statsHeroStreak{display:inline-flex;align-items:center;gap:6px;line-height:1}.statsHeroStreak .fireIcon{width:1em;height:1em}.statsSection{display:flex;flex-direction:column;gap:6px}.statsSectionTitle{font-size:11px;color:#ffffff73;text-transform:uppercase;letter-spacing:1px;font-weight:700;padding:0 2px}.statsSectionRow{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:10px;background:#ffffff12;font-size:13px;color:#fff}.statsSectionRowLabel{color:#ffffffb3}.statsSectionRowValue{font-weight:700}.statsDiffRow{display:flex;justify-content:space-between;gap:6px}.statsDiffItem{flex:1;text-align:center;padding:8px 4px;border-radius:10px;background:#ffffff12;font-size:12px;font-weight:600;color:#ffffffb3;line-height:1.5}.statsStreakHero{display:flex;flex-direction:column;align-items:center;gap:2px;padding:18px 8px}.statsStreakNumber{font-size:48px;font-weight:600;color:#fff;line-height:1;display:inline-flex;align-items:center;gap:6px}.statsStreakNumber .fireIcon{width:1em;height:1em}.statsDailyList{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;-webkit-overflow-scrolling:touch}.statsDailyHeader{display:grid;grid-template-columns:1fr repeat(3,52px);gap:4px;padding:0 10px 4px;font-size:10px;color:#ffffff59;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.statsDailyHeader span:not(:first-child){justify-self:center}.statsDailyItem{display:grid;grid-template-columns:1fr repeat(3,52px);gap:4px;padding:7px 10px;border-radius:8px;background:#ffffff12;font-size:13px;color:#fff;align-items:center}.statsDailyDate{font-weight:600}.statsDailyTime{font-size:12px;font-variant-numeric:tabular-nums;color:#ffffffb3;justify-self:center}.statsDailyTime.empty{color:#fff3}.statsSpeedSubTab{display:grid;grid-template-columns:1fr 1fr;position:relative;border-radius:10px;background:#ffffff14;padding:3px}.statsSpeedSubTab:before{content:"";position:absolute;inset:3px;width:calc(50% - 3px);background:#ffffff26;border-radius:7px;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:translate(var(--sub-tab-x, 0));z-index:0;pointer-events:none}.statsSpeedSubBtn{padding:6px 0;border:none;background:transparent;color:#ffffff80;font-size:12px;font-weight:600;cursor:pointer;transition:color .2s ease;position:relative;z-index:1;text-align:center}.statsSpeedSubBtn.selected{color:#fff}.statsSpeedTable{width:100%;border-collapse:separate;border-spacing:0 6px;font-size:12px;color:#fff}.statsSpeedTable th{font-size:10px;color:#fff6;text-transform:uppercase;letter-spacing:.5px;font-weight:700;padding:0 0 6px;text-align:center}.statsSpeedTable th:first-child{text-align:left;padding-left:10px}.statsSpeedTable td{padding:7px 6px;text-align:center;font-variant-numeric:tabular-nums;background:#ffffff0d}.statsSpeedIcon{width:14px;height:14px;vertical-align:-2px;flex-shrink:0}.statsSpeedTable td:first-child{text-align:left;padding-left:10px;font-weight:600;color:#ffffffb3;border-radius:8px 0 0 8px}.statsSpeedTable td:last-child{border-radius:0 8px 8px 0}.statsSpeedTable thead th{padding-bottom:0}.statsSpeedTable .noRecord{color:#fff3}.statsSummary{display:flex;justify-content:center;gap:24px;width:100%}.statsSummaryItem{display:flex;flex-direction:column;align-items:center;gap:4px}.statsSummaryValue{font-size:28px;font-weight:800;color:#fff}.statsSummaryLabel{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:1px;font-weight:600}.statsOnlineRate{text-align:center;font-size:13px;color:#ffffff80}.statsMatchHistory{width:100%;max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:6px}.statsHistoryEntry{border-radius:10px;background:#ffffff1a;cursor:pointer;-webkit-tap-highlight-color:transparent}.statsHistoryRow{display:flex;align-items:center;padding:10px 12px;font-size:13px;color:#fff;min-height:40px;position:relative}.statsHistoryResult{font-weight:700;font-size:14px;width:20px;flex-shrink:0}.statsHistoryResult.win{color:#86efac}.statsHistoryResult.loss{color:#fca5a5}.statsHistoryResult.draw{color:#fff}.statsHistoryScore{position:absolute;left:50%;transform:translate(-50%);font-weight:600;font-variant-numeric:tabular-nums}.statsHistoryMode{margin-left:auto;color:#ffffff80;font-size:12px}.statsHistoryChevron{flex-shrink:0;margin-left:6px;color:#ffffff4d;transition:transform .2s ease}.statsHistoryEntry.expanded .statsHistoryChevron{transform:rotate(180deg)}.statsHistoryDetail{display:none;grid-template-columns:auto 1fr;gap:2px 12px;padding:6px 12px 10px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#fff9}.statsHistoryEntry.expanded .statsHistoryDetail{display:grid}.statsHistoryDetailLabel{color:#ffffff59}.statsEmptyState{text-align:center;color:#ffffff59;font-size:13px;padding:24px 0}.onlineMatchDetail{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:50}.onlineMatchDetail[hidden]{display:none}.onlineMatchDetailBackdrop{position:absolute;inset:0;background:#0009}.onlineMatchDetailCard{position:relative;background:var(--player);border-radius:16px;padding:20px;width:calc(100% - 48px);max-width:340px;color:#fff;z-index:1}.onlineMatchDetailHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.onlineMatchDetailTitle{font-size:16px;font-weight:700;color:#fff}.onlineMatchDetailClose{width:32px;height:32px;background:none;border:none;color:#fff9;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.onlineMatchDetailSummary{display:flex;justify-content:center;gap:16px;margin-bottom:12px;font-size:14px;font-weight:600}.onlineMatchDetailBreakdown .speedBreakdown{margin-top:0;padding-top:0;border-top:none}.onlineMatchDetailBreakdown .onlineRoundBreakdown{margin-top:0}.watchReplayBar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:8;display:flex;justify-content:center;padding:8px 16px;pointer-events:none}.watchReplayBar[hidden]{display:none}.watchReplayBarInner{display:flex;align-items:center;gap:10px;background:var(--panel);border-radius:20px;padding:6px 10px 6px 14px;box-shadow:0 2px 8px var(--shadow2);pointer-events:auto;min-width:180px}.watchReplayLabel{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex-shrink:0}.watchReplayTrack{flex:1;height:4px;border-radius:2px;background:var(--hair);overflow:hidden}.watchReplayTrackFill{height:100%;width:0%;border-radius:2px;background:var(--player);transition:width .15s ease}.watchReplayClose{background:none;border:none;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:2px;border-radius:50%;flex-shrink:0}.watchReplayClose:hover{color:var(--fg)}.speedRecordDetailWatchBtn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:12px;border:1.5px solid var(--hair2);background:none;color:var(--fg);font-size:13px;font-weight:600;cursor:pointer;margin-top:8px}.speedRecordDetailWatchBtn:hover{background:var(--hair)}.speedRecordDetailWatchBtn svg{stroke:currentColor;stroke-width:1.5}.speedSetupRecordWatchBtn{width:28px;height:28px;min-width:28px;min-height:28px;padding:6px;background:#fff;color:var(--player);border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.speedSetupRecordWatchBtn:hover{opacity:.9}
