@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#08080c;--bg-2:#0e0e14;--border:#1e1f28;--text:#f5f5f7;--text-muted:#8e8e96;--accent:#7dd3fc;--sans:"Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--display:"Instrument Serif", Georgia, "Times New Roman", serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-micro:cubic-bezier(.33, 1, .68, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-synthesis:none;font-size:16px;line-height:1.6}*{box-sizing:border-box}html,body{background:var(--bg);margin:0;padding:0}html{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg);scroll-padding-top:72px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#2e2f3a}body{min-height:100vh}#root{width:100%;min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{color:#eaf6ff;background:#7dd3fc47}.reveal{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transition-delay:calc(var(--i,0) * 80ms);transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:none}.nav{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);opacity:0;visibility:hidden;pointer-events:none;height:64px;transition:opacity .3s var(--ease-micro), transform .3s var(--ease-micro), visibility .3s;background:#08080ca6;justify-content:space-between;align-items:center;padding:0 48px;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-8px)}.nav--visible{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav__brand{font-family:var(--display);letter-spacing:.01em;font-size:18px}.nav__links{gap:28px;display:flex}.nav__links a{letter-spacing:.04em;color:var(--text-muted);transition:color .18s var(--ease-micro);font-size:13px;font-weight:500}.nav__links a:hover{color:var(--text)}@media (width<=768px){.nav{padding:0 24px}.nav__links{gap:20px}}.hero-pin{z-index:0;height:180vh;display:block;position:relative}.hero{width:100%;height:100vh;position:sticky;top:0;overflow:hidden}.content{z-index:1;background:var(--bg);position:relative}.hero__canvas{position:absolute;inset:0}.hero__canvas canvas{cursor:grab}.hero__canvas canvas:active{cursor:grabbing}.hero__gl{opacity:0;transition:opacity .9s;position:absolute;inset:0}.hero__gl--ready{opacity:1}.hero__vignette{pointer-events:none;z-index:0;background:radial-gradient(120% 90% at 50% 38%,#0000 55%,#03040999 100%),linear-gradient(#03040959,#0000 22%);position:absolute;inset:0}.hero__content{z-index:1;pointer-events:none;flex-direction:column;height:100%;padding:32px 48px 56px;display:flex;position:relative}.hero__wordmark{font-family:var(--display);letter-spacing:.01em;will-change:opacity;animation:heroRise .8s var(--ease-out) backwards;font-size:28px;font-weight:400}.hero__tagline-wrap{min-height:0;animation:heroRise .9s var(--ease-out) .15s backwards;flex-direction:column;flex:1;display:flex}.hero__tagline{max-width:880px;font-family:var(--display);letter-spacing:-.01em;will-change:transform;transform-origin:bottom;margin:auto 0 0;font-size:clamp(38px,5.5vw,76px);font-weight:400;line-height:1.05}.hero__tagline em{color:var(--accent);font-style:italic}@keyframes heroRise{0%{opacity:0;transform:translateY(24px)}}.hero__fade{background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;z-index:0;height:140px;position:absolute;bottom:0;left:0;right:0}.hero__cue{z-index:1;pointer-events:none;flex-direction:column;align-items:center;gap:10px;transition:opacity .4s;animation:1s 1.2s backwards cueIn;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.hero__cue-label{letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted);padding-left:.3em;font-size:10px;font-weight:500}.hero__cue-line{background:#ffffff1f;width:1px;height:48px;position:relative;overflow:hidden}.hero__cue-line:after{content:"";background:linear-gradient(to bottom, transparent, var(--accent));width:100%;height:40%;animation:2s cubic-bezier(.4,0,.6,1) infinite cueDrop;position:absolute;top:-40%;left:0}@keyframes cueDrop{to{top:100%}}@keyframes cueIn{0%{opacity:0}}@media (hover:none) and (pointer:coarse){.hero__canvas,.hero__canvas *{pointer-events:none!important;touch-action:pan-y!important}}@media (width<=768px){.hero-pin{height:auto}.hero{height:100svh;min-height:0;position:relative}.hero__canvas,.hero__canvas *{pointer-events:none!important;touch-action:pan-y!important}.hero__content{padding:24px 24px 80px}.hero__tagline{text-align:left;margin:auto 0}.hero__br{display:none}}.section{border-top:1px solid var(--border);max-width:1120px;margin:0 auto;padding:120px 48px}.section:first-of-type{border-top:none}@media (width<=768px){.section{padding:80px 24px}}.section__eyebrow{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;font-size:11px;font-weight:500}.section__title{font-family:var(--display);letter-spacing:-.01em;max-width:720px;margin:0 0 64px;font-size:clamp(32px,4vw,48px);font-weight:400;line-height:1.1}.section__title em{color:var(--accent);font-style:italic}.wwd{grid-template-columns:repeat(4,1fr);gap:40px;display:grid}@media (width<=980px){.wwd{grid-template-columns:repeat(2,1fr);gap:40px 48px}}@media (width<=768px){.wwd{grid-template-columns:1fr;gap:40px}}.wwd__block{border-top:1px solid var(--border);padding-top:28px}.wwd__num{letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--accent);margin-bottom:12px;font-size:12px;font-weight:500;display:block}.wwd__block h3{font-family:var(--display);color:var(--text);margin:0 0 16px;font-size:26px;font-weight:400}.wwd__block p{color:var(--text-muted);max-width:36ch;margin:0;line-height:1.55}.section--tviz{padding-top:60px;padding-bottom:60px}#what{padding-bottom:60px}#portfolio{padding-top:60px}@media (width<=768px){.section--tviz{padding-top:40px;padding-bottom:40px}#what{padding-bottom:40px}#portfolio{padding-top:40px}}.tviz{--tviz-h:340px;border:1px solid var(--border);background:radial-gradient(90% 130% at 72% 0%, #7dd3fc0e, transparent 60%), var(--bg-2);border-radius:14px;margin:0;position:relative;overflow:hidden}.tviz__bar{justify-content:space-between;align-items:center;gap:16px;padding:18px 22px 4px;display:flex}.tviz__label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:500}.tviz__chips{gap:8px;display:flex}.tviz__chip{appearance:none;border:1px solid var(--border);color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:color .18s var(--ease-micro), border-color .18s var(--ease-micro), background-color .18s var(--ease-micro);background:0 0;border-radius:999px;padding:6px 14px;font-size:11px;font-weight:500}.tviz__chip:hover{color:var(--text)}.tviz__chip[aria-pressed=true]{color:var(--accent);background:#7dd3fc12;border-color:#7dd3fc73}.tviz__chip-num{opacity:.55;font-variant-numeric:tabular-nums;margin-right:6px}.tviz__canvas{width:100%;height:var(--tviz-h);cursor:crosshair;display:block}.tviz__console{font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;justify-content:space-between;gap:24px;margin:0;padding:8px 22px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;display:flex}.tviz__console-line{text-overflow:ellipsis;overflow:hidden}.tviz__console-metric{color:#7dd3fcbf;flex-shrink:0}@media (width<=768px){.tviz{--tviz-h:260px}.tviz__bar{padding:14px 16px 2px}.tviz__console{padding:6px 16px 14px;font-size:11px}}@media (width<=480px){.tviz__label{display:none}}@media (prefers-reduced-motion:reduce){.tviz__chip{transition:none}}.portfolio__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.portfolio__item{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:32px;padding:36px 0;display:flex}.portfolio__item:last-child{border-bottom:1px solid var(--border)}.portfolio__item__index{letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--text-muted);flex:0 0 48px;font-size:12px;font-weight:500}.portfolio__item__name{font-family:var(--display);letter-spacing:-.005em;flex:1;margin:0;font-size:32px;font-weight:400}.portfolio__item__name a,.portfolio__item__name .portfolio__item__link-btn{transition:color .18s var(--ease-micro);align-items:center;display:inline-flex}.portfolio__item__link-btn{cursor:pointer;text-align:inherit;letter-spacing:inherit;background:0 0;border:none;padding:0}.portfolio__item__name a:hover,.portfolio__item__name .portfolio__item__link-btn:hover{color:var(--accent)}.portfolio__logo{width:186px;height:60px;transition:transform .18s var(--ease-micro), box-shadow .18s var(--ease-micro);background:#f6f6f8;border-radius:12px;justify-content:center;align-items:center;padding:0 18px;display:inline-flex;box-shadow:0 1px 2px #00000059}.portfolio__logo-img{width:auto;max-width:100%;height:auto;max-height:26px;display:block}.portfolio__item__name a[href*=rinnalla] .portfolio__logo-img{max-height:34px}.portfolio__item__name a[href*=hyperstack] .portfolio__logo-img{max-height:30px}.portfolio__item__name a[href*=posognos] .portfolio__logo-img{max-height:34px}.portfolio__logo-img[src*=beaded-bags]{max-height:42px}.portfolio__item__name a[href*=pennbridge] .portfolio__logo-img{max-height:34px}.portfolio__logo:has(.portfolio__logo-img[src*=bespoke-synapse]){background:#000}.portfolio__logo-img[src*=bespoke-synapse]{max-height:30px}.portfolio__item__name a:hover .portfolio__logo,.portfolio__item__name .portfolio__item__link-btn:hover .portfolio__logo{transform:translateY(-2px);box-shadow:0 6px 18px #0006}.portfolio__item__arrow{transition:transform .18s var(--ease-micro);margin-left:8px;display:inline-block}.portfolio__item__arrow svg{display:block}.portfolio__item__name a:hover .portfolio__item__arrow,.portfolio__item__name .portfolio__item__link-btn:hover .portfolio__item__arrow{transform:translate(3px,-3px)}.portfolio__item__badge{font-family:var(--sans);color:var(--text-muted);letter-spacing:0;white-space:nowrap;font-size:13px}.portfolio__item__desc{color:var(--text-muted);text-align:right;max-width:40ch;line-height:1.55}@media (width<=768px){.portfolio__item{flex-direction:column;align-items:flex-start;gap:12px}.portfolio__item__index{flex-basis:auto}.portfolio__item__desc{text-align:left}}.contact__form{gap:28px;max-width:560px;display:grid}.contact__field{flex-direction:column;gap:10px;display:flex}.contact__field label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:500}.contact__field input,.contact__field textarea{color:var(--text);font-size:16px;font-family:var(--sans);transition:border-color .18s var(--ease-micro);resize:vertical;background:0 0;border:none;border-bottom:1px solid #ffffff29;outline:none;padding:10px 0}.contact__field input:hover,.contact__field textarea:hover{border-bottom-color:#ffffff47}.contact__field input:focus,.contact__field textarea:focus{border-bottom-color:var(--accent)}.contact__submit{border:1px solid var(--text);color:var(--text);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;transition:background-color .18s var(--ease-micro), color .18s var(--ease-micro), border-color .18s var(--ease-micro);background:0 0;justify-self:start;margin-top:12px;padding:13px 32px;font-size:13px;font-weight:500}.contact__submit:hover:not(:disabled){background:var(--text);color:var(--bg)}.contact__submit:active:not(:disabled){transform:translateY(1px)}.contact__submit:disabled{opacity:.5;cursor:not-allowed}.contact__status{min-height:1.5em;color:var(--text-muted);margin:0;font-size:14px}.contact__status--ok{color:var(--accent)}.contact__status--error{border-left:2px solid var(--accent);padding-left:12px;display:inline-block}.footer{border-top:1px solid var(--border);max-width:1120px;color:var(--text-muted);justify-content:space-between;align-items:flex-end;margin:0 auto;padding:64px 48px;font-size:13px;display:flex}.footer__wordmark{font-family:var(--display);color:var(--text);margin-bottom:8px;font-size:18px}.footer__links{gap:24px;display:flex}.footer__links a{color:var(--text-muted);transition:color .18s var(--ease-micro)}.footer__links a:hover{color:var(--text)}@media (width<=768px){.footer{flex-direction:column;align-items:flex-start;gap:24px;padding:40px 24px}}@media (prefers-reduced-motion:reduce){.hero-pin{height:auto}.hero{position:relative}.hero__gl{transition:none}.hero__wordmark,.hero__tagline-wrap,.hero__cue{animation:none}.hero__cue-line:after{display:none}.nav{transition:none}.reveal{opacity:1;transition:none;transform:none}}
