:root{color-scheme:light;--brand-ink:#171b1e;--brand-ink-raised:#273239;--brand-paper:#f8faf9;--brand-paper-raised:#e7edf0;--brand-red:#17637a;--brand-blue:#549db2;--brand-brass:#8ea6ad;--brand-orange:#438397;--detail-copy-muted:#52626a;--detail-gold-heading:#427e90;--detail-copy-deep:#4a5a62;--detail-white:#fff;--detail-ivory-white:#f9fcfc;--detail-gold-bright:#a9c1c9;--detail-copy-note:#66767d;--detail-gold-highlight:#aac4cc;--detail-gray-ivory:#edf2f3;--detail-gold-eyebrow:#b6d4dc;--detail-light-copy:#e7eff1;--detail-orange-bright:#64aab9;--detail-red-hover:#0d4d61;--detail-brass-link:#b8d0d6;--detail-light-copy-warm:#e8f1f3;--detail-brass-muted:#d9e6e9;--detail-gold-hero:#bbd7de;--detail-paper-hover:#fff;--detail-copy-muted-2:#56666d;--detail-light-copy-2:#dbe6e9;--detail-brass-outline:#8faeb8;--detail-gallery-ink:#20292e;--detail-gold-gallery:#bad5dc;--detail-paper-light:#f2f7f8;--detail-brass-footer:#afcbd2;--detail-footer-copy:#bdcbd0;--detail-footer-muted:#9bacb3;--detail-paper-pale:#fcfefe;--detail-copy-muted-3:#45545b;--detail-paper-subtle:#e0e9ec;--detail-gold-subtle:#9bbdc7;--detail-paper-soft:#f5f9fa;--alpha-ink-line:rgba(23,27,30,.22);--alpha-ink-border:rgba(23,27,30,.12);--alpha-ink-shadow:rgba(23,27,30,.18);--alpha-paper-header:rgba(248,250,249,.97);--alpha-hero-dark:rgba(13,23,28,.97);--alpha-hero-mid:rgba(13,23,28,.82);--alpha-hero-light:rgba(13,23,28,.18);--alpha-hero-faint:rgba(13,23,28,.13);--alpha-brass-shadow:rgba(84,157,178,.55);--alpha-gold-stroke:rgba(169,193,201,.7);--alpha-card-paper:rgba(255,255,255,.5);--alpha-orange-inset:rgba(67,131,151,.035);--alpha-gallery-shade:rgba(15,24,28,.78);--alpha-paper-stroke:rgba(248,250,249,.55);--alpha-ink-separator:rgba(23,27,30,.14);--alpha-shadow:rgba(12,22,26,.12);--alpha-hero-deep:rgba(13,23,28,.96);--alpha-hero-shade:rgba(13,23,28,.78);--alpha-hero-wash:rgba(13,23,28,.2);--alpha-black-shadow:rgba(0,0,0,.13);--alpha-ink-depth:rgba(23,27,30,.3);--alpha-brass-outline:rgba(142,166,173,.38);--alpha-ink-depth-soft:rgba(23,27,30,.28);--alpha-ink-map:rgba(23,27,30,.24);--alpha-ink-header-shadow:rgba(23,27,30,.16);--ink:var(--brand-ink);--ink-2:var(--brand-ink-raised);--paper:var(--brand-paper);--paper-2:var(--brand-paper-raised);--red:var(--brand-red);--blue:var(--brand-blue);--brass:var(--brand-brass);--orange:var(--brand-orange);--line:var(--alpha-ink-line);--serif:Georgia,"Times New Roman",serif;--display:"Libre Baskerville",Baskerville,Georgia,serif;--accent:"Bodoni Moda",Didot,Georgia,serif;--sans:Arial,Helvetica,sans-serif;scroll-behavior:smooth;scroll-padding-top:88px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.55}img{display:block;max-width:100%}a{color:inherit}button{font:inherit}.skip-link{position:absolute;left:1rem;top:-5rem;z-index:20;padding:.7rem 1rem;background:var(--paper);color:var(--ink)}.skip-link:focus{top:1rem}.topline{min-height:32px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1rem,5vw,5rem);background:var(--red);color:var(--detail-ivory-white);font:600 .68rem var(--sans);letter-spacing:.12em;text-transform:uppercase}.topline-center{opacity:.85}.site-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:.6rem clamp(1rem,5vw,5rem);background:var(--alpha-paper-header);border-bottom:1px solid var(--alpha-ink-border);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none}.brand img{width:56px;height:58px;object-fit:contain}.brand-copy{display:grid;line-height:1}.brand-copy strong,.footer-brand{font:1.4rem var(--display);letter-spacing:.08em}.brand-copy small{margin-top:.32rem;font:600 .57rem var(--sans);letter-spacing:.16em}.primary-nav{display:flex;align-items:center;gap:clamp(1.2rem,3vw,3rem);font:600 .77rem var(--sans);letter-spacing:.1em;text-transform:uppercase}.primary-nav a{text-decoration:none}.primary-nav a:hover,.text-link:hover{color:var(--red)}.primary-nav .nav-cta{padding:.8rem 1.05rem;background:var(--ink);color:var(--paper)}.menu-toggle{display:none}
.hero{position:relative;isolation:isolate;min-height:min(760px,83vh);display:flex;align-items:center;overflow:hidden;background:var(--ink);color:var(--paper)}.hero-image,.hero-shade{position:absolute;inset:-35px 0;z-index:-2;background-image:url("assets/dapper-chair-concept.png");background-size:cover;background-position:center 42%;will-change:transform}.hero-shade{z-index:-1;inset:0;background:linear-gradient(90deg,var(--alpha-hero-dark) 0%,var(--alpha-hero-mid) 39%,var(--alpha-hero-light) 75%,var(--alpha-hero-faint) 100%)}.hero-content{width:min(100%,1350px);margin:0 auto;padding:clamp(4.5rem,9vw,8rem) clamp(1.3rem,7vw,7rem) 7rem}.eyebrow{display:flex;align-items:center;gap:.7rem;margin:0 0 1.4rem;color:var(--detail-gold-eyebrow);font:600 .72rem var(--sans);letter-spacing:.22em;text-transform:uppercase}.eyebrow-rule{display:inline-block;width:35px;height:2px;background:var(--orange)}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:400}h1{max-width:740px;margin-bottom:1.2rem;font-size:clamp(3.8rem,7vw,7rem);line-height:.9;letter-spacing:-.055em}h1 em,h2 em{font-weight:400;color:var(--detail-gold-heading)}h1 em{font-style:italic}.hero-lede{max-width:455px;margin-bottom:1.8rem;color:var(--detail-light-copy);font-size:clamp(1.05rem,1.5vw,1.25rem)}.hero-actions{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:1.4rem;padding:.8rem 1.1rem;text-decoration:none;font:700 .73rem var(--sans);letter-spacing:.13em;text-transform:uppercase;transition:transform .2s ease,background .2s ease}.button:hover{transform:translateY(-2px)}.button-red{background:var(--red);color:white;border:1px solid var(--detail-orange-bright);box-shadow:4px 4px 0 var(--alpha-brass-shadow)}.button-red:hover{background:var(--detail-red-hover)}.text-link{color:var(--paper);font:600 .75rem var(--sans);letter-spacing:.11em;text-transform:uppercase;text-decoration-color:var(--detail-brass-link);text-underline-offset:6px}.hero-note{display:flex;align-items:center;gap:.85rem;margin-top:3.2rem;color:var(--detail-light-copy-warm);font:600 .65rem var(--sans);letter-spacing:.14em;text-transform:uppercase}.note-star{color:var(--detail-gold-bright);font-size:1rem}.note-line{width:40px;height:1px;background:var(--detail-gold-bright)}.hero-stamp{position:absolute;right:clamp(1.2rem,5vw,5rem);bottom:5.2rem;width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--alpha-gold-stroke);border-radius:50%;color:var(--detail-brass-muted);text-align:center;transform:rotate(9deg)}.hero-stamp strong{font:3.6rem/.9 var(--display);color:var(--detail-gold-hero)}.hero-stamp span{font:600 .5rem var(--sans);letter-spacing:.17em}.torn-edge{position:absolute;left:-1%;right:-1%;bottom:-1px;height:31px;background:var(--paper);clip-path:polygon(0 62%,2% 51%,3% 73%,5% 58%,7% 76%,9% 42%,11% 60%,13% 48%,15% 75%,18% 52%,20% 69%,23% 40%,25% 61%,28% 48%,30% 78%,33% 49%,35% 67%,37% 43%,40% 67%,42% 49%,45% 76%,48% 52%,50% 69%,53% 43%,56% 68%,59% 49%,61% 74%,64% 45%,67% 61%,70% 46%,73% 71%,76% 48%,78% 69%,81% 42%,83% 68%,86% 50%,88% 78%,91% 45%,94% 64%,96% 48%,98% 69%,100% 42%,100% 100%,0 100%)}.torn-edge-light{background:var(--paper)}
.section-pad{padding:clamp(4.6rem,8vw,8rem) clamp(1.2rem,6vw,6.5rem)}.services{max-width:1500px;margin:auto}.section-heading{max-width:650px;margin:0 auto 3.3rem;text-align:center}.eyebrow-dark{justify-content:center;color:var(--red)}h2{margin-bottom:1rem;font-size:clamp(2.7rem,5.4vw,5.2rem);line-height:.98;letter-spacing:-.04em}h2 em{color:var(--red);font-style:italic}.section-heading>p:last-child,.gallery-heading>p{color:var(--detail-copy-muted);font-size:1.05rem}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.service-card{min-height:205px;display:flex;flex-direction:column;justify-content:space-between;padding:1.2rem 1.15rem 1.05rem;border:1px solid var(--orange);background:var(--alpha-card-paper);box-shadow:inset 0 0 0 4px var(--alpha-orange-inset);transition:transform .2s,background .2s}.service-card:hover{transform:translateY(-4px);background:var(--detail-paper-hover)}.service-number{color:var(--orange);font:600 .7rem var(--sans);letter-spacing:.14em}.service-card h3{margin:1.3rem 0 .45rem;font:1.65rem var(--serif)}.service-card p{min-height:3em;margin:0;color:var(--detail-copy-muted-2);font-size:.94rem}.service-card>a{align-self:flex-end;color:var(--red);font:1.3rem var(--sans);text-decoration:none}.concept-note{max-width:860px;margin:1.4rem auto 0;color:var(--detail-copy-note);text-align:center;font: .77rem/1.6 var(--sans)}
.story{position:relative;min-height:590px;display:grid;grid-template-columns:1.05fr .95fr;background:var(--ink);color:var(--paper);overflow:hidden}.story-photo{position:relative;min-height:540px;overflow:hidden}.story-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:60% center;transform:scale(1.03)}.story-copy{max-width:680px;align-self:center;padding:5rem clamp(2rem,7vw,7.5rem) 6rem 3.5rem}.story-copy h2{font-size:clamp(3.2rem,5.7vw,6rem)}.story-copy h2 em{color:var(--detail-gold-heading)}.story-copy>p:not(.eyebrow){max-width:440px;margin:1.4rem 0 2rem;color:var(--detail-light-copy-2);font-size:1.05rem}.button-outline-light{border:1px solid var(--detail-brass-outline);color:var(--paper)}.torn-edge-ivory{height:30px;background:var(--paper)}
.gallery{max-width:1550px;margin:auto}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.2rem}.gallery-heading h2{margin-bottom:0}.gallery-heading>p{max-width:310px;margin:0 0 .5rem}.gallery-grid{display:grid;grid-template-columns:1.4fr 1fr .83fr;grid-template-rows:minmax(310px,440px);gap:1rem}.gallery-card{position:relative;min-width:0;margin:0;overflow:hidden;background:var(--detail-gallery-ink)}.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.1,1)}.gallery-card:hover img{transform:scale(1.045)}.gallery-card:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,var(--alpha-gallery-shade));pointer-events:none}.gallery-card figcaption{position:absolute;z-index:1;right:1rem;bottom:1rem;left:1rem;display:flex;align-items:center;gap:.7rem;color:white;font:600 .78rem var(--sans);letter-spacing:.13em;text-transform:uppercase}.gallery-card figcaption span{color:var(--detail-gold-gallery)}.gallery-quote{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;background:var(--red);color:var(--detail-paper-light);text-align:center;outline:1px solid var(--alpha-paper-stroke);outline-offset:-9px}.quote-mark{height:2.5rem;color:var(--detail-gold-highlight);font:4.7rem/.9 var(--serif)}.gallery-quote p{margin:1rem 0;font-size:clamp(1.6rem,2.2vw,2.35rem);line-height:1.08;font-style:italic}.quote-rule{width:38px;height:2px;margin:.4rem 0 1rem;background:var(--detail-gold-highlight)}.gallery-quote small{font:600 .6rem var(--sans);letter-spacing:.22em}
.visit{position:relative;background:var(--paper-2);border-top:1px solid var(--alpha-ink-separator)}.visit-inner{max-width:1300px;min-height:350px;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:3rem;margin:auto;padding:4rem clamp(1.4rem,6vw,6rem)}.visit-seal{width:160px;height:160px;display:grid;place-items:center;border:1px solid var(--brass);border-radius:50%;background:var(--paper);overflow:hidden}.visit-seal img{width:90%;height:90%;object-fit:contain}.visit-copy .eyebrow{margin-bottom:.8rem;color:var(--red)}.visit-copy h2{margin-bottom:.8rem;font-size:clamp(2.8rem,4.8vw,4.6rem)}.visit-copy>p:last-child{max-width:475px;margin:0;color:var(--detail-copy-deep)}.visit .torn-edge{height:25px;background:var(--ink)}.site-footer{position:relative;min-height:145px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:2.2rem clamp(1.3rem,6vw,6rem);background:var(--ink);color:var(--paper)}.footer-brand{text-decoration:none}.footer-brand span{color:var(--detail-brass-footer)}.site-footer p{margin:0;color:var(--detail-footer-copy);font-style:italic}.site-footer small{color:var(--detail-footer-muted);font: .72rem var(--sans)}.back-top{width:39px;height:39px;display:grid;place-items:center;border:1px solid var(--brand-brass);color:var(--brand-paper);text-decoration:none;font:1.1rem var(--sans)}
.reveal{opacity:1;transform:translateY(0)}.js-ready .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.js-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:900px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.story{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 245px}.gallery-large{grid-row:span 2}.gallery-quote{min-height:245px}.visit-inner{grid-template-columns:130px 1fr;gap:1.7rem}.visit-seal{width:125px;height:125px}.visit-inner>.button{grid-column:2;justify-self:start}.site-footer{flex-wrap:wrap}.site-footer p{order:3;width:100%}}
@media(max-width:640px){:root{scroll-padding-top:75px}.topline{min-height:29px;padding:0 .9rem;font-size:.55rem;letter-spacing:.07em}.topline-center{display:none}.site-header{min-height:71px;padding:.4rem 1rem}.brand{gap:.45rem}.brand img{width:47px;height:50px}.brand-copy strong{font-size:1.18rem}.brand-copy small{font-size:.48rem}.menu-toggle{width:46px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--ink);background:transparent;color:var(--ink)}.menu-toggle span{width:19px;height:1px;background:currentColor}.primary-nav{position:absolute;top:100%;right:0;left:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:.45rem 1rem 1rem;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 14px 20px var(--alpha-shadow)}.primary-nav.is-open{display:flex}.primary-nav a{padding:.9rem .6rem;border-bottom:1px solid var(--alpha-ink-border)}.primary-nav .nav-cta{margin-top:.7rem;text-align:center;border:0}.hero{min-height:690px;min-height:min(760px,calc(100svh - 100px));align-items:flex-end}.hero-image{background-position:58% center;inset:-16px 0}.hero-shade{background:linear-gradient(0deg,var(--alpha-hero-deep) 0%,var(--alpha-hero-shade) 48%,var(--alpha-hero-wash) 100%)}.hero-content{padding:5rem 1.2rem 5rem}.hero .eyebrow{margin-bottom:1.15rem;font-size:.65rem}h1{font-size:clamp(3.65rem,17vw,6rem)}.hero-lede{max-width:360px;font-size:1rem}.hero-actions{align-items:flex-start;gap:1rem}.button{min-height:48px;font-size:.68rem}.text-link{align-self:center;font-size:.64rem}.hero-note{margin-top:2.5rem;gap:.55rem;font-size:.57rem;letter-spacing:.1em}.note-line{width:23px}.hero-stamp{right:1rem;top:1.6rem;bottom:auto;width:75px;height:75px}.hero-stamp strong{font-size:2.55rem}.hero-stamp span{font-size:.38rem}.torn-edge{height:21px}.section-pad{padding:4.1rem 1.15rem}.section-heading{margin-bottom:2rem}.section-heading .eyebrow{margin-bottom:1rem;font-size:.62rem}.section-heading h2{font-size:clamp(2.65rem,12vw,4rem)}.section-heading>p:last-child{font-size:.98rem}.service-grid{gap:.65rem}.service-card{min-height:178px;padding:.85rem .8rem .75rem}.service-card h3{margin-top:1.05rem;font-size:1.35rem}.service-card p{font-size:.86rem;line-height:1.45}.service-number{font-size:.63rem}.concept-note{font-size:.72rem}.story{display:flex;flex-direction:column}.story-photo{min-height:310px;order:1}.story-copy{order:2;padding:3.2rem 1.25rem 4rem}.story-copy h2{font-size:clamp(3rem,14vw,4.4rem)}.story-copy>p:not(.eyebrow){font-size:1rem}.story .torn-edge{z-index:2}.gallery-heading{display:block;margin-bottom:1.45rem}.gallery-heading h2{font-size:clamp(2.7rem,12vw,4rem)}.gallery-heading>p{margin:.8rem 0 0;font-size:.95rem}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:300px 200px;gap:.65rem}.gallery-large{grid-column:1 / -1;grid-row:auto}.gallery-card figcaption{right:.7rem;bottom:.7rem;left:.7rem;font-size:.68rem}.gallery-quote{min-height:200px;padding:1rem}.gallery-quote p{font-size:1.45rem}.visit-inner{min-height:0;grid-template-columns:82px 1fr;align-items:center;gap:1.1rem;padding:3rem 1.2rem 3.6rem}.visit-seal{width:78px;height:78px}.visit-copy .eyebrow{font-size:.61rem}.visit-copy h2{font-size:clamp(2.6rem,11vw,3.5rem)}.visit-copy>p:last-child{font-size:.92rem;line-height:1.45}.visit-inner>.button{grid-column:1 / -1;justify-self:stretch}.site-footer{justify-content:space-between;padding:2rem 1.2rem 2.5rem}.footer-brand{font-size:1.15rem}.site-footer small{order:4;width:calc(100% - 52px);font-size:.66rem;line-height:1.5}.back-top{order:5}.site-footer p{font-size:.96rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Audrey-inspired Baskerville capitals and Didot-style italic accents. */
h1,h2,.service-card h3{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.015em;line-height:1.15;text-wrap:balance}
h1{max-width:900px;font-size:clamp(2.8rem,5.4vw,5.25rem)}
h2{font-size:clamp(2rem,3.7vw,3.6rem)}
h1 em,h2 em{font-family:var(--accent);font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;line-height:1.12;font-optical-sizing:auto}
h1 em{font-size:1.08em}
.eyebrow{font-family:var(--accent);font-style:italic;font-weight:400;font-size:clamp(1.3rem,2.3vw,1.8rem);line-height:1.2;letter-spacing:0;text-transform:none;margin-bottom:1rem}
.service-card h3{font-size:clamp(1rem,1.5vw,1.35rem);line-height:1.4}
.story-copy h2{font-size:clamp(2rem,3.7vw,3.7rem)}
.visit-copy h2{font-size:clamp(1.9rem,3.4vw,3.2rem)}
.gallery-quote p,.site-footer p{font-family:var(--accent);font-weight:400;font-optical-sizing:auto}
@media(max-width:640px){
 h1{font-size:clamp(2.15rem,8.5vw,3.4rem);line-height:1.2}
 .hero .eyebrow,.section-heading .eyebrow,.visit-copy .eyebrow{font-size:1.35rem}
 .section-heading h2,.story-copy h2,.gallery-heading h2{font-size:clamp(1.9rem,7.3vw,2.9rem);line-height:1.2}
 .service-card h3{font-size:clamp(.95rem,3.8vw,1.25rem);letter-spacing:0}
 .visit-copy h2{font-size:clamp(1.5rem,6vw,2.4rem);line-height:1.2}
 .brand-copy strong{font-size:1.05rem}
}

/* Fibrous paper tears: photographic luminance mask, no repeating polygon. */
.torn-edge,.visit .torn-edge{--tear-paper:var(--paper);--tear-fiber:var(--detail-paper-pale);left:0;right:0;bottom:-1px;height:90px;background:transparent;clip-path:none;pointer-events:none;z-index:2;overflow:hidden;filter:drop-shadow(0 -3px 3px var(--alpha-black-shadow))}
.torn-edge::before,.torn-edge::after{content:"";position:absolute;inset:0;background:var(--tear-fiber);mask-image:url("assets/torn-paper-mask.png");mask-mode:luminance;mask-size:100% 500%;mask-position:center;mask-repeat:no-repeat}
.torn-edge::after{background:var(--tear-paper);transform:translateY(3px)}
.story .torn-edge::before,.story .torn-edge::after{scale:-1 1}
.visit .torn-edge{--tear-paper:var(--ink);--tear-fiber:var(--detail-copy-muted-3);height:76px}
.visit .torn-edge::before,.visit .torn-edge::after{mask-size:130% 500%;mask-position:right center}
@media(max-width:640px){.torn-edge,.visit .torn-edge{height:58px}.torn-edge::before,.torn-edge::after{mask-size:210% 500%;mask-position:35% center}.torn-edge::after{transform:translateY(2px)}}

/* Paper-sheet placement: services has two torn edges; gallery starts straight. */
.story .torn-edge-services-bottom{top:-1px;bottom:auto;transform:rotate(180deg)}
.visit{border-top:0}
.visit .torn-edge-visit-top{--tear-paper:var(--paper-2);--tear-fiber:var(--detail-white);top:-75px;bottom:auto;height:76px;filter:drop-shadow(0 -2px 2px var(--alpha-ink-border))}
.visit .torn-edge-visit-top::before,.visit .torn-edge-visit-top::after{mask-position:left center;scale:-1 1}
.visit .torn-edge-dark{left:0;right:0;bottom:-13px;height:76px;background:var(--ink);-webkit-mask:none;mask:none;filter:none;overflow:hidden}
.visit .torn-edge-dark::before,.visit .torn-edge-dark::after{display:block;inset:0;background:var(--detail-white);mask-image:url("assets/torn-paper-downward-mask.svg");mask-mode:luminance;mask-size:100% 500%;mask-position:center;mask-repeat:no-repeat;scale:none;transform:none}
.visit .torn-edge-dark::after{background:var(--paper-2);transform:translateY(-3px)}
@media(max-width:640px){.visit .torn-edge-dark{bottom:-13px;height:58px}}
@media(max-width:640px){.visit .torn-edge-visit-top{height:58px;top:-57px}}

/* Enlarge only the crest's painted size; preserve its original layout box. */
.brand img{transform:scale(2);transform-origin:right top;position:relative;z-index:1}

@media(max-width:640px){.brand img{transform:translateY(30px) scale(2);transform-origin:25% top}}

/* Give the wordmark breathing room beside the enlarged crest. */
.brand-copy{margin-left:24px}

/* A continuous rounded apron behind the hanging crest. */
.site-header{background:var(--paper)}
.brand{position:relative;isolation:isolate}
.brand::before{content:"";position:absolute;z-index:-1;pointer-events:none;left:-68px;top:calc(100% + .6rem - 2px);width:136px;height:66px;background:var(--paper);border-radius:0 0 50% 50% / 0 0 100% 100%}
@media(max-width:640px){
 .brand::before{left:-19px;top:calc(100% + 10px);width:108px;height:79px}
}

/* Inset the crest and its surround together from the page edge. */
@media(min-width:641px){
 .brand img{left:24px}
 .brand::before{left:-44px}
 .brand-copy{margin-left:48px}
}

/* Reduce the crest by 25%, preserving its visual center and top alignment. */
.brand img{transform:translateX(-14px) scale(1.5)}
@media(max-width:640px){.brand img{transform:translate(5.875px,30px) scale(1.5)}}

/* Fit the apron to the reduced crest with a small lower inset. */
.brand::before{height:30px;width:108px;left:-54px}
@media(min-width:641px){.brand::before{left:-30px}}
@media(max-width:640px){.brand::before{left:-11px;width:92px;height:52px}}

/* A shallow, restrained dip beneath the crest. */
.brand::before{width:98px;height:20px;left:-49px}
@media(min-width:641px){.brand::before{left:-25px}}
@media(max-width:640px){.brand::before{left:-6px;width:82px;height:42px}}

/* Broad shoulders blend tangentially into the bar, matching the drawn outline. */
.brand::before{border-radius:0;width:200px;height:24px;left:-100px;mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20200%2030%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M0%200H200V2C165%202%20160%2030%20100%2030S35%202%200%202Z%22%2F%3E%3C%2Fsvg%3E");mask-size:100% 100%;mask-repeat:no-repeat}
@media(min-width:641px){.brand::before{left:-76px}}
@media(max-width:640px){.brand::before{left:-39px;width:148px;height:42px}}

/* Balance the crest within a restrained, centered navbar dip. */
@media(min-width:641px){
 .brand img{transform:translate(-14px,-5px) scale(1.6)}
 .brand::before{width:170px;height:25px;left:-61px}
}
@media(max-width:640px){
 .brand img{transform:translate(5.875px,25px) scale(1.5)}
 .brand::before{width:128px;height:37px;left:-29px}
}

/* Original supplied line art blends into the paper without white rectangles. */
.service-illustrations{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(1rem,2vw,2rem);align-items:start;isolation:isolate;background:var(--paper)}
.service-art{display:block;min-width:0;mix-blend-mode:multiply;text-decoration:none}
.service-art img{display:block;width:100%;height:auto;aspect-ratio:3 / 4;object-fit:contain}
.service-art:hover{filter:sepia(.08) contrast(1.04)}
.service-art:focus-visible{outline:2px solid var(--red);outline-offset:6px}
.service-item{min-width:0;text-align:center}.service-book{display:inline-flex;align-items:center;justify-content:center;margin-top:.8rem;padding:.58rem .8rem;border:1px solid var(--red);color:var(--red);font:700 .65rem var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:background .2s ease,color .2s ease}.service-book:hover,.service-book:focus-visible{background:var(--red);color:var(--detail-ivory-white)}
@media(max-width:1000px){.service-illustrations{grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem}.service-item{grid-column:span 2}.service-item:nth-child(4){grid-column:2 / span 2}}
@media(max-width:640px){.service-illustrations{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem .8rem}.service-item,.service-item:nth-child(4){grid-column:auto}.service-item:last-child{grid-column:1 / -1;width:calc((100% - .8rem) / 2);justify-self:center}}

/* Supporting pages */
.subpage-main{min-height:70vh;background:var(--paper);padding:clamp(4rem,8vw,7rem) clamp(1.2rem,6vw,6rem)}.subpage-inner{max-width:1240px;margin:auto}.subpage-heading{max-width:760px;margin:0 auto 3.5rem;text-align:center}.subpage-heading h1{max-width:none;color:var(--ink);font-size:clamp(2.8rem,6vw,5.5rem)}.subpage-heading h1 em{color:var(--red)}.subpage-heading p{max-width:590px;margin:1rem auto 0;color:var(--detail-copy-muted);font-size:1.08rem}.gallery-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.gallery-page-card{margin:0;overflow:hidden;background:var(--ink)}.gallery-page-card:nth-child(1){grid-column:span 2;grid-row:span 2}.gallery-page-card img{width:100%;height:100%;min-height:260px;object-fit:cover;transition:transform .45s ease}.gallery-page-card:hover img{transform:scale(1.035)}.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,5rem);align-items:start}.contact-panel{padding:clamp(1.5rem,3vw,2.7rem);background:var(--ink);color:var(--paper)}.contact-panel h2,.calendar-panel h2,.legal-copy h2{font-size:clamp(2rem,3vw,3.2rem)}.contact-panel h2 em,.calendar-panel h2 em{color:var(--detail-gold-heading)}.contact-detail{margin:1.5rem 0;color:var(--detail-paper-subtle)}.contact-detail strong{display:block;margin-bottom:.25rem;color:var(--detail-gold-subtle);font:700 .7rem var(--sans);letter-spacing:.13em;text-transform:uppercase}.calendar-panel{padding:clamp(1.5rem,3vw,2.7rem);background:var(--paper-2)}.calendar-slot{display:grid;min-height:360px;place-items:center;margin-top:1.6rem;border:1px dashed var(--brass);padding:2rem;text-align:center}.calendar-slot p{max-width:390px}.map-frame{width:100%;height:360px;margin-top:1.8rem;border:0;filter:grayscale(.25) sepia(.15)}.legal-copy{max-width:780px;margin:auto}.legal-copy h2{margin-top:2.5rem}.legal-copy p,.legal-copy li{color:var(--detail-copy-deep)}.legal-copy a{color:var(--red)}
@media(max-width:760px){.gallery-page-grid{grid-template-columns:1fr 1fr}.gallery-page-card:nth-child(1){grid-column:1 / -1;grid-row:auto}.contact-grid{grid-template-columns:1fr}.map-frame{height:300px}}

/* Product catalog: simple printed labels in rows, without a sidebar or catalog toolbar. */
.products-preview{max-width:1500px;margin:auto;background:var(--paper-2)}.products-preview-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2.35rem}.products-preview-heading h2{margin-bottom:0}.products-preview-heading>p{max-width:340px;margin:0 0 .45rem;color:var(--detail-copy-muted);font-size:1.05rem}.product-grid{display:grid;gap:clamp(1rem,2vw,1.65rem)}.product-grid-preview{grid-template-columns:repeat(3,minmax(0,1fr))}.product-grid-catalog{grid-template-columns:repeat(3,minmax(0,1fr))}.product-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--alpha-ink-depth);background:var(--detail-paper-soft);box-shadow:3px 3px 0 var(--alpha-brass-outline)}.product-image{display:grid;min-height:275px;place-items:center;overflow:hidden;padding:1.25rem;background:var(--detail-gray-ivory)}.product-image img{width:100%;height:100%;max-height:345px;object-fit:contain;mix-blend-mode:multiply;transition:transform .35s ease}.product-card:hover .product-image img{transform:scale(1.035)}.product-card-copy{padding:1.15rem 1.2rem 1.25rem;border-top:1px solid var(--alpha-ink-shadow)}.product-brand{margin:0 0 .35rem;color:var(--red);font:700 .64rem var(--sans);letter-spacing:.14em;text-transform:uppercase}.product-card h2,.product-card h3{margin:0;font:400 clamp(1.35rem,2.3vw,2.05rem)/1.1 var(--display);letter-spacing:-.025em;text-transform:uppercase}.product-card-copy>p:not(.product-brand){min-height:1.55em;margin:.55rem 0 1.1rem;color:var(--detail-copy-muted);font-size:.96rem}.product-card-copy>a{display:inline-flex;align-items:center;gap:.4rem;color:var(--red);font:700 .68rem var(--sans);letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.product-card-copy>a:hover{text-decoration:underline;text-underline-offset:5px}.products-preview-action{display:flex;justify-content:center;margin-top:2.2rem}.button-dark{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.products-page .subpage-heading{margin-bottom:3rem}.catalog-back{display:inline-flex;margin-bottom:2rem;color:var(--red);font:700 .7rem var(--sans);letter-spacing:.12em;text-transform:uppercase;text-underline-offset:5px}.product-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.82fr);gap:clamp(2rem,6vw,6rem);align-items:center}.product-detail-image{display:grid;min-height:520px;place-items:center;padding:2.5rem;background:var(--detail-gray-ivory);border:1px solid var(--alpha-ink-depth-soft)}.product-detail-image img{width:100%;height:100%;max-height:560px;object-fit:contain;mix-blend-mode:multiply}.product-detail-copy h1{margin-bottom:.7rem;color:var(--ink)}.product-spec{margin:0 0 1.35rem;color:var(--red);font:700 .73rem var(--sans);letter-spacing:.12em;text-transform:uppercase}.product-detail-copy>p:not(.product-brand):not(.product-spec):not(.pickup-note){max-width:460px;color:var(--detail-copy-deep);font-size:1.1rem}.pickup-note{margin:1.1rem 0 0;color:var(--detail-copy-note);font:.78rem/1.55 var(--sans)}
@media(max-width:760px){.products-preview-heading{display:block}.products-preview-heading>p{margin:.9rem 0 0}.product-grid-preview,.product-grid-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.product-image{min-height:205px;padding:.75rem}.product-card-copy{padding:.9rem}.product-card-copy>p:not(.product-brand){font-size:.9rem}.product-detail{grid-template-columns:1fr}.product-detail-image{min-height:340px;padding:1.5rem}}
@media(max-width:480px){.product-grid-preview,.product-grid-catalog{grid-template-columns:1fr}.product-grid-preview .product-card:nth-child(n+3){display:none}.product-image{min-height:265px}}

/* The shelf is a torn paper layer laid over the gallery rather than a plain color break. */
.products-preview{position:relative;margin-top:0;padding-top:clamp(6.2rem,10vw,9rem)}.products-preview .torn-edge-products-top{--tear-paper:var(--paper);--tear-fiber:var(--detail-white);top:-1px;bottom:auto;height:88px;transform:rotate(180deg);filter:none}.products-preview .torn-edge-products-top::before,.products-preview .torn-edge-products-top::after{mask-position:58% center}

/* A full-width, pinned map gives visitors an immediate read on where the shop is. */
.location-map{margin-top:clamp(3rem,6vw,5rem)}.location-map-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:1.25rem}.location-map-heading h2{margin:0}.text-link-dark{color:var(--ink);font-size:.7rem}.map-wide{display:block;width:100%;height:510px;border:1px solid var(--alpha-ink-map);background:#e7edf0}
@media(max-width:760px){.location-map-heading{display:block}.location-map-heading .text-link{display:inline-block;margin-top:1.1rem}.map-wide{height:360px}.products-preview .torn-edge-products-top{height:58px}}

/* Mobile header: retain the Dapper crest and wordmark inside the bar, without the desktop hanging apron. */
@media(max-width:640px){
 .site-header{height:66px;min-height:66px;padding:.3rem 1rem;border-bottom:0!important;box-shadow:none}
 .brand{gap:.7rem}
 .brand::before{display:none}
 .brand img{position:static;left:auto;width:83px;height:86px;transform:none;transform-origin:center}
 .brand-copy{margin-left:0}
 .brand-copy strong{font-size:1.12rem}
 .brand-copy small{font-size:.5rem}
}

/* Mobile visit flow: booking first, Dapper details second, map last. */
@media(max-width:760px){
 .contact-grid .calendar-panel{order:1}
 .contact-grid .contact-panel{order:2}
}

/* Carry the header's separation through the desktop crest curve. */
@media(min-width:641px){.brand::before{filter:drop-shadow(0 3px 2px var(--alpha-ink-header-shadow))}}

/* Re-seat the enlarged mobile crest: a small top inset, a gentle lower apron, and a clear hang below the bar. */
@media(max-width:640px){
 .site-header{height:auto;min-height:71px;padding:.4rem 1rem;overflow:visible}
 .brand{z-index:auto}
 .brand img{width:47px;height:50px;transform:none}
 .brand img,.brand-copy{position:static;z-index:auto}
 .brand::before{display:none}
 .site-header::after{display:none}
}

/* Keep the services sheet edge light and close to the following section. */
.topline-rotation{height:1.4em;overflow:hidden;text-align:center;min-width:0}
.topline-track{display:block;animation:banner-messages 12s infinite}
.topline-track>span{display:block;height:1.4em;line-height:1.4;white-space:nowrap}
@keyframes banner-messages{0%,26%{transform:translateY(0)}33%,59%{transform:translateY(-25%)}66%,92%{transform:translateY(-50%)}100%{transform:translateY(-75%)}}
@media(min-width:641px){
 .site-header{border-bottom:0;box-shadow:none;backdrop-filter:none;filter:drop-shadow(0 2px 2px var(--alpha-ink-shadow));gap:1.5rem}
 .brand{flex-shrink:0}
 .brand::before{filter:none;top:calc(100% + .6rem - 1px)}
 .brand-copy{margin-left:42px}
}
@media(prefers-reduced-motion:reduce){.topline-track{animation:none}}
.story .torn-edge-services-bottom{height:68px;filter:none}
@media(max-width:640px){.story .torn-edge-services-bottom{height:44px}}

/* GHL booking calendar embed */
.calendar-slot{display:block;min-height:640px;padding:1rem;text-align:left}
.calendar-slot iframe{display:block;width:100%;min-height:620px;border:0}
