:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--r-sm:1px;--r-md:2px;--r-lg:3px;--r-full:999px;--notch:10px;--notch-sm:6px;--font-sans:system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo", sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Cascadia Mono", "Roboto Mono", "Noto Sans Mono", "BIZ UDGothic", monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:1rem;--fs-code:.84375rem;--fs-lg:1.125rem;--fs-xl:1.375rem;--fs-2xl:clamp(1.5rem, 1.2rem + 1.4vw, 2.125rem);--fs-hero:clamp(2rem, 1.4rem + 3vw, 3.25rem);--lh-tight:1.3;--lh-code:1.7;--lh-body:1.85;--ease:cubic-bezier(.2, .6, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.11s;--dur:.18s;--dur-slow:.42s;--grid-size:32px;--scan-size:4px;--measure:42em;--page-max:1360px;--sidebar:268px;--header-h:56px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,:root[data-theme=light]{--bg:#f6f7fa;--bg-raised:#fff;--bg-sunken:#eceff5;--bg-hover:#e3e8f0;--bg-inset:#dbe1eb;--border:#d3dae6;--border-strong:#7c8798;--text:#10151d;--text-muted:#4d5665;--text-faint:#78828f;--accent:#076b7e;--accent-hover:#045463;--accent-weak:#ddf0f4;--select-bg:#7cb0bb;--select-fg:#10151d;--accent-contrast:#fff;--accent-2:#a8156f;--accent-2-weak:#fbe3f1;--ok:#16653a;--ok-weak:#dcf0e4;--warn:#855406;--warn-weak:#faecd2;--error:#a51d38;--error-weak:#fbe1e6;--info:#1a4aa6;--info-weak:#dfe8fb;--chrome-bg:#e6eaf1;--chrome-text:#4d5665;--code-bg:#f2f4f8;--code-text:#10151d;--code-line:#7d8795;--code-keyword:#9a1a86;--code-string:#16653a;--code-number:#93470a;--code-comment:#666f7e;--code-function:#1a4aa6;--code-type:#076b7e;--code-punct:#5f6878;--code-added:#dcf0e4;--code-removed:#fbe1e6;--code-highlight:#fdf0cf;--shadow-pop:0 8px 28px #10151d1f;--shadow-lift:0 1px 2px #10151d0f, 0 10px 28px #10151d14;--grid-line:#10151d14;--scan-line:#10151d08;--glow-a:#076b7e1f;--glow-b:#a8156f12;--sheen:#076b7e8c;--ghost-a:#076b7e57;--ghost-b:#a8156f42;--hud:#076b7e57;--lang-js:#86690a;--lang-ts:#1a58ad;--lang-sql:#855406;--lang-html:#a2431a;--lang-css:#1a4aa6;--lang-py:#256394;--lang-php:#5a45b0;--lang-java:#9d3527;--lang-cs:#6b2aa3;--lang-go:#076b7e;--lang-rb:#99263a;--lang-jq:#175893}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#06080d;--bg-raised:#0c1018;--bg-sunken:#03050a;--bg-hover:#151c28;--bg-inset:#1b2432;--border:#1d2634;--border-strong:#55647c;--text:#dfe6f0;--text-muted:#98a6bb;--text-faint:#6f7e94;--accent:#35e6ff;--accent-hover:#8af2ff;--accent-weak:#07242c;--select-bg:#185a69;--select-fg:#d7dfea;--accent-contrast:#01151b;--accent-2:#ff5cc8;--accent-2-weak:#2a0c20;--ok:#4dea92;--ok-weak:#062418;--warn:#ffc65c;--warn-weak:#291f0b;--error:#ff7a8c;--error-weak:#2c0f16;--info:#86b4ff;--info-weak:#0e1a30;--chrome-bg:#121824;--chrome-text:#8e9cb2;--code-bg:#080c14;--code-text:#d7dfea;--code-keyword:#ff7ad4;--code-string:#5fe0a0;--code-number:#ffb867;--code-comment:#737f94;--code-function:#7fb8ff;--code-type:#35e6ff;--code-punct:#93a2b8;--code-line:#5b6a82;--code-added:#082418;--code-removed:#2c1017;--code-highlight:#241d0a;--shadow-pop:0 10px 34px #000000a6;--shadow-lift:0 1px 2px #00000080, 0 12px 34px #00000080;--grid-line:#78c8ff0d;--scan-line:#78c8ff08;--glow-a:#35e6ff1c;--glow-b:#ff5cc814;--sheen:#35e6ffb3;--ghost-a:#35e6ff6b;--ghost-b:#ff5cc861;--hud:#35e6ff66;--lang-js:#ffd84d;--lang-ts:#6fb0ff;--lang-sql:#ffc65c;--lang-html:#ff9366;--lang-css:#86b4ff;--lang-py:#6fc4f5;--lang-php:#b9a6ff;--lang-java:#ff8f7a;--lang-cs:#d79bff;--lang-go:#35e6ff;--lang-rb:#ff8fa3;--lang-jq:#7cc0ff}}:root[data-theme=dark]{--bg:#06080d;--bg-raised:#0c1018;--bg-sunken:#03050a;--bg-hover:#151c28;--bg-inset:#1b2432;--border:#1d2634;--border-strong:#55647c;--text:#dfe6f0;--text-muted:#98a6bb;--text-faint:#6f7e94;--accent:#35e6ff;--accent-hover:#8af2ff;--accent-weak:#07242c;--select-bg:#185a69;--select-fg:#d7dfea;--accent-contrast:#01151b;--accent-2:#ff5cc8;--accent-2-weak:#2a0c20;--ok:#4dea92;--ok-weak:#062418;--warn:#ffc65c;--warn-weak:#291f0b;--error:#ff7a8c;--error-weak:#2c0f16;--info:#86b4ff;--info-weak:#0e1a30;--chrome-bg:#121824;--chrome-text:#8e9cb2;--code-bg:#080c14;--code-text:#d7dfea;--code-keyword:#ff7ad4;--code-string:#5fe0a0;--code-number:#ffb867;--code-comment:#737f94;--code-function:#7fb8ff;--code-type:#35e6ff;--code-punct:#93a2b8;--code-line:#5b6a82;--code-added:#082418;--code-removed:#2c1017;--code-highlight:#241d0a;--shadow-pop:0 10px 34px #000000a6;--shadow-lift:0 1px 2px #00000080, 0 12px 34px #00000080;--grid-line:#78c8ff0d;--scan-line:#78c8ff08;--glow-a:#35e6ff1c;--glow-b:#ff5cc814;--sheen:#35e6ffb3;--ghost-a:#35e6ff6b;--ghost-b:#ff5cc861;--hud:#35e6ff66;--lang-js:#ffd84d;--lang-ts:#6fb0ff;--lang-sql:#ffc65c;--lang-html:#ff9366;--lang-css:#86b4ff;--lang-py:#6fc4f5;--lang-php:#b9a6ff;--lang-java:#ff8f7a;--lang-cs:#d79bff;--lang-go:#35e6ff;--lang-rb:#ff8fa3;--lang-jq:#7cc0ff}
*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--sp-4));overflow-x:clip}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-body);letter-spacing:.01em;font-feature-settings:"palt" 0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{line-height:var(--lh-tight);letter-spacing:-.005em;margin:0;font-weight:700}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-base)}p{margin:0 0 var(--sp-4)}a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent);text-underline-offset:.2em;cursor:pointer;transition:color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease);text-decoration-thickness:1px}a:hover{color:var(--accent-hover);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}:focus:not(:focus-visible){outline:none}button,summary,label[for],select,[role=button],[role=tab]{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}input,textarea,select{font:inherit;color:inherit}@media (max-width:767px){input,textarea,select{font-size:16px}}code,kbd,samp,pre{font-family:var(--font-mono);font-size:var(--fs-code)}:where(p,li,td,th,dd,figcaption)>code{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--r-sm);word-break:break-word;padding:.08em .36em;font-size:.875em}kbd{background:var(--bg-inset);border:1px solid var(--border-strong);border-radius:var(--r-sm);border-bottom-width:2px;padding:.05em .4em;font-size:.8125em;line-height:1.6;display:inline-block}pre{line-height:var(--lh-code);tab-size:2;margin:0;overflow-x:auto}hr{border:0;border-top:1px solid var(--border);margin:var(--sp-6) 0}img,svg,video{max-width:100%;height:auto}ul,ol{margin:0 0 var(--sp-4);padding-left:1.4em}li{margin-bottom:var(--sp-2)}li::marker{color:var(--text-faint)}table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}th,td{text-align:left;padding:var(--sp-3);border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--bg-sunken);color:var(--text-muted);white-space:nowrap;font-weight:600}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--sp-2);left:var(--sp-2);z-index:100;padding:var(--sp-2) var(--sp-4);background:var(--accent);color:var(--accent-contrast);border-radius:var(--r-md);transition:transform var(--dur) var(--ease);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
.page{flex-direction:column;min-height:100dvh;display:flex}.container{width:100%;max-width:var(--page-max);padding-inline:var(--sp-4);margin-inline:auto}@media (min-width:768px){.container{padding-inline:var(--sp-6)}}.site-header{z-index:50;height:var(--header-h);background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header__inner{align-items:center;gap:var(--sp-4);height:100%;display:flex}.logo{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);white-space:nowrap;letter-spacing:0;align-items:baseline;gap:.45em;font-weight:600;text-decoration:none;display:inline-flex}.logo:hover{color:var(--text)}.logo__sigil{color:var(--accent);font-weight:700}.logo__name{font-family:var(--font-sans);font-size:var(--fs-base);letter-spacing:-.01em}.logo__caret{background:var(--accent);width:.52em;height:1.02em;animation:1.15s step-end infinite caret-blink;display:inline-block;translate:0 .14em}@keyframes caret-blink{0%,45%{opacity:1}46%,to{opacity:0}}.site-header__nav{gap:var(--sp-1);margin-left:var(--sp-3);display:none}@media (min-width:900px){.site-header__nav{display:flex}}.nav-link{height:32px;padding-inline:var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-muted);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);align-items:center;text-decoration:none;display:inline-flex}.nav-link:hover{background:var(--bg-hover);color:var(--text)}.nav-link[aria-current=page]{color:var(--text);background:var(--bg-sunken)}.site-header__spacer{flex:1}.site-header__tools{align-items:center;gap:var(--sp-2);display:flex}.main{padding-block:var(--sp-6) var(--sp-9);flex:1}.layout-article{gap:var(--sp-7);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:1024px){.layout-article{grid-template-columns:minmax(0, 1fr) var(--sidebar);align-items:start}.layout-article__aside{top:calc(var(--header-h) + var(--sp-5));position:sticky}}.prose{max-width:var(--measure)}.prose>*+*{margin-top:var(--sp-4)}.prose>h2{margin-top:var(--sp-7)}.prose>h3{margin-top:var(--sp-6)}.site-footer{border-top:1px solid var(--border);background:var(--bg-raised);padding-block:var(--sp-6);font-size:var(--fs-sm);color:var(--text-muted)}.site-footer__grid{gap:var(--sp-5);grid-template-columns:1fr;display:grid}@media (min-width:640px){.site-footer__grid{grid-template-columns:1.4fr 1fr 1fr}}.site-footer h2{font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--sp-3);font-weight:600}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer li{margin-bottom:var(--sp-2)}.site-footer a{color:var(--text-muted);margin-block:-4px;padding-block:4px;text-decoration:none;display:inline-block}.site-footer a:hover{color:var(--accent);text-decoration:underline}.site-footer__bottom{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--border);gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-faint);font-family:var(--font-mono);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.ad-slot{margin-block:var(--sp-6);justify-content:center;align-items:center;min-height:280px;display:flex;overflow:hidden}@media (min-width:768px){.ad-slot{min-height:250px}}
.backdrop{z-index:-1;pointer-events:none;contain:strict;position:fixed;inset:0}.backdrop:before{content:"";background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size);position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 78%);mask-image:linear-gradient(#000 0%,#0000 78%)}.backdrop:after{content:"";background:radial-gradient(60% 55% at 18% 0%, var(--glow-a), transparent 70%), radial-gradient(50% 50% at 82% 8%, var(--glow-b), transparent 70%);height:70vh;position:absolute;inset:-20% -10% auto}.edge-glow{transition:box-shadow var(--dur) var(--ease);position:relative}.edge-glow:hover,.edge-glow:focus-within{box-shadow:inset 0 0 0 1px var(--sheen), var(--shadow-lift)}.brackets:before,.brackets:after{content:"";border-color:var(--accent);opacity:0;width:10px;height:10px;transition:opacity var(--dur) var(--ease), width var(--dur) var(--ease), height var(--dur) var(--ease);pointer-events:none;border-style:solid;border-width:0;position:absolute}.brackets:before{border-top-left-radius:var(--r-lg);border-top-width:2px;border-left-width:2px;top:-1px;left:-1px}.brackets:after{border-bottom-right-radius:var(--r-lg);border-bottom-width:2px;border-right-width:2px;bottom:-1px;right:-1px}.brackets:hover:before,.brackets:hover:after,.brackets:focus-within:before,.brackets:focus-within:after{opacity:1;width:18px;height:18px}.rule-sweep{padding-bottom:var(--sp-3);position:relative}.rule-sweep:after{content:"";background:linear-gradient(to right, var(--sheen), transparent 65%);transform-origin:0;width:100%;height:1px;position:absolute;bottom:0;left:0;scale:0 1}@supports (animation-timeline:view()){[data-reveal]{animation:linear both reveal-in;animation-timeline:view();animation-range:entry calc(4% + var(--i,0) * 3%) cover 30%}[data-reveal=fade]{animation-name:reveal-fade}[data-reveal=left]{animation-name:reveal-left}[data-reveal=scale]{animation-name:reveal-scale}.rule-sweep:after{animation:linear both rule-draw;animation-timeline:view();animation-range:entry 10% cover 32%}.js-reveal-ready [data-reveal]{opacity:1;transition:none;translate:none}}@keyframes reveal-in{0%{opacity:0;translate:0 14px}to{opacity:1;translate:0}}@keyframes reveal-fade{0%{opacity:0}to{opacity:1}}@keyframes reveal-left{0%{opacity:0;translate:-16px}to{opacity:1;translate:0}}@keyframes reveal-scale{0%{opacity:0;scale:.97}to{opacity:1;scale:1}}@keyframes rule-draw{0%{scale:0 1}to{scale:1}}@supports not (animation-timeline:view()){.rule-sweep:after{scale:1}}.caret{background:var(--accent);width:.55em;height:1.05em;animation:1.15s step-end infinite caret-blink;display:inline-block;translate:0 .16em}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1!important;animation:none!important;translate:none!important}.rule-sweep:after{animation:none!important;scale:1!important}.caret{animation:none}}.progress{z-index:60;pointer-events:none;transform-origin:0;background:linear-gradient(to right, var(--accent), color-mix(in srgb, var(--accent) 35%, transparent));opacity:0;height:2px;position:fixed;inset:0 0 auto;scale:0 1}@supports (animation-timeline:scroll()){.progress{opacity:1;animation:linear both progress-grow;animation-timeline:scroll(root)}}@keyframes progress-grow{0%{scale:0 1}to{scale:1}}@supports (animation-timeline:scroll()){.site-header{animation:linear both header-settle;animation-timeline:scroll(root);animation-range:0 120px}}@keyframes header-settle{0%{border-bottom-color:#0000;box-shadow:0 0 #0000}to{border-bottom-color:var(--border);box-shadow:var(--shadow-pop)}}.prose a:not(.btn),.doc a:not(.btn),.note a{transition:background-size var(--dur) var(--ease), color var(--dur-fast) var(--ease);background-image:linear-gradient(90deg,currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:1px;text-decoration:none}.prose a:not(.btn):hover,.prose a:not(.btn):focus-visible,.doc a:not(.btn):hover,.doc a:not(.btn):focus-visible,.note a:hover,.note a:focus-visible{background-size:100% 1px}@supports not (background-size:0% 1px){.prose a:not(.btn),.doc a:not(.btn){text-decoration:underline}}.btn,.icon-btn{transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), scale var(--dur-fast) var(--ease)}.btn:active,.icon-btn:active{scale:.97}.btn--primary{position:relative;overflow:hidden}.btn--primary:after{content:"";background:linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--accent-contrast) 30%, transparent) 50%, transparent 70%);transition:translate .52s var(--ease-out);pointer-events:none;position:absolute;inset:0;translate:-120%}.btn--primary:hover:after{translate:120%}.table-wrap tbody tr{transition:background var(--dur-fast) var(--ease)}.table-wrap tbody tr:hover{background:var(--bg-hover)}details.fold{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);margin-block:var(--sp-4)}details.fold>summary{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);font-weight:600;list-style:none;display:flex}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary:before{content:"▸";color:var(--accent);font-family:var(--font-mono);transition:rotate var(--dur) var(--ease)}details.fold[open]>summary:before{rotate:90deg}details.fold>:not(summary){padding:0 var(--sp-4) var(--sp-4);margin:0}@media (prefers-reduced-motion:reduce){.progress{display:none}.site-header{border-bottom-color:var(--border);animation:none!important}.prose a:not(.btn),.doc a:not(.btn),.note a{background-size:100% 1px;transition:none}.btn:active,.icon-btn:active{scale:1}.btn--primary:after{display:none}details.fold>summary:before{transition:none}}
:root{--enter-step:60ms;--ease-expo:cubic-bezier(.16, 1, .3, 1);--ease-back:cubic-bezier(.18, 1.3, .4, 1)}[data-enter]{animation-duration:.64s;animation-timing-function:var(--ease-back);animation-fill-mode:both;animation-delay:calc(var(--i,0) * var(--enter-step))}[data-enter=rise]{animation-name:enter-rise}@keyframes enter-rise{0%{translate:0 60px;scale:.94}to{translate:0;scale:1}}[data-enter=panel]{animation-name:enter-panel;animation-duration:.82s;animation-timing-function:var(--ease-expo)}@keyframes enter-panel{0%{translate:0 110px;rotate:x -22deg;scale:.86}to{translate:0;rotate:x 0deg;scale:1}}[data-enter=fade]{animation-name:enter-fade}@keyframes enter-fade{0%{opacity:0;translate:0 34px;scale:.9}to{opacity:1;translate:0;scale:1}}[data-enter=left]{animation-name:enter-left}@keyframes enter-left{0%{opacity:0;translate:-56px}to{opacity:1;translate:0}}.hero__grid{perspective:1200px}.hero__title-main{background-image:linear-gradient(100deg, var(--text) 0%, var(--text) 36%, var(--accent) 46%, var(--text) 56%, var(--text) 100%);color:#0000;animation:title-sheen .9s .18s var(--ease-expo) both;background-position:100% 0;background-repeat:no-repeat;background-size:260% 100%;-webkit-background-clip:text;background-clip:text}@keyframes title-sheen{0%{background-position:0 0}to{background-position:100% 0}}.boot{z-index:61;pointer-events:none;background:linear-gradient(to right, transparent, var(--accent) 35%, var(--accent) 65%, transparent);transform-origin:0;height:3px;animation:boot-sweep .9s var(--ease-expo) both;position:fixed;inset:0 0 auto}@keyframes boot-sweep{0%{opacity:1;scale:0 1}60%{opacity:1;scale:1}to{opacity:0;scale:1}}.backdrop:before{animation:backdrop-in 1s var(--ease-expo) both}@keyframes backdrop-in{0%{opacity:0;scale:1.08}to{opacity:1;scale:1}}.backdrop:after{animation:glow-in 1.1s var(--ease-expo) both}@keyframes glow-in{0%{opacity:0;scale:.85}to{opacity:1;scale:1}}.site-header__inner{animation:header-drop .62s var(--ease-back) both}@keyframes header-drop{0%{opacity:0;translate:0 -26px}to{opacity:1;translate:0}}.tab--on{animation:tab-open .42s .38s var(--ease-back) both}@keyframes tab-open{0%{opacity:0;translate:-14px}to{opacity:1;translate:0}}.runner__line{animation:line-in .26s var(--ease-back) both}@keyframes line-in{0%{opacity:0;translate:-16px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:reduce){[data-enter],.backdrop:before,.backdrop:after,.site-header__inner,.tab--on,.runner__line,.hero__title-main{opacity:1!important;animation:none!important;translate:none!important;rotate:none!important;scale:none!important}.hero__title-main{color:var(--text);background-image:none}.boot{display:none}}
.win{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.win__chrome{align-items:center;gap:var(--sp-3);min-height:38px;padding-inline:var(--sp-3);background:var(--chrome-bg);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--chrome-text);display:flex}.win__title{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;flex:1;min-width:0;overflow:hidden}.win__actions{gap:var(--sp-2);flex:none;display:flex}.win__body{padding:var(--sp-4)}.win__body--flush{padding:0}.prompt-h{padding-left:1.35em;position:relative}.prompt-h:before{content:"❯";color:var(--accent);font-family:var(--font-mono);font-weight:700;position:absolute;left:0}.btn{min-height:44px;padding-inline:var(--sp-5);border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);justify-content:center;align-items:center;gap:.5em;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--accent);color:var(--text)}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-contrast)}.btn--chrome{min-height:26px;padding-inline:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--r-sm);color:var(--chrome-text);background:0 0;border-color:#0000;font-weight:500}.btn--chrome:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.icon-btn svg{width:18px;height:18px;display:block}.search-trigger{align-items:center;gap:var(--sp-3);min-width:190px;height:36px;padding-inline:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-sunken);color:var(--text-faint);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:inline-flex}.search-trigger:hover{border-color:var(--accent);color:var(--text-muted)}.search-trigger__hint{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);border:1px solid var(--border);border-radius:var(--r-sm);margin-left:auto;padding:0 .35em}.badge{border-radius:var(--r-full);border:1px solid var(--border);background:var(--bg-sunken);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;align-items:center;gap:.4em;padding:.12em .6em;line-height:1.7;display:inline-flex}.badge--verified{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));background:var(--ok-weak);color:var(--ok)}.badge--version{border-color:color-mix(in srgb, var(--info) 40%, var(--border));background:var(--info-weak);color:var(--info)}.badge--soon{color:var(--text-faint);border-style:dashed}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(248px,1fr));display:grid}@media (min-width:1100px){.card-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{gap:var(--sp-2);padding:var(--sp-5);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);color:inherit;transition:border-color var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease), translate var(--dur) var(--ease);flex-direction:column;margin:0;text-decoration:none;display:flex;position:relative}.card:hover,.card:focus-within{border-color:var(--border-strong);box-shadow:var(--shadow-lift);translate:0 -2px}a.card:hover{color:inherit}.card__label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:.5em;margin:0;display:flex}.card__num{color:var(--accent);font-weight:700}.card__sep{color:var(--border-strong)}.card__label code{text-transform:none;letter-spacing:0}.card__title{font-size:var(--fs-base);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.6}.card__title--lg{font-size:var(--fs-lg)}.card__desc{font-size:var(--fs-sm);color:var(--text);margin:0;line-height:1.9}.card__foot{padding-top:var(--sp-3);margin:auto 0 0}.card--feature:before{content:"";border-radius:inherit;background:linear-gradient(160deg, var(--accent-weak), transparent 55%);opacity:0;transition:opacity var(--dur) var(--ease);pointer-events:none;position:absolute;inset:0}.card--feature:hover:before{opacity:.6}.card--feature>*{position:relative}.note{gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-sunken);font-size:var(--fs-sm);border-left-width:3px;line-height:1.8;display:flex}.note__mark{font-family:var(--font-mono);color:var(--text-faint);flex:none;font-weight:700}.note>:last-child{margin-bottom:0}.note--warn{border-left-color:var(--warn);background:var(--warn-weak)}.note--error{border-left-color:var(--error);background:var(--error-weak)}.note--ok{border-left-color:var(--ok);background:var(--ok-weak)}.note--info{border-left-color:var(--info);background:var(--info-weak)}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-raised);overflow-x:auto}.table-wrap table{min-width:32rem}.table-wrap tr:last-child td{border-bottom:0}.js-reveal-ready [data-reveal]{opacity:0;transition:opacity .4s var(--ease), translate .4s var(--ease);translate:0 10px}.js-reveal-ready [data-reveal].is-visible{opacity:1;translate:0}@media (prefers-reduced-motion:reduce){.js-reveal-ready [data-reveal]{opacity:1;translate:none}}.breadcrumb{margin-bottom:var(--sp-5);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.breadcrumb ol{flex-wrap:wrap;gap:.5em;margin:0;padding:0;list-style:none;display:flex}.breadcrumb li{align-items:center;gap:.5em;margin:0;display:flex}.breadcrumb li+li:before{content:"/";color:var(--border-strong)}.breadcrumb ol:before{content:"❯";color:var(--accent);align-self:center}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--accent);text-decoration:underline}.doc h1{margin-bottom:var(--sp-4)}.doc__lead{font-size:var(--fs-lg);color:var(--text-muted);padding-bottom:var(--sp-5);border-bottom:1px solid var(--border);line-height:1.9}.doc h2{margin-top:var(--sp-7);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);font-size:var(--fs-lg)}.doc h3{margin-top:var(--sp-5);margin-bottom:var(--sp-2);font-size:var(--fs-base)}.doc__updated{margin-top:var(--sp-7);padding-top:var(--sp-4);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.doc dl{margin:0 0 var(--sp-4)}.doc dt{margin-top:var(--sp-3);font-weight:600}.doc dd{margin:0 0 var(--sp-2);padding-left:var(--sp-4);color:var(--text-muted)}.form{margin-block:var(--sp-6);max-width:40em}.field{margin-bottom:var(--sp-5)}.field__label{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:600;display:flex}.field__req{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--error);border:1px solid color-mix(in srgb, var(--error) 45%, var(--border));background:var(--error-weak);border-radius:var(--r-sm);padding:0 .4em;font-weight:500}.field__control{width:100%;min-height:44px;padding:var(--sp-3);background:var(--bg-sunken);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);line-height:1.7;display:block}.field__control:hover{border-color:var(--accent)}.field__control:focus{background:var(--bg-raised);border-color:var(--accent)}textarea.field__control{resize:vertical;min-height:10em;font-family:inherit}select.field__control{cursor:pointer;appearance:none;padding-right:var(--sp-7);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}.field__help{margin:var(--sp-2) 0 0;font-size:var(--fs-xs);color:var(--text-muted);line-height:1.75}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.errpage{padding-block:var(--sp-8) var(--sp-9)}.errpage__win{max-width:46rem;box-shadow:var(--shadow-lift);margin-inline:auto}.errpage__body{padding:var(--sp-6)}.errpage__throw{font-family:var(--font-mono);font-size:var(--fs-lg);margin:0 0 var(--sp-4);word-break:break-word;font-weight:400;line-height:1.6}.errpage__ex{color:var(--error);font-weight:700}.errpage__colon{color:var(--text-faint);margin-right:.35em}.errpage__msg{color:var(--text)}.errpage__trace{margin:0 0 var(--sp-5);padding:var(--sp-3) var(--sp-4);background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-faint);font-size:var(--fs-xs);line-height:1.9;overflow-x:auto}.errpage__lead{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.9}.errpage__lead p:last-child{margin-bottom:0}.errpage__lead strong{color:var(--text)}.errpage__actions{gap:var(--sp-3);margin-top:var(--sp-6);padding-top:var(--sp-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}@media (max-width:640px){.errpage{padding-block:var(--sp-6) var(--sp-8)}.errpage__body{padding:var(--sp-4)}.errpage__throw{font-size:var(--fs-base)}}
.t-type,.t-key,.t-str,.t-num,.t-fn,.t-bad{font-weight:inherit;font-style:normal}.t-type{color:var(--accent)}.t-key{color:var(--accent-2)}.t-str{color:var(--ok)}.t-num{color:var(--warn)}.t-fn{color:var(--info)}.t-bad{color:var(--error);-webkit-text-decoration:underline wavy;text-decoration:underline wavy;-webkit-text-decoration-color:color-mix(in srgb, var(--error) 34%, transparent);text-decoration-color:color-mix(in srgb, var(--error) 34%, transparent);text-underline-offset:.36em;text-decoration-skip-ink:none;text-decoration-thickness:1px}.t-em{color:var(--text);font-weight:700}.t-dim{color:var(--text-faint);font-weight:inherit}a .t-type,a .t-key,a .t-str,a .t-num,a .t-fn,a .t-bad,a .t-em{color:inherit}.t-num{font-variant-numeric:tabular-nums}.t-code{font-family:var(--font-mono);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--code-bg);color:var(--code-text);white-space:nowrap;padding:.1em .4em;font-size:.9em}.doc h2:before,.doc h3:before{font-family:var(--font-mono);color:var(--accent);margin-right:.5em;font-size:.86em;font-weight:700}.doc h2:before{content:"##"}.doc h3:before{content:"###"}.doc dt{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.02em}.doc li::marker{color:var(--accent-2);font-family:var(--font-mono)}.prose strong{color:var(--text);font-weight:700}.tabstrip{background:var(--bg-sunken);align-items:stretch;gap:0;padding-inline:0}.tab{padding-inline:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em;color:var(--text-muted);border-right:1px solid var(--border);align-items:center;gap:.55em;min-width:0;max-width:100%;display:inline-flex}.tab--on{background:var(--bg-raised);color:var(--text);position:relative}.tab--on:before{content:"";background:var(--lang,var(--accent));height:2px;position:absolute;inset:0 0 auto}.tab__mark{background:var(--lang,var(--accent));flex:none;width:8px;height:8px}.tab--error .tab__mark{background:var(--error)}@media (max-width:480px){.tab{padding-inline:var(--sp-3)}}.tabstrip .runner__tools,.tabstrip .win__actions{padding-inline:var(--sp-3);margin-left:auto}.tab__dirty{border-radius:var(--r-full);background:var(--warn);opacity:0;flex:none;width:7px;height:7px}[data-runner-dirty=true] .tab__dirty{opacity:1}.runner__panel{align-items:center;gap:var(--sp-3);min-height:30px;padding-inline:var(--sp-4);border-top:1px solid var(--border);background:var(--bg-sunken);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);display:flex}.runner__panel-name{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--accent);padding-bottom:2px;position:relative}.runner__panel-name:before{content:"❯ ";color:var(--accent)}.runner__panel .runner__status{color:var(--text-muted);text-align:right;margin-left:auto}.runner__where{letter-spacing:.06em;margin-left:auto}.statusbar{align-items:center;gap:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.04em;display:flex}.statusbar__gap{flex:1}.statusbar__item--on{color:var(--accent)}
.runner{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lift);transition:border-color var(--dur) var(--ease);position:relative;overflow:hidden}.runner:focus-within{border-color:var(--border-strong)}.runner__chrome{align-items:center;gap:var(--sp-3);min-height:40px;padding-inline:var(--sp-3);background:var(--chrome-bg);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--chrome-text);display:flex;position:relative}.runner__name{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;flex:1;min-width:0;overflow:hidden}.runner__tools{align-items:center;gap:var(--sp-1);flex:none;display:flex}.runner__editor{--editor-pad-y:var(--sp-4);--editor-pad-x:var(--sp-4);--editor-min-h:9rem;--editor-max-h:26rem;position:relative}.runner__view,.runner__input{padding:var(--editor-pad-y) var(--editor-pad-x);font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);letter-spacing:0;tab-size:2;white-space:pre;overscroll-behavior:contain;min-height:var(--editor-min-h);max-height:var(--editor-max-h);box-sizing:border-box;border:0;margin:0;overflow:auto}.runner__view{background:var(--code-bg);color:var(--code-text);pointer-events:none;-webkit-user-select:none;user-select:none;overflow:hidden}.runner__view:after{content:"";height:calc(var(--lh-code) * 1em);display:block}.runner__input{resize:none;color:#0000;width:100%;height:100%;caret-color:var(--accent);background:0 0;outline:none;position:absolute;inset:0}.runner__input::selection{background:var(--select-bg);color:var(--select-fg)}.runner__input:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.runner:not([data-runner-ready=true]) .runner__input{display:none}.runner[data-running=true] .runner__chrome:after{content:"";background:linear-gradient(to right, transparent, var(--sheen), transparent);background-repeat:no-repeat;background-size:40% 100%;height:2px;animation:1.1s linear infinite runner-scan;position:absolute;bottom:-1px;left:0;right:0}@keyframes runner-scan{0%{background-position:-40% 0}to{background-position:140% 0}}@media (prefers-reduced-motion:reduce){.runner[data-running=true] .runner__chrome:after{animation:none}}.runner__out{border-top:1px solid var(--border);background:var(--bg-sunken);padding:var(--sp-3) var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);color:var(--text-muted);min-height:calc(var(--out-lines,3) * var(--lh-code) * 1em + var(--sp-3) * 2 + 1px);overscroll-behavior:contain;white-space:pre-wrap;word-break:break-word;max-height:12rem;display:block;overflow:auto}.runner__out[data-empty=true]:before{content:"実行するとここに出力が出ます";color:var(--text-faint)}.runner__line{display:block}.runner__line--log{color:var(--text)}.runner__line--return{color:var(--accent);font-weight:600}.runner__line--warn{color:var(--warn)}.runner__line--error{color:var(--error)}.runner__line--system{color:var(--text-faint)}.runner__foot{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-raised);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);display:flex}.runner__status{color:var(--text-muted);margin-left:auto}.runner__hint kbd{font-size:.95em}.runner:not([data-runner-ready=true]) .runner__tools,.runner:not([data-runner-ready=true]) .runner__hint{visibility:hidden}.runner:not([data-runner-ready=true]) .runner__out[data-empty=true]:before{content:""}.code{background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-lg);margin-block:var(--sp-5);position:relative;overflow:hidden}.code__head{align-items:center;gap:var(--sp-3);min-height:34px;padding-inline:var(--sp-3);background:var(--chrome-bg);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--chrome-text);display:flex}.code__lang{border-radius:var(--r-sm);background:var(--bg-inset);letter-spacing:.04em;text-transform:uppercase;align-self:center;margin-left:auto;padding:.05em .45em}.code__file{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.code__copy{margin-inline:var(--sp-2);align-self:center}.code__head{align-items:stretch;gap:0;padding-inline:0}.code__body{padding:var(--sp-4) var(--sp-4) var(--sp-4) 0;overflow-x:auto}.code pre{counter-reset:codeline;color:var(--code-text)}.code__line{padding-left:3.6em;padding-right:var(--sp-4);counter-increment:codeline;display:block;position:relative}.code__line:before{content:counter(codeline);text-align:right;width:2.6em;color:var(--code-line);-webkit-user-select:none;user-select:none;position:absolute;left:0}.code__line--mark{background:var(--code-highlight);box-shadow:inset 3px 0 0 var(--warn)}.code--bad{border-color:color-mix(in srgb, var(--error) 45%, var(--border))}.code--bad .code__head{background:var(--error-weak);color:var(--error)}.code--bad .code__head:before,.code--good .code__head:before{padding-inline:var(--sp-3);border-right:1px solid var(--border);align-items:center;font-weight:700;display:flex}.code--bad .code__head:before{content:"✗ 間違い"}.code--good .code__head:before{content:"✓ 正しい書き方";color:var(--ok)}.output-block{margin-block:calc(var(--sp-5) * -1 + var(--sp-3)) var(--sp-5);border:1px solid var(--border);border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--bg-sunken);padding:var(--sp-3) var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-code);line-height:var(--lh-code);color:var(--text-muted);white-space:pre-wrap;border-top:0}.output-block:before{content:"出力";font-size:var(--fs-xs);letter-spacing:.08em;color:var(--text-faint);margin-bottom:var(--sp-1);display:block}:root{--hl-foreground:var(--code-text);--hl-background:transparent;--hl-token-keyword:var(--code-keyword);--hl-token-constant:var(--code-number);--hl-token-string:var(--code-string);--hl-token-string-expression:var(--code-string);--hl-token-comment:var(--code-comment);--hl-token-function:var(--code-function);--hl-token-parameter:var(--code-text);--hl-token-punctuation:var(--code-punct);--hl-token-link:var(--code-type)}.hl-keyword{color:var(--code-keyword)}.hl-property{color:var(--code-function)}.hl-type{color:var(--code-type)}.hl-value{color:var(--code-string)}.hl-number{color:var(--code-number)}.hl-comment{color:var(--code-comment);font-style:normal}.code__body code span[style*=--hl-token-comment],.runner__view code span[style*=--hl-token-comment]{font-style:normal}@media (max-width:640px){.runner__view,.runner__input,.code__body{font-size:.8125rem}.runner__editor{--editor-pad-x:var(--sp-3);--editor-min-h:8rem;--editor-max-h:18rem}.runner__out{max-height:9rem}.runner__foot{flex-wrap:wrap}.runner__hint{display:none}}
.hero{padding-block:var(--sp-7) var(--sp-8)}.hero__grid{gap:var(--sp-7);grid-template-columns:minmax(0,1fr);align-items:center;display:grid}@media (min-width:1024px){.hero__grid{gap:var(--sp-8);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}}.hero__kicker{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--sp-4);align-items:center;gap:.7em;display:inline-flex}.hero__kicker:before{content:"";background:linear-gradient(to right, var(--accent), transparent);width:2.2em;height:1px}.hero__title{font-size:var(--fs-hero);letter-spacing:-.025em;margin-bottom:var(--sp-4);line-height:1.15}.hero__lead{margin-bottom:var(--sp-3);color:var(--text);font-size:clamp(1.0625rem,1rem + .4vw,1.3125rem);line-height:1.8}.hero__lead strong{background-image:linear-gradient(to right, var(--accent), var(--accent));background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;padding-bottom:1px;font-weight:700}.hero__sub{color:var(--text-muted);max-width:32em;margin-bottom:var(--sp-5);line-height:1.9}.hero__actions{gap:var(--sp-3);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.hero__facts{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.hero__facts li{margin:0}.hero__demo{position:relative}.hero__demo:before{content:"";z-index:-1;background:radial-gradient(60% 60% at 60% 40%, var(--glow-a), transparent 72%);pointer-events:none;position:absolute;inset:-8% -4%}.hero__demo-note{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.8}.hero__demo-note strong{color:var(--text)}.section{padding-block:var(--sp-8);border-top:1px solid var(--border)}.section--tint{background:color-mix(in srgb, var(--bg-raised) 55%, var(--bg))}.section__head{margin-bottom:var(--sp-6)}.section__head h2{letter-spacing:-.015em;font-size:clamp(1.25rem,1.05rem + .8vw,1.625rem)}.section__note{font-size:var(--fs-sm);color:var(--text-muted);margin:var(--sp-2) 0 0;max-width:46em;padding-left:1.35em}.sandbox{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:900px){.sandbox{gap:var(--sp-7);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}.sandbox__fig{margin:0}.sandbox__fig figcaption{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);line-height:1.8}.layer{border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-4) var(--sp-4);background:var(--bg-raised);display:block;position:relative}.layer+.layer,.layer .layer{margin-top:var(--sp-4)}.layer__tag{top:-.72em;left:var(--sp-4);background:var(--bg);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--text-muted);padding:0 .55em;position:absolute}.layer__origin,.layer__note,.layer__stop{font-size:var(--fs-xs);line-height:1.85;display:block}.layer__origin{font-family:var(--font-mono);color:var(--text-muted)}.layer__origin b{color:var(--accent)}.layer__note{color:var(--text-muted);margin-top:var(--sp-1)}.layer__note code{font-size:.95em}.layer--page{background:var(--bg-raised);border-style:solid}.layer--page>.layer__note{color:var(--text-faint)}.layer--frame{border-color:var(--accent);background:var(--accent-weak);border-style:dashed}.layer--frame>.layer__tag{background:var(--bg-raised);color:var(--accent);font-weight:700}.layer--worker{border-color:var(--border-strong);background:var(--code-bg);border-style:solid}.layer--worker>.layer__tag{background:var(--accent-weak)}.layer__stop{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px dashed var(--border);color:var(--text-faint);font-family:var(--font-mono)}.sandbox__facts-head{margin:0 0 var(--sp-3)}.sandbox__foot{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.8}.verdict{font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:.4em;display:inline-flex}.verdict--ok{color:var(--ok)}.verdict--note{color:var(--text-muted)}.lang-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(164px,1fr));margin:0;padding:0;list-style:none;display:grid}.lang{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-raised);transition:border-color var(--dur) var(--ease), transform var(--dur) var(--ease);margin:0;display:flex;position:relative;overflow:hidden}.lang:before{content:"";background:var(--lang,var(--border-strong));opacity:.85;width:3px;position:absolute;top:0;bottom:0;left:0}.lang--soon{border-style:dashed}.lang--soon .lang__name,.lang--soon .lang__mark{opacity:.72}.lang__mark{border-radius:var(--r-sm);background:color-mix(in srgb, var(--lang,var(--text-faint)) 14%, transparent);width:32px;height:32px;color:var(--lang,var(--text-muted));font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;flex:none;place-items:center;font-weight:700;display:grid}.lang__body{min-width:0}.lang__name{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.lang__state{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);display:block}.lang--ready{border-color:color-mix(in srgb, var(--lang) 45%, var(--border))}.lang--ready .lang__state{color:var(--ok);font-weight:600}.roadmap{padding:var(--sp-2) var(--sp-4) var(--sp-4);counter-reset:none;margin:0;list-style:none}.roadmap__row{gap:var(--sp-4);padding:var(--sp-3) 0;font-size:var(--fs-sm);grid-template-columns:4.5rem minmax(0,1fr);align-items:start;margin:0;display:grid;position:relative}.roadmap__row:before{content:"";left:calc(4.5rem - var(--sp-4) - .5rem);background:var(--border);width:1px;position:absolute;top:0;bottom:0}.roadmap__row:first-child:before{top:50%}.roadmap__row:last-child:before{bottom:50%}.roadmap__phase{align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);padding-top:.15em;display:flex;position:relative}.roadmap__dot{left:calc(4.5rem - var(--sp-4) - .5rem - 3px);border-radius:var(--r-full);background:var(--border-strong);outline:3px solid var(--bg-raised);width:7px;height:7px;position:absolute}.roadmap__row--done .roadmap__dot{background:var(--ok)}.roadmap__row--now .roadmap__dot{background:var(--accent)}.roadmap__row--now .roadmap__dot:after{content:"";border-radius:var(--r-full);border:1px solid var(--accent);position:absolute;inset:-4px}.roadmap__row--done .roadmap__phase{color:var(--ok)}.roadmap__row--now .roadmap__phase{color:var(--accent);font-weight:700}.roadmap__body{min-width:0}.roadmap__title{align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-weight:600;display:flex}.roadmap__state{font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:var(--r-sm);background:var(--ok-weak);color:var(--ok);padding:0 .45em;font-weight:500}.roadmap__state--now{background:var(--accent-weak);color:var(--accent)}.roadmap__desc{color:var(--text-muted);margin-top:.15em;display:block}.roadmap__row--todo .roadmap__title{color:var(--text-muted);font-weight:500}@media (max-width:640px){.hero{padding-block:var(--sp-6) var(--sp-7)}.section{padding-block:var(--sp-7)}.roadmap__row{gap:var(--sp-3);grid-template-columns:3.2rem minmax(0,1fr)}.roadmap__row:before{left:calc(3.2rem - var(--sp-3) - .4rem)}.roadmap__dot{left:calc(3.2rem - var(--sp-3) - .4rem - 3px)}}
.article__grid{gap:var(--sp-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:1080px){.article__grid{grid-template-columns:minmax(0, 1fr) var(--sidebar);gap:var(--sp-8)}}.article{min-width:0;max-width:46em}.article__title{font-size:var(--fs-2xl);letter-spacing:-.02em;margin-bottom:var(--sp-4);line-height:1.35}.article__lead{font-size:var(--fs-lg);color:var(--text);margin-bottom:var(--sp-4);line-height:1.9}.factbar{align-items:center;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-6);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.factbar__item{white-space:nowrap;align-items:center;gap:.5em;display:inline-flex}.factbar__key{color:var(--text-faint);letter-spacing:.08em}.factbar code{padding:.05em .4em;font-size:1em}.article__body{margin-bottom:var(--sp-8)}.article__body h2:before,.article__body h3:before{font-family:var(--font-mono);color:var(--accent);margin-right:.5em;font-size:.86em;font-weight:700}.article__body h2:before{content:"##"}.article__body h3:before{content:"###"}.article__body h2{margin-top:var(--sp-8);margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--header-h) + var(--sp-4))}.article__body h3{margin-top:var(--sp-6);margin-bottom:var(--sp-3);scroll-margin-top:calc(var(--header-h) + var(--sp-4))}.article__body li::marker{color:var(--accent-2);font-family:var(--font-mono)}.article__body p,.article__body li{line-height:var(--lh-body)}.toc{min-width:0;font-size:var(--fs-sm)}@media (min-width:1080px){.toc{top:calc(var(--header-h) + var(--sp-4));max-height:calc(100vh - var(--header-h) - var(--sp-6));overscroll-behavior:contain;position:sticky;overflow-y:auto}}.toc__head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border)}.toc ol{margin:0;padding:0;list-style:none}.toc__item{border-left:1px solid var(--border);margin:0}.toc__item--h3{padding-left:var(--sp-3)}.toc a{padding:.4em var(--sp-3);color:var(--text-muted);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);border-left:2px solid #0000;margin-left:-1px;text-decoration:none;display:block}.toc a:hover{color:var(--accent);border-left-color:var(--accent)}.sources{margin-bottom:var(--sp-7);padding:var(--sp-5);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md)}.sources h2{font-size:var(--fs-base);margin-bottom:var(--sp-3)}.sources__list{margin:0 0 var(--sp-3);padding-left:1.4em}.sources__list li{margin-bottom:var(--sp-2);line-height:1.7}.sources__host{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);margin-left:.5em;display:inline-block}.sources__note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.related{margin-bottom:var(--sp-7)}.related h2{font-size:var(--fs-base);margin-bottom:var(--sp-4)}.pager{gap:var(--sp-3);margin-bottom:var(--sp-6);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:640px){.pager{grid-template-columns:repeat(2,minmax(0,1fr))}}.pager__link{gap:var(--sp-1);padding:var(--sp-4);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--r-md);color:inherit;transition:border-color var(--dur) var(--ease);flex-direction:column;text-decoration:none;display:flex}.pager__link:hover{border-color:var(--accent);color:inherit}.pager__link--next{text-align:right;grid-column:2}.pager__dir{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint)}.pager__title{font-weight:600}.article__raw{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}.article__raw a{color:var(--text-muted);margin-block:-5px;padding-block:5px;text-decoration:none;display:inline-block}.article__raw a:hover{color:var(--accent);text-decoration:underline}.langtop{margin-bottom:var(--sp-7)}.langtop__title{font-size:var(--fs-2xl);margin-bottom:var(--sp-3);align-items:center;gap:.5em;display:flex}.langtop__mark{background:var(--lang,var(--accent));flex:none;width:.6em;height:.6em}.langtop__lead{font-size:var(--fs-lg);color:var(--text-muted);margin-bottom:var(--sp-2)}.langtop__count{color:var(--text-muted);margin:0}.lang__hit{z-index:1;text-decoration:none;position:absolute;inset:0}.lang:has(.lang__hit){cursor:pointer;position:relative}.lang:has(.lang__hit):hover{border-color:var(--accent)}
.backdrop:before{background-image: repeating-linear-gradient(to bottom, var(--scan-line) 0, var(--scan-line) 1px, transparent 1px, transparent var(--scan-size)),  linear-gradient(to right, var(--grid-line) 1px, transparent 1px),  linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);background-size:100% var(--scan-size), var(--grid-size) var(--grid-size), var(--grid-size) var(--grid-size)}.notch-tr{clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, 0 100%)}.notch-bl{clip-path:polygon(0 0, 100% 0, 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)))}.notch{clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)))}.runner,.win,.code,.card{background-image:linear-gradient(to right, var(--accent) 0, color-mix(in srgb, var(--accent) 30%, transparent) 38%, transparent 62%);background-position:0 0;background-repeat:no-repeat;background-size:100% 1px}.code--bad{background-image:linear-gradient(to right, var(--error) 0, color-mix(in srgb, var(--error) 30%, transparent) 38%, transparent 62%)}.runner{--notch:14px;clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, 0 100%)}.section__index{margin-right:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;color:var(--accent-2);vertical-align:middle;align-items:center;gap:.35em;font-weight:700;display:inline-flex}.section__index:before{content:"[";color:var(--text-faint);font-weight:400}.section__index:after{content:"]";color:var(--text-faint);font-weight:400}.section__head h2{flex-wrap:wrap;align-items:baseline;display:flex}.section{background-image:repeating-linear-gradient(-45deg, var(--border) 0, var(--border) 1px, transparent 1px, transparent 7px);background-position:0 0;background-repeat:no-repeat;background-size:84px 5px;position:relative}.section--tint{background-image:repeating-linear-gradient(-45deg, var(--border) 0, var(--border) 1px, transparent 1px, transparent 7px), linear-gradient(color-mix(in srgb, var(--bg-raised) 55%, var(--bg)) 0 0);background-color:#0000;background-repeat:no-repeat,no-repeat;background-size:84px 5px,100% 100%}.btn{--notch:var(--notch-sm);font-family:var(--font-mono);letter-spacing:.04em;text-transform:none;clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)))}.btn--chrome{--notch:4px}.btn--primary{border-color:var(--accent);box-shadow:inset 3px 0 0 0 color-mix(in srgb, var(--accent-contrast) 45%, transparent)}.badge{--notch:5px;letter-spacing:.06em;clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)));border-radius:0;font-weight:600}.card__num{color:var(--accent-2);letter-spacing:.1em;font-weight:700}.card__label{letter-spacing:.14em}.card--feature .card__label:after{content:""}.prompt-h:before{content:"❯";text-shadow:0 0 12px var(--sheen)}.runner__chrome,.win__chrome,.code__head{letter-spacing:.06em;text-transform:none}.runner__name,.win__title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lang{background-image:none;border-radius:0}.lang__mark{letter-spacing:0;border-radius:0}.lang--ready{border-color:var(--accent-2);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent-2) 22%, transparent)}.lang--ready:before{background:var(--accent-2);opacity:1}.lang--ready .lang__state{color:var(--accent-2)}.layer{border-radius:0}.layer--frame{--notch:12px;clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, 0 100%)}.layer__tag{letter-spacing:.14em;text-transform:uppercase}.roadmap__dot{border-radius:0;rotate:45deg}.roadmap__row--now .roadmap__dot:after{border-radius:0}.roadmap__state{letter-spacing:.08em;border-radius:0}.table-wrap{border-radius:0}.table-wrap thead th{letter-spacing:.1em;font-family:var(--font-mono);font-size:var(--fs-xs);text-transform:uppercase;color:var(--accent)}.note{border-left-width:3px;border-radius:0}.note__mark{font-weight:700}.hero{position:relative;overflow:hidden}.hero:after{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(to right, var(--sheen) 1px, transparent 1px), linear-gradient(to bottom, var(--sheen) 1px, transparent 1px);opacity:.22;transform-origin:bottom;background-size:46px 46px;height:190px;position:absolute;bottom:0;left:-30%;right:-30%;transform:perspective(160px)rotateX(60deg);-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.hero>.container{z-index:1;position:relative}@media (max-width:640px){.hero:after{display:none}}.site-footer h2{color:var(--accent);letter-spacing:.14em}.site-footer__bottom{letter-spacing:.06em}.btn--primary{box-shadow:inset 3px 0 0 0 color-mix(in srgb, var(--accent-contrast) 45%, transparent), 0 0 16px -4px var(--sheen)}.logo__caret{box-shadow:0 0 10px var(--sheen)}.badge--verified{box-shadow:0 0 12px -6px var(--ok)}.lang--ready{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent-2) 22%, transparent), 0 0 18px -8px var(--accent-2)}.runner[data-running=true]{border-color:var(--accent)}.hero__title-main{text-shadow:2px 0 0 var(--ghost-b), -2px 0 0 var(--ghost-a)}@media (max-width:640px){.hero__title-main{text-shadow:1px 0 0 var(--ghost-b), -1px 0 0 var(--ghost-a)}}.hud{inset:calc(var(--header-h) + 12px) 12px 12px;z-index:2;pointer-events:none;contain:strict;position:fixed}.hud:before,.hud:after{content:"";border:1px solid var(--hud);width:22px;height:22px;position:absolute}.hud:before{border-bottom:0;border-right:0;top:0;left:0}.hud:after{border-top:0;border-left:0;bottom:0;right:0}@media (max-width:640px){.hud{inset:calc(var(--header-h) + 6px) 6px 6px}.hud:before,.hud:after{width:14px;height:14px}}@media (min-width:1024px){.hero__copy{position:relative}.hero__copy:before,.hero__copy:after{content:"";border-left:1px solid var(--accent);opacity:.5;width:12px;height:54px;position:absolute;left:-22px}.hero__copy:before{border-top:1px solid var(--accent);top:-6px}.hero__copy:after{border-bottom:1px solid var(--accent);bottom:-6px}}.hero__kicker{color:var(--accent)}.hero__kicker:after{content:"";background:var(--accent-2);width:6px;height:6px;rotate:45deg}.section__index{--notch:5px;border:1px solid var(--border-strong);background:var(--bg-raised);clip-path:polygon(0 0, calc(100% - var(--notch)) 0, 100% var(--notch), 100% 100%, var(--notch) 100%, 0 calc(100% - var(--notch)));padding:.3em .7em}.section__index:before,.section__index:after{content:none}.card{position:relative}.card:after{content:"";border-right:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);opacity:.6;width:14px;height:14px;transition:opacity var(--dur) var(--ease);position:absolute;bottom:0;right:0}.card:hover:after,.card:focus-within:after{border-color:var(--accent);opacity:1}.site-footer{position:relative;overflow:hidden}.site-footer>.container{z-index:1;position:relative}.site-footer__mark{right:var(--sp-5);z-index:0;font-family:var(--font-mono);letter-spacing:.08em;color:#0000;-webkit-text-stroke:1px var(--border);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(3.5rem,13vw,10rem);font-weight:800;line-height:1;position:absolute;bottom:-.24em}@media (prefers-reduced-motion:reduce){.hero__title-main{text-shadow:none}}.logo__icon{flex:none;width:22px;height:22px;display:block;translate:0 -.05em}

