@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color-scheme:dark;--background: #101115;--surface: #17191f;--surface-alt: #1b1e26;--surface-raised: #20232b;--text: #f2f1f4;--text-muted: #a7a8b2;--muted: #858792;--accent: #8978e4;--accent-light: #b2a6ff;--accent-soft: rgba(137, 120, 228, .13);--border: rgba(255, 255, 255, .085);--border-strong: rgba(255, 255, 255, .14);--radius: 16px;--shadow: 0 24px 70px rgba(0, 0, 0, .2);--header-bg: rgba(16, 17, 21, .76);--diagram-line: rgba(197, 190, 225, .55);--content-width: 1180px;font-family:Inter,Helvetica Neue,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}:root[data-theme=light]{color-scheme:light;--background: #f4f2ee;--surface: #fbfaf8;--surface-alt: #efede9;--surface-raised: #eae7e2;--text: #202127;--text-muted: #5e606a;--muted: #6b6d76;--accent: #6957c8;--accent-light: #5645b2;--accent-soft: rgba(105, 87, 200, .1);--border: rgba(29, 30, 38, .1);--border-strong: rgba(29, 30, 38, .17);--shadow: 0 24px 70px rgba(50, 44, 31, .09);--header-bg: rgba(244, 242, 238, .82);--diagram-line: rgba(71, 70, 83, .45)}:root{font-family:DM Sans,Inter,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html{min-width:320px;background:var(--background);scroll-padding-top:88px}body{margin:0;background:var(--background);color:var(--text);font-size:16px;line-height:1.6;transition:background-color .25s ease,color .25s ease}body,button,a{-webkit-tap-highlight-color:transparent}button,a{font:inherit}a{color:inherit;text-decoration:none}button{color:inherit}::selection{color:#fff;background:#6957c8}.skip-link{position:fixed;z-index:100;left:16px;top:12px;padding:10px 14px;color:#fff;background:var(--accent);border-radius:8px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:2px solid var(--accent-light);outline-offset:4px;border-radius:3px}.section-wrap{width:min(var(--content-width),calc(100% - 80px));margin-inline:auto}.section-block{padding-block:clamp(80px,10vw,140px)}.site-header{position:fixed;inset:0 0 auto;z-index:20;transition:background-color .25s ease,border-color .25s ease;border-bottom:1px solid transparent}.site-header.is-scrolled{background:var(--header-bg);border-color:var(--border);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-shell{width:min(var(--content-width),calc(100% - 80px));height:76px;display:flex;align-items:center;justify-content:space-between;margin:auto}.wordmark,.footer-wordmark{font-family:Manrope,sans-serif;font-size:16px;font-weight:700;letter-spacing:-.045em}.wordmark-dot,.footer-wordmark span{color:var(--accent-light)}.nav-links{display:flex;align-items:center;gap:clamp(18px,2.4vw,34px);margin-left:auto;margin-right:32px}.nav-links a{position:relative;color:var(--text-muted);font-size:13px;transition:color .2s ease}.nav-links a:hover,.nav-links a.active{color:var(--text)}.nav-links a.active:not(.nav-resume):after{position:absolute;content:"";width:4px;height:4px;border-radius:50%;background:var(--accent-light);bottom:-9px;left:calc(50% - 2px)}.nav-links .nav-resume{color:var(--text);padding:9px 13px;border:1px solid var(--border-strong);border-radius:8px}.nav-resume span{color:var(--accent-light);margin-left:3px}.nav-actions{display:flex;align-items:center;gap:14px}.theme-toggle,.menu-toggle{display:inline-grid;place-items:center;padding:0;background:none;border:0;cursor:pointer}.theme-toggle{width:36px;height:36px;border-radius:50%;color:var(--text-muted)}.theme-toggle:hover{color:var(--text);background:var(--surface-alt)}.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.menu-toggle{display:none}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(410px,.95fr);min-height:760px;align-items:center;gap:clamp(40px,7vw,100px);padding-top:115px;padding-bottom:105px}.hero-copy{padding-top:34px}.eyebrow,.section-kicker{margin:0;color:var(--text-muted);text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700}.eyebrow{display:flex;align-items:center;gap:10px}.status-dot,.location-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#8d7ae4;box-shadow:0 0 0 4px var(--accent-soft)}.eyebrow-divider{color:var(--muted)}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(62px,7.3vw,100px);line-height:.91;letter-spacing:-.085em;margin:25px 0 20px -5px;font-weight:600}.hero h1 span{color:var(--text-muted)}.hero h2{font-family:Manrope,sans-serif;font-size:clamp(25px,3.1vw,40px);line-height:1.23;letter-spacing:-.055em;font-weight:500;margin:0}.hero-intro{max-width:480px;margin:20px 0;color:var(--text-muted);font-size:clamp(15px,1.35vw,17px);line-height:1.75}.hero-specialties{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.hero-specialties span{padding:7px 10px;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:11px}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding:0 17px;border-radius:8px;font-size:13px;font-weight:600;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:#7564d4;border:1px solid #7564d4}.button-primary:hover{background:#8373e5;border-color:#8373e5}.button-primary span{font-size:16px;font-weight:400}.button-secondary,.button-contact-secondary{color:var(--text);background:transparent;border:1px solid var(--border-strong)}.button-secondary:hover,.button-contact-secondary:hover{background:var(--surface-alt)}.hero-socials{display:flex;align-items:center;gap:20px;margin-top:45px;color:var(--text-muted);font-size:12px}.hero-socials a:hover,.hero-socials a span{color:var(--accent-light)}.hero-social-rule{width:28px;height:1px;background:var(--border-strong)}.career-note{color:var(--muted);font-size:11px}.hero-visual{position:relative;width:100%;min-height:400px;padding:17px 19px 10px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(ellipse at 50% 43%,var(--accent-soft),transparent 54%),var(--surface);box-shadow:var(--shadow);overflow:hidden}.visual-topline,.visual-foot{position:relative;z-index:1;display:flex;justify-content:space-between;color:var(--muted);font-family:Manrope,sans-serif;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.architecture{display:block;width:100%;height:auto;max-height:358px;margin:0 auto;overflow:visible;color:var(--diagram-line)}.arch-line{fill:none;stroke:url(#lineFade);stroke-width:1}.arch-line-dash{stroke-dasharray:3 7;opacity:.5}.arch-node rect{fill:var(--surface-alt);stroke:var(--border-strong);stroke-width:1}.arch-node circle{fill:#a493ff}.arch-node text{fill:var(--text);font-family:DM Sans,sans-serif;font-size:10px;font-weight:600}.arch-node text.node-sub{fill:var(--muted);font-size:7px;font-weight:500}.arch-node-primary rect{fill:var(--accent-soft);stroke:#8978e47a}.arch-node-small text{fill:var(--text-muted);font-family:DM Sans,sans-serif;font-size:9px}.flow-point{fill:#b9aaff;opacity:.85;animation:flow 6s ease-in-out infinite}.flow-two{animation-delay:-2s}.flow-three{animation-delay:-4s}@keyframes flow{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.5)}}.visual-foot{padding-top:0;text-transform:none;letter-spacing:.01em;font-size:10px}.scroll-cue{position:absolute;bottom:35px;left:0;display:flex;align-items:center;gap:11px;color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.scroll-cue-line{width:24px;height:1px;background:var(--accent)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:44px}.section-kicker{margin-bottom:17px;color:var(--accent-light)}.section-heading h2,.contact-copy h2{margin:0;font-family:Manrope,sans-serif;font-size:clamp(36px,4vw,52px);line-height:1.08;letter-spacing:-.065em;font-weight:600}.section-heading h2 em,.contact-copy h2 em{color:var(--text-muted);font-style:normal}.section-lede{max-width:355px;margin:0 0 3px;color:var(--text-muted);font-size:15px;line-height:1.8}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.expertise-card{min-height:284px;padding:23px 23px 25px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:transform .25s ease,border-color .25s ease,background-color .25s ease}.expertise-card:hover{transform:translateY(-3px);border-color:var(--border-strong)}.card-topline{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-family:Manrope,sans-serif;font-size:10px;letter-spacing:.08em}.card-topline svg{width:38px;height:38px;fill:none;stroke:var(--accent-light);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.expertise-card h3{white-space:pre-line;margin:15px 0 10px;font-family:Manrope,sans-serif;font-size:24px;line-height:1.15;letter-spacing:-.05em;font-weight:600}.expertise-card>p{max-width:310px;margin:0;color:var(--text-muted);font-size:13px;line-height:1.7}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.expertise-card .tag-list{margin-top:18px}.tag-list span{color:var(--text-muted);font-size:10px;line-height:1;padding:7px 8px;border:1px solid var(--border);border-radius:5px}.work-section{padding-top:75px}.projects-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:16px;align-items:stretch}.project-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:border-color .25s ease,transform .25s ease}.project-card:hover{border-color:var(--border-strong);transform:translateY(-2px)}.project-trac{grid-row:span 2}.project-art{position:relative;display:flex;align-items:center;justify-content:center;height:236px;overflow:hidden;background-color:var(--surface-alt)}.project-art-with-images{height:auto;min-height:0;padding:clamp(24px,3.5vw,44px) clamp(20px,4vw,48px);overflow:hidden}.project-art-with-images:has(.project-gallery-all){flex-direction:column}.project-image-gallery{display:flex;align-items:center;justify-content:center;width:100%;height:auto;gap:clamp(14px,2vw,26px);background:transparent}.project-image-gallery img{display:block;flex:1 1 0;width:100%;max-width:100%;height:auto;min-width:0;min-height:0;border:0;border-radius:0;object-fit:contain;background:transparent}.gallery-exane img{flex:0 1 calc(50% - 13px);width:calc(50% - 13px);max-width:calc(50% - 13px)}.project-art-with-images--three-landscape{padding:clamp(18px,2vw,28px) clamp(12px,1.6vw,22px)}.project-art-with-images--two-landscape{padding:clamp(20px,2.5vw,32px) clamp(14px,2vw,26px)}.project-image-gallery--three-landscape{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(12px,1.6vw,20px)}.project-image-gallery--three-landscape img{width:100%;max-width:none;height:auto;object-fit:contain}.project-image-gallery--two-landscape{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(16px,2vw,28px)}.project-image-gallery--two-landscape img{width:100%;max-width:none;height:auto;object-fit:contain}.project-image-gallery--single img{width:min(100%,1100px);max-width:100%;height:auto}.project-company-link{text-decoration-color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}.project-company-link span{color:var(--accent-light);font-size:.75em;font-weight:400}.project-trac .project-art:not(.project-art-with-images){height:398px;background:#171922}.project-gallery-all{width:100%;text-align:center}.project-gallery-all summary{width:fit-content;margin:0 auto;color:var(--accent-light);font-size:11px;cursor:pointer}.project-gallery-all-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.project-gallery-all-grid a{display:block;min-width:0;border:1px solid var(--border);border-radius:7px;overflow:hidden}.project-gallery-all-grid img{display:block;width:100%;height:auto;object-fit:contain;background:transparent}.trac-art-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}.trac-art-caption{position:absolute;left:24px;top:22px;z-index:2;display:flex;align-items:center;gap:10px;color:#d9d8e3;font-family:Manrope,sans-serif;font-size:9px;letter-spacing:.09em}.trac-art-caption small{display:block;color:#737584;font-size:7px;margin-top:3px}.trac-mark{display:grid;place-items:center;width:26px;height:26px;border:1px solid rgba(177,162,255,.5);border-radius:8px;color:#b2a4ff;font-family:serif;font-size:14px}.trac-core{position:absolute;z-index:2;display:grid;place-content:center;width:82px;height:82px;border:1px solid rgba(177,162,255,.55);border-radius:50%;color:#f0eef9;background:#22212e;box-shadow:0 0 0 9px #8978e412,0 0 45px #8978e438;text-align:center;font-family:Manrope,sans-serif;font-size:14px;font-weight:700;letter-spacing:.08em}.trac-core small{color:#9389ba;font-size:7px;letter-spacing:.16em}.trac-orbit{position:absolute;border:1px solid rgba(169,159,218,.24);border-radius:50%;transform:rotate(-28deg)}.orbit-a{width:278px;height:125px}.orbit-b{width:348px;height:173px;transform:rotate(31deg)}.orbit-c{width:415px;height:225px;transform:rotate(-8deg);opacity:.6}.trac-label{position:absolute;padding:6px 9px;border:1px solid rgba(255,255,255,.1);border-radius:5px;background:#1c1d27ed;color:#b7b2ca;font-size:8px;letter-spacing:.04em}.trac-label-a{top:29%;left:20%}.trac-label-b{bottom:25%;right:18%}.trac-label-c{top:23%;right:25%}.project-exane .project-art{background:#18383e}.project-q4w .project-art{background:#191a1d}.project-timify .project-art{background:#20252d}.exane-scene{position:absolute;top:17px;right:20px;bottom:17px;left:20px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:linear-gradient(158deg,#85999c,#61797b 54%,#435e63 55%,#34484f);box-shadow:0 18px 45px #00000040}.exane-scene:before{content:"";position:absolute;top:40px;right:0;bottom:0;left:0;background:radial-gradient(circle at 82% 28%,rgba(238,232,199,.2),transparent 20%),linear-gradient(160deg,transparent 41%,rgba(20,37,41,.24) 41.2%,transparent 42%)}.exane-top,.exane-bottom{position:relative;z-index:2;display:flex;justify-content:space-between;padding:10px 12px;color:#f2e7c2;font-family:Manrope,sans-serif;font-size:8px;letter-spacing:.12em}.exane-top{background:#1621248c}.exane-bottom{position:absolute;inset:auto 0 0;background:#152224a3}.exane-map{position:absolute;top:43px;right:0;bottom:36px;left:0;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:5px;padding:17px 38px;transform:perspective(500px) rotateX(17deg) rotate(-3deg) scale(.94)}.game-tile{position:relative;border:1px solid rgba(230,224,190,.24);border-radius:7px;background:linear-gradient(145deg,#657e7d,#506a6a);box-shadow:inset 0 0 12px #081c1f4d,0 4px 3px #0613163d}.game-tile:nth-child(3n){transform:translateY(5px);background:linear-gradient(145deg,#82958b,#63776e)}.game-tile:nth-child(4n){transform:translateY(-4px);background:linear-gradient(145deg,#566b6e,#40575a)}.game-tile:nth-child(5n){background:linear-gradient(145deg,#a08f65,#786d52)}.map-path{position:absolute;z-index:2;top:36px;right:68px;bottom:36px;left:68px;border:1px dashed rgba(245,220,142,.78);border-left-color:transparent;border-bottom-color:transparent;border-radius:48%;transform:rotate(20deg)}.map-pin{position:absolute;z-index:3;display:grid;place-items:center;width:23px;height:23px;border:2px solid #f4e4a8;border-radius:50%;color:#fff5d7;background:#b56a40;font-size:8px;box-shadow:0 0 0 4px #f4e4a82e}.pin-a{left:27%;top:57%}.pin-b{right:24%;top:20%;background:#637fa0}.project-stories .project-art{background:#27283d}.story-page{position:relative;width:75%;height:90%;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:linear-gradient(#31354f,#596785 58%,#a5a3a5 59%,#d2a37e)}.story-small{position:absolute;top:13px;left:14px;z-index:2;color:#dedcf0;font-size:7px;letter-spacing:.15em}.story-moon{position:absolute;top:30px;right:34px;width:40px;aspect-ratio:1;border-radius:50%;background:#f0dab1;box-shadow:0 0 35px #f7dda647}.story-stars{position:absolute;top:82px;left:34px;color:#e7d7b1;font-size:12px}.story-hill{position:absolute;bottom:0;width:120%;height:52%;border-radius:50% 50% 0 0}.hill-one{left:-20%;bottom:-16%;background:#4c5267;transform:rotate(-5deg)}.hill-two{right:-35%;bottom:-25%;background:#31384c;transform:rotate(9deg)}.story-book{position:absolute;z-index:2;bottom:20px;left:19px;color:#f3e8d3;font-family:Manrope,sans-serif;font-size:18px;line-height:1.1;font-weight:600;letter-spacing:-.04em}.story-book i{color:#d3bc9f;font-weight:400}.project-games .project-art{background:#20222a}.game-window{width:78%;height:75%;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#17191e;box-shadow:0 20px 38px #0000004d}.game-window-bar{display:flex;align-items:center;gap:4px;height:22px;padding:0 9px;background:#272a33}.game-window-bar i{width:5px;height:5px;border-radius:50%;background:#727583}.game-window-bar span{margin-left:auto;color:#858895;font-size:6px;letter-spacing:.1em}.game-scene{position:relative;height:calc(100% - 22px);overflow:hidden;background:linear-gradient(180deg,#323d54,#56647b 65%,#4c6670 66%)}.scene-sun{position:absolute;top:17px;right:42px;width:31px;aspect-ratio:1;border-radius:50%;background:#d9b879}.scene-mountain{position:absolute;bottom:34%;width:80%;height:55%;clip-path:polygon(0 100%,50% 0,100% 100%);background:#384657}.mountain-a{left:-5%}.mountain-b{right:-22%;bottom:29%;background:#465469;transform:scale(.84)}.scene-ground{position:absolute;bottom:0;width:100%;height:34%;background:#293641}.scene-platform{position:absolute;height:7px;border-radius:8px;background:#849187;box-shadow:0 4px #29333b}.platform-a{left:24%;bottom:40%;width:24%}.platform-b{right:16%;bottom:54%;width:21%}.scene-character{position:absolute;z-index:2;bottom:39%;left:41%;width:15px;height:23px;border-radius:7px 7px 4px 4px;background:#c78d71;box-shadow:0 -7px 0 -1px #242632}.project-content{padding:18px 20px 20px}.project-overline{display:flex;justify-content:space-between;gap:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:8px}.project-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:11px}.project-title-row h3{margin:0;font-family:Manrope,sans-serif;font-size:19px;letter-spacing:-.04em}.project-role{color:var(--muted);font-size:10px;text-align:right}.project-content>p{min-height:62px;max-width:600px;margin:9px 0 15px;color:var(--text-muted);font-size:12px;line-height:1.7}.project-details{margin-bottom:12px}.project-details summary{width:fit-content;color:var(--accent-light);font-size:11px;cursor:pointer}.project-details summary span{margin-left:7px}.project-details ul{margin:10px 0 0;padding-left:17px;color:var(--text-muted);font-size:11px;line-height:1.8}.project-tags span{font-size:9px}.experience-section{padding-top:85px}.timeline{position:relative;display:flex;flex-direction:column}.timeline:before{position:absolute;content:"";left:206px;top:11px;bottom:28px;width:1px;background:var(--border-strong)}.timeline-item{position:relative;display:grid;grid-template-columns:174px 64px 1fr;gap:0;padding:0 0 31px}.timeline-date{display:flex;flex-direction:column;align-items:end;padding-top:5px;color:var(--muted);font-size:11px;text-align:right;line-height:1.45}.date-dash{color:var(--accent)}.timeline-marker{position:relative;display:flex;justify-content:center}.timeline-marker span{position:relative;z-index:1;width:9px;height:9px;margin-top:7px;border:2px solid var(--background);border-radius:50%;background:#767783;box-shadow:0 0 0 1px #767783}.timeline-featured .timeline-marker span{background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 0 6px var(--accent-soft)}.timeline-content{min-width:0;padding:0 0 24px;border-bottom:1px solid var(--border)}.timeline-item:last-child .timeline-content{border-bottom:0}.timeline-title-row{display:flex;justify-content:space-between;gap:20px}.timeline-title-row h3{margin:0;font-family:Manrope,sans-serif;font-size:20px;line-height:1.25;letter-spacing:-.04em}.timeline-featured .timeline-title-row h3{color:var(--text)}.timeline-role{margin:5px 0 0;color:var(--accent-light);font-size:12px}.timeline-index{color:var(--muted);font-size:10px}.timeline-summary{max-width:680px;margin:12px 0 13px;color:var(--text-muted);font-size:12px;line-height:1.75}.timeline-tags span{font-size:9px}.timeline-work{margin:14px 0 15px}.timeline-gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px;color:var(--text-muted);font-size:10px}.timeline-gallery-preview{display:flex;gap:7px;overflow:hidden}.timeline-gallery-preview button{flex:0 0 auto;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:7px;background:var(--surface-alt);cursor:zoom-in}.timeline-gallery-preview img{display:block;width:clamp(112px,16vw,174px);height:76px;object-fit:cover}.timeline-gallery-open{margin-top:8px;padding:0;border:0;color:var(--accent-light);background:transparent;font:inherit;font-size:10px;cursor:pointer}.timeline-gallery-open span{margin-left:4px}.timeline-gallery-open:hover{color:var(--text)}.experience-lightbox{width:min(1080px,calc(100vw - 32px));max-width:none;max-height:94dvh;padding:0;overflow:hidden;border:1px solid var(--border-strong);border-radius:16px;color:var(--text);background:var(--surface);box-shadow:0 24px 100px #0000008c}.experience-lightbox::backdrop{background:#05070bd1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox-panel{display:flex;flex-direction:column;min-height:min(400px,70dvh);padding:clamp(14px,2vw,22px)}.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.lightbox-company{margin:0;font-size:13px;font-weight:600}.lightbox-company span{color:var(--text-muted);font-weight:400}.lightbox-counter{margin:4px 0 0;color:var(--text-muted);font-size:11px}.lightbox-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;color:var(--text);background:var(--surface-alt);font-size:25px;line-height:1;cursor:pointer}.lightbox-viewer{position:relative;display:grid;place-items:center;min-height:0;flex:1;margin:12px 0 4px}.lightbox-image{display:block;max-width:100%;max-height:calc(94dvh - 145px);width:auto;height:auto;object-fit:contain}.lightbox-arrow{position:absolute;z-index:1;top:50%;display:grid;place-items:center;width:42px;height:42px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#fff;background:#0d0f14b8;font-size:30px;line-height:1;cursor:pointer}.lightbox-arrow:hover{background:var(--accent)}.lightbox-previous{left:12px}.lightbox-next{right:12px}.lightbox-caption{margin:8px 0 0;color:var(--text-muted);font-size:12px;text-align:center}.timeline-gallery-preview button:focus-visible,.timeline-gallery-open:focus-visible,.lightbox-close:focus-visible,.lightbox-arrow:focus-visible{outline:2px solid var(--accent-light);outline-offset:3px}.skills-section{padding-top:70px}.skill-groups{border-top:1px solid var(--border-strong)}.skill-group{display:grid;grid-template-columns:minmax(185px,1fr) 3fr;gap:25px;padding:19px 0;border-bottom:1px solid var(--border)}.skill-group h3{margin:3px 0 0;font-family:Manrope,sans-serif;font-size:14px;font-weight:600}.skill-items{display:flex;flex-wrap:wrap;gap:8px}.skill-items span{padding:7px 10px;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;font-size:11px}.about-section{padding-top:90px}.about-layout{display:grid;grid-template-columns:1.4fr .8fr;gap:clamp(50px,10vw,145px);border-top:1px solid var(--border-strong);padding-top:31px}.about-copy{max-width:640px}.about-copy p{margin:0 0 17px;color:var(--text-muted);font-size:15px;line-height:1.85}.about-copy p:first-child{color:var(--text);font-size:17px}.about-location{display:flex;align-items:center;gap:10px;margin-top:25px;color:var(--text-muted);font-size:12px}.location-dot{width:6px;height:6px;flex-basis:6px}.about-aside h3{margin:0 0 13px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:9px}.language-block dl{margin:0}.language-block dl div{display:flex;justify-content:space-between;gap:20px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}.language-block dt{color:var(--text)}.language-block dd{margin:0;color:var(--text-muted)}.education-block{margin-top:30px}.education-block article{padding:10px 0;border-bottom:1px solid var(--border)}.education-years{margin:0 0 4px;color:var(--accent-light);font-size:9px}.education-block h4{margin:0;font-size:13px;font-weight:600}.education-block article>p:last-child{margin:4px 0 0;color:var(--text-muted);font-size:10px;line-height:1.6}.education-block article>p span{color:var(--accent)}.contact-section{padding-top:65px;padding-bottom:85px}.contact-panel{position:relative;display:flex;align-items:end;justify-content:space-between;min-height:355px;overflow:hidden;padding:clamp(28px,5vw,56px);border:1px solid var(--border);border-radius:18px;background:radial-gradient(ellipse at 84% 3%,var(--accent-soft),transparent 40%),var(--surface)}.contact-copy{position:relative;z-index:2;max-width:580px}.contact-copy h2{font-size:clamp(40px,5vw,64px)}.contact-copy>p:not(.section-kicker){max-width:470px;margin:17px 0 0;color:var(--text-muted);font-size:14px;line-height:1.8}.contact-side{position:relative;z-index:2;display:flex;flex-direction:column;align-items:end;gap:7px;padding-bottom:5px;color:var(--muted);font-size:10px}.contact-side a{color:var(--text-muted);font-size:12px}.contact-side a span{color:var(--accent-light);margin-left:5px}.contact-orbit{position:absolute;right:-85px;top:-220px;width:470px;height:470px;border:1px solid var(--border);border-radius:50%;box-shadow:0 0 0 36px var(--accent-soft),0 0 0 37px var(--border),0 0 0 90px #8978e40a,0 0 0 91px var(--border)}.site-footer{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:20px;padding-block:23px 35px;border-top:1px solid var(--border)}.footer-wordmark{font-size:13px}.site-footer p{margin:0;color:var(--muted);font-size:10px;text-align:center}.site-footer p span{color:var(--accent)}.footer-top{justify-self:center;color:var(--text-muted);font-size:10px}.footer-top span{color:var(--accent-light);margin-left:4px}.site-footer small{color:var(--muted);font-size:9px}@media(max-width:980px){.hero{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:32px;min-height:700px}.hero-visual{min-height:auto;padding-inline:12px}.architecture{max-height:none}.hero-socials{gap:13px}.career-note{display:none}.projects-grid{grid-template-columns:1fr 1fr}.project-trac{grid-row:auto}.project-trac .project-art{height:280px}.project-content>p{min-height:82px}}@media(max-width:760px){html{scroll-padding-top:72px}.section-wrap,.nav-shell{width:min(100% - 40px,var(--content-width))}.nav-shell{height:68px}.nav-links{position:absolute;top:67px;left:0;right:0;display:none;align-items:stretch;gap:0;padding:8px 20px 16px;background:var(--header-bg);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-links.is-open{display:flex;flex-direction:column}.nav-links a{padding:12px 0;border-bottom:1px solid var(--border);font-size:14px}.nav-links a.active:not(.nav-resume):after{display:none}.nav-links .nav-resume{width:fit-content;margin-top:12px;padding:8px 12px}.nav-actions{margin-left:auto}.menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;border-radius:50%}.menu-toggle span{display:block;width:16px;height:1px;background:var(--text);transition:transform .2s ease}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3px) rotate(-45deg)}.hero{grid-template-columns:1fr;gap:35px;min-height:0;padding-top:124px;padding-bottom:80px}.hero-copy{padding-top:0}.hero h1{font-size:clamp(66px,15vw,94px)}.hero h2{font-size:clamp(25px,7vw,35px)}.desktop-break{display:none}.hero-intro{max-width:540px}.hero-visual{max-width:520px;min-height:340px;justify-self:center;padding-inline:15px}.architecture{max-height:300px}.scroll-cue{bottom:27px}.section-block{padding-block:76px}.section-heading{align-items:start;flex-direction:column;gap:17px;margin-bottom:29px}.section-heading h2{font-size:clamp(34px,9vw,46px)}.section-lede{max-width:520px;font-size:14px}.expertise-grid{grid-template-columns:1fr;gap:10px}.expertise-card{min-height:0;padding:20px}.expertise-card h3{margin-top:10px;font-size:22px}.expertise-card .tag-list{margin-top:15px}.work-section,.experience-section,.skills-section,.about-section{padding-top:72px}.projects-grid{grid-template-columns:1fr;gap:12px}.project-trac .project-art:not(.project-art-with-images),.project-art:not(.project-art-with-images){height:250px}.project-content{padding:17px}.project-content>p{min-height:0}.project-role{max-width:128px}.trac-label-a{left:13%}.trac-label-c{right:14%}.gallery-exane{flex-direction:column}.gallery-exane img{flex:0 1 auto;width:min(100%,300px);max-width:min(100%,300px)}.timeline:before{left:6px;top:8px}.timeline-item{grid-template-columns:22px 1fr;padding-bottom:22px}.timeline-date{grid-column:2;flex-direction:row;align-items:center;gap:5px;padding:0 0 8px;text-align:left;font-size:10px}.date-dash{display:inline}.timeline-marker{grid-column:1;grid-row:1 / span 3;justify-content:flex-start}.timeline-marker span{margin-top:4px}.timeline-content{grid-column:2;padding-bottom:20px}.timeline-title-row h3{font-size:18px}.timeline-role{font-size:11px}.timeline-summary{margin-top:10px}.skill-group{grid-template-columns:1fr;gap:10px;padding:16px 0}.skill-items{gap:6px}.skill-items span{font-size:10px;padding:7px 8px}.about-layout{grid-template-columns:1fr;gap:40px;padding-top:25px}.about-copy p{font-size:14px}.about-copy p:first-child{font-size:16px}.about-aside{display:grid;grid-template-columns:1fr;gap:5px}.contact-section{padding-top:35px;padding-bottom:60px}.contact-panel{min-height:0;flex-direction:column;align-items:stretch;gap:35px;padding:28px 22px}.contact-copy h2{font-size:clamp(40px,11vw,55px)}.contact-side{align-items:start}.contact-orbit{right:-250px;top:-150px}.site-footer{grid-template-columns:1fr auto;gap:10px;padding-block:20px 28px}.site-footer p{grid-column:1;grid-row:2;text-align:left}.footer-top{grid-column:2;grid-row:1}.site-footer small{grid-column:2;grid-row:2;text-align:right}}@media(max-width:700px){.project-image-gallery--three-landscape,.project-image-gallery--two-landscape{grid-template-columns:minmax(0,1fr);gap:20px}.project-image-gallery--three-landscape img,.project-image-gallery--two-landscape img{width:100%;max-width:none}.project-gallery-all-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:400px){.section-wrap,.nav-shell{width:calc(100% - 32px)}.hero{padding-top:112px}.eyebrow{flex-wrap:wrap;gap:7px;font-size:9px}.hero h1{font-size:clamp(59px,17vw,72px)}.hero-socials{gap:12px}.hero-social-rule{width:18px}.hero-visual{min-height:290px;padding:12px 10px 9px}.architecture{min-height:230px}.visual-foot{font-size:8px}.project-title-row{align-items:start;flex-direction:column;gap:4px}.project-role{text-align:left;max-width:none}.project-art:not(.project-art-with-images){height:225px}.project-trac .project-art:not(.project-art-with-images){height:235px}.exane-scene{top:15px;right:12px;bottom:15px;left:12px}.exane-map{padding-inline:24px}}@media(max-width:760px){.timeline-gallery-preview img{width:clamp(88px,30vw,136px);height:66px}.experience-lightbox{width:calc(100vw - 16px);max-height:96dvh;border-radius:12px}.lightbox-panel{min-height:min(280px,60dvh);padding:12px}.lightbox-image{max-height:calc(96dvh - 145px)}.lightbox-arrow{width:36px;height:36px;font-size:25px}.lightbox-previous{left:5px}.lightbox-next{right:5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
