@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/85fcf895b86d74a6-s.1qlvuf-h9_nww.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5307092570128b5a-s.3s80slo4q4lah.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b67966e0b83b2cd0-s.p.2jrdrem4nuvb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_d6d54f42-module__oBiygG__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_d6d54f42-module__oBiygG__variable{--font-display:"Fraunces", "Fraunces Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_cca2adf7-module__WYba5q__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_cca2adf7-module__WYba5q__variable{--font-body:"DM Sans", "DM Sans Fallback"}
:root{--surface:#fff8f2;--coral-soft:#ffe4d8;--ink:#241b1a;--ink-soft:#5d4540;--action:#b83a2e;--focus:#7a1f1a;--coral-decor:#f27663;--danger:#b3261e;--muted:#5d4540;--step--2:clamp(.75rem, .72rem + .15vw, .81rem);--step--1:clamp(.875rem, .84rem + .18vw, .94rem);--step-0:clamp(1rem, .95rem + .25vw, 1.125rem);--step-1:clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--step-2:clamp(1.5rem, 1.3rem + 1vw, 2rem);--step-3:clamp(2rem, 1.7rem + 1.5vw, 2.75rem);--step-4:clamp(2.5rem, 2.1rem + 2vw, 3.75rem);--step-5:clamp(3rem, 2.4rem + 3vw, 5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--content-width:72rem;--gutter:clamp(1rem, 2vw, 2rem);--radius-sm:6px;--radius-md:12px;--radius-lg:22px;--duration-fast:.18s;--duration-base:.32s;--duration-slow:.6s;--easing-soft:cubic-bezier(.22, 1, .36, 1);--sticky-nav-offset:5.5rem;--sticky-nav-offset-narrow:8rem;--shadow-sm:0 1px 2px #241b1a0d, 0 1px 3px #241b1a0a;--shadow-md:0 8px 24px #b83a2e1a, 0 2px 6px #241b1a0a;--shadow-lg:0 24px 60px #b83a2e24, 0 6px 14px #241b1a0f}*,:before,:after{box-sizing:border-box}html,body{background:var(--surface);color:var(--ink);font-family:var(--font-body), "Helvetica Neue", Helvetica, Arial, sans-serif;font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;line-height:1.55}html{scroll-padding-top:var(--sticky-nav-offset)}@media (max-width:767px){html{scroll-padding-top:var(--sticky-nav-offset-narrow)}}body{min-height:100dvh;overflow-x:hidden}img,svg,video{max-width:100%;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}a{color:var(--action);text-underline-offset:3px;transition:color var(--duration-fast) var(--easing-soft);text-decoration:underline;text-decoration-thickness:1px}a:hover{color:var(--focus)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}.skip-link{padding:var(--space-3) var(--space-4);background:var(--ink);color:var(--surface);z-index:100;border-radius:0 0 var(--radius-md) 0;font-weight:600;position:absolute;top:0;left:0;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.container{width:100%;max-width:var(--content-width);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--space-9);scroll-margin-top:var(--sticky-nav-offset);position:relative}@media (max-width:767px){.section{scroll-margin-top:var(--sticky-nav-offset-narrow)}}.section--coral-soft{background:linear-gradient(180deg, var(--surface) 0%, var(--coral-soft) 100%)}.section--coral-deep{background:linear-gradient(180deg, var(--coral-soft) 0%, #ffd3bf 100%)}.eyebrow{font-family:var(--font-display), serif;letter-spacing:.18em;text-transform:uppercase;font-weight:600;font-size:var(--step--2);color:var(--action);margin:0 0 var(--space-3) 0}.display-heading{font-family:var(--font-display), serif;font-weight:500;font-size:var(--step-5);letter-spacing:-.02em;margin:0 0 var(--space-5) 0;color:var(--ink);line-height:1.02}.section-heading{font-family:var(--font-display), serif;font-weight:500;font-size:var(--step-4);letter-spacing:-.015em;margin:0 0 var(--space-5) 0;color:var(--ink);line-height:1.05}.lead{font-size:var(--step-1);color:var(--ink-soft);max-width:56ch;margin:0 0 var(--space-5) 0;line-height:1.5}.body{font-size:var(--step-0);color:var(--ink-soft);margin:0 0 var(--space-4) 0;line-height:1.65}.body--strong{color:var(--ink)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);letter-spacing:.01em;transition:background-color var(--duration-fast) var(--easing-soft), color var(--duration-fast) var(--easing-soft), transform var(--duration-fast) var(--easing-soft);background:var(--action);color:var(--surface);border:1px solid var(--action);border-radius:999px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--focus);border-color:var(--focus);color:var(--surface);transform:translateY(-1px)}.btn--ghost{color:var(--action);background:0 0}.btn--ghost:hover{background:var(--coral-soft);color:var(--focus)}.btn[aria-disabled=true],.btn:disabled{background:var(--ink-soft);border-color:var(--ink-soft);color:var(--surface);cursor:not-allowed;transform:none}.reveal{opacity:0;transition:opacity var(--duration-slow) var(--easing-soft), transform var(--duration-slow) var(--easing-soft);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(18px)}.reveal[data-reveal-variant=rise],.reveal[data-reveal-variant=slide]{transform:translateY(18px)}.reveal[data-reveal-variant=scale]{transform:scale(.96)}.reveal--visible,.reveal[data-reveal-variant=rise].reveal--visible,.reveal[data-reveal-variant=slide].reveal--visible,.reveal[data-reveal-variant=scale].reveal--visible,.reveal--visible .reveal{opacity:1;transform:translateY(0)translate(0)scale(1)}.site-nav{z-index:30;padding-block:var(--space-4);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);isolation:isolate;background:#fff8f2eb;border-bottom:1px solid #b83a2e1f;position:sticky;top:0}.site-nav__inner{justify-content:space-between;align-items:center;gap:var(--space-4);min-width:0;display:flex}.site-nav__inner>nav{flex:1 1 0;justify-content:flex-end;min-width:0;display:flex}.site-nav__brand{font-family:var(--font-display), serif;font-weight:600;font-size:var(--step-0);letter-spacing:-.005em;color:var(--ink);align-items:center;gap:var(--space-2);text-decoration:none;display:inline-flex}.site-nav__brand-dot{background:var(--coral-decor);border-radius:50%;width:12px;height:12px;display:inline-block;box-shadow:0 0 0 4px #f276632e}.site-nav__pill{padding:var(--space-2);gap:var(--space-1);box-shadow:var(--shadow-sm);background:#fff4ebb3;border:1px solid #b83a2e2e;border-radius:999px;margin:0;list-style:none;display:none}.site-nav__pill a{min-height:38px;padding-inline:var(--space-4);font-size:var(--step--1);color:var(--ink);transition:background-color var(--duration-fast) var(--easing-soft), color var(--duration-fast) var(--easing-soft);border-radius:999px;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.site-nav__pill a:hover{background:var(--coral-soft);color:var(--action)}.site-nav__pill a[aria-current=true]{background:var(--action);color:var(--surface)}.site-nav__list{gap:var(--space-2);overscroll-behavior-inline:contain;flex-wrap:nowrap;flex:1 1 0;min-width:0;max-width:100%;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.site-nav__list li{flex:none}.site-nav__list a{min-height:44px;padding-inline:var(--space-3);border-radius:var(--radius-md);background:var(--surface);font-size:var(--step--1);color:var(--ink);white-space:nowrap;border:1px solid #b83a2e33;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.site-nav__list a:hover{background:var(--coral-soft);color:var(--action)}@media (min-width:768px){.site-nav__pill{display:inline-flex}.site-nav__list{display:none}}.about{padding-block:clamp(var(--space-5), 4.5vw, var(--space-7));scroll-margin-top:var(--sticky-nav-offset)}@media (max-width:767px){.about{scroll-margin-top:var(--sticky-nav-offset-narrow)}}.about__grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.about__h1{margin:0 0 var(--space-3) 0;font-size:var(--step-4);letter-spacing:-.015em;line-height:1.05}.about__byline{margin:0 0 var(--space-3) 0}.about__cta{margin-top:var(--space-4)}.about__copy{min-width:0}.about__copy .body:not(.about__byline){font-size:var(--step-0);margin:0 0 var(--space-4) 0;line-height:1.55}.about__portrait-frame{border-radius:var(--radius-lg);background:var(--coral-soft);isolation:isolate;aspect-ratio:309/403;max-width:100%;position:relative;overflow:hidden}.about__portrait-img{border-radius:var(--radius-lg);z-index:0;object-fit:cover;width:100%;height:100%;display:block;position:relative}@media (min-width:768px) and (max-width:1023px){.about__portrait-frame{width:min(100%,28rem);margin-inline:auto}}@media (min-width:1024px){.about__grid{gap:clamp(var(--space-5), 2.5vw, var(--space-7));grid-template-columns:minmax(0,1.1fr) minmax(16rem,.9fr);align-items:center}.about__portrait-frame{width:min(100%,26rem,76.675dvh - 7.5rem);margin-inline:auto}}.portfolio__heading{margin-bottom:var(--space-6)}.contact__inner{gap:var(--space-5);max-width:60ch;display:grid}.contact__heading{margin-bottom:var(--space-3)}.contact__timeline{margin-top:var(--space-5)}.editing-decoration{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.about-portrait-timeline{pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1;position:absolute;inset:0}.about-portrait-timeline__strip{background:#241b1ad9;border-radius:4px;align-items:center;gap:5px;height:22px;padding-inline:5px;display:flex;position:absolute;left:6%;right:6%}.about-portrait-timeline__strip--top{top:5%}.about-portrait-timeline__strip--bottom{background:#b83a2ed9;bottom:5%}.about-portrait-timeline__perf{background:#fff8f28c;border-radius:2px;flex:1;height:7px}.about-portrait-timeline__playhead{background:var(--action);width:2px;animation:9s linear infinite about-playhead;position:absolute;top:0;bottom:0;left:50%;box-shadow:0 0 0 4px #b83a2e26}@keyframes about-playhead{0%{left:8%}to{left:92%}}@media (max-width:767px){.about-portrait-timeline__strip--bottom{display:none}}.contact-timeline{gap:var(--space-2);height:64px;padding:var(--space-3);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;-webkit-user-select:none;user-select:none;background:#fff8f28c;border:1px solid #b83a2e2e;grid-template-columns:repeat(6,1fr);display:grid;position:relative;overflow:hidden}.contact-timeline__track{background:linear-gradient(#ffe4d899,#ffd3bfb3);border-radius:4px;position:relative;overflow:hidden}.contact-timeline__clip{background:linear-gradient(180deg, var(--action), var(--focus));opacity:.9;animation:contact-clip-pulse 4.2s var(--easing-soft) infinite;border-radius:3px;position:absolute;inset:18% 12%}.contact-timeline__clip:nth-child(odd){animation-delay:1.1s}@keyframes contact-clip-pulse{0%,to{opacity:.8;transform:scaleX(1)}50%{opacity:.98;transform:scaleX(.92)}}.contact-timeline__playhead{background:var(--action);width:2px;animation:6s linear infinite contact-playhead-move;position:absolute;top:0;bottom:0;box-shadow:0 0 0 3px #b83a2e33}@keyframes contact-playhead-move{0%{left:0}to{left:100%}}.contact-links{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.contact-links li{margin:0}.contact-link{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);border:1px solid #b83a2e33;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.contact-link:hover{background:var(--coral-soft);color:var(--action)}.contact-link[aria-disabled=true]{color:var(--ink-soft);cursor:not-allowed;background:0 0;border-style:dashed}.placeholder{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--step--1);color:var(--ink-soft);background:#ffe4d873;border:1px dashed #241b1a4d;display:inline-flex}.placeholder--media{aspect-ratio:4/5;background:linear-gradient(180deg, var(--coral-soft), #ffd3bf);border-radius:var(--radius-lg);color:var(--ink-soft);text-align:center;border:1px dashed #b83a2e66;place-items:center;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1!important;transform:none!important}.contact-timeline__clip,.contact-timeline__playhead,.about-portrait-timeline__playhead{animation:none!important}}
