/* 1. THE MOTHERSHIP: deep space, neon rainbow type, a planet whose bands are rainbow hair */
:root{--ink:#f6f0ff;--soft:#cfc3ee;--ground:#12072b;--panel:#1d0f40;--line:#4b2f8f;--lime:#ccfd21;--alien:#69d215;--lilac:#8d50df;--pink:#ff4fb4;--aqua:#3dd6ff;--sun:#ffe14d}
body{background:var(--ground);color:var(--ink);font-family:"Nunito",system-ui,sans-serif;font-size:17px}
.sky{position:fixed;inset:0;z-index:-1;background:
  radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 72%,#fff 50%,transparent 51%),
  radial-gradient(2px 2px at 46% 34%,#ffe14d 50%,transparent 51%),radial-gradient(1px 1px at 63% 12%,#fff 50%,transparent 51%),
  radial-gradient(1.5px 1.5px at 78% 58%,#3dd6ff 50%,transparent 51%),radial-gradient(1px 1px at 88% 86%,#fff 50%,transparent 51%),
  radial-gradient(1px 1px at 8% 92%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 54% 88%,#ff4fb4 50%,transparent 51%),
  radial-gradient(60% 50% at 85% 10%,rgba(155,107,255,.35),transparent 70%),radial-gradient(50% 40% at 5% 60%,rgba(255,79,180,.18),transparent 70%),
  var(--ground);background-size:420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,100% 100%,100% 100%,100% 100%}

.head{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;padding:14px clamp(16px,4vw,48px);background:color-mix(in oklab,var(--ground) 92%,#000);border-bottom:1px solid var(--line)}
.brand{font:400 1.35rem/1 "Rubik Bubbles",system-ui;text-decoration:none;color:var(--ink);margin-right:auto}
.brand__text span{color:var(--lime)}
.nav-links{display:flex;gap:22px}
.nav-links a{text-decoration:none;font-weight:700;color:var(--soft)}
.nav-links a:hover{color:var(--ink)}
.menu-btn{background:var(--panel);color:var(--ink);border:1.5px solid var(--line)}
@media (max-width:820px){
  .head{flex-wrap:wrap}
  .nav-links.open{order:5;flex-basis:100%;flex-direction:column;gap:4px;padding:8px 0}
  .nav-links.open a{padding:10px 4px;font-size:1.1rem}
}


.btn{display:inline-block;text-decoration:none;font:800 1rem/1 "Nunito",system-ui,sans-serif;padding:14px 22px;border-radius:999px;cursor:pointer;border:0}
.btn--main{background:linear-gradient(90deg,var(--lime),var(--alien));color:#12072b;box-shadow:0 0 0 0 rgba(204,253,33,.6),0 8px 26px rgba(204,253,33,.25)}
.btn--main:hover{transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--ink);border:2px solid var(--soft)}
.todo{display:inline-block;font:800 .72rem/1 "Nunito",sans-serif;background:var(--sun);color:#12072b;padding:4px 7px;border-radius:6px;vertical-align:middle}

main{overflow:hidden}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(40px,7vw,96px) clamp(16px,5vw,72px) clamp(48px,6vw,90px);max-width:1440px;margin:0 auto}
.kicker{font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--aqua);font-size:.86rem;margin-bottom:14px}
.title{font:400 clamp(3rem,7.6vw,6.8rem)/.92 "Rubik Bubbles",system-ui;letter-spacing:-.01em;background:linear-gradient(95deg,#ff4fb4,#ff9a3d 25%,#ffe14d 42%,#7dff4d 58%,#3dd6ff 76%,#b48cff);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:22px}
.title span{display:block}
.lede{font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--soft);max-width:36em}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 22px}
.status{display:inline-flex;align-items:center;gap:10px;font-weight:800;color:var(--lime);border:1.5px solid rgba(183,255,61,.45);border-radius:999px;padding:8px 14px;font-size:.95rem}
.status__dot{width:10px;height:10px;border-radius:50%;background:var(--lime);box-shadow:0 0 10px var(--lime)}

/* the planet: Jupiter's bands are rainbow hair strands */
.planet-wrap{position:relative;display:grid;place-items:center;padding:30px 0}
.planet{position:relative;width:min(100%,520px);aspect-ratio:1;isolation:isolate;--ring-w:136%;--ring-h:30%;--ring-tilt:-14deg;--ring-line:6px solid #ffe14d;--ring-glow:0 0 0 3px rgba(255,79,180,.5),0 0 22px rgba(255,225,77,.45)}
.planet__body{background:
  repeating-linear-gradient(172deg,rgba(255,255,255,.14) 0 2px,transparent 2px 7px),
  linear-gradient(175deg,#ff4fb4 0 12%,#ff7a45 12% 22%,#ffc14d 22% 33%,#ffe8a8 33% 37%,#7dff4d 37% 49%,#3dd6ff 49% 62%,#6e7dff 62% 74%,#9b6bff 74% 86%,#ff4fb4 86%);box-shadow:inset -40px -30px 80px rgba(18,7,43,.75),inset 20px 18px 50px rgba(255,255,255,.25),0 0 120px rgba(155,107,255,.45)}
.planet__shade{position:absolute;inset:0;border-radius:50%;background:radial-gradient(70% 70% at 32% 28%,transparent 40%,rgba(18,7,43,.55) 100%)}
.planet__label{position:absolute;right:2%;bottom:0;font:800 .8rem/1.3 "Nunito",sans-serif;color:var(--soft);text-align:right;letter-spacing:.04em;text-transform:uppercase}

/* sections as transmissions */
.tx{max-width:1240px;margin:0 auto;padding:clamp(56px,7vw,100px) clamp(16px,5vw,56px);position:relative}
.tx--wide{max-width:1440px}
.tx__no{font:800 .8rem/1 "Nunito",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);margin-bottom:12px}
.tx h2{font:400 clamp(2.2rem,4.6vw,3.8rem)/1 "Rubik Bubbles",system-ui;margin-bottom:30px}
.tx::before{content:"";position:absolute;left:clamp(16px,5vw,56px);right:clamp(16px,5vw,56px);top:0;height:1px;background:linear-gradient(90deg,transparent,var(--line) 15%,var(--line) 85%,transparent)}

.svc-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.svc{background:linear-gradient(160deg,rgba(155,107,255,.18),rgba(61,214,255,.06));border:1.5px solid var(--line);border-radius:26px;padding:24px 22px;display:grid;grid-template-rows:auto 1fr auto;gap:10px}
.svc h3{font:800 1.25rem/1.2 "Nunito",sans-serif;color:var(--ink)}
.svc p{color:var(--soft)}
.svc .svc__price{color:var(--lime);font-weight:800}
.note{margin-top:18px;color:var(--soft);font-size:.95rem}
@media (max-width:980px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.filters button{background:transparent;color:var(--soft);border:1.5px solid var(--line);border-radius:999px;padding:9px 15px;font-weight:800;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:#12072b;border-color:var(--ink)}
.grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tile{border-radius:24px}
.tile .ph{aspect-ratio:4/5;border-radius:24px;border:1.5px solid var(--line)}
.grid-empty{padding:30px 0;color:var(--soft)}
.beam-hint{margin-top:16px;color:var(--lime)}
@media (max-width:980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.orbit{list-style:none;counter-reset:s;padding:0;margin:0 0 40px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;position:relative}
.orbit::before{content:"";position:absolute;left:24px;right:24px;top:24px;height:2px;background:repeating-linear-gradient(90deg,var(--soft) 0 6px,transparent 6px 14px);opacity:.5}
.orbit li{counter-increment:s;position:relative;padding-top:68px}
.orbit li::before{content:counter(s);position:absolute;left:0;top:0;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font:400 1.4rem/1 "Rubik Bubbles",system-ui;color:#12072b;background:radial-gradient(circle at 35% 30%,#fff,var(--aqua) 45%,#6e7dff)}
.orbit li:nth-child(2)::before{background:radial-gradient(circle at 35% 30%,#fff,var(--pink) 45%,#9b6bff)}
.orbit li:nth-child(3)::before{background:radial-gradient(circle at 35% 30%,#fff,var(--sun) 45%,#ff7a45)}
.orbit li:nth-child(4)::before{background:radial-gradient(circle at 35% 30%,#fff,var(--lime) 45%,#3dd6ff)}
.orbit h3{font:800 1.15rem/1.2 "Nunito",sans-serif;margin-bottom:6px}
.orbit p{color:var(--soft)}
@media (max-width:900px){.orbit{grid-template-columns:repeat(2,minmax(0,1fr))}.orbit::before{display:none}}
@media (max-width:520px){.orbit{grid-template-columns:1fr}}

.reviews{border:1.5px solid var(--line);border-radius:26px;padding:22px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;background:rgba(255,225,77,.06)}
.reviews__stars{color:var(--sun);font-size:1.5rem;letter-spacing:.1em}
.reviews__line{font-size:1.1rem}
.reviews__more{color:var(--soft);flex-basis:100%}
.reviews__more a{color:var(--aqua)}

.tx--split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.tx--split .lede{margin-bottom:14px}
.tx--split p{color:var(--soft);margin-bottom:12px}
.credit a{color:var(--aqua)}
.suite-ph{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}
.suite-ph .ph{border-radius:24px;aspect-ratio:3/4;border:1.5px solid var(--line)}
.suite-ph .ph:first-child{aspect-ratio:auto}
@media (max-width:860px){.tx--split{grid-template-columns:1fr}}

.console{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:start}
.console__side>p{color:var(--soft)}
.console__wait{margin-top:30px;border:1.5px dashed var(--line);border-radius:22px;padding:20px}
.console__wait h3{font:800 1.1rem/1.25 "Nunito",sans-serif;margin-bottom:6px}
.console__wait p{color:var(--soft);margin-bottom:12px}
.console__main{background:var(--panel);border:1.5px solid var(--line);border-radius:30px;padding:clamp(20px,3vw,34px);box-shadow:0 0 60px rgba(155,107,255,.18)}
@media (max-width:860px){.console{grid-template-columns:1fr}}

.cform{--field-bg:#12072b;--field-ink:var(--ink);--field-line:var(--line)}
.cform label{color:var(--ink)}
.cform input::placeholder,.cform textarea::placeholder{color:#9c8fc2}
.cform input[type=file]{padding:9px}
.cform .check{display:flex;gap:10px;align-items:flex-start;font-weight:600;color:var(--soft)}
.cform .check input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--lime)}
.cform .check a{color:var(--aqua)}
.cform [aria-invalid="true"]{border-color:var(--pink)}
.cform__steer{background:rgba(255,225,77,.12);color:var(--sun);border:1.5px solid rgba(255,225,77,.4)}
.cform__err{color:var(--pink)}
.cform .btn--main{justify-self:start;font-size:1.05rem}
.cform__done{background:var(--panel);border:1.5px solid var(--line)}
.cform__done h3{font-family:"Rubik Bubbles",system-ui;font-weight:400}
.cform__done p{color:var(--soft)}
.wform{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
.wform label{display:grid;gap:4px;font-weight:700;font-size:.9rem}
.wform input{width:100%;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line);background:#12072b;color:var(--ink)}
.wform .btn{padding:11px 16px}
.wform__msg{grid-column:1/-1;color:var(--lime);font-weight:700}
@media (max-width:560px){.wform{grid-template-columns:1fr}}

.foot{border-top:1px solid var(--line);padding:40px clamp(16px,5vw,56px) 50px;text-align:center;color:var(--soft);display:grid;gap:8px}
.foot__brand{font:400 1.8rem/1 "Rubik Bubbles",system-ui;color:var(--ink)}
.foot a{color:var(--aqua)}
.foot__credit{font-size:.9rem}

@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .planet-wrap{order:-1;padding:10px 0 0}
  .planet{width:min(70vw,340px);--ring-w:128%}
}
.code{--code-bg:#1d0f40;--code-ink:#f6f0ff;--code-line:1.5px solid #4b2f8f;--code-font:"Rubik Bubbles",system-ui}
.code-line a{color:var(--aqua)}

/* the "Choose files" button, in this direction's style */
.cform input[type=file]::file-selector-button{margin-right:12px;padding:9px 16px;border:0;border-radius:999px;background:linear-gradient(90deg,var(--lime),#5dff8f);color:#12072b;font:800 .92rem/1 "Nunito",system-ui,sans-serif;cursor:pointer}
.cform input[type=file]::file-selector-button:hover{filter:brightness(1.08)}

/* twinkling stars: two extra star layers that fade in and out out of step
   with each other, so different stars glint at different moments */
.sky::before,.sky::after{content:"";position:absolute;inset:0;background-repeat:repeat;will-change:opacity}
.sky::before{background-image:
  radial-gradient(2px 2px at 18% 26%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 37% 64%,#fff 50%,transparent 51%),
  radial-gradient(2.5px 2.5px at 71% 22%,#ffe14d 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 74%,#fff 50%,transparent 51%),
  radial-gradient(2px 2px at 9% 58%,#3dd6ff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 58% 8%,#fff 50%,transparent 51%);
  background-size:380px 380px;animation:twinkle 3.2s ease-in-out infinite}
.sky::after{background-image:
  radial-gradient(2px 2px at 26% 44%,#fff 50%,transparent 51%),radial-gradient(2.5px 2.5px at 66% 84%,#ff4fb4 50%,transparent 51%),
  radial-gradient(1.5px 1.5px at 92% 36%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 44% 16%,#b7ff3d 50%,transparent 51%),
  radial-gradient(1.5px 1.5px at 5% 12%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 78% 52%,#fff 50%,transparent 51%);
  background-size:460px 460px;animation:twinkle 4.4s ease-in-out -2.1s infinite}
@keyframes twinkle{0%,100%{opacity:.15}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.sky::before,.sky::after{animation:none;opacity:.6}}

.planet-wrap > .hero-logo{position:absolute;z-index:3;left:50%;top:50%;width:clamp(170px,21vw,300px);transform:translate(-50%,-50%) rotate(-5deg);border:6px solid #fff;border-radius:24px;box-shadow:0 0 0 3px var(--lime),0 0 46px rgba(204,253,33,.45),0 24px 60px rgba(0,0,0,.55);animation:logo-float 6s ease-in-out infinite}
@media (max-width:860px){.planet-wrap > .hero-logo{width:min(44vw,190px)}}
@media (prefers-reduced-motion:reduce){.planet-wrap > .hero-logo{animation:none}}

@media (max-width:860px){.planet__label{position:static;margin-top:10px;justify-self:end}}
@media (min-width:861px) and (max-width:1180px){.planet{--ring-w:116%}}

/* screen-size tuning: short laptop screens keep the buttons above the fold,
   and the ring stays clear of the copy on small and mid laptops */
@media (min-width:861px){
  .hero{padding-top:clamp(28px,6vh,96px);padding-bottom:clamp(36px,6vh,90px)}
  .title{font-size:clamp(2.6rem,min(7.6vw,10.5vh),6.8rem)}
  .planet{width:min(100%,520px,62vh)}
  .planet-wrap > .hero-logo{width:clamp(150px,min(21vw,36vh),300px)}
}
@media (min-width:861px) and (max-width:1600px){.planet{--ring-w:116%}}
@media (max-width:860px){.planet{width:min(70vw,340px,40vh)}.planet-wrap > .hero-logo{width:min(44vw,190px,23vh)}}

/* dropdowns */
.cform{--dd-arrow:var(--lime);--dd-bg:#1d0f40;--dd-hover-bg:linear-gradient(90deg,var(--lime),#5dff8f);--dd-hover-ink:#12072b}
.dd__list{border-color:var(--lime);box-shadow:0 0 0 3px rgba(204,253,33,.18),0 0 28px rgba(204,253,33,.25),0 18px 40px rgba(0,0,0,.5)}
.dd--open .dd__btn,.dd__btn:hover{border-color:var(--lime)}
.cform .dd__btn[aria-invalid="true"]{border-color:var(--pink)}
