/* HERO — split editorial: film wall left copy, card rail right */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--colors-canvas)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
.hero-media video.active{opacity:1;animation:heroDrift 9s linear forwards}
@keyframes heroDrift{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.72) 34%,rgba(0,0,0,.3) 62%,rgba(0,0,0,.62)),linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.1) 52%,rgba(0,0,0,.42))}
.hero-inner{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);align-items:center;gap:clamp(24px,3vw,48px);padding:104px 0 clamp(40px,6vh,72px)}
.hero-copy{padding-left:max(24px,calc((100vw - 1280px)/2 + 24px));padding-right:8px;max-width:640px}
.hero-rule{display:block;width:36px;height:2px;background:var(--gold);margin-bottom:22px;transform-origin:left}
.hero-kicker{font-family:var(--font-text);font-size:clamp(15px,1.2vw,18px);color:var(--colors-body-strong);margin:0 0 14px;letter-spacing:.2px}
.hero-title{font-family:var(--font-display);font-weight:400;text-transform:uppercase;color:var(--colors-on-dark);font-size:clamp(34px,5.4vw,78px);line-height:.98;letter-spacing:clamp(2px,.28vw,4px);margin:0;text-wrap:balance}
.hero-lead{font-family:var(--font-text);font-size:clamp(14px,1vw,16px);line-height:1.66;color:var(--colors-muted);margin:22px 0 0;max-width:46ch;text-wrap:pretty}
.hero-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:clamp(26px,3.4vh,38px)}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:clamp(26px,3.6vh,40px);padding-top:20px;border-top:1px solid var(--gold-line)}
.hero-tags a{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--colors-muted);text-decoration:none;transition:color .3s ease}
.hero-tags a:hover,.hero-tags a:focus-visible{color:var(--gold-soft);opacity:1}

/* card rail */
.hero-dock{min-width:0;display:flex;flex-direction:column;gap:18px}
.hero-cards{display:flex;gap:clamp(12px,1.3vw,20px);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;padding:22px 24px 22px 0}
.hero-cards::-webkit-scrollbar{display:none}
.hcard{flex:0 0 clamp(136px,15vw,208px);scroll-snap-align:start;position:relative;aspect-ratio:3/4.1;border-radius:18px;overflow:hidden;cursor:pointer;background:var(--colors-surface-soft);border:1px solid rgba(255,255,255,.14);opacity:.66;transform:scale(.94);transition:opacity .55s ease,transform .65s cubic-bezier(.19,1,.22,1),border-color .55s ease,box-shadow .55s ease;-webkit-tap-highlight-color:transparent;text-align:left;padding:0}
.hcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.19,1,.22,1)}
.hcard::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.86),rgba(0,0,0,.12) 56%)}
.hcard .cap{position:absolute;left:14px;right:14px;bottom:14px;z-index:2}
.hcard .loc{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);margin-bottom:7px}
.hcard .loc::before{content:"";width:12px;height:1px;background:var(--gold);flex:0 0 auto}
.hcard .nm{font-family:var(--font-display);font-size:clamp(12px,1.05vw,15px);letter-spacing:1.2px;text-transform:uppercase;color:var(--colors-on-dark);line-height:1.16}
.hcard:hover{opacity:.9}
.hcard:hover img{transform:scale(1.06)}
.hcard.active{opacity:1;transform:scale(1) translateY(-8px);border-color:var(--gold);box-shadow:0 18px 44px rgba(0,0,0,.5),0 0 0 1px var(--gold-wash)}
.hcard:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.hero-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-right:max(24px,calc((100vw - 1280px)/2 + 24px))}
.hero-nav{display:flex;gap:10px;flex:0 0 auto}
.hero-count{font-family:var(--font-display);letter-spacing:2px;display:flex;align-items:baseline;gap:4px;white-space:nowrap;flex:0 0 auto}
.hero-count .cur{font-size:clamp(20px,2vw,28px);color:var(--gold-soft)}
.hero-count .tot{font-size:13px;color:var(--colors-muted)}

/* entrance + per-slide swap */
.hero-copy .hero-rule,.hero-kicker,.hero-title,.hero-lead{opacity:0}
.hero-swap .hero-rule{animation:heroRule .8s .06s cubic-bezier(.19,1,.22,1) both}
.hero-swap .hero-kicker{animation:heroFade .9s .14s cubic-bezier(.19,1,.22,1) both}
.hero-swap .hero-title{animation:heroReveal 1.15s .22s cubic-bezier(.16,1,.3,1) both}
.hero-swap .hero-lead{animation:heroRise 1s .44s cubic-bezier(.19,1,.22,1) both}
.hero-in .hero-actions{animation:heroRise 1s .6s cubic-bezier(.19,1,.22,1) both}
.hero-in .hero-tags{animation:heroRise 1s .74s cubic-bezier(.19,1,.22,1) both}
.hero-in .hero-cards{animation:heroRise 1.1s .5s cubic-bezier(.19,1,.22,1) both}
.hero-in .hero-foot{animation:heroFade 1s .9s ease both}
.hero-actions,.hero-tags,.hero-cards,.hero-foot{opacity:0}
@keyframes heroRule{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:none}}
@keyframes heroFade{from{opacity:0}to{opacity:1}}
@keyframes heroRise{from{opacity:0;transform:translateY(20px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes heroReveal{from{opacity:0;transform:translateY(30px);clip-path:inset(0 0 100% 0);filter:blur(9px)}62%{opacity:1;filter:blur(0)}to{opacity:1;transform:none;clip-path:inset(0 0 -14% 0)}}

@media (max-width:1024px){
  .hero-inner{grid-template-columns:1fr;align-content:end;gap:26px;padding:112px 0 clamp(32px,5vh,56px)}
  .hero{align-items:flex-end}
  .hero-copy{padding-right:24px;max-width:none}
  .hero-cards{padding-left:max(24px,calc((100vw - 1280px)/2 + 24px))}
  .hero-foot{padding-left:max(24px,calc((100vw - 1280px)/2 + 24px))}
}
@media (max-width:768px){
  .hero-lead{display:none}
  .hero-tags{display:none}
  .hcard{flex:0 0 132px}
  .hero-inner{padding-top:96px}
}
@media (prefers-reduced-motion:reduce){
  .hero-media video.active{animation:none}
  .hero-rule,.hero-kicker,.hero-title,.hero-lead,.hero-actions,.hero-tags,.hero-cards,.hero-foot{opacity:1;animation:none!important}
  .hcard{transition:none}
}

/* CATALOGUE — editorial gallery tiles */
.cat-lede{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;margin:-32px 0 56px}
.cat-lede p{font-family:var(--font-text);font-size:clamp(15px,1.1vw,17px);line-height:1.66;color:var(--colors-muted);max-width:54ch;margin:0;text-wrap:pretty}
.tile-grid{display:grid;grid-template-columns:repeat(4,1fr);column-gap:clamp(18px,1.9vw,30px);row-gap:clamp(48px,4.4vw,72px);perspective:1600px;perspective-origin:50% 40%}
@media (max-width:1024px){.tile-grid{grid-template-columns:1fr 1fr;row-gap:40px}}
@media (max-width:560px){.tile-grid{column-gap:14px;row-gap:28px}}
.cat-tile{display:block;text-decoration:none;color:inherit;position:relative;--rx:0deg;--ry:0deg;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .5s cubic-bezier(.19,1,.22,1)}
.cat-tile .frame{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--colors-surface-soft);transform-style:preserve-3d;transition:transform .6s cubic-bezier(.19,1,.22,1),box-shadow .6s ease;box-shadow:0 18px 34px -22px rgba(0,0,0,.9)}
.cat-tile:hover .frame{transform:translateZ(38px);box-shadow:0 46px 70px -30px rgba(0,0,0,.95),0 0 0 1px var(--gold-wash)}
/* raking light that follows the cursor — reads as polished stone */
.cat-tile .frame .glare{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.3),rgba(255,255,255,.06) 42%,transparent 68%);mix-blend-mode:screen}
.cat-tile:hover .frame .glare{opacity:1}
/* cast shadow on the black floor below the tile */
.cat-tile::after{content:"";position:absolute;left:12%;right:12%;top:calc(100% - 34px);height:26px;z-index:-1;background:radial-gradient(ellipse at center,rgba(0,0,0,.85),transparent 72%);filter:blur(9px);opacity:0;transform:translateZ(-40px);transition:opacity .6s ease}
.cat-tile:hover::after{opacity:.9}
.cat-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s cubic-bezier(.19,1,.22,1)}
.cat-tile:hover img{transform:scale(1.07)}
.cat-tile .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.66),rgba(0,0,0,.06) 54%,rgba(0,0,0,.18));z-index:1}
.cat-tile .frame::before{content:"";position:absolute;inset:12px;z-index:3;border:1px solid rgba(232,213,163,.2);pointer-events:none;transition:inset .7s cubic-bezier(.19,1,.22,1),border-color .5s ease}
.cat-tile:hover .frame::before{inset:7px;border-color:var(--gold)}
.tile-idx{position:absolute;top:26px;left:26px;z-index:4;transform:translateZ(26px);display:flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:10px;letter-spacing:2.4px;color:var(--gold-soft)}
.tile-idx::after{content:"";width:20px;height:1px;background:var(--gold);opacity:.75;transition:width .6s cubic-bezier(.19,1,.22,1)}
.cat-tile:hover .tile-idx::after{width:38px}
.tile-count{position:absolute;left:26px;bottom:24px;z-index:4;transform:translateZ(26px);font-family:var(--font-mono);font-size:9.5px;letter-spacing:2.2px;text-transform:uppercase;color:rgba(255,255,255,.72)}
.tile-meta{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-top:20px;padding-top:18px;border-top:1px solid var(--colors-hairline)}
.tile-meta::after{content:"";position:absolute;top:-1px;left:0;width:0;height:1px;background:var(--gold);transition:width .7s cubic-bezier(.19,1,.22,1)}
.cat-tile:hover .tile-meta::after{width:100%}
.tname{display:block;font-family:var(--font-display);font-size:clamp(15px,1.35vw,21px);letter-spacing:1.6px;text-transform:uppercase;color:var(--colors-on-dark);line-height:1.2;transition:color .4s ease}
.cat-tile:hover .tname{color:var(--gold-soft)}
.tsub{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--colors-muted);margin-top:9px}
.tgo{flex:0 0 auto;width:32px;height:32px;border:1px solid var(--gold-line);border-radius:50%;display:grid;place-items:center;color:var(--gold-soft);opacity:0;transform:translateX(-8px);transition:opacity .45s ease,transform .5s cubic-bezier(.19,1,.22,1),background .45s ease,border-color .45s ease}
.tgo svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cat-tile:hover .tgo{opacity:1;transform:none;background:var(--gold-wash);border-color:var(--gold)}
.cat-tile:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media (hover:none){.tgo{opacity:.6;transform:none}.tile-meta::after{width:22px}.tile-grid{perspective:none}.cat-tile .frame{box-shadow:none}}
@media (prefers-reduced-motion:reduce){.cat-tile,.cat-tile .frame{transform:none!important;transition:none}.cat-tile::after,.cat-tile .frame .glare{display:none}}
@media (max-width:560px){.tile-idx{top:16px;left:16px}.tile-count{left:16px;bottom:16px}.cat-tile .frame::before{inset:8px}.tile-meta{margin-top:14px;padding-top:13px}.tgo{width:26px;height:26px}}

/* horizontal rows */
.hrow{padding:64px 0 0}
.hrow-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;max-width:1280px;margin:0 auto 8px;padding:0 24px;flex-wrap:wrap}
.hscroll{display:flex;gap:24px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;padding:16px max(24px,calc((100vw - 1280px)/2 + 24px));cursor:grab}
.hscroll::-webkit-scrollbar{display:none}
.hscroll.dragging{cursor:grabbing;scroll-snap-type:none}
.hscroll.dragging .rcard{pointer-events:none}
.rcard{flex:0 0 min(74vw,320px);scroll-snap-align:start;position:relative;text-decoration:none;color:inherit;display:block}
.rcard .frame{aspect-ratio:4/5;overflow:hidden;position:relative;background:var(--colors-surface-soft);transition:transform .5s cubic-bezier(.22,1,.36,1);transform-style:preserve-3d;will-change:transform}
.rcard:hover .frame{transform:translateY(-6px)}
.rcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.19,1,.22,1)}
.rcard:hover img{transform:scale(1.05)}
.rcard .ov{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:rgba(0,0,0,.42);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.12)}
.rcard .ov .name{font-family:var(--font-display);font-size:17px;letter-spacing:1px;text-transform:uppercase;color:var(--colors-on-dark)}
.rcard .ov .sub{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);margin-top:5px}
.rcard .ov .more{max-height:0;opacity:0;overflow:hidden;transition:max-height .45s ease,opacity .45s ease}
.rcard:hover .ov .more,.rcard:focus-visible .ov .more{max-height:130px;opacity:1}
.rcard .ov .desc{font-family:var(--font-text);font-size:14px;line-height:1.5;color:var(--colors-body);margin:10px 0 12px}
.rcard .ov .go{display:inline-block;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);border:1px solid var(--gold-line);border-radius:9999px;padding:8px 16px;transition:background .3s ease,color .3s ease,border-color .3s ease}
.rcard .ov .go:hover{background:var(--gold-wash);border-color:var(--gold);color:#fff}
.rcard .badge{position:absolute;top:12px;left:12px;z-index:2;font-family:var(--font-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);background:rgba(0,0,0,.5);backdrop-filter:blur(8px);border:1px solid var(--gold-line);padding:6px 10px}
.btn-sm{min-height:36px;padding:9px 20px;font-size:11px;letter-spacing:2px}
@media (hover:none){.rcard .ov .more{max-height:130px;opacity:1}}

/* FAQ */
.faq details{border-top:1px solid var(--colors-hairline)}
.faq details:last-child{border-bottom:1px solid var(--colors-hairline)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font-family:var(--font-display);font-size:18px;letter-spacing:1px;text-transform:uppercase;color:var(--colors-on-dark)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--font-mono);font-size:16px;color:var(--gold);transition:transform .3s}
.faq details[open] summary{color:var(--gold-soft)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 24px;max-width:64ch}
