:root { --ink:#eee6d5; --muted:#aaa28f; --gold:#caa96b; --dark:#070a09; --panel:#0c1210; --line:rgba(202,169,107,.24); }
* { box-sizing:border-box; }
html.magic-cursor-enabled,html.magic-cursor-enabled *,html.magic-cursor-enabled *::before,html.magic-cursor-enabled *::after { cursor:none !important; }
body { margin:0; color:var(--ink); background:radial-gradient(circle at 72% 10%,#18251e 0,#090d0b 36%,#060908 75%); font-family:"Noto Serif SC",serif; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.magic-wand-cursor { position:fixed; left:0; top:0; z-index:2147483647; width:84px; height:84px; pointer-events:none; opacity:0; transform:translate(-22px,-16px); transition:opacity .16s ease,filter .18s ease; will-change:transform,left,top; }
.magic-wand-cursor.is-visible { opacity:1; }
.magic-wand-cursor .wand-glow { position:absolute; left:4px; top:8px; width:28px; height:28px; border-radius:50%; background:radial-gradient(circle,rgba(255,233,151,.78),rgba(209,157,67,.26) 42%,transparent 72%); opacity:0; transform:scale(.72); transition:opacity .18s ease,transform .18s ease; filter:blur(.2px); }
.magic-wand-cursor .wand-shaft { position:absolute; left:12px; top:57px; width:66px; height:7px; border-radius:999px; background:linear-gradient(90deg,transparent 0 18px,rgba(83,39,13,.32) 18px 20px,transparent 20px 42px,rgba(255,220,151,.28) 42px 44px,transparent 44px),linear-gradient(180deg,#e8b872 0%,#b97634 45%,#6a3212 100%); box-shadow:inset 0 1px 0 #ffe2aa77,inset 0 -1px 0 #170704cc,0 2px 4px #0007; clip-path:polygon(0 0,9% 13%,100% 40%,100% 60%,9% 87%,0 100%); transform:rotate(-133deg); transform-origin:top center; }
.magic-wand-cursor.is-hovering { filter:drop-shadow(0 0 4px rgba(255,214,117,.38)); }
.magic-wand-cursor.is-hovering .wand-glow { opacity:1; transform:scale(1); }
.magic-spark { position:fixed; z-index:2147483646; width:var(--spark-size,5px); height:var(--spark-size,5px); pointer-events:none; border-radius:50%; background:radial-gradient(circle,#fff9c9 0 18%,#f2cf73 36%,transparent 72%); box-shadow:0 0 8px rgba(238,196,88,.55); animation:magic-spark-fade .72s ease-out forwards; transform:translate(-50%,-50%); }
@keyframes magic-spark-fade { from { opacity:.72; transform:translate(-50%,-50%) scale(1); } to { opacity:0; transform:translate(calc(-50% + var(--spark-x,0px)),calc(-50% + var(--spark-y,0px))) scale(.2); } }
.studio-nav { height:72px; padding:0 5vw; display:grid; grid-template-columns:minmax(170px,240px) minmax(0,1fr) minmax(180px,220px); align-items:center; border-bottom:1px solid var(--line); background:#080c0bea; backdrop-filter:blur(14px); }
.studio-brand { font-weight:900; letter-spacing:.12em; }
.studio-brand span { display:inline-grid; place-items:center; width:30px; height:30px; margin-right:8px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font-family:"Playfair Display"; }
.studio-nav nav { display:flex; justify-content:center; gap:28px; color:var(--muted); font-size:12px; }
.studio-nav nav a:hover,.studio-nav nav .active { color:var(--gold); }
.studio-login { justify-self:end; height:39px; display:inline-flex; align-items:center; border:1px solid var(--gold); padding:0 18px; color:var(--gold); background:transparent; font-size:13px; cursor:pointer; letter-spacing:0; }
.studio-login[hidden] { display:none !important; }
.auth-chip { position:fixed; right:22px; top:78px; z-index:80; display:flex; align-items:center; gap:10px; padding:9px 13px; color:#f7dfae; background:rgba(12,8,5,.78); border:1px solid rgba(217,181,109,.42); backdrop-filter:blur(14px); font-size:12px; letter-spacing:.08em; }
.auth-chip a,.auth-chip button { color:var(--gold); background:transparent; border:0; cursor:pointer; text-decoration:none; }
.auth-chip.nav-auth-chip { position:static; justify-self:end; height:39px; padding:0 14px; background:transparent; backdrop-filter:none; white-space:nowrap; }
main { padding:70px 5vw 100px; }
.package-hero { max-width:1400px; margin:auto; display:grid; grid-template-columns:1fr minmax(280px,380px); gap:8vw; align-items:end; }
.eyebrow { margin:0 0 14px; color:var(--gold); font:13px "Playfair Display"; letter-spacing:.22em; }
h1 { margin:0; font-size:clamp(54px,7vw,104px); line-height:1.03; }
em { color:var(--gold); font-style:normal; }
.hero-ledger { padding:26px; border:1px solid var(--line); background:linear-gradient(145deg,#121b16cc,#070b09cc); box-shadow:0 26px 80px #0007; }
.hero-ledger span,.hero-ledger small { display:block; color:var(--muted); font-size:12px; letter-spacing:.08em; }
.hero-ledger b { display:block; margin:11px 0; color:#f8ead0; font-size:34px; }
.price-matrix { max-width:1400px; margin:48px auto 0; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); background:#090e0c; box-shadow:0 35px 100px #0008; }
.price-card { min-height:480px; padding:30px; display:flex; flex-direction:column; border-right:1px solid var(--line); background:linear-gradient(180deg,#0f1612,#080c0a); }
.price-card:last-child { border-right:0; }
.price-card.featured { background:radial-gradient(circle at 50% 0,#2a2618 0,#101611 45%,#080c0a 100%); }
.card-top { min-height:84px; border-bottom:1px solid var(--line); }
.card-top span { display:block; color:var(--gold); font:12px "Playfair Display"; letter-spacing:.18em; }
.card-top b { display:block; margin-top:12px; font-size:28px; }
.price-card p { min-height:72px; margin:22px 0; color:var(--muted); font-size:13px; line-height:1.9; }
.price-row { display:grid; grid-template-columns:72px 1fr auto; align-items:baseline; gap:12px; padding:16px 0; border-top:1px solid rgba(202,169,107,.16); }
.price-row span { color:var(--muted); font-size:12px; }
.price-row strong { color:#f8ead0; font-size:24px; }
.price-row small { color:var(--muted); }
.price-row.member strong,.price-row.member small { color:var(--gold); }
.package-action,.member-price button,.closing-panel a { margin-top:auto; display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:0 18px; color:#151009; background:var(--gold); border:1px solid var(--gold); font-weight:900; cursor:pointer; transition:.2s; }
.package-action:hover,.member-price button:hover,.closing-panel a:hover { background:#e2c483; transform:translateY(-2px); }
.member-pass { max-width:1400px; margin:28px auto 0; display:grid; grid-template-columns:1fr minmax(280px,360px); gap:26px; padding:34px; border:1px solid var(--line); background:linear-gradient(135deg,#111a15,#090e0c); }
.member-pass h2 { margin:0 0 13px; font-size:38px; }
.member-pass p { max-width:680px; color:var(--muted); font-size:13px; line-height:2; }
.member-price { display:grid; align-content:center; gap:10px; padding:22px; border:1px solid rgba(202,169,107,.32); background:#0a100d; }
.member-price span,.member-price small { color:var(--muted); font-size:12px; }
.member-price b { color:var(--gold); font-size:30px; }
.details-grid { max-width:1400px; margin:28px auto 0; display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); }
.details-grid article { min-height:220px; padding:25px; border-right:1px solid var(--line); background:#090e0c; }
.details-grid article:last-child { border-right:0; }
.details-grid span { color:var(--gold); font:22px "Playfair Display"; }
.details-grid b { display:block; margin:18px 0 12px; font-size:18px; }
.details-grid p { margin:0; color:var(--muted); font-size:12px; line-height:1.9; }
.closing-panel { max-width:1400px; margin:42px auto 0; padding:30px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-left:1px solid var(--gold); background:#0a0f0c; }
.closing-panel p { margin:0; font-size:24px; }
.auth-lock { overflow:hidden; }
.auth-modal[hidden] { display:none; }
.auth-modal { position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:24px; }
.auth-backdrop { position:absolute; inset:0; background:rgba(3,2,1,.72); backdrop-filter:blur(12px); }
.auth-dialog { position:relative; width:min(520px,94vw); padding:34px; color:#f8ead0; background:linear-gradient(145deg,#21160e,#0b0705); border:1px solid rgba(217,181,109,.45); box-shadow:0 35px 90px #000d; }
.auth-close { position:absolute; right:15px; top:12px; color:var(--gold); background:transparent; border:0; font-size:28px; cursor:pointer; }
.auth-kicker { margin:0 0 10px; color:var(--gold); font-size:12px; letter-spacing:.22em; }
.auth-dialog h2 { margin:0; font-size:32px; }
.auth-reason { color:var(--muted); line-height:1.8; }
.auth-tabs { display:flex; gap:10px; margin:24px 0 16px; }
.auth-tabs button,.auth-primary,#authSendCode { padding:11px 15px; color:var(--gold); background:transparent; border:1px solid var(--gold); cursor:pointer; }
.auth-tabs button.active,.auth-primary,#authSendCode { color:#120c07; background:var(--gold); }
.auth-panel { display:none; }
.auth-panel.active { display:block; }
.auth-panel label { display:block; margin:12px 0; color:var(--muted); }
.auth-panel input { width:100%; margin-top:7px; padding:13px; color:#fff4d9; background:#080503; border:1px solid rgba(217,181,109,.32); outline:none; }
.auth-code-row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; }
.auth-primary { width:100%; margin-top:10px; font-weight:800; }
.auth-primary.ghost { background:transparent; color:var(--gold); }
.auth-link-button { display:block; width:fit-content; margin:14px auto 0; padding:0; color:var(--gold); background:transparent; border:0; cursor:pointer; font:inherit; text-align:center; text-decoration:underline; text-underline-offset:4px; }
.auth-status,#authHint,.auth-panel p { color:var(--muted); font-size:12px; line-height:1.8; }
.auth-qr { width:210px; padding:14px; color:#120c07; background:#f8ead0; text-align:center; }
.auth-qr i { display:block; width:182px; height:182px; margin-bottom:9px; background:linear-gradient(90deg,#111 10px,transparent 10px) 0 0/26px 26px,linear-gradient(#111 10px,transparent 10px) 0 0/26px 26px,radial-gradient(circle,#111 0 8px,transparent 9px) 13px 13px/52px 52px,#f8ead0; }
@media(max-width:1000px){.studio-nav nav{display:none}.package-hero,.price-matrix,.member-pass,.details-grid{grid-template-columns:1fr}.price-card,.details-grid article{border-right:0;border-bottom:1px solid var(--line)}.price-card:last-child,.details-grid article:last-child{border-bottom:0}.closing-panel{display:block}.closing-panel a{margin-top:18px;width:100%}main{padding-inline:18px}}
