/* ============================================================
   Screens — Playbook library + marketing landing page.
   ============================================================ */
/* ============================================================
   PLAYBOOK  — Guide + persona-prompt library (seeds AXIS)
   pb-* palette mapped onto the app's cockpit tokens so it
   inherits the theme instead of reading as a bolted-on app.
   ============================================================ */
#playbook{
  --pb-panel:var(--panel);--pb-panel-2:var(--panel-2);
  --pb-line:var(--line);--pb-line-2:var(--line-strong);
  --pb-ink:var(--ink);--pb-ink-dim:var(--ink-2);--pb-mute:var(--ink-3);
  --pb-cyan:var(--reactor);--pb-cyan-deep:var(--reactor-deep);--pb-cyan-glow:rgba(var(--glow-rgb),.25);
  --pb-coral:var(--rose);--pb-coral-dim:rgba(251,90,135,.14);
  --pb-radius:var(--r-md);--pb-mono:var(--font-mono);--pb-sans:var(--font-body);
  width:100%;padding:2px 0 24px;color:var(--pb-ink);font-family:var(--pb-sans);animation:fadeup .5s var(--ease);
}
#playbook *{box-sizing:border-box;}
.pb-eyebrow{font-family:var(--pb-mono);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--pb-cyan);display:flex;align-items:center;gap:10px;margin:0 0 12px;}
.pb-eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--pb-cyan),transparent);}
.pb-title{font-family:var(--font-display);font-weight:650;font-size:clamp(24px,4.4vw,34px);line-height:1.08;margin:0 0 8px;letter-spacing:-.01em;}
.pb-title b{color:var(--pb-cyan);font-weight:650;}
.pb-modes{display:flex;gap:8px;margin:24px 0 6px;flex-wrap:wrap;}
.pb-mode{display:inline-flex;align-items:center;gap:9px;cursor:pointer;background:var(--pb-panel);border:1px solid var(--pb-line);color:var(--pb-ink-dim);padding:11px 17px 11px 13px;border-radius:12px;font-family:var(--pb-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;transition:border-color .2s,color .2s,background .2s,box-shadow .2s;}
.pb-mode:hover{color:var(--pb-ink);border-color:var(--pb-line-2);}
.pb-mode[aria-selected="true"]{color:#04252c;background:linear-gradient(180deg,var(--pb-cyan),#12b9d6);border-color:transparent;box-shadow:0 6px 28px -10px var(--pb-cyan-glow);}
.pb-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:11px 14px;border:1px solid var(--pb-coral-dim);border-left:2px solid var(--pb-coral);border-radius:10px;background:rgba(251,90,135,.05);color:var(--pb-ink-dim);font-size:13px;line-height:1.5;}
.pb-note[hidden]{display:none;}
.pb-note b{color:var(--pb-coral);font-weight:600;}
.pb-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.pb-grid[hidden]{display:none;}
.pb-card{border:1px solid var(--pb-line);border-radius:var(--pb-radius);background:linear-gradient(180deg,var(--pb-panel-2),var(--pb-panel));padding:16px 16px 14px;display:flex;flex-direction:column;gap:11px;position:relative;overflow:hidden;transition:transform .18s,border-color .2s,box-shadow .2s;}
.pb-card::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(180deg,var(--pb-cyan),transparent 70%);opacity:.5;}
.pb-card:hover{transform:translateY(-2px);border-color:var(--pb-line-2);box-shadow:0 18px 40px -24px rgba(0,0,0,.8),0 0 0 1px rgba(var(--glow-rgb),.06) inset;}
.pb-prompt{font-family:var(--pb-mono);font-size:12.5px;line-height:1.6;color:#bcd0e0;background:var(--void);border:1px solid var(--pb-line);border-radius:10px;padding:11px 12px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;}
.pb-prompt .slot{color:var(--pb-coral);background:var(--pb-coral-dim);padding:0 4px;border-radius:4px;font-style:normal;}
.pb-bridge{grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px dashed var(--pb-line-2);border-radius:var(--pb-radius);background:linear-gradient(180deg,rgba(251,90,135,.06),transparent);padding:16px 18px;margin-top:2px;}
.pb-bridge[hidden]{display:none;}
.pb-bridge-ico{width:34px;height:34px;flex:0 0 auto;}
.pb-bridge-txt{flex:1;min-width:220px;}
.pb-bridge-txt h4{font-family:var(--font-display);margin:0 0 4px;font-size:15px;font-weight:600;}
.pb-bridge-txt p{margin:0;color:var(--pb-ink-dim);font-size:13.5px;line-height:1.5;}
.pb-bridge a{flex:0 0 auto;text-decoration:none;color:var(--pb-coral);border:1px solid var(--pb-coral-dim);padding:9px 15px;border-radius:9px;font-family:var(--pb-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;transition:background .18s,border-color .18s;}
.pb-bridge a:hover{background:rgba(251,90,135,.08);border-color:var(--pb-coral);}
.pb-guide{display:grid;gap:14px;}
.pb-guide[hidden]{display:none;}
.pb-gpanel{border:1px solid var(--pb-line);border-radius:var(--pb-radius);background:linear-gradient(180deg,var(--pb-panel-2),var(--pb-panel));padding:18px 18px 16px;}
.pb-glabel{font-family:var(--pb-mono);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--pb-ink-dim);margin:0 0 12px;display:flex;align-items:center;gap:9px;}
.pb-glabel .dot{width:6px;height:6px;border-radius:50%;background:var(--pb-cyan);box-shadow:0 0 10px var(--pb-cyan);}
.pb-gpanel h3{font-family:var(--font-display);margin:0 0 8px;font-size:17px;font-weight:620;letter-spacing:-.005em;}
.pb-gpanel p{margin:0 0 10px;color:var(--pb-ink-dim);font-size:14px;line-height:1.6;}
.pb-gpanel p:last-child{margin-bottom:0;}
.pb-gpanel .soft{color:var(--pb-mute);font-size:13px;}
.pb-values{border-left:2px solid var(--pb-coral);}
.pb-values .dot{background:var(--pb-coral);box-shadow:0 0 10px var(--pb-coral);}
.pb-ba{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px;}
.pb-ba-col{border:1px solid var(--pb-line);border-radius:10px;padding:12px;background:var(--void);}
.pb-ba-tag{font-family:var(--pb-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 8px;}
.pb-ba-weak .pb-ba-tag{color:var(--pb-coral);}
.pb-ba-strong .pb-ba-tag{color:var(--pb-cyan);}
.pb-ba-col .q{font-family:var(--pb-mono);font-size:12.5px;line-height:1.55;color:#c3d4e2;margin:0;}
.pb-ba-strong{border-color:rgba(var(--glow-rgb),.28);box-shadow:0 0 0 1px rgba(var(--glow-rgb),.06) inset;}
.pb-list{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:11px;}
.pb-list li{padding-left:20px;position:relative;color:var(--pb-ink-dim);font-size:14px;line-height:1.55;}
.pb-list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;border:1.5px solid var(--pb-cyan);}
.pb-list b{color:var(--pb-ink);font-weight:600;}
.pb-two{grid-template-columns:1fr 1fr;}
@media (max-width:820px){.pb-grid{grid-template-columns:1fr;}.pb-ba{grid-template-columns:1fr;}}
@media (max-width:600px){.pb-two{grid-template-columns:1fr;}}
.pb-mode:focus-visible,.pb-copy:focus-visible,.pb-bridge a:focus-visible{outline:2px solid var(--pb-cyan);outline-offset:2px;}

/* ---- Playbook v2: slim header, search, compact tap-to-use cards ---- */
.pb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 16px;}
.pb-head-l{min-width:0;}
.pb-head .pb-eyebrow{margin:0 0 6px;}
.pb-head .pb-title{margin:0;}
.pb-head-r{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end;min-width:210px;}
.pb-search{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:0 12px;color:var(--ink-3);flex:1;max-width:280px;}
.pb-search:focus-within{border-color:var(--line-strong);box-shadow:0 0 0 3px rgba(var(--glow-rgb),.10);color:var(--reactor);}
.pb-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--ink);font-family:var(--font-body);font-size:13.5px;padding:10px 0;}
.pb-search input::placeholder{color:var(--ink-3);}
.pb-guide-btn{flex:none;background:var(--panel);border:1px solid var(--line);color:var(--ink-2);border-radius:11px;padding:10px 14px;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.2s;white-space:nowrap;}
.pb-guide-btn:hover,.pb-guide-btn.on{color:var(--ink);border-color:var(--line-strong);}
.pb-modes{margin:0 0 14px;}
.pb-catbar{display:flex;align-items:center;gap:12px;margin:0 0 14px;flex-wrap:wrap;}
.pb-catsel{width:auto;min-width:170px;padding:9px 12px;font-size:13px;}
.pb-catdesc{color:var(--ink-2);font-size:13px;line-height:1.4;flex:1;min-width:150px;}
.pb-resultmeta{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 2px 12px;}
.pb-empty{grid-column:1/-1;color:var(--ink-2);font-size:14px;line-height:1.55;padding:8px 2px;}
/* compact card — override the dense v1 card */
.pb-card{gap:7px;padding:15px 16px 13px;cursor:pointer;}
.pb-card::before{opacity:.32;}
.pb-card:hover{transform:none;border-color:var(--line-strong);box-shadow:0 0 0 1px rgba(var(--glow-rgb),.06) inset;}
.pb-k{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0;}
.pb-t{font-family:var(--font-display);font-size:15px;font-weight:600;margin:0;line-height:1.25;letter-spacing:-.005em;}
.pb-d{margin:0;color:var(--ink-2);font-size:13px;line-height:1.5;}
.pb-row{display:flex;align-items:center;justify-content:space-between;margin-top:3px;}
.pb-use-lite{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--reactor);}
.pb-peek{background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink-3);cursor:pointer;padding:5px 7px;display:grid;place-items:center;transition:.2s;}
.pb-peek:hover{color:var(--ink);border-color:var(--line-strong);}
.pb-peek svg{transition:transform .2s;}
.pb-card.peeking .pb-peek{color:var(--reactor);border-color:var(--line-strong);}
.pb-card.peeking .pb-peek svg{transform:rotate(180deg);}
.pb-peekbox{margin-top:2px;}
.pb-peekbox[hidden]{display:none;}
.pb-peekbox .pb-prompt{margin:0;}
.pb-copy{margin-top:8px;width:100%;background:none;border:1px solid var(--line);border-radius:9px;color:var(--ink-2);font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:8px;cursor:pointer;transition:.2s;}
.pb-copy:hover{color:var(--ink);border-color:var(--line-strong);}
.pb-card:focus-visible{outline:2px solid var(--pb-cyan);outline-offset:2px;}

/* ---- Landing page ---- */
.hidden{display:none!important}
/* Landing field: warm blue→pink base, a drifting rose "dawn" glow behind the hero,
   a cool aurora for depth, plus grain + vignette for a premium, alive feel. */
.lp{position:relative;z-index:1;height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-top:env(safe-area-inset-top);
  background:linear-gradient(95deg, #0E3159 0%, #101A2E 38%, #241226 66%, #4A183E 100%)}
/* Flowing wave gradient — smooth blue→pink sine waves glide SLOWLY left→right at different
   speeds, so the gradient itself gently undulates like water. Subtle; grain/vignette on top.
   Seamless loop: each wave's period divides its translate distance. */
.lp-waves{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;
  /* grow the waves taller from the bottom as you scroll — bottom stays pinned to the viewport
     (no floating dark strip), the crest rises, and the wave field fills more of the screen. */
  transform-origin:50% 100%;transform:scaleY(calc(1 + var(--sy,0) * .55))}
.lp-waves .wv{mix-blend-mode:screen;will-change:transform}
.lp-waves .w1{opacity:.11;animation:wave1 84s linear infinite}
.lp-waves .w2{opacity:.08;animation:wave2 112s linear infinite}
.lp-waves .w3{opacity:.06;animation:wave3 68s linear infinite}
/* scroll-reactive depth — a warm pink glow blooms up from the bottom as you descend the page.
   --sy (0→1 scroll progress) is set on #landing by boot.js; unset on load → invisible. */
.lp::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(130% 90% at 50% 135%, rgba(255,79,166,.30), transparent 62%);
  opacity:var(--sy,0)}
@keyframes wave1{from{transform:translateX(0)}to{transform:translateX(-1440px)}}
@keyframes wave2{from{transform:translateX(0)}to{transform:translateX(-1280px)}}
@keyframes wave3{from{transform:translateX(0)}to{transform:translateX(-1200px)}}
/* grain + soft vignette — kills banding, adds texture, focuses the center */
.lp::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    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='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E") repeat,
    radial-gradient(130% 110% at 50% 24%, transparent 52%, rgba(4,8,16,.45) 100%) no-repeat;
  background-size:140px 140px, cover}
.lp-in{max-width:1000px;margin:0 auto;padding:0 22px}
.lp-nav{display:flex;align-items:center;gap:12px;padding:18px 0}
.lp-nav .logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:17px}
.lp-nav .logo svg{width:26px;height:26px}
.lp-nav .logo img{width:30px;height:30px;object-fit:contain}
.lp-link{margin-left:auto;color:var(--ink-2);font-weight:600;font-size:14px;cursor:pointer;padding:9px 14px;border-radius:10px}
.lp-link:hover{color:var(--ink);background:rgba(var(--glow-rgb),.06)}
.lp-hero{padding:46px 0 30px;text-align:center}
.lp-hero .eyebrow{display:inline-block}
.lp-hero h1{font-size:clamp(34px,7vw,58px);line-height:1.05;letter-spacing:-.02em;margin:16px 0 0}
.lp-hero h1 .ac{background:linear-gradient(180deg,var(--reactor-2),var(--reactor-deep));-webkit-background-clip:text;background-clip:text;color:transparent}
.lp-hero p.lead{font-size:clamp(15px,2.4vw,19px);color:var(--ink-2);max-width:640px;margin:18px auto 0;line-height:1.55}
.lp-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.lp-note{color:var(--ink-3);font-size:12px;margin-top:16px}
.lp-sec{padding:42px 0;border-top:1px solid var(--line)}
.lp-sec h2{font-size:clamp(24px,4vw,34px);text-align:center;letter-spacing:-.01em}
.lp-sec .sub{text-align:center;color:var(--ink-2);max-width:620px;margin:12px auto 0;font-size:15px;line-height:1.55}
.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:30px}
.lp-card{padding:22px;text-align:left}
.lp-card .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;background:radial-gradient(circle at 50% 40%,rgba(var(--glow-rgb),.3),rgba(var(--glow-rgb),.05));box-shadow:inset 0 0 0 1px var(--line-strong)}
.lp-card .ic svg{width:21px;height:21px;color:var(--reactor)}
.lp-card b{font-family:var(--font-display);font-size:16px;display:block;margin-bottom:6px}
.lp-card p{color:var(--ink-2);font-size:13.5px;line-height:1.55;margin:0}
.axis-word{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:28px}
.axis-chip{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left}
.axis-chip b{font-family:var(--font-display);color:var(--reactor);font-size:16px}
.axis-chip span{display:block;color:var(--ink-2);font-size:12.5px;margin-top:4px;line-height:1.45}
.lp-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:30px}
.lp-step{padding:22px}
.lp-step .n{font-family:var(--font-mono);color:var(--reactor);font-size:12px;letter-spacing:.1em}
.lp-step b{font-family:var(--font-display);display:block;margin:8px 0 6px;font-size:16px}
.lp-step p{color:var(--ink-2);font-size:13.5px;margin:0;line-height:1.5}
.lp-prices{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:30px}
.lp-price{padding:24px;display:flex;flex-direction:column}
.lp-price.feat{border-color:var(--line-strong);box-shadow:0 0 0 1px var(--line-strong),0 0 44px -22px var(--reactor)}
.lp-price .tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--reactor)}
.lp-price .amt{font-family:var(--font-display);font-size:34px;font-weight:700;margin:10px 0 2px}
.lp-price .amt small{font-size:14px;color:var(--ink-2);font-weight:500}
.lp-price ul{list-style:none;padding:0;margin:16px 0 20px;display:grid;gap:9px}
.lp-price li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--ink-2)}
.lp-price li svg{width:16px;height:16px;color:var(--green);flex:none;margin-top:2px}
.lp-price .btn{margin-top:auto}
/* the four acronym initials, accented in the "Meet A.X.I.S." reveal so the mapping is memorable */
.axis-init{color:var(--reactor)}
/* footer fine print — privacy assurance + not-affiliated disclaimer */
.lp-foot-fine{max-width:560px;margin:14px auto 0;font-size:11px;line-height:1.6;color:var(--ink-3)}
/* About — two-friends photo + copy (photo cropped via object-position to hide top dead space) */
.lp-about-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;align-items:center;margin-top:30px;text-align:left}
.lp-about-photo{margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-strong);box-shadow:var(--glow);aspect-ratio:5/4}
.lp-about-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 74%;display:block}
.lp-about-copy p{color:var(--ink-2);font-size:15px;line-height:1.65;margin:0 0 14px}
.lp-about-copy p:last-child{margin-bottom:0}
.lp-about-copy b{color:var(--ink)}
.lp-about-copy a{color:var(--reactor);font-weight:600}
@media(max-width:760px){.lp-about-grid{grid-template-columns:1fr;gap:18px;text-align:center}.lp-about-photo{max-width:420px;margin:0 auto}}

.lp-foot{position:relative;padding:44px 0;border-top:1px solid var(--line);text-align:center;color:var(--ink-3);font-size:12.5px;
  /* full-width dark footer band that only appears when you scroll to the end (sits above the waves) */
  background:var(--void);box-shadow:0 0 0 100vw var(--void);clip-path:inset(0 -100vw)}
.lp-foot a,.lp-foot .linkbtn{color:var(--ink-2);cursor:pointer;margin:0 8px}

/* ============================================================
   HOME — three-section switcher (Understand / Connect / Grow)
   + the neon "question of the day" hero and the boot splash.
   Reuses the app's tokens; the two-colour neon is the brand
   gradient (--grad-a pink → --grad-b blue) in both themes.
   ============================================================ */
.home{width:100%;padding:2px 0 10px;}
/* Home screen: the switcher dock defines the bottom edge, so drop the big bottom padding
   that other screens keep as clearance for the floating install nudge. */
.view[data-screen="brief"]{padding-bottom:14px;}

/* section switcher — icon over label, hairline dividers between, no boxes (per the reference).
   Docked at the top of Connect/Grow; sits under the hero on Understand. */
/* permanent switcher dock — sits between the scroll area and the tab bar, on every Home section */
.home-dock{flex:none;border-top:1px solid var(--line);
  background:rgba(8,12,18,.8);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  padding:3px 12px 4px;z-index:4;}
.home-dock[hidden]{display:none;}
.home-modes{display:flex;align-items:stretch;justify-content:center;gap:0;margin:0 auto;max-width:420px;}
.home-mode{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;
  background:none;border:none;border-radius:0;padding:9px 6px;
  color:var(--ink-3);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.09em;
  text-transform:uppercase;text-align:center;line-height:1.15;transition:color .2s;}
.home-mode+.home-mode::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:1px;background:var(--line);}
.home-mode svg{width:26px;height:26px;transition:filter .2s,transform .2s;}
.home-mode[data-sec="understand"] svg{color:var(--grad-a);}
.home-mode[data-sec="connect"] svg{color:var(--ink);}
.home-mode[data-sec="grow"] svg{color:var(--grad-b);}
.home-mode:hover{color:var(--ink-2);}
.home-mode[aria-selected="true"]{color:var(--ink);}
.home-mode[aria-selected="true"] svg{filter:drop-shadow(0 0 9px currentColor);transform:translateY(-1px);}
.home-mode:focus-visible{outline:2px solid var(--reactor);outline-offset:3px;border-radius:9px;}
@media (max-width:380px){.home-mode{font-size:9.5px;letter-spacing:.05em;}.home-mode svg{width:24px;height:24px;}}

/* ① Understand — logo, a neon heart-outline holding the question, switcher beneath.
   Sized to sit on one phone screen: logo + heart + switcher above the tab bar. */
.uh{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  padding:4px 0 2px;animation:fadeup .5s var(--ease);}
/* neon lockup, keyed to transparency so the glow sits on the app's field with no matte box.
   Bounded by height so the tall lockup doesn't crowd out the heart below. */
.uh-logo{width:auto;max-width:78%;max-height:150px;display:block;margin:0 auto;
  filter:drop-shadow(0 6px 26px rgba(56,196,255,.28));}
/* the supplied neon speech-heart (glow baked in, wall keyed out) + the question inside it */
.uh-heart{position:relative;display:block;width:100%;max-width:330px;margin:0 auto;
  background:none;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;}
.uh-heart-img{width:100%;height:auto;display:block;transition:filter .25s var(--ease);
  filter:drop-shadow(0 0 10px rgba(56,196,255,.22));}
.uh-heart:hover .uh-heart-img,.uh-heart:focus-visible .uh-heart-img{
  filter:drop-shadow(0 0 8px rgba(255,77,166,.55)) drop-shadow(0 0 20px rgba(56,196,255,.5));}
.uh-heart:focus-visible{outline:none;}
.uh-q{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:58%;margin:0;
  text-align:center;font-family:var(--font-display);font-weight:600;
  font-size:clamp(15px,4.3vw,20px);line-height:1.26;color:#fff;
  text-shadow:0 0 18px rgba(120,180,255,.45);pointer-events:none;text-wrap:balance;}
/* whisper-quiet nudge so the tap-to-reflect interaction is discoverable */
.uh-hint{margin:6px 0 0;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;
  color:var(--ink-3);opacity:.75;}

/* ⑤ Boot splash — full-screen launch beat, same neon language */
#bootsplash{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  background:var(--bg-field);opacity:1;transition:opacity .6s var(--ease);}
#bootsplash::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(600px 460px at 50% 42%,rgba(255,77,166,.16),transparent 60%),
             radial-gradient(600px 460px at 50% 42%,rgba(56,196,255,.14),transparent 62%);}
#bootsplash.gone{opacity:0;}
.bs-core{position:relative;z-index:1;display:grid;place-items:center;
  animation:fadeup .6s var(--ease);}
.bs-lockup{width:min(76vw,360px);height:auto;display:block;
  animation:bs-pulse 2.6s ease-in-out infinite;}
@keyframes bs-pulse{0%,100%{filter:drop-shadow(0 0 18px rgba(56,196,255,.35))}50%{filter:drop-shadow(0 0 34px rgba(255,77,166,.5))}}
@media (prefers-reduced-motion:reduce){.bs-lockup{animation:none}#bootsplash{transition:none}}
