.logo[data-astro-cid-f7espo7c]{align-items:center;gap:9px;display:inline-flex}.logo__word[data-astro-cid-f7espo7c]{letter-spacing:-.03em;color:var(--ink);font-size:1.28rem;font-weight:700}.logo__word[data-astro-cid-f7espo7c] b[data-astro-cid-f7espo7c]{color:var(--accent-text);font-weight:700}.hdr[data-astro-cid-nen7h5rs]{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}.hdr[data-astro-cid-nen7h5rs][data-scrolled],.menu-open .hdr[data-astro-cid-nen7h5rs]{border-bottom-color:var(--line)}.hdr__in[data-astro-cid-nen7h5rs]{height:var(--header-h);align-items:center;gap:24px;display:flex}.hdr__logo[data-astro-cid-nen7h5rs]{border-radius:8px;flex:none;text-decoration:none}.hdr__nav[data-astro-cid-nen7h5rs]{margin-inline:auto}.hdr__nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:2px;margin:0;display:flex}.hdr__nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs],.hdr__login[data-astro-cid-nen7h5rs]{min-height:44px;color:var(--ink-2);border-radius:10px;align-items:center;padding:0 12px;font-size:.97rem;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}.hdr__nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.hdr__login[data-astro-cid-nen7h5rs]:hover{color:var(--ink);background:var(--bg-2)}.hdr__nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--ink);font-weight:600}.hdr__tools[data-astro-cid-nen7h5rs]{align-items:center;gap:6px;margin-left:auto;display:flex}.hdr__nav[data-astro-cid-nen7h5rs]+.hdr__tools[data-astro-cid-nen7h5rs]{margin-left:0}.hdr__lang[data-astro-cid-nen7h5rs]{min-height:44px;font-family:var(--font-mono);color:var(--ink-3);border-radius:10px;align-items:center;gap:4px;padding:0 10px;font-size:.8rem;text-decoration:none;display:inline-flex}.hdr__lang[data-astro-cid-nen7h5rs] .on[data-astro-cid-nen7h5rs]{color:var(--ink);font-weight:500}.hdr__lang[data-astro-cid-nen7h5rs]:hover{background:var(--bg-2)}.icon-btn[data-astro-cid-nen7h5rs]{width:44px;height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:inline-grid}.icon-btn[data-astro-cid-nen7h5rs]:hover{background:var(--bg-2);color:var(--ink)}.icon-btn[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{width:20px;height:20px}.i-sun[data-astro-cid-nen7h5rs]{display:none}:root[data-theme=dark] .i-sun[data-astro-cid-nen7h5rs]{display:block}:root[data-theme=dark] .i-moon[data-astro-cid-nen7h5rs]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun[data-astro-cid-nen7h5rs]{display:block}:root:not([data-theme=light]) .i-moon[data-astro-cid-nen7h5rs]{display:none}}.hdr__burger[data-astro-cid-nen7h5rs]{display:none}.hdr__cta[data-astro-cid-nen7h5rs]{margin-left:6px}.mnav[data-astro-cid-nen7h5rs]{border-top:1px solid var(--line);background:var(--bg);max-height:calc(100dvh - var(--header-h));overflow-y:auto}.mnav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{margin:0;padding:8px 0}.mnav[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);align-items:center;min-height:52px;font-size:1.15rem;font-weight:550;text-decoration:none;display:flex}.mnav[data-astro-cid-nen7h5rs] li[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--accent-text)}.mnav__foot[data-astro-cid-nen7h5rs]{gap:10px;padding:16px 0 24px;display:grid}@media (width<=1079px){.hdr__nav[data-astro-cid-nen7h5rs]{display:none}.hdr__burger[data-astro-cid-nen7h5rs]{display:inline-grid}}@media (width>=1080px){.mnav[data-astro-cid-nen7h5rs]{display:none}}@media (width<=640px){.hdr__login[data-astro-cid-nen7h5rs],.hdr__lang[data-astro-cid-nen7h5rs]{display:none}.hdr__in[data-astro-cid-nen7h5rs]{gap:12px}}.mnav__theme[data-astro-cid-nen7h5rs]{display:none}@media (width<=480px){.hdr__tools[data-astro-cid-nen7h5rs]>[data-astro-cid-nen7h5rs][data-theme-toggle]{display:none}.mnav__theme[data-astro-cid-nen7h5rs]{display:inline-flex}.hdr__cta[data-astro-cid-nen7h5rs]{margin-left:0;padding:0 12px;font-size:.92rem}}.ftr[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);margin-top:clamp(72px,10vw,120px);padding-top:clamp(48px,7vw,80px);overflow:hidden}.ftr__top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,1fr);gap:48px;display:grid}@media (width>=900px){.ftr__top[data-astro-cid-jo6i4kqk]{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.ftr__brand[data-astro-cid-jo6i4kqk]{align-content:start;gap:18px;max-width:440px;display:grid}.ftr__brand[data-astro-cid-jo6i4kqk]>p[data-astro-cid-jo6i4kqk]{color:var(--ink-2)}.ftr__co[data-astro-cid-jo6i4kqk]{gap:6px;padding:18px 20px;display:grid}.ftr__co[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{font-weight:600}.ftr__cols[data-astro-cid-jo6i4kqk]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:32px;display:grid}.ftr__cols[data-astro-cid-jo6i4kqk] h2[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);letter-spacing:.01em;color:var(--ink-3);margin-bottom:14px;font-size:.8rem;font-weight:500}.ftr__cols[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:2px;margin:0;display:grid}.ftr__cols[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.ftr__btn[data-astro-cid-jo6i4kqk]{min-height:36px;color:var(--ink-2);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;padding:0;font-size:.97rem;text-decoration:none;display:inline-flex}.ftr__cols[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.ftr__btn[data-astro-cid-jo6i4kqk]:hover{color:var(--ink);text-decoration:underline}.ftr__bottom[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:56px;padding-top:20px;font-size:.86rem;display:flex}.ftr__giant[data-astro-cid-jo6i4kqk]{text-align:center;user-select:none;letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1px var(--line-2);margin:24px 0 -.22em;font-size:clamp(5rem,22vw,20rem);font-weight:750;line-height:.8}.ftr__giant[data-astro-cid-jo6i4kqk] span[data-astro-cid-jo6i4kqk]{-webkit-text-stroke:0;color:var(--green);opacity:.85}.cc[data-astro-cid-kror3uvh]{z-index:60;width:min(100% - 32px,620px);box-shadow:var(--shadow);gap:10px;padding:20px 22px;display:grid;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.cc[data-astro-cid-kror3uvh] h2[data-astro-cid-kror3uvh]{font-size:1.2rem;line-height:1.25}.cc__body[data-astro-cid-kror3uvh]{color:var(--ink-2);font-size:.95rem}.cc__body[data-astro-cid-kror3uvh] a[data-astro-cid-kror3uvh]{color:var(--accent-text)}.cc__prefs[data-astro-cid-kror3uvh]{border:0;gap:10px;margin:4px 0;padding:0;display:grid}.cc__prefs[data-astro-cid-kror3uvh] label[data-astro-cid-kror3uvh]{color:var(--ink-2);align-items:flex-start;gap:10px;font-size:.93rem;display:flex}.cc__prefs[data-astro-cid-kror3uvh] input[data-astro-cid-kror3uvh]{width:20px;height:20px;accent-color:var(--teal);flex:none;margin-top:2px}.cc__prefs[data-astro-cid-kror3uvh] b[data-astro-cid-kror3uvh]{color:var(--ink);margin-right:4px}.cc__actions[data-astro-cid-kror3uvh]{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@media (width<=480px){.cc__actions[data-astro-cid-kror3uvh] .btn[data-astro-cid-kror3uvh]{flex:40%}}:root{--bg:#f6f5f1;--bg-2:#efede6;--surface:#fff;--ink:#0f1a17;--ink-2:#3f4b46;--ink-3:#5a6661;--line:#dedbd2;--line-2:#cfcbc0;--green:#25d366;--green-ink:#06301a;--teal:#128c7e;--accent-text:#0b6a5f;--read:#2f9fd8;--dot:#0f1a1721;--glow:#25d3662e;--shadow:0 1px 0 #0f1a170a, 0 18px 40px -24px #0f1a1747;--band:#08362f;--band-ink:#e9f6f1;--r-sm:8px;--r-md:14px;--r-lg:22px;--bubble:var(--r-lg) var(--r-lg) var(--r-lg) 6px;--wrap:1200px;--gutter:clamp(16px, 4vw, 32px);--header-h:68px;--ease:cubic-bezier(.22, 1, .36, 1);color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a1210;--bg-2:#0f1916;--surface:#121d1a;--ink:#e9f1ed;--ink-2:#b3c2bb;--ink-3:#8d9c95;--line:#22312c;--line-2:#2d3f39;--accent-text:#3ddc84;--read:#53bdeb;--dot:#e9f1ed1a;--glow:#25d3661f;--shadow:0 1px 0 #0000004d, 0 24px 48px -28px #000c;--band:#0d2e28;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a1210;--bg-2:#0f1916;--surface:#121d1a;--ink:#e9f1ed;--ink-2:#b3c2bb;--ink-3:#8d9c95;--line:#22312c;--line-2:#2d3f39;--accent-text:#3ddc84;--read:#53bdeb;--dot:#e9f1ed1a;--glow:#25d3661f;--shadow:0 1px 0 #0000004d, 0 24px 48px -28px #000c;--band:#0d2e28;color-scheme:dark}.shot--dark{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .shot--light{display:none}:root:not([data-theme=light]) .shot--dark{display:block}}:root[data-theme=dark] .shot--light{display:none}:root[data-theme=dark] .shot--dark{display:block}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}img,svg,video{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}p,h1,h2,h3,h4,ul,ol,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}::selection{background:var(--green);color:var(--green-ink)}h1,h2,h3{letter-spacing:-.025em;text-wrap:balance;font-weight:650;line-height:1.04}h1{letter-spacing:-.035em;font-size:clamp(2.6rem,6.4vw,5.2rem)}h2{font-size:clamp(2rem,4.2vw,3.3rem)}h3{letter-spacing:-.012em;font-size:1.2rem;line-height:1.25}h1 em,h2 em,h3 em{font-family:var(--font-serif);letter-spacing:-.01em;color:var(--accent-text);font-style:italic;font-weight:400}p{text-wrap:pretty}.wrap{width:min(100% - 2 * var(--gutter), var(--wrap));margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--ink);color:var(--bg);border-radius:var(--r-sm);padding:10px 14px;position:absolute;top:-60px;left:16px}.skip:focus{top:12px}.lede{color:var(--ink-2);max-width:60ch;font-size:clamp(1.1rem,1.6vw,1.3rem)}.muted{color:var(--ink-3)}.small{font-size:.9rem}.label{font-family:var(--font-mono);letter-spacing:.01em;color:var(--ink-3);align-items:center;gap:.6em;font-size:.82rem;display:inline-flex}.label__num{color:var(--ink);font-weight:500}.label .ticks{width:18px;height:12px;color:var(--ink-3);transition:color .5s var(--ease) .4s}.is-read .ticks,.label.is-read .ticks{color:var(--read)}.btn{white-space:nowrap;cursor:pointer;min-height:48px;transition:transform .15s var(--ease), background-color .2s, border-color .2s, box-shadow .2s;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:.5em;padding:0 1.25rem;font-size:1rem;font-weight:650;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:translateY(1px)scale(.99)}.btn--primary{background:var(--green);color:var(--green-ink);box-shadow:inset 0 -2px #06301a2e}.btn--primary:hover{background:#1fc25c}.btn--ghost{border-color:var(--line-2);background:var(--surface);color:var(--ink)}.btn--ghost:hover{border-color:var(--ink-3)}.btn--sm{min-height:44px;padding:0 1rem;font-size:.95rem}.link-arrow{color:var(--accent-text);align-items:center;gap:.4em;font-weight:600;text-decoration:none;display:inline-flex}.link-arrow:after{content:"→";transition:transform .2s var(--ease)}.link-arrow:hover:after{transform:translate(3px)}.link-arrow:hover{text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--bubble)}.chip{border:1px solid var(--line);background:var(--surface);font-family:var(--font-mono);color:var(--ink-2);border-radius:999px;align-items:center;gap:.45em;padding:.3rem .65rem;font-size:.78rem;display:inline-flex}.canvas{background-color:var(--bg-2);background-image:radial-gradient(var(--dot) 1.2px, transparent 1.3px);background-size:22px 22px}.section{padding-block:clamp(72px,10vw,128px)}.section--tight{padding-block:clamp(56px,7vw,88px)}.section-head{gap:18px;max-width:760px;margin-bottom:clamp(36px,5vw,56px);display:grid}.section-head p{color:var(--ink-2);max-width:62ch;font-size:1.12rem}.flist{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}.flist li{border-bottom:1px solid var(--line);grid-template-columns:2.6rem 1fr;align-content:start;gap:4px 12px;padding:22px 22px 26px 0;display:grid}.flist .n{font-family:var(--font-mono);color:var(--ink-3);grid-row:span 2;padding-top:4px;font-size:.8rem}.flist h3{font-size:1.06rem}.flist p{color:var(--ink-2);font-size:.98rem}.frame{border-radius:var(--r-lg);border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.frame__bar{border-bottom:1px solid var(--line);background:var(--bg-2);align-items:center;gap:6px;height:34px;padding:0 14px;display:flex}.frame__bar i{background:var(--line-2);border-radius:50%;width:10px;height:10px}.frame__url{font-family:var(--font-mono);color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-left:10px;font-size:.72rem;overflow:hidden}.frame img{width:100%}.caption{font-family:var(--font-mono);color:var(--ink-3);margin-top:12px;font-size:.78rem}.band{isolation:isolate;background:var(--band);color:var(--band-ink);border-radius:clamp(20px,3vw,32px);padding:clamp(48px,8vw,96px) clamp(24px,6vw,72px);position:relative;overflow:hidden}.band:before{content:"";z-index:-1;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='40' viewBox='0 0 56 40'%3E%3Cpath d='M6 21l5 5 10-12M14 21l5 5 10-12' fill='none' stroke='%2325d366' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:56px 40px;position:absolute;inset:0;mask-image:radial-gradient(120% 90% at 85% 10%,#000 20%,#0000 70%)}.band h2 em{color:var(--green)}.band p{color:#b8d6cc}.js .reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transition-delay:var(--d,0s);transform:translateY(18px)}.js .reveal.is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js .reveal{opacity:1;transform:none}}
