:root{--ink:#11110f;--paper:#f1eee5;--acid:#dfff45;--red:#f4513c;--line:rgba(17,17,15,.24)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a,button{color:inherit;font:inherit}button{cursor:pointer}main{min-height:100vh;overflow:hidden}.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink);padding:12px clamp(18px,4vw,56px)}.identity{margin-left:auto;margin-right:10px;border:0;border-bottom:1px solid var(--ink);background:none;padding:3px 0;font-size:9px;font-weight:900;letter-spacing:.1em}.mode-toggle{display:flex;border:1px solid;border-radius:100px;overflow:hidden}.mode-toggle button{border:0;background:transparent;color:inherit;padding:7px 10px;font-size:8px;font-weight:950;letter-spacing:.08em}.mode-toggle button.active{background:var(--ink);color:var(--acid)}.topbar>.mode-toggle{margin-left:auto;margin-right:10px}.topbar>.mode-toggle+.identity{margin-left:0}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-weight:900;font-size:13px;line-height:.95;letter-spacing:-.02em}.brand-mark{width:42px;height:42px;display:grid;place-items:center;background:var(--ink);color:var(--acid);border-radius:50%;font-size:14px;transform:rotate(-8deg)}.live-pill{border:1px solid var(--ink);border-radius:100px;padding:9px 12px;display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:.1em}.live-dot{width:7px;height:7px;border-radius:50%;background:#999}.is-live .live-dot{background:#20b55b;box-shadow:0 0 0 4px rgba(32,181,91,.13);animation:pulse 1.8s infinite}@keyframes pulse{50%{opacity:.45}}.eyebrow{margin:0 0 15px;font-size:10px;font-weight:900;letter-spacing:.16em}.game-bar{min-height:58px;display:flex;align-items:center;gap:0;border-bottom:1px solid var(--ink);overflow:auto;scrollbar-width:none}.game-bar>span{min-height:58px;flex:0 0 auto;display:grid;align-content:center;gap:3px;padding:8px clamp(14px,2.4vw,30px);border-right:1px solid var(--ink);font-size:11px;font-weight:900;white-space:nowrap}.game-bar>span b{font-size:7px;letter-spacing:.14em}.game-bar .player-chips{padding:9px 18px}.player-chips{display:flex;gap:7px;overflow:auto;scrollbar-width:none}.player-chips span{flex:0 0 auto;border:1px solid var(--ink);border-radius:100px;padding:6px 9px;font-size:9px;font-weight:800;text-transform:uppercase}.player-chips .me{background:var(--acid)}.board-section{padding:34px clamp(10px,3vw,42px) 52px;background:var(--ink);color:var(--paper)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 auto 22px;max-width:1120px}.section-heading h2,.sheet h2{margin:0;text-transform:uppercase;font-size:clamp(28px,5vw,56px);letter-spacing:-.06em;line-height:.9}.progress{width:min(32vw,300px);height:5px;background:#383832;overflow:hidden}.progress span{display:block;height:100%;background:var(--acid);transition:width .3s ease}.bingo-board{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(5,1fr);border-left:1px solid #51514b;border-top:1px solid #51514b}.square{min-width:0;aspect-ratio:1;position:relative;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:10px;background:transparent;color:var(--paper);border:0;border-right:1px solid #51514b;border-bottom:1px solid #51514b;transition:background .18s,color .18s,transform .12s;overflow:hidden}.square:active{transform:scale(.96)}.square-number{font-size:9px;letter-spacing:.12em;color:#88877f}.square-label{font-weight:800;font-size:clamp(9px,1.6vw,20px);line-height:1.04;letter-spacing:-.035em;-webkit-hyphens:auto;hyphens:auto}.square.checked{background:var(--acid)}.square.checked,.square.checked .square-number{color:var(--ink)}.square:disabled{cursor:default}.square.free{background:var(--red);color:var(--ink)}.marked-by{top:7px;right:7px;max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:clamp(6px,.75vw,9px);letter-spacing:.06em}.marked-by,.stamp{position:absolute;font-weight:950}.stamp{inset:50% auto auto 50%;transform:translate(-50%,-50%) rotate(-10deg) scale(1.6);border:2px solid var(--red);border-radius:3px;padding:5px;color:var(--red);font-size:clamp(7px,1vw,12px);letter-spacing:.08em;opacity:0;transition:opacity .15s,transform .18s}.checked .stamp{opacity:1;transform:translate(-50%,-50%) rotate(-10deg) scale(1)}.winner{max-width:1120px;margin:20px auto 0;background:var(--red);color:var(--ink);padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px;transform:rotate(-.5deg)}.winner span{font-size:clamp(38px,8vw,84px);font-weight:950;letter-spacing:-.08em;line-height:.8}.winner p{margin:0;font-family:Georgia,serif;font-style:italic}.winner i{font-size:clamp(48px,9vw,100px);font-style:normal}.podium{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:12px}.podium p{font-size:14px}.podium b{font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.1em}.board-actions{max-width:1120px;margin:20px auto 0;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#aaa99f;font-size:11px}.board-actions p{margin:0}.board-actions button{border:1px solid #74736c;background:none;color:var(--paper);padding:10px 14px;text-transform:uppercase;font-size:10px;font-weight:800;letter-spacing:.08em}.board-actions button.danger{background:var(--red);color:var(--ink);border-color:var(--red)}.round-info{max-width:1120px;margin:20px auto 0;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;color:#aaa99f}.round-info>div{max-width:480px}.round-info p:last-child{margin:0;font-size:12px;line-height:1.5}.round-info button{flex:0 0 auto;border:1px solid #74736c;background:none;color:var(--paper);padding:12px 15px;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.08em}.round-info button.danger{background:var(--red);border-color:var(--red);color:var(--ink)}.add-square-section{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;padding:clamp(46px,7vw,90px) clamp(18px,6vw,88px);border-bottom:1px solid var(--ink)}.add-square-section h2,.leaderboard h2,.name-card h2{margin:0;text-transform:uppercase;font-size:clamp(36px,6vw,76px);line-height:.9;letter-spacing:-.065em}.add-square-section p:last-child{max-width:340px;font-size:13px;line-height:1.5}.add-square-section form{align-self:end}.add-square-section label,.name-card label{display:block;margin-bottom:8px;font-size:9px;font-weight:950;letter-spacing:.12em}.add-square-section form>div{display:flex;border:1px solid var(--ink)}.add-square-section input,.name-card input{min-width:0;width:100%;border:0;background:#fff;color:var(--ink);padding:16px;font-size:16px;outline:none}.add-square-section button{border:0;border-left:1px solid var(--ink);background:var(--acid);padding:0 20px;font-size:10px;font-weight:950;letter-spacing:.1em}.add-square-section small{display:block;min-height:14px;margin-top:8px;font-size:9px;font-weight:900;letter-spacing:.08em}.leaderboard{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;padding:clamp(46px,7vw,90px) clamp(18px,6vw,88px);background:var(--red);border-bottom:1px solid var(--ink)}.scores{border-top:1px solid var(--ink)}.scores>div{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--ink);padding:14px 0}.scores b{font-size:9px}.scores span{font-size:clamp(18px,3vw,34px);font-weight:950;text-transform:uppercase;letter-spacing:-.04em}.scores strong{font-size:10px;letter-spacing:.1em}.win-log{grid-column:2;display:grid;grid-template-columns:repeat(2,1fr);gap:0 24px}.win-log p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:8px 0;border-bottom:1px solid rgba(17,17,15,.35);font-size:10px;text-transform:uppercase}.name-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:rgba(17,17,15,.86)}.name-card{width:min(100%,560px);background:var(--paper);color:var(--ink);padding:clamp(24px,6vw,58px);border:1px solid var(--ink);box-shadow:12px 12px 0 var(--red)}.name-card .brand-mark{margin-bottom:28px}.name-card>p:not(.eyebrow){max-width:400px;margin:18px 0 30px;font-family:Georgia,serif;font-size:16px;line-height:1.45}.name-card button,.name-card input{border:1px solid var(--ink)}.name-card button{width:100%;margin-top:10px;background:var(--acid);padding:14px;font-size:10px;font-weight:950;letter-spacing:.1em}.name-card .cancel-name{background:transparent}.admin-backdrop{position:fixed;inset:0;z-index:30;display:flex;justify-content:flex-end;background:rgba(17,17,15,.82)}.admin-panel{width:min(100%,680px);height:100%;overflow:auto;padding:clamp(22px,5vw,48px);background:var(--paper);color:var(--ink);box-shadow:-12px 0 50px rgba(0,0,0,.35)}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--ink)}.admin-header h2{margin:0;text-transform:uppercase;font-size:clamp(52px,10vw,96px);line-height:.75;letter-spacing:-.075em}.admin-header>button{width:42px;height:42px;flex:0 0 auto;border:1px solid var(--ink);border-radius:50%;background:transparent;font-size:28px;line-height:1}.admin-message{display:block;min-height:36px;padding:14px 0;font-size:9px;font-weight:950;letter-spacing:.1em}.admin-identity{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px;border:1px solid var(--ink);background:#fff}.admin-identity p{display:grid;gap:5px;margin:0}.admin-identity p b{font-size:12px;letter-spacing:.08em}.admin-identity p span{max-width:340px;font-family:Georgia,serif;font-size:13px;line-height:1.35}.admin-group{margin-top:28px}.admin-group h3{margin:0;padding-bottom:10px;border-bottom:3px solid var(--ink);text-transform:uppercase;font-size:12px;letter-spacing:.1em}.admin-group>p{font-family:Georgia,serif;font-style:italic}.admin-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}.admin-row>span{min-width:0;display:grid;gap:4px}.admin-row b{overflow-wrap:anywhere;text-transform:uppercase;font-size:15px}.admin-row small{font-size:8px;font-weight:900;letter-spacing:.1em}.admin-row button,.lock-admin{flex:0 0 auto;border:1px solid var(--ink);background:var(--acid);padding:10px 12px;font-size:8px;font-weight:950;letter-spacing:.08em}.admin-row button:disabled{opacity:.45}.lock-admin{width:100%;margin-top:38px;background:var(--red);padding:14px}footer{min-height:84px;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(18px,4vw,56px);font-size:9px;font-weight:900;letter-spacing:.13em}.sheet-backdrop{position:fixed;inset:0;z-index:10;background:rgba(0,0,0,.7);display:flex;justify-content:flex-end}.sheet{width:min(100%,600px);height:100%;overflow:auto;background:var(--paper);color:var(--ink);padding:22px;box-shadow:-12px 0 40px rgba(0,0,0,.25);animation:slide .25s ease-out}@keyframes slide{0%{transform:translateX(100%)}}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.sheet-header button{border:1px solid var(--ink);background:none;border-radius:50%;width:40px;height:40px;font-size:25px;line-height:1}.sheet img{display:block;width:100%;height:auto;margin-bottom:16px;border:1px solid var(--ink);filter:saturate(.8) contrast(1.05)}@media (max-width:640px){.topbar{min-height:64px}.topbar .mode-toggle button{padding:6px 8px}.topbar .identity{margin-right:7px}.game-bar,.game-bar>span{min-height:52px}.game-bar>span{padding-inline:12px}.board-section{padding-top:34px}.section-heading{align-items:center}.section-heading h2{font-size:29px}.progress{width:28vw}.square{padding:6px;min-height:72px;aspect-ratio:auto}.square-label{font-size:clamp(8px,2.55vw,12px)}.square-number{font-size:7px}.stamp{border-width:1px;padding:3px}.marked-by{top:4px;right:4px}.board-actions,.round-info{align-items:flex-start}.round-info{flex-direction:column}.add-square-section,.leaderboard{grid-template-columns:1fr;gap:28px}.win-log{grid-column:1;grid-template-columns:1fr}.add-square-section form>div{flex-direction:column}.add-square-section button{border-left:0;border-top:1px solid var(--ink);padding:14px}.admin-row{align-items:flex-start}.admin-row button{max-width:130px;white-space:normal}.admin-identity{align-items:flex-start;flex-direction:column}footer{align-items:flex-start;gap:18px}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}