@font-face{font-variation-settings:normal;font-family:inter;src:url(/_next/static/media/5678e9b0dc22dee2-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:inter Fallback;src:local("Arial");ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.00%;size-adjust:107.89%}.__className_aba651{font-family:inter,inter Fallback}.__variable_aba651{--font-inter:"inter","inter Fallback"}:root,[data-theme=dark]{color-scheme:dark;--bg:#141414;--bg-1:#1a1a1a;--bg-2:#282828;--bg-card:#212121;--text:#ffffff;--text-2:rgba(255,255,255,0.6);--text-3:rgba(255,255,255,0.4);--accent:#afa3ff;--green:#12c971;--green-bg:rgba(15,138,81,0.21);--border:rgba(255,255,255,0.06);--border-container:rgba(255,255,255,0.08);--stroke:rgba(255,255,255,0.12);--stroke-hover:rgba(255,255,255,0.32);--ghost-hover:rgba(255,255,255,0.08);--ghost-selected:rgba(255,255,255,0.14);--ghost-pressed:rgba(255,255,255,0.2);--btn-primary:#3d3d3d;--btn-primary-hover:#4d4d4d;--inner-shadow:inset 0 4px 12px -2px rgba(255,255,255,0.05);--grid-line:rgba(255,255,255,0.025);--title-gradient:linear-gradient(90deg,#bfe5f8,#a5d9f1 45%,#8fcbee);--portal-glow:rgba(143,203,238,0.14);--shadow-card:0 1px 2px rgba(0,0,0,0.3),0 8px 24px rgba(0,0,0,0.25)}[data-theme=light]{color-scheme:light;--bg:#ececea;--bg-1:#f8f8f7;--bg-2:#efefed;--bg-card:#ffffff;--text:#141414;--text-2:rgba(20,20,20,0.62);--text-3:rgba(20,20,20,0.42);--accent:#5d48e8;--green:#0b9a55;--green-bg:rgba(15,138,81,0.12);--border:rgba(0,0,0,0.07);--border-container:rgba(0,0,0,0.08);--stroke:rgba(0,0,0,0.12);--stroke-hover:rgba(0,0,0,0.28);--ghost-hover:rgba(0,0,0,0.05);--ghost-selected:rgba(0,0,0,0.08);--ghost-pressed:rgba(0,0,0,0.12);--btn-primary:#141414;--btn-primary-hover:#2b2b2b;--inner-shadow:inset 0 4px 12px -2px rgba(255,255,255,0.12);--grid-line:rgba(0,0,0,0.035);--title-gradient:linear-gradient(90deg,#2c8fc6,#2479b0 50%,#1d6597);--portal-glow:rgba(44,143,198,0.12);--shadow-card:0 1px 2px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.06)}:root{--font:var(--font-inter),"Inter",system-ui,-apple-system,sans-serif;--radius-sm:8px;--radius:12px;--radius-lg:16px;--sidebar-w:264px;--sidebar-collapsed-w:76px;--content-w:820px;--content-wide:1400px;--gutter:clamp(24px,7vw,140px);--ease:cubic-bezier(0.22,1,0.36,1)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;font-variation-settings:"opsz" 14;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s var(--ease),color .3s var(--ease)}img,video{display:block;max-width:100%}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}::selection{background:var(--accent);color:#141414}h1,h2,h3,h4,h5{margin:0;font-variation-settings:"opsz" 32;color:var(--text)}.h1,h1{font-size:40px;letter-spacing:-.01em}.h1,.h2,h1,h2{font-weight:600;line-height:1.3}.h2,h2{font-size:26px}.h3,h3{font-size:22px}.h3,h3,h4{font-weight:500;line-height:1.3}h4{font-size:20px}h5{font-size:18px;font-weight:500;line-height:1.3}p{margin:0}.text-2{color:var(--text-2)}.text-3{color:var(--text-3)}.small{font-size:14px}.tiny{font-size:12px;line-height:1.3}.strong{font-weight:500}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:fixed;left:16px;top:16px;z-index:100;padding:10px 16px;border-radius:var(--radius);background:var(--btn-primary);color:#fff;-webkit-clip-path:inset(50%);clip-path:inset(50%);opacity:0}.skip-link:focus-visible{-webkit-clip-path:none;clip-path:none;opacity:1}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .35s var(--ease)}html[data-sidebar=collapsed] .shell{grid-template-columns:var(--sidebar-collapsed-w) minmax(0,1fr)}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:24px;padding:16px 12px 16px 16px;overflow:hidden}.sidebar-head{gap:12px;min-height:48px}.profile,.sidebar-head{display:flex;align-items:center}.profile{gap:14px;min-width:0;flex:1 1}.avatar{width:44px;height:44px;flex:none;border-radius:var(--radius);object-fit:cover;box-shadow:0 0 0 1px var(--border-container)}.profile-text{min-width:0;white-space:nowrap;transition:opacity .2s var(--ease)}.profile-text .name{font-size:15px;font-weight:500;line-height:1.4}.profile-text .role{font-size:13px;color:var(--text-2);line-height:1.4}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;height:36px;padding:6px 12px;border-radius:var(--radius);color:var(--text-2);font-size:15px;font-weight:500;white-space:nowrap;transition:background-color .2s,color .2s}.nav-item svg{flex:none}.nav-item:hover{background:var(--ghost-hover);color:var(--text)}.nav-item[aria-current=page]{background:var(--ghost-selected);color:var(--text);box-shadow:var(--inner-shadow)}.nav-label{transition:opacity .2s var(--ease)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:var(--radius);color:var(--text-2);transition:background-color .2s,color .2s}.icon-btn:hover{background:var(--ghost-hover);color:var(--text)}.theme-toggle{display:flex;justify-content:center;gap:4px}.theme-btn{color:var(--text-3)}.theme-btn[aria-pressed=true]{background:var(--ghost-selected);color:var(--text);box-shadow:var(--inner-shadow)}.cv-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:40px;border:1px dashed var(--stroke);border-radius:var(--radius);font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;transition:border-color .2s,background-color .2s}.cv-btn svg{flex:none}.cv-btn{overflow:hidden}.cv-btn:hover{border-color:var(--stroke-hover);background:var(--ghost-hover)}html[data-sidebar=collapsed] .shell .cv-label,html[data-sidebar=collapsed] .shell .nav-label,html[data-sidebar=collapsed] .shell .profile-text{opacity:0;pointer-events:none}html[data-sidebar=collapsed] .shell .sidebar{padding-right:16px}html[data-sidebar=collapsed] .shell .sidebar-head{flex-direction:column;align-items:flex-start;gap:16px}html[data-sidebar=collapsed] .shell .profile{flex:none}html[data-sidebar=collapsed] .shell .collapse-toggle{width:44px}html[data-sidebar=collapsed] .shell .theme-toggle{flex-direction:column;align-items:flex-start;padding-left:4px}html[data-sidebar=collapsed] .shell .cv-btn{width:44px;justify-content:flex-start;padding-left:12px}.rail-tip{position:fixed;z-index:60;padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border-container);box-shadow:0 1px 2px rgba(0,0,0,.2),0 8px 24px rgba(0,0,0,.22),var(--inner-shadow);color:var(--text);font-size:13px;font-weight:500;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-4px,-50%);transition:opacity .14s var(--ease),transform .18s var(--ease)}.rail-tip[data-visible=true]{opacity:1;transform:translateY(-50%)}@media (max-width:860px){.rail-tip{display:none}}.main{min-width:0;padding:8px 8px 8px 0}.panel{position:relative;min-height:calc(100vh - 16px);border:1px solid var(--border-container);border-radius:var(--radius-lg);background-color:var(--bg-1);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:32px 32px;overflow:clip;transition:background-color .3s var(--ease),border-color .3s var(--ease)}.drawer-backdrop,.topbar{display:none}@media (max-width:860px){.shell,html[data-sidebar=collapsed] .shell{grid-template-columns:minmax(0,1fr)}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.topbar .avatar{width:36px;height:36px;border-radius:10px}.sidebar{position:fixed;inset:0 0 0 auto;z-index:50;width:min(300px,86vw);background:var(--bg);border-left:1px solid var(--border-container);transform:translateX(100%);transition:transform .35s var(--ease);padding:16px}.shell[data-drawer=open] .sidebar{transform:none}.shell .cv-label,.shell .nav-label,.shell .profile-text{opacity:1!important;pointer-events:auto!important}.shell .cv-btn{width:auto!important;justify-content:center!important;padding-left:0!important}.shell .theme-toggle{padding-left:0!important}.shell .sidebar-head,.shell .theme-toggle{flex-direction:row!important;align-items:center!important}.shell .profile{flex:1 1!important}.drawer-close{margin-left:auto}.collapse-toggle{display:none!important}.drawer-backdrop{display:block;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}.shell[data-drawer=open] .drawer-backdrop{opacity:1;pointer-events:auto}.main{padding:0}.panel{border-radius:0;border:0;min-height:calc(100vh - 61px)}}@media (min-width:861px){.drawer-close{display:none!important}}.container{width:100%;max-width:calc(var(--content-wide) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter)}.container.narrow{max-width:calc(var(--content-w) + 2 * var(--gutter))}.page{padding-top:64px}.stack{display:flex;flex-direction:column}.section{padding:48px 0}.section+.section{padding-top:40px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:28px}.page-head{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.page-head p{color:var(--text-2)}@media (max-width:860px){.container{padding:0 24px}.page{padding-top:40px}.h1,h1{font-size:32px}.h2,h2{font-size:22px}.h3,h3{font-size:18px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--radius);font-size:15px;font-weight:500;line-height:1.2;white-space:nowrap;border:1px solid var(--stroke);box-shadow:var(--inner-shadow);transition:background-color .2s,border-color .2s,transform .2s var(--ease)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--btn-primary);color:#fff}.btn-primary:hover{background:var(--btn-primary-hover)}.btn-secondary{background:color-mix(in srgb,var(--bg-1) 60%,transparent);color:var(--text)}.btn-secondary:hover{border-color:var(--stroke-hover)}.btn-tertiary{padding:0;border:0;box-shadow:none;background:none;color:var(--text-2);font-size:14px}.btn-tertiary:hover{color:var(--text)}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:var(--ghost-hover);border:1px solid var(--border-container);color:var(--text-2);font-size:12px;font-weight:500}.chip-green{background:var(--green-bg);border-color:transparent;color:var(--green)}.chip-green:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 25%,transparent)}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--stroke);color:var(--text-2);font-size:11px;font-weight:500;white-space:nowrap}.divider{height:1px;background:var(--border-container);border:0;margin:0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:40px 20px;gap:40px 20px}@media (max-width:560px){.project-grid{grid-template-columns:minmax(0,1fr);gap:32px}}.project-card{display:flex;flex-direction:column;gap:14px}.project-media{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);background:var(--bg-2);box-shadow:0 0 0 1px var(--border-container)}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.44,0,.56,1)}.project-card:hover .project-media img{transform:scale(1.05)}.project-meta{display:flex;flex-direction:column;gap:8px}.project-title{font-size:15px;font-weight:500;line-height:1.4;display:flex;align-items:center;gap:6px}.project-title svg{opacity:0;transform:translate(-4px,4px);transition:opacity .25s,transform .25s var(--ease);color:var(--text-2)}.project-card:hover .project-title svg{opacity:1;transform:none}.specialties{display:flex;flex-direction:column;gap:18px}.specialty{display:flex;align-items:center;gap:16px}.circle-icon{display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;border:1px solid var(--border-container);background:var(--ghost-hover);color:var(--text-2)}.circle-icon.lg{width:48px;height:48px}.specialty-name{font-weight:500;white-space:nowrap}.specialty-line{flex:1 1;height:1px;background:var(--border-container)}.specialty-level{font-size:14px;color:var(--text-3)}.carousel{position:relative}.carousel-track{display:grid;grid-auto-flow:column;grid-auto-columns:92%;grid-gap:12px;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}@media (min-width:1200px){.carousel-track{grid-auto-columns:calc(50% - 6px)}}.carousel-track::-webkit-scrollbar{display:none}.testimonial{scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:24px;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border-container);box-shadow:var(--inner-shadow)}.testimonial blockquote{margin:0;font-size:16px;line-height:1.6}.person{display:flex;align-items:center;gap:14px}.person img{width:44px;height:44px;border-radius:10px;object-fit:cover}.carousel-controls{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.dots{display:flex;gap:6px}.dot{width:6px;height:6px;border-radius:999px;background:var(--text-3);transition:width .3s var(--ease),background-color .3s}.dot[aria-current=true]{width:18px;background:var(--text)}.arrows{display:flex;gap:8px}.arrow{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--stroke);color:var(--text-2);transition:border-color .2s,color .2s,opacity .2s}.arrow:hover:not(:disabled){border-color:var(--stroke-hover);color:var(--text)}.arrow:disabled{opacity:.35;cursor:default}.post-row{display:grid;grid-template-columns:minmax(0,1fr) 146px;grid-gap:32px;gap:32px;align-items:center}.post-row-body{display:flex;flex-direction:column;gap:10px}.post-row-body .divider{margin:14px 0 6px}.post-thumb{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;box-shadow:0 0 0 1px var(--border-container)}.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.post-row:hover .post-thumb img{transform:scale(1.05)}.read-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--text-2);transition:color .2s,gap .2s var(--ease)}.post-row:hover .read-link{color:var(--text);gap:10px}@media (max-width:560px){.post-row{grid-template-columns:minmax(0,1fr) 96px;gap:20px}}.contact{display:flex;flex-direction:column;gap:32px;padding:56px 0 64px;border-top:1px solid var(--border-container);margin-top:40px}.contact-inner{gap:32px}.contact-head{display:flex;flex-direction:column;gap:8px}.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:20px;gap:20px}.contact-item{display:flex;align-items:center;gap:16px}.contact-item .label{font-size:13px;color:var(--text-3)}.contact-item .value{font-weight:500;display:inline-flex;align-items:center;gap:8px}.copy-btn{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;color:var(--text-3);transition:background-color .2s,color .2s}.copy-btn:hover{background:var(--ghost-hover);color:var(--text)}@media (max-width:560px){.contact-grid{grid-template-columns:minmax(0,1fr)}}.about-intro{display:grid;grid-template-columns:minmax(0,1fr) clamp(180px,18vw,280px);grid-gap:40px;gap:40px;align-items:start}.about-intro .portrait{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);box-shadow:0 0 0 1px var(--border-container)}.about-copy{max-width:72ch;display:flex;flex-direction:column;gap:18px;color:var(--text-2);font-size:15px;line-height:1.75}.about-copy strong{color:var(--text);font-weight:500}@media (max-width:640px){.about-intro{grid-template-columns:minmax(0,1fr)}.about-intro .portrait{width:140px;order:-1;justify-self:center}}.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;border-radius:var(--radius-lg);overflow:hidden}.tools li{list-style:none;padding:16px 18px;background:var(--bg-2);font-weight:500;font-size:15px}.tools{padding:0;margin:0}@media (max-width:560px){.tools{grid-template-columns:minmax(0,1fr)}}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:52px minmax(0,1fr);grid-gap:18px;gap:18px;padding:24px 0;border-bottom:1px solid var(--border-container)}.timeline-item:first-child{padding-top:0}.timeline-item:last-child{border-bottom:0}.timeline-item img{width:52px;height:52px;border-radius:var(--radius);object-fit:cover;background:#fff}.timeline-item .role{font-weight:500}.timeline-item .dates,.timeline-item .org{font-size:13px;color:var(--text-2);line-height:1.5}.timeline-item .summary{margin-top:12px;font-size:15px}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);margin-bottom:32px;transition:color .2s,gap .2s var(--ease)}.back-link:hover{color:var(--text);gap:10px}.meta-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:20px}.meta-row .label{font-size:12px;color:var(--text-3)}.meta-row .value{font-size:14px;font-weight:500}.detail-cover{margin:40px 0 48px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 0 0 1px var(--border-container)}.detail-cover img{width:100%;height:auto}.gated{flex-wrap:wrap;justify-content:space-between;gap:16px;padding:20px 24px;margin-bottom:40px;border-radius:var(--radius-lg);border:1px solid var(--border-container);background:var(--bg-card);box-shadow:var(--inner-shadow)}.gated,.gated-text{display:flex;align-items:center}.gated-text{gap:14px}.prose{color:var(--text-2);font-size:18px;line-height:1.8;letter-spacing:-.01em}.prose>*+*{margin-top:20px}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5{color:var(--text);margin-top:48px}.prose h4,.prose h5{margin-top:24px}.prose>:first-child{margin-top:0}.prose h1{font-size:32px}.prose strong{color:var(--text);font-weight:500}.prose a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--stroke-hover);text-decoration-color:var(--stroke-hover);text-underline-offset:3px;transition:-webkit-text-decoration-color .2s;transition:text-decoration-color .2s;transition:text-decoration-color .2s,-webkit-text-decoration-color .2s}.prose a:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.prose h4 a,.prose h5 a{text-decoration:none}.prose ol,.prose ul{padding-left:1.2em}.prose li+li{margin-top:8px}.prose li::marker{color:var(--text-3)}.prose img,.prose video{width:100%;height:auto;border-radius:var(--radius-lg);box-shadow:0 0 0 1px var(--border-container);margin-top:28px;margin-bottom:8px}.prose p:has(>img:only-child){margin-top:28px}.prose p>img:only-child{margin:0}.prose .embed{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-2);box-shadow:0 0 0 1px var(--border-container);margin-top:28px}.prose .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media (max-width:860px){.prose{font-size:16px;line-height:1.75}.meta-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.more-projects{padding-top:64px}.center{display:flex;justify-content:center}.filters{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 36px}.filter{height:34px;padding:0 14px;border-radius:999px;border:1px solid var(--stroke);font-size:14px;font-weight:500;color:var(--text-2);transition:background-color .2s,color .2s,border-color .2s}.filter:hover{color:var(--text);border-color:var(--stroke-hover)}.filter[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg-1)}:root{--fx-ease:cubic-bezier(0.44,0,0.56,1);--fx-spring:cubic-bezier(0.22,1,0.36,1)}@keyframes fx-up{0%{opacity:.001;transform:translateY(24px)}to{opacity:1;transform:none}}.fx.fx-run{animation:fx-up var(--fx-dur,.5s) var(--fx-curve,var(--fx-ease)) var(--fx-delay,0s) both}.fx-slow{--fx-dur:1s}.fx-spring{--fx-dur:0.6s;--fx-curve:var(--fx-spring)}.fx-d2{--fx-delay:0.2s}.fx.fx-pending{opacity:.001;transform:translateY(24px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}.fx,.fx-pending,.hero-intro{animation:none!important;opacity:1!important;transform:none!important}}.portal{position:relative;height:calc(100svh - 18px);min-height:620px;max-height:980px;overflow:hidden;isolation:isolate;container-type:size;background:radial-gradient(circle closest-side at 50% 50%,var(--portal-glow),transparent)}.portal-field{position:absolute;inset:0;z-index:0;animation:portal-in 1.2s var(--ease) both;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 78%,transparent);mask-image:linear-gradient(180deg,transparent 0,#000 9%,#000 78%,transparent)}@keyframes portal-in{0%{opacity:0}to{opacity:1}}.portal-tile{position:absolute;left:0;top:0;width:var(--tile-w,150px);aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--bg-2);box-shadow:0 0 0 1px var(--border-container),var(--shadow-card);opacity:0;will-change:transform,opacity;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.portal-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;transition:transform .6s var(--ease)}.portal-tile-label{position:absolute;inset:auto 0 0 0;padding:14px 10px 8px;font-size:11px;font-weight:500;line-height:1.3;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.7));opacity:0;transform:translateY(4px);transition:opacity .3s var(--ease),transform .3s var(--ease)}.portal-tile:focus-visible img,.portal-tile:hover img{transform:scale(1.06)}.portal-tile:focus-visible .portal-tile-label,.portal-tile:hover .portal-tile-label{opacity:1;transform:none}.portal-veil{position:absolute;left:50%;top:50%;z-index:1;width:min(980px,92%);height:min(560px,70%);transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(closest-side,color-mix(in srgb,var(--bg-1) 88%,transparent),color-mix(in srgb,var(--bg-1) 55%,transparent) 60%,transparent)}.portal-content{position:relative;z-index:200;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px;pointer-events:none}.portal-content a,.portal-content button{pointer-events:auto}.hero-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px}.hero-name{font-size:18px;font-weight:500;color:var(--text)}.hero-title{max-width:13em;font-size:clamp(36px,5.4vw,64px);font-weight:600;line-height:1.08;letter-spacing:-.025em;background:var(--title-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;text-wrap:balance}.hero-tagline{max-width:34em;margin-top:20px;color:var(--text-2);font-size:16px;line-height:1.6;text-wrap:balance}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}.scroll-cue{position:absolute;left:50%;bottom:28px;z-index:200;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:500;color:var(--text-2);background:color-mix(in srgb,var(--bg-1) 78%,transparent);border:1px solid var(--border-container);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:color .2s,border-color .2s}.scroll-cue:hover{border-color:var(--stroke-hover);color:var(--text)}.scroll-cue svg{animation:nudge 2.4s var(--ease) infinite}@keyframes nudge{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.hero-intro{display:flex;flex-direction:column;align-items:center}@media (max-width:860px){.portal{height:calc(100svh - 61px);min-height:560px}.hero-tagline{font-size:15px}.scroll-cue{display:none}}.prose-post p>img:only-child,.prose-post>img{width:auto;max-width:min(100%,320px)}.prose-post h4{margin-top:16px}.contact-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:56px;gap:56px;align-items:start}.contact-aside .contact-grid{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border-container);background:var(--bg-card);box-shadow:var(--inner-shadow)}@media (max-width:960px){.contact-layout{grid-template-columns:minmax(0,1fr);gap:40px}}.contact-form{display:flex;flex-direction:column;gap:16px}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}@media (max-width:560px){.field-row{grid-template-columns:minmax(0,1fr)}}.field{display:flex;flex-direction:column;gap:8px}.field>span{font-size:13px;font-weight:500;color:var(--text-2)}.field input,.field textarea{width:100%;padding:12px 14px;border-radius:var(--radius);border:1px solid var(--stroke);background:var(--bg-card);box-shadow:var(--inner-shadow);color:var(--text);font:inherit;font-size:15px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.field textarea{resize:vertical;min-height:140px}.field input::placeholder,.field textarea::placeholder{color:var(--text-3)}.field input:hover,.field textarea:hover{border-color:var(--stroke-hover)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px}.btn:disabled{opacity:.7;cursor:progress}.form-error{color:#ff8a80}[data-theme=light] .form-error{color:#c62828}.form-error a{text-decoration:underline}.form-success{display:flex;align-items:center;gap:16px;padding:24px;border-radius:var(--radius-lg);border:1px solid var(--border-container);background:var(--bg-card);box-shadow:var(--inner-shadow);animation:fx-up .5s var(--fx-ease) both}.form-success .circle-icon{color:var(--green);background:var(--green-bg);border-color:transparent}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.prose .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:32px}.prose .stats>div{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:var(--radius-lg);border:1px solid var(--border-container);background:var(--bg-card);box-shadow:var(--inner-shadow)}.prose .stats strong{font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-.02em;font-variation-settings:"opsz" 32;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text)}.prose .stats span{font-size:14px;line-height:1.45;color:var(--text-2)}@media (max-width:640px){.prose .stats{grid-template-columns:minmax(0,1fr)}}.art-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:40px 24px;gap:40px 24px;margin-top:48px}.art-wide{grid-column:1/-1}.art{margin:0}.art-frame{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:#000;box-shadow:0 0 0 1px var(--border-container);isolation:isolate}.art-frame>img{object-fit:cover}.art-frame.is-interactive{cursor:crosshair}.art-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;z-index:1}.art figcaption{margin-top:14px}.art-title{font-weight:500}.art-medium{font-size:13px;color:var(--text-3);margin-top:2px}.art-note{font-size:14px;line-height:1.6;color:var(--text-2);margin-top:8px}.art-hint{font-size:13px;color:var(--text-3);margin-top:6px}@media (max-width:640px){.art-gallery{grid-template-columns:1fr}}.portal-tile-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0;transition:opacity .5s}.portal-tile-video.is-on{opacity:1}