:root{--ink:#24211d;--paper:#f4f0e8;--gold:#a77b3d;--line:rgba(36,33,29,.18);--green:#29382f;--sand:#ded5c6}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:105px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,Arial,sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{display:block;max-width:100%}
.topbar{height:96px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid rgba(255,255,255,.48);position:fixed;inset:0 0 auto;z-index:50;width:100%;color:#f7f2e9;background:rgba(31,44,37,.94);backdrop-filter:blur(12px);box-shadow:0 8px 28px rgba(15,23,18,.12);transition:background-color .4s,box-shadow .4s}
.topbar.is-scrolled{background:rgba(31,44,37,.8);box-shadow:0 8px 28px rgba(15,23,18,.08)}
.brand{display:flex;align-items:center;gap:12px;font:400 25px/.75 Fraunces,serif}.brand small{display:block;margin-top:9px;font:500 7px Inter,sans-serif;text-transform:uppercase;letter-spacing:.28em}.monogram{font:italic 44px/1 Fraunces,serif;color:#c59b5e}
.topbar nav{display:flex;gap:30px;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.topbar nav a:hover{color:#e4c18b}.lang{border:0;background:none;color:inherit;font-size:12px;cursor:pointer}.lang span{opacity:.55}
.hero{min-height:820px;background:var(--green);color:#f5efe5;display:grid;grid-template-columns:54% 46%;padding:150px 0 0 5vw;align-items:stretch;overflow:hidden}.hero-copy{align-self:center;padding:0 4vw 80px 0;position:relative;z-index:2}
.hero h1,.section h2{font:400 clamp(56px,6.8vw,104px)/.92 Fraunces,serif;letter-spacing:-.045em;margin:0}.hero h1 em{font-weight:300;color:#d6b47f}.eyebrow{margin:0 0 26px;color:var(--gold);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.25em}.hero .eyebrow{color:#d2ab70}
.lead{max-width:620px;margin:36px 0;color:#d9d7cf;font-size:18px;line-height:1.8}.actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;border:0;padding:18px 25px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:600;cursor:pointer}.gold{background:#b58a4d;color:#fff}.gold:hover{background:#c49b61}.text-link{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.5);font-size:11px;text-transform:uppercase;letter-spacing:.11em}
.hero-art{position:relative;align-self:stretch;justify-self:stretch;overflow:hidden;background:transparent}.hover-swap img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:right bottom;transition:opacity .85s ease,transform 1.1s ease}.swap-secondary{opacity:0}.hover-swap:hover .swap-primary{opacity:0}.hover-swap:hover .swap-secondary{opacity:1}.hover-swap:hover img{transform:scale(1.012)}
.section{padding:120px 5vw;scroll-margin-top:96px}.section h2{font-size:clamp(44px,5.2vw,76px);line-height:1}.section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end}.section-head>p,.portfolio-copy>p,.contact>div>p,.large-copy{max-width:620px;color:#6d685f;line-height:1.8}.services .section-head{grid-template-columns:1fr 1fr}.services .section-head>p{justify-self:end;max-width:none;margin:0;text-align:right;white-space:nowrap;font-size:clamp(11px,.86vw,14px);line-height:1.4}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:60px;border-top:1px solid var(--line)}.service-grid article{position:relative;min-height:225px;padding:26px 24px 24px 0;border-right:1px solid var(--line);transition:background-color .35s ease}.service-grid article+article{padding-left:24px}.service-grid article:hover{background:#fbf8f1}.service-grid article span{font-size:11px;letter-spacing:.14em;color:var(--gold)}.service-grid h3{margin:28px 0 14px;font:400 26px/1.1 Fraunces,serif}.service-grid p{margin:0;color:#716b62;font-size:14px;line-height:1.65}
.portfolio{display:grid;grid-template-columns:25% 75%;gap:0;align-items:center;background:var(--sand)}.portfolio-copy{align-self:center;padding-right:clamp(36px,5vw,80px)}.portfolio-copy h2{max-width:500px}.portfolio-mosaic{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;width:100%;height:clamp(430px,42vw,650px)}.mosaic-tile{position:relative;overflow:hidden;margin:0;background:#c9beae}.mosaic-tile.tile-1{grid-column:1;grid-row:1/3}.mosaic-tile.tile-2{grid-column:2;grid-row:1}.mosaic-tile.tile-3{grid-column:2;grid-row:2}.mosaic-tile.tile-4{grid-column:3;grid-row:1/3}.mosaic-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .65s ease,transform .9s ease,filter .5s ease}.before-layer{opacity:0;transform:scale(1.04)}.mosaic-tile:hover .after-layer,.mosaic-tile:focus .after-layer{opacity:0;transform:scale(.985)}.mosaic-tile:hover .before-layer,.mosaic-tile:focus .before-layer{opacity:1;transform:scale(1)}.mosaic-tile:focus{outline:2px solid var(--gold);outline-offset:3px}.mosaic-state{position:absolute;z-index:3;top:14px;right:14px;padding:7px 10px;background:rgba(36,33,29,.72);color:#fff;font-size:9px;text-transform:uppercase;letter-spacing:.14em;transition:opacity .35s ease,transform .35s ease}.before-state{opacity:0;transform:translateY(-4px)}.mosaic-tile:hover .after-state,.mosaic-tile:focus .after-state{opacity:0}.mosaic-tile:hover .before-state,.mosaic-tile:focus .before-state{opacity:1;transform:none}.mosaic-tile figcaption{position:absolute;left:18px;right:18px;bottom:16px;padding-top:36px;background:linear-gradient(transparent,rgba(25,25,22,.72));color:#fff;font:400 19px/1.2 Fraunces,serif;opacity:0;transform:translateY(6px);transition:.35s}.mosaic-tile:hover figcaption,.mosaic-tile:focus figcaption{opacity:1;transform:none}
.about{display:grid;grid-template-columns:27.5vw minmax(0,1fr);gap:4vw;align-items:stretch;padding-left:0;background:#f7f3eb}.about-art{position:relative;align-self:end;width:100%;aspect-ratio:4/5;min-height:0;overflow:hidden;background:#e8e0d4}.about-art.hover-swap img{object-fit:contain;object-position:center}.about-copy{align-self:stretch;display:flex;flex-direction:column;padding-right:0}.large-copy{max-width:840px;margin:28px 0 34px;padding-left:28px;border-left:1px solid var(--gold);font-size:16px;letter-spacing:-.006em;line-height:1.8;white-space:normal}.process-block{margin-top:auto;padding-top:25px}.process-block>.eyebrow{margin:0 0 20px}.process-block ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.process-block li{display:block;min-width:0;min-height:225px;padding:26px 24px 24px;border-right:1px solid var(--line);transition:background-color .35s ease}.process-block li:hover{background:#fffaf1}.process-block li>span{display:block;color:var(--gold);font-size:11px;letter-spacing:.14em}.process-block h3{margin:28px 0 14px;font:400 26px/1.1 Fraunces,serif}.process-block li p{margin:0;color:#716b62;font-size:14px;line-height:1.65}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:#eee7dc}.contact form{display:grid;grid-template-columns:1fr 1fr;gap:25px 22px}.contact label{display:grid;gap:9px;font-size:15px;font-weight:600}.contact input,.contact select,.contact textarea{width:100%;padding:12px 3px;border:0;border-bottom:2px solid #a99f91;outline:none;background:transparent;color:var(--ink);font-size:17px}.contact input:focus,.contact select:focus,.contact textarea:focus{border-color:var(--gold)}.contact .full,.contact .button,.form-status{grid-column:1/-1}.contact .button{justify-self:start}.form-status{min-height:24px;margin:0;font-size:15px;font-weight:600}.form-status.success{color:#17643d}.form-status.error{color:#a12727}
.coffee-section{display:flex;align-items:center;justify-content:center;min-height:520px;background:var(--green)}.qr-link{position:relative;display:block;width:min(280px,70vw);margin:auto;border-radius:24px;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.24);transition:transform .3s ease}.qr-link:hover,.qr-link:focus{transform:translateY(-4px)}.qr-link img{width:100%;height:auto}.qr-link span{position:absolute;inset:0;display:grid;place-items:center;padding:24px;background:rgba(31,44,37,.8);color:#fff;font:400 27px/1.2 Fraunces,serif;text-align:center;opacity:0;transition:opacity .35s ease}.qr-link:hover span,.qr-link:focus span{opacity:1}
footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:30px;min-height:96px;padding:18px 5vw;background:#1f2c25;color:#ddd8cf}footer>p{margin:0;color:#9ca19d;font-size:10px}footer .footer-motto{text-align:center;color:#e7dfd3;font:italic 400 19px/1.35 Fraunces,serif}footer>p:last-child{text-align:right}.light{color:#fff}
@media(max-width:1200px){.services .section-head>p{font-size:11px}.large-copy{font-size:15px}}
@media(max-width:1050px){.topbar nav{gap:18px}.portfolio{grid-template-columns:1fr}.portfolio-copy{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;padding-right:0}.portfolio-copy>p{margin:0}.portfolio-mosaic{height:clamp(420px,60vw,620px)}}
@media(max-width:900px){html{scroll-padding-top:125px}.topbar{height:118px;display:grid;grid-template-columns:1fr auto;padding:12px 5vw 10px}.topbar nav{display:flex;grid-column:1/-1;grid-row:2;gap:24px;overflow-x:auto;white-space:nowrap;padding:9px 0 2px;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.hero{grid-template-columns:1fr;padding-top:175px}.hero-copy{padding-right:6vw}.hero-art{min-height:520px}.section-head,.about,.contact{grid-template-columns:1fr}.services .section-head{grid-template-columns:1fr}.services .section-head>p{justify-self:start;margin-top:24px;text-align:left;white-space:normal;font-size:14px}.service-grid{grid-template-columns:1fr 1fr}.about{padding:0}.about-art{align-self:auto;width:100%;aspect-ratio:4/5;min-height:0}.about-copy{padding:80px 5vw}.process-block{margin-top:36px}.process-block ol{grid-template-columns:repeat(2,1fr)}.contact form{margin-top:20px}footer{grid-template-columns:1fr;align-items:start;padding-top:30px;padding-bottom:30px}footer>p:last-child{text-align:left}}
@media(max-width:650px){.hero{padding-left:6vw}.hero h1{font-size:55px}.hero-copy{padding-bottom:50px}.hero-art{min-height:420px;margin-left:-6vw}.lead{font-size:16px}.actions{align-items:flex-start;flex-direction:column;gap:14px}.section{padding:85px 6vw}.section-head,.portfolio-copy{display:grid;grid-template-columns:1fr;gap:24px}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:205px;padding-left:0!important;border-right:0;border-bottom:1px solid var(--line)}.portfolio-mosaic{display:grid;height:auto;grid-template-columns:1fr;grid-template-rows:none;gap:12px}.mosaic-tile.tile-1,.mosaic-tile.tile-2,.mosaic-tile.tile-3,.mosaic-tile.tile-4{grid-column:1;grid-row:auto}.mosaic-tile.tall{aspect-ratio:3/4}.mosaic-tile.wide{aspect-ratio:4/3}.about-copy{padding:80px 6vw}.process-block ol{grid-template-columns:1fr}.process-block li{min-height:205px;padding:26px 0 24px;border-right:0;border-bottom:1px solid var(--line)}.contact form{grid-template-columns:1fr}.contact label{grid-column:1/-1;font-size:16px}.contact input,.contact select,.contact textarea{font-size:18px}}
@media(hover:none){.mosaic-tile figcaption{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.topbar,.hover-swap img,.service-grid article,.process-block li,.mosaic-tile img,.mosaic-tile figcaption,.mosaic-state,.qr-link,.qr-link span{transition:none}}
