:root {
  --cyan: #2fd2ff;
  --indigo: #3d3dea;
  --magenta: #f310ba;
  --pink: #ff9df2;
  --near-black: #06070d;
  --surface: #0b0e18;
  --surface-soft: rgba(255, 255, 255, 0.055);
  --text: #f6f8ff;
  --muted: #aeb8cb;
  --border: rgba(255, 255, 255, 0.1);
  --radius-lg: 28px;
}

* { box-sizing: border-box; }
html, body { width:100%; min-width:0; min-height:100%; margin:0; }
html { background:var(--near-black); }
body { overflow:hidden; background:radial-gradient(circle at 20% 15%,rgba(47,210,255,.09),transparent 28%),radial-gradient(circle at 82% 80%,rgba(243,16,186,.08),transparent 30%),var(--near-black); color:var(--text); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
button,a,input,textarea,select { font:inherit; }
button { -webkit-tap-highlight-color:transparent; }

.app-frame { position:relative; width:min(100%,430px); height:100dvh; min-height:320px; margin-inline:auto; overflow:hidden; background:linear-gradient(180deg,#090b14 0%,#06070d 100%); isolation:isolate; }
.app-shell { position:relative; display:grid; grid-template-rows:auto 1fr auto; width:100%;height:100%;min-height:0;padding:max(20px,env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));overflow:hidden;visibility:hidden;pointer-events:none; }
.app-frame.splash-done .app-shell { visibility:visible;pointer-events:auto; }
.app-shell::before { content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(120deg,rgba(47,210,255,.045),transparent 34%),linear-gradient(320deg,rgba(61,61,234,.05),transparent 38%);pointer-events:none; }
.app-shell::after { content:"";position:absolute;inset:12px;z-index:-1;border:1px solid rgba(255,255,255,.055);border-radius:var(--radius-lg);pointer-events:none; }
.dashboard-watermark { position:absolute;right:-34px;top:122px;font-size:150px;font-weight:1000;letter-spacing:-.08em;color:rgba(255,255,255,.018);transform:rotate(-8deg);pointer-events:none; }
.dashboard-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;padding:8px 6px 0; }
.dashboard-header h1 { margin:7px 0 5px;font-size:clamp(32px,8.8vw,40px);line-height:.98;letter-spacing:-.045em; }
.dashboard-header p { margin:0;color:var(--muted);font-size:16px;line-height:1.4; }
.eyebrow { display:block;color:var(--cyan);font-size:12px;font-weight:900;letter-spacing:.12em;line-height:1.3; }
.member-status { display:flex;align-items:center;gap:7px;flex:0 0 auto;padding:9px 10px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(10,13,23,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#dbe5f5; }
.member-dot { width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px rgba(47,210,255,.8); }
.member-status-copy { display:grid;gap:2px; }.member-status-copy strong{font-size:12px;line-height:1.1;letter-spacing:.07em;}.member-status-copy small{font-size:11px;line-height:1.2;font-weight:700;white-space:nowrap;}
.dashboard-main { display:grid;align-content:center;gap:14px;min-height:0;padding:10px 4px; }
.welcome-card,.blueprint-card { border:1px solid rgba(255,255,255,.1);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.025));box-shadow:0 24px 70px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.045); }
.welcome-card { display:grid;grid-template-columns:1fr 110px;align-items:center;gap:14px;min-height:150px;padding:20px; background:linear-gradient(135deg,rgba(47,210,255,.09),rgba(61,61,234,.05) 45%,rgba(243,16,186,.05)),rgba(8,11,20,.82); }
.card-label { color:#8c9bb3;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase; }
.welcome-copy h2 { margin:8px 0 8px;font-size:28px;line-height:1.05;letter-spacing:-.035em; }.welcome-copy p{margin:0;max-width:280px;color:var(--muted);font-size:16px;line-height:1.45;}
.mascot-orbit { position:relative;display:grid;place-items:center;min-height:108px; }.mascot-ring{position:absolute;width:98px;height:98px;border-radius:50%;border:1px solid rgba(47,210,255,.35);box-shadow:0 0 32px rgba(47,210,255,.12),inset 0 0 22px rgba(47,210,255,.05);}.mascot-ring::before,.mascot-ring::after{content:"";position:absolute;inset:12px;border:1px dashed rgba(255,159,242,.18);border-radius:50%;}.mascot-ring::after{inset:26px;border-color:rgba(243,16,186,.2);}.mascot-badge{display:grid;place-items:center;width:68px;height:68px;border-radius:21px;background:linear-gradient(145deg,rgba(47,210,255,.25),rgba(61,61,234,.2));border:1px solid rgba(47,210,255,.42);box-shadow:0 12px 34px rgba(0,0,0,.3);color:#fff;font-size:30px;font-weight:1000;}.mascot-caption{position:absolute;bottom:-1px;color:var(--cyan);font-size:12px;font-weight:900;letter-spacing:.14em;}
.blueprint-card{padding:18px;}.blueprint-topline{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}.blueprint-topline h2{margin:6px 0 0;font-size:23px;line-height:1.05;letter-spacing:-.025em}.blueprint-count{color:var(--cyan);font-size:16px;font-weight:900}.progress-track{height:9px;margin-top:14px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.progress-fill{display:block;width:7%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--indigo),var(--magenta));box-shadow:0 0 16px rgba(47,210,255,.24)}.day-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:12px}.day-pill{display:grid;place-items:center;min-width:0;min-height:40px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.03);color:#758299;font-size:12px;font-weight:900;letter-spacing:.04em}.day-pill.is-current{border-color:rgba(47,210,255,.38);background:rgba(47,210,255,.09);color:var(--cyan)}
.academy-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:88px;padding:16px 18px;border:1px solid rgba(47,210,255,.45);border-radius:22px;background:linear-gradient(135deg,rgba(47,210,255,.18),rgba(61,61,234,.18) 48%,rgba(243,16,186,.12));box-shadow:0 20px 44px rgba(0,0,0,.28),0 0 34px rgba(47,210,255,.08);color:#fff;text-align:left;cursor:pointer}.cta-copy{display:grid;gap:5px}.cta-kicker{color:var(--cyan);font-size:12px;font-weight:900;letter-spacing:.15em}.cta-copy strong{font-size:22px;letter-spacing:-.025em}.cta-copy small{color:#c1ccdd;font-size:14px}.cta-arrow{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:15px;background:rgba(6,7,13,.34);border:1px solid rgba(255,255,255,.11);font-size:28px}.academy-cta:focus-visible{outline:3px solid var(--pink);outline-offset:3px}.academy-cta:active{transform:translateY(1px)}
.dashboard-footer{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:7px;padding:0 8px 2px;color:#7f8ba2;font-size:11px;font-weight:700;letter-spacing:.07em;line-height:1.4;text-transform:uppercase;text-align:center}.footer-dot{width:5px;height:5px;border-radius:50%;background:var(--magenta);box-shadow:0 0 12px rgba(243,16,186,.65)}
@media(max-width:360px){.app-shell{padding-inline:15px}.dashboard-header h1{font-size:30px}.dashboard-header p{font-size:15px}.eyebrow{font-size:11px}.member-status{padding:8px}.member-status-copy strong{font-size:11px}.member-status-copy small{font-size:10px}.welcome-card{grid-template-columns:1fr 82px;min-height:138px;padding:16px;gap:8px}.welcome-copy h2{font-size:25px}.welcome-copy p{font-size:15px}.card-label{font-size:11px}.mascot-ring{width:78px;height:78px}.mascot-badge{width:56px;height:56px;font-size:25px}.mascot-caption{font-size:10px}.blueprint-card{padding:15px}.blueprint-topline h2{font-size:21px}.day-grid{gap:4px}.day-pill{min-height:36px;font-size:10px}.academy-cta{min-height:82px;padding:14px 15px}.cta-copy strong{font-size:20px}.cta-copy small{font-size:13px}.dashboard-footer{font-size:10px}}
@media(min-width:431px){body{display:grid;place-items:center}.app-frame{max-height:100dvh;border-inline:1px solid rgba(255,255,255,.055)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
