:root{--plum:#3b2142;--plum-d:#27142d;--gold:#c2a15f;--gold-l:#e6d3a3;--cream:#fbf7f2;--blush:#f4e8e6;--ink:#2a2128;--muted:#6d616b;--line:#e8dcd6;
--serif:"Playfair Display",Georgia,serif;--sans:"Montserrat",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.eyebrow{font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:500}
.btn{display:inline-block;padding:14px 30px;border-radius:2px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;border:1.5px solid var(--gold);transition:.25s;cursor:pointer}
.btn.gold{background:var(--gold);color:var(--plum-d)}
.btn.gold:hover{background:var(--plum);border-color:var(--plum);color:#fff}
.btn.ghost{color:var(--plum)}
.btn.ghost:hover{background:var(--plum);color:#fff;border-color:var(--plum)}
.btn.light{border-color:#fff;color:#fff}
.btn.light:hover{background:#fff;color:var(--plum)}
section{padding:92px 0}
.title{text-align:center;margin-bottom:52px}
.title h2{font-size:clamp(2rem,4.6vw,3.2rem);margin-top:10px}
.title p{max-width:620px;margin:14px auto 0;color:var(--muted)}
.divider{width:64px;height:1px;background:var(--gold);margin:20px auto 0;position:relative}
.divider::after{content:"◆";position:absolute;left:50%;top:-9px;transform:translateX(-50%);background:var(--cream);padding:0 8px;color:var(--gold);font-size:.6rem}
.center{text-align:center;margin-top:40px}

/* header */
.topbar{background:var(--plum-d);color:#e9dfe6;font-size:.78rem;letter-spacing:.05em}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding-top:9px;padding-bottom:9px;flex-wrap:wrap}
.topbar a:hover{color:var(--gold-l)}
header.nav{position:sticky;top:0;z-index:50;background:rgba(251,247,242,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px}
.logo{display:flex;align-items:center;gap:12px;line-height:1.05}
.logo svg{width:50px;height:50px;flex:none}
.logo b{display:block;font-family:var(--serif);font-size:1.55rem;font-weight:600;color:var(--plum);letter-spacing:.06em;text-transform:uppercase}
.logo small{display:block;font-size:.6rem;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-top:2px}
nav ul{display:flex;gap:30px;align-items:center}
nav a{font-size:.76rem;letter-spacing:.17em;text-transform:uppercase;font-weight:500}
nav a:hover,nav a.on{color:var(--gold)}
nav .btn{padding:11px 22px}
nav .btn:hover{color:#fff}
.burger{display:none;background:none;border:0;font-size:1.8rem;color:var(--plum);cursor:pointer}

/* hero */
.hero{position:relative;height:min(88vh,740px);min-height:540px;color:#fff;overflow:hidden;padding:0;background:var(--plum-d)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s}
.slide.on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(39,20,45,.55),rgba(39,20,45,.72))}
.hero .wrap{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.hero .eyebrow{color:var(--gold-l)}
.hero h1{font-size:clamp(3rem,9vw,6.4rem);margin:14px 0 8px;letter-spacing:.02em}
.hero h1 em{color:var(--gold-l)}
.hero .tag{letter-spacing:.36em;text-transform:uppercase;font-size:clamp(.78rem,1.6vw,1rem);color:var(--gold-l);margin-bottom:10px}
.hero p{max-width:560px;color:#f1e8ee;font-weight:300}
.cta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:30px}
.dots{position:absolute;z-index:3;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:10px}
.dots button{width:9px;height:9px;border-radius:50%;border:0;background:rgba(255,255,255,.5);cursor:pointer}
.dots button.on{background:var(--gold);width:28px;border-radius:6px}

.strip{background:var(--plum);color:#fff;padding:26px 0}
.strip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.strip b{display:block;font-family:var(--serif);font-size:1.25rem;font-weight:500;color:var(--gold-l)}
.strip span{font-size:.82rem;color:#d9cdd6}

.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split h2{font-size:clamp(2rem,4.4vw,3.1rem);margin:12px 0 20px}
.split p{color:var(--muted);margin-bottom:16px}
.vid-frame{border-radius:200px 200px 6px 6px;overflow:hidden;aspect-ratio:3/4;box-shadow:0 30px 60px -30px rgba(40,20,50,.5);background:#000;max-width:440px;margin:0 auto;width:100%}
.vid-frame video,.vid-frame img{width:100%;height:100%;object-fit:cover}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 30px}
.pills span{border:1px solid var(--line);background:#fff;padding:6px 16px;font-size:.8rem;border-radius:999px}
.story{background:var(--blush)}
.story .split{grid-template-columns:1.1fr .9fr}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);overflow:hidden;transition:.3s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 40px -26px rgba(40,20,50,.4)}
.card .ph{aspect-ratio:4/3;overflow:hidden}
.card img,.card video{width:100%;height:100%;object-fit:cover}
.card .t{padding:22px 24px 26px}
.card h3{font-size:1.45rem;color:var(--plum);margin-bottom:6px}
.card p{color:var(--muted);font-size:.92rem}

.reels{background:var(--plum-d);color:#fff}
.reels .title p{color:#cdbfca}
.reels .divider::after{background:var(--plum-d)}
.reel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.reel{position:relative;aspect-ratio:9/16;overflow:hidden;background:#000}
.reel video{width:100%;height:100%;object-fit:cover}
.reel span{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-family:var(--serif);font-size:1.1rem}

.gallery{columns:4;column-gap:14px}
.gallery a{display:block;margin-bottom:14px;overflow:hidden;break-inside:avoid;cursor:zoom-in;background:#eee}
.gallery img{width:100%;transition:.5s}
.gallery a:hover img{transform:scale(1.05)}

.band{position:relative;color:#fff;text-align:center;padding:110px 0;background:var(--plum-d);overflow:hidden}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.band .wrap{position:relative}
.band h2{font-size:clamp(2rem,5vw,3.4rem);margin:12px 0 28px}
.band .eyebrow{color:var(--gold-l)}

.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch}
.visit-grid h2{font-size:clamp(2rem,4.4vw,3rem);margin:10px 0 16px}
.visit-grid p{color:var(--muted)}
.hours{margin:24px 0;border-top:1px solid var(--line)}
.hours div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:.93rem}
.hours div.today{color:var(--plum);font-weight:600}
.hours div.today span:first-child::after{content:" · Today";color:var(--gold)}
.info{display:flex;flex-direction:column;gap:2px;margin-bottom:22px;font-weight:500}
.info a:hover{color:var(--gold)}
.map{min-height:380px;border:1px solid var(--line)}
.map iframe{width:100%;height:100%;min-height:380px;border:0}

footer{background:var(--plum-d);color:#b9a9b5;text-align:center;padding:36px 0 96px;font-size:.88rem}
footer b{font-family:var(--serif);font-size:1.6rem;color:var(--gold-l);font-weight:500;display:block;margin-bottom:4px;letter-spacing:.06em;text-transform:uppercase}
footer a:hover{color:#fff}
.callbar{display:none}

.pagehead{background:var(--plum-d);color:#fff;text-align:center;padding:72px 0}
.pagehead h1{font-size:clamp(2.4rem,6vw,4rem);margin-top:10px}
.pagehead p{color:#cdbfca;max-width:560px;margin:12px auto 0}
.svc-list{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.svc{background:#fff;border:1px solid var(--line);padding:30px 30px 26px;border-left:3px solid var(--gold)}
.svc h3{font-size:1.5rem;color:var(--plum);margin-bottom:8px}
.svc p{color:var(--muted);font-size:.94rem}
.svc ul{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.84rem;color:var(--ink)}
.svc li::before{content:"◆ ";color:var(--gold);font-size:.55rem;vertical-align:2px}
.book-box{text-align:center;background:var(--blush);padding:56px 24px;margin-top:56px;border:1px solid var(--line)}
.book-box h2{font-size:2rem;margin-bottom:10px}
.book-box p{color:var(--muted);margin-bottom:22px}

.lb{position:fixed;inset:0;background:rgba(15,8,18,.94);display:none;align-items:center;justify-content:center;z-index:100}
.lb.on{display:flex}
.lb img{max-width:94vw;max-height:90vh;object-fit:contain}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.4rem;cursor:pointer;padding:12px 18px}
.lb .x{top:6px;right:8px}.lb .p{left:6px;top:50%}.lb .n{right:6px;top:50%}

@media(max-width:960px){
  .cards{grid-template-columns:1fr 1fr}.reel-grid{grid-template-columns:1fr 1fr}.gallery{columns:3}
  .split,.story .split,.visit-grid{grid-template-columns:1fr;gap:40px}
  .strip .wrap{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  section{padding:64px 0}
  .burger{display:block}
  nav{position:absolute;top:78px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--line);display:none;padding:18px 20px 24px}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:stretch;gap:16px}
  nav .btn{text-align:center}
  .topbar .addr{display:none}
  .cards,.svc-list,.menu-list{grid-template-columns:1fr}.gallery{columns:2}
  .logo b{font-size:1.25rem}
  .callbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--gold);color:var(--plum-d);text-align:center;padding:14px;font-weight:600;letter-spacing:.1em;font-size:.82rem;text-transform:uppercase}
}

/* orbit */
.orbit-sec{background:linear-gradient(180deg,var(--cream),var(--blush));overflow:hidden}
.orbit{--size:min(640px,92vw);--o:calc(var(--size)*.15);position:relative;width:var(--size);height:var(--size);margin:0 auto}
.orbit::before,.orbit::after{content:"";position:absolute;border-radius:50%;border:1px dashed var(--gold);opacity:.6}
.orbit::before{inset:calc(var(--o)/2)}
.orbit::after{inset:calc(var(--size)*.2)}
.ring{position:absolute;inset:0;animation:spin 60s linear infinite}
.ring.r2{inset:calc(var(--size)*.2 - var(--size)*.065);inset:calc(var(--size)*.135);animation-duration:45s;animation-direction:reverse}
.orb{position:absolute;top:50%;left:50%;width:var(--o);height:var(--o);margin:calc(var(--o)/-2);transform:rotate(var(--a)) translateY(calc(var(--size)/-2 + var(--o)/2));}
.r2 .orb{--o2:calc(var(--size)*.12);width:var(--o2);height:var(--o2);margin:calc(var(--o2)/-2);transform:rotate(var(--a)) translateY(calc(var(--size)*-.365 + var(--o2)/2))}
.orb img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 10px 24px -10px rgba(40,20,50,.55),0 0 0 1.5px var(--gold);animation:spin 60s linear infinite reverse;transform:rotate(calc(var(--a)*-1))}
.r2 .orb img{animation-duration:45s;animation-direction:normal}
@keyframes spin{to{transform:rotate(360deg)}}
.orbit:hover .ring,.orbit:hover .orb img{animation-play-state:paused}
.orbit-core{position:absolute;inset:27%;border-radius:50%;background:var(--plum);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 0 0 6px var(--cream),0 0 0 7.5px var(--gold),0 30px 60px -20px rgba(40,20,50,.6)}
.orbit-core b{font-family:var(--serif);font-size:clamp(1.5rem,5vw,2.6rem);font-weight:500;color:var(--gold-l);letter-spacing:.05em;text-transform:uppercase;line-height:1}
.orbit-core small{font-size:.62rem;letter-spacing:.45em;text-transform:uppercase;color:#d9cdd6;margin:8px 0 14px}
.orbit-core .btn{padding:9px 18px;font-size:.62rem}
@media(max-width:560px){.orbit-core .btn{display:none}.orbit-core small{margin-bottom:0}}
@media(prefers-reduced-motion:reduce){.ring,.orb img{animation:none}}

.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.menu-cat{background:#fff;border:1px solid var(--line);padding:30px 30px 22px;border-left:3px solid var(--gold)}
.menu-cat h3{font-size:1.5rem;color:var(--plum);margin-bottom:12px}
.menu-cat li{display:flex;align-items:baseline;gap:8px;padding:8px 0}
.menu-cat .mi b{font-weight:500;display:block}
.menu-cat .mi small{color:var(--muted);font-size:.78rem}
.menu-cat .dots{flex:1;border-bottom:1px dotted var(--line);min-width:12px;transform:translateY(-4px)}
.menu-cat .pr{color:var(--plum);font-weight:600;white-space:nowrap}
.menu-note{color:var(--muted);font-size:.82rem;margin-top:18px;text-align:center}
