@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:300 700;font-display:swap;src:url('/assets/fonts/SpaceGrotesk-variable.woff2') format('woff2')}
:root{color-scheme:dark;--bg:#101013;--surface:#1b1b20;--ink:#f7f7f7;--muted:#b8b8be;--line:#36363c;--yellow:#e8cf35;--radius:8px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Space Grotesk',-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;line-height:1.65}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-underline-offset:4px}button{font:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}.wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.skip{position:absolute;top:-100px;left:16px;padding:12px;background:var(--yellow);color:var(--bg);z-index:2}.skip:focus{top:12px}.header-inner{min-height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:20px;align-items:center;text-decoration:none}.brand img{width:120px}.brand span{color:var(--muted);border-left:1px solid var(--line);padding-left:20px;font-size:.875rem}.language{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:50%;font-size:.8125rem;text-decoration:none}
.hero{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;padding-block:76px 64px}.eyebrow{font-size:.8125rem;color:var(--yellow);margin-bottom:20px}h1{font-size:clamp(2.4rem,4.2vw,3.65rem);line-height:1.15;letter-spacing:-.035em}h1 em{font-style:normal;color:var(--yellow)}.intro{margin-top:22px;color:var(--muted);max-width:36ch;font-size:1.0625rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:52px;padding:12px 22px;border-radius:6px;text-decoration:none;font-weight:600;border:1px solid transparent;transition:background .15s}.primary{background:var(--yellow);color:var(--bg)}.primary:hover{background:#f1de66}.secondary{border-color:var(--line);background:var(--surface);color:var(--ink)}.secondary:hover{border-color:var(--yellow)}.hero .button{margin-top:28px}.byline{color:var(--muted);font-size:.8125rem;margin-top:16px}.film{min-width:0;scroll-margin-top:24px}.film video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius)}.film figcaption{color:var(--muted);font-size:.8125rem;margin-top:12px}
.hero-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:28px}.hero-actions .button{margin-top:0}.text-link,.lesson-link{color:var(--ink);font-size:.9375rem;text-underline-offset:5px}.text-link:hover,.lesson-link:hover{color:var(--yellow)}.lesson-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:24px}
.lesson{padding-block:52px 60px;border-top:1px solid var(--line)}.section-heading h2{font-size:clamp(1.75rem,2.8vw,2.25rem);line-height:1.3;letter-spacing:-.025em}.section-heading p{color:var(--muted);margin-top:10px}.lesson-steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px;padding:0;margin:32px 0 0}.step-number{display:block;color:var(--yellow);font-size:.875rem;margin-bottom:12px}h3{font-size:1.1875rem;line-height:1.4}.lesson-steps p{color:var(--muted);font-size:.9375rem;margin-top:10px}.start{border-top:1px solid var(--line);padding-block:52px 48px}.start-options{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:28px}.start-options>div{display:flex;flex-direction:column;align-items:flex-start}.start-options p{color:var(--muted);margin-block:10px 20px;max-width:42ch}.start-options .button{margin-top:auto}.cost{margin-top:26px;font-size:.9375rem}.code-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-block:16px 8px;font-size:.875rem}.code-row>span{color:var(--muted)}.code-row strong{letter-spacing:.04em;user-select:all}.code-row button{color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:5px;min-height:44px;min-width:64px;padding:8px 12px}.code-row button:hover{border-color:var(--yellow)}.note{font-size:.8125rem;color:var(--muted);max-width:78ch}.note+.note{margin-top:6px}.note:empty{display:none}.footer{border-top:1px solid var(--line);padding-block:16px 28px;color:var(--muted);font-size:.8125rem}.footer summary{cursor:pointer;min-height:44px;align-content:center}.footer details p{max-width:90ch;margin:8px 0 14px}.footer-line{display:flex;justify-content:space-between;gap:16px;margin-top:18px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;padding:12px 18px;background:var(--ink);color:var(--bg);border-radius:6px;z-index:3;font-size:.875rem;pointer-events:none}.toast:empty{display:none}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header-inner{min-height:72px}.brand img{width:106px}.brand{gap:14px}.brand span{padding-left:14px}.hero{grid-template-columns:1fr;gap:30px;padding-block:36px 36px}h1{font-size:clamp(2rem,7.8vw,3rem);line-height:1.22}.eyebrow{margin-bottom:14px}.intro{margin-top:16px;max-width:none;font-size:1rem}.hero .button{margin-top:22px}.lesson,.start{padding-block:36px}.lesson-steps{grid-template-columns:1fr;gap:24px;margin-top:24px}.lesson-steps li{position:relative;padding-left:38px}.step-number{position:absolute;left:0;top:1px}.lesson-steps p{margin-top:6px}.start-options{grid-template-columns:1fr;gap:28px}.start-options>div+div{padding-top:26px;border-top:1px solid var(--line)}.start-options .button{width:100%;gap:12px}.start-options p{font-size:.9375rem}.footer-line{flex-wrap:wrap;gap:6px 16px}.film figcaption{font-size:.75rem}}
@media(max-width:760px){.hero-actions{align-items:flex-start;flex-direction:column;gap:12px;margin-top:22px}.hero-actions .button{margin-top:0}.text-link{min-height:44px;display:inline-flex;align-items:center}.lesson-link{margin-top:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.next{border-top:1px solid var(--line);padding-block:44px 52px;display:flex;align-items:center;justify-content:space-between;gap:40px}.next-copy{max-width:64ch}.next-copy h2{font-size:clamp(1.5rem,2.4vw,1.875rem);line-height:1.3;letter-spacing:-.02em}.next-copy p{color:var(--muted);margin-top:10px}.next .button{flex:none}
@media(max-width:760px){.next{flex-direction:column;align-items:stretch;gap:20px;padding-block:36px}.next .button{width:100%;gap:12px}}

[hidden]{display:none!important}.analytics-settings{min-height:44px;border:0;background:none;color:var(--muted);padding:8px 0;text-decoration:underline;text-underline-offset:4px}.analytics-choice{position:fixed;left:0;right:0;bottom:0;width:100%;z-index:5;padding:14px max(20px,calc((100% - 1120px)/2));background:rgba(27,27,32,.97);border-top:1px solid var(--line);box-shadow:0 -8px 28px #0005;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}.analytics-choice h2{font-size:.9375rem;line-height:1.4;white-space:nowrap}.analytics-choice p{font-size:.75rem;color:var(--muted);margin:0;max-width:64ch}.analytics-choice p a{white-space:nowrap}.analytics-choice>div{display:flex;gap:8px}.analytics-choice button{min-height:40px;padding:7px 13px;border:1px solid var(--muted);border-radius:5px;background:transparent;color:var(--ink);font-size:.8125rem;white-space:nowrap}.analytics-choice button:last-child{background:var(--yellow);border-color:var(--yellow);color:var(--bg)}.analytics-choice button:hover{border-color:var(--yellow)}
@media(max-width:760px){.analytics-choice{padding:12px 20px;grid-template-columns:1fr auto;gap:8px 14px}.analytics-choice h2{font-size:.875rem}.analytics-choice p{grid-column:1 / -1;grid-row:2;font-size:.75rem}.analytics-choice>div{grid-column:2;grid-row:1}.analytics-choice button{min-height:38px;padding:6px 10px}.analytics-choice h2{grid-column:1;grid-row:1}}
