:root{--paper:#e9e7e2;--ink:#171715;--muted:#77756f;--rule:#c9c7c0;--accent:#b85034;--mono:"DM Mono",monospace;--sans:"Manrope",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5.2vw;border-bottom:1px solid var(--rule);position:absolute;z-index:2;top:0;width:100%}.wordmark{font-weight:800;letter-spacing:-.09em;font-size:25px}.wordmark span{font:10px var(--mono);vertical-align:top;letter-spacing:0;margin-left:4px}.topbar nav{display:flex;gap:36px;font-size:12px}.topbar nav a,.availability,footer>a:nth-of-type(2){transition:opacity .2s}.topbar nav a:hover,.availability:hover,footer a:hover{opacity:.55}.availability{font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase}.availability i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#78866d;margin:0 8px 1px 0}.hero{height:min(850px,100svh);min-height:680px;padding:164px 9vw 64px;position:relative;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.hero:after{content:"";position:absolute;width:39vw;height:39vw;max-width:550px;max-height:550px;border:1px solid #c9c7c0;border-radius:50%;right:14%;top:24%;z-index:0}.hero-kicker,.eyebrow,.hero-index,.hero-mark small,.local-note,.empty-number{font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}.hero-kicker{display:flex;justify-content:space-between;position:relative;z-index:1}.hero h1{font-size:clamp(100px,19vw,276px);line-height:.72;letter-spacing:-.105em;margin:0 0 0 -.03em;font-weight:700;position:relative;z-index:1}.hero h1 span{color:transparent;-webkit-text-stroke:1.5px var(--ink)}.hero h1 sup{font:11px var(--mono);letter-spacing:0;vertical-align:top;margin-left:20px}.hero-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;position:relative;z-index:1}.discipline{font-size:14px;line-height:1.6;margin:0}.intro{font-size:13px;line-height:1.8;color:#67655f;margin:0}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:9px;font-size:12px}.hero-actions a,.text-link{border-bottom:1px solid var(--rule);padding-bottom:7px}.hero-actions b,.text-link b{color:var(--accent);font-size:15px;margin-left:12px}.hero-mark{position:absolute;top:35%;right:24%;width:92px;height:92px;border:1px solid var(--rule);border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:1;color:var(--accent);font:22px var(--mono);transform:rotate(-15deg)}.hero-mark i{position:absolute;width:130px;height:1px;background:var(--rule);transform:rotate(45deg)}.hero-mark small{position:absolute;right:-110px;bottom:-16px;font-size:8px;line-height:1.6}.hero-index{position:absolute;bottom:66px;right:5.2vw}.section{padding:140px 9vw}.work{background:#f3f2ee}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:76px}.eyebrow{display:block;margin-bottom:24px}.section h2,.services h2{font-size:clamp(50px,8vw,100px);line-height:.93;letter-spacing:-.075em;margin:0;font-weight:600}.section h2 em,.services h2 em,.contact h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.08em}.work-side{max-width:240px}.work-side p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 24px}.upload-trigger{background:none;border:0;border-bottom:1px solid var(--ink);padding:0 0 8px;font-size:11px;cursor:pointer}.filters{display:flex;gap:24px;border-top:1px solid var(--rule);padding:16px 0;margin-bottom:28px}.filter{border:0;background:none;padding:0;color:var(--muted);font:10px var(--mono);cursor:pointer}.filter.active{color:var(--ink)}.filter span{margin-left:5px;color:var(--accent)}.gallery{display:grid;grid-template-columns:1.05fr .8fr 1fr;gap:50px 24px}.project{border:0;background:none;text-align:left;padding:0;cursor:pointer;align-self:start}.project:nth-child(3n+2){margin-top:96px}.project-image{display:block;position:relative;overflow:hidden;background:#e1dfd9;aspect-ratio:1.12;min-height:170px}.project:nth-child(3n) .project-image{aspect-ratio:.84}.project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.project:hover img{transform:scale(1.025)}.project-image i{position:absolute;right:14px;top:14px;background:var(--paper);font-style:normal;font-size:16px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;opacity:0;transition:opacity .2s}.project:hover .project-image i,.project:focus-visible .project-image i{opacity:1}.project-meta{display:flex;justify-content:space-between;padding-top:12px;font-size:11px}.project-meta span+span{font:9px var(--mono);text-transform:uppercase;color:var(--muted)}.gallery-empty{min-height:240px;border:1px dashed var(--rule);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.gallery-empty[hidden]{display:none}.gallery-empty p{font-size:14px;line-height:1.8}.gallery-empty p span{font-size:12px;color:var(--muted)}.gallery-empty button{border:0;border-bottom:1px solid var(--ink);background:none;padding:8px 0;cursor:pointer;font-size:11px}.gallery-empty button b{color:var(--accent);margin-left:12px}.local-note{font-size:8px;margin-top:20px}.about{display:grid;grid-template-columns:1fr 2fr;gap:3vw}.about .eyebrow{margin:8px 0}.about-content{display:grid;grid-template-columns:1.3fr 1fr;gap:9vw}.about-lead{font-size:clamp(35px,5vw,62px);letter-spacing:-.07em;line-height:1.08;margin:0}.about-copy p{font-size:12px;line-height:1.9;color:#64625d;margin:0 0 16px}.text-link{display:inline-block;font-size:11px;margin-top:12px}.services{display:grid;grid-template-columns:1fr 1fr;gap:7vw;background:#dedcd6}.services h2{font-size:clamp(45px,6vw,76px)}.service-list{list-style:none;margin:0;padding:0;border-top:1px solid #c4c2bb}.service-list li{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;border-bottom:1px solid #c4c2bb;padding:16px 0;font-size:13px}.service-list li span{font:9px var(--mono);color:var(--muted)}.service-list li b{color:var(--accent);font-weight:400}.contact{padding:140px 9vw 100px;background:var(--ink);color:var(--paper);position:relative}.contact .eyebrow{color:#8d8b85}.contact-pre{color:#8d8b85;font-size:12px;margin:74px 0 20px}.contact h2{font-size:clamp(54px,9.5vw,130px);line-height:.95;letter-spacing:-.08em;font-weight:500;margin:0}.contact h2>span{color:var(--accent)}.contact-links{display:flex;gap:70px;margin-top:100px;width:max-content}.contact-links a{min-width:235px;border-top:1px solid #55534e;padding:14px 0;display:grid;grid-template-columns:1fr auto 20px;font-size:11px}.contact-links a span{color:#8d8b85}.contact-links b{color:var(--accent);font-weight:400}footer{height:94px;background:#111;color:var(--paper);padding:0 5.2vw;display:flex;align-items:center;justify-content:space-between}footer p,footer>a:nth-of-type(2),footer small{font:9px var(--mono);color:#8d8b85}footer>a:nth-of-type(2){color:var(--paper)}dialog{border:0;background:#f3f2ee;color:var(--ink);padding:0;max-width:min(900px,92vw);max-height:90vh;width:auto;box-shadow:0 20px 80px #0004}dialog::backdrop{background:#111d;backdrop-filter:blur(3px)}#project-dialog{background:#171715;color:#f3f2ee;max-width:min(1100px,94vw)}#dialog-image{display:block;max-width:90vw;max-height:78vh;object-fit:contain}.dialog-caption{display:flex;justify-content:space-between;padding:12px 16px;font-size:11px}.dialog-caption span+span{font:9px var(--mono);text-transform:uppercase;color:#a7a59f}.dialog-close{position:absolute;z-index:1;top:10px;right:10px;border:0;width:32px;height:32px;border-radius:50%;background:var(--paper);font-size:22px;line-height:1;cursor:pointer}#upload-form{padding:42px;width:min(430px,88vw)}#upload-form h2{font-size:38px;letter-spacing:-.06em;margin:0 0 26px}#upload-form label{display:block;font-size:11px;margin:16px 0}#upload-form input,#upload-form select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--rule);padding:10px 0;font:12px var(--sans);outline:none}#upload-form input:focus,#upload-form select:focus{border-color:var(--accent)}.upload-feedback{color:var(--muted);font-size:11px;line-height:1.7}.submit-upload{border:0;background:var(--ink);color:var(--paper);padding:13px 16px;width:100%;text-align:left;cursor:pointer}.submit-upload b{float:right;color:#d1876d;font-weight:400}
@media(max-width:760px){.topbar{height:62px;padding:0 6vw}.topbar nav{gap:18px;font-size:11px}.availability{display:none}.hero{height:88svh;min-height:620px;padding:130px 7vw 56px}.hero-kicker{font-size:8px}.hero-kicker span+span{max-width:140px;text-align:right}.hero h1{font-size:clamp(88px,22vw,170px)}.hero h1 sup{font-size:8px;margin-left:7px}.hero:after{width:70vw;height:70vw;right:5%;top:29%}.hero-mark{top:36%;right:22%;transform:scale(.75) rotate(-15deg)}.hero-bottom{grid-template-columns:1fr 1fr;gap:20px}.intro{grid-column:1 / -1;grid-row:1}.discipline{font-size:12px}.hero-actions{font-size:10px;justify-self:end}.hero-index{bottom:18px;right:7vw}.section{padding:90px 7vw}.section-head{display:block;margin-bottom:44px}.section h2{font-size:68px}.work-side{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-top:24px;max-width:none}.work-side p{max-width:190px;margin:0}.upload-trigger{white-space:nowrap;font-size:10px}.filters{gap:16px;overflow:auto;white-space:nowrap}.filter{font-size:9px}.gallery{grid-template-columns:1fr 1fr;gap:32px 14px}.project:nth-child(3n+2){margin-top:0}.project:nth-child(odd){margin-top:30px}.project-image,.project:nth-child(3n) .project-image{aspect-ratio:.82;min-height:0}.project-meta{display:block;line-height:1.7}.project-meta span{display:block}.project-meta span+span{font-size:8px}.local-note{line-height:1.8}.about{display:block}.about .eyebrow{margin-bottom:32px}.about-content{display:block}.about-lead{font-size:44px;margin-bottom:30px}.about-copy{max-width:440px}.services{display:block}.services h2{font-size:56px;margin-bottom:48px}.contact{padding:90px 7vw 75px}.contact-pre{margin:60px 0 20px}.contact h2{font-size:clamp(52px,11.3vw,86px)}.contact-links{flex-direction:column;gap:0;width:100%;margin-top:65px}.contact-links a{width:100%;min-width:0}footer{padding:22px 7vw;height:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}footer p{grid-column:1/-1;grid-row:2;margin:0}footer small{justify-self:end}footer>a:nth-of-type(2){justify-self:start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Motion is kept small and honors the viewer's reduced-motion preference. */
.hero h1{animation:rise-in .85s cubic-bezier(.2,.75,.25,1) both}
.hero-kicker,.hero-bottom{animation:fade-in .8s .2s ease both}
.hero-mark{animation:mark-in 1s .3s cubic-bezier(.2,.75,.25,1) both,float-mark 6s 1.3s ease-in-out infinite}
.hero:after{animation:ring-pulse 5s ease-in-out infinite}
.theme-toggle{display:flex;align-items:center;gap:7px;border:1px solid var(--rule);background:transparent;padding:7px 10px;font:9px var(--mono);cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.theme-toggle>span:first-child{font-size:14px;color:var(--accent)}
.instagram-embed iframe{display:block;width:100%;height:100%;min-height:280px;border:0;pointer-events:none}
.instagram-embed{background:#dedbd3}
.topbar nav a,.availability,.upload-trigger,.filter,.text-link,.hero-actions a,.gallery-empty button,.contact-links a,footer a{transition:color .25s,background-color .25s,border-color .25s,transform .25s,opacity .25s}
.topbar nav a:hover,.availability:hover,footer a:hover{opacity:1;color:var(--accent)}
.hero-actions a:hover,.text-link:hover{transform:translateX(5px);border-color:var(--accent)}
.filter:hover{color:var(--accent);transform:translateY(-2px)}
.upload-trigger:hover{color:var(--accent);border-color:var(--accent)}
.project{transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.project:hover{transform:translateY(-7px)}
.project:hover img{transform:scale(1.045) rotate(-.4deg)}
.service-list li{transition:padding .25s,color .25s}
.service-list li:hover{padding-left:10px;color:var(--accent)}
.contact-links a:hover{transform:translateX(6px);border-color:var(--accent)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1);transition-delay:var(--delay,0ms)}
.reveal.is-visible{opacity:1;transform:translateY(0)}
.gallery-empty{transition:background-color .3s,transform .3s}
.gallery-empty:hover{transform:translateY(-3px);background:#e9e7e2}
@keyframes rise-in{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes mark-in{from{opacity:0;transform:translateY(15px) rotate(-35deg) scale(.8)}to{opacity:1;transform:translateY(0) rotate(-15deg) scale(1)}}
@keyframes float-mark{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes ring-pulse{0%,100%{scale:1;opacity:.45}50%{scale:1.035;opacity:.8}}
@media(prefers-reduced-motion:reduce){.hero h1,.hero-kicker,.hero-bottom,.hero-mark,.hero:after{animation:none!important}.reveal{opacity:1;transform:none;transition:none}.project,.service-list li,.contact-links a,.gallery-empty,.topbar nav a,.availability,.upload-trigger,.filter,.text-link,.hero-actions a,footer a{transition:none!important}}

:root[data-theme="dark"]{--paper:#171715;--ink:#f1efe8;--muted:#aaa8a0;--rule:#484741;--accent:#d1876d;color-scheme:dark}
:root[data-theme="dark"] body{background:var(--paper);color:var(--ink)}
:root[data-theme="dark"] .topbar{border-color:var(--rule)}
:root[data-theme="dark"] .availability i{background:#a7b58d}
:root[data-theme="dark"] .hero:after{border-color:#55534c}
:root[data-theme="dark"] .hero-mark{background:#22211f;border-color:#55534c}
:root[data-theme="dark"] .hero-mark i{background:#55534c}
:root[data-theme="dark"] .intro,:root[data-theme="dark"] .about-copy p{color:#b4b1a9}
:root[data-theme="dark"] .hero-actions a,:root[data-theme="dark"] .text-link{border-color:var(--rule)}
:root[data-theme="dark"] .work{background:#22221f}
:root[data-theme="dark"] .filters{border-color:var(--rule)}
:root[data-theme="dark"] .upload-trigger{border-color:var(--ink)}
:root[data-theme="dark"] .project-image{background:#34332f}
:root[data-theme="dark"] .project-image i{background:#282724;color:var(--ink)}
:root[data-theme="dark"] .gallery-empty{background:#242320;border-color:#55534c;color:var(--ink)}
:root[data-theme="dark"] .gallery-empty p span,:root[data-theme="dark"] .gallery-empty .empty-number{color:#aaa8a0}
:root[data-theme="dark"] .gallery-empty button{border-color:var(--rule);color:var(--ink)}
:root[data-theme="dark"] .about{background:#242320;color:var(--ink)}
:root[data-theme="dark"] .about .eyebrow{color:var(--muted)}
:root[data-theme="dark"] .services{background:#2d2b27;color:var(--ink)}
:root[data-theme="dark"] .services .eyebrow,:root[data-theme="dark"] .service-list li span{color:var(--muted)}
:root[data-theme="dark"] .service-list,:root[data-theme="dark"] .service-list li{border-color:#4b4942}
:root[data-theme="dark"] .contact{background:#0f0f0e;color:var(--ink)}
:root[data-theme="dark"] .contact .eyebrow,:root[data-theme="dark"] .contact-pre,:root[data-theme="dark"] .contact-links a span{color:var(--muted)}
:root[data-theme="dark"] .contact-links a{border-color:#484741}
:root[data-theme="dark"] footer{background:#080808;color:var(--ink)}
:root[data-theme="dark"] footer p,:root[data-theme="dark"] footer>a:nth-of-type(2),:root[data-theme="dark"] footer small{color:var(--muted)}
:root[data-theme="dark"] footer>a:nth-of-type(2){color:var(--ink)}
:root[data-theme="dark"] dialog{background:#242320;color:var(--ink)}
:root[data-theme="dark"] #project-dialog{background:#080808;color:var(--ink)}
:root[data-theme="dark"] #upload-form input,:root[data-theme="dark"] #upload-form select{color:var(--ink)}
:root[data-theme="dark"] .submit-upload{background:#f1efe8;color:#171715}
:root[data-theme="dark"] .instagram-embed{background:#292824}
@media(max-width:760px){.theme-toggle{padding:6px 7px;gap:5px;font-size:8px}}
