:root{--bg:#1a1320;--bg-2:#241829;--card:#2c1f33;--card-2:#362542;--ink:#f4ecf2;--ink-soft:#c7b6cf;--muted:#9a86a6;--line:#443150;--rose:#e96a8b;--rose-deep:#c84d72;--gold:#e7b75f;--plum:#8a5cf6;--mint:#5fd0a8;--shadow:0 18px 50px rgba(0,0,0,0.45);--radius:18px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:radial-gradient(1200px 800px at 80% -10%,#3a2140 0,transparent 55%),radial-gradient(900px 700px at -10% 110%,#2a1840 0,transparent 50%),var(--bg);color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.55;min-height:100vh}.app-shell{max-width:760px;margin:0 auto;padding:32px 20px 80px}h1,h2,h3{line-height:1.2;margin:0 0 .4em;letter-spacing:-.01em}h1{font-size:clamp(28px,5vw,40px)}a{color:var(--rose);text-decoration:none}a:hover{text-decoration:underline}p{margin:0 0 1em}.muted{color:var(--muted)}.soft{color:var(--ink-soft)}.brandmark{display:inline-flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:13px;color:var(--gold)}.brand-logo{width:28px;height:28px;border-radius:6px;object-fit:contain;display:inline-block;flex:none}a.brandmark{cursor:pointer;text-decoration:none}a.brandmark:hover{opacity:.85;text-decoration:none}.brandmark .seal{width:26px;height:26px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--gold),var(--rose-deep));box-shadow:0 0 0 3px rgba(231,183,95,.18);display:inline-block}.hero{text-align:center;padding:24px 0 8px}.hero .eyebrow{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:12px;font-weight:700}.hero-logo{width:132px;height:132px;border-radius:50%;display:block;margin:0 auto 16px;box-shadow:0 16px 44px rgba(0,0,0,.5)}.pillars{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px;margin:22px 0 8px}@media (min-width:620px){.pillars{grid-template-columns:repeat(4,1fr)}}.pillar{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line);border-radius:14px;padding:14px 12px;text-align:center}.pillar .emoji{font-size:22px;line-height:1}.pillar .t{font-weight:700;margin-top:8px;letter-spacing:.04em}.pillar .d{color:var(--muted);font-size:12px;margin-top:4px;line-height:1.4}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 12px}.section-head h2{margin:0}.card{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin:18px 0}.card.tight{padding:18px}.stack>*+*{margin-top:14px}label{display:block;font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:6px}label .hint{font-weight:400;color:var(--muted)}input[type=text],select,textarea{width:100%;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:12px 14px;font-size:15px;font-family:inherit;resize:vertical}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 3px rgba(233,106,139,.18)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(180deg,var(--rose),var(--rose-deep));color:white;border:none;border-radius:12px;padding:13px 22px;font-size:15px;font-weight:700;cursor:pointer;transition:transform .06s ease,filter .2s ease}.btn:hover{filter:brightness(1.06)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--ink-soft)}.btn.gold{background:linear-gradient(180deg,var(--gold),#c9912f);color:#2a1d05}.btn.block{width:100%}.row{display:flex;gap:12px;flex-wrap:wrap}.row.between{justify-content:space-between;align-items:center}.pill{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:rgba(138,92,246,.18);color:#cbb6ff;border:1px solid rgba(138,92,246,.35)}.pill.gold{background:rgba(231,183,95,.16);color:var(--gold);border-color:rgba(231,183,95,.35)}.pill.rose{background:rgba(233,106,139,.16);color:#ffb3c6;border-color:rgba(233,106,139,.35)}.codebox{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:30px;letter-spacing:.3em;font-weight:700;color:var(--gold);border:1px dashed var(--line);border-radius:14px;padding:16px;text-align:center}.codebox,.progress{background:var(--bg-2)}.progress{height:10px;border-radius:999px;overflow:hidden;border:1px solid var(--line)}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--gold))}.option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:13px 15px;color:var(--ink);cursor:pointer;font-size:15px;font-family:inherit}.option.selected,.option:hover{border-color:var(--rose)}.option.selected{background:rgba(233,106,139,.12)}.option .dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--muted);flex:none}.option.selected .dot{border-color:var(--rose);background:var(--rose);box-shadow:inset 0 0 0 3px var(--card)}.weekgroup{margin-top:22px}.weekgroup .weekhead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.sessionrow{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--card)}.sessionrow .num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--bg-2);border:1px solid var(--line);flex:none}.sessionrow.locked{opacity:.55}.sessionrow.open .num{background:linear-gradient(180deg,var(--rose),var(--rose-deep));border:none;color:white}.sessionrow.done .num{background:linear-gradient(180deg,var(--mint),#2f9d77);border:none;color:#08231a}.sessionrow .grow{flex:1 1;min-width:0}.sessionrow .t{font-weight:600}.sessionrow .c{font-size:13px;color:var(--muted)}.scorering{text-align:center}.scorering .big{font-size:54px;font-weight:800;color:var(--gold);line-height:1}.stepdots{display:flex;gap:8px;justify-content:center;margin:4px 0 18px}.stepdots i{width:9px;height:9px;border-radius:50%;background:var(--line);display:inline-block}.stepdots i.on{background:var(--rose)}.stepdots i.done{background:var(--mint)}.callout{border-left:3px solid var(--gold);background:rgba(231,183,95,.08);padding:12px 16px;border-radius:0 12px 12px 0}.callout.rose{border-color:var(--rose);background:rgba(233,106,139,.08)}.callout.plum{border-color:var(--plum);background:rgba(138,92,246,.08)}.answer{margin:6px 0 0;padding:11px 14px;background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--rose);border-radius:10px;color:var(--ink);white-space:pre-wrap}.answer.empty{color:var(--muted);font-style:italic}.qa-label{display:block;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.waiting{text-align:center;padding:18px;color:var(--ink-soft)}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--rose);margin:0 auto 12px;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}ol.steps{padding-left:20px}ol.steps li{margin-bottom:8px}.footer-nav{display:flex;justify-content:space-between;margin-top:22px}.certificate{background:#fffdf6;color:#2a1d2e;border:3px solid var(--gold);outline:1px solid var(--gold);outline-offset:7px;border-radius:10px;padding:44px 40px 36px;max-width:720px;margin:26px auto;text-align:center;box-shadow:var(--shadow);-webkit-print-color-adjust:exact;print-color-adjust:exact}.certificate .cert-logo{width:84px;height:84px;border-radius:50%;display:block;margin:0 auto 12px}.certificate .cert-eyebrow{letter-spacing:.32em;text-transform:uppercase;font-size:12px;font-weight:700;color:#b0892b}.certificate h1.cert-title{font-size:clamp(30px,6vw,42px);color:#b03a5b;margin:8px 0 2px;letter-spacing:-.01em}.certificate .cert-lead{margin:20px 0 2px;color:#8a7790;font-size:14px}.certificate .cert-names{font-size:clamp(24px,5vw,32px);font-weight:800;margin:6px 0 8px;color:#2a1d2e}.certificate .cert-path{font-size:15px;color:#6a566e;max-width:460px;margin:4px auto}.certificate .cert-stats{display:flex;justify-content:center;gap:30px;margin:22px 0 6px}.certificate .cert-stat .n{font-size:24px;font-weight:800;color:#b03a5b}.certificate .cert-stat .l{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a7790;margin-top:2px}.certificate .cert-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.certificate .cert-badge{font-size:11px;font-weight:700;border:1px solid var(--gold);color:#b0892b;border-radius:999px;padding:4px 12px}.certificate .cert-seal{margin-top:22px;font-size:12px;color:#8a7790}@media print{body{background:#fff}.app-shell{max-width:none;padding:0}.debug-fill,.no-print{display:none!important}.certificate{box-shadow:none;margin:0 auto}@page{margin:1.2cm}}.debug-fill{position:fixed;right:16px;bottom:16px;z-index:1000;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;font-weight:700;color:var(--ink);background:rgba(26,19,32,.9);border:1px dashed var(--gold);border-radius:999px;padding:9px 14px;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:var(--shadow);opacity:.75;transition:opacity .15s ease}.debug-fill:hover{opacity:1}