:root{--bg: #f7f8fa;--surface: #ffffff;--surface-alt: #f1f5f9;--border: #e2e8f0;--text: #0f172a;--text-secondary: #64748b;--text-tertiary: #94a3b8;--accent: #2563eb;--accent-soft: #dbeafe;--locked-bg: #f1f5f9;--ok: #15803d;--ok-soft: #dcfce7;--ok-text: #14532d;--bad: #b91c1c;--bad-soft: #fee2e2;--bad-text: #7f1d1d;--warn: #b45309;--zone: rgba(220, 38, 38, .16);--zone-buy: rgba(22, 163, 74, .18);--zone-line: rgba(220, 38, 38, .55);--zone-buy-line: rgba(22, 163, 74, .55);--sheet: #ffffff;--on-accent: #ffffff;--accent-hover: #1d4ed8;--r-card: 10px;--r-box: 14px;--r-pill: 99px;--pad-screen: 20px;--gap-xs: 6px;--gap-sm: 10px;--gap: 16px;--gap-md: 24px;--gap-lg: 36px;--font: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--fs-title: 20px;--fs-body: 15px;--fs-ui: 14px;--fs-sm: 13px;--fs-xs: 12px;--lh-read: 1.7;--measure: 620px;--tap: 44px;--header-h: 56px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}[data-theme=dark]{--bg: #0e1116;--surface: #131a22;--surface-alt: #161c24;--border: #1a222c;--text: #ffffff;--text-secondary: #9aa7b4;--text-tertiary: #5b6b7c;--accent: #3b82f6;--accent-soft: #1e293b;--locked-bg: #131a22;--accent-hover: #60a5fa;--on-accent: #0e1116;--ok: #4ade80;--ok-soft: #14261c;--ok-text: #86efac;--bad: #f87171;--bad-soft: #2a1618;--bad-text: #fca5a5;--warn: #fbbf24;--zone: rgba(248, 113, 113, .22);--zone-buy: rgba(74, 222, 128, .22);--zone-line: rgba(248, 113, 113, .6);--zone-buy-line: rgba(74, 222, 128, .6)}:root,body,.card,.box,.option,.unit-row,.appbar,.input,.install,.exit,.cert,.note,.keybox,.callouts{transition:background-color .15s ease,color .15s ease}@media (prefers-reduced-motion: reduce){:root,body,.card,.box,.option,.unit-row,.appbar,.input,.install,.exit,.cert,.note,.keybox,.callouts{transition:none}}@font-face{font-family:Poppins;src:url(/fonts/poppins-800-latin.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-grotesk-var-latin.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{font-family:var(--font);font-size:var(--fs-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding-left:20px}a{color:var(--accent);text-underline-offset:2px}button{font:inherit;color:inherit}img,svg{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen{flex:1;width:100%;max-width:var(--measure);margin:0 auto;padding:var(--gap-md) var(--pad-screen) calc(var(--gap-lg) + var(--safe-bottom));display:flex;flex-direction:column;gap:var(--gap-md)}.screen--centered{justify-content:center;gap:var(--gap-lg)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.title{font-size:var(--fs-title);font-weight:700;letter-spacing:-.02em;line-height:1.25}.title--lg{font-size:26px}.subtitle{font-size:var(--fs-ui);color:var(--text-secondary);line-height:1.55}.eyebrow{font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.fineprint{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:1.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);padding:13px 18px;font-size:var(--fs-ui);font-weight:600;border-radius:var(--r-card);border:1px solid transparent;background:none;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--ghost{background:var(--surface);color:var(--text);border-color:var(--border)}.btn--ghost:hover:not(:disabled){border-color:var(--text-tertiary)}.btn--quiet{color:var(--text-secondary);padding:10px 4px;min-height:var(--tap)}.btn--quiet:hover{color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--block{width:100%}@media (max-width: 560px){.btn{width:100%}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--gap)}.box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-box);padding:var(--gap-md)}.stack{display:flex;flex-direction:column;gap:var(--gap)}.stack--sm{gap:var(--gap-sm)}.row{display:flex;align-items:center;gap:var(--gap-sm);flex-wrap:wrap}.row--between{justify-content:space-between}.bar{height:6px;width:100%;background:var(--border);border-radius:var(--r-pill);overflow:hidden}.bar__fill{height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .35s ease}.appbar{position:sticky;top:0;z-index:10;background:var(--bg);border-bottom:1px solid var(--border);padding-top:var(--safe-top)}.appbar__inner{max-width:var(--measure);margin:0 auto;min-height:var(--header-h);padding:0 12px;display:flex;align-items:center;gap:var(--gap-sm)}.appbar__spacer{flex:1}.appbar__progress{max-width:var(--measure);margin:0 auto;padding:0 12px 10px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border:0;background:none;border-radius:var(--r-card);cursor:pointer;color:var(--text-secondary)}.iconbtn:hover{background:var(--locked-bg);color:var(--text)}.option{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--tap);padding:13px 14px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);font-size:var(--fs-ui);line-height:1.45;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.option:hover:not(:disabled){border-color:var(--text-tertiary)}.option.is-selected{border-width:2px;border-color:var(--accent);padding:12px 13px}.option.is-correct{border-width:2px;border-color:var(--ok);background:var(--ok-soft);padding:12px 13px}.option.is-wrong{border-width:2px;border-color:var(--bad);background:var(--bad-soft);padding:12px 13px}.option:disabled{cursor:default}.option__key{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--locked-bg);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:700}.option.is-selected .option__key{background:var(--accent-soft);color:var(--accent)}.option.is-correct .option__key{background:var(--ok);color:var(--on-accent)}.option.is-wrong .option__key{background:var(--bad);color:var(--on-accent)}.field{display:flex;flex-direction:column;gap:var(--gap-xs)}.field__label{font-size:var(--fs-sm);font-weight:600}.input{width:100%;min-height:var(--tap);padding:12px 13px;font:inherit;font-size:16px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card)}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 1px var(--accent)}.check{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.5;color:var(--text-secondary);cursor:pointer}.check input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}.formerror{font-size:var(--fs-sm);color:var(--bad);background:var(--bad-soft);border-radius:var(--r-card);padding:10px 12px}.badge{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-xs);font-weight:700}.badge--quiet{background:var(--locked-bg);color:var(--text-secondary)}.badge--ok{background:var(--ok-soft);color:var(--ok)}.note{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-card);background:var(--surface);padding:12px 14px;font-size:var(--fs-body);line-height:var(--lh-read)}.disclaimer{font-size:var(--fs-xs);line-height:1.6;color:var(--text-tertiary);border-top:1px solid var(--border);padding-top:14px}.center-note{flex:1;display:grid;place-items:center;padding:var(--gap-lg);color:var(--text-secondary);font-size:var(--fs-ui)}.section{display:flex;flex-direction:column;gap:var(--gap-sm)}.section__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--gap-sm)}.section__name{font-size:var(--fs-ui);font-weight:700;letter-spacing:-.01em}.section__count{font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.section.is-locked .section__name{color:var(--text-secondary)}.units{display:flex;flex-direction:column;gap:8px}.unit-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 14px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);cursor:pointer;text-decoration:none;color:inherit;transition:border-color .15s ease}.unit-row:hover{border-color:var(--text-tertiary)}.unit-row.is-current{border-width:2px;border-color:var(--accent);padding:11px 13px}.unit-row.is-locked{background:var(--locked-bg);opacity:.6;cursor:not-allowed;border-color:transparent}.unit-row.is-locked:hover{border-color:transparent}.unit-row__num{flex:none;min-width:34px;height:30px;padding:0 6px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--locked-bg);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums}.unit-row.is-current .unit-row__num{background:var(--accent-soft);color:var(--accent)}.unit-row.is-done .unit-row__num{background:var(--accent);color:var(--on-accent)}.unit-row__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.unit-row__title{font-size:var(--fs-ui);font-weight:600;line-height:1.35}.unit-row__meta{font-size:var(--fs-xs);color:var(--text-tertiary)}.unit-row__mark{flex:none;color:var(--text-tertiary)}.lesson{font-size:var(--fs-body);line-height:var(--lh-read);display:flex;flex-direction:column;gap:var(--gap)}.lesson strong{font-weight:700}.callouts{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:10px}.callouts__cap{font-size:var(--fs-xs);color:var(--text-tertiary);line-height:1.5}.callouts__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}.callouts__item{display:flex;gap:10px;font-size:var(--fs-sm);line-height:1.55}.callouts__n{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}.keybox{border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);padding:14px}.keybox__label{display:block;font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.keybox--warn .keybox__label{color:var(--warn)}.keybox ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-body);line-height:1.6}.explain{border-radius:var(--r-card);padding:12px 14px;font-size:var(--fs-sm);line-height:1.6;background:var(--locked-bg);color:var(--text-secondary)}.explain--wrong{background:var(--bad-soft);color:var(--bad-text)}.explain--right{background:var(--ok-soft);color:var(--ok-text)}.todo{display:flex;flex-direction:column;gap:10px}.todo__item{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);font-size:var(--fs-ui);line-height:1.5;cursor:pointer}.todo__item.is-on{border-width:2px;border-color:var(--accent);padding:12px 13px}.todo__item input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}.cert{border:1px solid var(--border);border-radius:var(--r-box);background:var(--surface);padding:var(--gap-md);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.cert__level{font-size:var(--fs-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.cert__name{font-size:22px;font-weight:700;letter-spacing:-.02em}.cert__rule{width:56px;height:4px;border-radius:var(--r-pill);background:var(--accent)}.exit{border:1px solid var(--border);border-radius:var(--r-box);background:var(--surface);padding:var(--gap-md);display:flex;flex-direction:column;gap:var(--gap)}.deflist{display:flex;flex-direction:column}.deflist__row{display:flex;align-items:center;justify-content:space-between;gap:var(--gap);padding:13px 0;border-bottom:1px solid var(--border);font-size:var(--fs-ui)}.deflist__row:last-child{border-bottom:0}.deflist__key{color:var(--text-secondary)}.deflist__val{font-weight:600;text-align:right}.seg{display:inline-flex;padding:3px;gap:3px;background:var(--locked-bg);border-radius:var(--r-card)}.seg__btn{min-height:34px;padding:0 14px;border:0;background:none;border-radius:8px;font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);cursor:pointer}.seg__btn.is-on{background:var(--surface);color:var(--text)}.install{display:flex;flex-direction:column;gap:var(--gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-box);padding:var(--gap)}.install--row{padding:var(--gap-md)}.install__head{display:flex;align-items:flex-start;gap:12px}.install__mark{flex:none;display:block;margin-top:2px}.install__text{display:flex;flex-direction:column;gap:3px}.install__title{font-size:var(--fs-ui);font-weight:700;letter-spacing:-.01em}.install__sub{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5}.install__steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px;font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.5}.install__single{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.55}.inline-icon{vertical-align:-3px;margin:0 1px;color:var(--accent)}.legal{font-size:var(--fs-body);line-height:var(--lh-read);display:flex;flex-direction:column;gap:var(--gap)}.legal h2{font-size:17px;font-weight:700;letter-spacing:-.015em;margin-top:10px}[data-theme=dark] .unit-row.is-locked{opacity:.75;border-color:var(--border)}.figure-sheet{background:var(--sheet);border-radius:var(--r-card);padding:12px;overflow-x:auto}.figure-sheet img{display:block;width:100%;height:auto;border-radius:6px}.diagram{margin:0}.diagram svg{display:block;width:100%;height:auto}.cycle{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none}.cycle__step{display:flex;flex-direction:column;gap:4px;padding:12px 10px;border-radius:var(--r-card);background:var(--accent-soft)}.cycle__step--bad{background:var(--bad-soft)}.cycle__title{font-size:var(--fs-ui);font-weight:600;color:var(--text)}.cycle__sub{font-size:var(--fs-xs);line-height:1.4;color:var(--text-secondary)}.cycle__loop{margin:12px 0 0;text-align:center;font-size:var(--fs-sm);font-weight:600;color:var(--bad)}@media (max-width: 560px){.cycle{grid-template-columns:repeat(2,1fr)}}.diagram__dd{fill:var(--zone)}.diagram__equity{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.diagram__ddArrow line{stroke:var(--bad);stroke-width:2}.diagram__ddArrow polygon{fill:var(--bad)}.diagram__ddTag{fill:var(--bad);font-size:18px;font-weight:600}.diagram__panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}.diagram__panel{min-width:0}.diagram__panelTitle{display:block;margin-bottom:6px;font-size:var(--fs-sm);font-weight:600;color:var(--text);text-align:center}.diagram__line{fill:none;stroke:var(--text);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.diagram__rule{stroke:var(--text-tertiary);stroke-width:1.5;stroke-dasharray:2 6;stroke-linecap:round}.diagram__tag{fill:var(--text-secondary);font-size:20px;font-weight:600;letter-spacing:.02em}.diagram__zone{stroke-width:1.5}.diagram__level{stroke:var(--zone-line);stroke-width:1.5}.diagram__sweep{fill:var(--zone-buy);stroke:var(--zone-buy-line);stroke-width:1.5}.diagram__label{fill:var(--text);font-size:17px;font-weight:700;font-style:italic}.diagram__arrow line{stroke:var(--accent);stroke-width:2.5}.diagram__arrow polygon{fill:var(--accent)}.diagram__zone--sell{fill:var(--zone);stroke:var(--zone-line)}.diagram__zone--buy{fill:var(--zone-buy);stroke:var(--zone-buy-line)}.diagram__up line,.diagram__up rect{stroke:var(--accent);fill:var(--accent)}.diagram__down line,.diagram__down rect{stroke:var(--text);fill:var(--text)}.diagram__cap{margin-top:10px;font-size:var(--fs-sm);line-height:1.5;color:var(--text-secondary)}.whylist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}.whylist li{display:flex;align-items:flex-start;gap:12px;font-size:var(--fs-ui);line-height:1.5}.whylist__mark{flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent)}.celebrate{position:fixed;inset:0 0 auto;height:100%;pointer-events:none;overflow:hidden;z-index:5}.celebrate__piece{position:absolute;top:-8%;font-size:22px;line-height:1;animation-name:celebrate-fall;animation-timing-function:cubic-bezier(.25,.6,.4,1);animation-fill-mode:forwards;animation-iteration-count:1}@keyframes celebrate-fall{0%{transform:translateZ(0) rotate(0);opacity:0}10%{opacity:1}to{transform:translate3d(var(--drift),108vh,0) rotate(320deg);opacity:0}}@media (prefers-reduced-motion: reduce){.celebrate{display:none}}.sectionend__hero{display:flex;flex-direction:column;align-items:center;gap:var(--gap-sm);text-align:center;padding-top:var(--gap)}.sectionend__emoji{font-size:44px;line-height:1}.cert__name{max-width:100%;overflow-wrap:anywhere;font-size:18px}@media print{.appbar,.btn,.no-print{display:none!important}body{background:#fff}.screen{max-width:none;padding:0;gap:18px}.print-sheet{display:block!important}.cert{border:2px solid var(--text);page-break-inside:avoid}.recap__item{page-break-inside:avoid}}.print-sheet{display:none}.recap{display:flex;flex-direction:column;gap:12px;margin-top:20px}.recap__title{font-size:16px;font-weight:700;letter-spacing:-.02em}.recap__item{display:flex;gap:10px;font-size:12px;line-height:1.55;border-bottom:1px solid var(--border);padding-bottom:8px}.recap__num{flex:none;width:34px;font-weight:700;color:var(--accent)}.recap__unit{font-weight:700;display:block}
