:root{font-family:Arial Narrow,Roboto Condensed,Arial,sans-serif;color:#f4f2ea;background:#080c0e;font-synthesis:none;letter-spacing:0;--gold: #e7b52d;--gold-soft: #ffd45a;--cyan: #43d7e0;--red: #ff625b;--surface: #151b1d;--surface-strong: #0d1214;--line: #30383b;--muted: #aeb7b3}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#080c0e;background-image:linear-gradient(rgba(36,48,52,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(36,48,52,.18) 1px,transparent 1px);background-size:54px 54px}button,input,textarea{font:inherit;letter-spacing:0}button,a{transition:border-color .18s,background .18s,color .18s,transform .18s,box-shadow .18s,opacity .18s}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}svg{width:18px;height:18px}.app{min-height:100vh}.topbar{height:70px;border-bottom:1px solid var(--line);background:#0d1214f5;display:flex;align-items:center;justify-content:space-between;padding:0 max(22px,calc((100vw - 1580px)/2));position:sticky;top:0;z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{border:0;background:none;color:#f3f1e9;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:16px;font-weight:700;display:inline-flex;align-items:center;gap:10px}.brand svg{color:var(--gold)}nav{display:flex;align-items:center;gap:5px}nav button,.secondary{border:1px solid transparent;background:transparent;color:#b8c0bc;min-height:40px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:4px}nav button:hover,.secondary:hover{border-color:#4b5659;color:#fff;background:#1a2124}.primary{border:1px solid #f0c341;background:var(--gold);color:#101414;font-weight:800;min-height:46px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:4px;box-shadow:inset 0 1px #ffffff52}.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 28px #e7b52d33}.shell{width:min(1580px,calc(100% - 36px));margin:0 auto;padding:22px 0 44px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#1f2629f7,#12181af7);box-shadow:inset 0 1px #ffffff09;border-radius:5px}.eyebrow{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold);font-size:12px;font-weight:800;margin:0 0 8px}.loading{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;padding:24px;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.loading>svg{width:32px;height:32px;color:var(--gold);animation:signal 1.5s ease-in-out infinite}.error-state h1{color:#fff;margin:4px 0 0;font-family:Arial Narrow,Arial,sans-serif}.error-state p{max-width:520px;text-align:center}.notice{position:fixed;z-index:60;top:80px;left:50%;transform:translate(-50%);width:min(600px,calc(100% - 28px));background:#20282a;border:1px solid #596467;box-shadow:0 18px 50px #0000009e;padding:11px 12px 11px 18px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-radius:4px}.notice button,.icon-button{border:0;background:transparent;color:#fff;width:38px;height:38px;display:grid;place-items:center}.game-head,.room-command{min-height:118px;display:grid;grid-template-columns:minmax(350px,1fr) minmax(340px,440px) auto;align-items:center;gap:24px;border-bottom:1px solid #423a25;margin-bottom:14px}.game-head h1,.room-command h1{font-size:clamp(40px,4.4vw,64px);line-height:.95;margin:0 0 10px}.room-command h1{font-size:clamp(34px,3.4vw,52px)}.game-head>div>p:last-child{margin:0;color:var(--muted);font-size:18px}.match-timer{min-height:82px;border:1px solid #665822;background:linear-gradient(90deg,#1a1c17f0,#0c1112fa);display:grid;grid-template-columns:56px 1fr;grid-template-rows:1fr auto;align-items:center;padding:10px 18px 10px 10px;border-radius:5px;position:relative;overflow:hidden}.match-timer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(231,181,45,.08),transparent);transform:translate(-100%)}.match-timer.is-live:after{animation:timerSweep 2.8s linear infinite}.timer-signal{grid-row:1 / 3;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--gold)}.timer-signal i{width:8px;height:8px;border:1px solid #607047;border-radius:50%;background:#172018}.is-live .timer-signal i{background:#64d66c;box-shadow:0 0 12px #64d66cb3}.match-timer strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold-soft);font-size:clamp(31px,3vw,46px);line-height:1}.match-timer small{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#89938e;font-size:9px;margin-top:4px}.share-button{min-width:222px;min-height:58px;position:relative}.share-button:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:1px solid rgba(231,181,45,.32);animation:invitePulse 2.2s ease-out infinite;pointer-events:none}.matchmaking-strip{min-height:104px;border:1px solid #6b5a20;background:#121716f5;display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,.7fr) minmax(170px,.6fr) auto;align-items:end;gap:14px;padding:14px;margin-bottom:10px}.join-intro{display:flex;align-items:center;gap:13px;min-height:58px}.join-intro>svg{width:30px;height:30px;color:var(--gold)}.join-intro strong,.join-intro span{display:block}.join-intro strong{font-size:21px}.join-intro span{color:var(--muted);margin-top:3px}label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#9fa8a4;font-size:10px;font-weight:700}input{width:100%;min-height:45px;border:1px solid #3b4548;background:#0d1214;color:#fff;padding:9px 11px;margin-top:6px;border-radius:3px;outline:none}.code-field input{color:var(--gold-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;font-size:17px;text-transform:uppercase}input:focus{border-color:var(--gold)}.apply-button{min-height:45px;border:1px solid #596468;background:#20282a;color:#f4f2ea;padding:0 18px;display:inline-flex;align-items:center;gap:10px;justify-content:center;border-radius:3px;font-weight:700}.apply-button:hover:not(:disabled){border-color:var(--gold);color:var(--gold-soft)}.application-status,.resume-strip{min-height:58px;border:1px solid #3a4648;background:#12181af2;margin-bottom:10px;padding:9px 13px;display:flex;align-items:center;gap:12px}.application-status>span{width:38px;height:38px;border:1px solid #665822;display:grid;place-items:center;color:var(--gold)}.application-status div{flex:1}.application-status strong,.application-status p{display:block;margin:0}.application-status p{color:var(--muted);font-size:13px;margin-top:2px}.application-status em{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--gold-soft);font-size:11px;font-style:normal}.status-approved{border-color:#3b7654}.status-rejected,.status-canceled{border-color:#71403e}.resume-strip{overflow-x:auto}.resume-strip>span{color:#7de488;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:700;display:flex;align-items:center;gap:7px;white-space:nowrap}.resume-strip button{flex:1;min-width:190px;border:0;border-left:1px solid #394245;background:transparent;color:#fff;text-align:left;padding:3px 11px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}.resume-strip button strong{grid-row:1 / 3}.resume-strip button small{color:var(--gold);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.resume-strip button svg{grid-column:2;grid-row:1 / 3}.board-label{height:34px;display:flex;align-items:center;justify-content:space-between;color:var(--gold);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:800}.board-label small{color:#89938e;font-weight:500}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.tile{position:relative;min-height:clamp(132px,calc((100dvh - 390px)/4),164px);text-align:left;padding:0;border:1px solid #3b4649;background:linear-gradient(150deg,#20282b,#12181a);color:#f4f2ea;overflow:hidden;border-radius:4px;display:flex;flex-direction:column;opacity:1}.tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid transparent;pointer-events:none}.tile:disabled{opacity:1;cursor:default}.tile:not(:disabled):hover{border-color:var(--owner);transform:translateY(-2px);box-shadow:0 10px 28px #00000085,inset 0 0 0 1px var(--owner)}.tile:not(:disabled):hover:after{border-color:color-mix(in srgb,var(--owner) 55%,transparent);animation:tileScan .85s ease-out}.tile.claimed{border-color:var(--owner);background:linear-gradient(145deg,color-mix(in srgb,var(--owner) 16%,#1c2225),#111719)}.tile.claimed:before{content:"";position:absolute;inset:auto -20% -55% 25%;height:100%;background:radial-gradient(circle,color-mix(in srgb,var(--owner) 15%,transparent),transparent 68%);pointer-events:none}.tile-top{min-height:50px;padding:10px 12px;background:#0d1214;border-bottom:1px solid #374043;display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative;z-index:1}.tile-top b{font-size:clamp(18px,1.55vw,23px);line-height:1}.tile-top em{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--owner);font-size:9px;font-style:normal;border:1px solid var(--owner);padding:4px 6px;max-width:44%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile p{font-size:clamp(14px,1.12vw,17px);line-height:1.22;color:#c3c9c5;margin:12px;flex:1;position:relative;z-index:1}.tile-status{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px;color:#74807b;padding:0 12px 10px;position:relative;z-index:1}.claimed .tile-status{color:var(--owner)}.profile-shortcut{border:0;background:transparent;color:#808b86;margin:11px auto 0;display:flex;align-items:center;gap:7px}.profile-shortcut:hover{color:#fff}.room-command{min-height:102px}.command-actions{display:flex;gap:7px;justify-content:flex-end}.versus-strip{display:grid;grid-template-columns:1fr 1fr .6fr;gap:8px;margin-bottom:8px}.player-score{min-height:82px;border:1px solid #3b4649;border-top:3px solid var(--team);background:#13191bf5;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;padding:10px 13px}.player-score .avatar{width:44px;height:44px;border-color:var(--team)}.player-score small,.player-score strong{display:block}.player-score small{color:var(--team);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px}.player-score strong{font-size:23px;margin-top:2px}.player-score>b{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--team);font-size:31px}.player-score>b span{color:#76817c;font-size:13px}.match-state{min-height:82px;border:1px solid #4b5355;background:#111719;display:flex;flex-direction:column;justify-content:center;padding:12px 16px}.match-state span{color:var(--gold);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.match-state strong{margin-top:5px;font-size:18px}.state-live{border-color:#4e7c50}.state-live span{color:#73dc7c}.lobby-console{min-height:86px;border:1px solid #665822;background:#121716f5;display:grid;grid-template-columns:300px 1fr auto;gap:12px;padding:10px;align-items:stretch;margin-bottom:8px}.lobby-code{border:1px solid #3e474a;background:#0d1214;display:grid;grid-template-columns:30px 1fr auto;grid-template-rows:1fr 1fr;align-items:center;padding:8px 10px}.lobby-code>svg{grid-row:1 / 3;color:var(--gold)}.lobby-code span{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#89938e;font-size:8px;align-self:end}.lobby-code strong{color:var(--gold-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:22px;align-self:start}.lobby-code button{grid-column:3;grid-row:1 / 3;border:0;background:transparent;color:#aeb7b3}.applicant-list{min-width:0;max-height:146px;overflow-y:auto;display:grid;gap:6px}.applicant-list article,.waiting,.match-ready,.challenger-wait{height:100%;min-height:64px;border:1px solid #364044;background:#111719;display:flex;align-items:center;gap:10px;padding:8px 10px}.applicant-list article>div,.waiting>div,.match-ready>div,.challenger-wait>div{flex:1}.applicant-list strong,.applicant-list span,.challenger-wait strong,.challenger-wait span{display:block}.applicant-list span,.challenger-wait span{color:var(--muted);font-size:13px;margin-top:2px}.waiting>svg{color:var(--gold)}.match-ready>svg{color:#6ed778}.approve,.reject{min-height:38px;border:1px solid #3c754b;background:#18251b;color:#78df83;display:inline-flex;align-items:center;gap:6px;padding:0 12px}.reject{width:38px;padding:0;justify-content:center;border-color:#633b39;background:#251817;color:#ff7b74}.start-button{min-width:180px}.challenger-wait{grid-column:1 / -1}.challenger-wait>svg{color:#69d8e0}.avatar{width:36px;height:36px;border:1px solid #536064;background:#242d30;display:grid;place-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;overflow:hidden;flex:0 0 auto}.avatar img{width:100%;height:100%;object-fit:cover}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;background:#020506d6;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);display:grid;place-items:center;padding:20px}.invite-dialog{width:min(940px,100%);max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #685821;background:#101618;box-shadow:0 35px 100px #000000b8;padding:20px;border-radius:5px}.invite-dialog>header{display:flex;align-items:start;justify-content:space-between;margin-bottom:14px}.invite-dialog h2{font-size:34px;margin:0}.invite-preview{aspect-ratio:1200 / 630;background:#090d0f;border:1px solid #394245;display:grid;place-items:center;color:#89938e;overflow:hidden}.invite-preview img{width:100%;height:100%;object-fit:cover}.invite-code{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #394245;padding:13px 4px}.invite-code span{color:#8e9893;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.invite-code strong{color:var(--gold-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:28px}.invite-dialog footer{display:flex;gap:8px;justify-content:flex-end;padding-top:14px}.invite-dialog footer .secondary{border-color:#3f494c}.result-backdrop{background:#030607eb}.result-dialog{width:min(620px,100%);border:1px solid #7a6622;background:linear-gradient(145deg,#22251e,#0e1416);text-align:center;padding:46px;box-shadow:0 0 0 1px #e7b52d1a,0 35px 100px #000}.result-dialog>svg{width:58px;height:58px;color:var(--gold-soft);margin-bottom:16px}.result-dialog h2{font-size:48px;margin:0 0 8px}.result-dialog>strong{color:var(--gold-soft);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:46px}.result-dialog p:not(.eyebrow){color:var(--muted);font-size:17px}.result-dialog .primary{margin-top:10px}.public{padding-top:20px}.public-title{display:grid;grid-template-columns:1fr 420px;align-items:center;gap:24px;margin-bottom:18px}.public-title h1{font-size:48px;margin:0}.public-title .eyebrow{grid-column:1}.public-title .match-timer{grid-column:2;grid-row:1 / 3}.live{display:flex;align-items:center;gap:8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#acb5b0}.live svg{color:#63d76e}.profile{min-height:calc(100dvh - 70px);display:grid;place-items:center}.profile-card{width:min(620px,100%);padding:30px;display:grid;grid-template-columns:78px 1fr;gap:18px;align-items:center}.profile-card .avatar{width:74px;height:74px}.profile-card h1{font-size:38px;margin:0}.profile-card p:last-child{color:var(--muted)}.profile-card label,.profile-card>button{grid-column:2}.invite-page{min-height:calc(100dvh - 70px);display:grid;place-items:center;padding:24px}.access-card{width:min(570px,100%);padding:42px}.invite-card h1{font-size:42px;line-height:1;margin:0 0 18px}.invite-card>p:not(.eyebrow){color:var(--muted);line-height:1.5}.invite-card .secondary{width:100%;border-color:#4b5659;margin-top:12px}@keyframes invitePulse{0%{opacity:0;transform:scale(.98)}45%{opacity:.7}to{opacity:0;transform:scale(1.05)}}@keyframes timerSweep{to{transform:translate(100%)}}@keyframes tileScan{0%{opacity:0;transform:scale(.98)}45%{opacity:1}to{opacity:0;transform:scale(1.02)}}@keyframes signal{50%{opacity:.45}}@media(max-width:1040px){.game-head,.room-command{grid-template-columns:1fr 360px}.game-head .share-button,.room-command .command-actions{grid-column:1 / -1;justify-self:stretch;margin-bottom:12px}.game-head .share-button{width:100%}.matchmaking-strip{grid-template-columns:1fr 1fr}.join-intro{grid-column:1 / -1}.apply-button{align-self:end}.versus-strip{grid-template-columns:1fr 1fr}.match-state{grid-column:1 / -1;min-height:58px}.lobby-console{grid-template-columns:250px 1fr}.start-button{grid-column:1 / -1}}@media(max-width:780px){.shell{width:min(100% - 22px,1580px);padding-top:14px}.topbar{padding:0 12px}.topbar nav button:first-child{display:none}.topbar nav button{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-head,.room-command{grid-template-columns:1fr;gap:12px;padding-bottom:14px}.game-head .share-button,.room-command .command-actions{grid-column:auto;margin-bottom:0}.match-timer{width:100%}.matchmaking-strip{grid-template-columns:1fr;align-items:stretch}.join-intro{grid-column:auto}.board{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{min-height:150px}.versus-strip{grid-template-columns:1fr}.match-state{grid-column:auto}.lobby-console,.public-title{grid-template-columns:1fr}.public-title .match-timer{grid-column:1;grid-row:auto}.invite-dialog footer{flex-direction:column}.invite-dialog footer>*{width:100%}}@media(max-width:480px){.brand{font-size:13px}.game-head h1,.room-command h1{font-size:38px}.match-timer{grid-template-columns:48px 1fr}.match-timer strong{font-size:31px}.tile{min-height:148px}.tile-top{padding:8px;min-height:46px}.tile-top b{font-size:17px}.tile-top em{display:none}.tile p{font-size:14px;margin:9px 8px}.player-score{grid-template-columns:40px 1fr auto}.player-score strong{font-size:19px}.lobby-code{grid-template-columns:26px 1fr auto}.result-dialog{padding:34px 20px}.result-dialog h2{font-size:37px}.result-dialog>strong{font-size:36px}.profile-card{grid-template-columns:1fr;text-align:center}.profile-card .avatar{margin:auto}.profile-card label,.profile-card>button{grid-column:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
