:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f4f8f8;--surface:#fff;--ink:#163332;--muted:#526966;--teal:#087f79;--teal-strong:#066b65;--teal-soft:#e4f4f1;--line:#d6e5e2;--danger:#aa333d;background:var(--canvas);color:var(--ink);font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--canvas);overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;min-height:100vh;margin:0;overflow-x:clip}button,input,select{font:inherit}button{background:var(--teal);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:44px;padding:11px 16px;font-weight:650;line-height:1.35;transition:background .15s,border-color .15s,box-shadow .15s}button:hover:not(:disabled){background-color:var(--teal-strong)}button:disabled{color:#677d78;cursor:not-allowed;background:#edf2f1;border-color:#d6e1df}button,input,select,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}input,select{width:100%;min-width:0;min-height:50px;color:var(--ink);background:#fff;border:1px solid #7b9690;border-radius:12px;padding:12px 14px;font-size:16px}input::placeholder{color:#637b76;opacity:1}input:focus,select:focus{border-color:var(--teal)}h1,h2,h3,p{overflow-wrap:break-word}h1{letter-spacing:-.035em;margin:0;font-size:clamp(2rem,5vw,2.7rem);font-weight:750;line-height:1.13}h2{letter-spacing:-.025em;margin:0 0 14px;font-size:1.55rem;line-height:1.25}h3{font-size:1rem;line-height:1.4}p{color:var(--muted);line-height:1.6}label{color:var(--ink);font-size:.875rem;font-weight:600}.shell{min-height:100dvh;padding:max(32px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.appHeader,.appPage{width:min(780px,100%);margin-inline:auto}.appHeader{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.appHeader h1{margin-top:15px}.brandName{color:var(--teal-strong);letter-spacing:-.03em;align-items:center;gap:9px;margin:0;font-size:1.12rem;font-weight:750;line-height:1.25;display:flex}.brandMark{flex:none;width:29px;height:29px}.appNavigation{border:1px solid var(--line);background:#fff;border-radius:20px;gap:5px;padding:6px;display:flex;box-shadow:0 4px 16px #173e3805}.appNavigation button{min-width:0;color:var(--muted);background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:9px 13px;font-size:.78rem;display:flex}.appNavigation button:hover{background:var(--teal-soft)}.appNavigation button{position:relative}.navigationBadge{box-sizing:border-box;color:#fff;text-align:center;font-variant-numeric:tabular-nums;background:#ae3821;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:1px;left:calc(50% + 7px)}.settingNavigation{color:var(--ink);text-align:left;justify-content:space-between;align-items:center;display:flex}.settingNavigation:hover:not(:disabled){background:var(--teal-soft)}.appNavigation button[aria-current=page]{background:var(--teal-soft);color:var(--teal-strong)}.platformCard,.tableSurface{border:1px solid var(--line);background:var(--surface);border-radius:24px;padding:clamp(22px,4vw,32px);box-shadow:0 8px 32px #163b3305}.platformCard>:first-child{margin-top:0}.platformCard>:last-child{margin-bottom:0}.platformCard p,.pageNotice{font-size:.94rem}.sideStack{align-content:start;gap:20px;display:grid}.authShell{place-items:center;display:grid}.authCard{width:min(460px,100%);padding:clamp(24px,6vw,40px)}.authCard .brandName{margin-bottom:32px}.authCard h1{font-size:clamp(1.9rem,6vw,2.35rem)}.authCard>p:not(.brandName){margin:16px 0 24px}.authForm{gap:18px;margin-top:24px;display:grid}.authForm label{gap:8px;display:grid}.authForm label small{color:var(--muted);font-weight:400;display:inline}.authForm button{min-height:50px}.authForm button[type=button]{color:var(--teal-strong);background:var(--teal-soft)}.authForm button[type=button]:hover{background:#d3ede7}.authForm button[type=submit]{margin-top:4px}.authCard>p.authDivider{color:var(--muted);align-items:center;gap:12px;margin:22px 0 18px;font-size:.9rem;display:flex}.authDivider:before,.authDivider:after{content:"";border-top:1px solid var(--line);flex:1}.googleAction{border:1px solid var(--line);background:var(--surface);min-height:50px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;gap:10px;font-weight:650;text-decoration:none;display:flex}.googleAction:hover{background:var(--canvas)}.googleAction:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.appStoreBadge{border-radius:9px;width:min(180px,100%);margin:28px auto 0;line-height:0;display:block}.appStoreBadge img{width:100%;height:auto;display:block}.appStoreBadge:focus-visible{outline:3px solid var(--teal);outline-offset:4px}.eyebrow{color:var(--teal-strong);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-size:.75rem;font-weight:750}.playWelcome{padding:clamp(22px,5vw,44px) 0 16px}.playWelcome h2{letter-spacing:-.055em;max-width:12ch;margin:16px 0 20px;font-size:clamp(2.9rem,9vw,4.5rem);line-height:1.04}.playWelcome>p:not(.eyebrow){max-width:38ch;font-size:1.05rem}.gameEntry{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:24px;align-items:center;gap:24px;margin-top:32px;padding:clamp(22px,5vw,32px);display:flex;box-shadow:0 8px 24px #086b6510}.gameEntry:hover:not(:disabled){border-color:var(--teal);background:#fbfefd}.gameEntry>span:nth-child(2){flex:1;min-width:0}.gameEntry strong,.gameEntry small{display:block}.gameEntry strong{letter-spacing:-.025em;font-size:1.7rem}.gameEntry small{color:var(--muted);margin-top:7px;font-size:.91rem;font-weight:400;line-height:1.55}.gameEntryIcon{width:64px;height:64px;color:var(--teal);background:var(--teal-soft);border-radius:18px;flex:none;place-items:center;display:grid;transform:rotate(-6deg)}.gameEntryIcon .brandMark{width:44px;height:44px}.gameEntry>span:last-child{color:var(--teal);font-size:1.5rem}.primaryAction{min-height:52px;padding-inline:20px;font-weight:700}.secondaryAction,.signOutAction,.dangerAction{min-height:46px;color:var(--teal-strong);background:var(--teal-soft);border-color:#c3e0d9;margin-top:16px}.secondaryAction:hover:not(:disabled),.signOutAction:hover:not(:disabled){background:#d3ede7}.dangerAction{color:var(--danger);background:#fff4f3;border-color:#f0d4d3}.dangerAction:hover:not(:disabled){background:#fbe6e4}.accountActions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;display:grid}.accountActionsCard{padding:16px}.accountActions>button{overflow-wrap:anywhere;width:100%;min-width:0;min-height:48px;margin:0;padding-inline:6px;font-size:.875rem}.deleteAccountDialog{border:1px solid var(--line);background:var(--surface);width:min(560px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:20px;padding:24px;overflow-y:auto;box-shadow:0 20px 80px #16333240}.deleteAccountDialog::backdrop{background:#16333280}.deleteAccountDialog .accountActions>button{margin:0}.backLink{color:var(--teal-strong);text-align:left;background:0 0;border-color:#0000;padding:10px 0}.backLink:hover:not(:disabled){color:var(--ink);background:0 0;text-decoration:underline}.gameSetup{gap:22px;display:grid}.gameSetup h2,.gameSetup p{margin:0}.gameSetup h2{font-size:2rem}.gameSetup .secondaryAction{margin-top:0}.gameSetup fieldset{border:0;min-width:0;margin:4px 0;padding:0}.gameSetup legend{margin-bottom:12px;font-weight:650}.segmentedControl{background:#edf3f1;border-radius:15px;gap:4px;padding:4px;display:flex}.segmentedControl button{min-width:0;color:var(--muted);background:0 0;border-radius:11px;flex:1;padding:10px 8px;font-size:.9rem}.segmentedControl button.active{color:var(--teal-strong);background:#fff;box-shadow:0 2px 5px #163b3312}.segmentedControl button:hover:not(:disabled){background:#fff}.rulesDetails{border-block:1px solid var(--line);color:var(--muted);padding-block:18px}.rulesDetails summary{cursor:pointer;align-content:center;min-height:44px;font-size:.94rem;font-weight:600}.rulesDetails .segmentedControl{margin:16px 0}.rulesDetails p{font-size:.9rem;line-height:1.65}.sectionHeading,.socialRow,.gameContext,.tableHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.sectionHeading h2{margin:0}.socialRow{border-bottom:1px solid var(--line);flex-wrap:wrap;padding:16px 0}.socialRow>strong,.socialRow>span{overflow-wrap:anywhere;min-width:0}.socialIdentity{overflow-wrap:anywhere;flex:150px;gap:4px;min-width:0;display:grid}.socialIdentity small{color:var(--muted)}.searchRow{flex-wrap:wrap;align-items:end;gap:12px;margin-block:22px;display:flex}.searchRow label{flex:1;gap:8px;min-width:150px;display:grid}.searchRow button{min-height:50px}.inlineActions{flex-wrap:wrap;gap:8px;display:flex}.confirmationBox{background:#fff9ed;border:1px solid #e6cba9;border-radius:16px;margin-top:18px;padding:18px}.confirmationBox p{color:#75532c}.zeroScoreDialog{border:1px solid var(--line);background:var(--surface);max-width:min(420px,100vw - 32px);color:var(--ink);border-radius:20px;padding:24px;box-shadow:0 20px 80px #16333240}.zeroScoreDialog::backdrop{background:#16333280}.repeatGuidance{box-sizing:border-box;width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);padding:20px;overflow-y:auto}.repeatGuidance h2{margin:6px 0 14px}.repeatGuidance p,.repeatGuidance li{line-height:1.45}.repeatGuidance ol{padding-left:22px}.repeatGuidance li+li{margin-top:10px}.repeatGuidance .repeatBonus{font-weight:650}.repeatGuidance .repeatPlacement{background:var(--teal-soft,#e4f4f1);border-radius:12px;padding:12px;font-weight:650}.repeatGuidance .dialogActions{background:var(--surface);margin:14px -4px -4px;padding:12px 4px 4px;position:sticky;bottom:-20px}.repeatGuidance .dialogActions button{width:100%;min-height:44px}.dialogActions{justify-content:flex-end;gap:12px;display:flex}.friendsSummary{width:fit-content;color:var(--ink);background:#effbf8;border:1px solid #b9e7df;border-radius:999px;align-items:baseline;gap:8px;margin:18px 0 24px;padding:10px 14px;display:flex}.friendsSummary strong{color:var(--teal);font-size:1.15rem}.friendsSummary span+strong{margin-left:10px}.friendRow{grid-template-columns:42px minmax(0,1fr) auto;display:grid}.friendAvatar{width:40px;height:40px;color:var(--teal);background:#dff7f2;border-radius:50%;place-items:center;font-weight:800;display:grid}.friendsEmpty{background:#f7fdfb;border:1px dashed #9dd8cd;border-radius:16px;gap:5px;margin:10px 0 24px;padding:20px;display:grid}.friendsEmpty span,.socialIdentity small{color:var(--muted)}.statusPill{color:var(--teal);background:#e8f6f3;border-radius:999px;padding:5px 10px;font-size:.85rem;font-weight:700}.onlineLobby{gap:18px;display:grid}.onlineLobby h2,.onlineLobby h3,.onlineLobby p{margin:0}.onlineLobby>.backLink{justify-self:start}.lobbyEntry{text-align:left;background:var(--canvas);color:var(--ink);border-color:var(--line);flex-direction:column;gap:8px;padding:20px;display:flex}.lobbyEntry:hover:not(:disabled){background:var(--teal-soft)}.lobbyEntry span{color:var(--muted);font-size:.85rem;font-weight:400}.mutedText{color:var(--muted)}.tableSurface{align-content:start;gap:20px;display:grid;position:relative;overflow:visible}.tableSurface>*{min-width:0}.tableHeader>span{letter-spacing:-.025em;font-size:1.35rem;font-weight:750}.tableHeader>strong{color:var(--teal-strong);background:var(--teal-soft);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:9px;padding:7px 10px;font-size:.78rem}.gameContext{color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;padding-bottom:8px;font-size:.9rem}.gameContext>span{overflow-wrap:anywhere;min-width:0}.diceRow{perspective:900px;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,2vw,12px);width:min(100%,480px);margin:10px auto 4px;display:grid}.die{--dieTilt:0deg;aspect-ratio:1;min-width:0;min-height:0;transform:rotate(var(--dieTilt));background:linear-gradient(145deg,#fff,#f4f8f6);border:1px solid #bccfc9;border-radius:19%;place-items:center;padding:0;transition:transform .18s,box-shadow .18s;display:grid;position:relative;box-shadow:inset 0 -3px #dfeae6,0 5px 8px #14382c12}.dieTone1{--dieTilt:-4deg}.dieTone2{--dieTilt:3deg}.dieTone3{--dieTilt:-1deg}.dieTone4{--dieTilt:2deg}.dieTone5{--dieTilt:-3deg}.die:hover:not(:disabled){transform:translateY(-3px) rotate(var(--dieTilt));background:#fff;box-shadow:inset 0 -3px #dfeae6,0 7px 10px #14382c20}.die.locked,.die.locked:hover:not(:disabled){border:2px solid var(--teal);background:var(--teal-soft);transform:translateY(4px);box-shadow:inset 0 -3px #c1e4db,0 0 0 2px #e4f4f1}.die:disabled{opacity:1;background:#f5f8f7}.dieFace{aspect-ratio:1;grid-template:repeat(3,1fr)/repeat(3,1fr);gap:0;width:68%;display:grid}.pip{grid-row:var(--pipRow);grid-column:var(--pipColumn);aspect-ratio:1;background:var(--ink);border-radius:50%;place-self:center;width:68%}.die.locked .pip{background:var(--teal-strong)}.die>span:not(.dieFace){display:none}.diceHint{text-align:center;color:var(--muted);margin:0;font-size:.8rem}.preRollPrompt{text-align:center;background:var(--surface);border-radius:18px;place-content:center;gap:6px;width:min(100%,480px);min-height:96px;margin:10px auto 4px;padding:16px;display:grid}.preRollPrompt strong{font-size:1.5rem}.preRollPrompt span{color:var(--muted);font-size:.875rem}.rollActions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.rollActions button{background:var(--teal-soft);color:var(--teal-strong)}.rollActions button:disabled{color:#677d78;background:#edf2f1}.rollActions strong{width:100%;color:var(--muted);text-align:center;font-size:.83rem;font-weight:500}.familyRollActions{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;padding-top:8px;display:grid}.familyRollActions button{background:var(--teal-soft);min-width:0;min-height:44px;color:var(--teal-strong);border-radius:6px;font-size:.9rem;font-weight:700}.familyRollActions button:disabled{color:#677d78;background:#edf2f1}.pinnedRollAction{bottom:max(10px, env(safe-area-inset-bottom));z-index:18;border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;border-radius:18px;width:100%;margin:0;padding:8px;position:sticky;transform:translateZ(0);box-shadow:0 8px 28px #173e3820}.pinnedRollAction>button{width:100%;min-height:52px;font-size:1rem;font-weight:800}.scoreSection{border-top:1px solid var(--line);padding-top:18px}.scoreSection h3{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px;font-size:.78rem;font-weight:700}.scoreGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.scoreGrid button{text-align:left;min-height:74px;color:var(--ink);background:#fff;border:1px solid #c7dad5;justify-content:space-between;align-items:center;gap:8px;padding:13px;display:flex}.scoreGrid button:hover:not(:disabled){background:var(--teal-soft);border-color:var(--teal)}.scoreGrid button.scoreable{background:var(--teal-soft);border:1px solid var(--teal);box-shadow:inset 0 0 0 1px var(--teal), 0 0 0 2px #1199851f}.scoreGrid button.scratch{background:var(--surface);border:1px solid var(--line);color:var(--ink);box-shadow:none}.scoreGrid button.illegal:disabled{opacity:.55;filter:grayscale(.35)}.tableSurface[data-player-color]{background:var(--player-wash);background:var(--player-wash)}.scoreGrid button>span{font-size:.82rem;font-weight:600}.scoreGrid strong{color:var(--teal-strong);font-variant-numeric:tabular-nums;font-size:1.2rem}.scoreGrid button:disabled{color:#677d78;background:#f3f6f5}.scoreGrid button.scored{color:var(--muted);background:#f1f4f3;border-color:#d6dedd}.scoreGrid button.scored>span:after{content:"Saved";color:var(--muted);margin-top:4px;font-size:.66rem;font-weight:500;display:block}.scoreGrid button.scored.parMet{color:#1e6b37;background:#e6f4ea;border-color:#9fd2ad}.scoreGrid button.scored.parMet strong{color:#1e6b37}.scoreGrid button.scored.parMet .scoreCheck{color:#fff;background:#2e8b4a;border-color:#2e8b4a}.scoreGrid button.scored.parOver{color:#1d4f91;background:#e5effc;border-color:#9dbfe8}.scoreGrid button.scored.parOver strong{color:#1d4f91}.scoreGrid button.scored.parOver .scoreCheck{color:#fff;background:#2f6fc0;border-color:#2f6fc0}.scoreGrid button.scored.parMissed{color:#9a2f25;background:#fbeaea;border-color:#e7aaa5}.scoreGrid button.scored.parMissed strong{color:#9a2f25}.scoreGrid button.scored.parMissed .scoreCheck{color:#fff;background:#b9483d;border-color:#b9483d}.scoreSummary{background:var(--canvas);color:var(--muted);border-radius:16px;gap:12px;padding:18px;font-size:.86rem;display:grid}.scoreSummary strong{color:var(--ink)}.scoreSummary progress{width:100%;height:7px;accent-color:var(--teal);border:0;border-radius:10px;overflow:hidden}progress::-webkit-progress-bar{background:#dbe8e4}progress::-webkit-progress-value{background:var(--teal)}.ruleAlert,main [role=alert]{color:#91313b;background:#fff5f3;border:1px solid #e8cece;border-radius:14px;padding:14px 16px;line-height:1.5}main [role=alert] p{color:inherit}main [role=alert] p:first-child{margin-top:0}[role=status].pageNotice,.scoreSaveNotice{color:var(--teal-strong);background:var(--teal-soft);border:1px solid #c6e1da;border-radius:14px;padding:14px 16px}.pageNotice:empty{display:none}.scoreSaveNotice{margin-top:20px}.leaderboardFilters{flex-wrap:wrap;gap:16px;margin-top:24px;display:flex}.leaderboardFilters label{flex:1;gap:8px;min-width:120px;display:grid}.scoreEntry{text-align:left;background:#fff;gap:12px;width:100%;min-height:48px}.scoreEntry:hover:not(:disabled){background:var(--teal-soft)}.scoreSheetDialog{color:#173d38;border:1px solid #b7dcd6;border-radius:24px;width:min(92vw,520px);max-height:85dvh;padding:24px;overflow-y:auto}.scoreSheetDialog::backdrop{background:#12342db3}.scoreSheetDialog header{justify-content:space-between;align-items:center;gap:12px;display:flex}.scoreSheetDialog header button{flex-shrink:0;min-width:44px;min-height:44px}.scoreSheetDialog table{border-collapse:collapse;width:100%}.scoreSheetDialog th{text-align:left;font-weight:500}.scoreSheetDialog td{text-align:right}.scoreSheetDialog th,.scoreSheetDialog td{padding:10px 0}.scoreSheetDialog .lowerSectionStart{border-top:3px solid #b7dcd6}.scoreSheetDialog .scoreSheetTotal{border-top:2px solid #2b8a7c;font-weight:800}.profileAvatar{object-fit:cover;border-radius:50%;width:88px;height:88px;margin:16px 0;display:block}.avatarFallback{color:#126c5e;background:#dcf2ed;place-items:center;font-size:32px;display:grid}.avatarUpload{gap:8px;margin-bottom:12px;display:grid}.avatarUpload input{max-width:100%;min-height:44px}.turnAvatar{object-fit:cover;vertical-align:middle;border-radius:50%;width:44px;height:44px;margin-right:10px}.personalBest{color:var(--teal-strong);background:var(--teal-soft);border-radius:12px;padding:14px;font-weight:700}.scoreEntry{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:18px 0;display:flex}.scoreEntry strong{color:var(--ink);overflow-wrap:anywhere;min-width:0}.scoreEntry span{color:var(--teal-strong);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:750}.settingRows{gap:12px;display:grid}.settingRows button{color:var(--ink);border-color:var(--line);text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:17px 16px;font-weight:500;display:flex}.settingRows button:hover:not(:disabled){background:var(--canvas)}.settingRows strong{text-align:center;min-width:48px;color:var(--muted);background:#edf2f1;border-radius:16px;flex:none;padding:5px 8px;font-size:.8rem}.settingRows button[aria-checked=true] strong{color:#fff;background:var(--teal)}.settingRow{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:17px 16px;font-weight:500;display:flex}.settingRow strong[data-status=granted]{color:#fff;background:var(--teal)}.settingRow strong[data-status=denied]{color:#fff;background:#b54a3c}.voiceSettings>p{margin:12px 0 0}.voiceSettings>.secondaryAction{margin-top:12px}.srOnly{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.celebrationOverlay{z-index:100;background:radial-gradient(circle,#fff 0 18%,#5eead4f2 48%,#087f79 100%);place-content:center;gap:14px;animation:2.4s both celebrationFade;display:grid;position:fixed;inset:0;overflow:hidden}.celebrationOverlay.yahtzee{animation-duration:2.4s}.celebrationOverlay strong{z-index:2;color:var(--teal-strong);text-align:center;letter-spacing:-.04em;font-size:clamp(2rem,7vw,4rem);font-weight:800}.celebrationOverlay>span:not(.celebrationParticle){z-index:2;color:var(--ink);text-align:center;font-weight:650}.celebrationBurst{aspect-ratio:1;border:3px solid #087f7933;border-radius:50%;width:60%;animation:1s ease-out both celebrationBurst;position:absolute;top:25%;left:20%}.celebrationParticle{--x:50%;--delay:0s;--duration:.9s;--size:7px;--particleColor:#087f79;left:var(--x);width:var(--size);height:calc(var(--size) * 1.8);background:var(--particleColor);opacity:0;animation:celebrationParticle var(--duration) ease-out var(--delay) both;border-radius:3px;position:absolute;top:8%}.celebrationClose{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:4;color:#064e4a;background:#fffe;border-radius:50%;width:48px;height:48px;padding:0;font-size:2rem;line-height:1;position:fixed}.celebrationDice{z-index:2;color:#fff;filter:drop-shadow(0 10px 10px #064e4a66);justify-content:center;gap:clamp(4px,2vw,16px);font-size:clamp(2.7rem,9vw,6rem);display:flex}.celebrationDice span{animation:.9s cubic-bezier(.2,.9,.25,1.2) both celebrationDice}.celebrationDice span:nth-child(2),.celebrationDice span:nth-child(4){animation-delay:90ms}.die.rolling{animation:.68s cubic-bezier(.14,.88,.2,1.14) diceTumble}.die.rolling:nth-child(2){animation-delay:45ms}.die.rolling:nth-child(3){animation-delay:90ms}.die.rolling:nth-child(4){animation-delay:.135s}.die.rolling:nth-child(5){animation-delay:.18s}@keyframes diceTumble{0%,to{transform:rotate(var(--dieTilt))}20%{transform:translateY(-18px)rotate(20deg)rotateX(16deg)}45%{transform:translateY(8px)rotate(-22deg)rotateY(18deg)}70%{transform:translateY(-6px)rotate(12deg)}}@keyframes celebrationBurst{0%{opacity:0;transform:scale(.2)}36%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(1.25)}}@keyframes celebrationParticle{0%{opacity:0;transform:translateY(0)rotate(0)}20%{opacity:1}to{opacity:0;transform:translateY(72vh)rotate(380deg)}}@keyframes celebrationFade{0%,to{opacity:0}16%,82%{opacity:1}}@keyframes celebrationDice{0%{transform:translateY(70vh)rotate(-180deg)scale(.2)}65%{transform:translateY(-20px)rotate(18deg)scale(1.15)}to{transform:none}}@media (max-width:620px){.shell{padding:max(24px, env(safe-area-inset-top)) 16px calc(112px + env(safe-area-inset-bottom))}.authShell{padding-bottom:max(24px, env(safe-area-inset-bottom))}.appHeader{margin-bottom:16px}.appNavigation{bottom:max(10px, env(safe-area-inset-bottom));z-index:20;justify-content:space-around;position:fixed;left:12px;right:12px;box-shadow:0 5px 30px #163b3319}.pinnedRollAction{bottom:calc(82px + env(safe-area-inset-bottom))}.appNavigation button{flex:1 1 0;padding-inline:2px;font-size:clamp(.67rem,2.45vw,.78rem)}.appNavigation svg{width:22px;height:22px}.gameEntry{gap:16px;padding:22px 18px}.gameEntryIcon{width:54px;height:54px}.gameEntry strong{font-size:1.4rem}.gameEntry small{font-size:.85rem}.tableSurface{border-radius:20px;padding:16px 12px}.authCard{padding-inline:24px}}@media (max-width:420px){.appNavigation{gap:0;padding-inline:4px;left:8px;right:8px}.platformCard:not(.authCard):not(.accountActionsCard){padding:20px}.scoreGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.scoreGrid button{min-height:68px;padding:11px}.segmentedControl button{padding-inline:5px;font-size:.82rem}.leaderboardFilters{gap:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}.die.rolling{animation:none}.celebrationParticle,.celebrationBurst{display:none}.celebrationOverlay,.celebrationDice span{animation:none}}:root{--player-ink:#0f655d;--player-wash:#e6f4f1}.onlineLobby{position:relative}.gameSyncIndicator{z-index:3;pointer-events:none;border:3px solid #d6e5e2;border-top-color:#087f79;border-radius:50%;width:18px;height:18px;animation:1s linear infinite gameSyncSpin;position:absolute;top:10px;right:10px}@keyframes gameSyncSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gameSyncIndicator{animation:none}}.playerBadge{background:var(--player-ink);color:#fff;border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:800;display:inline-flex}.tableSurface[data-player-color]{background:var(--player-wash)}.playerRow{gap:10px}.playerRow>strong{overflow-wrap:anywhere;flex:1;min-width:0}@media (max-width:440px){.playerRow{flex-wrap:wrap}.playerRow>strong{flex-basis:45%}}:root{--tab-height:49px;--content-width:620px}.shell:not(.authShell){padding:env(safe-area-inset-top) max(0px, env(safe-area-inset-right)) calc(var(--tab-height) + env(safe-area-inset-bottom)) max(0px, env(safe-area-inset-left));min-height:100dvh}.appHeader,.appPage{width:min(var(--content-width), 100%)}.appHeader{margin:0 auto;padding:12px 16px 0}.appHeader .brandName{display:none}.appHeader:has(+.appPage .playWelcome){padding:0}.appHeader:has(+.appPage .tableSurface:not([hidden])){padding:0}.appHeader h1{margin:4px 0 12px;font-size:28px}.appNavigation{z-index:40;height:calc(var(--tab-height) + env(safe-area-inset-bottom));padding:0 max(calc((100vw - var(--content-width)) / 2), 0px) env(safe-area-inset-bottom);border:0;border-top:1px solid var(--line);box-shadow:none;background:#fff;border-radius:0;gap:0;display:flex;position:fixed;inset:auto 0 0}.appNavigation button{height:var(--tab-height);min-height:var(--tab-height);background:0 0;border-radius:0;flex:1;gap:2px;padding:3px 0;font-size:10px}.appNavigation button[aria-current=page]{color:var(--teal);background:0 0}.appNavigation svg{width:23px;height:23px}.appPage{padding:12px 16px}.appPage:has(>.playWelcome){padding:16px}.playWelcome{min-height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);align-content:start;gap:12px;padding:0;display:grid}.playWelcome h1{margin:0;font-family:ui-rounded,-apple-system,BlinkMacSystemFont,sans-serif;font-size:34px;font-weight:800}.homeDice{background:var(--teal-soft);border-radius:18px;justify-content:center;align-items:center;gap:16px;padding:18px;display:flex}.homeDice .die{background:linear-gradient(135deg,#fff,#f2faf5,#d6e6de);border-radius:22%;flex:0 0 56px;width:56px;height:56px;box-shadow:1px 4px 6px #173d3726}.homeDice .die:after{content:"";pointer-events:none;border:1px solid #173d370d;border-radius:15%;position:absolute;inset:10%}.homeDice .dieTone1{--dieTilt:-5deg}.homeDice .dieTone2{--dieTilt:5deg}.homeDice .dieTone3{--dieTilt:10deg}.homeDice .dieFace{width:54%}.homeDice .pip{width:72%;box-shadow:0 1px 2px #ffffff47}.homeAction{text-align:left;border-radius:18px;grid-template-columns:42px 1fr auto;align-items:center;gap:20px;width:100%;min-height:94px;padding:12px 24px;font-size:22px;font-weight:700;display:grid}.homeAction>svg{justify-self:center;width:30px;height:30px}.homeAction>.navigationBadge{border-radius:11px;justify-self:center;min-width:22px;height:22px;font-size:12px;line-height:1;position:static}.homeAction.hostGame,.homeAction.joinGame{color:var(--teal);background:var(--teal-soft);border-color:#087d7859}.homeOpenGames{border-top:1px solid var(--line);gap:10px;margin-top:8px;padding-top:16px;display:grid}.homeOpenGames h2{margin:0;font-size:1.1rem}.homeOpenGames .lobbyEntry{border-radius:14px}.homeGameRow{align-items:stretch;gap:8px;display:flex}.homeGameRow .lobbyEntry{flex:1;min-width:0}.homeGameRemove{min-height:40px;color:var(--danger);background:#fff4f3;border-color:#f0d4d3;border-radius:12px;flex:none;align-self:center;padding:0 12px;font-size:.85rem}.homeGameRemove:hover:not(:disabled){background:#fbe6e4}.hostGame:hover:not(:disabled),.joinGame:hover:not(:disabled){background:#d5ece7}.platformCard{box-shadow:none;border-radius:18px;padding:16px}.gameSetup,.onlineLobby{min-height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);background:0 0;border:0;align-content:start;gap:16px;padding:0}.gameSetup h2,.onlineLobby h2{text-align:center;font-size:20px}.gameSetup>.primaryAction,.setupStart{bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 8px);width:100%;min-height:50px;margin-top:24px;position:sticky}.rulesChoice{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.rulesChoice legend{padding:0 0 12px;font-size:17px;font-weight:600}.ruleChoice{text-align:left;min-height:62px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.ruleChoice.selected{border-color:var(--teal);background:#f1faf8}.ruleChoice:hover:not(:disabled){background:var(--teal-soft)}.ruleChoice strong,.ruleChoice small{display:block}.ruleChoice small{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400}.ruleCheck{border:1px solid var(--muted);text-align:center;border-radius:50%;flex:0 0 24px;width:24px;height:24px;line-height:22px}.selected .ruleCheck{color:#fff;background:var(--teal);border-color:var(--teal)}.rulesChoice .rulesDetails{border:0;padding:0}.rulesChoice .rulesDetails summary{color:var(--teal);font-size:14px;text-decoration:underline}.gameName{gap:8px;margin-top:12px;display:grid}.gameName input{border-color:var(--line)}.lobbyListCard{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px}.lobbyListCard .lobbyEntry{background:0 0;border:0;border-radius:0;width:100%;padding:0 0 10px}.lobbyListCard .inlineActions>button{flex:1;margin:0}.gameCount{box-sizing:border-box;background:var(--line);min-width:18px;height:18px;color:var(--ink);font-variant-numeric:tabular-nums;vertical-align:middle;border-radius:9px;justify-content:center;align-items:center;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.gameCount.alert{color:#fff;background:#ae3821}.lobbyEntry.yourTurn{border-color:var(--teal)}.lobbyEntry.yourTurn span{color:var(--teal-strong);font-weight:650}.screenLoader{min-height:240px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-weight:600;display:flex}.appPage.opening>:not(.screenLoader){display:none!important}.screenSpinner{border:4px solid var(--line);border-top-color:var(--teal);border-radius:50%;width:34px;height:34px;animation:1s linear infinite gameSyncSpin}.accountTabs button.active,.accountScores .segmentedControl button.active{background:var(--teal);color:#fff}.accountPage{min-height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 64px);flex-direction:column;display:flex}.releaseFooter{color:var(--muted);text-align:right;overflow-wrap:anywhere;margin-top:auto;padding-top:16px;font-size:.75rem;line-height:1.5}.savedScoreRow{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;background:#fff;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:12px;display:flex}.savedScoreRow strong,.savedScoreRow small{display:block}.savedScoreRow small{color:var(--muted);margin-top:4px;font-size:12px;font-weight:400}.savedScoreRow>span:last-child{color:var(--teal);font-size:26px}.savedScoreRow:hover:not(:disabled){background:var(--teal-soft)}.scoresCount{text-align:center;font-size:12px}.tableSurface{box-shadow:none;background:0 0;border:0;border-radius:0;gap:8px;padding:0}.tableHeader>span{font-size:20px}.tableHeader>strong{font-size:11px}.diceRow{gap:8px;width:min(100%,292px);margin:6px auto}.preRollPrompt{background:0 0;min-height:88px;margin:0 auto}.diceHint{font-size:11px}.scoreSection{padding-top:4px}.scoreSection h3{margin:0 0 6px;font-size:11px}.scoreGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.scoreGrid button{border-radius:10px;min-height:44px;padding:8px 10px}.scoreGrid button>span{font-size:13px}.scoreGrid button.scored>span:after{display:none}.scoreGrid strong{font-size:16px}.scoreSummary{gap:4px;padding:8px;font-size:12px}.rollActions{gap:4px}.rollActions>button{min-height:36px;padding:6px 10px;font-size:12px}.rollActions>strong{width:auto;margin-left:auto}.pinnedRollAction{bottom:calc(var(--tab-height) + env(safe-area-inset-bottom));box-shadow:none;background:var(--canvas);border:0;border-radius:0;padding:8px 0}.pinnedRollAction>button{border-radius:14px;min-height:50px}.familyRollActions{gap:8px;padding-top:6px}.familyRollActions button{min-height:40px}@media (min-width:768px){.appPage{padding:16px 20px}}@media (max-height:499px){.playWelcome{gap:8px}.playWelcome h1{font-size:28px}.homeAction{min-height:52px;padding-block:8px}.homeDice{padding:8px}.homeDice .die{flex-basis:40px;width:40px;height:40px}}@media (max-height:700px){.tableSurface{gap:5px}.preRollPrompt{min-height:64px}.scoreGrid button{min-height:40px}}.tableSurface{height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);flex-direction:column;display:flex}.boardViewport{flex:1;min-height:0;position:relative;overflow:hidden}.boardContent{width:100%;transform:translateX(-50%) scale(var(--board-fit,1));transform-origin:top;gap:8px;display:grid;position:absolute;top:0;left:50%}.boardStatus{flex:0 0 3.6em;height:3.6em;font-size:12px;line-height:1.2;overflow:auto}.boardStatus>.pageNotice,.boardStatus>.ruleAlert{font-size:inherit;line-height:inherit;border-radius:10px;margin:0;padding:5px 8px}.tableSurface .pinnedRollAction{flex:none;position:static}@media (min-width:768px){.tableSurface{height:calc(100dvh - var(--tab-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}}.tableToolbar{flex:none;grid-template-columns:1fr auto 1fr;align-items:center;min-height:36px;display:grid}.tableToolbar>strong{font-size:18px}.tableToolbar .backLink{min-height:36px;margin:0;padding:4px 0;font-size:14px}.tableToolbar .backLink:first-child{justify-self:start;min-width:44px;font-size:28px}.tableToolbar .backLink:last-child{justify-self:end}.boardContent>.tableHeader,.boardContent>.diceHint,.boardContent>.rollActions{display:none}.boardContent>.gameContext{border:0;order:0;justify-content:center;padding:0;font-size:12px}.boardContent>.gameContext>span,.boardContent>.gameContext>button{display:none}.boardContent>.diceRow,.boardContent>.preRollPrompt,.boardContent>.onlineStandings{order:1}.boardContent>.scoreSummary{border:1px solid var(--line);background:#fff;border-radius:12px;order:2}.scoreSummary>span:nth-of-type(2){display:none}.boardContent>.scoreSection{order:3}.boardContent>.pageNotice,.boardContent>.ruleAlert{order:4}.boardContent>.playerBoardSelector{order:0}.playerBoardSelector{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.playerBoardSelector button{border:1px solid var(--line);min-height:32px;color:var(--player-ink);background:#fff;border-radius:99px;flex:none;align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:flex}.playerBoardSelector button:hover:not(:disabled),.playerBoardSelector button:disabled{color:var(--player-ink);background:#fff}.playerBoardSelector button[aria-pressed=true],.playerBoardSelector button[aria-pressed=true]:hover:not(:disabled),.playerBoardSelector button[aria-pressed=true]:disabled{background:var(--player-ink);border-color:var(--player-ink);color:#fff}.playerBoardSelector button[aria-pressed=true] i{background:#fff}.playerBoardSelector button[aria-pressed=true] .playerInitial{color:var(--player-ink)}.playerBoardSelector img,.playerInitial{object-fit:cover;border-radius:50%;flex:none;width:22px;height:22px}.playerInitial{background:var(--player-wash);place-items:center;display:grid}.playerBoardSelector i{background:var(--player-ink);border-radius:50%;width:8px;height:8px}.playerBoardSelector small{text-align:left;font-size:8px;display:block}.opponentTurnStatus{color:var(--player-ink);background:var(--player-wash);border:1px solid var(--player-ink);border-radius:12px;order:0;align-items:center;gap:10px;padding:7px 12px;display:flex}.opponentTurnStatus>span{font-size:24px}.opponentTurnStatus strong,.opponentTurnStatus small{display:block}.opponentTurnStatus strong{font-size:14px}.opponentTurnStatus small{font-size:12px}.nativeBoardTotal{text-align:right;font-variant-numeric:tabular-nums;order:1;font-size:14px}.scoreSummary>strong{display:none}.scoreCheck{border:1.5px solid var(--muted);border-radius:50%;flex:none;place-items:center;width:15px;height:15px;font-size:10px;font-style:normal;display:grid}.scored .scoreCheck{color:#fff;background:var(--muted)}.scoreGrid button>span{flex:1}.scoreGrid button small{color:var(--muted);font-size:10px;font-weight:400;display:block}.scoreGrid button.justScored{background:var(--player-wash);border:1px solid var(--player-ink);box-shadow:inset 0 0 0 1px var(--player-ink);opacity:1;color:var(--player-ink)}.finalStandings{padding:12px;overflow-y:auto}.finalPlayer{width:100%;color:var(--ink);border-bottom:1px solid var(--line);text-align:left;background:#fff;border-radius:0;align-items:center;gap:8px;padding:16px 4px;display:flex}.finalPlayer>strong{margin-left:auto}.winnerCrown{color:#bb8900}.upperProgressLabels{justify-content:space-between;gap:8px;font-weight:600;display:flex}.heldDieBadge{background:var(--player-ink,#007f7a);color:#fff;border-radius:50%;place-items:center;width:17px;height:17px;padding:3px;display:grid;position:absolute;bottom:-4px;right:-4px}.heldDieBadge svg{fill:none;stroke:currentColor;stroke-width:2px;width:100%;height:100%;display:block}.pinnedRollAction>button small{font-size:12px;font-weight:400;display:block}.soloCompletion{justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.soloCompletion>div{gap:4px;display:grid}.soloCompletion .inlineActions{flex-wrap:nowrap;display:flex}.soloCompletion .inlineActions button{min-height:40px;margin:0}.runItBack{width:100%;margin-top:16px}.soloCompletion span{color:var(--teal)}.accountHelp{justify-content:space-between;align-items:center;min-height:44px;display:flex}.boardContent .scoreGrid button{min-height:var(--score-row,44px);height:var(--score-row,44px);padding-block:0}.boardStatus:empty{flex-basis:0;height:0}.boardContent .scoreGrid button>span{font-size:15px;font-weight:500}.boardContent .scoreGrid strong{font-size:17px}.boardContent>.gameContext{font-size:13px}.houseRuleList{gap:4px;margin-top:8px;display:grid}.houseRuleOption{cursor:pointer;align-items:flex-start;gap:12px;min-height:44px;padding:10px 4px;display:flex}.houseRuleOption input{width:22px;height:22px;min-height:0;accent-color:var(--teal);flex:none;margin:1px 0 0;padding:0}.houseRuleOption strong,.houseRuleOption small{display:block}.houseRuleOption small{color:var(--muted);margin-top:2px;font-size:13px;line-height:1.35}.houseRuleOption:has(input:disabled){opacity:.55;cursor:default}.houseRulesNote{color:var(--muted);font-size:13px;font-weight:400;display:block}.searchRow{position:relative}.searchField{display:block}.searchField>input{width:100%}.searchDropdown{z-index:20;border:1px solid var(--line);background:var(--surface);border-radius:16px;max-height:300px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 40px #16333226}.searchSuggestion{border-radius:12px;align-items:center;gap:12px;min-height:52px;padding:6px 8px;display:flex}.searchSuggestion+.searchSuggestion{border-top:1px solid var(--line)}.searchSuggestion>.socialIdentity{flex:1;min-width:0}.searchSuggestion strong{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-weight:600;display:block;overflow:hidden}.searchSuggestion>button{min-height:36px;padding:6px 14px}.searchDropdownNote{color:var(--muted);margin:0;padding:12px 10px;font-weight:400}.tableTitle{justify-items:center;line-height:1.15;display:grid}.tableTitle small{color:var(--muted);gap:4px;font-size:11px;font-weight:600;display:flex}.tableTitle small span+span:before{content:"· "}.boardContent>.gameContext{display:none}.boardContent>.preRollPrompt{min-height:64px;padding-block:6px}.tableSurface>.opponentTurnStatus{z-index:7;background:var(--surface);pointer-events:none;border-width:3px;border-radius:20px;gap:12px;width:max-content;max-width:calc(100% - 24px);padding:14px 22px;animation:.25s ease-out turnToastIn;position:absolute;top:30%;left:50%;transform:translate(-50%);box-shadow:0 16px 48px #16333240}.tableSurface>.opponentTurnStatus>span{font-size:28px}.tableSurface>.opponentTurnStatus strong{font-size:22px;line-height:1.15}.tableSurface>.opponentTurnStatus small{color:var(--muted);font-size:14px}@keyframes turnToastIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.tableSurface>.opponentTurnStatus{animation:none}}.familyRollActions button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.familyRollActions button[data-used]{color:#8a9a97;background:0 0;border:1px dashed #b9c6c3}.familyRollActions button[data-used] span{text-decoration:line-through}.familyRollActions button small{color:var(--teal-strong);text-transform:uppercase;letter-spacing:.02em;font-size:.72rem;font-weight:800}.scoreSheetDialog .houseRollRow[data-used=false] td{color:#8a9a97}.soloCompletion .houseRollSummary{color:var(--muted,#677d78);font-size:.78rem}.playerAvatar{object-fit:cover;vertical-align:middle;border-radius:50%;flex:none;display:inline-block}.playerAvatarFallback{color:var(--teal);background:#dff7f2;place-items:center;font-weight:800;line-height:1;display:inline-grid}.navAvatar{box-shadow:0 0 0 2px}.gameContext>span{align-items:center;gap:8px;display:inline-flex}.finalPlayer .playerAvatar,.playerRow .playerAvatar{margin-right:2px}.requestRow,.pendingRow{gap:10px}.friendsTabs{margin:4px 0 16px}.friendsTabs button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.tabBadge{background:var(--teal);color:#fff;border-radius:10px;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;line-height:20px}.friendsPanel .searchRow input{scroll-margin-top:16px}.searchResults{border:1px solid var(--line);background:var(--surface);border-radius:16px;gap:4px;margin:10px 0 18px;padding:6px;display:grid}.friendsEmpty button{justify-self:start;margin-top:6px}.reactionPicker{justify-self:end;gap:6px;display:flex;position:relative}.reactionToggle{border:1px solid var(--line);background:0 0;border-radius:50%;width:40px;height:40px;padding:0;font-size:22px;line-height:1}.reactionMenu{z-index:9;background:var(--surface,white);border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(4,44px);gap:4px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #16333230}.reactionMenu button{background:0 0;border:0;border-radius:12px;width:44px;height:44px;padding:0;font-size:26px;line-height:1}.reactionToggle:hover:not(:disabled),.reactionMenu button:hover:not(:disabled){background:0 0}.reactionToggle[aria-expanded=true],.reactionToggle[aria-expanded=true]:hover:not(:disabled){border-color:var(--player-ink,var(--teal));background:#fff}.reactionMenu button:active,.reactionMenu button:active:hover:not(:disabled){background:var(--player-wash,#dff7f2)}.reactionLayer{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.reactionFloat{bottom:calc(22% + var(--row) * 15%);left:calc(4% + var(--col) * 32%);pointer-events:none;justify-items:center;width:28%;animation:3.2s ease-out forwards reactionRise;display:grid;position:absolute}.reactionFloat>span[aria-hidden]{filter:drop-shadow(0 4px 10px #16333240);font-size:52px;line-height:1}.reactionFloat small{color:var(--ink);background:color-mix(in srgb, var(--surface,white) 85%, transparent);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}@keyframes reactionRise{0%{opacity:0;transform:translateY(20px)scale(.6)}12%{opacity:1;transform:translateY(0)scale(1.1)}70%{opacity:1}to{opacity:0;transform:translateY(-46vh)scale(1)}}@media (prefers-reduced-motion:reduce){.reactionFloat{animation:3.2s linear forwards reactionFade}}@keyframes reactionFade{0%,80%{opacity:1}to{opacity:0}}.scoreGrid.upperGrid{grid-template-rows:repeat(3,auto);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:column}.chatMenu{z-index:9;background:var(--surface,white);border:1px solid var(--line);border-radius:16px;gap:4px;min-width:210px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #16333230}.chatMenu button{text-align:left;min-height:44px;color:var(--ink);background:0 0;border:0;border-radius:10px;padding:8px 12px;font-size:15px;font-weight:600}.chatMenu button:hover:not(:disabled),.chatMenu button:active{background:var(--player-wash,#dff7f2)}.chatBubble{box-sizing:border-box;text-align:center;overflow-wrap:anywhere;max-width:100%;color:var(--ink);background:var(--surface,white);border:1px solid var(--line);border-radius:18px;margin-bottom:4px;padding:8px 14px;font-size:16px;font-weight:700;position:relative;box-shadow:0 6px 18px #16333230}.suggestionToast{top:max(64px, calc(env(safe-area-inset-top) + 56px));max-width:calc(100vw - 32px);color:var(--ink);background:var(--surface,white);border:2px solid var(--teal);border-radius:14px;align-items:center;gap:8px;padding:10px 16px;font-size:15px;animation:4.5s forwards suggestionIn;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #16333238}@keyframes suggestionIn{0%{opacity:0;transform:translate(-50%,-10px)}8%,85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.voiceToggle{position:relative}.voiceLive{border-color:var(--green,#1f9d55);box-shadow:0 0 0 2px color-mix(in srgb, var(--green,#1f9d55) 30%, transparent)}.voiceMuted{opacity:.8}.voiceCount{background:var(--player-ink,#222);color:#fff;border-radius:8px;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;line-height:16px;position:absolute;bottom:-4px;right:-4px}.voiceError{z-index:30;color:#fff;background:#222;border-radius:10px;width:max-content;max-width:240px;padding:8px 10px;font-size:13px;position:absolute;top:calc(100% + 6px);right:0}.playerBoardSelector button{position:relative}.playerBoardSelector button.speaking{box-shadow:0 0 0 2px #2fbf71,0 0 10px 2px #2fbf718c}.playerBoardSelector button.speaking img,.playerBoardSelector button.speaking .playerInitial{outline-offset:1px;outline:2px solid #2fbf71}.voiceMutedMark{font-size:10px}.microphoneDialog{text-align:center}.microphoneIcon{margin-bottom:8px;font-size:2.2rem;line-height:1;display:block}.boardContent>.playerMenu{order:0}.playerMenu{border:1px solid var(--line);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;padding:6px 8px;font-size:12px;display:flex}.playerMenu>button{border:1px solid var(--line);min-height:30px;color:inherit;background:#fff;border-radius:99px;padding:3px 10px;font-size:12px}.playerMenu>small{color:var(--muted);flex-basis:100%}.playerMenuScore{margin-right:auto}.playerMenu>.playerMenuClose{border:0;min-height:26px;padding:0 8px;font-size:16px}.nudgeBanner{top:max(10px, env(safe-area-inset-top));z-index:1000;box-sizing:border-box;color:#fff;background:#1f2a2e;border-radius:14px;align-items:center;gap:10px;width:min(440px,100vw - 32px);padding:10px 12px;animation:.25s ease-out nudgeIn;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000047}.nudgeBanner>span:not([aria-hidden]){flex:1;min-width:0;font-size:14px}.nudgeBanner small{opacity:.75;text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.nudgeBanner button{color:#1f2a2e;background:#fff;border:0;border-radius:99px;flex:none;min-height:32px;padding:4px 12px;font-weight:700}.nudgeBanner .nudgeClose{color:#fff;background:0 0;padding:4px 8px;font-size:18px}@keyframes nudgeIn{0%{opacity:0;transform:translate(-50%,-12px)}}@media (prefers-reduced-motion:reduce){.nudgeBanner{animation:none}}.playerMenu{padding-right:36px;position:relative}.playerMenu>.playerMenuClose{position:absolute;top:4px;right:4px}.landing{gap:clamp(28px,6vw,56px);max-width:1040px;margin-inline:auto;display:grid}.landingHeader{justify-content:space-between;align-items:center;gap:16px;display:flex}.landingSignIn{background:var(--teal-soft);color:var(--teal-strong);border-radius:12px;padding:10px 16px;font-weight:700;text-decoration:none}.landingSignIn:hover{background:#d3ede7}.landingHero{align-items:center;gap:32px;display:grid}.landingHero h1{letter-spacing:-.055em;max-width:12ch;margin:14px 0 18px;font-size:clamp(2.7rem,8vw,4.4rem);line-height:1.04}.landingHero p:not(.eyebrow){max-width:40ch;font-size:1.08rem}.landingActions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:26px;display:flex}.landingActions .appStoreBadge{width:160px;margin:0}.landingSmall{margin-top:16px;font-size:.98rem!important}.landingCta{text-align:center;padding:clamp(24px,5vw,40px)}.landingCta h2{letter-spacing:-.03em;margin:0 0 8px;font-size:clamp(1.6rem,5vw,2.1rem)}.landingCta .landingActions{justify-content:center}.landingFooter{text-align:center;color:var(--muted);padding-bottom:32px}.authPage{gap:14px;width:min(460px,100%);display:grid}.authBack{min-height:40px;color:var(--teal-strong);background:0 0;justify-self:start;padding:8px 4px}.authBack:hover:not(:disabled){background:0 0;text-decoration:underline}.landingDice{flex-wrap:wrap;padding:28px}.landingFeatures{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.landingFeatures article{padding:22px}.landingFeatures h2{letter-spacing:-.02em;margin:0 0 8px;font-size:1.15rem}.landingFeatures p{color:var(--muted);margin:0}@media (min-width:820px){.landingHero{grid-template-columns:1.2fr 1fr}}:root{--party-height:58px}.shell.inParty:not(.authShell){padding-bottom:calc(var(--tab-height) + var(--party-height) + env(safe-area-inset-bottom))}.shell.inParty .tableSurface{height:calc(100dvh - var(--tab-height) - var(--party-height) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)}.shell.inParty .pinnedRollAction,.shell.inParty .gameSetup>.primaryAction,.shell.inParty .setupStart{bottom:calc(var(--tab-height) + var(--party-height) + env(safe-area-inset-bottom))}.partyBar{z-index:45;left:50%;bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 6px);width:min(calc(var(--content-width) - 16px), calc(100vw - 16px));box-sizing:border-box;color:#fff;background:#163332;border-radius:18px;align-items:center;gap:8px;padding:7px 8px 7px 10px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0b1f1e40}.partyBarOpen{min-width:0;min-height:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:0;display:flex}.partyStack{flex:none;display:flex}.partyStack>*{border:2px solid #163332;border-radius:50%;margin-left:-6px}.partyStack>:first-child{margin-left:0}.partyStack>.partyTalking,.partyRow>.partyTalking{box-shadow:0 0 0 2px #19b36b}.partyBarLabel{min-width:0;line-height:1.2;display:grid}.partyBarLabel b{font-size:14px}.partyBarLabel span{opacity:.78;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.partyIcon{width:30px;height:30px;min-height:30px;color:inherit;background:#ffffff1f;border:0;border-radius:50%;flex:none;padding:0;font-size:15px;line-height:30px}.partyIcon.off{color:#fff;background:#aa333d}.partyError{color:#fff;background:#222;border-radius:10px;margin:0;padding:8px 10px;font-size:13px;position:absolute;bottom:calc(100% + 6px);left:8px;right:8px}.partyError.inline{color:#aa333d;background:#fff4f3;margin-top:10px;position:static}.voiceError.partyVoiceError{z-index:46;top:auto;left:50%;right:auto;bottom:calc(var(--tab-height) + var(--party-height) + env(safe-area-inset-bottom) + 6px);max-width:min(360px,100vw - 32px);position:fixed;transform:translate(-50%)}.partySheet{z-index:60;width:min(var(--content-width), 100vw);box-sizing:border-box;max-height:78dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));color:var(--ink,#163332);background:#fff;border-radius:22px 22px 0 0;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -12px 40px #0b1f1e33}.partySheetHead{align-items:center;gap:8px;margin-bottom:6px;display:flex}.partySheetHead h2{flex:1;margin:0;font-size:18px}.partyClose{color:#163332;background:#eef3f2;border:0;border-radius:50%;width:32px;height:32px;min-height:32px;padding:0;font-size:20px}.partyRow{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.partyRow.pending{opacity:.62}.partyName{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600;display:grid}.partyName small{color:var(--muted);font-weight:400}.partySheet .partyIcon,.partyChatPanel .partyIcon{color:#066b65;background:#e4f4f1}.partySheet .partyIcon.off,.partyChatPanel .partyIcon.off{color:#fff;background:#aa333d}.partyLink{color:#aa333d;background:0 0;border:0;min-height:0;padding:4px;font-size:13px;text-decoration:underline}.partySoft,.partyDanger,.partyJoin{border:0;border-radius:12px;min-height:40px;padding:8px 14px;font-weight:700}.partySoft{color:#066b65;background:#e4f4f1}.partyDanger{color:#aa333d;background:#fff4f3}.partySoft.small,.partyDanger.small{min-height:32px;padding:5px 10px;font-size:13px}.partyActions{gap:8px;margin-top:14px;display:flex}.partyActions .partySoft{flex:1}.partyNote{color:var(--muted);flex:1;margin:8px 0;font-size:13px}.partyInviteList{background:#f5f9f8;border-radius:14px;margin-bottom:8px;padding:0 10px}.partyInviteList .partyRow:last-child{border-bottom:0}.partyInvite{z-index:1001;top:max(10px, env(safe-area-inset-top));box-sizing:border-box;color:#fff;background:#163332;border-radius:16px;align-items:center;gap:10px;width:min(440px,100vw - 16px);padding:9px 10px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #00000047}.partyInvite .partyBarLabel{flex:1}.partyJoin{color:#fff;background:#19b36b;min-height:34px;padding:6px 14px}.partyStart{gap:8px;margin:4px 0 12px;display:grid}.partyStart .primaryAction{width:100%}.partyChatPanel h2{margin:0 0 4px;font-size:18px}.partyChatPanel h3{margin:18px 0 6px}.partyChatCurrent{margin-bottom:4px}.tabBadge.soft{color:#066b65;background:#e4f4f1}.friendRow:has(.socialIdentity){grid-template-columns:42px minmax(0,1fr) auto auto}.friendRow:has(.socialIdentity){gap:8px}.friendRow:has(.socialIdentity) .secondaryAction{white-space:nowrap;min-height:34px;padding:6px 12px;font-size:14px}.friendRow:has(.socialIdentity) .backLink{font-size:13px}.partyScrim{z-index:59;background:#0b1f1e40;position:fixed;inset:0}main .partyInvite[role=alert]{color:#fff;background:#163332;border:0;border-radius:16px;padding:9px 10px;line-height:1.2}main .partyError[role=alert]{color:#fff;background:#222;border:0;border-radius:10px;padding:8px 10px;line-height:1.3}main .partyError.inline[role=alert]{color:#aa333d;background:#fff4f3}
