:root{--paper:#FFFFFF;--surface:#FFFFFF;--tint:#F7F8FA;--ink:#101225;--ink-2:#4B4F68;--ink-3:#71758F;--line:#ECEEF3;--line-2:#DEE1E9;--shadow:0 1px 2px rgba(16,18,37,.04),0 24px 48px -30px rgba(16,18,37,.16);--piston:#5959FF;--piston-deep:#4141E8;--piston-soft:#E6E6FF;--piston-tint:#F4F4FF;--navy:#1B2335;--accent:#FFA41B;--accent-hover:#FFB443;--free:#12805C;--free-bg:#E2F3EB;--soon:#8F4E00;--soon-bg:#FFF0DA;--font-head:"Figtree",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--wrap:1200px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11";overflow-x:hidden}img,svg,canvas{display:block;max-width:100%}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--piston);outline-offset:3px;border-radius:6px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}h1,h2,h3,h4{margin:0;font-family:var(--font-head);font-weight:500;letter-spacing:-0.02em;line-height:1.2;text-wrap:balance}h1{font-size:clamp(2.75rem,5.6vw,72px);font-weight:400;line-height:1.14;letter-spacing:-0.03em;margin-bottom:26px}h2{font-size:clamp(2.25rem,4.2vw,56px);font-weight:400;line-height:1.14;letter-spacing:-0.025em;margin-bottom:26px}h3{font-size:1.3rem;font-weight:500;letter-spacing:-0.015em;line-height:1.3}p{margin:0}.lede{font-size:1.14rem;color:var(--ink-2);max-width:31em;line-height:1.6;text-wrap:pretty}.sec{padding:144px 0}.sec-head{max-width:680px;margin-bottom:64px}.sec-head p{margin-top:0;color:var(--ink-2);font-size:1.12rem;max-width:36em}.cv{content-visibility:auto;contain-intrinsic-size:auto 900px}.reveal .w{color:#C5C9D6;transition:color .35s ease}.reveal .w.on{color:inherit}.js .rv{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}.js .rv.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}.announce{position:relative;z-index:51;background:var(--navy);color:rgba(255,255,255,.82);font-size:.86rem;font-weight:500;text-align:center;padding:10px 16px;line-height:1.5}.announce b{display:inline-block;background:var(--accent);color:var(--navy);font-size:.7rem;font-weight:800;padding:2px 9px;border-radius:999px;margin-right:10px;vertical-align:1px}.announce a{color:#fff;font-weight:700;text-decoration:none;margin-left:10px;border-bottom:1px solid rgba(255,255,255,.45)}.announce a:hover{border-bottom-color:#fff}@media (max-width:640px){.announce{font-size:.78rem}.announce b{display:none}}h1 em,h2 em{font-family:"Instrument Serif",Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-0.005em;color:var(--piston);font-size:1.07em}.hero h1 em,.cta h2 em{color:#fff}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{box-shadow:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 24px;border-radius:999px;font:700 .96rem/1 var(--font);letter-spacing:-0.01em;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,transform .15s;white-space:nowrap}.btn-primary{background:var(--piston);color:#fff}.btn-primary:hover{background:var(--piston-deep)}.btn-ghost{background:#fff;border-color:var(--line-2);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn-s{height:40px;padding:0 18px;font-size:.9rem}.tag{white-space:nowrap;display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.01em;line-height:1;flex:none}.tag-free{background:var(--free-bg);color:var(--free)}.tag-pro{background:var(--piston-soft);color:var(--piston-deep)}.tag-soon{background:var(--soon-bg);color:var(--soon)}.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s}.nav.scrolled{border-bottom-color:var(--line)}.nav.on-hero{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}.nav.on-hero .logo{color:#fff}.nav.on-hero .nav-links a{color:rgba(255,255,255,.84)}.nav.on-hero .nav-links a:hover{color:#fff}.nav.on-hero .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);box-shadow:none}.nav.on-hero .btn-ghost:hover{border-color:#fff}.nav.on-hero .btn-primary{background:#fff;color:var(--navy);box-shadow:none}.nav.on-hero .btn-primary:hover{background:var(--piston-soft)}.nav.on-hero .menu-btn{background:transparent;border-color:rgba(255,255,255,.5);color:#fff}.menu-btn{color:var(--ink)}.nav-in{display:flex;align-items:center;height:72px;gap:44px}.logo{flex:none;display:flex;align-items:center;font-family:var(--font);font-weight:800;font-size:1.42rem;letter-spacing:.015em;line-height:1;text-decoration:none;color:var(--piston);transition:color .25s}.logo svg{flex:none;max-width:none}.logo{gap:10px;--lm-bg:var(--piston);--lm-fg:#fff}.nav.on-hero .logo{--lm-bg:#fff;--lm-fg:var(--piston)}.lm-bg{fill:var(--lm-bg);transition:fill .25s}.lm-fg{fill:var(--lm-fg);transition:fill .25s}.lm-cut{fill:var(--lm-bg);transition:fill .25s}.lm-head,.lm-rod-move{animation:lm-stroke 1.1s infinite}.lm-rod{transform-origin:32px 21.5px;animation:lm-swing 1.1s infinite}@keyframes lm-stroke{0%{transform:translateY(0);animation-timing-function:ease-in-out}50%{transform:translateY(7px);animation-timing-function:ease-in-out}100%{transform:translateY(0)}}@keyframes lm-swing{0%{transform:rotate(0);animation-timing-function:ease-out}25%{transform:rotate(11deg);animation-timing-function:ease-in}50%{transform:rotate(0);animation-timing-function:ease-out}75%{transform:rotate(-11deg);animation-timing-function:ease-in}100%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.lm-head,.lm-rod-move,.lm-rod{animation:none}}@media (max-width:480px){.logo{font-size:1.15rem;gap:8px}.logo-mark{width:26px;height:26px}.nav-cta{gap:8px}.nav-cta .btn-primary{padding:0 14px;font-size:.85rem}}.nav-links{display:flex;gap:30px;list-style:none;margin:0;padding:0}.nav-links a{text-decoration:none;color:var(--ink-2);font-weight:600;font-size:.93rem;transition:color .2s}.nav-links a:hover{color:var(--ink)}.nav-cta{margin-left:auto;display:flex;gap:10px;align-items:center}.menu-btn{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);align-items:center;justify-content:center;cursor:pointer}@media (max-width:920px){.nav-links{display:none}.nav-links.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;gap:4px;background:var(--paper);padding:12px 24px 24px;border-bottom:1px solid var(--line)}.nav-links.open a{display:block;padding:10px 0;font-size:1.05rem;color:var(--ink)!important}.menu-btn{display:inline-flex}.nav-in{gap:16px}.nav-cta .btn-ghost{display:none}}.foot{padding:72px 0 40px}.foot-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:40px}.foot-grid p{margin-top:14px;color:var(--ink-2);font-size:.95rem;max-width:24em}.foot h4{margin:0 0 14px;font-size:.92rem;color:var(--ink-3);font-weight:600}.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.foot ul a{text-decoration:none;color:var(--ink-2);font-size:.95rem}.foot ul a:hover{color:var(--ink)}.foot-bottom{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--ink-3);font-size:.88rem}@media (max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid > div:first-child{grid-column:span 2}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.nav.menu-open{background:#fff;border-bottom-color:var(--line)}.skip-link:focus{position:fixed;left:16px;top:16px;width:auto;height:auto;clip:auto;z-index:100;background:#fff;color:var(--ink);padding:10px 16px;border-radius:10px;box-shadow:var(--shadow)}.admin-bar .nav{top:32px}@media (max-width:782px){.admin-bar .nav{top:46px}}@media (max-width:600px){.admin-bar .nav{top:0}}.nav-links .current-menu-item > a,.nav-links .current_page_item > a{color:var(--ink)}.nav.on-hero .nav-links .current-menu-item > a,.nav.on-hero .nav-links .current_page_item > a{color:#fff}.custom-logo-link{display:flex;align-items:center}.custom-logo{height:32px;width:auto}.page-wrap{padding:96px 0 120px}.page-head{max-width:760px;margin-bottom:48px}.page-head .meta{color:var(--ink-3);font-size:.92rem;margin-top:-10px}.entry{max-width:760px;font-size:1.05rem;color:var(--ink-2)}.entry > * + *{margin-top:1.1em}.entry h2{font-size:2rem;margin:1.6em 0 .4em;color:var(--ink)}.entry h3{margin:1.4em 0 .3em;color:var(--ink)}.entry a{color:var(--piston)}.entry img{height:auto;border-radius:16px}.entry ul,.entry ol{padding-left:1.3em}.entry blockquote{margin:1.6em 0;padding:4px 0 4px 20px;border-left:3px solid var(--piston);color:var(--ink)}.entry pre{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:16px;overflow:auto}.post-list{display:grid;gap:12px;max-width:760px}.post-card{display:block;padding:24px;border:1px solid var(--line);border-radius:18px;text-decoration:none;transition:border-color .2s}.post-card:hover{border-color:var(--piston)}.post-card h2{font-size:1.5rem;margin:0 0 8px}.post-card p{color:var(--ink-2)}.pagination{margin-top:40px;display:flex;gap:8px}.pagination .page-numbers{display:inline-grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:600}.pagination .current{background:var(--piston);border-color:var(--piston);color:#fff}