:root{color:#382b35;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#fdeef5;--surface:#fffafcb8;--ink:#382b35;--ink-soft:#594750;--faded:#7a6771;--rule:#ecd4dd;--berry:#c0507d;--berry-dark:#7f3151;--pink:#f8dce6;--lilac:#eadff4;--small-font:ui-monospace, "Cascadia Code", Consolas, monospace;--display-font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");background:#fff5f8;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--grain), radial-gradient(circle at 90% -8%, #f3b0cb80, transparent 38rem), radial-gradient(circle at 3% 44%, #eecde685, transparent 30rem), linear-gradient(180deg, #fdeef6 0%, var(--paper) 55%, #fbe4ee 100%);background-attachment:fixed;min-width:320px;margin:0;overflow-x:clip}body:before,body:after{content:"";z-index:0;aspect-ratio:1;filter:blur(100px);opacity:.2;pointer-events:none;border-radius:50%;width:min(42vw,540px);position:fixed}body:before{background:#eaa9c3;top:-18vw;right:-8vw}body:after{background:#dec8ec;bottom:-24vw;left:-10vw}a{color:inherit;text-decoration:none}button{color:inherit}::selection{color:#fff;background:var(--berry)}:focus-visible{outline:2px solid var(--berry-dark);outline-offset:5px}.page{z-index:1;width:min(100%,1280px);margin:0 auto;padding:0 clamp(20px,4vw,52px);position:relative}.topbar{z-index:20;height:72px;font:500 12px/1 var(--small-font);letter-spacing:.02em;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar:before{content:"";z-index:-1;border-bottom:1px solid var(--rule);-webkit-backdrop-filter:blur(20px)saturate(1.3);background:linear-gradient(#fdeef5f7,#fdeef5e6);width:100vw;position:absolute;inset:0 auto 0 50%;transform:translate(-50%)}.logo{font-family:var(--display-font);letter-spacing:-.04em;font-size:23px;font-weight:800}.topbar nav{gap:clamp(18px,3vw,38px);display:flex}.topbar nav a,.text-link,footer a{padding-bottom:3px;transition:color .18s;position:relative}.topbar nav a:after,.text-link:after,footer a:after{content:"";transform-origin:0;background:currentColor;width:100%;height:1px;transition:transform .22s;position:absolute;bottom:0;left:0;transform:scaleX(0)}.topbar nav a:hover,.text-link:hover,footer a:hover{color:var(--berry-dark)}.topbar nav a:hover:after,.text-link:hover:after,footer a:hover:after{transform:scaleX(1)}.intro{grid-template-rows:1fr auto;min-height:min(700px,100svh - 72px);padding:clamp(40px,6vw,68px) 0 clamp(48px,6vw,72px);display:grid}.intro h1{color:#0000;background:linear-gradient(165deg, var(--ink) 32%, var(--berry-dark) 130%);max-width:1100px;font-family:var(--display-font);letter-spacing:-.055em;-webkit-background-clip:text;background-clip:text;align-self:center;margin:34px 0;font-size:clamp(3.25rem,7vw,7rem);font-weight:750;line-height:.96}.intro-bottom{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1.35fr) .65fr;align-items:end;gap:40px;padding-top:24px;display:grid}.role{max-width:690px;color:var(--berry-dark);font:650 clamp(1rem, 1.45vw, 1.2rem)/1.35 var(--display-font);letter-spacing:-.015em;margin:0 0 10px}.lead{max-width:690px;color:var(--ink-soft);letter-spacing:-.01em;margin:0;font-size:clamp(1.05rem,1.45vw,1.28rem);line-height:1.5}.intro-actions{gap:10px;margin-top:24px;display:flex}.button{border:1px solid var(--berry-dark);background:var(--berry-dark);color:#fff;font:600 12px/1 var(--display-font);padding:11px 15px;transition:background .18s,color .18s;display:inline-block}.button:hover{background:var(--ink)}.button-quiet{color:var(--berry-dark);background:0 0}.button-quiet:hover{color:var(--ink);background:#fffafc80}.aside{color:var(--faded);font:12px/1.7 var(--small-font);justify-self:end;margin:0}.section{border-top:1px solid var(--rule);padding:clamp(72px,8vw,104px) 0}#projects,#about,#services,#contact{scroll-margin-top:72px}.section-label{justify-content:space-between;align-items:baseline;gap:32px;display:flex}.section-label h2{font:650 clamp(1.7rem, 2.3vw, 2.15rem)/1.1 var(--display-font);letter-spacing:-.025em;margin:0}.section-label p{max-width:420px;color:var(--faded);text-align:right;margin:0;font-size:1rem;line-height:1.5}.project-list{border-bottom:1px solid var(--rule);margin:clamp(36px,5vw,58px) 0 28px}.project{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);align-items:end;gap:clamp(32px,7vw,92px);padding:clamp(26px,3.2vw,40px) 0;transition:color .18s,transform .22s;display:grid}.project:hover{color:var(--berry-dark);transform:translate(6px)}.project h3{overflow-wrap:anywhere;max-width:760px;font:700 clamp(1.75rem, 3.2vw, 3.1rem)/1 var(--display-font);letter-spacing:-.035em;margin:0 0 11px}.project p{max-width:650px;color:var(--ink-soft);margin:0;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.55}.project-meta{text-align:right;justify-items:end;gap:10px;display:grid}.project-meta span{color:var(--berry-dark);font:600 14px/1.3 var(--display-font)}.project-meta small{color:var(--faded);font:500 10px/1.45 var(--small-font)}.text-link{font:600 13px/1.4 var(--display-font);border-bottom:1px solid;display:inline-block}.about-grid{grid-template-columns:.9fr 1.1fr;gap:clamp(42px,8vw,104px);margin:clamp(40px,5vw,58px) 0 clamp(48px,6vw,68px);display:grid}.about-lead{color:var(--berry-dark);font:700 clamp(2.2rem, 4vw, 4rem)/1 var(--display-font);letter-spacing:-.035em;margin:0}.about-body{max-width:610px;padding-top:5px}.about-body p{color:var(--ink-soft);margin:0 0 24px;font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.7}.interest-list{border-top:1px solid var(--rule);grid-template-columns:repeat(2,1fr);margin:0;padding:0;list-style:none;display:grid}.interest-list li{border-bottom:1px solid var(--rule);color:var(--ink-soft);font:600 13px/1.2 var(--display-font);padding:15px 0}.interest-list li:nth-child(odd){margin-right:24px}.interest-list li:nth-child(2n){margin-left:24px}.service-list{border-top:1px solid var(--rule);margin:clamp(38px,5vw,58px) 0 28px}.service-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(180px,.7fr) 1.3fr;gap:clamp(28px,6vw,80px);padding:24px 0;display:grid}.service-row h3{font:650 1.05rem/1.4 var(--display-font);letter-spacing:-.015em;margin:0}.service-row p{max-width:650px;color:var(--ink-soft);margin:0;line-height:1.6}.contact{border-top:1px solid var(--rule);padding:clamp(72px,8vw,104px) 0 58px}.contact h2{font:700 clamp(3.3rem, 7vw, 6.6rem)/.9 var(--display-font);letter-spacing:-.04em;margin:0 0 18px}.contact-intro{max-width:620px;color:var(--faded);margin:0 0 clamp(38px,5vw,58px);font-size:clamp(1rem,1.45vw,1.22rem);line-height:1.6}.contact-links{border-bottom:1px solid var(--rule)}.contact-links>a,.contact-links>button{border:0;border-top:1px solid var(--rule);text-align:left;cursor:pointer;background:0 0;grid-template-columns:110px minmax(0,1fr) auto;align-items:baseline;gap:24px;width:100%;padding:20px 0;transition:color .18s,background .18s;display:grid}.contact-links>a:hover,.contact-links>button:hover{color:var(--berry-dark);background:#fffafc5c}.contact-links small{color:var(--faded);font:500 10px/1 var(--small-font)}.contact-links span{overflow-wrap:anywhere;font:600 clamp(1.15rem, 1.8vw, 1.5rem)/1.2 var(--display-font);letter-spacing:-.015em}.contact-links b{color:var(--faded);font:500 12px/1.2 var(--display-font)}footer{border-top:1px solid var(--rule);min-height:80px;color:var(--faded);font:11px/1 var(--small-font);justify-content:space-between;align-items:center;display:flex}.intro>*{animation:.65s cubic-bezier(.2,.7,.2,1) both intro-in}.intro-bottom{animation-delay:90ms}@keyframes intro-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.topbar{height:64px}.logo{font-size:21px}.topbar nav{gap:14px;font-size:10.5px}.intro{min-height:auto;padding:38px 0 52px}.intro h1{margin:50px 0 44px;font-size:clamp(2.85rem,14vw,4.5rem);line-height:.94}.desktop-break{display:none}.intro-bottom{grid-template-columns:1fr;gap:30px}.intro-actions{flex-direction:column;align-items:flex-start}.aside{justify-self:start}.section{padding:64px 0}.section-label{display:block}.section-label p{text-align:left;margin-top:10px}.project-list{margin-top:34px}.project{grid-template-columns:1fr;gap:22px;padding:28px 0}.project:hover{transform:none}.project h3{font-size:clamp(1.7rem,8.5vw,2.35rem)}.project-meta{text-align:left;justify-items:start}.about-grid{grid-template-columns:1fr;gap:36px}.interest-list{grid-template-columns:1fr}.interest-list li:nth-child(n){margin:0}.service-row{grid-template-columns:1fr;gap:8px}.contact h2{font-size:clamp(3.15rem,15vw,4.8rem)}.contact-links>a,.contact-links>button{grid-template-columns:minmax(0,1fr) auto;gap:10px 18px}.contact-links small{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}.intro>*{animation:none!important}}
