:root{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#152027;background:#f7fafb;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #152027;--muted: #708087;--line: #d9e3e5;--accent: #7257f4;--cyan: #58c9d0;--rail: 64px;--max: 1880px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:#f7fafb}button,a{font:inherit}a{color:inherit;text-decoration:none}button{border:0;cursor:pointer}@property --reveal-a{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --reveal-b{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --reveal-c{syntax: "<length>"; inherits: true; initial-value: 0px;}@property --wipe-angle-left{syntax: "<angle>"; inherits: true; initial-value: 0deg;}@property --wipe-angle-right{syntax: "<angle>"; inherits: true; initial-value: 0deg;}.scene-section{--pointer-x: 50%;--pointer-y: 50%;--reveal-a: 0px;--reveal-b: 0px;--reveal-c: 0px;--scatter-x: 25px;--scatter-y: 18px;--wipe-angle-left: 0deg;--wipe-angle-right: 0deg;--scene-fog-main: #30474f;--scene-fog-muted: #667980;--scene-fog-soft: #819196;--scene-fog-line: rgba(78, 103, 110, .28);--scene-fog-control: #31474f;--scene-fog-control-bg: rgba(247, 250, 251, .72);--scene-fog-control-border: rgba(102, 125, 132, .34);--scene-clear-main: #173038;--scene-clear-muted: #536a72;--scene-clear-soft: #74868c;--scene-clear-line: rgba(58, 84, 91, .28);--scene-clear-control: #203b43;--scene-clear-control-bg: rgba(247, 250, 251, .7);--scene-clear-control-border: rgba(87, 111, 118, .36);--scene-text-main: var(--scene-fog-main);--scene-text-muted: var(--scene-fog-muted);--scene-text-soft: var(--scene-fog-soft);--scene-text-line: var(--scene-fog-line);--scene-control: var(--scene-fog-control);--scene-control-bg: var(--scene-fog-control-bg);--scene-control-border: var(--scene-fog-control-border);--scene-text-accent: #7257f4;--scene-text-shadow: 0 1px 16px rgba(247, 250, 251, .2);position:relative;isolation:isolate;color:var(--scene-text-main)}.scene-clear-light{--scene-clear-main: #f1f8f5;--scene-clear-muted: rgba(231, 243, 239, .8);--scene-clear-soft: rgba(207, 227, 222, .76);--scene-clear-line: rgba(232, 246, 241, .32);--scene-clear-control: #eff8f5;--scene-clear-control-bg: rgba(11, 29, 35, .64);--scene-clear-control-border: rgba(228, 244, 239, .38);--scene-text-accent: #c0b5ff;--scene-text-shadow: 0 1px 20px rgba(4, 14, 18, .32)}.contact-section{--scene-fog-main: #e7f1ef;--scene-fog-muted: rgba(211, 228, 224, .84);--scene-fog-soft: rgba(170, 198, 195, .82);--scene-fog-line: rgba(201, 228, 222, .24);--scene-fog-control: #dcece8;--scene-fog-control-bg: rgba(13, 31, 38, .58);--scene-fog-control-border: rgba(215, 237, 231, .34);--scene-text-shadow: 0 1px 20px rgba(4, 14, 18, .28)}.scene-section.is-wiping,.scene-section.is-cleared{--scene-text-main: var(--scene-clear-main);--scene-text-muted: var(--scene-clear-muted);--scene-text-soft: var(--scene-clear-soft);--scene-text-line: var(--scene-clear-line);--scene-control: var(--scene-clear-control);--scene-control-bg: var(--scene-clear-control-bg);--scene-control-border: var(--scene-clear-control-border)}.scene-section.is-condensing{--scene-text-main: var(--scene-fog-main);--scene-text-muted: var(--scene-fog-muted);--scene-text-soft: var(--scene-fog-soft);--scene-text-line: var(--scene-fog-line);--scene-control: var(--scene-fog-control);--scene-control-bg: var(--scene-fog-control-bg);--scene-control-border: var(--scene-fog-control-border)}.scene-section>:not(.scene-backdrop):not(.scene-wiper-stage):not(.scene-wiper){z-index:2}.scene-section:not(.hero-section){content-visibility:auto;contain-intrinsic-size:0 820px}.scene-backdrop{position:absolute;z-index:0;top:0;bottom:0;left:0;width:100%;overflow:hidden;pointer-events:none;background:#eef3f4}.scene-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:var(--scene-position)}.scene-photo-preview{opacity:.96;filter:blur(25px) saturate(.5) brightness(.91);transform:scale(1.035);background:var(--scene-preview) var(--scene-position) / cover no-repeat}.scene-photo-clear{opacity:0;filter:saturate(.92) contrast(.98);transform:translateZ(0);transition:opacity .4s ease}.is-scene-loaded .scene-photo-clear{opacity:1}.scene-fog-glass{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;overflow:hidden;opacity:1;pointer-events:none;transform:translateZ(0);will-change:auto;transition:opacity 1.25s cubic-bezier(.32,.72,0,1)}.scene-wiper-reveal{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;overflow:hidden;opacity:0;pointer-events:none;contain:paint;transform:translateZ(0);will-change:auto;mask-image:linear-gradient(transparent,transparent);-webkit-mask-image:linear-gradient(transparent,transparent);mask-composite:add;-webkit-mask-composite:source-over;transition:opacity .12s ease-out}.scene-section.is-defogging .scene-wiper-reveal.scene-wipe-mask{opacity:1;mask-image:radial-gradient(ellipse var(--reveal-a) var(--reveal-b) at calc(var(--pointer-x) - 6px) calc(var(--pointer-y) + 4px),#000 0 25%,rgba(0,0,0,.74) 52%,transparent 100%),radial-gradient(ellipse var(--reveal-b) var(--reveal-c) at calc(var(--pointer-x) + var(--scatter-x)) calc(var(--pointer-y) - var(--scatter-y)),rgba(0,0,0,.9) 0 18%,rgba(0,0,0,.56) 47%,transparent 100%),radial-gradient(ellipse var(--reveal-c) var(--reveal-b) at calc(var(--pointer-x) - var(--scatter-x)) calc(var(--pointer-y) + var(--scatter-y)),rgba(0,0,0,.82) 0 15%,rgba(0,0,0,.48) 43%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse var(--reveal-a) var(--reveal-b) at calc(var(--pointer-x) - 6px) calc(var(--pointer-y) + 4px),#000 0 25%,rgba(0,0,0,.74) 52%,transparent 100%),radial-gradient(ellipse var(--reveal-b) var(--reveal-c) at calc(var(--pointer-x) + var(--scatter-x)) calc(var(--pointer-y) - var(--scatter-y)),rgba(0,0,0,.9) 0 18%,rgba(0,0,0,.56) 47%,transparent 100%),radial-gradient(ellipse var(--reveal-c) var(--reveal-b) at calc(var(--pointer-x) - var(--scatter-x)) calc(var(--pointer-y) + var(--scatter-y)),rgba(0,0,0,.82) 0 15%,rgba(0,0,0,.48) 43%,transparent 100%)}.scene-section.is-defogging .scene-wiper-reveal,.scene-section.is-wiping .scene-wiper-reveal{will-change:opacity,mask-image}.is-wiping .scene-wiper-reveal{opacity:1;transition:none;mask-image:conic-gradient(from 270deg at 49.5% 102%,#000 0deg var(--wipe-angle-left),rgba(0,0,0,.68) calc(var(--wipe-angle-left) + 4deg),transparent calc(var(--wipe-angle-left) + 11deg) 360deg),conic-gradient(from calc(90deg - var(--wipe-angle-right)) at 50.5% 102%,#000 0deg var(--wipe-angle-right),rgba(0,0,0,.68) calc(var(--wipe-angle-right) + 4deg),transparent calc(var(--wipe-angle-right) + 11deg) 360deg);-webkit-mask-image:conic-gradient(from 270deg at 49.5% 102%,#000 0deg var(--wipe-angle-left),rgba(0,0,0,.68) calc(var(--wipe-angle-left) + 4deg),transparent calc(var(--wipe-angle-left) + 11deg) 360deg),conic-gradient(from calc(90deg - var(--wipe-angle-right)) at 50.5% 102%,#000 0deg var(--wipe-angle-right),rgba(0,0,0,.68) calc(var(--wipe-angle-right) + 4deg),transparent calc(var(--wipe-angle-right) + 11deg) 360deg)}.scene-photo-reveal,.scene-photo-condensation{transition:none}.scene-reveal-residual{opacity:.03;transition:none;will-change:auto}.scene-fog-photo{position:absolute;top:-3%;right:-3%;bottom:-3%;left:-3%;opacity:.82;background:var(--scene-preview) var(--scene-position) / cover no-repeat;filter:blur(22px) saturate(.52) brightness(.86);transform:scale(1.035)}.scene-mist{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.63;background:radial-gradient(ellipse at 16% 22%,rgba(247,250,251,.58),transparent 47%),radial-gradient(ellipse at 71% 30%,rgba(218,232,235,.38),transparent 51%),radial-gradient(ellipse at 84% 78%,rgba(246,249,250,.46),transparent 48%),linear-gradient(108deg,#f7fafbb8,#d6e5e97a 48%,#f9fbfcbd)}.scene-condensation{--condense-1: 0vmax;--condense-2: 0vmax;--condense-3: 0vmax;--condense-4: 0vmax;--condense-5: 0vmax;--condense-6: 0vmax;--condense-7: 0vmax;--condense-fill: 0;position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;opacity:0;overflow:hidden;pointer-events:none;contain:paint;transform:translateZ(0);will-change:auto;mask-image:radial-gradient(ellipse var(--condense-1) calc(var(--condense-1) * .68) at 8% 18%,#000 0 54%,rgba(0,0,0,.72) 72%,transparent 100%),radial-gradient(ellipse var(--condense-2) calc(var(--condense-2) * .82) at 24% 74%,#000 0 52%,rgba(0,0,0,.68) 73%,transparent 100%),radial-gradient(ellipse var(--condense-3) calc(var(--condense-3) * .71) at 39% 28%,#000 0 55%,rgba(0,0,0,.74) 74%,transparent 100%),radial-gradient(ellipse var(--condense-4) calc(var(--condense-4) * .88) at 53% 64%,#000 0 51%,rgba(0,0,0,.7) 72%,transparent 100%),radial-gradient(ellipse var(--condense-5) calc(var(--condense-5) * .66) at 68% 17%,#000 0 56%,rgba(0,0,0,.73) 75%,transparent 100%),radial-gradient(ellipse var(--condense-6) calc(var(--condense-6) * .8) at 81% 78%,#000 0 52%,rgba(0,0,0,.69) 72%,transparent 100%),radial-gradient(ellipse var(--condense-7) calc(var(--condense-7) * .72) at 93% 41%,#000 0 55%,rgba(0,0,0,.72) 74%,transparent 100%),linear-gradient(rgba(0,0,0,var(--condense-fill)),rgba(0,0,0,var(--condense-fill)));-webkit-mask-image:radial-gradient(ellipse var(--condense-1) calc(var(--condense-1) * .68) at 8% 18%,#000 0 54%,rgba(0,0,0,.72) 72%,transparent 100%),radial-gradient(ellipse var(--condense-2) calc(var(--condense-2) * .82) at 24% 74%,#000 0 52%,rgba(0,0,0,.68) 73%,transparent 100%),radial-gradient(ellipse var(--condense-3) calc(var(--condense-3) * .71) at 39% 28%,#000 0 55%,rgba(0,0,0,.74) 74%,transparent 100%),radial-gradient(ellipse var(--condense-4) calc(var(--condense-4) * .88) at 53% 64%,#000 0 51%,rgba(0,0,0,.7) 72%,transparent 100%),radial-gradient(ellipse var(--condense-5) calc(var(--condense-5) * .66) at 68% 17%,#000 0 56%,rgba(0,0,0,.73) 75%,transparent 100%),radial-gradient(ellipse var(--condense-6) calc(var(--condense-6) * .8) at 81% 78%,#000 0 52%,rgba(0,0,0,.69) 72%,transparent 100%),radial-gradient(ellipse var(--condense-7) calc(var(--condense-7) * .72) at 93% 41%,#000 0 55%,rgba(0,0,0,.72) 74%,transparent 100%),linear-gradient(rgba(0,0,0,var(--condense-fill)),rgba(0,0,0,var(--condense-fill)));mask-composite:add;-webkit-mask-composite:source-over}.scene-section.is-condensing .scene-condensation{will-change:opacity,mask-image}.scene-condensation-fog{opacity:1;transition:none;will-change:auto}.scene-fog-legibility,.scene-reveal-legibility,.scene-legibility{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;background:#f7fafb80}.scene-fog-legibility{opacity:.72}.scene-reveal-legibility{opacity:.44}.scene-legibility{opacity:0;transition:opacity 1.1s cubic-bezier(.32,.72,0,1)}.scene-focus-hero .scene-fog-legibility,.scene-focus-hero .scene-reveal-legibility,.scene-focus-hero .scene-legibility{background:linear-gradient(90deg,#f7fafbf5,#f7fafbd4 38%,#f7fafb7a 66%,#f7fafb94)}.scene-focus-right .scene-fog-legibility,.scene-focus-right .scene-reveal-legibility,.scene-focus-right .scene-legibility{background:linear-gradient(90deg,#f7fafb8f,#f7fafb7a 46%,#f7fafbd1)}.scene-color .scene-fog-legibility,.scene-color .scene-reveal-legibility,.scene-color .scene-legibility{background:#f7fafbad}.scene-warm .scene-fog-legibility,.scene-warm .scene-reveal-legibility,.scene-warm .scene-legibility{background:#f7f8f9ab}.scene-dark:not(.contact-section) .scene-fog-legibility,.scene-dark:not(.contact-section) .scene-reveal-legibility,.scene-dark:not(.contact-section) .scene-legibility{background:#f7fafbb5}.scene-clear-light .scene-reveal-legibility,.scene-clear-light .scene-legibility{background:linear-gradient(90deg,#09141957,#09141933 42%,#091419b8)}.hero-section .scene-reveal-legibility{opacity:.59}.project-detail .scene-reveal-legibility{opacity:.54}.scene-clear-light .scene-reveal-legibility{opacity:.7}.scene-loading-line{position:absolute;z-index:4;right:0;bottom:0;left:0;height:2px;opacity:.68;background:linear-gradient(90deg,transparent,rgba(114,87,244,.82),transparent);transform:translate(-100%);animation:scene-loading 1.7s cubic-bezier(.32,.72,0,1) infinite;transition:opacity .35s}.is-scene-loaded .scene-loading-line{opacity:0;animation-play-state:paused}@keyframes scene-loading{to{transform:translate(100%)}}.scene-wiper-stage{position:absolute;z-index:4;top:0;bottom:0;left:0;width:100%;overflow:hidden;pointer-events:none}.scene-wiper-blade{position:absolute;bottom:-24px;left:50%;width:min(48vw,920px);opacity:0;visibility:hidden;will-change:transform,opacity}.scene-wiper-blade img{display:block;width:100%;height:auto;pointer-events:none;filter:none}.scene-wiper-left{transform:translate(-100%);transform-origin:98.5% 50%}.scene-wiper-right{transform-origin:1.5% 50%}.scene-wiper-right img{transform:scaleX(-1)}.scene-wiper{position:absolute;z-index:5;right:clamp(14px,1.8vw,30px);bottom:clamp(14px,1.8vw,28px);display:grid;place-items:center;width:34px;height:34px;padding:0;color:var(--scene-control);border:1px solid var(--scene-control-border);border-radius:50%;background:var(--scene-control-bg);box-shadow:inset 0 1px #ffffffbd,0 9px 24px #243b431a;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);text-shadow:var(--scene-text-shadow);transition:color .48s cubic-bezier(.32,.72,0,1),background .48s cubic-bezier(.32,.72,0,1),text-shadow .48s cubic-bezier(.32,.72,0,1),border-color .48s cubic-bezier(.32,.72,0,1),transform .28s cubic-bezier(.32,.72,0,1),opacity .28s}.scene-wiper:hover{color:var(--scene-control-bg);background:var(--scene-control);transform:translateY(-2px)}.scene-wiper:active{transform:translateY(0) scale(.96)}.scene-wiper:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.scene-wiper:disabled{cursor:default;opacity:.48}.scene-wiper:disabled:hover{color:var(--scene-control);background:var(--scene-control-bg);transform:none}.is-cleared{--reveal-a: 120vw;--reveal-b: 120vw;--reveal-c: 120vw}.is-cleared .scene-backdrop>.scene-fog-glass{opacity:.03}.is-condensing .scene-condensation{opacity:1}.is-cleared .scene-legibility{opacity:.44}.hero-section.is-cleared .scene-legibility{opacity:.59}.project-detail.is-cleared .scene-legibility{opacity:.54}.scene-clear-light.is-cleared .scene-legibility{opacity:.7}.hero-section .scene-wiper{right:18px;bottom:68px}.statement-section .scene-wiper,.project-detail .scene-wiper,.capabilities-section .scene-wiper{top:22px;bottom:auto}.site-shell{position:relative;z-index:1;min-height:100vh;padding-left:var(--rail)}.side-rail{position:fixed;z-index:20;inset:0 auto 0 0;width:var(--rail);display:flex;align-items:center;flex-direction:column;padding:22px 0 26px;color:#284149;border-right:1px solid rgba(205,219,222,.75);background:#f1f7f8b8;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.monogram{display:grid;place-items:center;width:36px;height:36px;color:#fff;font-size:11px;font-weight:800;border-radius:50%;background:var(--ink)}.rail-line{width:1px;flex:1;margin:28px 0;background:linear-gradient(to bottom,transparent,#bed0d3 20%,#bed0d3 80%,transparent)}.rail-label,.rail-bottom{font-family:DM Mono,monospace;font-size:9px;letter-spacing:.12em;writing-mode:vertical-rl;transform:rotate(180deg);color:#819196}.rail-bottom{color:#526a72}.top-nav{position:relative;z-index:2;width:min(calc(100% - 42px),var(--max));height:82px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.wordmark{font-size:17px;font-weight:700;letter-spacing:-.05em}.wordmark span{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:34px;margin-left:auto;margin-right:26px;font-size:12px;color:#62747b}.nav-links a{transition:color .2s ease}.nav-links a:hover{color:var(--ink)}.nav-actions{display:flex;align-items:center;gap:14px}.nav-github{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;color:#fff;font-size:11px;border-radius:999px;background:var(--ink);transition:transform .2s ease,background .2s ease}.nav-github:hover{transform:translateY(-2px);background:#25424b}.menu-toggle{display:none;place-items:center;width:36px;height:36px;color:var(--ink);background:transparent}.section-pad{width:100%;max-width:none;margin:0 auto;padding-right:clamp(21px,3vw,58px);padding-left:clamp(21px,3vw,58px)}.hero-section{position:relative;min-height:calc(100dvh - 82px);display:grid;grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);align-items:center;gap:clamp(34px,4vw,78px);padding-top:42px;padding-bottom:68px}.hero-copy{padding-left:clamp(20px,5vw,92px)}.eyebrow,.section-kicker{display:flex;align-items:center;gap:9px;margin:0;color:var(--scene-text-soft);font:10px DM Mono,monospace;letter-spacing:.12em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.eyebrow span{display:block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px #7257f41a}h1,h2,h3,p{margin-top:0}.scene-section h1,.scene-section h2,.scene-section h3{color:var(--scene-text-main);text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}h1 em,h2 em{color:var(--scene-text-accent);font-style:normal;transition:color .52s cubic-bezier(.32,.72,0,1)}.hero-copy h1{max-width:760px;margin:25px 0 28px;color:var(--scene-text-main);font-size:clamp(54px,5.8vw,98px);line-height:.92;letter-spacing:-.078em;font-weight:700}.hero-description{max-width:480px;color:var(--scene-text-muted);font-size:14px;line-height:1.85;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:0 16px 0 20px;white-space:nowrap;font-size:11px;font-weight:600;border-radius:999px;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0) scale(.98)}.button-dark{color:var(--scene-control-bg);border:1px solid var(--scene-control);background:var(--scene-control);box-shadow:0 12px 30px #15202726;transition:color .52s cubic-bezier(.32,.72,0,1),background .52s cubic-bezier(.32,.72,0,1),border-color .52s cubic-bezier(.32,.72,0,1),transform .2s ease,box-shadow .2s ease}.button-dark:hover{color:var(--scene-control-bg);background:var(--scene-text-main);border-color:var(--scene-text-main);box-shadow:0 16px 32px #15202733}.button-quiet{color:var(--scene-text-main);border:1px solid var(--scene-text-line);background:#ffffff85;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),background .52s cubic-bezier(.32,.72,0,1),border-color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1),transform .2s ease,box-shadow .2s ease}.button-quiet:hover{color:var(--scene-control);border-color:var(--scene-control-border);background:var(--scene-control-bg);box-shadow:0 10px 24px #314f5817}.hero-art{position:relative;min-height:556px;display:flex;align-items:center;padding:20px 0 47px}.hero-project-carousel{width:100%}.carousel-stage{position:relative;height:392px;perspective:1400px;transform-style:preserve-3d}.carousel-card{--card-accent: #7257f4;--card-soft: #e9e5ff;position:absolute;top:11px;right:26px;bottom:20px;left:8px;display:grid;grid-template-rows:38px 1fr 48px;overflow:hidden;border:1px solid rgba(190,205,209,.9);border-radius:16px;background:#fcfefff7;box-shadow:0 28px 60px #2b464f1f;transform-origin:50% 108%;backface-visibility:hidden;transition:transform .92s cubic-bezier(.22,.72,.22,1),opacity .58s ease,filter .58s ease,box-shadow .58s ease}.carousel-card.violet{--card-accent: #7257f4;--card-soft: #e8e3ff}.carousel-card.blue{--card-accent: #3f83e8;--card-soft: #dcecff}.carousel-card.mint{--card-accent: #2f9c86;--card-soft: #d8f0e9}.carousel-card.is-current{z-index:3;opacity:1;filter:none;transform:translateZ(0) rotate(-.7deg) rotateY(0) scale(1)}.carousel-card.is-next{z-index:2;opacity:.82;filter:saturate(.82);transform:translate3d(43px,-17px,-80px) rotate(4.2deg) rotateY(-7deg) scale(.95)}.carousel-card.is-back{z-index:1;opacity:.58;filter:saturate(.58);transform:translate3d(-38px,-5px,-145px) rotate(-5deg) rotateY(8deg) scale(.9)}.carousel-card-top,.carousel-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 14px;color:#667a81;font:8px DM Mono,monospace;letter-spacing:.08em}.carousel-card-top{border-bottom:1px solid #dde6e8}.carousel-card-bottom{color:#5f747b;border-top:1px solid #dde6e8}.carousel-card-bottom strong{color:#233840;font:600 13px Manrope,sans-serif;letter-spacing:-.035em}.carousel-media{position:relative;overflow:hidden;margin:12px;border:1px solid rgba(190,205,209,.78);border-radius:11px;background:#f2f6f7}.media-haze{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.8;background:linear-gradient(125deg,var(--card-soft),rgba(255,255,255,.88) 46%,#eef5f6)}.media-shape{position:absolute;z-index:1;border:1px solid rgba(255,255,255,.7);background:var(--card-accent);opacity:.76;box-shadow:0 22px 48px #2d445824}.media-shape-one{width:46%;height:78%;top:-18%;left:-9%;border-radius:20% 48% 34% 42%;transform:rotate(15deg)}.media-shape-two{width:30%;height:46%;right:-4%;bottom:-15%;border-radius:44% 28% 48% 34%;opacity:.28;transform:rotate(-22deg)}.media-window{position:absolute;z-index:2;top:15%;right:7%;bottom:13%;width:65%;overflow:hidden;border:1px solid rgba(255,255,255,.94);border-radius:10px;background:#ffffffc2;box-shadow:0 22px 46px #30475829;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:rotate(-1.2deg)}.media-window-bar{height:27px;display:flex;align-items:center;gap:5px;padding:0 10px;border-bottom:1px solid rgba(124,147,154,.18)}.media-window-bar i{width:5px;height:5px;border-radius:50%;background:#4b5e6661}.media-window-body{height:calc(100% - 27px);display:grid;grid-template-columns:23% 1fr}.media-sidebar{border-right:1px solid rgba(124,147,154,.16);background:#f5f9fa94}.media-content{padding:19px 17px}.media-title-line,.media-copy-line{height:6px;margin-bottom:9px;border-radius:4px;background:#32474f2e}.media-title-line{width:54%;height:12px;background:var(--card-accent);opacity:.68}.media-copy-line{width:76%}.media-copy-line.short{width:43%}.media-actions{display:flex;gap:7px;margin-top:24px}.media-actions i{width:30%;height:43px;border:1px solid rgba(118,141,148,.18);border-radius:6px;background:#ffffffb8}.media-icon{position:absolute;z-index:3;left:12%;bottom:18%;display:grid;place-items:center;width:58px;height:58px;color:#fff;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:var(--card-accent);box-shadow:0 15px 30px #2339462b}.media-placeholder{position:absolute;z-index:3;top:19px;left:18px;color:#22343c9e;font:8px DM Mono,monospace;letter-spacing:.1em}.carousel-caption{min-height:71px;display:grid;grid-template-columns:minmax(130px,.42fr) 1fr;gap:24px;align-items:center;margin:7px 24px 0 8px;padding:10px 0;border-bottom:1px solid #dce5e7}.carousel-caption>div{display:grid;gap:4px}.carousel-caption span{color:#7c8d92;font:8px DM Mono,monospace;letter-spacing:.08em}.carousel-caption strong{color:#243940;font-size:17px;letter-spacing:-.05em}.carousel-caption p{max-width:410px;margin:0;color:#6b7d83;font-size:10px;line-height:1.6}.carousel-controls{display:flex;align-items:center;justify-content:flex-end;gap:11px;margin:13px 24px 0 8px}.carousel-controls>button{display:grid;place-items:center;width:30px;height:30px;color:#465d65;border:1px solid #cad7da;border-radius:50%;background:#ffffff9e;transition:color .2s ease,border-color .2s ease,transform .2s ease,background .2s ease}.carousel-controls>button:hover{color:#fff;border-color:var(--ink);background:var(--ink);transform:translateY(-1px)}.rotate-left{transform:rotate(-135deg)}.carousel-dots{display:flex;align-items:center;gap:7px;padding:0 5px}.carousel-dots button{width:20px;height:2px;padding:0;background:#c9d4d7;transition:width .35s ease,background .35s ease}.carousel-dots button.is-active{width:37px;background:var(--accent)}.art-caption{position:absolute;z-index:3;right:0;bottom:17px;left:0;display:flex;justify-content:space-between;color:var(--scene-text-soft);font:8px DM Mono,monospace;letter-spacing:.1em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.hero-footer{position:absolute;right:0;bottom:17px;left:0;display:flex;align-items:center;gap:16px;padding:0 6px;color:var(--scene-text-soft);font:9px DM Mono,monospace;letter-spacing:.08em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.hero-footer span:nth-child(2){margin-left:auto}.statement-section,.projects-section,.capabilities-section,.contact-section{border-top:1px solid rgba(217,227,229,.72)}.statement-section{position:relative;display:grid;grid-template-columns:19% 1fr 22%;gap:30px;min-height:clamp(780px,65vw,1240px);padding-top:112px;padding-bottom:110px}.section-index{color:var(--scene-text-soft);font:10px DM Mono,monospace;letter-spacing:.08em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.statement-content{max-width:750px}.statement-content h2,.section-heading h2,.contact-content h2{margin:18px 0 28px;font-size:clamp(42px,5.8vw,88px);line-height:.95;letter-spacing:-.08em;font-weight:600}.statement-content h2 span,.section-heading h2 span{color:var(--scene-text-accent);transition:color .52s cubic-bezier(.32,.72,0,1)}.statement-body{max-width:460px;color:var(--scene-text-muted);font-size:14px;line-height:1.85;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.statement-side{align-self:end;display:flex;align-items:flex-start;gap:14px;padding-bottom:9px;color:var(--scene-text-soft);font:11px DM Mono,monospace;line-height:1.6;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.side-rule{width:38px;margin-top:8px;border-top:1px solid var(--accent)}.projects-section{padding:0}.project-detail-stack{margin-top:0}.project-detail{min-height:clamp(780px,65vw,1240px);display:grid;grid-template-columns:58px minmax(520px,1.18fr) minmax(360px,.82fr);gap:clamp(30px,4vw,86px);align-items:center;padding:72px 0;scroll-margin-top:76px;opacity:.82;transition:opacity .35s ease}.project-detail.is-active{opacity:1}.project-detail-index{align-self:start;padding-top:8px;color:var(--scene-text-soft);font:9px DM Mono,monospace;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.detail-visual{--detail-accent: #7257f4;position:relative;min-height:390px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent}.detail-visual.violet{--detail-accent: #7257f4;--detail-soft: #e8e3ff}.detail-visual.blue{--detail-accent: #3f83e8;--detail-soft: #dcecff}.detail-visual.mint{--detail-accent: #2f9c86;--detail-soft: #d8f0e9}.detail-visual-grid{position:absolute;top:10%;right:4%;bottom:10%;left:4%;opacity:.27;background-image:linear-gradient(rgba(90,111,116,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(90,111,116,.12) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent);mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent)}.detail-visual-orbit{position:absolute;border:1px solid color-mix(in srgb,var(--detail-accent) 34%,white);border-radius:50%;transform:rotate(-18deg)}.orbit-a{width:75%;height:58%}.orbit-b{width:45%;height:88%;transform:rotate(28deg)}.detail-visual-signal{position:relative;z-index:2;display:grid;place-items:center;width:92px;height:92px;color:#fff;border-radius:50%;background:var(--detail-accent);box-shadow:0 18px 42px color-mix(in srgb,var(--detail-accent) 28%,transparent)}.detail-visual-label,.detail-visual-caption{position:absolute;z-index:2;color:var(--scene-text-soft);font:8px DM Mono,monospace;letter-spacing:.1em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.detail-visual-label{top:20px;left:24px}.detail-visual-caption{right:24px;bottom:20px;max-width:55%;text-align:right}.detail-copy{max-width:430px}.detail-copy-meta{display:flex;justify-content:space-between;gap:16px;color:var(--scene-text-soft);font:8px DM Mono,monospace;letter-spacing:.07em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.detail-copy h3{margin:38px 0 19px;color:var(--scene-text-main);font-size:clamp(42px,4vw,68px);line-height:.9;letter-spacing:-.075em}.detail-copy>p{max-width:390px;color:var(--scene-text-muted);font-size:13px;line-height:1.75;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.detail-facts{margin-top:38px;border-top:1px solid var(--line)}.detail-facts div{display:grid;grid-template-columns:105px 1fr;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.detail-facts{border-top-color:var(--scene-text-line);transition:border-color .52s cubic-bezier(.32,.72,0,1)}.detail-facts div{border-bottom-color:var(--scene-text-line);transition:border-color .52s cubic-bezier(.32,.72,0,1)}.detail-facts span{color:var(--scene-text-soft);font:8px DM Mono,monospace;letter-spacing:.08em;transition:color .52s cubic-bezier(.32,.72,0,1)}.detail-facts strong{color:var(--scene-text-muted);font-size:10px;font-weight:500;line-height:1.5;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.capabilities-section{min-height:clamp(780px,65vw,1240px);padding-top:112px;padding-bottom:120px}.capabilities-heading{margin-bottom:68px}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr)}.capability{min-height:240px;padding:22px 34px 20px 0}.capability+.capability{padding-left:32px}.capability-top{display:flex;justify-content:space-between;color:var(--scene-text-accent);font:10px DM Mono,monospace;transition:color .52s cubic-bezier(.32,.72,0,1)}.capability h3{margin:56px 0 14px;font-size:23px;letter-spacing:-.06em}.capability p{max-width:290px;margin:0;color:var(--scene-text-muted);font-size:12px;line-height:1.75;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.contact-section{width:100%;max-width:none;min-height:clamp(780px,65vw,1240px);display:flex;flex-direction:column;justify-content:space-between;padding:30px clamp(21px,3vw,58px) 31px;background:transparent;color:var(--scene-text-main)}.contact-section .scene-photo-preview,.contact-section .scene-fog-photo{filter:blur(18px) saturate(.68) brightness(.58)}.contact-section .scene-photo-clear{filter:saturate(.9) brightness(.68) contrast(1.05)}.contact-section .scene-mist{opacity:.48;background:radial-gradient(ellipse at 18% 24%,rgba(192,216,221,.2),transparent 45%),radial-gradient(ellipse at 77% 66%,rgba(111,145,155,.16),transparent 51%),linear-gradient(108deg,#1930388a,#11242b47,#1b32397d)}.contact-section .scene-fog-legibility{opacity:.88;background:linear-gradient(90deg,#0a191fd1,#0e1f26a3 52%,#0d1b21b8)}.contact-section .scene-reveal-legibility,.contact-section .scene-legibility{background:linear-gradient(90deg,#0a191fd1,#0e1f26a3 52%,#0d1b21b8)}.contact-section .scene-reveal-legibility{opacity:.54}.contact-section .scene-legibility{opacity:0}.contact-section.is-cleared .scene-legibility{opacity:.54}.contact-section .scene-wiper{top:28px;right:clamp(20px,3vw,58px);bottom:auto;color:var(--scene-control);border-color:var(--scene-control-border);background:var(--scene-control-bg)}.contact-section .scene-wiper:hover{color:var(--scene-control-bg);background:var(--scene-control)}.contact-section .section-kicker,.contact-location{color:var(--scene-text-soft);text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}.contact-top,.contact-footer{width:min(100%,var(--max));margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.contact-top{padding-bottom:26px;border-bottom:1px solid var(--scene-text-line);transition:border-color .52s cubic-bezier(.32,.72,0,1)}.contact-location,.contact-footer{font:9px DM Mono,monospace;letter-spacing:.08em}.contact-content{width:min(100%,var(--max));margin:0 auto;display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:70px 7% 80px}.contact-content h2{margin:0;color:var(--scene-text-main);font-size:clamp(50px,7vw,110px);line-height:.9}.contact-content h2 em{color:var(--scene-text-accent)}.contact-actions{display:flex;align-items:center;gap:12px;padding-bottom:7px}.contact-email{display:inline-flex;align-items:center;gap:13px;color:var(--scene-text-muted);font-size:13px;border-bottom:1px solid var(--scene-text-line);padding-bottom:9px;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1),border-color .52s cubic-bezier(.32,.72,0,1)}.copy-button{display:grid;place-items:center;width:35px;height:35px;color:var(--scene-text-muted);border:1px solid var(--scene-text-line);border-radius:50%;background:transparent;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1),border-color .52s cubic-bezier(.32,.72,0,1)}.contact-footer{padding-top:23px;border-top:1px solid var(--scene-text-line);color:var(--scene-text-soft);text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1),border-color .52s cubic-bezier(.32,.72,0,1)}.contact-footer div{display:flex;gap:22px}.contact-footer a{display:inline-flex;align-items:center;gap:6px;transition:color .2s ease}.contact-footer a:hover{color:var(--scene-text-main)}.photography-credit{position:absolute;z-index:3;right:clamp(20px,3vw,58px);bottom:9px;color:var(--scene-text-soft);font:8px DM Mono,monospace;letter-spacing:.06em;text-shadow:var(--scene-text-shadow);transition:color .52s cubic-bezier(.32,.72,0,1),text-shadow .52s cubic-bezier(.32,.72,0,1)}@media(max-width:1050px){:root{--rail: 58px}.section-pad{width:100%;padding-right:30px;padding-left:30px}.hero-section{grid-template-columns:1fr;padding-top:62px}.hero-copy{padding-left:0}.hero-art{min-height:540px}.statement-section{grid-template-columns:13% 1fr 20%}.project-detail{min-height:660px;grid-template-columns:42px minmax(330px,1fr) minmax(250px,.88fr)}}@media(max-width:700px){:root{--rail: 0px}.site-shell{padding-left:0}.side-rail{display:none}.top-nav{width:calc(100% - 36px);height:70px}.nav-links{position:fixed;z-index:15;inset:70px 0 auto;display:none;flex-direction:column;align-items:flex-start;gap:22px;margin:0;padding:26px 18px 31px;border-bottom:1px solid var(--line);background:#f7fafbf2;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.nav-links.is-open{display:flex}.nav-github{padding:9px}.nav-github span{display:none}.menu-toggle{display:grid}.section-pad{width:100%;padding-right:18px;padding-left:18px}.hero-section{min-height:auto;padding-top:60px;padding-bottom:84px}.hero-copy h1{font-size:clamp(48px,14vw,76px)}.hero-description{font-size:13px}.hero-art{min-height:480px;padding-top:38px}.carousel-stage{height:270px}.carousel-card{top:8px;right:12px;bottom:16px;left:2px;grid-template-rows:31px 1fr 38px;border-radius:13px}.carousel-card.is-next{transform:translate3d(25px,-12px,-60px) rotate(4deg) rotateY(-6deg) scale(.94)}.carousel-card.is-back{transform:translate3d(-22px,-4px,-110px) rotate(-5deg) rotateY(7deg) scale(.88)}.carousel-card-top,.carousel-card-bottom{padding:0 10px;font-size:6px}.carousel-card-bottom strong{font-size:10px}.carousel-media{margin:8px;border-radius:9px}.media-window{top:15%;right:7%;bottom:13%;width:65%}.media-icon{width:40px;height:40px;left:10%;bottom:15%}.media-icon svg{width:19px;height:19px}.media-placeholder{top:12px;left:12px;font-size:6px}.media-content{padding:11px 10px}.media-window-bar{height:18px;padding:0 7px}.media-window-bar i{width:3px;height:3px}.media-window-body{height:calc(100% - 18px)}.media-title-line{height:8px;margin-bottom:6px}.media-copy-line{height:4px;margin-bottom:6px}.media-actions{gap:4px;margin-top:13px}.media-actions i{height:24px}.carousel-caption{min-height:75px;grid-template-columns:1fr;gap:5px;margin:8px 12px 0 2px;padding:10px 0}.carousel-caption strong{font-size:16px}.carousel-caption p{font-size:10px}.carousel-controls{margin-right:12px}.art-caption{font-size:6px}.hero-footer{bottom:13px}.statement-section{display:block;min-height:0;padding-top:76px;padding-bottom:80px}.statement-content{margin:74px 0 0}.statement-content h2,.section-heading h2{font-size:clamp(48px,14vw,76px)}.statement-side{margin-top:58px}.projects-section,.capabilities-section{padding-top:78px;padding-bottom:80px}.section-heading{display:block;margin-bottom:42px}.section-aside{margin:30px 0 0}.project-row{grid-template-columns:36px 1fr 24px;padding:19px 0}.project-type{display:none}.project-name{font-size:21px}.project-stage{margin-bottom:40px}.project-detail{display:block;min-height:0;padding:40px 0 48px}.project-detail-index{margin-bottom:18px}.detail-visual{min-height:275px}.detail-copy{max-width:none;padding-top:34px}.detail-copy-meta{font-size:7px}.detail-copy h3{margin:27px 0 15px;font-size:52px}.detail-copy>p{font-size:12px}.detail-facts{margin-top:28px}.detail-facts div{grid-template-columns:86px 1fr;gap:12px}.capability-grid{display:block}.capability,.capability+.capability{min-height:0;padding:22px 0 28px;border-left:0}.capability h3{margin-top:40px}.contact-section{min-height:620px;padding:22px 18px 24px}.contact-top,.contact-footer{align-items:flex-start;flex-direction:column}.contact-content{display:block;padding:48px 0}.contact-content h2{font-size:clamp(54px,15vw,88px)}.contact-actions{margin-top:52px}.contact-footer div{flex-wrap:wrap;gap:14px 20px}}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio-assets/manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(/portfolio-assets/manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/portfolio-assets/manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(/portfolio-assets/manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/portfolio-assets/manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(/portfolio-assets/manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(/portfolio-assets/manrope-latin-700-normal-BZp_XxE4.woff2) format("woff2"),url(/portfolio-assets/manrope-latin-700-normal-DGRFkw-m.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:800;src:url(/portfolio-assets/manrope-latin-800-normal-BfWYOv1c.woff2) format("woff2"),url(/portfolio-assets/manrope-latin-800-normal-uHUdIJgA.woff) format("woff")}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/portfolio-assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/portfolio-assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff")}
