/* Visions — dark, cosmic, ethereal default theme (original CSS; a light homage to a 2012 dream-pop mood, no imagery).
   Layout/type rhythm still follows Frontier Tower's design tokens. Fonts: Plus Jakarta Sans + Geist Mono (SIL OFL, self-hosted). */
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/PlusJakartaSans-latin.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(fonts/PlusJakartaSans-Italic-latin.woff2) format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Geist Mono";src:url(fonts/GeistMono-latin.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}

:root{
  color-scheme:dark;
  --bg:#07061a; --bg-2:#0d0a26; --surface:#131033; --surface-alt:#211c4a; --field:#0b0924;
  --heading:#f6f1ff; --ink:#ebe5fa; --muted:#c9c1e3; --dim:#a69fc6;
  --accent:#c4a1ff; --accent-deep:#8b5cff; --accent-tint:#e0ccff;
  --accent-soft:#c4a1ff1f; --accent-glow:#b07cff40; --focus:#d9b8ff80;
  --pink:#ff9fd8; --cyan:#86ecff; --blue:var(--cyan); --blue-soft:#86ecff1f;
  --border:#d8ccff1a; --border-hi:#d8ccff33; --stroke:#e6dcff99;
  --ok:#7ef0bf; --err:#ff9fb0;
  --sans:"Plus Jakarta Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --wrap:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;color:var(--ink);background:var(--bg) linear-gradient(180deg,#05040f 0%,#0a0724 35%,#120a2e 70%,#07061a 100%) fixed;font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* cosmic layers: nebula glows (::before) + star field (::after), fixed behind content */
body::before,body::after{content:"";position:fixed;inset:-10%;z-index:-1;pointer-events:none}
body::before{
  background:
    radial-gradient(38% 30% at 18% 22%,#8b5cff38,transparent 70%),
    radial-gradient(34% 28% at 82% 14%,#ff7fd02e,transparent 70%),
    radial-gradient(40% 34% at 70% 72%,#4fd8ff24,transparent 72%),
    radial-gradient(30% 26% at 24% 84%,#c77dff26,transparent 70%);
  filter:blur(20px);animation:nebula 60s ease-in-out infinite alternate}
body::after{opacity:.75;
  background-image:
    radial-gradient(1px 1px at 12% 18%,#fff,transparent),radial-gradient(1px 1px at 33% 72%,#ffe6ff,transparent),
    radial-gradient(1.5px 1.5px at 58% 34%,#e8f9ff,transparent),radial-gradient(1px 1px at 76% 58%,#fff,transparent),
    radial-gradient(1px 1px at 88% 12%,#f3e8ff,transparent),radial-gradient(1.5px 1.5px at 46% 90%,#fff,transparent),
    radial-gradient(1px 1px at 6% 62%,#dff7ff,transparent),radial-gradient(1px 1px at 66% 8%,#fff,transparent),
    radial-gradient(1px 1px at 22% 40%,#fff,transparent),radial-gradient(1px 1px at 52% 64%,#ffe9f7,transparent),radial-gradient(1px 1px at 81% 84%,#e6fbff,transparent),radial-gradient(1px 1px at 94% 46%,#fff,transparent),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,420px 420px,290px 290px,290px 290px,290px 290px,290px 290px,180px 180px;
  animation:twinkle 9s ease-in-out infinite alternate}
@keyframes nebula{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-3%,2%,0) scale(1.08)}}
@keyframes twinkle{0%{opacity:.55}100%{opacity:.9}}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
a{color:inherit}
.mono{font-family:var(--mono);font-size:.82em;letter-spacing:.06em;text-transform:uppercase}

.demo-banner{position:relative;z-index:60;background:#2a1b5e;color:#f6f1ff;border-bottom:1px solid var(--border-hi);font:500 12px/1.4 var(--mono);letter-spacing:.04em;text-align:center;padding:6px 12px}

/* nav */
.nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,#07061a 78%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:60px}
.wordmark{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--heading)}
.wm-text{font-weight:700;font-size:19px;letter-spacing:-.03em}
.wm-tag{font:500 11px/1 var(--mono);letter-spacing:.08em;color:var(--accent);border:1px dashed var(--accent);border-radius:4px;padding:4px 5px}
.nav-links{display:flex;align-items:center;gap:16px}
.mono-link{font:500 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);text-decoration:none;display:none}
.mono-link:hover{color:var(--accent)}
@media (min-width:640px){.mono-link{display:inline}}
@media (max-width:899px){.mono-link-wide{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;
  padding:13px 20px;font:600 15px/1.2 var(--sans);text-decoration:none;cursor:pointer;
  transition:background-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease)}
.btn-primary{background-color:#d6b8ff;background-image:linear-gradient(120deg,#d6b8ff 0%,#ffc2e6 55%,#bff3ff 100%);color:#170a33;box-shadow:0 6px 24px var(--accent-glow),inset 0 0 0 1px #ffffff40}
.btn-primary:hover{box-shadow:0 8px 32px #ff9fd855,inset 0 0 0 1px #ffffff66}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:disabled{opacity:.6;cursor:wait}
.btn-ghost{background:#131033cc;color:var(--ink);border-color:var(--border-hi)}
.btn-ghost:hover{background:var(--surface-alt)}
.btn-sm{padding:9px 14px;font-size:14px}
.btn-block{width:100%}
:focus-visible{outline:none;box-shadow:0 0 0 3px var(--focus)}

/* hero */
.hero{position:relative;overflow:hidden;padding:48px 0 56px;border-bottom:1px dashed var(--border-hi)}
.grid-bg{position:absolute;inset:0;pointer-events:none;opacity:.35;
  background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);
  background-size:40px 40px;mask-image:radial-gradient(70% 60% at 50% 30%,#000 40%,transparent 100%);-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 40%,transparent 100%)}
.hero-in{position:relative}
.chip{display:inline-flex;align-items:center;gap:8px;margin:0 0 20px;padding:6px 10px;font:500 11px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:#131033cc;border:1px dashed var(--border-hi);border-radius:4px}
.dot{width:7px;height:7px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink),0 0 0 3px #ff9fd822;animation:pulse 4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.45}}
h1{margin:0;color:var(--heading);font-weight:600;font-size:clamp(2.6rem,1.6rem + 6vw,5.5rem);line-height:1.02;letter-spacing:-.03em;max-width:13ch}
h1 em{font-style:italic;font-weight:800;color:#f2b6ff;text-shadow:0 0 24px #d68cff99,0 0 60px #86ecff40}
.lead{color:var(--muted);font-size:clamp(16px,1.7vw,19px);max-width:36em;margin:18px 0 28px}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.hero-cta .btn{flex:1 1 auto}
@media (min-width:640px){.hero-cta .btn{flex:0 0 auto}}

/* panels with corner ticks (Frontier-style HUD cards) */
.panel{position:relative;background:var(--surface);box-shadow:0 10px 40px #00000040;border:1px dashed var(--border-hi);border-radius:2px}
.tick{position:absolute;width:9px;height:9px;border-color:var(--stroke);border-style:solid;border-width:0}
.tick.tl{top:-1px;left:-1px;border-top-width:2px;border-left-width:2px}
.tick.tr{top:-1px;right:-1px;border-top-width:2px;border-right-width:2px}
.tick.bl{bottom:-1px;left:-1px;border-bottom-width:2px;border-left-width:2px}
.tick.br{bottom:-1px;right:-1px;border-bottom-width:2px;border-right-width:2px}
.panel-head{display:flex;justify-content:space-between;padding:10px 14px;border-bottom:1px dashed var(--border-hi);font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.panel-head > span:first-child::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}
.counter{max-width:460px}
.counter-body{padding:14px}
.counter-num{display:block;font-family:var(--mono);color:var(--heading)}
.counter-num strong{font-size:44px;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.counter-num .of{font-size:18px;color:var(--dim)}
.bar{height:6px;background:var(--surface-alt);border-radius:999px;overflow:hidden;margin:10px 0}
.bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--accent-deep),var(--pink),var(--cyan));border-radius:inherit;transition:width .6s var(--ease)}
.counter-note{margin:0;color:var(--dim);font-size:14px}

/* sections */
.section{padding:64px 20px}
.eyebrow{margin:0 0 10px;font:500 clamp(12px,1.2vw,14px) var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
h2{margin:0 0 12px;color:var(--heading);font-weight:600;font-size:clamp(30px,5.4vw,48px);line-height:1.08;letter-spacing:-.025em}
.sub,.draft-note{color:var(--muted);margin:0 0 28px}
.draft-note .mono{color:var(--accent);margin-right:6px}

/* visions — three cards, equal weight; only the thin top accent colour differs */
.visions{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:960px){.visions{grid-template-columns:repeat(3,1fr)}}
.vision{--card-accent:var(--accent);position:relative;display:flex;flex-direction:column;padding:22px;border-radius:14px;
  background:var(--surface);border:1px solid var(--border-hi);border-top:3px solid var(--card-accent);color:var(--ink);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.vision:hover{transform:translateY(-2px);box-shadow:0 12px 36px color-mix(in srgb,var(--card-accent) 22%,transparent)}
.v1{--card-accent:var(--accent)}
.v2{--card-accent:var(--cyan)}
.v3{--card-accent:var(--pink)}
.vision h3{margin:6px 0 10px;color:var(--heading);font-weight:700;font-size:clamp(22px,1rem + 1vw,26px);letter-spacing:-.02em;line-height:1.15}
.vision p{margin:0 0 12px;color:var(--muted)}
.v-head{display:flex;justify-content:space-between;color:var(--dim)}
.v-head .mono:first-child{color:var(--card-accent)}
.v-cta{margin-top:auto;padding-top:10px;font-weight:600;text-decoration:none;color:var(--accent)}
.v-cta::after{content:"";position:absolute;inset:0;border-radius:inherit}  /* whole card is tappable */
.v-cta span{display:inline-block;transition:transform .2s var(--ease)}
.vision:hover .v-cta span{transform:translateX(4px)}
.v-cta:focus-visible{box-shadow:none}
.vision:has(.v-cta:focus-visible){box-shadow:0 0 0 3px var(--focus)}

/* ecosystem — collapsible blocks */
.eco{display:grid;gap:10px}
.eco-block{background:var(--surface);border:1px solid var(--border-hi);border-left:3px solid var(--accent);border-radius:12px;overflow:hidden}
.eco-block:nth-child(2){border-left-color:var(--cyan)}
.eco-block:nth-child(3){border-left-color:var(--pink)}
.eco-block:nth-child(4){border-left-color:var(--cyan)}
.eco-block:nth-child(5){border-left-color:var(--pink)}
.eco-block summary,.eco-sources summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:16px 18px;
  font-weight:700;font-size:clamp(17px,1rem + .5vw,20px);color:var(--heading);letter-spacing:-.01em}
.eco-block summary::-webkit-details-marker,.eco-sources summary::-webkit-details-marker{display:none}
.eco-block summary .mono{color:var(--accent-tint);font-weight:500}
.eco-block summary::after,.eco-sources summary::after{content:"+";margin-left:auto;font:400 22px/1 var(--mono);color:var(--dim);transition:transform .2s var(--ease)}
.eco-block[open] summary::after,.eco-sources[open] summary::after{transform:rotate(45deg)}
.eco-block summary:hover{background:var(--accent-soft)}
.eco-list{margin:0;padding:0 18px 6px 38px;color:var(--muted)}
.eco-list li{margin:0 0 10px}
.eco-list li::marker{color:var(--pink)}
.eco-list strong{color:var(--heading)}
.eco-lead{margin:0 18px 12px;color:var(--ink)}
.eco-cta{margin:4px 18px 18px}
.eco-sources{margin-top:16px;border:1px dashed var(--border-hi);border-radius:12px;background:#131033b3}
.eco-sources summary{font-size:14px;font-weight:600;color:var(--muted)}
.eco-sources summary .mono{color:var(--accent-tint)}
.eco-sources ul{margin:0;padding:0 18px 16px 36px;columns:1;font-size:14px}
@media (min-width:760px){.eco-sources ul{columns:2;column-gap:32px}}
.eco-sources li{margin:0 0 6px;break-inside:avoid;color:var(--dim)}
.eco-sources a{color:var(--accent-tint);text-underline-offset:2px}

/* problems — a deeper, glassy band inside the night sky */
.problems{background:linear-gradient(180deg,#05040f99,#0a0724cc 50%,#05040f99);border-block:1px solid var(--border);
  background-image:radial-gradient(50% 70% at 85% 0%,#ff9fd81f,transparent 70%),radial-gradient(45% 60% at 10% 100%,#86ecff17,transparent 70%),linear-gradient(180deg,#05040fb3,#0a0724e6 50%,#05040fb3)}
.prob-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:1fr}
@media (min-width:760px){.prob-list{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.prob-list{grid-template-columns:repeat(3,1fr)}}
.prob-list li{display:flex;gap:14px;padding:18px;background:var(--surface);border:1px dashed var(--border-hi);border-radius:12px;color:var(--muted)}
.prob-list .mono{color:var(--pink);padding-top:3px;flex:none}
.prob-list strong{display:block;color:var(--heading);font-weight:700;margin-bottom:4px;line-height:1.35}
.prob-invite{margin:24px 0 0;color:var(--muted)}
.prob-invite a{color:var(--accent-tint);font-weight:600}

/* coalition */
.coal-grid{display:grid;gap:14px;grid-template-columns:1fr}
@media (min-width:900px){.coal-grid{grid-template-columns:repeat(3,1fr)}}
.coal .panel-head{align-items:center}
.coal-total{font:600 22px/1 var(--mono);color:var(--heading);letter-spacing:-.02em;text-transform:none}
.coal-body{padding:14px}
.coal-desc{margin:0 0 14px;color:var(--muted);font-size:14px}
.coal-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:baseline;margin:0 0 12px;font-size:14px}
.coal-lab .mono{color:var(--accent)}
.coal-n{font:600 14px var(--mono);color:var(--heading)}
.mini{grid-column:1 / -1;height:5px;background:var(--surface-alt);border-radius:999px;overflow:hidden}
.mini i{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);border-radius:inherit;transition:width .6s var(--ease)}
.mini i[data-bar=ai_media_marketing_floor]{background:var(--blue)}
.coal-empty{margin:0 0 16px;padding:14px 16px;border:1px dashed var(--accent);border-radius:10px;background:var(--accent-soft);color:var(--ink)}
.coal-empty .mono,.coal-note .mono{color:var(--accent);margin-right:6px}
.coal-note{margin:14px 0 0;color:var(--dim);font-size:13px}
.hint{margin:6px 0 0;color:var(--dim);font-size:13px}

.coal-endorse{margin:14px 0 0;padding:12px 14px;border:1px solid var(--border-hi);border-radius:10px;background:var(--surface);color:var(--muted);font-size:14px}
.coal-endorse .mono{color:var(--pink);margin-right:4px}
.coal-endorse strong{font:600 16px var(--mono);color:var(--heading)}

/* principles */
.principles{list-style:none;margin:0;padding:0;max-width:760px}
.principles li{padding:14px 0;border-top:1px solid var(--border-hi);color:var(--muted)}
.principles li:last-child{border-bottom:1px solid var(--border-hi)}
.principles strong{color:var(--heading)}

/* form */
.form{max-width:640px;padding:22px}
.field{margin:0 0 18px;border:0;padding:0;min-width:0}
label,legend{display:block;font-weight:600;font-size:15px;color:var(--heading);margin:0 0 7px;padding:0}
label .mono{color:var(--accent)}
.req{color:var(--accent)}
.opt{color:var(--dim);font-weight:400}
input[type=text],input[type=email],textarea{width:100%;font:16px/1.5 var(--sans);color:var(--ink);background:var(--field);border:1px solid var(--border-hi);border-radius:10px;padding:12px 14px;outline:none;transition:border-color .16s,box-shadow .16s}
input::placeholder,textarea::placeholder{color:var(--dim);opacity:.85}
input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus)}
input[aria-invalid=true]{border-color:var(--err)}
textarea{resize:vertical;min-height:96px}
.check{display:flex;gap:10px;align-items:center;font-weight:500;padding:12px 14px;margin:0 0 8px;border:1px solid var(--border-hi);border-radius:10px;cursor:pointer;background:var(--field);transition:border-color .16s,background-color .16s}
.check .mono{color:var(--accent);margin-right:4px}
.check:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.check input{width:20px;height:20px;margin:0;accent-color:var(--accent);flex:none}
.flash{animation:flash 1.2s var(--ease)}
@keyframes flash{0%{box-shadow:0 0 0 0 var(--accent-glow)}30%{box-shadow:0 0 0 6px var(--accent-glow)}100%{box-shadow:0 0 0 0 transparent}}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg-opt{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;padding:12px;font-weight:600;border:1px solid var(--border-hi);border-radius:10px;background:var(--field);cursor:pointer;transition:border-color .16s,background-color .16s}
.seg-opt input{width:18px;height:18px;margin:0;accent-color:var(--accent)}
.seg-opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.optin{align-items:flex-start;font-weight:500}
.optin input{margin-top:2px}
[hidden]{display:none!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{min-height:1.4em;margin:12px 0 0;font-weight:600}
.form-msg.ok{color:var(--ok)}.form-msg.err{color:var(--err)}
.fine{color:var(--dim);font-size:13px;margin:8px 0 0}

.footer{border-top:1px dashed var(--border-hi);background:#05040f99;padding:28px 0 calc(40px + env(safe-area-inset-bottom))}
.footer-in{display:flex;flex-direction:column;gap:8px}
.footer p{margin:0;color:var(--dim);font-size:13px}
/* music control */
.music-btn{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:70;
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;padding:0;cursor:pointer;
  color:var(--heading);background:#131033d9;border:1px solid var(--border-hi);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 6px 20px #00000059;opacity:.8;transition:opacity .2s,box-shadow .2s,border-color .2s}
.music-btn:hover,.music-btn:focus-visible{opacity:1}
.music-btn svg{width:20px;height:20px}
.music-btn .waves{display:none}
.music-btn[aria-pressed=true]{border-color:#ff9fd880;box-shadow:0 0 18px #ff9fd840,0 6px 20px #00000059}
.music-btn[aria-pressed=true] .waves{display:inline}
.music-btn[aria-pressed=true] .mute-x{display:none}
.footer{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

/* ---------- welcome overlay ("Tap To Enter The Vision") ---------- */
html.welcome-open,html.welcome-open body{overflow:hidden}
.welcome{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(120% 80% at 50% 0%,#1a1245 0%,#07061a 60%);opacity:1;transition:opacity .6s ease}
.welcome.wl-out{opacity:0;pointer-events:none}
.wl-fire{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;mix-blend-mode:screen}
.wl-grid{position:absolute;inset:0;opacity:.22;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' fill='none' stroke='%2386ecff' stroke-width='1'%3E%3Cpath d='M0 30h40l10 10h30M60 0v20l10 10v40M120 90H90l-10-10H50l-10 10v30M20 120V80l10-10M100 0v40l-10 10'/%3E%3Ccircle cx='80' cy='40' r='2'/%3E%3Ccircle cx='30' cy='70' r='2'/%3E%3Ccircle cx='50' cy='80' r='2'/%3E%3C/svg%3E");
  -webkit-mask-image:linear-gradient(to top,#000 0%,#0008 55%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,#0008 55%,transparent 100%)}
.wl-scan{position:absolute;inset:0;pointer-events:none;opacity:.35;
  background:repeating-linear-gradient(to bottom,#0000 0 2px,#07061a99 2px 3px);animation:wl-scan 7s linear infinite}
@keyframes wl-scan{to{background-position:0 120px}}
.wl-panel{position:relative;text-align:center;max-width:420px;width:100%;padding:30px 24px 22px;border-radius:18px;
  background:#07061ae0;border:1px solid var(--border-hi);box-shadow:0 0 60px #8b5cff40,inset 0 0 40px #8b5cff1a;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.wl-spark{margin:0 0 6px;color:var(--cyan);font-size:18px;line-height:1}
.wl-title{margin:0 0 10px;display:inline-flex;align-items:center;gap:10px;font-size:clamp(40px,12vw,64px);letter-spacing:-.03em;color:var(--heading)}
.wl-title .wm-text{font:inherit;font-weight:700;color:inherit}
.wl-title .wm-tag{font:500 13px var(--mono);letter-spacing:.06em;padding:3px 7px;border:1px dashed var(--stroke);border-radius:6px;color:var(--ink)}
.wl-desc{margin:0 auto 22px;color:var(--muted);font-size:15px;max-width:32ch}
.wl-enter{width:100%;font-size:17px;padding:16px 20px}
.wl-silent{margin-top:14px;background:none;border:0;color:var(--muted);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:8px}
.wl-silent:hover,.wl-silent:focus-visible{color:var(--heading)}
.wl-enter:focus-visible,.wl-silent:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.welcome{transition:none}.wl-scan{animation:none}}

/* ---------- privacy page + footer link ---------- */
.footer-links{margin:6px 0 0}
.footer-links a,.fine a{color:var(--accent-tint);text-decoration:underline;text-underline-offset:3px}
.privacy{max-width:760px;padding-top:28px}
.privacy h1{font-size:clamp(30px,7vw,44px);line-height:1.1;margin:6px 0 12px;color:var(--heading)}
.privacy h2{font-size:19px;margin:30px 0 8px;color:var(--heading)}
.privacy p,.privacy li{color:var(--muted);font-size:16px;line-height:1.6}
.privacy ul{padding-left:20px;margin:0}
.privacy li{margin:4px 0}
.privacy a{color:var(--accent-tint);text-decoration:underline;text-underline-offset:3px}
.privacy .effective{color:var(--ink);white-space:nowrap}
.privacy-back{margin-top:34px}
