
/* Layout: a classic white showroom. Off-white and silver neutrals, Bodoni display, antique-gold accent; products float with soft shadows. Hash-routed pages: home, collection, product, private label, about, contact. */
:root{
  --bg:#F6F5F2; --panel:#FFFFFF; --panel2:#ECEBE7; --line:#D3CFC7;
  --fg:#141210; --muted:#3F3a34; --dim:#5E574F;
  --brass:#8A6230; --brass-hi:#6E4C22; --on-brass:#FFFFFF; --silver:#C7CACE;
  --shadow:rgba(70,52,34,.26);
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --body:"Manrope","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:400;font-size:17.5px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{max-width:1240px;margin:0 auto;padding-left:max(20px, env(safe-area-inset-left, 0px));padding-right:max(20px, env(safe-area-inset-right, 0px))}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.05;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;color:inherit}
:focus-visible{outline:1px solid var(--brass);outline-offset:4px}
.eyebrow{font-family:var(--mono);font-weight:600;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi)}
.btn{display:inline-flex;align-items:center;gap:12px;font:700 13.5px var(--body);letter-spacing:.12em;text-transform:uppercase;padding:16px 28px;border:1px solid var(--brass);background:var(--brass);color:var(--on-brass);cursor:pointer;transition:background .3s,color .3s}
.btn:hover{background:transparent;color:var(--brass-hi)}
.btn.line{background:transparent;color:var(--fg);border-color:color-mix(in srgb,var(--fg) 35%,transparent)}
.btn.line:hover{border-color:var(--brass);color:var(--brass-hi)}
.arrow{display:inline-block;transition:transform .3s}
a:hover .arrow,button:hover .arrow{transform:translateX(5px)}

/* ---------- header ---------- */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.brand{display:flex;align-items:center;gap:14px;color:var(--fg)}
.brand .mono{height:46px;width:auto}
.brand .word{height:30px;width:auto}
.menu{display:flex;gap:34px;list-style:none;margin:0;padding:0}
.menu a{font-size:13.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg);transition:color .2s;padding-block:8px}
.menu a:hover,.menu a[aria-current="page"]{color:var(--brass-hi)}
.nav .btn{padding:12px 20px;font-size:12px}
.burger{display:none;background:none;border:1px solid var(--line);width:44px;height:44px;cursor:pointer;align-items:center;justify-content:center}
.burger span{display:block;width:18px;height:1px;background:var(--fg);box-shadow:0 6px 0 var(--fg),0 -6px 0 var(--fg)}
@media (max-width:980px){
  .menu{position:fixed;inset:76px 0 auto 0;top:calc(76px + env(safe-area-inset-top,0px));flex-direction:column;gap:0;background:var(--panel);border-bottom:1px solid var(--line);padding:8px max(20px, env(safe-area-inset-right, 0px)) 20px max(20px, env(safe-area-inset-left, 0px));display:none}
  .menu.open{display:flex}
  .menu a{display:block;padding-block:14px;border-bottom:1px solid var(--line);font-size:13px}
  .burger{display:inline-flex}
  .nav .btn{display:none}
  .brand .word{height:24px}
  .brand .mono{height:38px}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 72% 45%,#FFFFFF,transparent 70%),radial-gradient(40% 40% at 15% 100%,color-mix(in srgb,var(--silver) 30%,transparent),transparent 70%);pointer-events:none}
.hero-in{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;padding-block:72px 64px;min-height:640px}
.hero h1{font-size:clamp(46px,6.4vw,96px);letter-spacing:-.015em}
.hero h1 i{color:var(--brass);font-style:italic}
.hero .lede{margin-top:28px;max-width:46ch;color:var(--muted);font-size:18px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}
.hero .creds{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:48px;font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.hero .creds span::before{content:"◆";color:var(--brass);margin-right:10px;font-size:8px;vertical-align:2px}
.stage{position:relative;aspect-ratio:1;max-width:100%;display:grid;place-items:center}
.stage .ghost{position:absolute;inset:4% 10%;color:color-mix(in srgb,var(--silver) 45%,transparent);display:grid;place-items:center}
.stage .ghost svg{height:100%;width:auto}
.stage .spot{position:absolute;left:12%;right:12%;bottom:13%;height:9%;background:radial-gradient(closest-side,var(--shadow),transparent);filter:blur(6px)}
.stage img{position:relative;width:76%;transition:opacity .7s,transform .9s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 40px 40px var(--shadow))}
.stage img.out{opacity:0;transform:translateY(18px) scale(.97)}
@media (prefers-reduced-motion:no-preference){.stage img:not(.out){animation:float 7s ease-in-out infinite}}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -10px}}
.stage-tag{position:absolute;right:0;bottom:4%;text-align:right;font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.6}
.stage-tag b{display:block;color:var(--brass);font-weight:400;letter-spacing:.12em}
.stage-dots{position:absolute;left:0;bottom:6%;display:flex;gap:10px}
.stage-dots button{width:34px;height:2px;border:0;background:var(--line);cursor:pointer;padding:0}
.stage-dots button[aria-pressed="true"]{background:var(--brass)}
@media (max-width:900px){.hero-in{grid-template-columns:1fr;min-height:0;padding-block:48px 40px}.stage{max-width:520px;width:100%;margin-inline:auto}}

/* ---------- marquee ---------- */
.marquee{border-bottom:1px solid var(--line);overflow:hidden;background:var(--panel);background:linear-gradient(180deg,#FFFFFF,var(--panel2))}
.marquee .track{display:flex;width:max-content;gap:56px;padding-block:20px;font-family:var(--display);font-style:italic;font-size:24px;color:var(--muted);white-space:nowrap}
.marquee .track span::after{content:"✦";font-style:normal;color:var(--brass);font-size:12px;margin-left:56px;vertical-align:5px}
@media (prefers-reduced-motion:no-preference){.marquee .track{animation:slide 40s linear infinite}}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
section{padding-block:110px}
.sh{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;margin-bottom:56px}
.sh h2{font-size:clamp(38px,4.6vw,64px);margin-top:16px}
.sh p{max-width:44ch;color:var(--muted)}
@media (max-width:700px){section{padding-block:72px}.sh{margin-bottom:36px}}

/* numbers */
.numbers{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line)}
.numbers div{padding:40px 28px;border-left:1px solid var(--line)}
.numbers div:first-child{border-left:0}
.numbers b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(44px,5vw,68px);line-height:1;color:var(--fg);font-variant-numeric:lining-nums tabular-nums}
.numbers span{display:block;margin-top:12px;color:var(--muted);font-size:14.5px}
@media (max-width:800px){.numbers{grid-template-columns:1fr 1fr}.numbers div:nth-child(3){border-left:0}.numbers div:nth-child(n+3){border-top:1px solid var(--line)}}

/* collections */
.cols{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.col{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--line);min-height:400px;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;isolation:isolate}
.col:nth-child(1),.col:nth-child(2){grid-column:span 6;min-height:480px}
.col:nth-child(n+3){grid-column:span 3;min-height:440px}
.col:nth-child(n+3) img:not(.photo){top:34%;width:min(62%,240px)}
.col::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 38%,#FFFFFF,var(--panel2) 100%);z-index:-1}
.col img{position:absolute;left:50%;top:44%;width:min(66%,340px);translate:-50% -50%;z-index:-1;filter:drop-shadow(0 30px 30px var(--shadow));transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.col img.photo{inset:0;width:100%;height:100%;translate:none;object-fit:cover;filter:none;opacity:.95}
.col:hover img{transform:scale(1.06)}
.col::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--panel) 18%,transparent 55%);z-index:-1}
.col .n{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.col h3{font-size:clamp(28px,2.6vw,38px);margin-top:10px}
.col p{color:var(--muted);font-size:15px;margin-top:8px;max-width:36ch}
.col .go{margin-top:18px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg)}
.col .mono-mark{position:absolute;left:50%;top:40%;translate:-50% -50%;height:52%;color:color-mix(in srgb,var(--silver) 60%,transparent);z-index:-1}
@media (max-width:900px){.cols{grid-template-columns:1fr 1fr}.col,.col:nth-child(1),.col:nth-child(2),.col:nth-child(n+3){grid-column:span 1;min-height:340px}}
@media (max-width:560px){.cols{grid-template-columns:1fr}}

/* product cards */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media (max-width:1100px){.pgrid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:780px){.pgrid{grid-template-columns:1fr 1fr;gap:14px}}
.pc{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);transition:border-color .3s}
.pc:hover{border-color:color-mix(in srgb,var(--brass) 55%,var(--line))}
.pc .ph{position:relative;aspect-ratio:1;overflow:hidden;background:radial-gradient(70% 65% at 50% 40%,#FFFFFF,var(--panel2) 95%)}
.pc .ph img{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 22px 22px var(--shadow));transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .5s}
.pc .ph img.alt{opacity:0}
.pc:hover .ph img.main{transform:scale(1.05)}
.pc:hover .ph img.alt{opacity:1}
.pc:hover .ph img.alt + img.main,.pc:hover .ph img.main.has-alt{opacity:0}
.pc .ph img.photo{inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.pc .bd{padding:18px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.pc .code{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;color:var(--brass)}
.pc h3{font-size:22px;line-height:1.15}
.pc .meta{font-size:15px;color:var(--muted)}
.pc .more{margin-top:auto;padding-top:12px;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--fg)}
@media (max-width:780px){.pc h3{font-size:18px}.pc .bd{padding:14px}}

/* carousel */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 66px)/4);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start}
@media (max-width:1100px){.rail{grid-auto-columns:calc((100% - 44px)/3)}}
@media (max-width:780px){.rail{grid-auto-columns:72%}}
.rail-ctl{display:flex;gap:10px}
.rail-ctl button{width:50px;height:50px;border:1px solid var(--line);background:transparent;cursor:pointer;font-size:18px;transition:border-color .2s,color .2s}
.rail-ctl button:hover{border-color:var(--brass);color:var(--brass-hi)}

/* craft */
.craft{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:center}
.mosaic{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:240px 240px;gap:14px}
.mosaic figure{margin:0;position:relative;overflow:hidden;border:1px solid var(--line)}
.mosaic figure:first-child{grid-row:span 2}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.mosaic figure:hover img{transform:scale(1.06)}
.mosaic figcaption{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--fg);background:var(--panel);padding:5px 9px}
.craft h2{font-size:clamp(38px,4.4vw,60px);margin-top:16px}
.craft .l{margin-top:22px;color:var(--muted);max-width:46ch}
.points{margin-top:34px;display:grid;gap:0;border-top:1px solid var(--line)}
.points div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding-block:18px;border-bottom:1px solid var(--line)}
.points dt{font-family:var(--display);font-style:italic;font-size:21px;color:var(--brass-hi)}
.points dd{margin:0;color:var(--muted);font-size:15.5px}
@media (max-width:900px){.craft{grid-template-columns:1fr;gap:44px}.mosaic{grid-template-rows:180px 180px}.points div{grid-template-columns:1fr;gap:4px}}

/* private label band */
.pl{position:relative;overflow:hidden;background:var(--panel);border-block:1px solid var(--line)}
.pl::before{content:"";position:absolute;inset:0;background:url("img/tex-stitch.webp") right center/cover;opacity:.12}
.pl::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--panel) 30%,transparent)}
.pl .wrap{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.pl h2{font-size:clamp(40px,5vw,72px);margin-top:16px}
.pl .l{margin-top:22px;color:var(--muted);max-width:44ch}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.opt{background:color-mix(in srgb,var(--panel) 92%,transparent);padding:28px 24px;backdrop-filter:blur(4px)}
.opt .k{font-family:var(--mono);font-weight:600;font-size:12px;color:var(--brass);letter-spacing:.16em}
.opt h3{font-size:24px;margin-top:10px}
.opt p{margin-top:8px;font-size:15px;color:var(--muted)}
@media (max-width:900px){.pl .wrap{grid-template-columns:1fr;gap:40px}.opts{grid-template-columns:1fr}}

/* process */
.steps{display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--line)}
.step{position:relative;padding-right:22px}
.step .dot{width:55px;height:55px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;background:var(--panel);font-family:var(--display);font-size:22px;color:var(--brass-hi)}
.step h3{font-size:26px;margin-top:22px}
.step p{margin-top:8px;font-size:15px;color:var(--muted)}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:28px}.steps::before{left:27px;right:auto;top:0;bottom:0;width:1px;height:auto}.step{display:grid;grid-template-columns:55px 1fr;gap:0 22px}.step h3{margin-top:10px}.step p{grid-column:2}}

/* cta band */
.cta{text-align:center;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 80% at 50% 100%,color-mix(in srgb,var(--silver) 40%,transparent),transparent 70%)}
.cta .wrap{position:relative}
.cta h2{font-size:clamp(40px,6vw,84px);max-width:16ch;margin:16px auto 0}
.cta p{margin:22px auto 0;max-width:50ch;color:var(--muted)}
.cta .ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:40px}

/* ---------- inner pages ---------- */
.ph-hero{border-bottom:1px solid var(--line);padding-block:72px 48px;position:relative;overflow:hidden}
.ph-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 90% at 85% 0%,color-mix(in srgb,var(--silver) 35%,transparent),transparent 70%)}
.ph-hero .wrap{position:relative}
.ph-hero h1{font-size:clamp(44px,6vw,84px);margin-top:16px}
.ph-hero p{margin-top:18px;max-width:56ch;color:var(--muted)}
.crumbs{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.crumbs a:hover{color:var(--brass)}
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}
.chip{border:1px solid var(--line);background:transparent;padding:10px 18px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--brass);color:var(--fg)}
.chip[aria-pressed="true"]{background:var(--brass);border-color:var(--brass);color:var(--on-brass)}
.count{font-family:var(--mono);font-size:12px;color:var(--dim);margin-bottom:18px}

/* product page */
.pd{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:start;padding-block:48px 100px}
.gallery .main{position:relative;aspect-ratio:1;border:1px solid var(--line);overflow:hidden;background:radial-gradient(70% 65% at 50% 40%,#FFFFFF,var(--panel2) 95%)}
.gallery .main img{position:absolute;inset:7%;width:86%;height:86%;object-fit:contain;filter:drop-shadow(0 34px 34px var(--shadow));transition:opacity .35s}
.gallery .main img.photo{inset:0;width:100%;height:100%;object-fit:cover;filter:none}
.thumbs{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}
.thumbs button{width:92px;height:92px;border:1px solid var(--line);background:var(--panel);padding:6px;cursor:pointer;transition:border-color .2s}
.thumbs button[aria-pressed="true"]{border-color:var(--brass)}
.thumbs img{width:100%;height:100%;object-fit:contain}
.info{position:sticky;top:110px}
.info h1{font-size:clamp(38px,4vw,56px);margin-top:14px}
.info .lead{margin-top:18px;color:var(--muted)}
.spec{margin-top:30px;border-top:1px solid var(--line)}
.spec div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding-block:14px;border-bottom:1px solid var(--line);font-size:15.5px}
.spec dt{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);padding-top:4px}
.spec dd{margin:0}
.spec ul{margin:0;padding-left:18px}
.info .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.note{margin-top:18px;font-size:14px;color:var(--dim)}
@media (max-width:900px){.pd{grid-template-columns:1fr;gap:36px}.info{position:static}.thumbs button{width:72px;height:72px}.spec div{grid-template-columns:1fr;gap:4px}}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.about .big{font-family:var(--display);font-size:clamp(28px,3vw,40px);line-height:1.25}
.about .big em{color:var(--brass-hi)}
.about p+p{margin-top:18px}
.about .txt{color:var(--muted)}
.creds-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:56px}
.cred{border:1px solid var(--line);background:var(--panel);padding:26px}
.cred h3{font-size:24px;margin-top:10px}
.cred p{margin-top:8px;color:var(--muted);font-size:15px}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:36px}.creds-list{grid-template-columns:1fr}}

/* contact */
.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.cinfo{display:grid;gap:26px}
.cinfo .lbl{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
.cinfo .v{margin-top:6px;font-size:17px;overflow-wrap:anywhere}
.copy{margin-left:10px;border:1px solid var(--line);background:none;padding:4px 10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer}
.copy:hover{border-color:var(--brass);color:var(--fg)}
form{background:var(--panel);border:1px solid var(--line);padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:20px}
form .full{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:8px;font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{font:500 16px var(--body);letter-spacing:0;text-transform:none;color:var(--fg);background:var(--bg);border:1px solid var(--line);padding:13px 14px;width:100%;border-radius:0}
input:focus,select:focus,textarea:focus{border-color:var(--brass);outline:none}
textarea{min-height:130px;resize:vertical}
.sent{grid-column:1/-1;border:1px solid var(--brass);padding:14px 16px;font-size:15px;color:var(--brass-hi)}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:40px}form{grid-template-columns:1fr;padding:22px}}

/* footer */
footer{border-top:1px solid var(--line);background:var(--panel);padding-block:64px 36px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot .brandf svg{height:120px;width:auto;color:var(--fg)}
.foot>div{min-width:0;overflow-wrap:anywhere}
.foot h4{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:16px;font-weight:400}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:15px;color:var(--muted)}
.foot a:hover{color:var(--fg)}
.legal{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--dim)}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}.foot .brandf{grid-column:1/-1}}
@media (max-width:560px){.foot{grid-template-columns:1fr}}

/* reveal */
@media (prefers-reduced-motion:no-preference){
  .rv{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
  .rv.d1{animation-delay:.08s}.rv.d2{animation-delay:.16s}.rv.d3{animation-delay:.24s}
  @keyframes rise{from{opacity:.001;transform:translateY(16px)}}
}

/* ---------- home v2 (editorial) ---------- */
h2 i,h1 i{font-style:italic;color:var(--brass)}
.muted{color:var(--muted)}
.h2-hero{border-bottom:1px solid var(--line);background:linear-gradient(180deg,#FFFFFF 0%,var(--bg) 100%)}
.h2-in{display:grid;grid-template-columns:1fr 1.05fr;gap:64px;align-items:center;padding-block:72px 56px}
.h2-copy h1{font-size:clamp(44px,5.6vw,84px);letter-spacing:-.01em;margin-top:18px}
.h2-copy .lede{margin-top:26px;max-width:46ch;color:var(--muted);font-size:19px;font-weight:500}
.h2-copy .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.h2-visual{display:grid;grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:14px;aspect-ratio:1.15/1;max-width:100%}
.h2-visual figure{margin:0;position:relative;overflow:hidden;background:var(--panel2)}
.h2-visual .h2-main{grid-row:span 2}
.h2-visual img{width:100%;height:100%;object-fit:contain;background:#fff;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.h2-visual figure:hover img{transform:scale(1.04)}
.h2-visual figcaption{position:absolute;left:12px;bottom:12px;background:var(--panel);padding:6px 10px;font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.facts{display:grid;grid-template-columns:repeat(4,1fr);margin:0;border-top:1px solid var(--line)}
.facts div{padding:28px 24px;border-left:1px solid var(--line)}
.facts div:first-child{border-left:0;padding-left:0}
.facts dt{font-family:var(--display);font-size:clamp(28px,3vw,40px);line-height:1}
.facts dd{margin:10px 0 0;color:var(--muted);font-size:15.5px;font-weight:500}
@media (max-width:900px){.h2-in{grid-template-columns:1fr;gap:40px;padding-block:44px 36px}.facts{grid-template-columns:1fr 1fr}.facts div{border-left:0;padding-left:0;border-top:1px solid var(--line)}.facts div:nth-child(-n+2){border-top:0}}
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 22px}
.cat{display:flex;flex-direction:column;gap:14px}
.cat .im{aspect-ratio:1/1;overflow:hidden;background:#fff;border:1px solid var(--line);position:relative}
.cat .im img{width:100%;height:100%;object-fit:contain;padding:8%;box-sizing:border-box;transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.cat:hover .im img{transform:scale(1.05)}
.cat .im .mono-mark{position:absolute;inset:18% 30%;color:var(--silver)}
.cat .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px}
.cat h3{font-size:26px}
.cat .n{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);white-space:nowrap}
.cat p{color:var(--muted);font-size:16px}
@media (max-width:900px){.cats{grid-template-columns:1fr 1fr}}
@media (max-width:540px){.cats{grid-template-columns:1fr}}
.why{background:var(--panel);border-block:1px solid var(--line)}
.whys{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:auto auto;gap:1px;background:var(--line);border:1px solid var(--line)}
.wy{background:var(--panel);padding:30px 28px}
.wy.big{grid-row:span 2;background:var(--fg);color:var(--panel);display:flex;flex-direction:column;justify-content:flex-end;min-height:340px}
.wy.big p{color:color-mix(in srgb,var(--panel) 85%,var(--fg))}
.wy.big h3{font-size:clamp(30px,3vw,42px)}
.wy .k{font-family:var(--mono);font-weight:600;font-size:12px;letter-spacing:.16em;color:var(--brass)}
.wy h3{font-size:25px;margin-top:12px}
.wy p{margin-top:10px;color:var(--muted);font-size:16px}
@media (max-width:900px){.whys{grid-template-columns:1fr 1fr}.wy.big{grid-column:1/-1;grid-row:auto;min-height:0}}
@media (max-width:540px){.whys{grid-template-columns:1fr}}
.lthr{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 22px}
.lthr figure{margin:0}
.lthr img{aspect-ratio:1;width:100%;object-fit:cover;transition:transform 1s}
.lthr figure>div,.lthr figure{overflow:hidden}
.lthr figcaption{padding-top:14px;border-top:2px solid var(--brass);margin-top:14px}
.lthr h3{font-size:24px}
.lthr p{margin-top:6px;color:var(--muted);font-size:16px}
@media (max-width:900px){.lthr{grid-template-columns:1fr 1fr}}
.ws{background:var(--panel2);border-block:1px solid var(--line)}
.wsg{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.wsg figure{margin:0;aspect-ratio:4/3;position:relative;overflow:hidden;background:var(--panel)}
.wsg figure img{width:100%;height:100%;object-fit:cover}
.wsg .tbd{display:grid;place-items:center;border:1px dashed var(--silver);background:repeating-linear-gradient(135deg,var(--panel) 0 14px,#F1F0ED 14px 28px)}
.wsg .tbd span{font-family:var(--display);font-size:24px;text-align:center}
.wsg .tbd::after{content:"Workshop photo coming soon";position:absolute;bottom:14px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
@media (max-width:900px){.wsg{grid-template-columns:1fr 1fr}}
.certs{padding-block:56px;border-bottom:1px solid var(--line)}
.cert-row{display:grid;grid-template-columns:repeat(5,1fr);margin-top:26px;border:1px solid var(--line);background:var(--panel)}
.cert-row div{padding:26px 22px;text-align:center;border-left:1px solid var(--line)}
.cert-row div:first-child{border-left:0}
.cert-row b{display:block;font-family:var(--display);font-weight:500;font-size:34px;letter-spacing:.04em}
.cert-row span{display:block;margin-top:8px;color:var(--muted);font-size:15px;font-weight:500}
@media (max-width:900px){.cert-row{grid-template-columns:1fr 1fr}.cert-row div{border-left:0!important;border-top:1px solid var(--line)}.cert-row div:nth-child(-n+2){border-top:0}.cert-row div:nth-child(even){border-left:1px solid var(--line)!important}.cert-row div:last-child:nth-child(odd){grid-column:1/-1}}
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px}
.faq h2{font-size:clamp(38px,4.4vw,60px);margin-top:14px}
.qa details{border-bottom:1px solid var(--line);padding-block:20px}
.qa details:first-child{border-top:1px solid var(--line)}
.qa summary{cursor:pointer;font-family:var(--display);font-size:22px;list-style:none;display:flex;justify-content:space-between;gap:20px}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";color:var(--brass);font-family:var(--body)}
.qa details[open] summary::after{content:"–"}
.qa p{margin-top:12px;color:var(--muted);max-width:60ch}
@media (max-width:900px){.faq{grid-template-columns:1fr;gap:28px}}
.pc .ph img.photo{transform-origin:50% 55%}


.wa-fab{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:10px;background:#25D366;color:#fff;border-radius:999px;padding:12px 18px 12px 14px;font:700 14px var(--body);letter-spacing:.02em;box-shadow:0 8px 24px rgba(0,0,0,.22);text-decoration:none;transition:transform .2s}
.wa-fab:hover{transform:translateY(-2px)}
@media (max-width:600px){.wa-fab span{display:none}.wa-fab{padding:14px}}
.btn.wa{background:#25D366;border-color:#25D366;color:#fff}

.view[hidden],#subfilters[hidden]{display:none!important}

.cat .im img.cover{object-fit:cover;padding:0}

.filters a.chip{text-decoration:none;display:inline-block}
.pc .ph img.main{opacity:1}
.ph-hero p:not(.crumbs) a{text-decoration:underline}
html,body{margin:0}
img{max-width:100%}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
[hidden]{display:none!important}
