/* ── THEMES ───────────────────────────────────────────── */
[data-theme="warm-ivory"]{--bg:#faf8f4;--bg2:#f2ede4;--bg3:#e6ddd0;--ink:#1a1208;--ink2:#5c5040;--ink3:#9c8870;--acc:#a07840;--acc-l:#c8a060;--acc-ll:rgba(160,120,64,.13);--surface:#fff;--bdr:rgba(26,18,8,.09);--bdr2:rgba(26,18,8,.05);--nav-bg:rgba(250,248,244,.93);--dark:#1a1208;--dark2:#2d2010;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="obsidian"]{--bg:#0e0c0a;--bg2:#161410;--bg3:#1e1c16;--ink:#f0ece4;--ink2:#a09880;--ink3:#6a6050;--acc:#c8a050;--acc-l:#e0c070;--acc-ll:rgba(200,160,80,.14);--surface:#161410;--bdr:rgba(240,236,228,.09);--bdr2:rgba(240,236,228,.05);--nav-bg:rgba(14,12,10,.95);--dark:#060504;--dark2:#0a0906;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="forest-sage"]{--bg:#f2f5f0;--bg2:#e4ebe0;--bg3:#d2ddc8;--ink:#0e1a10;--ink2:#3a5040;--ink3:#7a9278;--acc:#4a7054;--acc-l:#6a9870;--acc-ll:rgba(74,112,84,.13);--surface:#fff;--bdr:rgba(14,26,16,.09);--bdr2:rgba(14,26,16,.05);--nav-bg:rgba(242,245,240,.93);--dark:#0e1a10;--dark2:#162018;--serif:'Libre Baskerville',Georgia,serif}
[data-theme="arctic-blue"]{--bg:#f2f6fa;--bg2:#e4edf6;--bg3:#ccdcee;--ink:#0a1828;--ink2:#304860;--ink3:#6888a8;--acc:#2660a0;--acc-l:#4880c0;--acc-ll:rgba(38,96,160,.13);--surface:#fff;--bdr:rgba(10,24,40,.09);--bdr2:rgba(10,24,40,.05);--nav-bg:rgba(242,246,250,.93);--dark:#0a1828;--dark2:#102030;--serif:'DM Sans',system-ui,sans-serif}
[data-theme="dusty-rose"]{--bg:#faf4f2;--bg2:#f0e4e0;--bg3:#e4d0ca;--ink:#200c08;--ink2:#604840;--ink3:#a07870;--acc:#a04838;--acc-l:#c86858;--acc-ll:rgba(160,72,56,.13);--surface:#fff;--bdr:rgba(32,12,8,.09);--bdr2:rgba(32,12,8,.05);--nav-bg:rgba(250,244,242,.93);--dark:#200c08;--dark2:#2e1410;--serif:'Playfair Display',Georgia,serif}
[data-theme="midnight-scholar"]{--bg:#f2f2f8;--bg2:#e4e4f4;--bg3:#d0d0e8;--ink:#080828;--ink2:#303068;--ink3:#7070a8;--acc:#6040a0;--acc-l:#8060c0;--acc-ll:rgba(96,64,160,.13);--surface:#fff;--bdr:rgba(8,8,40,.09);--bdr2:rgba(8,8,40,.05);--nav-bg:rgba(242,242,248,.93);--dark:#080828;--dark2:#101040;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="saffron"]{--bg:#fffaf0;--bg2:#fff2d8;--bg3:#ffe8b8;--ink:#1a0c00;--ink2:#604820;--ink3:#a08040;--acc:#c06010;--acc-l:#e08030;--acc-ll:rgba(192,96,16,.13);--surface:#fff;--bdr:rgba(26,12,0,.09);--bdr2:rgba(26,12,0,.05);--nav-bg:rgba(255,250,240,.93);--dark:#1a0c00;--dark2:#2a1800;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="raw-concrete"]{--bg:#f4f4f2;--bg2:#eaeae6;--bg3:#d8d8d2;--ink:#161614;--ink2:#505050;--ink3:#909090;--acc:#161614;--acc-l:#404040;--acc-ll:rgba(22,22,20,.1);--surface:#fff;--bdr:rgba(22,22,20,.1);--bdr2:rgba(22,22,20,.05);--nav-bg:rgba(244,244,242,.95);--dark:#161614;--dark2:#202020;--serif:'DM Sans',system-ui,sans-serif}
[data-theme="champagne-noir"]{--bg:#f7f4ee;--bg2:#ede8de;--bg3:#dfd8c8;--ink:#0e0c08;--ink2:#4a4438;--ink3:#8a8070;--acc:#b09060;--acc-l:#d0b880;--acc-ll:rgba(176,144,96,.14);--surface:#fff;--bdr:rgba(14,12,8,.08);--bdr2:rgba(14,12,8,.05);--nav-bg:rgba(247,244,238,.95);--dark:#0e0c08;--dark2:#1c1a12;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="venetian-red"]{--bg:#faf6f2;--bg2:#f2e8e0;--bg3:#e8d4c4;--ink:#1e0a08;--ink2:#6a3828;--ink3:#a87860;--acc:#8b2820;--acc-l:#b84030;--acc-ll:rgba(139,40,32,.12);--surface:#fff;--bdr:rgba(30,10,8,.09);--bdr2:rgba(30,10,8,.05);--nav-bg:rgba(250,246,242,.93);--dark:#1e0a08;--dark2:#2e1410;--serif:'Playfair Display',Georgia,serif}
[data-theme="jade-temple"]{--bg:#f0f5f2;--bg2:#dfeee8;--bg3:#c8e0d4;--ink:#041812;--ink2:#265040;--ink3:#608070;--acc:#1a6648;--acc-l:#2a8860;--acc-ll:rgba(26,102,72,.12);--surface:#fff;--bdr:rgba(4,24,18,.09);--bdr2:rgba(4,24,18,.05);--nav-bg:rgba(240,245,242,.93);--dark:#041812;--dark2:#0c2820;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="old-parchment"]{--bg:#faf5e4;--bg2:#f2e8cc;--bg3:#e8d8a8;--ink:#180e00;--ink2:#5a4010;--ink3:#9a7830;--acc:#7a5818;--acc-l:#a07828;--acc-ll:rgba(122,88,24,.13);--surface:#fff;--bdr:rgba(24,14,0,.09);--bdr2:rgba(24,14,0,.05);--nav-bg:rgba(250,245,228,.95);--dark:#180e00;--dark2:#261800;--serif:'Libre Baskerville',Georgia,serif}
[data-theme="slate-blue"]{--bg:#f4f5f8;--bg2:#e8ecf4;--bg3:#d4dcea;--ink:#0c1220;--ink2:#384060;--ink3:#788098;--acc:#3a5480;--acc-l:#5878a8;--acc-ll:rgba(58,84,128,.12);--surface:#fff;--bdr:rgba(12,18,32,.09);--bdr2:rgba(12,18,32,.05);--nav-bg:rgba(244,245,248,.95);--dark:#0c1220;--dark2:#161e30;--serif:'DM Sans',system-ui,sans-serif}
[data-theme="burgundy-cream"]{--bg:#faf8f4;--bg2:#f0e8e4;--bg3:#e4d4cc;--ink:#1a0818;--ink2:#584050;--ink3:#988088;--acc:#6e2040;--acc-l:#922858;--acc-ll:rgba(110,32,64,.12);--surface:#fff;--bdr:rgba(26,8,24,.09);--bdr2:rgba(26,8,24,.05);--nav-bg:rgba(250,248,244,.93);--dark:#1a0818;--dark2:#281028;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="copper-sage"]{--bg:#f2f5f0;--bg2:#e4ede6;--bg3:#ccdacc;--ink:#0c1810;--ink2:#384838;--ink3:#708068;--acc:#8a5428;--acc-l:#b07040;--acc-ll:rgba(138,84,40,.12);--surface:#fff;--bdr:rgba(12,24,16,.09);--bdr2:rgba(12,24,16,.05);--nav-bg:rgba(242,245,240,.93);--dark:#0c1810;--dark2:#162018;--serif:'Libre Baskerville',Georgia,serif}
[data-theme="mahogany-linen"]{--bg:#faf7f2;--bg2:#f0e8dc;--bg3:#e4d4c0;--ink:#160800;--ink2:#5a3818;--ink3:#9a7248;--acc:#6e3010;--acc-l:#9a4818;--acc-ll:rgba(110,48,16,.12);--surface:#fff;--bdr:rgba(22,8,0,.09);--bdr2:rgba(22,8,0,.05);--nav-bg:rgba(250,247,242,.93);--dark:#160800;--dark2:#221400;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="peach-blossom"]{--bg:#fdf6f0;--bg2:#f8ebe0;--bg3:#f0d8c4;--ink:#1c0c06;--ink2:#6a3820;--ink3:#a87858;--acc:#c47850;--acc-l:#e09870;--acc-ll:rgba(196,120,80,.13);--surface:#fff;--bdr:rgba(28,12,6,.09);--bdr2:rgba(28,12,6,.05);--nav-bg:rgba(253,246,240,.95);--dark:#1c0c06;--dark2:#2c180e;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="ocean-mist"]{--bg:#f0f6f8;--bg2:#deeef4;--bg3:#c4e0ec;--ink:#081820;--ink2:#204858;--ink3:#608898;--acc:#2878a0;--acc-l:#4898c0;--acc-ll:rgba(40,120,160,.13);--surface:#fff;--bdr:rgba(8,24,32,.09);--bdr2:rgba(8,24,32,.05);--nav-bg:rgba(240,246,248,.95);--dark:#081820;--dark2:#102838;--serif:'DM Sans',system-ui,sans-serif}
[data-theme="plum-ink"]{--bg:#f8f4f8;--bg2:#ede4f0;--bg3:#ddd0e8;--ink:#14081c;--ink2:#483060;--ink3:#8870a0;--acc:#703090;--acc-l:#9050b8;--acc-ll:rgba(112,48,144,.13);--surface:#fff;--bdr:rgba(20,8,28,.09);--bdr2:rgba(20,8,28,.05);--nav-bg:rgba(248,244,248,.95);--dark:#14081c;--dark2:#200c30;--serif:'Cormorant Garamond',Georgia,serif}
[data-theme="golden-hour"]{--bg:#fdf8ec;--bg2:#f8f0d4;--bg3:#f0e4b0;--ink:#160c00;--ink2:#584018;--ink3:#988040;--acc:#c08820;--acc-l:#e0a830;--acc-ll:rgba(192,136,32,.14);--surface:#fff;--bdr:rgba(22,12,0,.09);--bdr2:rgba(22,12,0,.05);--nav-bg:rgba(253,248,236,.95);--dark:#160c00;--dark2:#241800;--serif:'Cormorant Garamond',Georgia,serif}

/* ── BASE ─────────────────────────────────────────────── */
:root{--sans:'DM Sans',system-ui,sans-serif;--nav-h:68px;--max:1200px;--r:4px;--px:clamp(24px,6vw,88px);--ease:cubic-bezier(.25,.46,.45,.94);--ease2:cubic-bezier(.16,1,.3,1)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7;overflow-x:hidden}
img{max-width:100%;display:block;object-fit:cover}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-family:inherit}
::selection{background:var(--acc-ll);color:var(--ink)}
::-webkit-scrollbar{width:3px}::-webkit-scrollbar-thumb{background:var(--acc)}

/* ── LOADER ───────────────────────────────────────────── */
#loader{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s}
#loader.gone{opacity:0;pointer-events:none}
.ring{width:38px;height:38px;border:2px solid var(--bdr);border-top-color:var(--acc);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── ACCESSIBILITY ────────────────────────────────────── */
.skip-link{position:absolute;top:-100px;left:16px;background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:0 0 var(--r) var(--r);font-size:.85rem;font-weight:500;z-index:10000;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0}
*:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:2px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-contrast:more){.btn-filled,.btn-outline{border-width:2px}a:focus-visible,button:focus-visible{outline-width:4px}}

/* ── NAV ──────────────────────────────────────────────── */
#nav{position:fixed;top:0;left:0;right:0;z-index:800;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--px);transition:background .45s var(--ease),box-shadow .45s}
#nav.solid{background:var(--nav-bg);backdrop-filter:blur(20px) saturate(1.6);box-shadow:0 1px 0 var(--bdr)}
.nav-logo{font-family:var(--serif);font-size:1.45rem;font-weight:400;letter-spacing:.02em}
.nav-logo em{color:var(--acc);font-style:italic}
.nav-links{display:flex;gap:34px;list-style:none;align-items:center}
.nav-links a{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);transition:color .2s;position:relative}
.nav-links a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--acc);transition:width .3s var(--ease2)}
.nav-links a:hover{color:var(--acc)}.nav-links a:hover::after{width:100%}
.nav-cta{background:var(--ink)!important;color:var(--bg)!important;padding:10px 24px;border-radius:var(--r);transition:background .2s!important}
.nav-cta:hover{background:var(--acc)!important}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px}
.hamburger span{display:block;width:24px;height:1.5px;background:var(--ink);transition:.3s var(--ease)}
.hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mob-nav{display:none;position:fixed;inset:0;padding-top:var(--nav-h);z-index:799;background:var(--bg);flex-direction:column;align-items:center;justify-content:center;gap:30px}
.mob-nav.open{display:flex}
.mob-nav a{font-family:var(--serif);font-size:2rem;font-weight:300;color:var(--ink);transition:color .2s}
.mob-nav a:hover{color:var(--acc)}

/* ── LAUNCH BANNER ────────────────────────────────────── */
#launch-banner{display:none;background:var(--dark);border-bottom:1px solid rgba(160,120,64,.15);margin-top:var(--nav-h)}
.lb-inner{max-width:var(--max);margin:0 auto;padding:10px var(--px);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.lb-badge{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--acc-l);white-space:nowrap;flex-shrink:0}
.lb-badge:empty{display:none}
.lb-title{font-family:var(--serif);font-size:.98rem;font-weight:300;color:rgba(240,232,216,.92);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-desc{font-size:.78rem;color:rgba(240,232,216,.42);line-height:1.4;flex:1;min-width:0}
.lb-desc:empty{display:none}
.lb-cta{flex-shrink:0;background:var(--acc);color:#fff;padding:6px 16px;border-radius:3px;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;transition:opacity .2s;white-space:nowrap;text-decoration:none}
.lb-cta:hover{opacity:.82}
.lb-cta-ghost{background:transparent;color:rgba(240,232,216,.7);border:1px solid rgba(240,232,216,.25);margin-left:4px}
.lb-cta-ghost:hover{color:rgba(240,232,216,.95);border-color:rgba(240,232,216,.5);opacity:1}
.lb-dismiss{flex-shrink:0;background:none;border:none;color:rgba(240,232,216,.3);cursor:pointer;font-size:.85rem;padding:4px 6px;transition:color .2s;line-height:1}
.lb-dismiss:hover{color:rgba(240,232,216,.6)}
.lb-right{margin-left:auto}

/* ── HERO ─────────────────────────────────────────────── */
#hero{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding:calc(var(--nav-h) + 72px) var(--px) 80px;position:relative;overflow:hidden}
#hero.has-banner{padding-top:72px;min-height:calc(100svh - 160px)}
.hero-glow{position:absolute;top:-15%;right:-5%;width:50%;height:75%;background:radial-gradient(ellipse,var(--acc-ll) 0%,transparent 68%);pointer-events:none}
.hero-glow2{position:absolute;bottom:-10%;left:-5%;width:38%;height:50%;background:radial-gradient(ellipse,var(--acc-ll) 0%,transparent 68%);pointer-events:none;opacity:.5}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin-bottom:20px}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--acc)}
.hero-h1{font-family:var(--serif);font-size:clamp(2.8rem,5vw,5.5rem);font-weight:300;line-height:1.06;letter-spacing:-.01em;margin-bottom:22px}
.hero-h1 em{font-style:italic;color:var(--acc)}
.hero-sub{font-size:1.05rem;color:var(--ink2);max-width:440px;line-height:1.85;margin-bottom:40px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:44px}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 30px;border-radius:var(--r);font-size:.77rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;transition:all .25s var(--ease);white-space:nowrap;font-family:var(--sans)}
.btn-filled{background:var(--ink);color:var(--bg)}
.btn-filled:hover{background:var(--acc);transform:translateY(-2px);box-shadow:0 10px 32px var(--acc-ll)}
.btn-outline{background:transparent;color:var(--ink);border:1.5px solid var(--bdr)}
.btn-outline:hover{border-color:var(--acc);color:var(--acc)}
.btn-ghost{background:transparent;color:var(--acc);padding-left:0;padding-right:0;letter-spacing:.06em}
.btn-ghost::after{content:' →';transition:transform .2s}
.btn-ghost:hover::after{transform:translateX(4px)}
.hero-chips{display:flex;gap:9px;flex-wrap:wrap}
.chip{font-size:.71rem;letter-spacing:.07em;color:var(--ink3);border:1px solid var(--bdr);padding:5px 13px;border-radius:40px}
.book-visual{display:flex;justify-content:center;align-items:center}
.book-3d{width:clamp(170px,24vw,290px);aspect-ratio:.67;position:relative;transform:perspective(900px) rotateY(-12deg);transition:transform .7s var(--ease2);filter:drop-shadow(36px 36px 60px rgba(0,0,0,.22))}
.book-face{width:100%;height:100%;border-radius:2px 10px 10px 2px;overflow:hidden;background:linear-gradient(145deg,var(--dark2),var(--dark));display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 22px;position:relative}
.book-face::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--acc),var(--acc-l));z-index:2}
.book-spine{position:absolute;left:-12px;top:0;bottom:0;width:12px;background:linear-gradient(90deg,color-mix(in srgb,var(--dark) 80%,black),var(--dark));border-radius:1px 0 0 1px}
#cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0;z-index:1;display:none}
.book-ttl-txt{font-family:var(--serif);color:rgba(240,228,200,.9);font-size:clamp(.95rem,2.2vw,1.55rem);font-weight:300;text-align:center;line-height:1.25;margin-bottom:14px;z-index:1}
.book-aut-txt{color:rgba(240,228,200,.38);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;z-index:1}
.book-deco{width:32px;height:1px;background:var(--acc);position:absolute;bottom:28px;z-index:1}

/* ── SECTIONS ─────────────────────────────────────────── */
.sec{padding:clamp(64px,8vw,110px) var(--px)}
.sec-in{max-width:var(--max);margin:0 auto}
.sec-tag{font-size:.69rem;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sec-tag::before{content:'';width:22px;height:1px;background:var(--acc)}
.sec-h2{font-family:var(--serif);font-size:clamp(1.9rem,4vw,3.7rem);font-weight:300;line-height:1.12;margin-bottom:18px}
.sec-h2 em{font-style:italic;color:var(--acc)}
.sec-lead{color:var(--ink2);font-size:1.03rem;line-height:1.85;max-width:580px}
.divider{height:1px;background:var(--acc);margin:28px 0}

/* ── ABOUT ────────────────────────────────────────────── */
#about-sec{background:var(--bg2);padding-top:clamp(52px,7vw,96px);padding-bottom:clamp(52px,7vw,96px)}
.about-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:start;margin-top:24px;max-width:720px}
.about-grid.has-photo{grid-template-columns:1fr 1.12fr;gap:64px;max-width:var(--max);align-items:center}
.img-wrap{display:none}
.img-box{width:100%;border-radius:var(--r);overflow:hidden;background:linear-gradient(145deg,var(--bg3),var(--bg2))}
#author-photo{width:100%;height:auto;display:block;object-fit:cover;object-position:center top}
.pull-quote{font-family:var(--serif);font-size:1.35rem;font-style:italic;line-height:1.55;margin:20px 0;padding-left:16px;border-left:2px solid var(--acc);color:var(--ink)}
.bio{color:var(--ink2);line-height:1.85}.bio p{margin-bottom:12px}
.sig{font-family:var(--serif);font-size:1.9rem;font-style:italic;color:var(--ink);margin-top:22px}

/* ── BOOK ─────────────────────────────────────────────── */
#book-sec{background:var(--dark)}
.dark-sec .sec-tag{color:var(--acc-l)}
.dark-sec .sec-h2{color:rgba(240,232,216,.95)}
.dark-sec .sec-lead{color:rgba(240,232,216,.48)}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.06);margin-top:52px}
.feat-card{padding:42px 34px;background:rgba(255,255,255,.02);transition:background .3s}
.feat-card:hover{background:rgba(255,255,255,.05)}
.feat-num{font-family:var(--serif);font-size:3.2rem;font-weight:300;color:var(--acc);line-height:1;margin-bottom:16px;opacity:.65}
.feat-title{font-family:var(--serif);font-size:1.35rem;color:rgba(240,232,216,.9);margin-bottom:10px}
.feat-desc{font-size:.87rem;color:rgba(240,232,216,.4);line-height:1.8}

/* ── BUY ──────────────────────────────────────────────── */
#buy-sec{background:var(--bg2)}
.store-grid{display:flex;flex-wrap:wrap;gap:14px;margin-top:44px;justify-content:center}
.store-btn{display:flex;align-items:center;gap:14px;padding:17px 26px;background:var(--surface);border-radius:var(--r);border:1.5px solid var(--bdr);min-width:195px;transition:all .3s var(--ease);cursor:pointer;overflow:hidden;position:relative}
.store-btn::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.18) 50%,transparent 60%);transform:translateX(-100%);transition:transform .5s ease}
.store-btn:hover::after{transform:translateX(100%)}
.store-btn:hover{border-color:var(--acc);transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.1)}
.store-icon{font-size:1.55rem;flex-shrink:0}
.store-lbl{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}
.store-name{font-size:.96rem;font-weight:400;color:var(--ink)}

/* ── EVENTS ───────────────────────────────────────────── */
#events-sec{background:var(--bg)}
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:22px;margin-top:48px}
.ev-card{border-radius:var(--r);border:1px solid var(--bdr);overflow:hidden;transition:transform .5s var(--ease2),box-shadow .5s var(--ease2),border-color .3s}
.ev-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 24px 60px rgba(0,0,0,.12);border-color:var(--acc)}
.ev-banner{height:200px;overflow:hidden;position:relative;background:linear-gradient(135deg,var(--bg3),var(--bg2))}
.ev-banner img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.ev-banner-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink3);opacity:.5}
.ev-body{padding:28px}
.ev-type{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--acc);margin-bottom:8px}
.ev-title{font-family:var(--serif);font-size:1.32rem;font-weight:300;margin-bottom:12px;line-height:1.25}
.ev-meta{display:flex;flex-direction:column;gap:4px;margin-bottom:18px}
.ev-meta span{font-size:.82rem;color:var(--ink3);display:flex;align-items:center;gap:7px}
.ev-desc{font-size:.87rem;color:var(--ink2);line-height:1.75;margin-bottom:20px}
.ev-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--bdr2)}
.ev-price{font-family:var(--serif);font-size:1.4rem;font-weight:300;color:var(--acc)}
.ev-seats{font-size:.74rem;color:var(--ink3)}

/* ── TESTIMONIALS ─────────────────────────────────────── */
#testimonials-sec{background:var(--dark);display:none}
.ts-wrap{margin-top:56px;position:relative}
.ts-track{transition:opacity .25s ease,transform .25s ease;min-height:240px;display:flex;align-items:center;justify-content:center}
.ts-card{text-align:center;max-width:720px;margin:0 auto;padding:0 24px}
.ts-stars{display:flex;justify-content:center;gap:4px;margin-bottom:28px}
.ts-star{font-size:1rem;color:var(--bdr)}
.ts-star.on{color:var(--acc)}
.ts-quote{font-family:var(--serif);font-size:clamp(1.3rem,2.8vw,2rem);font-style:italic;color:rgba(240,232,216,.9);line-height:1.55;margin-bottom:36px;position:relative}
.ts-quote::before{content:'\201C';font-size:5rem;color:var(--acc);opacity:.25;position:absolute;top:-28px;left:-16px;line-height:1;font-style:normal}
.ts-person{display:flex;align-items:center;gap:16px;justify-content:center}
.ts-photo{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid rgba(240,232,216,.15);flex-shrink:0}
.ts-photo.hidden{display:none}
.ts-photo-ph{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.3rem;color:rgba(240,232,216,.3);flex-shrink:0}
.ts-name{font-family:var(--serif);font-size:1.05rem;color:rgba(240,232,216,.85);line-height:1.3}
.ts-role{font-size:.78rem;color:rgba(240,232,216,.4);letter-spacing:.05em}
.ts-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:44px}
.ts-arr{background:none;border:1px solid rgba(240,232,216,.15);border-radius:50%;width:42px;height:42px;color:rgba(240,232,216,.5);cursor:pointer;font-size:1rem;transition:all .2s;display:flex;align-items:center;justify-content:center}
.ts-arr:hover{border-color:var(--acc);color:var(--acc-l)}
.ts-dots{display:flex;gap:8px}
.ts-dot{width:7px;height:7px;border-radius:50%;background:rgba(240,232,216,.2);border:none;cursor:pointer;transition:all .3s;padding:0}
.ts-dot.active{background:var(--acc);transform:scale(1.3)}
.dark-sec .sec-tag{color:var(--acc-l)}
.dark-sec .sec-h2{color:rgba(240,232,216,.95)}

/* ── FAQ ──────────────────────────────────────────────── */
#faq-sec{background:var(--bg2)}
.acc-wrap{max-width:760px;margin:44px auto 0;border-top:1px solid var(--bdr)}
.acc-item{border-bottom:1px solid var(--bdr)}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 0;background:none;border:none;cursor:pointer;font-family:var(--serif);font-size:1.17rem;text-align:left;color:var(--ink);transition:color .2s;gap:16px}
.acc-btn:hover{color:var(--acc)}
.acc-btn[aria-expanded="true"]{color:var(--acc)}
.acc-icon{width:22px;height:22px;border:1.5px solid var(--bdr);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0;transition:all .3s;color:var(--ink3)}
.acc-btn[aria-expanded="true"] .acc-icon{background:var(--acc);border-color:var(--acc);color:var(--dark);transform:rotate(45deg)}
.acc-body{max-height:0;overflow:hidden;transition:max-height .45s var(--ease2)}
.acc-body.open{max-height:400px}
.acc-body p{padding:0 0 22px;color:var(--ink2);line-height:1.85;font-size:.97rem}

/* ── CONTACT ──────────────────────────────────────────── */
#contact-sec{background:var(--dark)}
.dark-sec2 .sec-tag{color:var(--acc-l)}
.dark-sec2 .sec-h2{color:rgba(240,232,216,.95)}
.dark-sec2 .sec-lead{color:rgba(240,232,216,.48)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:52px;align-items:start}
.cinfo{display:flex;align-items:flex-start;gap:16px;margin-bottom:28px}
.cinfo-icon{width:40px;height:40px;border-radius:var(--r);background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;margin-top:2px}
.cinfo-lbl{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(240,232,216,.3);margin-bottom:3px}
.cinfo-val{color:rgba(240,232,216,.75);font-size:.95rem}
.social-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.soc-link{display:inline-flex;align-items:center;gap:7px;padding:7px 15px;border:1px solid rgba(255,255,255,.12);border-radius:40px;font-size:.74rem;color:rgba(240,232,216,.5);transition:all .2s}
.soc-link:hover{border-color:var(--acc);color:var(--acc-l)}
.cform{background:rgba(255,255,255,.04);border-radius:8px;padding:32px;border:1px solid rgba(255,255,255,.07)}
.flbl{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(240,232,216,.35);margin-bottom:6px}
.finp{width:100%;padding:11px 13px;border:1.5px solid rgba(255,255,255,.1);border-radius:var(--r);background:rgba(255,255,255,.05);color:rgba(240,232,216,.9);outline:none;transition:border-color .2s;margin-bottom:16px;font-size:.9rem}
.finp:focus{border-color:var(--acc);background:rgba(255,255,255,.08)}
.fta{resize:vertical;min-height:100px}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* ── FOOTER ───────────────────────────────────────────── */
footer{background:var(--dark);padding:32px var(--px);border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.f-logo{font-family:var(--serif);font-size:1.3rem;font-weight:300;color:rgba(240,232,216,.5)}
.f-copy{font-size:.74rem;color:rgba(240,232,216,.2)}
.f-admin{display:inline-block;margin-top:8px;font-size:.66rem;color:rgba(240,232,216,.08);cursor:pointer;transition:color .2s;border:none;background:none}
.f-admin:hover{color:var(--acc)}

/* ── BOOKING MODAL ────────────────────────────────────── */
.overlay{display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.7);backdrop-filter:blur(14px);align-items:center;justify-content:center;padding:20px}
.overlay.open{display:flex;animation:fdIn .3s}
@keyframes fdIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface);border-radius:12px;max-width:500px;width:100%;padding:40px;position:relative;max-height:90svh;overflow-y:auto;animation:slideUp .35s var(--ease2)}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.modal-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;background:var(--bg2);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink2);font-size:.95rem;transition:background .2s}
.modal-x:hover{background:var(--bg3)}
.m-title{font-family:var(--serif);font-size:1.8rem;font-weight:300;margin-bottom:4px}
.m-sub{font-size:.83rem;color:var(--acc);margin-bottom:24px;letter-spacing:.04em}
.m-lbl{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin-bottom:6px}
.m-inp{width:100%;padding:11px 13px;border:1.5px solid var(--bdr);border-radius:var(--r);background:var(--bg);color:var(--ink);outline:none;transition:border-color .2s;margin-bottom:14px}
.m-inp:focus{border-color:var(--acc)}
.m-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pay-opts{display:flex;flex-direction:column;gap:9px;margin:12px 0 18px}
.pay-opt{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1.5px solid var(--bdr);border-radius:var(--r);cursor:pointer;transition:all .2s;font-size:.9rem}
.pay-opt:hover,.pay-opt.sel{border-color:var(--acc);background:var(--acc-ll)}
.pay-opt input{accent-color:var(--acc)}
.pay-detail{background:var(--bg2);border-left:3px solid var(--acc);padding:13px 14px;border-radius:0 var(--r) var(--r) 0;font-size:.87rem;color:var(--ink2);line-height:1.7;margin-bottom:18px;display:none;white-space:pre-wrap}
.pay-detail.show{display:block}
.bk-ok{text-align:center;padding:20px 0;display:none}
.bk-ok .bk-icon{font-size:2.8rem;margin-bottom:14px}
.bk-ok h3{font-family:var(--serif);font-size:1.55rem;font-weight:300;margin-bottom:7px}
.bk-ok p{color:var(--ink2);font-size:.89rem}

/* ── ANIMATIONS ───────────────────────────────────────── */
#scroll-bar{position:fixed;top:0;left:0;width:0%;height:2px;background:linear-gradient(90deg,var(--acc),var(--acc-l));z-index:9999;pointer-events:none;transition:width .1s linear}

.h-anim{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease2),transform .9s var(--ease2)}
.h-anim.in{opacity:1;transform:none}

.book-visual{opacity:0;transform:translateY(36px) scale(.94);transition:opacity 1.2s var(--ease2) .3s,transform 1.2s var(--ease2) .3s}
.book-visual.in{opacity:1;transform:none}

@keyframes bookFloat{0%{transform:perspective(900px) rotateY(-12deg) translateY(0)}50%{transform:perspective(900px) rotateY(-10deg) translateY(-12px)}100%{transform:perspective(900px) rotateY(-12deg) translateY(0)}}
.book-3d.floating{animation:bookFloat 5s ease-in-out infinite}

@keyframes g1{0%{transform:translate(0,0) scale(1);opacity:.6}30%{transform:translate(6%,4%) scale(1.15);opacity:.85}60%{transform:translate(-3%,-2%) scale(1.05);opacity:.7}100%{transform:translate(0,0) scale(1);opacity:.6}}
@keyframes g2{0%{transform:translate(0,0) scale(1);opacity:.4}40%{transform:translate(-7%,3%) scale(1.2);opacity:.65}70%{transform:translate(4%,-4%) scale(.9);opacity:.45}100%{transform:translate(0,0) scale(1);opacity:.4}}
.hero-glow{animation:g1 22s ease-in-out infinite}
.hero-glow2{animation:g2 30s ease-in-out infinite}

.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s var(--ease2),transform .9s var(--ease2);will-change:transform,opacity}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.08s}.d2{transition-delay:.18s}.d3{transition-delay:.3s}.d4{transition-delay:.44s}

.stagger>*{opacity:0;transform:translateY(30px) scale(.97);transition:opacity .75s var(--ease2),transform .75s var(--ease2)}
.stagger.in>*:nth-child(1){opacity:1;transform:none;transition-delay:.04s}
.stagger.in>*:nth-child(2){opacity:1;transform:none;transition-delay:.11s}
.stagger.in>*:nth-child(3){opacity:1;transform:none;transition-delay:.18s}
.stagger.in>*:nth-child(4){opacity:1;transform:none;transition-delay:.25s}
.stagger.in>*:nth-child(5){opacity:1;transform:none;transition-delay:.32s}
.stagger.in>*:nth-child(6){opacity:1;transform:none;transition-delay:.39s}
.stagger.in>*:nth-child(7){opacity:1;transform:none;transition-delay:.46s}
.stagger.in>*:nth-child(8){opacity:1;transform:none;transition-delay:.53s}

.feat-card{opacity:0;transform:translateY(32px);transition:opacity .8s var(--ease2),transform .8s var(--ease2),background .3s}
.feat-card.in{opacity:1;transform:none}

.divider{width:0!important;transition:width 1.1s cubic-bezier(.77,0,.18,1)!important}
.divider.in{width:38px!important}

/* ── CURSOR ───────────────────────────────────────────── */
#cursor{position:fixed;width:8px;height:8px;background:var(--acc);border-radius:50%;pointer-events:none;z-index:9999;left:-100px;top:-100px;transform:translate(-50%,-50%);transition:width .3s,height .3s,opacity .3s;mix-blend-mode:multiply;opacity:0}
#cursor-ring{position:fixed;width:36px;height:36px;border:1.5px solid var(--acc);border-radius:50%;pointer-events:none;z-index:9998;left:-100px;top:-100px;transform:translate(-50%,-50%);opacity:0;transition:width .3s,height .3s,opacity .3s,border-color .3s}
body:hover #cursor,body:hover #cursor-ring{opacity:.7}

/* ── RESPONSIVE ───────────────────────────────────────── */
@media(max-width:960px){
  #hero{grid-template-columns:1fr;gap:44px;text-align:center;padding-top:calc(var(--nav-h) + 48px)}
  #hero.has-banner{padding-top:48px}
  .hero-sub,.hero-btns,.hero-chips{margin-left:auto;margin-right:auto}
  .hero-btns{justify-content:center}.hero-chips{justify-content:center}.book-visual{order:-1}
  .about-grid{gap:44px}.about-grid.has-photo{grid-template-columns:1fr;gap:44px}.img-wrap{max-width:340px;margin:0 auto}
  .feat-grid{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr}
  .lb-inner{grid-template-columns:1fr}.lb-right{align-items:flex-start}
}
/* iPad / mid-size: compress nav links before they collide */
@media(max-width:860px) and (min-width:641px){
  .nav-links{gap:18px}
  .nav-links a{font-size:.68rem;letter-spacing:.08em}
  .nav-cta{padding:8px 14px}
  #nav{padding:0 20px}
}
@media(max-width:780px) and (min-width:641px){
  /* Hide secondary nav links on small tablets, keep CTA */
  .nav-links .nav-hide-tablet{display:none}
}
@media(max-width:640px){
  .nav-links{display:none}.hamburger{display:flex}
  .feat-grid{grid-template-columns:1fr}
  .fg2,.m-row{grid-template-columns:1fr}
  .modal{padding:26px}
  .ts-card{padding:0 8px}
}
