:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(#f8fbff 0%,#eef7ff 100%);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%;margin:0}body{min-height:100vh}button,input{font:inherit}button{cursor:pointer;border:none}#app{width:100%}.app-shell{min-height:100vh}.app-shell.desktop-layout{height:100vh}.play-area{width:min(100%,480px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#64748b;margin:0 0 4px;font-size:12px;font-weight:700}h1,h2,p{margin:0}.game-stage{width:100%;position:relative}canvas{touch-action:manipulation;background:#8fd3ff;border:4px solid #fffc;border-radius:24px;width:100%;height:auto;display:block;box-shadow:0 24px 80px #4266912e}.desktop-stage{background:#000;width:100vw;height:100vh;margin:0;padding:0;overflow:hidden}.desktop-stage .topbar{z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8;border-radius:20px;margin-bottom:0;padding:14px 18px;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 12px 40px #4266911f}.desktop-stage .game-stage{width:100vw;height:100vh}.desktop-stage canvas{width:100vw;height:100vh;box-shadow:none;border:none;border-radius:0}.overlay{z-index:3;background:#0f172a3d;border-radius:24px;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.desktop-stage .overlay{border-radius:0}.hidden{display:none!important}.card{background:#ffffffeb;border-radius:20px;width:min(100%,420px);padding:20px;box-shadow:0 18px 50px #0f172a1f}.card h2{margin-bottom:8px}.card p{color:#475569}.primary-button,.ghost-button{border-radius:999px;min-height:44px;padding:0 16px;transition:transform .15s,opacity .15s,background .15s}.primary-button:hover,.ghost-button:hover{transform:translateY(-1px)}.primary-button{color:#fff;background:linear-gradient(135deg,coral 0%,#ff4d6d 100%)}.ghost-button{color:#0f172a;background:#ffffffd1;border:1px solid #94a3b859}.ghost-button.small{min-height:36px;padding:0 12px}.actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.nickname-form{gap:10px;margin-top:14px;display:grid}.nickname-form input{background:#fff;border:1px solid #cbd5e1;border-radius:12px;outline:none;width:100%;min-height:44px;padding:0 14px}.nickname-form input:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa2e}.leaderboard-modal{z-index:6;background:#0f172a73;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.leaderboard-card{width:min(100%,420px)}.sidebar-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.leaderboard-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-list li{background:#f8fafc;border-radius:14px;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.leaderboard-list li.empty{color:#64748b;display:block}.rank{color:coral;font-weight:700}.name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.score{font-weight:700}.tip{color:#64748b;margin-top:12px;font-size:14px}@media (width<=960px){.app-shell{padding:18px}.desktop-stage{background:0 0;width:min(100%,480px);height:auto}.desktop-stage .topbar{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border-radius:0;margin-bottom:16px;padding:0;position:static}.desktop-stage .game-stage,.desktop-stage canvas{width:100%;height:auto}.desktop-stage canvas{border:4px solid #fffc;border-radius:24px;box-shadow:0 24px 80px #4266912e}.desktop-stage .overlay{border-radius:24px}}@media (width<=640px){.app-shell{padding:14px}.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{justify-content:flex-start;width:100%}.play-area,.card{width:100%}.card{padding:16px}}
