@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/unbounded-cyrillic-ext-wght-normal.3mbm-jgk33j9h.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/unbounded-cyrillic-wght-normal.4410a-by3wkmp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/unbounded-vietnamese-wght-normal.2vkv9zvo-i28x.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/unbounded-latin-ext-wght-normal.2rc2qo3fyex9c.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(../media/unbounded-latin-wght-normal.1tz5lbfnvawi1.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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 Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-cyrillic-ext-wght-normal.0w5-20wrij2y1.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-cyrillic-wght-normal.1fjuga16p-_i_.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-greek-wght-normal.1bpl7wsc6313m.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-vietnamese-wght-normal.3t024er0ypawq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-latin-ext-wght-normal.3t_7mbg42824f.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(../media/ibm-plex-sans-latin-wght-normal.15jby9eboz7vb.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f5f9;--surface:#fff;--surface-2:#e8edf4;--ink:#0c1627;--muted:#546178;--line:#d6dde8;--line-strong:#aeb9ca;--accent:#1d4ed8;--accent-strong:#1e3fae;--accent-soft:#e2eafd;--on-accent:#fff;--signal:#e8590c;--ok:#137537;--ok-soft:#dcf3e4;--warn:#a84b08;--warn-soft:#fbecd2;--bad:#bd2525;--bad-soft:#fbe0e0;--grid:#0c162712;--shadow:0 1px 2px #0c16270f, 0 8px 24px #0c16270f;--c-entry:#1d4ed8;--c-network:#0e7490;--c-compute:#4f46e5;--c-storage:#b45309;--c-async:#15803d;--c-interface:#be185d;--c-ops:#0f766e;--font-display:"Unbounded Variable", "Unbounded", "IBM Plex Sans", system-ui, sans-serif;--font-body:"IBM Plex Sans Variable", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius:12px;--radius-sm:8px;--fg:var(--ink);--card:var(--surface);--border:var(--line)}:root[data-theme=dark]{--bg:#090f19;--surface:#111a29;--surface-2:#172335;--ink:#e7edf7;--muted:#94a2b8;--line:#22314a;--line-strong:#364d70;--accent:#7c9cff;--accent-strong:#a6bbff;--accent-soft:#16264d;--on-accent:#08101d;--signal:#ff8a3d;--ok:#4ade80;--ok-soft:#12301f;--warn:#fbbf24;--warn-soft:#33270c;--bad:#ff7b7b;--bad-soft:#3a1818;--grid:#e7edf712;--shadow:0 1px 2px #0006, 0 8px 24px #00000059;--c-entry:#7c9cff;--c-network:#5eead4;--c-compute:#a5b4fc;--c-storage:#fbbf24;--c-async:#4ade80;--c-interface:#f9a8d4;--c-ops:#5eead4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}
*{box-sizing:border-box;scrollbar-color:var(--line-strong) var(--bg)}html{scroll-behavior:smooth;scroll-padding-top:96px}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;margin:0;line-height:1.65;display:flex}main{flex:1}a{color:var(--accent);text-underline-offset:4px}a:hover{color:var(--accent-strong)}button{font:inherit;cursor:pointer}button[hidden]{display:none}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}::selection{background:var(--accent-soft);color:var(--ink)}h1,h2,h3,h4{text-wrap:balance;line-height:1.25}h1,h2,.brand{font-family:var(--font-display)}h1{letter-spacing:-.025em;margin:0 0 24px;font-size:clamp(1.9rem,3.5vw,3rem)}h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,2.3vw,1.85rem)}p{text-wrap:pretty}.wrap{width:min(1120px,100%);margin-inline:auto;padding-inline:24px}.header{z-index:10;background:var(--bg);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{align-items:center;gap:24px;min-height:76px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.brand svg{flex:none}.header nav{gap:20px;margin-left:auto;display:flex}.header nav a{min-height:44px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex}.header nav a:hover,.header nav a[aria-current]{color:var(--accent)}#theme{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink);white-space:nowrap;border-radius:8px;padding:8px 12px;font-size:.85rem}.skip{z-index:30;background:var(--surface);padding:12px;position:fixed;top:8px;left:8px;transform:translateY(-180%)}.skip:focus{transform:translateY(0)}.hero{border-bottom:1px solid var(--line)}.hero-grid{grid-template-columns:1.25fr 1fr;align-items:center;gap:64px;padding-block:88px;display:grid}.lead{color:var(--muted);max-width:64ch;margin:0 0 28px;font-size:1.12rem}.actions{flex-wrap:wrap;gap:12px;display:flex}.button{border:1px solid var(--line-strong);background:var(--surface);min-height:48px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;gap:14px;padding:10px 20px;font-weight:500;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--accent)}.button.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.button.primary:hover{background:var(--accent-strong)}.architecture{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px}.diagram-title{margin-bottom:30px;font-weight:600}.flow{justify-content:space-between;align-items:center;gap:8px;display:flex}.flow span,.branches span{border:1px solid var(--line-strong);text-align:center;border-radius:8px;padding:12px;font-size:.9rem;display:block}.flow span:last-child{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.flow i{color:var(--muted);font-style:normal}.branches{justify-content:flex-end;gap:16px;margin-top:32px;display:flex;position:relative}.branches:before{content:"";background:var(--line-strong);width:1px;height:32px;position:absolute;top:-32px;right:37px}.branches span:first-child{border-color:var(--signal)}.architecture p{color:var(--muted);margin:24px 0}.architecture>a{padding-block:8px;font-size:.9rem;display:inline-block}.game-strip{background:var(--surface);border-bottom:1px solid var(--line)}.game-copy{grid-template-columns:1fr 1.5fr;gap:64px;padding-block:40px;display:grid}.game-copy p{max-width:70ch;color:var(--muted);margin-top:0}.read-link{align-items:center;gap:12px;min-height:44px;font-weight:500;display:inline-flex}.section{padding-block:72px}.section-head{justify-content:space-between;align-items:start;gap:24px;margin-bottom:32px;display:flex}.section-head p{color:var(--muted);margin:0}.material-group{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:48px;padding-top:32px;display:grid}.material-group+.material-group{margin-top:48px}.material-group h3{margin:0 0 10px;font-size:1.3rem}.material-group>div p{color:var(--muted);max-width:25ch;margin:0}ul{margin:0;padding:0;list-style:none}.resource-list li{padding-bottom:24px}.resource-list li+li{border-top:1px solid var(--line);padding-top:24px}.resource-list h4{margin:8px 0;font-size:1.2rem}.resource-list h4 a{text-decoration:none}.resource-list h4 a:hover{text-decoration:underline}.resource-list p{max-width:70ch;color:var(--muted);margin:0}.meta{color:var(--muted);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:.85rem;display:flex}.blog-section{border-top:1px solid var(--line);background:var(--surface)}.section-intro{color:var(--muted);margin:-12px 0 32px}.review-list li{border-top:1px solid var(--line);padding:28px 0}.review-list :is(h2,h3){margin:10px 0;font-size:1.45rem}.review-list :is(h2,h3) a{color:var(--ink);text-decoration:none}.review-list :is(h2,h3) a:hover{color:var(--accent);text-decoration:underline}.review-list p{max-width:70ch;color:var(--muted);margin-bottom:8px}.empty{color:var(--muted);padding-block:24px}.back{align-items:center;min-height:44px;margin-bottom:24px;display:inline-flex}.article{max-width:800px}.article h1{font-size:clamp(1.8rem,4vw,2.8rem)}.article .meta{margin-bottom:24px}.article section{margin-top:40px}.article h2{font-family:var(--font-body);margin-bottom:16px;font-size:1.5rem}.article p{white-space:pre-line;overflow-wrap:anywhere;max-width:72ch}.practice{border-top:1px solid var(--line);margin-top:48px;padding-top:28px}footer{border-top:1px solid var(--line)}.footer-inner{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:28px;font-size:.85rem;display:flex}.footer-inner p{margin:0}.footer-brand{font-family:var(--font-display);color:var(--ink);text-decoration:none}@media (max-width:900px){.hero-grid{gap:32px}.architecture{padding:20px}.flow span{padding:8px}.header-inner{flex-wrap:wrap;gap:16px;padding-block:12px}.brand{flex:1}.header nav{order:3;width:100%;margin:0}.game-copy{gap:32px}}@media (max-width:680px){.wrap{padding-inline:20px}.hero-grid{grid-template-columns:1fr;gap:40px;padding-block:48px}.architecture{width:100%;max-width:460px}.game-copy,.material-group{grid-template-columns:1fr;gap:24px}.game-copy{padding-block:32px}.section{padding-block:48px}.section-head{flex-direction:column;gap:16px}.material-group>div p{max-width:100%}.brand{gap:8px;font-size:.75rem}#theme{padding-inline:8px;font-size:.8rem}.article h1{overflow-wrap:anywhere}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.branches{width:fit-content;margin-left:auto}.branches:before{width:auto;height:1px;top:-16px;left:27px;right:48px}.branches:after{content:"";background:var(--line-strong);width:1px;height:16px;position:absolute;top:-32px;right:37px}.branches span{position:relative}.branches span:before{content:"";background:var(--line-strong);width:1px;height:16px;position:absolute;top:-17px;left:50%}.resource-list,.material-group>*,.review-list{min-width:0}.resource-list h4,.review-list :is(h2,h3),.article :is(h1,h2){overflow-wrap:anywhere}#theme:hover{border-color:var(--line-strong);background:var(--surface-2)}
