:root{--cream:#f7f4ed;--panel:#fff;--ink:#20242b;--muted:#667085;--line:#dedede;--gold:#f4ca3a;--green:#769656;--green-dark:#5f7f45;--light-square:#f0d9b5;--dark-square:#b58863;--danger:#b42318;--shadow:0 12px 30px #0000001c;--sq-light:#eddab9;--sq-dark:#ae8a68;--hl:#ffd21f;--hl-a:.5;--hl-rgba:#ffd21f80;--w-body:#fff;--w-out:#161616;--w-det:#161616;--b-body:#000;--b-out:#161616;--b-det:#fff}.themedPiece.wSide{--body:var(--w-body);--outline:var(--w-out);--detail:var(--w-det)}.themedPiece.bSide{--body:var(--b-body);--outline:var(--b-out);--detail:var(--b-det)}.themedPiece .b{fill:var(--body);stroke:var(--outline)}.themedPiece .o{fill:none;stroke:var(--outline)}.themedPiece .d{fill:none;stroke:var(--detail)}.themedPiece .df{fill:var(--detail);stroke:var(--detail)}.themedPiece .dn{fill:var(--detail);stroke:none}*{box-sizing:border-box}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:var(--ink);background:#fff;border:1px solid #c9c9c9;border-radius:10px;padding:10px 14px;font-weight:700}button:hover:not(:disabled){background:#f2f4f7}button:focus-visible{outline-offset:2px;outline:4px solid #175cd359}select:focus-visible{outline-offset:2px;outline:4px solid #175cd359}input:focus-visible{outline-offset:2px;outline:4px solid #175cd359}button:disabled{cursor:wait;opacity:.72}.appShell{max-width:1220px;margin:auto;padding:18px}.appShell.embedded{padding:10px}.appShell.embedded .mainNav{margin:12px 0}.hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#0f2e1c,#1c8a45);border-radius:22px;grid-template-columns:1.3fr .7fr;align-items:center;gap:22px;padding:30px;display:grid}.hero h1{align-items:center;gap:14px;margin:0 0 8px;font-size:clamp(42px,6.5vw,68px);display:flex}.heroLogo{flex-shrink:0;width:auto;height:1.5em}.hero p{color:#e8f5ec}.appShell.embedded .hero{border-radius:14px;grid-template-columns:1fr auto;padding:14px 18px}.appShell.embedded .hero h1{margin:0;font-size:26px}.appShell.embedded .heroLogo{height:1.3em}.appShell.embedded .heroCard{gap:4px;padding:8px 12px}.fullscreenToggle.linkButton{color:#fff;white-space:nowrap;border:1px solid #fff6;border-radius:999px;padding:6px 10px;font-size:13px;text-decoration:none}.fullscreenToggle.linkButton:hover{background:#ffffff24}.eyebrow{text-transform:uppercase;letter-spacing:.12em;margin:0 0 8px;font-size:12px;font-weight:900}.primaryButton{background:var(--green);border-color:var(--green);color:#fff}.primaryButton:hover{background:var(--green-dark)!important}.heroCard{background:#ffffff1c;border:1px solid #ffffff47;border-radius:16px;gap:8px;padding:18px;display:grid}.mainNav{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.mainNav button{border-radius:999px}.activeNav{color:#fff;background:#222;border-color:#222}.navBadge{background:var(--danger);color:#fff;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:12px;font-weight:700;display:inline-block}.adminReports h3{margin:16px 0 8px;font-size:15px}.tagReportInboxList{gap:10px;margin:0;padding:0;list-style:none;display:grid}.tagReportInboxRow{border:1px solid var(--line);text-align:left;border-radius:12px;padding:10px 12px}.tagReportInboxRow.reviewed{opacity:.6}.tagReportInboxHeader{flex-wrap:wrap;align-items:baseline;gap:10px;font-size:13px;display:flex}.tagReportInboxRow p{margin:6px 0}.tagReportInboxTags{font-size:13px}.adminConfigPanel h3{margin:20px 0 8px;font-size:15px}.adminConfigList{gap:8px;margin:0;padding:0;list-style:none;display:grid}.adminConfigRatingList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.adminConfigRow{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.adminConfigName{margin-right:auto;font-weight:600}.adminConfigRow input[type=number]{width:90px}.adminConfigActions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.card,.trainerBoardPanel,.lessonPanel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:18px}.cardGrid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.settingsGrid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.muted{color:var(--muted)}.lessonChooser{margin-bottom:16px}.lessonButtons{grid-template-columns:repeat(5,minmax(130px,1fr));gap:8px;display:grid}.lessonButtons button{text-align:center;gap:4px;min-height:84px;display:grid}.lessonButtons button span:first-child{font-size:26px}.lessonButtons small{color:var(--muted)}.selectedLesson{border-color:var(--gold);box-shadow:0 0 0 3px #f4ca3a47}.comingSoonCard{text-align:center;padding:48px 20px}.largeIcon{font-size:56px}.trainerGrid{grid-template-columns:minmax(560px,1.2fr) minmax(300px,.8fr);align-items:start;gap:18px;display:grid}.lessonHeading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.lessonHeading h2{margin:0}.engineSelector{gap:5px;min-width:175px;font-weight:800;display:grid}.engineSelector select{border:1px solid #bbb;border-radius:9px;padding:10px}.boardFrame{justify-content:center;gap:6px;margin:14px auto;display:flex}.chessBoard{background:#222;border:5px solid #282828;border-radius:8px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);width:min(78vw,520px);height:min(78vw,520px);display:grid;overflow:hidden;box-shadow:0 10px 25px #0000003b}.boardSquare{border:0;border-radius:0;justify-content:center;align-items:center;min-width:0;padding:0;display:flex;position:relative}.lightSquare{background:var(--light-square)}.darkSquare{background:var(--dark-square)}.selectedSquare:after,.lastMoveSquare:after,.legalSquare:after{content:"";pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.selectedSquare:after{background:#f7d7408c}.lastMoveSquare:after{background:#ffeb3b57}.legalSquare:before{content:"";z-index:2;background:#1919194d;border-radius:50%;width:20%;height:20%;position:absolute}.chessPiece{z-index:3;filter:drop-shadow(0 3px 2px #00000047);font-size:clamp(31px,7.1vw,58px);line-height:1;position:relative}.whitePiece{color:#f7f7f7;text-shadow:1px 1px #333,-1px -1px #333}.blackPiece{color:#222;text-shadow:1px 1px #eee}.rankLabels{grid-template-rows:repeat(8,1fr);width:22px;font-weight:900;display:grid}.rankLabels div,.fileLabels div{justify-content:center;align-items:center;display:flex}.fileLabels{grid-template-columns:repeat(8,1fr);width:min(78vw,520px);height:24px;font-weight:900;display:grid}.statusCard{background:#f7f7f7;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:8px 18px;padding:12px;display:flex}.statusCard span{color:var(--muted)}.buttonRow{flex-wrap:wrap;justify-content:center;margin-top:10px;display:flex}.lessonPanel h3{margin-bottom:7px}.lessonPanel li{margin-bottom:8px;line-height:1.45}.goldButton{background:var(--gold);border-color:#d2aa17}.hintList p{border-left:4px solid var(--gold);background:#fff8d8;border-radius:8px;padding:10px}.toggleRow,.toggleCard{align-items:flex-start;gap:10px;display:flex}.toggleCard{border:1px solid var(--line);border-radius:12px;margin:10px 0;padding:13px}.toggleCard small{color:var(--muted);margin-top:4px;line-height:1.35;display:block}.engineNote{color:#344054;background:#eef4ff;border-radius:10px;margin-top:20px;padding:10px}footer{text-align:center;color:var(--muted);margin:26px 0 10px;font-size:13px}.dyslexiaMode{letter-spacing:.025em;font-family:Verdana,Tahoma,Arial,sans-serif;line-height:1.62}.largeText{font-size:118%}.highContrast{--cream:#fff;--panel:#fff;--ink:#000;--muted:#222;--line:#000;--light-square:#fff0a8;--dark-square:#4f331f}.reducedMotion *{transition:none!important;animation:none!important}@media (max-width:1000px){.trainerGrid{grid-template-columns:1fr}.lessonButtons{grid-template-columns:repeat(3,1fr)}}@media (max-width:760px){.appShell{padding:10px}.hero,.cardGrid,.settingsGrid{grid-template-columns:1fr}.lessonButtons{grid-template-columns:1fr 1fr}.lessonHeading{display:grid}.engineSelector{width:100%}.chessBoard,.fileLabels{width:min(88vw,520px)}.chessBoard{height:min(88vw,520px)}}@media (max-width:460px){.lessonButtons{grid-template-columns:1fr}.hero{padding:22px}}.movementLine:after{content:"";pointer-events:none;z-index:1;background:#4a90e23d;position:absolute;top:0;bottom:0;left:0;right:0}.coachCard{border-left:5px solid var(--green);background:#eef7e8;border-radius:12px;margin-top:12px;padding:13px 15px}.coachCard p{margin:5px 0 0;line-height:1.45}.boardOverlayWrap{position:relative}.coachOverlay{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14181fa3;border-radius:14px;justify-content:center;align-items:center;padding:18px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.coachOverlayCard{border:2px solid var(--gold);color:#20242b;background:#fff;border-radius:16px;width:min(92%,470px);padding:20px;box-shadow:0 18px 50px #00000047}.coachOverlayCard p:not(.eyebrow){font-size:1.08rem;line-height:1.55}.coachOverlayButtons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.kingHoverSquare:after{content:"";pointer-events:none;z-index:4;border:4px solid #236edce0;border-radius:9px;position:absolute;top:4px;bottom:4px;left:4px;right:4px}@media (max-width:760px){.coachOverlay{z-index:100;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}.coachOverlayCard{width:min(94vw,500px)}.coachOverlayButtons button{min-height:48px}}.boardSquare:disabled{cursor:default}.completionOverlay{z-index:30;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#12181fb8;border-radius:14px;justify-content:center;align-items:center;padding:18px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.completionCard{z-index:3;text-align:center;border:3px solid var(--gold);color:#20242b;background:#fff;border-radius:18px;width:min(92%,470px);padding:24px;animation:.42s ease-out both completionPop;position:relative;box-shadow:0 22px 60px #00000059}.completionCard h3{margin:5px 0 8px;font-size:1.6rem}.completionBadge{background:linear-gradient(145deg,#fff7bc,#f4ca3a);border-radius:50%;place-items:center;width:78px;height:78px;margin:0 auto 8px;font-size:48px;animation:.7s ease-out both badgeSpin;display:grid;box-shadow:0 8px 20px #0003}.confetti{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.confetti span{--x:calc((var(--i) * 37) % 100);left:calc(var(--x) * 1%);background:hsl(calc(var(--i) * 47deg) 82% 58%);width:9px;height:18px;transform:rotate(calc(var(--i) * 23deg));animation:confettiFall 1.9s calc((var(--i) % 7) * 70ms) ease-in forwards;border-radius:2px;position:absolute;top:-12%}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:.2;transform:translateY(650px)rotate(760deg)}}@keyframes completionPop{0%{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes badgeSpin{0%{opacity:0;transform:rotate(-180deg)scale(.4)}to{opacity:1;transform:rotate(0)scale(1)}}.reducedMotion .completionCard,.reducedMotion .completionBadge,.reducedMotion .confetti span{animation:none!important}@media (max-width:760px){.completionOverlay{z-index:110;border-radius:0;position:fixed;top:0;bottom:0;left:0;right:0}.completionCard{width:min(94vw,500px)}.completionCard button{min-height:48px}}.coachOverlay{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#14141447}.coachOverlayCard{background:#ffffffe0!important}.kingControlPreview:after{content:"";z-index:2;pointer-events:none;border:3px dashed #1e50b4ad;border-radius:10px;position:absolute;top:10%;bottom:10%;left:10%;right:10%}.puzzleTrainer{gap:14px;max-width:640px;margin:0 auto;display:grid}.puzzleStatsHeader{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;gap:10px 18px;padding:10px 16px;font-size:14px;font-weight:700;display:flex}.puzzleBoardWrap{gap:12px;display:grid}.puzzleBoardBoard{width:100%;max-width:560px;aspect-ratio:1;max-width:min(560px,60dvh);margin:0 auto}.puzzleBoardControls{justify-items:center;gap:10px;display:grid}.puzzleFeedback{text-align:center;min-height:1.4em;font-weight:700}.puzzleFeedback.bad{color:var(--danger)}.puzzleFeedback.good{color:var(--green-dark)}.hintMessage{color:var(--muted);border:1px solid var(--gold);text-align:center;background:#f4ca3a29;border-radius:999px;padding:4px 12px;font-size:13px}.puzzleBoardButtons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.puzzleBoardButtons button,.assessmentOfferCard button,.puzzleResultCard button{min-height:44px;padding:10px 18px}.assessmentCard,.assessmentOfferCard{gap:12px;display:grid}.assessmentHeader{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.assessmentProgress{color:var(--muted);margin:0;font-weight:700}.assessmentResult{text-align:center}.assessmentResult.solved h2{color:var(--green-dark)}.assessmentResult.missed h2{color:var(--danger)}.assessmentSolution{font-size:15px;font-weight:600}.linkButton{box-shadow:none;color:var(--muted);background:0 0;border:none;padding:4px;font-weight:600;text-decoration:underline}.puzzleResultCard{text-align:center;gap:10px;display:grid}.puzzleResultCard.solved h2{color:var(--green-dark)}.puzzleResultCard.failed h2{color:var(--danger)}.ratingList{color:var(--muted);gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.ratingDeltaRow{grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:4px 0;display:grid}.ratingDeltaName{text-align:left}.ratingDeltaArrow{font-size:13px}.ratingDeltaValue{color:var(--ink);text-align:right;min-width:2.5em;font-weight:700}.ratingDeltaBadge{border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700}.ratingDeltaRow.tone-up .ratingDeltaArrow,.ratingDeltaRow.tone-up .ratingDeltaBadge{color:var(--green-dark)}.ratingDeltaRow.tone-up .ratingDeltaBadge{background:#76965629}.ratingDeltaRow.tone-down .ratingDeltaArrow,.ratingDeltaRow.tone-down .ratingDeltaBadge{color:var(--danger)}.ratingDeltaRow.tone-down .ratingDeltaBadge{background:#b423181f}.ratingDeltaRow.tone-flat .ratingDeltaArrow{color:var(--muted)}@media (min-width:760px){.puzzleTrainer{max-width:720px}.puzzleBoardBoard{max-width:600px}}.unlockBanner{border:1px solid var(--gold);text-align:left;background:#f4ca3a29;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.unlockBanner small{color:var(--muted)}.tagReportToggle{justify-self:center;font-size:13px}.puzzleSourceLine{text-align:center;margin:0;font-size:12px}.puzzleResultReason{text-align:center;margin:0;font-size:14px;font-weight:600}.tagReportForm{text-align:left;gap:6px;font-size:14px;display:grid}.tagReportForm label{color:var(--muted);font-size:13px}.tagReportForm textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:10px;padding:8px 10px}.tagReportError{color:var(--danger);margin:0;font-size:13px}.tagReportSent{color:var(--green-dark);font-size:14px;font-weight:600}.playerProfile{gap:16px;display:grid}.profileSummary{gap:14px;display:grid}.profileStats{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.profileStats>div{background:var(--cream);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.profileStats strong{font-size:22px}.profileStats span{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.explainerButton{border:1px solid var(--muted);width:16px;height:16px;min-height:0;color:var(--muted);background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:inline-flex}.explainerBox{background:var(--cream);color:var(--muted);border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:13px}.categoryList{gap:8px;margin:0;padding:0;list-style:none;display:grid}.categoryList li{border-bottom:1px solid var(--line);padding:8px 0}.categoryList li.categoryTopHalf{background:#f4ca3a1f;border-radius:8px;padding-left:8px;padding-right:8px}.categoryListRow{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.categoryName{font-weight:700}.categoryRating{white-space:nowrap;font-weight:700}.categoryRating small{color:var(--muted);font-weight:400}.categoryLocked{background:#00000009;border-radius:8px;padding-left:8px;padding-right:8px}.categoryLocked .categoryName,.categoryLocked .categoryRating{opacity:.7}.categoryProgressBar{background:var(--line);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.categoryProgressBar>div{background:var(--green);height:100%}.categoryPatternGroup{border-bottom:none;padding:0}.categoryPatternToggle{border:none;border-bottom:1px solid var(--line);width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;padding:8px 0}.categoryPatternSublist{border-left:2px solid var(--line);margin-top:4px;padding-left:16px}.historyList{gap:6px;margin:0;padding:0;list-style:none;display:grid}.historyRow{background:var(--cream);border-radius:8px;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:8px 10px;font-size:14px;display:flex}.historyRow.tone-good .historyOutcome{color:var(--green-dark);font-weight:700}.historyRow.tone-bad .historyOutcome{color:var(--danger);font-weight:700}.historyRow.tone-neutral .historyOutcome{color:var(--muted);font-weight:700}.historyCategories{color:var(--muted);text-align:center;flex:1}.historyWhen{color:var(--muted);white-space:nowrap}.historyRetryLink{white-space:nowrap;font-weight:600}.historyHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.historyFilterToggle{color:var(--muted);cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.historyFilterToggle input{cursor:pointer}.practiceCategoryGrid{grid-template-columns:1fr;gap:10px;display:grid}@media (min-width:600px){.practiceCategoryGrid{grid-template-columns:repeat(2,1fr)}}.practiceCategoryButton{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;min-height:56px;padding:12px 14px;display:flex}.practiceCategoryButton small{color:var(--muted);font-weight:400}.practiceCategoryButton:disabled{opacity:.5;cursor:not-allowed}.authPanel{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;margin:-8px 0 12px;padding:10px 14px;font-size:.95em;display:flex}.authForm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.authForm p{width:100%;margin:0 0 2px;font-weight:600}.authForm input{border:1px solid var(--line);border-radius:8px;min-height:40px;padding:8px 10px}.authError{color:var(--danger);width:100%}.authSuccess{color:var(--green-dark);width:100%}.puzzleBoardStage{position:relative}.puzzleResultOverlay{z-index:5;background:#14100c8c;border-radius:18px;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.puzzleResultOverlay .puzzleResultCard{width:100%;max-width:420px;box-shadow:0 12px 32px #00000059}.puzzleReplayModal{z-index:50;background:#14100ca6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.puzzleReplayCard{background:var(--panel);border-radius:18px;width:100%;max-width:480px;max-height:90vh;padding:16px;overflow-y:auto;box-shadow:0 12px 32px #00000059}.puzzleReplayHeader{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.puzzleTagEditor{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.puzzleTagEditor h3{margin:0 0 4px;font-size:15px}.puzzleTagEditorList{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 10px;max-height:240px;margin:8px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.puzzleTagEditorList label{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:flex}.puzzleTagEditorList label.saving{opacity:.6}.weekPicker{justify-content:center;align-items:center;gap:8px;font-weight:700;display:flex}.weekPicker select{border:1px solid #bbb;border-radius:9px;padding:8px 10px}.weeklyPuzzlesProgress{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.weeklyPuzzleDot{border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;min-height:0;padding:0;font-size:13px;display:flex}.weeklyPuzzleDot.solved{background:var(--green);border-color:var(--green-dark);color:#fff}.weeklyPuzzleDot.current{border-color:var(--gold);box-shadow:0 0 0 3px #f4ca3a59}.yesNoButtons button{min-width:96px;font-size:16px}.wrongChoice{border-color:var(--danger)!important;color:var(--danger)!important;background:#b423181f!important}.capturePawnChallenge{gap:16px;display:grid}.capturePawnLevelGrid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.capturePawnLevelCard{text-align:left;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;gap:4px;padding:16px;display:grid}.capturePawnLevelCard:hover{background:#f2f4f7}.capturePawnLevelCount{font-size:20px;font-weight:800}.capturePawnLevelCard small{color:var(--muted)}.capturePawnChallengeStage{gap:14px;display:grid;position:relative}.fireworksOverlay{pointer-events:none;z-index:60;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.fireworksBurst{width:0;height:0;position:absolute}.fireworksParticle{opacity:0;border-radius:50%;width:7px;height:7px;animation:1.1s ease-out forwards fireworksParticle;position:absolute;box-shadow:0 0 6px 1px}@keyframes fireworksParticle{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(.3)}}.capturePawnNewBestBadge,.capturePawnTopTenBadge{border-radius:999px;padding:3px 12px;font-size:13px;font-weight:700;display:inline-block}.capturePawnNewBestBadge{color:#8a6300;background:#f4c43033}.capturePawnTopTenBadge{color:#145a86;background:#4ac1ff2e}.capturePawnChallengeHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.capturePawnTimer{font-variant-numeric:tabular-nums;color:var(--green-dark);font-size:22px;font-weight:800}.capturePawnChallengeBoard{max-width:480px;position:relative}.capturePawnBoardOverlay{z-index:5;background:#14100c59;border-radius:6px;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.capturePawnBoardOverlay .capturePawnStuckPrompt,.capturePawnBoardOverlay .capturePawnWonPrompt{max-width:360px;max-height:100%;overflow-y:auto;box-shadow:0 12px 32px #00000059}.capturePawnBoardOverlay .capturePawnStuckPrompt{background:#fff}.capturePawnBoardOverlay .capturePawnWonPrompt{background:#f4f8f0}.capturePawnBoardOverlay p{margin:0}.capturePawnStuckPrompt,.capturePawnWonPrompt{text-align:center;border-radius:14px;justify-items:center;gap:10px;padding:14px;display:grid}.capturePawnStuckPrompt{border:1px solid var(--danger);background:#b4231814}.capturePawnWonPrompt{border:1px solid var(--green);background:#5f7f451a}.capturePawnSyncNote{margin:0 0 12px;font-size:12.5px}.capturePawnLeaderboardList{gap:6px;margin:0;padding-left:22px;list-style:decimal;display:grid}.capturePawnLeaderboardList li{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.capturePawnLeaderboardTime{font-variant-numeric:tabular-nums;min-width:64px;font-weight:800}.capturePawnLeaderboardLatest{background:#f4ca3a38;border-radius:8px;padding:2px 6px}@media (max-width:640px){.capturePawnLevelGrid{grid-template-columns:1fr}}.capturePawnBestsTable{gap:6px;margin-top:12px;display:grid}.capturePawnBestsRow{border:1px solid var(--line);font-variant-numeric:tabular-nums;text-align:center;border-radius:8px;grid-template-columns:90px repeat(3,1fr);align-items:center;gap:8px;padding:8px 10px;display:grid}.capturePawnBestsRow span:first-child{text-align:left}.capturePawnBestsHeader{color:var(--muted);border:none;padding:0 10px;font-family:inherit;font-size:12.5px;font-weight:700}.capturePawnBestsPiece{font-weight:700}@media (max-width:480px){.capturePawnBestsRow{grid-template-columns:70px repeat(3,1fr);font-size:13px}}.bookChapterList{gap:10px;margin:16px 0 0;padding:0;list-style:none;display:grid}.bookChapterList li{border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.bookChapterList li.locked{opacity:.6}.bookChapter{gap:12px;display:grid}.bookChapterHeader{justify-items:start;gap:4px;display:grid}.bookChapterHeader h2{margin:0}.bookBriefing summary{cursor:pointer;font-weight:700}.bookBriefing p{margin:6px 0 0}.bookProblemLine{margin:0}.bookReviewBadge{background:var(--gold,#f4ca3a);color:#222;border-radius:999px;margin-right:8px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.bookGameInfo p{margin:0 0 4px}.bookPlayerName{text-align:center;font-size:14px;font-weight:700}.bookPromotion{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.bookPromotion button{min-height:44px;padding:8px 14px}.bookOutcome{text-align:center;justify-items:center;gap:8px;display:grid}.bookOutcome p{margin:0;font-weight:700}.bookOutcome.bad p{color:var(--danger)}.bookJump{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;font-size:14px;display:flex}.bookJump input{width:7em}.unlockPopup{text-align:center;gap:10px;max-height:90vh;display:grid;overflow-y:auto}.unlockPopup h2{margin:0}.unlockPopupIcon{font-size:40px;line-height:1}.unlockPopupList{text-align:left;gap:10px;margin:0;padding:0;list-style:none;display:grid}.unlockPopupList li{border:1px solid var(--gold);background:#f4ca3a29;border-radius:12px;padding:10px 14px}.unlockPopupList p{margin:4px 0 0}.unlockPopupKind{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;display:block}.unlockPopupNote{margin:0;font-size:14px}.unlockPopup .primaryButton{justify-self:center;min-height:44px;padding:10px 28px}.instructions{gap:16px;display:grid}.instructions h3{margin-top:0}.instructions ul{gap:6px;padding-left:20px;display:grid}.instructionsTabs dt{margin-top:10px;font-weight:700}.instructionsTabs dd{margin:2px 0 0}.instructionsGlossary{gap:10px;padding-left:22px;display:grid}.instructionsGlossary p{color:var(--muted);margin:2px 0 0}.instructionsGlossary li.unlocked>strong{color:var(--green-dark)}.instructionsGlossary details{margin-top:6px}.instructionsGlossary summary{cursor:pointer;font-weight:600}.dailyPuzzleDot{border-radius:17px;width:auto;min-width:52px;padding:0 10px}.dailyPuzzleDot:disabled{opacity:.4;cursor:not-allowed}.endgameTrainer{gap:16px;display:grid}.endgameLessonGrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.endgameLessonCard{text-align:left;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;gap:6px;padding:16px;display:grid}.endgameLessonCard:hover{background:#f2f4f7}.endgameLessonIcon{font-size:30px;line-height:1}.endgameLessonTitle{font-size:20px;font-weight:800}.endgameLessonStatus{color:var(--green-dark);font-weight:700}.endgameLessonIntro h2{margin:8px 0 4px}.endgameBack{justify-self:start}.endgameVideo summary{cursor:pointer;margin:6px 0 10px;font-weight:700}.endgameVideoFrame{aspect-ratio:16/9;width:100%;max-width:720px;position:relative}.endgameVideoFrame iframe{border:0;border-radius:12px;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.endgameVideoLink{margin-top:8px;font-size:14px;display:inline-block}.endgameStage{gap:12px;display:grid;position:relative}.endgameStageHead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.endgameBoard{max-width:min(520px,60dvh)}.analysisBoard{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}@media (min-width:860px){.analysisBoard{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);align-items:start}}.analysisMain{gap:8px;display:grid}.analysisBoardSquare{aspect-ratio:1;width:100%;max-width:min(560px,70dvh);margin:0 auto;position:relative}.analysisStatus{margin:0}.analysisSide{align-content:start;gap:12px;display:grid}.analysisToolGroup{flex-wrap:wrap;gap:8px;display:flex}.analysisToolGroup button{min-height:44px;padding:8px 12px}.analysisToolGroup button.active,.analysisPalette button.active{background:var(--green);border-color:var(--green-dark);color:#fff}.analysisPalette{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.analysisPalette button{aspect-ratio:1;justify-content:center;align-items:center;min-height:44px;padding:4px;display:flex}.analysisPieceIcon{width:100%;max-width:48px;height:100%;max-height:48px;display:block}.analysisPieceIcon svg{width:100%;height:100%}.analysisHelp{margin:0;font-size:13px}.analysisError{color:var(--danger);margin:0;font-weight:700}.analysisPlayButton{min-height:48px}.analysisFen{gap:4px;font-size:13px;font-weight:700;display:grid}.analysisFen textarea{border:1px solid var(--line);resize:vertical;background:var(--panel);width:100%;color:var(--ink);border-radius:10px;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.analysisNavButtons button{flex:1;font-size:18px}.analysisMoveList{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:2px 4px;max-height:260px;margin:0;padding:8px 10px;line-height:1.6;display:flex;overflow-y:auto}.analysisMoveUnit{white-space:nowrap;align-items:baseline;display:inline-flex}.analysisMoveNumber{color:var(--muted);margin-left:2px;font-size:13px}.analysisMove{color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:6px;min-height:0;padding:1px 5px;font-weight:700}.analysisMove:hover:not(:disabled){background:#61afef2e}.analysisMove.current{background:#f4ca3a8c}.analysisVariation{border-left:2px solid var(--line);flex-wrap:wrap;flex-basis:100%;align-items:baseline;gap:2px 4px;margin:2px 0 4px 12px;padding-left:8px;font-size:14px;display:flex}.analysisVariation:before{content:"(";color:var(--muted)}.analysisVariation:after{content:")";color:var(--muted)}.analysisVariation .analysisMove,.analysisVariationInline .analysisMove{color:#2e5fa3;font-weight:400}.analysisVariation .analysisMove.current,.analysisVariationInline .analysisMove.current{color:var(--ink);font-weight:700}.analysisVariationInline{color:var(--muted);display:contents}.analysisGameTitle{margin:0;font-weight:700}.analysisPromotion{background:var(--panel);z-index:10;border-radius:12px;align-items:center;gap:6px;padding:10px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 32px #00000059}.analysisPromotion button:not(.linkButton){width:52px;height:52px;padding:4px}.puzzleReplayCard.analysisModalCard{max-width:960px}.navMenu{position:relative}.navMenu>button{border-radius:999px}.navCurrent{opacity:.85;font-weight:600}.navDropdown{z-index:40;border:1px solid var(--line);min-width:230px;box-shadow:var(--shadow);background:#fff;border-radius:14px;gap:4px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.navDropdown button{text-align:left;border-color:#0000;border-radius:10px}@media (max-width:560px){.navDropdown{min-width:0;position:fixed;top:auto;left:16px;right:16px}}.guideGlow{animation:1.3s ease-in-out infinite guidePulse;position:relative;border-color:#d4a106!important;box-shadow:0 0 0 4px #f4ca3a,0 0 22px 6px #f4ca3ad9!important}.guideGlow:not(.activeNav){background:#fff6d6}@keyframes guidePulse{0%,to{box-shadow:0 0 0 4px #f4ca3a,0 0 18px 4px #f4ca3ab3}50%{box-shadow:0 0 0 6px #f4ca3a,0 0 34px 12px #f4ca3af2}}.reducedMotion .guideGlow{animation:none}li.guideGlow{border-radius:12px}.guideBanner{background:#fff6d6;border:2px solid #f4ca3a;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin:0 0 14px;padding:10px 16px;font-weight:700;display:flex}.myTaskCard{background:#fff9e6;border:2px solid #f4ca3a;border-radius:14px;margin:4px 0 16px;padding:12px 16px}.myTaskCard.done{background:#effbf2;border-color:#2fbf5b}.myTaskCard p{margin:6px 0}.badgeGrid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:18px 12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.badgeCard{text-align:center;justify-items:center;gap:2px;display:grid;position:relative}.badgeCardButton{background:0 0;border:0;border-radius:50%;padding:4px;position:relative}.badgeCardButton:hover:not(:disabled){background:0 0}.badgeCardName{font-size:14px;font-weight:800;line-height:1.2}.badgeCardSub,.badgeCardDate{color:var(--muted);font-size:12px}.badgeCard.locked .badgeIcon{filter:brightness(.55)saturate(.6);opacity:.45}.badgeCard.locked .badgeCardName{color:var(--muted)}.badgeTooltip{z-index:30;color:#fff;pointer-events:none;background:#20242b;border-radius:10px;width:220px;padding:8px 10px;font-size:13px;line-height:1.35;display:none;position:absolute;bottom:calc(100% - 8px);left:50%;transform:translate(-50%)}.badgeCard:hover .badgeTooltip,.badgeCard.open .badgeTooltip{display:block}.badgeCount{color:#fff;background:#20242b;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:900;position:absolute;bottom:2px;right:-2px}.badgeIcon{flex-shrink:0;place-items:center;display:inline-grid;position:relative}.badgeMedal{background:radial-gradient(circle at 32% 28%, #ffffffbf, #fff0 42%), var(--tier);border:.35em solid color-mix(in srgb, var(--tier) 70%, #000);color:var(--tierInk);border-radius:50%;align-content:center;gap:.1em;padding:10%;box-shadow:inset 0 0 0 .2em #ffffff8c,0 3px 8px #00000040}.badgeMedalText{letter-spacing:-.01em;text-align:center;overflow-wrap:anywhere;font-family:Arial Black,Helvetica Neue,Arial,sans-serif;font-size:1.05em;font-weight:900;line-height:1.05}.badgeMedalText.long{font-size:.82em}.badgeMedalIcon{font-size:1.3em;line-height:1}.badgeMedalSub{text-transform:uppercase;letter-spacing:.06em;font-size:.7em;font-weight:800}.badgeMedal-points .badgeMedalText{font-size:1.35em}.badgePiece{line-height:1}.badgePieceArt{filter:drop-shadow(0 3px 4px #0000004d);width:100%;height:100%;display:block}.badgePieceArt svg{display:block}.badgePieceNumber{color:#fff;-webkit-text-stroke:.1em #20242b;paint-order:stroke fill;text-align:center;font-family:Arial Black,Helvetica Neue,Arial,sans-serif;font-size:2.6em;font-weight:900;line-height:1;position:absolute;top:47%;left:0;right:0}.badgeTrophyGlyph{filter:drop-shadow(0 3px 5px #0000004d);font-size:5em;line-height:1}.celebrationVeil{z-index:70;cursor:pointer;background:#0a0e148c;position:fixed;top:0;bottom:0;left:0;right:0}.celebrationVeil .fireworksOverlay{z-index:71}.celebrationModal{z-index:72}.celebrationCard{text-align:center;max-width:520px}.celebrationCard h2{margin:10px 0;font-size:clamp(22px,5vw,30px)}.celebrationBadges{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px;display:flex}.celebrationReasons{color:var(--muted);margin:0 0 14px;padding:0;font-size:15px;list-style:none}.celebrationReasons li{margin:4px 0}.celebrationTask{color:#1b7a3a;font-weight:700}.celebrationTick{font-size:72px}.taskPopup{text-align:center;max-width:480px}.taskPopupText{font-size:18px;font-weight:800}.historyKinds{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.historyKinds button{border-radius:999px;padding:6px 12px;font-size:14px}.historyRowButton{font-weight:inherit;text-align:left;background:0 0;border:0;padding:0;display:contents}.historyRow:has(.historyRowButton:not(:disabled)){cursor:pointer}.historyRow:has(.historyRowButton:not(:disabled)):hover{background:#f6f7f9}.historyOutcomeLine{margin:4px 0 10px;font-weight:700}.historyOutcomeLine.tone-good{color:#1b7a3a}.historyOutcomeLine.tone-bad{color:var(--danger)}.moveReplay{gap:10px;display:grid}.moveReplayBoard{width:100%;max-width:460px;margin:0 auto}.moveReplayCaption{text-align:center;min-height:1.4em;margin:0;font-weight:700}.moveReplayCaption.good{color:#1b7a3a}.moveReplayCaption.bad{color:var(--danger)}.moveReplayControls{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.tournament,.tournamentSection,.clubInfo,.studentProfile,.historyPage,.badgeCabinet{gap:16px;display:grid}.tournamentHeader h2,.tournamentViewNote{margin:0}.tournamentRoundTrack{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;max-width:100%;display:inline-flex;overflow:hidden}.roundSquare{width:32px;height:32px;color:var(--muted);background:var(--light-square);place-items:center;font-size:13px;font-weight:700;display:grid}.roundSquare:nth-child(2n){background:var(--dark-square);color:#fff}.roundSquare.done{color:#fff;background:var(--green)!important}.roundSquare.now{box-shadow:inset 0 0 0 3px var(--gold);color:var(--ink)}.tournamentTabs,.tournamentChips{flex-wrap:wrap;gap:6px;display:flex}.tournamentTabs button,.tournamentChips button{border-radius:999px}.tournamentBoards{gap:10px;display:grid}.tournamentBoard{border:1px solid var(--line);border-radius:12px;grid-template-columns:44px 1fr;display:grid;overflow:hidden}.tournamentBoardNum{background:var(--green);color:#fff;grid-row:span 2;place-items:center;font-size:20px;font-weight:900;display:grid}.tournamentBoardPlayers{padding:8px 12px 2px}.tournamentSide{align-items:center;gap:10px;padding:3px 0;display:flex}.tournamentSide .playerLink{text-align:left;flex:1}.tournamentSide.won .playerLink{color:var(--green-dark)}.tournamentResults{gap:6px;padding:6px 12px 12px;display:flex}.tournamentResults button{flex:1;min-height:42px}.tournamentResults button.chosen,.segmented button.chosen{background:var(--green);border-color:var(--green);color:#fff;opacity:1}.tournamentResults button:disabled{cursor:default}.tournamentByes,.tournamentAvailability,.tournamentPlayerList,.tournamentPlayerEdit{gap:6px;margin:8px 0;padding:0;list-style:none;display:grid}.tournamentByes li,.tournamentAvailability li{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 12px;display:flex}.tournamentPlayerList li{border-bottom:1px solid var(--line);padding:6px 0}.tournamentPlayerEdit li{align-items:center;gap:8px;display:flex}.tournamentPlayerEdit input{flex:1;min-width:0}.segmented{border:1px solid var(--line);border-radius:10px;display:inline-flex;overflow:hidden}.segmented button{border:0;border-radius:0;padding:8px 11px}.segmented button+button{border-left:1px solid var(--line)}.tournamentBanner{background:#fbf3d9;border:1px solid #c9a227;border-radius:12px;padding:14px 16px}.tournamentBanner h3{margin:0 0 4px}.tournamentField{gap:4px;margin:8px 0;display:grid}.tournamentField span{font-weight:700}.tournamentField input,.tournamentField select,.tournamentField textarea,.tournamentAddRow input,.tournamentPlayerEdit input{border:1px solid var(--line);font:inherit;background:#fff;border-radius:10px;padding:9px 10px}.tournamentSettings{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 14px;display:grid}.tournamentAddRow{gap:8px;display:flex}.tournamentAddRow input{flex:1;min-width:0}.tournamentStart{width:100%;padding:14px;font-size:18px}.tournamentToast{z-index:80;color:#fff;text-align:center;background:#20242b;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;font-weight:700;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.disc{vertical-align:-2px;border:1.5px solid #20242b;border-radius:50%;flex:none;width:15px;height:15px;display:inline-block}.disc.white{background:#fff}.disc.black{background:#1c2421}.playerLink{color:#175cd3;text-underline-offset:2px;background:0 0;border:0;border-radius:4px;padding:0;font-weight:700;text-decoration:underline}.playerLink:hover:not(:disabled){color:#0b3d91;background:0 0}.tableWrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.dataTable{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.dataTable th,.dataTable td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 12px}.dataTable tr:last-child td{border-bottom:0}.dataTable th{color:var(--muted);font-size:14px}.dataTable .num{text-align:right}.dataTable tr.lead td{background:#fbf3d9}.crosstable .cx{text-align:center}.crosstable .cx b{display:block}.crosstable .cx small{color:var(--muted);font-size:12px}.ratingUp{color:var(--green-dark);font-weight:700}.ratingDown{color:var(--danger);font-weight:700}.otbTable tr.otb-win td:last-child,.otbTable tr.otb-win td:nth-last-child(2){color:var(--green-dark)}.otbTable tr.otb-loss td:nth-last-child(2){color:var(--danger)}.pastGameForm{border:1px dashed var(--line);border-radius:12px;margin-top:14px;padding:12px 14px}.clubPostDate{margin-top:-6px;font-size:14px}.clubPostBody{white-space:pre-wrap}.clubPostImages{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:10px 0;display:grid}.clubPostImages img{object-fit:cover;border-radius:10px;width:100%;height:160px;display:block}.postEditorImage{position:relative}.postEditorImage button{padding:2px 8px;position:absolute;top:6px;right:6px}.postEditor textarea{resize:vertical}.classList{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.classRow{border:1px solid var(--line);border-radius:12px;padding:10px 14px}.classRowMain{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.classRowMain .className{text-align:left;min-width:110px;font-size:18px}.classTask{flex:260px;font-weight:600}.classActions{align-items:center;gap:8px;display:flex}.taskStatusIcon{color:#fff;vertical-align:middle;border-radius:50%;place-items:center;width:30px;height:30px;margin-left:4px;font-size:20px;font-weight:900;display:inline-grid}.taskStatusIcon.done{background:#1f9d55;font-size:22px}.taskStatusIcon.tried{background:#f08c00}.taskStatusIcon.none{background:#d92d20}.taskLegend{white-space:nowrap;align-items:center;gap:4px;margin-left:12px;display:inline-flex}.taskLegend .taskStatusIcon{width:22px;height:22px;font-size:14px}.assignForm{border-top:1px dashed var(--line);gap:10px;margin-top:10px;padding-top:10px;display:grid}.assignFields{flex-wrap:wrap;gap:10px;display:flex}.assignFields label{gap:4px;display:grid}.assignFields label span{font-size:14px;font-weight:700}.assignFields select,.assignFields input{border:1px solid var(--line);background:#fff;border-radius:10px;max-width:100%;padding:8px 10px}.assignPreview{background:#f6f7f9;border-radius:10px;margin:0;padding:8px 12px}.studentTask{font-weight:700}.playerRating{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.tournamentSide .playerLink{flex:0 auto}.tournamentSide .muted:last-child{margin-left:auto}.badgeStack{padding-right:calc(4px + var(--depth,0) * 16px);display:grid}.badgeStack>*{grid-area:1/1}.badgeStackLayer{transform:translateX(calc(var(--layer) * 16px)) scale(calc(1 - var(--layer) * .06));z-index:calc(10 - var(--layer));place-self:center end}.badgeStackTop{z-index:11}.badgeStack .badgeCount{z-index:12}.badgeTierPips{gap:4px;margin:2px 0;display:flex}.badgeTierPip{border:1.5px solid var(--tier);background:0 0;border-radius:50%;width:9px;height:9px}.badgeTierPip.got{background:var(--tier)}.badgeTooltipLine{display:block}.badgeTooltipLine+.badgeTooltipLine{margin-top:4px}.badgePanel{z-index:40;color:#fff;text-align:left;width:min(260px,86vw);box-shadow:var(--shadow);background:#20242b;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.35;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.badgePanel p{margin:0 0 6px}.badgePanelNext{color:#ffe08a;font-weight:700}.badgePanel .primaryButton{width:100%;margin-top:4px}.nextBadgeHint{text-align:left;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.nextBadgeHint li{align-items:center;gap:10px;font-size:14px;line-height:1.35;display:flex}.badgeMedal-streak{border-style:double;border-width:.45em}.badgeMedal-streak .badgeMedalText{font-size:1.6em}.badgeShape svg{filter:drop-shadow(0 3px 3px #00000040);display:block}.badgeStackLayer svg text,.badgeStackLayer .badgeTag,.badgeStackLayer .badgePieceNumber{display:none}.badgeViewPicker{flex-wrap:wrap;gap:8px;display:flex}.badgeViewPicker button{border-radius:999px}.badgeViewPicker button[aria-pressed=true],.badgeViewPicker button[aria-pressed=true]:hover{background:var(--ink);border-color:var(--ink);color:var(--panel)}.visuallyHidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.badgeTally{min-width:0;max-width:100%;margin:12px 0 4px}.playerProfile,.playerProfile>.card,.profileSummary{min-width:0}.badgeTally h3{margin:0 0 6px;font-size:16px}.badgeTallyScroll{overflow-x:auto}.badgeTally table{border-collapse:collapse;width:100%;font-size:14px}.badgeTally th,.badgeTally td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px}.badgeTally tbody th{text-align:left;font-weight:700}.badgeTally thead th{color:var(--muted);font-size:12px;font-weight:700}.badgeTallyDot{background:var(--tier);vertical-align:0;border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}.badgeTallyAll{font-weight:800}.customise{--cz-green:#2c4a2c;--cz-orange:#ed8a00;--cz-on-orange:#1e1608;--cz-bad:#b3261e;--cz-bad-bg:#fbe9e7;--cz-good:#2e6b34;max-width:1080px;margin:0 auto;padding:0}.customise h2{color:var(--cz-green);margin:0;font-size:24px;font-weight:700;line-height:1.2}.customise h3{margin:0 0 2px;font-size:16px;font-weight:600}.customise button:focus-visible{outline:3px solid var(--cz-orange);outline-offset:2px}.customise input:focus-visible{outline:3px solid var(--cz-orange);outline-offset:2px}.srOnly{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.czTop{align-items:center;gap:10px;padding:4px 0;display:flex}.czBack{border:1px solid var(--line);background:var(--panel);border-radius:50%;place-items:center;width:38px;height:38px;padding:0;display:grid}.czBack svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.czCrumb{color:var(--muted);margin:0;font-size:13px}.czLayout{grid-template-columns:minmax(0,1fr);gap:22px;padding:10px 0 24px;display:grid}@media (min-width:880px){.czLayout{grid-template-columns:minmax(0,460px) minmax(0,1fr);align-items:start}.czPreview{position:sticky;top:16px}}.czBoardWrap{width:100%;max-width:460px;margin:0 auto}.czBoard{aspect-ratio:1;box-shadow:0 0 0 1px var(--line), 0 10px 28px -14px #14281473;border-radius:12px;grid-template-columns:repeat(8,1fr);display:grid;overflow:hidden}.czBoardWrap[data-vision=protan] .czBoard{filter:url(#cz-protan)}.czBoardWrap[data-vision=deutan] .czBoard{filter:url(#cz-deutan)}.czSq{transition:background-color .15s;position:relative}.czSq.l{background:var(--sq-light)}.czSq.d{background:var(--sq-dark)}.czSq.hl:before{content:"";background:var(--hl-rgba);position:absolute;top:0;bottom:0;left:0;right:0}.czCo{z-index:1;font-size:clamp(8px,2.3vw,11px);font-weight:600;line-height:1;position:absolute}.czSq.l .czCo{color:var(--sq-dark)}.czSq.d .czCo{color:var(--sq-light)}.czRank{top:3px;left:3px}.czFile{bottom:3px;right:4px}.czPc{z-index:2;position:absolute;top:0;bottom:0;left:0;right:0}.czCaption{color:var(--muted);text-align:center;margin:8px 2px 0;font-size:12.5px}.czChecks{grid-template-columns:1fr 1fr;gap:6px 12px;max-width:460px;margin:14px auto 0;padding:0;list-style:none;display:grid}.czChecks li{align-items:flex-start;gap:6px;font-size:13px;line-height:1.35;display:flex}.czChecks svg{fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px;margin-top:1px}.czChecks .pass svg{stroke:var(--cz-good)}.czChecks .fail{color:var(--cz-bad);font-weight:600}.czChecks .fail svg{stroke:var(--cz-bad)}.czSeg{border:1px solid var(--line);background:var(--panel);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.czSeg button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:500}.czSeg button[aria-pressed=true]{background:var(--cz-green);color:#fff}.czVisionRow{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:460px;margin:14px auto 0;display:flex}.czLbl{color:var(--muted);font-size:12.5px}.czControls,.czTemplates{grid-template-columns:minmax(0,1fr);gap:22px;min-width:0;display:grid}.czModeRow{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.czModeRow p{color:var(--muted);max-width:34ch;margin:0;font-size:13px}.czTargets{grid-template-columns:1fr 1fr;gap:8px;display:grid}@media (min-width:560px){.czTargets{grid-template-columns:repeat(4,1fr)}}.czTargets button{border:1.5px solid var(--line);background:var(--panel);text-align:left;border-radius:12px;justify-content:flex-start;align-items:center;gap:9px;padding:11px 12px;font-size:14px;font-weight:500;display:flex}.czTargets button[aria-selected=true]{border-color:var(--cz-green);box-shadow:inset 0 0 0 1.5px var(--cz-green)}.czDot{border-radius:50%;flex:none;width:20px;height:20px;box-shadow:inset 0 0 0 1px #00000040}.czHint{color:var(--muted);margin:0 0 10px;font-size:13px}.czRow{scroll-snap-type:x proximity;gap:10px;margin:0;padding:6px 2px 8px;display:flex;overflow-x:auto}.czPreset{border:1.5px solid var(--line);background:var(--panel);scroll-snap-align:start;border-radius:12px;flex:none;justify-items:center;gap:6px;width:96px;padding:8px 8px 7px;display:grid;position:relative}.czPreset[aria-pressed=true]{border-color:var(--cz-green);box-shadow:inset 0 0 0 1.5px var(--cz-green)}.czPreset.locked{opacity:.45}.czMini{border-radius:6px;grid-template-columns:1fr 1fr;width:44px;height:44px;display:grid;overflow:hidden}.czMini2{background:linear-gradient(90deg, var(--sq-light) 50%, var(--sq-dark) 50%);border-radius:6px;width:62px;height:44px;display:flex;overflow:hidden}.czMiniPc{flex:1;padding:2px}.czPn{text-align:center;font-size:12px;font-weight:500;line-height:1.25}.czLock{fill:none;width:16px;height:16px;stroke:var(--ink);stroke-width:1.6px;position:absolute;top:6px;right:6px}.czFlag{background:var(--cz-orange);width:18px;height:18px;color:var(--cz-on-orange);text-align:center;border-radius:50%;font-size:12px;font-weight:700;line-height:18px;position:absolute;top:-5px;right:-5px}.czSwatches{grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:9px;display:grid}.czSw{aspect-ratio:1;background:var(--c);border:0;border-radius:50%;min-width:34px;padding:0;position:relative;box-shadow:inset 0 0 0 1px #0003}.czSw[aria-pressed=true]{box-shadow:inset 0 0 0 1px #0003, 0 0 0 2px var(--cream), 0 0 0 4.5px var(--ink)}.czSw.locked{opacity:.3}.czSw .czLock{stroke:#111;box-sizing:content-box;background:#ffffffd9;border-radius:50%;width:15px;height:15px;margin:auto;padding:2px;top:0;bottom:0;left:0;right:0}.czSw .czFlag{width:16px;height:16px;font-size:11px;line-height:16px;top:-4px;right:-4px}.czCustom{border:1.5px dashed var(--line);border-radius:14px;gap:10px;padding:14px;display:grid}.czPickRow{align-items:center;gap:12px;display:flex}.czPickRow input[type=color]{border:1px solid var(--line);background:var(--panel);border-radius:10px;width:56px;height:44px;padding:2px}.czHex{font-variant-numeric:tabular-nums;font-weight:600}.czMsg{color:var(--muted);margin:0;font-size:13.5px}.czMsg.bad{color:var(--cz-bad);background:var(--cz-bad-bg);border-radius:8px;padding:8px 10px;font-weight:500}.czActs{flex-wrap:wrap;gap:8px;display:flex}.czBtn{border:1.5px solid var(--cz-green);background:var(--panel);color:var(--cz-green);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600}.czBtn.sm{padding:7px 14px;font-size:13px}.czBtn.ghost{border-color:var(--line);color:var(--muted)}.czBtn.primary{background:var(--cz-orange);border-color:var(--cz-orange);color:var(--cz-on-orange)}.czBtn:disabled{opacity:.45;cursor:default}.czBar{z-index:5;background:var(--panel);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-radius:12px 12px 0 0;position:sticky;bottom:0}.czBarInner{justify-content:flex-end;gap:10px;display:flex}.czScrim{z-index:20;background:#0a140a59;position:fixed;top:0;bottom:0;left:0;right:0}.czSheet{z-index:21;background:var(--panel);max-width:560px;max-height:56vh;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;margin:0 auto;position:fixed;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -12px 32px -12px #00000059}.czSheet h3{color:var(--cz-bad);margin:0 0 4px;font-size:17px;font-weight:700}.czSheet p{color:var(--muted);margin:0 0 14px;font-size:14px}.czSheet .czSwatches{margin-bottom:16px}.customise.sheetOpen .czPreview{z-index:22;position:relative}@media (min-width:880px){.czSheet{width:min(560px,100vw - 560px);margin:0;left:auto;right:24px}}@media (max-width:879px){.customise.sheetOpen .czPreview{background:var(--cream);padding-bottom:6px;position:sticky;top:0}.customise.sheetOpen .czChecks,.customise.sheetOpen .czVisionRow,.customise.sheetOpen .czCaption{display:none}.customise.sheetOpen .czBoardWrap{max-width:min(460px,38vh)}}.czToast{left:50%;bottom:calc(84px + env(safe-area-inset-bottom,0px));opacity:0;pointer-events:none;z-index:30;background:var(--ink);color:var(--cream);text-align:center;border-radius:12px;max-width:min(92vw,420px);padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,12px)}.czToast.on{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.czSq,.czToast{transition:none}}.pageSlot:not([hidden]){display:contents}.tourLayer{--tour-green:#2c4a2c;--tour-gold:#ed8a00;z-index:1000;position:fixed;top:0;bottom:0;left:0;right:0}.tourDim{background:#0f190f73;position:fixed;top:0;bottom:0;left:0;right:0}.tourRing{border:4px solid var(--tour-gold);pointer-events:none;border-radius:14px;position:fixed;box-shadow:0 0 0 9999px #0f190f73}.tourRing.animated{transition:top .25s,left .25s,width .25s,height .25s}.tourCard{max-height:72dvh;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--panel);color:var(--ink);border-top:6px solid var(--tour-green);border-radius:18px 18px 0 0;gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -10px 30px #00000040}.tourCard.tourCardTry{max-height:94dvh}.tourCard.tourCardPointing{max-height:54dvh}.tourCard.animated{animation:.2s ease-out tourCardIn}@keyframes tourCardIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (min-width:900px){.tourCard{border-top:0;border-left:6px solid var(--tour-green);border-radius:18px;width:400px;max-height:calc(100dvh - 48px);bottom:24px;left:auto;right:24px}.tourCard.tourCardTry{width:460px}}.tourCardHead{justify-content:space-between;align-items:center;gap:8px;display:flex}.tourStepCount{color:var(--muted);font-size:13px;font-weight:700}.tourClose{border-radius:50%;min-width:44px;min-height:44px;padding:0;font-size:18px}.tourTitle{color:var(--tour-green);margin:0;font-size:22px;line-height:1.25}.tourTitle:focus{outline:none}.tourTitle:focus-visible{outline:3px solid var(--tour-gold);outline-offset:2px}.tourText{margin:0;line-height:1.5}.tourWhere{color:var(--muted);margin:0;font-size:14px}.tourButtons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tourCard .tourButtons{bottom:calc(-16px - env(safe-area-inset-bottom,0px));margin:0 -16px calc(-16px - env(safe-area-inset-bottom,0px));padding:10px 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);position:sticky}@media (min-width:900px){.tourCard .tourButtons{margin-bottom:-16px;padding-bottom:16px;bottom:-16px}}.tourButtons button{min-width:44px;min-height:44px}.tourCard .tourPrimary{background:var(--tour-green);border-color:var(--tour-green);color:#fff}.tourCard .tourPrimary:hover:not(:disabled){background:#1f361f}.tourSkip{margin-left:auto}.tourCard button:focus-visible{outline:3px solid var(--tour-gold);outline-offset:2px}.tourCard input:focus-visible{outline:3px solid var(--tour-gold);outline-offset:2px}.tourCard summary:focus-visible{outline:3px solid var(--tour-gold);outline-offset:2px}.tourReader{gap:10px;display:grid}.tourSpeaker{border-radius:18px;justify-self:start;align-items:center;gap:12px;min-height:72px;padding:8px 18px;font-size:18px;font-weight:700;display:flex}.tourSpeaker.on{background:var(--tour-green);border-color:var(--tour-green);color:#fff}.tourSpeaker.on:hover:not(:disabled){background:#1f361f}.tourSpeakerIcon{place-items:center;width:64px;height:64px;font-size:44px;line-height:1;display:grid}.tourOtherSettings{flex-wrap:wrap;gap:6px 14px;display:flex}.tourSetting{align-items:center;gap:8px;min-height:44px;display:flex}.tourSetting input{width:22px;height:22px}.tourTry{justify-items:center;gap:8px;display:grid}.tourTryTurn{margin:0;font-weight:700}.tourTryBoard{aspect-ratio:1;width:min(100%,46dvh,420px)}.tourTryFeedback{text-align:center;margin:0;font-weight:700}.tourTryFeedback.good{color:#2e6b34}.tourTryFeedback.bad{color:var(--danger)}.tourTryHelp{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.tourTryHelp p{margin:0}.tourTryHelp button{min-height:44px}.tourChapters summary{cursor:pointer;align-items:center;min-height:44px;font-weight:700;display:flex}.tourChapters ol{gap:2px;margin:0;padding-left:22px;display:grid}.tourChapters button{text-align:left;background:0 0;border:0;min-height:44px;padding:8px 4px}.tourChapters button[aria-current]{color:var(--tour-green);font-weight:800}.tourToastRegion{z-index:900;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:16px;left:16px;right:16px}.tourToast{pointer-events:auto;color:#fff;box-shadow:var(--shadow);background:#2c4a2c;border-radius:14px;align-items:center;gap:12px;padding:10px 16px;display:flex}.tourToast .linkButton{color:#fff;min-height:44px}@media (prefers-reduced-motion:reduce){.tourCard.animated{animation:none}.tourRing.animated{transition:none}}.navDropdown.tourOpen{min-width:230px;max-width:calc(100vw - 32px);position:absolute;top:calc(100% + 6px);left:0;right:auto}body.tourOpen{padding-bottom:75dvh}@media (max-width:899px){body.tourOpen .pageSlot .puzzleBoardBoard{max-width:min(560px,40dvh)}}.instructions .tourButton{min-height:52px;padding:10px 22px;font-size:18px}
