:root{
  --teal-900:#04211d; --teal-800:#073b34; --teal-700:#0a5a4f;
  --teal-500:#12b3a3; --teal-300:#5fe3d0;
  --cyan:#2ad4ff; --amber:#ffd21f; --amber-deep:#ffab00;
  --pink:#ff3d81; --green:#57e389; --red:#ff5252;
  --porcelain:#f7f4ec; --ink:#04211d;
  --surface:rgba(7,59,52,.82); --stroke:rgba(95,227,208,.28);
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --r-lg:26px; --r-md:16px; --r-sm:11px;
  --font:'Vazirmatn',Tahoma,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:var(--font);color:var(--porcelain);background:var(--teal-900);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}
.hidden{display:none !important}
kbd{font-family:var(--font);background:rgba(255,255,255,.12);border:1px solid var(--stroke);border-bottom-width:3px;border-radius:7px;padding:1px 8px;font-size:.8em;font-weight:700;margin:0 2px}
.bg{position:fixed;inset:0;overflow:hidden;background:
 radial-gradient(120% 90% at 15% 0%,#0a5a4f 0%,transparent 55%),
 radial-gradient(120% 100% at 100% 100%,#06304a 0%,transparent 60%),
 linear-gradient(160deg,#04211d 0%,#073b34 45%,#04202b 100%)}
.aurora{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;mix-blend-mode:screen;animation:drift 22s ease-in-out infinite}
.a1{width:46vw;height:46vw;left:-8vw;top:-10vw;background:radial-gradient(circle,var(--teal-500),transparent 65%)}
.a2{width:40vw;height:40vw;right:-6vw;top:6vh;background:radial-gradient(circle,var(--cyan),transparent 65%);animation-delay:-7s}
.a3{width:38vw;height:38vw;left:24vw;bottom:-14vh;background:radial-gradient(circle,var(--pink),transparent 62%);opacity:.34;animation-delay:-13s}
@keyframes drift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4vw,3vh) scale(1.12)}}
#canvas{position:fixed;inset:0;width:100%;height:100%;display:block}
.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(4,33,29,.55);backdrop-filter:blur(3px);z-index:10}
.panel{background:var(--surface);border:1px solid var(--stroke);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:26px 22px;max-width:460px;width:100%;text-align:center;animation:pop .45s cubic-bezier(.2,1.4,.4,1)}
.panel.small{max-width:360px}
@keyframes pop{from{transform:scale(.85) translateY(20px);opacity:0}}
.logo-bowl{color:var(--porcelain);display:flex;justify-content:center}
.ic-logo{width:4.2rem;height:4.2rem;filter:drop-shadow(0 10px 18px rgba(0,0,0,.4))}
h1{font-size:4rem;font-weight:900;line-height:1.1;letter-spacing:-1px}
.brand-drop{color:var(--amber);text-shadow:0 0 18px var(--amber)}
h2{font-size:1.7rem;font-weight:900;margin-bottom:12px}
.sub{color:var(--teal-300);font-weight:500;margin-bottom:18px}
.chars{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}
.char{background:rgba(10,90,79,.6);border:2px solid transparent;border-radius:var(--r-md);padding:10px 4px;cursor:pointer;color:var(--porcelain);font-family:var(--font)}
.char b{display:block;font-size:.95rem}
.char small{color:var(--teal-300);font-size:.72rem}
.char .face{width:50px;height:50px;overflow:hidden;border-radius:50%;margin:0 auto 6px;display:flex;align-items:center;justify-content:center;font-weight:900;color:var(--ink)}
.char.on{border-color:var(--amber);box-shadow:0 0 18px rgba(255,210,31,.3)}
.btns{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.btn{font-family:var(--font);font-weight:700;font-size:1rem;padding:11px 22px;border-radius:var(--r-sm);border:1px solid var(--stroke);background:rgba(255,255,255,.06);color:var(--porcelain);cursor:pointer;transition:transform .15s}
.btn:active{transform:scale(.95)}
.btn.primary{background:linear-gradient(180deg,var(--amber),var(--amber-deep));color:var(--ink);border:none;box-shadow:0 6px 0 #b77900}
.total{margin-top:14px;color:var(--teal-300);font-size:.9rem}
.total b{color:var(--amber)}
.how{list-style:none;text-align:right;margin-bottom:14px}
.how li{padding:10px;background:rgba(10,90,79,.5);border-radius:var(--r-sm);margin-bottom:8px;display:flex;gap:10px;align-items:center}
.how-ic{color:var(--teal-300);font-size:1.4rem;width:28px;text-align:center}
.keys{font-size:.85rem;margin-bottom:16px;line-height:2}
.grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:10px}
.lvlwrap{max-height:62vh;overflow-y:auto;margin-bottom:14px;touch-action:pan-y}
.chap{text-align:right;color:var(--teal-300);font-weight:700;font-size:.85rem;margin:6px 2px}
.meter{display:flex;align-items:center;gap:6px}
.bar{display:inline-block;width:70px;height:9px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden}
.bar i{display:block;height:100%;width:0;transition:width .15s}
.bar .tank{background:var(--amber)} .bar .fill{background:var(--cyan)}
html:fullscreen,body{width:100vw;height:100vh}
.lvl{aspect-ratio:1;font-size:1.1rem !important;border-radius:var(--r-md);background:rgba(10,90,79,.6);border:1px solid var(--stroke);color:var(--porcelain);font-family:var(--font);font-weight:900;font-size:1.3rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}
.lvl.locked{opacity:.45;cursor:not-allowed}
.lvl .st{font-size:.65rem;letter-spacing:1px}
.star{color:rgba(255,255,255,.16)}
.star.on{color:var(--amber)}
.stars{font-size:2.4rem;margin:6px 0}
.stars .star{display:inline-block;animation:pop .5s backwards}
.quote{color:var(--teal-300);margin:8px 0 16px;min-height:1.5em}
#hud{position:fixed;top:calc(env(safe-area-inset-top) + 10px);left:0;right:0;z-index:5;display:flex;justify-content:center;pointer-events:none}
.hud-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center;pointer-events:auto}
.pill{background:var(--surface);border:1px solid var(--stroke);border-radius:99px;padding:6px 12px;font-weight:700;font-size:.85rem}
.score-ic{color:var(--amber)} .wind-ic{color:var(--cyan)}
.icon-btn{width:38px;height:38px;border-radius:50%;background:var(--surface);border:1px solid var(--stroke);color:var(--porcelain);font-size:1rem;cursor:pointer}
footer{position:fixed;bottom:calc(env(safe-area-inset-bottom) + 6px);left:10px;z-index:20;font-size:.75rem}
footer a{color:var(--teal-300);text-decoration:none;opacity:.8}