@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Inter:wght@400;450;500;600&display=swap";:root{--accent:oklch(43% .18 153);--bg:#fbfaf6;--ink:#15140f;--ink-soft:#15140fd1;--accent-soft:oklch(43% .18 153/.5);--sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;--serif:"Cormorant Garamond", "EB Garamond", Georgia, serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--ink);background:var(--bg);font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--bg);min-width:320px;min-height:100%;margin:0}html{min-height:100%}body{min-height:100svh}@supports (min-height:100dvh){body{min-height:100dvh}}button,a{color:inherit;-webkit-tap-highlight-color:transparent}button{font:inherit}::selection{background:var(--accent-soft);color:#fff}@media (prefers-color-scheme:dark){:root{--accent:oklch(68% .16 153);--bg:#11150f;--ink:#f0eadf;--ink-soft:#f0eadfc7;--accent-soft:oklch(68% .16 153/.45)}}.page{--gutter:clamp(20px, 5vw, 56px);isolation:isolate;background:var(--bg);min-height:100svh;color:var(--ink);grid-template-rows:auto 1fr;display:grid;position:relative;overflow-x:hidden}.halo{z-index:0;pointer-events:none;background:radial-gradient(circle at center, var(--accent) 0%, color-mix(in oklch, var(--accent) 38%, transparent) 18%, transparent 62%);filter:blur(48px);width:620px;height:620px;opacity:var(--halo-opacity,.07);mix-blend-mode:multiply;will-change:transform;border-radius:50%;position:fixed;top:0;left:0}@media (prefers-color-scheme:dark){.halo{mix-blend-mode:screen;filter:blur(58px)}.name{opacity:.82}.dot{box-shadow:0 0 18px color-mix(in oklch, var(--accent) 24%, transparent)}}.masthead,.stage{z-index:1;position:relative}.masthead{padding:clamp(28px, 6vh, 64px) var(--gutter) 0;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:18px;display:flex}.name{color:var(--ink);cursor:pointer;font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;opacity:.88;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;font-size:clamp(13px,1.1vw,14px);font-weight:500;line-height:1;transition:color .26s,opacity .26s}.name:hover,.name:focus-visible{color:var(--accent);opacity:1}.name:focus-visible{outline:1px solid color-mix(in oklch, var(--accent) 42%, transparent);outline-offset:8px;border-radius:999px}.nav{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:min(92vw,360px);height:76px;display:flex;position:relative}.dot{background:var(--accent);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;flex:none;width:7px;height:7px;padding:0;transition:background .3s,opacity .3s,transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .6s;animation:4.2s ease-in-out infinite dot-breathe;position:relative}.dot:before{content:"";border-radius:999px;position:absolute;inset:-18px}.dot:hover{transform:scale(1.25)}.dot:focus-visible{outline:1px solid var(--accent);outline-offset:12px}.nav.is-open .dot{opacity:0;pointer-events:none;transform:scale(.4)}.nav-labels{opacity:0;pointer-events:none;transform-origin:50%;justify-content:center;align-items:center;gap:0;transition:opacity .26s,transform .62s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;inset:0;transform:scaleX(.04)scaleY(.16)}.nav-label{border:1px dashed color-mix(in oklch, var(--accent) 38%, transparent);height:100%;color:var(--ink-soft);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;font-family:var(--sans);letter-spacing:.16em;text-transform:lowercase;opacity:0;background:0 0;flex:1 1 0;justify-content:center;align-items:center;padding:16px 14px;font-size:12px;font-weight:500;line-height:1;transition:border-color .3s,color .3s,opacity .5s,transform .6s cubic-bezier(.2,.7,.2,1);display:inline-flex;transform:translateY(2px)}.nav.is-open .nav-labels{opacity:1;pointer-events:auto;transform:scaleX(1)scaleY(1)}.nav.is-open .nav-label{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-label.is-current,.nav-label:focus-visible{color:var(--accent)}@media (hover:hover) and (pointer:fine){.nav-label:hover{color:var(--accent)}}.nav-label:focus-visible{outline:1px solid color-mix(in oklch, var(--accent) 42%, transparent);outline-offset:4px;border-radius:999px}.stage{padding:clamp(48px, 12vh, 120px) var(--gutter) clamp(60px, 10vh, 120px);justify-content:center;align-items:flex-start;display:flex}.stage-inner{width:100%;max-width:560px;animation:1.08s cubic-bezier(.2,.7,.2,1) both ink-bleed}.section{text-align:center;flex-direction:column;align-items:center;display:flex}h1{color:var(--accent);font-family:var(--serif);letter-spacing:0;margin:0 0 clamp(28px,5vh,52px);font-size:clamp(28px,4vw,38px);font-style:italic;font-weight:400;line-height:1}.section-body{width:100%}.bio{color:var(--ink);font-family:var(--serif);text-align:center;text-wrap:pretty;font-size:clamp(19px,1.7vw,22px);font-weight:500;line-height:1.55}.bio p{margin:0 0 1.1em}.bio p:last-child{margin-bottom:0}.projects{text-align:center;flex-direction:column;align-items:center;gap:36px;margin:0;padding:0;list-style:none;display:flex}.projects li{flex-direction:column;align-items:center;gap:8px;display:flex}.project-name{color:var(--ink);font-family:var(--sans);letter-spacing:0;font-size:clamp(17px,1.45vw,19px);font-weight:600;line-height:1.2;text-decoration:none;transition:color .32s}.project-name:hover,.project-name:focus-visible{color:var(--accent)}.project-name:focus-visible,.social a:focus-visible,.social button:focus-visible{outline:1px solid color-mix(in oklch, var(--accent) 42%, transparent);outline-offset:6px;border-radius:6px}.projects p{color:var(--ink-soft);font-family:var(--sans);text-wrap:pretty;margin:0;font-size:clamp(15px,1.25vw,17px);font-weight:450;line-height:1.55}.social{font-family:var(--sans);letter-spacing:.005em;flex-direction:column;align-items:center;gap:18px;margin:0;padding:0;font-size:clamp(15px,1.3vw,17px);font-weight:600;list-style:none;display:flex}.social a,.social button{color:var(--ink);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:none;transition:color .32s}.social a:hover,.social a:focus-visible,.social button:hover,.social button:focus-visible{color:var(--accent)}@keyframes dot-breathe{0%,to{box-shadow:0 0 0 0 color-mix(in oklch, var(--accent) 30%, transparent), 0 0 8px 0 color-mix(in oklch, var(--accent) 40%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in oklch, var(--accent) 0%, transparent), 0 0 14px 2px color-mix(in oklch, var(--accent) 30%, transparent)}}@keyframes ink-bleed{0%{opacity:.001;filter:blur(10px);transform:scale(.985)}to{opacity:1;filter:blur();transform:scale(1)}}@media (width<=520px){.page{min-height:100dvh}.stage{padding:clamp(42px,8vh,64px) clamp(20px,6vw,28px) clamp(72px,11vh,104px)}.masthead{gap:18px;padding-top:clamp(34px,6.5vh,58px)}.name{letter-spacing:.2em;font-size:15px;font-weight:600}.nav-label{letter-spacing:.17em;font-size:13px;font-weight:600}h1{font-size:33px}.bio{font-size:clamp(21px,5.65vw,23px);line-height:1.48}.bio p{margin-bottom:1em}.nav-labels{gap:0}.projects{gap:34px}.projects li{gap:10px}.project-name{font-size:clamp(19px,5.05vw,21px);line-height:1.12}.projects p{font-size:clamp(16px,4.35vw,18px);line-height:1.5}.social{gap:20px;font-size:clamp(18px,4.8vw,20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
