:root{--bg: #FDF6E7;--surface: #FFFDF7;--text: #2A1B0E;--muted: #6B5744;--border: color-mix(in oklab, var(--text) 12%, transparent);--accent-1: #B96FE0;--accent-2: #F04FB0;--gradient: linear-gradient(120deg, var(--accent-1), var(--accent-2));--shadow: 0 2px 6px color-mix(in oklab, var(--accent-1) 10%, transparent), 0 18px 40px -18px color-mix(in oklab, var(--accent-1) 26%, transparent);--shadow-lift: 0 4px 10px color-mix(in oklab, var(--accent-1) 14%, transparent), 0 24px 50px -18px color-mix(in oklab, var(--accent-1) 34%, transparent);--radius: 14px;--radius-lg: 20px;--font-display: "Fraunces", ui-serif, Georgia, "Times New Roman", serif;--font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--maxw: 680px}@media(prefers-color-scheme:dark){:root{--bg: #16171D;--surface: #1D1E27;--text: #EDEBF3;--muted: #9993A6;--border: color-mix(in oklab, var(--text) 14%, transparent);--shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 18px 44px -18px color-mix(in oklab, var(--accent-1) 30%, transparent);--shadow-lift: 0 4px 10px rgba(0, 0, 0, .45), 0 24px 54px -18px color-mix(in oklab, var(--accent-1) 40%, transparent)}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}a{color:inherit;text-decoration:none}code{font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,monospace;font-size:.88em;padding:1px 5px;border-radius:6px;background:color-mix(in oklab,var(--accent-1) 12%,transparent)}:focus-visible{outline:2px solid var(--accent-1);outline-offset:3px;border-radius:4px}body{font-family:var(--font-body);font-size:18px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.page{max-width:var(--maxw);margin:0 auto;padding:0 24px;position:relative}.blob{position:absolute;top:-60px;left:50%;width:min(560px,90vw);height:320px;transform:translate(-50%);background:var(--gradient);filter:blur(90px);opacity:.16;border-radius:50%;z-index:-1;pointer-events:none}@media(prefers-color-scheme:dark){.blob{opacity:.22}}main>section{padding:60px 0}main>section:first-child{padding-top:88px}.bio{padding-top:8px}.projects,.elsewhere{padding-top:40px}.avatar{width:132px;height:132px;border-radius:var(--radius-lg);background:var(--gradient);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:52px;letter-spacing:.01em;color:#fff;box-shadow:var(--shadow);margin-bottom:32px;user-select:none}h1{font-family:var(--font-display);font-weight:600;font-size:clamp(44px,9vw,68px);line-height:1.02;letter-spacing:-.01em;margin:0 0 18px;display:flex;align-items:baseline;flex-wrap:wrap;gap:.18em}.name{background:var(--gradient);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:nameShift 8s ease-in-out infinite}@keyframes nameShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.wave{display:inline-block;transform-origin:72% 78%;animation:wave 2.2s ease .35s 1;font-size:.82em}@keyframes wave{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.tagline{font-size:20px;color:var(--muted);margin:0;max-width:34ch;text-wrap:balance}.bio p{margin:0 0 18px;max-width:60ch}.bio p:last-child{margin-bottom:0}a.link{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in oklab,var(--accent-1) 55%,transparent);text-decoration-thickness:2px;text-underline-offset:3px;transition:text-decoration-color .2s ease,color .2s ease}a.link:hover{text-decoration-color:var(--accent-2)}.eyebrow{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-.01em;margin:0 0 22px;display:flex;align-items:center;gap:.4em}.eyebrow .mark{font-family:var(--font-body);font-size:.8em}.project{display:block;padding:22px 24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease}.project:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}.project .p-title{font-family:var(--font-display);font-weight:600;font-size:21px;margin:0 0 6px;color:var(--text);display:flex;align-items:center;gap:.5em}.project .p-arrow{font-family:var(--font-body);color:var(--accent-2);transition:transform .15s ease}.project:hover .p-arrow{transform:translate(3px,-3px)}.project .p-desc{margin:0;color:var(--muted);font-size:16.5px}.links{display:flex;flex-wrap:wrap;gap:10px 12px;list-style:none;margin:0;padding:0}.links a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-weight:500;font-size:15.5px;box-shadow:var(--shadow);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.links a:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift);border-color:color-mix(in oklab,var(--accent-1) 45%,var(--border))}footer{padding:56px 0 72px;color:var(--muted);font-size:14.5px;border-top:1px solid var(--border);margin-top:40px}footer p{margin:0}@media(prefers-reduced-motion:reduce){.wave,.name{animation:none}*{transition:none!important}}
