/* Neuravision — entry popup: live workshop invite.
   Self-contained: brings its own tokens as fallbacks, so it can be dropped on any page.
   All card rules are scoped to .nvw-ov so the page's own ".nvw" section is never touched. */
.nvw-ov{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;
  background:rgba(4,4,9,.58);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  opacity:0;pointer-events:none;transition:opacity .28s ease}
.nvw-ov.on{opacity:1;pointer-events:auto}
.nvw-ov[hidden]{display:none}

/* compact centred card: the site stays visible around it */
.nvw-ov .nvw{position:relative;width:100%;max-width:760px;max-height:80vh;max-height:80dvh;overflow:hidden;
  display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;
  background:#12121d;color:#f5f5fa;border:1px solid rgba(255,255,255,.12);border-radius:22px;
  box-shadow:0 48px 110px -24px rgba(0,0,0,.85),0 0 0 1px rgba(255,106,26,.12);
  transform:translateY(18px) scale(.985);transition:transform .32s cubic-bezier(.2,.9,.25,1);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.5}
.nvw-ov.on .nvw{transform:none}
.nvw-scroll{display:contents}

/* ---------- left: visual (full banner, never cropped) ---------- */
.nvw-art{grid-column:1;grid-row:1/3;position:relative;overflow:hidden;border-radius:22px 0 0 22px;background:#07070c;
  display:flex;flex-direction:column;justify-content:space-between;padding:0;min-height:0}
.nvw-art img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:#07070c;flex:none}
.nvw-artb{position:relative;padding:14px 16px 16px;flex:1;min-height:0;
  background:linear-gradient(180deg,#0c0c15 0%,#12121d 100%),#12121d}
.nvw-artb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:60%;pointer-events:none;
  background:radial-gradient(420px 220px at 50% 120%,rgba(255,106,26,.22),transparent 70%)}
.nvw-artb>*{position:relative;z-index:1}
.nvw-live{display:inline-flex;align-items:center;gap:7px;
  background:rgba(7,7,12,.7);border:1px solid rgba(255,61,15,.5);color:#ff9a5c;
  font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:999px;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.nvw-live i{width:7px;height:7px;border-radius:50%;background:#ff3d0f;box-shadow:0 0 0 0 rgba(255,61,15,.6);animation:nvw-ping 1.8s ease-out infinite}
@keyframes nvw-ping{0%{box-shadow:0 0 0 0 rgba(255,61,15,.55)}70%,100%{box-shadow:0 0 0 9px rgba(255,61,15,0)}}

.nvw-cd{position:relative;z-index:2;display:flex;gap:6px}
.nvw-cd div{flex:1;min-width:0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;
  padding:7px 4px;text-align:center}
.nvw-cd b{display:block;font-size:18px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.nvw-cd span{display:block;font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a3a3b8;margin-top:2px}
.nvw-art .nvw-cdlbl{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11.5px;color:#a3a3b8;margin:0 0 8px;font-weight:600}

/* ---------- right: content (scrolls inside the card) ---------- */
.nvw-body{grid-column:2;grid-row:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:22px 26px 18px}
.nvw-body,.nvw-scroll{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.nvw-body::-webkit-scrollbar,.nvw-scroll::-webkit-scrollbar{width:6px}
.nvw-body::-webkit-scrollbar-thumb,.nvw-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:6px}
.nvw-body::-webkit-scrollbar-track,.nvw-scroll::-webkit-scrollbar-track{background:transparent}
.nvw-eyebrow{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ff9a5c;margin:0 0 8px}
.nvw-body h2{margin:0 0 8px;font-size:24px;line-height:1.12;letter-spacing:-.03em;font-weight:800;padding-right:34px}
.nvw-body h2 em{font-style:normal;background:linear-gradient(120deg,#ff6a1a,#ff3d0f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#ff6a1a}
.nvw-sub{margin:0 0 12px;color:#a3a3b8;font-size:13.5px}
.nvw-when{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.nvw-when span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;border-radius:999px;padding:4px 10px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#f5f5fa;white-space:nowrap}
.nvw-when span.hot{color:#ff9a5c;background:rgba(255,106,26,.1);border-color:rgba(255,106,26,.32)}

.nvw-list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:7px}
.nvw-list li{position:relative;padding-left:24px;font-size:13.5px;color:#dcdce6}
.nvw-list li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;
  background:rgba(255,106,26,.16);border:1px solid rgba(255,106,26,.45)}
.nvw-list li::after{content:"";position:absolute;left:5px;top:7px;width:5px;height:8px;border:2px solid #ff9a5c;border-top:0;border-left:0;transform:rotate(42deg)}
.nvw-list li b{color:#fff;font-weight:700}

.nvw-sp{border-top:1px solid rgba(255,255,255,.08);padding-top:11px;margin-bottom:0}
.nvw-sp p{margin:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#a3a3b8}
.nvw-sp ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.nvw-sp li{display:flex;align-items:center;gap:9px;min-width:0}
.nvw-sp .tx{min-width:0;font-size:12.5px;line-height:1.25}
.nvw-sp .tx b{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nvw-sp .tx small{color:#a3a3b8;font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* desktop: the same "Hosted with" list, mirrored into the left column under the countdown
   (fills the empty space there and keeps the right column short enough to need no internal
   scroll). The body copy above is for mobile only — see the two display toggles below. */
.nvw-body .nvw-sp{display:none}
.nvw-spd{display:block;border-top:1px solid rgba(255,255,255,.1);margin-top:10px;padding-top:10px}
.nvw-spd p{margin:0 0 7px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#a3a3b8}
.nvw-spd ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.nvw-spd li{font-size:11.5px;color:#dcdce6;line-height:1.3}
.nvw-spd li b{color:#fff;font-weight:700;display:block}
.nvw-spd li small{color:#8a8a9e;font-size:10px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- footer: the form never covers the text — it sits below the scroll area with a soft fade above ---------- */
.nvw-foot{grid-column:2;grid-row:2;position:relative;z-index:3;min-width:0;padding:8px 26px 18px;background:#12121d}
.nvw-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:30px;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,18,29,0),rgba(18,18,29,.94))}
.nvw-form{display:flex;gap:8px;align-items:stretch}
.nvw-form input{flex:1;min-width:0;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:#f5f5fa;
  border-radius:12px;padding:12px 14px;font-size:14.5px;min-height:46px}
.nvw-form input::placeholder{color:#7a7a90}
.nvw-form input:focus{outline:2px solid #ff6a1a;outline-offset:1px;border-color:transparent}
.nvw-form button{flex:none;border:0;cursor:pointer;border-radius:12px;padding:12px 18px;font-size:14.5px;font-weight:800;min-height:46px;white-space:nowrap;
  background:linear-gradient(120deg,#ff6a1a,#ff3d0f);color:#fff;box-shadow:0 8px 30px rgba(255,106,26,.35);
  transition:transform .15s ease,box-shadow .15s ease;font-family:inherit}
.nvw-form button:hover{transform:translateY(-2px);box-shadow:0 12px 38px rgba(255,106,26,.55)}
.nvw-form button[disabled]{opacity:.6;cursor:default;transform:none}
.nvw-err{color:#ff6b7a;font-size:12.5px;margin:7px 0 0;min-height:0}
.nvw-err:empty{display:none}
.nvw-fine{color:#8a8a9e;font-size:11.5px;margin:8px 0 0}
.nvw-later{background:none;border:0;padding:0;margin:8px 0 0;color:#a3a3b8;font-size:12.5px;font-weight:600;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;font-family:inherit}
.nvw-later:hover{color:#f5f5fa}

.nvw-x{position:absolute;top:12px;right:12px;z-index:4;width:34px;height:34px;border-radius:50%;cursor:pointer;
  background:rgba(7,7,12,.6);border:1px solid rgba(255,255,255,.14);color:#f5f5fa;font-size:18px;line-height:1;
  display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:inherit}
.nvw-x:hover{background:rgba(255,255,255,.14)}

/* ---------- success state ---------- */
.nvw-ok{padding:40px 32px;text-align:center;grid-column:1/-1;grid-row:1/-1;overflow:auto}
.nvw-ok .tick{width:62px;height:62px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;
  background:rgba(0,255,136,.12);border:1px solid rgba(0,255,136,.45);color:#00ff88;font-size:28px;font-weight:800}
.nvw-ok h2{margin:0 0 10px;font-size:26px;letter-spacing:-.02em;font-weight:800}
.nvw-ok p{margin:0 auto 20px;color:#a3a3b8;font-size:14.5px;max-width:460px}
.nvw-ok .acts{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.nvw-ok .acts a,.nvw-ok .acts button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;
  border-radius:12px;padding:13px 20px;font-size:14.5px;font-weight:700;cursor:pointer;min-height:46px;font-family:inherit;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#fff}
.nvw-ok .acts a.pri{background:linear-gradient(120deg,#ff6a1a,#ff3d0f);border-color:transparent;box-shadow:0 8px 30px rgba(255,106,26,.35)}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .nvw-ov .nvw{display:flex;flex-direction:column;max-width:520px;max-height:75vh;max-height:75dvh}
  .nvw-scroll{display:block;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .nvw-art{border-radius:22px 22px 0 0;flex:none}
  /* banner shrinks but stays whole: sits beside the countdown instead of on top of everything */
  .nvw-art{flex-direction:row;align-items:stretch}
  .nvw-art img{width:42%;max-width:190px;height:auto;aspect-ratio:1/1}
  .nvw-artb{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:12px 48px 12px 12px}
  .nvw-art .nvw-cdlbl{margin-bottom:8px}
  .nvw-body{overflow:visible;padding:16px 18px 18px}
  .nvw-body h2{padding-right:0}
  .nvw-sp ul{grid-template-columns:1fr 1fr}
  .nvw-body .nvw-sp{display:block}
  .nvw-spd{display:none}
  .nvw-foot{flex:none;padding:10px 18px 14px;border-top:1px solid rgba(255,255,255,.08)}
  .nvw-foot::before{height:28px}
}
@media (max-width:640px){
  .nvw-ov{padding:0;align-items:flex-end}
  .nvw-ov .nvw{max-width:none;border-radius:20px 20px 0 0;transform:translateY(40px)}
  .nvw-art{border-radius:20px 20px 0 0}
  .nvw-artb{padding:10px 46px 10px 10px}
  .nvw-cd{gap:4px}
  .nvw-cd div{padding:5px 2px;border-radius:8px}
  .nvw-cd b{font-size:15px}
  .nvw-cd span{font-size:8.5px;letter-spacing:.05em}
  .nvw-live{font-size:10px;padding:4px 8px}
  .nvw-body{padding:14px 18px 16px}
  .nvw-body h2{font-size:22px}
  .nvw-list li:nth-child(n+4){display:none}
  .nvw-sp .tx small{display:none}
  .nvw-foot{padding:10px 18px calc(12px + env(safe-area-inset-bottom))}
  .nvw-fine{display:none}
  .nvw-ok{padding:30px 18px}
}
@media (prefers-reduced-motion:reduce){
  .nvw-ov,.nvw-ov .nvw{transition:none}
  .nvw-ov .nvw{transform:none}
  .nvw-live i{animation:none}
}
