@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_aa62b7{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_aa62b7{--font-ibm-plex-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--om-n-0:#FFFFFF;--om-n-25:#F7F8FA;--om-n-50:#EEF1F5;--om-n-100:#E8EBF0;--om-n-200:#E1E4EA;--om-n-300:#D5D9E0;--om-n-400:#949BA6;--om-n-500:#6B7380;--om-n-600:#5C6470;--om-n-700:#3B424C;--om-n-800:#343A45;--om-n-825:#262B33;--om-n-850:#20252E;--om-n-900:#191D24;--om-n-925:#12151A;--om-n-950:#0D0F13;--om-n-ink:#14161A;--om-n-ink-dark:#E7EAEF;--om-n-body-dark:#B5BCC7;--om-n-muted-dark:#8B93A0;--om-n-faint-dark:#616977;--om-accent-600:#1F4FD8;--om-accent-700:#1A44BD;--om-accent-400:#5B84FF;--om-accent-300:#6F94FF;--om-accent-100:#E9EEFB;--om-accent-950:rgb(91 132 255/0.14);--om-second-600:#00A3B4;--om-second-400:#2FD4E4;--om-second-100:#E0F5F8;--om-second-950:rgb(47 212 228/0.14);--om-ok-600:oklch(52% 0.125 155);--om-ok-400:oklch(72% 0.140 155);--om-ok-100:oklch(95% 0.035 155);--om-warn-600:oklch(55% 0.130 73);--om-warn-400:oklch(78% 0.140 80);--om-warn-100:oklch(95% 0.045 85);--om-danger-600:oklch(52% 0.180 25);--om-danger-400:oklch(72% 0.150 25);--om-danger-100:oklch(95% 0.030 25);--om-sec-600:oklch(45% 0.135 292);--om-sec-400:oklch(73% 0.110 292);--om-sec-100:oklch(95% 0.028 292);color-scheme:light;--bg:var(--om-n-25);--surface:var(--om-n-0);--surface-sunken:var(--om-n-100);--surface-hover:var(--om-n-50);--fg:var(--om-n-ink);--fg-body:var(--om-n-700);--fg-muted:var(--om-n-600);--fg-subtle:var(--om-n-500);--fg-faint:var(--om-n-400);--fg-inverse:var(--om-n-0);--border:var(--om-n-200);--border-strong:var(--om-n-300);--accent:var(--om-accent-600);--accent-hover:var(--om-accent-700);--accent-soft:var(--om-accent-100);--accent-fg:var(--om-n-0);--second:var(--om-second-600);--second-soft:var(--om-second-100);--second-fg:var(--om-n-0);--ok:var(--om-ok-600);--ok-soft:var(--om-ok-100);--warn:var(--om-warn-600);--warn-soft:var(--om-warn-100);--danger:var(--om-danger-600);--danger-soft:var(--om-danger-100);--security:var(--om-sec-600);--security-soft:var(--om-sec-100);--focus-ring:var(--om-accent-600);--frame-bg:var(--om-n-100);--frame-border:var(--om-n-200);--frame-glow:rgb(31 79 216/0.10);--fw-read:400;--fw-emph:500;--fw-announce:600}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:var(--om-n-950);--surface:var(--om-n-925);--surface-sunken:var(--om-n-900);--surface-hover:var(--om-n-850);--fg:var(--om-n-ink-dark);--fg-body:var(--om-n-body-dark);--fg-muted:var(--om-n-muted-dark);--fg-subtle:var(--om-n-muted-dark);--fg-faint:var(--om-n-faint-dark);--fg-inverse:var(--om-n-950);--border:var(--om-n-825);--border-strong:var(--om-n-800);--accent:var(--om-accent-400);--accent-hover:var(--om-accent-300);--accent-soft:var(--om-accent-950);--accent-fg:var(--om-n-950);--second:var(--om-second-400);--second-soft:var(--om-second-950);--second-fg:var(--om-n-950);--ok:var(--om-ok-400);--ok-soft:oklch(28% 0.070 155);--warn:var(--om-warn-400);--warn-soft:oklch(28% 0.070 75);--danger:var(--om-danger-400);--danger-soft:oklch(28% 0.080 25);--security:var(--om-sec-400);--security-soft:oklch(28% 0.070 292);--focus-ring:var(--om-accent-400);--frame-bg:var(--om-n-900);--frame-border:var(--om-n-825);--frame-glow:rgb(91 132 255/0.16);--fw-read:300;--fw-emph:400;--fw-announce:500}}.theme-dark,[data-theme=dark]{color-scheme:dark;--bg:var(--om-n-950);--surface:var(--om-n-925);--surface-sunken:var(--om-n-900);--surface-hover:var(--om-n-850);--fg:var(--om-n-ink-dark);--fg-body:var(--om-n-body-dark);--fg-muted:var(--om-n-muted-dark);--fg-subtle:var(--om-n-muted-dark);--fg-faint:var(--om-n-faint-dark);--fg-inverse:var(--om-n-950);--border:var(--om-n-825);--border-strong:var(--om-n-800);--accent:var(--om-accent-400);--accent-hover:var(--om-accent-300);--accent-soft:var(--om-accent-950);--accent-fg:var(--om-n-950);--second:var(--om-second-400);--second-soft:var(--om-second-950);--second-fg:var(--om-n-950);--ok:var(--om-ok-400);--ok-soft:oklch(28% 0.070 155);--warn:var(--om-warn-400);--warn-soft:oklch(28% 0.070 75);--danger:var(--om-danger-400);--danger-soft:oklch(28% 0.080 25);--security:var(--om-sec-400);--security-soft:oklch(28% 0.070 292);--focus-ring:var(--om-accent-400);--frame-bg:var(--om-n-900);--frame-border:var(--om-n-825);--frame-glow:rgb(91 132 255/0.16);--fw-read:300;--fw-emph:400;--fw-announce:500}:root{--font-display:var(--font-space-grotesk),var(--font-noto-kr),-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",sans-serif;--font-body:var(--font-noto-kr),-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI","Malgun Gothic",sans-serif;--font-mono:var(--font-ibm-plex-mono),"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--font-mono-ui:var(--font-mono);--fs-2xs:0.6875rem;--fs-xs:0.78125rem;--fs-sm:0.875rem;--fs-base:clamp(1rem,0.97rem + 0.13vw,1.0625rem);--fs-lg:clamp(1.0625rem,1.01rem + 0.24vw,1.1875rem);--fs-xl:clamp(1.25rem,1.16rem + 0.38vw,1.4375rem);--fs-2xl:clamp(1.5rem,1.34rem + 0.69vw,1.875rem);--fs-3xl:clamp(1.75rem,1.44rem + 1.33vw,2.5rem);--fs-4xl:clamp(2rem,1.5rem + 2.13vw,3.25rem);--fs-display:clamp(2.125rem,1.4rem + 3.09vw,4rem);--lh-tight:1.08;--lh-snug:1.24;--lh-normal:1.5;--lh-relaxed:1.72;--ls-display:-0.03em;--ls-heading:-0.024em;--ls-body:0;--ls-small:0.01em;--ls-label:0.02em;--ls-caps:0.14em;--measure:65ch;--measure-lead:44ch;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--gutter:clamp(1.25rem,0.9rem + 1.5vw,2.5rem);--section-y:clamp(3.5rem,2rem + 6.4vw,7rem);--section-y-lg:clamp(4.5rem,2.4rem + 9vw,9rem);--container:1200px;--container-prose:720px;--header-h:56px;--header-h-lg:68px;--tap:44px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:999px;--shadow-xs:0 1px 2px rgb(0 0 0/0.04);--shadow-sm:0 1px 2px rgb(20 22 26/0.04),0 2px 6px rgb(20 22 26/0.04);--shadow-md:0 2px 4px rgb(20 22 26/0.04),0 8px 20px rgb(20 22 26/0.06);--shadow-lg:0 4px 8px rgb(20 22 26/0.05),0 18px 44px rgb(20 22 26/0.08);--shadow-inset-top:inset 0 1px 0 rgb(255 255 255/0.06);--dur-instant:90ms;--dur-fast:150ms;--dur-base:220ms;--dur-slow:360ms;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-enter:cubic-bezier(0.16,1,0.3,1);--ease-exit:cubic-bezier(0.4,0,1,1)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:auto;scroll-padding-top:calc(var(--header-h) + var(--space-6));overflow-x:clip}html:has(:target){scroll-behavior:smooth}@media (min-width:768px){html{scroll-padding-top:calc(var(--header-h-lg) + var(--space-8))}}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-base);line-height:var(--lh-relaxed);letter-spacing:var(--ls-body);font-weight:var(--fw-read);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}:where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,figcaption,blockquote,caption,summary,label,th,td,a,button,.kr){word-break:keep-all;overflow-wrap:anywhere}:where(p,li,dd,figcaption,blockquote){text-wrap:pretty}:where(h1,h2,h3){text-wrap:balance}html[lang=ja] :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,figcaption,blockquote,caption,summary,label,th,td,a,button){line-break:strict;word-break:normal;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);font-weight:var(--fw-announce);line-height:var(--lh-snug);letter-spacing:var(--ls-heading)}h1{font-size:var(--fs-display);line-height:var(--lh-tight);letter-spacing:var(--ls-display)}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-xl)}h4{font-size:var(--fs-lg)}p{margin:0}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.22em}a:hover{color:var(--accent-hover)}img,svg,video{max-width:100%;display:block}img{height:auto}button{font:inherit;color:inherit}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:"liga" 0}.metric__value,.num,table td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}:root:lang(ko){--font-mono-ui:var(--font-body)}.label{font-family:var(--font-mono-ui);font-size:var(--fs-2xs);font-weight:var(--fw-emph);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--fg-subtle)}.label:lang(ko){letter-spacing:.045em}.label--code,.label--code:lang(ko){font-family:var(--font-mono);letter-spacing:var(--ls-caps);text-transform:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;left:50%;top:var(--space-2);z-index:200;transform:translate(-50%,-200%);background:var(--accent);color:var(--accent-fg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-weight:var(--fw-emph);transition:transform var(--dur-fast) var(--ease-standard)}.skip-link:focus{transform:translate(-50%)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.doc-progress__bar{animation-duration:auto!important}}.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-header{background:var(--bg)}}@media (min-width:768px){.site-header{height:var(--header-h-lg)}}.site-header-inner{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);height:100%;display:flex;align-items:center;gap:var(--space-3)}.brand-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--fg);text-decoration:none;font-family:var(--font-display);font-weight:var(--fw-announce);font-size:1.0625rem;letter-spacing:-.02em;margin-right:auto;min-height:var(--tap);white-space:nowrap}.brand-mark{width:26px;height:26px;flex:none}@media (min-width:768px){.brand-mark{width:28px;height:28px}}.desktop-nav{display:none}@media (min-width:1024px){.desktop-nav{display:flex;align-items:center;gap:var(--space-1);margin-right:var(--space-2)}.desktop-nav a{display:inline-flex;align-items:center;height:36px;padding-inline:var(--space-3);color:var(--fg-muted);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-emph);border-radius:var(--radius-sm);white-space:nowrap;flex:none;transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.desktop-nav a.nav-active,.desktop-nav a:hover{color:var(--fg);background:var(--surface-hover)}}.locale-switch{padding:2px;gap:2px;background:var(--surface-sunken);border:1px solid var(--border)}.locale-switch,.locale-switch a,.locale-switch span{display:inline-flex;align-items:center;border-radius:var(--radius-full)}.locale-switch a,.locale-switch span{justify-content:center;min-width:44px;height:40px;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-emph);letter-spacing:var(--ls-caps);color:var(--fg-subtle);text-decoration:none;transition:color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.locale-switch a:hover{color:var(--fg)}.locale-switch [aria-current=true]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-xs)}.btn.header-cta,.mobile-menu-locale{display:none}@media (min-width:1024px){.btn.header-cta{display:inline-flex;white-space:nowrap;flex:none}}@media (max-width:1023px){.header-locale-switch{display:none}.mobile-menu-locale{display:flex;justify-content:flex-end;padding-bottom:var(--space-2)}.mobile-menu-locale .locale-switch{margin-top:0}}.mobile-menu-button{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);margin-right:calc(var(--space-2) * -1);background:none;border:0;border-radius:var(--radius-sm);color:var(--fg);cursor:pointer}.mobile-menu-button svg{width:24px;height:24px}@media (min-width:1024px){.mobile-menu-button{display:none}}.mobile-menu{position:fixed;inset:var(--header-h) 0 auto 0;z-index:99;background:var(--bg);border-bottom:1px solid var(--border);padding:var(--space-2) var(--gutter) var(--space-5);max-height:calc(100dvh - var(--header-h));overflow-y:auto}.mobile-menu a:not(.btn){display:flex;align-items:center;justify-content:space-between;min-height:var(--tap);padding-block:var(--space-2);color:var(--fg);text-decoration:none;font-size:var(--fs-lg);font-weight:var(--fw-emph);border-bottom:1px solid var(--border)}.mobile-menu a:last-of-type{border-bottom:0}.mobile-menu .btn{width:100%}.mobile-menu .btn,.mobile-menu .locale-switch{margin-top:var(--space-4)}@media (min-width:1024px){.mobile-menu{display:none!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-5);font-family:var(--font-display);font-size:var(--fs-base);font-weight:var(--fw-announce);letter-spacing:var(--ls-label);border-radius:var(--radius-md);border:1px solid transparent;text-decoration:none;cursor:pointer;text-align:center;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),transform var(--dur-instant) var(--ease-standard)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover{background:var(--accent-hover);color:var(--accent-fg)}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--surface-hover);color:var(--fg);border-color:var(--fg-subtle)}.btn-sm{min-height:38px;font-size:var(--fs-sm);padding-inline:var(--space-4)}.btn-row{display:grid;gap:var(--space-3)}@media (min-width:480px){.btn-row{grid-auto-flow:column;justify-content:start;grid-auto-columns:max-content}}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-y)}.section-lg{padding-block:var(--section-y-lg)}.section-head{max-width:46ch;margin-bottom:var(--space-10)}.section-head p{margin-top:var(--space-4);color:var(--fg-muted);font-size:var(--fs-lg);max-width:var(--measure-lead)}.section-head p+p{margin-top:var(--space-3)}.eyebrow{display:block;margin-bottom:var(--space-4)}.section-actions,.section-callout,.section-figure{margin-top:var(--space-8)}.reveal{opacity:0;transform:translateY(10px)}.reveal.is-in{opacity:1;transform:none;transition:opacity var(--dur-slow) var(--ease-enter),transform var(--dur-slow) var(--ease-enter);transition-delay:calc(var(--i, 0) * 60ms)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.figure{margin:0}.frame{position:relative}.frame:before{content:"";position:absolute;inset:-10% -5% -16% -5%;z-index:-1;background:radial-gradient(60% 60% at 50% 40%,var(--frame-glow),transparent 72%);pointer-events:none}.frame-window{border:1px solid var(--frame-border);border-radius:var(--radius-lg);background:var(--frame-bg);overflow:hidden;box-shadow:var(--shadow-md),var(--shadow-inset-top)}.frame-bar{display:flex;align-items:center;gap:6px;height:30px;padding-inline:var(--space-3);border-bottom:1px solid var(--frame-border);background:color-mix(in oklab,var(--frame-bg) 70%,var(--surface))}.frame-bar i{width:8px;height:8px;border-radius:var(--radius-full);background:var(--border-strong)}.frame-bar span{margin-left:var(--space-2);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--fg-subtle);letter-spacing:var(--ls-small)}.frame-window img{width:100%;background:var(--surface-sunken)}.figure-crop .frame-window img{aspect-ratio:16/10;object-fit:cover;object-position:left top}.figure figcaption{margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--fg-subtle)}.figure-caption-phrase{display:inline-block;max-width:100%}.frame-zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.lightbox{max-width:none;max-height:none;padding:0;border:1px solid var(--frame-border);border-radius:var(--radius-lg);background:var(--frame-bg);overflow:hidden}.lightbox::backdrop,.project-promo-dialog::backdrop{background:rgb(0 0 0/.72)}.lightbox-inner{position:relative;line-height:0}.lightbox-inner img{display:block;width:auto;height:auto;max-width:min(96vw,1600px);max-height:92vh}.lightbox-close{position:absolute;top:var(--space-3);right:var(--space-3);min-height:36px;padding-inline:var(--space-3);background:color-mix(in oklab,var(--surface) 82%,transparent);color:var(--fg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-emph);line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.lightbox-close:hover{color:var(--fg);border-color:var(--border-strong)}.hero{padding-top:clamp(1.75rem,4vh,3.5rem);padding-bottom:clamp(2rem,3vw,3rem)}.hero h1{margin-bottom:var(--space-5)}.cjk-headline{word-break:keep-all;overflow-wrap:normal}.hero-sub{max-width:var(--measure-lead);color:var(--fg-muted);font-size:var(--fs-lg);word-break:keep-all}.hero-actions,.hero-media{margin-top:var(--space-8)}.hero-media .frame-window{max-height:46vh}.hero-media .frame-window img{object-fit:cover;object-position:left top}.hero-media figcaption{display:none}@media (min-width:768px){.hero-media .frame-window{max-height:none}.hero-media .frame-window img{object-fit:fill}.hero-media figcaption{display:block}}@media (min-width:1024px){.hero-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);grid-template-areas:"copy media" "actions media";column-gap:clamp(2rem,4vw,4.5rem);row-gap:var(--space-8);align-items:start}.hero-copy{grid-area:copy}.hero-media{grid-area:media;align-self:center;margin-top:0}.hero-inner>.hero-actions{grid-area:actions;margin-top:0}}.architecture-hero{margin:0;overflow:hidden;color:var(--fg);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md),var(--shadow-inset-top)}.architecture-visual{position:relative}.architecture-scene{position:relative;aspect-ratio:1672/941;overflow:hidden}.architecture-scene picture{display:block;width:100%;height:100%}.architecture-motion,.architecture-scene img{width:100%;height:100%;object-fit:cover}.architecture-motion{position:absolute;inset:0;background:transparent}.architecture-status{position:absolute;top:var(--space-3);left:var(--space-3);padding:var(--space-2) var(--space-3);color:var(--ok);background:color-mix(in oklab,var(--surface) 88%,transparent);border:1px solid var(--border-strong);border-radius:var(--radius-full);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.architecture-flow{padding:var(--space-3);background:var(--surface)}.architecture-flow,.architecture-node-group{display:grid;gap:var(--space-2)}.architecture-link,.architecture-node{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.architecture-link strong,.architecture-node strong{display:block;font-family:var(--font-display);font-size:var(--fs-sm);line-height:var(--lh-snug)}.architecture-label{display:block;margin-bottom:var(--space-1);color:var(--fg-subtle);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-announce);letter-spacing:var(--ls-caps)}.architecture-node p{margin-top:var(--space-1);color:var(--fg-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.architecture-sandbox{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);color:var(--security);background:var(--security-soft);border:1px dashed color-mix(in oklab,var(--security) 55%,transparent);border-radius:var(--radius-md);font-size:var(--fs-2xs);font-weight:var(--fw-announce);line-height:var(--lh-normal)}.architecture-sandbox:before{width:var(--space-4);border-top:1px solid;content:""}.architecture-node-mac{border-top-color:var(--accent)}.architecture-node-dgx{border-top-color:var(--ok)}.architecture-link{text-align:center}.architecture-link strong{color:var(--accent);font-size:var(--fs-xs);word-break:keep-all}.architecture-link span{display:inline-block;margin:var(--space-1) var(--space-1) 0;color:var(--fg-muted);font-size:var(--fs-2xs)}.architecture-caption{padding:0 var(--space-4) var(--space-4);color:var(--fg-muted);background:var(--surface);font-size:var(--fs-sm);line-height:var(--lh-normal)}@media (min-width:640px){.architecture-flow{position:absolute;right:var(--space-3);bottom:var(--space-3);left:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(7rem,.55fr) minmax(0,1fr);align-items:end;padding:0;background:transparent}.architecture-link,.architecture-node,.architecture-sandbox{background:color-mix(in oklab,var(--surface) 90%,transparent);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.architecture-caption{padding-top:var(--space-3)}}.paths{display:grid;gap:var(--space-4)}@media (min-width:768px){.paths{grid-template-columns:1fr 1fr;gap:var(--space-6)}}.path{display:flex;flex-direction:column;padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.path:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.path h3{margin-bottom:var(--space-3)}.path-lede{color:var(--fg-muted);margin-bottom:var(--space-5)}.path-facts{margin:0 0 var(--space-6)}.path-facts>div{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:var(--space-3);padding-block:var(--space-3);border-top:1px solid var(--border);font-size:var(--fs-sm)}.path-facts>div:last-child{border-bottom:1px solid var(--border)}.path-facts dt{color:var(--fg-subtle)}.path-facts dd{margin:0;font-weight:var(--fw-emph)}.path .btn-row{margin-top:auto}.path .btn{width:100%}.metrics{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--border);border-left:1px solid var(--border)}@media (min-width:768px){.metrics{grid-template-columns:repeat(4,1fr)}}.metric{padding:var(--space-5) var(--space-4);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.metric-value{display:block;font-size:var(--fs-3xl);font-weight:var(--fw-announce);letter-spacing:-.03em;line-height:1.05;color:var(--fg)}.metric-label{display:block;margin:var(--space-2) 0 0;font-size:var(--fs-sm);color:var(--fg-muted)}.dark-half{background:var(--bg);color:var(--fg);border-top:1px solid rgb(255 255 255/.08);box-shadow:inset 0 1px 0 rgb(255 255 255/.05)}.bento{display:grid;gap:var(--space-4)}@media (min-width:768px){.bento{grid-template-columns:repeat(6,1fr);gap:var(--space-5)}}.cap{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-inset-top);min-width:0}.cap h3{margin-bottom:var(--space-3)}.cap p{color:var(--fg-muted)}.cap .figure figcaption{display:none}@media (min-width:768px){.cap:first-child{grid-column:span 4;flex-direction:row;align-items:center}.cap:first-child>*{flex:1 1;min-width:0}.cap:nth-child(2){grid-column:span 2}.cap:nth-child(3),.cap:nth-child(4){grid-column:span 3}.cap:nth-child(5){grid-column:span 6;flex-direction:row;align-items:center}.cap:nth-child(5)>*{flex:1 1;min-width:0}.cap:nth-child(2) .frame-window img,.cap:nth-child(3) .frame-window img,.cap:nth-child(4) .frame-window img{aspect-ratio:4/3}}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:1px;background:var(--border)}.tl{position:relative;padding:0 0 var(--space-8) var(--space-8)}.tl:last-child{padding-bottom:0}.tl:before{content:"";position:absolute;left:0;top:7px;width:9px;height:9px;border-radius:var(--radius-full);background:var(--bg);border:1px solid var(--border-strong)}.tl:last-child:before{background:var(--accent);border-color:var(--accent)}.tl time{display:block;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent);letter-spacing:var(--ls-small)}.tl h3,.tl time{margin-bottom:var(--space-2)}.tl h3{font-size:var(--fs-lg)}.tl p{color:var(--fg-muted);font-size:var(--fs-sm);max-width:52ch}@media (min-width:768px){.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6)}.timeline:before{left:0;right:0;top:4px;bottom:auto;width:auto;height:1px}.tl{padding:var(--space-8) var(--space-4) 0 0}.tl:before{top:0}}.fact-list{list-style:none;margin:var(--space-8) 0 0;padding:0;max-width:var(--measure)}.fact-list li{position:relative;padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--fg-muted)}.fact-list li:before{content:"";position:absolute;left:4px;top:1.35em;width:6px;height:1px;background:var(--border-strong)}.section-cta{text-align:center}.section-cta .section-head{max-width:30ch;margin-inline:auto}.section-cta .section-head p{margin-inline:auto}.section-cta .btn-row{justify-content:center}@media (max-width:479px){.section-cta .btn-row{justify-items:stretch}}.site-footer{border-top:1px solid var(--border);background:var(--surface-sunken);padding-block:var(--space-10) var(--space-6)}.site-footer-dark{background:var(--bg);color:var(--fg);border-top:0}.site-footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6) var(--space-5);width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.footer-intro{grid-column:1/-1}@media (min-width:768px){.site-footer-grid{grid-template-columns:1.4fr repeat(3,1fr);gap:var(--space-6)}.footer-intro{grid-column:auto}}.footer-tagline{max-width:30ch;margin-top:var(--space-3);color:var(--fg-muted);font-size:var(--fs-sm)}.footer-heading{font-size:var(--fs-sm);font-family:var(--font-body);font-weight:var(--fw-emph);color:var(--fg);margin-bottom:var(--space-2);letter-spacing:0}.footer-links{list-style:none;margin:0;padding:0}.footer-links li a{display:flex;align-items:center;min-height:40px;color:var(--fg-muted);text-decoration:none;font-size:var(--fs-sm)}.footer-links li a:hover{color:var(--fg);text-decoration:underline}@media (min-width:768px){.footer-links li a{min-height:var(--tap)}}.footer-bottom{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);align-items:center;justify-content:space-between;width:100%;max-width:var(--container);margin-inline:auto;padding:var(--space-5) var(--gutter) 0;margin-top:var(--space-8);border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--fg-subtle)}.footer-version{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:var(--ls-small)}@media (min-width:768px){.footer-bottom{padding-right:calc(var(--gutter) + var(--tap) + var(--space-4))}}@media (max-width:767px){.site-footer{padding-bottom:calc(var(--space-10) + env(safe-area-inset-bottom))}.footer-bottom{flex-direction:column;align-items:flex-start}.footer-group-legal{grid-column:1/-1}.footer-group-legal .footer-links{display:flex;flex-wrap:wrap;column-gap:var(--space-5)}}.doc-progress{position:fixed;left:0;right:0;top:var(--header-h);height:2px;z-index:101;background:color-mix(in oklab,var(--border) 60%,transparent)}@media (min-width:768px){.doc-progress{top:var(--header-h-lg)}}.doc-progress-bar{height:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}@supports (animation-timeline:scroll()){@keyframes doc-read{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.doc-progress-bar{animation:doc-read linear both;animation-timeline:scroll(root block)}}@supports not (animation-timeline:scroll()){.doc-progress{display:none}}.docbar{position:sticky;top:calc(var(--header-h) + 2px);z-index:90;height:50px;background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.docbar,.docbar-inner{display:flex;align-items:center}.docbar-inner{gap:var(--space-3);width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);height:100%}.docbar-now{flex:1 1;min-width:0;font-size:var(--fs-sm);color:var(--fg-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.docbar-now b,.toc-btn{color:var(--fg);font-weight:var(--fw-emph)}.toc-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:38px;padding-inline:var(--space-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer}@media (min-width:1024px){.docbar{display:none}}.doc-shell{padding-bottom:var(--space-24)}@media (min-width:1024px){.doc-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:clamp(2rem,4vw,4.5rem);align-items:start}}.doc-head{padding-top:var(--space-10);padding-bottom:var(--space-8)}.doc-head h1{font-size:var(--fs-4xl);margin-bottom:var(--space-5)}.doc-lede{font-size:var(--fs-lg);color:var(--fg-muted);max-width:var(--measure)}.doc-actions{margin-top:var(--space-8)}.rail{display:none}@media (min-width:1024px){.rail{display:block;position:sticky;top:calc(var(--header-h-lg) + var(--space-8));max-height:calc(100vh - var(--header-h-lg) - var(--space-16));overflow-y:auto;padding-block:var(--space-1)}.rail>.label{display:block;margin-bottom:var(--space-4)}.rail ol{list-style:none;margin:0;padding:0}.rail a{display:grid;grid-template-columns:1.6rem 1fr;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);color:var(--fg-muted);text-decoration:none;font-size:var(--fs-sm);line-height:1.4;border-left:2px solid var(--border);transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.rail a span{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--fg-subtle);padding-top:3px}.rail a:hover{color:var(--fg);border-left-color:var(--border-strong)}.rail a[aria-current=true]{color:var(--fg);border-left-color:var(--accent);font-weight:var(--fw-emph)}.rail a[aria-current=true] span{color:var(--accent)}}.sheet::backdrop{background:oklch(15% .012 262/.44)}.sheet{position:fixed;inset:auto 0 0 0;z-index:151;max-height:76vh;display:none;flex-direction:column;width:100%;max-width:none;margin:0;border:0;color:var(--fg);background:var(--surface);border-top:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);padding:0 0 env(safe-area-inset-bottom);animation:sheet-in var(--dur-slow) var(--ease-enter) both}.sheet[open]{display:flex}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--gutter);border-bottom:1px solid var(--border)}.sheet-head h2{font-size:var(--fs-lg)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);background:none;border:0;border-radius:var(--radius-sm);color:var(--fg);cursor:pointer}.sheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-2) var(--gutter) var(--space-6)}.sheet-body ol{list-style:none;margin:0;padding:0}.sheet-body button{display:grid;grid-template-columns:2rem 1fr;align-items:center;gap:var(--space-2);width:100%;min-height:var(--tap);padding-block:var(--space-2);background:none;border:0;border-bottom:1px solid var(--border);color:var(--fg);text-align:left;font-size:var(--fs-base);cursor:pointer}.sheet-body li:last-child button{border-bottom:0}.sheet-body button span{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-subtle)}.sheet-body button.is-active{color:var(--accent);font-weight:var(--fw-emph)}.sheet-body button.is-active span{color:var(--accent)}@media (min-width:1024px){.sheet,.sheet::backdrop{display:none!important}}.prose{max-width:var(--measure)}.prose p{color:var(--fg-muted)}.prose>*+*{margin-top:var(--space-5)}.doc-section{scroll-margin-top:calc(var(--header-h) + 56px)}@media (min-width:1024px){.doc-section{scroll-margin-top:calc(var(--header-h-lg) + var(--space-6))}}.doc-section+.doc-section{margin-top:var(--space-16)}.doc-section h2{font-size:var(--fs-2xl);padding-top:var(--space-6);border-top:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:baseline}.doc-section h2 .doc-section-index{font-family:var(--font-mono);font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:var(--ls-small)}.doc-section .eyebrow{margin:var(--space-4) 0 0}.doc-body>*+*{margin-top:var(--space-5)}.doc-body strong{color:var(--fg);font-weight:var(--fw-emph)}.doc-body ul{list-style:none;margin:0;padding:0}.doc-body ul li{position:relative;padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--fg-muted)}.doc-body ul li:before{content:"";position:absolute;left:4px;top:1.35em;width:6px;height:1px;background:var(--border-strong)}.doc-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));gap:var(--space-4)}.doc-card{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.doc-card .figure{margin-bottom:var(--space-4)}.doc-card h3{font-size:var(--fs-lg);font-weight:var(--fw-announce);color:var(--fg);text-wrap:balance}.doc-card p{margin-top:var(--space-2);font-size:var(--fs-sm);color:var(--fg-muted)}.doc-milestones{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-3)}.doc-milestones li{display:grid;grid-template-columns:minmax(3.5rem,auto) 1fr;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.doc-milestones span{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-emph);color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.doc-milestones h3{font-size:var(--fs-base);font-weight:var(--fw-announce);color:var(--fg)}.doc-milestones p{margin-top:var(--space-1);font-size:var(--fs-sm);color:var(--fg-muted)}.code-block{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-sunken);overflow:hidden}.code-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}.code-bar .label{color:var(--fg-subtle)}.code-block pre{margin:0;padding:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:var(--fs-xs);line-height:1.75;color:var(--fg);tab-size:2}.code-block pre code{white-space:pre;word-break:normal;overflow-wrap:normal;background:none;border:0;padding:0}.copy-button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:36px;padding-inline:var(--space-3);background:transparent;color:var(--fg-muted);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:var(--fw-emph);cursor:pointer;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.copy-button:hover{color:var(--fg);border-color:var(--border-strong)}.copy-button[data-copied=true]{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 45%,transparent)}.callout{padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-left:3px solid var(--tone,var(--border-strong));border-radius:var(--radius-sm);background:var(--tone-bg,var(--surface-sunken))}.callout-title{font-size:var(--fs-sm);font-weight:var(--fw-announce);color:var(--fg)}.callout-body{margin-top:var(--space-1);font-size:var(--fs-sm);color:var(--fg-muted)}.callout-info{--tone:var(--accent);--tone-bg:var(--accent-soft)}.callout-tip{--tone:var(--ok);--tone-bg:var(--ok-soft)}.callout-warning{--tone:var(--warn);--tone-bg:var(--warn-soft)}.callout-security{--tone:var(--security);--tone-bg:var(--security-soft)}.figure-grid{display:grid;gap:var(--space-6)}@media (min-width:768px){.figure-grid-multi{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}}.next-section{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8);padding:var(--space-4) var(--space-5);min-height:var(--tap);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);text-decoration:none;transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.next-section:hover{border-color:var(--border-strong);background:var(--surface-hover);color:var(--fg)}.next-section small{display:block;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--fg-subtle);margin-bottom:2px}.next-section strong{font-weight:var(--fw-emph);font-size:var(--fs-base)}.next-section svg{width:20px;height:20px;color:var(--fg-subtle);flex:none}.to-top{position:fixed;z-index:95;right:var(--gutter);bottom:calc(var(--space-5) + env(safe-area-inset-bottom));width:var(--tap);height:var(--tap);display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:var(--fg);border:1px solid var(--border-strong);border-radius:var(--radius-full);box-shadow:var(--shadow-md);cursor:pointer;opacity:0;transform:translateY(8px) scale(.94);pointer-events:none;transition:opacity var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}.to-top.is-visible{opacity:1;transform:none;pointer-events:auto}.to-top svg{width:20px;height:20px}.gateway-shell{width:min(100% - 2rem,42rem);margin:14vh auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(1.5rem,6vw,3rem);box-shadow:var(--shadow-md)}.gateway-kicker{margin-bottom:var(--space-3)}.gateway-shell>p:not(.gateway-kicker){max-width:var(--measure);margin-top:var(--space-4);color:var(--fg-muted)}.gateway-links{display:grid;gap:var(--space-3);margin-top:var(--space-8)}@media (min-width:480px){.gateway-links{grid-auto-flow:column;justify-content:start;grid-auto-columns:max-content}}.gateway-links a{display:inline-flex;align-items:center;justify-content:center;min-width:8rem;min-height:48px;padding-inline:var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);font-weight:var(--fw-announce);text-decoration:none}.gateway-links a:hover{background:var(--surface-hover)}.blog-index-hero{padding-block:clamp(4.5rem,10vw,8rem);border-bottom:1px solid var(--border)}.blog-index-hero h1{max-width:14ch;font-size:var(--fs-4xl)}.blog-index-intro{max-width:var(--measure-lead);margin-top:var(--space-6);color:var(--fg-muted);font-size:var(--fs-lg)}.blog-index-principles{display:grid;gap:var(--space-4);margin-top:var(--space-12)}.blog-index-principles article{padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.blog-index-principles h2{margin-top:var(--space-3);font-size:var(--fs-xl)}.blog-index-principles article>p:last-child{max-width:var(--measure);margin-top:var(--space-3);color:var(--fg-muted)}@media (min-width:768px){.blog-index-principles{grid-template-columns:repeat(2,minmax(0,1fr))}}.blog-archive-section,.blog-feature-section{padding-block:var(--section-y-lg)}.blog-feature-section{background:var(--surface-sunken);border-bottom:1px solid var(--border)}.blog-archive-section h2,.blog-feature-section h2{margin-bottom:var(--space-8);font-size:var(--fs-3xl)}.blog-archive-section h2:has(+.blog-archive-note){margin-bottom:var(--space-3)}.blog-archive-note{max-width:68ch;margin-bottom:var(--space-8);color:var(--fg-muted);font-size:var(--fs-sm)}.blog-card{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.blog-card-media{overflow:hidden;aspect-ratio:16/10;border-bottom:1px solid var(--border);background:var(--surface-sunken)}.blog-card-media img{width:100%;height:100%;object-fit:cover}.blog-card-media-empty{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-3);padding:var(--space-6);background:linear-gradient(145deg,var(--surface-sunken),var(--surface));color:var(--fg-muted)}.blog-card-media-empty span{color:var(--fg-subtle);font-family:var(--font-mono-ui);font-size:var(--fs-2xs);letter-spacing:.12em}.blog-card-media-empty strong{max-width:24ch;font-size:var(--fs-lg);line-height:var(--lh-tight)}.blog-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-6)}.blog-meta{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);color:var(--fg-subtle);font-family:var(--font-mono-ui);font-size:var(--fs-xs);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.blog-card h3{margin-top:var(--space-4);font-size:var(--fs-xl);text-wrap:balance}.blog-card-body>p{margin-top:var(--space-3);color:var(--fg-muted)}.blog-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-5) 0 0;padding:0;list-style:none}.blog-tags li{padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--fg-subtle);font-family:var(--font-mono-ui);font-size:var(--fs-2xs)}.blog-back-link,.blog-read-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap);margin-top:var(--space-5);color:var(--accent);font-weight:var(--fw-announce);text-decoration:none}.blog-back-link:hover,.blog-read-link:hover{color:var(--accent-hover);text-decoration:underline;text-underline-offset:.2em}@media (min-width:768px){.blog-card-featured{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.blog-card-featured .blog-card-media{aspect-ratio:auto;border-right:1px solid var(--border);border-bottom:0}.blog-card-featured .blog-card-body{justify-content:center;padding:var(--space-8)}}.blog-card-grid{display:grid;gap:var(--space-5)}@media (min-width:768px){.blog-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1180px){.blog-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.blog-card-compact h3{font-size:var(--fs-lg)}.blog-card-compact .blog-card-body>p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;font-size:var(--fs-sm)}.blog-card-compact .blog-read-link{margin-top:auto;padding-top:var(--space-4)}.blog-article-shell{padding-block:clamp(2.5rem,7vw,6rem) var(--section-y-lg)}.blog-article{max-width:72rem}.blog-archive-gap{max-width:58rem;margin:0 auto var(--space-10);padding:var(--space-8);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-sunken)}.blog-archive-gap>p:not(.label){max-width:var(--measure);margin-top:var(--space-3);color:var(--fg-muted)}.blog-archive-gap strong{color:var(--fg)}.blog-article-head{max-width:58rem;margin-inline:auto;margin-bottom:var(--space-10)}.blog-breadcrumb{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8);color:var(--fg-subtle);font-family:var(--font-mono-ui);font-size:var(--fs-xs)}.blog-breadcrumb a{color:var(--accent)}.blog-language-notice{width:fit-content;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border-inline-start:2px solid var(--accent);background:var(--surface-sunken);color:var(--fg-body);font-size:var(--fs-sm)}.blog-language-notice a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.blog-article-head h1{max-width:22ch;margin-top:var(--space-5);font-size:var(--fs-4xl);word-break:keep-all;overflow-wrap:normal}html[lang=ja] .blog-article-head h1{word-break:normal;overflow-wrap:anywhere}.blog-article-excerpt{max-width:var(--measure-lead);margin-top:var(--space-6);color:var(--fg-muted);font-size:var(--fs-lg)}.blog-article>.figure{max-width:64rem;margin-inline:auto}.blog-article>.figure .frame:before{inset-inline:max(-5%,-1.25rem)}.blog-summary{max-width:52rem;margin:var(--space-12) auto 0;padding:var(--space-6);border:1px solid var(--border-strong);border-left:4px solid var(--accent);border-radius:var(--radius-md);background:var(--surface)}.blog-summary h2{margin-top:var(--space-3);font-size:var(--fs-2xl)}.blog-summary>p:last-child{margin-top:var(--space-4);color:var(--fg-muted);font-size:var(--fs-lg)}.blog-metrics{display:grid;gap:var(--space-3);max-width:52rem;margin:var(--space-6) auto 0}.blog-metrics>div{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.blog-metrics dt{color:var(--fg-subtle);font-family:var(--font-mono-ui);font-size:var(--fs-2xs);font-weight:var(--fw-emph);text-transform:uppercase;letter-spacing:var(--ls-caps)}.blog-metrics dd{margin-top:var(--space-2);color:var(--fg);font-family:var(--font-mono-ui);font-size:var(--fs-lg);font-weight:var(--fw-announce);overflow-wrap:anywhere}@media (min-width:640px){.blog-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}.blog-article-layout{max-width:64rem;margin:var(--space-16) auto 0}.blog-toc{display:none}@media (min-width:1024px){.blog-article-layout{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:var(--space-12);align-items:start}.blog-toc{display:block;position:sticky;top:calc(var(--header-h-lg) + var(--space-8));max-height:calc(100vh - var(--header-h-lg) - var(--space-16));overflow-y:auto}.blog-toc ol{margin:var(--space-4) 0 0;padding:0;list-style:none}.blog-toc a{display:grid;grid-template-columns:1.75rem 1fr;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);color:var(--fg-muted);font-size:var(--fs-sm);text-decoration:none}.blog-toc a:hover{color:var(--fg)}.blog-toc a span{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-2xs)}}.blog-article-body{min-width:0;max-width:var(--measure)}.blog-article-section{scroll-margin-top:calc(var(--header-h) + var(--space-6))}.blog-article-section+.blog-article-section{margin-top:var(--space-16)}.blog-article-section h2,.blog-sources h2{margin-top:var(--space-3);font-size:var(--fs-2xl)}.blog-article-section>p:not(.label){margin-top:var(--space-5);color:var(--fg-muted)}.blog-article-section ul{margin:var(--space-5) 0 0;padding:0;list-style:none}.blog-article-section li{position:relative;padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--fg-muted)}.blog-article-section li:before{content:"";position:absolute;top:1.2em;left:0;width:10px;height:2px;background:var(--accent)}.blog-article-section .code-block{margin-top:var(--space-6)}.blog-sources{margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--border)}.blog-sources ul{display:grid;gap:var(--space-2);margin:var(--space-5) 0 0;padding:0;list-style:none}.blog-sources a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--tap);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg);text-decoration:none}.blog-sources a:hover{border-color:var(--border-strong);background:var(--surface-hover)}.blog-article-body>.callout{margin-top:var(--space-10)}@media (min-width:1024px) and (max-width:1279px){.desktop-nav a{padding-inline:var(--space-2);font-size:var(--fs-xs)}.header-locale-switch .locale-switch a,.header-locale-switch .locale-switch span{min-width:34px;height:34px}.btn.header-cta,.desktop-nav .header-github .github-stars{display:none}}