:root{color-scheme:light;--bg: #fff;--panel: #fff;--text: #000;--muted: #666;--line: #000;--soft-line: #d7d7d7;--fill: #000;--fill-text: #fff}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input{font:inherit}button{min-height:44px;border:1px solid var(--line);border-radius:0;padding:0 16px;background:var(--fill);color:var(--fill-text);cursor:pointer;font-weight:800;white-space:nowrap}button:hover{outline:2px solid var(--line);outline-offset:2px}button:disabled,input:disabled{cursor:not-allowed;opacity:.45}input{min-height:48px;min-width:0;border:1px solid var(--line);border-radius:0;padding:0 14px;background:transparent;color:var(--text)}.shell{width:min(960px,calc(100% - 20px));margin:0 auto;padding:28px 0 56px}.game-panel,.room-panel,.players-panel,.hint-panel,.table-section,.neighbor-panel{background:var(--panel);border:1px solid var(--line);padding:clamp(16px,3vw,30px)}.players-panel{overflow:visible}#modePanel{display:grid;gap:18px;border:0}.mode-grid,.nickname-row,.guess-form,.stats-grid,.players-grid,.neighbor-list{display:grid;gap:10px}.landing-hero{display:grid;gap:22px;min-height:min(560px,calc(100vh - 80px));align-content:center;border:1px solid var(--line);padding:clamp(22px,5vw,54px)}.landing-hero .summary{max-width:720px}.landing-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.landing-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(760px,100%);margin:0;padding:0;list-style:none}.landing-facts li{min-height:82px;border:1px solid var(--line);padding:14px}.landing-facts strong,.landing-facts span{display:block}.landing-facts span{margin-top:6px;color:var(--muted);font-size:14px}.landing-content article{border:1px solid var(--line);padding:clamp(16px,2.5vw,24px)}.landing-content p,.landing-content ol,.landing-content dl{margin-bottom:0;color:var(--muted)}.landing-content ol{padding-left:20px}.landing-content li+li{margin-top:6px}.landing-content dt{color:var(--text);font-weight:900}.landing-content dd{margin:5px 0 14px}.landing-content dd:last-child{margin-bottom:0}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:min(520px,100%)}.mode-button{display:grid;gap:8px;min-height:140px;padding:22px;background:transparent;color:var(--text);text-align:center;place-items:center}.mode-button strong{font-size:24px}.mode-button span{color:var(--muted);font-size:14px;font-weight:700}.entry-form{display:grid;gap:14px;max-width:680px;margin:0 auto}.nickname-row,.guess-form{grid-template-columns:minmax(0,1fr) auto}.avatar-preview{display:grid;width:clamp(112px,20vw,156px);height:clamp(112px,20vw,156px);margin:0 auto 2px;place-items:center;border:2px solid var(--line);border-radius:50%;overflow:hidden}.avatar-preview img{display:block;width:100%;height:100%}.avatar-picker{display:grid;gap:10px;width:min(100%,620px);margin:0 auto 4px;padding:0;border:0}.avatar-picker legend{padding:0;color:var(--muted);font-size:14px;font-weight:800}.avatar-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1.5vw,12px)}.avatar-option{display:grid;width:100%;aspect-ratio:1;min-height:0;padding:clamp(4px,1.2vw,8px);place-items:center;background:transparent;color:var(--text)}.avatar-option.selected{outline:3px solid var(--line);outline-offset:2px}.avatar-option img{display:block;width:100%;height:100%}.room-panel,.players-panel,.hint-panel,.table-section,.neighbor-panel{margin-top:16px}.section-heading,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px}.room-panel{display:grid;grid-template-columns:1fr;gap:14px}.intro{max-width:680px}.intro.compact{margin-bottom:18px}.eyebrow,.summary,.message,.stats-grid span,.player span{color:var(--muted)}.eyebrow{margin:0 0 8px;font-weight:800}h1,h2,p{margin-top:0}h1{margin-bottom:12px;font-size:clamp(34px,7vw,64px);line-height:1;letter-spacing:0}h2{margin-bottom:0;font-size:22px;letter-spacing:0}.summary{margin-bottom:0;font-size:17px;white-space:pre-line}.message{min-height:24px;margin:14px 0 0}.actions{justify-content:flex-start;margin-top:18px}.actions button,.section-heading button,.room-actions button{background:transparent;color:var(--text);min-width:96px}.collapse-button{min-width:72px}.room-actions{display:flex;justify-content:flex-end;width:100%}.room-actions button{min-width:128px;white-space:nowrap}.players-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;overflow:visible}.player{position:relative;display:grid;justify-items:center;gap:14px;min-height:208px;padding:20px 12px 18px;border:1px solid var(--line);text-align:center;overflow:visible}.player.me{border-width:2px}.player.spotlight{animation:playerFocus 1.2s ease-out 2}.avatar-stage{position:relative;display:grid;justify-items:center;gap:4px;width:100%}.avatar{display:grid;position:relative;width:56px;height:56px;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:24px;font-weight:900;overflow:hidden}.avatar img{display:block;width:100%;height:100%}.crown{position:absolute;top:-24px;left:calc(50% + 4px);z-index:2;width:42px;height:42px;object-fit:contain;pointer-events:none;transform:rotate(40deg);transform-origin:50% 80%}.room-rank{font-size:13px;font-weight:900}.confetti-burst{position:absolute;inset:-54px -72px auto;height:134px;pointer-events:none;overflow:visible}.confetti-burst span{position:absolute;top:38px;left:50%;width:6px;height:11px;opacity:0;animation:confettiDrift var(--dur, 2.35s) linear forwards;will-change:transform,opacity}.confetti-burst span:before{content:"";display:block;width:6px;height:11px;border:1px solid var(--text);background:var(--panel);animation:confettiFall var(--dur, 2.35s) linear forwards;animation-delay:inherit;will-change:transform}.confetti-burst span:nth-child(2n):before{background:var(--text)}.confetti-burst.confetti-color span:before{background:#ffcf33}.confetti-burst.confetti-color span:nth-child(2n):before{background:#2dd4bf}.confetti-burst.confetti-color span:nth-child(3n):before{background:#fb7185}.confetti-burst.confetti-color span:nth-child(5n):before{background:#60a5fa}.confetti-burst span:nth-child(1){--x: -117px;--apex: -76px;--fall: 81px;--r: -160deg;--dur: 2.08s;animation-delay:0ms}.confetti-burst span:nth-child(2){--x: -75px;--apex: -99px;--fall: 66px;--r: 96deg;--dur: 2.22s;animation-delay:18ms}.confetti-burst span:nth-child(3){--x: -46px;--apex: -64px;--fall: 92px;--r: 190deg;--dur: 2.54s;animation-delay:38ms}.confetti-burst span:nth-child(4){--x: -12px;--apex: -109px;--fall: 59px;--r: -72deg;--dur: 2s;animation-delay:8ms}.confetti-burst span:nth-child(5){--x: 36px;--apex: -73px;--fall: 88px;--r: 164deg;--dur: 2.48s;animation-delay:50ms}.confetti-burst span:nth-child(6){--x: 82px;--apex: -95px;--fall: 69px;--r: -210deg;--dur: 2.16s;animation-delay:28ms}.confetti-burst span:nth-child(7){--x: 121px;--apex: -67px;--fall: 83px;--r: 132deg;--dur: 2.28s;animation-delay:62ms}.confetti-burst span:nth-child(8){--x: -105px;--apex: -34px;--fall: 104px;--r: 220deg;--dur: 2.72s;animation-delay:70ms}.confetti-burst span:nth-child(9){--x: -66px;--apex: -27px;--fall: 106px;--r: -118deg;--dur: 2.62s;animation-delay:86ms}.confetti-burst span:nth-child(10){--x: -20px;--apex: -43px;--fall: 99px;--r: 184deg;--dur: 2.82s;animation-delay:46ms}.confetti-burst span:nth-child(11){--x: 26px;--apex: -38px;--fall: 102px;--r: -144deg;--dur: 2.68s;animation-delay:92ms}.confetti-burst span:nth-child(12){--x: 75px;--apex: -29px;--fall: 108px;--r: 204deg;--dur: 2.76s;animation-delay:58ms}.confetti-burst span:nth-child(13){--x: 112px;--apex: -36px;--fall: 105px;--r: -126deg;--dur: 2.58s;animation-delay:78ms}.confetti-burst span:nth-child(14){--x: 7px;--apex: -83px;--fall: 78px;--r: 260deg;--dur: 2.36s;animation-delay:104ms}.bubble{position:relative;min-height:58px;width:100%;min-width:0;margin-top:8px;border:1px solid var(--line);padding:8px;background:var(--panel)}.bubble:after{content:"";position:absolute;left:calc(50% - 7px);top:-8px;width:14px;height:14px;border-left:1px solid var(--line);border-top:1px solid var(--line);background:var(--panel);transform:rotate(45deg)}.bubble strong,.bubble span{position:relative;z-index:1;display:block}.bubble-correct{background:var(--fill);color:var(--fill-text)}.bubble-correct span{color:var(--fill-text)}.bubble-correct:after{background:var(--fill)}.neighbor-cta{display:flex;justify-content:center;padding:8px 0}@keyframes playerFocus{0%{box-shadow:0 0 0 0 var(--text)}45%{box-shadow:0 0 0 5px var(--text)}to{box-shadow:0 0 0 0 transparent}}@keyframes confettiDrift{0%{opacity:0;transform:translate(-50%)}8%{opacity:1}12%{transform:translate(calc(-50% + var(--x) * .4))}25%{transform:translate(calc(-50% + var(--x) * .64))}42%{transform:translate(calc(-50% + var(--x) * .8))}62%{transform:translate(calc(-50% + var(--x) * .91))}76%{opacity:1}82%{transform:translate(calc(-50% + var(--x) * .96))}to{opacity:0;transform:translate(calc(-50% + var(--x)))}}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) scale(.8)}8%{transform:translateY(calc(var(--apex) * .42)) rotate(calc(var(--r) * .1)) scale(.98)}16%{transform:translateY(calc(var(--apex) * .68)) rotate(calc(var(--r) * .2)) scale(1.03)}25%{transform:translateY(calc(var(--apex) * .86)) rotate(calc(var(--r) * .32)) scale(1.04)}36%{transform:translateY(var(--apex)) rotate(calc(var(--r) * .45)) scale(1.04)}48%{transform:translateY(calc(var(--apex) * .9)) rotate(calc(var(--r) * .58)) scale(1.03)}60%{transform:translateY(calc(var(--apex) * .55)) rotate(calc(var(--r) * .7)) scale(1.02)}72%{transform:translateY(calc(var(--fall) * .08)) rotate(calc(var(--r) * .82)) scale(1)}84%{transform:translateY(calc(var(--fall) * .46)) rotate(calc(var(--r) * .9)) scale(.99)}94%{transform:translateY(calc(var(--fall) * .78)) rotate(calc(var(--r) * .97)) scale(.97)}to{transform:translateY(var(--fall)) rotate(var(--r)) scale(.96)}}.stats-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.stats-grid article{min-height:92px;padding:16px;background:var(--panel);border:1px solid var(--line)}.stats-grid span,.stats-grid strong{display:block}.stats-grid strong{margin-top:8px;font-size:30px}.section-heading{margin-bottom:14px}.section-heading.compact{margin-bottom:10px}.section-heading span,.hint-status{color:var(--muted)}.hint-status{margin-bottom:0}.hint-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.hint{min-width:0;min-height:74px;padding:10px 8px;border:1px solid var(--line)}.hint span,.hint strong,.hint small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint span,.hint small{color:var(--muted);font-size:12px}.hint strong{margin-top:4px;font-size:18px}.hint.locked{color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:360px}th,td{padding:13px 10px;border-bottom:1px solid var(--soft-line);text-align:left}th{color:var(--muted);font-size:14px}.correct td{font-weight:900}tr.ranked td{background:var(--soft);font-weight:800}tr.latest td{border-top:2px solid var(--text);border-bottom:2px solid var(--text)}tr.latest td:first-child{border-left:2px solid var(--text)}tr.latest td:last-child{border-right:2px solid var(--text)}tr.latest.ranked td{background:var(--fill);color:var(--fill-text)}.empty{color:var(--muted);text-align:center}.neighbor-list{grid-template-columns:repeat(3,1fr);margin:0;padding-left:0;list-style:none}.neighbor-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line)}.neighbor-rank{flex:0 0 auto;font-weight:900}.neighbor-detail{display:grid;min-width:0;justify-items:end;text-align:right}.neighbor-detail span,.neighbor-detail strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#ffffffc7}.restart-modal{width:min(420px,100%);border:1px solid var(--line);background:var(--panel);box-shadow:0 8px 0 var(--text)}.modal-progress{height:6px;border-bottom:1px solid var(--line);background:var(--soft-line)}.modal-progress span{display:block;height:100%;background:var(--fill);transition:width .1s linear}.restart-modal-body{display:grid;gap:18px;padding:22px}.restart-modal-status{margin-bottom:0;color:var(--muted);font-weight:800}.restart-modal-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.restart-modal-actions button:last-child{background:transparent;color:var(--text)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){.shell{width:min(100% - 12px,960px);padding-top:18px}.nickname-row,.guess-form,.neighbor-list,.mode-grid,.landing-content,.landing-facts{grid-template-columns:1fr}.landing-hero{min-height:auto}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.hint-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-grid article{min-height:78px;padding:10px 8px}.stats-grid span{font-size:12px}.stats-grid strong{font-size:20px}.guess-form button,.nickname-row button{width:100%}.room-actions button{width:auto;min-width:128px}.players-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.players-grid.players-count-1{grid-template-columns:minmax(0,1fr)}.players-grid.players-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.players-grid.players-count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.players-panel{padding:8px}.player{min-width:0;min-height:156px;gap:8px;padding:11px 5px 10px;overflow:visible}.player strong,.player span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player strong{font-size:12px}.player span{font-size:11px}.confetti-burst span{max-width:none;overflow:visible;text-overflow:clip;white-space:normal}.avatar{width:38px;height:38px;justify-self:center}.crown{top:-15px;left:calc(50% + 1px);width:28px;height:28px}.room-rank{font-size:11px}.bubble{min-height:44px;width:100%;max-width:100%;margin-top:4px;padding:5px 3px;overflow:hidden}.bubble strong,.bubble span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble strong{font-size:11px}.bubble span{font-size:10px}.modal-backdrop{align-items:end;padding:12px}.restart-modal-body{padding:18px}.restart-modal-actions{grid-template-columns:1fr}}
