@font-face{font-family:Nunito;src:url('fonts/Nunito-Variable.ttf') format('truetype');font-style:normal;font-weight:200 1000;font-display:swap}
/* One bundled family on every platform; the wordmark is custom vector lettering. */
.delight-ui,.delight-ui button,.delight-ui input,.delight-ui select,.delight-ui textarea,.delight-ui h1,.delight-ui h2,.delight-ui h3,.delight-ui .brand,.delight-ui summary{font-family:Nunito,ui-rounded,'Segoe UI',system-ui,sans-serif!important;font-synthesis:none}
.delight-ui{--text-base:15px;line-height:1.55;font-weight:500}.delight-ui h1,.delight-ui h2,.delight-ui h3{font-weight:850;letter-spacing:-.025em}.delight-ui .button{font-weight:800;line-height:1.35}.delight-ui label{font-weight:700;line-height:1.4}.delight-ui input,.delight-ui select,.delight-ui textarea{font-weight:550;line-height:1.45}.delight-ui select{padding-right:32px}.delight-ui .fine-print,.delight-ui .status,.delight-ui .muted{line-height:1.6}
.delight-ui .brand{gap:10px;min-width:0}.delight-ui .brand-mark{width:42px;height:42px;flex:none}.regran-symbol{display:block;width:100%;height:100%}.delight-ui .brand>span:last-child{display:grid;gap:6px}.regran-lettering{display:inline-block;width:100%;height:auto;color:var(--ink);overflow:visible}.delight-ui .brand .regran-lettering{width:130px;height:auto}.delight-ui .brand small{font-size:8px;letter-spacing:1.6px;line-height:1;white-space:nowrap;font-weight:800}.delight-ui .home-title h1{font-size:clamp(40px,6vw,68px);line-height:1;letter-spacing:0;white-space:normal}.delight-ui .home-title h1>.regran-lettering{width:clamp(220px,28vw,370px);vertical-align:middle}.delight-ui .home-title h1>.geek-word{font-size:14px;margin-left:14px;transform:none;vertical-align:middle;font-weight:900;letter-spacing:.1em;padding:9px 11px}.delight-ui .home-title h1>small{font-size:11px;font-family:inherit;letter-spacing:3px;margin-top:20px}.delight-ui .home-doodles{opacity:.55}
/* Native selects need matching label rows, not desktop-sized prose squeezed into half-width fields. */
.delight-ui #roomDialog .room-identity{align-items:end;gap:12px}.delight-ui #roomDialog .room-nick input,.delight-ui #roomDialog .compact-avatar{height:46px;min-height:46px;margin:0}.delight-ui #roomDialog .compact-avatar{padding:5px 10px 5px 6px;line-height:1;align-self:end;font-size:13px}.delight-ui #roomDialog .game-kind label{position:relative;grid-template-columns:32px minmax(0,1fr);gap:10px;min-height:80px;padding:14px!important;align-items:center}.delight-ui #roomDialog .game-kind input{position:absolute;width:1px!important;height:1px!important;min-height:0;clip:rect(0,0,0,0);overflow:hidden;clip-path:inset(50%)}.delight-ui #roomDialog .game-kind label:has(input:checked):after{content:'✓';position:absolute;right:8px;top:5px;color:var(--accent);font-size:13px;font-weight:900}.delight-ui #roomDialog .game-kind label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.delight-ui #roomDialog .game-kind strong{font-weight:850;line-height:1.3}.delight-ui #roomDialog .mode-art{margin:0;width:32px;height:34px}.delight-ui .selected-mode-description{line-height:1.55;min-height:24px}.delight-ui #roomDialog .face-config,.delight-ui #lobbyOptions .face-config{align-items:start;gap:14px}.delight-ui .face-config label{display:flex;flex-direction:column;gap:7px;align-self:start;margin:0!important;line-height:1.4;color:var(--muted);font-size:13px}.delight-ui #roomDialog .face-config select,.delight-ui #lobbyOptions .face-config select{margin:0;height:46px;min-height:46px;font-size:15px;width:100%;box-sizing:border-box}.delight-ui .face-config label:has([id$=MaxGuesses]){grid-column:1/-1}.delight-ui .face-guess-budget{font-size:13px;line-height:1.5;margin-top:8px;color:var(--muted)}.delight-ui .face-guess-budget.last-chance{color:var(--accent);font-weight:800}
/* Reset inherited duel styles so a name never becomes an accidental nested grid. */
.delight-ui #roomScore.clean-score{border:0!important;border-radius:0;box-shadow:none;background:none}.delight-ui .guess-limit-note{font-size:12px;line-height:1.5;font-weight:500;color:var(--muted)}.delight-ui .face-card>span:last-of-type{hyphens:none}
.delight-ui #roomScore .clean-score-players{display:flex;flex-wrap:wrap;min-width:0;gap:8px;max-width:none;overflow:visible}.delight-ui #roomScore .clean-player{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;min-width:0;max-width:220px;padding:7px 10px;border:1px solid transparent;line-height:1.3}.delight-ui #roomScore .clean-player.active-player{border-color:var(--accent)}.delight-ui #roomScore .clean-score-avatar{display:block;width:24px;max-width:none;overflow:visible;line-height:0}.delight-ui #roomScore .clean-score-name{display:block;max-width:140px;min-width:0;font-size:13px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.delight-ui #roomScore .clean-player b{display:block;padding:0;margin:0;line-height:1;font-size:18px}.delight-ui #roomScore .clean-round{line-height:1.4;max-width:none}.delight-ui #roomBar{gap:12px}
.delight-ui .segmented{height:auto;min-height:42px;padding:3px;align-items:stretch;box-sizing:border-box}.delight-ui .segmented button{min-height:36px;line-height:1.25;padding:8px 12px;border-radius:8px;transform:none!important}.delight-ui .face-board-head .segmented{min-height:42px;height:auto}.delight-ui .face-board-head .segmented button{min-height:36px;padding:8px 11px}.delight-ui .face-card{display:flex;flex-direction:column;gap:0}.delight-ui .face-card>.portrait-wrap{flex:none;width:100%}.delight-ui .face-card>span:last-of-type{flex:1;width:100%;min-height:45px;line-height:1.35;padding:8px 3px 5px;font-weight:700;word-break:normal;overflow-wrap:normal;hyphens:auto}.delight-ui .lobby-player{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:5px 10px}.delight-ui .lobby-player strong{font-weight:800;line-height:1.4;min-width:0;overflow-wrap:anywhere;flex-basis:auto!important}.delight-ui .lobby-player small{grid-column:2;margin:0!important;line-height:1.45;width:auto;min-width:0}.delight-ui .lobby-avatar{grid-row:1/3}.delight-ui #lobbySummary{font-size:14px;line-height:1.6;max-width:65ch}.delight-ui .toast{line-height:1.5;font-size:14px;max-width:min(420px,calc(100% - 28px));padding:12px 16px}
/* Feedback overlays never steal focus, block a card, or move the page. */
.play-feedback{position:fixed;inset:auto 16px max(24px,env(safe-area-inset-bottom));margin-inline:auto;max-width:320px;width:calc(100% - 32px);padding:16px 18px;border:1px solid var(--green);border-radius:18px;background:var(--panel);box-shadow:0 12px 36px #0004;z-index:60;display:grid;grid-template-columns:38px minmax(0,1fr);gap:2px 12px;pointer-events:none;animation:feedback-pop .25s ease-out;color:var(--ink)}.play-feedback.negative{border-color:var(--red);animation:feedback-nudge .3s ease-out}.feedback-icon{grid-row:1/3;width:38px;height:38px;background:color-mix(in srgb,var(--green) 14%,var(--panel));border-radius:50%;display:grid;place-items:center;color:var(--green)}.negative .feedback-icon{color:var(--red);background:color-mix(in srgb,var(--red) 14%,var(--panel))}.feedback-icon .ui-icon{width:22px;height:22px}.play-feedback strong{font-size:17px;line-height:1.3}.play-feedback small{font-size:13px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere;max-height:3em;overflow:hidden}.round-intro{position:fixed;inset:0;z-index:55;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 65%,transparent);pointer-events:none;animation:intro-fade 1.1s both}.round-intro>div{display:grid;justify-items:center;gap:10px;padding:26px 45px;border:1px solid var(--line);background:var(--panel);box-shadow:0 15px 50px #0003;border-radius:24px;animation:intro-rise .4s ease-out}.round-intro svg{width:62px;height:62px;color:var(--accent)}.round-intro small{font-size:12px;font-weight:900;letter-spacing:2px;color:var(--muted)}.round-intro strong{font-size:36px;line-height:1.15;font-weight:900}.round-intro span{font-size:15px;color:var(--muted)}
.delight-ui #final.has-winner-portrait>.heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;margin:18px auto 28px;position:relative}.delight-ui #final.has-winner-portrait .final-spark{display:none}.winner-portraits{position:relative;display:flex;justify-content:center;padding:10px;margin-top:6px}.winner-avatar{display:block;margin:0 -4px}.winner-avatar .portrait-wrap{width:100px;height:100px;aspect-ratio:1;border-radius:28px;outline:3px solid var(--yellow);outline-offset:5px;box-shadow:0 9px 25px #0003}.winner-avatar img{object-position:center 20%}.winner-crown{position:absolute;right:-9px;top:-11px;background:var(--yellow);color:var(--yellowInk,#34290e);padding:7px;border-radius:12px;transform:rotate(12deg);line-height:0}.winner-crown .ui-icon{width:25px;height:25px}.delight-ui #final.has-winner-portrait .heading h1{font-size:30px;line-height:1.25}.delight-ui #final.has-winner-portrait #finalSummary{font-size:15px;margin:10px auto 0;line-height:1.5;max-width:50ch}.celebrate-round .winner-portraits{animation:winner-pop .6s cubic-bezier(.2,.9,.3,1.3)}.celebrate-round>.heading:before,.celebrate-round>.heading:after{content:'';position:absolute;top:65px;left:calc(50% - 100px);width:7px;height:13px;background:var(--accent);border-radius:2px;box-shadow:-45px 45px 0 var(--yellow),25px -40px 0 var(--green),210px 20px 0 var(--accent),160px -20px 0 var(--yellow),220px 80px 0 var(--green);pointer-events:none;animation:confetti-fall 1.6s ease-out both}.celebrate-round>.heading:after{left:calc(50% - 90px);transform:rotate(70deg);animation-delay:.1s}
@keyframes feedback-pop{from{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:none}}@keyframes feedback-nudge{0%{opacity:0;transform:translateX(0)}30%{opacity:1;transform:translateX(-6px)}65%{transform:translateX(5px)}100%{transform:none}}@keyframes intro-rise{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}@keyframes intro-fade{0%,70%{opacity:1}100%{opacity:0}}@keyframes winner-pop{from{opacity:.5;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes confetti-fall{from{opacity:0;translate:0 -20px;rotate:0deg}20%{opacity:1}to{opacity:0;translate:0 140px;rotate:160deg}}
@media(max-width:760px){.delight-ui .topbar{gap:8px;padding:14px}.delight-ui .brand{gap:7px}.delight-ui .brand-mark{width:32px;height:36px}.delight-ui .brand .regran-lettering{width:105px}.delight-ui .brand small{font-size:7px;letter-spacing:.8px}.delight-ui .header-actions{gap:5px}.delight-ui .header-actions .icon-button{width:36px;height:38px;min-width:36px;flex-basis:36px}.delight-ui .home-title h1>.regran-lettering{width:clamp(195px,56vw,270px)}.delight-ui .home-title h1>.geek-word{font-size:11px;padding:7px 8px;margin-left:9px}.delight-ui .home-title h1>small{font-size:9px;letter-spacing:2px;margin-top:15px}.delight-ui #roomDialog .game-kind label{grid-template-columns:1fr;grid-template-rows:34px minmax(34px,auto);justify-items:center;align-content:center;gap:8px;min-height:103px;padding:13px 6px 10px!important;text-align:center}.delight-ui #roomDialog .game-kind label>span:last-child{display:flex;align-items:center;justify-content:center;min-height:34px}.delight-ui #roomDialog .game-kind strong{font-size:13px;line-height:1.25;text-wrap:balance}.delight-ui #roomDialog .mode-art{width:29px;height:32px}.delight-ui #roomDialog .face-config select,.delight-ui #lobbyOptions .face-config select{font-size:16px}.delight-ui .face-config label{font-size:13px}.delight-ui #roomScore.clean-score{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px}.delight-ui #roomScore .clean-score-players{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.delight-ui #roomScore .clean-player{grid-template-columns:18px minmax(0,1fr) auto;gap:6px;padding:6px 7px;max-width:none}.delight-ui #roomScore .clean-score-avatar{width:18px}.delight-ui #roomScore .clean-score-name{font-size:12px;max-width:none;line-height:1.35}.delight-ui #roomScore .clean-player b{font-size:17px}.delight-ui #roomScore .clean-round{grid-column:1/-1;text-align:left;margin:0!important;font-size:11px!important}.delight-ui #roomBar{align-items:start;padding:10px;gap:9px}.delight-ui #cleanRoomMenu{margin-top:0}.delight-ui .face-board-head{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}.delight-ui .face-board-head .segmented{display:grid;grid-template-columns:1fr 1fr;width:100%}.delight-ui .face-board-head .segmented button{font-size:13px;line-height:1.25;min-height:38px;padding:8px}.delight-ui .face-card>span:last-of-type{font-size:12px;min-height:48px;line-height:1.35;padding:7px 2px 5px}.delight-ui .face-board{gap:7px}.delight-ui .face-table{padding:14px}.delight-ui #lobbyPlayers{grid-template-columns:repeat(2,minmax(0,1fr))}.delight-ui .lobby-team{padding:12px!important}.delight-ui .lobby-player{grid-template-columns:32px minmax(0,1fr);gap:7px 8px!important}.delight-ui .lobby-player .lobby-avatar,.delight-ui .lobby-player .lobby-avatar .portrait-wrap{width:32px;height:38px}.delight-ui .lobby-player strong{font-size:14px}.delight-ui .lobby-player small{grid-column:1/-1;font-size:12px}.delight-ui .lobby-avatar{grid-row:auto}.delight-ui #lobby .heading h1{font-size:27px;line-height:1.25}.delight-ui #lobbySummary{font-size:14px}.delight-ui .game-navigation .text-button{font-size:13px}.delight-ui .winner-avatar .portrait-wrap{width:86px;height:86px;border-radius:24px}.delight-ui #final.has-winner-portrait .heading h1{font-size:27px}.delight-ui .play-feedback{bottom:max(18px,env(safe-area-inset-bottom));max-width:300px}.delight-ui .round-intro>div{padding:24px 34px}}
@media(max-width:420px){.delight-ui .face-board,.delight-ui .face-board[data-size="8"],.delight-ui .face-board[data-size="16"]{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:360px){.delight-ui .brand .regran-lettering{width:92px}.delight-ui .brand small{font-size:6px}.delight-ui .header-actions .icon-button{width:32px;min-width:32px;flex-basis:32px}.delight-ui #roomDialog .face-config{grid-template-columns:1fr}.delight-ui #roomDialog .game-kind strong{font-size:12px}.delight-ui #roomScore .clean-player{grid-template-columns:minmax(0,1fr) auto}.delight-ui #roomScore .clean-score-avatar{display:none}}
.delight-ui .face-card>span:last-of-type{hyphens:none}
/* Each particle has its own clipped layer; no rotating box-shadow constellation. */
.celebrate-round>.heading::before,.celebrate-round>.heading::after{content:none!important}
.intui-confetti{position:fixed;inset:0;z-index:70;overflow:hidden;contain:strict;pointer-events:none!important;user-select:none}
.intui-confetti>i{position:absolute;display:block;left:var(--x);top:-18px;width:7px;height:12px;border-radius:2px;background:var(--color);opacity:0;animation:intui-confetti-drop 2.35s var(--delay) cubic-bezier(.15,.5,.55,1) both;pointer-events:none!important}
.intui-confetti>i:nth-child(3n){width:7px;height:7px;border-radius:50%}
@keyframes intui-confetti-drop{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}8%{opacity:.95}80%{opacity:.8}100%{opacity:0;transform:translate3d(var(--drift),calc(100vh + 36px),0) rotate(var(--spin))}}
@media(prefers-reduced-motion:reduce){.intui-confetti{display:none!important}}
@media(prefers-reduced-motion:reduce){.delight-ui *, .delight-ui *:before,.delight-ui *:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.celebrate-round>.heading:before,.celebrate-round>.heading:after{display:none}}
