:root{
  --burgundy: #390517;
  --burgundy-deep: #1c0209;
  --burgundy-deeper: #0f0105;
  --silver: #c9c9c9;
  --silver-bright: #e8e8e8;
  --silver-dim: #8f8686;
  --brass: #9c7b46;
  --brass-soft: #6e5732;
  --paper: #f4efe7;
  --ink: #241a12;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  font-family:'Inter', sans-serif;
  background:var(--paper);
  color:var(--ink);
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.serif{ font-family:'Cormorant Garamond', serif; }

/* ---------- Subscribe Overlay (modal, transparent backdrop) ---------- */
#subscribeOverlay{
  position:fixed; top:0; left:0; right:0; bottom:0; z-index:999;
  background:rgba(15,1,5,0.6);
  backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px);
  display:flex; align-items:center; justify-content:center;
  padding:32px;
  animation:overlayIn 0.5s ease-out;
}
#subscribeOverlay.hidden{ display:none; }
@keyframes overlayIn{ from{opacity:0;} to{opacity:1;} }
.overlay-card{
  position:relative;
  max-width:420px; width:100%; text-align:center;
  display:flex; flex-direction:column; align-items:center;
  background:var(--burgundy-deeper);
  border:1px solid rgba(156,123,70,0.35);
  border-radius:4px;
  padding:46px 36px;
  box-shadow:0 30px 80px rgba(0,0,0,0.6);
}
.overlay-logo{ width:210px; max-width:70%; margin-bottom:22px; opacity:0; animation:riseIn 1s ease-out 0.2s forwards; }
.overlay-eyebrow{
  font-size:11px; font-weight:500; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--silver-dim); margin-bottom:14px;
  opacity:0; animation:riseIn 1s ease-out 0.4s forwards;
}
.overlay-msg{
  font-family:'Cormorant Garamond', serif; font-size:20px; line-height:1.5;
  color:var(--silver-bright); margin-bottom:26px;
  opacity:0; animation:riseIn 1s ease-out 0.55s forwards;
}
.overlay-form{
  display:flex; width:100%; border:1px solid var(--brass-soft); border-radius:2px; overflow:hidden;
  opacity:0; animation:riseIn 1s ease-out 0.7s forwards;
}
.overlay-form input{
  flex:1; background:transparent; border:none; outline:none; padding:13px 14px;
  font-family:'Inter'; font-size:13px; color:var(--silver-bright);
}
.overlay-form input::placeholder{ color:var(--silver-dim); }
.overlay-form button{
  background:var(--brass-soft); border:none; color:var(--silver-bright);
  font-family:'Inter'; font-size:11px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  padding:0 20px; cursor:pointer; transition:background 0.25s ease;
  flex-shrink:0; white-space:nowrap;
}
.overlay-form button:hover{ background:var(--brass); }
.overlay-confirm{ font-size:12px; color:var(--brass); margin-top:12px; min-height:16px; }

@media (max-width:480px){
  .overlay-card{ padding:38px 20px; }
  .overlay-form{ flex-direction:column; border:none; }
  .overlay-form input{
    border:1px solid var(--brass-soft); border-radius:2px; margin-bottom:10px; padding:13px 14px;
  }
  .overlay-form button{
    border-radius:2px; padding:13px 14px; text-align:center;
  }
}
.overlay-skip{
  margin-top:22px; font-size:12px; color:var(--silver-dim); text-decoration:underline;
  text-underline-offset:3px; cursor:pointer; background:none; border:none; font-family:'Inter';
  opacity:0; animation:riseIn 1s ease-out 0.85s forwards;
}
.overlay-skip:hover{ color:var(--silver-bright); }
.hp-field{ position:absolute; left:-9999px; }
@keyframes riseIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }

/* ---------- Nav ---------- */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(244,239,231,0.92); backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(36,26,18,0.08);
  padding:16px 32px; display:flex; align-items:center; justify-content:space-between;
}
.nav-mark{ display:flex; align-items:center; }
.nav-mark img{ height:26px; width:auto; display:block; }
.header-dark .nav-mark img{ height:24px; }

.nav-right{ display:flex; align-items:center; }

.nav-toggle{
  display:none; background:none; border:none; cursor:pointer;
  font-size:22px; color:var(--ink); line-height:1; padding:4px 6px; margin-left:14px;
}
.header-dark .nav-toggle{ color:var(--silver-bright); }

.overlay-close{
  position:absolute; top:14px; right:16px;
  width:30px; height:30px; border-radius:50%;
  background:none; border:1px solid rgba(156,123,70,0.4);
  color:var(--silver-dim); font-size:16px; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:color 0.2s ease, border-color 0.2s ease;
}
.overlay-close:hover{ color:var(--silver-bright); border-color:var(--brass); }
nav.links{ display:flex; align-items:center; gap:26px; font-size:15px; letter-spacing:0.03em; }
nav.links a{ font-family:'Cormorant Garamond', serif; color:var(--ink); opacity:0.75; transition:opacity 0.2s; }
nav.links a:hover, nav.links a.active{ opacity:1; }
.header-dark nav.links a{ color:var(--silver-bright); }

@media (max-width:760px){
  header.site{ padding:14px 20px; }
  .nav-toggle{ display:block; }
  nav.links{
    position:absolute; top:100%; left:0; right:0; z-index:49;
    background:var(--paper); flex-direction:column; align-items:flex-start; gap:0;
    max-height:0; overflow:hidden; transition:max-height 0.3s ease;
    border-bottom:1px solid rgba(36,26,18,0.1);
  }
  nav.links.open{ max-height:320px; padding:8px 24px 18px; }
  nav.links a{ width:100%; padding:11px 0; font-size:18px; border-bottom:1px solid rgba(36,26,18,0.06); }
  .header-dark nav.links{ background:var(--burgundy-deeper); border-bottom-color:rgba(156,123,70,0.2); }
  .header-dark nav.links a{ border-bottom-color:rgba(156,123,70,0.15); }
}

/* ---------- Full-bleed banner hero (reused by vintage/originals pages) ---------- */
.hero{
  position:relative; min-height:56vh; display:flex; align-items:flex-end;
  background-size:cover; background-position:center;
  overflow:hidden; padding:0;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to top, rgba(15,1,5,0.94) 0%, rgba(15,1,5,0.55) 45%, rgba(15,1,5,0.15) 100%);
}
.hero-video{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover;
}
.hero-inner{ position:relative; z-index:2; text-align:center; max-width:640px; margin:0 auto; padding:60px 24px 54px; width:100%; }
.hero-eyebrow{ font-size:11px; letter-spacing:0.32em; text-transform:uppercase; color:var(--silver-dim); margin-bottom:18px; }
.hero-wordmark{ font-family:'Cormorant Garamond', serif; font-weight:600; font-size:46px; color:var(--silver-bright); letter-spacing:0.03em; line-height:1.1; }
.hero-tagline{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:18px; color:var(--silver); margin-top:14px; max-width:480px; margin-left:auto; margin-right:auto; }
@media (max-width:700px){ .hero{ min-height:46vh; } .hero-wordmark{ font-size:34px; } }

/* ---------- Section picker (index page) ---------- */
.picker{ padding:70px 24px 90px; max-width:1100px; margin:0 auto; text-align:center; }
.picker h2{ font-family:'Cormorant Garamond', serif; font-size:34px; color:var(--burgundy); margin-bottom:8px; }
.picker p.sub{ color:#5a4a3c; font-size:15px; margin-bottom:50px; }
.picker-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
@media (max-width:760px){ .picker-grid{ grid-template-columns:1fr; } }
.picker-card{
  position:relative; border-radius:4px; overflow:hidden; min-height:420px;
  display:flex; align-items:flex-end; padding:34px;
  background-size:cover; background-position:center;
  text-align:left; transition:transform 0.35s ease, box-shadow 0.35s ease;
  border:1px solid var(--brass);
  box-shadow:0 0 0 1px rgba(156,123,70,0.25);
}
.picker-card:hover{ transform:translateY(-4px); box-shadow:0 0 0 1px rgba(156,123,70,0.45), 0 20px 40px rgba(0,0,0,0.3); }
.picker-card::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(15,1,5,0.92) 0%, rgba(15,1,5,0.35) 55%, rgba(15,1,5,0.1) 100%);
}
.picker-card .content{ position:relative; z-index:2; color:var(--silver-bright); }
.picker-card .label{ font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--brass); margin-bottom:10px; }
.picker-card h3{ font-family:'Cormorant Garamond', serif; font-size:30px; margin-bottom:10px; }
.picker-card p{ font-size:14px; color:var(--silver); line-height:1.55; max-width:340px; }
.picker-card .cta{ margin-top:18px; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; border-bottom:1px solid var(--brass); display:inline-block; padding-bottom:2px; }

/* ---------- Winder Box feature ---------- */
.winder{ background:var(--burgundy-deeper); color:var(--silver-bright); padding:90px 24px; }
.winder-head{ text-align:center; max-width:620px; margin:0 auto 50px; }
.winder-head .eyebrow{ font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass); margin-bottom:16px; }
.winder-head h2{ font-family:'Cormorant Garamond', serif; font-size:32px; line-height:1.25; }
.winder-head p{ font-size:14.5px; color:var(--silver); line-height:1.75; margin-top:16px; }
.winder-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:1080px; margin:0 auto; }
@media (max-width:760px){ .winder-strip{ grid-template-columns:1fr; } }
.winder-strip .w-img{ border-radius:2px; overflow:hidden; height:240px; box-shadow:0 16px 40px rgba(0,0,0,0.4); }
.winder-strip .w-img img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.92) contrast(1.03); }

.winder.compact{ padding:70px 24px; }
.winder-compact-inner{
  max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:44px; align-items:center;
}
@media (max-width:760px){ .winder-compact-inner{ grid-template-columns:1fr; gap:24px; } }
.winder-compact-inner .w-img{ border-radius:2px; overflow:hidden; height:280px; box-shadow:0 20px 50px rgba(0,0,0,0.45); }
.winder-compact-inner .w-img img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.92) contrast(1.03); }
.winder-compact-inner .w-text .eyebrow{ font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass); margin-bottom:14px; }
.winder-compact-inner .w-text h3{ font-family:'Cormorant Garamond', serif; font-size:26px; margin-bottom:12px; }
.winder-compact-inner .w-text p{ font-size:14px; color:var(--silver); line-height:1.7; }
.winder-compact-inner .w-text a{ display:inline-block; margin-top:14px; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--brass); border-bottom:1px solid var(--brass); padding-bottom:2px; }

/* ---------- Craft pillars (vintage page) ---------- */
.pillars{ padding:80px 24px; max-width:1000px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:40px; text-align:center; }
@media (max-width:700px){ .pillars{ grid-template-columns:1fr; gap:36px; } }
.pillars .mark{ width:34px; height:1px; background:var(--brass); margin:0 auto 18px; }
.pillars h4{ font-family:'Cormorant Garamond', serif; font-size:19px; color:var(--burgundy); margin-bottom:8px; }
.pillars p{ font-size:13px; color:#5a4a3c; line-height:1.6; }

/* ---------- Story section (three generations, originals page) ---------- */
.story{ background:var(--burgundy-deeper); color:var(--silver-bright); padding:90px 24px 100px; }
.story-head{ text-align:center; max-width:640px; margin:0 auto 70px; }
.story-head .eyebrow{ font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass); margin-bottom:16px; }
.story-head h2{ font-family:'Cormorant Garamond', serif; font-size:36px; line-height:1.2; }
.story-head p{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:19px; color:var(--silver); margin-top:16px; }

.story-row{
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  max-width:1080px; margin:0 auto 90px;
}
.story-row.reverse .story-img{ order:2; }
.story-row.reverse .story-text{ order:1; }
@media (max-width:800px){
  .story-row{ grid-template-columns:1fr; gap:24px; margin-bottom:56px; }
  .story-row.reverse .story-img{ order:0; } .story-row.reverse .story-text{ order:0; }
}
.story-img{ border-radius:2px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,0.45); height:420px; }
.story-img img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.92) contrast(1.03); }
@media (max-width:800px){ .story-img{ height:300px; } }
.story-text .gen{ font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--brass); margin-bottom:12px; }
.story-text h3{ font-family:'Cormorant Garamond', serif; font-size:26px; margin-bottom:14px; color:var(--silver-bright); }
.story-text p{ font-size:14.5px; line-height:1.75; color:var(--silver); }
.story-text p + p{ margin-top:12px; }

.story-close{
  max-width:640px; margin:0 auto; text-align:center; padding-top:20px;
  border-top:1px solid rgba(156,123,70,0.3);
}
.story-close p{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:20px; color:var(--silver-bright); line-height:1.6; }

.full-circle{ max-width:420px; margin:0 auto 70px; text-align:center; }
.full-circle .fc-img{
  width:280px; height:280px; border-radius:50%; overflow:hidden; margin:0 auto 22px;
  border:1px solid rgba(156,123,70,0.4); box-shadow:0 20px 50px rgba(0,0,0,0.4);
}
.full-circle .fc-img img{ width:100%; height:100%; object-fit:cover; background:#f4efe7; }
.full-circle .fc-caption{ font-size:13.5px; color:var(--silver); line-height:1.6; max-width:360px; margin:0 auto; }

/* ---------- Footer ---------- */
footer{ background:var(--burgundy-deeper); padding:50px 24px 30px; text-align:center; border-top:1px solid rgba(156,123,70,0.15); }
footer .logo-lockup{ width:180px; max-width:60%; margin:0 auto 20px; opacity:0.9; }
footer a.ig{ font-size:12px; letter-spacing:0.08em; color:var(--silver); border-bottom:1px solid transparent; }
footer a.ig:hover{ color:var(--silver-bright); border-color:var(--brass); }
footer .fine{ font-size:10.5px; color:var(--silver-dim); margin-top:18px; }

/* ---------- Persistent footer subscribe block ---------- */
.footer-subscribe{
  max-width:420px; margin:0 auto 40px; text-align:center;
  padding-bottom:40px; border-bottom:1px solid rgba(156,123,70,0.2);
}
.footer-subscribe .eyebrow{ font-size:11px; letter-spacing:0.28em; text-transform:uppercase; color:var(--brass); margin-bottom:12px; }
.footer-subscribe p{ font-size:13.5px; color:var(--silver); line-height:1.6; margin-bottom:18px; }
.fs-form{
  display:flex; width:100%; max-width:420px; margin:0 auto;
  border:1px solid var(--brass-soft); border-radius:2px; overflow:hidden;
}
.fs-form input{
  flex:1; min-width:0; background:transparent; border:none; outline:none; padding:12px 14px;
  font-family:'Inter'; font-size:13px; color:var(--silver-bright);
}
.fs-form input::placeholder{ color:var(--silver-dim); }
.fs-form button{
  background:var(--brass-soft); border:none; color:var(--silver-bright);
  font-family:'Inter'; font-size:11px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  padding:0 18px; cursor:pointer; transition:background 0.25s ease;
  flex-shrink:0; white-space:nowrap;
}
.fs-form button:hover{ background:var(--brass); }
.fs-confirm{ font-size:12px; color:var(--brass); margin-top:10px; min-height:16px; text-align:center; }

@media (max-width:480px){
  .fs-form{ flex-direction:column; border:none; }
  .fs-form input{
    border:1px solid var(--brass-soft); border-radius:2px; margin-bottom:10px; padding:12px 14px;
  }
  .fs-form button{
    border-radius:2px; padding:12px 14px; text-align:center;
  }
}

/* ---------- Watch Market (coming soon) section ---------- */
.watch-market{ background:var(--burgundy-deeper); color:var(--silver-bright); padding:90px 24px; text-align:center; border-top:1px solid rgba(156,123,70,0.15); }
.watch-market .eyebrow{ font-size:11px; letter-spacing:0.3em; text-transform:uppercase; color:var(--brass); margin-bottom:16px; }
.watch-market h2{ font-family:'Cormorant Garamond', serif; font-size:32px; margin-bottom:16px; }
.watch-market p{ font-size:14.5px; color:var(--silver); line-height:1.75; max-width:560px; margin:0 auto 32px; }

/* ---------- Contact page ---------- */
.contact-wrap{ max-width:560px; margin:0 auto; padding:80px 24px 100px; }
.contact-wrap h1{ font-family:'Cormorant Garamond', serif; font-size:32px; color:var(--burgundy); text-align:center; margin-bottom:12px; }
.contact-wrap .sub{ text-align:center; color:#5a4a3c; font-size:14.5px; margin-bottom:44px; }
.contact-field{ margin-bottom:20px; }
.contact-field label{ display:block; font-size:12px; letter-spacing:0.05em; color:#5a4a3c; margin-bottom:6px; }
.contact-field input, .contact-field textarea{
  width:100%; padding:12px 14px; border:1px solid rgba(36,26,18,0.2); border-radius:2px;
  font-family:'Inter'; font-size:14px; color:var(--ink); background:#fff;
}
.contact-field textarea{ min-height:140px; resize:vertical; }
.contact-submit{
  width:100%; padding:14px; background:var(--burgundy); color:var(--silver-bright); border:none;
  font-family:'Inter'; font-size:12.5px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
  cursor:pointer; border-radius:2px; transition:background 0.25s ease;
}
.contact-submit:hover{ background:var(--burgundy-deep); }
.contact-confirm{ text-align:center; font-size:13.5px; color:var(--brass-soft); margin-top:16px; min-height:18px; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
}

/* ---------- Lightbox (click-to-expand images) ---------- */
.lightbox-trigger{ cursor:zoom-in; }
#lightboxOverlay{
  position:fixed; top:0; left:0; right:0; bottom:0; z-index:1000;
  background:rgba(10,1,5,0.92);
  display:none; align-items:center; justify-content:center;
  padding:40px;
}
#lightboxOverlay.open{ display:flex; }
#lightboxOverlay img{
  max-width:min(92vw, 1100px); max-height:86vh; width:auto; height:auto;
  border-radius:2px; box-shadow:0 30px 90px rgba(0,0,0,0.6);
}
.lightbox-close{
  position:absolute; top:20px; right:24px;
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,0.06); border:1px solid rgba(156,123,70,0.5);
  color:var(--silver-bright); font-size:20px; line-height:1;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background 0.2s ease;
}
.lightbox-close:hover{ background:rgba(255,255,255,0.14); }

/* ---------- Language selector ---------- */
/* ---------- Nav dropdown (Story / Watches sub-menu) ---------- */
.nav-dropdown{ position:relative; }
.nav-dropdown-btn{
  background:none; border:none; cursor:pointer; padding:0;
  font-family:'Cormorant Garamond', serif; font-size:15px; letter-spacing:0.03em;
  color:var(--ink); opacity:0.75; transition:opacity 0.2s;
  display:flex; align-items:center; gap:4px;
}
.nav-dropdown-btn:hover, .nav-dropdown-btn.active{ opacity:1; }
.nav-dropdown-btn .arrow{ font-size:9px; margin-top:1px; }
.header-dark .nav-dropdown-btn{ color:var(--silver-bright); opacity:0.82; }
.header-dark .nav-dropdown-btn:hover, .header-dark .nav-dropdown-btn.active{ opacity:1; }

.nav-dropdown-menu{
  position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%);
  background:var(--paper); border:1px solid rgba(36,26,18,0.14);
  border-radius:6px; box-shadow:0 14px 36px rgba(0,0,0,0.18);
  min-width:150px; padding:6px; display:none; z-index:60;
}
.nav-dropdown-menu.open{ display:block; }
.nav-dropdown-menu a{
  display:block; padding:9px 12px; border-radius:4px; white-space:nowrap;
  font-family:'Cormorant Garamond', serif; font-size:14px; color:var(--ink); opacity:1;
}
.nav-dropdown-menu a:hover{ background:rgba(156,123,70,0.12); }
.header-dark .nav-dropdown-menu{ background:var(--burgundy-deeper); border-color:rgba(156,123,70,0.25); }
.header-dark .nav-dropdown-menu a{ color:var(--silver-bright); }
.header-dark .nav-dropdown-menu a:hover{ background:rgba(156,123,70,0.2); }

@media (max-width:760px){
  .nav-dropdown-menu{
    position:static; transform:none; top:auto; left:auto;
    background:none; border:none; box-shadow:none; padding:0 0 0 16px;
    max-height:0; overflow:hidden; transition:max-height 0.25s ease;
  }
  .nav-dropdown-menu.open{ display:block; max-height:120px; }
  .nav-dropdown-menu a{ font-size:16px; padding:9px 0; border-bottom:none; }
  .header-dark .nav-dropdown-menu a{ border-bottom:none; }
}

.lang-select{ position:relative; margin-left:22px; }
.lang-current{
  display:flex; align-items:center; gap:6px;
  font-size:12.5px; letter-spacing:0.03em; color:var(--ink); opacity:0.8;
  background:none; border:1px solid rgba(36,26,18,0.18); border-radius:20px;
  padding:5px 12px; cursor:pointer; font-family:'Inter', sans-serif;
  transition:opacity 0.2s ease, border-color 0.2s ease;
}
.lang-current:hover{ opacity:1; border-color:rgba(156,123,70,0.5); }
.lang-current .arrow{ font-size:9px; margin-left:2px; }
.lang-menu{
  position:absolute; top:calc(100% + 8px); right:0; z-index:60;
  background:var(--paper); border:1px solid rgba(36,26,18,0.14);
  border-radius:6px; box-shadow:0 14px 36px rgba(0,0,0,0.18);
  min-width:150px; padding:6px; display:none;
}
.lang-menu.open{ display:block; }
.lang-option{
  display:flex; align-items:center; gap:9px; width:100%;
  padding:8px 10px; border-radius:4px; background:none; border:none;
  font-family:'Inter', sans-serif; font-size:13px; color:var(--ink);
  cursor:pointer; text-align:left;
}
.lang-option:hover{ background:rgba(156,123,70,0.12); }
.lang-option .flag{ font-size:16px; line-height:1; }
.lang-option .code{ color:#8a7a68; font-size:11px; margin-left:auto; letter-spacing:0.04em; }
@media (max-width:600px){
  .lang-current span.label{ display:none; }
}
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.8s ease, transform 0.8s ease;
}
.reveal.in-view{
  opacity:1;
  transform:translateY(0);
}
/* stagger helpers for grouped items (pillars, winder-strip, etc.) */
.reveal-d1{ transition-delay:0.08s; }
.reveal-d2{ transition-delay:0.16s; }
.reveal-d3{ transition-delay:0.24s; }
