:root{--bg-0:#0b0e1a;--bg-1:#11152a;--bg-2:#181d38;--surface:#ffffff0b;--surface-strong:#ffffff14;--border:#ffffff17;--text:#eef0fb;--text-dim:#9aa1c4;--accent:#8b7cf8;--accent-soft:#8b7cf82e;--gold:#f5c97b;--teal:#5eead4;--good:#6ee7a8;--warm:#f3a683;--radius:16px;--font:"Avenir Next", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:radial-gradient(1200px 700px at 80% -10%, #8b7cf829, transparent 60%), radial-gradient(900px 600px at -10% 110%, #5eead41a, transparent 55%), linear-gradient(170deg, var(--bg-0), var(--bg-1) 55%, var(--bg-0));-webkit-font-smoothing:antialiased;margin:0}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-nav{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);align-items:center;gap:18px;padding:14px 22px;display:flex}.app-nav .brand{letter-spacing:.04em;background:linear-gradient(90deg, var(--accent), var(--teal));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.05rem;font-weight:700;text-decoration:none}.app-nav a:not(.brand){color:var(--text-dim);border-radius:10px;padding:6px 10px;font-size:.92rem;text-decoration:none;transition:color .16s,background .16s}.app-nav a:not(.brand):hover,.app-nav a.active{color:var(--text);background:var(--surface-strong)}.nav-spacer{flex:1}.app-main{flex-direction:column;flex:1;width:100%;max-width:1080px;margin:0 auto;padding:22px 18px 40px;display:flex}h1,h2,h3{letter-spacing:.01em;font-weight:650}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.btn{appearance:none;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;min-height:44px;padding:11px 20px;font-weight:600;transition:transform .14s,box-shadow .14s,background .14s}.btn:hover:not(:disabled){background:#ffffff21;transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:linear-gradient(135deg, var(--accent), #6457d6);border-color:#0000;box-shadow:0 6px 26px #8b7cf859}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#9c8ffc,#6f62e2);box-shadow:0 8px 30px #8b7cf880}.btn-ghost{background:0 0}.btn-small{min-height:36px;padding:7px 14px;font-size:.88rem}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font:inherit;color:var(--text);background:var(--bg-2);border:1px solid var(--border);border-radius:10px;outline:none;padding:9px 12px;transition:border-color .14s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}label.field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:.88rem;display:flex}.muted{color:var(--text-dim)}.error-text{color:var(--warm);font-size:.9rem}.play-layout{flex-direction:column;flex:1;align-items:center;gap:14px;display:flex}.play-status{min-height:28px;color:var(--text-dim);text-align:center;font-size:1.02rem;transition:color .2s}.play-status.correct{color:var(--good)}.play-status.incorrect{color:var(--warm)}.game-canvas-host{aspect-ratio:1;touch-action:none;width:clamp(240px,min(92vw,100dvh - 320px),560px);position:relative}.game-canvas-host canvas{display:block;width:100%!important;height:100%!important}.sequence-slots{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:52px;display:flex}.slot{border:1px dashed var(--border);min-width:46px;height:46px;color:var(--text-dim);border-radius:12px;justify-content:center;align-items:center;padding:0 10px;font-size:1.15rem;font-weight:700;transition:all .18s;display:flex}.slot.filled{border-style:solid;border-color:var(--accent);color:var(--text);background:var(--accent-soft);box-shadow:0 0 18px #8b7cf840}.slot.given{border-style:solid;border-color:var(--border);color:var(--text);background:var(--surface-strong)}.slot.active-blank{border-color:var(--gold);box-shadow:0 0 14px #f5c97b59}.play-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}@media (height<=760px){.app-main{padding:12px 14px 18px}.play-layout{gap:10px}.sequence-slots{min-height:42px}.game-canvas-host{width:clamp(240px,min(92vw,100dvh - 270px),560px)}}.overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:60;background:#080a14b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.overlay-card{background:linear-gradient(165deg, var(--bg-2), var(--bg-1));border:1px solid var(--border);border-radius:22px;width:100%;max-width:460px;padding:30px;animation:.36s cubic-bezier(.22,1,.36,1) cardIn;box-shadow:0 24px 70px #0000008c}@media (prefers-reduced-motion:reduce){.overlay-card{animation:none}}.overlay-card.style-spotlight{border-color:#f5c97b80;box-shadow:0 0 0 1px #f5c97b40,0 0 60px #f5c97b2e,0 24px 70px #0000008c}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)scale(.97)}to{opacity:1;transform:none}}.overlay-card h2{margin-top:0}.listen-for{border-left:3px solid var(--teal);color:var(--text-dim);margin:14px 0;padding:8px 14px;font-style:italic}.hero{text-align:center;padding:48px 10px 28px}.hero h1{background:linear-gradient(90deg, #d8d3ff, var(--accent), var(--teal));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0 0 10px;font-size:clamp(2rem,5vw,3rem)}.hero p{color:var(--text-dim);max-width:520px;margin:0 auto 28px;line-height:1.55}.progress-track{background:var(--surface-strong);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), var(--teal));border-radius:999px;height:100%;transition:width .7s cubic-bezier(.22,1,.36,1);box-shadow:0 0 14px #8b7cf899}.admin-grid{grid-template-columns:290px 1fr;align-items:start;gap:18px;display:grid}@media (width<=860px){.admin-grid{grid-template-columns:1fr}}.tree{flex-direction:column;gap:4px;display:flex}.tree-unit{border-radius:10px;justify-content:space-between;align-items:center;padding:8px 10px;font-weight:650;display:flex}.tree-level{cursor:pointer;color:var(--text-dim);border-radius:10px;justify-content:space-between;gap:8px;padding:7px 10px 7px 22px;font-size:.92rem;display:flex}.tree-level:hover{background:var(--surface-strong);color:var(--text)}.tree-level.selected{background:var(--accent-soft);color:var(--text)}.pill{border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.7rem}.pill.published{color:var(--good);border-color:#6ee7a866}.pill.draft{color:var(--gold);border-color:#f5c97b66}.pill.archived{color:var(--text-dim);border-color:var(--border);opacity:.7}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.degree-toggle-row{flex-wrap:wrap;gap:8px;display:flex}.degree-toggle{border:1px solid var(--border);background:var(--bg-2);min-width:40px;height:40px;color:var(--text-dim);cursor:pointer;border-radius:10px;padding:0 8px;font-size:.95rem;font-weight:700}.degree-toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}pre.payload{background:var(--bg-0);border:1px solid var(--border);border-radius:12px;max-height:320px;padding:14px;font-size:.78rem;overflow:auto}table.analytics{border-collapse:collapse;width:100%;font-size:.9rem}table.analytics th,table.analytics td{text-align:left;border-bottom:1px solid var(--border);padding:9px 10px}table.analytics th{color:var(--text-dim);font-weight:600}.sing-degrees{justify-content:center;gap:14px;margin:12px 0;display:flex}.sing-degree{background:var(--surface-strong);border:1px solid var(--border);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:700;transition:all .22s;display:flex}.sing-degree.good{border-color:var(--good);box-shadow:0 0 18px #6ee7a859}.sing-degree.miss{border-color:var(--warm)}.mic-meter{background:var(--surface-strong);border-radius:999px;width:min(80vw,380px);height:8px;margin:6px auto;overflow:hidden}.mic-meter>div{background:linear-gradient(90deg, var(--teal), var(--accent));height:100%;transition:width 90ms linear}.toggle-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.toggle-row:last-child{border-bottom:none}.landing{width:100%;max-width:none;margin:0;padding:0}.landing section{max-width:1080px;margin:0 auto;padding:88px 22px}.landing-hero{text-align:center;max-width:760px;padding-top:120px;padding-bottom:100px}.landing .eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--teal);margin:0 0 18px;font-size:.74rem;font-weight:700}.landing h1{letter-spacing:-.01em;margin:0 0 22px;font-size:clamp(2.4rem,6vw,4.2rem);font-weight:700;line-height:1.04}.landing .grad{background:linear-gradient(95deg, var(--accent), var(--teal) 70%, var(--gold));color:#0000;-webkit-background-clip:text;background-clip:text}.landing .lede{color:var(--text-dim);max-width:620px;margin:0 auto 32px;font-size:1.18rem;line-height:1.55}.landing .cta-row{flex-wrap:wrap;justify-content:center;gap:10px;max-width:460px;margin:0 auto;display:flex}.landing .cta-row-center{margin:24px auto 0}.landing .cta-row input{background:var(--surface-strong);border:1px solid var(--border);min-width:220px;color:var(--text);font:inherit;border-radius:999px;outline:none;flex:240px;padding:13px 18px;font-size:1rem;transition:border .16s,box-shadow .16s}.landing .cta-row input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.landing .form-error{color:var(--warm);margin-top:12px;font-size:.92rem}.landing .form-success{color:var(--good);margin-top:12px;font-size:.92rem}.landing .form-success a{color:inherit;text-decoration:underline}.landing .micro{color:var(--text-dim);margin-top:22px;font-size:.9rem}.landing .micro a,.landing .cta-row+.micro a{color:var(--teal);font-weight:600;text-decoration:none}.landing .micro a:hover{text-decoration:underline}.landing .section-lede{color:var(--text-dim);text-align:center;max-width:620px;margin:12px auto 48px;font-size:1.1rem;line-height:1.55}.landing h2{text-align:center;max-width:720px;margin:0 auto 12px;font-size:clamp(1.7rem,3.5vw,2.5rem)}.landing .problem-grid,.landing .diff-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:36px;display:grid}.landing .problem-card,.landing .diff-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;padding:26px 22px}.landing .problem-card h3,.landing .diff-card h3{margin:0 0 6px;font-size:1.1rem}.landing .problem-card .muted,.landing .diff-card .muted{letter-spacing:.04em;text-transform:uppercase;margin:0 0 14px;font-size:.82rem}.landing .problem-card p:last-child,.landing .diff-card p{color:var(--text-dim);margin:0;line-height:1.55}.landing .diff-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:.74rem;font-weight:700;display:inline-block}.landing .callout{background:var(--accent-soft);border-radius:var(--radius);text-align:center;max-width:680px;color:var(--text);border:1px solid #8b7cf859;margin:48px auto 0;padding:22px 26px;line-height:1.55}.landing .callout strong{color:var(--accent)}.landing .demo-strip{background:linear-gradient(#0000,#8b7cf80f,#0000);max-width:none;padding:0 22px}.landing .demo-card{grid-template-columns:280px 1fr;align-items:center;gap:48px;max-width:1080px;margin:0 auto;padding:64px 0;display:grid}@media (width<=720px){.landing .demo-card{text-align:center;grid-template-columns:1fr;gap:32px}}.landing .demo-wheel{width:260px;height:260px;margin:0 auto;position:relative}.landing .demo-wheel-ring{background:radial-gradient(circle,#8b7cf838,#0000 65%);border:1px solid #8b7cf866;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 80px #8b7cf840,inset 0 0 40px #5eead41a}.landing .demo-degree{background:var(--surface-strong);border:1px solid var(--border);width:56px;height:56px;color:var(--text);transform:rotate(calc(var(--d) * 120deg)) translateY(-100px) rotate(calc(var(--d) * -120deg));animation:2.6s ease-in-out infinite pulse;animation-delay:calc(var(--d) * .4s);border-radius:50%;justify-content:center;align-items:center;margin:-28px;font-size:1.1rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%}.landing .demo-degree:nth-child(2){--d:1}.landing .demo-degree:nth-child(3){--d:2}.landing .demo-wheel-core{background:var(--teal);width:14px;height:14px;box-shadow:0 0 24px var(--teal);border-radius:50%;margin:-7px;position:absolute;top:50%;left:50%}@keyframes pulse{0%,to{box-shadow:0 0 #8b7cf800}50%{box-shadow:0 0 0 6px #8b7cf840}}@media (prefers-reduced-motion:reduce){.landing .demo-degree{animation:none}}.landing .demo-copy h2{text-align:left;margin:0 0 14px}@media (width<=720px){.landing .demo-copy h2{text-align:center}}.landing .demo-copy p{color:var(--text-dim);margin:0 0 22px;line-height:1.6}.landing .founding{text-align:center}.landing .founding-card{background:linear-gradient(160deg, var(--surface-strong), var(--surface));border-radius:var(--radius);text-align:left;border:1px solid #f5c97b59;max-width:540px;margin:32px auto 0;padding:36px 32px}.landing .founding-price{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:22px;display:flex}.landing .founding-price .price{color:var(--gold);font-size:3rem;font-weight:700;line-height:1}.landing .founding-price .price-note{color:var(--text-dim);font-size:.95rem}.landing .founding-list{margin:0 0 26px;padding:0;list-style:none}.landing .founding-list li{border-bottom:1px solid var(--border);color:var(--text);padding:10px 0 10px 28px;line-height:1.4;position:relative}.landing .founding-list li:before{content:"✓";color:var(--good);font-weight:700;position:absolute;left:0}.landing .founding-list li:last-child{border-bottom:none}.landing .founding-cta{text-align:center;width:100%;padding:14px 24px;font-size:1.05rem;text-decoration:none;display:block}.landing .founding-fine{text-align:center;margin:14px 0 0;font-size:.82rem}.landing .faq-list{max-width:720px;margin:32px auto 0;padding:0;list-style:none}.landing .faq-q{border:none;border-top:1px solid var(--border);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;font-weight:600;display:flex}.landing .faq-list li:last-child .faq-q{border-bottom:1px solid var(--border)}.landing .faq-q:hover{color:var(--accent)}.landing .faq-icon{color:var(--text-dim);flex-shrink:0;font-size:1.4rem}.landing .faq-a{max-height:0;color:var(--text-dim);padding:0 4px;line-height:1.6;transition:max-height .24s,padding .24s;overflow:hidden}.landing .faq-a.open{max-height:320px;padding:0 4px 22px}.landing .faq-a p{margin:0}.landing .final-cta{text-align:center;padding-top:100px;padding-bottom:100px}.landing .final-cta h2{margin-bottom:24px}.landing-footer{border-top:1px solid var(--border);background:#0000002e;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:none;margin:0;padding:28px 22px;display:flex}.landing-footer .brand{letter-spacing:.04em;background:linear-gradient(90deg, var(--accent), var(--teal));color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:700}.landing-footer .footer-links{gap:18px;display:flex}.landing-footer .footer-links a{color:var(--text-dim);font-size:.9rem;text-decoration:none}.landing-footer .footer-links a:hover{color:var(--text)}@media (width<=540px){.landing section{padding:64px 18px}.landing-hero{padding-top:80px;padding-bottom:64px}.landing .demo-wheel{width:220px;height:220px}.landing .demo-degree{transform:rotate(calc(var(--d) * 120deg)) translateY(-84px) rotate(calc(var(--d) * -120deg))}}
