@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/cdf703449fd42bc8-s.1_nwqg2oqknh7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/3f10656f33c57dec-s.43efwv28dotlz.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/56eb15be423b6220-s.1tb5eil6y_dva.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/96074e70a40501da-s.0zl3jsojfe2ze.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/de161955856a921d-s.p.3dojvicm65v_0.woff2)format("woff2");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:"Press Start 2P Fallback";src:local(Arial);ascent-override:44.58%;descent-override:0.0%;line-gap-override:0.0%;size-adjust:224.32%}._2XIoDq_className{font-family:"Press Start 2P","Press Start 2P Fallback";font-style:normal;font-weight:400}._2XIoDq_variable{--font-pixel:"Press Start 2P", "Press Start 2P Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.woff2)format("woff2");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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.woff2)format("woff2");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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.CxiPNW_className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.CxiPNW_variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0v2ipp7s07_p9.woff2)format("woff2");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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.44ks8kcggj012.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.1ii7211jqpzi_.woff2)format("woff2");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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.Rhx65a_className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.Rhx65a_variable{--font-display:"Space Grotesk", "Space Grotesk Fallback"}
html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
@property --ink{syntax:"<color>";inherits:true;initial-value:#120f0c}@property --bg{syntax:"<color>";inherits:true;initial-value:#16130f}@property --surface{syntax:"<color>";inherits:true;initial-value:#1f1a15}@property --raised{syntax:"<color>";inherits:true;initial-value:#2b241e}@property --border{syntax:"<color>";inherits:true;initial-value:#41382f}@property --text{syntax:"<color>";inherits:true;initial-value:#c8b49c}@property --dim{syntax:"<color>";inherits:true;initial-value:#8a7660}@property --gold{syntax:"<color>";inherits:true;initial-value:#906935}@property --sand{syntax:"<color>";inherits:true;initial-value:#ba9b7d}@property --gleam{syntax:"<color>";inherits:true;initial-value:#f2e2b8}@property --violet{syntax:"<color>";inherits:true;initial-value:#a19fe1}@property --zenith{syntax:"<color>";inherits:true;initial-value:#03050c}@property --prussian{syntax:"<color>";inherits:true;initial-value:#0b1627}@property --jade{syntax:"<color>";inherits:true;initial-value:#87a987}@property --spring{syntax:"<color>";inherits:true;initial-value:#7fb4ca}@property --ice{syntax:"<color>";inherits:true;initial-value:#c8dfef}@property --night-line{syntax:"<color>";inherits:true;initial-value:#1a2c36}@property --select-bg{syntax:"<color>";inherits:true;initial-value:#7fb4ca33}@property --title-shadow{syntax:"<color>";inherits:true;initial-value:#120f0c}@property --about-text{syntax:"<color>";inherits:true;initial-value:#a9bccb}@property --footer-text{syntax:"<color>";inherits:true;initial-value:#6f8d9a}@property --lake-hint{syntax:"<color>";inherits:true;initial-value:#8a7660}@property --lake-shadow{syntax:"<color>";inherits:true;initial-value:#120f0c}@property --shikon-a{syntax:"<color>";inherits:true;initial-value:#2d1b42}@property --shikon-b{syntax:"<color>";inherits:true;initial-value:#150c1f}@property --shikon-text{syntax:"<color>";inherits:true;initial-value:#e0c0d9}@property --shikon-head{syntax:"<color>";inherits:true;initial-value:#ffe9ff}@property --shikon-dim{syntax:"<color>";inherits:true;initial-value:#a58bb8}@property --shikon-line{syntax:"<color>";inherits:true;initial-value:#4a2f66}@property --glass-a{syntax:"<color>";inherits:true;initial-value:#ffffff14}@property --glass-b{syntax:"<color>";inherits:true;initial-value:#ffffff05}@property --glass-c{syntax:"<color>";inherits:true;initial-value:#7fb4ca0a}@property --glass-rim{syntax:"<color>";inherits:true;initial-value:#ffffff70}@property --glass-shadow{syntax:"<color>";inherits:true;initial-value:#0008}@property --lens-a{syntax:"<color>";inherits:true;initial-value:#ffffff2e}@property --lens-b{syntax:"<color>";inherits:true;initial-value:#c8dfef14}@property --nav-text{syntax:"<color>";inherits:true;initial-value:#c3d3de}@property --nav-hover{syntax:"<color>";inherits:true;initial-value:#fff}@property --nav-active{syntax:"<color>";inherits:true;initial-value:#fff}@property --nav-glow{syntax:"<color>";inherits:true;initial-value:#c8dfef80}@property --scroll-dot{syntax:"<color>";inherits:true;initial-value:#7fb4ca66}@property --scroll-knob{syntax:"<color>";inherits:true;initial-value:#f2e2b8}@property --scroll-shade{syntax:"<color>";inherits:true;initial-value:#0b1627}:root{--ink:#120f0c;--bg:#16130f;--surface:#1f1a15;--raised:#2b241e;--border:#41382f;--text:#c8b49c;--dim:#8a7660;--gold:#906935;--sand:#ba9b7d;--gleam:#f2e2b8;--violet:#a19fe1;--zenith:#03050c;--prussian:#0b1627;--jade:#87a987;--spring:#7fb4ca;--ice:#c8dfef;--night-line:#1a2c36;--select-bg:#7fb4ca33;--title-shadow:#120f0c;--about-text:#a9bccb;--footer-text:#6f8d9a;--lake-hint:#8a7660;--lake-shadow:#120f0c;--shikon-a:#2d1b42;--shikon-b:#150c1f;--shikon-text:#e0c0d9;--shikon-head:#ffe9ff;--shikon-dim:#a58bb8;--shikon-line:#4a2f66;--glass-a:#ffffff14;--glass-b:#ffffff05;--glass-c:#7fb4ca0a;--glass-rim:#ffffff70;--glass-shadow:#0008;--lens-a:#ffffff2e;--lens-b:#c8dfef14;--nav-text:#c3d3de;--nav-hover:#fff;--nav-active:#fff;--nav-glow:#c8dfef80;--scroll-dot:#7fb4ca66;--scroll-knob:#f2e2b8;--scroll-shade:#0b1627;--night-bg:radial-gradient(1.5px 1.5px at 24px 36px, #c8dfef, transparent) 0 0 / 340px 260px, radial-gradient(1px 1px at 150px 92px, #7fb4ca, transparent) 0 0 / 340px 260px, radial-gradient(1.5px 1.5px at 272px 168px, #f2e2b8, transparent) 0 0 / 340px 260px, radial-gradient(1px 1px at 96px 214px, #7e9cd8, transparent) 0 0 / 340px 260px, radial-gradient(1px 1px at 318px 44px, #c8dfef, transparent) 0 0 / 340px 260px, linear-gradient(180deg, #040908, #0b1627);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;transition:--ink 1.6s 1.7s,--bg 1.6s 1.7s,--surface 1.6s 1.7s,--raised 1.6s 1.7s,--border 1.6s 1.7s,--text 1.6s 1.7s,--dim 1.6s 1.7s,--gold 1.6s 1.7s,--sand 1.6s 1.7s,--gleam 1.6s 1.7s,--violet 1.6s 1.7s,--zenith 1.6s 1.7s,--prussian 1.6s 1.7s,--jade 1.6s 1.7s,--spring 1.6s 1.7s,--ice 1.6s 1.7s,--night-line 1.6s 1.7s,--select-bg 1.6s 1.7s,--title-shadow 1.6s 1.7s,--about-text 1.6s 1.7s,--footer-text 1.6s 1.7s,--lake-hint 1.6s 1.7s,--lake-shadow 1.6s 1.7s,--shikon-a 1.6s 1.7s,--shikon-b 1.6s 1.7s,--shikon-text 1.6s 1.7s,--shikon-head 1.6s 1.7s,--shikon-dim 1.6s 1.7s,--shikon-line 1.6s 1.7s,--glass-a 1.6s 1.7s,--glass-b 1.6s 1.7s,--glass-c 1.6s 1.7s,--glass-rim 1.6s 1.7s,--glass-shadow 1.6s 1.7s,--lens-a 1.6s 1.7s,--lens-b 1.6s 1.7s,--nav-text 1.6s 1.7s,--nav-hover 1.6s 1.7s,--nav-active 1.6s 1.7s,--nav-glow 1.6s 1.7s,--scroll-dot 1.6s 1.7s,--scroll-knob 1.6s 1.7s,--scroll-shade 1.6s 1.7s}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:16px/1.6 var(--font-mono), ui-monospace, Menlo, monospace;margin:0}a{color:var(--gleam)}::selection{background:var(--select-bg);color:var(--ice)}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--violet);outline-offset:2px}.hero{-webkit-user-select:none;user-select:none;touch-action:pan-y;height:100svh}.for-touch{display:none}@media (pointer:coarse){.for-mouse{display:none}.for-touch{display:inline}}.hero,.hero *{cursor:none!important}.lake{-webkit-user-select:none;user-select:none;touch-action:pan-y;position:relative}.lake,.lake *{cursor:none}.hero canvas,.lake canvas{touch-action:pan-y!important}.hero-inner{pointer-events:none;flex-direction:column;height:100%;display:flex}.hero-inner a,.hero-inner button{pointer-events:auto}.hero-title{max-width:720px;margin:auto 24px 12vh}.hero-title h1{font:600 clamp(28px, 6vw, 64px)/1.1 var(--font-display), system-ui, sans-serif;letter-spacing:-.03em;color:var(--gleam);text-shadow:0 2px 16px var(--title-shadow);margin:0 0 20px}.hero-title p{color:var(--sand);text-shadow:0 1px 6px var(--ink);margin:0;font-size:clamp(15px,2vw,19px)}.hint{color:var(--dim);font-size:13px;margin-top:16px!important}.section{padding:clamp(80px,12vh,140px) 24px;position:relative;overflow:hidden}:root{--blend:80px}.hero+.section,.section+.section,.section+.lake,.lake+.footer{margin-top:calc(-1 * var(--blend));-webkit-mask-image:linear-gradient(transparent, #000 var(--blend));-webkit-mask-image:linear-gradient(transparent, #000 var(--blend));mask-image:linear-gradient(transparent, #000 var(--blend));position:relative}.lake+.footer{--blend:40px}.section-grid{grid-template-columns:1fr 1fr;align-items:center;gap:56px;max-width:1120px;margin:0 auto;display:grid;position:relative}@media (max-width:860px){.section-grid{grid-template-columns:1fr}}.app-head{align-items:center;gap:16px;display:flex}.app-head img{filter:drop-shadow(0 10px 24px #0008);width:72px;height:72px}.app-head h2{font:600 clamp(26px, 3.4vw, 36px)/1.15 var(--font-display), system-ui, sans-serif;letter-spacing:-.02em;margin:0}.tagline{color:var(--gleam);opacity:.92;margin:22px 0;font-size:clamp(17px,1.7vw,20px);line-height:1.55}.features{margin:0 0 24px;padding:0;list-style:none}.features li{margin:8px 0;padding-left:22px;position:relative}.features li:before{content:"▸";color:var(--sec,var(--gold));position:absolute;left:0}.stack{color:var(--dim);font-size:13px}.chip{border:1px solid var(--border);border-radius:99px;margin:0 6px 6px 0;padding:2px 10px;display:inline-block}.footer{text-align:center;color:var(--footer-text);background:var(--zenith);padding:48px 24px;font-size:13px}.footer a{color:var(--spring)}.layer{pointer-events:none;position:absolute;inset:0}.small{color:var(--dim);font-size:13px}.shikon{background:radial-gradient(ellipse at 30% 40%, var(--shikon-a), var(--shikon-b) 70%);color:var(--shikon-text)}.shikon .app-head h2{color:var(--shikon-head)}.shikon .stack,.shikon .small{color:var(--shikon-dim)}.shikon .chip{border-color:var(--shikon-line)}.crt{border-radius:20px;height:min(620px,70vw);min-height:340px;position:relative;overflow:hidden}.crt-input{opacity:0;cursor:text;border:0;width:100%;height:100%;position:absolute;inset:0}.fx-buttons{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.fx-buttons button{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 12px;font-size:13px}.fx-buttons button:hover{border-color:var(--violet)}kbd{border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:12px}.wide{grid-template-columns:1.5fr 1fr}@media (max-width:860px){.wide{grid-template-columns:1fr}}.about{color:var(--about-text);background:var(--night-bg)}.about-sky{pointer-events:none;position:absolute;inset:0}.about .section-grid{z-index:1}.about .chip{border-color:var(--night-line);color:var(--spring)}.about-links a{color:var(--spring)}.about-grid{grid-template-columns:auto 1fr}@media (max-width:860px){.about-grid{grid-template-columns:1fr}}.avatar-pixel{place-items:center;width:220px;height:220px;display:grid;position:relative}.avatar-pixel img{object-fit:cover;width:100%;height:100%}.avatar-pixel span{font:400 56px/1 var(--font-pixel), monospace;color:var(--gleam)}.about-heading{font:600 30px/1.2 var(--font-display), system-ui, sans-serif;letter-spacing:-.02em;color:var(--gleam);margin:0}.about-links{flex-wrap:wrap;gap:20px;display:flex}.w-panel{color:#af9479;border-radius:16px;width:340px;height:420px;margin:0 auto;font:13px/1.35 -apple-system,system-ui,sans-serif;position:relative;overflow:hidden;box-shadow:0 30px 80px #000a,0 0 0 1px #41382f}.w-content{flex-direction:column;gap:14px;height:100%;padding:16px;display:flex;position:relative}.w-col{flex-direction:column;gap:8px;display:flex}.w-row{align-items:center;gap:10px;display:flex}.w-title{color:#ba9b7d;font:600 20px/1.2 ui-monospace,Menlo,monospace}.w-caption{color:#7f7062;font-size:11px}.w-callout{color:#af9479;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.w-headline{color:#f2e2b8;font-size:15px;font-weight:600}.w-dot{background:#617f48;border-radius:50%;width:6px;height:6px;display:inline-block}.w-icon{color:#7f7062;background:0 0;border:0;padding:0 2px;font-size:14px}.w-icon:hover{color:#ba9b7d}.w-segmented{background:#ffffff12;border-radius:8px;grid-template-columns:1fr 1fr;padding:2px;display:grid}.w-segmented button{color:#af9479;background:0 0;border:0;border-radius:6px;padding:3px 0;font-size:12px}.w-segmented button[aria-selected=true]{color:#f2e2b8;background:#ffffff24;box-shadow:0 1px 2px #0006}.w-zone{cursor:pointer;border-radius:20px;flex:none;transition:transform .2s,box-shadow .2s;position:relative}.w-zone.dragging{box-shadow:0 0 16px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 6px 2px var(--accent);animation:.9s ease-in-out infinite alternate dropglow;transform:scale(1.02)}@keyframes dropglow{0%{box-shadow:0 0 16px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 6px 2px color-mix(in srgb, var(--accent) 50%, transparent)}to{box-shadow:0 0 16px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 6px 2px color-mix(in srgb, var(--accent) 95%, transparent)}}.w-hit{background:0 0;border:0;border-radius:99px;position:absolute}.w-peers{gap:14px;display:flex;overflow-x:auto}.w-peer{background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex}.w-peer:disabled{cursor:default}.w-peer:not(:disabled):hover .w-avatar{transform:scale(1.06)}.w-peer-name{text-overflow:ellipsis;white-space:nowrap;max-width:76px;overflow:hidden}.w-avatar{color:#16130f;border-radius:50%;flex:none;place-items:center;font-family:ui-rounded,-apple-system,system-ui;font-weight:600;transition:transform .15s;display:grid}.w-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f2e2b8;background:#2b241ecc;border:1px solid #ffffff1f;border-radius:99px;padding:6px 14px;font-size:13px}.w-btn.prominent{background:var(--accent);color:#16130f;border-color:#0000;font-weight:500}.w-btn:disabled{opacity:.45;cursor:default}.w-field{color:#af9479;background:#120f0c80;border:0;border-radius:99px;width:100%;padding:8px 12px;font-size:13px}.w-field.mono{font-family:ui-monospace,Menlo,monospace}.w-divider{border:0;border-top:1px solid #41382f;width:100%;margin:0}.w-code{color:#7f7062;background:#120f0c80;border-radius:99px;flex:1;padding:6px 12px;font:11px ui-monospace,Menlo,monospace}.w-confirm{flex:1;justify-content:center;align-items:center;gap:12px}.w-check{color:#617f48;text-shadow:0 0 12px #617f48;font-size:44px;font-weight:600;animation:.4s cubic-bezier(.3,1.6,.5,1) pop}@keyframes pop{0%{opacity:0;transform:scale(.3)}}.w-swatch{background:0 0;border:0;place-items:center;width:32px;height:32px;padding:0;display:grid}.w-swatch span{color:#16130f;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.shikon,.shikon *{cursor:none!important}.s-arrow{filter:drop-shadow(0 0 1.5px #ffe9ffaa);opacity:0;pointer-events:none;will-change:transform;height:auto;position:absolute;top:0;left:0}.s-stage{place-items:center;min-height:560px;display:grid;position:relative}.s-jewel{width:340px;height:340px;transition:transform 50ms}.s-window{color:#ffe9ff;background:#150c1f;border-radius:40px;width:448px;max-width:100%;font:13px/1.35 -apple-system,system-ui,sans-serif;animation:.3s cubic-bezier(.3,1.4,.5,1) s-pop;position:relative}.s-window:focus{outline:none}.s-window.closing{animation:.16s ease-in forwards s-shut}@keyframes s-pop{0%{opacity:0;transform:scale(.9)}}@keyframes s-shut{to{opacity:0;transform:scale(.94)}}.s-content{gap:12px;padding:34px;display:grid;position:relative}.s-close{z-index:2;background:0 0;border:0;padding:0;transition:transform .15s,filter .15s;position:absolute;top:10px;left:10px}.s-close:hover{filter:brightness(1.25);transform:scale(1.12)}.s-header{align-items:center;gap:8px;display:flex}.s-header h3{color:#ffe9ff;margin:0;font-size:26px;font-weight:700}.s-field{color:#ffe9ff;min-width:0;font:inherit;background:#2d1b42;border:1px solid #4a2f66;border-radius:8px;outline:none;flex:1;padding:6px 10px}.s-field:focus{border:1.5px solid #d8b26e;box-shadow:0 0 6px #d8b26e66}.s-plus{color:#ffe9ff;background:0 0;border:0;padding:0 4px;font-size:18px}.s-list{scrollbar-width:none;flex-direction:column;gap:8px;height:420px;display:flex;position:relative;overflow-y:auto}.s-row{background:#211430;border:1px solid #4a2f66b3;border-radius:12px;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex;position:relative;overflow:hidden}.s-row-name{align-items:center;gap:8px;min-width:0;display:flex}.s-row-name strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.s-key{color:#d8b26e;background:#d8b26e24;border-radius:8px;flex:none;padding:0 5px;font-weight:700;line-height:20px}.s-row-actions{flex:none;align-items:center;gap:8px;display:flex}.s-value{color:#ffe9ff;background:#2d1b42;border-radius:8px;max-width:150px;padding:2px 5px;font:12px ui-monospace,Menlo,monospace;position:relative;overflow:hidden}.s-value-text{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.s-value.revealing .s-value-text{animation:.4s cubic-bezier(.3,1.3,.5,1) .8s backwards s-appear}@keyframes s-appear{0%{opacity:0;transform:scale(1.04)}}.s-value.hiding{opacity:0;transition:opacity .18s}.s-shine{mix-blend-mode:plus-lighter;background:linear-gradient(90deg,#0000,#ffe9ff47,#0000);width:60%;animation:.7s ease-in-out .8s backwards s-shine;position:absolute;top:-20%;bottom:-20%;left:0;transform:rotate(12deg)translate(120%)}@keyframes s-shine{0%{translate:-70%}to{translate:200%}}.s-icon{background:0 0;border:0;place-items:center;width:18px;height:18px;padding:0;display:grid}.s-soul{pointer-events:none;width:144px;height:100px;margin:-50px 0 0 -72px;animation:1.6s linear forwards s-soul;position:absolute;top:50%;left:50%}@keyframes s-soul{0%{transform:translate(250px)}to{transform:translate(-250px)}}.s-toast{pointer-events:none;flex:none;height:50px;margin-top:auto;animation:1.2s forwards s-toast;position:sticky;bottom:8px}.s-toast img{height:50px}.s-toast span{white-space:nowrap;background:#211430;border:1px solid #4a2f66;border-radius:99px;padding:6px 10px;font-size:11px;font-weight:700;position:absolute;top:-22px;left:38px}@keyframes s-toast{0%{opacity:0;transform:translateY(12px)}15%,85%{opacity:1;transform:none}to{opacity:0}}.s-sheet{z-index:3;background:#211430;border:1px solid #4a2f66;border-radius:16px;gap:10px;width:280px;padding:20px;animation:.2s s-pop;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 20px 50px #000a}.s-sheet p{color:#bfa6cc;margin:0;font-size:12px}.s-sheet-buttons{justify-content:flex-end;gap:8px;display:flex}.s-sheet-buttons button{color:#ffe9ff;background:#2d1b42;border:1px solid #4a2f66;border-radius:8px;padding:5px 14px}.s-sheet-buttons .danger{color:#150c1f;background:#e073a9;border-color:#e073a9;font-weight:600}.s-sheet-buttons .primary{background:#8b53b8;border-color:#8b53b8;font-weight:600}.site-nav{z-index:60;pointer-events:none;justify-content:center;align-items:center;padding:0 16px;font-size:14px;display:flex;position:fixed;inset:12px 0 auto}.site-nav>*{pointer-events:auto}.glass{background:linear-gradient(180deg, var(--glass-a), var(--glass-b) 55%, var(--glass-c));-webkit-backdrop-filter:blur(10px)saturate(1.8)brightness(1.1);backdrop-filter:blur(10px)saturate(1.8)brightness(1.1);box-shadow:inset 1px 1px 0 var(--glass-rim),  inset -1px -1px 0 #ffffff26,  inset 0 0 0 1px #ffffff14,  inset 0 0 14px #c8dfef12,  0 10px 32px var(--glass-shadow), 0 2px 6px var(--glass-shadow);border-radius:999px;position:relative}.site-brand{font:400 13px var(--font-pixel), monospace;color:var(--gleam);opacity:0;padding:9px 16px;text-decoration:none;transition:opacity .35s,transform .5s cubic-bezier(.3,1.5,.5,1);position:absolute;left:16px;transform:translateY(-6px)scale(.92)}.scrolled .site-brand{opacity:1;transform:none}.site-nav nav{gap:2px;padding:4px;display:flex}.site-nav nav a{z-index:1;color:var(--nav-text);white-space:nowrap;border-radius:999px;padding:6px 14px;text-decoration:none;transition:color .25s,transform .3s cubic-bezier(.3,1.6,.5,1);position:relative}.site-nav nav a:hover{color:var(--nav-hover)}.site-nav nav a:active{transform:scale(.94)}.site-nav nav a.active{color:var(--nav-active);text-shadow:0 0 10px var(--nav-glow)}.site-nav .lens{z-index:0;opacity:0;background:linear-gradient(180deg, var(--lens-a), var(--lens-b));width:0;box-shadow:inset 0 1px .5px #ffffff73, inset 0 -1px .5px #ffffff1f, inset 0 0 0 1px #ffffff26, 0 4px 14px var(--glass-shadow);border-radius:999px;transition:transform .55s cubic-bezier(.3,1.35,.45,1),width .55s cubic-bezier(.3,1.35,.45,1),opacity .3s,scale .45s cubic-bezier(.3,1.6,.5,1);position:absolute;top:4px;bottom:4px;left:0;scale:.85}.site-nav .lens.on{opacity:1;scale:1}.site-nav nav:has(a.active:active) .lens{scale:.94}@media (prefers-reduced-motion:reduce){.site-nav .lens,.site-brand{transition-duration:10ms}}@media (prefers-reduced-transparency:reduce),(prefers-contrast:more){.glass,.glass[style]{-webkit-backdrop-filter:none;background:#0b1627;box-shadow:inset 0 0 0 1px #3a5566,0 8px 24px #0008;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.site-nav .lens{background:#c8dfef}.site-nav nav a.active{color:var(--zenith);text-shadow:none}[data-theme=light] .glass,[data-theme=light] .glass[style]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--border), 0 8px 24px #0003}[data-theme=light] .site-nav .lens{background:var(--nav-text)}}@media (max-width:900px){.site-brand{display:none}}@media (max-width:560px){.site-nav{padding:0 8px}.site-nav nav{gap:0}.site-nav nav a{padding:6px 5px;font-size:11px}}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 18px;font-size:12px}.eyebrow span{font-family:var(--font-mono), monospace;color:var(--sec,var(--gold));margin-right:8px;font-size:12px;font-weight:700}.shikon .eyebrow{color:var(--shikon-dim)}.scroll-cue{z-index:2;letter-spacing:.2em;text-transform:uppercase;color:var(--sand);opacity:.8;justify-items:center;gap:6px;font-size:11px;text-decoration:none;display:grid;position:absolute;bottom:22px;left:50%;translate:-50%}.scroll-cue svg{image-rendering:pixelated;animation:1.6s ease-in-out infinite cue}@keyframes cue{50%{transform:translateY(5px)}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.section-grid>*{animation:linear both reveal;animation-timeline:view();animation-range:entry 5% cover 28%}.section-grid>:nth-child(2){animation-range:entry 12% cover 34%}}}@keyframes reveal{0%{opacity:0;translate:0 48px;scale:.98}}.app-head img.squircle{border-radius:22.5%}.lake-hint{pointer-events:none;color:var(--lake-hint);text-shadow:0 1px 6px var(--lake-shadow);position:absolute;bottom:24px;left:24px;margin:0!important}.bamboo-score{font:400 14px var(--font-pixel), monospace;color:var(--gleam);text-shadow:2px 2px 0 var(--ink);animation:.3s cubic-bezier(.3,1.6,.5,1) pop;position:absolute;bottom:24px;right:24px}.combo{font:400 16px var(--font-pixel), monospace;color:var(--gleam);text-shadow:2px 2px 0 #985344, 4px 4px 0 var(--ink);white-space:nowrap;pointer-events:none;animation:.9s ease-out forwards combo;position:absolute;translate:-50% -140%}@keyframes combo{0%{opacity:0;scale:.4}15%{opacity:1;scale:1.25}30%{scale:1}to{opacity:0;translate:-50% -260%}}.chip{transition:transform .15s,border-color .15s,color .15s}.chip:hover{border-color:var(--sec,var(--gold));color:var(--gleam);transform:translateY(-2px)rotate(-1deg)}.s-trail{width:100%;height:100%;position:absolute;inset:0}.s-glow{opacity:0;will-change:transform;position:absolute;top:0;left:0}#hakuterm,#hakuterm *{cursor:none!important}.pixel-pet{z-index:30;pointer-events:none;opacity:0;will-change:transform;position:absolute;top:0;left:0}.moon-scroll{display:none}@supports (animation-timeline:scroll()){html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.moon-scroll{z-index:50;pointer-events:none;background:radial-gradient(circle, var(--scroll-dot) 1px, transparent 1.5px) center / 12px 14px repeat-y;width:12px;display:block;position:fixed;top:16px;bottom:16px;right:8px}.moon-scroll:after{content:"";background:var(--scroll-knob);border-radius:50%;width:12px;height:12px;animation:linear both moon-scroll;animation-timeline:scroll(root);position:absolute;top:0;left:0;box-shadow:0 0 10px #f2e2b880}}.read-progress{display:none}@supports (animation-timeline:view()){.post{timeline-scope:--article}.prose{view-timeline:--article block}.read-progress{z-index:56;pointer-events:none;transform-origin:0;background:linear-gradient(90deg, var(--spring), var(--violet) 70%, var(--gleam));height:2px;box-shadow:0 0 8px color-mix(in srgb, var(--spring) 70%, transparent);animation:linear both read-progress;animation-timeline:--article;animation-range:contain;display:block;position:fixed;top:0;left:0;right:0}}@keyframes read-progress{0%{scale:0 1}to{scale:1}}@keyframes moon-scroll{0%{box-shadow:inset 9px 0 0 var(--scroll-shade), 0 0 6px #f2e2b840;top:0}to{box-shadow:inset 0 0 0 var(--scroll-shade), 0 0 12px #f2e2b8a0;top:calc(100% - 12px)}}.gpu-notice{z-index:70;color:#a9bccb;border:1px solid var(--night-line);-webkit-backdrop-filter:blur(10px);background:#03050ce6;border-radius:12px;align-items:flex-start;gap:12px;width:min(560px,100% - 32px);padding:12px 14px;font-size:13px;line-height:1.5;display:flex;position:fixed;bottom:16px;left:50%;translate:-50%;box-shadow:0 12px 40px #000a,0 0 18px #7fb4ca22}.gpu-notice button{color:var(--spring);background:0 0;border:0;margin-left:auto;padding:0 4px;font-size:18px;line-height:1}.blog-note{text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;max-width:720px;height:100%;margin:0 auto;padding:0 24px 16vh;display:flex}.blog-note .eyebrow span{color:var(--jade)}.blog-note h1{font:600 clamp(26px, 5vw, 48px)/1.1 var(--font-display), system-ui, sans-serif;letter-spacing:-.03em;color:var(--gleam);text-shadow:0 2px 16px var(--zenith);margin:0 0 18px}.blog-note p{color:var(--about-text);text-shadow:0 1px 6px var(--zenith);margin:0 0 22px}.blog-note a{color:var(--spring)}body:has(.post,.blog-index){background:var(--zenith)}.post{min-height:100svh;color:var(--about-text);grid-template-columns:1fr min(680px,100%) 1fr;align-items:start;padding:120px 24px 96px;display:grid}.prose{grid-column:2;min-width:0;font-size:15px;line-height:1.8}.prose>*{margin:0 0 24px}.prose a{color:var(--spring);text-underline-offset:3px;-webkit-text-decoration-color:color-mix(in srgb, var(--spring) 40%, transparent);text-decoration-color:color-mix(in srgb, var(--spring) 40%, transparent)}.prose a:hover{text-decoration-color:currentColor}.prose strong{color:var(--gleam);font-weight:600}.prose ul,.prose ol{padding-left:22px}.prose li{margin:6px 0}.prose ul li::marker{content:"▸  ";color:var(--jade)}.prose hr{background:linear-gradient(90deg, transparent, var(--night-line), transparent);border:0;height:1px;margin:48px 0}.prose :not(pre)>code{color:var(--ice);background:color-mix(in srgb, var(--night-line) 70%, transparent);border-radius:6px;padding:2px 6px;font-size:.9em}.post-head{margin-bottom:48px}.post-head .eyebrow span{color:var(--jade)}.post-head .eyebrow a{color:inherit;text-decoration:none}.post-head h1{font:600 clamp(26px, 4.4vw, 40px)/1.2 var(--font-display), system-ui, sans-serif;letter-spacing:-.025em;color:var(--gleam);text-shadow:0 2px 12px var(--zenith);margin:0}.post-lede{color:var(--ice);margin:20px 0 0;font-size:17px;line-height:1.6}.post-tags{flex-wrap:wrap;gap:6px;margin:20px 0 0;display:flex}.post-tags .chip{border-color:var(--night-line);color:var(--spring);margin:0;font-size:12px}.share{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);border-radius:20px;margin-top:64px;padding:16px}.share-head{border-bottom:1px solid var(--night-line);align-items:center;gap:12px;padding-bottom:16px;display:flex}.share-head img{border:1px solid var(--night-line);background:var(--zenith);border-radius:11px;flex:none;width:44px;height:44px;padding:7px}.share-head div{flex:1;min-width:0;line-height:1.4;display:grid}.share-head strong{text-overflow:ellipsis;white-space:nowrap;color:var(--gleam);font-size:14px;font-weight:600;overflow:hidden}.share-head span{text-overflow:ellipsis;white-space:nowrap;color:var(--footer-text);font-size:12px;overflow:hidden}.share-main{color:var(--zenith);background:var(--spring);border:0;border-radius:99px;flex:none;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;transition:transform .25s cubic-bezier(.3,1.6,.5,1),filter .2s;display:inline-flex}.share-main:hover{filter:brightness(1.12)}.share-main:active{transform:scale(.94)}.share-apps{scrollbar-width:none;scroll-snap-type:x mandatory;gap:10px;padding-top:16px;display:flex;overflow-x:auto}.share-apps::-webkit-scrollbar{display:none}.share-app{width:64px;color:var(--footer-text);scroll-snap-align:start;background:0 0;border:0;flex:none;justify-items:center;gap:7px;padding:0;font-size:11px;text-decoration:none;display:grid}.share-app small{white-space:nowrap;font-size:11px;transition:color .2s}.share-app:hover small{color:var(--ice)}.tile{color:#fff;background:var(--tile);border-radius:14px;place-items:center;width:54px;height:54px;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid;box-shadow:inset 0 0 0 1px #ffffff1f,0 4px 14px #0006}.tile.neutral{--tile:color-mix(in srgb, var(--ice) 16%, var(--zenith));color:var(--ice)}.tile svg{width:26px;height:26px}.share-app:hover .tile{transform:translateY(-2px)}.share-app:active .tile{transform:scale(.92)}.phone-only{display:none}@media (pointer:coarse){.phone-only{display:grid}}@media (max-width:640px){.share{margin-left:-8px;margin-right:-8px}.share-apps{margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding:0 16px}}.share+.post-foot{border-top:0;margin-top:24px;padding-top:0}.post-foot{border-top:1px solid var(--night-line);grid-template-columns:1fr 1fr;gap:16px;margin-top:64px;padding-top:24px;font-size:14px;display:grid}.post-foot a{border:1px solid var(--night-line);color:var(--gleam);border-radius:12px;gap:4px;padding:14px 16px;text-decoration:none;transition:border-color .2s,background .2s;display:grid}.post-foot a:hover{border-color:color-mix(in srgb, var(--spring) 50%, transparent);background:color-mix(in srgb, var(--night-line) 35%, transparent)}.post-foot small{color:var(--footer-text);font-size:12px}.post-foot .newer{text-align:right;grid-column:2}@media (max-width:560px){.post-foot{grid-template-columns:1fr}.post-foot .newer{grid-column:1}}.toc{border-left:1px solid var(--night-line);grid-column:3;gap:2px;max-width:220px;margin-left:48px;padding-left:14px;font-size:12px;line-height:1.5;display:grid;position:sticky;top:120px}.toc p{font:600 11px/1.8 var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:0 0 8px}.toc a{color:var(--footer-text);padding:3px 0;text-decoration:none;transition:color .2s}.toc a.d3{padding-left:12px}.toc a:hover,.toc a.on{color:var(--ice)}.toc a.on{position:relative}.toc a.on:before{content:"";background:var(--spring);width:1px;position:absolute;top:4px;bottom:4px;left:-15px}.toc a.d3.on:before{left:-15px}@media (max-width:1200px){.toc{display:none}}.heading{color:var(--gleam);margin:56px 0 16px;scroll-margin-top:96px;font-weight:600;line-height:1.35;position:relative}h2.heading{font-size:22px}h3.heading{margin-top:40px;font-size:17px}.heading a{color:var(--jade);opacity:0;padding-right:10px;text-decoration:none;transition:opacity .2s;position:absolute;right:100%}.heading:hover a{opacity:1}.code{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);--shiki-foreground:var(--about-text);--shiki-background:transparent;--shiki-token-keyword:var(--violet);--shiki-token-string:var(--jade);--shiki-token-string-expression:var(--jade);--shiki-token-comment:var(--dim);--shiki-token-function:var(--spring);--shiki-token-constant:var(--gold);--shiki-token-parameter:var(--sand);--shiki-token-punctuation:var(--footer-text);--shiki-token-link:var(--spring);--shiki-token-inserted:var(--jade);--shiki-token-deleted:#d9776b;--shiki-token-changed:var(--gold);border-radius:12px;margin:32px 0;overflow:hidden}.code figcaption{color:var(--footer-text);border-bottom:1px solid var(--night-line);justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;display:flex}.code .copy{color:var(--footer-text);background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:12px;transition:color .2s,background .2s}.code .copy:hover{color:var(--ice);background:color-mix(in srgb, var(--night-line) 70%, transparent)}.code pre{margin:0;padding:16px 0;font-size:13px;line-height:1.7;overflow-x:auto}.code .line{border-left:2px solid #0000;min-width:100%;padding:0 18px;display:inline-block}.code .line.hl{background:color-mix(in srgb, var(--spring) 10%, transparent);border-left-color:var(--spring)}.code .line.add{background:color-mix(in srgb, var(--jade) 12%, transparent);border-left-color:var(--jade)}.code .line.remove{opacity:.75;background:#d9776b1a;border-left-color:#d9776b}.code.numbered pre{counter-reset:line}.code.numbered .line:before{counter-increment:line;content:counter(line);text-align:right;width:2ch;color:var(--dim);opacity:.6;margin-right:18px;display:inline-block}.callout{--c:var(--spring);border:1px solid color-mix(in srgb, var(--c) 28%, transparent);background:color-mix(in srgb, var(--c) 7%, transparent);border-radius:12px;margin:32px 0;padding:16px 20px}.callout.tip{--c:var(--jade)}.callout.idea{--c:var(--gleam)}.callout.question{--c:var(--violet)}.callout.example{--c:var(--sand)}.callout.perf{--c:var(--ice)}.callout.warn{--c:var(--gold)}.callout.danger{--c:#d9776b}.callout.bug{--c:color-mix(in srgb, #d9776b 55%, var(--gold))}.callout.example,.callout.question{border-width:0 0 0 2px;border-color:color-mix(in srgb, var(--c) 60%, transparent);border-radius:0 12px 12px 0}.callout-title{font:600 11px/1.8 var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--c);align-items:center;gap:8px;margin:0 0 6px;display:flex}.callout-title svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}details.callout>summary{cursor:pointer;margin:0;list-style:none}details.callout>summary::-webkit-details-marker{display:none}details.callout>summary:after{content:"▸";margin-left:auto;transition:rotate .2s}details.callout[open]>summary{margin-bottom:6px}details.callout[open]>summary:after{rotate:90deg}.callout>div>:last-child,.details>div>:last-child,.quote>div>:last-child{margin-bottom:0}.callout>div>*,.details>div>*{margin:0 0 12px}.figure{margin:40px 0}.figure img{border:1px solid var(--night-line);border-radius:12px;width:100%;display:block}.figure figcaption{text-align:center;color:var(--footer-text);margin-top:10px;font-size:12px}.quote{border-left:2px solid var(--violet);color:var(--ice);margin:40px 0;padding:4px 0 4px 24px;font-size:17px;line-height:1.7}.quote footer{color:var(--footer-text);margin-top:10px;font-size:13px}.prose table{border-collapse:collapse;width:100%;font-size:14px}.prose th{text-align:left;color:var(--gleam);font-weight:600}.prose th,.prose td{border-bottom:1px solid var(--night-line);padding:10px 12px}.prose img{border-radius:12px;max-width:100%}.shader{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);border-radius:12px;margin:32px 0;overflow:hidden}.shader>figcaption{color:var(--footer-text);border-bottom:1px solid var(--night-line);justify-content:space-between;align-items:center;padding:6px 8px 6px 14px;font-size:12px;display:flex}.shader>figcaption div{gap:2px;display:flex}.shader>figcaption button{color:var(--footer-text);background:0 0;border:0;border-radius:6px;padding:2px 8px;font-size:12px;transition:color .2s,background .2s}.shader>figcaption button:hover,.shader>figcaption button[aria-pressed=true]{color:var(--ice);background:color-mix(in srgb, var(--night-line) 70%, transparent)}.shader-stage{background:var(--night-bg);position:relative}.shader-error{white-space:pre-wrap;color:#d9776b;background:color-mix(in srgb, var(--zenith) 85%, transparent);margin:0;padding:16px;font-size:12px;position:absolute;inset:0;overflow:auto}.shader-controls{border-top:1px solid var(--night-line);gap:4px;padding:12px 14px;font-size:12px;display:grid}.shader-controls label{color:var(--footer-text);grid-template-columns:8ch 1fr 5ch;align-items:center;gap:12px;display:grid}.shader-controls input{accent-color:var(--spring)}.shader-controls output{text-align:right;color:var(--ice);font-variant-numeric:tabular-nums}.shader .code,.tabs .code{background:0 0;border:0;border-radius:0;margin:0;position:relative}.shader .code figcaption,.tabs .code figcaption{z-index:1;border:0;padding:0;position:absolute;top:8px;right:8px}.shader .code figcaption span,.tabs .code figcaption span{display:none}.shader .code .copy,.tabs .code .copy{background:color-mix(in srgb, var(--zenith) 85%, transparent)}.prose mark{color:var(--gleam);background:linear-gradient(100deg, color-mix(in srgb, var(--gold) 45%, transparent), color-mix(in srgb, var(--gold) 30%, transparent)) no-repeat 0 / 100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:3px;padding:0 3px}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.prose mark{animation:linear both highlight;animation-timeline:view();animation-range:entry 100% cover 40%}}}@keyframes highlight{0%{background-size:0% 100%}}.prose sup a{text-decoration:none}.prose .footnotes{border-top:1px solid var(--night-line);color:var(--footer-text);margin-top:56px;padding-top:16px;font-size:13px}.prose .footnotes h2{letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0 0 8px;font-size:12px}.tabs{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);border-radius:12px;margin:32px 0;overflow:hidden}.tabs [role=tablist]{border-bottom:1px solid var(--night-line);gap:2px;padding:6px 8px;display:flex}.tabs [role=tab]{color:var(--footer-text);background:0 0;border:0;border-radius:6px;padding:3px 10px;font-size:12px;transition:color .2s,background .2s}.tabs [role=tab]:hover,.tabs [role=tab][aria-selected=true]{color:var(--ice);background:color-mix(in srgb, var(--night-line) 70%, transparent)}.tabs [role=tabpanel]{padding:0 18px}.tabs [role=tabpanel]:has(>.code:only-child){padding:0}.steps>ol{counter-reset:step;padding:0;list-style:none}.steps>ol>li{counter-increment:step;margin:0;padding:0 0 24px 44px;position:relative}.steps>ol>li:before{content:counter(step);width:26px;height:26px;color:var(--zenith);background:var(--spring);border-radius:50%;place-items:center;font-size:12px;display:grid;position:absolute;top:2px;left:0}.steps>ol>li:not(:last-child):after{content:"";background:var(--night-line);width:1px;position:absolute;top:34px;bottom:6px;left:12.5px}.steps>ol>li>:first-child{color:var(--gleam);margin-top:0;font-weight:600}.grid{grid-template-columns:repeat(var(--cols), 1fr);gap:16px;margin:40px 0;display:grid}.grid>*{margin:0}@media (max-width:560px){.grid{grid-template-columns:1fr}}.figure video{border:1px solid var(--night-line);border-radius:12px;width:100%;display:block}.player{border:1px solid var(--night-line);outline-offset:3px;background:#000;border-radius:12px;position:relative;overflow:hidden}.player video{cursor:pointer;border:0;border-radius:0}.player:fullscreen{border:0;border-radius:0;place-items:center;display:grid}.player-big{color:#fff;-webkit-backdrop-filter:blur(8px);background:#03050c99;border:1px solid #ffffff30;border-radius:50%;place-items:center;width:64px;height:64px;padding:0 0 0 3px;transition:transform .25s cubic-bezier(.3,1.6,.5,1),background .2s;display:grid;position:absolute;top:50%;left:50%;translate:-50% -50%}.player-big svg{width:22px;height:22px}.player-big:hover{background:#7fb4ca55;transform:scale(1.08)}.player-bar{color:#e6eef3;opacity:0;background:linear-gradient(#0000,#03050ccc);align-items:center;gap:10px;padding:28px 12px 10px;font-size:12px;transition:opacity .25s;display:flex;position:absolute;bottom:0;left:0;right:0}.player:not(.playing) .player-bar,.player:hover .player-bar,.player:focus-within .player-bar{opacity:1}.player-bar button{color:inherit;opacity:.85;background:0 0;border:0;border-radius:6px;place-items:center;padding:4px;transition:opacity .2s,background .2s;display:grid}.player-bar button:hover{opacity:1;background:#ffffff1a}.player-bar span{font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.85}.player-bar input{appearance:none;cursor:pointer;background:linear-gradient(90deg, #7fb4ca var(--p), #fff3 var(--p));border-radius:99px;flex:1;min-width:40px;height:4px;margin:0}.player-bar input::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;width:12px;height:12px;box-shadow:0 0 8px #7fb4ca}.player-bar input::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:12px;height:12px}@media (max-width:480px){.player-bar span{display:none}}.compare-stage{border:1px solid var(--night-line);-webkit-user-select:none;user-select:none;border-radius:12px;position:relative;overflow:hidden}.compare-stage img{border:0;border-radius:0;width:100%;display:block}.compare-stage .after{object-fit:cover;height:100%;clip-path:inset(0 0 0 var(--x));position:absolute;inset:0}.compare-stage:after{content:"";top:0;bottom:0;left:var(--x);background:var(--ice);width:2px;box-shadow:0 0 10px var(--zenith);pointer-events:none;margin-left:-1px;position:absolute}.compare-stage span{color:var(--ice);background:color-mix(in srgb, var(--zenith) 70%, transparent);pointer-events:none;border-radius:99px;padding:2px 8px;font-size:11px;position:absolute;top:10px;left:10px}.compare-stage .after-label{left:auto;right:10px}.compare-stage input{opacity:0;cursor:ew-resize;width:100%;height:100%;margin:0;position:absolute;inset:0}.compare-stage:has(input:focus-visible){outline:2px solid var(--violet);outline-offset:2px}.blog-index{background:var(--zenith);margin-top:-80px;padding:80px 24px 120px;position:relative;-webkit-mask-image:linear-gradient(#0000,#000 80px);mask-image:linear-gradient(#0000,#000 80px)}.post-list{max-width:760px;margin:0 auto}.post-filters{gap:14px;margin-bottom:40px;display:grid}.post-filters input{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);width:100%;color:var(--ice);border-radius:99px;outline:none;padding:10px 16px;font-size:14px;transition:border-color .2s}.post-filters input::placeholder{color:var(--footer-text)}.post-filters input:focus{border-color:var(--spring)}.post-filters .chip{color:var(--footer-text);border-color:var(--night-line);background:0 0;font-size:12px}.post-filters .chip[aria-pressed=true]{color:var(--zenith);background:var(--spring);border-color:var(--spring)}.post-year{border-top:1px solid var(--night-line);grid-template-columns:72px 1fr;gap:0 24px;margin-bottom:24px;padding-top:24px;display:grid}.post-year h2{font:600 13px/1.6 var(--font-display), system-ui, sans-serif;color:var(--dim);margin:14px 0 0}.post-year ul{margin:0;padding:0;list-style:none}.post-year a{color:var(--about-text);border-radius:12px;grid-template-columns:64px 1fr;gap:16px;margin:0 -16px;padding:14px 16px;text-decoration:none;transition:background .2s;display:grid}.post-year a:hover{background:color-mix(in srgb, var(--night-line) 40%, transparent)}.post-year time{color:var(--footer-text);font-variant-numeric:tabular-nums;padding-top:2px;font-size:12px}.post-item{gap:4px;display:grid}.post-item strong{color:var(--gleam);font-size:16px;font-weight:600;transition:color .2s}.post-year a:hover strong{color:var(--spring)}.post-item span{font-size:14px;line-height:1.6}.post-item small{color:var(--footer-text);font-size:12px}.draft{border:1px dashed var(--gold);font:normal 400 10px/1.6 var(--font-mono), monospace;color:var(--gold);vertical-align:middle;border-radius:6px;margin-left:10px;padding:1px 6px}.post-empty{color:var(--footer-text)}.post-empty button{color:var(--spring);background:0 0;border:0;padding:0;text-decoration:underline}@media (max-width:640px){.post-year{grid-template-columns:1fr}.post-year a{grid-template-columns:1fr;gap:4px}}.selection-glow{z-index:55;pointer-events:none;mix-blend-mode:screen}[data-theme=light] .selection-glow{mix-blend-mode:multiply}.glow-select ::selection{background:0 0}.copy-hint{z-index:60;pointer-events:none;margin:0;position:fixed;inset:0}.copy-hint span{font:600 12px/1.5 var(--font-display), system-ui, sans-serif;letter-spacing:.01em;color:var(--zenith);background:var(--spring);box-shadow:0 0 14px color-mix(in srgb, var(--spring) 60%, transparent);border-radius:99px;padding:4px 9px;animation:1.2s cubic-bezier(.3,1.6,.5,1) forwards copied;position:absolute;translate:10px -130%}@keyframes copied{0%{opacity:0;scale:.6}15%{opacity:1;scale:1}75%{opacity:1;translate:10px -130%}to{opacity:0;translate:10px -220%}}@media (prefers-reduced-motion:reduce){.copy-hint span{animation:none}}.mouse-trail{z-index:54;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.details{border:1px solid var(--night-line);border-radius:12px;margin:32px 0}.details summary{cursor:pointer;color:var(--gleam);padding:12px 18px;list-style:none}.details summary::-webkit-details-marker{display:none}.details summary:before{content:"▸";color:var(--jade);margin-right:10px;transition:rotate .2s;display:inline-block}.details[open] summary:before{rotate:90deg}.details>div{padding:0 18px 16px}.terminal .line{white-space:pre;display:block}.terminal figcaption span{align-items:center;gap:6px;display:inline-flex}.terminal figcaption i{background:var(--night-line);border-radius:50%;width:9px;height:9px}.terminal figcaption i:last-of-type{margin-right:6px}.terminal .cmd{color:var(--gleam)}.terminal .prompt{color:var(--jade);-webkit-user-select:none;user-select:none}.terminal .out{color:var(--footer-text)}.file-tree{border:1px solid var(--night-line);color:var(--about-text);border-radius:12px;margin:32px 0;padding:14px 18px;font:13px/1.8 ui-monospace,Menlo,monospace;overflow-x:auto}.file-tree ul{margin:0;padding:0;list-style:none}.file-tree ul ul{border-left:1px solid var(--night-line);margin-left:7px;padding-left:14px}.file-tree li{white-space:nowrap;margin:0}.file-tree ul li::marker{content:none}.file-tree li:before{content:"·";width:1.6ch;color:var(--dim);display:inline-block}.file-tree li:has(>ul){color:var(--spring)}.file-tree li:has(>ul):before{content:"▸";color:var(--jade)}.file-tree li:has(>ul) li:not(:has(>ul)){color:var(--about-text)}.file-tree em{color:var(--dim);margin-left:12px;font-style:normal}.link-card{border:1px solid var(--night-line);color:var(--about-text);border-radius:12px;gap:4px;margin:32px 0;padding:16px 20px;text-decoration:none;transition:border-color .2s,transform .25s cubic-bezier(.3,1.6,.5,1);display:grid}.link-card:hover{border-color:var(--spring);transform:translateY(-2px)}.link-card strong{color:var(--gleam)}.link-card span{font-size:14px}.link-card small{color:var(--jade);font-size:12px}.series{border:1px solid var(--night-line);border-radius:12px;margin:0 0 36px;padding:14px 18px;font-size:14px}.series p{color:var(--gleam);margin:0 0 8px;font-weight:600}.series p span{letter-spacing:.12em;text-transform:uppercase;color:var(--jade);margin-right:8px;font-size:11px;font-weight:600}.series ol{margin:0;padding-left:22px}.series li{color:var(--footer-text);margin:2px 0}.series li[aria-current]{color:var(--gleam)}.series a{color:var(--about-text)}.series-next{margin-top:10px;text-decoration:none;display:inline-block;color:var(--spring)!important}.zoom{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.lightbox{cursor:zoom-out;background:0 0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:24px}.lightbox[open]{place-items:center;display:grid}.lightbox img{object-fit:contain;border:0;border-radius:12px;width:auto;max-width:calc(100vw - 48px);height:auto;max-height:calc(100dvh - 48px);animation:.3s cubic-bezier(.3,1.4,.5,1) zoom-in;box-shadow:0 20px 80px #000a}.lightbox::backdrop{background:color-mix(in srgb, var(--zenith) 88%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}html:has(.lightbox[open]){overflow:hidden}@keyframes zoom-in{0%{opacity:0;scale:.92}}@media (prefers-reduced-motion:reduce){.lightbox img{animation:none}}.embed-stage{border:1px solid var(--night-line);background:color-mix(in srgb, var(--night-line) 35%, transparent);border-radius:12px;position:relative;overflow:hidden}.embed-stage iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.embed-facade{width:100%;color:var(--gleam);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;inset:0}.embed-facade img{object-fit:cover;opacity:.55;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.embed-facade:hover img{opacity:.75}.embed-play{width:60px;height:60px;color:var(--zenith);background:var(--spring);box-shadow:0 0 24px color-mix(in srgb, var(--spring) 50%, transparent);border-radius:50%;place-items:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1);display:grid;position:relative}.embed-play svg{width:22px;height:22px;margin-left:3px}.embed-facade:hover .embed-play{transform:scale(1.08)}.embed-note{text-align:left;color:var(--footer-text);background:linear-gradient(transparent, color-mix(in srgb, var(--zenith) 85%, transparent));gap:2px;padding:12px 16px;font-size:12px;display:grid;position:absolute;bottom:0;left:0;right:0}.embed-note strong{color:var(--gleam);font-size:14px}.prose{counter-reset:sidenote}.sidenote-ref:after{counter-increment:sidenote;content:counter(sidenote);color:var(--jade);margin-left:1px;font-size:.75em}.sidenote{border-left:2px solid color-mix(in srgb, var(--jade) 50%, transparent);color:var(--footer-text);margin:10px 0;padding-left:12px;font-size:13px;line-height:1.6;display:block}.sidenote:before{content:counter(sidenote) "  ";color:var(--jade)}@media (min-width:1240px){.sidenote{float:left;clear:left;text-align:right;border:0;width:200px;margin:4px 0 12px -240px;padding:0}}.badge{--b:var(--spring);border:1px solid color-mix(in srgb, var(--b) 45%, transparent);letter-spacing:.02em;vertical-align:.1em;color:var(--b);background:color-mix(in srgb, var(--b) 10%, transparent);border-radius:99px;margin:0 2px;padding:0 7px;font-size:11px;font-weight:600;line-height:1.7;display:inline-block}.badge.jade{--b:var(--jade)}.badge.gold{--b:color-mix(in srgb, var(--gold) 55%, var(--gleam))}.badge.violet{--b:var(--violet)}.badge.red{--b:#d9776b}.prose .katex{color:var(--gleam);font-size:1.08em}.prose .katex-display{margin:28px 0;padding:4px 0;overflow:auto hidden}.theme-toggle{z-index:1;color:var(--nav-text);background:0 0;border:0;border-radius:999px;place-items:center;padding:6px 10px;transition:color .25s,transform .3s cubic-bezier(.3,1.6,.5,1);display:grid;position:relative}.theme-toggle:hover{color:var(--nav-hover)}.theme-toggle:active{transform:scale(.9)rotate(-20deg)}.theme-toggle svg{display:block}.site-nav nav a>svg,.theme-toggle span{display:none}.site-nav .ext{font-style:normal}@media (max-width:560px){.theme-toggle{padding:4px 6px}}:root[data-theme=light]{--ink:#f7f0e3;--bg:#efe6d6;--surface:#e6dac6;--raised:#d9cab2;--border:#c4b092;--text:#4a3b2c;--dim:#7a6650;--gold:#8f5f22;--sand:#5f4b36;--gleam:#2b2016;--violet:#5b51b8;--zenith:#dbe8ef;--prussian:#a9c6d6;--jade:#3f6b3f;--spring:#23627d;--ice:#17323f;--night-line:#bfd2dc;--select-bg:#23627d33;--title-shadow:#ffffffb0;--about-text:#33434e;--footer-text:#4e6a77;--lake-hint:#e4eff5;--lake-shadow:#0b2a3acc;--shikon-a:#f1e4f7;--shikon-b:#e3d1ee;--shikon-text:#4a2d5a;--shikon-head:#2d1640;--shikon-dim:#7a5a8e;--shikon-line:#c9aedb;--glass-a:#ffffff8c;--glass-b:#ffffff4d;--glass-c:#a9c6d633;--glass-rim:#ffffffd0;--glass-shadow:#2b201633;--lens-a:#fffc;--lens-b:#ffffff80;--nav-text:#3a4a55;--nav-hover:#000;--nav-active:#10202a;--nav-glow:#c8dfef00;--scroll-dot:#23627d55;--scroll-knob:#f2b53c;--scroll-shade:#f2b53c;--night-bg:linear-gradient(180deg, #8fbfdc, #dcecf2);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (max-width:640px),(pointer:coarse) and (max-height:500px){.site-brand{display:none}.site-nav{inset:auto 0 max(28px, calc(env(safe-area-inset-bottom) + 16px));padding:0 12px}.site-nav nav{gap:0;width:min(100%,480px);padding:4px}.site-nav nav a,.theme-toggle{text-shadow:0 1px 4px var(--zenith);border-radius:999px;flex:1;justify-items:center;gap:4px;min-width:0;padding:7px 0 6px;font-size:10px;line-height:1;display:grid}.site-nav nav a>svg,.theme-toggle svg{width:20px;height:20px;display:block}.theme-toggle span{display:block}.site-nav nav a span,.theme-toggle span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.site-nav .ext{display:none}.scroll-cue{bottom:108px}.hero-title{margin-bottom:170px}.lake-hint,.bamboo-score{bottom:104px}.gpu-notice{bottom:calc(96px + env(safe-area-inset-bottom))}.footer{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.post{padding-top:56px;padding-bottom:calc(134px + env(safe-area-inset-bottom))}.heading{scroll-margin-top:24px}.moon-scroll{bottom:104px}}video::cue{font:14px/1.4 var(--font-mono), monospace;color:#fff;background:#03050ccc}
