: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:linear-gradient(135deg,#070a09 0,#0d1511 42%,#070907 100%); font-family:"Noto Serif SC",serif; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { display:block; width:100%; height:100%; object-fit:cover; }
.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 110px; }
.eyebrow { margin:0 0 14px; color:var(--gold); font:13px "Playfair Display"; letter-spacing:.22em; }
.shoot-hero { max-width:1420px; margin:0 auto; display:block; }
.hero-copy h1 { margin:0; font-size:clamp(58px,8vw,118px); line-height:1.02; letter-spacing:-.05em; }
em { color:var(--gold); font-style:normal; }
.hero-copy p:not(.eyebrow) { max-width:560px; margin:24px 0 0; color:#cbc2ae; font-size:16px; line-height:2; }
.hero-actions { display:flex; gap:14px; margin-top:34px; }
.primary-action,.ghost-action,.booking-spell a { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:0 22px; border:1px solid var(--gold); color:#121009; background:var(--gold); font-weight:900; transition:.2s; }
.ghost-action { color:var(--gold); background:transparent; }
.primary-action:hover,.ghost-action:hover,.booking-spell a:hover { transform:translateY(-2px); background:#e0c383; color:#121009; }
.featured-shot::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,#07100dec 0%,transparent 36%),linear-gradient(90deg,#070a0988,transparent 48%); }
.price-panel,.spell-gallery,.booking-spell { max-width:1420px; margin:34px auto 0; }
.section-title { display:flex; justify-content:space-between; align-items:end; gap:28px; margin-bottom:24px; }
.section-title h2 { margin:0; font-size:clamp(34px,4.8vw,70px); line-height:1.1; letter-spacing:-.05em; }
.section-title > p:not(.eyebrow) { max-width:420px; margin:0; color:var(--muted); line-height:1.9; }
.package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); background:#090e0c; box-shadow:0 32px 90px #0008; }
.package-card { min-height:310px; padding:28px; display:flex; flex-direction:column; border-right:1px solid var(--line); background:linear-gradient(180deg,#101914,#080c0a); }
.package-card:last-child { border-right:0; }
.package-card.featured { background:radial-gradient(circle at 50% 0,#2a2618 0,#101611 50%,#080c0a 100%); }
.package-card.courtyard { background:linear-gradient(145deg,#15130d,#08100d); }
.package-card span { color:var(--gold); font:24px "Playfair Display"; }
.package-card h3 { margin:34px 0 14px; font-size:25px; }
.package-card strong { color:#f8ead0; font-size:24px; line-height:1.35; }
.package-card p { margin:18px 0 0; color:var(--muted); font-size:13px; line-height:1.9; }
.rules-strip { display:grid; grid-template-columns:1fr 1fr auto; gap:18px; align-items:center; padding:22px 26px; border:1px solid var(--line); border-top:0; background:#0b110e; }
.rules-strip p { margin:0; color:#d6cdb8; font-size:13px; line-height:1.8; }
.rules-strip b { color:#ffdd9a; white-space:nowrap; }
.spell-gallery { padding-top:60px; }
.gallery-stage { position:relative; display:grid; grid-template-columns:58px minmax(0,1fr) 58px; gap:16px; align-items:center; }
.featured-shot { position:relative; margin:0; aspect-ratio:16/9; overflow:hidden; border:1px solid rgba(202,169,107,.38); background:radial-gradient(circle at 50% 40%,#172019 0,#0b100d 42%,#050806 100%); box-shadow:0 30px 100px #0009; }
.featured-shot img { object-fit:contain; filter:saturate(.85) sepia(.08); transition:opacity .18s ease,transform .38s ease,filter .25s ease; }
.featured-shot.is-landscape img { object-fit:cover; }
.featured-shot.is-switching img { opacity:.3; transform:scale(1.018); filter:saturate(.7) sepia(.16); }
.featured-shot figcaption { position:absolute; z-index:2; left:28px; right:28px; bottom:24px; display:flex; justify-content:space-between; gap:18px; color:#f5ecd9; }
.featured-shot figcaption span { color:var(--gold); font-family:"Playfair Display"; letter-spacing:.18em; }
.featured-shot figcaption b { font-size:18px; }
.gallery-arrow { width:58px; height:120px; color:var(--gold); border:1px solid var(--line); background:#0b110ecc; font-size:46px; cursor:pointer; transition:.2s; }
.gallery-arrow:hover { border-color:var(--gold); background:#151b13; transform:translateY(-2px); }
.sample-orbit { margin-top:18px; display:grid; grid-template-columns:repeat(10,minmax(74px,1fr)); gap:10px; }
.sample-thumb { position:relative; height:92px; padding:0; overflow:hidden; border:1px solid rgba(202,169,107,.22); background:#0a100d; cursor:pointer; transform:rotate(var(--tilt,0deg)); transition:transform .2s,border-color .2s,filter .2s; }
.sample-thumb:nth-child(3n) { --tilt:-1.2deg; }
.sample-thumb:nth-child(3n+1) { --tilt:.9deg; }
.sample-thumb:hover,.sample-thumb.active { z-index:2; border-color:var(--gold); filter:drop-shadow(0 0 12px rgba(202,169,107,.22)); transform:translateY(-4px) rotate(0deg); }
.sample-thumb img { object-fit:cover; filter:saturate(.72) sepia(.08); }
.booking-spell { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:34px; border:1px solid var(--line); background:linear-gradient(135deg,#111a15,#090e0c); }
.booking-spell h2 { margin:0 0 12px; font-size:38px; }
.booking-spell p:not(.eyebrow) { max-width:680px; margin:0; color:var(--muted); line-height:1.9; }
.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:1100px){.studio-nav nav{display:none}.shoot-hero,.package-grid,.rules-strip,.booking-spell{grid-template-columns:1fr}.package-card{border-right:0;border-bottom:1px solid var(--line)}.package-card:last-child{border-bottom:0}.gallery-stage{grid-template-columns:1fr}.gallery-arrow{display:none}.sample-orbit{grid-template-columns:repeat(5,1fr)}.booking-spell{display:block}.booking-spell a{margin-top:20px;width:100%}main{padding-inline:18px}.section-title{display:block}.section-title > p:not(.eyebrow){margin-top:14px}.studio-nav{grid-template-columns:1fr auto}.studio-login{display:none}}
@media(max-width:620px){.hero-copy h1{font-size:52px}.hero-actions{display:grid}.sample-orbit{grid-template-columns:repeat(3,1fr)}.sample-thumb{height:86px}.rules-strip b{white-space:normal}.featured-shot figcaption{display:block}.package-card strong{font-size:20px}}
