@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 Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-italic.BYAq_K0C.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:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-italic.Da0gXVk3.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:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-italic.0fly6zkB.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:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-italic.XgKbg5n7.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:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-italic.dTnRTFFJ.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 Sans;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 Sans;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 Sans;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 Sans;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 Sans;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 Sans;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-italic.BYAq_K0C.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 Sans;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-italic.Da0gXVk3.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Sans;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-italic.0fly6zkB.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 Sans;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-italic.XgKbg5n7.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 Sans;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-italic.dTnRTFFJ.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}@property --bg{syntax:"<color>";inherits:true;initial-value:#0d0d0f}@property --bg-subtle{syntax:"<color>";inherits:true;initial-value:#161619}@property --text{syntax:"<color>";inherits:true;initial-value:#fff}@property --text-muted{syntax:"<color>";inherits:true;initial-value:#fff}@property --border{syntax:"<color>";inherits:true;initial-value:#26262b}@property --accent{syntax:"<color>";inherits:true;initial-value:#fff}@property --accent-strong{syntax:"<color>";inherits:true;initial-value:#fff}@property --accent-wash{syntax:"<color>";inherits:true;initial-value:#ffffff14}@property --selection{syntax:"<color>";inherits:true;initial-value:#ffffff2e}@property --focus{syntax:"<color>";inherits:true;initial-value:#fff}:root{--font-sans:"Geist Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, sfmono-regular, "SF Mono", menlo, consolas, "Liberation Mono", monospace;--bg:#0d0d0f;--bg-subtle:#161619;--text:#fff;--text-muted:#fff;--border:#26262b;--accent:#fff;--accent-strong:#fff;--accent-wash:#ffffff14;--selection:#ffffff2e;--focus:#fff;--grid-dot:#ededee0d;--radius:0;--border-thin:1px solid var(--border);--width-wide:60rem;--width-text:50rem;--gutter:clamp(1.25rem, 5vw, 2.5rem);--step-0:1.0625rem;--step-prose:1.125rem;--step-1:1.25rem;--step-2:1.5rem;--step-3:clamp(1.75rem, 1.4rem + 1.6vw, 2.25rem);--step-4:clamp(2.25rem, 1.7rem + 2.6vw, 3.25rem);--astro-code-foreground:var(--text);--astro-code-background:var(--bg-subtle);--astro-code-token-comment:var(--text-muted);--astro-code-token-punctuation:var(--text-muted);--astro-code-token-parameter:var(--text);--astro-code-token-function:var(--accent);--astro-code-token-keyword:var(--accent);--astro-code-token-constant:var(--text);--astro-code-token-link:var(--accent);--astro-code-token-string:var(--text);--astro-code-token-string-expression:var(--text);color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background-color:var(--bg);background-image:radial-gradient(var(--grid-dot) 1px, transparent 1px);min-height:100vh;color:var(--text);font-family:var(--font-sans);font-size:var(--step-0);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-size:14px 14px;flex-direction:column;margin:0;line-height:1.65;display:flex}::selection{background:var(--selection)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}h1,h2,h3,h4{letter-spacing:-.02em;margin:0 0 .4em;font-weight:650;line-height:1.15}h1{font-size:var(--step-4)}h2{font-size:var(--step-3)}h3{font-size:var(--step-2)}p{margin:0 0 1.2em}a{color:inherit;text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:var(--border);transition:text-decoration-color .15s,color .15s}a:hover{color:var(--accent-strong);text-decoration-color:var(--accent-strong);text-underline-offset:.22em;text-decoration-thickness:2px}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.9em}hr{border:0;border-top:var(--border-thin);height:0;margin:2.5rem 0}img{max-width:100%;height:auto}.skip-link{background:var(--text);color:var(--bg);z-index:10;padding:.5rem .75rem;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--width-wide);padding-inline:var(--gutter);margin:0 auto}.wrap-text{max-width:var(--width-text)}.muted{color:var(--text-muted)}.lead{font-size:var(--step-1);color:var(--text-muted);line-height:1.6}.button{border:var(--border-thin);color:var(--text);align-items:center;gap:.4rem;padding:.6rem .95rem;font-size:.95rem;text-decoration:none;transition:border-color .15s,color .15s;display:inline-flex}.button:hover{border-color:var(--accent-strong);color:var(--accent-strong)}.external-link:after{content:"";vertical-align:.1em;border-top:1.5px solid;border-right:1.5px solid;width:.45em;height:.45em;margin-inline-start:.22em;display:inline-block}.button.external-link:after{margin-inline-start:0}.site-header{border-bottom:var(--border-thin)}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;display:flex}@media (width<48rem){.site-header__inner{align-items:flex-start;min-height:auto;padding-block:1rem}}.brand{font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap;color:var(--text);font-size:1rem;font-weight:600;text-decoration:none}.brand:hover{color:var(--accent-strong)}.site-header__actions{align-items:center;gap:clamp(.85rem,3vw,1.5rem);display:flex}@media (width<48rem){.site-header__actions{align-items:flex-start;gap:1.5rem}}.site-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem clamp(.85rem,3vw,1.5rem);display:flex}@media (width<48rem){.site-nav{grid-template-columns:repeat(3,max-content);grid-auto-flow:row;align-content:start;justify-items:start;gap:.4rem 1.5rem;width:fit-content;display:grid}.site-nav__link{white-space:nowrap}}@media (width>=48rem){.site-nav{flex-wrap:nowrap}}.site-nav__link{color:var(--text-muted);font-size:.95rem;text-decoration:none}.site-nav__link:hover,.site-nav__link[aria-current=page]{color:var(--text)}.site-nav__link[aria-current=page]{text-decoration:underline;text-decoration-color:var(--text);text-underline-offset:.3em}.site-footer{border-top:var(--border-thin);color:var(--text-muted);margin-top:auto;padding-block:2.5rem;font-size:.9rem}.site-footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.site-footer p{margin:0}.site-footer__links{gap:1.25rem;display:flex}.site-footer a{color:var(--text-muted);text-decoration-color:var(--border)}.site-footer a:hover{color:var(--accent-strong);text-decoration-color:var(--accent-strong);text-underline-offset:.22em;text-decoration-thickness:2px}.page{flex:1 0 auto;width:100%;padding-block:clamp(3rem,8vw,5.5rem)}.home-hero{gap:clamp(1.5rem,4vw,2rem);display:grid}.home-letter{gap:.6em;max-width:22rem;display:grid}.home-letter h1,.home-letter p{color:var(--text);letter-spacing:0;margin:0;font-weight:400}.home-letter h1{font-size:1.125rem;line-height:1.28}.home-letter p{font-size:.875rem;line-height:1.45}@media (width>=64rem){.home-hero{grid-template-columns:minmax(15rem,18.5rem) minmax(0,1fr);align-items:start;gap:1.75rem}.home-hero .home-letter{gap:.85em;max-width:none}.home-letter h1{font-size:1.375rem;line-height:1.35}.home-letter p{font-size:1rem;line-height:1.55}}.home-section{margin-top:clamp(3rem,8vw,4.5rem)}.home-section__head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.85rem;display:flex}.home-section__head h2{color:var(--text-muted);letter-spacing:0;margin:0;font-size:.95rem;font-weight:500}.last-shipped--list{gap:1.15rem;display:grid}.shipped-carousel{--shipped-stack:.55rem;padding:calc(var(--shipped-stack) * 2 + .4rem) calc(var(--shipped-stack) * 2 + .7rem) .85rem .7rem;border:var(--border-thin);background:var(--bg);border-radius:1.05rem}.shipped-carousel__deck{z-index:0;position:relative}.shipped-carousel__deck:before,.shipped-carousel__deck:after{content:"";z-index:0;border:var(--border-thin);pointer-events:none;border-radius:.95rem;position:absolute}.shipped-carousel__deck:before{inset:calc(var(--shipped-stack) * -1) calc(var(--shipped-stack) * -1) var(--shipped-stack) var(--shipped-stack)}.shipped-carousel__deck:after{inset:calc(var(--shipped-stack) * -2) calc(var(--shipped-stack) * -2) calc(var(--shipped-stack) * 2) calc(var(--shipped-stack) * 2)}.shipped-carousel__track{z-index:1;user-select:none;touch-action:pan-y;cursor:grab;align-items:stretch;min-height:0;display:flex;position:relative;overflow:hidden}.shipped-carousel__track:active{cursor:grabbing}.shipped-card{border:var(--border-thin);background:var(--bg-subtle);border-radius:.85rem;flex-direction:column;min-width:0;display:flex;overflow:hidden}.shipped-carousel__slide:not([data-active=true]){display:none}.shipped-carousel__slide[data-active=true]{flex:auto;width:100%;display:flex}.shipped-card__visual{pointer-events:none;flex:0 0 8.25rem;order:-1;height:8.25rem;position:relative;overflow:hidden}.shipped-card__placeholder{opacity:.18;background:linear-gradient(#fff 1px,#0000 1px) 0 0/1.5rem 1.5rem,linear-gradient(90deg,#fff 1px,#0000 1px) 0 0/1.5rem 1.5rem;width:100%;height:100%}.shipped-mini{position:absolute;inset:8% -10% -58% 6%}.shipped-mini--imessage{inset:4% 8%}.shipped-mini__panel{color:#1c1c1e;background:#f4f4f5;border-radius:1rem;height:100%;padding:.7rem .75rem .8rem;box-shadow:0 10px 28px #00000047}.shipped-mini--slack .shipped-mini__panel{border-left:3px solid #2a2a2e;border-radius:.85rem;align-content:start;gap:.38rem;display:grid}.shipped-mini__account{letter-spacing:-.02em;margin:0;font-size:.98rem;font-weight:650;line-height:1.2}.shipped-mini__status,.shipped-mini__move,.shipped-mini__draft{margin:0;font-size:.78rem;line-height:1.35}.shipped-mini__status{color:#6e6e73}.shipped-mini__move{color:#1c1c1e}.shipped-mini__draft{color:#6e6e73;background:#fff;border-radius:.45rem;margin-top:.2rem;padding:.42rem .5rem}.shipped-mini--imessage .shipped-mini__panel{background:#f2f2f4;border-radius:1.15rem;flex-direction:column;justify-content:center;gap:.4rem;padding:.7rem .65rem;display:flex}.shipped-mini__bubble{border-radius:1.05rem;max-width:86%;margin:0;padding:.42rem .65rem;font-size:.78rem;line-height:1.3}.shipped-mini__bubble--in{color:#1c1c1e;background:#e8e8ed;border-bottom-left-radius:.28rem;align-self:flex-start}.shipped-mini__bubble--out{color:#f4f4f5;background:#1c1c1e;border-bottom-right-radius:.28rem;align-self:flex-end}.shipped-mini--local .shipped-mini__panel{align-content:start;gap:.4rem;display:grid}.shipped-mini__model{letter-spacing:-.02em;margin:0;font-size:.98rem;font-weight:650;line-height:1.2}.shipped-mini__ready{color:#1f7a3f;align-items:center;gap:.35rem;margin:0;font-size:.78rem;font-weight:550;line-height:1.3;display:flex}.shipped-mini__dot{background:#34c759;border-radius:50%;width:.45rem;height:.45rem}.shipped-mini__tool{color:#1c1c1e;background:#fff;border-radius:.45rem;margin:0;padding:.42rem .5rem;font-size:.78rem;line-height:1.35}.shipped-card__copy{align-content:start;gap:.5rem;min-width:0;padding:.95rem 1rem 1.05rem;display:grid}.shipped-card__title{font-size:var(--step-1);letter-spacing:-.02em;margin:0;font-weight:650;line-height:1.25}.shipped-card__when{color:var(--text);margin:-.15rem 0 0;font-size:.78rem;font-weight:500;line-height:1.3}.shipped-card__writeup{color:var(--text-muted);font-size:.92rem;line-height:1.55}.shipped-card__writeup p{margin:0}.shipped-card__writeup p+p{margin-top:.7em}.shipped-card__actions{margin:.15rem 0 0}.shipped-card__actions a{color:var(--text)}.shipped-card__actions a:hover,.shipped-card__actions a:focus-visible{color:var(--accent-strong);text-decoration-color:var(--accent-strong);text-underline-offset:.22em;text-decoration-thickness:2px}.home-section__all{color:var(--text);font-size:.9rem}.home-section__all:hover,.home-section__all:focus-visible{color:var(--accent-strong);text-decoration-color:var(--accent-strong);text-underline-offset:.22em;text-decoration-thickness:2px}.shipped-carousel__keys{justify-content:flex-end;gap:.6rem;margin-top:1.15rem;padding-inline:.15rem;display:flex}.shipped-carousel__keys button{border:1.5px solid var(--border);background:var(--bg-subtle);width:3rem;height:3rem;color:var(--text);cursor:pointer;border-radius:.55rem;place-items:center;padding:0;display:grid}.shipped-carousel__keys svg{width:1.35rem;height:1.35rem;display:block}.shipped-carousel__keys button:disabled{cursor:default;opacity:.35}.shipped-carousel__keys button:hover:not(:disabled),.shipped-carousel__keys button:focus-visible:not(:disabled){border-color:var(--text);background:var(--accent-wash);color:var(--accent-strong)}.shipped-carousel--single{padding:.85rem .7rem 1rem}.shipped-carousel--single .shipped-carousel__deck:before,.shipped-carousel--single .shipped-carousel__deck:after{content:none}.shipped-carousel--single .shipped-carousel__slide[data-active=true]{flex-basis:100%}.shipped-carousel--single .shipped-carousel__track,.shipped-carousel--single .shipped-carousel__track:active{cursor:default;min-height:0;overflow:hidden}@media (width>=48rem){.shipped-carousel{--shipped-stack:.65rem;padding:calc(var(--shipped-stack) * 2 + .5rem) calc(var(--shipped-stack) * 2 + .85rem) 1rem .95rem}.shipped-carousel__track{min-height:14.5rem}.shipped-card{flex-direction:row;min-height:13.5rem}.shipped-card__visual{aspect-ratio:1;flex:0 0 12.5rem;order:0;align-self:stretch;width:12.5rem;height:auto}.shipped-mini,.shipped-mini--imessage{inset:10% -10% -22% 8%}.shipped-mini__panel{padding:.9rem .95rem 1rem}.shipped-mini--imessage .shipped-mini__panel{padding:.85rem .7rem}.shipped-card__copy{flex:auto;padding:1.2rem 1.3rem 1.25rem}}.post-list{margin:0;padding:0;list-style:none}.post-item+.post-item{border-top:var(--border-thin);margin-top:.5rem;padding-top:1.5rem}.post-item:first-child{padding-top:0}.post-link{color:inherit;gap:.35rem;margin-inline:-.75rem;padding:.75rem;text-decoration:none;transition:background-color .15s;display:grid}.post-link:hover,.post-link:focus-visible{background-color:var(--accent-wash)}.post-link__title{font-size:var(--step-1);font-weight:600;line-height:1.3;display:block}.post-link:hover .post-link__title,.post-link:focus-visible .post-link__title{color:var(--accent-strong)}.post-link__desc{color:var(--text-muted);margin-top:.25rem;font-size:.95rem;display:block}.post-date{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.78rem}@media (width>=40rem){.post-link{grid-template-columns:9rem 1fr;align-items:baseline;gap:1.5rem}.post-link .post-date{padding-top:.15rem}}.workshop-stage{min-width:0}.workshop-stage__frame{border-radius:.85rem;position:relative;overflow:hidden}.workshop-stage__frame:after{content:"";pointer-events:none;box-shadow:inset 0 0 2.5rem .85rem var(--bg);position:absolute;inset:0}.workshop-stage__still{width:100%;height:auto;display:block}.workshop-stage__canvas{opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .7s;position:absolute;inset:0}.workshop-stage[data-mode=webgl] .workshop-stage__canvas{opacity:1;pointer-events:auto}.workshop-stage__glow,.workshop-stage__hotspots{position:absolute;inset:0}.workshop-stage__hotspots{z-index:2}.workshop-stage[data-mode=webgl] .workshop-stage__hotspots{z-index:0;pointer-events:none}.workshop-stage__glow{pointer-events:none;opacity:0;background:#08080c75}.workshop-stage[data-lamp=off] .workshop-stage__glow{opacity:1}.workshop-stage[data-lamp=off] .workshop-stage__still{filter:brightness(.48)saturate(.72)}.workshop-stage[data-mode=webgl] .workshop-stage__glow{display:none}.workshop-hotspot{appearance:none;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;position:absolute}.workshop-hotspot:hover,.workshop-hotspot:focus,.workshop-hotspot:active{box-shadow:none;background:0 0;border:0}.workshop-hotspot:focus-visible{outline-offset:3px;outline:2px solid #fff}.workshop-stage[data-mode=webgl] .workshop-hotspot:focus-visible{pointer-events:auto}.workshop-hotspot__mark{opacity:0;pointer-events:none;background:#fff;border-radius:50%;width:.42rem;height:.42rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 .14rem #0d0d0f9e}.workshop-hotspot:hover .workshop-hotspot__mark,.workshop-hotspot:focus-visible .workshop-hotspot__mark{opacity:1}.workshop-stage[data-mode=webgl] .workshop-hotspot__mark{opacity:0}.workshop-hotspot__label{z-index:1;color:#fff;pointer-events:none;background:#0d0d0feb;border:1px solid #ffffff1f;border-radius:.32rem;width:max-content;max-width:11rem;padding:.26rem .48rem;font-size:.72rem;font-weight:500;line-height:1.3;display:none;position:absolute;bottom:calc(50% + .7rem);left:50%;transform:translate(-50%)}.workshop-hotspot[data-label-x=start] .workshop-hotspot__label{left:.2rem;transform:none}.workshop-hotspot[data-label-x=end] .workshop-hotspot__label{left:auto;right:.2rem;transform:none}.workshop-hotspot[data-label-y=below] .workshop-hotspot__label{top:calc(50% + .65rem);bottom:auto}.workshop-hotspot:focus-visible .workshop-hotspot__label{display:block}@media (hover:hover){.workshop-hotspot:hover .workshop-hotspot__label{display:block}.workshop-stage[data-mode=webgl] .workshop-hotspot:hover .workshop-hotspot__label{display:none}}.workshop-stage__hover{z-index:3;color:#fff;pointer-events:none;background:#0d0d0feb;border:1px solid #ffffff1f;border-radius:.32rem;margin:0;padding:.28rem .55rem;font-size:.72rem;font-weight:500;line-height:1.3;position:absolute;top:.7rem;left:50%;transform:translate(-50%)}.workshop-stage__controls{border:1.5px solid var(--border);background:var(--bg-subtle);border-radius:999px;align-items:center;gap:.05rem;min-inline-size:0;margin:.7rem 0 0;padding:.14rem;display:inline-flex}.workshop-stage__control{color:#fff;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:2rem;height:2rem;padding:0;display:grid}.workshop-stage__control svg{width:.95rem;height:.95rem;display:block}.workshop-stage__control:hover,.workshop-stage__control:focus-visible,.workshop-stage__control[aria-pressed=true]{background:var(--accent-wash)}.workshop-card{color:#1c1c1e;backdrop-filter:blur(32px)saturate(1.2);background-color:#f4f4f5;background-image:none;border:1px solid #ffffffdb;border-radius:1.05rem;width:min(22.5rem,100% - 2rem);padding:1.05rem 1.15rem 1.15rem;box-shadow:0 18px 50px #0000006b,inset 0 1px #ffffffd1}.workshop-card::backdrop{background:#08080ab8}.workshop-card__place{color:#6e6e73;letter-spacing:.02em;margin:0 0 .35rem;font-size:.7rem;font-weight:550;line-height:1.3}.workshop-card__head{justify-content:space-between;align-items:start;gap:.75rem;margin-bottom:.2rem;display:flex}.workshop-card__close{color:#1c1c1e;cursor:pointer;background:0 0;border:0;border-radius:.4rem;flex:none;place-items:center;width:2rem;height:2rem;padding:0;font-size:1.35rem;line-height:1;display:grid}.workshop-card__close:hover,.workshop-card__close:focus-visible{background:#0000000f}.workshop-card__title{color:#1c1c1e;letter-spacing:-.03em;margin:0;font-size:1.12rem;font-weight:650;line-height:1.22}.workshop-card__line{color:#6e6e73;margin:0 0 .7rem;font-size:.8rem;font-weight:500;line-height:1.4}.workshop-card__body{color:#1c1c1e;margin:0;font-size:.92rem;line-height:1.5}.workshop-card__actions{margin:1rem 0 0}.workshop-card__link{color:#1c1c1e;text-decoration-color:#c7c7cc}.workshop-card__link:hover,.workshop-card__link:focus-visible{color:#1c1c1e;text-underline-offset:.22em;text-decoration-color:#1c1c1e;text-decoration-thickness:2px}.workshop-card :focus-visible{outline-color:#1c1c1e}@media (prefers-reduced-motion:reduce){.workshop-stage__glow,.workshop-hotspot,.workshop-card,.workshop-card__close,.workshop-stage__canvas{transition:none}.workshop-stage__controls{display:none}}.article__header{border-bottom:var(--border-thin);margin-bottom:2.5rem;padding-bottom:1.5rem}.article__title{margin-top:.5rem}.article__meta{flex-wrap:wrap;gap:.5rem 1rem;margin-top:1rem;display:flex}.article__source{color:inherit;text-decoration-color:var(--border)}.article__source:hover{color:var(--accent-strong);text-decoration-color:var(--accent-strong);text-underline-offset:.22em;text-decoration-thickness:2px}.post-tags{flex-wrap:wrap;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.post-tag{border:var(--border-thin);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;padding:.2em .55em;font-size:.75rem;display:inline-block}.back-link{font-family:var(--font-mono);color:var(--text-muted);margin-top:3rem;font-size:.85rem;display:inline-block}.work-index__lead{max-width:46ch;margin-top:1rem}.work-card-list{margin:0;padding:0;list-style:none}.work-card+.work-card{border-top:var(--border-thin);margin-top:.5rem;padding-top:1.5rem}.work-card__link{color:inherit;gap:1.25rem;margin-inline:-.75rem;padding:.75rem;text-decoration:none;transition:background-color .15s;display:grid}.work-card__link:hover,.work-card__link:focus-visible{background-color:var(--accent-wash)}.work-card__media{border:var(--border-thin);background:var(--bg-subtle);max-width:14rem}.work-card__media img{width:auto;max-width:min(100%, var(--work-frame-max,14rem));height:auto;display:block}.work-card__copy{gap:.35rem;display:grid}.work-card__product{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.78rem}.work-card__title{font-size:var(--step-1);font-weight:600;line-height:1.3}.work-card__link:hover .work-card__title,.work-card__link:focus-visible .work-card__title{color:var(--accent-strong)}.work-card__desc{color:var(--text-muted);font-size:.95rem}@media (width>=48rem){.work-card__link{grid-template-columns:14rem 1fr;align-items:start}}.work-case__hero{margin:2rem 0 0}.work-case__hero img,.work-frame__img{width:auto;max-width:min(100%, var(--work-frame-max,44rem));border:var(--border-thin);height:auto;display:block}.work-frame--focus{max-width:min(44rem, 100%, var(--work-frame-max,44rem));margin-inline:auto}.work-section{margin-top:clamp(2.5rem,6vw,3.5rem)}.work-section h2{font-size:var(--step-2);margin-bottom:1rem}.work-decision+.work-decision{border-top:var(--border-thin);margin-top:2.5rem;padding-top:2.5rem}.work-decision h3{font-size:var(--step-1);margin-bottom:.75rem}.work-decision dl{gap:.85rem;margin:0 0 1.5rem;display:grid}.work-decision dt{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.78rem}.work-decision dd{margin:.2rem 0 0}.work-flow{gap:2rem;display:grid}.work-frame{margin:0}.work-frame__step{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);margin:0 0 .5rem;font-size:.78rem}.work-frame__caption{color:var(--text-muted);margin-top:.6rem;font-size:.9rem}.work-frame__callouts{color:var(--text-muted);margin:.75rem 0 0;padding-left:1.1rem;font-size:.9rem}.work-frame__callouts li+li{margin-top:.35rem}.work-table{border-collapse:collapse;border:var(--border-thin);width:100%;font-size:.92em;line-height:1.55}.work-table th,.work-table td{border:var(--border-thin);text-align:left;vertical-align:top;padding:.65rem .85rem}.work-table th{background:var(--bg-subtle);width:42%;font-weight:600}.work-case__footer{border-top:var(--border-thin);margin-top:3rem;padding-top:1.5rem}.work-case__back{font-family:var(--font-mono);color:var(--text-muted);font-size:.85rem}@media print{:root{--bg:#fff;--bg-subtle:#fff;--text:#000;--text-muted:#333;--border:#999;--accent:#000;--accent-strong:#000;--accent-wash:transparent;--selection:transparent;color-scheme:light}body{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto;background-image:none}.site-header,.site-footer,.back-link{display:none}.page{padding-block:0}}
