.hero{position:relative;height:100vh;height:100svh;min-height:640px;overflow:hidden}.hero-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%}.orb-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;perspective:1400px;overflow:hidden}.orb{position:absolute;left:0;top:0;width:440px;height:275px;border-radius:12px;overflow:hidden;background:var(--surface-2);border:1px solid rgba(255,255,255,.16);box-shadow:0 30px 60px -12px #000000a6;opacity:0;will-change:transform,opacity;transform-origin:50% 50%;transition:border-color .25s}.orb img,.orb video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.orb video{opacity:0;transition:opacity .6s}.orb video.is-playing{opacity:1}.orb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(170deg,#ffffff1a,#fff0 35%)}.orb-cap{position:absolute;left:16px;bottom:14px;z-index:1;font-family:var(--font-mono);font-size:17px;letter-spacing:.12em;text-transform:uppercase;color:var(--white);opacity:0;transition:opacity .25s;text-shadow:0 1px 10px rgba(0,0,0,.9)}.orb:hover{border-color:#ffffff8c}.orb:hover .orb-cap{opacity:1}.hero-vignette{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 44% 38% at 50% 50%,#0c0d1099,#0c0d1000)}.hero-center{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;align-items:center;justify-content:center;pointer-events:none}.hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:26px;max-width:1140px;padding:0 24px;will-change:transform,opacity}.hero-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gray-500)}.hero-name{font-size:clamp(52px,9vw,164px)}.hero-sub{max-width:640px;font-size:clamp(17px,1.45vw,21px);line-height:1.5;color:var(--gray-200);text-wrap:pretty;text-shadow:0 2px 20px var(--bg)}.hero-sub .serif{font-size:1.24em;letter-spacing:0;color:var(--white)}.hero-sub .proj-link{pointer-events:auto}.hero-sub .proj-link:is(:hover,:focus-visible){color:var(--bg)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding-top:6px;pointer-events:auto}.hero-skills{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#85868b}.reel-trigger{position:absolute;left:var(--edge);bottom:28px;z-index:4;display:flex;align-items:center;gap:14px;background:none;border:0;padding:0;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}.reel-trigger:hover{color:var(--white)}.reel-icon{width:40px;height:40px;border:1px solid rgba(255,255,255,.32);display:flex;align-items:center;justify-content:center;font-size:10px;background:#0c0d1080}.about{padding:clamp(110px,14vw,200px) 0 clamp(80px,10vw,140px)}.about-copy{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:22px 48px}.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.cap{justify-content:space-between;gap:40px;min-height:250px;padding:24px}.cap-top{display:flex;flex-direction:column;gap:14px}.cap-num{font-family:var(--font-mono);font-size:11px;color:var(--gray-600)}.cap h3{font-size:18px;line-height:1.2;font-weight:700;font-stretch:112%;letter-spacing:-.01em;text-wrap:balance}.cap p{font-size:14.5px;line-height:1.55;color:var(--gray-400);text-wrap:pretty}.cap .tag{letter-spacing:.14em;color:var(--gray-100)}.split-spacer{flex:0 0 180px}.bridge{flex:1 1 600px;min-width:0;font-size:clamp(22px,2.3vw,32px);line-height:1.35;font-weight:500;font-stretch:108%;letter-spacing:-.015em;color:var(--gray-500);text-wrap:pretty}.bridge strong{color:var(--text);font-weight:700}.exp-list{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}.exp-row{display:grid;grid-template-columns:minmax(120px,160px) repeat(auto-fit,minmax(220px,1fr));gap:8px 32px;align-items:baseline;padding:24px 0;border-top:1px solid var(--line)}.exp-yrs{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;color:var(--gray-500)}.exp-yrs.is-now:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.exp-who{display:flex;flex-direction:column;gap:6px}.exp-co{font-size:clamp(20px,1.8vw,24px);font-weight:700;font-stretch:115%;letter-spacing:-.015em}.exp-role{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500)}.exp-desc{font-size:15.5px;line-height:1.55;color:var(--gray-300)}.logos{display:flex;flex-wrap:wrap;align-items:center;gap:36px 56px}.logos img{width:auto;max-width:130px;object-fit:contain;filter:brightness(0) invert(1);opacity:.45;transition:opacity .3s}.logos img:hover{opacity:1}.logos img.is-boxed{filter:grayscale(1) invert(1);mix-blend-mode:screen}.quote{display:flex;flex-direction:column;gap:24px;padding-top:24px}.quote p{font-size:clamp(26px,3vw,44px);line-height:1.15;font-weight:600;font-stretch:112%;letter-spacing:-.025em;text-wrap:pretty}.quote .serif{font-size:1.12em;letter-spacing:0;color:var(--gray-100)}.quote .proj-link:is(:hover,:focus-visible){color:var(--bg)}.quote cite{font-style:normal;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gray-500)}.work-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:56px 20px;align-items:end}.work-card{grid-column:span var(--span, 6);display:flex;flex-direction:column;gap:16px;min-width:0;color:var(--text)}.work-card:hover{color:var(--text)}.work-meta{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.work-name{display:flex;align-items:baseline;gap:14px;min-width:0}.work-num{font-family:var(--font-mono);font-size:11px;color:var(--gray-600)}.work-title{font-size:clamp(19px,1.7vw,25px);font-weight:700;font-stretch:115%;letter-spacing:-.015em}.work-cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-500);white-space:nowrap}.streak{position:relative;height:1px;background:var(--line);overflow:hidden}.streak:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--acc),rgba(0,0,0,0));transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease-out)}.work-card:hover .streak:after{transform:scaleX(1)}.list-section{padding:clamp(60px,8vw,110px) 0}.list-section--last{padding-bottom:clamp(100px,12vw,180px)}.row-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));column-gap:48px}.row-link{display:flex;align-items:baseline;gap:18px;padding:22px 6px;border-top:1px solid var(--line);color:var(--text);transition:padding .4s var(--ease-out),background .4s}.row-link:hover{color:var(--text);padding-left:18px;background:linear-gradient(90deg,#ffffff0d,#fff0)}.row-num{font-family:var(--font-mono);font-size:11px;color:var(--gray-600)}.row-title{flex:1;min-width:0;font-size:clamp(20px,1.8vw,26px);font-weight:700;font-stretch:115%;letter-spacing:-.015em}.row-cat{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gray-500);text-align:right}.row-arrow{color:var(--gray-500);font-size:14px}.contact{min-height:100vh}.contact .cta-vignette{background:radial-gradient(ellipse 42% 36% at 50% 50%,#0c0d10eb,#0c0d1000)}.contact .cta-content{padding:140px 24px 80px}.contact-eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gray-500)}.contact-title{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .22em;font-size:clamp(56px,10vw,184px);line-height:.88;font-weight:900;font-stretch:125%;letter-spacing:-.04em;text-transform:uppercase}.contact-title .serif{color:var(--gray-100)}.contact-copy{max-width:560px;font-size:18px;line-height:1.55;color:var(--gray-300);text-wrap:pretty}.socials{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 32px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gray-300)}.socials .email{text-transform:none;letter-spacing:.06em}@media(max-width:899px){.work-card{grid-column:span 12}}@media(max-width:560px){.exp-row{grid-template-columns:1fr}}
