:root{--step:1;--font-base:calc(1.25rem * var(--step));--canvas:#f1f2f8;--surface:#fff;--ink:#16161f;--ink-soft:#64647a;--paper:var(--canvas);--card:var(--surface);--line:#e2e3ee;--primary:#4954f5;--primary-bright:#6c76ff;--primary-ink:#fff;--primary-soft:#e7e8ff;--accent:#4954f5;--accent-bright:#6c76ff;--accent-ink:#fff;--brand:#4954f5;--brand-ink:#fff;--brand-soft:#e7e8ff;--yellow:#ffc94a;--yellow-ink:#6b4a00;--lilac:#a78bfa;--lilac-ink:var(--ink);--coral:#ff7a86;--coral-ink:var(--ink);--blush:#ffe3e6;--ok:#146c3e;--ok-soft:#dcf7e7;--warn:#8a5800;--warn-soft:#fff1d6;--font:"Rubik", "Assistant", "Heebo", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--footer-bg:#16161f;--footer-ink:#f1f2f8;--footer-soft:#a5a5ba;--focus:4px solid #4954f5;--tap:3.25rem;--measure:36rem;--radius:1.5rem;--radius-sm:1rem;--shadow:0 14px 30px -10px #16161f29;--shadow-sm:0 6px 16px -6px #16161f24;--dot-grid:radial-gradient(currentColor 1.5px, transparent 1.5px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--canvas:#14141c;--surface:#1e1e29;--line:#34343f;--ink:#f1f2f8;--ink-soft:#b6b6c8;--paper:var(--canvas);--card:var(--surface);--primary:#8a92ff;--primary-bright:#a4abff;--primary-ink:#14141c;--primary-soft:#2a2a45;--accent:#8a92ff;--accent-bright:#a4abff;--accent-ink:#14141c;--brand:#8a92ff;--brand-ink:#14141c;--brand-soft:#2a2a45;--yellow:#6b4a00;--yellow-ink:#ffd88a;--lilac:#3a2f6b;--lilac-ink:#d9ceff;--coral:#5c2530;--coral-ink:#ffd0d6;--blush:#2a1c1f;--ok:#7fe0ab;--ok-soft:#16301f;--warn:#ffce8f;--warn-soft:#3a2c14;--footer-bg:#0b0b11;--footer-ink:#f1f2f8;--footer-soft:#9a9ab0;--focus:4px solid #8a92ff;--shadow:0 14px 30px -10px #00000080;--shadow-sm:0 6px 16px -6px #00000073}}:root[data-theme=dark]{--canvas:#14141c;--surface:#1e1e29;--line:#34343f;--ink:#f1f2f8;--ink-soft:#b6b6c8;--paper:var(--canvas);--card:var(--surface);--primary:#8a92ff;--primary-bright:#a4abff;--primary-ink:#14141c;--primary-soft:#2a2a45;--accent:#8a92ff;--accent-bright:#a4abff;--accent-ink:#14141c;--brand:#8a92ff;--brand-ink:#14141c;--brand-soft:#2a2a45;--yellow:#6b4a00;--yellow-ink:#ffd88a;--lilac:#3a2f6b;--lilac-ink:#d9ceff;--coral:#5c2530;--coral-ink:#ffd0d6;--blush:#2a1c1f;--ok:#7fe0ab;--ok-soft:#16301f;--warn:#ffce8f;--warn-soft:#3a2c14;--footer-bg:#0b0b11;--footer-ink:#f1f2f8;--footer-soft:#9a9ab0;--focus:4px solid #8a92ff;--shadow:0 14px 30px -10px #00000080;--shadow-sm:0 6px 16px -6px #00000073}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--font-base);text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.75}h1,h2,h3{font-family:var(--font);letter-spacing:-.02em;margin:0 0 .4em;font-weight:800;line-height:1.15}h1{font-size:calc(clamp(2.1rem, 5vw, 3.1rem) * var(--step))}h2{font-size:calc(1.9rem * var(--step));margin-top:1.4em}h3{font-size:calc(1.3rem * var(--step));margin-top:1.2em}p,li{max-width:var(--measure)}p{margin:0 0 1em}code,kbd,samp,pre{font-family:var(--font);font-size:inherit}a{color:var(--primary);text-underline-offset:.25em;text-decoration-thickness:2px}a:hover{text-decoration-thickness:3px}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus);outline-offset:3px}.wrap{width:min(100% - 2rem,72rem);margin-inline:auto}.skip{top:0;clip-path:inset(50%);white-space:nowrap;background:var(--footer-bg);width:1px;height:1px;color:var(--footer-ink);z-index:100;padding:0;font-weight:700;text-decoration:none;position:absolute;inset-inline-start:0;overflow:hidden}.skip:focus{clip-path:none;width:auto;height:auto;padding:1rem 1.5rem;overflow:visible}.topbar{background:var(--footer-bg);color:var(--footer-ink);font-size:calc(1rem * var(--step));padding:.45rem 0}.topbar .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.a11y-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.a11y-controls span{font-weight:700}.a11y-btn{font-size:inherit;min-width:var(--tap);min-height:var(--tap);color:var(--footer-ink);font-family:var(--font);cursor:pointer;background:0 0;border:2px solid;border-radius:999px;justify-content:center;align-items:center;padding:0 .9rem;font-weight:800;display:inline-flex}.a11y-btn[aria-pressed=true]{background:var(--footer-ink);color:var(--footer-bg)}.a11y-btn:hover{background:#fff3}.a11y-btn[aria-pressed=true]:hover{background:var(--footer-ink)}header.site{background:var(--paper);padding:1.5rem 0 1rem}header.site .wrap{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.brand{color:var(--ink);align-items:center;gap:.7rem;text-decoration:none;display:flex}.brand b{font-family:var(--font);font-size:calc(1.9rem * var(--step));letter-spacing:-.02em;font-weight:800}.brand small{color:var(--ink-soft);font-size:calc(1rem * var(--step));font-weight:400;font-family:var(--font);display:block}nav.main{padding:0 0 1rem}nav.main .wrap{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:.4rem}nav.main ul{flex-wrap:wrap;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}nav.main li{flex:auto;position:relative}nav.main a{min-height:var(--tap);border-radius:calc(var(--radius) - .4rem);color:var(--ink);font-weight:700;font-size:calc(1.02rem * var(--step));white-space:nowrap;justify-content:center;align-items:center;gap:.4rem;padding:0 1rem;text-decoration:none;display:flex}nav.main a:hover{background:var(--primary-soft)}nav.main a[aria-current=page]{background:var(--primary);color:var(--primary-ink);font-weight:800}@media (width>=75rem){nav.main{inset-inline-end:1.25rem;z-index:40;padding:0;position:fixed;top:50%;transform:translateY(-50%)}nav.main .wrap{width:auto;padding:.6rem .4rem}nav.main ul{flex-direction:column;gap:.6rem}nav.main li{flex:none}nav.main a{width:4.6rem;height:auto;min-height:var(--tap);border-radius:1.1rem;flex-direction:column;gap:.3rem;padding:.5rem .3rem}nav.main .nav-icon{background:var(--canvas);border-radius:999px;place-items:center;width:2.6rem;height:2.6rem;font-size:1.3rem;display:grid}nav.main a[aria-current=page] .nav-icon{background:var(--primary);color:var(--primary-ink)}nav.main .nav-label{text-align:center;font-size:.74rem;font-weight:800;line-height:1.15}}.promo{background:var(--yellow);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-block:1.5rem;padding:2rem}.promo__inner{grid-template-columns:1.1fr .9fr;align-items:center;gap:1.75rem;display:grid}@media (width<=52rem){.promo__inner{grid-template-columns:1fr}}.promo__eyebrow{color:var(--yellow-ink,var(--ink));font-weight:800;font-size:calc(1rem * var(--step));letter-spacing:.01em;margin:0 0 .4rem}.promo__title{font-size:calc(1.85rem * var(--step));color:var(--ink);margin:0 0 .5rem;line-height:1.2}.promo__body{color:var(--ink);max-width:44ch;font-size:calc(1.05rem * var(--step));margin:0 0 1.25rem}.promo__cta{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.promo__cta:hover{background:var(--primary-bright);border-color:var(--primary-bright)}.promo__art{display:block}.promo__art img{border-radius:var(--radius-sm);width:100%;height:auto;box-shadow:var(--shadow-sm);display:block}@media print{.promo{display:none}}.band{padding:3.5rem 0}.band--cream{background:var(--surface)}.band--yellow{background:color-mix(in srgb, var(--yellow) 35%, var(--canvas))}.band--lilac{background:color-mix(in srgb, var(--lilac) 22%, var(--canvas))}.band--blush{background:color-mix(in srgb, var(--coral) 16%, var(--canvas))}.band--paper{background:var(--paper)}.band>.wrap>h2:first-child{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1.75rem;margin:0;padding:0;list-style:none;display:grid}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;transition:box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden}.card__img{aspect-ratio:16/9;object-fit:cover;background:var(--blush);width:100%;height:auto;display:block}.card__body{flex-direction:column;gap:.6rem;padding:1.15rem 1.3rem;display:flex}.card h3{font-size:calc(1.3rem * var(--step));margin:0;line-height:1.3}.card h3 a{color:var(--ink);text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card:has(a:focus-visible){outline:var(--focus);outline-offset:3px;border-radius:var(--radius)}.card h3 a:focus-visible{outline:none}.card:hover h3 a{text-decoration:underline 3px}.card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.card p{color:var(--ink-soft);max-width:none;font-size:calc(1.05rem * var(--step));margin:0}.card .eyebrow{background:var(--chip,var(--primary-soft));color:var(--ink);letter-spacing:0;border:0;border-radius:999px;align-self:flex-start;margin:0;padding:.2rem .8rem}.meta{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tag{background:var(--canvas);color:var(--ink);font-size:calc(1rem * var(--step));border:0;border-radius:999px;align-items:center;gap:.3rem;padding:.25rem .8rem;font-weight:700;display:inline-flex}.tag.free{background:var(--ok-soft);color:var(--ok)}.tag.warn{background:var(--warn-soft);color:var(--warn)}.btn{min-height:var(--tap);background:var(--primary);color:var(--primary-ink);font-family:var(--font);font-size:inherit;cursor:pointer;box-shadow:var(--shadow-sm);border:0;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:0 1.85rem;font-weight:800;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--primary-bright);box-shadow:var(--shadow);transform:translateY(-2px)}.btn.secondary{background:var(--card);color:var(--ink);box-shadow:none;border:2px solid var(--line)}.btn.secondary:hover{background:var(--primary-soft);border-color:var(--primary-soft);transform:translateY(-2px)}.btn.big{min-height:4rem;font-size:calc(1.15rem * var(--step));padding:0 2.25rem}.steps{counter-reset:step-n;gap:1.25rem;max-width:48rem;margin:2.5rem 0 0;padding:0;list-style:none;display:grid}.steps li{background:var(--card);border-radius:var(--radius);max-width:none;box-shadow:var(--shadow-sm);font-size:calc(1.05rem * var(--step));grid-template-columns:auto 1fr;align-items:center;gap:1rem;padding:1.15rem 1.3rem;line-height:1.5;display:grid;position:relative}.steps b{width:2.9rem;height:2.9rem;color:var(--primary-ink);font-size:calc(1.3rem * var(--step));border:0;border-radius:999px;place-items:center;font-weight:800;display:grid}.steps li:first-child b{background:var(--yellow);color:var(--yellow-ink,var(--ink))}.steps li:nth-child(2) b{background:var(--primary)}.steps li:nth-child(3) b{background:var(--lilac);color:var(--lilac-ink,#fff)}.steps strong{font-weight:800}@media (width>=56rem){.steps{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:none}.steps li:before{content:"";background:var(--line);z-index:-1;height:3px;position:absolute;top:-.85rem;left:-50%;right:50%}.steps li:first-child:before{display:none}}.hero{background:var(--paper);padding:3rem 0 4rem}.hero h1{max-width:24ch}.hero h1 .indent{padding-inline-start:2.5em;display:block}.hero .lead{font-size:calc(1.15rem * var(--step));color:var(--ink-soft);max-width:46ch}.hero .btn-row{flex-wrap:wrap;gap:1rem;margin-top:1.75rem;display:flex}.hero-home{background-image:var(--dot-grid);color:color-mix(in srgb, var(--ink) 10%, transparent);background-size:22px 22px;position:relative;overflow:hidden}.hero-home .wrap{z-index:1;color:var(--ink);position:relative}.hero-home__sticker{z-index:0;background:var(--card);box-shadow:var(--shadow-sm);border-radius:999px;place-items:center;width:3.1rem;height:3.1rem;font-size:1.4rem;display:grid;position:absolute}.hero-home__sticker--1{top:4%;inset-inline-start:4%;transform:rotate(-8deg)}.hero-home__sticker--2{top:10%;inset-inline-end:8%;transform:rotate(10deg)}.hero-home__sticker--3{top:42%;inset-inline-start:2%;transform:rotate(6deg)}.hero-home__sticker--4{top:46%;inset-inline-end:3%;transform:rotate(-10deg)}.hero-home__sticker--5{top:78%;inset-inline-start:10%;transform:rotate(-6deg)}.hero-home__sticker--6{top:80%;inset-inline-end:12%;transform:rotate(8deg)}@media (width<=46rem){.hero-home__sticker{display:none}}.hero-home__center{text-align:center;padding-block:1.5rem}.hero-home__eyebrow{background:var(--card);box-shadow:var(--shadow-sm);font-weight:800;font-size:calc(1rem * var(--step));border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.75rem;padding:.5rem 1.1rem;display:inline-flex}.hero-home__scene{margin-bottom:1.75rem}.hero-home__mascot{background:var(--card);width:7rem;height:7rem;box-shadow:var(--shadow);border-radius:999px;place-items:center;margin-inline:auto;font-size:3.6rem;display:grid}.hero-home h1{max-width:none;margin-inline:auto}.hero-home__lead{margin-inline:auto}.hero-home__ctas{justify-content:center}@media (width>=56rem){.hero-home__mascot{width:11rem;height:11rem;font-size:5.6rem}}.milestone{padding:0 0 3rem}.milestone__card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:2rem}.milestone__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.milestone__head h2{font-size:calc(1.5rem * var(--step));margin:0}.milestone__link{color:var(--primary);white-space:nowrap;font-weight:800;text-decoration:none}.milestone__link:hover{text-decoration:underline}.milestone__card .steps{margin-top:0}.feature{grid-template-columns:1.6fr 1fr;align-items:start;gap:2rem;margin-top:2.5rem;display:grid}.feature .side{gap:2rem;display:grid}@media (width<=56rem){.feature{grid-template-columns:1fr}}.eyebrow{font-family:var(--font);text-transform:none;letter-spacing:.02em;font-weight:800;font-size:calc(1rem * var(--step));color:var(--primary);margin:0 0 .5rem}.prose{font-size:calc(1.1rem * var(--step))}.prose h2{font-size:calc(1.8rem * var(--step))}.prose img{max-width:100%;height:auto}.prose ol,.prose ul{padding-inline-start:1.5em}.prose li{margin-bottom:.6em}.prose ol{counter-reset:step;padding-inline-start:0;list-style:none}.prose ol>li{counter-increment:step;margin-bottom:1.1em;padding-inline-start:3.4rem;position:relative}.prose ol>li:before{content:counter(step);inset-inline-start:0;background:var(--primary);width:2.5rem;height:2.5rem;color:var(--primary-ink);font-family:var(--font);font-weight:800;font-size:calc(1.1rem * var(--step));border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-.05em}.prose blockquote{background:var(--primary-soft);border-radius:var(--radius-sm);color:var(--ink);border:0;margin:1.75em 0;padding:1.25rem 1.5rem}.prose blockquote p:last-child{margin-bottom:0}.prose code{background:var(--canvas);unicode-bidi:plaintext;border-radius:.35em;padding:.1em .4em}.prose pre{background:var(--canvas);border-radius:var(--radius-sm);padding:1rem;overflow-x:auto}.prose table{border-collapse:collapse;width:100%}.prose :is(th,td){border-bottom:2px solid var(--line);text-align:start;padding:.6rem .8rem}.promptbox{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin:2rem 0;overflow:hidden}.promptbox header{background:var(--primary);color:var(--primary-ink);font-weight:800;font-size:calc(1.05rem * var(--step));padding:.8rem 1.35rem}.promptbox pre{white-space:pre-wrap;word-break:break-word;font-family:var(--font);font-size:calc(1.1rem * var(--step));background:var(--card);color:var(--ink);text-align:start;unicode-bidi:plaintext;border:0;margin:0;padding:1.35rem;line-height:1.7}.promptbox footer{border-top:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;padding:1.1rem 1.35rem;display:flex}.prose .copybox{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);max-width:none;margin:1.75rem 0 2.25rem;padding:1.25rem 1.35rem;display:block}.prose .copybox>code{font-size:calc(1.1rem * var(--step));white-space:pre-wrap;word-break:break-word;text-align:start;unicode-bidi:plaintext;background:0 0;border:0;padding:0;line-height:1.75;display:block}.copybox__foot{border-top:2px solid var(--line);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.1rem;padding-top:1.1rem;display:flex}.copybox__btn{font-size:calc(1.05rem * var(--step))}.copy-status{color:var(--ok);font-weight:800;font-size:calc(1rem * var(--step))}.copy-status:empty{display:none}.prose .gallery{gap:1.5rem 1.25rem;margin:2rem 0 2.5rem;display:grid}.prose .gallery--2{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}.prose .gallery--3{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.prose .gallery img{border-radius:var(--radius-sm);width:100%;height:auto;box-shadow:var(--shadow-sm);background:var(--card);display:block}.prose img.example,.prose>p>img:only-child,.prose>img{border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card);margin:1.75rem 0 2rem}@media print{.prose .gallery{grid-template-columns:repeat(2,1fr)}.prose .gallery img,.prose>p>img:only-child{box-shadow:none}}.note{border-radius:var(--radius-sm);background:var(--primary-soft);margin:2rem 0;padding:1.25rem 1.5rem}.note.warn{background:var(--warn-soft)}.note :is(p,ul,ol):last-child{margin-bottom:0}.note strong{font-family:var(--font);font-size:calc(1.1rem * var(--step));font-weight:800}.crumbs{font-weight:700;font-size:calc(1rem * var(--step));margin-bottom:1.25rem}.crumbs a{color:var(--ink)}.crumbs .sep{color:var(--ink-soft);padding-inline:.5rem}footer.site{background:var(--footer-bg);color:var(--footer-ink);margin-top:0;padding:3.5rem 0 2.5rem}footer.site h2{font-family:var(--font);color:var(--footer-ink);margin-top:0}footer.site p{color:var(--footer-soft)}footer.site a{color:var(--footer-ink)}footer.site ul{flex-wrap:wrap;gap:1.5rem;padding:0;list-style:none;display:flex}@media print{.topbar,nav.main,footer.site,.btn,.no-print,.copybox__foot,.copy-status,.hero-home__sticker{display:none!important}body{color:#000;background:#fff;font-size:12pt}.prose{font-size:12pt}a:after{content:" (" attr(href) ")";color:#444;font-size:10pt}.promptbox,.prose .copybox{box-shadow:none;border:1px solid #000}}@media (width<=46rem){.topbar{padding:.35rem 0}.topbar .wrap{flex-wrap:nowrap;gap:.4rem}.a11y-controls{gap:.35rem}.a11y-btn{padding:0 .5rem}.a11y-label__long{display:none}header.site{padding:.9rem 0 .75rem}header.site .wrap{gap:.85rem}.brand{gap:.5rem}.brand b{font-size:calc(1.55rem * var(--step))}.brand small{display:none}.brand>span[aria-hidden]{font-size:1.7em!important}nav.main ul{grid-template-columns:repeat(2,1fr);display:grid}nav.main a{font-size:calc(.98rem * var(--step));padding:0 .8rem}.hero{padding:1.75rem 0 2.5rem}.hero h1 .indent{padding-inline-start:0}.btn-row{gap:.75rem;display:grid}.btn-row .btn{width:100%}.steps li{gap:.75rem;padding:.85rem .9rem}}
