@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&family=Space+Mono:wght@400;700&display=swap";:root{--color-base:#f5f0e8;--color-surface:#ede7d9;--color-border:#d4c9b5;--color-ink:#1a1612;--color-muted:#6b5f52;--color-ghost:#a89880;--color-accent:#c84b2f;--color-accent-2:#2e4a6b;--color-selection:#c84b2f26;--step-5:clamp(3.052rem, 5vw, 6.104rem);--step-4:clamp(2.441rem, 4vw, 4.883rem);--step-3:clamp(1.953rem, 3vw, 3.052rem);--step-2:clamp(1.563rem, 2vw, 1.953rem);--step-1:clamp(1.25rem, 1.5vw, 1.563rem);--step-0:clamp(1rem, 1vw, 1.25rem);--step--1:clamp(.8rem, .9vw, 1rem);--step--2:clamp(.64rem, .8vw, .8rem);--space-xs:.5rem;--space-sm:1rem;--space-md:2rem;--space-lg:4rem;--space-xl:8rem;--space-2xl:16rem;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-base);color:var(--color-ink);font-family:Space Mono,Courier New,monospace;font-size:var(--step-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}body:before{content:"";opacity:.045;pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--color-selection)}h1,h2,h3,h4{text-wrap:balance;font-family:Cormorant Garamond,Georgia,serif;font-weight:300;line-height:1.2}p{max-width:66ch;line-height:1.6}a{color:inherit;text-decoration:none}.container{width:min(90%,1100px);margin-inline:auto}.reveal{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(16px)}.reveal.visible{opacity:1;transform:translateY(0)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}.hero-name,.hero-subtitle{opacity:1;animation:none;transform:none}}.nav{z-index:100;padding:var(--space-md);justify-content:space-between;align-items:baseline;display:flex;position:absolute;top:0;left:0;right:0}.nav-name{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-1);color:var(--color-ink);font-weight:300;text-decoration:none}.nav-links{gap:var(--space-md);list-style:none;display:flex}.nav-links a{font-family:Space Mono,monospace;font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;color:var(--color-muted);padding-bottom:2px;text-decoration:none;position:relative}.nav-links a:after{content:"";background:var(--color-accent);width:0;height:1px;transition:width .2s var(--ease-out);position:absolute;bottom:0;left:0}.nav-links a:hover{color:var(--color-ink)}.nav-links a:hover:after{width:100%}.hero{min-height:100vh;padding:var(--space-xl) var(--space-md) var(--space-lg);align-items:center;display:grid}.hero-inner{padding-left:16.667%}.hero-number{font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-accent);letter-spacing:.04em;margin-bottom:var(--space-md);display:block}.hero-name{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-5);color:var(--color-ink);letter-spacing:-.01em;font-weight:300;line-height:1}.hero-rule{border:none;border-top:1px solid var(--color-border);margin:var(--space-md) 0 var(--space-sm);max-width:66ch}.hero-subtitle{font-family:Space Mono,monospace;font-size:var(--step-0);color:var(--color-muted);max-width:52ch;line-height:1.6}.hero-location{margin-top:var(--space-sm);font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-ghost);letter-spacing:.02em;display:block}@keyframes hero-reveal{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-name,.hero-subtitle{opacity:0;animation:hero-reveal .7s var(--ease-out) forwards;transform:translateY(24px)}.hero-subtitle{animation-delay:.12s}.section-number{font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-accent);letter-spacing:.04em;margin-bottom:var(--space-xs);display:block}.section-title{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-3);color:var(--color-ink);font-weight:300}.work{padding:var(--space-2xl) var(--space-md)}.work-header{margin-bottom:var(--space-xl)}.project-list{gap:var(--space-xl);flex-direction:column;display:flex}.project-entry{padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-border)}.project-entry:last-child{border-bottom:none}.project-layout{gap:var(--space-lg);grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"image body";align-items:start;display:grid}.project-entry--right .project-layout{grid-template-areas:"body image"}.project-image-wrap{background:var(--color-surface);border:1px solid var(--color-border);transition:box-shadow .3s var(--ease-out);grid-area:image;overflow:hidden;box-shadow:0 6px 16px #1a161214}.project-image-wrap:hover{box-shadow:0 14px 30px #1a161224}.project-image{object-fit:cover;mix-blend-mode:multiply;width:100%;height:100%;transition:transform .4s ease-out;display:block}.project-image-wrap:hover .project-image{transform:scale(1.02)}.project-body{gap:var(--space-sm);flex-direction:column;grid-area:body;display:flex}.project-meta{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.project-stack{font-family:Space Mono,monospace;font-size:var(--step--2);color:var(--color-accent-2);border:1px solid var(--color-accent-2);letter-spacing:.02em;padding:2px 8px}.project-year{font-family:Space Mono,monospace;font-size:var(--step--2);color:var(--color-ghost)}.project-title{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-2);color:var(--color-ink);font-style:italic;font-weight:300;line-height:1.2}.project-title a{color:inherit;text-decoration:none;transition:color .2s}.project-title a:hover{color:var(--color-accent)}.project-descriptor{font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-ghost);max-width:none}.project-sections{gap:var(--space-sm);margin-top:var(--space-xs);flex-direction:column;display:flex}.project-section-label{align-items:center;gap:var(--space-sm);font-family:Space Mono,monospace;font-size:var(--step--2);letter-spacing:.08em;color:var(--color-muted);margin-bottom:4px;display:flex}.project-section-label:after{content:"";background:var(--color-border);flex:1;height:1px}.project-section-text{font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-ink);max-width:58ch;line-height:1.7}.about{padding:var(--space-2xl) var(--space-md);background:var(--color-surface)}.about .section-title{margin-bottom:var(--space-md)}.about-inner{max-width:72ch;padding-left:16.667%}.about-copy{font-family:Space Mono,monospace;font-size:var(--step-0);color:var(--color-ink);max-width:60ch;line-height:1.8}.about-copy--lead:first-letter{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-3);float:left;color:var(--color-accent);padding-right:.08em;font-weight:300;line-height:.8}.about-copy+.about-copy{margin-top:var(--space-md)}.contact{padding:var(--space-2xl) var(--space-md)}.contact-lead{margin-top:var(--space-sm);font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-2);color:var(--color-ink);font-weight:300}.contact-form{margin-top:var(--space-md);gap:var(--space-sm);flex-direction:column;max-width:560px;padding-left:16.667%;display:flex}.contact-label{font-family:Space Mono,monospace;font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.contact-honeypot{width:1px;height:1px;position:absolute;top:0;left:-9999px;overflow:hidden}.contact-input,.contact-textarea{font-family:Space Mono,monospace;font-size:var(--step--1);color:var(--color-ink);background:var(--color-base);border:1px solid var(--color-border);padding:.75rem .9rem}.contact-input:disabled,.contact-textarea:disabled{opacity:.7;cursor:not-allowed}.contact-textarea{resize:vertical;min-height:180px}.contact-actions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.contact-button{color:var(--color-accent);border:1px solid var(--color-accent);font-family:Space Mono,monospace;font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s var(--ease-out), color .2s var(--ease-out);background:0 0;padding:.6rem 1.5rem}.contact-button:hover{background:var(--color-accent);color:var(--color-base)}.contact-button:disabled{cursor:not-allowed;opacity:.7;color:var(--color-accent);background:0 0}.contact-limit{font-family:Space Mono,monospace;font-size:var(--step--2);color:var(--color-ghost)}.contact-status{font-family:Space Mono,monospace;font-size:var(--step--2);margin-top:var(--space-xs)}.contact-status--error{color:var(--color-accent)}.contact-status--success{color:var(--color-accent-2)}.contact-status--sending{color:var(--color-ghost)}.contact-links{margin-top:var(--space-md);gap:var(--space-xs);flex-direction:column;padding-left:16.667%;display:flex}.contact-link{font-family:Space Mono,monospace;font-size:var(--step-0);color:var(--color-ink);width:fit-content;text-decoration:none;display:inline-block;position:relative}.contact-link:after{content:"";background:var(--color-accent);width:0;height:1px;transition:width .15s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.contact-link:hover:after{width:100%}.footer{padding:var(--space-md);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.footer-text{font-family:Space Mono,monospace;font-size:var(--step--2);color:var(--color-ghost)}.error-boundary{min-height:100vh;padding:var(--space-md);text-align:center;background:var(--color-base);color:var(--color-ink);flex-direction:column;justify-content:center;align-items:center;font-family:Space Mono,monospace;display:flex}.error-boundary__title{font-family:Cormorant Garamond,Georgia,serif;font-size:var(--step-2);margin-bottom:var(--space-xs);font-weight:300}.error-boundary__message{margin-bottom:var(--space-sm);color:var(--color-muted);max-width:48ch}.error-boundary__actions{gap:var(--space-sm);flex-wrap:wrap;justify-content:center;display:flex}.error-boundary__button{color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;letter-spacing:.05em;background:0 0;padding:.5rem 1.25rem;font-family:inherit;font-size:.8rem}.error-boundary__button--ghost{color:var(--color-ink);border-color:var(--color-border)}.error-boundary__details{margin-top:var(--space-sm);text-align:left;width:100%;max-width:640px}.error-boundary__summary{cursor:pointer;font-size:var(--step--2);color:var(--color-muted)}.error-boundary__stack{margin-top:var(--space-xs);padding:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);white-space:pre-wrap;font-size:.7rem;line-height:1.5;overflow-x:auto}@media (width<=768px){.hero-inner{padding-left:0}.hero{padding:var(--space-xl) var(--space-sm) var(--space-lg)}.work{padding:var(--space-xl) var(--space-sm)}.project-layout{grid-template-columns:1fr;grid-template-areas:"image""body"}.project-entry--right .project-layout{grid-template-areas:"image""body"}.project-image-wrap{max-height:240px}.about{padding:var(--space-xl) var(--space-sm)}.about-inner{padding-left:0}.contact{padding:var(--space-xl) var(--space-sm)}.contact-form,.contact-links{padding-left:0}}@media (width<=600px){.nav{padding:var(--space-sm)}.nav-links{gap:var(--space-sm)}}
