@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{--bg:#fff;--bg-raised:#f5f6f8;--bg-card:#fff;--line:#e3e6ec;--text:#0d1117;--text-soft:#2e3542;--muted:#636b7a;--accent:#1d4ed8;--accent-2:#1638a8;--accent-ink:#fff;--header-bg:#ffffffdb;--sans:"Geist Variable", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--mono:"Geist Mono Variable", ui-monospace, Menlo, Consolas, monospace;--radius:10px;--maxw:70rem;--gutter:1.25rem;color-scheme:light}:root[data-theme=dark]{--bg:#0b0e14;--bg-raised:#10141c;--bg-card:#131824;--line:#232a37;--text:#e8ebf1;--text-soft:#c3c9d4;--muted:#8a93a3;--accent:#6f9bff;--accent-2:#9bb8ff;--accent-ink:#0b0e14;--header-bg:#0b0e14db;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.6;transition:background-color .4s,color .4s;display:flex}::selection{background:var(--accent);color:var(--accent-ink)}h1,h2,h3{font-family:var(--sans);letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:700;line-height:1.12}p{text-wrap:pretty;margin:0}img{max-width:100%;height:auto;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:.2em;text-decoration:underline}:focus-visible{outline:2px solid var(--accent-2);outline-offset:3px;border-radius:4px}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.label{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:500}.skip{position:absolute;left:-999px}.skip:focus{left:var(--gutter);z-index:60;background:var(--accent);color:var(--accent-ink);padding:.4rem .75rem;top:.75rem}.site-header{z-index:50;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header .wrap{align-items:center;gap:1.5rem;height:4rem;display:flex}.brand{font-family:var(--sans);letter-spacing:-.015em;color:var(--text);font-size:1.1rem;font-weight:800}.brand:hover{text-decoration:none}.brand span{color:var(--accent)}.site-nav{gap:1.35rem;margin-left:auto;display:flex}.site-nav a{color:var(--muted)}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--text);text-decoration:none}@media (width<=40rem){.site-header .wrap{flex-wrap:wrap;gap:.35rem 1rem;height:auto;padding-block:.8rem .7rem}.site-nav{justify-content:space-between;gap:.6rem;width:100%;margin-left:0}.site-nav a{letter-spacing:.09em;font-size:.64rem}}main{flex:1}.btn{font-family:var(--sans);border-radius:6px;justify-content:center;align-items:center;padding:.75rem 1.35rem;font-size:1rem;font-weight:700;line-height:1.2;transition:transform .15s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-2)}.btn-ghost{border:1.5px solid var(--line);color:var(--text)}.btn-ghost:hover{border-color:var(--text)}.hero{border-bottom:1px solid var(--line)}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,46%);min-height:36rem;display:grid}.hero-copy{padding:5rem 3rem 4.5rem max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter)));flex-direction:column;justify-content:center;gap:1.6rem;display:flex}.hero h1{letter-spacing:-.045em;max-width:13ch;font-size:clamp(2.35rem,4.7vw,4.1rem);font-weight:800;line-height:1.02}.hero .lead{color:var(--text-soft);max-width:34rem;font-size:1.15rem;line-height:1.55}.hero-ctas{flex-wrap:wrap;align-items:center;gap:1.35rem;display:flex}.hero-link{text-underline-offset:4px;font-size:1.05rem;text-decoration:underline 1px}.hero-link:hover{color:var(--text)}.hero-visual{background:linear-gradient(to right, var(--bg) 0%, var(--bg-raised) 30%);margin:0;position:relative;overflow:hidden}.hero-visual.has-photo{min-height:24rem}.hero-visual img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero-visual.has-photo:after{content:"";background:linear-gradient(to right, var(--bg) 0%, transparent 34%);pointer-events:none;position:absolute;inset:0}@media (width<=54rem){.hero-grid{grid-template-columns:1fr;min-height:0}.hero-visual{background:var(--bg-raised);border-top:1px solid var(--line)}.hero-visual.has-photo{border-top:0;order:-1;height:17rem;min-height:0}.hero-visual.has-photo:after{background:linear-gradient(to top, var(--bg) 0%, transparent 45%)}.hero-copy{padding:3rem var(--gutter);gap:1.25rem}.hero h1{max-width:none}}.box-scene{flex-direction:column;justify-content:center;align-items:center;height:100%;padding:2.5rem clamp(1.25rem,4vw,3.5rem);display:flex}.box{width:min(21rem,82%)}.box-body,.box-plant{cursor:pointer;-webkit-tap-highlight-color:transparent}.box-body:focus,.box-plant:focus{outline:none}.box-plant:focus-visible .box-pot-rim{stroke:var(--accent);stroke-width:2px}.box-body:focus-visible .box-case{stroke:var(--accent);stroke-width:2.5px}.box svg{--case:#0d1117;--lip:#1b2230;--trim:#2b3445;width:100%;height:auto;display:block;overflow:visible}.box-shelf{fill:#dfe3ea}.box-shelf-edge{fill:#c5cbd6}.box-cable{fill:none;stroke:#b7becb;stroke-width:3px;stroke-linecap:round}.box-shadow{fill:#0d111729}.box-hit{fill:#0000}.box-leaf{fill:#2f9a55}.box-leaf-mid{fill:#46b56c}.box-leaf-light{fill:#6fd08f}.box-leaves{transform-origin:35px 157px;transition:filter .6s;animation:6s ease-in-out infinite sway}.box-grow-1,.box-grow-2,.box-grow-3,.box-flower{transform-origin:35px 157px;transition:transform .7s cubic-bezier(.3,1.5,.5,1);transform:scale(0)}.box-flower{transform-origin:38.5px 112px}[data-plant="1"] .box-grow-1,[data-plant="2"] .box-grow-1,[data-plant="3"] .box-grow-1,[data-plant="4"] .box-grow-1,[data-plant="2"] .box-grow-2,[data-plant="3"] .box-grow-2,[data-plant="4"] .box-grow-2,[data-plant="3"] .box-grow-3,[data-plant="4"] .box-grow-3,[data-plant="4"] .box-flower{transform:scale(1)}.box-stem{fill:none;stroke:#2f9a55;stroke-width:2.4px;stroke-linecap:round}.box-bud{fill:#46b56c}.box-petal{fill:#ff8fab}.box-flower-eye{fill:#ffd166}.box-pot{fill:#d97a4e}.box-pot-rim{fill:#c2633a}.box-soil{fill:none;stroke:#5b3a26;stroke-width:2px;stroke-linecap:round}.box-saucer{fill:#b8572f}.box-plant:hover .box-leaves{animation-duration:1.6s}.box-thirst{fill:none;stroke:#5aa9e6;stroke-width:1.8px;stroke-linejoin:round;opacity:0}.is-thirsty .box-thirst{animation:2.2s ease-in-out infinite hint}.is-thirsty .box-leaves{filter:saturate(.55);animation:none;transform:rotate(7deg)scaleY(.86)}.box-can{opacity:0;pointer-events:none}.box-can-tilt{transform-origin:9px 7px}.box-can-body,.box-can-rose{fill:var(--accent)}.box-can-handle,.box-can-spout{fill:none;stroke:var(--accent);stroke-linecap:round}.box-can-handle{stroke-width:2.4px}.box-can-spout{stroke-width:3.2px}.box-drops circle{fill:#5aa9e6;opacity:0}.is-watering .box-can{animation:1.2s both can-show}.is-watering .box-can-tilt{animation:1.2s both can-tilt}.is-watering .box-drops circle{animation:.5s ease-in .3s 2 both drop}.is-watering .box-drops circle:nth-child(2){animation-delay:.4s}.is-watering .box-drops circle:nth-child(3){animation-delay:.5s}.is-watering .box-leaves{animation:.6s cubic-bezier(.3,1.6,.5,1) .45s perk}.is-perking .box-leaves{animation:.6s cubic-bezier(.3,1.6,.5,1) perk}.is-watering .box-thirst{animation:none}.box-waterings[hidden]{display:none}.box-waterings path{fill:#5aa9e6}.box-waterings text{font-family:var(--mono);fill:var(--muted);font-size:11px}.box-waterings .box-plus{fill:#2f86cf;opacity:0;font-weight:500}.is-watering .box-plus{animation:1s ease-out .4s both plus}@keyframes hint{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:.9;transform:translateY(3px)}}@keyframes can-show{0%,to{opacity:0}15%,80%{opacity:1}}@keyframes can-tilt{0%,to{transform:rotate(0)}25%,75%{transform:rotate(30deg)}}@keyframes drop{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(44px)}}@keyframes perk{40%{transform:scale(1.12,1.16)}}@keyframes plus{0%{opacity:0;transform:translateY(4px)}25%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.box-body{transform-box:fill-box;transform-origin:50% 100%;animation:4.5s ease-in-out infinite breathe}.box-case,.box-lid{fill:var(--case);transition:fill .4s}.box-lip{fill:var(--lip);transition:fill .4s}.box-shine{fill:none;stroke:#ffffff24;stroke-width:2px;stroke-linecap:round}.box-foot,.box-port{fill:var(--trim)}.box-button{fill:none;stroke:var(--trim);stroke-width:2px}.box-vent{fill:none;stroke:var(--trim);stroke-width:2px;stroke-linecap:round}.box-led{fill:#35d07f;animation:2.4s ease-in-out infinite led}.box-arm path,.box-antenna path{fill:none;stroke:var(--case);stroke-linecap:round;transition:stroke .4s}.box-arm path{stroke-width:9px}.box-arm circle{fill:var(--case);transition:fill .4s}.box-arm,.box-forearm{transition:transform .45s cubic-bezier(.3,1.35,.5,1)}.box-arm-l{transform-origin:76px 122px}.box-arm-l .box-forearm,.box-arm-l .box-wiggle{transform-origin:62px 138px}.box-arm-r{transform-origin:244px 122px}.box-arm-r .box-forearm,.box-arm-r .box-wiggle{transform-origin:258px 138px}.box-antenna{transform-origin:218px 66px;animation:5s ease-in-out infinite sway}.box-antenna path{stroke-width:4px}.box-antenna circle{fill:var(--accent);transition:fill .4s}.box-white{fill:#fff}.box-pupil{fill:#1d4ed8}.box-glint{fill:#fff}.box-lid{animation:5.5s infinite blink;transform:translateY(-36px)}.box-shut,.box-brow,.box-mouth{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}.box-shut{stroke-width:3px;opacity:0}.box-brow{stroke-width:3.5px;opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .2s,transform .2s}.box-mouth{stroke-width:3.5px;opacity:0}.box-mouth-flat{opacity:1}.box-blush{fill:#ff6b6b;opacity:0;transition:opacity .4s}.box-sweat{fill:#8fd3ff;opacity:0}.box-zzz{font-family:var(--mono);fill:var(--muted);opacity:0;font-weight:500;transition:opacity .6s}.box-zzz text:first-child{font-size:11px}.box-zzz text:nth-child(2){font-size:14px}.box-zzz text:nth-child(3){font-size:18px}.box-sticker-paper{fill:#fff}.box-sticker-top{fill:#e5484d}.box-sticker-hello{font-family:var(--sans);letter-spacing:.05em;fill:#fff;font-size:3.9px;font-weight:700}.box-sticker-name{font-family:var(--sans);fill:#0d1117;font-size:10px;font-weight:700}.box-scene:not([data-mood]):not(.is-asleep) .box-body:hover .box-mouth-flat,.box-scene:not([data-mood]):not(.is-asleep) .box-body:focus-visible .box-mouth-flat,.is-waving:not([data-mood]) .box-mouth-flat,[data-mood] .box-mouth-flat{opacity:0}.box-scene:not([data-mood]):not(.is-asleep) .box-body:hover .box-mouth-smile,.box-scene:not([data-mood]):not(.is-asleep) .box-body:focus-visible .box-mouth-smile,.is-waving:not([data-mood]) .box-mouth-smile,[data-mood=happy] .box-mouth-smile,[data-mood=surprised] .box-mouth-o{opacity:1}.box-scene:not([data-mood]):not(.is-asleep) .box-body:hover .box-arm-r,.is-waving:not([data-mood]) .box-arm-r{transform:rotate(-96deg)}.box-scene:not([data-mood]):not(.is-asleep) .box-body:hover .box-arm-r .box-forearm,.is-waving:not([data-mood]) .box-arm-r .box-forearm{transform:rotate(-80deg)}.box-scene:not([data-mood]):not(.is-asleep) .box-body:hover .box-arm-r .box-wiggle,.is-waving:not([data-mood]) .box-arm-r .box-wiggle{animation:.6s ease-in-out .3s infinite wiggle}[data-mood=happy] .box-blush{opacity:.45}[data-mood=happy] .box-arm-r{transform:rotate(-118deg)}[data-mood=happy] .box-arm-r .box-forearm{transform:rotate(-34deg)}[data-mood=happy] .box-arm-l{transform:rotate(118deg)}[data-mood=happy] .box-arm-l .box-forearm{transform:rotate(34deg)}[data-mood=surprised] .box-brow{opacity:1;transform:translateY(-5px)}[data-mood=hot] svg{--case:#3b1f24;--lip:#4b2a30;--trim:#5a343b}[data-mood=hot] .box-mouth-wavy,[data-mood=hot] .box-brow{opacity:1}[data-mood=hot] .box-brow-l{transform:rotate(16deg)translateY(4px)}[data-mood=hot] .box-brow-r{transform:rotate(-16deg)translateY(4px)}[data-mood=hot] .box-lid{animation:none;transform:translateY(-26px)}[data-mood=hot] .box-blush{opacity:.75}[data-mood=hot] .box-sweat{animation:1s ease-in infinite drip}[data-mood=hot] .box-led,[data-mood=hot] .box-antenna circle{fill:#ff5a5a}[data-mood=hot] .box-led{animation-duration:.35s}[data-mood=hot] .box-body{animation:.18s linear infinite shiver}.is-poked .box-body{animation:.45s cubic-bezier(.3,1.6,.5,1) squash}.is-poked .box-antenna{animation:.7s ease-out boing}.is-asleep .box-lid{animation:none;transform:translateY(0)}.is-asleep .box-shut,.is-asleep .box-zzz{opacity:1}.is-asleep .box-zzz text{animation:3s ease-in-out infinite float}.is-asleep .box-zzz text:nth-child(2){animation-delay:.4s}.is-asleep .box-zzz text:nth-child(3){animation-delay:.8s}.is-asleep .box-body{animation-duration:7s}.is-asleep .box-led{animation-duration:5s}@keyframes blink{0%,93%,to{transform:translateY(-36px)}96.5%{transform:translateY(0)}}@keyframes breathe{50%{transform:scale(1.006,1.018)}}@keyframes sway{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes wiggle{25%{transform:rotate(-17deg)}75%{transform:rotate(17deg)}}@keyframes boing{15%{transform:rotate(-22deg)}40%{transform:rotate(15deg)}65%{transform:rotate(-8deg)}85%{transform:rotate(4deg)}}@keyframes drip{0%{opacity:0;transform:translateY(-4px)}30%{opacity:1}to{opacity:0;transform:translateY(16px)}}@keyframes led{50%{opacity:.35}}@keyframes squash{30%{transform:scale(1.07,.86)}60%{transform:scale(.97,1.05)}}@keyframes shiver{25%{transform:translate(-1px)}75%{transform:translate(1px)}}@keyframes float{50%{transform:translateY(-4px)}}.term{width:100%;max-width:31rem;font-family:var(--mono);color:#dfe4ee;background:#0d1117;border-radius:12px;margin-top:.5rem;font-size:.82rem;line-height:1.6;overflow:hidden;box-shadow:0 24px 50px -24px #0d111780}.term-bar{color:#7d8799;border-bottom:1px solid #1f2733;align-items:center;gap:.4rem;padding:.6rem .85rem;font-size:.72rem;display:flex}.term-bar i{background:#2b3444;border-radius:50%;width:.6rem;height:.6rem}.term-bar span{margin-left:.5rem}.term-body{overscroll-behavior:contain;cursor:text;height:15rem;padding:.85rem 1rem 1rem;overflow-y:auto}.term-out p{white-space:pre-wrap;overflow-wrap:anywhere}.term-out a{color:#8fb0ff;text-underline-offset:3px;text-decoration:underline}.term-out a:hover{color:#fff}.term-echo{color:#7d8799;margin-top:.35rem}.term-box:before{content:"▪ ";color:#5b8cff}.term-line{align-items:baseline;gap:.6ch;margin-top:.35rem;display:flex}.term-line[hidden],.term-chips[hidden]{display:none}.term-prompt{color:#5b8cff;white-space:nowrap}.term-line input{min-width:0;color:inherit;font:inherit;caret-color:#8fb0ff;background:0 0;border:0;outline:0;flex:1;padding:0}.term-chips{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.term-chips button{border:1px solid var(--line);background:var(--bg);color:var(--text-soft);font-family:var(--mono);cursor:pointer;border-radius:999px;padding:.3rem .75rem;font-size:.78rem;transition:border-color .15s,color .15s}.term-chips button:hover{border-color:var(--accent);color:var(--accent)}.term-tiles{margin-block:.2rem}.tile{text-align:center;border-radius:3px;width:1.7em;margin-right:.3em;font-weight:500;display:inline-block}.tile-hit{color:#fff;background:#2f9e5c}.tile-near{color:#14110a;background:#d1a521}.tile-miss{color:#98a2b3;background:#2b3444}.term-keys{letter-spacing:.14em;color:#98a2b3}.key-hit{color:#4fd088}.key-near{color:#e7bd3d}.key-miss{color:#3d475a;text-decoration:line-through}[data-theme=dark] .box svg{--case:#161c28;--lip:#222a3a;--trim:#36415a}[data-theme=dark] .box-case{stroke:#2b3547;stroke-width:2px}[data-theme=dark] .box-arm path,[data-theme=dark] .box-antenna path{stroke:#36415a}[data-theme=dark] .box-arm circle{fill:#36415a}[data-theme=dark] .box-antenna circle{filter:drop-shadow(0 0 6px #6f9bffe6)}[data-theme=dark] .box-shelf-edge{fill:#1a202b}[data-theme=dark] .box-white{filter:drop-shadow(0 0 7px #aac8ffe6)}[data-theme=dark] .box-shelf{fill:#232a37}[data-theme=dark] .box-cable{stroke:#303a4c}[data-theme=dark] .term{box-shadow:0 0 0 1px #232a37}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code span{color:var(--text-soft)!important}.lights-on{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:none}[data-theme=dark] .lights-on{display:inline}.has-gravity{overflow-x:hidden}.is-falling{z-index:40;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;will-change:transform;position:relative;transition:none!important}.is-falling.is-settling{transition:transform .6s cubic-bezier(.3,1.3,.5,1)!important}@media (width<=54rem){.box-scene{padding-block:2rem 2.5rem}.term-line input{font-size:16px}}.ledger{border-bottom:1px solid var(--line)}.ledger .wrap{font-family:var(--mono);font-variant-numeric:tabular-nums;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 2rem;margin-block:0;padding-block:1.35rem;display:grid}.ledger dt{margin-bottom:.35rem}.ledger dd{margin:0;font-size:.95rem}@media (width<=40rem){.ledger .wrap{grid-template-columns:1fr}}.band{padding-block:clamp(3.5rem,7vw,5.25rem)}.band+.band{border-top:1px solid var(--line)}.band[id]{scroll-margin-top:5.5rem}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.band h2{margin-bottom:.6rem;font-size:clamp(1.7rem,3vw,2.1rem)}.section-intro{color:var(--muted);max-width:33rem;margin-bottom:2.25rem}.section-cta{margin-top:1.9rem}.empty{color:var(--muted)}.band-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.band-head a{color:var(--muted);white-space:nowrap}.band-head a:hover{color:var(--accent);text-decoration:none}.shows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.show{border-bottom:1px solid var(--line);color:inherit;border-radius:0;grid-template-columns:7.5rem minmax(0,1fr) auto;align-items:center;gap:.25rem 1.5rem;margin-inline:-.75rem;padding:1.1rem .75rem;transition:background-color .15s;display:grid}.show:hover{background:var(--bg-raised);text-decoration:none}.show-thumb{aspect-ratio:16/10;background:var(--bg-raised);border:1px solid var(--line);font-family:var(--sans);color:color-mix(in srgb, var(--muted) 55%, var(--line));border-radius:6px;place-items:center;font-size:1.6rem;font-weight:800;display:grid;position:relative;overflow:hidden}.show-thumb img{object-fit:cover;object-position:top;width:100%;height:100%;position:absolute;inset:0}.show-thumb-whole{background:0 0;border-color:#0000}.show-thumb-whole img{object-fit:contain;object-position:center}.show-body{gap:.15rem;display:grid}.show-title{font-family:var(--sans);letter-spacing:-.02em;font-size:1.15rem;font-weight:700;line-height:1.25;transition:color .15s}.show:hover .show-title{color:var(--accent)}.show-text{color:var(--muted);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.98rem;line-height:1.45;display:-webkit-box;overflow:hidden}.show-meta{font-family:var(--mono);color:var(--muted);white-space:nowrap;justify-items:end;gap:.2rem;font-size:.78rem;display:grid}.show-category{letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}.show-year+.show-year{margin-top:2.75rem}.show-year h2{color:var(--text);margin-bottom:.75rem}.show-year h2 span{color:var(--muted)}.status:before{content:"";background:var(--muted);vertical-align:.1em;border-radius:50%;width:.5em;height:.5em;margin-right:.6em;display:inline-block}.status-live:before,.status-beta:before{background:var(--accent)}.status-building:before,.status-idea:before{box-shadow:inset 0 0 0 1.5px var(--accent);background:0 0}@media (width<=44rem){.show{grid-template-columns:5.5rem minmax(0,1fr);align-items:start}.show-meta{flex-wrap:wrap;grid-column:2;justify-items:start;gap:.2rem 1rem;display:flex}}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);color:inherit;grid-template-columns:7.5rem 1fr auto;align-items:baseline;gap:.3rem 1.5rem;padding:1.3rem 0;display:grid}.row:hover{text-decoration:none}.row h3{font-size:1.2rem;transition:color .15s}.row:hover h3{color:var(--accent)}.row p{color:var(--muted);max-width:40rem;margin-top:.25rem;font-size:.98rem}.stage{white-space:nowrap;align-items:center;gap:.6em;display:inline-flex}.stage .on{fill:var(--accent)}.stage .off{fill:var(--line)}@media (width<=40rem){.row{grid-template-columns:1fr auto}.row>div{grid-area:2/1/auto/-1}}.topics{flex-wrap:wrap;gap:.6rem;margin:0 0 2.25rem;padding:0;list-style:none;display:flex}.topics a{border:1px solid var(--line);font-family:var(--mono);color:var(--text-soft);border-radius:999px;gap:.6em;padding:.4rem .85rem;font-size:.8rem;display:inline-flex}.topics a:hover{border-color:var(--accent);text-decoration:none}.topics a span{color:var(--muted)}.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:end;gap:2rem 4rem;display:grid}.contact .section-intro{margin-bottom:0}.contact-ways{gap:1.75rem;display:grid}.contact-ways .label{margin-bottom:.5rem;display:block}.contact-box{align-items:center;gap:.9rem;margin-bottom:1.4rem;display:flex}.box.box-mini{flex:none;width:7rem}.box-mini .box-body{cursor:default}.contact-says{background:var(--bg-raised);border:1px solid var(--line);font-family:var(--mono);color:var(--text-soft);border-radius:12px;padding:.5rem .85rem;font-size:.8rem;position:relative}.contact-says:before{content:"";background:inherit;border-left:1px solid var(--line);border-bottom:1px solid var(--line);width:10px;height:10px;position:absolute;top:50%;left:-6px;transform:translateY(-50%)rotate(45deg)}.contact-address{font-family:var(--sans);letter-spacing:-.035em;color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.18em;overflow-wrap:anywhere;font-size:clamp(1.5rem,3.6vw,2.6rem);font-weight:800;line-height:1.1;text-decoration-thickness:3px;transition:color .15s;display:inline-block}.contact-address:hover{color:var(--accent)}.contact-copy{cursor:pointer;background:0 0;border:0;margin-top:.9rem;padding:0;transition:color .15s;display:block}.contact-copy[hidden]{display:none}.contact-copy:hover{color:var(--accent)}@media (width<=48rem){.contact{grid-template-columns:1fr;align-items:start}}.page-head{padding-block:clamp(3rem,7vw,5rem) clamp(2rem,4vw,2.75rem)}.page-head .label{flex-wrap:wrap;gap:.4rem 1.25rem;margin-bottom:1.25rem;display:flex}.page-head .label a{color:var(--muted)}.page-head .label a:hover{color:var(--accent);text-decoration:none}.page-head h1{letter-spacing:-.04em;max-width:20ch;font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800;line-height:1.04}.page-head .lead{max-width:38rem;color:var(--text-soft);margin-top:1.1rem;font-size:1.15rem;line-height:1.55}.meta{border-block:1px solid var(--line);font-family:var(--mono);flex-wrap:wrap;gap:1rem 2.75rem;margin:0 0 clamp(2rem,5vw,3rem);padding-block:1.1rem;font-size:.9rem;display:flex}.meta dt{margin-bottom:.35rem}.meta dd{margin:0}.meta dd a+a{margin-left:.9em}.page-body{padding-bottom:clamp(3.5rem,7vw,5.25rem)}.prose{max-width:41rem;color:var(--text-soft);font-size:1.09rem;line-height:1.7}.prose>*+*{margin-top:1.3em}.prose h2,.prose h3,.prose strong{color:var(--text)}.prose h2{margin-top:2.2em;font-size:1.65rem}.prose h3{margin-top:1.9em;font-size:1.25rem}.prose h2+*,.prose h3+*{margin-top:.65em}.prose a{text-underline-offset:3px;text-decoration:underline 1px}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);color:var(--text);margin-inline:0;padding-left:1.25rem}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.75em}.prose :not(pre)>code{font-family:var(--mono);background:var(--bg-raised);border:1px solid var(--line);color:var(--text);border-radius:4px;padding:.1em .35em;font-size:.82em}.prose pre{font-family:var(--mono);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem;font-size:.85rem;line-height:1.6;overflow-x:auto;background:var(--bg-raised)!important}.prose pre code{font-family:inherit}.prose img{border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 34px -22px #0d111759}.prose img.plain{box-shadow:none;border:0;border-radius:0}.prose table{border-collapse:collapse;width:100%;font-size:1rem}.prose th{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:500}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:.55rem .75rem .55rem 0}.backlinks{max-width:41rem;margin-top:clamp(3rem,6vw,4rem)}.backlinks .label{margin-bottom:.9rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);padding:2.75rem 0 2.5rem;font-size:.92rem}.site-footer .wrap{grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:2rem;display:grid}.site-footer .brand{margin-bottom:.6rem;display:inline-block}.site-footer p{max-width:24rem}.site-footer h3{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--text);margin-bottom:.9rem;font-size:.7rem;font-weight:500}.site-footer ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.site-footer li a{color:var(--muted)}.site-footer li a:hover{color:var(--accent)}.site-footer .small{border-top:1px solid var(--line);grid-column:1/-1;max-width:none;padding-top:1.5rem}@media (width<=40rem){.site-footer .wrap{grid-template-columns:1fr 1fr}.site-footer .wrap>div:first-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
