@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--paper:#faf9f5;--cream:#f0ebdd;--ink:#46553e;--muted:#717466;--line:#dcded2;--serif:'Playfair Display',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:5px}header{height:108px;position:sticky;top:0;z-index:20;background:rgba(250,249,245,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.header-inner{height:100%;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.logo{width:92px;height:92px;object-fit:contain;display:block}.nav{display:flex;align-items:center;gap:36px;font-size:14px}.nav a:not(.button){padding:8px 0;border-bottom:1px solid transparent}.nav a[aria-current=page]{border-color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;background:var(--ink);color:#fff;padding:13px 25px;border:1px solid var(--ink);border-radius:3px;font-size:14px;transition:background .2s,transform .2s}.button:hover{background:#33412d;transform:translateY(-2px)}.button.outline{background:transparent;color:var(--ink)}.menu-toggle{display:none;background:none;border:0;font-size:25px;color:var(--ink)}.wrap{max-width:1340px;margin:auto;padding-left:5%;padding-right:5%}.intro{padding-top:45px;padding-bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:45px}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:12px;font-weight:500;margin:0 0 14px}.intro h1{font:400 clamp(32px,3.5vw,52px)/1.2 var(--serif);max-width:690px;margin:0}.intro h1 em{font-weight:400}.intro-side{max-width:325px;font-size:14px;color:var(--muted)}.intro-side p{margin:0 0 12px}.text-link{display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:4px;font-size:14px;color:var(--ink)}.hero-gallery{display:flex;gap:10px;height:430px;margin:0 30px}.hero-item{flex:1;min-width:0;position:relative;overflow:hidden;border:0;padding:0;border-radius:4px;background:var(--cream);transition:flex .7s cubic-bezier(.2,.7,.3,1);text-align:left}.hero-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.hero-item:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(20,27,17,.53))}.hero-caption{position:absolute;bottom:24px;left:24px;right:16px;color:white;z-index:1;font:400 23px/1.3 var(--serif)}.hero-caption small{display:block;font:11px/1.6 'DM Sans',sans-serif;letter-spacing:.13em;text-transform:uppercase;margin-bottom:6px}.hero-item:hover,.hero-item:focus-visible{flex:1.65}.hero-item:hover img{transform:scale(1.035)}.gallery-note{display:flex;justify-content:space-between;margin:16px 32px 0;font-size:12px;color:var(--muted)}.section{padding-top:95px;padding-bottom:95px}.center{text-align:center}.section h2,.cta h2{font:400 clamp(30px,3vw,43px)/1.25 var(--serif);margin:0 0 22px}.section p{max-width:665px;margin:0 auto;color:var(--muted)}.categories{margin-top:29px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;font-size:13px}.categories span+span:before{content:'·';padding-right:22px;color:#939a80}.featured{border-top:1px solid var(--line);padding-top:55px;padding-bottom:80px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.section-head h2{font:400 34px var(--serif);margin:0}.work-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.work-card{margin:0}.photo-button{padding:0;border:0;background:var(--cream);display:block;width:100%;overflow:hidden;border-radius:4px}.photo-button img{width:100%;aspect-ratio:4/4.5;object-fit:cover;display:block;transition:transform .6s}.photo-button:hover img{transform:scale(1.04)}.work-card figcaption{margin-top:17px;font:400 20px/1.4 var(--serif)}.work-card small{display:block;font:12px 'DM Sans',sans-serif;color:var(--muted);margin-bottom:6px}.cta{background:var(--cream);padding:65px 24px;text-align:center}.cta .eyebrow{margin-bottom:18px}.cta h2{max-width:650px;margin:0 auto 27px}footer{padding:28px 5%;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;color:var(--muted)}.footer-brand{font:20px var(--serif);color:var(--ink)}.floating{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;padding:0;z-index:25;box-shadow:0 3px 15px #46553e22}.floating svg{width:25px;height:25px}.page-heading{padding-top:62px;padding-bottom:40px}.page-heading h1{font:400 clamp(38px,4.5vw,60px)/1.2 var(--serif);margin:0 0 18px}.page-heading p{color:var(--muted);max-width:610px;margin:0}.portfolio{grid-template-columns:1fr 1fr;gap:45px 30px;padding-bottom:85px}.portfolio .photo-button img{aspect-ratio:3/2}.portfolio .work-card:nth-child(even){margin-top:55px}.about{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding-top:65px;padding-bottom:90px}.about h1{font:400 52px/1.2 var(--serif);margin:15px 0 26px}.about p{color:var(--muted)}.signature{font:italic 25px var(--serif);margin-top:35px}.portrait{min-height:440px;background:var(--cream);border-radius:180px 180px 4px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.portrait img{width:230px;height:230px;object-fit:contain}.portrait span{font-size:12px;color:var(--muted)}.contacts{display:grid;grid-template-columns:1fr 1fr;gap:95px;padding-bottom:85px}.contact-list{margin:30px 0}.contact-row{display:flex;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);gap:20px;font-size:14px}.contact-row span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.contact-form{padding:32px;background:#f0eee5;border-radius:4px}.contact-form label{display:block;font-size:14px;margin-bottom:18px}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #bdc3b2;background:transparent;padding:10px 0;color:var(--ink);border-radius:0}.contact-form textarea{resize:vertical;min-height:100px}.form-note{font-size:12px;color:var(--muted);line-height:1.6}.status{font-size:14px;margin:15px 0 0}.lightbox{border:0;border-radius:5px;background:var(--paper);padding:16px;max-width:calc(100vw - 30px);width:900px}.lightbox::backdrop{background:#172013d9;backdrop-filter:blur(5px)}.lightbox img{width:100%;max-height:75vh;object-fit:contain;display:block}.lightbox-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:12px}.lightbox button{background:none;border:0;color:var(--ink);padding:6px 12px;font-size:20px}.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.skip{position:absolute;left:15px;top:-80px;padding:12px;background:white;z-index:99}.skip:focus{top:10px}.mobile-hint{display:none}@media(min-width:1600px){.hero-gallery{max-width:1480px;margin:auto;height:500px}}@media(max-width:850px){.header-inner{padding:0 5%}.nav{gap:20px}.intro{gap:25px}.hero-gallery{height:350px;margin:0 18px}.hero-caption{left:14px;font-size:20px}.work-grid{grid-template-columns:repeat(2,1fr)}.contacts,.about{gap:35px}.about h1{font-size:40px}.portrait{min-height:380px}.contacts{gap:30px}.contact-form{padding:22px}}@media(max-width:600px){header{height:84px}.logo{width:74px;height:74px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:84px;left:0;right:0;background:var(--paper);padding:24px 6% 30px;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line);gap:14px}.nav.open{display:flex}.intro{display:block;padding-top:30px;padding-bottom:26px}.intro h1{font-size:35px}.intro-side{max-width:100%;margin-top:17px}.intro-side p{font-size:14px}.hero-gallery{height:345px;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0;padding:0 5% 8px}.hero-item,.hero-item:hover,.hero-item:focus-visible{flex:0 0 82%;scroll-snap-align:center}.hero-caption{font-size:25px;left:22px}.gallery-note{margin:12px 5% 0}.desktop-hint{display:none}.mobile-hint{display:block}.section{padding-top:60px;padding-bottom:60px}.section h2{font-size:31px}.categories{gap:8px 13px}.categories span+span:before{padding-right:13px}.featured{padding-top:35px;padding-bottom:50px}.section-head{align-items:flex-start}.section-head h2{font-size:27px}.section-head .text-link{font-size:12px;gap:10px;white-space:nowrap}.work-grid{gap:25px 14px}.work-card figcaption{font-size:18px}.work-card small{font-size:11px}.cta{padding:48px 7%}.cta h2{font-size:31px}footer{flex-direction:column;text-align:center;padding-bottom:80px;gap:8px}.page-heading{padding-top:40px}.page-heading h1{font-size:40px}.portfolio{grid-template-columns:1fr;padding-bottom:50px;gap:30px}.portfolio .work-card:nth-child(even){margin:0}.about,.contacts{grid-template-columns:1fr;padding-top:30px;padding-bottom:50px;gap:35px}.about h1{font-size:40px}.portrait{min-height:350px}.floating{right:18px;bottom:18px}.contacts{padding-top:0}.contact-form{padding:25px}.lightbox-top{font-size:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.photo-button img{height:auto}
/* Complete catalogue, grouped by product; homepage keeps a small selection. */
.work-categories{display:flex;flex-wrap:wrap;gap:12px 25px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}
.work-categories a{font-size:14px;border-bottom:1px solid transparent;padding:5px 0}
.work-categories a:hover{border-color:var(--ink)}
.work-group{scroll-margin-top:125px;padding-top:24px}
.work-group .section-head{border-top:1px solid var(--line);padding-top:26px}
.group-count{font-size:12px;color:var(--muted)}
.work-group .portfolio{grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 25px;padding-bottom:48px}
.work-group .portfolio .work-card:nth-child(even){margin-top:0}
.work-group .portfolio .photo-button img{aspect-ratio:1;object-fit:cover}
.logo{width:105px;height:96px}
.portrait img{width:265px;height:265px}
@media(max-width:850px){.work-group .portfolio{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.logo{width:80px;height:74px}.work-group .portfolio{grid-template-columns:1fr;gap:30px}.work-group .section-head h2{font-size:28px}.work-categories{gap:8px 18px}.work-group{scroll-margin-top:100px}.gallery-note{gap:15px}.gallery-note span{font-size:11px}}
.channel-option{display:flex;align-items:center;gap:17px;width:100%;padding:19px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;transition:background .2s,padding .2s}
.channel-option:hover{background:var(--cream);padding-left:12px;padding-right:12px}
.channel-option>span:nth-child(2){flex:1}.channel-option strong{font-size:16px;font-weight:500}.channel-option small{display:block;font-size:13px;line-height:1.5;color:var(--muted);margin-top:3px}
.channel-icon{display:flex;width:30px;flex-shrink:0;align-items:center;justify-content:center}.channel-icon svg{width:24px;height:24px}.button svg{width:20px;height:20px}.contact-heading{font:400 29px var(--serif);margin:0 0 24px}.contacts .channel-options{margin-top:6px}
.order-dialog{width:570px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 32px);overflow-y:auto;padding:42px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
.order-dialog::backdrop{background:#182212a6;backdrop-filter:blur(5px)}.order-dialog[open]{animation:modal-in .22s ease-out}.order-dialog h2{font:400 34px/1.2 var(--serif);margin:0 22px 15px 0}.modal-intro{color:var(--muted);font-size:14px;margin:0 0 14px}.modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;background:transparent;border:0;color:var(--ink);font-size:20px}.back-link{border:0;background:none;color:var(--ink);padding:5px 0 18px;font-size:14px}.order-dialog .contact-form{padding:0;background:transparent}.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form label small{font-size:12px;color:var(--muted)}[hidden]{display:none!important}@keyframes modal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.order-dialog{padding:34px 23px 24px}.order-dialog h2{font-size:29px}.form-fields{grid-template-columns:1fr;gap:0}.channel-option{gap:12px}.channel-option small{font-size:12px}.contact-heading{font-size:27px}}
/* A slightly deeper cream palette, with restrained depth and readable contrast. */
:root{--paper:#efede5;--cream:#e5dfd0;--ink:#3e4c37;--muted:#5e6355;--line:#cbcdbf;--surface:#f5f2ea;--shadow:0 3px 8px rgba(48,51,37,.06),0 12px 26px rgba(48,51,37,.10)}
header{background:rgba(239,237,229,.97);box-shadow:0 3px 14px rgba(48,51,37,.045)}
.hero-item,.photo-button{box-shadow:var(--shadow);border-radius:7px}
.photo-button{transition:box-shadow .3s ease}
.photo-button:hover{box-shadow:0 5px 12px rgba(48,51,37,.08),0 16px 30px rgba(48,51,37,.14)}
.hero-item:after{background:linear-gradient(transparent,rgba(20,27,17,.78))}
.hero-caption{text-shadow:0 1px 4px rgba(0,0,0,.4)}
.contact-form{background:var(--surface);border:1px solid #d8d8ca;box-shadow:var(--shadow);border-radius:8px}
.contact-form input,.contact-form textarea{border-bottom-color:#939b86}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted);opacity:1}
.portrait{box-shadow:var(--shadow);border:1px solid #d9d4c5}
.order-dialog,.lightbox{background:var(--surface);box-shadow:0 12px 45px rgba(23,31,17,.25)}
.order-dialog .contact-form{box-shadow:none;border:0;border-radius:0;background:transparent}
@media(max-width:600px){.hero-gallery{padding-bottom:22px}.hero-item{box-shadow:0 4px 10px rgba(48,51,37,.12)}}

.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form button:disabled{opacity:.65;cursor:wait;transform:none}.contact-form .status[data-state=error]{color:#833a2e}.contact-form .status[data-state=success]{color:var(--ink)}.contact-form .status{overflow-wrap:anywhere}.contact-form[aria-busy=true] input,.contact-form[aria-busy=true] textarea{opacity:.75}
