@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}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-ext-400-normal.C2je3j2s.woff2)format("woff2"),url(/_astro/instrument-serif-latin-ext-400-normal.CFCUzsTy.woff)format("woff");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:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-normal.DnYpCC2O.woff2)format("woff2"),url(/_astro/instrument-serif-latin-400-normal.BVbkICAY.woff)format("woff");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:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-ext-400-italic.C9HzH3YL.woff2)format("woff2"),url(/_astro/instrument-serif-latin-ext-400-italic.D7-lnxEk.woff)format("woff");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:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/instrument-serif-latin-400-italic.DKMiL14s.woff2)format("woff2"),url(/_astro/instrument-serif-latin-400-italic.u__WvvIK.woff)format("woff");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{color-scheme:light;--paper:#f3f2ee;--ink:#0e0e0d;--accent:#ff4a1c;--muted:color-mix(in srgb, var(--ink) 46%, transparent);--hair:color-mix(in srgb, var(--ink) 14%, transparent);--wash:color-mix(in srgb, var(--ink) 7%, var(--paper));--gutter:16px;--gap:10px;--header-h:46px;--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--font-serif:"Instrument Serif", "Iowan Old Style", "Times New Roman", serif;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.65, 0, .35, 1)}html[data-theme=dark]{color-scheme:dark;--paper:#0e0e0d;--ink:#f3f2ee}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable;scroll-padding-top:calc(var(--header-h) + 12px);background:var(--paper)}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-sans);letter-spacing:-.015em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:16px;font-weight:500;line-height:1.2;display:flex;overflow-x:clip}main{padding-top:var(--header-h);flex:1}a{color:inherit;text-decoration:none}button{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;text-align:inherit;background:0 0;border:0;margin:0;padding:0}img,video,canvas,svg{max-width:100%;display:block}h1,h2,h3,p,ul,ol,dl,dd,figure{font-size:inherit;font-weight:inherit;margin:0;padding:0}ul,ol{list-style:none}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mono{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase;font-size:11px;font-weight:500;line-height:1.35}.muted{color:var(--muted)}.serif{font-family:var(--font-serif);letter-spacing:-.012em;font-style:italic;font-weight:400}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{left:var(--gutter);z-index:100;background:var(--ink);color:var(--paper);padding:8px 10px;position:fixed;top:8px;transform:translateY(-200%)}.skip:focus{transform:none}.link{transition:background-size .5s var(--ease-out);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;padding-bottom:1px}.link:hover,.link:focus-visible,.link[aria-current=page]{background-size:100% 1px}.spec{grid-template-columns:minmax(6.5em,max-content) minmax(0,1fr);gap:5px 1.6em;display:grid}.spec dt{color:var(--muted)}.site-header{z-index:50;height:var(--header-h);column-gap:var(--gap);padding:0 var(--gutter);background:var(--paper);grid-template-columns:repeat(8,minmax(0,1fr));align-items:center;display:grid;position:fixed;inset:0 0 auto}.site-header .brand{grid-column:1/span 4;justify-self:start}.site-header .clock{white-space:nowrap;font-variant-numeric:tabular-nums;grid-column:5}.site-header .clock .place{margin-left:.35em}.site-nav{display:contents}.site-nav a{justify-self:start;transition:opacity .3s}.site-nav a:first-child{grid-column:6}.site-nav a:nth-child(2){grid-column:7}.site-nav a:nth-child(3){grid-column:8;justify-self:end}.site-nav:hover a:not(:hover){opacity:.4}.site-nav a[aria-current=page]{text-underline-offset:4px;text-decoration:underline 1px}.site-nav .short{display:none}.ext{transition:transform .4s var(--ease-out);margin-left:.18em;font-size:.82em;display:inline-block;transform:translateY(-.08em)}a:hover>.ext{transform:translate(.14em,-.22em)}.hero{column-gap:var(--gap);padding:clamp(92px, 21vh, 200px) var(--gutter) clamp(84px, 19vh, 190px);grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;row-gap:44px;display:grid}.statement{letter-spacing:-.028em;text-wrap:pretty;grid-column:1/span 4;max-width:19.5em;font-size:clamp(22px,1.95vw,32px);line-height:1.09}.statement .serif{font-size:1.13em;line-height:1}.mark{white-space:nowrap;position:relative}.squiggle{pointer-events:none;width:104%;height:.3em;position:absolute;bottom:-.14em;left:-2%;overflow:visible}.squiggle path{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:640;stroke-dashoffset:0}.now{grid-column:5/span 4;max-width:34em}.project{padding-bottom:clamp(84px,15vh,170px)}.project-bar{top:var(--header-h);z-index:20;padding:0 var(--gutter);background:var(--paper);position:sticky}.project-head{justify-content:space-between;align-items:center;gap:16px;height:40px;display:flex}.project-toggle{white-space:nowrap;align-items:center;min-width:0;height:100%;display:inline-flex}.project-toggle .meta{color:var(--muted)}.plus{flex:none;width:13px;height:13px;margin-left:14px;position:relative}.plus:before,.plus:after{content:"";height:1.5px;transition:transform .6s var(--ease-out);background:currentColor;margin-top:-.75px;position:absolute;top:50%;left:0;right:0}.plus:after,.project-toggle:hover .plus:before{transform:rotate(90deg)}.project-toggle:hover .plus:after{transform:rotate(180deg)}.project[data-open] .plus:before,.project[data-open] .plus:after{transform:rotate(0)}.project-tools{flex:none;align-items:center;gap:20px;display:flex}.density{align-items:center;gap:9px;display:flex}.density button{opacity:.26;place-items:center;width:18px;height:24px;transition:opacity .25s;display:grid}.density button:hover{opacity:.6}.density button[aria-pressed=true]{opacity:1}.density svg{fill:currentColor;width:16px;height:16px}.project-desc{transition:grid-template-rows .7s var(--ease-out);grid-template-rows:0fr;display:grid}.project[data-open] .project-desc{grid-template-rows:1fr}.project-desc-clip{min-height:0;overflow:hidden}.project-desc-grid{column-gap:var(--gap);max-height:calc(100dvh - var(--header-h) - 60px);opacity:0;transition:opacity .35s, transform .6s var(--ease-out);grid-template-columns:repeat(8,minmax(0,1fr));row-gap:18px;padding:4px 0 28px;display:grid;overflow-y:auto;transform:translateY(-6px)}.project[data-open] .project-desc-grid{opacity:1;transition-delay:.12s;transform:none}.project-copy{grid-column:1/span 4;max-width:33em;line-height:1.24}.project-copy p+p{margin-top:.75em}.project-desc-grid .spec{grid-column:5/span 4;align-self:start;padding-top:3px}.grid{--cols:4;grid-template-columns:repeat(var(--cols), minmax(0, 1fr));gap:26px var(--gap);padding:6px var(--gutter) 0;align-items:start;display:grid}.project[data-cols="3"] .grid{--cols:3}.project[data-cols="2"] .grid{--cols:2}.tile{min-width:0}.tile-open{width:100%;display:block}.tile-media{aspect-ratio:var(--ar,1);background:var(--tile-bg,var(--wash));position:relative;overflow:hidden;container-type:inline-size}.tile-media>img,.tile-media>video,.tile-media>canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tile-media>img,.tile-media>video{transition:transform 1.2s var(--ease-out)}.tile-open:hover .tile-media>img,.tile-open:hover .tile-media>video{transform:scale(1.022)}.tile-cap{white-space:nowrap;align-items:baseline;gap:.9em;margin-top:8px;display:flex;overflow:hidden}.cap-name{flex:none}.cap-desc{text-overflow:ellipsis;min-width:0;color:var(--muted);overflow:hidden}.playhead{background:var(--accent);transform-origin:0;pointer-events:none;height:2px;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tile-badge{z-index:2;color:#f3f2ee;pointer-events:none;background:#0e0e0d;align-items:center;gap:6px;padding:3px 6px 3px 5px;font-size:10px;line-height:1.2;display:inline-flex;position:absolute;top:8px;left:8px}.tile-badge i{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.6s ease-in-out infinite pulse}.tile-live[data-tone=dark] .tile-badge{color:#0e0e0d;background:#f3f2ee}@keyframes pulse{50%{opacity:.25}}.tile-stage{--tile-bg:var(--stage,var(--wash));place-items:center;display:grid}.phone{aspect-ratio:900/1948;width:45%;transition:transform 1.2s var(--ease-out);background:#0b0b0c;border-radius:6.4cqw;padding:1.6cqw;box-shadow:0 4cqw 9cqw -3cqw #00000080,inset 0 0 0 1px #ffffff1a}.phone img{object-fit:cover;object-position:top;border-radius:4.9cqw;width:100%;height:100%}.tile-open:hover .phone{transform:translateY(-1.6%)rotate(-.6deg)}.tile-live[data-tone=dark]{--tile-bg:#0e0e0d}.tile-live[data-tone=light]{--tile-bg:#e7e5df}.tile-note{flex-direction:column;justify-content:space-between;gap:12px;padding:7%;display:flex}.tile-note[data-tone=dark]{--tile-bg:#0e0e0d;color:#f3f2ee}.tile-note[data-tone=accent]{--tile-bg:var(--accent);color:#fff}.tile-note[data-tone=light]{--tile-bg:#e7e5df;color:#0e0e0d}.note-small,.note-source{opacity:.62;font-size:clamp(9px,3.5cqw,13px)}.note-text{font-family:var(--font-serif);letter-spacing:-.022em;text-wrap:balance;font-size:clamp(18px,13.2cqw,96px);font-weight:400;line-height:.96}.lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.lightbox::backdrop{background:var(--paper)}.lb{grid-template-rows:var(--header-h) minmax(0, 1fr) auto;height:100%;display:grid}.lb-top,.lb-bottom{column-gap:var(--gap);padding:0 var(--gutter);grid-template-columns:repeat(8,minmax(0,1fr));align-items:center;display:grid}.lb-top .lb-title{white-space:nowrap;text-overflow:ellipsis;grid-column:1/span 4;overflow:hidden}.lb-top .lb-count{white-space:nowrap;font-variant-numeric:tabular-nums;grid-column:5/span 2}.lb-top .lb-close{grid-column:8;justify-self:end}.lb-stage{min-height:0;padding:6px var(--gutter) 10px;place-items:center;display:grid;position:relative}.lb-frame{transition:opacity .25s;position:relative}.lb-frame.swap{opacity:0}.lb-frame .tile-media{aspect-ratio:auto;width:100%;height:100%}.lb-frame .tile-media>img,.lb-frame .tile-media>video{object-fit:contain;transform:none!important}.lb-frame .tile-badge{display:none}.lb-bottom{align-items:end;min-height:56px;padding-bottom:14px}.lb-bottom .lb-cap{color:var(--muted);text-wrap:pretty;grid-column:1/span 5}.lb-bottom .lb-nav{grid-column:6/span 3;justify-self:end;gap:22px;display:flex}.lb-nav button,.lb-close{padding:8px 0}html.lb-open{overflow:hidden}.cv{--soft:color-mix(in srgb, var(--ink) 70%, transparent);padding:clamp(32px, 7vh, 76px) var(--gutter) clamp(72px, 12vh, 140px)}.cv-sec{column-gap:var(--gap);border-top:1px solid var(--ink);grid-template-columns:repeat(8,minmax(0,1fr));padding:20px 0 clamp(40px,6.5vh,68px);display:grid}.cv-sec:first-child{border-top:0;padding-top:0}.cv-label{top:calc(var(--header-h) + 20px);grid-column:1/span 2;align-self:start;position:sticky}.cv-body{grid-column:3/span 6;min-width:0;max-width:60rem}.cv-name{letter-spacing:-.045em;font-size:clamp(32px,4.1vw,64px);line-height:.98}.cv-name .cv-role{color:var(--muted);display:block}.cv-summary{letter-spacing:-.012em;text-wrap:pretty;max-width:37em;margin-top:clamp(20px,3vh,32px);font-size:clamp(17px,1.35vw,21px);line-height:1.34}.cv-links{flex-wrap:wrap;gap:6px 22px;margin-top:clamp(18px,2.6vh,28px);display:flex}.cv-links li:first-child{color:var(--soft)}.ulink{text-underline-offset:4px;text-decoration:underline 1px;text-decoration-color:var(--muted);transition:text-decoration-color .2s}.ulink:hover,.ulink:focus-visible{text-decoration-color:currentColor}.cv-item{border-top:1px solid var(--hair);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:7px 28px;padding:17px 0 19px;display:grid}.cv-item:first-child{border-top:0;padding-top:0}.cv-item:last-child{padding-bottom:0}.cv-title{letter-spacing:-.024em;text-wrap:balance;font-size:clamp(19px,1.6vw,25px);line-height:1.14}.cv-title .org{color:var(--soft)}.cv-when{white-space:nowrap;justify-self:end;align-items:center;gap:7px;font-size:12px;display:inline-flex}.now-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite pulse}.cv-what,.cv-meta{text-wrap:pretty;grid-column:1/-1;max-width:44em;line-height:1.4}.cv-what{color:var(--soft)}.cv-meta{color:var(--soft);flex-wrap:wrap;gap:4px 18px;display:flex}.cv-meta .id{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:12px}.cv-tags{flex-wrap:wrap;gap:8px;display:flex}.cv-tags li{border:1px solid var(--ink);border-radius:999px;padding:8px 13px 9px;line-height:1}.contact{column-gap:var(--gap);padding:clamp(92px, 21vh, 200px) var(--gutter) clamp(84px, 16vh, 170px);grid-template-columns:repeat(8,minmax(0,1fr));row-gap:clamp(56px,11vh,110px);display:grid}.contact .statement{grid-column:1/span 4}.contact-way{grid-column:1/span 4;align-self:start}.contact-way .mono{margin-bottom:12px}.biglink{letter-spacing:-.032em;overflow-wrap:anywhere;font-size:clamp(22px,2.5vw,40px);line-height:1.05;display:inline-block}.contact-way p{max-width:26em;color:var(--muted);margin-top:16px;line-height:1.25}.clocks{column-gap:var(--gap);grid-column:5/span 4;grid-template-columns:repeat(2,minmax(0,1fr));align-self:start;display:grid}.dial{aspect-ratio:1;width:min(100%,168px);margin-bottom:22px;overflow:visible}.dial circle.rim{fill:none;stroke:var(--hair);stroke-width:1px;vector-effect:non-scaling-stroke}.dial line{stroke:currentColor;stroke-linecap:round;vector-effect:non-scaling-stroke;transform-origin:50px 50px}.dial .h{stroke-width:2.5px;transform:rotate(var(--h,0deg))}.dial .m{stroke-width:1.75px;transform:rotate(var(--m,0deg))}.dial .s{stroke:var(--accent);stroke-width:1px;transform:rotate(var(--s,0deg))}.dial .pin{fill:currentColor}.clock-label{color:var(--muted);margin-bottom:3px}.clock-digits{font-variant-numeric:tabular-nums}.site-footer{column-gap:var(--gap);padding:16px var(--gutter) 58px;grid-template-columns:repeat(8,minmax(0,1fr));align-items:baseline;row-gap:8px;display:grid}.site-footer .f-links{flex-wrap:wrap;grid-column:1/span 4;gap:4px 1.1em;display:flex}.site-footer .f-year{white-space:nowrap;grid-column:5/-1;justify-self:end}.lost{min-height:calc(100dvh - var(--header-h) - 120px);padding:0 var(--gutter);align-content:center;gap:18px;display:grid}.bit{z-index:60;width:39px;height:42px;transform:translate3d(var(--x,16px), 0, 0);cursor:pointer;-webkit-tap-highlight-color:transparent;position:fixed;bottom:0;left:0}.bit canvas{width:39px;height:42px;image-rendering:pixelated}.bit-say{white-space:nowrap;background:var(--ink);color:var(--paper);opacity:0;transform:translate(calc(-50% + var(--shift,0px)), 5px);transition:opacity .25s, transform .45s var(--ease-out);pointer-events:none;padding:5px 7px 4px;font-size:10px;position:absolute;bottom:46px;left:50%}.bit-say:after{content:"";left:calc(50% - var(--shift,0px));background:inherit;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:100%;transform:rotate(45deg)}.bit-say.on{opacity:1;transform:translate(calc(-50% + var(--shift,0px)), 0)}.cursor-tag{z-index:80;white-space:nowrap;background:var(--ink);color:var(--paper);pointer-events:none;opacity:0;transform:translate3d(var(--x,0px), var(--y,0px), 0);padding:4px 7px 3px;font-size:10px;transition:opacity .2s;position:fixed;top:0;left:0}.cursor-tag.on{opacity:1}.js [data-reveal]{opacity:0;transition:opacity .9s var(--ease-out) var(--d,0s), transform 1.2s var(--ease-out) var(--d,0s);transform:translateY(16px)}.js [data-reveal].in{opacity:1;transform:none}.js .tile[data-reveal] .tile-media{clip-path:inset(0 0 100%);transition:clip-path 1.25s var(--ease-out) var(--d,0s)}.js .tile[data-reveal].in .tile-media{clip-path:inset(0)}.js [data-lines]{visibility:hidden;animation:0s 3s forwards show-anyway}.js [data-lines].lines-ready{visibility:visible;animation:none}@keyframes show-anyway{to{visibility:visible}}.line{margin-bottom:-.16em;padding-bottom:.16em;display:block;overflow:hidden}.line>.line-in{transition:transform 1.15s var(--ease-out);transition-delay:calc(var(--i) * 85ms);display:block;transform:translateY(118%)}.lines-in .line>.line-in{transform:none}.js [data-lines]:not(.lines-in) .squiggle path{stroke-dashoffset:640px}.js [data-lines] .squiggle path{transition:stroke-dashoffset 1.7s cubic-bezier(.5,0,.15,1) .25s}::view-transition-group(*){animation-duration:.6s;animation-timing-function:cubic-bezier(.65,0,.35,1)}::view-transition-old(root){animation:.28s both vt-out}::view-transition-new(root){animation:.55s cubic-bezier(.16,1,.3,1) both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}@media (width<=900px){.statement,.contact .statement,.contact-way,.now,.clocks,.project-copy,.project-desc-grid .spec,.cv-label,.cv-body{grid-column:1/-1}.cv-label{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin-bottom:16px;font-size:11px;position:static}.site-footer .f-links{grid-column:1/-1}.site-footer .f-year{grid-column:1/-1;justify-self:start}}@media (width<=700px){:root{--gutter:12px;--gap:8px}.site-header{justify-content:space-between;gap:14px;display:flex}.site-header .clock{color:var(--muted);margin-left:auto}.site-nav{gap:14px;display:flex}.site-nav a[data-external],.site-nav .long{display:none}.site-nav .short{display:inline}.project-link,.project-toggle .role{display:none}.project .grid,.project[data-cols="3"] .grid{--cols:2}.project[data-cols="2"] .grid{--cols:1}.density button[data-cols="3"]{display:none}.grid{row-gap:20px}.cap-desc{display:none}.project[data-cols="2"] .cap-desc{display:block}.lb-top .lb-title{grid-column:1/span 5}.lb-top .lb-count{grid-column:6/span 1}.lb-bottom .lb-cap{grid-column:1/-1;padding-bottom:6px}.lb-bottom .lb-nav{grid-column:1/-1;justify-self:start}}@media (width<=460px){.site-header .clock{display:none}.cv-item{grid-template-columns:minmax(0,1fr)}.cv-when{justify-self:start}}@media (hover:none){.cursor-tag{display:none}}@media print{.site-header,.site-footer,.bit,.cursor-tag,.skip,.cv-links .no-print{display:none!important}html,body{color:#000!important;background:#fff!important}main{padding-top:0}.cv{padding:0}.cv-label{position:static}.cv-item{break-inside:avoid}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}
