:root{--paper:#fafaf8;--grid:#e9e8e2;--ink:#1c2025;--muted:#5a6069;--select:#1e66f5;--select-soft:#1e66f514;--card-border:#d9d8d0;--font-cover:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", "PingFang TC", "Microsoft JhengHei", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", "Noto Sans Hebrew", "Arial Hebrew", "Geeza Pro", "Noto Sans Arabic", "Segoe UI";--font-display:"Space Grotesk", "Avenir Next", var(--font-cover), sans-serif;--font-body:"IBM Plex Sans", "Helvetica Neue", var(--font-cover), sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, var(--font-cover), monospace;--header-height:58px}*{box-sizing:border-box}html,body{margin:0}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:48px 48px;font-size:16px;line-height:1.6}a{color:var(--select)}a:focus-visible,button:focus-visible{outline:2px solid var(--select);outline-offset:2px}.site-header{z-index:20;height:var(--header-height);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--card-border);background:#fafaf8e0;justify-content:space-between;align-items:center;gap:16px;padding:0 clamp(16px,4vw,40px);display:flex;position:sticky;top:0}.site-brand{color:var(--ink);flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.site-brand__glyph{width:18px;height:18px;color:var(--select)}.site-brand__name{font-family:var(--font-display);letter-spacing:-.03em;font-size:16px;font-weight:700}.site-brand__stage{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--card-border);border-radius:999px;padding:1px 8px;font-size:10px}.site-nav{scrollbar-width:none;align-items:center;gap:clamp(8px,2vw,24px);min-width:0;display:flex;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.lang{position:relative}.lang__summary{border:1px solid var(--card-border);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;list-style:none;display:inline-flex}.lang__summary::-webkit-details-marker{display:none}.lang__summary:hover{color:var(--ink);border-color:var(--ink)}.lang[open] .lang__summary{color:var(--select);border-color:var(--select)}.lang__glyph{flex:none;width:14px;height:14px}.lang__menu{inset-inline-end:0;z-index:30;border:1px solid var(--card-border);background:#fff;border-radius:8px;min-width:168px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);box-shadow:0 8px 24px #1c202524}.lang__option{color:var(--ink);border-radius:5px;padding:6px 10px;font-size:14px;text-decoration:none;display:block}.lang__option:hover{background:var(--select-soft)}.lang__option[aria-current=true]{color:var(--select);font-weight:600}.site-nav__link{color:var(--muted);padding:4px 2px;font-size:14px;font-weight:500;text-decoration:none}.site-nav__link:hover{color:var(--ink)}.site-nav__link[aria-current=page]{color:var(--select);border-bottom:2px solid var(--select)}.hero{min-height:calc(88vh - var(--header-height));align-items:center;display:flex;position:relative;overflow:hidden}.hero__canvas{width:100%;height:100%;position:absolute;inset:0}.hero__scrim{pointer-events:none;background:radial-gradient(at 42%,#fafaf873,#0000 70%);position:absolute;inset:0}.hero__inner{width:min(1080px,100% - clamp(32px,8vw,80px));margin:clamp(48px,8vh,96px) auto;position:relative}.hero__brand{color:var(--select);align-items:center;gap:12px;margin:0 0 22px;display:inline-flex}.hero__brand-mark{width:36px;height:36px}.hero__brand-wordmark{font-family:var(--font-display);letter-spacing:-.03em;color:var(--ink);font-size:22px;font-weight:700}.artifact-card{border:2px solid var(--select);background:#fffffff0;border-radius:4px;padding:clamp(28px,5vw,56px);position:relative;box-shadow:0 12px 48px #1c20251a}.artifact-card__handle{border:2px solid var(--select);background:#fff;width:10px;height:10px;position:absolute}.artifact-card__handle--nw{top:-6px;left:-6px}.artifact-card__handle--ne{top:-6px;right:-6px}.artifact-card__handle--sw{bottom:-6px;left:-6px}.artifact-card__handle--se{bottom:-6px;right:-6px}.artifact-card__frame-label{top:-30px;font-family:var(--font-mono);color:var(--select);background:var(--select-soft);white-space:nowrap;border-radius:3px;margin:0;padding:2px 8px;font-size:11px;position:absolute;inset-inline-start:-2px}h1{font-family:var(--font-display);letter-spacing:-.025em;max-width:18ch;margin:0 0 20px;font-size:clamp(30px,5vw,52px);font-weight:700;line-height:1.08}.hero__lede{color:var(--muted);max-width:58ch;margin:0 0 24px;font-size:clamp(16px,2vw,18px)}.hero__equation{font-family:var(--font-mono);color:var(--ink);margin:0 0 32px;font-size:clamp(12px,1.6vw,14px);line-height:2.1}.eq-term{background:hsl(var(--chip,210) 60% 92%);border:1px solid hsl(var(--chip,210) 40% 80%);white-space:nowrap;border-radius:4px;padding:2px 8px}.eq-term--kw{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:500}.eq-term--opt{color:var(--muted);background:0 0;border-style:dashed;border-color:#c4c3bb}.hero__actions{flex-wrap:wrap;gap:12px;display:flex}.button{font-family:var(--font-body);border-radius:6px;padding:10px 22px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .12s,box-shadow .12s;display:inline-block}.button--primary{background:var(--select);color:#fff;box-shadow:0 2px 10px #1e66f559}.button--primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #1e66f566}.button--ghost{color:var(--ink);border:1px solid var(--card-border);background:#ffffffb3}.button--ghost:hover{border-color:var(--ink)}.section{border-top:1px solid var(--card-border);width:min(1080px,100% - clamp(32px,8vw,80px));margin:0 auto;padding:clamp(56px,9vh,104px) 0}.eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--select);margin:0 0 12px;font-size:12px}h2{font-family:var(--font-display);letter-spacing:-.02em;max-width:26ch;margin:0 0 14px;font-size:clamp(24px,3.4vw,34px);font-weight:700;line-height:1.15}.section__lede{color:var(--muted);max-width:64ch;margin:0 0 32px}.lifecycle{font-family:var(--font-mono);border:1px solid var(--card-border);background:#fffc;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:28px;padding:18px 22px;font-size:14px;display:flex}.lifecycle__state{border:1px solid var(--card-border);background:#fff;border-radius:5px;padding:4px 12px}.lifecycle__state--paint{background:#f1e7f9;border-color:#c4a6d9}.lifecycle__state--live{border-color:var(--select);background:var(--select-soft);color:var(--select);font-weight:500}.lifecycle__arrow{color:var(--muted)}.lifecycle__note{color:var(--muted);text-align:start;flex-basis:100%;font-size:12px}.boundary{border:1px solid var(--card-border);background:#fffc;border-radius:8px;flex-wrap:wrap;gap:10px;margin-bottom:28px;padding:16px 20px;display:flex}.boundary__pair{font-family:var(--font-mono);border:1px solid var(--card-border);border-radius:5px;align-items:stretch;font-size:12px;display:inline-flex;overflow:hidden}.boundary__kind{color:var(--ink);background:#fff;padding:4px 9px}.boundary__reason{color:#93531a;background:#fef1e7;border-inline-start:1px dashed #e0af85;padding:4px 9px}.facts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}.facts li{border:1px solid var(--card-border);color:var(--muted);background:#fffc;border-radius:8px;padding:18px 20px;font-size:15px}.facts strong{color:var(--ink);margin-bottom:6px;display:block}.package-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.package{border:1px solid var(--card-border);background:#fffc;border-radius:8px;padding:16px 18px;transition:border-color .12s}.package:hover{border-color:var(--select)}.package__name{font-family:var(--font-mono);margin:0 0 6px;font-size:14px;font-weight:500}.package__role{color:var(--muted);margin:0;font-size:14px}.section--status{padding-bottom:clamp(72px,10vh,120px)}.site-footer{border-top:1px solid var(--card-border);font-family:var(--font-mono);color:var(--muted);background:#fff9;align-items:center;gap:10px;padding:24px clamp(16px,4vw,40px);font-size:13px;display:flex}.site-footer p{margin:0}.site-footer__mark{flex:none;display:block}.page--doc{background-image:none}.doc{width:min(820px,100% - clamp(32px,8vw,80px));margin:0 auto;padding:clamp(32px,6vh,64px) 0 clamp(64px,10vh,120px)}.doc__article h1{max-width:none;font-size:clamp(28px,4vw,40px)}.doc__article h2{border-top:1px solid var(--card-border);margin-top:48px;padding-top:24px}.doc__article h3{font-family:var(--font-display);letter-spacing:-.01em;margin:32px 0 8px;font-size:19px}.doc__article p,.doc__article li{color:#343a41;font-size:15.5px}.doc__notice{border:1px dashed var(--card-border);color:var(--muted);background:#ffffffb3;border-radius:6px;margin:0 0 24px;padding:10px 16px;font-size:14px}.doc__article blockquote{border-inline-start:3px solid var(--select);background:var(--select-soft);border-start-end-radius:6px;border-end-end-radius:6px;margin:20px 0;padding:12px 20px}.doc__article blockquote p{color:var(--ink);margin:0}.doc__article code{font-family:var(--font-mono);background:#f0efe9;border-radius:4px;padding:1px 5px;font-size:.88em}.doc__article pre{color:#e6e9ed;background:#14171b;border-radius:8px;padding:18px 20px;line-height:1.55;overflow-x:auto}.doc__article pre code{background:0 0;padding:0;font-size:13px}.doc__article table{border-collapse:collapse;width:100%;margin:20px 0;font-size:14px}.doc__article th,.doc__article td{border:1px solid var(--card-border);text-align:start;vertical-align:top;padding:8px 12px}.doc__article th{font-family:var(--font-mono);background:#f3f2ec;font-size:12.5px;font-weight:500}.page--playground{background-image:none}.playground-shell{height:calc(100vh - var(--header-height))}.playground-shell__frame{border:0;width:100%;height:100%;display:block}@media (width<=640px){.site-header{gap:12px}.site-nav{justify-content:flex-end;overflow:visible}.site-nav__link:not([aria-current=page]),.site-brand__stage{display:none}.hero{min-height:auto}}@media (prefers-reduced-motion:reduce){.button{transition:none}}
