:root{--bg:#fafaf7;--bg-tint:#f1efe8;--paper:#fff;--ink:#0f0e0c;--fg:#0a0a0a;--muted:#6b6b66;--soft:#a8a59c;--rule:#e0ddd2;--accent:#1e40af;--accent-soft:#1e40af1a;--display:"Archivo Black", "Helvetica Neue", Helvetica, Arial, sans-serif;--sans:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;cursor:none;font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#fff}.cursor-dot,.cursor-halo{pointer-events:none;z-index:9999;will-change:transform;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cursor-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;transition:width .25s,height .25s,background .25s}.cursor-halo{mix-blend-mode:multiply;background:radial-gradient(circle,#1e40af14 0%,#1e40af05 40%,#0000 70%);border-radius:50%;width:420px;height:420px}.hover-active .cursor-dot{width:16px;height:16px;box-shadow:0 0 0 1.5px var(--accent);background:0 0}.on-dark .cursor-halo{mix-blend-mode:screen;background:radial-gradient(circle,#ffffff1a 0%,#ffffff05 40%,#0000 70%)}.on-dark .cursor-dot{background:#fafaf7}@media (pointer:coarse){body{cursor:auto}.cursor-dot,.cursor-halo{display:none}}.ast{vertical-align:middle;color:var(--accent);font-family:Helvetica Neue,Arial,sans-serif;display:inline-block;transform:translateY(-2px)}.ast--spin{transform-origin:50%;animation:14s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.photo{background:var(--bg-tint);border:1px solid var(--rule);position:relative;overflow:hidden}.photo svg.stripes{width:100%;height:100%;position:absolute;inset:0}.photo img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.2,.7,.3,1),filter .6s;display:block;position:absolute;inset:0}.photo:hover img{transform:scale(1.035)}.contact-photos .photo img{filter:grayscale(.15)brightness(.85)contrast(1.05)}.photo .ph-tag{display:none}.photo .ph-tag-original{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--rule);background:#fafaf7e0;border-radius:100px;padding:5px 9px;font-size:10px;position:absolute;bottom:12px;left:14px}.photo .ph-corner{display:none}.photo .ph-corner-original{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--soft);font-size:13px;position:absolute;top:12px;right:14px}header.nav{z-index:100;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:22px 40px;transition:border-color .3s,background .3s,color .3s;display:flex;position:fixed;top:0;left:0;right:0}header.nav.scrolled{border-bottom-color:var(--rule)}header.nav.on-dark{background:color-mix(in srgb, var(--ink) 82%, transparent);color:#fafaf7;border-bottom-color:#ffffff14}.nav-left{align-items:center;gap:16px;display:flex}.nav-logo{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:8px;font-size:14px;display:flex}.nav-logo .ast{font-size:18px}.nav-cap{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--rule);padding-left:16px;font-size:10px}header.nav.on-dark .nav-cap{color:#ffffff8c;border-left-color:#ffffff26}nav ul{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;gap:28px;font-size:11px;list-style:none;display:flex}nav ul a{color:var(--muted);padding:4px 2px;transition:color .2s;position:relative}nav ul a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .25s;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}nav ul a:hover,nav ul a.is-active{color:var(--fg)}header.nav.on-dark nav ul a{color:#fff9}header.nav.on-dark nav ul a:hover,header.nav.on-dark nav ul a.is-active{color:#fafaf7}nav ul a:hover:after,nav ul a.is-active:after{transform:scaleX(1)}.intro{grid-template-columns:5fr 4fr;align-items:end;gap:60px;min-height:calc(100vh - 32px);padding:92px 40px 60px;display:grid;position:relative}.intro-meta{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--rule);justify-content:space-between;align-items:center;padding-top:16px;font-size:11px;display:flex;position:absolute;top:90px;left:40px;right:40px}.intro-meta .accent{color:var(--accent)}.greet{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);align-items:center;gap:10px;margin-bottom:18px;font-size:13px;font-weight:600;display:flex}.name-display{font-family:var(--display);letter-spacing:-.04em;text-transform:uppercase;margin-bottom:32px;font-size:clamp(56px,11vw,168px);font-weight:400;line-height:.9}.name-display .accent{color:var(--accent)}.intro-tag{font-family:var(--sans);text-wrap:pretty;max-width:560px;color:var(--muted);border-top:1px solid var(--rule);padding-top:18px;font-size:14px;font-weight:400;line-height:1.55}.intro-tag strong{color:var(--fg);font-weight:600}.intro-tag em{color:var(--accent);font-style:normal;font-weight:600}.intro-photos{grid-template-rows:280px 200px;grid-template-columns:1fr 1.4fr;gap:14px;height:100%;max-height:580px;display:grid}.intro-photos .photo-a{grid-area:1/1/3}.intro-photos .photo-b{grid-area:1/2}.intro-photos .photo-c{grid-area:2/2}.scroll-cue{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:10px;display:flex;position:absolute;bottom:28px;left:40px}.scroll-cue .ln{background:var(--soft);width:32px;height:1px;position:relative;overflow:hidden}.scroll-cue .ln:before{content:"";background:var(--accent);width:32px;height:1px;animation:2.4s ease-in-out infinite scrollLine;position:absolute;top:0;left:-32px}@keyframes scrollLine{0%{transform:translate(0)}to{transform:translate(64px)}}.section-tag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:24px;font-size:11px;display:flex}.section-tag .ast{font-size:14px}.work-band{background:var(--ink);color:#fafaf7;margin-top:60px;padding:70px 40px}.work-band h2{font-family:var(--display);letter-spacing:-.025em;text-transform:uppercase;text-align:center;font-size:clamp(48px,7vw,108px);font-weight:400;line-height:.9}.work-band .sub{text-align:center;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#ffffff8c;margin-top:14px;font-size:11px}.work{grid-template-columns:repeat(3,1fr);gap:56px 40px;max-width:1320px;margin:0 auto;padding:72px 40px 80px;display:grid}@media (max-width:1100px){.work{grid-template-columns:repeat(2,1fr);gap:48px 32px}}@media (max-width:700px){.work{grid-template-columns:1fr;gap:48px;padding:56px 20px 60px}}.project{flex-direction:column;padding:0;transition:opacity .9s,transform .9s;display:flex}.project:not(.is-visible){opacity:0;transform:translateY(28px)}.project-image-wrap{position:relative}.project-image{aspect-ratio:4/3;transition:transform .8s cubic-bezier(.2,.7,.3,1)}.project:hover .project-image{transform:translateY(-6px)}.project-image-stripes{width:100%;height:100%;position:absolute;inset:0}.project-image .brand-overlay{display:none}.brand-overlay{font-family:var(--display);color:var(--fg);letter-spacing:-.005em;text-transform:uppercase;margin-bottom:10px;font-size:clamp(20px,1.9vw,26px);line-height:1.05;display:block}.project-image .index-overlay{display:none}.project-image .index-overlay-original{font-family:var(--mono);letter-spacing:.06em;color:#ffffffbf;z-index:2;font-size:10px;position:absolute;top:20px;right:22px}.project-meta-wrap{padding-top:22px}.project-type{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--fg);align-items:center;gap:8px;margin-bottom:14px;font-size:11px;font-weight:600;display:flex}.project-type .ast{font-size:12px}.project-desc{font-family:var(--sans);color:var(--muted);text-wrap:pretty;margin-bottom:20px;font-size:13px;line-height:1.6}.project-stack{flex-wrap:wrap;gap:5px;margin-bottom:22px;display:flex}.project-stack span{font-family:var(--sans);letter-spacing:.02em;color:var(--muted);border:1px solid var(--rule);border-radius:100px;padding:4px 11px;font-size:11px;font-weight:500;transition:border-color .2s,color .2s}.project-stack span:hover{border-color:var(--accent);color:var(--accent)}.project-actions{align-items:center;gap:10px;display:flex}.project-actions .pill{font-family:var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);border-radius:100px;align-items:center;gap:6px;padding:8px 14px;font-size:11px;font-weight:500;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.project-actions a.pill:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.interlude{background:var(--ink);color:#fafaf7;padding:120px 40px;position:relative;overflow:hidden}.interlude .corner-meta{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#ffffff73;border-top:1px solid #ffffff1f;justify-content:space-between;padding-top:14px;font-size:11px;display:flex;position:absolute;top:30px;left:40px;right:40px}.interlude .corner-meta .ast{color:#ffffffb3}.interlude-headline{font-family:var(--display);letter-spacing:-.04em;text-transform:uppercase;text-align:center;margin-top:40px;margin-bottom:32px;font-size:clamp(72px,14vw,220px);font-weight:400;line-height:.88}.interlude-headline .accent{color:#5b86ee}.interlude-row{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;border-top:1px solid #ffffff1f;grid-template-columns:1fr 2fr 1fr;align-items:start;gap:40px;padding-top:28px;font-size:11px;display:grid}.interlude-row .who{color:#fafaf7;font-weight:600}.interlude-row .what{color:#ffffffa6}.timeline{background:var(--ink);color:#fafaf7;border-top:1px solid #ffffff14;padding:100px 40px 120px;position:relative}.timeline-head{grid-template-columns:1fr 1fr;align-items:end;gap:60px;margin-bottom:64px;display:grid}.timeline-head h2{font-family:var(--display);letter-spacing:-.03em;text-transform:uppercase;font-size:clamp(48px,7.5vw,110px);font-weight:400;line-height:.9}.timeline-head .sub{font-family:var(--sans);color:#ffffffa6;max-width:380px;font-size:13px;line-height:1.55}.timeline-head .sub strong{color:#fafaf7;font-weight:600}.timeline-head .section-tag,.timeline-head .section-tag .ast{color:#5b86ee}.timeline-body{grid-template-columns:200px 1fr;align-items:start;gap:56px;display:grid}.year-scrubber{border-left:1px solid #ffffff26;flex-direction:column;padding-left:20px;display:flex;position:sticky;top:100px}.year-scrubber .year{font-family:var(--display);color:#ffffff4d;cursor:pointer;letter-spacing:-.01em;text-transform:uppercase;padding:10px 0;font-size:22px;font-weight:400;line-height:1;transition:color .25s,font-size .25s;position:relative}.year-scrubber .year:before{content:"";background:#5b86ee;width:1px;height:0;transition:height .25s;position:absolute;top:50%;left:-21px;transform:translateY(-50%)}.year-scrubber .year.is-active{color:#fafaf7;font-size:34px}.year-scrubber .year.is-active:before{height:28px}.year-scrubber .year.has-role{color:#fff9}.year-scrubber .year.has-role.is-active{color:#fafaf7}.year-scrubber .year:hover{color:#ffffffd9}.role-cards{flex-direction:column;gap:40px;display:flex}.role-card{opacity:0;background:#1a1916;border:1px solid #ffffff1a;padding:36px 36px 32px;scroll-margin-top:120px;transition:opacity .8s,transform .8s,border-color .3s;position:relative;transform:translateY(20px)}.role-card.is-visible{opacity:1;transform:translateY(0)}.role-card.is-current{border-color:#5b86ee59}.role-card-head{border-bottom:1px solid #ffffff14;grid-template-columns:1fr auto;align-items:baseline;gap:24px;margin-bottom:20px;padding-bottom:20px;display:grid}.role-when{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin-bottom:4px;font-size:11px}.role-when.is-now{color:#5b86ee}.role-when .ast{color:#5b86ee;font-size:12px}.role-kind{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;border:1px solid #ffffff26;border-radius:100px;padding:4px 10px;font-size:10px}.role-card h3{font-family:var(--display);letter-spacing:-.015em;text-transform:uppercase;font-size:clamp(22px,2.6vw,32px);font-weight:400;line-height:1.05}.role-card .role-company{font-family:var(--sans);color:#5b86ee;letter-spacing:.04em;text-transform:uppercase;margin-top:6px;font-size:13px;font-weight:500}.role-card .role-resp-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;margin-bottom:10px;font-size:10px}.role-card .role-body{font-family:var(--sans);color:#ffffffc7;text-wrap:pretty;max-width:680px;margin-bottom:24px;font-size:13px;line-height:1.6}.role-card .role-body strong{color:#fafaf7;font-weight:600}.role-card ul.role-body{padding-left:18px;list-style:outside}.role-card ul.role-body li{margin-bottom:8px}.role-card ul.role-body li:last-child{margin-bottom:0}.role-card .role-stack-label{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff73;margin-bottom:10px;font-size:10px}.role-card .role-stack{flex-wrap:wrap;gap:6px;display:flex}.role-card .role-stack span{font-family:var(--mono);color:#ffffffb3;border:1px solid #ffffff2e;border-radius:100px;padding:5px 11px;font-size:11px;transition:border-color .2s,color .2s}.role-card .role-stack span:hover{color:#5b86ee;border-color:#5b86ee}.contact{background:var(--ink);color:#fafaf7;border-top:1px solid #ffffff14;padding:100px 40px 50px}.contact-grid{grid-template-columns:5fr 4fr;align-items:end;gap:64px;display:grid}.contact-left h2{font-family:var(--display);letter-spacing:-.035em;text-transform:uppercase;margin-bottom:28px;font-size:clamp(56px,10vw,144px);font-weight:400;line-height:.9}.contact-left h2 .accent{color:#5b86ee}.contact-email{font-family:var(--display);color:#fafaf7;text-transform:uppercase;letter-spacing:-.015em;border-bottom:1px solid #ffffff26;align-items:center;gap:18px;padding:24px 0;font-size:clamp(24px,3.4vw,48px);transition:color .2s,border-color .2s;display:flex}.contact-email .arrow{color:#5b86ee;font-size:22px;transition:transform .3s}.contact-email:hover{color:#5b86ee;border-color:#5b86ee}.contact-email:hover .arrow{transform:translate(6px,-4px)}.contact-links{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;gap:40px;margin-top:32px;font-size:12px;display:flex}.contact-links a{color:#ffffffa6;border-bottom:1px solid #ffffff26;align-items:center;gap:8px;padding-bottom:6px;transition:color .2s,border-color .2s;display:inline-flex}.contact-links a:hover{color:#5b86ee;border-bottom-color:#5b86ee}.contact-photos{grid-template-rows:200px 160px;grid-template-columns:1fr 1.4fr;gap:12px;display:grid}.contact-photos .photo{background:#1a1916;border-color:#ffffff14}.contact-photos .photo .ph-tag{color:#fff9;background:#0f0e0cd9;border-color:#ffffff26}.contact-photos .photo .ph-corner{color:#ffffff40}.contact-photos .pa{grid-area:1/1/3}.contact-photos .pb{grid-area:1/2}.contact-photos .pc{grid-area:2/2}footer{background:var(--ink);color:#ffffff80;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:24px;padding:28px 40px;font-size:11px;display:flex}footer .right{align-items:center;gap:22px;display:flex}.testimonials{background:var(--bg);color:var(--fg);border-top:1px solid var(--rule);padding:110px 40px 120px}.testimonials-band{background:var(--ink);color:#fafaf7;text-align:center;border-top:1px solid #ffffff14;padding:32px 40px}.testimonials-band h2{font-family:var(--display);letter-spacing:-.015em;color:#fafaf7;text-transform:uppercase;margin:0;font-size:clamp(28px,3.4vw,44px);font-weight:600;line-height:1}.testimonials-band .sub{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffff8c;margin-top:10px;font-size:11px}.testimonials-inner{max-width:1100px;margin:0 auto}.testimonials-head{text-align:center;margin-bottom:72px}.testimonials-head .section-tag{justify-content:center}.quote{text-align:center;max-width:900px;margin:0 auto;padding:60px 0 0;position:relative}.quote:before{content:"“";color:var(--accent);opacity:.18;font-size:160px;font-weight:500;line-height:1;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.quote-body{color:var(--fg);text-wrap:pretty;margin-bottom:36px;font-size:clamp(20px,1.9vw,26px);font-weight:400;line-height:1.55}.quote-body p{margin:0 0 18px}.quote-body p:last-child{margin-bottom:0}.quote-body em{color:var(--accent);font-style:italic;font-weight:400}.quote-attr{border-top:1px solid var(--rule);align-items:center;gap:14px;margin-top:8px;padding-top:28px;display:inline-flex}.quote-attr .avatar{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);font-family:var(--display);letter-spacing:.02em;border-radius:50%;justify-content:center;align-items:center;font-size:16px;font-weight:600;display:inline-flex}.quote-attr .who{text-align:left}.quote-attr .name{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;color:var(--fg);font-size:13px;font-weight:600;line-height:1.1}.quote-attr .role{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:10px}.quote-projects{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:28px;display:flex}.quote-projects span{font-family:var(--mono);letter-spacing:.02em;color:var(--muted);border:1px solid var(--rule);border-radius:100px;padding:5px 11px;font-size:11px}.quotes-row{border-top:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:32px;margin-top:80px;padding-top:60px;display:grid}@media (max-width:800px){.quotes-row{grid-template-columns:1fr;gap:24px}}.quote--small{text-align:left;border:1px solid var(--rule);background:#fff;max-width:none;margin:0;padding:32px 32px 28px}.quote--small:before{display:none}.quote--small .quote-body{color:var(--fg);margin-bottom:24px;font-size:17px;line-height:1.55}.quote--small .quote-body p{margin:0}.quote--small .quote-attr{border-top-color:var(--rule);margin-top:0;padding-top:20px}.quote--small .quote-attr .avatar{width:36px;height:36px;font-size:13px}@media (max-width:700px){.testimonials{padding:64px 20px 72px}.testimonials-band{padding:24px 20px}.quotes-row{margin-top:56px;padding-top:40px}}.reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (max-width:1100px){.intro{grid-template-columns:1fr}.intro-photos{max-height:480px}.interlude-row,.timeline-head,.timeline-body,.contact-grid{grid-template-columns:1fr;gap:32px}.year-scrubber{border-top:1px solid #ffffff26;border-left:0;flex-flow:wrap;gap:16px;padding:16px 0 0;position:static}.year-scrubber .year{padding:0;font-size:22px}.year-scrubber .year.is-active{font-size:26px}.year-scrubber .year:before{display:none}}@media (max-width:700px){header.nav{padding:16px 20px}.nav-cap{display:none}nav ul{gap:14px}.intro,.work,.interlude,.timeline,.contact{padding-left:20px;padding-right:20px}.intro-meta,.interlude .corner-meta{left:20px;right:20px}.scroll-cue{left:20px}footer{flex-direction:column;align-items:flex-start;gap:12px;padding:20px}}
