@font-face { font-family: Jersey; src: url("assets/jersey-25.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: Inter; src: url("assets/inter.woff2") format("woff2"); font-weight: 400; font-display: swap; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; background: #03050a; }
body { margin: 0; isolation: isolate; background: #03050a; color: #eaf0fb; font: 16px/1.55 Inter, "Segoe UI", sans-serif; }
a { color: inherit; text-decoration: none; }
a:hover { color: #91cbff; }
button, input { font: inherit; }
button { cursor: pointer; }
.wrap { width: min(1200px, 92%); margin-inline: auto; }
.skip { position: fixed; top: -80px; z-index: 20; }
.skip:focus { top: 0; background: white; color: black; }
.sr { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
:focus-visible { outline: 2px solid #8de5ff; outline-offset: 4px; }
.ambient { position: fixed; inset: 0; overflow: hidden; z-index: -1; pointer-events: none; }
.ambient { background: linear-gradient(135deg,#04102a 0%,#040710 35%,#03050a 80%); }
.ambient::before, .ambient::after { content: ""; position: absolute; inset: -12%; }
.ambient::before { background: radial-gradient(ellipse at 80% 0%,#c4d5ff14,transparent 40%), radial-gradient(ellipse at 3% 12%,#073a873d,transparent 42%); animation: drift 32s ease-in-out infinite alternate; }
.ambient::after { background: linear-gradient(155deg,transparent 20%,#204d911c 21%,#639af22e 21.15%,transparent 21.4%,transparent 67%,#23487b12 67.3%,transparent 69%); }
.light-streak { position: absolute; left: -15%; top: 32%; width: 65vw; height: 2px; background: linear-gradient(90deg,transparent,#548ae840,transparent); transform: rotate(-24deg); box-shadow: 0 0 14px #246af52b; animation: streak 22s ease-in-out infinite alternate; }
@keyframes drift { to { transform: translate(5%, 4%); } }
@keyframes streak { to { transform: translate(26%, -24px) rotate(-24deg); } }
header { position: sticky; top: 0; z-index: 4; background: #070d18cc; backdrop-filter: blur(18px); border-bottom: 1px solid #ffffff15; }
.nav, nav, .brand, .heading, footer, .caption, .choices { display: flex; align-items: center; }
.nav, .heading, footer, .caption { justify-content: space-between; }
.nav { height: 70px; gap: 30px; justify-content: flex-start; }
.brand { gap: 10px; font-size: 30px; }
.wordmark { font: 400 1em/1.12 Jersey, "Segoe UI", sans-serif; color: #fff; letter-spacing: .005em; }
.wordmark b { color: #286cff; font-weight: inherit; text-shadow: 0 0 24px #0653fc40; }
.brand img { width: 32px; height: 34px; filter: drop-shadow(0 1px 5px #2456ae); }
nav { gap: 4px; }
nav a { padding: 8px 13px; border-radius: 7px; font-size: 14px; color: #b4bed2; }
nav a:hover, nav a[aria-current] { background: #0c2050; color: white; }
.nav-cta { margin-left: auto; }
.primary, .secondary, .nav-cta { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 21px; border-radius: 10px; border: 1px solid #739bff42; background: linear-gradient(#2876ff,#054be5); box-shadow: inset 0 1px #ffffff25, 0 4px #002c95, 0 8px 24px #033baf26; font-size: 14px; font-weight: 600; color: #fff; }
.nav-cta { padding: 9px 15px; }
.secondary { background: linear-gradient(#1b1e28,#0c1019); box-shadow: inset 0 1px #ffffff14, 0 4px #04060a; border-color: #ffffff26; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 27px; }
.actions a:hover, .nav-cta:hover { filter: brightness(1.12); color: white; }
.hero { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; min-height: clamp(600px,85vh,830px); gap: 4%; }
.overline { font-size: 11px; font-weight: 650; text-transform: uppercase; letter-spacing: .16em; color: #88b2ff; }
h1, h2, h3, p { margin: 0; }
h1 { margin: 0 0 22px; }
h1 .wordmark { display: block; font-size: clamp(72px,9.8vw,122px); }
.hero-subtitle { display: block; margin-top: 2px; font-size: clamp(38px,4.9vw,66px); letter-spacing: -.045em; line-height: 1.14; }
.intro p, .studio p { color: #b8c1d4; }
.intro p { font-size: clamp(16px,1.45vw,19px); max-width: 510px; }
.stage { position: relative; height: 455px; overflow: clip; display: grid; place-items: center; isolation: isolate; user-select: none; }
.halo { position: absolute; inset: 7% -2% 3%; background: radial-gradient(ellipse,#2055ad44,transparent 65%); }
.orbit { position: absolute; top: 43%; width: 88%; height: 24%; border: 1px solid #2763d33d; border-radius: 50%; box-shadow: 0 0 22px #1255e51a, inset 0 0 14px #0e4ade17; }
.o2 { width: 74%; height: 18%; top: 46%; }
.floor { pointer-events: none; position: absolute; bottom: 1%; width: 95%; height: 34%; background: linear-gradient(#3e6cac55 1px,transparent 1px),linear-gradient(90deg,#3e6cac55 1px,transparent 1px); background-size: 36px 32px; transform: perspective(150px) rotateX(47deg); mask-image: radial-gradient(ellipse at center,#000 0%,transparent 67%); }
.turntable { width: min(72%,340px); aspect-ratio: 467/477; perspective: 900px; cursor: grab; touch-action: pan-y; }
.turntable.dragging { cursor: grabbing; }
.object { width: 100%; height: 100%; transform-style: preserve-3d; transform: rotateX(3deg) rotateY(var(--ry,-8deg)); }
.face, .slice { pointer-events: none; position: absolute; inset: 0; mask: url(assets/emblem.png) center/contain no-repeat; }
.slice { background: linear-gradient(120deg,#174797,#061020 53%,#4388ff); }
.face { background: linear-gradient(165deg,#030407 5%,#15171d 60%,#0b0c12); transform: translateZ(16px); }
.face::after { content: ""; position: absolute; inset: 0; background: url(assets/emblem.png) center/contain no-repeat; mix-blend-mode: screen; }
.drag-hint { position: absolute; bottom: 2px; font-size: 12px; color: #a4b7d1; }
.drag-hint>span:first-child { margin-right: 5px; color: #84b8ff; }
.studio { padding: 47px 0; display: grid; grid-template-columns: 1fr 2fr; gap: 4%; border-block: 1px solid #d8e7ff21; }
.studio>.overline { padding-top: 8px; }
h2 { font-size: clamp(34px,4.1vw,55px); line-height: 1.1; letter-spacing: -.055em; }
.studio h2 { font-size: clamp(28px,3vw,40px); }
.studio p { margin-top: 13px; max-width: 610px; font-size: 17px; }
footer { border-top: 1px solid #a6c4f127; padding: 20px 0 30px; }
@media(max-width:720px) {
  .nav { height: 60px; }
  .nav { gap: 8px; justify-content: space-between; }
  .brand { font-size: 25px; gap: 6px; }
  nav a { padding: 6px 8px; font-size: 13px; }
  .nav-cta { display: none; }
  .hero { grid-template-columns: 1fr; padding-block: 42px 28px; min-height: auto; gap: 20px; }
  .stage { height: 255px; }
  .turntable { width: min(51%,200px); }
  .studio { grid-template-columns: 1fr; }
  .studio { padding: 30px 0; gap: 13px; }

}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .ambient::before, .ambient::after, .light-streak { animation: none; }
}
.cores-section { padding-block: clamp(55px,7vw,96px); }
.core-heading { max-width: 660px; margin: 0 auto 38px; text-align: center; }
.core-heading h2 { line-height: 1.18; }
.core-heading span { color: #80aaff; }
.core-heading p { margin: 15px 0 0; color: #b4c1d5; }
.core-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: stretch; }
.core { --tint: 103, 222, 182; min-width: 0; display: flex; flex-direction: column; align-items: stretch; text-align: center; padding: clamp(24px,3.5vw,44px); border: 1px solid #e4eeff22; border-radius: 20px; background: radial-gradient(ellipse at 50% 0%,rgba(var(--tint),.06),transparent 58%),linear-gradient(140deg,#101a27df,#09111bec); box-shadow: inset 0 1px #ffffff0c; }
.core.protect { --tint: 107, 168, 255; }
.reactor { position: relative; display: grid; place-items: center; width: 156px; height: 156px; margin: 0 auto 22px; background: radial-gradient(circle,rgba(var(--tint),.16), transparent 70%); }
.orbit-track { position: absolute; inset: 9px; border: 1px solid rgba(var(--tint),.12); border-radius: 50%; }
 .orbit-track.inner { inset: 22px; border-style: dashed; border-color: rgba(var(--tint),.15); transform: rotate(42deg); }
.satellite { position: absolute; left: 50%; top: 0; width: 13px; height: 13px; transform: translate(-50%,-50%); filter: drop-shadow(0 0 4px rgba(var(--tint),.8)); }
.satellite::before { content: ''; position: absolute; inset: 0; background: rgb(var(--tint)); clip-path: polygon(50% 0,64% 36%,100% 50%,64% 64%,50% 100%,36% 64%,0 50%,36% 36%); }
.satellite.small { top: 100%; width: 8px; height: 8px; opacity: .8; }
.inner .satellite { width: 8px; height: 8px; }
.core-symbol { display: grid; place-items: center; width: 80px; height: 80px; border-radius: 50%; background: linear-gradient(150deg,#142433,#0a111a 75%); color: rgb(var(--tint)); border: 1px solid rgba(var(--tint),.23); box-shadow: 0 0 27px rgba(var(--tint),.14); }
.core-symbol svg { width: 32px; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.core-role { text-transform: uppercase; letter-spacing: .13em; font-size: 11px; font-weight: 650; color: rgb(var(--tint)); }
.core h3 { font-size: clamp(25px,2.7vw,36px); line-height: 1.25; letter-spacing: -.045em; margin-block: 9px; }
.core-intro { margin: 3px auto 26px; max-width: 405px; color: #b6c4d7; }
.core-work { display: grid; gap: 8px; margin: auto 0 0; text-align: left; }
.core-work div { border: 1px solid #c6deff18; border-radius: 10px; background: #ffffff04; padding: 14px 16px; }
.core-work dt { color: rgb(var(--tint)); font-weight: 600; }
.core-work dd { font-size: 14px; line-height: 1.55; margin: 5px 0 0; color: #bdcadc; }
@media(max-width:720px) {
  .core-grid { grid-template-columns: 1fr; }
  .core-heading { margin-bottom: 24px; }
  .reactor { width: 126px; height: 126px; }
}
.studio { margin-bottom: 54px; }
.core { background: linear-gradient(150deg,#fafcff0c,transparent 45%),#0d111eec; box-shadow: inset 0 1px #ffffff14,0 18px 50px -28px #000; }
footer>a:last-child { color: #b6c4dc; font-size: 14px; }
@media(max-width:720px) {
  .hero-subtitle { font-size: clamp(31px,7.8vw,42px); }
  .studio { margin-bottom: 32px; }
  .nav .brand img { width: 26px; height: 27px; }
}

.foundations { padding: 0 0 clamp(60px,7vw,96px); }
.section-lead, .launch-panel p { margin-block: 13px 0; color: #b4c1d5; }
.feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 28px; }
.feature-card { padding: clamp(22px,2.8vw,33px); border: 1px solid #e4eeff22; border-radius: 18px; background: linear-gradient(153deg,#b9d2ff0e,transparent 58%),#0c111def; box-shadow: inset 0 1px #ffffff10; }
.feature-icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 20px; color: #8ab9ff; background: linear-gradient(140deg,#203e74,#0a1529); border: 1px solid #568de344; border-radius: 12px; box-shadow: 0 3px #050e21; }
.feature-icon svg { width: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.feature-card h3 { font-size: 20px; line-height: 1.3; letter-spacing: -.03em; margin-bottom: 8px; }
.feature-card p { color: #b6c4d7; font-size: 15px; line-height: 1.6; }
.launch-panel { margin-bottom: clamp(48px,6vw,76px); padding: clamp(26px,4.5vw,54px); display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid #628de342; border-radius: 20px; background: radial-gradient(ellipse at 100% 100%,#123a7d60,transparent 64%),linear-gradient(145deg,#131e33,#0b111e); }
.launch-panel h2 { font-size: clamp(28px,3.5vw,44px); line-height: 1.14; }
.launch-panel p { max-width: 625px; }
.launch-panel .primary { flex: none; }
@media(max-width:850px) { .feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) {
  .feature-grid { grid-template-columns: 1fr; }
  .launch-panel { flex-direction: column; align-items: flex-start; }
}
@keyframes orbit-stars { to { transform: rotate(1turn); } }
@keyframes inner-orbit { from { transform: rotate(42deg); } to { transform: rotate(402deg); } }
@keyframes emblem-float { 50% { translate: 0 -7px; } }
@keyframes core-breathe { 50% { transform: translateY(-2px) scale(1.055); } }
@keyframes light-breathe { 50% { opacity: .72; } }
@media (prefers-reduced-motion: no-preference) {
  .object { animation: emblem-float 6s ease-in-out infinite; }
  .turntable.dragging .object, .turntable:focus-visible .object { animation-play-state: paused; }
  .orbit-track { animation: orbit-stars 18s linear infinite; }
  .orbit-track.inner { animation: inner-orbit 13s linear infinite reverse; }
  .protect .orbit-track { animation-direction: reverse; animation-duration: 23s; }
  .protect .orbit-track.inner { animation-direction: normal; animation-duration: 16s; }
  .core-symbol svg { animation: core-breathe 4s ease-in-out infinite; }
  .protect .core-symbol svg { animation-delay: -2s; }
  .halo { animation: light-breathe 6s ease-in-out infinite; }
  .feature-card { transition: transform .2s ease, border-color .2s ease; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .feature-card:hover { transform: translateY(-3px); border-color: #6294f05c; }
}
#wait-dialog {
  width:min(454px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 24px);
  padding:0; border:1px solid #375178; border-radius:24px; overflow:auto; overscroll-behavior:contain;
  background:#0b1323; color:#f3f7ff; box-shadow:0 30px 110px #000b,0 0 0 1px #020611;
}
#wait-dialog::backdrop { background:#020611cf; backdrop-filter:blur(9px); }
#wait-dialog[open] { animation:wait-arrive .24s ease-out; }
#wait-dialog [hidden] { display:none; }
.wait-sky {
  position:relative; isolation:isolate; overflow:hidden; height:156px; border-bottom:1px solid #7195dd35;
  background:radial-gradient(ellipse at 50% 85%,#235ca099,transparent 56%),
    linear-gradient(0deg,#08132e55,#061029bb),url("/assets/space-background.jpg") center 52% / cover,#09172e;
}
.wait-bar { position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; padding:14px 18px 0 23px; }
.wait-bar>span { display:flex; align-items:center; gap:10px; }
.wait-bar .wordmark { font-size:24px; }
.wait-bar-label { padding-left:10px; border-left:1px solid #8ba9cf56; color:#c5d9f0; font-size:12px; }
#wait-close { display:grid; place-content:center; width:32px; height:32px; border-radius:50%; border:1px solid #a0b6e944; color:#d9e9ff; background:#0a1229bd; font:23px/1 sans-serif; }
#wait-close:hover { background:#213853; }
.wait-orb { position:absolute; inset:25px 0 0; display:grid; place-items:center; pointer-events:none; }
.wait-seal {
  display:grid; place-items:center; position:relative; width:76px; height:76px; border-radius:50%;
  background:radial-gradient(at 40% 12%,#5383be,#173771 43%,#090f28 90%);
  border:1px solid #82baffb0; box-shadow:inset 0 2px 6px #b8dcff60,0 0 26px #1870ff63,0 9px 20px #0005;
}
.wait-seal img { width:48px; height:50px; object-fit:contain; filter:drop-shadow(0 1px 2px #82aaff80); }
.wait-seal span { display:none; }
.wait-orbit {
  position:absolute; width:68%; max-width:290px; height:62px; border:1px solid #88bcff66;
  border-radius:50%; transform:rotate(-13deg); box-shadow:inset 0 1px #72acff26;
}
.wait-orbit::after {
  content:""; position:absolute; left:14%; top:9%; width:4px; height:4px; border-radius:50%;
  background:#c9e9ff; box-shadow:0 0 10px 2px #3f92ff; animation:wait-star 4s ease-in-out infinite alternate;
}
.wait-orbit-inner { width:49%; height:47px; transform:rotate(15deg); opacity:.65; }
.wait-orbit-inner::after { left:87%; top:76%; animation-delay:-2s; }
.wait-body { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:14px; padding:22px clamp(18px,6vw,30px) 23px; }
.wait-body>* { grid-column:1/-1; }
.wait-progress { display:flex; gap:5px; margin-bottom:16px; }
.wait-progress i { flex:1; height:3px; border-radius:5px; background:#27344b; transition:background-color .28s; }
.wait-progress i.lit { background:#5a9aff; box-shadow:0 0 9px #387dff43; }
.wait-stage { margin-bottom:6px; color:#a6c6ff; font:600 11px/1.5 ui-monospace,Consolas,monospace; text-transform:uppercase; letter-spacing:.08em; }
#wait-title { margin:0; font-size:clamp(26px,5.5vw,32px); letter-spacing:-.045em; line-height:1.16; overflow-wrap:anywhere; }
#wait-copy,#wait-status { color:#b7c7de; font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
#wait-copy { margin:8px 0 0; }
#wait-status:not(:empty) { margin-top:13px; padding-left:10px; border-left:2px solid #6697ea; color:#d7e6ff; }
#wait-action { width:100%; margin:21px 0 6px; min-height:44px; }
#wait-action:disabled { opacity:.66; cursor:default; }
.wait-links { display:contents; }
#wait-invite,.wait-privacy { margin-top:14px; font-size:12px; line-height:1.5; align-self:center; text-underline-offset:3px; }
#wait-invite { grid-column:1; justify-self:start; color:#b7d5ff; text-decoration:underline; }
.wait-privacy { grid-column:2; justify-self:end; color:#a7b6cc; text-decoration:underline; }
#wait-join { margin-top:18px; }
#wait-dialog[data-stage="2"] #wait-action { margin:8px 0 0; background:#162239; box-shadow:none; border-color:#59739466; }
#wait-dialog[data-stage="3"] .wait-seal { border-color:#9ddacb; background:radial-gradient(at 40% 12%,#3b827c,#153943 60%,#0a1e30); }
#wait-dialog[data-stage="3"] .wait-seal img { display:none; }
#wait-dialog[data-stage="3"] .wait-seal span { display:block; font:40px/1 system-ui; color:#c0ffea; }
#wait-dialog[data-stage="3"] .wait-progress i { background:#73d4b6; }
.wait-busy .wait-seal { animation:wait-star 1s ease-in-out infinite alternate; }
@keyframes wait-star { to { opacity:.65; } }
@keyframes wait-arrive { from { transform:translateY(8px); opacity:0; } }
@media (max-height:550px) { .wait-sky { height:109px; } .wait-seal { width:58px; height:58px; } .wait-seal img { width:36px; height:39px; } }
@media (prefers-reduced-motion:reduce) { #wait-dialog[open],.wait-orbit::after,.wait-busy .wait-seal { animation:none; } .wait-progress i { transition:none; } }
/* Shared public pages */
.sky-art { position:absolute; inset:-7%; background:url("/assets/space-background.jpg") center/cover no-repeat; opacity:.48; animation:sky-drift 38s ease-in-out infinite alternate; }
@keyframes sky-drift { from {transform:translate3d(-1%,0,0) scale(1.025)} to {transform:translate3d(2%,1.5%,0) scale(1.065)} }
.ambient .light-streak { left:-45%;width:65vw;top:32%;transform:rotate(-22deg);opacity:0;animation:sky-trail 15s linear infinite; }
.light-streak.second { top:58%;animation-delay:-5s; }.light-streak.third { top:82%;animation-delay:-10s; }
@keyframes sky-trail { 0%,80%,100%{opacity:0} 14%,40%{opacity:.62} 0%{transform:translate3d(0,0,0) rotate(-22deg)} 80%,100%{transform:translate3d(180%,-24vh,0) rotate(-22deg)} }
.nav-menu { display:none; }
.site-footer { gap:28px;flex-wrap:wrap; }.footer-links { display:flex;flex-wrap:wrap;gap:12px 22px;color:#b5c7df;font-size:14px; }
.launch-guide { margin:14px auto 55px; }.guide-grid,.plan-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:25px; }
.guide-grid article,.plan-card,.resource-card,.legal,.support-note,.faq-group details,#release-notes details { background:linear-gradient(140deg,#18273ce8,#0a1422e8);border:1px solid #b2d1ff26;border-radius:16px;padding:clamp(18px,2.5vw,32px);box-shadow:inset 0 1px #ffffff0b; }
.guide-grid h3,.resource-card h3,.faq-group h2 { margin:0 0 10px; }
.guide-grid p,.page-intro p,.resource-page p,.resource-page li,.legal li { color:#b0c1d9; }
.resource-page { padding-block:clamp(42px,6vw,84px);min-height:65vh; }.page-intro h1,.lost h1 { font-size:clamp(42px,6vw,80px);letter-spacing:-.055em;line-height:1.1;margin:0 0 14px; }
.page-intro p { max-width:630px;font-size:18px; }.page-intro { margin-bottom:34px; }
.page-section { margin-top:48px; }.resource-page h2,.launch-guide h2 { font-size:clamp(27px,3.3vw,40px); }.resource-page h3,.launch-guide h3 { font-size:21px;line-height:1.25; }
.resource-page p a,.resource-page li a,.guide-grid a,.resource-card>a { color:#90c5ff;text-decoration:underline;text-underline-offset:3px; }
.resource-page .price { font-size:clamp(36px,4vw,60px);color:#f2f7ff;font-weight:700;letter-spacing:-.055em;margin:15px 0 7px; }.price small { font-weight:500;font-size:13px;color:#b7c9e6;letter-spacing:normal; }
.plan-card { display:flex;align-items:flex-start;flex-direction:column;gap:6px; }.plan-card:nth-child(2){background:radial-gradient(ellipse at 90% 0,#1744868a,transparent 80%),#101c2d;border-color:#518ceb82;}.plan-card h2 { font-size:25px; }.plan-card .primary { margin-top:auto; }.plan-card>p:last-of-type { padding-bottom:20px; }
.steps { line-height:1.7;padding-left:22px; }.steps li { padding:5px; }.steps strong { color:#e9f2ff; }
.release-grid,.faq-layout { display:grid;grid-template-columns:1fr 1.25fr;gap:24px;align-items:start; }.resource-card h2,.support-note h2 { font-size:25px; }.installer>*+* { margin-top:14px; }
.specs { display:grid;grid-template-columns:1fr 1.4fr;gap:10px 16px;margin:20px 0 26px; }.specs dt { color:#aec6e3; }.specs dd { margin:0; }
#key-form { display:grid;gap:9px; }.fine,#key-form label { font-size:13px; }#license-key { width:100%;font:16px/1.4 ui-monospace,monospace;color:#f3f7ff;border:1px solid #506885;border-radius:9px;background:#070f1a;padding:12px; }.resource-page button:disabled { opacity:.5;cursor:not-allowed; }
#release-notes { margin-top:20px; }#release-notes details,.faq-group details { margin:8px 0;padding:15px 18px; }summary { cursor:pointer;font-weight:600; }
.faq-group+.faq-group { margin-top:34px; }.faq-group h2 {font-size:24px}.faq-group p,.support-note p { margin:10px 0; }.support-note .primary { margin-top:10px; }
.legal { max-width:820px; }.legal h2 { font-size:23px;margin:27px 0 10px; }.legal h2:first-child { margin-top:0; }
.lost { max-width:760px;margin:auto;text-align:center; }.lost .actions { justify-content:center; }.lost h1 { margin-top:12px; }.lost-orbit { display:grid;place-items:center;position:relative;height:150px; }.lost-orbit::before { content:"";position:absolute;width:220px;height:62px;border:1px solid #5195ff72;border-radius:50%;transform:rotate(-15deg); }.lost-orbit img { position:relative;filter:drop-shadow(0 0 14px #1662df65);animation:adrift 7s ease-in-out infinite alternate; }
@keyframes adrift { to{transform:translate(8px,-8px) rotate(8deg)} }
.resource-dialog { color:#edf5ff;width:min(450px,92vw);padding:25px;border:1px solid #4777a8;border-radius:16px;background:#101c2e; }.resource-dialog::backdrop {background:#030812bb;backdrop-filter:blur(5px)}.resource-dialog h2 { margin:0 36px 12px 0; }#order-close { float:right;background:transparent;border:0;color:#c0d7f5;font-size:25px; }#order-code:not(:empty) { display:block;margin-top:16px;font:23px/1.5 ui-monospace,monospace;color:#98c6ff; }.resource-dialog [hidden] { display:none!important; }
@media(max-width:950px){.nav-menu { display:block;margin-left:auto;border:1px solid #6383ac5c;background:#172739;color:#e4efff;border-radius:8px;padding:6px 13px;font:inherit; } .nav-cta { display:none; }#site-links { display:none;position:absolute;top:100%;right:4%;min-width:195px;padding:10px;background:#0e1c31;border:1px solid #344a69;border-radius:12px;box-shadow:0 14px 30px #0007; }#site-links.is-open { display:grid; } }
@media(max-width:720px){.plan-grid,.guide-grid,.release-grid,.faq-layout{grid-template-columns:1fr}.site-footer{align-items:flex-start}.support-note{order:2}}
@media(prefers-reduced-motion:reduce){.sky-art,.ambient .light-streak,.lost-orbit img{animation:none}.ambient .light-streak{opacity:.18}}
.resource-page [hidden] { display:none!important; }
#wait-dialog[data-stage="3"] .wait-sky { height:58px; }
#wait-dialog[data-stage="3"] .wait-orb { display:none; }
#wait-pass { min-width:0; margin-top:16px; }
.pass-display { position:relative; cursor:grab; touch-action:pan-y; }
.pass-display.tilted { cursor:grabbing; }
.pass-display canvas { width:100%; height:auto; display:block; border-radius:12px; border:1px solid #7296cd80; box-shadow:0 10px 26px #0005; transition:transform .18s ease-out; }
.pass-display.tilted::after { content:""; position:absolute; pointer-events:none; inset:0; border-radius:12px; background:linear-gradient(105deg,transparent calc(var(--pass-light,50%) - 14%),#bddaff22 var(--pass-light,50%),transparent calc(var(--pass-light,50%) + 14%)); }
.pass-tools { display:flex; margin-top:14px; }
.pass-tools label { display:flex; align-items:center; gap:6px; font-size:12px; color:#c9d9ef; }
.pass-tools input { margin:0; accent-color:#457fff; }
#pass-save { flex:1; min-height:42px; padding:8px 14px; }
#pass-feedback:not(:empty) { margin-top:10px; color:#c0deff; font-size:13px; }
@media(prefers-reduced-motion:reduce){.pass-display canvas{transition:none}}

@keyframes section-arrival {
  from { opacity: .36; translate: 0 18px; }
  to { opacity: 1; translate: 0 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .enter-view { animation: section-arrival .62s cubic-bezier(.2,.76,.25,1) var(--enter-delay,0ms) backwards; }
  .enter-view:focus-within { animation: none; }
  header:has(+ main .hero)::after {
    content: ""; position: absolute; pointer-events: none; inset: auto 0 -1px; height: 2px;
    background: linear-gradient(90deg,#296cff,#83caff); transform-origin: left;
    transform: scaleX(var(--read-progress,0));
  }
  .stage .orbit, .stage .halo { translate: 0 var(--orbit-drift,0px); }
  .stage .floor { translate: 0 var(--floor-drift,0px); }
  .actions a, .nav-cta, .launch-panel .primary { transition: translate .18s ease, filter .18s ease, box-shadow .18s ease; }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :is(.core,.feature-card,.guide-grid article,.launch-panel) { position: relative; isolation: isolate; }
  :is(.core,.feature-card,.guide-grid article,.launch-panel)::before {
    content: ""; position: absolute; z-index: -1; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(230px 145px at var(--light-x,50%) var(--light-y,0),rgba(var(--tint,105,166,255),.13),transparent);
    opacity: 0; transition: opacity .26s ease;
  }
  :is(.core,.feature-card,.guide-grid article,.launch-panel):hover::before { opacity: 1; }
  .core, .guide-grid article { transition: border-color .22s ease, box-shadow .22s ease; }
  .core:hover { border-color: rgba(var(--tint),.42); box-shadow: inset 0 1px rgba(var(--tint),.15),0 22px 55px -35px rgba(var(--tint),.2); }
  .guide-grid article:hover { border-color: #799bcd65; }
  :is(.actions a,.nav-cta,.launch-panel .primary):hover { translate: 0 -2px; filter: brightness(1.12); }
  :is(.actions a,.nav-cta,.launch-panel .primary):active { translate: 0 2px; }
}
@media print {
  .enter-view { animation: none; }
}

/* ---- Smoothness ---- */
/* Looping animations rest while off screen (app.js) and while a dialog covers the page:
   a blurred backdrop over a moving background would otherwise be re-blurred every frame. */
.resting, .resting * { animation-play-state: paused !important; }
body:has(dialog[open]) :is(.ambient, .ambient *, .stage *, .reactor *),
body:has(dialog[open]) .ambient::before { animation-play-state: paused !important; }

a, nav a, summary { transition: color .15s ease, background-color .15s ease; }
@media (prefers-reduced-motion: no-preference) {
  .await-view { opacity: .36; translate: 0 18px; }
  :is(.primary, .secondary) { transition: translate .18s ease, filter .18s ease, box-shadow .18s ease; }
  /* Pages cross-fade into each other; the header holds still while the content changes. */
  @view-transition { navigation: auto; }
  header { view-transition-name: site-header; }
  ::view-transition-old(root), ::view-transition-new(root) { animation-duration: .2s; }
  #site-links.is-open { animation: menu-in .16s ease-out; }
  .resource-dialog[open] { animation: wait-arrive .2s ease-out; }
}
@keyframes menu-in { from { opacity: 0; translate: 0 -6px; } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :is(a, button):is(.primary, .secondary):not(:disabled):hover { translate: 0 -2px; filter: brightness(1.12); }
  :is(a, button):is(.primary, .secondary):not(:disabled):active { translate: 0 1px; }
}
/* FAQ answers and release notes slide open where the browser supports it. */
@supports (interpolate-size: allow-keywords) {
  @media (prefers-reduced-motion: no-preference) {
    :root { interpolate-size: allow-keywords; }
    details::details-content { block-size: 0; overflow: clip; transition: block-size .24s ease, content-visibility .24s allow-discrete; }
    details[open]::details-content { block-size: auto; }
  }
}
@media print { .await-view { opacity: 1; translate: none; } }

