/* Interior design family, shared mechanics (2026-09-22).
   Layout plumbing only: every look (type, colour, shape, hero) lives in the
   design's own skin, which is appended after this file at build time.
   The customer's colours arrive as --brand, --brand-ink, --brand-deep,
   --brand-text, --brand-soft, --accent, --accent-ink and --brand-rgb. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:inherit}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,400);letter-spacing:var(--display-tracking,0);line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:var(--h1,clamp(2.6rem,5.2vw,4.8rem))}
h2{font-size:var(--h2,clamp(1.9rem,3.2vw,3rem))}
h3{font-size:var(--h3,1.3rem);line-height:1.2}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus,var(--brand));outline-offset:3px}
.eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--eyebrow,var(--brand-text))}
.meta{font-size:.82rem;letter-spacing:.04em;color:var(--ink-dim)}
.text-link{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;width:max-content}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:var(--btn-radius,8px);border:1px solid transparent;font-weight:600;font-size:.98rem;text-decoration:none;cursor:pointer;transition:transform .15s ease,background-color .2s ease,border-color .2s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--brand);color:var(--brand-ink)}
.btn-quiet{background:transparent;border-color:currentColor}
.btn:not(.btn-primary):not(.btn-quiet){background:var(--ink);color:var(--ground)}
/* full width everywhere; content keeps a readable measure */
:root{--inline:max(var(--gutter,24px),calc((100vw - var(--max,1240px))/2))}
main>section{padding:var(--sp,96px) var(--inline)}
.section-head{display:grid;gap:14px;max-width:760px;margin-bottom:40px}
.section-link{margin-top:32px}
.empty-card{display:grid;gap:18px;justify-items:start;max-width:620px;padding:32px;border:1px dashed var(--rule);border-radius:var(--radius,0)}
.empty-card p{color:var(--ink-dim)}
/* header */
.site-header{position:relative;z-index:20;background:var(--header-bg,var(--ground));color:var(--header-ink,var(--ink));border-bottom:1px solid var(--header-rule,var(--rule))}
.nav-shell{display:flex;align-items:center;gap:28px;min-height:76px;padding:0 var(--inline)}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;min-width:0}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.brand-logo{height:40px;width:auto;max-width:150px;object-fit:contain}
.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:var(--mark-radius,50%);background:var(--brand);color:var(--brand-ink);font-family:var(--font-display);font-size:.95rem;letter-spacing:.04em}
.nav-links{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:.95rem}
.nav-links>a{text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.nav-links>a:hover{border-bottom-color:currentColor}
.language{display:inline-flex;gap:8px;font-size:.82rem;letter-spacing:.06em}
.language a{text-decoration:none;opacity:.7}
.language a[aria-current="true"]{opacity:1;font-weight:700}
.nav-links .nav-cta{padding:10px 18px;border-radius:var(--btn-radius,8px);background:var(--brand);color:var(--brand-ink);border:0;font-weight:600}
.menu-toggle{display:none;align-items:center;gap:10px;margin-left:auto;min-height:44px;padding:8px 14px;border:1px solid var(--rule);border-radius:var(--btn-radius,8px);background:transparent;cursor:pointer}
.menu-lines{display:grid;gap:4px;width:20px}
.menu-lines span{display:block;height:2px;border-radius:1px;background:currentColor}
/* hero plumbing: the photograph fills the section; words sit above it */
.hero{position:relative;display:flex;min-height:var(--hero-h,clamp(600px,calc(100vh - 76px),900px));padding:0;overflow:hidden;background:var(--hero-bg,#2a2926)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:var(--hero-focus,50% 50%)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-line{font-size:clamp(1.02rem,1.3vw,1.18rem);margin-top:18px;max-width:520px}
/* story */
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:center}
.story-copy{display:grid;gap:18px;max-width:560px}
.story-media,.process-media,.about-media,.consult-media,.piece-media,.gallery-tile,.project-photo{position:relative}
.story-media img,.process-media img,.about-media img,.consult-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
/* work */
.work-grid{display:grid;gap:var(--grid-gap,28px)}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.work-card{display:grid;gap:16px;align-content:start}
.work-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius,0)}
.work-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.work-media:hover img{transform:scale(1.03)}
.work-media .count{position:absolute;left:12px;bottom:12px;padding:4px 10px;border-radius:999px;background:rgba(17,17,17,.92);color:#fff;font-size:.78rem}
.work-copy{display:grid;gap:8px}
.work-copy>p:not(.meta){color:var(--ink-dim)}
/* services */
.service-list{display:grid;gap:0}
.service{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 20px;padding:22px 0;border-top:1px solid var(--rule);text-decoration:none}
.service:last-child{border-bottom:1px solid var(--rule)}
.service-index{grid-row:span 2;font-family:var(--font-display);color:var(--brand-text)}
.service strong{font-size:1.15rem}
.service-line{color:var(--ink-dim)}
/* catalogue */
.piece-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--grid-gap,24px)}
.piece-card{display:grid;align-content:start;gap:14px}
.piece-media{aspect-ratio:1/1;overflow:hidden;border-radius:var(--radius,0);background:var(--surface)}
.piece-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.piece-copy{display:grid;gap:8px}
.piece-copy>p:not(.meta){color:var(--ink-dim);font-size:.95rem}
.piece-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.price{font-weight:700}
/* process */
.process{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,88px);align-items:center}
.process-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
.process-copy{display:grid;gap:18px}
.steps{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:18px}
.steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px}
.step-number{grid-row:span 2;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-ink);font-weight:700}
.steps p{color:var(--ink-dim)}
/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-tile{display:block;padding:0;border:0;background:none;cursor:pointer;overflow:hidden;border-radius:var(--radius,0);aspect-ratio:1/1}
.gallery-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-tile:hover img{transform:scale(1.04)}
/* visit */
.visit{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px);align-items:start}
.visit-copy{display:grid;gap:14px}
.visit-copy .reach{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:6px}
.visit-copy .reach a{font-weight:600}
.map-canvas{aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius,0);background:var(--surface)}
.map-canvas iframe{width:100%;height:100%;border:0;display:block}
.map-address{margin:14px 0 6px;color:var(--ink-dim)}
/* quote and closing */
.quote blockquote{margin:0;display:grid;gap:18px;max-width:900px}
.quote blockquote p{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.2}
.quote cite{font-style:normal;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}
.closing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;background:var(--closing-bg,var(--brand));color:var(--closing-ink,var(--brand-ink))}
.closing>div{display:grid;gap:12px;max-width:640px}
.closing .btn-primary{background:var(--closing-btn,var(--brand-ink));color:var(--closing-btn-ink,var(--brand))}
/* inner pages */
.page-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;justify-items:start;padding-top:clamp(56px,8vw,112px);padding-bottom:40px}
.page-intro p{max-width:680px;color:var(--ink-dim);font-size:1.08rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chips button{min-height:40px;padding:8px 16px;border:1px solid var(--rule);border-radius:var(--chip-radius,999px);background:transparent;cursor:pointer;font-size:.92rem}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.catalogue-tools{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px}
.search{display:grid;gap:6px;font-size:.85rem;min-width:min(320px,100%)}
.search input{min-height:44px;padding:10px 14px;border:1px solid var(--rule);border-radius:var(--field-radius,8px);background:var(--field-bg,transparent)}
.empty-note{margin-top:24px;color:var(--ink-dim)}
[hidden]{display:none!important}
.project-head{display:grid;gap:16px;justify-items:start;max-width:820px;margin-bottom:40px}
.project-head .back{font-size:.9rem}
.project-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.project-photo{overflow:hidden;border-radius:var(--radius,0);aspect-ratio:4/3}
.project-photo:first-child{grid-column:1/-1;aspect-ratio:16/9}
.project-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lightbox{max-width:min(1100px,94vw);width:100%;padding:0;border:0;background:transparent;color:#fff}
.lightbox::backdrop{background:rgba(8,8,8,.86)}
.lightbox img{width:100%;max-height:78vh;object-fit:contain}
.lightbox p{margin:12px 0}
.lightbox button{min-height:44px;padding:8px 18px;border:1px solid #fff;border-radius:999px;background:transparent;color:#fff;cursor:pointer}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,80px);align-items:center}
.about-media{aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius-lg,0)}
.about-copy{display:grid;gap:16px;justify-items:start}
.about-copy p{color:var(--ink-dim)}
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,64px);align-items:start}
.contact-card{display:grid;gap:12px;justify-items:start;padding:32px;background:var(--surface);border-radius:var(--radius,0)}
.contact-card a:not(.btn){font-weight:600}
/* the consultation form */
.consult-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,5vw,72px);align-items:start;padding-top:clamp(48px,7vw,96px)}
.consult-intro{display:grid;gap:18px;position:sticky;top:24px}
.consult-media{aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius,0)}
.consult-intro p{color:var(--ink-dim)}
.pending-note{display:grid;gap:4px;padding:16px 18px;background:var(--surface);border-radius:var(--radius,0)}
.pending-note span{color:var(--ink-dim);font-size:.94rem}
.consult-form{display:grid;gap:22px}
.consult-form fieldset{margin:0;padding:0;border:0;display:grid;gap:14px;min-width:0}
.consult-form legend{float:left;width:100%;padding:0;margin-bottom:10px;font-family:var(--font-display);font-size:1.25rem}
.consult-form label:not(.choice):not(.photo-drop):not(.consent){display:grid;gap:6px;font-size:.9rem;font-weight:600}
.consult-form input:not([type=checkbox]):not([type=radio]):not([type=file]),.consult-form select,.consult-form textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--field-rule,var(--rule));border-radius:var(--field-radius,8px);background:var(--field-bg,#fff);font-weight:400;font-size:1rem}
.consult-form textarea{min-height:120px;resize:vertical}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.choice-grid{display:flex;flex-wrap:wrap;gap:8px}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:1px solid var(--field-rule,var(--rule));border-radius:var(--chip-radius,999px);cursor:pointer;font-size:.95rem;background:var(--field-bg,transparent)}
.choice input{accent-color:var(--brand);width:18px;height:18px;margin:0}
.choice:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
.choice-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.choice-row>span{font-size:.9rem;font-weight:600;margin-right:6px}
.photo-drop{display:grid;justify-items:start;gap:4px;padding:20px;border:1px dashed var(--field-rule,var(--rule));border-radius:var(--field-radius,8px);cursor:pointer;background:var(--field-bg,transparent)}
.photo-drop input{position:absolute;width:1px;height:1px;opacity:0}
.photo-drop span{font-weight:700;color:var(--brand-text)}
.photo-drop small{color:var(--ink-dim)}
.photo-drop:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.photo-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.photo-list li{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--surface)}
.photo-list img{width:100%;height:100%;object-fit:cover}
.photo-list li[data-state="sending"] img{opacity:.45}
.photo-list li[data-state="failed"]{outline:2px solid #b3261e}
.photo-list button{position:absolute;top:4px;right:4px;min-height:32px;padding:4px 10px;border:0;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;cursor:pointer;font-size:.72rem;font-weight:600}
.photo-list .photo-note{position:absolute;left:4px;bottom:4px;right:4px;font-size:.7rem;padding:2px 6px;border-radius:6px;background:rgba(0,0,0,.66);color:#fff}
.about-piece{padding:12px 16px;border-radius:var(--field-radius,8px);background:var(--brand-soft);color:var(--ink)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.95rem}
.consent input{width:18px;height:18px;margin-top:3px;accent-color:var(--brand)}
.form-status{min-height:1.4em;font-weight:600}
.form-status.is-error{color:#b3261e}
.form-status.is-ok{color:var(--brand-text)}
.consult-done{display:grid;gap:14px;padding:28px;border-radius:var(--radius,0);background:var(--surface)}
/* footer */
.site-footer{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:32px;padding:64px var(--inline) 36px;background:var(--footer-bg,var(--ink));color:var(--footer-ink,var(--ground))}
.footer-brand{display:grid;gap:10px}
.footer-brand strong{font-family:var(--font-display);font-size:1.4rem;font-weight:var(--display-weight,400)}
.footer-brand p,.footer-reach p{opacity:.78}
.footer-links,.footer-reach{display:grid;gap:10px;align-content:start}
.footer-links a,.footer-reach a{text-decoration:none}
.footer-links a:hover,.footer-reach a:hover{text-decoration:underline}
.legal{grid-column:1/-1;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);font-size:.85rem;opacity:.7}
@media (max-width:1080px){
  .nav-links{gap:16px}
  .piece-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  body{font-size:16px}
  .menu-toggle{display:inline-flex}
  .nav-links{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;gap:4px;padding:16px var(--inline) 24px;background:var(--header-bg,var(--ground));border-bottom:1px solid var(--rule)}
  .nav-links[data-open="true"]{display:flex}
  .nav-links>a{padding:10px 0;width:100%}
  .nav-links .nav-cta{margin-top:10px}
  .story,.process,.about-grid,.visit,.contact-grid,.consult-layout{grid-template-columns:1fr}
  .work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .consult-intro{position:static}
  .site-footer{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media (max-width:640px){
  :root{--sp:64px;--gutter:18px}
  .nav-shell{min-height:64px;gap:12px}
  .brand-name{max-width:150px}
  .work-grid,.piece-grid,.project-photos{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field-pair{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr}
  .hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .hero-actions .btn{padding:12px 10px;font-size:.92rem}
  .closing .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* a heading word too long for its line breaks rather than spills (overflow check 2026-09-22) */
h1,h2,h3{overflow-wrap:anywhere}

/* Phones (2026-09-24): form fields read at 16px, so an iPhone does not
   zoom into the field a customer taps. :not(#_) lifts the rule over the
   design's own field rules without !important. */
@media (max-width: 960px) {
  input:not([type=checkbox],[type=radio],[type=file],[type=submit],[type=button],[type=reset],[type=image],[type=range],[type=color],[type=hidden]):not(#_),
  select:not(#_),
  textarea:not(#_) { font-size: 16px; }
}

/* Ébène Gallery: dark, cinematic, sharp. Bodoni Moda over Jost.
   Hero: large words straight on the photograph, over a deep veil rising
   from its foot and a faint wash of the customer's colour from the left. */
:root{
  --font-display:"Bodoni Moda",Didot,"Bodoni 72",Georgia,serif;
  --font-body:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ground:#12110f;--surface:#1c1a17;--surface-2:#262320;
  --ink:#f1ece4;--ink-dim:#b5ada1;--rule:#3a3631;
  --radius:0;--radius-lg:0;--btn-radius:0;--chip-radius:0;--field-radius:0;--mark-radius:0;
  --max:1320px;--gutter:28px;--sp:112px;--grid-gap:18px;
  --display-weight:500;--display-tracking:-.01em;
  --h1:clamp(3rem,7vw,6.8rem);--h2:clamp(2.1rem,4vw,3.8rem);--h3:1.45rem;
  --brand:#8fb8a8;--brand-ink:#0e1a16;--brand-deep:#10201a;--brand-text:#a9cfc0;--brand-soft:#1e2a26;
  --accent:#8fb8a8;--accent-ink:#0e1a16;--brand-rgb:143,184,168;
  --eyebrow:var(--ink-dim);--hero-bg:#0b0a09;--hero-h:clamp(640px,calc(100vh - 72px),960px);--hero-focus:50% 60%;
  --field-bg:#1a1815;--field-rule:#45403a;--focus:#f1ece4;
  --footer-bg:#0b0a09;--footer-ink:#e8e2d8;--closing-bg:var(--surface);--closing-ink:var(--ink);
  --closing-btn:var(--brand);--closing-btn-ink:var(--brand-ink);
}
body{font-weight:300;letter-spacing:.01em}
/* the customer's colour as text, lightened for the dark ground */
body.scheme-dark{--brand-text:var(--brand-on-dark,#a9cfc0)}
.site-header{background:var(--ground);border-bottom:1px solid var(--rule)}
.nav-split .nav-shell{min-height:72px}
.nav-split .brand{order:0}
.nav-split .nav-links{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
.brand-name{font-family:var(--font-display);font-size:1.25rem;font-weight:500;letter-spacing:.02em}
.brand-mark{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn{letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:500}
.btn-quiet{color:var(--ink)}
.text-link{letter-spacing:.1em;text-transform:uppercase;font-size:.8rem;font-weight:500}
/* hero: the veil */
.hero-veil{align-items:flex-end;padding:0 var(--inline) clamp(40px,7vw,96px)}
.hero-veil::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(0deg,rgba(10,9,8,.94) 0%,rgba(10,9,8,.8) 26%,rgba(10,9,8,.38) 52%,rgba(10,9,8,0) 74%),linear-gradient(90deg,rgba(var(--brand-rgb),.22) 0%,rgba(var(--brand-rgb),0) 55%)}
.hero-words{position:relative;z-index:1;max-width:980px;color:#f6f1ea}
.hero-words .eyebrow{color:rgba(246,241,234,.78)}
.hero-words h1{margin-top:18px;font-weight:500;line-height:.98}
.hero-words .hero-line{color:rgba(246,241,234,.86);font-size:clamp(1.02rem,1.4vw,1.24rem)}
.hero-words .btn-quiet{color:#f6f1ea}
.hero-caption{position:absolute;z-index:1;right:var(--inline);bottom:clamp(40px,7vw,96px);writing-mode:vertical-rl;transform:rotate(180deg);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,241,234,.62)}
/* story */
.story{border-bottom:1px solid var(--rule)}
.story-copy h2{font-style:italic}
/* work: a mosaic, one large project beside two stacked */
[data-layout=mosaic] .work-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
[data-layout=mosaic] .work-card:first-child{grid-row:1/3;grid-template-rows:1fr auto}
[data-layout=mosaic] .work-card:first-child:nth-last-child(2){grid-row:auto}
[data-layout=mosaic] .work-card:only-child{grid-column:1/-1}
[data-layout=mosaic] .work-card:first-child .work-media{aspect-ratio:auto;height:100%;min-height:420px}
[data-layout=mosaic] .work-card{position:relative}
[data-layout=mosaic] .work-card .work-copy{gap:4px}
[data-layout=mosaic] .work-copy>p:not(.meta){display:none}
[data-layout=mosaic] .work-card:first-child .work-copy>p:not(.meta){display:block}
/* services: a ledger with big numerals */
[data-layout=ledger] .service{grid-template-columns:120px minmax(0,1fr) minmax(0,1.3fr);align-items:baseline;padding:28px 0}
[data-layout=ledger] .service-index{grid-row:auto;font-size:2.4rem;color:var(--ink-dim)}
[data-layout=ledger] .service strong{font-family:var(--font-display);font-weight:500;font-size:1.7rem}
/* catalogue: a numbered list with thumbnails */
[data-layout=list] .piece-grid{grid-template-columns:1fr;gap:0}
[data-layout=list] .piece-card{grid-template-columns:140px minmax(0,1fr);gap:28px;align-items:center;padding:22px 0;border-top:1px solid var(--rule)}
[data-layout=list] .piece-card:last-child{border-bottom:1px solid var(--rule)}
[data-layout=list] .piece-media{aspect-ratio:1/1}
[data-layout=list] .piece-copy{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:32px}
[data-layout=list] .piece-copy>p:not(.meta){grid-column:1}
[data-layout=list] .piece-foot{grid-column:2;grid-row:1/span 3;flex-direction:column;align-items:flex-end}
[data-layout=list] h3{font-weight:500;font-size:1.6rem}
/* process: a timeline beside a tall photo */
.process{background:var(--surface)}
[data-layout=timeline] .steps{gap:0;border-left:1px solid var(--rule);margin-left:20px}
[data-layout=timeline] .steps li{padding:0 0 26px 30px;position:relative;display:block}
[data-layout=timeline] .step-number{position:absolute;left:-20px;top:0;width:40px;height:40px;border-radius:0;background:var(--ground);color:var(--ink);border:1px solid var(--rule);font-family:var(--font-display)}
[data-layout=timeline] .steps h3{margin:6px 0 6px}
/* gallery: a tight grid of squares */
[data-layout=grid] .gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.quote{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.quote blockquote{max-width:1100px}
.quote blockquote p{font-style:italic;font-size:clamp(2rem,4vw,3.6rem)}
.closing h2{font-style:italic}
.chips button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.contact-card{background:var(--surface)}
.pending-note{background:var(--surface)}
.consult-form legend{font-style:italic}
.site-footer{border-top:1px solid var(--rule)}
@media (max-width:900px){
  [data-layout=ledger] .service{grid-template-columns:64px minmax(0,1fr)}
  [data-layout=ledger] .service-line{grid-column:2}
  .hero-caption{display:none}
}
@media (max-width:640px){
  .btn{letter-spacing:.06em;font-size:.74rem;padding:12px 10px}
  .hero-veil{padding:0 18px 28px}
  .hero-veil::after{background:linear-gradient(0deg,rgba(10,9,8,.95) 0%,rgba(10,9,8,.84) 34%,rgba(10,9,8,.4) 60%,rgba(10,9,8,0) 80%)}
  .hero-words h1{font-size:2.7rem}
  [data-layout=mosaic] .work-grid{grid-template-columns:1fr}
  [data-layout=mosaic] .work-card:first-child{grid-row:auto}
  [data-layout=mosaic] .work-card:first-child .work-media{min-height:0;aspect-ratio:4/3}
  [data-layout=list] .piece-card{grid-template-columns:96px minmax(0,1fr);gap:16px}
  [data-layout=list] .piece-copy{grid-template-columns:1fr}
  [data-layout=list] .piece-foot{grid-column:1;grid-row:auto;flex-direction:row;align-items:center}
  [data-layout=grid] .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
