:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#07080a;--ink-soft:#0c0e11;--paper:#f3f0e8;--paper-dim:#f3f0e8a3;--paper-faint:#f3f0e861;--line:#f3f0e81f;--line-strong:#f3f0e83d;--mint:#a8f0d0;--sand:#e7d6b8;--glass:#ffffff0e;--glass-strong:#ffffff18;--font-display:"Iowan Old Style", "Palatino Linotype", "Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", serif;--font-sans:"SF Pro Text", "PingFang SC", "Hiragino Sans GB", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--page-x:clamp(20px, 5vw, 56px);--max-width:1240px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--ink);color:var(--paper);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:15px;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background:radial-gradient(58% 48% at 78% 10%,#a8f0d01c,#0000 62%),radial-gradient(52% 46% at 10% 26%,#5b7cfa17,#0000 66%),radial-gradient(70% 58% at 48% 108%,#e7d6b812,#0000 60%);position:fixed;inset:0}body:after{content:"";z-index:60;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}main,footer{z-index:1;position:relative}::selection{background:var(--mint);color:var(--ink)}@view-transition{navigation:auto}::view-transition-old(root){animation:.28s cubic-bezier(.4,0,1,1) both vt-out}::view-transition-new(root){animation:.4s cubic-bezier(.2,.7,.2,1) both vt-in}::view-transition-group(*){animation-duration:.72s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:2px}a{color:inherit}img,svg,canvas{max-width:100%;display:block}.container{width:100%;max-width:var(--max-width);padding-inline:var(--page-x);margin-inline:auto}.glass{-webkit-backdrop-filter:blur(24px)saturate(140%);backdrop-filter:blur(24px)saturate(140%);background:linear-gradient(142deg,#ffffff1a,#ffffff08);border:1px solid #ffffff21;box-shadow:0 26px 80px #00000073,inset 0 1px #ffffff29}.scroll-progress{display:none}@supports (animation-timeline:scroll()){.scroll-progress{z-index:50;transform-origin:0;background:linear-gradient(90deg, var(--mint), var(--sand));width:100%;height:1px;animation:linear both progress;animation-timeline:scroll(root);display:block;position:fixed;top:0;left:0;transform:scaleX(0)}}@keyframes progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.site-header{z-index:40;view-transition-name:site-header;background:linear-gradient(#07080ae0,#07080a00);padding:18px 0;position:fixed;inset:0 0 auto}.site-header-inner{justify-content:space-between;align-items:center;gap:24px;display:flex}.brand{color:var(--paper);font:500 12px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:var(--mint);border-radius:50%;width:8px;height:8px;box-shadow:0 0 16px #a8f0d0bf}.nav{align-items:center;gap:clamp(16px,2.4vw,30px);display:flex}.nav a{color:var(--paper-dim);font:500 10px/1 var(--font-mono);letter-spacing:.16em;text-transform:uppercase;padding:8px 0;text-decoration:none;transition:color .25s;position:relative}.nav a:not(.nav-cta):after{content:"";background:var(--mint);transform-origin:0;height:1px;transition:transform .3s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:2px;left:0;right:0;transform:scaleX(0)}.nav a:hover{color:var(--paper)}.nav a:not(.nav-cta):hover:after{transform:scaleX(1)}.nav a.nav-cta{color:var(--paper);border:1px solid var(--line-strong);border-radius:999px;padding:10px 16px;transition:border-color .25s,background .25s}.nav a.nav-cta:hover{border-color:var(--mint);background:#ffffff0f}.hero{align-items:center;min-height:100svh;padding:132px 0 104px;display:flex;position:relative;overflow:hidden}.hero-canvas{z-index:0;aspect-ratio:1;pointer-events:none;width:min(60vw,780px);position:absolute;top:50%;right:-5vw;transform:translateY(-50%)}.hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#07080af7 0%,#07080ac7 34%,#07080a2e 56%,#07080a00 68%);position:absolute;inset:0}.orb-fallback{filter:blur(22px);opacity:.7;background:radial-gradient(circle at 38% 32%,#a8f0d080,#5b7cfa1f 48%,#0000 68%);border-radius:50%;width:100%;height:100%}.orb-mount{width:100%;height:100%}.orb-mount canvas{display:block;width:100%!important;height:100%!important}.hero-inner{z-index:2;justify-content:space-between;align-items:flex-start;gap:48px;display:flex;position:relative}.hero-copy{max-width:720px}.eyebrow{color:var(--paper-dim);font:500 10px/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;margin:0 0 26px}.hero-name{font-family:var(--font-display);letter-spacing:-.055em;margin:0;font-size:clamp(4.8rem,13vw,11rem);font-weight:400;line-height:.82}.hero-name-dot{color:var(--mint)}.hero-role{color:var(--paper-dim);font:500 11px/1.4 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin:26px 0 0}.hero-role span{color:var(--paper-faint);margin:0 8px}.hero-tagline{max-width:20ch;font-family:var(--font-display);letter-spacing:-.02em;margin:26px 0 0;font-size:clamp(1.6rem,3.2vw,2.5rem);font-weight:400;line-height:1.28}.hero-intro{max-width:52ch;color:var(--paper-dim);margin:22px 0 0;font-size:15px;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.btn{font:500 13px/1 var(--font-sans);letter-spacing:.01em;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:10px;padding:14px 22px;text-decoration:none;transition:transform .3s cubic-bezier(.2,.7,.2,1),background .25s,border-color .25s,color .25s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--paper);color:var(--ink)}.btn-primary:hover{background:var(--mint)}.btn-ghost{color:var(--paper);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff06}.btn-ghost:hover{border-color:var(--mint);background:#ffffff0f}.hero-card{z-index:3;border-radius:18px;width:258px;padding:20px;position:absolute;bottom:-20px;right:0}.hero-card-label{color:var(--paper-faint);font:500 9px/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;margin:0}.hero-card-value{font-family:var(--font-display);margin:12px 0 0;font-size:1.2rem;line-height:1.3}.hero-card-row{border-top:1px solid var(--line);color:var(--paper-dim);font:400 11px/1 var(--font-mono);justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:14px;display:flex}.status-dot{color:var(--paper-dim);align-items:center;gap:7px;display:inline-flex}.status-dot:before{content:"";background:var(--mint);border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #a8f0d0cc}.hero-scroll{left:var(--page-x);z-index:2;color:var(--paper-faint);font:500 9px/1 var(--font-mono);letter-spacing:.22em;text-transform:uppercase;align-items:center;gap:12px;display:inline-flex;position:absolute;bottom:30px}.hero-scroll-line{background:var(--line-strong);width:54px;height:1px;display:block;overflow:hidden}.hero-scroll-line:after{content:"";background:var(--mint);width:22px;height:1px;display:block;transform:translate(-24px)}.section{padding:clamp(96px,13vw,176px) 0;position:relative}.section-head{grid-template-columns:110px minmax(0,1fr);align-items:start;gap:24px;margin-bottom:clamp(44px,6vw,72px);display:grid}.section-index{color:var(--mint);font:500 10px/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;margin:0;padding-top:8px}.section-title{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(2.3rem,5vw,4.1rem);font-weight:400;line-height:1.04}.section-lead{max-width:52ch;color:var(--paper-dim);margin:18px 0 0;font-size:15px;line-height:1.8}.work-list{border-top:1px solid var(--line)}.project{--tilt-x:0deg;--tilt-y:0deg;--glare-x:50%;--glare-y:50%;border-bottom:1px solid var(--line);color:inherit;-webkit-tap-highlight-color:transparent;transform:perspective(1400px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));border-radius:18px;grid-template-columns:74px minmax(0,1fr) 210px;gap:clamp(18px,3vw,40px);margin-inline:-18px;padding:clamp(30px,4vw,46px) 18px;text-decoration:none;transition:transform .2s ease-out,background-color .3s;display:grid;position:relative}.project:hover{background-color:#ffffff07}.project-glare{z-index:-1;border-radius:inherit;background:radial-gradient(420px circle at var(--glare-x) var(--glare-y), #ffffff12, transparent 58%);opacity:0;pointer-events:none;transition:opacity .35s;position:absolute;inset:0}.project:hover .project-glare{opacity:1}.project-index{color:var(--mint);font:500 12px/1 var(--font-mono);letter-spacing:.1em}.project-kicker{color:var(--paper-faint);font:500 9px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin:0 0 14px}.project-title{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(2rem,3.6vw,3.1rem);font-weight:400;line-height:1.02}.project-subtitle{color:var(--paper-dim);margin:10px 0 0;font-size:14px;line-height:1.6}.project-summary{max-width:56ch;color:var(--paper-dim);margin:18px 0 0;font-size:15px;line-height:1.8}.project-cta{color:var(--paper);border-bottom:1px solid var(--line-strong);font:500 11px/1 var(--font-mono);letter-spacing:.08em;align-items:center;gap:8px;margin-top:22px;padding-bottom:4px;transition:color .25s,border-color .25s;display:inline-flex}.project-cta span{transition:transform .35s cubic-bezier(.2,.7,.2,1);display:inline-block}.project:hover .project-cta{color:var(--mint);border-color:var(--mint)}.project:hover .project-cta span{transform:translate(4px)}.project-stack{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.project-stack li{border:1px solid var(--line);color:var(--paper-faint);font:400 10px/1 var(--font-mono);letter-spacing:.06em;border-radius:999px;padding:6px 10px}.project-side{flex-direction:column;justify-content:space-between;gap:18px;display:flex}.project-glyph{aspect-ratio:1;background:radial-gradient(120% 120% at 24% 18%, var(--g1), transparent 56%), radial-gradient(110% 110% at 82% 86%, var(--g2), transparent 62%), #0b0d10;border:1px solid #ffffff1a;border-radius:18px;width:100%;transition:transform .5s cubic-bezier(.2,.7,.2,1);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff24,0 20px 50px #00000059}.project:hover .project-glyph{transform:scale(1.025)rotate(-1deg)}.project-glyph:after{content:"";background:conic-gradient(from 0deg, transparent 0 38%, #ffffff29 50%, transparent 62% 100%);filter:blur(12px);opacity:.55;position:absolute;inset:-30%}.project-role{color:var(--paper-faint);font:400 10px/1.6 var(--font-mono);letter-spacing:.08em;margin:0}.approach{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:clamp(40px,7vw,110px);display:grid}.approach-sticky{position:sticky;top:120px}.approach-sticky .section-head{margin-bottom:28px;display:block}.approach-sticky .section-index{margin-bottom:18px;padding-top:0}.capability-list{flex-wrap:wrap;gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}.capability-list li{border:1px solid var(--line);color:var(--paper-dim);font:400 11px/1 var(--font-mono);border-radius:999px;padding:8px 12px}.principle-list{border-top:1px solid var(--line)}.principle{border-bottom:1px solid var(--line);grid-template-columns:48px minmax(0,1fr);gap:20px;padding:30px 0;display:grid}.principle-index{color:var(--mint);font:500 10px/1.6 var(--font-mono);letter-spacing:.12em}.principle h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.4rem,2.4vw,1.9rem);font-weight:400;line-height:1.2}.principle p{max-width:46ch;color:var(--paper-dim);margin:12px 0 0;font-size:14px;line-height:1.85}.detail{padding-bottom:clamp(80px,10vw,140px)}.detail-header{padding-top:clamp(132px,17vh,190px)}.detail-back{color:var(--paper-dim);font:500 10px/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:clamp(40px,6vw,72px);text-decoration:none;transition:color .25s;display:inline-flex}.detail-back:hover{color:var(--mint)}.detail-eyebrow{margin-bottom:22px}.detail-title{max-width:100%;font-family:var(--font-display);letter-spacing:-.05em;overflow-wrap:anywhere;text-wrap:balance;margin:0;font-size:clamp(3.2rem,9vw,7.5rem);font-weight:400;line-height:.9}.detail-subtitle{max-width:30ch;color:var(--paper-dim);font-family:var(--font-display);letter-spacing:-.02em;margin:22px 0 0;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.3}.detail-meta{border-top:1px solid var(--line);color:var(--paper-dim);font:400 11px/1.5 var(--font-mono);flex-wrap:wrap;gap:clamp(24px,4vw,56px);margin-top:44px;padding-top:20px;display:flex}.detail-meta em{color:var(--paper-faint);font:500 9px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin-bottom:7px;font-style:normal;display:block}.detail-visual-wrap{margin-top:0}.detail-heading{padding-top:clamp(40px,6vw,72px)}.detail-visual{aspect-ratio:21/9;background:radial-gradient(120% 140% at 22% 18%, var(--g1), transparent 58%), radial-gradient(110% 120% at 82% 86%, var(--g2), transparent 60%), #0b0d10;border:1px solid #ffffff1a;border-radius:24px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff29,0 40px 120px #00000073}.detail-visual:after{content:"";background:conic-gradient(from 0deg, transparent 0 40%, #ffffff24 50%, transparent 60% 100%);filter:blur(26px);opacity:.55;position:absolute;inset:-30%}.detail-content{max-width:860px;margin-inline:auto;padding-top:clamp(56px,8vw,96px)}.detail-lede{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.4}.detail-intro{color:var(--paper-dim);margin:26px 0 0;font-size:15px;line-height:1.9}.detail-chapters{border-top:1px solid var(--line);margin-top:clamp(48px,7vw,80px)}.detail-chapter{border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr);gap:24px;padding:clamp(28px,4vw,40px) 0;display:grid}.detail-chapter-index{color:var(--mint);font:500 10px/1.7 var(--font-mono);letter-spacing:.12em}.detail-chapter h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:400;line-height:1.2}.detail-chapter p{max-width:58ch;color:var(--paper-dim);margin:12px 0 0;font-size:14px;line-height:1.9}.detail-stack{margin-top:40px}.detail-cta{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(56px,8vw,88px);padding-top:32px;display:flex}.detail-cta p{max-width:38ch;color:var(--paper-dim);margin:0;font-size:14px;line-height:1.8}.detail-next{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-top:clamp(80px,12vw,140px);padding-top:32px;display:flex}.detail-next-label{width:100%;color:var(--paper-faint);font:500 9px/1 var(--font-mono);letter-spacing:.18em;text-transform:uppercase;margin:0}.detail-next-link{color:var(--paper);font-family:var(--font-display);letter-spacing:-.03em;align-items:center;gap:16px;font-size:clamp(1.8rem,4vw,3rem);line-height:1;text-decoration:none;transition:color .25s;display:inline-flex}.detail-next-link span:last-child{transition:transform .35s cubic-bezier(.2,.7,.2,1)}.detail-next-link:hover{color:var(--mint)}.detail-next-link:hover span:last-child{transform:translate(6px)}.detail-next-home{color:var(--paper-dim);border-bottom:1px solid var(--line);font:500 10px/1.6 var(--font-mono);letter-spacing:.08em;text-decoration:none;transition:color .25s}.detail-next-home:hover{color:var(--mint)}.contact{border-top:1px solid var(--line);padding:clamp(100px,14vw,190px) 0 clamp(60px,8vw,100px)}.contact-eyebrow{color:var(--mint);font:500 10px/1 var(--font-mono);letter-spacing:.2em;text-transform:uppercase;margin:0 0 30px}.contact-title{max-width:13ch;font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(2.6rem,7vw,6rem);font-weight:400;line-height:.98}.contact-body{max-width:48ch;color:var(--paper-dim);margin:28px 0 0;font-size:15px;line-height:1.85}.contact-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;margin-top:48px;display:flex}.contact-email{color:var(--paper);font-family:var(--font-display);letter-spacing:-.015em;border-bottom:1px solid var(--line-strong);padding-bottom:6px;font-size:clamp(1.3rem,3vw,2.1rem);text-decoration:none;transition:color .25s,border-color .25s;display:inline-block}.contact-email:hover{color:var(--mint);border-color:var(--mint)}.contact-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.copy-email{color:var(--paper-dim);border:1px solid var(--line-strong);font:500 11px/1 var(--font-mono);letter-spacing:.06em;cursor:pointer;background:#ffffff08;border-radius:999px;padding:12px 18px;transition:color .25s,border-color .25s,background .25s}.copy-email:hover{color:var(--paper);border-color:var(--mint);background:#ffffff0f}.contact-meta{color:var(--paper-faint);font:400 11px/1 var(--font-mono);flex-wrap:wrap;gap:28px;margin-top:56px;display:flex}.contact-meta a{color:var(--paper-dim);border-bottom:1px solid var(--line);text-decoration:none;transition:color .25s}.contact-meta a:hover{color:var(--mint)}.site-footer{border-top:1px solid var(--line);padding:28px 0 40px}.site-footer-inner{color:var(--paper-faint);font:400 10px/1.8 var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.site-footer a{color:var(--paper-dim);text-decoration:none}.site-footer a:hover{color:var(--mint)}@media (prefers-reduced-motion:no-preference){.hero .rise{animation:.9s cubic-bezier(.2,.7,.2,1) both rise-in}.hero .d1{animation-delay:50ms}.hero .d2{animation-delay:.14s}.hero .d3{animation-delay:.23s}.hero .d4{animation-delay:.32s}.hero .d5{animation-delay:.42s}.hero .d6{animation-delay:.52s}.status-dot:before{animation:2.8s ease-in-out infinite pulse}.hero-scroll-line:after{animation:2.4s ease-in-out infinite scroll-cue}@supports (animation-timeline:view()){.reveal{animation:both reveal-rise;animation-timeline:view();animation-range:entry 6% cover 28%}}}@keyframes rise-in{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes reveal-rise{0%{opacity:0;filter:blur(6px);transform:translateY(26px)}to{opacity:1;filter:blur();transform:none}}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #a8f0d066}50%{opacity:.7;box-shadow:0 0 0 6px #a8f0d000}}@keyframes scroll-cue{0%{transform:translate(-24px)}60%,to{transform:translate(56px)}}@media (max-width:1200px){.hero-canvas{opacity:.62;width:min(66vw,720px);right:-18vw}.hero:after{background:linear-gradient(90deg,#07080afa 0%,#07080adb 42%,#07080a33 66%,#07080a00 78%)}}@media (max-width:1080px){.project{grid-template-columns:60px minmax(0,1fr) 168px}}@media (max-width:860px){.hero{padding-top:120px;padding-bottom:140px}.hero-canvas{opacity:.5;width:110vw;top:34%;right:-28vw}.hero:after{background:linear-gradient(#07080a99 0%,#07080a47 32%,#07080a80 68%,#07080af0 100%)}.hero-inner{display:block}.hero-card{width:min(100%,320px);margin-top:40px;position:relative;bottom:auto;right:auto}.hero-scroll{display:none}.section-head{grid-template-columns:1fr;gap:14px}.section-index{padding-top:0}.project{grid-template-columns:1fr;gap:18px}.project-index{display:none}.project-side{flex-direction:row;align-items:center}.project-glyph{flex:0 0 88px;width:88px}.approach{grid-template-columns:1fr}.approach-sticky{position:static}.approach-sticky .section-head{margin-bottom:0}.detail-visual{aspect-ratio:4/3;border-radius:18px}}@media (max-width:620px){.site-header{padding:14px 0}.nav a:not(.nav-cta){display:none}.hero-name{font-size:clamp(4rem,22vw,6rem)}.hero-tagline{max-width:16ch}.contact-row{align-items:flex-start}.contact-meta{gap:16px}.detail-chapter{grid-template-columns:1fr;gap:10px}.detail-next{flex-direction:column;align-items:flex-start}.detail-title{font-size:clamp(2.5rem,12vw,4rem)}.detail-visual{aspect-ratio:4/3}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project{transform:none!important}.project:hover .project-glyph,.btn:hover{transform:none}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}::view-transition-group(*){animation:none!important}}
