:root{color-scheme:dark;--bg:#101629;--panel:#191f34;--line:#30374d;--muted:#a4acc2;--ink:#f5f2eb;--coral:#f47b65;--lime:#d6f78c;--blue:#959cf6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:15px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}button{border:0;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--lime);outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid var(--blue);outline-offset:2px}[hidden]{display:none!important}header{max-width:1440px;margin:auto;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-size:12px;line-height:1.3;letter-spacing:.12em;font-weight:600}.brand b{font-size:15px;letter-spacing:.07em}.brand-icon{width:42px;height:44px;border-radius:10px;background:var(--coral);color:var(--bg);display:grid;place-items:center;font-size:33px;font-weight:900;letter-spacing:-.1em;transform:rotate(-8deg);position:relative}.brand-icon span{position:absolute;inset:8px 5px auto auto;font-size:20px;color:var(--ink);transform:rotate(14deg)}.header-right{display:flex;gap:24px;align-items:center}.prototype,.room-tag{font-size:10px;letter-spacing:.12em;padding:7px 10px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-weight:700}.quiet{background:transparent;border:1px solid var(--line);padding:10px 14px;border-radius:7px;font-weight:600;font-size:12px}.quiet:hover{background:#252c43}.text-button{background:none;color:var(--lime);font-size:12px;font-weight:700;padding:0}.text-button:hover{text-decoration:underline}main{max-width:1440px;margin:auto;padding:0 40px}.welcome{display:grid;grid-template-columns:1.15fr 1fr;gap:70px;padding:64px 0 70px;align-items:center}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;line-height:1.6;margin:0 0 16px}.coral{color:var(--coral)}.live-dot{display:inline-block;background:var(--lime);width:6px;height:6px;border-radius:50%;vertical-align:middle;margin-right:8px;box-shadow:0 0 12px #d6f78c44}.hero h1{font-size:clamp(52px,6.9vw,99px);font-weight:800;line-height:.98;letter-spacing:-.065em;margin:25px 0}.hero h1 em{color:var(--coral);font-style:normal}.intro{font-size:18px;line-height:1.6;color:var(--muted);margin:30px 0}.hero-letters{display:flex;gap:7px;flex-wrap:wrap;padding:25px 0 55px}.hero-letters span{display:grid;place-items:center;width:54px;height:65px;background:var(--ink);color:var(--bg);border-radius:8px;font-size:32px;font-weight:800;box-shadow:0 5px 0 #a8a8af;transform:rotate(-7deg);animation:floatTile 4s ease-in-out infinite}.hero-letters span:nth-child(even){transform:rotate(7deg);animation-delay:-1s}.hero-letters span:nth-child(3n){background:var(--lime);box-shadow:0 5px 0 #8da858;animation-delay:-2s}.hero-footer{display:flex;gap:22px;font-size:11px;color:var(--muted)}.hero-footer span{max-width:130px;line-height:1.5}.hero-footer b{display:block;color:var(--coral);font-size:11px;margin-bottom:7px}.panel{border:1px solid var(--line);border-radius:18px;background:var(--panel)}.setup{padding:25px 30px}.tabs{display:flex;background:#101629;padding:5px;border-radius:9px;gap:5px;margin-bottom:28px}.tabs button{width:50%;padding:11px;border-radius:6px;background:transparent;color:var(--muted);font-size:13px;font-weight:700}.tabs button[aria-selected=true]{color:var(--ink);background:#30364c}h2{font-size:29px;line-height:1.08;letter-spacing:-.035em;margin:0 0 22px;font-weight:750}label{display:block;font-size:12px;font-weight:650;margin:17px 0 8px;color:#dde0ec}input,textarea,select{width:100%;border:1px solid #3a425c;border-radius:7px;background:#111729;color:var(--ink);padding:12px 14px;font-size:14px}input::placeholder,textarea::placeholder{color:#79839e}textarea{resize:vertical;min-height:116px;line-height:1.65;font-family:Consolas,monospace}.label-row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.label-row label{margin:6px 0 9px}.help{font-size:11px;line-height:1.6;color:var(--muted);margin:8px 0 0}.duration-row{display:flex;gap:18px;align-items:end;margin-bottom:23px}.duration-row>div{flex:1}.duration-row label{margin-top:17px}.duration-row select{font-size:12px}.referee-note{font-size:10px;line-height:1.5;color:var(--muted);padding-bottom:9px}.primary{background:var(--lime);color:var(--bg);font-size:13px;font-weight:800;letter-spacing:-.01em;border-radius:7px;padding:14px 20px;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;min-height:45px}.primary:hover{background:#e2ffac}.primary span{font-size:18px;line-height:1}.full{width:100%}.demo-row{margin-top:18px;padding-top:20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:var(--muted)}#resume{margin-top:15px}.error{color:#ffaf9f;font-size:12px;line-height:1.5;margin:12px 0 0}.error:empty{display:none}.room-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0}.room-id{display:flex;align-items:center;gap:12px}.room-id .eyebrow{margin:0;color:var(--muted);font-size:9px}#copy-code{font-family:Consolas,monospace;font-size:23px;letter-spacing:.12em;font-weight:800;background:transparent;padding:0}.room-tools{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted)}.room-tools a{color:var(--lime);font-weight:700}#connection{white-space:nowrap}.demo-banner{padding:11px 16px;border:1px solid #574a3f;background:#2c292c;border-radius:8px;color:var(--coral);font-size:10px;font-weight:800;letter-spacing:.1em;margin-bottom:17px}.demo-banner span{letter-spacing:0;font-weight:400;color:#c6bdbb;margin-left:15px;font-size:12px}.arena-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:22px}.arena{overflow:hidden;padding:30px 34px;position:relative;min-height:590px}.stage-heading{display:flex;align-items:start;justify-content:space-between;gap:15px}.stage-heading .eyebrow{margin-bottom:10px}.stage-heading h2{font-size:26px;margin:0}.stage-heading .room-tag{white-space:nowrap}.timer-area{margin-top:24px}.timer-label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:9px;letter-spacing:.12em}.timer-label strong{font-family:Consolas,monospace;font-size:29px;letter-spacing:-.04em;color:var(--ink)}.timer-track{height:5px;background:#30374d;border-radius:5px;margin-top:10px;overflow:hidden}#timer-fill{height:100%;width:100%;background:var(--lime);transform-origin:left;border-radius:5px;transition:background .3s}.timer-area.urgent #timer-fill{background:var(--coral)}.timer-area.urgent strong{color:var(--coral)}.stage{min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 0 25px;position:relative}.tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;width:100%;padding:5px 0 18px}.tile{display:grid;place-items:center;background:var(--ink);color:var(--bg);border-radius:9px;width:clamp(36px,4.6vw,63px);height:clamp(49px,6vw,80px);font-size:clamp(24px,3vw,40px);font-weight:800;box-shadow:0 6px 0 #a5a9b4;animation:tileIn .65s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*.045s);transform:rotate(var(--tilt))}.tile:nth-child(3n+2){background:var(--lime);box-shadow:0 6px 0 #8eaa59}.tiles.solved .tile{background:var(--lime);box-shadow:0 6px 0 #8eaa59;animation:celebrate .55s ease-out both;animation-delay:calc(var(--i)*.045s)}#lobby-copy{text-align:center;max-width:360px}.waiting-icon{width:65px;height:65px;border:1px solid #505976;border-radius:18px;display:grid;place-items:center;font-size:38px;color:var(--coral);transform:rotate(-10deg);margin:0 auto 25px}#lobby-copy h3{font-size:20px;letter-spacing:-.035em;margin:0 0 12px}#lobby-copy p{font-size:13px;color:var(--muted);line-height:1.7;margin:0}.clue{font-size:13px;color:var(--muted);margin:15px 0 0;text-align:center}.clue b{color:var(--ink)}#countdown{font-size:110px;font-weight:900;color:var(--lime);line-height:1;animation:countPop .4s ease-out}.countdown-note{font-size:12px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}#answer-reveal{text-align:center;font-size:12px;color:var(--muted);line-height:1.6;margin-top:15px}#answer-reveal strong{display:block;font-size:15px;color:var(--lime);font-weight:700}#solver-popups{position:absolute;z-index:2;bottom:6px;right:0;display:flex;flex-direction:column;gap:7px;pointer-events:none;max-width:100%}.solver-popup{background:var(--lime);color:var(--bg);border-radius:9px;padding:12px 16px;font-size:12px;box-shadow:0 8px 25px #0004;animation:solverIn .45s cubic-bezier(.16,1,.3,1) both;display:flex;align-items:center;gap:15px}.solver-popup b{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.solver-popup span{font-weight:800}.solver-popup small{font-size:10px;color:#3d5130}.solver-popup.leaving{animation:solverOut .35s ease-in both}.round-status{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);padding:15px 0;border-top:1px solid var(--line)}#points-preview{color:var(--lime)}.guess-row{display:flex;gap:10px}.guess-row input{font-size:18px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;min-width:0}.guess-row button{flex-shrink:0}.feedback{font-size:12px;color:var(--muted);line-height:1.5;margin:12px 0;min-height:18px}.feedback.good{color:var(--lime)}.feedback.bad{color:#ffaf9f}.host-controls{display:flex;gap:10px;flex-wrap:wrap}.scoreboard{display:flex;flex-direction:column;padding:26px 23px;min-width:0}.scoreboard-heading .eyebrow{font-size:9px;color:var(--muted);margin-bottom:12px}.scoreboard-heading h2{font-size:23px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.scoreboard-heading h2 span{font-size:11px;border:1px solid #434b65;padding:5px 8px;border-radius:5px;letter-spacing:0;color:var(--muted)}.player{padding:15px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:11px}.rank{font-family:Consolas,monospace;width:17px;text-align:center;color:var(--muted);font-size:13px}.player:first-child .rank{color:var(--lime)}.avatar{width:33px;height:33px;flex-shrink:0;background:#373b61;color:#d1d5ff;display:grid;place-items:center;border-radius:9px;font-size:13px;font-weight:800}.player:nth-child(3n+2) .avatar{background:#4d353b;color:#ffc7b7}.player:nth-child(3n) .avatar{background:#34493e;color:#d6f78c}.player-meta{min-width:0;flex:1}.player-name{font-weight:650;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.player-status{font-size:10px;color:var(--muted);margin-top:4px}.player.correct .player-status{color:var(--lime)}.player-score{font-size:15px;font-weight:800;font-family:Consolas,monospace;flex-shrink:0}.empty-players{color:var(--muted);line-height:1.7;font-size:12px;border-top:1px solid var(--line);padding:20px 0 35px}.score-rule{margin-top:auto;padding-top:24px;display:flex;gap:12px;border-top:1px solid var(--line);font-size:12px}.score-rule>span{font-size:20px}.score-rule b{color:var(--ink);font-size:12px}.score-rule p{color:var(--muted);font-size:11px;line-height:1.65;margin:7px 0 0}.history{margin-top:22px}.history summary{font-size:11px;color:var(--muted);cursor:pointer}.history-item{padding:10px 0;font-size:11px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;color:var(--muted)}.history-item b{color:var(--ink)}.round-results{margin-top:15px;border-top:1px solid var(--line);padding-top:15px}.results-row{display:flex;justify-content:space-between;gap:8px;padding:5px 0;font-size:12px;color:var(--muted)}.results-row b{color:var(--ink)}.results-row span:last-child{color:var(--lime)}.local-note{text-align:center;color:#7d879f;font-size:10px;padding:18px;margin:0}#winner-display{text-align:center;padding:20px 0}.winner-trophy{font-size:36px}.winner-name{font-size:clamp(25px,4vw,52px);font-weight:850;color:var(--lime);letter-spacing:-.035em;overflow-wrap:anywhere;line-height:1.1;margin:12px 0}.winner-points{color:var(--muted);font-size:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:18px;max-width:540px;padding:36px;width:calc(100% - 28px)}dialog::backdrop{background:#080d20cf;backdrop-filter:blur(6px)}dialog h2{font-size:32px}dialog li,dialog>p:last-child{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:12px}dialog ol{padding-left:20px}.dialog-close{position:absolute;right:14px;top:12px;background:none;font-size:26px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:9px;font-size:12px;z-index:10;box-shadow:0 10px 30px #0005;display:none;max-width:90%;text-align:center}.presenting header,.presenting .local-note,.presenting #stage-bottom,.presenting #player-link,.presenting #leave,.presenting #demo-banner{display:none!important}.presenting main{max-width:1800px}.presenting .arena{min-height:calc(100vh - 115px)}.presenting .stage{min-height:calc(100vh - 330px)}.presenting .tile{width:clamp(40px,6vw,85px);height:clamp(60px,8vw,110px);font-size:clamp(35px,4.5vw,58px)}.presenting .room-bar{padding:20px 0}body.presenting{background:#0b1020}.presenting #solver-popups{bottom:30px}.presenting .solver-popup{font-size:19px;padding:18px 25px}.presenting .solver-popup small{font-size:13px}.presenting .solver-popup b{max-width:240px}@keyframes tileIn{0%{opacity:0;transform:translateY(-55px) rotate(-35deg) scale(.6)}70%{opacity:1;transform:translateY(6px) rotate(7deg)}100%{transform:translateY(0) rotate(var(--tilt))}}@keyframes celebrate{0%,100%{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes solverIn{from{opacity:0;transform:translateX(50px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes solverOut{to{opacity:0;transform:translateY(-15px)}}@keyframes countPop{from{opacity:.2;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@keyframes floatTile{50%{translate:0 -9px}}@media(min-width:1500px){.welcome{padding-top:85px}}@media(max-width:1100px){.welcome{gap:35px}.hero-letters{gap:6px}.hero-letters span{width:42px;height:54px;font-size:27px}.setup{padding:24px}.arena-layout{grid-template-columns:minmax(0,1fr) 270px}.arena{padding:25px}.scoreboard{padding:24px 18px}.room-tools{gap:8px}#connection{display:none}}@media(max-width:800px){header{padding:22px}main{padding:0 22px}.welcome{grid-template-columns:1fr;gap:35px;padding:40px 0}.hero h1{font-size:70px}.hero-letters{padding:8px 0 30px}.hero-footer{gap:30px}.setup{max-width:600px;width:100%}.arena-layout{grid-template-columns:1fr}.room-bar{align-items:start;flex-direction:column;gap:15px}.room-tools{flex-wrap:wrap}#connection{display:block}.arena{min-height:520px}.scoreboard{min-height:300px}.score-rule{margin-top:25px}.stage{min-height:235px}.tile{width:45px;height:61px;font-size:30px}.presenting .scoreboard{display:none}.demo-banner span{display:block;margin:6px 0 0;line-height:1.6}.presenting .stage{min-height:calc(100vh - 320px)}}@media(max-width:480px){header{padding:18px}.header-right{gap:12px}.prototype{font-size:8px;padding:5px}.header-right .quiet{font-size:0;width:32px;height:32px;padding:0;border:0}.header-right .quiet:after{content:'?';font-size:16px}.brand{font-size:9px;gap:9px}.brand b{font-size:12px}.brand-icon{width:33px;height:36px;font-size:26px}.brand-icon span{font-size:17px}main{padding:0 14px}.welcome{padding-top:34px}.hero .eyebrow{font-size:8px;letter-spacing:.11em}.hero h1{font-size:62px}.intro{font-size:15px;margin:24px 0}.hero-letters span{width:37px;height:48px;font-size:24px}.hero-letters{gap:6px}.hero-footer{gap:20px;font-size:10px}.setup{padding:22px 19px}.duration-row{gap:13px}.referee-note{font-size:9px}.demo-row{align-items:start;flex-direction:column}.room-id{gap:9px}.room-id .eyebrow{font-size:8px}#copy-code{font-size:21px}.room-tag{font-size:8px;padding:6px}.room-tools .quiet{font-size:11px;padding:8px 10px}.room-tools{font-size:10px}.arena{padding:21px 17px}.stage-heading h2{font-size:21px}.stage-heading .eyebrow{font-size:9px}.stage{min-height:235px;padding-top:30px}.tiles{gap:7px}.tile{width:36px;height:51px;font-size:25px;border-radius:6px}.round-status{font-size:10px;gap:9px}.guess-row{gap:7px}.guess-row input{font-size:16px;padding:12px}.guess-row .primary{padding:12px 13px;gap:9px;font-size:12px}.host-controls .primary{font-size:12px}.solver-popup{padding:10px 13px;gap:10px;font-size:11px}.solver-popup b{max-width:110px}.feedback{font-size:11px}.presenting main{padding:0 12px}.presenting .room-bar{flex-direction:row;gap:8px}.presenting .room-id .eyebrow,.presenting .room-id .room-tag,.presenting #connection{display:none}.presenting .room-tools .quiet{font-size:10px}.presenting .tile{width:35px;height:55px;font-size:28px}.presenting .solver-popup{font-size:12px;padding:12px 15px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{--tile-primary:#f5f2eb;--tile-accent:#d6f78c;--tile-primary-text:#101010;--tile-accent-text:#101010}
.hero-letters span,.tile,.tiles.solved .tile,.theme-preview span{background:var(--tile-primary);color:var(--tile-primary-text);box-shadow:0 6px 0 color-mix(in srgb,var(--tile-primary),#000 35%);border:1px solid #ffffff20}
.hero-letters span:nth-child(3n),.tile:nth-child(3n+2),.tiles.solved .tile:nth-child(3n+2),.theme-preview span:nth-child(even){background:var(--tile-accent);color:var(--tile-accent-text);box-shadow:0 6px 0 color-mix(in srgb,var(--tile-accent),#000 35%)}
.theme-setup{margin-bottom:22px}.theme-colors{display:flex;gap:16px}.theme-colors label{flex:1}.theme-colors input{height:45px;padding:5px;cursor:pointer}.theme-preview{display:flex;gap:12px;justify-content:center;margin:25px 0}.theme-preview span{display:grid;place-items:center;width:48px;height:58px;border-radius:8px;font-size:28px;font-weight:800}#theme-form .primary{margin-top:22px}
