@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(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Drafting Mono;src:url(/fonts/DraftingMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Drafting Mono;src:url(/fonts/DraftingMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--paper: #ffffff;--stage: #f2f2f2;--card: #f7f7f7;--card-line: #2222220d;--ink: #000000;--muted: #000000a3;--soft: #686c76;--blue: #0d86ff;--radius-tile: 20px;--gutter: 8px;--shell-gap: 72px;--font-display: "Space Grotesk", Arial, sans-serif;--font-mono: "Drafting Mono", "IBM Plex Mono", ui-monospace, monospace;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-pixel: var(--font-mono);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--text-h1: clamp(2.4rem, 5.2vw, 3.75rem);--text-h2: clamp(1.6rem, 3vw, 2.5rem);--text-title: clamp(1.3rem, 2.2vw, 1.9rem);--text-row: clamp(1.05rem, 1.5vw, 1.25rem);--text-sub: clamp(1.4rem, 2.6vw, 1.9rem);--tracking-display: -.035em;--tracking-title: -.025em;--leading-display: 1.15;--label: 400 12px var(--font-mono);--footer-h: 126px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}body.is-locked{overflow:hidden}img{display:block;max-width:100%}a{color:inherit}h1,h2,h3,h4,p,ul,ol,figure{margin:0}ul,ol{list-style:none;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:12px;left:12px;z-index:60;padding:8px 14px;border-radius:999px;background:var(--ink);color:var(--paper);font:var(--label);text-decoration:none;transform:translateY(-250%)}.skip-link:focus-visible{transform:none}.site-nav{position:fixed;z-index:40;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:8px 12px;border-radius:999px;background:#0000003d;backdrop-filter:blur(14px)}.nav-desktop{display:flex;align-items:center;gap:16px}.nav-link{font:var(--label);color:#ffffffb8;text-decoration:none;transition:color .2s ease}.nav-link:hover,.nav-link:focus-visible,.nav-link[aria-current=page]{color:var(--paper)}.nav-cta{display:inline-flex;align-items:center;justify-content:center;padding:8px 24px;border-radius:999px;background:var(--paper);color:var(--ink);font:var(--label);text-decoration:none;transition:transform .2s var(--ease-out-expo)}.nav-cta:hover{transform:scale(1.04)}.nav-trigger{display:none;align-items:center;gap:8px;padding:8px 24px;border:0;border-radius:999px;background:var(--paper);color:var(--ink);font:var(--label);cursor:pointer}.menu-root{position:fixed;z-index:50;inset:0;display:none;pointer-events:none}.menu-dim{position:absolute;inset:0;border:0;padding:0;background:#0000003d;cursor:pointer;opacity:0;transition:opacity .28s ease}.menu-card{position:absolute;top:12px;left:12px;right:12px;height:min(64vh,560px);display:flex;flex-direction:column;align-items:center;padding:18px 22px;border:1px solid #ffffff33;border-radius:48px;background:linear-gradient(180deg,#cfcfcfd9,#9f9f9fd4);backdrop-filter:blur(28px) saturate(1.1);box-shadow:0 30px 80px #0003;opacity:0;transform:scale(.86);transform-origin:50% 12%;transition:opacity .22s ease,transform .48s cubic-bezier(.22,1.18,.36,1)}.menu-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--paper);cursor:pointer;flex:none}.menu-close svg{width:22px;height:22px;stroke:currentColor;stroke-width:2.4;fill:none}.menu-list{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(20px,4.6vh,36px);width:100%}.menu-list a{font:400 14px var(--font-mono);color:var(--paper);text-decoration:none;opacity:0;transform:translateY(14px);transition:opacity .34s ease,transform .34s var(--ease-out-expo)}.menu-cta{display:flex;align-items:center;justify-content:center;width:100%;padding:16px;border-radius:999px;background:var(--paper);color:var(--ink);font:var(--label);text-decoration:none;flex:none;opacity:0;transform:translateY(14px);transition:opacity .34s ease,transform .34s var(--ease-out-expo)}.menu-root.is-open{pointer-events:auto}.menu-root.is-open .menu-dim{opacity:1}.menu-root.is-open .menu-card{opacity:1;transform:scale(1)}.menu-root.is-open .menu-list a,.menu-root.is-open .menu-cta{opacity:1;transform:none;transition-delay:calc(80ms + var(--i, 0) * 50ms)}body.is-locked .nav-trigger{opacity:0;pointer-events:none}.contact-root{display:block}.contact-card{height:auto;max-height:calc(100svh - 24px);max-width:560px;margin:0 auto;padding:18px 22px 24px;overflow:auto;align-items:stretch}.contact-card .menu-close{align-self:center}.contact-title{margin-top:8px;font-family:var(--font-display);font-weight:500;font-size:var(--text-sub);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--paper)}.contact-form{display:flex;flex-direction:column;gap:12px;margin-top:20px}.contact-botcheck{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.contact-field{display:flex;flex-direction:column;gap:6px}.contact-field span{font:var(--label);color:var(--paper)}.contact-field input,.contact-field textarea{width:100%;padding:12px 14px;border:1px solid #ffffff66;border-radius:16px;background:#ffffff1f;color:var(--paper);font:400 14px var(--font-mono);outline:none;transition:border-color .2s ease}.contact-field textarea{resize:vertical;min-height:96px}.contact-field input:focus-visible,.contact-field textarea:focus-visible{border-color:var(--paper)}.contact-send{margin-top:6px;border:0;cursor:pointer;opacity:1;transform:none}.contact-send:disabled{opacity:.6;cursor:default}.contact-status{min-height:1.2em;font:var(--label);color:var(--paper);text-align:center}.contact-links{display:flex;justify-content:center;gap:22px;margin-top:16px}.contact-links a{font:var(--label);color:#ffffffc4;text-decoration:none;transition:color .2s var(--ease-out-expo)}.contact-links a:hover,.contact-links a:focus-visible{color:var(--blue)}.contact-root.is-open .contact-form,.contact-root.is-open .contact-links,.contact-root.is-open .contact-title{opacity:1}.shell{display:flex;flex-direction:column;align-items:center;gap:var(--shell-gap);padding:var(--gutter)}.section-title{font-family:var(--font-display);font-weight:500;letter-spacing:var(--tracking-display);line-height:var(--leading-display)}.section-title{font-size:var(--text-h2);margin-top:6px}h1.section-title{font-size:var(--text-h1);line-height:1.05}.prose{display:flex;flex-direction:column;gap:1rem;margin-top:20px;color:var(--muted);max-width:46rem}.home{--frame-pad: clamp(24px, 5vw, 80px);width:calc(100% + var(--gutter) * 2);margin:calc(-1 * var(--gutter));background:var(--paper)}.home-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.hero-frame{position:sticky;top:0;height:100svh;overflow:hidden;touch-action:pan-y;background:var(--hero-poster) center / cover no-repeat var(--paper)}.hero-portrait{display:block;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s var(--ease-out-expo)}.hero-portrait.is-playing{opacity:1}.hero-toggle{position:absolute;top:16px;left:16px;z-index:2;padding:8px 14px;border:0;border-radius:999px;background:var(--ink);color:var(--paper);font:var(--label);cursor:pointer;opacity:0;pointer-events:none}.hero-toggle:focus-visible{opacity:1;pointer-events:auto}.hero-frame .hero-still{opacity:1}.home-column{min-width:0;display:flex;flex-direction:column;min-height:100svh}.home-copy{--top-slot: clamp(280px, 42svh, 380px);--top-min: 272px;--second-slot: 180px;--column-pad: clamp(56px, 9vh, 104px);padding:clamp(96px,14vh,140px) var(--frame-pad) var(--column-pad);display:grid;grid-template-rows:minmax(var(--top-min),1fr) var(--second-slot);align-content:stretch;flex:1;min-height:0}.home-split .home-copy{min-height:auto;grid-template-rows:minmax(var(--top-min),1fr) minmax(var(--second-slot),auto)}.home-about{max-width:34rem}.home-about-title{margin:0}.home-about-lines{display:flex;flex-direction:column;gap:8px;margin-top:12px;color:var(--muted)}.home-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-top:18px}.home-row a{font:var(--label);color:var(--muted);text-decoration:none;transition:color .2s var(--ease-out-expo)}.home-row a:hover,.home-row a:focus-visible{color:var(--blue)}.home-slash{font:var(--label);color:color-mix(in srgb,var(--soft) 45%,transparent)}.home-about-go{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:5px 0;font:var(--label);color:var(--ink);text-decoration:none}.home-about-go:hover,.home-about-go:focus-visible{color:var(--blue)}.home-about-go:hover .home-arrow,.home-about-go:focus-visible .home-arrow{transform:translate(3px)}.home-column .site-footer{margin-top:auto;padding-left:var(--frame-pad);padding-right:var(--frame-pad)}.home-hero{display:flex;flex-direction:column;align-items:flex-start}.hero-name{font-family:var(--font-display);font-weight:500;text-transform:lowercase;font-size:var(--text-h1);line-height:1.05;letter-spacing:var(--tracking-display)}.hero-bio{display:flex;flex-direction:column;gap:8px;margin-top:32px;max-width:34rem;font-family:var(--font-sans);font-size:16px;line-height:1.55;color:var(--muted)}.home-link{display:inline-flex;align-items:center;gap:6px;margin-top:28px;font:var(--label);color:var(--ink);text-decoration:none;transition:color .2s var(--ease-out-expo)}.home-arrow{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease-out-expo)}.home-link:hover,.home-link:focus-visible{color:var(--blue)}.home-link:hover .home-arrow,.home-link:focus-visible .home-arrow{transform:translate(3px)}.home-reveal,.tech-reveal{--i: 0;opacity:0;transform:translate3d(0,18px,0);animation:home-rise .9s var(--ease-out-expo) forwards;animation-delay:calc(.12s + var(--i) * .09s)}@keyframes home-rise{to{opacity:1;transform:none}}html[data-arrival=client] .home-reveal,html[data-arrival=client] .tech-reveal{animation:none;opacity:1;transform:none}@media(max-width:900px){.home-split{grid-template-columns:minmax(0,1fr)}.hero-frame{position:relative;height:62svh}.hero-frame{mask-image:linear-gradient(to bottom,#000 76%,transparent 100%)}.home-copy{padding-top:clamp(24px,4vh,48px)}.tech-full .home-copy{padding-top:clamp(96px,14vh,140px);grid-template-rows:auto auto}.home-split .home-column{min-height:0}.home-copy{grid-template-rows:minmax(var(--top-slot),auto) var(--second-slot);align-content:start}.home-split .home-copy{grid-template-rows:minmax(var(--top-slot),auto) minmax(var(--second-slot),auto)}.home-column .site-footer{margin-top:clamp(56px,9vh,96px)}}@media(prefers-reduced-motion:reduce){.home-reveal,.tech-reveal{animation:none;opacity:1;transform:none}.hero-portrait,.home-arrow{transition:none}.live-dot{animation:none}}.tech{--frame-pad: clamp(20px, 5vw, 80px);--air: clamp(48px, 8vh, 88px);width:calc(100% + var(--gutter) * 2);margin:calc(-1 * var(--gutter));display:flex;flex-direction:column;padding:clamp(96px,14vh,140px) var(--frame-pad) 0;background:var(--paper)}.tech-head{display:flex;flex-direction:column;align-items:flex-start;padding-bottom:var(--air)}.tech-deck{margin-top:20px;max-width:34rem;color:var(--muted)}.tech-jumps{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin-top:28px}.tech-jumps a,.tech-end-cta{font:var(--label);color:var(--muted);text-decoration:none;transition:color .2s var(--ease-out-expo)}.tech-slash{font:var(--label);color:var(--card-line);color:color-mix(in srgb,var(--soft) 45%,transparent)}.tech-jumps a:hover,.tech-jumps a:focus-visible,.tech-end-cta:hover,.tech-end-cta:focus-visible{color:var(--blue);outline:none}.tech-section,.tech-end{padding:var(--air) 0;border-top:1px solid var(--card-line);scroll-margin-top:96px}.tech-section>.section-title{margin:0 0 clamp(28px,4vh,44px)}.tech-list{display:flex;flex-direction:column}.tech-list>li{padding:22px 0;border-top:1px solid var(--card-line);scroll-margin-top:96px}.tech-list>li:first-child{border-top:0;padding-top:0}.tech-list>li:last-child{padding-bottom:0}.project-name{font:500 var(--text-title) / 1.2 var(--font-display);letter-spacing:var(--tracking-title)}.project-name a{color:inherit;text-decoration:none;transition:color .2s var(--ease-out-expo)}.project-name .home-arrow{display:inline-block;width:.6em;height:.6em;margin-left:.3em;vertical-align:.1em}.project-name a:hover,.project-name a:focus-visible{color:var(--blue)}.project-name a:hover .home-arrow,.project-name a:focus-visible .home-arrow{transform:translate(2px,-2px)}.project-line{margin-top:6px;max-width:34rem;color:var(--muted)}.project-stack{font:var(--label);line-height:1.6;color:var(--soft)}.note{margin-top:12px}.note-toggle{display:inline-flex;list-style:none;padding:6px 0;font:var(--label);color:var(--muted);cursor:pointer;transition:color .2s var(--ease-out-expo)}.note-toggle::-webkit-details-marker{display:none}.note-toggle:hover,.note-toggle:focus-visible{color:var(--blue);outline:none}.note-close,.note[open] .note-open{display:none}.note[open] .note-close{display:inline}.note-body{display:flex;flex-direction:column;gap:1rem;max-width:34rem;margin-top:12px;color:var(--muted)}.project-figure{margin:4px 0 0}.project-figure img{width:auto;max-width:min(100%,720px);height:auto;border:1px solid var(--card-line);border-radius:var(--radius-tile)}.columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px clamp(24px,4vw,64px)}.column-title{margin:0 0 16px;font:var(--label);color:var(--soft)}.stack-names{display:flex;flex-direction:column;gap:12px;font:500 var(--text-row) / 1.25 var(--font-display);letter-spacing:var(--tracking-title)}.experiment-title{font:500 var(--text-row) / 1.25 var(--font-display);letter-spacing:var(--tracking-title);text-wrap:balance}.experiment-line{margin-top:6px;max-width:34rem;color:var(--muted)}.live-dot{display:inline-block;width:.28em;height:.28em;margin-left:.3em;vertical-align:.5em;border-radius:50%;background:var(--blue);animation:live-pulse 2.4s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.skills-line{max-width:34rem;color:var(--muted)}.skills-link,.tech-end-line{display:inline-block;margin-top:20px;font-family:var(--font-display);font-weight:500;font-size:var(--text-sub);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--ink)}.skills-link{text-decoration:none;transition:color .2s var(--ease-out-expo)}.skills-link .home-arrow{width:.6em;height:.6em;margin-left:.3em;vertical-align:.05em}.skills-link:hover,.skills-link:focus-visible{color:var(--blue);outline:none}.skills-link:hover .home-arrow,.skills-link:focus-visible .home-arrow{transform:translate(2px,-2px)}.tech-end-line{display:block;margin-top:0;max-width:24ch;text-wrap:balance}.tech-end-cta{display:inline-block;margin-top:20px}@media(max-width:900px){.columns{grid-template-columns:minmax(0,1fr);gap:28px}}@media(prefers-reduced-motion:reduce){.note-toggle{transition-duration:.01ms}}@keyframes page-in-from-right{0%{opacity:0;transform:translate(4%);filter:blur(10px)}}@keyframes page-in-from-left{0%{opacity:0;transform:translate(-4%);filter:blur(10px)}}@keyframes page-out-to-left{to{opacity:0;transform:translate(-4%);filter:blur(10px)}}@keyframes page-out-to-right{to{opacity:0;transform:translate(4%);filter:blur(10px)}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}.site-footer{width:100%;box-sizing:border-box;min-height:var(--footer-h);margin-top:var(--gutter);padding:26px clamp(20px,5vw,80px) 32px;border-top:1px solid var(--ink);background:var(--paper)}.footer-name{font-family:var(--font-display);font-weight:500;text-transform:lowercase;font-size:var(--text-sub);line-height:var(--leading-display);letter-spacing:var(--tracking-display);color:var(--ink)}.footer-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:16px}.footer-links a{font:var(--label);text-decoration:none;color:var(--muted);transition:color .2s var(--ease-out-expo)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--blue)}.scroll-top{--circ: 125.664;--p: 0;position:fixed;overflow:visible;z-index:30;right:32px;bottom:70px;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;appearance:none;background:#0003;color:#fff;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s cubic-bezier(.4,0,.2,1),visibility .2s cubic-bezier(.4,0,.2,1)}.scroll-top.is-visible{opacity:1;visibility:visible;pointer-events:auto}.scroll-top:focus-visible{outline:2px solid var(--paper);outline-offset:3px}.scroll-top-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.scroll-top-track,.scroll-top-progress{fill:none;stroke-width:2.5}.scroll-top-track{stroke:#ffffff4d}.scroll-top-progress{stroke:#fff;stroke-linecap:round;stroke-dasharray:var(--circ);stroke-dashoffset:calc(var(--circ) * (1 - var(--p)))}.scroll-top-icon{position:relative;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}body.is-locked .scroll-top{opacity:0;visibility:hidden;pointer-events:none;transition:none}@media(max-width:900px){:root{--shell-gap: 28px}.nav-desktop{display:none}.nav-trigger{display:inline-flex}.scroll-top{width:40px;height:40px;right:20px;background:#00000080}.scroll-top-icon{width:20px;height:20px}.site-nav{padding:8px}.menu-root{display:block}}@media(min-width:901px){.menu-root:not(.contact-root){display:none!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-root,.menu-card,.menu-dim,.menu-list a,.menu-cta,.nav-cta,.tech-jumps a,.note-toggle,.skills-link,.tech-end-cta,.scroll-top{transition-duration:.01ms;transition-delay:0ms}}.tech-split .home-column{height:auto;min-height:100svh}.tech-copy{flex:1 0 auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(var(--second-slot),auto)}.tech-stage{--sheet-h: clamp(96px, 15vh, 150px);display:flex;flex-direction:column;min-height:0;min-width:0}.tech-stage{padding-top:clamp(20px,3vh,32px)}.tech-rail{flex:1;min-height:0;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;margin:0 calc(-1 * var(--frame-pad));padding:var(--sheet-h) var(--frame-pad) 6px;outline:none}.tech-rail::-webkit-scrollbar{display:none}.tech-cards{display:flex;gap:18px;height:100%;min-height:190px;list-style:none;margin:0;padding:0}.tech-card{position:relative;flex:0 0 clamp(260px,24vw,340px)}.tech-card-link{position:relative;display:flex;flex-direction:column;height:100%;padding:20px 20px 18px;border:1px solid var(--card-line);border-radius:18px;background:var(--paper);box-shadow:0 1px 2px #0000000a;color:inherit;text-decoration:none;transition:box-shadow .3s var(--ease-out-expo),transform .3s var(--ease-out-expo)}a.tech-card-link:hover,a.tech-card-link:focus-visible{box-shadow:0 16px 40px #00000012;transform:translateY(-3px);outline:none}.tech-card-body{position:relative;z-index:2;display:flex;flex-direction:column;gap:6px;height:100%}.tech-card-kicker{display:flex;align-items:center;gap:6px;font:var(--label);line-height:1.5;color:var(--soft)}.tech-card-title{display:flex;align-items:center;gap:8px;font:500 var(--text-title) / 1.2 var(--font-display);letter-spacing:var(--tracking-title)}.tech-card-line{color:var(--muted);font-size:clamp(.88rem,1.05vw,.95rem);line-height:1.5}.tech-card-names{margin-top:8px;gap:6px;font-size:var(--text-row)}.tech-card-cta{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:14px;font:var(--label);color:var(--muted);transition:color .2s var(--ease-out-expo)}.tech-card-arrow{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:translate(-4px);transition:opacity .25s var(--ease-out-expo),transform .25s var(--ease-out-expo)}a.tech-card-link:hover .tech-card-cta,a.tech-card-link:focus-visible .tech-card-cta{color:var(--blue)}a.tech-card-link:hover .tech-card-arrow,a.tech-card-link:focus-visible .tech-card-arrow{opacity:1;transform:none}.tech-sheet{--fade: 84px;position:absolute;left:0;right:0;bottom:100%;height:var(--sheet-h);overflow:hidden;pointer-events:none}.tech-sheet.is-scrolling{-webkit-mask-image:linear-gradient(to right,transparent,#0001 calc(var(--left-fade, var(--fade)) * .3),#0006 calc(var(--left-fade, var(--fade)) * .6),#000c calc(var(--left-fade, var(--fade)) * .85),#000 var(--left-fade, var(--fade)),#000 calc(100% - var(--fade)),#000c calc(100% - var(--fade) * .85),#0006 calc(100% - var(--fade) * .6),#0001 calc(100% - var(--fade) * .3),transparent);mask-image:linear-gradient(to right,transparent,#0001 calc(var(--left-fade, var(--fade)) * .3),#0006 calc(var(--left-fade, var(--fade)) * .6),#000c calc(var(--left-fade, var(--fade)) * .85),#000 var(--left-fade, var(--fade)),#000 calc(100% - var(--fade)),#000c calc(100% - var(--fade) * .85),#0006 calc(100% - var(--fade) * .6),#0001 calc(100% - var(--fade) * .3),transparent);-webkit-mask-size:calc(100% + 2 * var(--fade)) 100%;mask-size:calc(100% + 2 * var(--fade)) 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:calc(-2 * var(--fade)) 0;mask-position:calc(-2 * var(--fade)) 0}.tech-card:has(a.tech-card-link:hover),.tech-card:has(a.tech-card-link:focus-visible){z-index:4}.tech-tray{position:relative;display:block;width:100%;height:100%}.tech-mark{--k: 0;--x: 0px;--y: 0px;--r: 0deg;position:absolute;left:calc(20px + var(--x));bottom:calc(8px + var(--y));z-index:calc(1 + var(--k));display:grid;place-items:center;width:52px;height:52px;border-radius:14px;box-shadow:0 4px 14px #0000001a;opacity:0;transform:translate3d(0,170%,0) rotate(0) scale(.9);transition:transform .6s var(--ease-out-expo),opacity .3s ease-out}.tech-mark{--x: calc(var(--k) * 46px)}.tech-mark:nth-child(odd){--y: 0px;--r: -2deg}.tech-mark:nth-child(2n){--y: 3px;--r: 2deg}.tech-mark-tile{object-fit:cover}.tech-mark-mono{background:#111;color:var(--paper);font-family:var(--font-display);font-weight:500;font-size:22px;letter-spacing:var(--tracking-title)}.tech-mark-logo{background:#111}.tech-mark-logo img{display:block;width:26px;height:26px}a.tech-card-link:hover .tech-mark,a.tech-card-link:focus-visible .tech-mark{opacity:1;transform:rotate(var(--r));transition-delay:calc(var(--k) * .06s)}@media(min-width:901px){.tech-split .home-column{height:100svh;min-height:0;overflow:hidden}.tech-copy{flex:1;min-height:0;grid-template-rows:auto minmax(0,1fr);padding-bottom:20px}}@media(max-width:900px){.tech-copy{grid-template-rows:minmax(var(--top-slot),auto) minmax(var(--second-slot),auto)}.tech-cards{height:auto}.tech-card-link{min-height:200px}}@media(prefers-reduced-motion:reduce){.tech-mark,.tech-card-link,.tech-card-arrow{transition:none;animation:none}}.tech-stage{position:relative}.tech-rail{transition:opacity .45s var(--ease-out-expo) .16s,transform .55s var(--ease-out-expo) .16s}.tech-stage.is-focused .tech-rail{opacity:0;transform:translate3d(0,10px,0);pointer-events:none;transition-delay:0s,0s}.tech-focus{transition:opacity .28s var(--ease-out-expo),transform .32s var(--ease-out-expo)}.tech-stage.is-closing .tech-focus{opacity:0;transform:translate3d(0,6px,0);pointer-events:none}.tech-stage.is-closing .tech-focus-head,.tech-stage.is-closing .tech-focus-copy{opacity:1;transform:none;transition:none}.tech-stage.is-closing .tech-focus-mark{transition:none}.tech-stage.is-focused .tech-sheet .tech-mark{opacity:0;transition:none;animation:none}.tech-focus{position:absolute;inset:clamp(20px,3vh,32px) 0 0;z-index:3;display:flex;flex-direction:column;min-height:0}.tech-focus[hidden],.tech-focus-group[hidden]{display:none}.tech-focus-group{display:flex;flex-direction:column;gap:clamp(18px,3vh,28px);min-height:0}.tech-focus-head{display:flex;align-items:center;justify-content:space-between;gap:24px;opacity:0;transform:translate3d(0,8px,0);transition:opacity .45s var(--ease-out-expo) .2s,transform .6s var(--ease-out-expo) .2s}.tech-stage.is-landed .tech-focus-head{opacity:1;transform:none}.tech-focus-title{margin:0;font:500 var(--text-title) / 1.2 var(--font-display);letter-spacing:var(--tracking-title)}.tech-focus-close{flex:0 0 auto;display:grid;place-items:center;width:36px;height:36px;margin:-8px -8px 0 0;padding:0;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer;transition:color .2s var(--ease-out-expo),transform .3s var(--ease-out-expo)}.tech-focus-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}.tech-focus-close:hover,.tech-focus-close:focus-visible{color:var(--ink);transform:rotate(90deg);outline:none}.tech-focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2.4vh,22px) 28px;margin:0;padding:0 0 8px;list-style:none;min-height:0;overflow-y:auto;scrollbar-width:none}.tech-focus-grid::-webkit-scrollbar{display:none}.tech-focus-entry{display:flex;align-items:flex-start;gap:14px;min-width:0}.tech-focus-mark{position:relative;display:block;flex:0 0 44px;width:44px;height:44px;transform-origin:0 0;transition:transform .75s var(--ease-out-expo),opacity .3s var(--ease-out-expo);transition-delay:calc(var(--k, 0) * .05s)}.tech-focus-mark .tech-mark{position:static;width:44px;height:44px;max-width:none;border-radius:12px;box-shadow:0 3px 10px #00000014;opacity:1;transform:none;transition:none;animation:none}.tech-focus-mark .tech-mark-mono{font-size:19px}.tech-focus-mark .tech-mark-logo img{width:22px;height:22px}.tech-focus-copy{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:2px;opacity:0;transform:translate3d(-6px,0,0);transition:opacity .4s var(--ease-out-expo),transform .5s var(--ease-out-expo);transition-delay:calc(.35s + var(--k, 0) * .05s)}.tech-stage.is-landed .tech-focus-copy{opacity:1;transform:none}.tech-focus-entry-title{font:500 clamp(.95rem,1.2vw,1.05rem) / 1.3 var(--font-display);letter-spacing:var(--tracking-title)}.tech-focus-entry-title a{color:inherit;text-decoration:none;transition:color .2s var(--ease-out-expo)}.tech-focus-entry-title a:hover,.tech-focus-entry-title a:focus-visible{color:var(--blue);outline:none}.tech-focus-entry-line{color:var(--muted);font-size:clamp(.82rem,.98vw,.9rem);line-height:1.45}@media(max-width:900px){.tech-focus{position:static;inset:auto}.tech-stage.is-focused .tech-rail{display:none}.tech-focus-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.tech-rail,.tech-focus,.tech-focus-head,.tech-focus-mark,.tech-focus-copy{transition:none}}.tech-full{display:block}.tech-full .home-column{height:auto;min-height:100svh}.tech-full .tech-card{flex-basis:clamp(260px,calc((100% - 54px)/4),360px)}@media(min-width:901px){.tech-full .home-column{height:100svh;min-height:0;overflow:hidden}body:has(.tech-full) .site-nav{background:#000000b3}.tech-full .tech-focus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
