:root{--vio:#7c3aed;--vio2:#a78bfa;--ink:#f5f1ff;--deep:#150a2e}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.hidden{display:none!important}
.font-cinzel{font-family:Cinzel,Georgia,serif}
html,body{margin:0;height:100%;overflow:hidden;background:#0b0620;color:var(--ink);font-family:Outfit,system-ui,sans-serif}
#game-root{position:fixed;inset:0}
#game{position:absolute;inset:0;width:100dvw;height:100dvh;touch-action:none;display:block;background:#0b0620}
#hud{position:absolute;inset:0;pointer-events:none;z-index:5}
#hud-top{position:absolute;top:calc(env(safe-area-inset-top,0px) + 8px);left:8px;right:8px;display:flex;gap:8px;align-items:center;pointer-events:auto}
#hud-level{background:rgba(20,10,50,.72);border:1px solid #ffffff2e;border-radius:999px;padding:6px 14px;font-size:13px;display:flex;gap:8px;align-items:center;backdrop-filter:blur(6px)}
#hud-score,#hud-foes{background:rgba(20,10,50,.72);border:1px solid #ffffff2e;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}
.hud-btn{min-width:48px;min-height:48px;border-radius:999px;border:1px solid #ffffff33;background:rgba(124,58,237,.85);color:#fff;font-size:20px;cursor:pointer;position:relative;box-shadow:0 4px 18px #7c3aed66}
.hud-btn:active{transform:scale(.93)}
.hud-btn.pu{background:rgba(46,16,101,.85)}
.hud-btn em{position:absolute;bottom:-6px;right:-4px;background:#fbbf24;color:#3b1d02;font-style:normal;font-size:11px;font-weight:800;border-radius:999px;padding:1px 6px}
#wind-ind{position:absolute;top:66px;left:12px;background:#0ea5e9cc;border-radius:999px;padding:4px 12px;font-size:13px}
#deck{position:absolute;left:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);display:flex;gap:8px;pointer-events:auto}
.deckbird{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;border:3px solid transparent;background:#ffffff18}
.deckbird.cur{border-color:#fbbf24;box-shadow:0 0 14px #fbbf24;transform:scale(1.12)}
.deckbird.used{opacity:.3;filter:grayscale(1)}
#traj-hint{position:absolute;bottom:80px;left:50%;transform:translateX(-50%);background:#000a;border-radius:999px;padding:8px 18px;font-size:14px;white-space:nowrap}
#rotate-hint{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#f59e0bcc;color:#231303;border-radius:12px;padding:6px 14px;font-size:13px}
.overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#7c3aed55,#0b0620ee 70%);z-index:20;padding:12px;overflow:auto}
.overlay.show{display:flex}
.menu-card{position:relative;text-align:center;max-width:560px;width:100%;background:linear-gradient(180deg,#2e1065f2,#150a2ef5);border:1px solid #a78bfa66;border-radius:28px;padding:34px 26px;box-shadow:0 0 80px #7c3aed55}
.menu-orb{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,#a78bfa88,transparent 70%);filter:blur(10px);pointer-events:none}
.crest{font-size:56px;filter:drop-shadow(0 6px 20px #7c3aed)}
.menu-card h1{font-family:Cinzel,serif;font-size:clamp(34px,7vw,54px);margin:6px 0;letter-spacing:2px;color:#fff}
.menu-card h1 span{background:linear-gradient(90deg,#fbbf24,#f472b6);-webkit-background-clip:text;background-clip:text;color:transparent}
.tagline{color:#c4b5fd;margin:0 0 16px}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.btn-primary{background:linear-gradient(180deg,#8b5cf6,#6d28d9);border:none;color:#fff;font-weight:800;font-size:17px;border-radius:999px;padding:14px 22px;cursor:pointer;min-height:52px;box-shadow:0 6px 24px #7c3aed88}
.btn-primary:active{transform:scale(.96)}
.menubtn{background:#ffffff14;border:1px solid #ffffff2e;color:#fff;border-radius:999px;padding:12px 16px;font-size:15px;font-weight:600;cursor:pointer;min-height:48px}
.menubtn:active{transform:scale(.96)}
.menubtn.ghost{opacity:.75}.menubtn.danger{border-color:#f87171;color:#fecaca}
.foot{color:#8b839f;font-size:12px;margin-top:14px}
.panel{background:linear-gradient(180deg,#221244f5,#120826f8);border:1px solid #a78bfa55;border-radius:24px;max-width:720px;width:100%;padding:20px;max-height:92dvh;overflow:auto;box-shadow:0 10px 60px #000c}
.panel.small{max-width:440px}
.panel.center{text-align:center}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.panel-head h2{margin:0;font-size:20px}
.x{background:#ffffff18;border:none;color:#fff;border-radius:50%;width:44px;height:44px;font-size:18px;cursor:pointer}
.col{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.row{display:flex;gap:10px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.muted{color:#b7a8e0;font-size:14px}
.bigstars{font-size:34px;color:#fbbf24;letter-spacing:6px}
.winstars{font-size:52px;letter-spacing:8px;color:#3a2b5c}
.winstars span.on{color:#fbbf24;text-shadow:0 0 18px #fbbf24;animation:pop .5s}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.4)}100%{transform:scale(1)}}
.bigscore{font-size:34px;font-weight:800;color:#fff}
.newbest{color:#fbbf24;font-weight:800}
.tip{background:#fbbf2422;border:1px dashed #fbbf24;border-radius:14px;padding:10px;font-size:14px}
#world-tabs{display:flex;gap:8px;margin:12px 0;flex-wrap:wrap}
.wtab{flex:1;min-width:130px;border-radius:18px;border:1px solid #ffffff2c;background:#ffffff10;color:#fff;padding:10px;cursor:pointer;font-size:13px;font-weight:700}
.wtab.active{background:linear-gradient(180deg,#7c3aed,#5b21b6)}
.wtab small{display:block;font-weight:400;color:#d8ccff}
#level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:10px}
.lv{border-radius:18px;border:1px solid #ffffff2c;background:#ffffff12;color:#fff;padding:10px 6px;cursor:pointer;text-align:center;min-height:76px}
.lv b{font-size:18px;display:block}
.lv small{color:#fbbf24;font-size:12px}
.lv.locked{opacity:.4;filter:grayscale(1)}
.lv.boss{background:linear-gradient(180deg,#7f1d1d,#450a0a);border-color:#f87171}
.statline{display:flex;gap:14px;font-size:14px;color:#d8ccff}
.deckrow{display:flex;gap:8px;justify-content:center;margin:10px 0;font-size:30px}
.steps{font-size:14px;line-height:1.7;color:#e6dcff}
kbd{background:#000;border:1px solid #ffffff44;border-radius:6px;padding:0 6px;font-size:12px}
.setrow{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#ffffff0d;border-radius:14px;padding:12px;margin:8px 0;font-size:15px}
.setrow input[type=text]{background:#00000055;border:1px solid #ffffff33;color:#fff;border-radius:10px;padding:8px;width:150px}
.tabs{display:flex;gap:8px;margin:10px 0}
.tab{flex:1;border-radius:999px;border:1px solid #ffffff2c;background:#ffffff10;color:#fff;padding:10px;cursor:pointer}
.tab.active{background:#7c3aed}
.scorelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.scorelist li{background:#ffffff0d;border-radius:12px;padding:8px 12px;font-size:14px;display:flex;justify-content:space-between}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.bcard{background:#ffffff0d;border:1px solid #ffffff22;border-radius:18px;padding:12px;font-size:13px}
.bcard .face{font-size:40px;text-align:center}
.bcard h4{margin:6px 0 2px}
#toast{position:absolute;bottom:90px;left:50%;transform:translateX(-50%);background:#111827f2;border:1px solid #7c3aed;color:#fff;border-radius:999px;padding:10px 20px;z-index:60;font-size:14px}
.boss-panel{border-color:#f87171}
#friend-code{text-transform:uppercase;background:#00000055;border:1px solid #ffffff33;color:#fff;border-radius:12px;padding:12px;width:130px;text-align:center;font-size:18px;font-weight:800;letter-spacing:2px}
:focus-visible{outline:3px solid #fbbf24;outline-offset:2px}
@media (max-width:560px){.menu-grid{grid-template-columns:1fr 1fr}.deckbird{width:46px;height:46px;font-size:24px}#hud-level{font-size:11px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
