/* Kingdom of SOL: public site styles. Light on resources: only transform/opacity animate; one canvas (hero sparkles) that sleeps off-screen. */
:root{
  --night:#070a1c; --night2:#0d1233; --ink:#f6f1e4; --ink-soft:#dfe3f2; --muted:#c4c9e0;
  --gold:#ffd98a; --gold2:#f3c36b; --aqua:#7fe8ff; --rose:#ff9ad5; --mint:#9dffb0; --violet:#a98bff;
  --plate:rgba(9,10,32,.86); --plate2:rgba(16,14,48,.9); --line:rgba(255,255,255,.14);
  --rainbow:conic-gradient(from 0deg,#ff9ad5,#ffd27a,#9dffb0,#7fe8ff,#a98bff,#ff9ad5);
  --r:22px; --max:1180px; --gut:16px;
  --fs:clamp(16.5px,0.55vw + 14.5px,19px);
}
*{box-sizing:border-box} html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--ink);font:400 var(--fs)/1.65 "Crimson Pro",Georgia,serif;overflow-x:hidden;min-height:100vh}
img{max-width:100%;height:auto;display:block} a{color:var(--gold)} a:hover{color:#fff}
:focus-visible{outline:3px solid var(--aqua);outline-offset:3px;border-radius:8px}
.skip{position:absolute;left:-999px;top:8px;background:#000;color:#fff;padding:10px 14px;z-index:99}.skip:focus{left:8px}
h1,h2,h3{font-family:"Cinzel",Georgia,serif;font-weight:600;line-height:1.2;letter-spacing:.02em;margin:0 0 .5em}
h1{font-size:clamp(2.05rem,4.6vw,3.7rem)} h2{font-size:clamp(1.55rem,3vw,2.3rem);text-align:center} h3{font-size:1.25rem}
p{margin:0 0 1em} .lead{font-size:1.18em;color:var(--ink-soft)}
.wrap{width:min(var(--max),100% - 2*var(--gut));margin-inline:auto}
.title-glow{background:linear-gradient(100deg,#fff6d8 0%,var(--gold) 35%,#ffe6f4 55%,#d9f7ff 75%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:none;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55))}

/* ---------- living sky (fixed, behind everything) ---------- */
.sky{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;
  background:radial-gradient(120% 70% at 50% -10%,#1d2a6b 0%,transparent 60%),radial-gradient(80% 60% at 100% 100%,#1a3b4a 0%,transparent 60%),linear-gradient(180deg,#0b1030,#070a1c 60%,#05060f)}
.sky i{position:absolute;inset:-50% -10%;background-repeat:repeat;will-change:transform}
.sky .s1{background-image:radial-gradient(1.3px 1.3px at 20px 30px,#fff 50%,transparent 52%),radial-gradient(1px 1px at 140px 90px,#dfefff 50%,transparent 52%),radial-gradient(1.6px 1.6px at 230px 170px,#ffe9b3 50%,transparent 52%),radial-gradient(1px 1px at 90px 210px,#fff 50%,transparent 52%);background-size:260px 240px;animation:drift 160s linear infinite;opacity:.8}
.sky .s2{background-image:radial-gradient(1.1px 1.1px at 60px 50px,#cfe8ff 50%,transparent 52%),radial-gradient(1.8px 1.8px at 300px 120px,#fff 50%,transparent 52%),radial-gradient(1.2px 1.2px at 180px 260px,#ffd9f0 50%,transparent 52%);background-size:380px 320px;animation:drift2 240s linear infinite,tw 7s ease-in-out infinite;opacity:.65}
.sky .au{inset:0 -30% auto 0;width:130%;height:75%;will-change:transform;background:radial-gradient(closest-side,rgba(127,232,255,.17),transparent) 0 30%/50% 70% repeat-x,radial-gradient(closest-side,rgba(157,255,176,.12),transparent) 30% 10%/50% 60% repeat-x,radial-gradient(closest-side,rgba(169,139,255,.16),transparent) 60% 50%/50% 65% repeat-x;animation:aur 90s linear infinite;opacity:.9}
@keyframes drift{to{transform:translate3d(-260px,240px,0)}} @keyframes drift2{to{transform:translate3d(380px,320px,0)}}
@keyframes tw{50%{opacity:.3}} @keyframes aur{to{transform:translate3d(-50%,0,0)}}

/* ---------- header / nav ---------- */
.top{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,rgba(6,8,26,.94),rgba(6,8,26,.82));border-bottom:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:66px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand img{width:42px;height:42px} .brand b{display:block;font:600 1.3rem/1 "Cinzel",serif;letter-spacing:.06em}
.brand small{display:block;font:600 .95rem/1.2 "Crimson Pro",serif;color:var(--gold);letter-spacing:.08em;text-transform:uppercase;margin-top:3px}
.nav{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.nav a{position:relative;color:var(--ink);text-decoration:none;font-size:1rem;padding:10px 12px;border-radius:999px}
.nav a[aria-current=page]{color:var(--gold);background:rgba(255,217,138,.1)}
.menu{display:none}
@media (max-width:980px){
  .nav{display:none} .menu{display:block;position:relative}
  .menu summary{list-style:none;cursor:pointer;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,217,138,.5);color:var(--gold);font:600 1rem "Cinzel",serif;min-height:46px;display:flex;align-items:center}
  .menu summary::-webkit-details-marker{display:none}
  .menu .panel{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:min(300px,calc(100vw - 32px));background:#120f36;border:1px solid var(--line);border-radius:18px;padding:8px;display:grid;gap:2px;box-shadow:0 20px 50px rgba(0,0,0,.6)}
  .menu .panel a{color:var(--ink);text-decoration:none;padding:13px 14px;border-radius:12px;font-size:1.08rem}
  .menu .panel a[aria-current=page]{color:var(--gold);background:rgba(255,217,138,.1)}
}

/* ---------- hover glow (rainbow, transparent, gently moving while hovered) ---------- */
.glow{position:relative;isolation:isolate}
.glow::after{content:"";position:absolute;inset:-14px;border-radius:inherit;z-index:-1;pointer-events:none;opacity:0;transform:scale(.96);
  background:radial-gradient(60% 70% at 30% 40%,rgba(255,154,213,.35),transparent 70%),radial-gradient(60% 70% at 70% 60%,rgba(127,232,255,.35),transparent 70%),radial-gradient(50% 60% at 50% 20%,rgba(255,217,138,.3),transparent 70%);
  transition:opacity .35s,transform .35s}
.glow:hover::after,.glow:focus-visible::after{opacity:1;transform:scale(1);animation:wander 4s linear infinite}
@keyframes wander{0%{transform:scale(1) rotate(0)}100%{transform:scale(1) rotate(360deg)}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 26px;border-radius:999px;text-decoration:none;font:600 1.02rem/1.1 "Cinzel",serif;letter-spacing:.04em;
  color:#1b1230;background:linear-gradient(180deg,#ffe9b8,#f3c36b);border:1px solid #fff1cc;box-shadow:0 6px 22px rgba(243,195,107,.28)}
.btn:hover{color:#1b1230;transform:translateY(-1px)} .btn{transition:transform .2s}
.btn.ghost{color:var(--ink);background:rgba(10,12,36,.7);border:1px solid rgba(255,255,255,.35);box-shadow:none}
.btn.ghost:hover{color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* ---------- hero ---------- */
.hero{position:relative;min-height:min(88vh,820px);display:grid;place-items:center;overflow:hidden;isolation:isolate}
.hero picture,.hero .bg{position:absolute;inset:0;z-index:-3} .hero picture img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero picture{-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(7,10,28,.25) 0%,rgba(7,10,28,.15) 45%,rgba(7,10,28,.55) 85%,transparent 100%)}
.hero canvas{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.hero .mist{position:absolute;inset:auto -10% 6% -10%;height:40%;z-index:-1;pointer-events:none;overflow:hidden;opacity:.75}
.hero .mist i{position:absolute;inset:0;width:200%;background:radial-gradient(22% 45% at 12% 60%,rgba(200,240,255,.16),transparent 70%),radial-gradient(18% 40% at 34% 50%,rgba(255,220,250,.12),transparent 70%),radial-gradient(22% 45% at 62% 60%,rgba(200,240,255,.16),transparent 70%),radial-gradient(18% 40% at 84% 50%,rgba(255,220,250,.12),transparent 70%);animation:aur 70s linear infinite}
.hero .card{max-width:760px;margin:22vh var(--gut) 40px;text-align:center;padding:26px 24px 30px;border-radius:28px;background:rgba(7,9,30,.78);border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.hero .card p{font-size:1.15em;color:var(--ink-soft)}
.kicker{display:inline-block;font:600 .9rem/1 "Crimson Pro",serif;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.page-hero{min-height:min(56vh,520px)} .page-hero .card{margin-top:16vh}

/* ---------- sections + cards ---------- */
section{padding:64px 0} .sec-intro{max-width:760px;margin:0 auto 34px;text-align:center;color:var(--ink-soft)}
.divider{height:2px;width:min(360px,70%);margin:0 auto 18px;background:linear-gradient(90deg,transparent,var(--rose),var(--gold),var(--aqua),transparent);opacity:.8;border-radius:2px}
.grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.grid.four{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.ways{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important}
.split .framed{max-width:520px;margin-inline:auto;width:100%}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.card2{position:relative;border-radius:var(--r);background:var(--plate);overflow:hidden;display:flex;flex-direction:column;isolation:isolate;text-decoration:none;color:var(--ink)}
.card2::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:var(--rainbow);opacity:.45;transition:opacity .35s;pointer-events:none;z-index:2;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.card2:hover::before{opacity:1} .card2:hover{color:var(--ink)}
.card2 picture img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .6s ease} .card2:hover picture img{transform:scale(1.04)}
.card2 .body{padding:20px 22px 24px} .card2 h3{color:var(--gold)} .card2 p{color:var(--ink-soft);margin:0 0 .6em}
.card2 .tag{display:inline-block;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#1b1230;background:var(--mint);border-radius:999px;padding:3px 10px;margin-bottom:10px}
.card2 .tag.soon{background:#ffd98a}
.split{display:grid;gap:34px;align-items:center;grid-template-columns:1fr 1fr} .split.rev>:first-child{order:2}
@media (max-width:820px){.split{grid-template-columns:1fr}.split.rev>:first-child{order:0}}
.framed{border-radius:var(--r);overflow:hidden;position:relative;box-shadow:0 18px 50px rgba(0,0,0,.55)}
.framed::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:var(--rainbow);opacity:.7;z-index:2;pointer-events:none;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.plate{background:var(--plate);border:1px solid var(--line);border-radius:var(--r);padding:26px 26px 22px}
.plate h3{color:var(--gold)}
.ticks{list-style:none;padding:0;margin:0 0 1em} .ticks li{position:relative;padding-left:30px;margin:.45em 0}
.ticks li::before{content:"";position:absolute;left:4px;top:.55em;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,var(--aqua) 45%,var(--violet));box-shadow:0 0 10px rgba(127,232,255,.6)}
.band{position:relative;isolation:isolate;overflow:hidden} .band>picture{position:absolute;inset:0;z-index:-2} .band>picture img{width:100%;height:100%;object-fit:cover}
.band::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,10,28,.9),rgba(7,10,28,.55) 40%,rgba(7,10,28,.9))}
.cta{text-align:center;padding:44px 26px;border-radius:28px;background:var(--plate2);border:1px solid var(--line);max-width:860px;margin:0 auto}
.note{font-size:.95em;color:var(--muted)}
.price{font:600 1.6rem "Cinzel",serif;color:var(--gold)}
.ways{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.way{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:18px;padding:18px 18px 14px}
.way b{display:block;font:600 1.08rem "Cinzel",serif;color:var(--aqua);margin-bottom:6px}
.gallery{columns:3 280px;column-gap:18px} .gallery figure{break-inside:avoid;margin:0 0 18px}
.gallery figcaption{padding:10px 4px 0;color:var(--ink-soft);font-size:.98rem;text-align:center}
.gallery .framed img{width:100%}
form.news{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:12px}
form.news input{flex:1 1 240px;min-height:52px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.4);color:var(--ink);padding:0 20px;font:inherit}
form.news input::placeholder{color:#b9bfd8}
.legal{max-width:820px} .legal h2{text-align:left;font-size:1.45rem;margin-top:1.4em} .legal li{margin:.35em 0}

/* ---------- footer ---------- */
footer{position:relative;margin-top:40px;padding:70px 0 34px;isolation:isolate;overflow:hidden;border-top:1px solid var(--line)}
footer>picture{position:absolute;inset:0;z-index:-2} footer>picture img{width:100%;height:100%;object-fit:cover;object-position:50% 70%}
footer::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,10,28,.96),rgba(7,10,28,.72) 60%,rgba(7,10,28,.9))}
.foot{display:grid;gap:26px;grid-template-columns:2fr 1fr 1fr} .foot a{color:var(--ink);text-decoration:none;display:block;padding:5px 0} .foot a:hover{color:var(--gold)}
.foot h3{font-size:1.02rem;color:var(--gold)} .fine{margin-top:30px;text-align:center;color:var(--muted);font-size:.95rem}
@media (max-width:760px){.foot{grid-template-columns:1fr 1fr}.foot>:first-child{grid-column:1/-1}section{padding:48px 0}}

/* reduced motion: everything still, still beautiful */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
