@import"https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500&display=swap";:root{--white:#ffffff;--beige:#e8dfcf;--ink:#2b2926;--clay:#b4452a;--ochre:#d9972b;--olive:#59652f;--ease:cubic-bezier(.22,.7,.2,1);--pad:clamp(1.25rem,5vw,4.5rem);--arch:6vw;--tone:saturate(.9) sepia(.06) contrast(1.02)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--white);color:var(--ink);font:400 1.05rem/1.6 Jost,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--chip:rgba(255,255,255,.88);--fg:var(--ink);--dot:var(--clay)}body[data-theme=dark]{--chip:rgba(43,41,38,.82);--fg:var(--white);--dot:var(--ochre)}img{display:block;width:100%;height:100%;object-fit:cover}figure{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3{font-weight:500;letter-spacing:-.03em;line-height:1}h1{font-size:clamp(3rem,8.2vw,7.5rem);letter-spacing:-.045em}h2{font-size:clamp(2rem,4.4vw,3.6rem)}h3{font-size:1.15rem;letter-spacing:-.01em}:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}.topbar{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem var(--pad);pointer-events:none;color:var(--fg);transition:color .5s var(--ease)}.brand,.topbar nav{pointer-events:auto;background:var(--chip);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:.55rem 1.2rem;transition:background .5s var(--ease)}.brand{display:grid;place-items:center;padding:.7rem 1.1rem}.topbar nav{display:flex;gap:1.4rem;font-size:.95rem}.topbar nav a{position:relative;padding-left:0;transition:padding .4s var(--ease)}.topbar nav a:before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--dot);transform:scale(0);transition:transform .4s var(--ease)}.topbar nav a[aria-current]{padding-left:15px}.topbar nav a[aria-current]:before{transform:scale(1)}@media(max-width:560px){.topbar nav{gap:.8rem;font-size:.85rem;padding:.5rem .9rem}}.hero{position:sticky;top:0;height:100svh;min-height:34rem;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:center;padding:6rem var(--pad) 3rem;background:var(--white)}.hero-copy{display:grid;gap:1.6rem}.byline{color:var(--clay);font-weight:500}.lead{max-width:34rem;font-size:1.1rem}.hero-art{--mx:0;--my:0;--h:0;width:100%;max-width:520px;max-height:68svh;justify-self:end;overflow:visible}.hero-art *{transform-box:fill-box;transform-origin:center}.disc circle{fill:var(--clay)}.gable polyline{fill:none;stroke:var(--ink);stroke-width:30;stroke-linejoin:miter;stroke-linecap:butt}.disc{transform:translate(calc(var(--mx)*-28px),calc(var(--my)*-28px + var(--h)*-70px));transition:transform .3s ease-out}.gable{transform:translate(calc(var(--mx)*16px),calc(var(--my)*10px + var(--h)*-130px)) rotate(calc(var(--h)*-8deg));transition:transform .3s ease-out}.disc-a{animation:rise 1.2s .1s var(--ease) both}.gable-a{animation:fall 1.1s .7s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(60px) scale(.85)}}@keyframes fall{0%{opacity:0;transform:translateY(-150px)}}@media(max-width:800px){.hero{grid-template-columns:1fr;align-content:center;height:auto;min-height:100svh}.hero-art{max-width:300px;justify-self:start}}.about,.portfolio,.footer{position:relative;margin-top:calc(var(--arch)*-1);border-radius:50% 50% 0 0/var(--arch) var(--arch) 0 0}.about{z-index:1;margin-top:0;background:var(--beige);padding:clamp(6rem,12vw,10rem) var(--pad) calc(clamp(4rem,9vw,8rem) + var(--arch));display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,7vw,7rem);align-items:center}.portfolio{z-index:2;background:var(--ink);color:var(--white);padding:clamp(5rem,10vw,8rem) var(--pad) calc(clamp(4rem,9vw,8rem) + var(--arch));display:grid;gap:3rem}.footer{z-index:3;background:var(--white);padding:clamp(5rem,10vw,8rem) var(--pad) 1.5rem;overflow:hidden}.about-figure{position:relative;max-width:460px}.about-photo{aspect-ratio:4/5}.about-photo img{filter:grayscale(1) contrast(1.08)}.about-copy{display:grid;gap:1.5rem;max-width:34rem}.statement{font-size:clamp(1.7rem,3.2vw,2.7rem);font-weight:500;line-height:1.1;letter-spacing:-.025em}@media(max-width:800px){.about{grid-template-columns:1fr}.about-figure{max-width:340px}}.projects{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);padding-bottom:4rem}.project-card{display:grid;gap:1rem;width:100%;text-align:left;color:inherit;background:none;border:0;cursor:pointer}.cover{position:relative;aspect-ratio:4/5}.cover img,.peek img,.masonry img{filter:var(--tone);transition:transform 1.2s var(--ease),filter .6s var(--ease)}.project-card:hover img,.masonry figure:hover img{filter:none}.project-card:hover .cover img{transform:scale(1.05)}.view{position:absolute;left:50%;bottom:1.2rem;display:grid;place-items:center;width:88px;height:88px;margin-left:-44px;border-radius:50%;background:var(--ochre);color:var(--ink);font-size:.85rem;font-weight:500;line-height:1.25;text-align:center;transform:scale(0);transition:transform .5s var(--ease)}.project-card:hover .view,.project-card:focus-visible .view{transform:scale(1)}.peek{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.peek figure{aspect-ratio:3/2}.project-info p{opacity:.75}@media(max-width:800px){.projects{grid-template-columns:1fr}.cover{max-width:420px}}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;background:var(--white);color:var(--ink);overflow-y:auto;opacity:0;transition:opacity .5s var(--ease)}.viewer[open]{opacity:1}.viewer::backdrop{background:var(--ink)}.viewer-body{padding:clamp(5rem,8vw,6.5rem) var(--pad) var(--pad);display:grid;gap:2.5rem;max-width:1400px;margin:0 auto}.viewer-head{display:grid;gap:.4rem}.viewer-head p{color:var(--clay);font-weight:500}.close{position:fixed;top:1rem;right:var(--pad);z-index:2;width:52px;height:52px;border-radius:50%;border:0;background:var(--ink);color:var(--white);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .4s var(--ease),transform .5s var(--ease)}.close:hover{background:var(--clay);transform:rotate(90deg)}body.lock{overflow:hidden}.masonry{columns:3;column-gap:.8rem}.masonry figure{break-inside:avoid;margin-bottom:.8rem}.masonry img{height:auto}.masonry figure:hover img{transform:scale(1.04)}@media(max-width:900px){.masonry{columns:2}}@media(max-width:520px){.masonry{columns:1}}.footer:before{content:"";position:absolute;right:-8vw;bottom:0;width:min(46vw,520px);aspect-ratio:1;border-radius:50%;background:var(--beige);transform:translateY(calc(70% - var(--p,0)*50%));pointer-events:none}.footer-main,.footer-bottom{position:relative}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(2rem,5vw,5rem)}.footer h2{font-size:clamp(2.2rem,5vw,4.4rem);max-width:12ch}.footer h3{color:var(--clay);margin-bottom:.8rem}.footer-lead{display:grid;gap:1.6rem;align-content:start}.footer-mail{font-size:clamp(1.3rem,2.4vw,2rem);font-weight:500;justify-self:start;color:var(--clay);transition:color .3s}.footer-mail:hover{color:var(--ink)}.footer-col{display:grid;gap:.3rem;align-content:start}.footer-col a{transition:color .3s}.footer-col a:hover{color:var(--clay)}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;margin-top:clamp(4rem,10vw,9rem);padding-top:1.2rem;border-top:1px solid rgba(43,41,38,.2);font-size:.9rem}.footer-bottom a{color:var(--clay)}.footer-bottom a:hover{color:var(--ink)}@media(max-width:800px){.footer-main{grid-template-columns:1fr 1fr}.footer-lead{grid-column:1/-1}}.back-to-top{position:fixed;right:var(--pad);bottom:1.5rem;z-index:15;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:50%;background:var(--clay);color:var(--white);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:0 4px 16px #2b292633;transition:background .3s var(--ease),transform .3s var(--ease)}.back-to-top:hover{background:var(--ink);transform:translateY(-3px)}.back-to-top[hidden]{display:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{animation:none!important;transition:none!important}.disc,.gable,.footer:before{transform:none}}
