:root{color-scheme:dark;--font-body: "Aptos", "Inter", "Segoe UI", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "DIN Condensed", "Bahnschrift Condensed", "Arial Narrow", "Roboto Condensed", Impact, Haettenschweiler, sans-serif;--font-mono: "Aptos Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;font-family:var(--font-body);--carbon: #050607;--titanium-black: #0b0d0f;--gunmetal: #14171a;--gunmetal-strong: #1b1f22;--steel: #caced1;--silver: #e3e5e6;--smoke: #8d9498;--muted: #686f73;--line: rgba(202, 207, 210, .16);--line-strong: rgba(226, 229, 231, .28);--brushed: rgba(255, 255, 255, .055);--shadow: 0 32px 88px rgba(0, 0, 0, .58);background:var(--carbon);color:var(--steel);scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;min-width:320px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.032) 0 1px,transparent 1px 96px),repeating-linear-gradient(0deg,rgba(255,255,255,.026) 0 1px,transparent 1px 96px),linear-gradient(115deg,rgba(255,255,255,.04) 0 1px,transparent 1px 180px),linear-gradient(180deg,#050607,#0c0f11 46%,#050607);background-size:96px 96px,96px 96px,180px 180px,auto}body:before{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;content:"";background:linear-gradient(90deg,#050607eb,#05060733 42%,#050607eb),repeating-linear-gradient(165deg,transparent 0 48px,rgba(255,255,255,.018) 48px 49px)}body:after{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;content:"";opacity:.52;background:radial-gradient(circle at 78% 18%,rgba(226,229,231,.09),transparent 28%),radial-gradient(circle at 12% 72%,rgba(142,149,153,.06),transparent 28%)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.video-intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,#020303,#090b0c 48%,#030404),var(--carbon)}.video-intro video{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.08) brightness(.72);transform:scale(1.02)}.video-intro__shade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,#000000d6,#00000029 48%,#000000bd),linear-gradient(180deg,rgba(255,255,255,.03),transparent 34%,rgba(0,0,0,.82)),repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 7px)}.video-intro__shade:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";opacity:.28;background:linear-gradient(90deg,transparent,rgba(240,242,243,.18),transparent);animation:scan-pass 2.9s ease-in-out infinite}.video-intro.is-departing:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:radial-gradient(circle at 50% 50%,rgba(235,237,238,.92),rgba(188,194,197,.38) 28%,transparent 62%),linear-gradient(180deg,rgba(255,255,255,.18),transparent);animation:intro-flash .78s ease forwards}.video-intro.is-departing .video-intro__shade:after{animation-duration:.62s}.video-intro__copy{position:absolute;bottom:clamp(34px,8vw,72px);left:clamp(22px,6vw,76px);display:grid;gap:8px;color:var(--silver);text-transform:uppercase}.video-intro__copy span{color:var(--smoke);font-family:var(--font-mono);font-size:.72rem;font-weight:800;letter-spacing:.18em}.video-intro__copy strong{font-family:var(--font-display);font-size:clamp(2.6rem,9vw,7rem);line-height:.88;letter-spacing:.01em}.video-intro__skip{position:absolute;right:clamp(18px,4vw,42px);bottom:clamp(18px,4vw,42px);min-height:42px;padding:0 18px;color:var(--silver);font:800 .74rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#090b0cbd;border:1px solid var(--line-strong);border-radius:999px;box-shadow:inset 0 1px #ffffff1a,0 16px 34px #00000052}@keyframes intro-flash{0%{opacity:0;transform:scale(.72)}48%{opacity:1}to{opacity:0;transform:scale(1.18)}}@keyframes scan-pass{0%{transform:translate(-120%)}to{transform:translate(120%)}}.site-header{position:fixed;top:0;right:0;left:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,5vw,68px);color:var(--steel);background:#050607d6;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.progress-bar{position:absolute;right:0;bottom:-1px;left:0;height:2px;transform-origin:left center;background:linear-gradient(90deg,transparent,#d9dcde 18%,#8f969a 64%,transparent);box-shadow:0 0 18px #e2e5e72e}.scroll-telemetry{position:fixed;right:clamp(14px,3vw,34px);bottom:clamp(14px,3vw,32px);z-index:18;display:grid;gap:2px;min-width:122px;padding:12px 14px;color:var(--smoke);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;background:#050607ad;border:1px solid var(--line);border-radius:18px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 46px #00000057}.scroll-telemetry strong{color:var(--silver);font-size:.74rem}.scroll-telemetry i{color:#e2e5e79e;font-style:normal}.wordmark{display:grid;width:42px;height:42px;place-items:center;color:var(--silver);font-size:.78rem;font-weight:900;letter-spacing:0;background:radial-gradient(circle at 35% 22%,rgba(226,229,231,.18),transparent 28%),linear-gradient(145deg,#15191c,#08090a);border:1px solid var(--line-strong);border-radius:50%;box-shadow:inset 0 1px #ffffff1f,0 0 0 4px #cacfd209,0 16px 38px #0006}nav{display:flex;gap:clamp(12px,3vw,28px);color:var(--smoke);font-family:var(--font-mono);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}nav a{position:relative;transition:color .18s ease}nav a:after{position:absolute;right:0;bottom:-9px;left:0;height:1px;content:"";opacity:0;transform:scaleX(0);transform-origin:center;background:linear-gradient(90deg,transparent,var(--silver),transparent);transition:opacity .18s ease,transform .18s ease}nav a:hover,nav a.is-active{color:var(--silver)}nav a.is-active:after{opacity:1;transform:scaleX(1)}main{overflow:hidden}.hero{position:relative;display:flex;align-items:center;width:min(1180px,calc(100% - 40px));min-height:100vh;margin:0 auto;padding:112px 0 64px;perspective:1200px}.hero:before{position:absolute;top:17%;right:4%;z-index:0;width:min(460px,45vw);height:min(220px,24vh);pointer-events:none;content:"";opacity:.34;background:linear-gradient(90deg,transparent 0 12%,rgba(226,229,231,.28) 12% 13%,transparent 13% 100%),linear-gradient(20deg,transparent 0 46%,rgba(226,229,231,.24) 46% 47%,transparent 47% 100%),linear-gradient(-18deg,transparent 0 58%,rgba(142,149,153,.24) 58% 59%,transparent 59% 100%);border:1px solid var(--line)}.hero-copy{position:relative;z-index:4;width:min(64vw,760px)}.hero-copy:before{position:absolute;top:-68px;right:-180px;bottom:-64px;left:-58px;z-index:-1;pointer-events:none;content:"";background:linear-gradient(90deg,rgba(5,6,7,.96) 0%,rgba(8,10,11,.82) 42%,rgba(8,10,11,.24) 76%,transparent 100%),linear-gradient(180deg,rgba(255,255,255,.045),transparent);border-left:2px solid rgba(226,229,231,.34)}.kicker,.eyebrow{margin:0 0 18px;color:var(--smoke);font-family:var(--font-mono);font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:820px;margin-bottom:22px;color:var(--silver);font-family:var(--font-display);font-size:clamp(4.2rem,13vw,10rem);font-weight:800;line-height:.84;letter-spacing:0;text-shadow:0 0 28px rgba(202,207,210,.14),0 18px 54px rgba(0,0,0,.72);text-transform:uppercase}.hero-lede{max-width:630px;color:var(--steel);font-size:clamp(1.08rem,2vw,1.56rem);line-height:1.46;text-shadow:0 8px 30px rgba(0,0,0,.82)}.hero-actions,.contact-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.button,.contact-links a,.project-heading a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 22px;color:var(--steel);font-family:var(--font-body);font-weight:900;border:1px solid var(--line-strong);border-radius:999px;background:linear-gradient(180deg,#15191c,#090b0c);box-shadow:inset 0 1px #ffffff14,0 12px 28px #00000038;transition:border-color .18s ease,background .18s ease,color .18s ease}.button.primary,.contact-links a:first-child{color:#070809;background:linear-gradient(180deg,#f2f4f5,#a8aeb2);border-color:#e2e5e79e}.button:hover,.contact-links a:hover,.project-heading a:hover{color:#fff;border-color:#e2e5e785;background:linear-gradient(180deg,#202529,#0b0d0f)}.portrait-frame{position:absolute;top:108px;right:max(-34px,-3vw);bottom:56px;z-index:1;width:min(78vw,940px);opacity:.66;margin:0;border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000003d,#000000b8 31%,#000 53%);mask-image:linear-gradient(90deg,#0000003d,#000000b8 31%,#000 53%)}.portrait-frame:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(90deg,#050607a8,#0506074d 34%,#05060714 56%),linear-gradient(180deg,rgba(255,255,255,.05),transparent 34%,rgba(0,0,0,.7)),repeating-linear-gradient(0deg,rgba(255,255,255,.032) 0 1px,transparent 1px 6px)}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:58% 45%;filter:grayscale(.5) saturate(.52) contrast(1.16) brightness(.76)}figcaption{position:absolute;right:18px;bottom:16px;left:18px;z-index:1;display:flex;justify-content:space-between;gap:12px;color:var(--steel);font-size:.7rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.section{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:clamp(72px,11vw,128px) 0}.animated-section{position:relative}.animated-section:before{position:absolute;top:38px;left:50%;width:min(420px,46vw);height:1px;content:"";opacity:.38;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(226,229,231,.5),transparent)}.section-intro{display:grid;grid-template-columns:minmax(0,.72fr) minmax(280px,.58fr);gap:36px;align-items:end;margin-bottom:38px}.section-intro h2,.direction-panel h2,.contact-card h2{margin-bottom:0;color:var(--silver);font-family:var(--font-display);font-size:clamp(2.1rem,4.7vw,4.85rem);font-weight:800;line-height:.96;letter-spacing:0;text-transform:uppercase}.section-intro>p:last-child,.direction-panel>p,.contact-card>p{max-width:560px;margin-bottom:0;color:var(--smoke);font-size:1.02rem;line-height:1.76}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;perspective:1200px}.project-card{position:relative;display:flex;min-height:520px;flex-direction:column;padding:24px;background:linear-gradient(135deg,rgba(255,255,255,.04),transparent 34%),linear-gradient(180deg,#1b1f22f0,#0a0c0df5),repeating-linear-gradient(90deg,transparent 0 54px,rgba(255,255,255,.035) 54px 55px);border:1px solid var(--line);border-radius:8px;box-shadow:inset 0 1px #ffffff0f,0 18px 44px #0000003d;overflow:hidden;transform-style:preserve-3d}.project-card:before{position:absolute;top:14px;left:24px;width:62px;height:2px;content:"";background:linear-gradient(90deg,rgba(226,229,231,.64),transparent);border-radius:999px}.project-card__trace{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit}.project-card__trace:before{position:absolute;top:0;right:0;bottom:0;left:0;content:"";border-radius:inherit;background:linear-gradient(90deg,var(--silver),transparent) top left / var(--trace, 0%) 1px no-repeat,linear-gradient(180deg,var(--silver),transparent) top right / 1px var(--trace, 0%) no-repeat,linear-gradient(270deg,var(--silver),transparent) bottom right / var(--trace, 0%) 1px no-repeat,linear-gradient(0deg,var(--silver),transparent) bottom left / 1px var(--trace, 0%) no-repeat;opacity:.28;transition:opacity .18s ease}.project-card:hover .project-card__trace:before{opacity:.62}.project-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.project-meta .eyebrow{margin-bottom:18px}.project-meta .eyebrow span{display:block;margin-bottom:6px;color:var(--silver);font-size:.62rem}.project-meta span{padding:6px 11px;color:var(--silver);font-family:var(--font-mono);font-size:.62rem;font-weight:900;letter-spacing:.09em;white-space:nowrap;background:#cacfd214;border:1px solid var(--line);border-radius:999px}.project-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.project-heading h3{margin-bottom:0;color:var(--silver);font-size:clamp(1.45rem,2.3vw,2.05rem);line-height:1.04}.project-heading a{min-height:36px;padding:0 16px;color:var(--silver);font-size:.82rem}.spec-label{margin:4px 0 8px;color:var(--steel);font-family:var(--font-mono);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.project-summary{color:var(--steel);font-size:.98rem;line-height:1.62}.project-metric{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px;padding:9px 12px;color:var(--smoke);font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;background:#cacfd20b;border:1px solid rgba(202,207,210,.1);border-radius:999px}.project-metric strong{color:var(--silver);font-size:.66rem}dl{display:grid;gap:18px;margin:18px 0 0}dt{margin-bottom:6px;color:var(--steel);font-family:var(--font-mono);font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}dd{margin:0;color:var(--smoke);line-height:1.58}.tag-list,.skills-grid{padding:0;list-style:none}.stack-label{margin-top:auto;padding-top:24px}.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:0}.tag-list li{padding:7px 12px;color:var(--steel);font-size:.76rem;font-weight:800;background:#cacfd211;border:1px solid rgba(202,207,210,.14);border-radius:999px}.project-detail{overflow:hidden}.project-detail p:last-child{margin-bottom:0;color:var(--steel);line-height:1.58}.detail-toggle{width:100%;min-height:40px;margin-top:18px;color:var(--silver);font-family:var(--font-mono);font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,rgba(226,229,231,.09),transparent 50%),#060708bd;border:1px solid var(--line);border-radius:999px}.direction-section{width:100%;max-width:none;padding-right:20px;padding-left:20px;background:linear-gradient(90deg,#050607fa,#0f1113f0),repeating-linear-gradient(0deg,transparent 0 72px,rgba(255,255,255,.032) 72px 73px);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.direction-panel{position:relative;width:min(1180px,100%);margin:0 auto;padding:clamp(48px,8vw,86px);color:var(--steel);border:1px solid var(--line-strong);border-radius:8px;background:linear-gradient(180deg,#1b1f22d1,#070809e6),repeating-linear-gradient(90deg,transparent 0 72px,rgba(255,255,255,.032) 72px 73px)}.direction-panel:before{position:absolute;top:18px;right:18px;bottom:18px;left:18px;pointer-events:none;content:"";opacity:.22;border:1px solid rgba(226,229,231,.18);border-radius:inherit;animation:section-pulse 4.8s ease-in-out infinite}.direction-panel:after{position:absolute;right:clamp(20px,4vw,48px);bottom:clamp(20px,4vw,48px);width:min(280px,36vw);height:min(140px,18vw);pointer-events:none;content:"";opacity:.26;background:linear-gradient(90deg,transparent 0 12%,rgba(226,229,231,.22) 12% 13%,transparent 13% 100%),linear-gradient(20deg,transparent 0 44%,rgba(226,229,231,.18) 44% 45%,transparent 45% 100%),linear-gradient(-18deg,transparent 0 60%,rgba(142,149,153,.18) 60% 61%,transparent 61% 100%);border:1px solid var(--line)}.direction-panel .eyebrow,.direction-panel>p{color:#cacfd2b8}.direction-marks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:46px;background:transparent;border:0}.direction-marks span{min-height:96px;padding:18px;color:var(--steel);font-family:var(--font-mono);font-size:.82rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(135deg,rgba(255,255,255,.04),transparent 46%),#0a0c0d;border:1px solid var(--line-strong);border-radius:999px}@keyframes section-pulse{0%,to{opacity:.12;transform:scale(1)}50%{opacity:.28;transform:scale(1.01)}}.skills-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.skills-grid li{display:flex;min-height:92px;align-items:center;justify-content:center;padding:18px 22px;color:var(--steel);font-weight:900;line-height:1.2;text-align:center;background:#14171ac7;border:1px solid var(--line);border-radius:999px;box-shadow:inset 0 1px #ffffff0a}.contact-section{padding-top:56px}.contact-card{padding:clamp(34px,8vw,74px);background:linear-gradient(90deg,#14171af0,#08090af0),repeating-linear-gradient(0deg,transparent 0 72px,rgba(255,255,255,.032) 72px 73px);border:1px solid var(--line-strong);border-radius:8px;box-shadow:var(--shadow)}.site-footer{display:flex;justify-content:space-between;width:min(1180px,calc(100% - 40px));margin:0 auto;padding:32px 0 46px;color:var(--muted);font-size:.82rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid var(--line)}@media (max-width: 980px){.hero{min-height:820px;padding-top:104px}.hero-copy{width:min(86vw,720px)}.portrait-frame{top:96px;right:-44px;bottom:36px;width:min(94vw,760px);max-width:none}.portrait-frame img{height:100%}.section-intro,.project-grid{grid-template-columns:1fr}.project-card{min-height:auto}.skills-grid,.direction-marks{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.site-header{padding:14px 18px}nav{gap:10px;font-size:.64rem}.wordmark{width:34px;height:34px}.hero,.section,.site-footer{width:min(100% - 28px,1180px)}.hero{min-height:800px;align-items:flex-start;padding-top:118px}.hero:before{top:12%;right:-10%;width:78vw}.hero-copy{width:100%}.hero-copy:before{top:-42px;right:-28px;bottom:-42px;left:-28px;background:linear-gradient(180deg,rgba(5,6,7,.94),rgba(5,6,7,.6) 70%,transparent 100%),linear-gradient(90deg,rgba(255,255,255,.045),transparent)}h1{font-size:clamp(3.7rem,21vw,6.2rem)}.hero-lede{font-size:1.08rem}.portrait-frame{top:86px;right:-74px;bottom:28px;width:calc(100% + 148px);-webkit-mask-image:linear-gradient(180deg,#00000052,#000 44%);mask-image:linear-gradient(180deg,#00000052,#000 44%)}.portrait-frame img{height:100%;object-position:56% 38%}figcaption{flex-direction:column}.project-meta{flex-direction:column;gap:0}.project-meta span{width:fit-content;margin-bottom:16px}.skills-grid,.direction-marks{grid-template-columns:1fr}.direction-section{padding-right:14px;padding-left:14px}.direction-panel{padding:34px 22px}.site-footer{gap:12px;flex-direction:column}}@media (prefers-reduced-motion: reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
