/* Hero system. Every page type has its own hero design; all share a blurred, auto-changing background. */
.hx{position:relative;color:#fff;overflow:hidden;background:var(--plum);isolation:isolate;--tintc:#25102a}
.hbg{position:absolute;inset:-40px;z-index:-2}
.hbg .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.hbg .sl.on{opacity:1}
.hbg img{width:100%;height:100%;object-fit:cover;filter:blur(24px) saturate(1.2) brightness(.62);transform:scale(1.15)}
.hbg .sl.on img{animation:kb 9s ease-out forwards}
@keyframes kb{from{transform:scale(1.15)}to{transform:scale(1.32) translate(-1.5%,1.5%)}}
.hx::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,color-mix(in srgb,var(--tintc) 94%,transparent) 0%,color-mix(in srgb,var(--tintc) 66%,transparent) 55%,color-mix(in srgb,var(--tintc) 38%,transparent) 100%)}
.hx::before{content:"";position:absolute;z-index:-1;width:46vw;height:46vw;right:-12vw;top:-18vw;border-radius:50%;background:radial-gradient(closest-side,rgba(201,160,79,.32),transparent);animation:drift 14s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate(-6vw,8vw) scale(1.2)}}
.hx .in{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;padding-top:4rem;padding-bottom:4.5rem;min-height:520px}
.hx h1{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(2.6rem,5.8vw,5.4rem);line-height:1.02;letter-spacing:-.015em;margin:1rem 0 1.2rem;text-shadow:0 4px 30px rgba(0,0,0,.25)}
.hx .lead{font-size:1.15rem;color:#eadcee;max-width:52ch}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.w>span{display:inline-block;transform:translateY(115%) rotate(4deg);animation:up .95s calc(.12s + .1s*var(--i)) cubic-bezier(.2,.8,.2,1) forwards}
@keyframes up{to{transform:none}}
.fu{opacity:0;transform:translateY(18px);animation:fu .9s calc(.45s + var(--d,0s)) cubic-bezier(.2,.8,.2,1) forwards}
@keyframes fu{to{opacity:1;transform:none}}
.pill{display:inline-flex;gap:.55rem;align-items:center;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);padding:.4rem 1rem;border-radius:99px;font-size:.9rem;color:#f6ecf8}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 0 rgba(201,160,79,.7);animation:ping 2s infinite}
@keyframes ping{to{box-shadow:0 0 0 12px rgba(201,160,79,0)}}
.crumb{display:flex;flex-wrap:wrap;gap:.4rem;font-size:.9rem;color:#d8c6dd}.crumb a:hover{color:#fff;text-decoration:underline}
.trust{display:flex;gap:1.6rem;flex-wrap:wrap;margin-top:2.2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.2);font-size:.95rem;color:#eadcee}
.trust span{display:flex;gap:.55rem;align-items:center}.trust svg{width:22px;height:22px;stroke:var(--brass)}
.cap{position:absolute;left:1rem;bottom:1rem;background:rgba(255,255,255,.93);color:var(--plum);font:600 .9rem var(--body);padding:.4rem 1rem;border-radius:99px;z-index:2}
.dots{display:flex;gap:.5rem;margin-top:1.6rem}
.dots button{width:34px;height:5px;border:0;border-radius:9px;background:rgba(255,255,255,.28);position:relative;overflow:hidden;cursor:pointer;padding:0}
.dots button::after{content:"";position:absolute;inset:0;background:var(--brass);transform:scaleX(0);transform-origin:left}
.dots button.on::after{animation:fill var(--ms,4.8s) linear forwards}
@keyframes fill{to{transform:none}}
.sl img{width:100%;height:100%;object-fit:cover}
/* 1 HOME: card stack */
.stkw{position:relative;justify-self:end;width:min(450px,100%)}
.stk{position:relative;aspect-ratio:4/5}
.stk::before,.stk::after{content:"";position:absolute;inset:0;border-radius:var(--r1);background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}
.stk::before{transform:rotate(-6deg) translate(-18px,8px)}.stk::after{transform:rotate(5deg) translate(16px,4px)}
.stk .sl{position:absolute;inset:0;z-index:1;border-radius:var(--r1);overflow:hidden;opacity:0;transform:translateX(60px) rotate(6deg) scale(.92);transition:opacity .9s,transform 1.1s cubic-bezier(.2,.8,.2,1);box-shadow:0 40px 80px -30px rgba(0,0,0,.65);border:6px solid rgba(255,255,255,.92)}
.stk .sl.on{opacity:1;transform:none;z-index:3}
.stk .sl.out{opacity:0;transform:translateX(-80px) rotate(-7deg) scale(.92);z-index:2}
.chip{position:absolute;left:-2rem;bottom:2.4rem;z-index:5;background:#fff;color:var(--ink);border-radius:var(--r2);padding:.9rem 1.2rem;box-shadow:var(--sh);display:flex;gap:.8rem;align-items:center;max-width:250px;animation:bob 5s ease-in-out infinite}
.chip svg{width:32px;height:32px;stroke:var(--brand);flex:none}.chip b{display:block;font-family:var(--display);line-height:1.15}.chip small{color:var(--mute);line-height:1.3;display:block}
@keyframes bob{50%{transform:translateY(-10px)}}
.home .in{min-height:min(86vh,800px)}
/* 2 ABOUT: arch window + spinning ring */
.arch{position:relative;justify-self:center;width:min(400px,100%);aspect-ratio:3/4}
.arch::before{content:"";position:absolute;width:118%;aspect-ratio:1;left:-9%;top:6%;border:2px dashed rgba(201,160,79,.7);border-radius:50%;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.arch .win{position:absolute;inset:0;border-radius:999px 999px 28px 28px;overflow:hidden;border:6px solid rgba(255,255,255,.92);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.arch .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.3s}.arch .sl.on{opacity:1}
.arch .sl img{transform:scale(1.12);transition:transform 6s ease-out}.arch .sl.on img{transform:scale(1)}
/* 3 COLLECTIONS: full-bleed film with glass panel */
.film{min-height:min(74vh,700px);display:flex;align-items:flex-end}
.film::after{background:linear-gradient(90deg,rgba(37,16,42,.78) 0%,rgba(37,16,42,.15) 70%),linear-gradient(0deg,rgba(37,16,42,.6),transparent 40%)}
.fbg{position:absolute;inset:0;z-index:-2}
.fbg .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.6s}.fbg .sl.on{opacity:1}
.fbg .sl img{transform:scale(1.04)}.fbg .sl.on img{animation:kb2 8s ease-out forwards}
@keyframes kb2{to{transform:scale(1.2)}}
.film .in{grid-template-columns:1fr;width:100%;padding-top:6rem;padding-bottom:2.4rem;min-height:0}
.panel{max-width:600px;padding:2.2rem 2.4rem;border-radius:var(--r1);background:rgba(37,16,42,.42);backdrop-filter:blur(18px) saturate(1.3);border:1px solid rgba(255,255,255,.22)}
.film .row2{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}
.thumbs2{display:flex;gap:.6rem}
.thumbs2 button{width:76px;height:56px;border-radius:14px;overflow:hidden;border:2px solid rgba(255,255,255,.4);padding:0;cursor:pointer;opacity:.7;transition:.3s;background:none}
.thumbs2 button.on{opacity:1;border-color:var(--brass);transform:translateY(-6px)}
.thumbs2 img{width:100%;height:100%;object-fit:cover}
/* 4 PRODUCTS: moving tile rows */
.tiles .in{grid-template-columns:1fr;min-height:0;padding-bottom:2rem}
.tiles .rows{display:grid;gap:1rem;padding-bottom:3.5rem;transform:rotate(-2deg) scale(1.04);margin-top:.5rem}
.rowm{display:flex;gap:1rem;width:max-content;animation:mq 55s linear infinite}
.rowm.rev{animation-direction:reverse;animation-duration:65s}
.rowm div{width:230px;height:150px;border-radius:22px;overflow:hidden;border:3px solid rgba(255,255,255,.85);flex:none}
.rowm img{width:100%;height:100%;object-fit:cover}
@keyframes mq{to{transform:translateX(-50%)}}
/* 5 SERVICES: vertical reels */
.reel{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;height:480px;overflow:hidden;transform:rotate(7deg);-webkit-mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent);justify-self:center;width:min(430px,100%)}
.rcol{display:flex;flex-direction:column;gap:1rem;animation:vy 30s linear infinite}
.rcol:nth-child(2){animation-direction:reverse;animation-duration:38s}.rcol:nth-child(3){animation-duration:34s}
.rcol div{aspect-ratio:3/4;border-radius:20px;overflow:hidden;border:3px solid rgba(255,255,255,.85);flex:none}
.rcol img{width:100%;height:100%;object-fit:cover}
@keyframes vy{to{transform:translateY(calc(-50% - .5rem))}}
/* 6 GALLERY: orbit */
.orbit{position:relative;width:min(440px,100%);aspect-ratio:1;justify-self:center}
.core{position:absolute;inset:15%;border-radius:50%;overflow:hidden;border:6px solid rgba(255,255,255,.92);box-shadow:0 30px 70px -25px rgba(0,0,0,.6)}
.core .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.3s,transform 1.3s;transform:scale(1.15)}.core .sl.on{opacity:1;transform:none}
.ring{position:absolute;inset:0;border:2px dashed rgba(255,255,255,.4);border-radius:50%;animation:spin 36s linear infinite}
.sat{position:absolute;width:21%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid #fff;animation:spin 36s linear infinite reverse;box-shadow:0 12px 30px -10px rgba(0,0,0,.5)}
.sat:nth-child(1){left:39.5%;top:-10.5%}.sat:nth-child(2){right:-5%;top:57%}.sat:nth-child(3){left:-5%;top:57%}
/* 7 SHOWROOM: panorama */
.pano .in{grid-template-columns:1fr;gap:2rem;min-height:0;padding-bottom:3rem}
.pano .top{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.pano h1{max-width:14ch}
.pw{position:relative;border-radius:var(--r1);overflow:hidden;aspect-ratio:21/8;min-height:240px;border:6px solid rgba(255,255,255,.9);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.pw .sl{position:absolute;inset:0;opacity:0;transition:opacity 1.5s}.pw .sl.on{opacity:1}
.pw .sl img{transform:scale(1.05)}.pw .sl.on img{animation:kb2 9s ease-out forwards}
.pw .gl{position:absolute;right:1.2rem;bottom:1.2rem;z-index:2;padding:.9rem 1.2rem;border-radius:var(--r2);background:rgba(37,16,42,.5);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.25);font-size:.92rem}
/* 8 CENTER: floating bubbles */
.center .in{grid-template-columns:1fr;text-align:center;justify-items:center;min-height:430px;padding-top:5rem;padding-bottom:5rem}
.center .crumb{justify-content:center}.center .lead{margin:0 auto}
.bub{position:absolute;z-index:0;padding:.55rem 1.2rem;border-radius:99px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);color:#f6ecf8;font-weight:600;font-size:.95rem;animation:bob 6s ease-in-out infinite;animation-delay:var(--bd,0s)}
.center .txt{position:relative;z-index:1}
/* 9 CATEGORY: sliding ribbon */
.cat .in{min-height:560px}
.subchips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.subchips span{padding:.4rem 1rem;border-radius:99px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);font-size:.92rem;opacity:0;transform:translateY(12px);animation:fu .7s calc(.9s + .1s*var(--i)) forwards}
.rib{position:relative;justify-self:end;width:min(500px,100%);aspect-ratio:4/3.4;border-radius:44px 44px 150px 44px;overflow:hidden;border:6px solid rgba(255,255,255,.92);box-shadow:0 40px 80px -30px rgba(0,0,0,.65)}
.rib .sl{position:absolute;inset:0;transform:translateX(100%);transition:transform 1.1s cubic-bezier(.7,0,.2,1)}
.rib .sl.on{transform:none;z-index:2}.rib .sl.out{transform:translateX(-35%);z-index:1}
.rib .sl.on img{animation:kb2 7s ease-out forwards}
.ribw{position:relative;justify-self:end;width:min(500px,100%)}
.ribw .dots{position:absolute;right:-1.4rem;top:50%;transform:translateY(-50%) rotate(90deg);transform-origin:center;margin:0}
/* 10 MINI */
.mini .in{grid-template-columns:1fr;min-height:0;padding-top:3.2rem;padding-bottom:3.4rem}
.mini h1{font-size:clamp(2.2rem,4.4vw,3.6rem)}
@media(max-width:1000px){
.hx .in{grid-template-columns:1fr;gap:2.5rem;min-height:0}
.stkw,.rib,.ribw{justify-self:center}.stkw{width:min(380px,90%)}.chip{left:-.5rem}
.reel{height:340px}.pw{aspect-ratio:16/9}.ribw .dots{right:auto;left:50%;top:auto;bottom:-1.6rem;transform:translateX(-50%)}
.home .in{min-height:0}.panel{padding:1.6rem}
}
@media(max-width:600px){.bub{display:none}.thumbs2 button{width:56px;height:44px}.rowm div{width:170px;height:120px}.hx .in{padding-top:3rem;padding-bottom:3.5rem}}
@media(prefers-reduced-motion:reduce){.w>span,.fu,.subchips span{opacity:1!important;transform:none!important}.hbg .sl.on img{animation:none}}
.stk .cap{top:1rem;bottom:auto}
.hx .in>*{min-width:0}.film .row2{width:100%}.panel,.pw{width:100%}.thumbs2{max-width:100%;overflow-x:auto;padding:.5rem .2rem 0}
/* ---- Hero typography upgrade ---- */
.hx h1{font-family:'Fraunces','DM Serif Display',Georgia,serif;font-weight:500;font-variation-settings:"opsz" 144;letter-spacing:-.02em;line-height:1.04;text-wrap:balance}
.hx h1 .em{font-style:italic;font-weight:400;color:var(--brass)}
.hx .lead{font-size:clamp(1.08rem,1.5vw,1.28rem);line-height:1.7;color:#f1e6f4;font-weight:400}
.hcap{display:flex;align-items:center;gap:.7rem;margin-top:1.2rem;font:600 .78rem var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--brass)}
.hcap::before{content:"";width:34px;height:1px;background:var(--brass)}
.center .hcap{justify-content:center}
.center .hcap::before{display:none}
.film .cap{left:auto;right:1.2rem;bottom:auto;top:6.5rem}
.arch .cap{left:50%;transform:translateX(-50%);bottom:1.1rem;white-space:nowrap}
.cap{letter-spacing:.02em;box-shadow:0 8px 22px -10px rgba(0,0,0,.5)}
/* ---- Home only: full-bleed background photos, light blur, auto-changing ---- */
.hx.home .hbg{inset:0}
.hx.home .hbg img{filter:blur(2.5px) saturate(1.1) brightness(.85);transform:scale(1.06)}
.hx.home .hbg .sl.on img{animation:kb 7s ease-out forwards}
.hx.home::after{background:linear-gradient(100deg,rgba(37,16,42,.86) 0%,rgba(37,16,42,.55) 48%,rgba(37,16,42,.18) 100%),linear-gradient(0deg,rgba(37,16,42,.45),transparent 35%)}
