*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg,video{display:block;max-width:100%}.labs-canvas svg{max-width:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}input,textarea{font:inherit;color:inherit}:root{--bg: #ffffff;--fg: #0a0a0a;--muted: #8a8a8a;--muted-2: #c9c9c9;--line: #e6e6e6;--line-strong: #1a1a1a;--ink: #0a0a0a;--ink-soft: #1e1e1e;--invert-fg: #f4f4f4;--invert-bg: #0a0a0a;--placeholder: #ededed;--placeholder-2: #f5f5f5;--accent-purple: #d6c9ff;--accent-green: #c7f5cf;--accent-pink: #ffd2d3;--accent-yellow: #f8e6b0;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;--font-mono: "DM Mono", ui-monospace, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--container-max: 1440px;--gutter: 24px;--gutter-lg: 40px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 28px;--radius-xl: 36px;--transition: .18s ease;--frozen-ink: #0a0a0a;--frozen-ink-soft: #1e1e1e;--frozen-invert-fg: #f4f4f4}[data-theme=dark]{--bg: #0e0e0e;--fg: #ededed;--muted: #8a8a8a;--muted-2: #4a4a4a;--line: #262626;--line-strong: #ededed;--ink: #ededed;--ink-soft: #d4d4d4;--invert-fg: #0a0a0a;--invert-bg: #ededed;--placeholder: #1a1a1a;--placeholder-2: #141414}[data-theme=dark] .service-card,[data-theme=dark] .testimonial-card,[data-theme=dark] .more-card,[data-theme=dark] .hero-marquee__slide,[data-theme=dark] .site-footer{--ink: var(--frozen-ink);--ink-soft: var(--frozen-ink-soft);--invert-fg: var(--frozen-invert-fg)}html{transition:background-color .22s ease,color .22s ease}body,.site-header,.site-drawer,.btn,.tile,.gear,.faq__item,.bio p,.field input,.field textarea{transition:background-color .22s ease,color .22s ease,border-color .22s ease}@media (prefers-reduced-motion: reduce){html,body,.site-header,.site-drawer,.btn,.tile,.gear,.faq__item,.bio p,.field input,.field textarea{transition:none}}h1,h2,h3,h4,h5,h6,p{margin:0}h1,h2,h3{letter-spacing:-.02em;line-height:1.05;font-weight:600}h1{font-size:clamp(2.5rem,5.5vw,4.25rem)}h2{font-size:clamp(2rem,4vw,3rem)}h3{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600}.eyebrow{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;color:var(--ink-soft);text-transform:none}.eyebrow:before{content:"( "}.eyebrow:after{content:" )"}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-size:.85rem}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}@media (min-width: 900px){.container{padding:0 var(--gutter-lg)}}.page-canvas{display:flex;flex-direction:column}.page-reveal{-webkit-mask-image:linear-gradient(135deg,#000 0%,#000 45%,transparent 55%,transparent 100%);mask-image:linear-gradient(135deg,#000 0%,#000 45%,transparent 55%,transparent 100%);-webkit-mask-size:300% 300%;mask-size:300% 300%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:page-reveal .6s cubic-bezier(.45,0,.55,1) both}@keyframes page-reveal{0%{-webkit-mask-position:100% 100%;mask-position:100% 100%}to{-webkit-mask-position:0% 0%;mask-position:0% 0%}}@media (prefers-reduced-motion: reduce){.page-reveal{animation:none;-webkit-mask-image:none;mask-image:none}}.breadcrumbs{padding:24px 0 12px}.breadcrumbs__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.75rem;color:var(--ink-soft);letter-spacing:.02em}.breadcrumbs__item{display:flex;align-items:center}.breadcrumbs__sep{display:flex;align-items:center;color:var(--ink-soft);opacity:.45}.breadcrumbs__link{display:inline-flex;align-items:center;background:transparent;border:0;padding:2px 4px;margin:-2px -4px;border-radius:4px;font:inherit;letter-spacing:inherit;color:var(--ink-soft);cursor:pointer;text-decoration:none;transition:opacity var(--transition)}.breadcrumbs__link:hover{opacity:.6}.breadcrumbs__link:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.breadcrumbs__home{color:var(--ink)}.breadcrumbs__back{font-family:var(--font-mono);font-size:inherit;letter-spacing:.15em;line-height:1}.breadcrumbs__item--current{color:var(--ink);padding:2px 0}.section{padding:64px 0}@media (min-width: 900px){.section{padding:96px 0}}.grid{display:grid;gap:24px}.grid-2,.grid-3{grid-template-columns:1fr}@media (min-width: 700px){.grid-2{grid-template-columns:1fr 1fr}}@media (min-width: 900px){.grid-3{grid-template-columns:repeat(3,1fr)}}.site{display:flex;flex-direction:column;min-height:100vh;overflow-x:clip}.site-main{flex:1;padding-top:64px}.site-header{position:sticky;top:0;z-index:50;background:#ffffffbf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(10,10,10,.08)}[data-theme=dark] .site-header{background:#0e0e0eb8;border-bottom-color:#ededed14}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.site-header{background:#ffffffeb}[data-theme=dark] .site-header{background:#0e0e0ef0}}.site-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:18px var(--gutter)}@media (min-width: 900px){.site-header__inner{padding:22px var(--gutter-lg)}}.site-header__logo{display:inline-flex;align-items:center;color:var(--ink);justify-self:start;grid-column:1}.site-header__actions{display:inline-flex;align-items:center;gap:28px;justify-self:end;grid-column:3}.site-header__nav{display:inline-flex;align-items:center;gap:28px}.site-header__link{font-family:var(--font-sans);font-size:.9rem;color:var(--ink);transition:opacity var(--transition)}.site-header__link:hover{opacity:.6}.site-header__link.active{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.site-header__toggle{display:none;align-items:center;justify-content:center;width:32px;height:32px;color:var(--ink);border-radius:8px}.site-header__toggle svg{transition:transform .28s cubic-bezier(.4,0,.2,1)}.site-header__toggle.is-open svg{transform:rotate(45deg)}.site-header__toggle:hover{background:#0a0a0a0a}[data-theme=dark] .site-header__toggle:hover{background:#ededed0f}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--ink);border-radius:8px;transition:background-color var(--transition),color var(--transition),transform .22s cubic-bezier(.4,0,.2,1)}.theme-toggle:hover{background:#0a0a0a0a}[data-theme=dark] .theme-toggle:hover{background:#ededed0f}.theme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.theme-toggle:active{transform:scale(.94)}.theme-toggle svg{transition:transform .32s cubic-bezier(.32,.72,0,1)}.theme-toggle[data-mode=dark] svg{transform:rotate(-12deg)}.theme-toggle[data-mode=system] svg{transform:rotate(0)}@media (prefers-reduced-motion: reduce){.theme-toggle,.theme-toggle svg{transition:none}}[data-theme=dark] .site-drawer{background:#0e0e0eeb;border-bottom-color:#ededed14}.site-drawer{display:none;position:fixed;top:0;left:0;right:0;z-index:49;background:#ffffffeb;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);border-bottom:1px solid rgba(10,10,10,.08);transform:translateY(-100%);transition:transform .38s cubic-bezier(.32,.72,0,1);align-items:center;justify-content:center;padding:108px 32px 48px}.site-drawer.is-open{transform:translateY(0)}.site-drawer__nav{display:flex;flex-direction:column;align-items:center;gap:40px}.site-drawer__link{font-family:var(--font-sans);font-size:1.5rem;color:var(--ink);transition:opacity var(--transition)}.site-drawer__link:hover,.site-drawer__link:focus-visible{opacity:.6}.site-drawer__link.active{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}@media (max-width: 1024px){.site-header__nav{display:none}.site-header__toggle{display:inline-flex}.site-drawer{display:flex}}@media (max-width: 767px){.light-pull-portal{display:none}}@media (prefers-reduced-motion: reduce){.site-header__toggle svg,.site-drawer{transition:none}}.brand-hero{text-align:center;padding:72px 0 48px}.brand-hero__title{font-size:clamp(3rem,9vw,6.5rem);font-weight:700;letter-spacing:-.04em;line-height:.95}.brand-hero__sub{margin-top:14px;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-soft)}.landing{padding:72px 0 48px}.landing__text{text-align:left}.landing__lead{font-weight:500;margin:0;color:var(--ink)}.landing__title{text-align:left;margin-top:8px;min-height:3lh}.landing__sub{margin-top:18px}.light-string-hint{position:absolute;transform:translateY(-50%);display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em;color:var(--ink-soft);opacity:.75;pointer-events:none;user-select:none}.light-string-hint__arrow{flex:none}.light-string-hint__text{line-height:1.3;white-space:nowrap}@media (max-width: 600px){.light-string-hint{display:none}}.rotating-word{display:inline-block;opacity:0;transform:translateY(-12px);text-wrap:balance;padding:.05em .06em .2em;background:linear-gradient(135deg,#f5d472,#d4a53a 45%,#a87820);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--ink);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1),-webkit-text-fill-color .6s ease-out,color .6s ease-out,filter .6s ease-out;will-change:opacity,transform}.rotating-word.is-visible{opacity:1;transform:translateY(0)}.rotating-word.is-lit{-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 0 28px rgba(220,170,40,.45))}@media (prefers-reduced-motion: reduce){.rotating-word{transition:none;opacity:1;transform:none}}.live-time{display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft);white-space:nowrap;user-select:none;grid-column:2;justify-self:center}@media (max-width: 767px){.live-time{display:none}}.hero-marquee{position:relative;width:100%;overflow:hidden}.hero-marquee:before,.hero-marquee:after{content:"";position:absolute;top:0;bottom:0;width:clamp(220px,22vw,600px);z-index:2;pointer-events:none;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.hero-marquee:before{left:0;background:radial-gradient(ellipse 100% 130% at 100% 50%,#fff0,#ffffff80 45%,#fff);-webkit-mask-image:radial-gradient(ellipse 100% 130% at 100% 50%,transparent 0%,transparent 15%,#000 100%);mask-image:radial-gradient(ellipse 100% 130% at 100% 50%,transparent 0%,transparent 15%,#000 100%)}.hero-marquee:after{right:0;background:radial-gradient(ellipse 100% 130% at 0% 50%,#fff0,#ffffff80 45%,#fff);-webkit-mask-image:radial-gradient(ellipse 100% 130% at 0% 50%,transparent 0%,transparent 15%,#000 100%);mask-image:radial-gradient(ellipse 100% 130% at 0% 50%,transparent 0%,transparent 15%,#000 100%)}[data-theme=dark] .hero-marquee:before{background:radial-gradient(ellipse 100% 130% at 100% 50%,#0e0e0e00,#0e0e0e80 45%,#0e0e0e)}[data-theme=dark] .hero-marquee:after{background:radial-gradient(ellipse 100% 130% at 0% 50%,#0e0e0e00,#0e0e0e80 45%,#0e0e0e)}@media (max-width: 767px){.hero-marquee:before,.hero-marquee:after{display:none}}.hero-marquee__track{display:flex;gap:24px;width:max-content;animation:hero-marquee-scroll 120s linear infinite;will-change:transform}.hero-marquee__slide{flex:0 0 360px;aspect-ratio:5 / 7;border-radius:48px;display:flex;flex-direction:column;justify-content:space-between;padding:40px 30px;overflow:hidden;color:var(--frozen-ink);background:var(--accent-purple)}.hero-marquee__slide[data-color=purple]{background:var(--accent-purple)}.hero-marquee__slide[data-color=green]{background:var(--accent-green)}.hero-marquee__slide[data-color=pink]{background:var(--accent-pink)}.hero-marquee__slide[data-color=yellow]{background:var(--accent-yellow)}.hero-marquee__slide--a{border-radius:48px 0}.hero-marquee__slide--b{border-radius:0 48px}@keyframes hero-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (max-width: 768px){.hero-marquee__track{gap:16px}.hero-marquee__slide{flex:0 0 260px;border-radius:24px;padding:30px 22px}.hero-marquee__slide--a{border-radius:24px 0}.hero-marquee__slide--b{border-radius:0 24px}.hero-marquee:before,.hero-marquee:after{width:240px}}@media (prefers-reduced-motion: reduce){.hero-marquee__track{animation:none}}.section-head{display:grid;grid-template-columns:1fr;gap:24px;align-items:end;margin-bottom:40px}.section-head h2{max-width:18ch}.section-head__aside{display:flex;flex-direction:column;gap:8px;align-items:flex-start}@media (min-width: 900px){.section-head{grid-template-columns:2fr 1fr}.section-head__aside{align-items:flex-end;text-align:right}}.divider{height:1px;background:var(--line);margin:16px 0 0}.tile{border-radius:var(--radius-lg);background:var(--placeholder);background-image:linear-gradient(45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(-45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--placeholder-2) 75%),linear-gradient(-45deg,transparent 75%,var(--placeholder-2) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.tile--dark{background:var(--ink);background-image:none;color:var(--invert-fg)}.tile-pair{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media (min-width: 800px){.tile-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.tile--quote{padding:36px;display:flex;align-items:center}.tile-pair>.tile--slideshow,.tile-pair>.tile--quote{aspect-ratio:1 / 1}.tile-pair--lead>.tile--quote{aspect-ratio:5 / 4}.tile--quote p{font-size:1.05rem;line-height:1.45;max-width:30ch}.tile-aspect{aspect-ratio:5 / 4}.tile-pair--lead .tile-aspect{overflow:hidden}.tile-pair--lead .tile-aspect>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.tile--slideshow{background:transparent;background-image:none;padding:0;overflow:hidden;position:relative}.slideshow{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;overflow:hidden;user-select:none}.slideshow__stack{position:absolute;inset:0}.slideshow__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s cubic-bezier(.4,0,.2,1);-webkit-user-drag:none}.slideshow__image.is-active{opacity:1}.slideshow__arrow{position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:999px;background:#ffffffd9;color:#111;backdrop-filter:blur(8px) saturate(160%);-webkit-backdrop-filter:blur(8px) saturate(160%);cursor:pointer;opacity:0;transition:opacity .28s cubic-bezier(.32,.72,0,1),transform .22s cubic-bezier(.32,.72,0,1),background-color .2s ease;z-index:2;pointer-events:none}.slideshow__arrow--left{left:16px}.slideshow__arrow--right{right:16px}.slideshow:hover .slideshow__arrow,.slideshow:focus-within .slideshow__arrow{opacity:1;pointer-events:auto}.slideshow__arrow:hover{background:#fffffff5;transform:translateY(-50%) scale(1.06)}.slideshow__arrow:active{transform:translateY(-50%) scale(.96)}.slideshow__arrow:focus-visible{outline:2px solid rgba(17,17,17,.6);outline-offset:2px;opacity:1;pointer-events:auto}.slideshow__dots{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#ffffff40;backdrop-filter:blur(8px) saturate(160%);-webkit-backdrop-filter:blur(8px) saturate(160%);z-index:2;opacity:0;transition:opacity .28s cubic-bezier(.32,.72,0,1);pointer-events:none}.slideshow:hover .slideshow__dots,.slideshow:focus-within .slideshow__dots{opacity:1;pointer-events:auto}.slideshow__dot{width:8px;height:8px;border:0;border-radius:999px;padding:0;background:#ffffff8c;cursor:pointer;transition:background-color .22s cubic-bezier(.32,.72,0,1),transform .22s cubic-bezier(.32,.72,0,1),width .22s cubic-bezier(.32,.72,0,1)}.slideshow__dot:hover{background:#ffffffd9}.slideshow__dot.is-active{background:#fff;width:22px}.slideshow__dot:focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:2px}@media (max-width: 1024px){.slideshow__arrow,.slideshow__dots{opacity:1;pointer-events:auto}}@media (prefers-reduced-motion: reduce){.slideshow__image,.slideshow__arrow,.slideshow__dots,.slideshow__dot{transition:none}}.project-grid{display:grid;gap:24px;grid-template-columns:1fr}@media (min-width: 700px){.project-grid{grid-template-columns:1fr 1fr}}.project-card{display:block;color:inherit}.project-card__media{position:relative;overflow:hidden;border-radius:var(--radius-lg);aspect-ratio:5 / 4;background:var(--placeholder);background-image:linear-gradient(45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(-45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--placeholder-2) 75%),linear-gradient(-45deg,transparent 75%,var(--placeholder-2) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;transition:transform var(--transition)}.project-card__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:inherit;transition:transform var(--transition)}.project-card:hover .project-card__media{transform:translateY(-4px)}.project-card:hover .project-card__media img{transform:scale(1.03)}.project-card__meta{display:flex;justify-content:space-between;margin-top:16px;font-family:var(--font-mono);font-size:.82rem}.services{display:grid;gap:18px;grid-template-columns:1fr}@media (min-width: 700px){.services{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.services{grid-template-columns:repeat(4,1fr)}}.service-card{position:relative;perspective:1200px;cursor:pointer;border-radius:var(--radius-xl);min-height:460px;background:transparent;border:0;padding:0;display:flex;flex-direction:column}@media (max-width: 699px){.service-card{min-height:380px}}.service-card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.service-card__inner{width:100%;flex:1;display:grid;grid-template-areas:"stack";grid-template-rows:1fr;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.32,.72,0,1)}.service-card.is-flipped .service-card__inner{transform:rotateY(180deg)}.service-card__face{grid-area:stack;border-radius:var(--radius-xl);padding:28px 24px;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;overflow:hidden;color:var(--frozen-ink)}.service-card__face--front{justify-content:space-between}.service-card__face--back{transform:rotateY(180deg);justify-content:space-between}.service-card[data-color=purple] .service-card__face{background:var(--accent-purple)}.service-card[data-color=green] .service-card__face{background:var(--accent-green)}.service-card[data-color=pink] .service-card__face{background:var(--accent-pink)}.service-card[data-color=yellow] .service-card__face{background:var(--accent-yellow)}.service-card__sublinks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.service-card__subskill{display:flex;flex-direction:column;font-size:.82rem;line-height:1.4;color:var(--ink)}.service-card__subskill-name{font-weight:600}.service-card__subskill-sep{color:var(--ink-soft);opacity:.55}.service-card__subskill .inline-link{font-size:.82rem;font-weight:400;padding-bottom:1px}.service-card__header{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}.service-card__hint{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.75rem;font-weight:400;color:var(--ink);opacity:.55}.service-card__hint-icon{display:inline-block;font-size:1.1em;line-height:1}@media (max-width: 1100px){.service-card__hint-label{display:none}}.testimonial-card__body{display:flex;flex-direction:column;gap:12px}.testimonial-card__title{margin:0;font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:600;line-height:1.15;letter-spacing:-.02em}.testimonial-card__person{display:flex;align-items:center;gap:12px}.testimonial-card__name{font-weight:600;font-size:.92rem}.testimonial-card__avatar{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:36px;border-radius:50%;background:var(--ink-soft);color:var(--invert-fg);font-family:var(--font-mono);font-size:.7rem;font-weight:500;letter-spacing:.04em}.testimonial-card__meta{margin:0;font-size:.78rem;line-height:1.5;color:var(--ink-soft)}.testimonial-card__quote{margin:0;font-size:clamp(1rem,2.5vw,1.4rem);font-weight:500;line-height:1.4;color:var(--ink);letter-spacing:-.005em}@media (min-width: 700px){.testimonial-card__quote{font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.3}}@media (prefers-reduced-motion: reduce){.service-card__inner{transition:none}}.service-card__num{font-family:var(--font-mono);font-size:.75rem;color:var(--ink);opacity:.7}.service-card__icon{align-self:center;display:flex;align-items:center;justify-content:center;width:64px;height:64px;color:var(--ink)}.service-card__icon svg{display:block}.service-card__body{display:flex;flex-direction:column;gap:8px}.service-card__body h4{margin:0;font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:600;line-height:1.15;letter-spacing:-.02em}.service-card__body p{font-size:.82rem;line-height:1.4;color:var(--ink-soft);opacity:.85}.stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--line);padding-top:36px}@media (min-width: 900px){.stats{grid-template-columns:repeat(4,1fr)}}.stat__value{font-size:2rem;font-weight:600;letter-spacing:-.02em}.stat__label{margin-top:8px;font-size:.82rem;color:var(--muted);max-width:24ch}.faq{display:grid;grid-template-columns:1fr;gap:32px}@media (min-width: 900px){.faq{grid-template-columns:1fr 1.5fr;gap:64px}}.faq__intro h2{margin-bottom:12px}.faq__intro p{color:var(--muted);max-width:36ch;font-size:.92rem}.faq__list{display:flex;flex-direction:column;list-style:none;padding:0;margin:0}.faq__item{border-bottom:1px solid var(--line)}.faq__trigger{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-size:.95rem;gap:16px}.faq__trigger[aria-expanded=true]{font-weight:600}.faq__chevron{flex:none;width:16px;height:16px;transition:transform .38s cubic-bezier(.32,.72,0,1)}.faq__trigger[aria-expanded=true] .faq__chevron{transform:rotate(180deg)}.faq__panel-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s cubic-bezier(.32,.72,0,1)}.faq__panel-wrapper.is-open{grid-template-rows:1fr}.faq__panel{overflow:hidden;min-height:0;padding:0 0 18px;color:var(--ink-soft);font-size:.92rem;line-height:1.55;max-width:60ch;opacity:0;transition:opacity .32s cubic-bezier(.32,.72,0,1)}.faq__panel-wrapper.is-open .faq__panel{opacity:1}@media (prefers-reduced-motion: reduce){.faq__chevron,.faq__panel-wrapper,.faq__panel{transition:none}}.contact-row{display:grid;grid-template-columns:1fr;gap:48px;align-items:start}@media (min-width: 900px){.contact-row{grid-template-columns:1fr 1fr;gap:80px}}.contact-links{display:flex;flex-flow:row wrap;align-items:center;gap:14px 24px}@media (min-width: 900px){.contact-row--with-links .contact-form{grid-column:1;grid-row:1}.contact-row--with-links .contact-links{grid-column:2;grid-row:1;flex-direction:column;align-items:flex-start;gap:20px}}.contact-form{display:flex;flex-direction:column;gap:18px}.contact-form h3{font-size:1.5rem;font-weight:600}.contact-form__sub{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);margin-top:-6px}.field{display:flex;flex-direction:column}.field input,.field textarea{border:0;border-bottom:1px solid var(--line);background:transparent;padding:10px 0;font-size:.95rem;outline:none;transition:border-color var(--transition)}.field textarea{min-height:96px;resize:vertical}.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.field input:focus,.field textarea:focus{border-bottom-color:var(--ink)}.field--invert input,.field--invert textarea{border-bottom-color:#ffffff40;color:var(--invert-fg)}.field--invert input::placeholder,.field--invert textarea::placeholder{color:#ffffff80}.field--invert input:focus,.field--invert textarea:focus{border-bottom-color:var(--invert-fg)}.contact-form{--field-error: #c44949;--field-error-invert: #ff8a8a}.field--invalid input,.field--invalid textarea{border-bottom-color:var(--field-error)}.field--invert.field--invalid input,.field--invert.field--invalid textarea{border-bottom-color:var(--field-error-invert)}.field__foot{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:6px;font-size:.74rem;font-family:var(--font-mono);line-height:1.4}.field__error{margin-top:6px;font-size:.74rem;font-family:var(--font-mono);line-height:1.4;color:var(--field-error)}.field--invert .field__error{color:var(--field-error-invert)}.field__hint{color:var(--muted)}.field--invert .field__hint{color:#ffffff8c}.field__counter{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.field--invert .field__counter{color:#ffffff8c}.field__counter--low{color:#b78b1f}.field--invert .field__counter--low{color:#ffd779}.field__counter--over{color:var(--field-error);font-weight:600}.field--invert .field__counter--over{color:var(--field-error-invert);font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;border-radius:999px;font-size:.9rem;font-weight:500;transition:background-color var(--transition),color var(--transition)}.btn--dark{background:var(--ink);color:var(--invert-fg)}.btn--dark:hover{background:#222}[data-theme=dark] .btn--dark:hover{background:#cfcfcf}.btn--light{background:var(--bg);color:var(--ink)}.btn--light:hover{background:var(--placeholder)}[data-theme=dark] .site-footer .btn--light{background:var(--frozen-invert-fg);color:var(--frozen-ink)}[data-theme=dark] .site-footer .btn--light:hover{background:#d8d8d8}.toast{position:fixed;top:84px;left:50%;transform:translate(-50%);z-index:10000;display:inline-flex;align-items:center;gap:12px;padding:12px 12px 12px 16px;border-radius:14px;background:var(--bg);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 32px #0000001f,0 4px 8px #0000000f;font-family:var(--font-sans);font-size:.9rem;line-height:1.4;max-width:calc(100vw - 32px);width:max-content;animation:toast-in .32s cubic-bezier(.32,.72,0,1)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%)}}.toast__icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:999px;background:#0000000f}[data-theme=dark] .toast__icon{background:#ffffff14}.toast--success .toast__icon{color:#2a9d3f}.toast--error .toast__icon{color:#c44949}[data-theme=dark] .toast--error .toast__icon{color:#ff8a8a}.toast__message{flex:1;min-width:0;padding-right:4px;max-width:56ch}.toast__close{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:background-color .18s ease,color .18s ease}.toast__close:hover,.toast__close:focus-visible{background:#0000000f;color:var(--ink);outline:none}[data-theme=dark] .toast__close:hover,[data-theme=dark] .toast__close:focus-visible{background:#ffffff14}@media (max-width: 600px){.toast{top:80px;left:16px;right:16px;transform:none;width:auto;max-width:none}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.btn--block{width:100%}.btn--ghost{border:1px solid currentColor}.inline-link{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;border-bottom:1px solid currentColor;padding-bottom:2px}.site-footer{background:var(--frozen-ink);color:var(--frozen-invert-fg);padding:56px 0 28px;margin-top:80px}.site-footer__top{display:grid;grid-template-columns:1fr;gap:48px}@media (min-width: 900px){.site-footer__top{grid-template-columns:1fr 1fr;gap:80px}}.site-footer__brand{display:flex;flex-direction:column;gap:28px}.site-footer__brand-text{font-size:.92rem;max-width:28ch;color:#ffffffd9}.site-footer__email{font-size:1rem;display:inline-block;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:4px;width:max-content}.site-footer__bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:16px;font-family:var(--font-mono);font-size:.78rem}.footer-nav{display:flex;gap:22px}.footer-nav a{font-family:var(--font-sans);font-size:.85rem}.footer-nav a.active{text-decoration:underline}.page-head{display:grid;grid-template-columns:1fr;gap:16px;align-items:end;padding:32px 0 24px}@media (min-width: 900px){.page-head{grid-template-columns:2fr 1fr;gap:48px}}.page-head h1{font-size:clamp(2.25rem,4vw,3.5rem);max-width:18ch}.page-head__aside{display:flex;flex-direction:column;gap:24px}.page-head__aside p{color:var(--muted);font-size:.88rem;max-width:32ch}.project-meta{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-top:24px;font-size:.85rem}.project-meta dt{color:var(--muted);font-family:var(--font-mono)}.project-meta dd{margin:0}.project-stack{display:flex;flex-direction:column;gap:16px;margin-top:32px}.project-stack .tile{aspect-ratio:4 / 3}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#def7e0;color:#176c2a;font-size:.72rem;font-family:var(--font-mono)}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#2a9d3f}.bio{display:grid;grid-template-columns:1fr;gap:32px}@media (min-width: 900px){.bio{grid-template-columns:1fr 1fr;gap:64px}}.bio p{font-size:.92rem;line-height:1.55;color:var(--ink-soft)}.testimonial{display:flex;flex-direction:column;gap:18px}.testimonial__quote{font-size:.92rem;line-height:1.55;color:var(--ink-soft)}.testimonial__person{display:flex;gap:12px;align-items:center}.testimonial__avatar{width:32px;height:32px;border-radius:50%;background:var(--placeholder-2)}.testimonial__person h4{margin:0;font-size:.88rem;font-weight:600}.testimonial__person p{font-size:.78rem;color:var(--muted)}.codex{display:flex;flex-direction:column;gap:8px}.codex__title{margin:0 0 4px;font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.2;font-weight:600;letter-spacing:-.005em}.gear{display:grid;grid-template-columns:1fr;gap:24px;align-items:start;padding:64px 0;border-top:1px solid var(--line)}@media (min-width: 900px){.gear{grid-template-columns:1fr 2fr;gap:64px}}.gear__list{display:flex;flex-direction:column}.gear__row{display:grid;grid-template-columns:1fr;gap:6px;padding:20px 0;border-top:1px solid var(--line);font-size:.92rem}.gear__row:last-child{border-bottom:1px solid var(--line)}.gear--labs .gear__row:first-child{border-top:0}@media (min-width: 600px){.gear__row{grid-template-columns:1fr 2fr;gap:32px}}.gear__row dd{margin:0;color:var(--muted)}@media (min-width: 600px){.gear__row dd{text-align:right}}.more-projects{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}@media (min-width: 1024px){.more-projects{grid-template-columns:repeat(4,1fr)}}.more-card{border-radius:var(--radius-xl);padding:24px 22px;min-height:320px;display:flex;flex-direction:column;justify-content:space-between;color:var(--frozen-ink)}.more-card[data-color=purple]{background:var(--accent-purple)}.more-card[data-color=green]{background:var(--accent-green)}.more-card[data-color=pink]{background:var(--accent-pink)}.more-card[data-color=yellow]{background:var(--accent-yellow)}.more-card__num{font-family:var(--font-mono);font-size:.75rem;color:var(--ink);opacity:.7}.more-card__icon{align-self:center;width:24px;height:24px;background-image:radial-gradient(var(--ink) 30%,transparent 32%);background-size:7px 7px}.more-card__title{font-size:.95rem;font-weight:600;margin:0}.more-card__desc{font-size:.78rem;color:var(--ink-soft);margin-top:6px}.more-card__meta{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.72rem;margin-top:12px}.project-carousel{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 4px 12px;margin:0 -4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--muted-2) transparent}.project-carousel::-webkit-scrollbar{height:8px}.project-carousel::-webkit-scrollbar-thumb{background:var(--muted-2);border-radius:999px}.project-carousel::-webkit-scrollbar-track{background:transparent}.project-carousel__item{flex:0 0 auto;width:232px;scroll-snap-align:start}@media (min-width: 700px){.project-carousel__item{width:264px}}.closing-cta{text-align:center;padding-bottom:clamp(32px,5vw,60px)}.closing-cta h2{margin-bottom:14px}.closing-cta p{color:var(--muted);margin:0 auto 24px;max-width:38ch;font-size:.92rem}.closing-cta__frame{background:var(--bg);border-radius:var(--radius-lg);padding:clamp(48px,7vw,88px) clamp(32px,5vw,64px);box-shadow:0 4px 12px #0000000f,0 20px 48px #00000026}[data-theme=dark] .closing-cta__frame{background:var(--placeholder);box-shadow:0 4px 12px #0006,0 20px 48px #0009}.route-fallback{min-height:60vh}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.project-shell{display:grid;grid-template-columns:1fr;gap:40px;padding:32px 0 64px}@media (min-width: 900px){.project-shell{grid-template-columns:200px minmax(0,1fr);gap:64px}}.project-sidebar{position:sticky;top:88px;align-self:start;z-index:1}@media (max-width: 899px){.project-sidebar{top:64px;padding:8px 0;background:var(--bg);border-bottom:1px solid var(--line)}}@media (max-width: 699px){.project-sidebar{display:none}}.project-sidebar__heading{display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}@media (max-width: 899px){.project-sidebar__heading{display:none}}.project-sidebar__nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}@media (max-width: 899px){.project-sidebar__nav ul{flex-direction:row;gap:18px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.project-sidebar__nav ul::-webkit-scrollbar{display:none}.project-sidebar__nav ul .project-sidebar__link{margin-left:0}}.project-sidebar__link{display:block;padding:6px 10px;margin-left:-10px;font-family:var(--font-sans);font-size:.88rem;color:var(--muted);border-radius:6px;transition:color .18s ease,background-color .18s ease,transform .18s ease;white-space:nowrap}.project-sidebar__link:hover{color:var(--ink);background:var(--placeholder)}.project-sidebar__link.is-active{color:var(--ink);font-weight:600;background:var(--placeholder)}.project-main{display:flex;flex-direction:column;gap:88px;max-width:880px}.project-section{scroll-margin-top:96px}.project-section__title{margin:0 0 16px;font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:600;letter-spacing:-.015em}.project-section__subtitle{margin:0 0 12px;font-size:1rem;font-weight:600;letter-spacing:-.005em}.project-section__body{margin:0 0 16px;max-width:60ch;font-size:.95rem;line-height:1.6;color:var(--ink-soft)}.project-section__lead{margin-top:28px;max-width:60ch;font-size:1.05rem;line-height:1.55;color:var(--ink-soft)}.project-hero{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:28px}.project-hero__text{display:flex;flex-direction:column;gap:10px}.project-hero__title{margin:4px 0 0;font-size:clamp(1.85rem,4vw,2.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.05}.project-hero__tagline{margin:0;max-width:56ch;font-size:1rem;color:var(--ink-soft);line-height:1.5}.project-hero__visual{margin-top:16px}.project-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 32px;margin:24px 0 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}@media (min-width: 720px){.project-meta-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.project-meta-grid__cell dt{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.project-meta-grid__cell dd{margin:0;font-size:.88rem;color:var(--ink)}.device-frame{--device-radius: 14px;--device-border: 1px solid var(--line);margin:0;display:flex;flex-direction:column;gap:10px}.device-frame__body{border:var(--device-border);border-radius:var(--device-radius);overflow:hidden;background:var(--bg);transition:box-shadow .22s ease}.device-frame--desktop .device-frame__body{box-shadow:0 8px 28px #0000000f}[data-theme=dark] .device-frame--desktop .device-frame__body{box-shadow:0 12px 32px #0006}.device-frame__chrome{display:flex;align-items:center;gap:6px;height:26px;padding:0 12px;border-bottom:var(--device-border);background:var(--placeholder-2)}[data-theme=dark] .device-frame__chrome{background:var(--placeholder)}.device-frame__dot{width:8px;height:8px;border-radius:50%;background:var(--muted-2)}.device-frame__screen{position:relative;display:block;aspect-ratio:16 / 10;background:var(--placeholder);overflow:hidden}.device-frame__screen>img,.device-frame__screen>picture>img{width:100%;height:100%;object-fit:cover;display:block}.device-frame--mobile{max-width:260px;width:100%}.device-frame--mobile .device-frame__body{--device-radius: 28px;box-shadow:0 8px 28px #00000014}[data-theme=dark] .device-frame--mobile .device-frame__body{box-shadow:0 12px 32px #00000080}.device-frame--mobile .device-frame__screen{aspect-ratio:9 / 19}.device-frame__label{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);letter-spacing:.04em}.project-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--placeholder);background-image:linear-gradient(45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(-45deg,var(--placeholder-2) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--placeholder-2) 75%),linear-gradient(-45deg,transparent 75%,var(--placeholder-2) 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.project-placeholder__label{display:inline-block;padding:6px 10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}.project-grid-row{display:grid;gap:16px}.project-grid-row--two{grid-template-columns:1fr}@media (min-width: 720px){.project-grid-row--two{grid-template-columns:1fr 1fr}}.project-grid-row--three{grid-template-columns:1fr}@media (min-width: 720px){.project-grid-row--three{grid-template-columns:repeat(3,1fr)}}.project-grid-row--mobile-trio{grid-template-columns:1fr;justify-items:center}@media (min-width: 720px){.project-grid-row--mobile-trio{grid-template-columns:repeat(3,1fr);justify-items:center}}.project-stat-row{display:grid;grid-template-columns:1fr;gap:16px;margin-top:24px}@media (min-width: 720px){.project-stat-row{grid-template-columns:repeat(3,1fr)}}.project-stat{padding:24px;border:1px solid var(--line);border-radius:14px}.project-stat__value{font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}.project-stat__label{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);line-height:1.4}.lightbox{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:#0a0a0ae0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:24px;animation:lightbox-in .2s ease-out}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.lightbox__image{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 32px 64px #0006}.lightbox__close{position:absolute;top:20px;right:20px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:#fffffff2;color:#111;border:0;cursor:pointer;transition:background-color .18s ease,transform .18s ease}.lightbox__close:hover{background:#fff;transform:scale(1.05)}.lightbox__close:focus-visible{outline:2px solid #fff;outline-offset:2px}.annotated-image{width:100%;height:100%;position:relative}.annotated-image__media{position:relative;width:100%;height:100%}.annotated-image__media>img,.annotated-image__media>.project-placeholder{width:100%;height:100%;object-fit:cover}.annotated-image__hotspot{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:999px;background:var(--ink);color:var(--invert-fg);border:2px solid var(--bg);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.7rem;font-weight:700;cursor:pointer;z-index:2;box-shadow:0 4px 12px #00000026;transition:transform .18s ease,box-shadow .18s ease}.annotated-image__hotspot:hover,.annotated-image__hotspot.is-open{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 8px 18px #00000038}.annotated-image__hotspot:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.annotated-image__hotspot-num{pointer-events:none}.annotated-image__hotspot-popover{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);min-width:180px;max-width:240px;padding:10px 12px;border-radius:8px;background:var(--bg);color:var(--ink);border:1px solid var(--line);box-shadow:0 12px 24px #0000001f;font-size:.82rem;line-height:1.4;text-align:left;font-family:var(--font-sans);font-weight:400;z-index:3}.annotated-image__hotspot-body{display:block;margin-top:4px;color:var(--ink-soft);font-size:.78rem}.screen-switcher{display:flex;flex-direction:column}.screen-switcher__tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--line);background:var(--placeholder-2);overflow-x:auto;scrollbar-width:none}.screen-switcher__tabs::-webkit-scrollbar{display:none}[data-theme=dark] .screen-switcher__tabs{background:var(--placeholder)}.screen-switcher__tab{flex:none;padding:6px 12px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-family:var(--font-sans);font-size:.82rem;cursor:pointer;white-space:nowrap;transition:background-color .18s ease,color .18s ease}.screen-switcher__tab:hover{color:var(--ink);background:var(--bg)}.screen-switcher__tab.is-active{color:var(--ink);background:var(--bg);font-weight:600;box-shadow:0 1px 2px #0000000f}.screen-switcher__stage{position:relative;aspect-ratio:16 / 10;background:var(--placeholder);overflow:hidden}.screen-switcher__panel{position:absolute;inset:0}.screen-switcher__panel>img,.screen-switcher__panel>.project-placeholder{width:100%;height:100%;object-fit:cover}.scroll-viewport{width:100%;overflow:hidden;position:relative;background:var(--placeholder)}.scroll-viewport__inner{width:100%;position:relative;will-change:transform}.scroll-viewport__inner>img,.scroll-viewport__inner>.project-placeholder{width:100%;height:100%;object-fit:cover;display:block}.scroll-viewport__inner--static{height:100%;overflow-y:auto}
