:root{color:#382b35;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#fdeef5;--surface:#fffafccc;--ink:#382b35;--ink-soft:#594750;--faded:#7a6771;--rule:#ecd4dd;--berry:#c0507d;--berry-dark:#7f3151;--pink:#f8dce6;--rose:#f3c8d7;--peach:#f9e0dd;--lilac:#eadff4;--small-font:"JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--display-font:"Fraunces", Georgia, "Times New Roman", 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:Hanken Grotesk,Segoe UI,system-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:.22;pointer-events:none;border-radius:50%;width:min(42vw,540px);animation:18s ease-in-out infinite alternate pastel-drift;position:fixed}body:before{background:#eaa9c3;top:-18vw;right:-8vw}body:after{background:#dec8ec;animation-delay:-9s;bottom:-24vw;left:-10vw}a{color:inherit;text-decoration:none}::selection{color:#fff;background:var(--berry)}.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;text-transform:lowercase;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(#fdeef5d1,#fdeef594);width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.logo{font-family:var(--display-font);letter-spacing:-.03em;font-size:24px;font-style:italic;font-weight:600}.topbar nav{gap:clamp(18px,3vw,38px);display:flex}.topbar nav a,.text-link,footer a{padding-bottom:2px;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 cubic-bezier(.65,0,.35,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.topbar nav a:hover,.topbar nav a:focus-visible,.text-link:hover,footer a:hover{color:var(--berry-dark)}.topbar nav a:hover:after,.topbar nav a:focus-visible:after,.text-link:hover:after,footer a:hover:after{transform:scaleX(1)}.intro{grid-template-rows:auto 1fr auto;min-height:min(760px,100svh - 72px);padding:clamp(44px,7vw,78px) 0 clamp(56px,8vw,92px);display:grid}.handle,.section-label,.section-number{color:var(--berry-dark);font:500 11px/1 var(--small-font);text-transform:uppercase;letter-spacing:.14em;margin:0}.handle{background:#f8dce68c;border:1px solid #eabfd1;border-radius:999px;width:fit-content;padding:9px 15px;box-shadow:inset 0 1px #fff9}.handle:before{content:"";vertical-align:1px;background:var(--berry);border-radius:50%;width:7px;height:7px;margin-right:9px;animation:2.6s ease-in-out infinite pulse;display:inline-block;box-shadow:0 0 0 3px #c0507d2e}.intro h1{max-width:1100px;font-family:var(--display-font);font-optical-sizing:auto;letter-spacing:-.045em;background:linear-gradient(165deg, var(--ink) 32%, var(--berry-dark) 130%);color:#0000;-webkit-background-clip:text;background-clip:text;align-self:center;margin:38px 0;font-size:clamp(3.25rem,7vw,7.2rem);font-weight:500;line-height:.94}.intro-bottom{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1.35fr) .65fr;align-items:end;gap:40px;padding-top:26px;display:grid}.lead{letter-spacing:-.01em;max-width:690px;color:var(--ink-soft);margin:0;font-size:clamp(1.1rem,1.7vw,1.45rem);line-height:1.5}.aside{color:var(--faded);font:12px/1.7 var(--small-font);letter-spacing:.01em;justify-self:end;margin:0}.section{border-top:1px solid var(--rule);padding:clamp(78px,9vw,122px) 0}.section-label{color:var(--ink);grid-template-columns:52px 1fr;display:grid}.section-label span,.section-number{color:var(--berry)}.section-label h2{font:500 clamp(1.5rem, 2.2vw, 2rem)/1.1 var(--display-font);letter-spacing:-.02em;margin:0}.project-list{gap:12px;margin:clamp(42px,6vw,68px) 0 34px;display:grid}.project{border:1px solid var(--rule);background:var(--surface);border-radius:18px;grid-template-columns:52px minmax(0,1fr) 150px;gap:24px;padding:26px 24px;transition:color .22s,background .22s,transform .22s cubic-bezier(.34,1.3,.5,1),border-color .22s,box-shadow .22s;display:grid;position:relative;overflow:hidden;box-shadow:0 8px 30px #5b304408}.project:before{content:"";background:var(--rose);opacity:0;width:4px;transition:opacity .22s;position:absolute;inset:0 auto 0 0}.project:after{content:"";border-radius:inherit;opacity:0;pointer-events:none;background:radial-gradient(120% 140% at 100% 0,#f3c8d74d,#0000 55%);transition:opacity .22s;position:absolute;inset:0}.project:nth-child(3n+2):before{background:#d9c4e7}.project:nth-child(3n):before{background:#efb7c7}.project:hover{color:var(--berry-dark);background:#fff9fbf7;border-color:#e5becd;transform:translateY(-3px);box-shadow:0 18px 44px #6f36501f}.project:hover:before,.project:hover:after{opacity:1}.project-number{background:var(--pink);width:36px;height:36px;color:var(--berry-dark);font:500 11px/1 var(--small-font);border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffffff80}.project-copy{position:relative}.project h3{overflow-wrap:anywhere;font-family:var(--display-font);letter-spacing:-.025em;margin:1px 0 9px;font-size:clamp(1.45rem,2.4vw,2.3rem);font-weight:500;line-height:1.05}.project p{max-width:650px;color:var(--faded);margin:0 0 16px;font-size:15px;line-height:1.6}.project small{color:var(--ink-soft);font:500 11px/1.2 var(--small-font);text-transform:lowercase;letter-spacing:.01em;background:#eadff480;border-radius:999px;padding:4px 10px;display:inline-block}.project-end{color:var(--faded);font:11px/1.3 var(--small-font);letter-spacing:.02em;text-align:right;flex-direction:column;justify-content:space-between;align-items:flex-end;display:flex;position:relative}.project-end b{font-family:var(--display-font);font-size:20px;font-weight:400;transition:transform .22s cubic-bezier(.34,1.3,.5,1)}.project:hover .project-end b{transform:translate(4px,-4px)}.project-links{flex-wrap:wrap;justify-content:space-between;gap:18px 32px;display:flex}.text-link{font:500 13px/1.4 var(--small-font);letter-spacing:.01em;display:inline-block}.about-grid{grid-template-columns:.9fr 1.1fr;gap:clamp(42px,8vw,104px);margin:clamp(42px,6vw,68px) 0 clamp(54px,7vw,82px);display:grid}.about-lead{color:var(--berry-dark);font-family:var(--display-font);letter-spacing:-.035em;margin:0;font-size:clamp(2.35rem,4.1vw,4.35rem);font-weight:500;line-height:1}.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{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.interest-list li{border:1px solid var(--rule);font:500 12px/1.2 var(--small-font);letter-spacing:.01em;background:#fffbfc8c;border-radius:14px;align-items:center;padding:14px 16px;transition:transform .2s,border-color .2s,background .2s;display:flex}.interest-list li:hover{background:#fffbfce6;border-color:#e5becd;transform:translateY(-2px)}.interest-list li:before{content:"+";width:26px;color:var(--berry);font-weight:700;display:inline-block}.contact{border-top:1px solid var(--rule);padding:clamp(78px,9vw,122px) 0 58px}.contact h2{font-family:var(--display-font);letter-spacing:-.045em;margin:24px 0;font-size:clamp(3.3rem,7vw,6.8rem);font-weight:500;line-height:.92}.contact-intro{max-width:620px;color:var(--faded);margin:0 0 clamp(40px,6vw,68px);font-size:clamp(1rem,1.45vw,1.22rem);line-height:1.6}.contact-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.contact-links>a,.contact-links>div{background:var(--pink);border:1px solid #e9cbd7;border-radius:18px;grid-template-columns:1fr auto;align-content:space-between;gap:24px 12px;min-height:126px;padding:24px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff80}.contact-links>:nth-child(2){background:var(--lilac);border-color:#ddcce8}.contact-links>div{background:var(--peach);grid-column:1/-1;grid-template-columns:1fr;min-height:98px}.contact-links small{color:var(--faded);font:500 11px/1 var(--small-font);text-transform:uppercase;letter-spacing:.14em;grid-column:1/-1}.contact-links>a>span:not([aria-hidden]),.contact-links>div>span{overflow-wrap:anywhere;font-family:var(--display-font);letter-spacing:-.015em;font-size:clamp(1.1rem,1.8vw,1.45rem);font-weight:500}.contact-links [aria-hidden]{font-family:var(--display-font);align-self:end;font-size:20px;transition:transform .22s cubic-bezier(.34,1.3,.5,1)}.contact-links>a{transition:color .2s,transform .22s cubic-bezier(.34,1.3,.5,1),box-shadow .2s}.contact-links>a:hover{color:var(--berry-dark);transform:translateY(-3px);box-shadow:0 16px 36px #6f36501f}.contact-links>a:hover [aria-hidden]{transform:translate(4px,-4px)}footer{border-top:1px solid var(--rule);min-height:80px;color:var(--faded);font:11px/1 var(--small-font);letter-spacing:.03em;justify-content:space-between;align-items:center;display:flex}.intro>*,.section-label,.project,.project-links,.about-grid,.interest-list,.section-number,.contact h2,.contact-intro,.contact-links{animation:.72s cubic-bezier(.2,.7,.2,1) both rise-in}.handle{animation-delay:60ms}.intro h1{animation-delay:.14s}.intro-bottom{animation-delay:.24s}.project:first-child{animation-delay:60ms}.project:nth-child(2){animation-delay:.13s}.project:nth-child(3){animation-delay:.2s}.project:nth-child(4){animation-delay:.27s}.project:nth-child(5){animation-delay:.34s}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes pastel-drift{0%{transform:translate(-2%,-1%)scale(.96)}to{transform:translate(7%,5%)scale(1.07)}}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #c0507d2e}50%{box-shadow:0 0 0 6px #c0507d0d}}@media (width<=720px){.topbar nav{gap:18px}.topbar nav a:nth-child(2){display:none}.intro{min-height:auto;padding:44px 0 64px}.intro h1{margin:70px 0;font-size:clamp(3.35rem,16vw,6rem);line-height:.93}.intro-bottom,.about-grid,.contact-links{grid-template-columns:1fr}.aside{justify-self:start}.section{padding:72px 0}.project{grid-template-columns:38px minmax(0,1fr);gap:14px;padding:20px 16px}.project-number{width:30px;height:30px}.project-end{display:none}.project-links{flex-direction:column;align-items:flex-start}.section-label{grid-template-columns:38px 1fr}.interest-list{grid-template-columns:1fr}.contact-links>a,.contact-links>div{min-height:112px}.contact-links>div{min-height:90px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:.01ms!important}body:before,body:after,.intro>*,.section-label,.project,.project-links,.about-grid,.interest-list,.section-number,.contact h2,.contact-intro,.contact-links,.handle:before{animation:none!important}}
