.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}html{background:#09090b}body{background:transparent}@font-face{font-family:Timess;src:url(/assets/fonts/TIMESS__.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--bg: #0E0E0E;--bg-1: #121213;--bg-2: #171719;--graphite: #1c1c1f;--graphite-2:#232327;--line: rgba(244,242,239,.12);--line-soft: rgba(244,242,239,.06);--fg: #F1EFEC;--fg-dim: rgba(241,239,236,.6);--fg-faint: rgba(241,239,236,.38);--fg-ghost: rgba(241,239,236,.22);--prism-a: oklch(.74 .105 25);--prism-b: oklch(.74 .105 200);--prism-c: oklch(.74 .105 300);--prism: linear-gradient(90deg, var(--prism-a), var(--prism-b) 52%, var(--prism-c));--serif: "Timess", "Times New Roman", Times, Georgia, serif;--sans: "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;--sub: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", "Menlo", monospace;--gutter: clamp(22px, 5vw, 92px);--ease: cubic-bezier(.22, .72, .18, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0;background:transparent;color:var(--fg);font-family:var(--sans);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:#f1efec29}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--fg);outline-offset:3px;border-radius:2px}.eyebrow{font-family:var(--sub);font-weight:400;font-size:clamp(10px,.78vw,12px);letter-spacing:.42em;text-transform:uppercase;color:var(--fg-faint)}.serif-xl{font-family:var(--serif);font-weight:300;line-height:.98;letter-spacing:.02em}.label{font-family:var(--sub);font-weight:400;font-size:clamp(10px,.8vw,12px);letter-spacing:.3em;text-transform:uppercase}.nav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:clamp(20px,2.4vw,34px) var(--gutter);padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}.nav__brand{display:inline-flex;align-items:center;gap:14px;font-family:var(--sub);font-weight:500;font-size:clamp(13px,1vw,15px);letter-spacing:.42em;text-transform:uppercase;color:var(--fg);white-space:nowrap;transition:opacity .6s var(--ease),transform .6s var(--ease)}.nav__brand img{height:34px;width:auto;display:block}.nav--hero-hidden .nav__brand{opacity:0;transform:translateY(-6px);pointer-events:none}.nav--hero-hidden.is-scrolled .nav__brand{opacity:1;transform:none;pointer-events:auto}.nav__toggle{display:inline-flex;align-items:center;gap:14px;background:none;border:0;padding:6px 0;cursor:pointer;color:var(--fg);font-family:var(--sub);font-weight:400;font-size:clamp(10px,.8vw,12px);letter-spacing:.3em;text-transform:uppercase}.nav__toggle-label{position:relative}.nav__toggle-label:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--prism);opacity:.9;transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}.nav__toggle:hover .nav__toggle-label:after{transform:scaleX(1);transform-origin:left}.nav__toggle-icon{position:relative;width:26px;height:10px}.nav__toggle-icon span{position:absolute;left:0;right:0;height:1px;background:var(--fg);transition:transform .5s var(--ease),opacity .3s var(--ease)}.nav__toggle-icon span:nth-child(1){top:0}.nav__toggle-icon span:nth-child(2){bottom:0}body.menu-open .nav__toggle-icon span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}body.menu-open .nav__toggle-icon span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}.menu{position:fixed;inset:0;z-index:90;background:#09090a8c;backdrop-filter:blur(28px) saturate(130%);display:flex;flex-direction:column;justify-content:center;padding:0 var(--gutter);opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s var(--ease)}body.menu-open .menu{opacity:1;visibility:visible}.menu__nav{display:flex;flex-direction:column}.menu a{position:relative;display:inline-flex;align-items:baseline;gap:22px;width:fit-content;font-family:var(--serif);font-weight:300;font-size:clamp(44px,8.5vw,104px);line-height:1.14;letter-spacing:.01em;color:var(--fg-dim);transform:translateY(16px);opacity:0;transition:color .5s var(--ease),transform .8s var(--ease),opacity .8s var(--ease)}.menu a .menu__idx{font-family:var(--mono);font-size:clamp(11px,1vw,13px);letter-spacing:.1em;color:var(--fg-ghost);transform:translateY(-.7em)}body.menu-open .menu a{transform:translateY(0);opacity:1}body.menu-open .menu a:nth-child(1){transition-delay:.14s}body.menu-open .menu a:nth-child(2){transition-delay:.21s}body.menu-open .menu a:nth-child(3){transition-delay:.28s}body.menu-open .menu a:nth-child(4){transition-delay:.35s}.menu a:hover{color:var(--fg)}.menu__close{position:absolute;top:clamp(20px,3vh,36px);right:clamp(20px,4vw,48px);display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;opacity:0;transform:rotate(-45deg);transition:opacity .5s ease 0s,transform .5s cubic-bezier(.77,0,.175,1) 0s}body.menu-open .menu__close{opacity:.55;transform:rotate(0);transition-delay:.35s}.menu__close:hover{opacity:1}.menu__close span{position:absolute;width:22px;height:1px;background:var(--fg)}.menu__close span:first-child{transform:rotate(45deg)}.menu__close span:last-child{transform:rotate(-45deg)}.menu a:after{content:"";position:absolute;left:0;bottom:.12em;width:100%;height:1px;background:linear-gradient(90deg,#b8860b,#f5d06a 52%,#c9930a);opacity:.9;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}.menu a:hover:after{transform:scaleX(1)}.menu__meta{position:absolute;bottom:clamp(28px,5vh,54px);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--fg-faint)}.menu__meta a{font-family:var(--sub);font-size:11px;letter-spacing:.26em;color:var(--fg-faint);transform:none;opacity:1;transition:color .4s var(--ease)}.menu__meta a:after{display:none}.menu__meta a:hover{color:var(--fg)}.btn{display:inline-flex;align-items:center;gap:14px;padding:16px 30px;border:1px solid var(--line);font-family:var(--sub);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--fg);background:transparent;cursor:pointer;position:relative;overflow:hidden;transition:border-color .6s var(--ease),color .6s var(--ease)}.btn:before{content:"";position:absolute;inset:0;background:var(--fg);transform:translate(-101%);transition:transform .6s var(--ease);z-index:-1}.btn:hover{color:var(--bg);border-color:var(--fg)}.btn:hover:before{transform:translate(0)}.btn .arrow{transition:transform .6s var(--ease)}.btn:hover .arrow{transform:translate(5px)}@media(prefers-reduced-motion:no-preference){html.js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity 2.2s var(--ease) var(--rd, 0s),transform 2.2s var(--ease) var(--rd, 0s);will-change:opacity,transform}html.js [data-reveal].in{opacity:1;transform:none}html.js [data-rise]{animation:riseIn 1.15s var(--ease) both;animation-delay:var(--rd, 0s)}html.js [data-wipe]{animation:wipeIn 1.5s var(--ease) both;animation-delay:var(--rd, 0s)}}@keyframes riseIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes wipeIn{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}@keyframes veilOut{to{opacity:0;visibility:hidden}}.veil{position:fixed;inset:0;z-index:200;background-color:var(--bg);display:flex;align-items:center;justify-content:center;transition:background-color .9s var(--ease),opacity .7s var(--ease),visibility .7s var(--ease)}html:not(.js) .veil{display:none}html.js .veil{animation:veilOut .9s var(--ease) forwards 3s}.veil__mosaic{position:absolute;inset:0;z-index:0;display:grid;gap:2px;background:var(--bg);overflow:hidden;transition:opacity .9s var(--ease)}.veil__tile{position:relative;overflow:hidden;background:var(--bg-1)}.veil__tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 2.6s var(--ease),transform 7s linear;will-change:opacity,transform}.veil__tile.lit img{transform:scale(1)}.veil__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;transition:opacity .9s var(--ease);background:radial-gradient(120% 92% at 50% 48%,#0e0e0e75,#0e0e0ebd 56%,#0e0e0eed),linear-gradient(180deg,#0e0e0e9e,#0e0e0e4d 38%,#0e0e0eb8)}.veil__logo{position:relative;z-index:2;width:min(58vw,360px);height:auto;opacity:0;transform:translateY(10px);animation:veilLogo 1.1s var(--ease) .2s forwards}.veil__line{position:absolute;z-index:2;bottom:0;left:0;height:1px;width:0%;background:var(--prism);opacity:.9;animation:veilLine 1.5s var(--ease) .2s forwards}@keyframes veilLogo{to{opacity:1;transform:none}}@keyframes veilLine{to{width:100%}}body.loaded .veil{opacity:0;visibility:hidden}html.js.veil-interactive .veil{animation:none}.veil.is-interactive{cursor:pointer}.veil__logo{will-change:transform,opacity}.veil__hint{position:absolute;z-index:2;left:50%;transform:translate(-50%);bottom:clamp(96px,24vh,220px);font-family:var(--mono);font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:#fff;opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}html.js.veil-interactive .veil__hint{animation:hintIn 6s var(--ease) 2s forwards}@keyframes hintIn{to{opacity:1}}body.pre-enter [data-rise],body.pre-enter [data-wipe]{animation-play-state:paused}.veil.entering{background-color:transparent;pointer-events:none}.veil.entering .veil__line,.veil.entering .veil__hint,.veil.entering .veil__mosaic,.veil.entering .veil__scrim{opacity:0}.veil.gone{opacity:0;visibility:hidden}[data-page-transition]{position:fixed;inset:0;z-index:12;background:#09090b66;backdrop-filter:blur(28px) saturate(130%);-webkit-backdrop-filter:blur(28px) saturate(130%);overflow:hidden;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .62s cubic-bezier(.76,0,.24,1)}[data-page-transition].pt-reveal{clip-path:polygon(0 0,0% 0,0% 100%,0 100%);transition-duration:.5s}[data-page-transition].pt-cover{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)!important;pointer-events:auto}.pg-sidebar__mid,.pg-sidebar__foot,.pg-sidebar__brand{transition:opacity .35s var(--ease)}body.pt-leaving .pg-sidebar__mid,body.pt-leaving .pg-sidebar__foot,body.pt-leaving .pg-sidebar__brand{opacity:0}.pt__canvas{position:absolute;inset:0;overflow:hidden}.pt__beams{position:absolute;inset:0;pointer-events:none}.pt__beam{position:absolute;top:50%;left:50%;width:180vmax;transform-origin:0 50%;mix-blend-mode:screen;will-change:transform,opacity}.pt__beam--1{height:82px;margin-top:-41px;background:linear-gradient(to right,transparent 0%,rgba(216,178,86,.11) 7%,rgba(216,178,86,.11) 58%,transparent 100%);filter:blur(46px);animation:ptB1 38s ease-in-out infinite}@keyframes ptB1{0%,to{transform:rotate(18deg) scaleY(1);opacity:.8}48%{transform:rotate(27deg) scaleY(1.14);opacity:1}}.pt__beam--2{height:60px;margin-top:-30px;background:linear-gradient(to right,transparent 0%,rgba(108,196,236,.09) 8%,rgba(108,196,236,.09) 62%,transparent 100%);filter:blur(38px);animation:ptB2 29s ease-in-out infinite;animation-delay:-8s}@keyframes ptB2{0%,to{transform:rotate(56deg) scaleY(1);opacity:.78}52%{transform:rotate(46deg) scaleY(1.1);opacity:1}}.pt__beam--3{height:108px;margin-top:-54px;background:linear-gradient(to right,transparent 0%,rgba(156,124,216,.1) 7%,rgba(156,124,216,.1) 60%,transparent 100%);filter:blur(56px);animation:ptB3 44s ease-in-out infinite;animation-delay:-15s}@keyframes ptB3{0%,to{transform:rotate(105deg) scaleY(1);opacity:.76}44%{transform:rotate(96deg) scaleY(1.08);opacity:1}}.pt__beam--4{height:72px;margin-top:-36px;background:linear-gradient(to right,transparent 0%,rgba(236,222,194,.08) 8%,rgba(236,222,194,.08) 55%,transparent 100%);filter:blur(42px);animation:ptB4 33s ease-in-out infinite;animation-delay:-22s}@keyframes ptB4{0%,to{transform:rotate(152deg) scaleY(1);opacity:.72}55%{transform:rotate(161deg) scaleY(1.11);opacity:1}}.pt__beam--5{height:92px;margin-top:-46px;background:linear-gradient(to right,transparent 0%,rgba(94,190,210,.09) 7%,rgba(94,190,210,.09) 60%,transparent 100%);filter:blur(50px);animation:ptB5 51s ease-in-out infinite;animation-delay:-5s}@keyframes ptB5{0%,to{transform:rotate(202deg) scaleY(1);opacity:.78}60%{transform:rotate(213deg) scaleY(1.15);opacity:1}}.pt__beam--6{height:66px;margin-top:-33px;background:linear-gradient(to right,transparent 0%,rgba(210,176,88,.09) 9%,rgba(210,176,88,.09) 58%,transparent 100%);filter:blur(40px);animation:ptB6 41s ease-in-out infinite;animation-delay:-18s}@keyframes ptB6{0%,to{transform:rotate(248deg) scaleY(1);opacity:.74}47%{transform:rotate(238deg) scaleY(1.09);opacity:1}}.pt__beam--7{height:80px;margin-top:-40px;background:linear-gradient(to right,transparent 0%,rgba(176,150,220,.1) 8%,rgba(176,150,220,.1) 60%,transparent 100%);filter:blur(44px);animation:ptB7 37s ease-in-out infinite;animation-delay:-11s}@keyframes ptB7{0%,to{transform:rotate(294deg) scaleY(1);opacity:.8}53%{transform:rotate(304deg) scaleY(1.12);opacity:1}}.pt__beam--8{height:56px;margin-top:-28px;background:linear-gradient(to right,transparent 0%,rgba(230,216,186,.08) 10%,rgba(230,216,186,.08) 55%,transparent 100%);filter:blur(36px);animation:ptB8 47s ease-in-out infinite;animation-delay:-30s}@keyframes ptB8{0%,to{transform:rotate(336deg) scaleY(1);opacity:.72}50%{transform:rotate(327deg) scaleY(1.08);opacity:1}}.pt__flares{position:absolute;inset:0;pointer-events:none}.pt__flare{position:absolute;top:50%;left:50%;border-radius:50%;mix-blend-mode:screen;will-change:transform,opacity}.pt__flare--1{width:7px;height:7px;background:radial-gradient(circle,rgba(218,182,96,.95) 0%,transparent 68%);filter:blur(2.5px);animation:ptF1 22s ease-in-out infinite}@keyframes ptF1{0%,to{transform:translate(88px,-62px) scale(1);opacity:.52}50%{transform:translate(124px,-90px) scale(1.5);opacity:.82}}.pt__flare--2{width:5px;height:5px;background:radial-gradient(circle,rgba(138,210,246,.95) 0%,transparent 68%);filter:blur(2px);animation:ptF2 17s ease-in-out infinite;animation-delay:-6s}@keyframes ptF2{0%,to{transform:translate(152px,100px) scale(1);opacity:.48}55%{transform:translate(196px,130px) scale(1.6);opacity:.78}}.pt__flare--3{width:10px;height:10px;background:radial-gradient(circle,rgba(172,142,228,.9) 0%,transparent 68%);filter:blur(4px);animation:ptF3 28s ease-in-out infinite;animation-delay:-13s}@keyframes ptF3{0%,to{transform:translate(-54px,140px) scale(1);opacity:.42}48%{transform:translate(-80px,185px) scale(1.3);opacity:.72}}.pt__flare--4{width:6px;height:6px;background:radial-gradient(circle,rgba(214,174,88,.92) 0%,transparent 68%);filter:blur(2.5px);animation:ptF4 19s ease-in-out infinite;animation-delay:-9s}@keyframes ptF4{0%,to{transform:translate(-178px,28px) scale(1);opacity:.48}52%{transform:translate(-218px,12px) scale(1.4);opacity:.78}}.pt__flare--5{width:4px;height:4px;background:radial-gradient(circle,rgba(106,198,216,.95) 0%,transparent 68%);filter:blur(2px);animation:ptF5 24s ease-in-out infinite;animation-delay:-18s}@keyframes ptF5{0%,to{transform:translate(-96px,-88px) scale(1);opacity:.44}45%{transform:translate(-122px,-116px) scale(1.7);opacity:.74}}.pt__vignette{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse 80% 80% at 50% 50%,transparent 28%,rgba(9,9,11,.42) 62%,rgba(9,9,11,.88) 100%)}.pt__logo-wrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none;isolation:isolate}.pt__logo{display:block;width:min(48vw,380px);height:auto;opacity:0;transform:scale(.97);filter:drop-shadow(0 0 28px rgba(255,246,220,.24)) drop-shadow(0 0 80px rgba(255,246,220,.1));transition:opacity .32s cubic-bezier(.22,.72,.18,1),transform .36s cubic-bezier(.22,.72,.18,1)}[data-page-transition].pt-logo-visible .pt__logo{opacity:1;transform:scale(1)}[data-page-transition].pt-reveal .pt__logo{opacity:0;transform:scale(.98);transition-duration:.2s}body.pt-arriving [data-page-body]{opacity:0}body.pt-arrived [data-page-body]{opacity:1;transition:opacity .4s var(--ease)}.media{position:relative;overflow:hidden}.slide__brief,.project__brief{max-width:42ch;font-size:clamp(12.5px,.95vw,14px);line-height:1.6;color:var(--fg-dim);margin:14px 0 0;text-wrap:pretty;opacity:0;max-height:0;transform:translateY(8px);overflow:hidden;transition:opacity .6s var(--ease),transform .6s var(--ease),max-height .7s var(--ease)}.slide:hover .slide__brief,.project:hover .project__brief{opacity:1;max-height:12em;transform:none}a.slide__link,a.project__link{display:block;color:inherit;height:100%;-webkit-user-drag:none;user-select:none}.slide__img,.project__img,.slide__media img,.project__media img{-webkit-user-drag:none;user-select:none;pointer-events:none}.slide__media,.project__media{cursor:pointer}@media(hover:none){.slide__brief,.project__brief{opacity:1;max-height:12em;transform:none;margin-top:12px}}.media-logo{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:12% 10%;opacity:0;pointer-events:none;background:#070708d1;transition:opacity .6s var(--ease)}.media-logo img{width:min(72%,340px);height:auto;transform:translateY(12px) scale(.98);opacity:0;transition:transform .8s var(--ease) .05s,opacity .8s var(--ease) .05s;filter:drop-shadow(0 10px 50px rgba(0,0,0,.5))}.logo-on .media-logo{opacity:1;pointer-events:auto}.logo-on .media-logo img{transform:none;opacity:1}.logo-on .slide__cap,.logo-on .project__cap{opacity:0;transition:opacity .35s var(--ease)}.media[data-logo-reveal]{cursor:pointer}.bio__scrim{position:fixed;inset:0;z-index:150;background:#07070899;backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s var(--ease)}.bio.is-open .bio__scrim{opacity:1;visibility:visible}.bio__panel{position:fixed;top:0;right:0;height:100svh;width:min(460px,92vw);z-index:160;background:#1010129e;backdrop-filter:blur(26px) saturate(115%);border-left:1px solid rgba(244,242,239,.16);transform:translate(100%);transition:transform .78s var(--ease),box-shadow .78s var(--ease)}.bio.is-open .bio__panel{transform:translate(0);box-shadow:-48px 0 130px #0000008c}.bio__fab{position:fixed;right:max(clamp(20px,4vw,40px),env(safe-area-inset-right));bottom:max(clamp(20px,4vw,40px),env(safe-area-inset-bottom));z-index:60;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:#10101280;backdrop-filter:blur(22px) saturate(115%);border:1px solid var(--line);box-shadow:0 8px 34px #00000059;cursor:pointer;transition:opacity .5s var(--ease),transform .5s var(--ease),background .5s var(--ease),border-color .5s var(--ease)}.bio__fab:before{content:"";position:absolute;inset:-1px;border-radius:50%;padding:1px;background:var(--prism);opacity:.5;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .5s var(--ease)}.bio__fab:hover{background:#1717199e;border-color:#f4f2ef3d}.bio__fab:hover:before{opacity:.95}.bio__fab-mark{width:24px;height:auto;display:block;opacity:.82;transition:opacity .5s var(--ease)}.bio__fab:hover .bio__fab-mark{opacity:1}.bio.is-open .bio__fab{opacity:0;transform:scale(.82);pointer-events:none}.bio__fab:after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(244,242,239,.45);opacity:0;pointer-events:none;animation:bio-fab-pulse 2.8s cubic-bezier(.25,.46,.45,.94) infinite}@keyframes bio-fab-pulse{0%{transform:scale(1);opacity:.32}to{transform:scale(1.55);opacity:0}}@media(prefers-reduced-motion:reduce){.bio__fab:after{animation:none;opacity:0}}.bio__inner{height:100%;overflow-y:auto;display:flex;flex-direction:column}.bio__hero{position:relative;flex:none;width:100%;aspect-ratio:1122 / 1402;max-height:30vh;overflow:hidden;background:var(--bg-2)}.bio__photo{width:100%;height:100%;object-fit:contain;object-position:center center;display:block}.bio__hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#070708f0,#07070873 32%,#07070800 60%);pointer-events:none}.bio__content{flex:1 1 auto;display:flex;flex-direction:column;gap:clamp(9px,1.5vh,18px);padding:clamp(16px,2.6vh,30px) clamp(28px,4vw,52px) clamp(18px,2.6vh,30px)}.bio__close{position:absolute;top:clamp(20px,3vh,30px);right:clamp(20px,2.4vw,30px);z-index:2;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:#0707086b;border:1px solid var(--line);border-radius:50%;backdrop-filter:blur(6px);color:var(--fg);cursor:pointer;transition:border-color .5s var(--ease),color .5s var(--ease)}.bio__close:hover{border-color:var(--fg);color:var(--fg)}.bio__close svg{width:15px;height:15px}.bio__name{position:absolute;z-index:2;left:clamp(24px,4vw,44px);bottom:clamp(16px,2.4vh,26px);right:clamp(20px,3vw,36px);margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(32px,4.4vw,50px);line-height:.98;letter-spacing:.02em;color:var(--fg);text-shadow:0 1px 30px rgba(0,0,0,.55)}.bio__role{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--fg-faint)}.bio__rule{height:1px;background:var(--line-soft);margin:1px 0}.bio__body{display:flex;flex-direction:column;gap:clamp(.55em,1vh,.95em)}.bio__body p{margin:0;font-size:clamp(12.5px,.9vw,14.5px);line-height:1.5;color:var(--fg-dim);text-wrap:pretty}.bio__body em{font-style:normal;color:var(--fg)}.bio__tools{padding-top:clamp(12px,1.8vh,22px)}.bio__tools-label{display:block;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:clamp(10px,1.5vh,16px)}.bio__tools-grid{display:grid;gap:clamp(9px,1.5vh,16px) 10px;margin-bottom:clamp(9px,1.5vh,14px)}.bio__tools-grid:last-child{margin-bottom:0}.bio__tools-grid--3{grid-template-columns:repeat(3,1fr)}.bio__tools-grid--4{grid-template-columns:repeat(4,1fr)}.bio__tool{display:flex;flex-direction:column;align-items:center;gap:7px}.bio__tool-slot{width:100%;height:clamp(36px,4.6vh,48px);border:0;background:transparent;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:9px}.bio__tool-img{width:100%;height:100%;object-fit:contain;display:block}.bio__tool-img--light{background:#fff}.bio__tool-name{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint);text-align:center;line-height:1.25}.bio__contact{opacity:0;transform:translateY(10px);transition:opacity .7s var(--ease) .28s,transform .8s var(--ease) .28s}.bio.is-open .bio__contact{opacity:1;transform:translateY(0)}.bio__contact-track{position:relative;height:clamp(56px,8vh,66px);border-radius:999px;background:#10101280;backdrop-filter:blur(22px) saturate(115%);-webkit-backdrop-filter:blur(22px) saturate(115%);border:1px solid var(--line)}.bio__contact-target{position:absolute;top:0;bottom:0;display:flex;align-items:center;gap:8px;padding:0 clamp(16px,2.4vw,24px);font-family:var(--sub);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-faint);text-decoration:none;transition:color .4s var(--ease)}.bio__contact-target--left{left:0}.bio__contact-target--right{right:0;flex-direction:row-reverse}.bio__contact-target:hover,.bio__contact-target.is-active{color:#b89b6a}.bio__contact-icon{width:15px;height:15px;flex-shrink:0}.bio__contact-handle{position:absolute;top:50%;left:50%;width:clamp(48px,6.4vh,56px);height:clamp(48px,6.4vh,56px);transform:translate(-50%,-50%);border-radius:50%;display:flex;align-items:center;justify-content:center;background:#141416b8;border:1px solid var(--line);color:var(--fg);box-shadow:0 10px 26px #0006;cursor:grab;touch-action:none;z-index:2;transition:box-shadow .4s var(--ease),border-color .4s var(--ease)}.bio__contact-handle:before{content:"";position:absolute;inset:-1px;border-radius:50%;padding:1px;background:var(--prism);opacity:.5;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .4s var(--ease);pointer-events:none}.bio__contact-handle svg{width:20px;height:20px;position:relative}.bio__contact-handle:hover:before,.bio__contact-handle.is-dragging:before{opacity:.95}.bio__contact-handle.is-dragging{cursor:grabbing;transition:none}.bio__contact-handle.is-dragging,.bio__contact-handle.is-committed{box-shadow:0 10px 30px #00000080}@keyframes bio-contact-hint{0%,to{transform:translate(-50%,-50%)}28%{transform:translate(calc(-50% - 14px),-50%)}64%{transform:translate(calc(-50% + 14px),-50%)}}.bio__contact-handle.is-hint{animation:bio-contact-hint 1.7s var(--ease) 1}.scroll-ind{display:inline-flex;flex-direction:column;align-items:flex-start;gap:20px}.scroll-ind__label{font-size:12px;letter-spacing:.45em;text-transform:uppercase;color:#f4f2efcc}.scroll-ind__track{width:2px;height:84px;background:#f4f2ef59;position:relative;overflow:hidden}.scroll-ind__track:after{content:"";position:absolute;left:0;top:-50%;width:100%;height:42%;background:linear-gradient(180deg,transparent,rgba(244,242,239,1) 50%,transparent);box-shadow:0 0 12px 2px #f4f2eff2;animation:scrollPulse 2.6s var(--ease) infinite}@keyframes scrollPulse{0%{top:-50%}60%,to{top:100%}}.prism-field{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--bg)}.prism-field__beam,.prism-field__glow{position:absolute;mix-blend-mode:screen;will-change:transform;opacity:.1}.prism-field__beam--1{width:58vw;height:150vh;top:-25vh;left:-8vw;filter:blur(72px);background:linear-gradient(92deg,transparent 4%,oklch(.74 .16 25 / .55) 22%,oklch(.76 .16 62 / .46) 36%,oklch(.8 .15 150 / .4) 52%,oklch(.74 .16 200 / .55) 68%,oklch(.7 .17 288 / .58) 82%,transparent 96%);animation:beamDrift1 42s cubic-bezier(.45,.05,.55,.95) infinite alternate}.prism-field__beam--2{width:38vw;height:130vh;top:-15vh;right:-6vw;filter:blur(46px);background:linear-gradient(86deg,transparent 8%,oklch(.78 .15 196 / .46) 40%,oklch(.72 .17 300 / .48) 64%,transparent 92%);animation:beamDrift2 33s cubic-bezier(.45,.05,.55,.95) infinite alternate}.prism-field__glow{border-radius:50%;filter:blur(96px)}.prism-field__glow--a{width:48vw;height:48vw;top:2%;left:-12%;background:radial-gradient(circle,oklch(.7 .15 205 / .46),transparent 66%);animation:glowBreathA 29s ease-in-out infinite}.prism-field__glow--b{width:44vw;height:44vw;bottom:-14%;right:-10%;background:radial-gradient(circle,oklch(.7 .15 300 / .44),transparent 66%);animation:glowBreathB 37s ease-in-out infinite}.prism-field:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 115% at 50% 46%,transparent 48%,rgba(14,14,14,.42) 78%,rgba(14,14,14,.86) 100%)}@keyframes beamDrift1{0%{transform:translate3d(-22vw,5vh,0) rotate(15deg) scale(1.02)}to{transform:translate3d(34vw,-7vh,0) rotate(23deg) scale(1.08)}}@keyframes beamDrift2{0%{transform:translate3d(18vw,-4vh,0) rotate(-12deg) scale(1.04)}to{transform:translate3d(-26vw,6vh,0) rotate(-19deg) scale(1)}}@keyframes glowBreathA{0%,to{transform:translateZ(0) scale(1);opacity:.084}50%{transform:translate3d(6vw,3vh,0) scale(1.16);opacity:.1}}@keyframes glowBreathB{0%,to{transform:translateZ(0) scale(1.08);opacity:.07}50%{transform:translate3d(-5vw,-4vh,0) scale(.92);opacity:.1}}@media(prefers-reduced-motion:reduce){.prism-field__beam--1,.prism-field__beam--2,.prism-field__glow--a,.prism-field__glow--b{animation:none}.scroll-ind__track:after{animation:none}[data-page-transition]{transition:none}[data-page-transition].pt-reveal{clip-path:polygon(0 0,0% 0,0% 100%,0 100%)}.pt__beam{animation:none!important}.pt__flare{animation:none!important;opacity:0!important}.pt__logo{animation:none!important;opacity:1!important;transform:scale(1)!important}.bio__panel,.bio__scrim{transition:none}.bio__contact{opacity:1;transform:none;transition:none}.bio__contact-handle{transition:none}.bio__contact-handle.is-hint{animation:none}}@media(max-width:480px){.menu a{font-size:clamp(36px,11vw,44px)}.menu{padding:0 clamp(22px,6vw,40px)}.bio__panel{width:100vw;border-left:0}.eyebrow{font-size:clamp(10px,2.4vw,12px)}}@media(max-height:500px)and (orientation:landscape){.veil__logo{width:min(32vw,260px)}.menu a{font-size:clamp(28px,6vw,44px);line-height:1.2}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
