@font-face{font-family:'Poppins';src:url('../fonts/Poppins-ExtraLight.woff2') format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/Poppins-Light.woff2') format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/Poppins-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/Poppins-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/Poppins-SemiBold.woff2') format('woff2');font-weight:600;font-display:swap}

:root{
  --ink:#F1EADA; --ink-2:#EBE3D0; --char:#1B1A16; --brass:#8E6A15; --brass-lt:#A98224;
  --txt:#4A4438; --txt-2:#5F584A; --faint:#8D8474;
  --line:rgba(27,26,22,.14); --line-2:rgba(27,26,22,.26); --gold-line:rgba(142,106,21,.4);
  --dark:#151310;
  --pad:clamp(20px,5.2vw,92px);
  --ease:cubic-bezier(.22,.7,.25,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:var(--char);font-family:'Poppins',system-ui,sans-serif;
  font-weight:300;line-height:1.75;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:rgba(142,106,21,.22)}

/* ── type ─────────────────────────────────────────── */
.eyebrow{font-size:clamp(9px,.72vw,11px);font-weight:500;letter-spacing:.34em;
  text-transform:uppercase;color:var(--brass);display:block}
h1,h2,h3{font-weight:200;line-height:1.1;letter-spacing:-.012em}
.h-xl{font-size:clamp(38px,6.4vw,104px);line-height:1.04}
.h-lg{font-size:clamp(30px,4.1vw,64px)}
.h-md{font-size:clamp(23px,2.5vw,38px)}
.lead{font-size:clamp(15px,1.16vw,19px);color:var(--txt);max-width:52ch}
p{font-size:clamp(14px,1vw,16.5px);color:var(--txt);max-width:60ch}
p+p{margin-top:1.1em}
.cap{font-size:clamp(9px,.72vw,11px);font-weight:400;letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint);line-height:1.9}
.cap b{color:var(--brass);font-weight:500}
.gold{color:var(--brass)}

/* ── layout ───────────────────────────────────────── */
.wrap{padding-left:var(--pad);padding-right:var(--pad)}
section{position:relative}
.sec{padding-top:clamp(64px,10vw,168px);padding-bottom:clamp(64px,10vw,168px)}
.grid{display:grid;gap:clamp(28px,4vw,72px)}
.g-2{grid-template-columns:1fr 1fr}
.g-5842{grid-template-columns:1.32fr 1fr}
.g-4258{grid-template-columns:1fr 1.32fr}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.mid{align-self:center}
.rule{height:1px;background:var(--line);border:0;margin:0}
.seam{display:block;height:2px;width:clamp(80px,10vw,170px);overflow:visible}
.seam line{stroke:var(--brass);stroke-width:1.1;stroke-linecap:round;stroke-dasharray:1.6 9}

/* ── header ───────────────────────────────────────── */
.hdr{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;align-items:center;
  justify-content:space-between;padding:26px var(--pad);transition:padding .5s var(--ease),background .5s var(--ease),box-shadow .5s var(--ease)}
.hdr.stuck{padding:14px var(--pad);background:rgba(241,234,218,.92);backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line)}
.hdr .mark{width:clamp(96px,8vw,132px);filter:invert(1) brightness(.1);transition:width .5s var(--ease)}
.hdr.stuck .mark{width:clamp(84px,6.4vw,110px)}
.nav{display:flex;gap:clamp(18px,2.3vw,38px);align-items:center}
.nav a{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;
  color:var(--char);position:relative;padding:4px 0}
.nav a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--brass);transition:right .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current]::after{right:0}
.burger{display:none;width:34px;height:20px;position:relative;background:none;border:0;cursor:pointer}
.burger i{position:absolute;left:0;right:0;height:1.4px;background:var(--char);transition:.4s var(--ease)}
.burger i:nth-child(1){top:3px}.burger i:nth-child(2){top:10px}.burger i:nth-child(3){top:17px}
body.menu .burger i:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu .burger i:nth-child(2){opacity:0}
body.menu .burger i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:70;background:var(--ink);display:flex;flex-direction:column;
  justify-content:center;padding:0 var(--pad);opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
body.menu .drawer{opacity:1;pointer-events:auto}
.drawer a{font-size:clamp(28px,7vw,52px);font-weight:200;letter-spacing:.01em;padding:10px 0;
  border-bottom:1px solid var(--line);transform:translateY(14px);opacity:0;transition:.6s var(--ease)}
body.menu .drawer a{transform:none;opacity:1}
body.menu{overflow:hidden}

.hero-page .hdr:not(.stuck) .mark{filter:none}
.hero-page .hdr:not(.stuck) .nav a{color:#F1EADA}
.hero-page .hdr:not(.stuck) .nav a::after{background:#D8AE52}
.hero-page .hdr:not(.stuck) .burger i{background:#F1EADA}
.hero-page .hdr:not(.stuck) .btn{color:#F1EADA;border-color:rgba(241,234,218,.4)}

/* ── hero ─────────────────────────────────────────── */
.hero{height:100svh;min-height:560px;position:relative;overflow:hidden;background:var(--dark)}
.hero .shot{position:absolute;inset:0}
.hero img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);
  animation:kb 22s var(--ease) forwards}
@keyframes kb{to{transform:scale(1)}}
.hero .veil{position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(10,9,8,.82) 0%,rgba(10,9,8,.24) 34%,rgba(10,9,8,.05) 60%,rgba(10,9,8,.4) 100%)}
.hero .inner{position:absolute;inset:auto 0 clamp(48px,8vh,110px);padding:0 var(--pad);color:#F6F3EC;z-index:3}
.hero .inner .btn{margin-left:0}
.hero .eyebrow{color:#D8AE52}
.hero h1{color:#F6F3EC;max-width:16ch}
.scroll-cue{position:absolute;bottom:24px;right:var(--pad);z-index:4;color:#EDE7DC;
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.scroll-cue i{display:block;width:44px;height:1px;background:#EDE7DC;opacity:.5;position:relative;overflow:hidden}
.scroll-cue i::after{content:'';position:absolute;inset:0;background:#D8AE52;
  animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}

/* ── media blocks ─────────────────────────────────── */
.figure{position:relative;overflow:hidden;background:var(--ink-2)}
.figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.figure.zoom:hover img{transform:scale(1.045)}
.r-3-2{aspect-ratio:3/2}.r-4-5{aspect-ratio:4/5}.r-1-1{aspect-ratio:1/1}.r-16-9{aspect-ratio:16/9}
.band{height:clamp(300px,62vh,660px);overflow:hidden;position:relative}
.band img{width:100%;height:118%;object-fit:cover;will-change:transform}

/* ── collections index ────────────────────────────── */
.coll{display:block;border-top:1px solid var(--line);padding:clamp(18px,2.2vw,30px) 0;
  display:grid;grid-template-columns:52px 1.1fr 1.5fr clamp(120px,14vw,230px);gap:clamp(14px,2vw,34px);
  align-items:center;transition:background .5s var(--ease),padding .5s var(--ease)}
.coll:last-of-type{border-bottom:1px solid var(--line)}
.coll .no{font-size:11px;font-weight:500;letter-spacing:.16em;color:var(--brass)}
.coll .nm{font-size:clamp(24px,2.6vw,42px);font-weight:200;letter-spacing:.03em;transition:.5s var(--ease)}
.coll .th{aspect-ratio:16/10;overflow:hidden}
.coll .th img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.coll:hover{background:rgba(142,106,21,.05);padding-left:14px}
.coll:hover .nm{color:var(--brass)}
.coll:hover .th img{transform:scale(1.07)}

/* ── cards / marquee ──────────────────────────────── */
.card .lb{font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;margin-top:16px}
.card .sb{font-size:14px;color:var(--faint);margin-top:6px}
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:18px;padding-bottom:18px}
.marquee ul{display:flex;gap:52px;list-style:none;width:max-content;animation:slide 34s linear infinite}
.marquee li{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee:hover ul{animation-play-state:paused}

/* ── blocks (technical drawings) ──────────────────── */
.blk{width:100%;height:clamp(120px,13vw,190px)}
.blk object,.blk svg,.blk img{width:100%;height:100%;object-fit:contain}

/* ── buttons ──────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:14px;font-size:11px;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;padding:16px 30px;border:1px solid var(--line-2);
  transition:.45s var(--ease);background:none;cursor:pointer;color:var(--char)}
.btn:hover{background:var(--char);color:var(--ink);border-color:var(--char)}
.btn.solid{background:var(--char);color:var(--ink);border-color:var(--char)}
.btn.solid:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.btn i{width:22px;height:1px;background:currentColor;transition:width .4s var(--ease)}
.btn:hover i{width:34px}

/* ── forms ────────────────────────────────────────── */
.field{border-bottom:1px solid var(--line-2);padding:14px 0;background:none}
.field label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}
.field input,.field textarea,.field select{width:100%;border:0;background:none;font-family:inherit;
  font-size:16px;font-weight:300;color:var(--char);padding:8px 0;outline:none;resize:vertical}
.field:focus-within{border-color:var(--brass)}

/* ── footer ───────────────────────────────────────── */
.ftr{border-top:1px solid var(--line);padding-top:clamp(48px,6vw,88px);padding-bottom:34px}
.ftr .mark{width:150px;filter:invert(1) brightness(.1)}
.ftr a:hover{color:var(--brass)}

/* ── reveal ───────────────────────────────────────── */
.rv{opacity:0;transform:translateY(24px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.09s}.rv[data-d="2"]{transition-delay:.18s}
.rv[data-d="3"]{transition-delay:.27s}.rv[data-d="4"]{transition-delay:.36s}

/* ── progress + cursor ────────────────────────────── */
.prog{position:fixed;top:0;left:0;height:2px;width:0;z-index:90;
  background:repeating-linear-gradient(90deg,var(--brass) 0 2px,transparent 2px 12px)}
.cursor{position:fixed;top:0;left:0;width:9px;height:9px;border-radius:50%;background:var(--brass);
  pointer-events:none;z-index:95;transform:translate(-50%,-50%);transition:width .3s,height .3s,opacity .3s;
  mix-blend-mode:multiply;opacity:0}
@media (pointer:fine){.cursor{opacity:.85}}
.cursor.big{width:46px;height:46px;opacity:.28}

/* ── loader ───────────────────────────────────────── */
.load{position:fixed;inset:0;z-index:120;background:var(--ink);display:grid;place-items:center;
  transition:opacity .8s var(--ease),visibility .8s}
.load img{width:170px;filter:invert(1) brightness(.1)}
.load.gone{opacity:0;visibility:hidden}

/* ── responsive ───────────────────────────────────── */
@media (max-width:900px){
  .g-2,.g-5842,.g-4258,.g-3,.g-4{grid-template-columns:1fr}
  .nav{display:none}.burger{display:block}
  .coll{grid-template-columns:38px 1fr;gap:10px}
  .coll .ds,.coll .th{display:none}
  .hero{height:88svh}
  .band{height:46vh}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ── image download deterrents ────────────────────── */
img {
  -webkit-touch-callout: none;
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  pointer-events: auto;
}

/* ── extra content protection ─────────────────────── */
body.printing img,
body.printing .shot,
body.printing .band {
  visibility: hidden !important;
}
/* discourage accidental selection of UI chrome */
.hdr, .nav, .drawer, .ftr, .load {
  -webkit-user-select: none;
  user-select: none;
}

/* ── protect toast ────────────────────────────────── */
#protect-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%) translateY(12px);
  background: var(--char);
  color: var(--ink);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 12px 22px;
  border-radius: 2px;
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s var(--ease), transform .28s var(--ease);
  box-shadow: 0 8px 28px rgba(0,0,0,.22);
  white-space: nowrap;
}
#protect-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
