:root{--shell:#657052;--lcd:#a9b88f;--lcd2:#93a27b;--ink:#10160c;--deep:#26301e;--line:#7f8f6c;--hi:#d2dfb4;--danger:#4a281e;--shadow:#46503a}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#404839;color:var(--ink);font-family:"Arial Narrow","Roboto Condensed",system-ui,sans-serif}button,input{font:inherit;color:inherit}button{cursor:pointer}#app{height:100%;background:radial-gradient(circle at 50% -20%,#85926d 0,var(--shell) 44%,#505a43 100%);position:relative}.topbar{height:70px;position:fixed;z-index:30;inset:0 0 auto;display:flex;align-items:center;padding:10px clamp(14px,3vw,40px);border-bottom:2px solid #4c563f;background:rgba(101,112,82,.92);box-shadow:0 4px 0 rgba(32,40,27,.22);gap:18px}.brand{display:flex;align-items:center;gap:11px;letter-spacing:.09em}.brand-mark{font-size:34px}.brand b{font-size:18px;display:block}.brand small{font-size:9px;display:block;letter-spacing:.19em}.status-pill{margin-left:auto;display:flex;align-items:center;gap:7px;border:1px solid #4b553e;padding:6px 10px;font-size:11px;letter-spacing:.12em;background:rgba(169,184,143,.24)}.status-pill i{width:8px;height:8px;background:#384132;box-shadow:inset 0 0 0 2px rgba(0,0,0,.2)}.status-pill i.online{background:#c8d8aa;box-shadow:0 0 8px #d7e9b5}.icon-btn{width:36px;height:36px;border:2px solid #414a37;background:#83906e;font-weight:900;box-shadow:3px 3px 0 #414a37}.screen{position:absolute;inset:70px 0 0;display:none}.screen.active{display:grid}.boot-panel{place-self:center;width:min(430px,88vw);text-align:center;border:3px solid var(--deep);background:var(--lcd);padding:40px;box-shadow:10px 10px 0 rgba(25,31,20,.4),inset 0 0 0 5px var(--line)}.boot-panel h1{font-size:clamp(28px,7vw,50px);margin:20px 0 5px;letter-spacing:.08em}.boot-panel p{font-size:12px;letter-spacing:.12em}.logo-grid{width:76px;height:76px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:5px;margin:auto}.logo-grid i{border:4px solid var(--ink);box-shadow:inset 0 0 0 3px var(--lcd)}.logo-grid i:nth-child(1){grid-column:2}.logo-grid i:nth-child(2){grid-area:2/1}.logo-grid i:nth-child(3){grid-area:2/2}.logo-grid i:nth-child(4){grid-area:2/3}.load-track{height:12px;border:2px solid var(--deep);margin:20px 0}.load-track span{display:block;height:100%;width:0;background:var(--deep);transition:width .2s}.primary{border:2px solid var(--ink);background:var(--ink);color:var(--lcd);padding:13px 22px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;box-shadow:4px 4px 0 var(--shadow);min-height:46px}.primary:hover{background:var(--deep);transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--shadow)}#lobby-screen{overflow:auto}.lobby-wrap{width:min(1080px,92vw);margin:auto;display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,6vw,80px);align-items:center;padding:48px 0}.hero-copy .eyebrow{display:inline-block;border:1px solid #414a37;padding:7px 10px;font-size:11px;letter-spacing:.18em;background:rgba(169,184,143,.25)}.hero-copy h1{font-size:clamp(45px,7vw,86px);line-height:.89;margin:22px 0;letter-spacing:-.05em}.hero-copy h1 em{font-style:normal;color:var(--hi);text-shadow:3px 3px 0 #394331}.hero-copy p{max-width:600px;line-height:1.8;font-weight:600}.console-card{background:var(--lcd);border:3px solid var(--deep);padding:28px;box-shadow:10px 10px 0 rgba(27,34,22,.36),inset 0 0 0 5px var(--line)}label{display:block;font-size:11px;font-weight:900;letter-spacing:.15em}input{width:100%;height:48px;margin-top:8px;border:2px solid var(--deep);background:#c0cca4;padding:0 14px;text-transform:uppercase;font-weight:900;letter-spacing:.12em;outline:none}input:focus{box-shadow:inset 0 0 0 3px #8e9e77}.console-card .primary{width:100%;margin-top:18px}.or{display:flex;align-items:center;gap:10px;margin:16px 0;font-size:10px;font-weight:900}.or:before,.or:after{content:"";height:1px;background:var(--line);flex:1}.room-browser{margin-top:18px;border:2px solid var(--deep);background:#9eae86}.room-browser-head{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;border-bottom:2px solid var(--deep)}.room-browser-head b{display:block;font-size:12px;letter-spacing:.08em}.room-browser-head small{display:block;font-size:8px;margin-top:2px}.room-browser-head button{min-height:34px;border:1px solid var(--deep);background:#b8c69d;font-size:10px;font-weight:900;padding:0 12px}#room-list{max-height:202px;overflow:auto;padding:7px;display:grid;gap:6px}.room-empty{margin:0;padding:22px 8px;text-align:center;font-size:11px;font-weight:800;color:#4f5b42}.room-entry{width:100%;min-height:58px;border:1px solid var(--line);background:#b4c299;padding:8px 10px;display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;box-shadow:2px 2px 0 rgba(38,48,30,.24)}.room-entry:hover:not(:disabled){background:#c6d2aa;border-color:var(--deep)}.room-entry:disabled{cursor:not-allowed;opacity:.55}.room-entry b,.room-entry span{display:block}.room-entry b{font-size:13px;letter-spacing:.09em}.room-entry span{font-size:10px;margin-top:3px}.room-entry em{font-style:normal;font-size:10px;font-weight:900;text-align:right}.room-entry em strong{display:block;font-size:13px}.code-join{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.code-join summary{cursor:pointer;font-size:10px;font-weight:900;letter-spacing:.09em;margin-bottom:10px}.join-row{display:grid;grid-template-columns:1fr auto;gap:8px}.join-row input{margin:0}.join-row button{border:2px solid var(--deep);background:#899875;font-weight:900;padding:0 16px}.console-card small{letter-spacing:.13em;font-weight:900}#room-code{display:block;width:100%;font-size:38px;letter-spacing:.23em;background:transparent;border:0;border-bottom:3px solid var(--deep);padding:12px 0;margin-bottom:18px;font-weight:900}#player-list{display:grid;gap:8px}.player-row{border:1px solid var(--line);padding:10px;display:flex;justify-content:space-between;font-weight:900}.player-row span:last-child{font-size:11px}.text-btn{border:0;background:transparent;text-decoration:underline;font-weight:800;padding:12px;width:100%}#lobby-error{min-height:20px;color:var(--danger);font-size:12px;font-weight:900}#game-screen{padding:12px;overflow:auto}#game-shell{width:min(1180px,100%);height:100%;min-height:620px;margin:auto;display:grid;grid-template-columns:190px 1fr 190px;grid-template-rows:38px 1fr auto;gap:12px;grid-template-areas:"strip strip strip" "local canvas remote" "tip tip tip"}.match-strip{grid-area:strip;border:2px solid var(--deep);background:#8c9a75;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-size:10px;letter-spacing:.14em}.match-strip strong{font-size:12px}.panel{background:rgba(169,184,143,.72);border:2px solid var(--deep);padding:16px;box-shadow:inset 0 0 0 3px rgba(101,112,82,.4)}.local-stats{grid-area:local}.remote-stats{grid-area:remote}.panel small{font-size:9px;letter-spacing:.16em}.panel h2{margin:7px 0 22px;font-size:19px;word-break:break-all}.panel dl{display:grid;gap:17px}.panel dl div{border-bottom:1px solid var(--line);padding-bottom:7px}.panel dt{font-size:9px;letter-spacing:.18em}.panel dd{margin:3px 0 0;font-size:24px;font-weight:900}.queue-label{font-size:10px;font-weight:900;display:flex;justify-content:space-between;margin-top:25px}#incoming-meter{height:120px;margin-top:8px;border:2px solid var(--deep);display:flex;flex-direction:column-reverse;gap:2px;padding:3px}#incoming-meter i{display:block;height:8px;background:var(--danger)}#canvas-wrap{grid-area:canvas;position:relative;min-width:0;min-height:520px;background:var(--lcd);border:3px solid var(--deep);box-shadow:inset 0 0 0 5px #8f9e78,7px 7px 0 rgba(31,38,26,.3)}#game-canvas{width:100%;height:100%;display:block}#countdown{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-size:clamp(80px,18vw,180px);font-weight:900;text-shadow:6px 6px 0 var(--lcd);opacity:0}.counting{animation:pop .75s ease}#toast{position:absolute;top:10%;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--lcd);padding:8px 15px;font-size:12px;font-weight:900;letter-spacing:.1em;opacity:0;pointer-events:none}.toast-show{animation:toast 1s ease}.controls-tip{grid-area:tip;text-align:center;font-size:10px;font-weight:900;letter-spacing:.08em;padding:4px}#touch-controls{display:none}.overlay-screen{z-index:20;background:rgba(37,44,31,.72);backdrop-filter:blur(5px)}.result-card{place-self:center;width:min(470px,88vw);background:var(--lcd);border:3px solid var(--deep);text-align:center;padding:36px;box-shadow:12px 12px 0 #31392a,inset 0 0 0 5px var(--line)}.result-card h1{font-size:clamp(45px,10vw,76px);margin:8px 0}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:24px 0}.result-stats span{border:1px solid var(--line);padding:10px 4px;font-size:10px}.result-stats b{display:block;font-size:20px;margin-top:4px}.result-card .primary{width:100%}@keyframes pop{0%{opacity:0;transform:scale(1.7)}30%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.7)}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-8px)}20%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0}}.shake{animation:shake .16s linear}@keyframes shake{25%{transform:translateX(-5px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}@media(max-width:820px){.topbar{height:58px}.screen{inset:58px 0 0}.brand small{display:none}.lobby-wrap{grid-template-columns:1fr;padding:28px 0}.hero-copy h1{font-size:51px}.hero-copy p{font-size:13px}.console-card{padding:22px}#game-screen{padding:6px}#game-shell{min-height:660px;height:auto;grid-template-columns:1fr 1fr;grid-template-rows:34px minmax(420px,62vh) auto auto;grid-template-areas:"strip strip" "canvas canvas" "local remote" "tip tip";gap:6px}.panel{padding:9px;display:grid;grid-template-columns:1fr 1fr;align-items:start}.panel h2{margin:4px 0}.panel dl{grid-column:2;grid-row:1/3;grid-template-columns:repeat(3,1fr);gap:5px}.panel dl div{padding:0;border:0}.panel dd{font-size:16px}.queue-label,#incoming-meter{display:none}.controls-tip{display:none}#touch-controls{position:fixed;z-index:18;left:0;right:0;bottom:max(5px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:0 6px;pointer-events:none}#touch-controls button{pointer-events:auto;min-height:52px;border:2px solid #303828;background:rgba(169,184,143,.9);font-weight:900;box-shadow:2px 2px 0 #303828}#touch-controls .drop{background:var(--ink);color:var(--lcd)}.remote-stats{font-size:9px}.result-card{padding:25px}}@media(max-height:700px) and (min-width:821px){#game-shell{min-height:540px}.panel{padding:10px}.panel h2{margin-bottom:8px}.panel dl{gap:7px}#incoming-meter{height:60px}}
