:root{font-family:Aptos,Segoe UI Variable Display,Helvetica Neue,sans-serif;color:#f6f4ef;background:#000;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-primary: #fbf8f2;--text-soft: rgba(251, 248, 242, .72);--surface: rgba(255, 255, 255, .1);--surface-strong: rgba(255, 255, 255, .16);--border-soft: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .2);--shadow-soft: 0 20px 60px rgba(3, 10, 22, .26);--hero-statement-scale: .8}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh;background:#000}#root{position:relative}body,a,button{color:inherit}a{text-decoration:none}.portfolio-shell{--shell-padding-inline: clamp(16px, 3vw, 80px);position:relative;min-height:100vh;min-height:100dvh;overflow-x:clip;isolation:isolate;padding:clamp(18px,2vw,24px) var(--shell-padding-inline) clamp(20px,2.2vw,28px)}.smooth-scroll-viewport{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden}.smooth-scroll-viewport .portfolio-shell{width:100%}.smooth-scroll-content{will-change:transform}.topbar{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;transform:translateZ(0);opacity:1;transition:transform 1.6s cubic-bezier(.22,1,.36,1),opacity .26s ease;will-change:transform,opacity}.topbar.is-hidden{transform:translate3d(0,-135%,0);opacity:0;pointer-events:none}.topbar:before{content:"";position:absolute;top:calc(-1*clamp(18px,2vw,24px));left:calc(-1 * var(--shell-padding-inline, 12px));right:calc(-1 * var(--shell-padding-inline, 12px));bottom:calc(-1*clamp(18px,2vw,24px));background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid transparent;z-index:-1;pointer-events:none;transition:background .3s ease,backdrop-filter .3s ease,border-color .3s ease}.topbar.is-blurred:before{background:#00000080;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:#ffffff14}.brand-mark{display:inline-flex;align-items:center;justify-self:start;font-size:.9rem;font-weight:600;letter-spacing:.03em;margin-left:clamp(18px,2vw,24px);text-transform:uppercase;color:var(--text-primary)}.main-nav{position:absolute;left:50%;transform:translate(-50%);display:flex;justify-content:center;gap:clamp(18px,2.4vw,38px);padding-inline:12px}.main-nav-link,.main-nav a,.locale-switch{font-size:.9rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;color:var(--text-primary)}.main-nav-link{position:relative}.main-nav-link:after{content:"";position:absolute;left:0;right:0;bottom:-.34em;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right center;transition:transform .34s cubic-bezier(.22,1,.36,1);pointer-events:none}.main-nav-link:hover:after,.main-nav-link:focus-visible:after{transform:scaleX(1);transform-origin:left center}.hover-roll-link{position:relative;display:inline-grid;align-items:center;line-height:.98;white-space:nowrap}.hover-roll-link-track{position:relative;display:grid;overflow:hidden;height:1em}.hover-roll-link-layer{grid-area:1 / 1;display:inline-flex;gap:0}.hover-roll-link-char{display:inline-block;transition:transform .42s cubic-bezier(.22,1,.36,1),clip-path .42s cubic-bezier(.22,1,.36,1);will-change:transform,clip-path;transition-delay:calc(var(--char-index) * 10ms)}.hover-roll-link-layer.is-current .hover-roll-link-char{transform:translateY(0)}.hover-roll-link-layer.is-next .hover-roll-link-char{transform:translateY(102%)}.hover-roll-link.is-wipe .hover-roll-link-layer.is-current .hover-roll-link-char{clip-path:inset(0 0 0 0)}.hover-roll-link.is-wipe .hover-roll-link-layer.is-next .hover-roll-link-char{clip-path:inset(0 100% 0 0)}.hover-roll-link:hover .hover-roll-link-char,.hover-roll-link:focus-visible .hover-roll-link-char{transition-delay:0ms}.hover-roll-link:hover .hover-roll-link-layer.is-current .hover-roll-link-char,.hover-roll-link:focus-visible .hover-roll-link-layer.is-current .hover-roll-link-char{transform:translateY(-102%)}.hover-roll-link:hover .hover-roll-link-layer.is-next .hover-roll-link-char,.hover-roll-link:focus-visible .hover-roll-link-layer.is-next .hover-roll-link-char{transform:translateY(0)}.hover-roll-link.is-wipe:hover .hover-roll-link-layer.is-current .hover-roll-link-char,.hover-roll-link.is-wipe:focus-visible .hover-roll-link-layer.is-current .hover-roll-link-char{clip-path:inset(0 0 0 100%)}.hover-roll-link.is-wipe:hover .hover-roll-link-layer.is-next .hover-roll-link-char,.hover-roll-link.is-wipe:focus-visible .hover-roll-link-layer.is-next .hover-roll-link-char{clip-path:inset(0 0 0 0)}.hover-roll-link-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.contact-switcher{--contact-overlap: 17px;--contact-pill-width: 154px;--round-button-width: 64px;--contact-switcher-height: 64px;--contact-pill-shift: 0px;--round-button-shift: 0px;position:relative;display:inline-block;isolation:isolate;width:calc(var(--contact-pill-width) + var(--round-button-width) - var(--contact-overlap));height:var(--contact-switcher-height)}.email-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%) translateY(12px);background:var(--surface-strong);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-strong);color:var(--text-primary);font-size:.85rem;letter-spacing:.04em;padding:10px 20px;border-radius:100px;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:9999}.email-toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.contact-pill,.round-button{position:absolute;top:0;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(170deg,#ffffff38,#ffffff14,#ffffff0a);backdrop-filter:blur(5px) saturate(1.4);-webkit-backdrop-filter:blur(5px) saturate(1.4);border:.5px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #00000073,0 2px 8px #0000002e,inset 0 1px #ffffffa3,inset 0 -1px #0000001f,inset 0 0 0 1px #ffffff0f}.contact-pill:focus-visible,.round-button:focus-visible{outline:none}.contact-pill{z-index:1;left:0;min-height:64px;padding:0 30px;border-radius:999px;font-size:.96rem;font-weight:600;transform:translate3d(var(--contact-pill-shift),0,0)}.round-button{z-index:2;left:calc(var(--contact-pill-width) - var(--contact-overlap));width:64px;height:64px;border-radius:999px;transform:translate3d(var(--round-button-shift),0,0)}.contact-switcher.is-arrow-behind .contact-pill{z-index:2}.contact-switcher.is-arrow-behind .round-button{z-index:1}.hero-layout{position:relative;z-index:1;display:grid;min-height:calc(100vh - clamp(92px,11vh,120px));min-height:calc(100dvh - clamp(92px,11vh,120px));grid-template-columns:minmax(0,1.15fr) minmax(0,34vw);align-items:start;align-content:start;gap:clamp(28px,4vmin,72px);padding-top:clamp(32px,7vmin,96px);padding-bottom:clamp(148px,21vmin,300px)}.hero-copy-block{grid-column:2;align-self:start;justify-self:end;display:grid;gap:clamp(14px,1.8vmin,18px);width:min(100%,34vw);padding-top:5vw;margin-right:-7vw}.eyebrow{margin:0;font-size:.9vw;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:#fff}.hero-statement{margin:0;max-width:20ch;font-weight:400;font-variation-settings:"wght" 390;font-size:calc(2.3vw * var(--hero-statement-scale));line-height:1.101;letter-spacing:-.04em;color:var(--text-primary);text-wrap:balance}.hero-links{display:flex;flex-wrap:wrap;gap:14px 35px;margin-top:10px}.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--text-soft);font-size:1vw;font-weight:500}.text-link-icon{flex:none}.name-lockup{position:absolute;left:0;bottom:clamp(6px,1.4vmin,20px);align-self:start;display:grid;gap:0;width:min(54vw,82rem);max-width:min(54vw,82rem);margin-top:0;transform-origin:left bottom;transform:translate3d(0,calc(var(--hero-scroll-progress, 0) * -22vh),0) scale(calc(1 - (var(--hero-scroll-progress, 0) * .54)));opacity:calc(1 - (var(--hero-scroll-progress, 0) * .18));will-change:transform;cursor:default}.name-kicker{margin:0 0 12px;color:#fbf8f2bd;padding-left:.4rem;font-size:.84rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase}.name-lockup h1{margin:0;display:grid;justify-items:start;gap:clamp(.02em,.45vmin,.12em);font-family:Geist,Aptos,Segoe UI Variable Display,sans-serif;font-size:clamp(4rem,14vmin,15rem);line-height:.8;letter-spacing:-.06em;font-weight:800;color:var(--text-primary)}.name-line{display:block}.brand-mark,.text-link,.main-nav-link,.main-nav a,.locale-switch{transition:transform .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}.contact-pill,.round-button{transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .32s ease,border-color .32s ease}.contact-switcher.is-swapped .contact-pill{transform:translate3d(var(--contact-pill-shift),-2px,0);background:linear-gradient(170deg,#ffffff4d,#ffffff1f,#ffffff0f);border-color:#ffffff2e;box-shadow:0 10px 36px #0000007a,0 2px 8px #0003,inset 0 1px #ffffffc7,inset 0 -1px #0000001f,inset 0 0 0 1px #ffffff1a,inset 0 0 32px #ffffff0f}.contact-switcher.is-swapped .round-button{transform:translate3d(var(--round-button-shift),-2px,0) scale(.98)}.main-nav-link:hover,.main-nav-link:focus-visible,.main-nav a:hover,.locale-switch:hover,.text-link:hover,.brand-mark:hover{color:var(--text-primary)}.projects-section{position:sticky;top:0;z-index:1;padding-top:clamp(28px,4.6vmin,72px);padding-bottom:0}.projects-topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08)}.projects-eyebrow{margin:0;font-size:1.02rem;letter-spacing:.14em;text-transform:uppercase}.projects-eyebrow:before{content:"";display:inline-block;width:2.2rem;height:1px;margin-right:.7rem;background:currentColor;vertical-align:middle}.project-switcher{display:flex;justify-content:center;gap:clamp(18px,2.4vw,44px)}.project-switch-link{position:relative;border:0;padding:0;background:transparent;color:var(--text-primary);font:inherit;font-size:1.1rem;letter-spacing:.01em;cursor:pointer;opacity:.72;transition:opacity .22s ease}.project-switch-link:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform .28s ease}.project-switch-link:hover,.project-switch-link:focus-visible,.project-switch-link.is-active{opacity:1}.project-switch-link.is-active:after{transform:scaleX(1)}.projects-all-link{font-size:1rem;letter-spacing:.07em;text-transform:uppercase;color:var(--text-primary);white-space:nowrap;padding-right:15px}.featured-project{margin-top:18px;border:1px solid rgba(255,255,255,.11);border-radius:28px;background:#06090ee6;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:min(86vh,960px)}.featured-project-visual{position:relative;min-height:100%;padding:clamp(16px,2vw,28px);background:radial-gradient(120% 80% at 10% 0%,rgba(32,48,78,.42),transparent 62%),linear-gradient(140deg,#050a14e0,#020409f5);perspective:900px;overflow:hidden}.visual-cursor{position:fixed;width:70px;height:70px;border-radius:50%;border:.5px solid rgba(255,255,255,.2);background:#0000004d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.065em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:9999;opacity:0;transform:translate(-50%,-50%) scale(.6);transition:opacity .24s ease,transform 1s cubic-bezier(.22,1,.36,1);will-change:transform,opacity}.visual-cursor.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.visual-single-card{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;box-shadow:0 26px 44px #00000059;transform:scale(1.2);transform-style:preserve-3d;transition:transform .52s cubic-bezier(.22,1,.36,1)}.visual-single-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000000d;z-index:1;pointer-events:none}.featured-project:hover .visual-single-card{transform:scale(1.5)}.featured-project-copy{padding:clamp(24px,3.6vw,56px) clamp(18px,2.6vw,46px) clamp(12px,1.8vw,24px);display:grid;grid-template-rows:1fr auto;gap:clamp(18px,2vh,28px)}.featured-project-content{display:grid;align-content:start;gap:clamp(10px,1.7vh,22px)}.featured-project-meta{margin:-30px 0 0;font-size:1rem;letter-spacing:.04em}.featured-project h3{margin:0;font-size:clamp(2.2rem,3.8vw,4.1rem);line-height:.98;letter-spacing:-.03em;color:var(--text-primary)}.featured-project-summary{margin:0;font-size:clamp(1.05rem,1.5vw,1.6rem);line-height:1.35;color:var(--text-primary)}.featured-project-bullets{margin:0;padding-left:1.15rem;display:grid;gap:10px;color:#fbf8f2e6;font-size:clamp(.98rem,1.3vw,1.35rem);line-height:1.34}.featured-project-tags{display:flex;flex-wrap:wrap;gap:12px;padding-bottom:0}.featured-project-tags span{border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 18px;font-size:.98rem;letter-spacing:.04em;color:#fbf8f2e6}.section-header{display:grid;gap:8px;margin-bottom:clamp(28px,4vmin,52px)}.section-eyebrow{margin:0;font-size:1.02rem;letter-spacing:.14em;text-transform:uppercase;color:#fff}.section-eyebrow:before{content:"";display:inline-block;width:2.2rem;height:1px;margin-right:.7rem;background:currentColor;vertical-align:middle}.section-sub{margin:0;font-size:clamp(1rem,1.4vw,1.25rem);color:var(--text-soft);padding-left:calc(2.2rem + .7rem)}.archive-section{padding:clamp(64px,10vmin,120px) 0;border-top:1px solid var(--border-soft)}.archive-table{width:100%;border-collapse:collapse}.archive-table thead tr{border-bottom:1px solid var(--border-soft)}.archive-table th{padding:0 16px 14px;text-align:left;font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary)}.archive-table th:first-child{padding-left:16px}.archive-table th:last-child{padding-right:0;text-align:center}.archive-table tbody tr{border-bottom:1px solid var(--border-soft);transition:background .18s ease}.archive-table tbody tr:hover{background:var(--surface)}.archive-table td{padding:18px 16px;vertical-align:middle;font-size:clamp(.95rem,1.1vw,1.1rem)}.archive-table td:first-child{padding-left:16px}.archive-table td:last-child{padding-right:0;text-align:center}.archive-year{color:var(--text-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.archive-name{font-weight:600;color:var(--text-primary)}.archive-built-at,.archive-category{color:var(--text-soft)}.archive-tags{display:flex;flex-wrap:wrap;gap:8px}.archive-tags span{border:1px solid var(--border-soft);border-radius:999px;padding:4px 12px;font-size:.84rem;letter-spacing:.03em;color:var(--text-soft)}.archive-link a{display:inline-flex;align-items:center;justify-content:center;padding:10px;margin:-10px;color:var(--text-soft);transition:color .18s ease}.archive-link a:hover{color:var(--text-primary)}.archive-link-empty{color:var(--text-soft);opacity:.4}.skills-section{padding:clamp(64px,10vmin,120px) 0;border-top:1px solid var(--border-soft)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(28px,4vmin,48px)}.skill-category{display:grid;align-content:start;gap:16px}.skill-category-label{margin:0;font-size:.82rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff}.skill-list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px}.skill-item{border:1px solid var(--border-strong);border-radius:8px;padding:8px 16px;font-size:.95rem;color:var(--text-primary);background:var(--surface);transition:background .18s ease,border-color .18s ease}.skill-item:hover{background:var(--surface-strong);border-color:#ffffff52}.about-section{padding:clamp(64px,10vmin,120px) 0 clamp(80px,12vmin,160px);border-top:1px solid var(--border-soft)}.about-heading{margin:0 0 clamp(32px,5vmin,56px);font-size:clamp(2.4rem,4.5vw,5rem);font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--text-primary)}.about-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(40px,6vw,96px);align-items:start}.about-photo{position:relative}.about-photo-placeholder{width:100%;aspect-ratio:4 / 5;border-radius:20px;background:radial-gradient(120% 80% at 30% 20%,rgba(32,48,78,.55),transparent 64%),linear-gradient(150deg,#0c1426e6,#040812f5);border:1px solid var(--border-soft)}.about-photo-img{width:100%;aspect-ratio:4 / 5;border-radius:20px;object-fit:cover;object-position:center top;display:block}.about-info{display:flex;flex-direction:column}.about-info-row{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:16px;padding:clamp(20px,3vmin,36px) 0;border-bottom:1px solid var(--border-soft);align-items:baseline}.about-info-row:first-child{border-top:1px solid var(--border-soft)}.about-info-label{font-size:clamp(.65rem,.9vw,.75rem);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff}.about-info-value{font-size:clamp(.85rem,1.1vw,1rem);line-height:1.6;color:#fff}.about-bio{font-size:clamp(1.05rem,1.4vw,1.25rem);line-height:1.5;color:#fff;margin:0;padding-top:clamp(16px,3vmin,28px)}.about-yt-link{color:var(--text-soft);text-decoration:underline;transition:color .2s ease}.about-yt-link:hover{color:var(--text-primary)}@media (max-width: 860px){.about-layout{grid-template-columns:1fr}.about-photo{max-width:320px;margin-inline:auto}.about-info-row{grid-template-columns:120px 1fr}}@media (max-width: 720px){.archive-table thead{display:none}.archive-table,.archive-table tbody{display:block}.archive-table tbody tr{display:block;position:relative;padding:20px 0;border-bottom:1px solid var(--border-soft)}.archive-table td{display:block;padding:0;font-size:.88rem;border:none}.archive-table td:first-child,.archive-table td:last-child{padding-left:0;padding-right:0;text-align:left}.archive-year{margin-bottom:3px}.archive-name{margin-bottom:4px;padding-right:36px}.archive-category{display:inline}.archive-category:after{content:" · "}.archive-table .archive-built-at{display:inline}.archive-table td.archive-tags{display:flex;flex-wrap:wrap;margin-top:10px;margin-bottom:16px;column-gap:10px;row-gap:8px}.archive-link{position:absolute;top:16px;right:0;padding:0}.skills-grid{grid-template-columns:1fr 1fr}}@media (max-width: 480px){.skills-grid{grid-template-columns:1fr}}@media (max-width: 1080px),(max-height: 820px),(max-aspect-ratio: 4/3){.name-lockup h1{font-family:Aptos,Segoe UI Variable Display,Helvetica Neue,sans-serif}}@media (max-width: 1080px){.topbar{grid-template-columns:1fr;justify-items:center}.brand-mark{justify-self:center;margin-left:0}.main-nav{position:static;transform:none;left:auto;flex-wrap:wrap;justify-content:center}.topbar-actions{justify-content:center}.hero-layout{grid-template-columns:1fr;min-height:auto;gap:clamp(40px,6vmin,80px);padding-top:clamp(24px,4.5vmin,48px);padding-bottom:clamp(136px,18vmin,220px);align-items:start;align-content:start}.hero-copy-block{grid-column:auto;justify-self:start;width:min(100%,620px);margin-top:0;margin-right:0}.hero-statement{font-size:clamp(calc(2rem * var(--hero-statement-scale)),calc(9vw * var(--hero-statement-scale)),calc(3.5rem * var(--hero-statement-scale)))}.eyebrow{font-size:.82rem}.text-link{font-size:.98rem}.name-lockup{width:100%;max-width:100%;margin-top:0}.projects-topbar{grid-template-columns:1fr;justify-items:start;gap:14px}.project-switcher{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:6px}.project-switch-link{font-size:1.02rem;white-space:nowrap}.featured-project{grid-template-columns:1fr;min-height:auto}.featured-project-visual{min-height:clamp(260px,42vh,420px)}.featured-project-copy{padding:24px 22px 30px}.featured-project h3{font-size:clamp(2rem,6vw,3rem)}.featured-project-summary,.featured-project-bullets{font-size:1.05rem}}@media (max-width: 720px){.portfolio-shell{padding:18px var(--shell-padding-inline) 20px}.topbar{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:0}.topbar .brand-mark,.main-nav{display:none}.topbar-actions,.menu-button{display:flex}.hero-layout{gap:56px;min-height:calc(100svh - 62px);min-height:calc(100dvh - 62px);padding-top:48px;padding-bottom:clamp(132px,20vh,190px)}.hero-copy-block{gap:14px;margin-top:40px}.hero-statement{max-width:100%;font-size:clamp(1.25rem,5vw,1.75rem)}.hero-links{gap:10px 16px}.name-kicker{margin-bottom:8px;letter-spacing:.22em}.name-lockup h1{font-size:clamp(4.7rem,26vw,8rem)}.name-lockup{transform:translate3d(0,calc(var(--hero-scroll-progress, 0) * -12vh),0) scale(calc(1 - (var(--hero-scroll-progress, 0) * .28)))}.projects-section{position:relative;padding-top:64px}.projects-eyebrow{font-size:1rem}.projects-all-link{font-size:.8rem}.featured-project{border-radius:20px;height:auto}.featured-project-visual{min-height:300px}.visual-card{font-size:.82rem;border-radius:12px;padding:10px}.featured-project-copy{gap:14px;padding-bottom:40px}.featured-project-meta{font-size:.9rem;margin-top:20px}.featured-project h3{font-size:clamp(1.7rem,8.2vw,2.4rem)}.featured-project-summary,.featured-project-bullets{font-size:.95rem;line-height:1.35}.featured-project-tags{gap:14px}.featured-project-tags span{padding:6px 10px;font-size:.98rem}.site-footer{padding:3rem var(--shell-padding-inline, 16px)}.footer-inner{flex-direction:column;align-items:flex-start;gap:1.5rem}}@media (min-width: 1600px){.hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,34vw)}.hero-copy-block{width:min(100%,36vw)}.hero-statement{font-size:clamp(calc(2.4rem * var(--hero-statement-scale)),calc(2.8vw * var(--hero-statement-scale)),calc(4.4rem * var(--hero-statement-scale)))}.name-lockup h1{font-size:clamp(8rem,14vw,16rem)}}@media (max-height: 820px) and (min-width: 1090px){.portfolio-shell{padding-top:16px;padding-bottom:16px}.topbar{gap:16px}.contact-pill{min-height:56px;padding-inline:24px}.round-button{width:56px;height:56px}.hero-layout{min-height:calc(100vh - 88px);min-height:calc(100dvh - 88px);align-items:start;align-content:start;padding-top:16px;padding-bottom:clamp(140px,19vmin,240px)}.hero-copy-block{margin-top:0}.hero-statement{font-size:clamp(calc(1.85rem * var(--hero-statement-scale)),calc(3vw * var(--hero-statement-scale)),calc(3.2rem * var(--hero-statement-scale)))}.name-kicker{margin-bottom:8px}.name-lockup h1{font-size:clamp(4.8rem,16vw,11rem)}}@media (max-aspect-ratio: 4/3) and (min-width: 721px){.hero-layout{grid-template-columns:1fr;min-height:auto;padding-top:clamp(24px,4.5vmin,48px);padding-bottom:clamp(136px,18vmin,220px);align-items:start;align-content:start}.hero-copy-block{grid-column:auto;justify-self:start;width:min(100%,40rem);margin-top:0;margin-right:0}.name-lockup{width:100%;max-width:100%;margin-top:0}.name-lockup h1{font-size:clamp(5.4rem,14vw,10rem)}}@media (min-width: 721px) and (max-width: 1180px){.hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,30vw);gap:clamp(24px,3.2vw,44px)}.hero-copy-block{width:min(100%,30vw)}.name-lockup{width:min(50vw,40rem);max-width:min(50vw,40rem)}.name-lockup h1{font-size:clamp(4.4rem,11vw,8.8rem)}}@media (max-height: 760px){.hero-layout{padding-top:12px;padding-bottom:clamp(120px,16vmin,180px);gap:clamp(24px,3.6vmin,44px)}.name-lockup{bottom:clamp(4px,1.2vmin,14px)}.name-lockup h1{font-size:clamp(5.4rem,20vw,15rem)}}@media (prefers-reduced-motion: reduce){.topbar{transition:none}.featured-project{animation:none!important}.smooth-scroll-viewport{position:relative;inset:auto;overflow:visible}.smooth-scroll-content{will-change:auto;transform:none!important}}.menu-button{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:8px;transition:opacity .18s ease;flex-shrink:0}.menu-close-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--text-primary);cursor:pointer;border-radius:8px;transition:opacity .18s ease;flex-shrink:0}.menu-button:hover,.menu-close-button:hover{opacity:.68}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000;display:flex;flex-direction:column;padding:clamp(18px,2vw,24px) clamp(16px,3vw,24px) clamp(36px,8vw,56px);opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .26s ease,transform .32s cubic-bezier(.22,1,.36,1)}.mobile-menu.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.mobile-menu-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.mobile-menu-top .brand-mark{margin-left:0;justify-self:unset}.mobile-menu-nav{display:flex;flex-direction:column;justify-content:center;flex:1;gap:4px;padding:clamp(28px,6vh,56px) 0}.mobile-menu-link{font-size:clamp(2.6rem,12vw,4.2rem);font-weight:700;letter-spacing:-.035em;line-height:1.12;color:var(--text-primary);transition:opacity .18s ease;padding:4px 0}.mobile-menu-link:hover{opacity:.52}.mobile-menu-contact{display:inline-flex;align-items:center;gap:10px;width:fit-content;padding:16px 28px;border:1px solid rgba(255,255,255,.22);border-radius:999px;font-size:1rem;font-weight:600;letter-spacing:.03em;color:var(--text-primary);transition:background .2s ease,border-color .2s ease}.mobile-menu-contact:hover{background:#ffffff14;border-color:#ffffff5c}.archive-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (pointer: coarse){.smooth-scroll-viewport{position:relative;inset:auto;overflow:visible}.smooth-scroll-content{will-change:auto}.visual-cursor{display:none!important}.projects-section{position:relative}}.site-footer{background:#000;border-top:1px solid rgba(255,255,255,.08);padding:4rem calc(var(--shell-padding-inline, 12px) + 2.5rem);margin-inline:calc(-1 * var(--shell-padding-inline, 12px));margin-bottom:calc(-1*clamp(20px,2.2vw,28px));color:#fff}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}.footer-brand{font-size:.75rem;font-weight:600;letter-spacing:.12em;color:#fff;text-decoration:none;transition:opacity .2s}.footer-brand:hover{opacity:.7}.footer-links{display:flex;align-items:center;gap:1.5rem}.footer-link{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:#fff;text-decoration:none;transition:opacity .2s}.footer-link:hover{opacity:.7}.footer-copy{font-size:.75rem;color:#fff;margin:0}
