/* ASTRARIUM — shared design system. Generated; do not hand-edit. */

:root{
  --deep-field:#04060E; --deep-field-2:#070A16; --umbral:#111736;
  --starlight:#EAEEF8; --starlight-dim:#98A2BD; --starlight-faint:#586186;
  --astral-gold:#D8B15C; --astral-gold-hi:#F2D796; --astral-gold-soft:rgba(216,177,92,.16);
  --comet-cyan:#8FD8E8; --ember:#E4794B; --amethyst:#8C6BE0;
  --glass:rgba(15,21,48,.42); --glass-edge:rgba(234,238,248,.09);
  --ease-spring:cubic-bezier(.2,1.15,.3,1); --ease-lux:cubic-bezier(.16,1,.3,1); --ease-glide:cubic-bezier(.5,0,.1,1);
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-fraunces:'Fraunces',Georgia,serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --font-data:'Space Mono',ui-monospace,monospace;
  --lume:0;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
body{background:var(--deep-field);color:var(--starlight);font-family:var(--font-body);font-weight:300;line-height:1.65;overflow-x:hidden;letter-spacing:.005em;font-variant-numeric:tabular-nums}
::selection{background:var(--astral-gold);color:var(--deep-field)}
:focus-visible{outline:2px solid var(--astral-gold);outline-offset:4px}
a{color:inherit}

/* ---- sky layers ---- */
#sky-fallback{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 80% at 50% -10%,rgba(28,36,84,.5),transparent 55%),linear-gradient(180deg,#0A0E20,#04060E 62%)}
#gl{position:fixed;inset:0;z-index:0;display:block}
#comet{position:fixed;inset:0;z-index:2;pointer-events:none}
#tint{position:fixed;inset:0;z-index:3;pointer-events:none;background:linear-gradient(180deg,rgba(4,6,14,.28) 0%,rgba(4,6,14,0) 24%,rgba(4,6,14,0) 60%,rgba(4,6,14,.5) 100%)}
#vignette{position:fixed;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 260px 70px rgba(4,6,14,.92),inset 0 0 60px rgba(4,6,14,.5)}
#grain{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
body::after{content:"";position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(120% 80% at 50% 8%,rgba(200,214,255,.12),transparent 55%);opacity:var(--lume);transition:opacity 2s var(--ease-lux)}

/* ---- meridian ---- */
#meridian{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:45;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}
#meridian .rail{width:1px;height:150px;background:linear-gradient(var(--starlight-faint),transparent);position:relative;opacity:.5}
#meridian .rail i{position:absolute;left:50%;top:0;width:5px;height:5px;border-radius:50%;background:var(--astral-gold);transform:translate(-50%,-50%);box-shadow:0 0 10px var(--astral-gold);transition:top .1s linear}
#meridian .pct{font-family:var(--font-data);font-size:9px;letter-spacing:.16em;color:var(--starlight-dim)}
@media(max-width:900px){#meridian{display:none}}

/* ---- preloader ---- */
#preloader{position:fixed;inset:0;z-index:100;background:var(--deep-field);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;cursor:pointer;transition:opacity .9s var(--ease-lux),visibility .9s}
#preloader.done{opacity:0;visibility:hidden}
.pre-mark{width:88px;height:88px}.pre-mark svg{width:100%;height:100%;overflow:visible}
.pre-mark .ring{fill:none;stroke:var(--astral-gold);stroke-width:.7;opacity:.5;transform-origin:center;transform-box:fill-box;animation:spin 9s linear infinite}
.pre-mark .ring2{animation-direction:reverse;animation-duration:15s;opacity:.26;stroke-dasharray:2 4}
.pre-mark .ring3{opacity:.16;animation-duration:24s}
.pre-mark .tick{stroke:var(--astral-gold);stroke-width:.6;opacity:.35}
.pre-mark .core{fill:var(--starlight)}.pre-mark .core.g{fill:var(--astral-gold);filter:drop-shadow(0 0 5px rgba(216,177,92,.9))}
@keyframes spin{to{transform:rotate(360deg)}}
.pre-word{font-family:var(--font-data);font-size:11px;letter-spacing:.55em;text-indent:.55em;color:var(--starlight-dim);text-transform:uppercase}
.pre-bar{width:170px;height:1px;background:rgba(234,238,248,.12);overflow:hidden;border-radius:2px;position:relative}
.pre-bar i{position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(--astral-gold),var(--astral-gold-hi));animation:fill 2s var(--ease-lux) forwards;box-shadow:0 0 12px rgba(216,177,92,.6)}
@keyframes fill{to{width:100%}}
.pre-skip{font-family:var(--font-data);font-size:10px;letter-spacing:.2em;color:rgba(152,162,189,.45)}

main,header.site,footer.site{position:relative;z-index:10}
.wrap{width:min(1180px,91vw);margin:0 auto}

/* ---- header ---- */
header.site{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .6s,backdrop-filter .6s,border-color .6s;border-bottom:1px solid transparent}
header.site.scrolled{background:rgba(4,6,14,.58);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-bottom-color:var(--glass-edge)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:22px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--starlight)}
.brand svg{width:30px;height:30px;transition:transform .6s var(--ease-spring)}.brand:hover svg{transform:rotate(28deg)}
.brand b{font-family:var(--font-data);font-weight:700;font-size:13px;letter-spacing:.36em}
nav.primary{display:flex;gap:32px}
nav.primary a{color:var(--starlight-dim);text-decoration:none;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--font-data);position:relative;padding:6px 0;transition:color .5s,letter-spacing .5s var(--ease-spring)}
nav.primary a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:linear-gradient(90deg,var(--astral-gold),transparent);transition:width .5s var(--ease-lux)}
nav.primary a:hover{color:var(--starlight);letter-spacing:.22em}nav.primary a:hover::after{width:100%}
.nav-actions{display:flex;align-items:center;gap:16px}
.obs-clock{font-family:var(--font-data);font-size:10px;letter-spacing:.14em;color:var(--starlight-faint);white-space:nowrap}
.obs-clock b{color:var(--comet-cyan);font-weight:400}
#audio-toggle{display:inline-flex;align-items:center;gap:9px;background:var(--glass);border:1px solid var(--glass-edge);color:var(--starlight-dim);font-family:var(--font-data);font-size:10.5px;letter-spacing:.16em;padding:9px 16px;border-radius:99px;cursor:pointer;backdrop-filter:blur(10px);transition:color .5s,border-color .5s,transform .5s var(--ease-spring),box-shadow .5s}
#audio-toggle:hover{color:var(--starlight);border-color:rgba(216,177,92,.45);transform:translateY(-1px)}
#audio-toggle.on{color:var(--astral-gold);border-color:rgba(216,177,92,.55);box-shadow:0 0 24px rgba(216,177,92,.2)}
#audio-toggle .eq{display:inline-flex;gap:2px;align-items:flex-end;height:11px}
#audio-toggle .eq b{width:2px;height:4px;background:currentColor;border-radius:1px;display:block}
#audio-toggle.on .eq b{animation:eq .9s ease-in-out infinite}
#audio-toggle.on .eq b:nth-child(2){animation-delay:.15s}#audio-toggle.on .eq b:nth-child(3){animation-delay:.3s}
@keyframes eq{0%,100%{height:4px}50%{height:11px}}
@media(max-width:980px){.obs-clock{display:none}}@media(max-width:860px){nav.primary{display:none}}

/* ---- HERO / ARMILLARY ---- */
.hero{min-height:100vh;position:relative;display:flex;flex-direction:column;justify-content:center;padding:120px 0 90px}
.hero::before{content:"";position:absolute;inset:-120px -40px -40px -40px;z-index:-1;pointer-events:none;background:radial-gradient(120% 100% at 20% 55%,rgba(4,6,14,.72),rgba(4,6,14,.28) 42%,transparent 68%)}
#armillary-layer{position:absolute;inset:0;z-index:-1;pointer-events:none}
#arm-label{position:fixed;z-index:46;transform:translate(-50%,-150%);font-family:var(--font-data);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--astral-gold);white-space:nowrap;opacity:0;transition:opacity .3s;text-shadow:0 0 16px rgba(216,177,92,.85);pointer-events:none;background:rgba(4,6,14,.5);padding:5px 12px;border-radius:99px;border:1px solid rgba(216,177,92,.3);backdrop-filter:blur(6px)}
.eyebrow{font-family:var(--font-data);font-size:11px;letter-spacing:.3em;color:var(--comet-cyan);text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:32px}
.eyebrow::before{content:"";width:40px;height:1px;background:currentColor;opacity:.5}
.plate{color:var(--astral-gold);opacity:.85}
h1{font-family:var(--font-display);font-weight:500;font-size:clamp(54px,8.6vw,128px);line-height:.96;letter-spacing:-.01em;max-width:13ch}
h1 .k{display:inline-block;will-change:transform,opacity}
h1 em{font-family:var(--font-fraunces);font-style:italic;font-weight:400;font-optical-sizing:auto;color:var(--astral-gold);text-shadow:0 0 44px rgba(216,177,92,.34)}
.hero-sub{max-width:56ch;margin-top:30px;color:var(--starlight-dim);font-size:17.5px}
.hero-sub strong{color:var(--starlight);font-weight:500}
.hero-ctas{display:flex;gap:18px;margin-top:44px;flex-wrap:wrap}
.hero-hint{margin-top:30px;font-family:var(--font-data);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--starlight-faint);display:flex;align-items:center;gap:10px}
.hero-hint i{display:inline-block;width:20px;height:20px;border:1px solid var(--starlight-faint);border-radius:50%;position:relative}
.hero-hint i::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid var(--astral-gold);opacity:.7}
.scroll-cue{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:11px;color:var(--starlight-dim);font-family:var(--font-data);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase}
.scroll-cue i{display:block;width:1px;height:46px;background:linear-gradient(var(--astral-gold),transparent);animation:cue 2.6s var(--ease-lux) infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}42%{transform:scaleY(1);transform-origin:top}58%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---- buttons ---- */
.btn{position:relative;display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--font-data);font-size:12px;letter-spacing:.18em;text-transform:uppercase;padding:18px 34px;border-radius:99px;cursor:pointer;border:0;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease-spring),box-shadow .5s;will-change:transform}
.btn-gold{background:linear-gradient(140deg,var(--astral-gold-hi),#C79A3E);color:#140F02;font-weight:700;box-shadow:0 16px 40px -14px rgba(216,177,92,.55),inset 0 1px 0 rgba(255,255,255,.55)}
.btn-gold::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 62%);transform:translateX(-120%);transition:transform .8s var(--ease-glide)}
.btn-gold:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 26px 56px -14px rgba(216,177,92,.7),inset 0 1px 0 rgba(255,255,255,.65)}.btn-gold:hover::before{transform:translateX(120%)}
.btn-ghost{background:var(--glass);border:1px solid var(--glass-edge);color:var(--starlight);backdrop-filter:blur(12px)}
.btn-ghost:hover{transform:translateY(-3px);border-color:rgba(216,177,92,.4)}

/* ---- sections ---- */
section{padding:130px 0;position:relative}
.sec-head{margin-bottom:64px;max-width:660px}.sec-head .eyebrow{margin-bottom:20px}
h2{font-family:var(--font-display);font-weight:500;font-size:clamp(36px,4.8vw,62px);line-height:1.05;letter-spacing:-.01em}
h2 em{font-family:var(--font-fraunces);font-style:italic;font-weight:400;color:var(--astral-gold);text-shadow:0 0 34px rgba(216,177,92,.28)}
.sec-head p{margin-top:20px;color:var(--starlight-dim);font-size:16px}.sec-head p strong{color:var(--starlight);font-weight:500}
.reveal{opacity:0;transform:translateY(38px);filter:blur(7px);transition:opacity 1.1s var(--ease-lux),transform 1.1s var(--ease-lux),filter 1.1s var(--ease-lux);transition-delay:var(--d,0s)}
.reveal.in{opacity:1;transform:none;filter:blur(0)}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;filter:none}}

/* ---- the twelve ---- */
.twelve{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:60px;align-items:stretch}
.sign-list{display:flex;flex-direction:column;border-top:1px solid var(--glass-edge)}
.sign-list a{display:flex;align-items:baseline;gap:18px;padding:16px 10px;text-decoration:none;border-bottom:1px solid var(--glass-edge);color:var(--starlight-dim);font-family:var(--font-display);font-size:clamp(21px,2.3vw,29px);font-weight:500;position:relative;transition:color .5s,letter-spacing .55s var(--ease-spring),padding-left .55s var(--ease-spring),opacity .45s}
.sign-list a::before{content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--astral-gold);transform:translateY(-50%);transition:width .5s var(--ease-lux)}
.sign-list a .glyph{font-family:var(--font-body);font-size:.78em;color:var(--astral-gold);opacity:.7;width:26px;transition:opacity .4s,text-shadow .4s}
.sign-list a .dates{margin-left:auto;font-family:var(--font-data);font-size:10px;letter-spacing:.12em;opacity:.5}
.sign-list a .open{margin-left:14px;font-family:var(--font-data);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--comet-cyan);opacity:0;transition:opacity .4s}
.sign-list:hover a{opacity:.32}
.sign-list a:hover,.sign-list a.active{opacity:1;color:var(--starlight);letter-spacing:.055em;padding-left:24px}
.sign-list a:hover::before,.sign-list a.active::before{width:14px}
.sign-list a:hover .glyph,.sign-list a.active .glyph{opacity:1;text-shadow:0 0 12px rgba(216,177,92,.7)}
.sign-list a.live:hover .open{opacity:1}
.sky-panel{background:linear-gradient(155deg,var(--glass),rgba(4,6,14,.5));border:1px solid var(--glass-edge);border-radius:24px;backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);padding:42px;display:flex;flex-direction:column;position:sticky;top:112px;overflow:hidden;min-height:500px;box-shadow:0 40px 90px -34px rgba(0,0,0,.75),inset 0 1px 0 rgba(234,238,248,.07)}
.sky-panel::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 72% 16%,rgba(216,177,92,.09),transparent 55%)}
.grid-rings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:.5}
.grid-rings svg{width:118%;height:118%}
.grid-rings circle,.grid-rings line{fill:none;stroke:var(--starlight-faint);stroke-width:.4;opacity:.22}
.grid-rings .spin{transform-origin:center;transform-box:view-box;animation:spin 120s linear infinite}
.const-stage{flex:1;display:flex;align-items:center;justify-content:center;position:relative;z-index:1}
.const-stage svg{width:100%;max-width:452px;overflow:visible}
.const-stage .halo{fill:var(--astral-gold);opacity:0}.const-stage.drawn .halo{opacity:.14;transition:opacity 1.2s var(--ease-lux) .3s}
.const-stage .star{fill:var(--starlight);filter:drop-shadow(0 0 5px rgba(234,238,248,.9))}
.const-stage .star.major{fill:var(--astral-gold-hi);filter:drop-shadow(0 0 9px rgba(216,177,92,.95))}
.const-stage .star.twinkle{animation:startw 3.4s ease-in-out infinite}@keyframes startw{50%{opacity:.55}}
.const-stage line{stroke:var(--astral-gold);stroke-width:.7;opacity:.85;stroke-dasharray:220;stroke-dashoffset:220;transition:stroke-dashoffset 1.15s var(--ease-lux)}
.const-stage.drawn line{stroke-dashoffset:0}
.const-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:22px;position:relative;z-index:1}
.const-meta h3{font-family:var(--font-display);font-size:31px;font-weight:500}.const-meta h3 span{color:var(--astral-gold);margin-right:11px}
.const-meta p{color:var(--starlight-dim);font-size:14px;max-width:42ch;margin-top:7px}
.const-tag{font-family:var(--font-data);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--comet-cyan);border:1px solid rgba(143,216,232,.28);padding:7px 13px;border-radius:99px;white-space:nowrap;background:rgba(143,216,232,.05)}
@media(max-width:900px){.twelve{grid-template-columns:1fr}.sky-panel{position:static;min-height:440px}}

/* ---- tiles ---- */
.tonight-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px}
.tile{background:linear-gradient(158deg,var(--glass),rgba(4,6,14,.5));border:1px solid var(--glass-edge);border-radius:24px;padding:38px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;overflow:hidden;transition:transform .6s var(--ease-spring),border-color .5s,box-shadow .6s;box-shadow:0 32px 70px -32px rgba(0,0,0,.7),inset 0 1px 0 rgba(234,238,248,.06)}
.tile::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s;background:radial-gradient(circle at var(--mx,50%) var(--my,0%),rgba(216,177,92,.1),transparent 45%)}
.tile:hover{transform:translateY(-6px);border-color:rgba(216,177,92,.32);box-shadow:0 44px 90px -32px rgba(0,0,0,.8),inset 0 1px 0 rgba(234,238,248,.1)}.tile:hover::after{opacity:1}
.tile .label{font-family:var(--font-data);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--comet-cyan);margin-bottom:18px}
.moon-tile{display:flex;gap:38px;align-items:center;grid-row:span 2}
.moon-visual{flex:0 0 196px;filter:drop-shadow(0 0 40px rgba(200,214,255,.18))}
.moon-info h3{font-family:var(--font-display);font-size:36px;font-weight:500;line-height:1.12}
.moon-info .datum{font-family:var(--font-data);font-size:12px;color:var(--starlight-dim);margin-top:14px;display:flex;gap:10px;align-items:baseline}
.moon-info .datum b{color:var(--starlight);font-weight:400}
.moon-info .datum::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--astral-gold);opacity:.6;transform:translateY(-2px)}
.tile .big{font-family:var(--font-display);font-size:28px;font-weight:500;line-height:1.24}
.tile .note{color:var(--starlight-dim);font-size:13.5px;margin-top:12px}
.sample-flag{display:inline-block;font-family:var(--font-data);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(152,162,189,.6);border:1px dashed rgba(152,162,189,.3);padding:4px 9px;border-radius:6px;margin-top:16px}
@media(max-width:900px){.tonight-grid{grid-template-columns:1fr}.moon-tile{flex-direction:column;text-align:center}}

/* ---- cards ---- */
.streak-chip{display:inline-flex;align-items:center;gap:11px;background:var(--astral-gold-soft);border:1px solid rgba(216,177,92,.35);color:var(--astral-gold);border-radius:99px;padding:10px 19px;font-family:var(--font-data);font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:28px}
.streak-chip i{width:6px;height:6px;border-radius:50%;background:var(--astral-gold);box-shadow:0 0 12px var(--astral-gold);animation:pulse 2.8s ease-in-out infinite}@keyframes pulse{50%{opacity:.3;transform:scale(.8)}}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:20px}
.card{background:linear-gradient(158deg,var(--glass),rgba(4,6,14,.5));border:1px solid var(--glass-edge);border-radius:20px;padding:30px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);position:relative;transition:border-color .5s,box-shadow .6s;transform-style:preserve-3d;will-change:transform;cursor:pointer;box-shadow:0 22px 48px -26px rgba(0,0,0,.62),inset 0 1px 0 rgba(234,238,248,.05);text-decoration:none;display:block;color:inherit}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .6s;background:linear-gradient(140deg,rgba(242,215,150,.14),transparent 42%)}
.card:hover{border-color:rgba(var(--eglow,216 177 92),.42);box-shadow:0 40px 76px -28px rgba(0,0,0,.78),0 0 26px -4px rgba(var(--eglow,216 177 92),.28),0 0 0 1px rgba(var(--eglow,216 177 92),.16),inset 0 1px 0 rgba(234,238,248,.1)}.card:hover::before{opacity:1}
.card .glyph{font-size:27px;color:var(--astral-gold);display:block;margin-bottom:16px;filter:drop-shadow(0 0 12px rgba(216,177,92,.5));transition:transform .55s var(--ease-spring),filter .5s}
.card:hover .glyph{transform:translateZ(34px) scale(1.14);filter:drop-shadow(0 0 20px rgba(216,177,92,.8))}
.card h3{font-family:var(--font-display);font-size:25px;font-weight:500;display:flex;align-items:baseline;gap:12px}
.card h3 small{font-family:var(--font-data);font-size:9.5px;letter-spacing:.12em;color:var(--starlight-dim);font-weight:400}
.card p{color:var(--starlight-dim);font-size:14px;margin-top:12px;min-height:66px}
.card .more{font-family:var(--font-data);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--comet-cyan);opacity:0;transform:translateY(6px);transition:all .5s var(--ease-spring);display:inline-block;margin-top:10px}
.card:hover .more{opacity:1;transform:none}

/* ---- panels ---- */
.panel-cta{background:linear-gradient(160deg,rgba(17,23,54,.72),rgba(4,6,14,.55));border:1px solid var(--glass-edge);border-radius:28px;padding:66px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:relative;overflow:hidden;box-shadow:0 50px 100px -40px rgba(0,0,0,.82),inset 0 1px 0 rgba(234,238,248,.08)}
.panel-cta::before{content:"";position:absolute;width:560px;height:560px;right:-170px;top:-190px;border-radius:50%;background:radial-gradient(circle,rgba(216,177,92,.14),transparent 62%);pointer-events:none}
.panel-cta::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.4;background:radial-gradient(circle at 20% 120%,rgba(74,86,168,.3),transparent 50%)}
.panel-cta>*{position:relative;z-index:1}.panel-cta h2{max-width:16ch}
.chart-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:14px;margin-top:40px}
.chart-form label{display:flex;flex-direction:column;gap:9px;font-family:var(--font-data);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--starlight-dim)}
.field{background:rgba(4,6,14,.58);border:1px solid var(--glass-edge);border-radius:12px;color:var(--starlight);font-family:var(--font-body);font-size:14px;padding:15px 16px;transition:border-color .45s,box-shadow .45s;width:100%}
.field:focus{outline:none;border-color:rgba(216,177,92,.55);box-shadow:0 0 0 3px rgba(216,177,92,.12)}.field::placeholder{color:var(--starlight-faint)}
.chart-form .btn{align-self:end}
.letter-row{display:flex;gap:14px;margin-top:36px;max-width:520px}.letter-row .field{flex:1;border-radius:99px;padding:16px 26px}
@media(max-width:900px){.panel-cta{padding:46px 30px}.chart-form{grid-template-columns:1fr}.letter-row{flex-direction:column}}

/* ---- star hunt ---- */
.hunt{position:absolute;width:34px;height:34px;cursor:pointer;z-index:11;opacity:.5;transition:opacity .4s}
.hunt svg{width:100%;height:100%;overflow:visible}
.hunt .hs{fill:var(--starlight);opacity:.35;transition:opacity .5s}
.hunt:hover .hs{opacity:.9}
.hunt.found .hs{fill:var(--astral-gold);opacity:1;filter:drop-shadow(0 0 6px rgba(216,177,92,.9))}
.hunt.found{opacity:1;animation:foundpop .7s var(--ease-spring)}
@keyframes foundpop{40%{transform:scale(1.5)}}

/* ---- footer / toast ---- */
footer.site{border-top:1px solid var(--glass-edge);padding:66px 0 46px;background:rgba(4,6,14,.62);backdrop-filter:blur(14px)}
.foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:center}
.foot-grid nav{display:flex;gap:26px;flex-wrap:wrap}
.foot-grid nav a{color:var(--starlight-dim);text-decoration:none;font-family:var(--font-data);font-size:11px;letter-spacing:.16em;text-transform:uppercase;transition:color .4s}.foot-grid nav a:hover{color:var(--astral-gold)}
.trust-line{margin-top:36px;color:rgba(152,162,189,.62);font-size:12.5px;max-width:72ch}
.copyright{margin-top:14px;font-family:var(--font-data);font-size:10px;letter-spacing:.14em;color:rgba(152,162,189,.38)}
#toast{position:fixed;left:50%;bottom:36px;transform:translate(-50%,20px);background:var(--glass);border:1px solid rgba(216,177,92,.4);backdrop-filter:blur(18px);color:var(--starlight);border-radius:14px;padding:15px 26px;font-size:13.5px;z-index:80;opacity:0;pointer-events:none;max-width:min(90vw,440px);transition:opacity .5s var(--ease-lux),transform .5s var(--ease-spring);box-shadow:0 26px 56px -20px rgba(0,0,0,.75)}
#toast.show{opacity:1;transform:translate(-50%,0)}