:root {
  --bg: #fdfefd;
  --bg-deep: #f2f8f4;
  --panel: rgba(255, 255, 255, .86);
  --panel-strong: #ffffff;
  --line: rgba(30,36,51,.10);
  --line-strong: rgba(30,36,51,.18);
  --text: #1e2433;
  --muted: #3f4bc0;
  --green: #3f4bc0;
  --green-ink: #3f4bc0;
  --green-bright: #3f4bc0;
  --lime: #a6c400;
  --lime-ink: #3f4bc0;
  --shadow: 0 24px 70px rgba(30,36,51,.10);
  --radius: 24px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 70% -10%, rgba(89,101,219,.10), transparent 34%),
    radial-gradient(circle at 10% 25%, rgba(89,101,219,.04), transparent 25%),
    var(--bg);
  font-family: "Segoe UI Variable Display", "Segoe UI Variable Text", "Aptos", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  overflow-x: hidden;
}

::selection { background: var(--green); color: #041009; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  z-index: 100;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
}

.shell { width: min(1560px, calc(100% - 40px)); margin: 0 auto; }
.site-header {
  width: min(1280px, calc(100% - 32px));
  height: 76px;
  margin: 12px auto 0;
  padding: 0 18px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  position: sticky;
  top: 10px;
  z-index: 50;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(252,253,252,.72);
  backdrop-filter: blur(18px);
}

.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 760; letter-spacing: -.02em; }
.brand-mark {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--green);
  color: #06110a;
  box-shadow: inset 0 0 0 1px rgba(30,36,51,.34), 0 8px 30px rgba(89,101,219,.12);
  font-weight: 900;
}
.nav { display: flex; gap: 30px; color: var(--muted); font-size: 14px; }
.nav a { transition: .2s ease; }
.nav a:hover, .active-link { color: var(--text); }
.site-header > .button { justify-self: end; }

.button {
  min-height: 48px;
  padding: 0 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-weight: 720;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--green); color: #051109; box-shadow: 0 14px 50px rgba(89,101,219,.14); }
.button-primary:hover { background: var(--green-bright); }
.button-ghost { background: rgba(30,36,51,.025); border-color: var(--line); color: var(--text); }
.button-ghost:hover { border-color: var(--line-strong); background: rgba(30,36,51,.05); }
.button-small { min-height: 42px; padding: 0 16px; font-size: 13px; }

.hero { padding: 112px 0 92px; }
.eyebrow, .section-kicker, .mini-label {
  color: var(--green-ink);
  font-size: 12px;
  letter-spacing: .13em;
  text-transform: uppercase;
  font-weight: 800;
}
.eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 24px; }
.pulse { width: 8px; height: 8px; border-radius: 999px; background: var(--green); box-shadow: 0 0 0 6px rgba(89,101,219,.08); }
.hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; gap: 72px; align-items: center; }
.hero h1 {
  margin: 0;
  max-width: 760px;
  font-size: clamp(62px, 8vw, 112px);
  line-height: .87;
  letter-spacing: -.065em;
  font-weight: 760;
}
.hero h1 span { color: var(--green-ink); }
.hero-lead { max-width: 670px; margin: 34px 0 0; color: #737b8c; font-size: clamp(18px, 2vw, 22px); line-height: 1.55; letter-spacing: -.015em; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; color: #737b8c; font-size: 12px; }

.notebook-card {
  min-height: 520px;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(246,248,247,.96), rgba(252,252,252,.94));
  box-shadow: var(--shadow), inset 0 1px rgba(30,36,51,.04);
  transform: perspective(1100px) rotateY(-3deg) rotateX(2deg);
}
.notebook-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(30,36,51,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(30,36,51,.018) 1px, transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom, black, transparent 90%);
}
.notebook-topbar { height: 58px; padding: 0 18px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid var(--line); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; color: #737b8c; position: relative; z-index: 2; }
.window-dots { display: flex; gap: 6px; }
.window-dots i { width: 8px; height: 8px; background: #737b8c; border-radius: 50%; }
.notebook-topbar .status { justify-self: end; color: var(--green-ink); }
.cell { margin: 28px 24px 0; padding: 18px 18px 22px 48px; border: 1px solid var(--line); border-radius: 16px; background: rgba(0,0,0,0.0431); position: relative; z-index: 2; }
.active-cell { border-color: rgba(89,101,219,.34); box-shadow: 0 0 0 1px rgba(89,101,219,.04), 0 20px 60px rgba(0,0,0,0.0471); }
.cell-index { position: absolute; left: 13px; top: 18px; color: #737b8c; font: 11px ui-monospace, monospace; }
pre { margin: 0; white-space: pre-wrap; font: 13px/1.9 ui-monospace, SFMono-Regular, Menlo, monospace; color: #1e2433; }
.keyword { color: #3f4bc0; }.muted { color: #737b8c; }.number { color: #3f4bc0; }.string { color: #3f4bc0; }.output { display: block; color: var(--green-ink); margin-top: 8px; }
.progress { height: 6px; margin-top: 18px; background: rgba(30,36,51,.05); border-radius: 99px; overflow: hidden; }
.progress span { display: block; height: 100%; width: 67%; background: linear-gradient(90deg, var(--green), var(--lime)); border-radius: inherit; box-shadow: 0 0 20px rgba(89,101,219,.45); }
.cell-foot { margin-top: 9px; display: flex; justify-content: space-between; color: #737b8c; font: 10px ui-monospace, monospace; }
.notebook-glow { position: absolute; width: 260px; height: 260px; background: rgba(89,101,219,.06); filter: blur(70px); border-radius: 50%; right: -100px; bottom: -120px; }

.ticker { overflow: hidden; border-block: 1px solid var(--line); background: rgba(30,36,51,.015); }
.ticker-track { min-width: max-content; padding: 14px 0; display: flex; align-items: center; gap: 26px; color: #737b8c; font: 700 11px/1 ui-monospace, monospace; letter-spacing: .12em; }
.ticker-track i { color: var(--green-ink); font-style: normal; font-size: 8px; }

.section { padding: 84px 0; }
.section-kicker { margin-bottom: 24px; color: #737b8c; }
.split-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 80px; align-items: end; margin-bottom: 58px; }
.split-heading h2 { margin: 0; font-size: clamp(42px, 5vw, 72px); line-height: .98; letter-spacing: -.05em; font-weight: 700; }
.split-heading > p, .pricing-heading p { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.7; max-width: 500px; }
.feature-grid, .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.feature-card, .price-card, .estimator-panel, .blog-card { opacity: .72; transform: translateY(14px); transition: opacity .65s ease, transform .65s ease, border-color .25s ease; }
.reveal { opacity: 1; transform: translateY(0); }
.feature-card { min-height: 280px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(160deg, rgba(30,36,51,.025), rgba(30,36,51,.008)); }
.feature-card:hover { border-color: var(--line-strong); }
.feature-number { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 10px; color: var(--green-ink); font: 11px ui-monospace, monospace; }
.feature-card h3 { margin: 72px 0 10px; font-size: 25px; letter-spacing: -.035em; }
.feature-card p { margin: 0; color: var(--muted); line-height: 1.7; }

.pricing-heading { align-items: stretch; }
.price-note { margin-top: 18px !important; font-size: 13px !important; }
.formula-card { padding: 24px; display: grid; grid-template-columns: 1fr auto; gap: 9px 18px; align-items: center; border: 1px solid var(--line); border-radius: 20px; background: rgba(30,36,51,.02); font: 12px ui-monospace, monospace; color: #737b8c; }
.formula-card b { color: var(--green-ink); font-size: 20px; letter-spacing: -.04em; }
.price-card { min-height: 455px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(30,36,51,.02); }
.price-card.featured { border-color: rgba(89,101,219,.36); background: linear-gradient(155deg, rgba(89,101,219,.08), rgba(30,36,51,.018) 55%); }
.price-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #737b8c; font: 10px ui-monospace, monospace; text-transform: uppercase; letter-spacing: .08em; }
.pill { padding: 7px 9px; border-radius: 999px; background: var(--green); color: #07110a; font-weight: 900; }
.pill-muted { color: var(--green-ink); background: rgba(89,101,219,.09); border: 1px solid rgba(89,101,219,.17); }
.price-card h3 { margin: 30px 0 0; font-size: 22px; letter-spacing: -.03em; }
.price { display: flex; align-items: baseline; gap: 4px; margin-top: 18px; }
.price > span { font-size: 18px; color: var(--green-ink); }
.price strong { font-size: 64px; line-height: .9; letter-spacing: -.06em; }
.price small { color: #737b8c; font-size: 12px; }
.price-card > p { color: var(--muted); font-size: 13px; line-height: 1.65; min-height: 44px; }
.price-card ul { list-style: none; margin: 24px 0; padding: 22px 0; border-block: 1px solid var(--line); color: #737b8c; font-size: 13px; }
.price-card li { padding: 6px 0; }
.price-card li::before { content: "↳"; margin-right: 9px; color: #737b8c; }
.text-link { color: var(--green-ink); font-weight: 740; font-size: 13px; }

.estimator-panel { margin-top: 16px; padding: 30px; display: grid; grid-template-columns: .8fr 1fr .72fr; gap: 42px; align-items: center; border: 1px solid var(--line); border-radius: 24px; background: linear-gradient(110deg, rgba(89,101,219,.055), rgba(30,36,51,.012)); }
.estimator-copy h3 { margin: 8px 0 6px; font-size: 27px; letter-spacing: -.035em; }
.estimator-copy p { margin: 0; color: var(--muted); font-size: 13px; }
.estimator-controls { display: grid; gap: 14px; }
.estimator-controls label, .waitlist-form > label, .form-row label { display: grid; gap: 9px; color: #737b8c; font-size: 12px; font-weight: 700; }
select, input, textarea { width: 100%; border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,0.0471); color: var(--text); outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
select, input { height: 48px; padding: 0 13px; }
textarea { padding: 13px; resize: vertical; }
select:focus, input:focus, textarea:focus { border-color: rgba(89,101,219,.45); box-shadow: 0 0 0 4px rgba(89,101,219,.06); }
input[type="range"] { height: 6px; padding: 0; accent-color: var(--green); border: 0; }
.estimate-total { display: grid; gap: 4px; padding-left: 28px; border-left: 1px solid var(--line); }
.estimate-total span { color: #737b8c; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.estimate-total strong { font-size: 42px; letter-spacing: -.05em; color: var(--green-ink); }
.estimate-total small { color: #737b8c; font-size: 10px; line-height: 1.5; }
.source-note { margin-top: 18px; padding: 0 10px; color: #737b8c; font-size: 11px; line-height: 1.7; }

.waitlist-form { padding: 30px; display: grid; gap: 24px; border: 1px solid var(--line); border-radius: 28px; background: rgba(30,36,51,.018); }
.form-row.two { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
fieldset { margin: 0; padding: 0; border: 0; }
legend { margin-bottom: 10px; color: #737b8c; font-size: 12px; font-weight: 700; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice span { min-height: 48px; padding: 0 12px; display: flex; align-items: center; border: 1px solid var(--line); border-radius: 12px; color: #737b8c; font-size: 12px; cursor: pointer; transition: .2s; }
.choice input:checked + span { border-color: rgba(89,101,219,.45); color: var(--green-ink); background: rgba(89,101,219,.06); box-shadow: inset 0 0 0 1px rgba(89,101,219,.08); }
.consent { grid-template-columns: 18px 1fr !important; align-items: start; gap: 10px !important; font-weight: 500 !important; line-height: 1.5; }
.consent input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--green); }
.submit-button { width: 100%; border: 0; }
.form-foot { margin: -8px 0 0; color: #737b8c; text-align: center; font-size: 10px; }
.success { display: none; padding: 14px 16px; border: 1px solid rgba(89,101,219,.26); border-radius: 12px; color: var(--green-ink); background: rgba(89,101,219,.06); font-size: 12px; }
.success.show { display: block; }

.blog-teaser { padding-top: 70px; }
.blog-card { min-height: 390px; padding: 38px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 30px; background: radial-gradient(circle at 85% 15%, rgba(89,101,219,.12), transparent 27%), linear-gradient(145deg, rgba(30,36,51,.025), rgba(30,36,51,.008)); }
.blog-card:hover { border-color: rgba(89,101,219,.3); }
.blog-meta { display: flex; justify-content: space-between; color: #737b8c; font: 10px ui-monospace, monospace; letter-spacing: .1em; }
.blog-card h2 { max-width: 850px; margin: 80px 0 18px; font-size: clamp(36px, 5vw, 67px); line-height: .98; letter-spacing: -.05em; }
.blog-card p { max-width: 720px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.blog-arrow { color: var(--green-ink); font-weight: 750; }

.footer { padding: 42px 0 54px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: end; border-top: 1px solid var(--line); color: #737b8c; font-size: 12px; }
.footer p { margin: 10px 0 0; }.footer-links { display: flex; gap: 22px; }.footer-links a:hover { color: var(--text); }.footer-note { text-align: right; }

/* Article */
.article-shell { width: min(920px, calc(100% - 40px)); margin: 0 auto; }
.back-link { display: inline-block; margin-top: 68px; color: #737b8c; font-size: 13px; }
.article-header { padding: 72px 0 54px; }
.article-header h1 { margin: 18px 0 22px; font-size: clamp(50px, 8vw, 92px); line-height: .94; letter-spacing: -.06em; }
.article-deck { max-width: 750px; margin: 0; color: #737b8c; font-size: 20px; line-height: 1.65; }
.article-byline { margin-top: 30px; padding-top: 20px; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: #737b8c; font: 11px ui-monospace, monospace; text-transform: uppercase; letter-spacing: .08em; }
.article-hero-visual { height: 460px; position: relative; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 30px; background: radial-gradient(circle, rgba(89,101,219,.13), transparent 34%), linear-gradient(135deg, #f9fafa, #fcfdfc); }
.article-hero-visual::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(89,101,219,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(89,101,219,.04) 1px, transparent 1px); background-size: 32px 32px; }
.chip { width: 180px; height: 180px; position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(89,101,219,.4); border-radius: 24px; background: rgba(251,252,252,.88); box-shadow: 0 0 80px rgba(89,101,219,.12), inset 0 0 40px rgba(89,101,219,.03); }
.chip::before, .chip::after { content: ""; position: absolute; left: -100px; right: -100px; height: 1px; background: linear-gradient(90deg, transparent, var(--green), transparent); opacity: .35; }.chip::after { transform: rotate(90deg); }
.chip span, .chip small { color: #737b8c; font: 9px ui-monospace, monospace; letter-spacing: .12em; }.chip strong { color: var(--green-ink); font-size: 45px; letter-spacing: -.05em; }
.data-stream { position: absolute; color: rgba(89,101,219,.22); font: 11px/2.1 ui-monospace, monospace; letter-spacing: .2em; }.data-stream.left { left: 12%; }.data-stream.right { right: 12%; text-align: right; }
.article-body { width: min(720px, 100%); margin: 74px auto 120px; }
.article-body p { color: #737b8c; font-size: 17px; line-height: 1.9; }
.article-body .lead-paragraph { color: #1e2433; font-size: 22px; line-height: 1.7; }
.article-body h2 { margin: 60px 0 14px; font-size: 35px; line-height: 1.15; letter-spacing: -.04em; }
.article-body img { display: block; width: 100%; max-width: 100%; height: auto; margin: 40px auto; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,0.08); }
.article-body iframe { display: block; width: 100%; aspect-ratio: 16 / 9; margin: 40px auto; border: 0; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,0.08); }
.article-callout { margin: 30px 0; padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: rgba(89,101,219,.045); box-shadow: inset 0 1px rgba(89,101,219,.12); color: #737b8c; font-size: 14px; line-height: 1.7; }
.article-callout strong { color: var(--green-ink); }
.article-quote { margin: 54px 0; padding: 34px 0; border-block: 1px solid var(--line); color: var(--green-bright); font-size: 29px; line-height: 1.45; letter-spacing: -.025em; }
.article-cta { margin-top: 72px; padding: 28px; display: flex; gap: 30px; align-items: center; justify-content: space-between; border: 1px solid var(--line); border-radius: 22px; background: rgba(89,101,219,.04); }
.article-cta h3 { margin: 8px 0 0; max-width: 390px; font-size: 22px; letter-spacing: -.03em; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }.nav { display: none; }
  .hero { padding-top: 80px; }.hero-grid, .split-heading { grid-template-columns: 1fr; gap: 42px; }
  .hero h1 { font-size: clamp(58px, 15vw, 100px); }.notebook-card { min-height: 470px; transform: none; }
  .feature-grid, .pricing-grid { grid-template-columns: 1fr; }.feature-card { min-height: 220px; }.feature-card h3 { margin-top: 42px; }
  .estimator-panel { grid-template-columns: 1fr; gap: 26px; }.estimate-total { padding: 22px 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .footer { grid-template-columns: 1fr; }.footer-note { text-align: left; }
}

@media (max-width: 600px) {
  .shell, .article-shell { width: min(100% - 24px, 1560px); }
  .site-header { width: calc(100% - 16px); top: 7px; margin-top: 7px; height: 66px; padding-inline: 12px; }.site-header > .button { display: none; }
  .hero { padding: 64px 0 64px; }.hero-lead { font-size: 17px; }.hero-actions .button { width: 100%; }
  .notebook-card { min-height: 420px; border-radius: 22px; }.notebook-topbar { grid-template-columns: 1fr 1fr; }.notebook-topbar > span:nth-child(2) { display: none; }
  .cell { margin-inline: 12px; padding-left: 40px; } pre { font-size: 11px; }
  .section { padding: 62px 0; }.split-heading { margin-bottom: 36px; }.split-heading h2 { font-size: 44px; }
  .formula-card { margin-top: 18px; }.price strong { font-size: 58px; }
  .form-row.two, .choice-grid { grid-template-columns: 1fr; }.waitlist-form { padding: 18px; }
  .blog-card { padding: 24px; min-height: 420px; }.blog-card h2 { margin-top: 58px; font-size: 40px; }
  .footer-links { flex-wrap: wrap; }.article-header { padding-top: 54px; }.article-header h1 { font-size: 50px; }.article-hero-visual { height: 330px; }.data-stream { display: none; }
  .article-body { margin-top: 54px; }.article-body .lead-paragraph { font-size: 19px; }.article-body h2 { font-size: 30px; }.article-cta { align-items: stretch; flex-direction: column; }.article-cta .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* v2 bilingual + GPU catalog */
.announcement { position: relative; z-index: 60; padding: 8px 18px; text-align: center; background: var(--green); color: #06110a; font-size: 12px; font-weight: 800; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 9px; }
.lang-toggle { min-height: 42px; padding: 0 13px; border: 1px solid var(--line); border-radius: 12px; background: rgba(30,36,51,.025); color: var(--green-ink); cursor: pointer; font-weight: 800; }
html[lang^="bn"] body { font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans Bengali", "Segoe UI", sans-serif; }
html[lang^="bn"] .hero h1, html[lang^="bn"] .split-heading h2, html[lang^="bn"] .blog-card h2, html[lang^="bn"] .article-header h1 { letter-spacing: -.035em; line-height: 1.03; }
.gpu-catalog { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gpu-card { min-height: 290px; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(155deg, rgba(30,36,51,.026), rgba(30,36,51,.008)); cursor: pointer; transition: transform .22s ease, border-color .22s ease, background .22s ease; }
.gpu-card:hover { transform: translateY(-4px); border-color: rgba(89,101,219,.35); background: linear-gradient(155deg, rgba(89,101,219,.055), rgba(30,36,51,.01)); }
.gpu-card.featured { border-color: rgba(89,101,219,.23); }
.gpu-card-top { display: flex; justify-content: space-between; align-items: center; color: #737b8c; font: 10px ui-monospace, monospace; text-transform: uppercase; letter-spacing: .1em; }
.gpu-memory { padding: 6px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--green-ink); }
.gpu-card h3 { margin: 8px 0 8px; font-size: 27px; letter-spacing: -.04em; }
.gpu-card p { margin: 0; min-height: 62px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.gpu-rate { display: flex; align-items: baseline; gap: 5px; padding-top: 20px; border-top: 1px solid var(--line); }
.gpu-rate strong { color: var(--green-ink); font-size: 25px; letter-spacing: -.04em; }.gpu-rate span { color: #737b8c; font-size: 10px; }
.estimator-panel.enhanced { margin-top: 0; }
.payment-panel { padding: 22px; display: grid; gap: 14px; border: 1px solid rgba(89,101,219,.25); border-radius: 18px; background: linear-gradient(135deg, rgba(89,101,219,.065), rgba(30,36,51,.01)); }
.payment-panel h3 { margin: 6px 0 4px; }.payment-panel p { margin: 0; color: var(--muted); font-size: 13px; }.payment-panel small { color: #87698c; }
.bkash-button { background: var(--green); color: #051109; border: 0; }.bkash-button:disabled { opacity: .45; cursor: not-allowed; transform: none; }

/* Blog index */
.blog-index { padding: 100px 0 120px; }.blog-index .split-heading { align-items: end; }.blog-index h1 { margin: 0; font-size: clamp(52px, 7vw, 90px); line-height: .95; letter-spacing: -.055em; }
.blog-list-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.blog-list-card { min-height: 360px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); border-radius: 25px; background: rgba(30,36,51,.018); transition: .2s; }
.blog-list-card:hover { transform: translateY(-3px); border-color: rgba(89,101,219,.3); }.blog-list-card.wide { grid-column: 1 / -1; min-height: 420px; background: radial-gradient(circle at 80% 10%, rgba(89,101,219,.11), transparent 26%), rgba(30,36,51,.018); }
.blog-list-card h2 { max-width: 850px; margin: 40px 0 12px; font-size: clamp(30px, 4vw, 54px); line-height: 1.02; letter-spacing: -.045em; }.blog-list-card p { max-width: 720px; margin: 0; color: var(--muted); line-height: 1.7; }.blog-list-footer { display: flex; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--line); color: #737b8c; font-size: 11px; }
.empty-state { padding: 30px; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); text-align: center; }.empty-state.compact { padding: 18px; }

/* Admin */
.admin-body { min-height: 100vh; background: #fcfdfc; }
.admin-login { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.admin-login-card { width: min(460px, 100%); padding: 34px; display: grid; gap: 22px; border: 1px solid var(--line); border-radius: 28px; background: rgba(248,249,249,.92); box-shadow: var(--shadow); }
.admin-login-card h1 { margin: 8px 0 8px; font-size: 46px; letter-spacing: -.05em; }.admin-login-card p { color: var(--muted); }.login-error { display: none; color: #b42318; font-size: 12px; }.login-error.show { display: block; }
.admin-app { min-height: 100vh; display: grid; grid-template-columns: 250px 1fr; }
/* Pre-existing specificity gap (found during the light-theme QA pass, unrelated to
   color): [hidden] and .admin-app are equal-specificity class/attribute selectors,
   so .admin-app's `display: grid` was winning the cascade over the browser's default
   `[hidden]{display:none}`, showing the dashboard shell underneath the login card
   even while unauthenticated. One rule, scoped to this exact conflict, fixes it. */
.admin-app[hidden] { display: none; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; padding: 24px 18px; display: flex; flex-direction: column; border-right: 1px solid var(--line); background: rgba(252,253,252,.86); backdrop-filter: blur(18px); }
.admin-nav { display: grid; gap: 5px; margin-top: 42px; }.admin-nav button { padding: 12px 13px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: #737b8c; text-align: left; cursor: pointer; }.admin-nav button:hover,.admin-nav button.active { color: var(--text); background: rgba(89,101,219,.055); border-color: var(--line); }
.admin-sidebar-foot { margin-top: auto; display: grid; gap: 8px; }.admin-sidebar-foot a,.admin-sidebar-foot button { padding: 10px 4px; border: 0; background: none; color: #737b8c; font-size: 12px; text-align: left; cursor: pointer; }
.admin-main { min-width: 0; padding: 30px; }.admin-topbar { display: flex; justify-content: space-between; align-items: center; padding-bottom: 28px; border-bottom: 1px solid var(--line); }.admin-topbar h1 { margin: 5px 0 0; font-size: 38px; letter-spacing: -.045em; }.admin-live-badge,.admin-local-badge { padding: 8px 10px; border: 1px solid rgba(89,101,219,.2); border-radius: 999px; color: var(--green-ink); background: rgba(89,101,219,.05); font: 10px ui-monospace, monospace; letter-spacing: .08em; }
.admin-panel { display: none; padding: 30px 0 80px; }.admin-panel.active { display: block; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; }.admin-stat-grid.six { grid-template-columns: repeat(6,1fr); }.admin-stat-grid article { padding: 22px; border: 1px solid var(--line); border-radius: 18px; background: rgba(30,36,51,.016); }.admin-stat-grid article>span { color: #737b8c; font: 10px ui-monospace,monospace; letter-spacing: .1em; }.admin-stat-grid strong { display: block; margin: 10px 0 2px; color: var(--green-ink); font-size: 31px; letter-spacing: -.05em; }.admin-stat-grid small { color: #737b8c; font-size: 10px; }
.admin-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }.admin-three-col { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 12px; }
.admin-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: rgba(30,36,51,.016); }.admin-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 22px; }.admin-card h2 { margin: 6px 0 0; font-size: 24px; letter-spacing: -.035em; }.admin-panel-note { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.analytics-bars { display: grid; gap: 13px; }.analytics-row>div:first-child { display: flex; justify-content: space-between; gap: 16px; margin-bottom: 5px; color: #737b8c; font-size: 11px; }.analytics-row b { color: var(--text); }.analytics-track { height: 6px; overflow: hidden; border-radius: 999px; background: rgba(30,36,51,.04); }.analytics-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green),var(--lime)); }
.funnel { display: grid; gap: 13px; }.funnel-row>div { display: flex; justify-content: space-between; color: #737b8c; font-size: 11px; }.funnel-row i { display: block; height: 22px; margin-top: 6px; border-radius: 7px; background: linear-gradient(90deg, rgba(89,101,219,.45), rgba(89,101,219,.07)); }
.admin-actions { margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }.admin-actions input { max-width: 420px; }
.admin-table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 18px; }.admin-table { width: 100%; min-width: 900px; border-collapse: collapse; }.admin-table th,.admin-table td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }.admin-table th { color: #737b8c; font: 9px ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; }.admin-table td { color: #737b8c; font-size: 12px; }.admin-table td strong { display: block; color: var(--text); }.admin-table td small { display: block; margin-top: 4px; color: #737b8c; }.admin-table code { font-size: 10px; color: #737b8c; }.table-delete,.icon-button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: #737b8c; cursor: pointer; }.table-delete:hover { color: #b42318; border-color: rgba(180,35,24,.3); }

/* User dashboard: status pills, per-notebook troubleshooting drilldown, usage chart. */
.status-pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font: 700 10px/1.4 ui-monospace, monospace; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.status-pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.status-pill.is-running { color: var(--green-ink); background: rgba(89,101,219,.09); }
.status-pill.is-pending { color: #8a5a00; background: rgba(138,90,0,.1); }
.status-pill.is-stopped { color: #737b8c; background: rgba(30,36,51,.05); }
.status-pill.is-local { margin-left: 6px; color: #3f4bc0; background: rgba(89,101,219,.08); }
.status-pill.is-failed { color: #b42318; background: rgba(180,35,24,.08); }
.status-pill.is-running::before { animation: pillPulse 1.6s ease-in-out infinite; }

.nb-progress { position: relative; width: 90px; height: 4px; margin-top: 6px; border-radius: 2px; background: rgba(138,90,0,.15); overflow: hidden; }
.nb-progress::after { content: ""; position: absolute; top: 0; bottom: 0; width: 40%; border-radius: 2px; background: #8a5a00; animation: nbProgressSlide 1.4s ease-in-out infinite; }
@keyframes nbProgressSlide { 0% { left: -40% } 100% { left: 100% } }
.nb-stuck-hint { display: block; margin-top: 6px; max-width: 260px; font-size: 11px; line-height: 1.5; color: #8a5a00; }

/* Admin audit log: color-coded by risk tier so a rare high-risk entry
   (impersonation, role grant, manual wallet adjustment, a suspension) stands
   out against the much larger volume of routine config saves and logins. */
.audit-row.audit-danger { background: rgba(180,35,24,.035); }
.audit-row.audit-warning { background: rgba(138,90,0,.04); }
.audit-action-chip.audit-danger { color: #b42318; background: rgba(180,35,24,.09); padding: 3px 7px; border-radius: 6px; }
.audit-action-chip.audit-warning { color: #8a5a00; background: rgba(138,90,0,.1); padding: 3px 7px; border-radius: 6px; }
.audit-action-chip.audit-success { color: var(--green-ink,#3f4bc0); background: rgba(89,101,219,.09); padding: 3px 7px; border-radius: 6px; }
.audit-action-chip.audit-neutral { color: #737b8c; }
.audit-severity-label { display: block; margin-top: 2px; text-transform: uppercase; letter-spacing: .04em; font-size: 9px; color: #8a5a00; }
@keyframes pillPulse { 0%,100% { opacity: 1 } 50% { opacity: .35 } }

.nb-detail-row td { background: rgba(30,36,51,.014); padding: 0 !important; }
.nb-detail { padding: 20px 24px 26px; }
.nb-detail-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); gap: 14px 24px; margin-bottom: 22px; }
.nb-detail-grid div span { display: block; color: #737b8c; font: 9px ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 5px; }
.nb-detail-grid div strong { color: var(--text); font-size: 13px; }
.nb-events-head { color: #737b8c; font: 9px ui-monospace,monospace; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 10px; }
.nb-events { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
.nb-event { display: grid; grid-template-columns: 148px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px dashed var(--line); font-size: 12px; }
.nb-event time { color: #737b8c; font: 10px ui-monospace,monospace; padding-top: 1px; }
.nb-event strong { display: block; color: var(--text); }
.nb-event small { display: block; margin-top: 3px; color: #737b8c; line-height: 1.5; }
.nb-events-empty { padding: 14px 0 4px; color: #737b8c; font-size: 12px; }

/* Run code console (app.js "RUN CODE CONSOLE"): example chips, editor, live output, verdict banner. */
.nb-open-link { display: inline-block; margin-left: 10px; color: #737b8c; font-size: 12px; white-space: nowrap; }
.nb-open-link:hover { color: var(--green-ink); }
.nb-console-row td { background: rgba(30,36,51,.014); padding: 0 !important; }
.nb-console { display: grid; gap: 14px; padding: 20px 24px 26px; }
.nb-console-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.nb-console-head p { margin: 6px 0 0; max-width: 60ch; color: #737b8c; font-size: 12px; line-height: 1.55; }
.nb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nb-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--text); font-size: 12px; font-weight: 650; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.nb-chip:hover { border-color: rgba(89,101,219,.4); }
.nb-chip.is-active { border-color: var(--green-ink); background: rgba(89,101,219,.09); color: var(--green-ink); }
.nb-chip em { font: 700 9px/1 ui-monospace, monospace; letter-spacing: .06em; text-transform: uppercase; font-style: normal; color: var(--green-ink); opacity: .8; }
.nb-blurb { margin: -4px 0 0; color: #737b8c; font-size: 12px; line-height: 1.5; min-height: 18px; }
.nb-code, .nb-output { font: 12.5px/1.6 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; tab-size: 4; }
.nb-code { width: 100%; min-height: 220px; max-height: 480px; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: 14px; background: #fff; color: var(--text); resize: vertical; white-space: pre; overflow: auto; }
.nb-console-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.nb-status { color: var(--text); font-size: 12px; font-weight: 650; }
.nb-status[data-state="running"] { color: #8a5a00; }
.nb-hint { margin-left: auto; color: #737b8c; font: 10px ui-monospace, monospace; letter-spacing: .04em; }
.nb-output { margin: 0; min-height: 96px; max-height: 420px; overflow: auto; padding: 14px 16px; border-radius: 14px; background: #1e2433; color: #eef0fb; white-space: pre-wrap; overflow-wrap: anywhere; }
.nb-output:empty::before { content: "Output appears here as it is produced."; color: rgba(238,240,251,.45); }
.nb-banner { display: grid; gap: 4px; padding: 14px 16px; border: 1px solid; border-radius: 14px; font-size: 13px; line-height: 1.5; }
.nb-banner strong { font-size: 14px; }
.nb-banner span { font-size: 12px; }
.nb-banner.is-pass { color: var(--green-ink); background: rgba(89,101,219,.08); border-color: rgba(89,101,219,.3); }
.nb-banner.is-warn { color: #8a5a00; background: rgba(138,90,0,.09); border-color: rgba(138,90,0,.35); }
.nb-banner.is-fail { color: #b42318; background: rgba(180,35,24,.06); border-color: rgba(180,35,24,.28); }
/* .button / .nb-banner set their own display, which would otherwise beat the [hidden] attribute. */
.nb-console [hidden] { display: none !important; }
@media (max-width: 600px) { .nb-console { padding: 16px; } .nb-hint { display: none; } }

/* Saved notebooks card */
.nb-explain { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 6px 0 20px; }
.nb-explain > div { padding: 16px 18px; border: 1px solid var(--line-strong); border-radius: 14px; background: rgba(255,255,255,.5); }
.nb-explain strong { font-size: 13px; }
.nb-explain p { margin: 6px 0 0; color: #56616b; font-size: 12px; line-height: 1.6; }
.nb-explain > div:first-child { border-color: rgba(89,101,219,.28); background: rgba(89,101,219,.05); }
.nb-storage-usage { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; flex-wrap: wrap; }
.nb-storage-usage > span { color: #56616b; font-size: 12px; }
.nb-storage-bar { flex: 1 1 220px; max-width: 420px; height: 8px; border-radius: 999px; background: rgba(30,36,51,.09); overflow: hidden; }
.nb-storage-fill { height: 100%; width: 0; border-radius: 999px; background: var(--green-ink); transition: width .3s ease; }
.nb-storage-fill[data-level="mid"] { background: #8a5a00; }
.nb-storage-fill[data-level="high"] { background: #b42318; }
.nb-trimmed { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: rgba(138,90,0,.12); color: #8a5a00; font-size: 10px; cursor: help; }
.nb-save-line { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 6px 0 16px; font-size: 12px; color: var(--text); }
.nb-save-line small { color: #56616b; }
@media (max-width: 900px) { .nb-explain { grid-template-columns: 1fr; } }

.usage-chart { display: flex; align-items: flex-end; gap: 4px; height: 140px; padding: 0 2px 4px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.usage-chart .bar-wrap { flex: 1; display: flex; align-items: flex-end; justify-content: center; height: 100%; min-width: 4px; }
.usage-chart .bar { width: 100%; max-width: 20px; min-height: 2px; border-radius: 3px 3px 0 0; background: var(--green); opacity: .78; cursor: default; transition: opacity .15s ease; }
.usage-chart .bar:hover { opacity: 1; }
.usage-chart-empty { padding: 40px 0; text-align: center; color: #737b8c; font-size: 12px; border-bottom: 1px solid var(--line); margin-bottom: 26px; }

.gpu-pick-note { margin-top: 14px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(30,36,51,.014); font-size: 12px; color: #737b8c; line-height: 1.7; }
.gpu-pick-note strong { color: var(--text); }
/* Toggled by app.js from /api/config's hideProviderDetails -- an always-empty
   column (every user, by default) is worse than no column, so this hides it
   outright rather than rendering a column of dashes. */
.hide-provider-col .provider-col { display: none; }
.hide-provider-col .provider-detail { display: none; }
.gpu-admin-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }.gpu-editor { display: grid; gap: 14px; }.rate-chip { padding: 7px 9px; border-radius: 999px; background: rgba(89,101,219,.08); color: var(--green-ink); font-size: 11px; }
.admin-blog-list { display: grid; gap: 8px; }.admin-blog-row { padding: 14px 16px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; border: 1px solid var(--line); border-radius: 14px; background: rgba(30,36,51,.012); }.admin-blog-copy strong,.admin-blog-copy small { display:block; }.admin-blog-copy small { margin-top: 4px; color: #737b8c; font-size: 10px; }.post-state { display: inline-flex; margin-right: 5px; padding: 5px 7px; border-radius: 999px; background: rgba(30,36,51,.04); color: #737b8c; font: 9px ui-monospace,monospace; text-transform: uppercase; }.post-state.published,.post-state.featured { color: var(--green-ink); background: rgba(89,101,219,.08); }
.blog-editor { margin-top: 14px; display: grid; gap: 16px; }.blog-editor[hidden] { display:none; }.editor-actions { display:flex; justify-content:space-between; gap:10px; }.admin-check { display:flex!important; grid-template-columns: 18px 1fr!important; align-items:center; gap:9px!important; }.admin-check input { width:16px; height:16px; accent-color:var(--green); }.settings-form { margin-top:12px; display:grid; gap:16px; }

@media(max-width:1180px){.gpu-catalog{grid-template-columns:repeat(3,1fr)}.admin-stat-grid.six{grid-template-columns:repeat(3,1fr)}.admin-three-col{grid-template-columns:1fr 1fr}.gpu-admin-grid{grid-template-columns:1fr}}
@media(max-width:900px){.header-actions .button{display:none}.gpu-catalog{grid-template-columns:repeat(2,1fr)}.blog-list-grid{grid-template-columns:1fr}.blog-list-card.wide{grid-column:auto}.admin-app{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.admin-nav{grid-template-columns:repeat(3,1fr);margin-top:22px}.admin-sidebar-foot{display:none}.admin-main{padding:18px}.admin-two-col,.admin-three-col{grid-template-columns:1fr}.admin-stat-grid.six{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.header-actions{gap:6px}.lang-toggle{min-height:40px;padding:0 10px}.gpu-catalog{grid-template-columns:1fr}.gpu-card{min-height:250px}.admin-nav{grid-template-columns:1fr 1fr}.admin-stat-grid.six{grid-template-columns:1fr 1fr}.admin-topbar{align-items:flex-start;gap:12px}.admin-live-badge{display:none}.admin-actions{align-items:stretch;flex-direction:column}.admin-actions input{max-width:none}.blog-list-card{min-height:330px;padding:22px}.blog-list-footer{flex-direction:column}.gpu-editor .form-row.two{grid-template-columns:1fr}.admin-login-card{padding:24px}}

/* Admin CSV exports */
.panel-heading{margin:6px 0 6px;font-size:28px;letter-spacing:-.035em}.admin-export-head{margin-bottom:18px}.export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.export-card{display:flex;min-height:245px;flex-direction:column}.export-card h2{margin-bottom:10px}.export-card p{margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.7}.export-card .button{margin-top:auto;align-self:flex-start}.admin-panel-note code{font-size:11px;color:var(--text)}
@media(max-width:1100px){.export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.export-grid{grid-template-columns:1fr}.admin-export-head{align-items:stretch}}

/* =========================================================
   ComputeBD — cinematic neon motion layer — cinematic neon motion layer
   ========================================================= */
:root{
  --neon:#3f4bc0;
  --neon-soft:rgba(30,36,51,.10);
  --cyan:#3f4bc0;
  --cyan-ink:#3f4bc0;
  --page-progress:0;
  --story-progress:0;
  --mouse-x:50vw;
  --mouse-y:30vh;
}
body:not(.admin-body){
  background:#fcfdfd;
}
body:not(.admin-body)::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-3;
  pointer-events:none;
  background:
    radial-gradient(700px circle at var(--mouse-x) var(--mouse-y), rgba(89,101,219,.075), transparent 46%),
    radial-gradient(900px circle at 75% 5%, rgba(89,101,219,.055), transparent 46%),
    linear-gradient(180deg,#fcfdfd 0%,#fcfcfc 48%,#fcfdfc 100%);
}
body:not(.admin-body)::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:98;
  pointer-events:none;
  box-shadow:inset 0 0 150px rgba(0,0,0,0.0915);
}
.scroll-progress{
  position:fixed;
  left:0;right:0;top:0;
  height:2px;
  z-index:120;
  background:rgba(30,36,51,.035);
  pointer-events:none;
}
.scroll-progress span{
  display:block;
  width:100%;height:100%;
  transform-origin:left center;
  transform:scaleX(var(--page-progress));
  background:linear-gradient(90deg,var(--green),var(--cyan));
  box-shadow:0 0 18px rgba(89,101,219,.8);
}
.ambient-layer{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.ambient-orb{position:absolute;border-radius:999px;filter:blur(100px);opacity:.035;will-change:transform}
.ambient-orb.one{width:38vw;height:38vw;right:-10vw;top:10vh;background:var(--green);transform:translate3d(0,calc(var(--page-progress) * 120px),0)}
.ambient-orb.two{width:30vw;height:30vw;left:-12vw;top:62vh;background:var(--cyan);opacity:.018;transform:translate3d(0,calc(var(--page-progress) * -140px),0)}

body:not(.admin-body) .site-header{
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,transform .35s ease;
  background:rgba(252,253,252,.58);
  border-color:rgba(89,101,219,.11);
  box-shadow:0 12px 60px rgba(0,0,0,0.0471);
}
body:not(.admin-body).has-scrolled .site-header{
  background:rgba(252,253,252,.78);
  border-color:rgba(89,101,219,.17);
  box-shadow:0 18px 70px rgba(0,0,0,0.0713);
}
body:not(.admin-body) .brand-mark{position:relative;overflow:hidden}
body:not(.admin-body) .brand-mark::after{
  content:"";position:absolute;inset:-60%;
  background:linear-gradient(115deg,transparent 38%,rgba(30,36,51,.72) 50%,transparent 62%);
  transform:translateX(-130%) rotate(15deg);
  animation:brandSweep 7s cubic-bezier(.2,.7,.2,1) infinite;
}
@keyframes brandSweep{0%,72%{transform:translateX(-130%) rotate(15deg)}88%,100%{transform:translateX(130%) rotate(15deg)}}

.hero{position:relative;min-height:calc(100vh - 88px);display:flex;flex-direction:column;justify-content:center;padding-top:96px;padding-bottom:80px}
.hero::before{
  content:"";position:absolute;left:47%;top:6%;width:1px;height:82%;pointer-events:none;
  background:linear-gradient(transparent,rgba(89,101,219,.16),transparent);
  transform:scaleY(calc(.35 + var(--page-progress) * .65));transform-origin:top;
}
.hero-copy{position:relative;z-index:2;transform:translate3d(0,calc(var(--page-progress) * -32px),0)}
.hero .eyebrow{animation:heroEnter .8s .05s both cubic-bezier(.2,.8,.2,1)}
.hero h1{animation:heroEnter .9s .12s both cubic-bezier(.16,1,.3,1)}
.hero-lead{animation:heroEnter .9s .22s both cubic-bezier(.16,1,.3,1)}
.hero-actions,.hero-meta{animation:heroEnter .9s .32s both cubic-bezier(.16,1,.3,1)}
@keyframes heroEnter{from{opacity:0;transform:translateY(34px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
.hero h1 span{
  color:var(--green-ink);
}
.notebook-card{
  will-change:transform;
  transform:perspective(1200px) rotateY(calc(-5deg + var(--page-progress) * 2deg)) rotateX(calc(2deg - var(--page-progress) * 1deg)) translate3d(0,calc(var(--page-progress) * -28px),0);
  box-shadow:0 45px 140px rgba(0,0,0,0.1057),0 0 80px rgba(89,101,219,.055),inset 0 1px rgba(30,36,51,.05);
  animation:cardEnter 1s .18s both cubic-bezier(.16,1,.3,1);
}
@keyframes cardEnter{from{opacity:0;filter:blur(12px);transform:perspective(1200px) translateY(55px) scale(.96) rotateY(-7deg)}to{opacity:1;filter:none}}
.notebook-card::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(125deg,rgba(89,101,219,.48),transparent 23%,transparent 70%,rgba(89,101,219,.18));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.progress span{animation:gpuPulse 3.4s ease-in-out infinite}
@keyframes gpuPulse{0%,100%{width:56%;filter:saturate(.8)}50%{width:86%;filter:saturate(1.3)}}
.ticker-track{animation:tickerFlow 26s linear infinite}
@keyframes tickerFlow{to{transform:translateX(-24%)}}

/* Apple-like scrollytelling stage — sticky item list + synced asset panel */
.scroll-story{height:180vh;position:relative;border-bottom:1px solid rgba(89,101,219,.08)}
.story-sticky{min-height:80vh;position:sticky;top:0;display:flex;flex-direction:column;justify-content:center;gap:26px;padding:0;overflow:hidden}
.story-kicker{display:block;width:max-content;margin:0;padding-top:10px;border-top:1px solid rgba(89,101,219,.45);color:#737b8c;font:760 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em;text-transform:uppercase}
.story-card{display:grid;grid-template-columns:minmax(0,.92fr) minmax(340px,1.08fr);gap:28px 72px;align-items:center}
.story-items{min-width:0}
.story-items-track{display:flex;flex-direction:column}
.story-item{display:block;width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--line);border-left:2px solid transparent;padding:18px 12px 20px 14px;margin-left:-14px;cursor:pointer;color:inherit;font:inherit;transition:border-color .25s ease}
.story-items-track .story-item:first-child{border-top:0}
.story-item-head{display:flex;align-items:baseline;gap:14px}
.story-item-head h3{margin:0;flex:1;min-width:0;font-size:20px;font-weight:640;letter-spacing:-.012em;line-height:1.35;color:var(--muted);transition:color .25s ease}
.story-item-head h3 em{font-style:normal}
.story-item-num{flex-shrink:0;font:800 14px/1 ui-monospace,monospace;letter-spacing:.04em;color:var(--muted);transition:color .25s ease}
.story-item p{margin:10px 44px 0 0;max-width:34rem;color:var(--muted);font-size:16px;line-height:1.65;opacity:.8;transition:color .25s ease,opacity .25s ease}
.story-tags{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-top:12px;padding-right:44px}
.story-tag{font:700 11px/1.4 ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase;color:#737b8c;transition:color .25s ease}
.story-tag+.story-tag::before{content:"/";display:inline-block;margin:0 8px;color:var(--line-strong)}
.story-item.is-active{border-left-color:var(--green)}
.story-item.is-active .story-item-head h3,
.story-item.is-active .story-item-num{color:var(--text)}
.story-item.is-active p{color:var(--text);opacity:1}
.story-item.is-active .story-tag{color:#737b8c}
.story-item:hover .story-item-head h3{color:var(--green-ink)}
.story-item:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:8px}
.story-asset{position:relative;align-self:center;transform:translateY(-34px)}
.stack{position:relative;width:min(100%,800px);margin:0 auto;aspect-ratio:870/742}
.layer{position:absolute;inset:0;opacity:0;pointer-events:none;transform:translateY(-70px);transition:opacity 560ms ease,transform 760ms cubic-bezier(.16,1,.3,1)}
.layer img{display:block;width:100%;height:100%}
.layer[data-layer="platform"]{z-index:1}
.layer[data-layer="ai-lab"]{z-index:2}
.layer[data-layer="infrastructure"]{z-index:3}
.story-asset[data-active-step="0"] .layer[data-layer="platform"],
.story-asset[data-active-step="1"] .layer[data-layer="platform"],
.story-asset[data-active-step="2"] .layer[data-layer="platform"]{opacity:1;transform:translateY(36px)}
.story-asset[data-active-step="1"] .layer[data-layer="ai-lab"],
.story-asset[data-active-step="2"] .layer[data-layer="ai-lab"]{opacity:1;transform:translateY(0)}
.story-asset[data-active-step="2"] .layer[data-layer="infrastructure"]{opacity:1;transform:translateY(-36px)}
.story-asset-caption{margin:14px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.story-asset-caption span:first-child{font:800 12px/1 ui-monospace,monospace;color:var(--green-ink);margin-right:8px}

/* cinematic reveal system */
.motion-reveal{opacity:0;transform:translate3d(0,20px,0) scale(.992);filter:blur(3px);transition:opacity .4s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1,.3,1),filter .38s ease}
.motion-reveal.is-visible{opacity:1;transform:none;filter:blur(0)}
.motion-reveal[data-delay="1"]{transition-delay:.03s}.motion-reveal[data-delay="2"]{transition-delay:.06s}.motion-reveal[data-delay="3"]{transition-delay:.09s}
.motion-reveal[data-delay="4"]{transition-delay:.12s}.motion-reveal[data-delay="5"]{transition-delay:.15s}
.section-kicker.motion-reveal{transform:translateY(12px);filter:blur(2px)}
.split-heading.motion-reveal{transform:translateY(26px)}

.gpu-catalog{perspective:1400px}
.gpu-card{position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform;transition:transform .45s cubic-bezier(.16,1,.3,1),border-color .35s ease,box-shadow .35s ease,background .35s ease}
.gpu-card::before{content:"";position:absolute;inset:-1px;opacity:0;background:radial-gradient(380px circle at var(--card-x,50%) var(--card-y,50%),rgba(89,101,219,.11),transparent 44%);transition:opacity .3s ease;pointer-events:none}
.gpu-card:hover::before{opacity:1}
.gpu-card:hover{transform:translateY(-9px) rotateX(1.5deg);box-shadow:0 32px 90px rgba(0,0,0,0.0794),0 0 44px rgba(89,101,219,.045)}
.gpu-card.featured::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--green),transparent);box-shadow:0 0 18px var(--green);animation:featuredSweep 4.8s ease-in-out infinite}
@keyframes featuredSweep{0%,100%{opacity:.2;transform:translateX(-55%)}50%{opacity:.9;transform:translateX(55%)}}
.gpu-rate strong{transition:text-shadow .3s ease,color .3s ease}.gpu-card:hover .gpu-rate strong{color:var(--green-bright);text-shadow:0 0 24px rgba(89,101,219,.18)}

.estimator-panel.enhanced,.waitlist-form,.blog-card,.formula-card{position:relative;overflow:hidden}
.estimator-panel.enhanced::before,.waitlist-form::before,.blog-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 15%,rgba(89,101,219,.035) 42%,transparent 60%);transform:translateX(-90%);transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.estimator-panel.enhanced.is-visible::before,.waitlist-form.is-visible::before,.blog-card.is-visible::before{transform:translateX(90%)}
.estimate-total strong{display:inline-block;transition:transform .25s ease,text-shadow .25s ease}.estimate-total strong.number-pop{transform:scale(1.035);text-shadow:0 0 28px rgba(89,101,219,.22)}

.blog-card{transition:transform .55s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .35s ease,opacity .8s ease,filter .8s ease}
.blog-card:hover{transform:translateY(-7px) scale(1.006);box-shadow:0 38px 110px rgba(0,0,0,0.0794),0 0 70px rgba(89,101,219,.045)}
.blog-arrow{transition:transform .35s ease,color .35s ease}.blog-card:hover .blog-arrow{transform:translateX(8px);color:var(--green-ink)}

/* Blog pages inherit the same cinematic language */
.blog-index,.article-shell{position:relative;z-index:1}
.blog-index::before,.article-shell::before{content:"";position:absolute;top:20px;right:-14vw;width:48vw;height:48vw;border-radius:50%;background:radial-gradient(circle,rgba(89,101,219,.035),transparent 66%);filter:blur(18px);pointer-events:none;z-index:-1;transform:translateY(calc(var(--page-progress) * 120px))}
.blog-list-card{position:relative;overflow:hidden;transition:transform .5s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .3s ease}
.blog-list-card::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--card-x,50%) var(--card-y,50%),rgba(89,101,219,.08),transparent 46%);opacity:0;transition:opacity .3s ease;pointer-events:none}.blog-list-card:hover::before{opacity:1}.blog-list-card:hover{transform:translateY(-8px);box-shadow:0 34px 100px rgba(0,0,0,0.0754)}
.article-hero-visual{will-change:transform;transform:translateY(calc(var(--page-progress) * -38px)) scale(calc(1 - var(--page-progress) * .025));box-shadow:0 40px 120px rgba(0,0,0,0.0713)}
.article-hero-visual .chip{animation:chipFloat 5s ease-in-out infinite}
@keyframes chipFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}
.article-body h2,.article-body h3,.article-body p,.article-body ul,.article-body ol,.article-body blockquote{opacity:0;transform:translateY(12px);transition:opacity .38s ease,transform .4s cubic-bezier(.16,1,.3,1)}
.article-body .article-visible{opacity:1;transform:none}

@media(max-width:900px){
  .hero{min-height:auto;padding-top:78px}.hero::before{display:none}.notebook-card{transform:none!important}
  .scroll-story{height:auto;padding:32px 0}.story-sticky{position:relative;top:auto;min-height:0;padding:0}.story-card{grid-template-columns:1fr;gap:24px}.story-asset{order:-1;transform:none}.stack{max-width:460px}.story-item p{margin-right:0}.story-tags{padding-right:0}
}
@media(max-width:600px){
  .scroll-progress{height:1px}.ambient-orb{opacity:.025}.hero{padding-top:62px;padding-bottom:58px}.hero-copy{transform:none}.ticker-track{animation-duration:20s}.stack{max-width:360px}.story-item-head h3{font-size:17px}.story-item p{font-size:15px}
}
@media(prefers-reduced-motion:reduce){
  :root{--page-progress:0!important}
  .ambient-orb,.ticker-track,.brand-mark::after,.hero h1 span,.progress span,.gpu-card.featured::after,.article-hero-visual .chip{animation:none!important}
  .hero .eyebrow,.hero h1,.hero-lead,.hero-actions,.hero-meta,.notebook-card,.motion-reveal,.article-body h2,.article-body h3,.article-body p,.article-body ul,.article-body ol,.article-body blockquote{animation:none!important;transition:none!important;opacity:1!important;transform:none!important;filter:none!important}
  .scroll-story{height:auto;padding:48px 0}.story-sticky{position:relative;min-height:0}.story-card{grid-template-columns:1fr}.story-asset{display:none}
}

/* v2.3 language, spacing, CTA and Windows form-control polish */
.text-cta{min-height:48px;display:inline-flex;align-items:center;gap:8px;padding:0 8px;color:#737b8c;font-size:13px;font-weight:760;border-bottom:1px solid rgba(89,101,219,.18);transition:color .2s ease,border-color .2s ease,transform .2s ease}
.text-cta:hover{color:var(--green-ink);border-color:rgba(89,101,219,.48);transform:translateY(-1px)}

/* This highlight strip is intentionally centered, not a left-origin marquee. */
.ticker{display:flex;justify-content:center;overflow:hidden}
.ticker-track{width:100%;min-width:0!important;max-width:1440px;margin:0 auto;padding:18px 28px!important;display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px 24px!important;text-align:center;animation:none!important;transform:none!important}
.ticker-track span{white-space:nowrap}.ticker-track i{flex:0 0 auto}

/* Avoid typographic collisions in cinematic headings. */
.hero h1{line-height:.95}
.split-heading h2{line-height:1.02}
.story-item-head h3 em{display:inline-block;padding-block:.02em .03em}

html[lang^="bn"] body{font-family:"Noto Sans Bengali","Nirmala UI","Vrinda",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
html[lang^="bn"] .hero h1{font-size:clamp(56px,7.25vw,102px);line-height:1.13;letter-spacing:-.02em}
html[lang^="bn"] .hero h1 span{display:inline-block;padding-block:.02em .07em}
html[lang^="bn"] .split-heading h2,
html[lang^="bn"] .blog-card h2,
html[lang^="bn"] .article-header h1,
html[lang^="bn"] .blog-list-card h2{line-height:1.14;letter-spacing:-.018em}
html[lang^="bn"] .story-item-head h3{line-height:1.4}
html[lang^="bn"] .story-item-head h3 em{padding-block:.02em .06em}
html[lang^="bn"] .story-item p{line-height:1.85}
html[lang^="bn"] .eyebrow,
html[lang^="bn"] .section-kicker,
html[lang^="bn"] .mini-label,
html[lang^="bn"] .story-kicker{text-transform:none;letter-spacing:.025em}

/* Dark dropdown treatment for Windows/Chrome/Edge and other native menus. */
select{
  color-scheme:dark;
  -webkit-appearance:none;
  appearance:none;
  padding-right:46px!important;
  background-color:#fbfbfb!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%2387ffae' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 15px center!important;
  box-shadow:inset 0 1px 0 rgba(30,36,51,.025)
}
select:hover{border-color:rgba(89,101,219,.3)}

/* Custom dropdown (main.js's enhanceSelect()) -- see that function's comment for
   why: a native <select>'s open option list is OS-rendered and largely ignores
   the CSS below it (verified directly; option:checked's background/color here
   has no effect on the actual popup in Chromium). The real <select> stays in the
   DOM (form submission, required-validation anchoring) but invisible; this is
   what's actually seen and clicked. */
.select-enhanced{position:relative}
.select-enhanced select{position:absolute;inset:0;opacity:0;pointer-events:none}
.select-trigger{
  display:block;width:100%;height:48px;padding:0 38px 0 13px;
  border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.0471);
  color:var(--text);font:inherit;text-align:left;cursor:pointer;position:relative;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.select-trigger.is-placeholder{color:var(--muted)}
.select-trigger::after{
  content:"";position:absolute;right:15px;top:50%;width:8px;height:8px;margin-top:-6px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);opacity:.55;transition:transform .18s ease;
}
.select-enhanced.is-open .select-trigger::after{transform:rotate(-135deg);margin-top:-3px}
.select-trigger:hover{border-color:rgba(89,101,219,.3)}
.select-trigger:focus-visible{border-color:rgba(89,101,219,.5);box-shadow:0 0 0 4px rgba(89,101,219,.08);outline:none}
.select-list{
  position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;max-height:280px;overflow-y:auto;
  margin:0;padding:6px;list-style:none;
  background:var(--panel-strong);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);
}
.select-list li{padding:10px 12px;border-radius:9px;font-size:14px;line-height:1.4;color:var(--text);cursor:pointer}
.select-list li:hover,.select-list li:focus-visible{background:rgba(89,101,219,.08);outline:none}
.select-list li[aria-selected="true"]{background:#f0f3f1;color:var(--green-ink);font-weight:700}
.select-list li[aria-disabled]{color:var(--muted);cursor:default}

select option,select optgroup{background:#fbfcfb!important;color:#1e2433!important}
select option:checked{background:#f3f6f4!important;color:#3f4bc0!important}
select option:disabled{color:#737b8c!important}

.gpu-card{min-height:326px}
.gpu-card-bottom{display:grid;gap:14px}
.gpu-card-cta{width:100%;min-height:40px;padding:0 12px;border:1px solid rgba(89,101,219,.17);border-radius:10px;background:rgba(89,101,219,.045);color:var(--green-ink);font:760 11px/1.25 ui-sans-serif,system-ui,sans-serif;cursor:pointer;text-align:left;transition:background .2s ease,border-color .2s ease,transform .2s ease}
.gpu-card-cta:hover{background:rgba(89,101,219,.095);border-color:rgba(89,101,219,.4);transform:translateY(-1px)}
html[lang^="bn"] .gpu-card-cta{font-family:inherit;font-size:12px}

.section-cta{margin-top:28px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(100deg,rgba(89,101,219,.045),rgba(30,36,51,.008))}
.section-cta p{max-width:660px;margin:0;color:#737b8c;font-size:14px;line-height:1.65}
.section-cta .button{flex:0 0 auto}
.estimator-join{margin-top:14px;min-height:42px;padding:0 14px;font-size:11px;text-align:center;justify-content:center}
html[lang^="bn"] .estimator-join{font-size:12px}

@media(max-width:900px){
  .section-cta{align-items:flex-start;flex-direction:column}.section-cta .button{width:100%}
}
@media(max-width:600px){
  .ticker-track{padding:16px 18px!important;gap:12px 16px!important;font-size:9px!important;line-height:1.35!important}
  .ticker-track i{font-size:7px}
  .hero h1{line-height:1}
  html[lang^="bn"] .hero h1{font-size:clamp(49px,14vw,76px);line-height:1.15}
  html[lang^="bn"] .story-item p{font-size:13px}
  .gpu-card{min-height:300px}.gpu-card-cta{text-align:center}
  .estimator-join{width:100%}
}
html[lang^="bn"] .ticker-track{font-family:"Noto Sans Bengali","Nirmala UI","Vrinda",ui-sans-serif,system-ui,sans-serif;font-weight:760;letter-spacing:.02em}

/* Admin auth diagnostics + exception UI */
.admin-login-card code{color:var(--green-ink);font:700 11px ui-monospace,monospace}
.login-config{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:rgba(30,36,51,.018);color:#737b8c}
.login-config-dot{width:8px;height:8px;margin-top:4px;flex:0 0 auto;border-radius:999px;background:#737b8c;box-shadow:0 0 0 4px rgba(30,36,51,.025)}
.login-config strong,.login-config small{display:block}.login-config strong{color:#737b8c;font-size:12px}.login-config small{margin-top:5px;color:#737b8c;font-size:10px;line-height:1.55}
.login-config.ready{border-color:rgba(89,101,219,.2);background:rgba(89,101,219,.035)}.login-config.ready .login-config-dot{background:var(--green);box-shadow:0 0 15px rgba(89,101,219,.65)}
.login-config.warning{border-color:rgba(163,95,0,.22);background:rgba(163,95,0,.035)}.login-config.warning .login-config-dot{background:#a35f00;box-shadow:0 0 12px rgba(163,95,0,.45)}
.login-config.error{border-color:rgba(180,35,24,.25);background:rgba(180,35,24,.04)}.login-config.error .login-config-dot{background:#b42318;box-shadow:0 0 12px rgba(180,35,24,.45)}
.login-error{padding:0;border:1px solid transparent;border-radius:12px;white-space:normal;line-height:1.55}.login-error.show{display:block;padding:13px 14px;border-color:rgba(180,35,24,.24);background:rgba(180,35,24,.045)}
.login-error strong,.login-error small{display:block}.login-error strong{color:#b42318;font-size:12px}.login-error small{margin-top:5px;color:#a35c69;font:10px/1.6 ui-monospace,monospace;overflow-wrap:anywhere}
.admin-global-error{display:none;margin-bottom:16px;padding:13px 16px;border:1px solid rgba(180,35,24,.24);border-radius:13px;background:rgba(180,35,24,.045);color:#b42318;font-size:12px;line-height:1.6}.admin-global-error.show{display:block}
#loginButton[disabled]{opacity:.55;cursor:wait}

/* =========================================================
   ComputeBD v4 — SEO landing pages + clean route components
   ========================================================= */
html[lang^="bn"] body{
  font-family:"Noto Sans Bengali","Nirmala UI","Vrinda",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}
html[lang^="bn"] h1,html[lang^="bn"] h2,html[lang^="bn"] h3{
  letter-spacing:-.025em;
  line-height:1.12;
}
html[lang^="bn"] .hero h1{line-height:1.08;letter-spacing:-.035em}

.lang-toggle{
  min-height:42px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:12px;color:#737b8c;background:rgba(30,36,51,.018);
  font-size:12px;font-weight:750;transition:.2s ease;
}
.lang-toggle:hover{color:var(--green-ink);border-color:rgba(89,101,219,.34);background:rgba(89,101,219,.05)}
.header-actions{justify-self:end;display:flex;align-items:center;gap:8px}

.gpu-card{cursor:default}
.gpu-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:relative;z-index:2}
.gpu-card-title{display:block;min-width:0}
.gpu-card-title h3{margin:0!important}
.gpu-card-title:hover h3{color:var(--green-bright)}
.rate-chip{display:inline-flex;align-items:baseline;gap:2px;padding:8px 10px;border:1px solid rgba(89,101,219,.15);border-radius:999px;color:var(--green-ink);background:rgba(89,101,219,.055);font-size:12px;font-weight:800;white-space:nowrap}
.rate-unit{color:#737b8c;font-size:9px;font-weight:700}
.gpu-specs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 12px;position:relative;z-index:2}
.gpu-specs span{padding:6px 8px;border:1px solid var(--line);border-radius:8px;color:#737b8c;background:rgba(0,0,0,0.039);font:700 9px/1 ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.gpu-card .use-case{min-height:66px;position:relative;z-index:2}
.gpu-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;position:relative;z-index:2}
.gpu-card-actions .text-cta{font-size:12px;color:#737b8c}
.gpu-card-actions .text-cta:hover{color:var(--green-ink)}
.gpu-card-actions .button{min-height:38px;padding:0 12px;font-size:11px}
.seo-deep-link{margin-top:26px;text-align:right}.seo-deep-link a{color:var(--green-ink);font-weight:760}

.subpage-hero,.gpu-detail-hero{padding:120px 0 64px}
.subpage-hero h1,.gpu-detail-hero h1{
  max-width:1000px;margin:0;font-size:clamp(58px,8vw,108px);line-height:.9;letter-spacing:-.065em;font-weight:760
}
.subpage-hero h1 em,.gpu-detail-hero h1 em{color:var(--green-ink);font-style:normal}
.subpage-hero>p{max-width:760px;margin:34px 0 0;color:#737b8c;font-size:20px;line-height:1.72}
.breadcrumb{display:flex;align-items:center;gap:9px;margin:60px 0 34px;color:#737b8c;font-size:12px}
.breadcrumb a:hover{color:var(--green-ink)}

.gpu-detail-grid{display:grid;grid-template-columns:1.15fr .55fr;gap:90px;align-items:center}
.gpu-detail-grid>div:first-child>p{max-width:700px;margin:30px 0 0;color:#737b8c;font-size:19px;line-height:1.7}
.gpu-price-orb{aspect-ratio:1;display:grid;place-items:center;align-content:center;text-align:center;border:1px solid rgba(89,101,219,.22);border-radius:50%;background:radial-gradient(circle,rgba(89,101,219,.09),rgba(30,36,51,.012) 52%,transparent 70%);box-shadow:0 0 110px rgba(89,101,219,.08),inset 0 0 80px rgba(89,101,219,.025)}
.gpu-price-orb span{color:#737b8c;font:800 9px ui-monospace,monospace;letter-spacing:.12em}
.gpu-price-orb strong{margin:12px 0 0;color:var(--green-ink);font-size:clamp(44px,5vw,72px);line-height:1;letter-spacing:-.06em}
.gpu-price-orb small{color:#737b8c;font-size:12px}.gpu-price-orb i{margin-top:12px;color:#737b8c;font:9px ui-monospace,monospace;font-style:normal;text-transform:uppercase;letter-spacing:.09em}

.spec-grid{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:24px;overflow:hidden;background:rgba(30,36,51,.012)}
.spec-grid article{min-height:135px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}
.spec-grid article:last-child{border-right:0}.spec-grid span{color:#737b8c;font:800 9px ui-monospace,monospace;letter-spacing:.1em}.spec-grid strong{font-size:22px;letter-spacing:-.035em;color:#1e2433}

.prose-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:90px;align-items:start}
.prose-grid h2{margin:0;font-size:clamp(40px,5vw,66px);line-height:1;letter-spacing:-.05em}
.prose-grid p{margin:0 0 22px;color:#737b8c;font-size:17px;line-height:1.85}
.feature-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.feature-list li{padding:18px 20px;border:1px solid var(--line);border-radius:14px;color:#737b8c;background:rgba(30,36,51,.012)}
.feature-list li::before{content:"✦";margin-right:12px;color:var(--green-ink);font-size:9px}

.workflow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.workflow-grid.six{grid-template-columns:repeat(3,1fr)}
.workflow-grid article{min-height:170px;padding:22px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(30,36,51,.024),rgba(30,36,51,.008))}
.workflow-grid article span{color:var(--green-ink);font:800 10px ui-monospace,monospace}.workflow-grid article strong{font-size:18px;line-height:1.4}
.standalone-notebook{max-width:900px;margin:0 auto;min-height:390px}

.faq-section>h2{font-size:clamp(42px,5vw,64px);letter-spacing:-.05em}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:34px}
.faq-grid details{border:1px solid var(--line);border-radius:16px;background:rgba(30,36,51,.012)}
.faq-grid summary{padding:20px;cursor:pointer;font-weight:760}.faq-grid details p{padding:0 20px 20px;margin:0;color:var(--muted);line-height:1.7}

.link-cloud{display:flex;flex-wrap:wrap;gap:10px}.link-cloud a{padding:13px 15px;border:1px solid var(--line);border-radius:12px;color:#737b8c;background:rgba(30,36,51,.012);font-size:13px}.link-cloud a:hover{color:var(--green-ink);border-color:rgba(89,101,219,.34)}
.internal-links{padding-top:40px}

.pricing-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:24px;background:rgba(30,36,51,.012)}
.pricing-table{width:100%;min-width:900px;border-collapse:collapse}.pricing-table th,.pricing-table td{padding:20px 22px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.pricing-table tr:last-child td{border-bottom:0}.pricing-table th{color:#737b8c;font:800 9px ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}.pricing-table td{color:#737b8c;font-size:13px}.pricing-table td strong{display:block;color:var(--text);font-size:16px}.pricing-table td small{display:block;max-width:330px;margin-top:6px;color:#737b8c;line-height:1.5}.pricing-table a:hover strong{color:var(--green-ink)}
.formula-card.wide{grid-template-columns:auto auto auto auto auto auto;gap:18px}

.comparison-table{overflow:hidden;border:1px solid var(--line);border-radius:24px}.comparison-row{display:grid;grid-template-columns:.55fr 1fr 1fr;min-height:92px;border-bottom:1px solid var(--line)}.comparison-row:last-child{border-bottom:0}.comparison-row>*{padding:20px;display:flex;align-items:center;border-right:1px solid var(--line)}.comparison-row>*:last-child{border-right:0}.comparison-row strong{color:#737b8c;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.comparison-row span{color:#737b8c;line-height:1.6}.compare-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}

.blog-index{padding-top:110px;padding-bottom:120px}.blog-index .split-heading h1{margin:0;font-size:clamp(58px,8vw,104px);line-height:.9;letter-spacing:-.065em}.blog-list-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.blog-list-card{min-height:390px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:24px;background:radial-gradient(circle at 85% 15%,rgba(89,101,219,.08),transparent 28%),rgba(30,36,51,.012);transition:.3s ease}.blog-list-card:hover{transform:translateY(-5px);border-color:rgba(89,101,219,.3)}.blog-list-card.wide{grid-column:1/-1;min-height:430px}.blog-list-card h2{max-width:900px;margin:70px 0 16px;font-size:clamp(32px,4vw,58px);line-height:1;letter-spacing:-.05em}.blog-list-card p{max-width:760px;color:var(--muted);line-height:1.7}.blog-list-footer{display:flex;justify-content:space-between;gap:18px;color:#737b8c;font-size:11px}

.article-shell .breadcrumb{margin-top:48px}.article-cta{margin-top:70px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid rgba(89,101,219,.22);border-radius:22px;background:rgba(89,101,219,.04)}.article-cta h3{margin:7px 0 0;font-size:25px;letter-spacing:-.035em}
.form-error{min-height:20px;color:#b42318;font-size:12px;line-height:1.5}.waitlist-success{padding:28px!important}.waitlist-success strong{font-size:24px}.waitlist-success p{margin:8px 0 0;color:#737b8c}

.admin-alert{margin:10px 0;color:#b42318}.admin-alert strong,.admin-alert small{display:block}.admin-alert small{margin-top:4px;color:#8c6975}.admin-login-card code,.admin-panel-note code{color:var(--green-ink);font-family:ui-monospace,monospace}

@media(max-width:980px){
  .gpu-detail-grid{grid-template-columns:1fr;gap:50px}.gpu-price-orb{width:min(360px,70vw);margin:0 auto}.spec-grid{grid-template-columns:repeat(2,1fr)}.spec-grid article{border-bottom:1px solid var(--line)}.prose-grid{grid-template-columns:1fr;gap:38px}.workflow-grid,.workflow-grid.six{grid-template-columns:repeat(2,1fr)}.formula-card.wide{grid-template-columns:1fr auto}.faq-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .site-header{grid-template-columns:1fr auto;height:68px}.site-header .nav{display:none}.header-actions .button{display:none!important}.subpage-hero,.gpu-detail-hero{padding-top:78px}.subpage-hero h1,.gpu-detail-hero h1{font-size:clamp(48px,14vw,76px);line-height:.97}.subpage-hero>p{font-size:17px}.gpu-card-actions{align-items:stretch;flex-direction:column}.gpu-card-actions .button{text-align:center}.workflow-grid,.workflow-grid.six{grid-template-columns:1fr}.spec-grid{grid-template-columns:1fr}.spec-grid article{border-right:0}.comparison-row{grid-template-columns:1fr}.comparison-row>*{border-right:0;border-bottom:1px solid var(--line)}.comparison-row>*:last-child{border-bottom:0}.blog-list-grid{grid-template-columns:1fr}.blog-list-card.wide{grid-column:auto}.article-cta{align-items:flex-start;flex-direction:column}
}

/* =========================================================
   ComputeBD v4.0.2 — conversion + motion refinement
   ========================================================= */

/* Announcement lives above the sticky navigation and scrolls away naturally.
   This prevents it from crossing over the navbar while scrolling. */
.announcement{
  position:relative;
  z-index:42;
  padding:0;
  overflow:hidden;
  background:linear-gradient(90deg,#3f4bc0 0%,#3f4bc0 48%,#3f4bc0 100%);
  background-size:180% 100%;
  box-shadow:0 10px 42px rgba(89,101,219,.11);
  animation:announcementGlow 8s ease-in-out infinite alternate;
}
.announcement-link{
  min-height:38px;
  padding:8px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#041008;
  text-align:center;
  font-size:12px;
  font-weight:850;
  letter-spacing:-.01em;
}
.announcement-link>span:last-child{transition:transform .22s ease}
.announcement-link:hover>span:last-child{transform:translate(3px,-2px)}
@keyframes announcementGlow{from{background-position:0 50%}to{background-position:100% 50%}}

/* Homepage GPU cards are one large waitlist target — no competing buttons. */
.gpu-waitlist-card{
  cursor:pointer;
  outline:none;
  transition:transform .28s cubic-bezier(.16,1,.3,1),border-color .28s ease,box-shadow .28s ease,background .28s ease;
}
.gpu-waitlist-card:hover,
.gpu-waitlist-card:focus-visible{
  transform:translateY(-5px);
  border-color:rgba(89,101,219,.42);
  background:radial-gradient(circle at var(--card-x,70%) var(--card-y,20%),rgba(89,101,219,.10),transparent 35%),rgba(30,36,51,.018);
  box-shadow:0 24px 70px rgba(0,0,0,0.0633),0 0 42px rgba(89,101,219,.065);
}
.gpu-waitlist-card:focus-visible{box-shadow:0 0 0 2px rgba(89,101,219,.55),0 24px 70px rgba(0,0,0,0.0633)}
.gpu-card-hint{
  margin-top:22px;
  padding-top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  position:relative;
  z-index:2;
  border-top:1px solid var(--line);
  color:#737b8c;
  font-size:11px;
  font-weight:720;
  transition:color .22s ease,border-color .22s ease;
}
.gpu-card-hint b{color:var(--green-ink);font-size:15px;transition:transform .22s ease}
.gpu-waitlist-card:hover .gpu-card-hint,.gpu-waitlist-card:focus-visible .gpu-card-hint{color:var(--green-bright);border-color:rgba(89,101,219,.25)}
.gpu-waitlist-card:hover .gpu-card-hint b,.gpu-waitlist-card:focus-visible .gpu-card-hint b{transform:translate(3px,-3px)}

/* Workload explorer: right-hand lines reveal sequentially. */
.workload-section{padding-top:54px;padding-bottom:58px}
.workload-explorer{align-items:start}
.workload-explorer>div:first-child>p{max-width:520px;margin:22px 0 0;color:var(--muted);font-size:15px;line-height:1.75}
.workload-links{
  display:grid;
  width:100%;
  border-top:1px solid var(--line);
}
.workload-links a{
  --workload-i:0;
  min-height:66px;
  padding:0 6px 0 2px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:22px;
  align-items:center;
  border-bottom:1px solid var(--line);
  color:#737b8c;
  font-size:15px;
  line-height:1.35;
  opacity:1;
  transform:none;
  filter:none;
  clip-path:inset(0 0 0 0);
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;
}
.workload-links.is-revealed a{
  animation:workloadLineIn .62s cubic-bezier(.16,1,.3,1) both;
  animation-delay:calc(var(--workload-i) * 105ms);
}
@keyframes workloadLineIn{
  0%{opacity:0;transform:translate3d(22px,10px,0);filter:blur(4px);clip-path:inset(0 0 100% 0)}
  48%{clip-path:inset(0 0 0 0)}
  100%{opacity:1;transform:translate3d(0,0,0);filter:blur(0);clip-path:inset(0 0 0 0)}
}
.workload-links a b{color:var(--green-ink);font-size:18px;font-weight:500;transition:transform .22s ease}
.workload-links a span{transition:transform .25s cubic-bezier(.16,1,.3,1)}
.workload-links a:hover{color:var(--green-bright);border-color:rgba(89,101,219,.27)}
.workload-links a:hover span{transform:translateX(8px)}
.workload-links a:hover b{transform:translateX(5px)}
html[lang^="bn"] .workload-links a{font-size:15px;line-height:1.55}

/* Keep pricing public-facing: only show the useful BDT estimate, not internal assumptions. */
.pricing-heading-clean{align-items:end}
.pricing-trust-note{max-width:520px;margin:0;color:#737b8c;font-size:14px;line-height:1.75}

@media(max-width:900px){
  .workload-section{padding-top:56px;padding-bottom:62px}
  .workload-explorer{grid-template-columns:1fr;gap:34px}
  .workload-links a{min-height:60px;font-size:14px}
}
@media(max-width:600px){
  .announcement-link{min-height:36px;padding:7px 14px;font-size:10px;line-height:1.35}
  .workload-links a{min-height:58px;font-size:13px}
  .pricing-trust-note{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
  .announcement{animation:none!important}
  .workload-links a{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;animation:none!important;transition:none!important}
}
/* =========================================================
   v4.0.3 — waitlist popup, shorter scroll-story, scheme polish
   ========================================================= */

/* ---- Announcement scrolls away in place (never pins to the navbar) ---- */
.announcement{position:relative;will-change:opacity,transform}
.has-scrolled .announcement{pointer-events:none}

/* ---- Animated waitlist popup ---- */
body.modal-open{overflow:hidden}
.waitlist-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px 24px;overflow-y:auto}
.waitlist-modal[hidden]{display:none}
.waitlist-modal-backdrop{position:fixed;inset:0;background:rgba(252,253,253,.72);backdrop-filter:blur(6px);opacity:0;transition:opacity .26s ease}
.waitlist-modal.is-open .waitlist-modal-backdrop{opacity:1}
.waitlist-modal-card{position:relative;z-index:1;width:min(560px,100%);margin:auto 0;padding:30px;border:1px solid var(--line-strong);border-radius:26px;background:linear-gradient(180deg,rgba(248,249,249,.98),rgba(251,252,251,.98));box-shadow:0 40px 120px rgba(0,0,0,0.1158);opacity:0;transform:translateY(22px) scale(.97);transition:opacity .26s ease,transform .32s cubic-bezier(.16,1,.3,1)}
.waitlist-modal.is-open .waitlist-modal-card{opacity:1;transform:translateY(0) scale(1)}
.waitlist-modal-card .waitlist-form{padding:0;border:0;background:none;margin-top:20px}
.waitlist-modal-head h2{margin:8px 0 6px;font-size:clamp(26px,4vw,34px);letter-spacing:-.04em;line-height:1.02}
.waitlist-modal-head p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.waitlist-modal-close{position:absolute;top:16px;right:16px;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:rgba(30,36,51,.03);color:var(--muted);cursor:pointer;font-size:15px;transition:color .2s ease,border-color .2s ease,background .2s ease}
.waitlist-modal-close:hover{color:var(--green-ink);border-color:rgba(89,101,219,.35);background:rgba(89,101,219,.06)}
@media(max-width:600px){.waitlist-modal{padding:0}.waitlist-modal-card{border-radius:22px 22px 0 0;margin-top:auto;padding:24px 18px calc(24px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.waitlist-modal-backdrop,.waitlist-modal-card{transition:none}.waitlist-modal-card{transform:none}}

/* ---- Scheme consistency: one accent family for form labels/focus ---- */
.estimator-controls label,.waitlist-form > label,.form-row label{color:var(--muted)}
.waitlist-form label span,.waitlist-modal-card label span{color:var(--muted)}
select:focus,input:focus,textarea:focus{border-color:rgba(89,101,219,.5);box-shadow:0 0 0 4px rgba(89,101,219,.08)}

/* =========================================================
   Homepage refinement — compute fabric
   Scope intentionally stays on .home-page.
   ========================================================= */
.home-page{
  --home-green:#3f4bc0;
  --home-green-soft:#3f4bc0;
  --home-cyan:#3f4bc0;
  --home-green-ink:#3f4bc0;
  --home-ink:#1e2433;
  --home-panel:#ffffff;
  --home-muted:#3f4bc0;
  background:
    radial-gradient(ellipse 70% 44% at 82% 9%,rgba(89,101,219,.05),transparent 67%),
    radial-gradient(ellipse 45% 30% at 8% 26%,rgba(166,196,0,.03),transparent 72%),
    linear-gradient(180deg,#fdfefd 0,#f6faf7 45%,#f2f8f4 100%);
}
.home-page .ambient-layer{opacity:.54}
.home-page .noise{opacity:.023}
.home-page .site-header{
  width:min(1320px,calc(100% - 32px));
  height:70px;
  margin-top:10px;
  border-color:rgba(89,101,219,.11);
  border-radius:15px;
  background:rgba(252,253,252,.78);
  box-shadow:0 18px 55px rgba(0,0,0,0.0633),inset 0 1px rgba(30,36,51,.025);
}
.home-page .brand-mark{border-radius:8px;background:var(--home-green);box-shadow:0 10px 30px rgba(89,101,219,.12)}
.home-page .nav{gap:34px;color:#737b8c}
.home-page .nav a{position:relative}
.home-page .nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--home-green);transition:right .25s cubic-bezier(.16,1,.3,1)}
.home-page .nav a:hover::after,.home-page .nav a:focus-visible::after{right:0}
.home-page .button{border-radius:11px}
.home-page .button-primary{background:var(--home-green);box-shadow:0 14px 36px rgba(89,101,219,.13)}
.home-page .button-primary:hover{background:var(--home-green-soft)}
.home-page .button:focus-visible,.home-page a:focus-visible,.home-page [role="button"]:focus-visible{
  outline:2px solid var(--home-green);
  outline-offset:4px;
}
.home-page .hero{
  min-height:calc(100svh - 108px);
  padding:clamp(72px,9vh,112px) 0 clamp(80px,10vh,128px);
  justify-content:center;
}
.home-page .hero::before{
  inset:7% -9% -1%;
  opacity:.85;
  background:
    linear-gradient(rgba(89,101,219,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(89,101,219,.025) 1px,transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse at 74% 44%,#000 0,transparent 72%);
}
.home-page .hero-grid{
  grid-template-columns:minmax(0,.84fr) minmax(560px,1.16fr);
  gap:clamp(46px,5vw,82px);
  align-items:center;
}
.home-page .hero-copy{transform:none}
.home-page .hero h1,.home-page .hero-lead,.home-page .hero-actions,.home-page .hero-meta{animation:none}
.home-page .hero h1{
  max-width:720px;
  font-size:clamp(58px,6.35vw,96px);
  line-height:.93;
  letter-spacing:-.04em;
  font-weight:760;
  text-wrap:balance;
}
.home-page .hero h1 span{
  display:block;
  padding-top:.05em;
  color:var(--home-green-ink);
  animation:none;
}
.home-page .hero-lead{
  max-width:620px;
  margin-top:30px;
  color:var(--home-muted);
  font-size:clamp(17px,1.55vw,20px);
  line-height:1.62;
}
.home-page .hero-actions{margin-top:34px;gap:20px;align-items:center}
.home-page .hero-actions .button{min-height:52px;padding:0 20px}
.home-page .hero-actions svg,.home-page .text-cta svg,.home-page .workload-links svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.home-page .text-cta{display:inline-flex;align-items:center;gap:9px;color:#1e2433;font-weight:670}
.home-page .text-cta svg{transition:transform .22s cubic-bezier(.16,1,.3,1)}
.home-page .text-cta:hover svg{transform:translateX(5px)}
.home-page .hero-meta{margin-top:27px;gap:8px 18px;color:#737b8c;font-size:12px;align-items:center}
.home-page .hero-meta>span:not(.live-pill){position:relative;padding-left:14px}
.home-page .hero-meta>span:not(.live-pill)::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:#737b8c}
.home-page .live-pill{
  min-height:30px;
  padding:0 11px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(89,101,219,.18);
  border-radius:99px;
  color:#3f4bc0;
  background:rgba(89,101,219,.045);
}
.home-page .live-pill i,.fabric-health i{width:6px;height:6px;border-radius:50%;background:var(--home-green);box-shadow:0 0 0 4px rgba(89,101,219,.07)}

.fabric-console{
  position:relative;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(89,101,219,.16);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(249,250,249,.97),rgba(252,253,252,.98));
  box-shadow:0 42px 110px rgba(0,0,0,0.1077),inset 0 1px rgba(30,36,51,.035);
  isolation:isolate;
}
.fabric-console::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at var(--fabric-x,70%) var(--fabric-y,35%),rgba(89,101,219,.09),transparent 32%)}
.fabric-console::after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 80px rgba(0,0,0,0.0512)}
.fabric-toolbar{
  min-height:58px;
  padding:0 18px;
  position:relative;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border-bottom:1px solid rgba(89,101,219,.1);
  background:rgba(30,36,51,.012);
}
.fabric-toolbar>div:first-child{display:flex;align-items:center;gap:12px}
.fabric-wordmark,.fabric-toolbar small,.fabric-health,.fabric-node span,.fabric-job span,.fabric-telemetry span{
  font:760 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.14em;
}
.fabric-wordmark{color:#1e2433}
.fabric-toolbar small{padding-left:12px;border-left:1px solid rgba(89,101,219,.13);color:#737b8c}
.fabric-health{display:flex;align-items:center;gap:8px;color:#737b8c}
.fabric-stage{height:510px;position:relative;overflow:hidden;perspective:900px}
#computeFabricCanvas,.fabric-grid{position:absolute;inset:0;width:100%;height:100%}
#computeFabricCanvas{z-index:1}
.fabric-grid{
  z-index:0;
  opacity:.65;
  background-image:linear-gradient(rgba(89,101,219,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(89,101,219,.035) 1px,transparent 1px);
  background-size:36px 36px;
  mask-image:linear-gradient(to bottom,#000,rgba(0,0,0,0.0956) 80%,transparent);
  transform:perspective(520px) rotateX(55deg) scale(1.45) translateY(26%);
  transform-origin:center bottom;
}
.fabric-node{
  width:176px;
  min-height:72px;
  padding:15px 16px 14px 35px;
  position:absolute;
  z-index:3;
  border:1px solid rgba(89,101,219,.16);
  border-radius:10px;
  background:rgba(251,252,252,.88);
  box-shadow:0 16px 38px rgba(0,0,0,0.0713),inset 0 1px rgba(30,36,51,.025);
  backdrop-filter:blur(8px);
}
.fabric-node>i{position:absolute;left:15px;top:18px;width:8px;height:8px;border:1px solid var(--home-green);border-radius:2px;box-shadow:0 0 12px rgba(89,101,219,.25)}
.fabric-node span{display:block;margin-bottom:8px;color:#737b8c}
.fabric-node strong{display:block;overflow:hidden;color:#1e2433;font:650 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}
.node-notebook{left:6%;top:11%}
.node-router{left:38%;top:40%}
.node-gpu{right:6%;top:69%;border-color:rgba(89,101,219,.25)}
.node-gpu>i{border-color:var(--home-cyan);box-shadow:0 0 12px rgba(89,101,219,.35)}
.fabric-job{
  min-width:186px;
  padding:13px 14px;
  position:absolute;
  left:6%;
  bottom:7%;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid rgba(89,101,219,.12);
  border-radius:9px;
  background:rgba(252,253,252,.78);
}
.fabric-job span{display:block;margin-bottom:6px;color:#737b8c}
.fabric-job b{color:#1e2433;font:620 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.fabric-job>strong{display:flex;align-items:center;gap:8px;color:var(--home-green-ink);font:780 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}
.fabric-job>strong i{width:5px;height:5px;border-radius:50%;background:var(--home-green)}
.fabric-telemetry{position:relative;z-index:5;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(89,101,219,.1)}
.fabric-telemetry>div{min-width:0;padding:17px 18px;border-right:1px solid rgba(89,101,219,.08)}
.fabric-telemetry>div:last-child{border-right:0}
.fabric-telemetry span{display:block;margin-bottom:8px;color:#737b8c}
.fabric-telemetry strong{display:block;color:#1e2433;font:680 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}

.signal-marquee{overflow:hidden;border-block:1px solid rgba(89,101,219,.1);background:rgba(30,36,51,.01)}
.signal-belt{width:max-content;display:flex;animation:signalDrift 26s linear infinite}
.signal-track{flex-shrink:0;padding:17px 25px;display:flex;align-items:center;gap:24px;color:var(--green-ink);font:720 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.11em;white-space:nowrap}
.signal-track i{width:3px;height:3px;border-radius:50%;background:var(--home-green)}
.signal-marquee:hover .signal-belt{animation-play-state:paused}
/* Belt holds 4 identical copies of the track (only the first is exposed to
   assistive tech; the rest are aria-hidden) so there is always at least one
   full extra copy of content ahead of the visible window, even on very wide
   or ultra-wide viewports. With only 2 copies the belt could run out of
   content before completing the loop on wide screens, showing a visible gap
   that looked like the marquee had stalled or ended. -25% = exactly one of
   the four copies, so the loop point is still a perfect, seamless match. */
@keyframes signalDrift{to{transform:translateX(-25%)}}

.home-page .section{padding:clamp(64px,7vw,98px) 0}
.home-page .home-split{align-items:end}
.home-page .home-split h2,.home-page .workload-explorer h2{
  font-size:clamp(44px,5vw,72px);
  line-height:.98;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.home-page .section-label{
  width:max-content;
  margin-top:22px;
  padding-top:10px;
  border-top:1px solid rgba(89,101,219,.45);
  color:#737b8c;
  font:760 10px/1 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.home-page .gpu-catalog{gap:12px}
.home-page .gpu-card{
  min-height:310px;
  overflow:hidden;
  border-color:rgba(89,101,219,.11);
  border-radius:15px;
  background:linear-gradient(155deg,rgba(30,36,51,.025),rgba(30,36,51,.006));
  box-shadow:0 18px 55px rgba(0,0,0,0.035);
}
.home-page .gpu-card::before{content:"";position:absolute;inset:0;opacity:0;background:radial-gradient(circle at var(--card-x,50%) var(--card-y,50%),rgba(89,101,219,.12),transparent 38%);transition:opacity .25s ease}
.home-page .gpu-card:hover::before,.home-page .gpu-card:focus-visible::before{opacity:1}
.home-page .gpu-card:hover,.home-page .gpu-card:focus-visible{border-color:rgba(89,101,219,.38);transform:translateY(-5px)}
.home-page .gpu-card.is-selected{border-color:rgba(89,101,219,.52);background:linear-gradient(155deg,rgba(89,101,219,.085),rgba(30,36,51,.008))}
.home-page .gpu-card>*{position:relative;z-index:1}
.home-page .gpu-card h3{font-size:clamp(28px,2.5vw,38px);letter-spacing:-.04em}
.home-page .rate-chip{border-radius:7px;background:rgba(89,101,219,.055)}
.home-page .gpu-card-hint b{font-size:0}
.home-page .gpu-card-hint b::after{content:"";display:block;width:15px;height:15px;background:linear-gradient(transparent,transparent)}
.home-page .section-cta{margin-top:20px;border-radius:13px;background:rgba(30,36,51,.012)}
.home-page .workload-section{padding-top:50px}
.home-page .workload-explorer{align-items:start;gap:clamp(52px,8vw,110px)}
.home-page .workload-explorer>div:first-child>p{max-width:500px;margin-top:28px;color:var(--home-muted);font-size:16px;line-height:1.72}
.home-page .workload-links{border-top-color:rgba(89,101,219,.14)}
.home-page .workload-links a{min-height:72px;padding:0 4px;color:#1e2433;border-bottom-color:rgba(89,101,219,.11);font-size:15px}
.home-page .workload-links a:hover{color:var(--home-green-ink);background:linear-gradient(90deg,rgba(89,101,219,.035),transparent 68%)}
.home-page .workload-links b{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(89,101,219,.12);border-radius:50%}
.home-page .workload-links svg{width:15px;height:15px}
.home-page .estimator-panel.enhanced{border-radius:17px;background:linear-gradient(140deg,rgba(247,249,248,.8),rgba(252,253,252,.88));box-shadow:0 32px 90px rgba(0,0,0,0.0592)}
.home-page .estimate-total{border-radius:12px;background:#f8faf9}
.home-page .estimate-total.is-updating strong{animation:estimateConfirm .34s cubic-bezier(.16,1,.3,1)}
@keyframes estimateConfirm{0%{color:var(--home-cyan-ink);filter:blur(2px);transform:translateY(4px)}100%{color:inherit;filter:none;transform:none}}
.home-page .source-note{border-radius:12px;background:rgba(30,36,51,.012)}
.home-page .waitlist-form{border-radius:17px;background:linear-gradient(155deg,rgba(247,248,247,.86),rgba(251,252,251,.95));box-shadow:0 35px 95px rgba(0,0,0,0.0633)}
.home-page input,.home-page select,.home-page textarea{border-radius:9px;background-color:#fbfcfb!important}
.home-page .footer{border-top-color:rgba(89,101,219,.11)}

@keyframes fabricNodePulse{0%,100%{box-shadow:0 16px 38px rgba(0,0,0,0.0713),inset 0 1px rgba(30,36,51,.025)}50%{box-shadow:0 18px 42px rgba(0,0,0,0.0774),0 0 24px rgba(89,101,219,.055),inset 0 1px rgba(30,36,51,.025)}}
.fabric-node{animation:fabricNodePulse 5s ease-in-out infinite}
.node-router{animation-delay:-1.7s}.node-gpu{animation-delay:-3.1s}
.fabric-job>strong i{animation:pulseTiny 1.4s ease-in-out infinite}
@keyframes pulseTiny{50%{opacity:.25;transform:scale(.7)}}

@media(max-width:1100px){
  .home-page .hero-grid{grid-template-columns:minmax(0,.82fr) minmax(500px,1.18fr);gap:38px}
  .fabric-stage{height:470px}
  .fabric-node{width:160px}
  .node-router{left:36%}
}
@media(max-width:900px){
  .home-page .site-header{height:68px;grid-template-columns:1fr auto}
  .home-page .hero{min-height:auto;padding-top:80px}
  .home-page .hero-grid{grid-template-columns:1fr;gap:54px}
  .home-page .hero-copy{max-width:720px}
  .home-page .hero h1{max-width:760px;font-size:clamp(58px,10vw,86px)}
  .fabric-console{width:100%}
  .fabric-stage{height:500px}
}
@media(max-width:600px){
  .home-page .shell{width:min(100% - 28px,1560px)}
  .home-page .site-header{width:calc(100% - 20px);padding:0 13px;border-radius:13px}
  .home-page .brand{font-size:14px}
  .home-page .brand-mark{width:28px;height:28px}
  .home-page .hero{padding:62px 0 72px}
  .home-page .hero::before{display:block;inset:0 -30%;background-size:38px 38px}
  .home-page .hero h1{font-size:clamp(52px,14vw,68px);line-height:.95;letter-spacing:-.04em}
  .home-page .hero-lead{margin-top:25px;font-size:16px;line-height:1.62}
  .home-page .hero-actions{gap:17px}
  .home-page .hero-actions .button{width:100%}
  .home-page .text-cta{min-height:42px}
  .home-page .hero-meta{margin-top:20px}
  .home-page .hero-meta>span{width:fit-content}
  .fabric-console{border-radius:15px}
  .fabric-toolbar{padding:0 13px}
  .fabric-toolbar small{display:none}
  .fabric-stage{height:455px}
  .fabric-node{width:152px;min-height:68px;padding:13px 12px 12px 31px}
  .fabric-node>i{left:12px;top:16px}
  .node-notebook{left:4%;top:8%}
  .node-router{left:38%;top:38%}
  .node-gpu{right:4%;top:67%}
  .fabric-job{left:4%;bottom:7%;min-width:154px;padding:11px 12px}
  .fabric-job>strong{display:none}
  .fabric-telemetry>div{padding:14px 11px}
  .fabric-telemetry span{font-size:7px;letter-spacing:.09em}
  .fabric-telemetry strong{font-size:11px}
  .signal-track{padding:14px 18px;gap:18px;font-size:9px}
  .home-page .section{padding:60px 0}
  .home-page .home-split h2,.home-page .workload-explorer h2{font-size:clamp(42px,12.5vw,58px)}
  .home-page .section-label{margin-top:18px}
  .home-page .gpu-card{min-height:286px}
  .home-page .section-cta{padding:20px}
  .home-page .workload-section{padding-top:28px}
  .home-page .workload-links a{min-height:68px;font-size:13px;line-height:1.45}
  .home-page .workload-links b{width:32px;height:32px;flex:0 0 32px}
}
@media(prefers-reduced-motion:reduce){
  .home-page .signal-belt,.home-page .fabric-node,.home-page .fabric-job>strong i{animation:none!important}
  .home-page .signal-belt{width:100%;overflow-x:auto}
  .home-page .signal-track[aria-hidden="true"]{display:none}
  .home-page .gpu-card,.home-page .text-cta svg{transition:none!important}
  .home-page .estimate-total.is-updating strong{animation:none!important}
}

/* =========================================================
   Public-site design system — compute fabric across all routes
   ========================================================= */
.public-site{
  --site-green:#3f4bc0;
  --site-cyan:#3f4bc0;
  --site-green-ink:#3f4bc0;
  --site-line:rgba(30,36,51,.10);
  --site-line-strong:rgba(30,36,51,.18);
  --site-surface:rgba(255,255,255,.86);
  background:
    radial-gradient(ellipse 68% 36% at 86% 3%,rgba(89,101,219,.075),transparent 68%),
    radial-gradient(ellipse 44% 28% at 6% 38%,rgba(89,101,219,.035),transparent 72%),
    linear-gradient(180deg,#fcfdfc,#fbfcfb 44%,#fcfdfc);
}
.public-site .brand-mark{border-radius:8px;background:var(--site-green)}
.public-site .brand-mark svg{width:20px;height:20px;fill:none;stroke:#051009;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.public-site .site-header{
  width:min(1320px,calc(100% - 32px));
  height:70px;
  margin-top:10px;
  border-color:rgba(89,101,219,.11);
  border-radius:15px;
  background:rgba(252,253,252,.8);
  box-shadow:0 18px 55px rgba(0,0,0,0.0633),inset 0 1px rgba(30,36,51,.025);
}
.public-site .nav{gap:34px;color:#737b8c}
.public-site .nav a{position:relative}
.public-site .nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--site-green);transition:right .25s cubic-bezier(.16,1,.3,1)}
.public-site .nav a:hover::after,.public-site .nav a:focus-visible::after{right:0}
.public-site .button{border-radius:10px}
.public-site .button-primary{background:var(--site-green);box-shadow:0 14px 38px rgba(89,101,219,.13)}
.public-site .button:focus-visible,.public-site a:focus-visible,.public-site summary:focus-visible,.public-site [role="button"]:focus-visible{outline:2px solid var(--site-green);outline-offset:4px}
.public-site .section-label{
  width:max-content;
  max-width:100%;
  margin-top:22px;
  padding-top:10px;
  border-top:1px solid rgba(89,101,219,.46);
  color:#737b8c;
  font:760 10px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.public-site .footer{
  position:relative;
  padding-top:68px;
  border-top-color:rgba(89,101,219,.11);
}
.public-site .footer::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:linear-gradient(90deg,var(--site-green),transparent 38%);opacity:.55}
.public-site .footer-brand{display:flex;flex-direction:column;align-items:flex-start}
.public-site .footer-status{margin-top:17px;display:inline-flex;align-items:center;gap:8px;color:#737b8c;font:740 9px/1 ui-monospace,monospace;letter-spacing:.12em}
.public-site .footer-status i{width:6px;height:6px;border-radius:50%;background:var(--site-green);box-shadow:0 0 0 4px rgba(89,101,219,.07)}
.public-site .footer-links a{position:relative;color:#737b8c}
.public-site .footer-links a:hover{color:var(--site-green-ink)}

.public-site:not(.home-page) main{position:relative;z-index:1}
.public-site:not(.home-page) main::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(rgba(89,101,219,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(89,101,219,.018) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom,#000,transparent 40%);
}
.public-site:not(.home-page) .subpage-hero{
  min-height:690px;
  padding:clamp(94px,10vw,142px) 0 90px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.55fr);
  gap:clamp(56px,8vw,120px);
  align-items:center;
}
.subpage-copy{min-width:0}
.public-site:not(.home-page) .subpage-hero h1{
  max-width:920px;
  margin:0;
  font-size:clamp(58px,7.15vw,96px);
  line-height:.93;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.public-site:not(.home-page) .subpage-hero h1 em{color:var(--site-green-ink)}
.public-site:not(.home-page) .subpage-hero p{max-width:700px;margin:28px 0 0;color:#737b8c;font-size:18px;line-height:1.72}
.subpage-signal{
  min-height:410px;
  position:relative;
  overflow:hidden;
  border:1px solid var(--site-line);
  border-radius:16px;
  background:linear-gradient(155deg,rgba(248,249,249,.88),rgba(252,253,252,.96));
  box-shadow:0 38px 100px rgba(0,0,0,0.0835),inset 0 1px rgba(30,36,51,.025);
}
.public-site:not(.home-page) .subpage-copy.motion-reveal{transform:translate3d(-24px,20px,0);clip-path:inset(0 0 12% 0)}
.public-site:not(.home-page) .subpage-copy.motion-reveal.is-visible{transform:none;clip-path:inset(0)}
.public-site:not(.home-page) .subpage-signal.motion-reveal{transform:translate3d(26px,10px,0) scale(.98)}
.public-site:not(.home-page) .subpage-signal.motion-reveal.is-visible{transform:none}
.signal-head,.signal-foot{height:54px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#737b8c;font:740 9px/1 ui-monospace,monospace;letter-spacing:.13em}
.signal-head{border-bottom:1px solid var(--site-line)}
.signal-head i{width:7px;height:7px;border-radius:50%;background:var(--site-green);box-shadow:0 0 16px rgba(89,101,219,.6)}
.signal-foot{border-top:1px solid var(--site-line)}
.signal-foot strong{color:#737b8c;font-weight:760}
.signal-field{height:300px;position:relative;overflow:hidden;background:radial-gradient(circle at 72% 28%,rgba(89,101,219,.07),transparent 28%)}
.signal-field::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(89,101,219,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(89,101,219,.04) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(#000,transparent)}
.signal-field svg{position:absolute;inset:22px 16px;width:calc(100% - 32px);height:calc(100% - 44px);fill:none;stroke:rgba(89,101,219,.18);stroke-width:1.25;overflow:visible}
.signal-field .signal-flow{stroke:var(--site-cyan);stroke-dasharray:8 18;stroke-width:1.7;animation:signalRoute 7s linear infinite}
@keyframes signalRoute{to{stroke-dashoffset:-130}}
.signal-point{position:absolute;z-index:2;width:8px;height:8px;border:1px solid var(--site-green);background:#fbfcfb;box-shadow:0 0 15px rgba(89,101,219,.3);transform:rotate(45deg)}
.signal-point.one{left:7%;bottom:13%}.signal-point.two{left:48%;top:46%}.signal-point.three{right:4%;top:10%;border-color:var(--site-cyan)}

.public-site:not(.home-page) .section{padding:clamp(58px,6vw,88px) 0}
.public-site:not(.home-page) .section+.section{border-top:1px solid rgba(89,101,219,.07)}
.public-site:not(.home-page) .split-heading{gap:clamp(50px,8vw,110px);align-items:end}
.public-site:not(.home-page) .split-heading h2,.public-site:not(.home-page) .prose-grid h2,.public-site:not(.home-page) .faq-section>h2{
  font-size:clamp(42px,5vw,70px);
  line-height:1;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.public-site:not(.home-page) .section-kicker{width:max-content;margin:0 0 20px;padding-top:9px;border-top:1px solid rgba(89,101,219,.4);color:#737b8c;font-size:10px}
.public-site:not(.home-page) .prose-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(60px,8vw,120px)}
.public-site:not(.home-page) .prose-grid>div:last-child{padding-top:8px}
.public-site:not(.home-page) .prose-grid p{max-width:68ch;color:#737b8c;font-size:17px;line-height:1.82}

.public-site:not(.home-page) .gpu-card{
  min-height:318px;
  border-color:rgba(89,101,219,.11);
  border-radius:15px;
  background:linear-gradient(155deg,rgba(30,36,51,.025),rgba(30,36,51,.005));
  box-shadow:0 20px 60px rgba(0,0,0,0.037);
}
.public-site:not(.home-page) .gpu-card::after{content:"";position:absolute;left:0;top:0;width:72px;height:1px;background:var(--site-green);opacity:.6}
.public-site:not(.home-page) .gpu-card:hover{border-color:rgba(89,101,219,.38);transform:translateY(-6px)}
.public-site:not(.home-page) .rate-chip{border-radius:7px;background:rgba(89,101,219,.05)}
.public-site:not(.home-page) .gpu-specs span{border-radius:5px}
.public-site:not(.home-page) .section-cta{border-radius:12px;background:rgba(30,36,51,.012)}

.public-site:not(.home-page) .gpu-detail-hero{padding:70px 0 84px}
.public-site:not(.home-page) .gpu-detail-hero h1{font-size:clamp(64px,8.5vw,112px);line-height:.9;letter-spacing:-.04em}
.public-site:not(.home-page) .gpu-detail-grid{grid-template-columns:minmax(0,1fr) minmax(310px,.45fr);gap:clamp(60px,8vw,120px)}
.public-site:not(.home-page) .gpu-detail-grid>div:first-child>p{max-width:680px;color:#737b8c}
.public-site:not(.home-page) .gpu-price-orb{
  aspect-ratio:auto;
  min-height:350px;
  position:relative;
  overflow:hidden;
  border-radius:16px;
  background:linear-gradient(155deg,rgba(248,249,248,.9),rgba(252,253,252,.98));
  box-shadow:0 38px 100px rgba(0,0,0,0.0835),inset 0 1px rgba(30,36,51,.025);
}
.public-site:not(.home-page) .gpu-price-orb::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(89,101,219,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(89,101,219,.035) 1px,transparent 1px);background-size:30px 30px;mask-image:linear-gradient(#000,transparent)}
.public-site:not(.home-page) .gpu-price-orb>*{position:relative;z-index:1}
.public-site:not(.home-page) .gpu-price-orb strong{font-size:clamp(52px,6vw,78px);letter-spacing:-.04em}

.public-site:not(.home-page) .spec-grid{border-radius:14px;background:rgba(252,253,252,.55)}
.public-site:not(.home-page) .spec-grid article{min-height:148px;position:relative;overflow:hidden}
.public-site:not(.home-page) .spec-grid article::after{content:"";position:absolute;left:24px;right:24px;bottom:15px;height:1px;background:linear-gradient(90deg,rgba(89,101,219,.5),transparent);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.public-site:not(.home-page) .spec-grid article:hover::after{transform:scaleX(1)}
.public-site:not(.home-page) .workflow-grid{gap:0;border-block:1px solid var(--site-line)}
.public-site:not(.home-page) .workflow-grid article{min-height:180px;border:0;border-right:1px solid var(--site-line);border-radius:0;background:transparent}
.public-site:not(.home-page) .workflow-grid article:last-child{border-right:0}
.public-site:not(.home-page) .workflow-grid article span{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(89,101,219,.25);border-radius:50%}
.public-site:not(.home-page) .feature-list{gap:0;border-top:1px solid var(--site-line)}
.public-site:not(.home-page) .feature-list li{padding:21px 2px;border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:transparent}
.public-site:not(.home-page) .feature-list li::before{content:"";width:7px;height:7px;margin-right:14px;display:inline-block;border:1px solid var(--site-green);transform:rotate(45deg)}

.public-site:not(.home-page) .link-cloud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid var(--site-line)}
.public-site:not(.home-page) .link-cloud a{min-height:58px;padding:0 4px;display:flex;align-items:center;justify-content:space-between;border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:transparent;color:#737b8c;transition:color .2s ease,background-color .2s ease,transform .25s cubic-bezier(.16,1,.3,1)}
.public-site:not(.home-page) .link-cloud a:hover{padding-left:10px;color:var(--site-green-ink);background:rgba(89,101,219,.025)}
.public-site:not(.home-page) .faq-section .section-label{margin-bottom:36px}
.public-site:not(.home-page) .faq-grid{gap:0;border-top:1px solid var(--site-line)}
.public-site:not(.home-page) .faq-grid details{border:0;border-bottom:1px solid var(--site-line);border-radius:0;background:transparent}
.public-site:not(.home-page) .faq-grid summary{padding:22px 4px;list-style:none;display:flex;justify-content:space-between;gap:30px}
.public-site:not(.home-page) .faq-grid summary::after{content:"+";color:var(--site-green-ink);font:400 20px/1 ui-monospace,monospace;transition:transform .25s ease}
.public-site:not(.home-page) .faq-grid details[open] summary::after{transform:rotate(45deg)}
.public-site:not(.home-page) .faq-grid details p{padding:0 4px 24px;max-width:62ch}

.public-site:not(.home-page) .pricing-table-wrap{border-radius:14px;background:rgba(252,253,252,.58);box-shadow:0 30px 90px rgba(0,0,0,0.0471)}
.public-site:not(.home-page) .pricing-table thead{background:rgba(89,101,219,.025)}
.public-site:not(.home-page) .pricing-table tr{transition:background-color .2s ease}
.public-site:not(.home-page) .pricing-table tbody tr:hover{background:rgba(89,101,219,.035)}
.public-site:not(.home-page) .pricing-table td:nth-child(4),.public-site:not(.home-page) .pricing-table td:nth-child(5){color:#1e2433;font-variant-numeric:tabular-nums}
.public-site:not(.home-page) .source-note{border-radius:11px;background:rgba(30,36,51,.01)}
.public-site:not(.home-page) .comparison-table{border-radius:14px;background:rgba(252,253,252,.58)}
.public-site:not(.home-page) .comparison-row{transition:background-color .2s ease}
.public-site:not(.home-page) .comparison-row:hover{background:rgba(89,101,219,.03)}

.public-site:not(.home-page) .standalone-notebook{max-width:100%;min-height:460px;border-radius:16px;transform:none;box-shadow:0 38px 110px rgba(0,0,0,0.0713)}
.public-site:not(.home-page) .blog-index{padding-top:clamp(100px,11vw,154px)}
.public-site:not(.home-page) .blog-index .split-heading{align-items:end}
.public-site:not(.home-page) .blog-index .split-heading h1{font-size:clamp(62px,8vw,104px);line-height:.92;letter-spacing:-.04em}
.public-site:not(.home-page) .blog-list-grid{gap:12px}
.public-site:not(.home-page) .blog-list-card{border-radius:15px;background:linear-gradient(155deg,rgba(248,249,249,.62),rgba(252,253,252,.88));box-shadow:0 24px 70px rgba(0,0,0,0.0431)}
.public-site:not(.home-page) .blog-list-card::after{content:"";position:absolute;left:30px;top:0;width:76px;height:1px;background:var(--site-green);opacity:.6}
.public-site:not(.home-page) .blog-list-card:hover{border-color:rgba(89,101,219,.35);transform:translateY(-6px)}

.public-site:not(.home-page) .article-shell{width:min(1560px,calc(100% - 40px));margin:0 auto}
.public-site:not(.home-page) .article-header{padding-top:clamp(82px,10vw,140px)}
.public-site:not(.home-page) .article-header h1{max-width:1000px;font-size:clamp(56px,7vw,94px);line-height:.96;letter-spacing:-.04em;text-wrap:balance}
.public-site:not(.home-page) .article-header .section-label{margin-top:24px}
.public-site:not(.home-page) .article-deck{max-width:760px;color:#737b8c}
.public-site:not(.home-page) .article-hero-visual{border-radius:16px;background:radial-gradient(circle at 50% 50%,rgba(89,101,219,.09),transparent 35%),linear-gradient(155deg,#f9fafa,#fcfdfd)}
.public-site:not(.home-page) .article-hero-visual::before{opacity:.65}
.public-site:not(.home-page) .chip{border-radius:14px}
.public-site:not(.home-page) .article-body{width:min(740px,100%)}
.public-site:not(.home-page) .article-body h2{margin-top:74px}
.public-site:not(.home-page) .article-body a{color:var(--site-green-ink);text-decoration:underline;text-decoration-color:rgba(89,101,219,.35);text-underline-offset:4px}
.public-site:not(.home-page) .article-callout{border-left:1px solid var(--site-green);background:rgba(89,101,219,.025)}
.public-site:not(.home-page) .article-cta{border-radius:14px;background:rgba(89,101,219,.03)}
.public-site:not(.home-page) .not-found-shell{min-height:70vh;display:grid;align-items:center}

@media(max-width:980px){
  .public-site:not(.home-page) .subpage-hero{grid-template-columns:1fr;min-height:auto}
  .subpage-signal{min-height:350px}.signal-field{height:240px}
  .public-site:not(.home-page) .gpu-detail-grid{grid-template-columns:1fr}
  .public-site:not(.home-page) .gpu-price-orb{width:100%;min-height:300px}
  .public-site:not(.home-page) .workflow-grid,.public-site:not(.home-page) .workflow-grid.six{grid-template-columns:repeat(2,1fr)}
  .public-site:not(.home-page) .workflow-grid article{border-bottom:1px solid var(--site-line)}
}
@media(max-width:760px){
  .public-site .site-header{width:calc(100% - 20px);padding:0 13px;border-radius:13px}
  .public-site:not(.home-page) .subpage-hero{padding-top:78px;gap:46px}
  .public-site:not(.home-page) .subpage-hero h1{font-size:clamp(48px,13vw,70px);line-height:.98}
  .public-site:not(.home-page) .subpage-hero p{font-size:16px}
  .subpage-signal{min-height:310px}.signal-field{height:205px}
  .public-site:not(.home-page) .section{padding:54px 0}
  .public-site:not(.home-page) .prose-grid{grid-template-columns:1fr;gap:38px}
  .public-site:not(.home-page) .link-cloud{grid-template-columns:1fr}
  .public-site:not(.home-page) .workflow-grid,.public-site:not(.home-page) .workflow-grid.six{grid-template-columns:1fr}
  .public-site:not(.home-page) .workflow-grid article{min-height:132px;border-right:0}
  .public-site:not(.home-page) .gpu-detail-hero h1{font-size:clamp(58px,16vw,80px)}
  .public-site:not(.home-page) .spec-grid article{min-height:112px}
  .public-site:not(.home-page) .blog-index .split-heading{grid-template-columns:1fr;gap:34px}
  .public-site:not(.home-page) .article-shell{width:calc(100% - 28px)}
  .public-site:not(.home-page) .article-header h1{font-size:clamp(46px,13vw,66px)}
  .public-site:not(.home-page) .article-hero-visual{height:310px}
}
@media(prefers-reduced-motion:reduce){
  .public-site .signal-flow{animation:none!important}
  .public-site:not(.home-page) .spec-grid article::after{transition:none}
}

/* =========================================================
   v4.0.7 — blog collision, unified palette and form controls
   ========================================================= */
.public-site.home-page{
  --cyan:var(--home-green);
  --home-cyan:var(--home-green);
  --site-cyan:var(--home-green);
  --lime:#a6c400;
  --lime-ink:#3f4bc0;
}
.home-page .keyword{color:#3f4bc0}
.home-page .number{color:#3f4bc0}
.home-page .string{color:#3f4bc0}
.home-page .payment-panel small{color:#737b8c}
.home-page .bkash-button:hover{background:var(--home-green-bright)}

/* Public controls keep their authored surface even when the OS menu opens. */
.public-site select{
  color-scheme:dark;
  accent-color:var(--site-green,var(--green));
  border-color:rgba(89,101,219,.16);
  background-color:#fbfcfb!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%2383f3a8' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-position:right 15px center!important;
  background-repeat:no-repeat!important;
  color:#1e2433;
  cursor:pointer;
}
.public-site select:not(:disabled):hover{border-color:rgba(89,101,219,.38);background-color:#fafbfa!important}
.public-site select:focus,.public-site select:focus-visible{
  border-color:rgba(89,101,219,.62);
  background-color:#fafbfa!important;
  box-shadow:0 0 0 4px rgba(89,101,219,.09),inset 0 1px rgba(30,36,51,.03);
}
.public-site select:disabled{cursor:not-allowed;opacity:.48}
.public-site select option,.public-site select optgroup{background:#fbfcfb!important;color:#1e2433!important}
.public-site select option:checked{background:#f0f3f1!important;color:#3f4bc0!important}
.public-site select option:disabled{color:#737b8c!important}

/* One authoritative blog composition: no inherited card margins or transforms
   are allowed to collapse the card's three content bands. */
.public-site:not(.home-page) .blog-index{
  isolation:isolate;
  padding-top:clamp(96px,10vw,138px);
  padding-bottom:clamp(88px,10vw,128px);
}
.public-site:not(.home-page) .blog-index .split-heading{
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.62fr);
  gap:clamp(44px,7vw,96px);
  align-items:end;
  margin-bottom:clamp(52px,7vw,84px);
}
.public-site:not(.home-page) .blog-index .split-heading>div,
.public-site:not(.home-page) .blog-index .split-heading>p{min-width:0}
.public-site:not(.home-page) .blog-index .split-heading h1{
  display:block;
  max-width:850px;
  margin:0;
  font-size:clamp(58px,7.5vw,96px);
  line-height:.98;
  letter-spacing:-.04em;
  text-wrap:balance;
}
.public-site:not(.home-page) .blog-index .split-heading .section-label{margin-top:26px}
.public-site:not(.home-page) .blog-index .split-heading>p{
  max-width:520px;
  margin:0 0 5px;
  color:#737b8c;
  font-size:17px;
  line-height:1.75;
}
.public-site:not(.home-page) .blog-list-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.public-site:not(.home-page) .blog-list-card{
  min-width:0;
  min-height:390px;
  padding:30px;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:34px;
  align-content:stretch;
  overflow:hidden;
  isolation:isolate;
}
.public-site:not(.home-page) .blog-list-card.wide{min-height:420px}
.public-site:not(.home-page) .blog-list-card>*{min-width:0;position:relative;z-index:1}
.public-site:not(.home-page) .blog-list-card>div:nth-child(2){align-self:center}
.public-site:not(.home-page) .blog-list-card h2{
  max-width:900px;
  margin:0 0 16px;
  font-size:clamp(31px,3.8vw,56px);
  line-height:1.06;
  letter-spacing:-.04em;
  overflow-wrap:anywhere;
  text-wrap:balance;
}
.public-site:not(.home-page) .blog-list-card p{margin:0;overflow-wrap:anywhere}
.public-site:not(.home-page) .blog-meta,
.public-site:not(.home-page) .blog-list-footer{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:10px 20px;
}
.public-site:not(.home-page) .blog-list-footer{align-self:end;padding-top:20px;border-top:1px solid var(--site-line)}
.public-site:not(.home-page) .blog-list-footer span:last-child{text-align:right}
.public-site:not(.home-page) .blog-list-grid>.empty-state{grid-column:1/-1}

@media(max-width:760px){
  .public-site:not(.home-page) .blog-index .split-heading{grid-template-columns:1fr;gap:30px;margin-bottom:52px}
  .public-site:not(.home-page) .blog-index .split-heading h1{font-size:clamp(50px,14vw,70px);line-height:1}
  .public-site:not(.home-page) .blog-list-grid{grid-template-columns:1fr}
  .public-site:not(.home-page) .blog-list-card,.public-site:not(.home-page) .blog-list-card.wide{min-height:0;padding:24px;gap:30px}
  .public-site:not(.home-page) .blog-list-card>div:nth-child(2){align-self:start}
  .public-site:not(.home-page) .blog-list-card h2{font-size:clamp(29px,9vw,42px);line-height:1.1}
  .public-site:not(.home-page) .blog-list-footer{display:grid;grid-template-columns:1fr;gap:8px}
  .public-site:not(.home-page) .blog-list-footer span:last-child{text-align:left}
}

/* v4.0.8 — equal-time homepage scroll story: now a sticky item list + synced asset */
.home-page .story-item-head h3{text-wrap:balance}
.home-page .story-item{transition:opacity .16s ease,border-color .25s ease}
html[lang^="bn"] .home-page .story-item-head h3{line-height:1.3}

@media(max-width:600px){
  /* Compact screens drop the scroll pin entirely — the item list and asset
     are shown in normal document flow (see the shared max-width:900px rule
     that sets .story-sticky{position:relative}). */
  .home-page .stack{max-width:340px}
}
@media(prefers-reduced-motion:reduce){
  .home-page .scroll-story{height:auto!important}
}


/* v9.6 — Bangla home: "AI দিয়ে কী বানাবেন?" ideas grid + plain-language GPU explainer */
.build-ideas .build-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.build-card{position:relative;min-height:210px;padding:24px 24px 52px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:20px;background:radial-gradient(circle at 88% 12%,rgba(89,101,219,.07),transparent 32%),rgba(30,36,51,.012);color:inherit;text-decoration:none;transition:transform .3s ease,border-color .3s ease}
.build-card:hover,.build-card:focus-visible{transform:translateY(-4px);border-color:rgba(89,101,219,.34)}
.build-card span{color:var(--green-ink);font:800 10px ui-monospace,monospace;letter-spacing:.08em}
.build-card strong{font-size:21px;line-height:1.3;letter-spacing:-.01em}
.build-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.7}
.build-card b{position:absolute;right:22px;bottom:18px;color:var(--green-ink);font-size:18px}
.gpu-explainer{margin-top:14px;padding:26px 28px;border:1px solid var(--line);border-radius:20px;background:rgba(89,101,219,.035)}
.gpu-explainer p{margin:10px 0 0;max-width:92ch;color:var(--muted);font-size:16px;line-height:1.85}
.gpu-explainer p strong{color:var(--ink,inherit)}
@media (max-width:980px){.build-ideas .build-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.build-ideas .build-grid{grid-template-columns:1fr}.build-card{min-height:0}.gpu-explainer{padding:22px 20px}}

/* v9.7 — admin Compute status card */
.cs-controls{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted)}
.cs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:16px}
.cs-grid h3{margin:0 0 8px;font-size:13px;letter-spacing:.02em}
.cs-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cs-row{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.6);font-size:12.5px;line-height:1.55;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline}
.cs-row>span{color:#56616b}
.cs-why{flex-basis:100%;color:#56616b}
.cs-fix{flex-basis:100%;color:#3f4bc0;font-weight:600}
.cs-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font:700 10.5px/1.4 ui-monospace,monospace;letter-spacing:.04em;white-space:nowrap}
.cs-ok{color:#3f4bc0;background:rgba(89,101,219,.1)}.cs-warn{color:#8a5a00;background:rgba(138,90,0,.14)}.cs-fail{color:#b42318;background:rgba(180,35,24,.1)}
.cs-fallback{display:flex;flex-wrap:wrap;gap:10px;align-items:end;padding-top:14px;border-top:1px solid var(--line)}
.cs-fallback label{display:grid;gap:6px;font-size:12px}.cs-saved{align-self:center;font-size:12px;color:var(--green-ink)}
@media (max-width:900px){.cs-grid{grid-template-columns:1fr}}
.cs-action{margin-left:8px;padding:5px 12px!important;font-size:11.5px!important}

/* v9.10 — Provider health panel */
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.ph-tile{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.65);display:flex;flex-direction:column;gap:8px;font-size:12.5px;line-height:1.55}
.ph-tile.ph-fail{border-color:rgba(180,35,24,.35);background:rgba(180,35,24,.03)}.ph-tile.ph-warn{border-color:rgba(138,90,0,.4)}
.ph-tile header{display:flex;align-items:center;gap:10px}.ph-tile header strong{font-size:15px}
.ph-tile p{margin:0}.ph-setup{color:#56616b}.ph-stats b{font-weight:700}.ph-bad{color:#b42318}
.ph-ops{display:flex;flex-wrap:wrap;gap:6px}.ph-op{padding:2px 8px;border-radius:999px;background:rgba(30,36,51,.05);font:600 11px/1.6 ui-monospace,monospace;color:#56616b}
.ph-op.has-fail{background:rgba(180,35,24,.09);color:#b42318}.ph-muted{color:#737b8c;font-size:11.5px}
.ph-err{padding:8px 10px;border-radius:10px;background:rgba(180,35,24,.05);border:1px solid rgba(180,35,24,.15)}
.ph-msg{word-break:break-word;color:#56616b;font-family:ui-monospace,monospace;font-size:11.5px}
.ph-probe{padding:8px 10px;border-radius:10px;background:rgba(30,36,51,.04)}.ph-probe.ok{background:rgba(89,101,219,.07);color:#3f4bc0}.ph-probe.bad{background:rgba(180,35,24,.06);color:#8a1c12}
.ph-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.ph-h3{margin:22px 0 10px;font-size:13px}.ph-table td{vertical-align:top;font-size:12px}
.cs-pill.cs-idle{color:#737b8c;background:rgba(30,36,51,.06)}
.cs-fix,.ph-msg,.cs-why{overflow-wrap:anywhere}
.ph-err.resolved{background:rgba(30,36,51,.035);border-color:var(--line)}
.ph-card .cs-controls{flex-wrap:wrap;justify-content:flex-end}
.ph-card .cs-controls label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ph-card .cs-controls select{min-width:110px;padding:6px 8px}
.ph-card .cs-controls input[type=checkbox]{width:auto;height:auto}

/* =====================================================================================
   v9.12 → v9.13 — "Flow lines": the public site's final design layer.
   White paper, soft slate ink, one quiet periwinkle accent (#5965db) taken from the
   hero's line art. No black blocks, no green, no shadows, glows or blurs.
   Scoped to body.public-site so the admin console and user dashboard are unchanged.
   Last in the file on purpose: it settles the earlier stacked layers (v4.x … v9.x).
   ===================================================================================== */
@font-face{font-family:"Anek Bangla";font-style:normal;font-display:swap;font-weight:100 800;
  src:url(/fonts/anek-bangla-bengali-wght-normal.woff2) format("woff2-variations"),url(/fonts/anek-bangla-bengali-wght-normal.woff2) format("woff2");
  unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
@font-face{font-family:"Anek Bangla";font-style:normal;font-display:swap;font-weight:100 800;
  src:url(/fonts/anek-bangla-latin-wght-normal.woff2) format("woff2-variations"),url(/fonts/anek-bangla-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

body.public-site{
  --ink:#1e2433; --ink-2:#343b4d; --ink-soft:#56616b; --ink-faint:#737b8c;
  --paper:#ffffff; --paper-2:#f6f7fb; --rule:#e6e8f0; --rule-strong:#cdd1e0;
  --signal:#5965db;      /* the one accent: outlines, live dots, active marks. 4.9:1 on white */
  --signal-tint:#eef0fb; /* hover wash for outlined buttons */
  --flow-line:#8595be; --flow-streak:#5965db;
  --bg:var(--paper); --bg-deep:var(--paper-2); --panel:var(--paper); --panel-strong:var(--paper);
  --line:var(--rule); --line-strong:var(--rule-strong); --text:var(--ink); --muted:var(--ink-soft);
  --green:var(--signal); --green-ink:var(--ink); --green-bright:var(--signal); --lime:var(--ink); --lime-ink:var(--ink);
  --cyan:var(--ink-soft); --cyan-ink:var(--ink-soft); --neon:var(--signal); --neon-soft:var(--paper-2);
  --home-ink:var(--ink); --home-muted:var(--ink-soft); --home-panel:var(--paper); --home-green:var(--signal); --home-green-soft:var(--signal); --home-green-ink:var(--ink); --home-cyan:var(--ink-soft);
  --site-surface:var(--paper); --site-line:var(--rule); --site-line-strong:var(--rule-strong); --site-green:var(--signal); --site-green-ink:var(--ink); --site-cyan:var(--ink-soft);
  --shadow:none; --radius:14px;
  background:var(--paper)!important; color:var(--ink);
  font-family:"Anek Bangla","Segoe UI Variable Text","Segoe UI",ui-sans-serif,system-ui,-apple-system,sans-serif;
  font-variation-settings:normal; -webkit-font-smoothing:antialiased; caret-color:var(--ink);
}
html[lang^="bn"] body.public-site{line-height:1.6}

/* ---- Paper: no ambient decoration, no shadows, no glass ---- */
.public-site .ambient-layer,.public-site .noise,.public-site .fabric-grid,.public-site .home-page .hero::before,.public-site.home-page .hero::before{display:none!important}
.public-site *,.public-site *::before,.public-site *::after{box-shadow:none!important;text-shadow:none!important}
.public-site .site-header,.public-site .waitlist-modal-backdrop{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.public-site ::selection{background:#dfe3fa;color:var(--ink)}
.public-site :focus-visible{outline:2px solid var(--signal)!important;outline-offset:3px!important;border-radius:6px}
.public-site a:not(.button):hover{text-underline-offset:4px}
html:has(body.public-site){scrollbar-color:#cdd1e0 transparent;scrollbar-width:thin;background:#fff}
.public-site .scroll-progress span{background:var(--signal)!important}

/* ---- Measure: a readable column, 16px gutters on phones ---- */
.public-site .shell{width:min(1200px,calc(100% - 64px))!important;margin-inline:auto}
@media(max-width:640px){.public-site .shell{width:calc(100% - 32px)!important}}

/* ---- Type: ink hierarchy, no coloured headings ---- */
.public-site h1,.public-site h2,.public-site h3,.public-site .hero h1 span,.public-site h1 em,.public-site h2 em{color:var(--ink)!important;-webkit-text-fill-color:currentColor;background:none!important}
.public-site h1 em,.public-site h2 em{font-style:normal;color:var(--ink-soft)!important}
.public-site p,.public-site .hero-lead,.public-site .split-heading>p,.public-site .prose-grid p{color:var(--ink-soft)}
.public-site .section-label,.public-site .mini-label,.public-site .section-kicker,.public-site .eyebrow{color:var(--ink-faint)!important;background:none!important;border-color:var(--rule)!important}
.public-site .section-label::before,.public-site .section-label::after{background:var(--rule-strong)!important}
html[lang^="bn"] .public-site h1,html[lang^="bn"] .public-site h2{letter-spacing:-.01em!important;font-weight:700}
html[lang^="bn"] .public-site .hero h1{font-weight:700;line-height:1.12!important}

/* ---- Buttons: outlined; the accent lives in the outline, hover is a pale wash ---- */
.public-site .button{border-radius:999px!important;border:1.5px solid var(--rule-strong)!important;background:var(--paper)!important;color:var(--ink)!important;font-weight:600;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.public-site .button:hover{background:var(--paper-2)!important;border-color:var(--flow-line)!important;color:var(--ink)!important}
.public-site .button-primary{border-color:var(--signal)!important;color:var(--ink)!important;background:var(--paper)!important}
.public-site .button-primary:hover,.public-site .button-primary:focus-visible{background:var(--signal-tint)!important;border-color:var(--signal)!important;color:var(--ink)!important}
.public-site .button svg,.public-site .button svg path{stroke:currentColor!important}
.public-site .button:disabled,.public-site .button[aria-disabled="true"]{opacity:.45;pointer-events:none}
.public-site .text-cta{color:var(--ink)!important;border-color:var(--rule-strong)!important}
.public-site .text-cta:hover{border-color:var(--signal)!important}
.public-site .text-cta svg path{stroke:currentColor!important}
.public-site .lang-toggle{background:transparent!important;border:1px solid var(--rule)!important;color:var(--ink)!important}

/* ---- Header & announcement ---- */
.public-site .announcement{background:var(--paper-2)!important;color:var(--ink-soft)!important;border:0!important;border-bottom:1px solid var(--rule)!important}
.public-site .announcement a,.public-site .announcement-copy{color:var(--ink-2)!important}
.public-site .site-header{background:rgba(255,255,255,.96)!important;border:1px solid var(--rule)!important}
.public-site .nav a{color:var(--ink-soft)!important}.public-site .nav a:hover,.public-site .nav a.active-link{color:var(--ink)!important}
.public-site .nav a.active-link::after{background:var(--signal)!important}
.public-site .brand-mark{background:var(--paper)!important;color:var(--signal)!important;border:1.5px solid var(--signal)!important}
.public-site .brand-mark svg path{stroke:var(--signal)!important}

/* ---- Hero ---- */
.public-site .hero-meta,.public-site .hero-meta span{color:var(--ink-soft)!important}
.public-site .live-pill{background:transparent!important;border:1px solid var(--rule)!important;color:var(--ink)!important}
.public-site .live-pill i,.public-site .fabric-health i,.public-site .footer-status i{background:var(--signal)!important}
.public-site .fabric-console,.public-site .fabric-node,.public-site .fabric-job,.public-site .fabric-telemetry>div{background:var(--paper)!important;border-color:var(--rule)!important}
.public-site .fabric-stage{background:var(--paper-2)!important}
.public-site .fabric-console *{color:var(--ink)}
.public-site .fabric-node span,.public-site .fabric-toolbar small,.public-site .fabric-telemetry span{color:var(--ink-faint)!important}
.public-site .fabric-node i{background:var(--paper)!important;border-color:var(--ink)!important}
.public-site .fabric-job strong i{background:var(--signal)!important}

/* ---- Signal band: a quiet ruled strip ---- */
.public-site .signal-marquee{background:var(--paper)!important;border:0!important;border-block:1px solid var(--rule)!important}
.public-site .signal-track span{color:var(--ink-soft)!important}
.public-site .signal-track i{background:var(--flow-line)!important;opacity:.6}

/* ---- Story: no pinned scroll track (that was the empty space) ---- */
.public-site .scroll-story{height:auto!important;padding:96px 0 88px!important;border-bottom:1px solid var(--rule)!important}
.public-site .story-sticky{position:relative!important;top:auto!important;min-height:0!important;gap:32px!important;justify-content:flex-start!important;overflow:visible!important}
.public-site .story-title{margin:0;font-size:clamp(30px,3.4vw,46px);line-height:1.1;letter-spacing:-.02em;font-weight:700;color:var(--ink)}
.public-site .story-title span{color:var(--ink-faint);font-weight:400;margin:0 .15em}
.public-site .story-card{background:transparent!important;border:0!important;padding:0!important}
.public-site .story-item{border-color:var(--rule)!important;background:transparent!important}
.public-site .story-item p,.public-site .story-item .story-tag{color:var(--ink-soft)!important}
.public-site .story-item:not(.is-active){opacity:.55}
.public-site .story-item.is-active{opacity:1}
.public-site .story-item.is-active .story-item-num{color:var(--signal)!important}
.public-site .story-item h3 em{color:var(--ink-soft)!important;font-style:normal}
.public-site .story-tag{background:transparent!important;border-color:var(--rule)!important}
.public-site .story-asset img,.public-site .stack img{filter:grayscale(1) contrast(1.05);opacity:.85}
.public-site .story-asset-caption{color:var(--ink-soft)!important}

/* ---- Cards & tiles: white, hairline, soft line colour on hover ---- */
.public-site .gpu-card,.public-site .build-card,.public-site .blog-card,.public-site .blog-list-card,.public-site .workflow-grid article,.public-site .feature-list li,.public-site .faq-grid details,.public-site .spec-grid article,.public-site .comparison-table,.public-site .comparison-row>*,.public-site .source-note,.public-site .notebook-card,.public-site .pricing-table-wrap,.public-site .estimator-panel,.public-site .gpu-price-orb,.public-site .subpage-signal,.public-site .article-callout,.public-site .article-cta,.public-site .empty-state{background:var(--paper)!important;border-color:var(--rule)!important;background-image:none!important}
.public-site .gpu-card:hover,.public-site .build-card:hover,.public-site .blog-list-card:hover,.public-site .workload-links a:hover{border-color:var(--flow-line)!important;transform:none!important}
.public-site .build-card span,.public-site .build-card b,.public-site .workflow-grid article span,.public-site .rate-chip,.public-site .gpu-card-hint,.public-site .gpu-card-hint b{color:var(--ink)!important}
.public-site .rate-chip{background:var(--paper-2)!important;border-color:var(--rule)!important}
.public-site .gpu-specs span{background:var(--paper-2)!important;color:var(--ink-soft)!important;border-color:var(--rule)!important}
.public-site .gpu-explainer{background:var(--paper-2)!important;border-color:var(--paper-2)!important}
.public-site .gpu-explainer p strong{color:var(--ink)!important}
.public-site .workload-links a{background:transparent!important;border-color:var(--rule)!important;color:var(--ink)!important}
.public-site .workload-links b{background:transparent!important;border-color:var(--rule-strong)!important;color:var(--ink)!important}
.public-site .workload-links b svg path{stroke:var(--ink)!important}
.public-site .link-cloud a{color:var(--ink)!important;background:transparent!important}
.public-site .link-cloud a:hover{border-color:var(--flow-line)!important}
.public-site .feature-list li::before{color:var(--signal)!important}
.public-site .faq-grid summary{color:var(--ink)}

/* ---- Pricing: the estimate is a pale panel with the figure in the accent ---- */
.public-site .estimate-total{background:var(--paper-2)!important;border:1px solid var(--rule)!important}
.public-site .estimate-total,.public-site .estimate-total *{color:var(--ink)!important}
.public-site .estimate-total small{color:var(--ink-faint)!important}
.public-site .estimate-total strong,.public-site .estimate-total #estimateValue{color:var(--signal)!important}
.public-site .estimate-total .button{background:var(--paper)!important;border-color:var(--signal)!important;color:var(--ink)!important}
.public-site .estimate-total .button:hover{background:var(--signal-tint)!important}
.public-site input[type=range]{accent-color:var(--signal)}
.public-site select,.public-site input,.public-site textarea{background:var(--paper)!important;border-color:var(--rule-strong)!important;color:var(--ink)!important}
.public-site .pricing-table th{color:var(--ink-faint)!important;background:transparent!important}
.public-site .pricing-table td{border-color:var(--rule)!important}
.public-site .gpu-price-orb strong{color:var(--ink)!important}

/* ---- Waitlist modal: the one surface that earns depth ---- */
.public-site .waitlist-modal-backdrop{background:rgba(30,36,51,.28)!important}
.public-site .waitlist-modal-card{background:var(--paper)!important;border:1px solid var(--rule)!important;box-shadow:0 30px 80px -30px rgba(30,36,51,.28)!important}
.public-site .waitlist-success{background:var(--paper-2)!important;border-color:var(--rule)!important;color:var(--ink)!important}

/* ---- Footer: pale ground, hairline top ---- */
.public-site .footer{width:100%!important;max-width:none!important;background:var(--paper-2)!important;color:var(--ink-soft)!important;border:0!important;border-top:1px solid var(--rule)!important;padding:56px max(32px,calc((100% - 1200px)/2)) 40px!important;margin-top:96px}
.public-site .footer *{color:var(--ink-soft)!important;border-color:var(--rule)!important}
.public-site .footer strong,.public-site .footer h2,.public-site .footer h3,.public-site .footer h4{color:var(--ink)!important}
.public-site .footer a:hover{color:var(--signal)!important}
.public-site .footer .brand-mark{background:var(--paper)!important}.public-site .footer .brand-mark svg path{stroke:var(--signal)!important}
.public-site .footer-note,.public-site .footer-brand p{color:var(--ink-faint)!important}

/* ---- Motion: one gentle entrance, no blur ---- */
.public-site .motion-reveal{filter:none!important;transform:translateY(10px)}
.public-site .motion-reveal.is-visible{transform:none}
@media(prefers-reduced-motion:reduce){.public-site .motion-reveal{opacity:1!important;transform:none!important}}
/* Bangla pages: the self-hosted Anek Bangla wins over the older system-font stacks
   (html[lang^="bn"] body… rules above), everywhere on the public site incl. mono labels. */
html[lang^="bn"] body.public-site,
html[lang^="bn"] body.public-site :is(h1,h2,h3,h4,p,a,span,li,button,input,select,textarea,label,strong,em,small,summary,.ticker-track){font-family:"Anek Bangla","Noto Sans Bengali","Nirmala UI",ui-sans-serif,system-ui,sans-serif!important}
html[lang^="bn"] body.public-site code,html[lang^="bn"] body.public-site pre,html[lang^="bn"] body.public-site pre *{font-family:ui-monospace,"SFMono-Regular",Menlo,monospace!important}
/* v9.12 batch 2 — remaining decoration, hero scale, card consistency */
body.public-site::before,body.public-site::after,
.public-site .fabric-console::before,.public-site .fabric-console::after,
.public-site .estimator-panel::before,.public-site .blog-card::before,.public-site .blog-card::after,
.public-site .footer::before,.public-site .gpu-card::before,.public-site .gpu-card::after,.public-site .build-card::before{background:none!important;background-image:none!important}
.public-site .hero h1{font-size:clamp(46px,6.2vw,88px)!important;line-height:1.08!important}
.public-site .gpu-card.featured{border-color:var(--rule)!important}
.public-site .gpu-card:hover{border-color:var(--flow-line)!important}
.public-site .blog-card{background:var(--paper-2)!important;border-color:var(--paper-2)!important}
.public-site .blog-card:hover{border-color:var(--flow-line)!important}
.public-site .fabric-stage canvas{opacity:.9}
.public-site .scroll-story + .section{padding-top:72px!important}
.public-site .notebook-card::before{background-image:none!important;background:none!important}

/* =====================================================================================
   v9.13 — hero: full-bleed flow-line background (src/flow-art.mjs), centred copy.
   Replaces the old "session preview" console + canvas. The lines are 0.7px strokes in
   --flow-line; a few short streaks in --flow-streak travel along them. Paused offscreen
   (motion.js toggles .is-paused) and frozen under Reduce Motion.
   ===================================================================================== */
.public-site .hero.hero-flow{position:relative;isolation:isolate;overflow:hidden;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;min-height:clamp(560px,calc(100svh - 150px),800px);display:grid;place-items:center;border-bottom:1px solid var(--rule)}
.public-site .hero-flow-art{position:absolute;inset:0;z-index:-1;pointer-events:none}
.public-site .flow-art-svg{width:100%;height:100%;display:block}
.public-site .flow-line{fill:none;stroke:var(--flow-line);stroke-width:.7;vector-effect:non-scaling-stroke}
.public-site .flow-streak{fill:none;stroke:var(--flow-streak);stroke-width:1.1;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:flowStream var(--dur) linear infinite;animation-delay:var(--delay)}
@keyframes flowStream{from{stroke-dashoffset:1600}to{stroke-dashoffset:0}}
.public-site .hero-flow.is-paused .flow-streak{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.public-site .flow-streak{animation:none}}
.public-site .hero-flow-inner{position:relative;padding:88px 0 96px;display:flex;justify-content:center}
.public-site .hero-flow .hero-copy{width:100%!important;max-width:1120px!important;margin:0 auto;padding:0!important;text-align:center;display:flex;flex-direction:column;align-items:center}
.public-site .hero-flow h1{align-self:stretch;max-width:none!important;width:auto!important;text-wrap:pretty!important;margin:0 0 24px!important;font-size:clamp(40px,5.4vw,80px)!important;line-height:1.06!important;letter-spacing:-.03em}
.public-site .hero-flow h1 span{display:inline!important;padding:0!important;text-wrap:pretty!important;color:var(--ink-soft)!important;font-weight:500}
html[lang^="bn"] .public-site .hero-flow h1{line-height:1.14!important;letter-spacing:-.005em}
.public-site .hero-flow .hero-lead{max-width:640px;margin:0 auto 32px;font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--ink-soft)}
.public-site .hero-flow .hero-actions{justify-content:center;flex-wrap:wrap;gap:12px 24px}
.public-site .hero-flow .hero-meta{justify-content:center;flex-wrap:wrap;margin-top:28px;gap:8px 20px}
.public-site .hero-flow .button-primary{background:rgba(255,255,255,.9)!important}
@media(max-width:640px){
  .public-site .hero.hero-flow{min-height:0}
  .public-site .hero-flow-inner{padding:64px 0 72px}
  .public-site .hero-flow .hero-lead{font-size:16px}
}
/* v9.13 — subpage "signal" card: same soft line palette, no glow */
.public-site .signal-field,.public-site .signal-field::before,.public-site .signal-field::after{background:var(--paper)!important;background-image:none!important}
.public-site .subpage-signal svg path{stroke:var(--flow-line)!important;opacity:.7}
.public-site .subpage-signal svg path.signal-flow{stroke:var(--flow-streak)!important;opacity:1}
.public-site .signal-point{background:var(--paper)!important;border-color:var(--signal)!important}
.public-site .signal-head i{background:var(--signal)!important}
.public-site .signal-axis{background:var(--rule)!important}
/* v9.13 — last green tints and decorative gradients on sub-pages */
.public-site main::before,.public-site main.shell::before,.public-site .gpu-price-orb::before,
.public-site .waitlist-form::before,.public-site .blog-list-card::before,.public-site .brand-mark::after{background:none!important;background-image:none!important}
.public-site .spec-grid article::after{background:var(--rule)!important;background-image:none!important}
.public-site .workflow-grid article span{border-color:var(--rule)!important}
/* v9.13.1 — clean white: remove the old fixed full-page vignette (body::after had a
   150px inset shadow, which greyed every screen edge). Only depth left on the page:
   one faint periwinkle "light" behind the hero headline, and the waitlist modal. */
body.public-site::before,body.public-site::after{content:none!important;display:none!important;box-shadow:none!important;background:none!important}
.public-site .hero-flow::after{content:"";position:absolute;left:50%;top:46%;width:min(900px,90vw);height:420px;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(89,101,219,.07),rgba(89,101,219,.025) 55%,transparent)}
/* v9.13.1 — no blur anywhere on the public site: entrances fade/slide only */
.public-site :is(.hero-copy,.hero-copy>*,.hero-actions,.hero-meta,.subpage-copy>*,.gpu-detail-grid *,.article-header>*,.gpu-card,.build-card,.blog-card,.blog-list-card,.workflow-grid article,.spec-grid article,.section-kicker,.section-label,h1,h2,h3,#estimateValue){filter:none!important}
.public-site .notebook-glow{display:none!important}
.public-site main::before,.public-site .blog-index::before,.public-site .article-shell::before{content:none!important}
/* v9.14 — story pins once the whole scene is on screen; scrolling while pinned moves only
   01 → 02 → 03, then the page continues. Height and --story-top are set by motion.js
   (layoutStoryPin) so the track is exactly scene + one step per item: no empty space. */
.public-site .scroll-story.is-pinned{height:var(--story-h)!important;padding:0!important;border-bottom:1px solid var(--rule)!important}
.public-site .scroll-story.is-pinned .story-sticky{position:sticky!important;top:var(--story-top,96px)!important;padding:20px 0!important;gap:22px!important}
.public-site .scroll-story.is-pinned .story-title{font-size:clamp(28px,2.6vw,40px)}
.public-site .scroll-story.is-pinned .story-item{padding:14px 12px 15px 14px}
.public-site .scroll-story.is-pinned .story-item p{margin:8px 0 10px;font-size:15.5px;line-height:1.55}
.public-site .scroll-story.is-pinned .stack{width:min(100%,640px,calc((100vh - 250px) * 1.17))}
.public-site .scroll-story.is-pinned .story-asset{transform:none}
.public-site .story-item{transition:opacity .35s ease}
.public-site .scroll-story.is-compact .story-item:not(.is-active) :is(p,.story-tags){display:none}
.public-site .scroll-story.is-compact .story-item.is-active :is(p,.story-tags){animation:storyTextIn .35s ease both}
@keyframes storyTextIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.public-site .scroll-story.is-compact .story-item.is-active :is(p,.story-tags){animation:none}}
/* v9.14 — GPU line drawings (src/gpu-art.mjs) + per-prompt / per-image costs */
.public-site .gpu-art{display:grid;place-items:center;aspect-ratio:288/140;margin:0 0 16px;padding:6px 8px;background:var(--paper-2);border-radius:10px}
.public-site .gpu-art-svg{width:100%;height:100%;display:block}
.public-site .ga-line{fill:none;stroke:var(--flow-line);stroke-width:1.3;vector-effect:non-scaling-stroke}
.public-site .ga-soft{fill:none;stroke:var(--flow-line);stroke-width:.8;opacity:.55;vector-effect:non-scaling-stroke}
.public-site .ga-fin{fill:none;stroke:var(--flow-line);stroke-width:.7;opacity:.55;vector-effect:non-scaling-stroke}
.public-site .ga-accent{fill:none;stroke:var(--signal);stroke-width:1.4;vector-effect:non-scaling-stroke}
.public-site .ga-thin{stroke-width:.8}
.public-site .ga-dash{fill:none;stroke:var(--flow-line);stroke-width:.9;stroke-dasharray:3 3;opacity:.6;vector-effect:non-scaling-stroke}
.public-site .gpu-card .ga-line,.public-site .gpu-card .ga-fin{transition:stroke .2s ease}
.public-site .gpu-card:hover .ga-line{stroke:var(--ink-2)}
.public-site .unit-costs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 4px}
.public-site .unit-costs span{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--rule);border-radius:10px;background:var(--paper)}
.public-site .unit-costs small{font-size:11.5px;color:var(--ink-faint);letter-spacing:.02em}
.public-site .unit-costs b{font-size:15px;font-weight:650;color:var(--ink)}
.public-site .unit-note{max-width:900px;margin:18px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-faint)!important}
.public-site .estimate-total .unit-detail{display:block;margin-top:6px;color:var(--ink-soft)!important}
.public-site .gpu-price-orb .gpu-art{width:100%;margin-bottom:18px}
.public-site .gpu-price-orb .unit-costs{width:100%;text-align:left}
/* v9.15 — ComputeBD logo (from the DXF: CBD monogram + wordmark), src/public/brand/ */
.brand .brand-logo{display:block;height:34px;width:auto;max-width:none}
.public-site .footer .brand .brand-logo{height:38px}
.admin-sidebar .brand .brand-logo,.admin-login-card .brand .brand-logo{height:30px}
@media(max-width:640px){.public-site .site-header .brand .brand-logo{height:28px}}
/* v9.15 — homepage refinements */
.public-site .signal-marquee{border:0!important;border-block:0!important}
/* story: bigger left-aligned text, number first ("০১ — Title"), larger drawing centred on step 02 */
.public-site .story-title{text-align:left;max-width:22ch;font-size:clamp(34px,3.6vw,54px)!important;line-height:1.12!important}
.public-site .scroll-story.is-pinned .story-title{font-size:clamp(30px,3vw,46px)!important}
@media(min-width:901px){.public-site .story-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;gap:28px 56px!important;align-items:center!important}}
.public-site .story-item{text-align:left}
.public-site .story-item-head{display:flex!important;align-items:baseline!important;justify-content:flex-start!important;gap:10px!important}
.public-site .story-item-head .story-item-num{order:0;flex:none;font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--ink-faint)}
.public-site .story-item-head .story-item-num::after{content:" —";font-weight:400}
.public-site .story-item-head h3{flex:1 1 auto;font-size:clamp(20px,1.7vw,25px)!important;line-height:1.3!important;text-align:left}
.public-site .story-item p{font-size:17px!important;line-height:1.6!important;text-align:left}
.public-site .story-item p strong{color:var(--ink);font-weight:650}
.public-site .scroll-story.is-pinned .story-item p{font-size:16px!important}
@media(min-width:901px){.public-site .story-asset{align-self:center!important;transform:translateY(-4%)!important}}
.public-site .stack{width:min(100%,760px)!important;max-width:none!important}
.public-site .scroll-story.is-pinned .stack{width:min(100%,760px,calc((100vh - 190px) * 1.17))!important}
/* GPU section heading without the label/paragraph */
.public-site .gpu-heading{margin-bottom:36px}
/* v9.15 — waitlist form: clean white, no grey fills, no header block */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.public-site .waitlist-form [hidden],.public-site .waitlist-modal [hidden]{display:none!important}
.public-site .waitlist-modal-card{background:#fff!important;padding-top:44px!important}
.public-site .waitlist-modal-card *{background-image:none!important}
.public-site .waitlist-form{background:#fff!important;border:0!important;padding:0!important;gap:14px!important}
.public-site .waitlist-form::before,.public-site .waitlist-form::after{content:none!important}
.public-site .waitlist-form label>span{color:var(--ink-2)!important;font-weight:600;font-size:13.5px}
.public-site .waitlist-form :is(input:not([type=checkbox]),textarea,select),.public-site .waitlist-modal .select-trigger{background:#fff!important;border:1px solid var(--rule-strong)!important;color:var(--ink)!important;border-radius:12px!important}
.public-site .waitlist-form :is(input,textarea)::placeholder{color:#a3a9b6}
.public-site .waitlist-form :is(input,textarea):focus,.public-site .waitlist-modal .select-trigger:focus-visible{border-color:var(--signal)!important;outline:none!important;box-shadow:0 0 0 3px rgba(89,101,219,.12)!important}
.public-site .select-trigger.is-placeholder{color:#8a91a0!important}
.public-site .select-trigger:hover{border-color:var(--flow-line)!important}
.public-site .select-list{background:#fff!important;border:1px solid var(--rule)!important;box-shadow:0 18px 40px -24px rgba(30,36,51,.3)!important}
.public-site .select-list li:hover,.public-site .select-list li:focus-visible{background:var(--signal-tint)!important}
.public-site .select-list li[aria-selected="true"]{background:var(--signal-tint)!important;color:var(--ink)!important}
.public-site .waitlist-form .consent{background:#fff!important;border:0!important;padding:4px 0!important;color:var(--ink-soft)}
.public-site .waitlist-form .consent input{accent-color:var(--signal)}
.public-site .waitlist-gpu-chosen{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.public-site .waitlist-gpu-chosen span{font-size:13px;color:var(--ink-faint)}
.public-site .waitlist-gpu-chosen strong{color:var(--ink);font-weight:650}
.public-site .text-button{margin-left:auto;background:none;border:0;padding:4px 2px;color:var(--signal);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.public-site .waitlist-success{background:#fff!important;border:1px solid var(--rule)!important}
.public-site .payment-panel{background:#fff!important;border:1px solid var(--rule)!important;display:grid;gap:12px}
.public-site .payment-panel h3{margin:0;font-size:18px}

/* =====================================================================================
   v9.16 — one colour scheme everywhere: the dashboard (/app), admin (/admin) and sign-in
   pages use the public site's palette and logo. Same tokens as body.public-site:
   white paper, slate ink #1e2433, one periwinkle accent #5965db, hairline rules, no glow.
   Status colours stay semantic (success / warning / danger) but softened.
   ===================================================================================== */
body.admin-body{
  --ink:#1e2433; --ink-2:#343b4d; --ink-soft:#56616b; --ink-faint:#737b8c;
  --paper:#ffffff; --paper-2:#f6f7fb; --rule:#e6e8f0; --rule-strong:#cdd1e0;
  --signal:#5965db; --signal-tint:#eef0fb; --signal-ink:#3f4bc0; --flow-line:#8595be;
  --ok:#177245; --ok-bg:#eaf6ef; --warn:#8a5a00; --warn-bg:#fdf4e3; --bad:#b42318; --bad-bg:#fdecea;
  --bg:var(--paper); --bg-deep:var(--paper-2); --panel:var(--paper); --panel-strong:var(--paper);
  --line:var(--rule); --line-strong:var(--rule-strong); --text:var(--ink); --muted:var(--ink-soft);
  --green:var(--signal); --green-ink:var(--signal-ink); --green-bright:var(--signal); --lime:var(--signal); --lime-ink:var(--signal-ink);
  --shadow:none; --radius:14px;
  background:var(--paper)!important; color:var(--ink);
  font-family:"Anek Bangla","Segoe UI Variable Text","Segoe UI",ui-sans-serif,system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;
}
html:has(body.admin-body){background:#fff;scrollbar-color:#cdd1e0 transparent}
.admin-body ::selection{background:#dfe3fa;color:var(--ink)}
.admin-body :focus-visible{outline:2px solid var(--signal)!important;outline-offset:2px}
.admin-body *,.admin-body *::before,.admin-body *::after{text-shadow:none!important}
.admin-body .noise,.admin-body .ambient-layer{display:none!important}

/* shell */
.admin-body .admin-sidebar{background:var(--paper)!important;backdrop-filter:none!important;border-right:1px solid var(--rule)!important}
.admin-body .admin-nav button{color:var(--ink-soft)!important;background:transparent!important;border:1px solid transparent!important;border-radius:10px}
.admin-body .admin-nav button:hover{color:var(--ink)!important;background:var(--paper-2)!important}
.admin-body .admin-nav button.active,.admin-body .admin-nav button[aria-current="page"],.admin-body .admin-nav button[aria-selected="true"]{color:var(--ink)!important;background:var(--signal-tint)!important;border-color:transparent!important;box-shadow:inset 3px 0 0 var(--signal)!important;font-weight:600}
.admin-body .admin-sidebar-foot a,.admin-body .admin-sidebar-foot button{color:var(--ink-soft)!important}
.admin-body .admin-main{background:var(--paper)!important}
.admin-body .admin-topbar{border-bottom:1px solid var(--rule)!important}
.admin-body h1,.admin-body h2,.admin-body h3,.admin-body h4{color:var(--ink)!important}
.admin-body .mini-label,.admin-body .section-kicker,.admin-body .eyebrow{color:var(--ink-faint)!important;background:none!important}
.admin-body p,.admin-body .admin-panel-note{color:var(--ink-soft)}
.admin-body .admin-panel-note strong{color:var(--ink)}
.admin-body a:not(.button):not(.brand){color:var(--signal-ink)}
.admin-body .admin-live-badge{background:var(--paper)!important;color:var(--ink-soft)!important;border:1px solid var(--rule)!important;box-shadow:none!important}

/* surfaces */
.admin-body .admin-card,.admin-body .admin-stat,.admin-body .admin-stat-grid>*,.admin-body .admin-login-card,.admin-body .admin-table-wrap,.admin-body .gpu-editor,.admin-body .ph-card,.admin-body details{background:var(--paper)!important;border-color:var(--rule)!important;box-shadow:none!important;background-image:none!important}
.admin-body .admin-stat strong,.admin-body .admin-stat-grid strong{color:var(--ink)!important}
.admin-body .admin-table th{color:var(--ink-faint)!important;background:var(--paper-2)!important;border-color:var(--rule)!important}
.admin-body .admin-table td{border-color:var(--rule)!important;color:var(--ink)}
.admin-body .admin-table tr:hover td{background:#fafbfe}
.admin-body .admin-table small{color:var(--ink-faint)}

/* controls */
.admin-body input:not([type=checkbox]):not([type=radio]):not([type=range]),.admin-body select,.admin-body textarea{background:var(--paper)!important;border:1px solid var(--rule-strong)!important;color:var(--ink)!important;box-shadow:none!important}
.admin-body input:focus,.admin-body select:focus,.admin-body textarea:focus{border-color:var(--signal)!important;box-shadow:0 0 0 3px rgba(89,101,219,.12)!important;outline:none}
.admin-body input::placeholder,.admin-body textarea::placeholder{color:#a3a9b6}
.admin-body input[type=checkbox],.admin-body input[type=radio],.admin-body input[type=range]{accent-color:var(--signal)}
.admin-body .button{border-radius:999px!important;border:1.5px solid var(--rule-strong)!important;background:var(--paper)!important;color:var(--ink)!important;box-shadow:none!important;font-weight:600;transform:none!important}
.admin-body .button:hover{background:var(--paper-2)!important;border-color:var(--flow-line)!important}
.admin-body .button-primary{border-color:var(--signal)!important;background:var(--paper)!important;color:var(--ink)!important}
.admin-body .button-primary:hover,.admin-body .button-primary:focus-visible{background:var(--signal-tint)!important;border-color:var(--signal)!important}
.admin-body .button:disabled{opacity:.5}
.admin-body .button svg path{stroke:currentColor!important}
.admin-body .button.danger,.admin-body .button-danger,.admin-body .table-delete{color:var(--bad)!important;border-color:#f1b8b2!important;background:var(--paper)!important}
.admin-body .admin-nav#authTabs button.active,.admin-body #authTabs button.active{box-shadow:inset 0 -2px 0 var(--signal)!important}

/* status: semantic, softened */
.admin-body .admin-alert{color:var(--bad)!important}
.admin-body .login-error{color:var(--bad)!important}
/* status: accent = running / OK / live (same as the site's "live" dots), amber = waiting / warning,
   red = failed, grey = stopped. No green anywhere. */
.admin-body .status-pill.is-running,.admin-body .cs-ok,.admin-body .audit-action-chip.audit-success{color:var(--signal-ink)!important;background:var(--signal-tint)!important}
.admin-body .status-pill.is-pending,.admin-body .cs-warn{color:var(--warn)!important;background:var(--warn-bg)!important}
.admin-body .status-pill.is-failed,.admin-body .cs-fail{color:var(--bad)!important;background:var(--bad-bg)!important}
.admin-body .status-pill.is-stopped{color:var(--ink-faint)!important;background:var(--paper-2)!important}
.admin-body .status-pill.is-local{color:var(--ink-soft)!important;background:var(--paper)!important;box-shadow:inset 0 0 0 1px var(--rule-strong)!important}
.admin-body .nb-banner.is-warn,.admin-body .ph-tile.ph-warn{color:var(--warn);background:var(--warn-bg)!important;border-color:#f0d9a8!important}
.admin-body .nb-banner.is-fail,.admin-body .ph-tile.ph-fail{background:var(--bad-bg)!important;border-color:#f1b8b2!important}
.admin-body .nb-banner.is-fail{color:var(--bad)}
.admin-body .cs-fix,.admin-body .cs-fix a{color:var(--signal-ink)!important}
/* wallet: the top-up card was squeezed into a narrow column */
@media(min-width:901px){.admin-body #app-panel-wallet .admin-two-col{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)!important}}
.admin-body #topupForm{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
@media(max-width:520px){.admin-body #topupForm{grid-template-columns:1fr}}
/* v9.17 — GPU renders on cards and GPU pages (src/public/assets/gpus, mapping in src/gpu-art.mjs) */
.public-site .gpu-art.has-photo{padding:0;overflow:hidden;background:#0b0f19;aspect-ratio:16/9;border-radius:12px}
.public-site .gpu-photo,.public-site .gpu-photo img{display:block;width:100%;height:100%}
.public-site .gpu-photo img{object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.public-site .gpu-card:hover .gpu-photo img{transform:scale(1.035)}
@media(prefers-reduced-motion:reduce){.public-site .gpu-card:hover .gpu-photo img{transform:none}}
.public-site .gpu-detail-side{display:grid;gap:16px;align-content:start}
.public-site .gpu-detail-photo{overflow:hidden;border-radius:16px;background:#0b0f19;aspect-ratio:16/9}
.public-site .gpu-detail-photo img{object-fit:cover}
@media(min-width:901px){.public-site .gpu-detail-grid{grid-template-columns:minmax(0,1fr) minmax(380px,500px)!important;align-items:start}}
.public-site .gpu-detail-side .gpu-price-orb{width:100%!important;max-width:none!important;margin:0!important}
.public-site .gpu-detail-side .gpu-price-orb{padding:28px 24px!important;min-height:0!important;aspect-ratio:auto!important;border-radius:16px!important}
/* v9.18 — no rule between the story and "AI দিয়ে কী বানাবেন?" */
.public-site .scroll-story,.public-site .scroll-story.is-pinned{border-bottom:0!important}
.public-site .scroll-story + .section,.public-site .build-ideas{border-top:0!important}
.public-site .build-ideas .split-heading{margin-bottom:36px}
.admin-body .admin-nav-sep{display:block;height:1px;background:var(--rule);margin:10px 8px}
@media(max-width:900px){.admin-body .admin-nav-sep{display:none}}
/* v9.18 — Admin → Backups */
.admin-body .bk-head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin-body .bk-upload{cursor:pointer}
.admin-body .bk-upload.is-busy{opacity:.6;pointer-events:none}
.admin-body .bk-status-list{display:grid;gap:8px;margin:6px 0 14px}
.admin-body .bk-status{display:grid;gap:3px;padding:12px 14px;border-radius:12px;border:1px solid var(--rule);background:var(--paper-2)}
.admin-body .bk-status strong{font-size:14px;color:var(--ink)}
.admin-body .bk-status span{font-size:13px;color:var(--ink-soft)}
.admin-body .bk-status .button{justify-self:start;margin-top:6px}
.admin-body .bk-status.is-ok{background:var(--signal-tint);border-color:#d6dbf6}
.admin-body .bk-status.is-warn{background:var(--warn-bg);border-color:#f0d9a8}
.admin-body .bk-status.is-bad{background:var(--bad-bg);border-color:#f1b8b2}
.admin-body .bk-status.is-bad strong{color:var(--bad)}
.admin-body .err-fix{display:block;margin-top:4px;color:var(--ink-2)!important}
.admin-body .bk-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;margin-top:0}
@media(max-width:900px){.admin-body .bk-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.admin-body .bk-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;background:var(--paper-2);color:var(--ink-soft)}
.admin-body .bk-pill.is-ok{background:var(--signal-tint);color:var(--signal-ink)}
.admin-body .bk-pill.is-bad{background:var(--bad-bg);color:var(--bad)}
.admin-body .bk-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.admin-body .bk-steps{margin:4px 0 16px;padding-left:20px;color:var(--ink-soft);font-size:14px;line-height:1.7}
.admin-body .bk-steps code{word-break:break-all;background:var(--paper-2);padding:1px 6px;border-radius:6px}
.admin-body .gd-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.admin-body .gd-form label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2)}
.admin-body .gd-form .admin-check{grid-column:1/-1;display:flex;gap:8px;align-items:center;font-weight:500}
.admin-body .gd-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:700px){.admin-body .gd-form{grid-template-columns:1fr}}
.admin-body #gdFiles{margin-top:14px}
/* v9.18 — Revenue (Stripe-style) + shared chart kit */
.admin-body .rv-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.admin-body .rv-toolbar small{color:var(--ink-faint)}
.admin-body .seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:999px;padding:3px;background:#fff}
.admin-body .seg button{border:0;background:transparent;padding:6px 14px;border-radius:999px;font:inherit;font-size:13px;color:var(--ink-soft);cursor:pointer}
.admin-body .seg button.active{background:var(--signal-tint);color:var(--ink);font-weight:600}
.admin-body .rv-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.admin-body .rv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-body .rv-tile{display:grid;gap:6px;padding:16px 18px;border:1px solid var(--rule);border-radius:14px;background:#fff}
.admin-body .rv-tile span{font-size:12.5px;color:var(--ink-faint);font-weight:600}
.admin-body .rv-tile strong{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:26px;letter-spacing:-.02em;color:var(--ink)}
.admin-body .rv-tile small{font-size:12.5px;color:var(--ink-soft)}
.admin-body .dl{font-style:normal;font-size:12.5px;font-weight:600;padding:2px 7px;border-radius:999px;background:var(--paper-2);color:var(--ink-soft)}
.admin-body .dl.up{background:var(--signal-tint);color:var(--signal-ink)}
.admin-body .dl.down{background:var(--bad-bg);color:var(--bad)}
.admin-body .rv-card{margin-top:14px}
.admin-body .rv-table td small{display:block;color:var(--ink-faint);font-size:12px}
.admin-body .rv-table td.neg{color:var(--ink-soft)}
.admin-body .rv-table td.pos{color:var(--signal-ink);font-weight:600}
.admin-body .chart{position:relative;min-height:120px}
.admin-body .chart-empty{display:grid;place-items:center;min-height:140px;color:var(--ink-faint);font-size:14px;border:1px dashed var(--rule);border-radius:12px}
.admin-body .ch-wrap{position:relative}
.admin-body .ch-grid{stroke:#eceef4;stroke-width:1}
.admin-body .ch-axis{fill:#8a91a0;font-size:11px}
.admin-body .ch-end{fill:var(--ink-soft);font-size:12px;font-weight:600}
.admin-body .ch-cross{stroke:#b8bdcc;stroke-width:1;stroke-dasharray:3 3}
.admin-body .ch-legend{display:flex;gap:16px;margin:0 0 8px;font-size:13px;color:var(--ink-soft)}
.admin-body .ch-legend i,.admin-body .ch-tip i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.admin-body .ch-tip{position:absolute;top:8px;display:grid;gap:4px;min-width:150px;padding:10px 12px;background:#fff;border:1px solid var(--rule);border-radius:10px;box-shadow:0 10px 28px -18px rgba(30,36,51,.4)!important;font-size:12.5px;color:var(--ink-soft);pointer-events:none}
.admin-body .ch-tip strong{color:var(--ink);font-size:13px}
.admin-body .ch-tip b{color:var(--ink)}
/* v9.18 — Monitoring */
.admin-body .mon-banner{display:grid;gap:2px;padding:14px 18px;border-radius:14px;border:1px solid var(--rule);background:var(--paper-2);margin-bottom:12px}
.admin-body .mon-banner strong{font-size:17px;color:var(--ink)}
.admin-body .mon-banner span{font-size:13px;color:var(--ink-soft)}
.admin-body .mon-banner.is-ok{background:var(--signal-tint);border-color:#d6dbf6}
.admin-body .mon-banner.is-warn{background:var(--warn-bg);border-color:#f0d9a8}
.admin-body .mon-banner.is-bad{background:var(--bad-bg);border-color:#f1b8b2}
.admin-body .mon-banner.is-bad strong{color:var(--bad)}
.admin-body .mon-checks{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media(max-width:1100px){.admin-body .mon-checks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.admin-body .mon-checks li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:10px 12px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.admin-body .mon-checks li span{grid-row:span 2;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700;background:var(--signal-tint);color:var(--signal-ink)}
.admin-body .mon-checks li.bad span{background:var(--bad-bg);color:var(--bad)}
.admin-body .mon-checks li strong{font-size:13.5px;color:var(--ink)}
.admin-body .mon-checks li small{font-size:12.5px;color:var(--ink-soft)}
.admin-body .mon-err-list{display:grid;gap:6px;margin-top:12px}
.admin-body .mon-err{border:1px solid var(--rule);border-radius:10px;padding:8px 12px;background:#fff}
.admin-body .mon-err summary{display:flex;gap:10px;align-items:baseline;cursor:pointer;font-size:13px}
.admin-body .mon-err summary span{color:var(--ink-faint);font-variant-numeric:tabular-nums}
.admin-body .mon-err summary small{margin-left:auto;color:var(--ink-faint)}
.admin-body .mon-err pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px;background:var(--paper-2);padding:10px;border-radius:8px;color:var(--ink-2)}
.admin-body .auth-form .auth-submit{margin-top:14px}
.admin-body .auth-form{display:grid;gap:10px}
/* v9.18 — user dashboard: website dropdown, wallet popup, live sessions, ready-to-launch */
.admin-body .select-enhanced{position:relative;width:100%}
.admin-body .select-trigger{width:100%;text-align:left;background:#fff!important;border:1px solid var(--rule-strong)!important;color:var(--ink)!important;border-radius:12px!important;padding:12px 40px 12px 14px;min-height:46px;font:inherit;font-weight:600;cursor:pointer;position:relative}
.admin-body .select-trigger:hover{border-color:var(--flow-line)!important}
.admin-body .select-trigger:focus-visible{border-color:var(--signal)!important;box-shadow:0 0 0 3px rgba(89,101,219,.12)!important;outline:none}
.admin-body .select-list{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);max-height:320px;overflow:auto;margin:0;padding:6px;list-style:none;background:#fff!important;border:1px solid var(--rule)!important;border-radius:12px;box-shadow:0 18px 40px -24px rgba(30,36,51,.35)!important}
.admin-body .select-list li{padding:10px 12px;border-radius:9px;font-size:14px;cursor:pointer;color:var(--ink)}
.admin-body .select-list li:hover,.admin-body .select-list li:focus-visible{background:var(--signal-tint)!important;outline:none}
.admin-body .select-list li[aria-selected="true"]{background:var(--signal-tint)!important;color:var(--ink)!important;font-weight:650}
.admin-body .ov-wallet-card{cursor:pointer;transition:border-color .15s ease,background .15s ease}
.admin-body .ov-wallet-card:hover,.admin-body .ov-wallet-card:focus-visible{border-color:var(--signal)!important;background:var(--signal-tint)!important}
.admin-body .ov-wallet-card small b{color:var(--signal-ink);font-weight:650}
.admin-body .cbd-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px}
.admin-body .cbd-modal[hidden]{display:none}
.admin-body .cbd-modal-backdrop{position:absolute;inset:0;background:rgba(30,36,51,.28);opacity:0;transition:opacity .18s ease}
.admin-body .cbd-modal-card{position:relative;width:min(460px,100%);display:grid;gap:12px;padding:28px;background:#fff;border:1px solid var(--rule);border-radius:18px;box-shadow:0 30px 80px -30px rgba(30,36,51,.35)!important;transform:translateY(8px);opacity:0;transition:transform .2s ease,opacity .2s ease}
.admin-body .cbd-modal.is-open .cbd-modal-backdrop{opacity:1}
.admin-body .cbd-modal.is-open .cbd-modal-card{transform:none;opacity:1}
.admin-body .cbd-modal-card h2{margin:0}
.admin-body .cbd-modal-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:#fff;cursor:pointer;color:var(--ink-soft)}
.admin-body .topup-chips{display:flex;flex-wrap:wrap;gap:8px}
.admin-body .topup-chips button{border:1px solid var(--rule-strong);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-weight:600;cursor:pointer;color:var(--ink)}
.admin-body .topup-chips button.active,.admin-body .topup-chips button:hover{border-color:var(--signal);background:var(--signal-tint)}
.admin-body .topup-modal-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.admin-body .topup-modal-form label{display:grid;gap:6px;font-size:13px;font-weight:600}
@media(prefers-reduced-motion:reduce){.admin-body .cbd-modal-card,.admin-body .cbd-modal-backdrop{transition:none}}
.admin-body .ov-live{margin-top:18px;padding-top:16px;border-top:1px solid var(--rule)}
.admin-body .ov-live-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.admin-body .ov-live-head small{color:var(--ink-faint)}
.admin-body .live-row{display:grid;grid-template-columns:88px 1fr auto;gap:16px;align-items:center;padding:14px;border:1px solid var(--rule);border-radius:14px;background:#fff;margin-bottom:10px}
.admin-body .live-thumb{width:88px;height:56px;border-radius:10px;object-fit:cover;background:#0b0f19;display:block}
.admin-body .live-main strong{font-size:16px;color:var(--ink)}
.admin-body .live-main small{display:block;color:var(--ink-faint);font-size:12.5px;margin-top:2px}
.admin-body .live-main dl{display:flex;flex-wrap:wrap;gap:6px 22px;margin:10px 0 0}
.admin-body .live-main dl div{display:grid;gap:2px}
.admin-body .live-main dt{font-size:11.5px;color:var(--ink-faint)}
.admin-body .live-main dd{margin:0;font-size:14px;font-weight:600;color:var(--ink)}
.admin-body .live-actions{display:flex;flex-direction:column;gap:8px;align-items:stretch}
@media(max-width:760px){.admin-body .live-row{grid-template-columns:64px 1fr}.admin-body .live-thumb{width:64px;height:42px}.admin-body .live-actions{grid-column:1/-1;flex-direction:row}}
.admin-body .ready-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media(max-width:1200px){.admin-body .ready-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.admin-body .ready-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.admin-body .ready-grid{grid-template-columns:1fr}}
.admin-body .ready-card{display:grid;border:1px solid var(--rule);border-radius:14px;overflow:hidden;background:#fff;transition:border-color .15s ease}
.admin-body .ready-card:hover{border-color:var(--flow-line)}
.admin-body .ready-photo{position:relative;aspect-ratio:16/9;background:#0b0f19}
.admin-body .ready-photo img{width:100%;height:100%;object-fit:cover;display:block}
.admin-body .ready-live{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink-soft);font-size:12px;font-weight:600}
.admin-body .ready-live i{width:7px;height:7px;border-radius:50%;background:#b8bdcc}
.admin-body .ready-live.on{color:var(--ink)}
.admin-body .ready-live.on i{background:var(--signal);box-shadow:0 0 0 3px rgba(89,101,219,.18)!important}
.admin-body .ready-body{display:grid;gap:4px;padding:14px}
.admin-body .ready-body strong{font-size:15.5px;color:var(--ink)}
.admin-body .ready-body>small{color:var(--ink-faint);font-size:12.5px}
.admin-body .ready-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.admin-body .ready-foot span{font-weight:700;color:var(--ink)}
.admin-body .ready-foot span small{font-weight:500;color:var(--ink-faint)}
.admin-body .ready-foot .is-armed{background:var(--signal-tint)!important}
.admin-body .ready-locked{font-size:12.5px;font-weight:600;color:var(--ink-faint)}
.admin-body .ready-lock-note{color:var(--ink-faint);font-size:12px;margin-top:4px}
.admin-body .ready-card:has(.ready-locked) .ready-photo img{filter:grayscale(.6);opacity:.85}
.admin-body .admin-alert.is-ok,.admin-body .admin-alert.is-ok strong{color:var(--signal-ink)!important}
.admin-body .admin-two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:900px){.admin-body .admin-two-col{grid-template-columns:minmax(0,1fr)}}
.admin-body .admin-table-wrap{overflow-x:auto;max-width:100%}
.admin-body .ch-tip[hidden]{display:none!important}
.admin-body .admin-main{min-width:0}
.admin-body .admin-panel > .admin-card + .admin-card{margin-top:14px}
.admin-body .bk-stats .admin-stat strong{font-size:22px}
.admin-body .auth-form[hidden]{display:none!important}
.admin-body .admin-alert.is-info,.admin-body .admin-alert.is-info strong{color:var(--ink-2)!important}
.admin-body .admin-alert.is-info{background:var(--signal-tint);border:1px solid #d6dbf6;border-radius:12px;padding:12px 14px}
/* v9.19 — notebook templates (admin form + dashboard cards) */
.admin-body .tpl-form{margin-top:14px;display:grid;gap:14px}
.admin-body .tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:800px){.admin-body .tpl-grid{grid-template-columns:1fr}}
.admin-body .tpl-grid label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2)}
.admin-body .tpl-grid small{font-weight:400;color:var(--ink-faint)}
.admin-body .tpl-file input[type=file]{padding:9px;border:1px dashed var(--rule-strong);border-radius:12px;background:var(--paper-2)}
.admin-body .tpl-form[hidden]{display:none!important}
.admin-body .ready-body .ready-sub{color:var(--ink-soft);font-size:13px;line-height:1.5;margin-top:2px}
.admin-body .ready-tag{position:absolute;top:10px;left:10px;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.92);font-size:11.5px;font-weight:700;color:var(--ink-2);letter-spacing:.02em}
.admin-body .ready-gpu{font-size:12.5px;color:var(--ink-faint)}
.admin-body .live-template{display:inline-block;margin-top:4px;font-size:12.5px;color:var(--signal-ink);font-weight:600}
/* v9.19 fixes: action cells stay table cells; header buttons don't wrap; card buttons fit */
.admin-body td.bk-actions{display:table-cell!important;white-space:nowrap;text-align:right;vertical-align:middle}
.admin-body td.bk-actions > *{margin-left:6px;display:inline-flex;vertical-align:middle}
.admin-body .admin-card-head > .button,.admin-body .admin-card-head .button-small{white-space:nowrap;flex:none}
.admin-body .ready-foot{gap:8px;flex-wrap:wrap}
.admin-body .ready-foot .button{padding:8px 16px!important;min-width:0!important;min-height:0;white-space:nowrap}
.admin-body .live-main .live-template{margin-left:10px}
/* =====================================================================================
   v9.20 — one page width everywhere (the header, hero copy, story, cards and footer all
   share --site-w, like verda.com's single wide column), bigger type in the hero, logo
   mark and wordmark at the same height, waitlist form fixes.
   ===================================================================================== */
.public-site{--site-gutter:clamp(16px,3.4vw,56px);--site-w:min(1440px,calc(100% - 2 * var(--site-gutter)))}
.public-site .site-header{width:var(--site-w)!important;max-width:none!important}
.public-site .shell{width:calc(var(--site-w) - 36px)!important;max-width:none!important}
@media(max-width:640px){
  .public-site{--site-gutter:10px}
  .public-site .shell{width:calc(100% - 32px)!important}
}
/* hero: the copy uses the same wide column, with larger type */
.public-site .hero-flow-inner{width:calc(var(--site-w) - 36px)!important;padding:clamp(72px,9vh,112px) 0 clamp(80px,10vh,120px)!important}
.public-site .hero-flow .hero-copy{max-width:none!important}
.public-site .hero-flow h1{font-size:clamp(38px,6vw,104px)!important;margin-bottom:clamp(20px,2.4vw,34px)!important} /* v9.60: one size smaller */
.public-site .hero-flow h1,.public-site .hero-flow h1 span{text-wrap:balance!important} /* v9.60: no single word left alone on a line */
.public-site .hero-flow .hero-lead{max-width:min(860px,100%)!important;font-size:clamp(18px,1.55vw,24px)!important;line-height:1.6!important;margin-bottom:clamp(28px,3vw,44px)!important}
.public-site .hero-flow .hero-actions .button{min-height:54px;padding:0 30px!important;font-size:17px!important}
.public-site .hero-flow .hero-meta{font-size:15px}
.public-site .hero.hero-flow{min-height:clamp(600px,calc(100svh - 120px),920px)}
/* story: title spans the column, larger text, drawing level with step 02 (motion.js) */
.public-site .story-kicker{margin:0 0 14px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}
.public-site .story-title{max-width:26ch!important;font-size:clamp(34px,4vw,64px)!important}
.public-site .scroll-story.is-pinned .story-title{font-size:clamp(30px,3.2vw,52px)!important}
@media(min-width:901px){.public-site .story-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:28px clamp(40px,5vw,96px)!important}}
.public-site .story-item-head h3{font-size:clamp(21px,1.8vw,28px)!important}
.public-site .story-item p{font-size:clamp(16px,1.2vw,19px)!important}
.public-site .scroll-story.is-pinned .stack{width:min(100%,760px,calc((100vh - 230px) * 1.2))!important}
/* body text a touch larger across the home page */
.public-site .build-card p,.public-site .gpu-card p{font-size:15.5px}
.public-site .build-card strong{font-size:clamp(19px,1.5vw,23px)}
/* logo: monogram and wordmark are the same height now (lockup redrawn); overall smaller */
.brand .brand-logo{height:24px!important;width:auto}
.public-site .footer .brand .brand-logo{height:28px!important}
.admin-sidebar .brand .brand-logo,.admin-login-card .brand .brand-logo{height:22px!important}
@media(max-width:640px){.public-site .site-header .brand .brand-logo{height:21px!important}}
/* waitlist form: nothing clipped at the edges (the form had overflow:hidden with 0 padding,
   which cut the first letter of "নাম" and the focus rings); required marks */
.public-site .waitlist-form{overflow:visible!important}
.public-site .waitlist-form label>span{padding-left:1px}
.public-site .waitlist-form .req{font-style:normal;color:var(--bad,#b42318);margin-left:3px;font-weight:700}
.public-site .form-required-note{margin:-2px 0 0;font-size:13px;color:var(--ink-faint)}
/* =====================================================================================
   v9.20 — user dashboard: Launch + Wallet first, Bangla, My data, Help, notebook preview
   ===================================================================================== */
.user-app .admin-sidebar{gap:14px}
.user-app .side-launch{width:100%;justify-content:center;min-height:46px;font-size:15px;font-weight:650;margin-top:6px;background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
.user-app .side-launch:hover{background:#2c3447!important}
.user-app .side-wallet{display:grid;gap:2px;text-align:left;width:100%;padding:12px 14px;border:1px solid var(--rule);border-radius:12px;background:var(--paper-2);cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s ease,background .15s ease}
.user-app .side-wallet:hover,.user-app .side-wallet:focus-visible{border-color:var(--signal);background:var(--signal-tint)}
.user-app .side-wallet strong{font-size:22px;font-weight:700;letter-spacing:-.01em}
.user-app .side-wallet small{color:var(--signal-ink);font-weight:600}
.user-app .side-wallet.is-low{border-color:#e7c27a;background:var(--warn-tint,#fdf4e3)}
.user-app .admin-nav{margin-top:4px}
.user-app .lang-switch{display:inline-flex;border:1px solid var(--rule);border-radius:999px;padding:3px;gap:2px;margin-bottom:10px;background:#fff}
.user-app .lang-switch button{border:0;background:none;font:inherit;font-size:13px;padding:5px 12px;border-radius:999px;cursor:pointer;color:var(--ink-soft)}
.user-app .lang-switch button.active{background:var(--ink);color:#fff}
.user-app .app-topbar{gap:16px;flex-wrap:wrap}
.user-app .topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.user-app .balance-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 8px 8px 14px;border:1px solid var(--rule-strong);border-radius:999px;background:#fff;font:inherit;font-size:14px;color:var(--ink-soft);cursor:pointer}
.user-app .balance-pill strong{color:var(--ink);font-size:16px}
.user-app .balance-pill em{font-style:normal;font-weight:650;font-size:13px;color:#fff;background:var(--signal);padding:5px 11px;border-radius:999px}
.user-app .balance-pill:hover{border-color:var(--signal)}
.user-app .balance-pill.is-low{border-color:#e7c27a;background:#fdf4e3}
.user-app .topbar-launch{min-height:40px;background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}
.user-app .low-balance{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border:1px solid #e7c27a;border-radius:12px;background:#fdf4e3;color:#6b4700}
.user-app .low-balance strong{color:#8a5a00}
.user-app .low-balance span{flex:1 1 280px}
/* hero: launch (wide) + wallet */
.user-app .ov-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:stretch}
.user-app .launch-card{border:1.5px solid var(--ink)!important;transition:box-shadow .3s ease}
.user-app .launch-card.is-flash{box-shadow:0 0 0 4px var(--signal-tint)!important}
.user-app .launch-card h2{font-size:clamp(24px,2vw,30px)}
.user-app .launch-form{display:grid;grid-template-columns:1.3fr 1fr;gap:14px 16px;align-items:end}
.user-app .launch-form>label{display:grid;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink-2,var(--ink))}
.user-app .launch-form .launch-custom,.user-app .launch-form .launch-more,.user-app .launch-summary,.user-app .launch-submit{grid-column:1/-1}
.user-app .launch-more summary{cursor:pointer;font-size:13.5px;color:var(--ink-soft);width:max-content}
.user-app .launch-more .admin-check{margin-top:10px}
.user-app .launch-summary{padding:14px 16px;border-radius:12px;background:var(--paper-2);border:1px solid var(--rule)}
.user-app .launch-summary:empty{display:none}
.user-app .launch-summary .ls-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-weight:600}
.user-app .launch-summary .ls-row strong{font-size:22px}
.user-app .launch-summary .ls-row small{font-size:13px;color:var(--ink-faint);font-weight:500}
.user-app .launch-summary p{margin:6px 0 0;font-size:14px;color:var(--ink-soft)}
.user-app .launch-summary .ls-warn{color:#8a5a00}
.user-app .launch-submit{min-height:52px;font-size:17px!important;font-weight:650;background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important;justify-content:center}
.user-app .launch-submit:hover{background:#2c3447!important}
.user-app .launch-card .launch-time-note{margin:14px 0 0;font-size:13.5px}
.user-app .wallet-hero{display:flex;flex-direction:column;gap:10px;cursor:pointer;background:linear-gradient(180deg,#fff,var(--paper-2))!important}
.user-app .wallet-hero:hover,.user-app .wallet-hero:focus-visible{border-color:var(--signal)!important}
.user-app .wallet-hero-amount{font-size:clamp(40px,4vw,56px);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}
.user-app .wallet-hero-runway{margin:0;color:var(--ink-soft);font-size:15px;min-height:1.4em}
.user-app .wallet-hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.user-app .wallet-hero-chips button{flex:1 1 0;border:1px solid var(--rule-strong);background:#fff;border-radius:10px;padding:10px 8px;font:inherit;font-weight:650;cursor:pointer;color:var(--ink)}
.user-app .wallet-hero-chips button:hover{border-color:var(--signal);background:var(--signal-tint)}
.user-app .wallet-hero-cta{min-height:48px;justify-content:center;font-size:16px!important;font-weight:650;background:var(--signal)!important;border-color:var(--signal)!important;color:#fff!important}
.user-app .wallet-hero-cta:hover{background:var(--signal-ink)!important}
.user-app .wallet-hero-foot{color:var(--ink-faint)}
.user-app .wallet-hero.is-low .wallet-hero-amount{color:#8a5a00}
.user-app .ov-live-card{margin-top:18px;border-color:var(--signal)!important}
.user-app .live-open{min-height:44px;font-weight:650;background:var(--signal)!important;border-color:var(--signal)!important;color:#fff!important}
.user-app .live-main .nb-progress{margin:8px 0 2px}
/* checklist */
.user-app .checklist-card{margin-top:18px}
.user-app .checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.user-app .checklist li{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-content:start;padding:14px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.user-app .checklist li>.button{grid-column:1/-1;justify-self:start}
.user-app .checklist .ck-mark{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;border:1px solid var(--rule-strong);color:var(--ink-soft)}
.user-app .checklist li.is-done{background:var(--paper-2)}
.user-app .checklist li.is-done .ck-mark{background:var(--signal);border-color:var(--signal);color:#fff}
.user-app .checklist li.is-done strong{color:var(--ink-soft);text-decoration:line-through;text-decoration-color:var(--rule-strong)}
.user-app .checklist li.is-next{border-color:var(--ink)}
.user-app .checklist li.is-next .ck-mark{border-color:var(--ink);color:var(--ink)}
.user-app .checklist strong{display:block;font-size:15px}
.user-app .checklist p{margin:4px 0 0;font-size:13.5px;color:var(--ink-soft);line-height:1.5}
.user-app .ready-card-wrap{margin-top:18px}
.user-app .ov-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}
/* ready cards: the photo opens the preview */
.user-app button.ready-photo{border:0;padding:0;width:100%;cursor:pointer;display:block;text-align:left}
.user-app .ready-card.is-template .ready-foot{justify-content:flex-start}
.user-app .ready-card.is-template .ready-foot .button-primary{margin-left:auto}
/* my data */
.user-app .data-drop{display:grid;place-items:center;gap:6px;padding:34px 20px;margin:6px 0 14px;border:1.5px dashed var(--rule-strong);border-radius:14px;background:var(--paper-2);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}
.user-app .data-drop:hover,.user-app .data-drop.is-over{border-color:var(--signal);background:var(--signal-tint)}
.user-app .data-drop strong{font-size:16px}
.user-app .data-drop small{color:var(--ink-faint)}
.user-app .data-progress{margin-bottom:10px;font-size:14px;color:var(--signal-ink)}
.user-app td.row-actions{white-space:nowrap;text-align:right}
.user-app .amt-neg{color:var(--bad,#b42318)}
.user-app .amt-pos{color:var(--signal-ink,#3f4bc0)}
/* help */
.user-app .help-list{display:grid;gap:8px;margin-top:8px}
.user-app .help-item{border:1px solid var(--rule);border-radius:12px;background:#fff;padding:0 16px}
.user-app .help-item summary{cursor:pointer;padding:14px 0;font-weight:650;font-size:15.5px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.user-app .help-item summary::after{content:"+";color:var(--ink-faint);font-weight:400;font-size:20px;line-height:1}
.user-app .help-item[open] summary::after{content:"–"}
.user-app .help-item p{margin:0 0 16px;color:var(--ink-soft);line-height:1.65;max-width:78ch}
.user-app .help-contact{margin-top:18px;padding:14px 16px;border-radius:12px;background:var(--paper-2);font-size:14.5px}
/* template preview window */
.user-app .tpl-modal{place-items:stretch center;padding:24px 16px}
.user-app .tpl-card{width:min(980px,100%)!important;max-height:calc(100vh - 48px);display:flex!important;flex-direction:column;gap:0!important;padding:0!important;overflow:hidden}
.user-app .tpl-head{padding:24px 28px 14px;border-bottom:1px solid var(--rule)}
.user-app .tpl-head h2{margin:4px 0 6px;font-size:clamp(22px,2vw,28px)}
.user-app .tpl-head p{margin:0;color:var(--ink-soft)}
.user-app .tpl-meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:12px;font-size:13.5px;color:var(--ink-soft)}
.user-app .tpl-meta .ready-live{position:static;background:var(--paper-2);color:var(--ink-soft)}
.user-app .tpl-tabs{display:flex;gap:4px;padding:10px 28px 0;border-bottom:1px solid var(--rule)}
.user-app .tpl-tabs button{border:0;background:none;font:inherit;font-weight:600;padding:10px 14px;border-bottom:2px solid transparent;cursor:pointer;color:var(--ink-soft)}
.user-app .tpl-tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}
.user-app .tpl-tabs em{font-style:normal;font-size:12px;background:var(--signal);color:#fff;border-radius:999px;padding:1px 7px;margin-left:4px}
.user-app .tpl-tabs em:empty{display:none}
.user-app .tpl-body{flex:1 1 auto;overflow:auto;padding:18px 28px;background:var(--paper-2)}
.user-app .tpl-source{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin-bottom:14px;font-size:14px;color:var(--ink-soft)}
.user-app .tpl-cells{display:grid;gap:10px;margin-bottom:12px}
.user-app .tpl-cell{position:relative;background:#fff;border:1px solid var(--rule);border-radius:10px}
.user-app .tpl-cell.is-md{padding:10px 44px 10px 16px}
.user-app .tpl-md h3,.user-app .tpl-md h4,.user-app .tpl-md h5{margin:8px 0 6px}
.user-app .tpl-md h3{font-size:20px}
.user-app .tpl-md p,.user-app .tpl-md li{font-size:14.5px;line-height:1.6;color:var(--ink-soft);margin:4px 0}
.user-app .tpl-md code,.user-app .admin-panel-note code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--paper-2);padding:1px 5px;border-radius:5px}
.user-app .tpl-cell.is-code{display:grid;grid-template-columns:44px 1fr 34px;align-items:start}
.user-app .tpl-cell-no{padding:12px 0 0 10px;font:12px ui-monospace,Menlo,monospace;color:var(--ink-faint)}
.user-app .tpl-code{width:100%;min-height:44px;border:0;border-left:1px solid var(--rule);padding:11px 12px;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink);background:#fbfbfd;resize:none;outline:none;tab-size:4;white-space:pre;overflow:auto}
.user-app .tpl-code:focus{background:#fff;box-shadow:inset 0 0 0 2px var(--signal-tint)}
.user-app .tpl-code.is-md-edit{border-left:0;white-space:pre-wrap;font-family:inherit;font-size:14.5px}
.user-app .tpl-cell .tpl-md-done{margin:8px 12px 10px}
.user-app .tpl-del,.user-app .tpl-edit{margin:8px 6px 0 0;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:none;color:var(--ink-faint);cursor:pointer}
.user-app .tpl-edit{position:absolute;top:0;right:6px}
.user-app .tpl-del:hover,.user-app .tpl-edit:hover{border-color:var(--rule);color:var(--ink)}
.user-app .tpl-cell.is-data{padding:12px 16px;border-style:dashed;border-color:var(--signal)}
.user-app .tpl-cell-tag{font-weight:650;font-size:13.5px;color:var(--signal-ink)}
.user-app .tpl-cell.is-data p{margin:4px 0 0;font-size:13.5px;color:var(--ink-soft)}
.user-app .tpl-loading{padding:40px;text-align:center;color:var(--ink-faint)}
.user-app .tpl-add{display:grid;gap:12px;margin:12px 0}
.user-app .tpl-add-row{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end;padding:12px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.user-app #tplAddHf{grid-template-columns:1.6fr 1fr 1fr auto}
.user-app .tpl-add-row label{display:grid;gap:5px;font-size:13px;font-weight:600}
.user-app .tpl-upload{justify-self:start;cursor:pointer}
.user-app .tpl-sources{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.user-app .tpl-sources li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--rule);border-radius:10px;background:#fff}
.user-app .tpl-sources li.is-empty{display:block;color:var(--ink-faint);border-style:dashed}
.user-app .tpl-sources .src-kind{font-size:12px;font-weight:650;padding:3px 9px;border-radius:999px;background:var(--signal-tint);color:var(--signal-ink);white-space:nowrap}
.user-app .tpl-sources li.is-file .src-kind{background:var(--paper-2);color:var(--ink-soft)}
.user-app .tpl-sources strong{display:block;font-size:14px;word-break:break-all}
.user-app .tpl-sources small{display:block;color:var(--ink-faint);word-break:break-all;font-size:12.5px}
.user-app .tpl-foot{display:grid;grid-template-columns:auto 1fr auto;gap:12px 18px;align-items:center;padding:14px 28px;border-top:1px solid var(--rule);background:#fff}
.user-app .tpl-autostop{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.user-app .tpl-autostop select{min-width:200px}
.user-app .tpl-foot-note{font-size:13.5px;color:var(--ink-soft)}
.user-app #tplLaunch{min-height:48px;padding:0 26px!important;font-size:16px!important;font-weight:650;background:var(--ink)!important;border-color:var(--ink)!important;color:#fff!important;white-space:nowrap}
.user-app #tplError:not(:empty){margin:0 28px 14px}
body.modal-open{overflow:hidden}
@media(max-width:1100px){.user-app .checklist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .user-app .ov-hero{grid-template-columns:1fr}
  .user-app .admin-sidebar-foot{display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px}
  .user-app .admin-sidebar-foot .lang-switch{margin:0}
  .user-app .side-wallet{display:none}
  .user-app .admin-nav{grid-template-columns:repeat(4,1fr)!important}
}
@media(max-width:640px){
  .user-app .launch-form{grid-template-columns:1fr}
  .user-app .checklist{grid-template-columns:1fr}
  .user-app .ov-stats{grid-template-columns:1fr 1fr}
  .user-app .topbar-launch{display:none}
  .user-app .admin-nav{grid-template-columns:repeat(3,1fr)!important}
  .user-app .tpl-modal{padding:0}
  .user-app .tpl-card{max-height:100vh;border-radius:0!important}
  .user-app .tpl-head,.user-app .tpl-body,.user-app .tpl-foot{padding-left:16px;padding-right:16px}
  .user-app .tpl-tabs{padding:8px 16px 0}
  .user-app .tpl-add-row,.user-app #tplAddHf{grid-template-columns:1fr}
  .user-app .tpl-foot{grid-template-columns:1fr}
  .user-app .tpl-cell.is-code{grid-template-columns:30px 1fr 30px}
}
/* v9.20 fixes: [hidden] must win over the display rules above */
.user-app .low-balance[hidden],.user-app .launch-form>label[hidden],.user-app .admin-card[hidden]{display:none!important}
.user-app .wallet-runways{list-style:none;margin:4px 0 0;padding:12px 0 0;border-top:1px solid var(--rule);display:grid;gap:7px}
.user-app .wallet-runways li{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink-soft)}
.user-app .wallet-runways li b{color:var(--ink);font-weight:650}
.user-app .wallet-runways-head{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:6px}
/* v9.20 sign-in: language switch beside the logo */
.login-page .login-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.login-page .login-top .lang-switch{margin:0}
/* v9.20.1 — logo: the CBD mark is exactly the capital height of "ComputeBD", and the SVG has
   equal space above the caps and below them (room for the "p"), so the mark + name sit on the
   optical centre of the header. 28px box → ~19px letters. */
.brand .brand-logo{height:28px!important}
.public-site .footer .brand .brand-logo{height:32px!important}
.admin-sidebar .brand .brand-logo,.admin-login-card .brand .brand-logo{height:26px!important}
@media(max-width:640px){.public-site .site-header .brand .brand-logo{height:25px!important}}
/* v9.20.1 — logo at the top of the waitlist form, level with the close button */
.public-site .waitlist-modal-card{padding-top:28px!important}
.public-site .waitlist-brand{display:flex;align-items:center;min-height:34px;padding-right:48px;margin:0 0 4px}
.public-site .waitlist-brand .brand-logo{height:28px;width:auto;display:block}
.public-site .waitlist-modal-close{top:26px!important}
.public-site .waitlist-modal-card .waitlist-form{margin-top:18px!important}
/* =====================================================================================
   v9.21 — mobile menu (the header nav and Sign in were simply hidden on phones)
   ===================================================================================== */
.public-site .nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--rule);border-radius:12px;background:#fff;cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.public-site .nav-toggle span{display:block;width:18px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.public-site .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.public-site .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.public-site .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}
.public-site .mobile-menu{position:fixed;left:10px;right:10px;top:84px;z-index:90;padding:10px 18px 20px;background:#fff;border:1px solid var(--rule);border-radius:16px;box-shadow:0 24px 60px -24px rgba(30,36,51,.28);max-height:calc(100svh - 100px);overflow:auto}
.public-site .mobile-menu[hidden]{display:none}
.public-site .mobile-menu nav{display:grid}
.public-site .mobile-menu nav a{display:flex;justify-content:space-between;align-items:center;padding:15px 4px;border-bottom:1px solid var(--rule);font-size:18px;font-weight:600;color:var(--ink);text-decoration:none}
.public-site .mobile-menu nav a span{color:var(--ink-faint)}
.public-site .mobile-menu-actions{display:grid;gap:10px;margin-top:16px}
.public-site .mobile-menu-actions .button{justify-content:center;min-height:50px;font-size:16px}
.public-site .mobile-menu-lang{justify-self:center;padding:8px 14px;color:var(--ink-soft);font-weight:600}
@media(max-width:900px){
  .public-site .nav-toggle{display:inline-flex}
  .public-site .header-actions #authNavLink,.public-site .header-actions .button-primary{display:none!important}
}
@media(min-width:901px){.public-site .mobile-menu{display:none!important}}
/* v9.21 — printable receipt */
.receipt-page{background:var(--paper-2)!important}
.receipt-page .receipt-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:820px;margin:24px auto 12px;padding:0 16px}
.receipt-page .receipt{max-width:820px;margin:0 auto 40px;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:40px 44px}
.receipt-page .receipt-loading{color:var(--ink-faint);text-align:center;padding:40px 0}
.receipt-page .rc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:22px;border-bottom:2px solid var(--ink)}
.receipt-page .rc-head .brand-logo{height:30px;width:auto}
.receipt-page .rc-title{text-align:right}
.receipt-page .rc-title h1{margin:0;font-size:30px;letter-spacing:-.01em}
.receipt-page .rc-title p{margin:4px 0 0;color:var(--ink-soft)}
.receipt-page .rc-parties{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:24px;padding:24px 0}
.receipt-page .rc-parties strong{display:block;font-size:15.5px;margin:4px 0}
.receipt-page .rc-parties p{margin:2px 0;font-size:13.5px;color:var(--ink-soft)}
.receipt-page .rc-table{width:100%;border-collapse:collapse;margin-top:6px}
.receipt-page .rc-table th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--rule);padding:10px 8px}
.receipt-page .rc-table td{padding:14px 8px;border-bottom:1px solid var(--rule);font-size:14.5px}
.receipt-page .rc-table .num{text-align:right;white-space:nowrap}
.receipt-page .rc-table tfoot td{border-bottom:0;font-weight:600}
.receipt-page .rc-table tfoot td strong{font-size:22px}
.receipt-page .rc-table .rc-sub td{font-weight:400;color:var(--ink-soft);font-size:13.5px;padding-top:0}
.receipt-page .rc-note{margin:22px 0 6px;font-size:13.5px;color:var(--ink-soft)}
.receipt-page .rc-foot{margin:0;font-size:12.5px;color:var(--ink-faint)}
@media(max-width:640px){.receipt-page .receipt{padding:24px 18px;border-radius:0}.receipt-page .rc-parties{grid-template-columns:1fr}.receipt-page .rc-table th:nth-child(3),.receipt-page .rc-table td:nth-child(3){display:none}}
@media print{
  @page{margin:14mm}
  .receipt-page{background:#fff!important}
  .receipt-page .no-print{display:none!important}
  .receipt-page .receipt{border:0;padding:0;margin:0;max-width:none}
}
/* v9.21 — faster sign-in: Google + phone */
.login-page .auth-quick{display:grid;gap:10px}
.login-page .auth-quick[hidden]{display:none}
.login-page .auth-google,.login-page .auth-phone-btn{justify-content:center;gap:10px;min-height:48px;font-weight:650;background:#fff!important;border:1px solid var(--rule-strong)!important;color:var(--ink)!important}
.login-page .auth-google:hover,.login-page .auth-phone-btn:hover{border-color:var(--ink)!important}
.login-page .auth-g{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font-weight:800;font-size:13px;border:1.5px solid var(--ink);line-height:1}
.login-page .auth-or{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:13px;margin:4px 0}
.login-page .auth-or::before,.login-page .auth-or::after{content:"";flex:1;height:1px;background:var(--rule)}
.login-page #authNotice[hidden]{display:none}
.login-page .phone-step2{display:grid;gap:14px}
.login-page .phone-step2[hidden]{display:none}
.login-page .auth-form small a+a{margin-left:12px}
/* v9.21 — trust / contact section, footer contact, WhatsApp button */
.public-site .trust-section{padding-top:clamp(56px,7vw,110px)}
.public-site .trust-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,4vw,72px);align-items:start}
.public-site .trust-main h2{font-size:clamp(38px,5vw,76px);line-height:1.05;letter-spacing:-.02em;margin:0 0 22px}
.public-site .trust-about{font-size:clamp(17px,1.3vw,20px);line-height:1.65;color:var(--ink-soft);max-width:58ch;margin:0 0 22px}
.public-site .trust-facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.public-site .trust-facts li{position:relative;padding:14px 16px 14px 40px;border:1px solid var(--rule);border-radius:12px;background:#fff;font-size:15px;line-height:1.45;color:var(--ink)}
.public-site .trust-facts li::before{content:"✓";position:absolute;left:15px;top:13px;color:var(--signal);font-weight:700}
.public-site .trust-side{display:grid;gap:14px}
.public-site .trust-contact,.public-site .trust-student{display:grid;gap:10px;padding:22px;border:1px solid var(--rule);border-radius:16px;background:#fff}
.public-site .trust-student{background:var(--paper-2)}
.public-site .trust-student strong{font-size:20px;line-height:1.3}
.public-site .trust-student p{margin:0;color:var(--ink-soft);line-height:1.6}
.public-site .trust-student .button{justify-self:start}
.public-site .ct-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--rule);border-radius:12px;color:var(--ink);text-decoration:none;transition:border-color .15s ease}
.public-site .ct-link:hover{border-color:var(--signal)}
.public-site .ct-link b{font-weight:650}
.public-site .ct-link span{color:var(--ink-soft);font-size:14.5px;word-break:break-all;text-align:right}
.public-site .footer-contact{display:flex;flex-wrap:wrap;gap:8px;grid-column:1/-1}
.public-site .footer-contact .ct-link{padding:8px 12px;font-size:14px}
.public-site .contact-links{display:grid;gap:10px;max-width:520px;margin:18px 0}
.public-site .wa-float{position:fixed;right:18px;bottom:18px;z-index:80;display:inline-flex;align-items:center;gap:8px;padding:12px 16px 12px 13px;border-radius:999px;background:#fff;border:1px solid var(--rule-strong);color:var(--ink);font-weight:650;text-decoration:none;box-shadow:0 14px 34px -14px rgba(30,36,51,.35)}
.public-site .wa-float svg{width:22px;height:22px;fill:none;stroke:#1f9d55;stroke-width:1.7;stroke-linejoin:round}
.public-site .wa-float:hover{border-color:#1f9d55}
body.menu-open .wa-float,body.modal-open .wa-float{display:none}
@media(max-width:900px){.public-site .trust-grid{grid-template-columns:1fr}}
@media(max-width:640px){.public-site .trust-facts{grid-template-columns:1fr}.public-site .wa-float span{display:none}.public-site .wa-float{padding:13px}}
/* v9.21 — recharge: bKash Send Money steps */
.user-app .topup-amount{display:grid;gap:6px;font-size:13.5px;font-weight:600}
.user-app .topup-methods{display:flex;gap:4px;padding:3px;border:1px solid var(--rule);border-radius:12px;background:var(--paper-2)}
.user-app .topup-methods[hidden],.user-app .topup-methods button[hidden],.user-app .topup-pane[hidden],.user-app .topup-none[hidden]{display:none!important}
.user-app .topup-methods button{flex:1;border:0;background:none;font:inherit;font-weight:600;padding:9px 10px;border-radius:9px;cursor:pointer;color:var(--ink-soft)}
.user-app .topup-methods button.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(30,36,51,.1)}
.user-app .cbd-modal-card{width:min(520px,100%)!important;max-height:calc(100vh - 32px);overflow:auto}
.user-app .topup-steps{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14.5px;line-height:1.55}
.user-app .bkash-number{font:inherit;font-weight:700;font-size:17px;letter-spacing:.02em;padding:3px 10px;border:1px dashed #e2136e;border-radius:8px;background:#fff5f9;color:#b0105a;cursor:pointer}
.user-app .manual-topup-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px}
.user-app .manual-topup-form label{display:grid;gap:5px;font-size:13px;font-weight:600}
.user-app .manual-topup-form button{grid-column:1/-1;min-height:46px;justify-content:center}
.user-app #manualRequestsCard[hidden]{display:none}
/* v9.21 — keep your results (live session) + notifications */
.user-app .live-row{grid-template-columns:88px 1fr auto}
.user-app .live-results{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;margin-top:2px;border-radius:10px;background:var(--paper-2);border:1px dashed var(--rule-strong)}
.user-app .lr-label{font-weight:650;font-size:14px}
.user-app .lr-folder{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}
.user-app .lr-folder input{width:130px;padding:6px 9px;font:13px ui-monospace,Menlo,monospace;border:1px solid var(--rule-strong);border-radius:8px}
.user-app .lr-msg{color:var(--ink-soft);flex-basis:100%}
.user-app .lr-msg:empty{display:none}
.user-app .notify-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
/* admin */
.admin-body .settings-sub{margin:26px 0 2px;font-size:17px;padding-top:18px;border-top:1px solid var(--rule)}
.admin-body .mt-card{margin-bottom:20px}
.admin-body .mt-count{color:var(--signal-ink)}
@media(max-width:640px){.user-app .manual-topup-form{grid-template-columns:1fr}}
.login-page .auth-quick [hidden]{display:none!important}
/* v9.21 — [hidden] always wins in the dashboard / sign-in / receipt pages */
.user-app [hidden]{display:none!important}
/* wallet tab: one column, so the ledger / receipts tables never get cut off */
.user-app #app-panel-wallet .admin-two-col{grid-template-columns:minmax(0,1fr)!important}
@media(max-width:480px){.login-page .login-top{flex-wrap:wrap}.login-page .login-top .brand .brand-logo{height:24px!important}.login-page .lang-switch button{padding:5px 10px}.login-page .admin-login{padding:12px}.login-page .admin-login-card{width:100%;max-width:100%;box-sizing:border-box}}
/* =====================================================================================
   v9.22 — dashboard: no solid borders (soft grey panels instead), language switch next to
   the balance with clear contrast, stats moved to Wallet, minimal motion
   ===================================================================================== */
.user-app .admin-card{border:0!important;background:var(--paper-2)!important;border-radius:18px}
.user-app .launch-card{border:0!important;background:var(--paper-2)!important}
.user-app .ov-live-card{border:0!important;background:var(--signal-tint)!important}
.user-app .wallet-hero{background:var(--paper-2)!important;border:0!important}
.user-app .admin-table-wrap{border:0!important;background:#fff!important;border-radius:12px}
.user-app .admin-table{min-width:560px}
.user-app .admin-table th,.user-app .admin-table td{border-bottom-color:#eef0f5}
.user-app .admin-table tr:last-child td{border-bottom:0}
.user-app .checklist li,.user-app .checklist li.is-next,.user-app .checklist li.is-done{border:0!important;background:#fff}
.user-app .checklist li.is-done{opacity:.75}
.user-app .checklist li.is-next{box-shadow:inset 3px 0 0 var(--ink)}
.user-app .ready-card{border:0!important;background:#fff}
.user-app .live-row{border:0!important;background:#fff}
.user-app .live-results{border:0;background:var(--paper-2)}
.user-app .launch-summary{border:0!important;background:#fff}
.user-app .nb-explain>div,.user-app .help-item,.user-app .tpl-add-row,.user-app .tpl-sources li,.user-app .tpl-cell{border-color:transparent!important}
.user-app .help-item{background:#fff}
.user-app .data-drop{background:#fff}
.user-app .empty-state{border:0!important;background:#fff}
.user-app .side-wallet{border:0;background:var(--paper-2)}
.user-app .balance-pill{border-color:transparent;background:var(--paper-2)}
/* stats now live on the Wallet tab, compact */
.user-app .wallet-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin:0 0 18px!important}
.user-app .wallet-stats article{border:0!important;background:var(--paper-2)!important;padding:14px 16px!important;min-height:0!important;border-radius:14px}
.user-app .wallet-stats article span{font-size:11px}
.user-app .wallet-stats article strong{font-size:22px!important;margin:4px 0 2px!important;line-height:1.2}
.user-app .wallet-stats article small{font-size:12px}
/* language switch beside the balance: dark active chip, readable inactive text */
.user-app .topbar-actions .lang-switch{margin:0;background:var(--paper-2);border:0;padding:3px}
.user-app .lang-switch button{color:var(--ink)!important;font-weight:600;opacity:1}
.user-app .lang-switch button.active{background:var(--ink)!important;color:#fff!important}
.user-app .lang-switch button:not(.active):hover{background:#fff}
/* minimal motion */
@keyframes cbdRise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.user-app .admin-panel.active>*{animation:cbdRise .38s cubic-bezier(.2,.7,.2,1) both}
.user-app .admin-panel.active>*:nth-child(2){animation-delay:.04s}
.user-app .admin-panel.active>*:nth-child(3){animation-delay:.08s}
.user-app .admin-panel.active>*:nth-child(4){animation-delay:.12s}
.user-app .admin-panel.active>*:nth-child(n+5){animation-delay:.16s}
.user-app .live-row{animation:cbdRise .35s ease both}
.user-app .launch-submit{position:relative;overflow:hidden;transition:transform .15s ease,background .2s ease}
.user-app .launch-submit:active{transform:scale(.985)}
.user-app .launch-arrow{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.user-app .launch-submit:hover .launch-arrow{transform:translate(3px,-3px)}
.user-app .launch-progress{position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.85),transparent);transform:translateX(-100%);opacity:0}
.user-app .launch-submit.is-launching .launch-progress{opacity:1;animation:cbdSweep 1.1s ease-in-out infinite}
.user-app .launch-submit.is-launching .launch-arrow{animation:cbdLift .9s ease-in-out infinite}
.user-app .launch-submit.is-launched .launch-arrow{transform:translate(5px,-5px);opacity:0;transition:transform .5s ease,opacity .5s ease}
@keyframes cbdSweep{to{transform:translateX(100%)}}
@keyframes cbdLift{50%{transform:translate(3px,-3px)}}
.user-app .ready-card{transition:transform .2s ease}
.user-app .ready-card:hover{transform:translateY(-2px)}
.user-app .status-pill.is-running::before{animation:cbdPulse 1.8s ease-in-out infinite}
@keyframes cbdPulse{50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.user-app .admin-panel.active>*,.user-app .live-row,.user-app .launch-progress,.user-app .launch-arrow,.user-app .status-pill.is-running::before{animation:none!important;transition:none!important}.user-app .ready-card:hover{transform:none}}
@media(max-width:640px){.user-app .wallet-stats{grid-template-columns:1fr 1fr!important}.user-app .topbar-actions .lang-switch button{padding:5px 9px}}
.user-app .launch-more{background:transparent!important;border:0!important;padding:0!important}
.user-app #ovChecklistHide{border:0!important;background:none!important;color:var(--ink-soft);box-shadow:none}
.user-app .wallet-hero-chips button{border:0;background:#fff}
.user-app .launch-submit:disabled{border-color:var(--ink)!important;opacity:.92}

/* =====================================================================================
   v9.22 — homepage + dashboard revision pass (client correction list)
   ===================================================================================== */

/* ---- hero: animated boundary on the primary CTA ---- */
@keyframes ctaBorderPulse{
  0%,100%{box-shadow:0 14px 38px rgba(89,101,219,.13),0 0 0 0 rgba(89,101,219,.45)}
  50%{box-shadow:0 14px 38px rgba(89,101,219,.13),0 0 0 6px rgba(89,101,219,0)}
}
.public-site .hero-cta-pulse{position:relative;animation:ctaBorderPulse 2.4s ease-in-out infinite}
.public-site .hero-cta-pulse::after{
  content:"";position:absolute;inset:-4px;border-radius:999px;border:1.5px solid rgba(89,101,219,.5);
  opacity:0;animation:ctaRingExpand 2.4s ease-out infinite;pointer-events:none;
}
@keyframes ctaRingExpand{0%{opacity:.65;transform:scale(.94)}75%{opacity:0;transform:scale(1.14)}100%{opacity:0;transform:scale(1.14)}}
@media(prefers-reduced-motion:reduce){.public-site .hero-cta-pulse,.public-site .hero-cta-pulse::after{animation:none!important}}

/* ---- GPU section: borderless cards, price asterisk ---- */
.public-site #gpus .gpu-card{border-color:transparent!important;background:rgba(30,36,51,.014)}
.public-site #gpus .gpu-card:hover{border-color:rgba(89,101,219,.3)!important}
.public-site .price-asterisk{margin-left:1px;color:var(--ink-faint)}
.public-site .price-asterisk-note{margin:14px 0 0;color:var(--ink-faint);font-size:12.5px}

/* ---- reduce the gap directly above a few section headings ---- */
.public-site .build-ideas{padding-top:clamp(20px,3vw,34px)!important}
.public-site #gpus{padding-top:clamp(20px,3vw,34px)!important}
.public-site #pricing{padding-top:clamp(20px,3vw,34px)!important}
.public-site #contact{padding-top:clamp(20px,3vw,34px)!important}

/* ---- a light link from the "what to build" sections to the blog ---- */
.public-site .section-blog-link{justify-self:start;margin-top:14px;color:var(--signal);font-size:13.5px;font-weight:650;text-decoration:none}
.public-site .section-blog-link:hover{text-decoration:underline}

/* ---- trust section: "our purpose" kicker above the heading ---- */
.public-site .trust-main>.mini-label{display:block;margin-bottom:14px}

/* ---- university / lab request form inside the trust-student card ---- */
.public-site .trust-student{display:grid;gap:12px}
.public-site .uni-form{display:grid;gap:10px;margin-top:4px}
.public-site .uni-form label{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink-2,var(--ink))}
.public-site .uni-form .form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.public-site .uni-form input,.public-site .uni-form select,.public-site .uni-form textarea{background:#fff!important;border:1px solid var(--rule-strong)!important;border-radius:10px!important;font-size:13.5px}
.public-site .uni-form textarea{resize:vertical}
.public-site .uni-form .button{justify-self:start}
.public-site .uni-form .form-error:not(:empty){color:#b42318;font-size:12.5px}
.public-site .uni-form-success{margin:0;padding:10px 12px;border-radius:10px;background:rgba(89,101,219,.08);color:var(--signal-ink);font-size:13px}
@media(max-width:520px){.public-site .uni-form .form-row.two{grid-template-columns:1fr}}

/* ---- "what to build?" workload picker: a vertical ticker — one idea at a time, the next
   rises from below while the previous one slides up and out. Nothing overlaps: only the
   active and the leaving line are ever visible, and the window clips both. ---- */
.public-site .workload-spinner{position:relative}
.public-site .workload-spinner.is-spinning{
  align-self:end;margin-top:clamp(28px,4vw,56px);justify-self:start;width:100%;
  height:auto;border-top:0!important;display:block;
}
.public-site .workload-spinner.is-spinning .workload-window{position:relative;height:clamp(96px,9vw,118px);overflow:hidden}
.public-site .workload-spinner.is-spinning a{
  position:absolute;left:0;right:0;top:0;bottom:0;
  display:flex!important;align-items:center;justify-content:flex-start;gap:16px;
  min-height:0!important;padding:0!important;border:0!important;
  font-size:clamp(22px,2.5vw,32px)!important;line-height:1.3!important;font-weight:600;text-align:left;
  opacity:0;transform:translateY(100%);pointer-events:none;
  animation:none!important;filter:none!important;clip-path:none!important;
  transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);
}
.public-site .workload-spinner.is-spinning a.is-active{opacity:1;transform:translateY(0);pointer-events:auto}
.public-site .workload-spinner.is-spinning a.is-leaving{opacity:0;transform:translateY(-100%)}
.public-site .workload-spinner.is-spinning a span{transform:none!important;flex:0 1 auto;max-width:92%}
.public-site .workload-spinner.is-spinning a b{flex:0 0 auto}
.public-site .workload-spinner-dots{display:flex;gap:8px;margin-top:18px}
.public-site .workload-spinner:not(.is-spinning) .workload-spinner-dots{display:none}
.public-site .workload-spinner-dot{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(89,101,219,.22);cursor:pointer;transition:background .2s ease,transform .2s ease}
.public-site .workload-spinner-dot.is-active{background:var(--signal);transform:scale(1.25)}
.public-site .workload-spinner-dot:hover{background:rgba(89,101,219,.5)}
@media(max-width:760px){.public-site .workload-spinner.is-spinning .workload-window{height:112px}.public-site .workload-spinner.is-spinning a{font-size:21px!important}}

/* ---- dashboard: flat white cards, no heavy shadows ---- */
.admin-body .cbd-modal-card{box-shadow:0 18px 46px -28px rgba(30,36,51,.18)!important}
.user-app .wallet-hero{background:#fff!important}

/* ---- dashboard: locked GPUs — a quiet icon button instead of a standing label ---- */
.user-app .ready-locked{
  width:28px;height:28px;padding:0;display:inline-grid;place-items:center;
  border:1px solid transparent;border-radius:999px;background:transparent;color:var(--ink-faint);
  font-size:14px;cursor:pointer;transition:background .15s ease,border-color .15s ease;
}
.user-app .ready-locked:hover,.user-app .ready-locked:focus-visible{background:var(--paper-2);border-color:var(--rule)}
.user-app .ready-lock-hint{display:block;margin-top:4px;color:var(--ink-faint);font-size:12px}
.user-app .ready-lock-hint:empty{display:none}

/* ===== v9.24 — lab/class request popup, trust heading, dashboard flat pass ===== */
.public-site .uni-open-link{display:inline-block;margin-top:12px;color:var(--signal);font-size:14px;font-weight:650;text-decoration:none}
.public-site .uni-open-link:hover{text-decoration:underline}
.public-site .uni-modal .waitlist-modal-card{max-width:560px}
.public-site .uni-modal-title{margin:0 0 6px;padding-right:48px;font-size:clamp(20px,2.4vw,26px);line-height:1.25;letter-spacing:-.01em}
.public-site .uni-modal-lead{margin:0 0 14px;color:var(--ink-soft);font-size:14px;line-height:1.6}
.public-site .uni-modal .uni-form{margin-top:0}
/* User dashboard: completely flat — no shadows on any page, card, header
   ("COMPUTEBD / ড্যাশবোর্ড" bar), menu, dropdown, modal or button. */
body.user-app:not(#_) *,body.user-app:not(#_) *::before,body.user-app:not(#_) *::after{box-shadow:none!important;text-shadow:none!important}
body.user-app:not(#_) :is(.admin-card,.cbd-modal-card,.topbar,.admin-topbar,.app-topbar,.side-nav,.admin-side,.select-menu,.cbd-select-menu,.ready-card,.tpl-card,.wallet-hero){filter:none!important;backdrop-filter:none!important}

/* ===== v9.26 — user dashboard: no tinted "shadow" panels, no card boxes =====
   Sections sit directly on the white page, separated by a single hairline; the only
   outlined things left are the items inside them (notebook cards, checklist steps,
   tables) so they still read as separate, clickable things. */
body.user-app:not(#_) :is(.admin-card,.admin-panel article,.help-contact,.cbd-modal-card){
  background:#fff!important;background-image:none!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;outline:0!important;
}
body.user-app:not(#_) .admin-panel > .admin-card,
body.user-app:not(#_) .admin-panel > .ov-hero > .admin-card,
body.user-app:not(#_) .admin-panel > .admin-two-col > .admin-card{
  padding:28px 0!important;border-top:1px solid #e6e8f0!important;
}
body.user-app:not(#_) .admin-panel > :first-child,
body.user-app:not(#_) .admin-panel > .ov-hero:first-child > .admin-card{border-top:0!important;padding-top:4px!important}
body.user-app:not(#_) .ov-hero{grid-template-columns:1fr!important}
body.user-app:not(#_) .launch-card{max-width:760px}
body.user-app:not(#_) :is(.ready-card,.launch-summary,.admin-table-wrap,#ovChecklistList > *,.admin-panel article article){
  background:#fff!important;border:1px solid #e6e8f0!important;box-shadow:none!important;
}
body.user-app:not(#_) .admin-table th{background:transparent!important}
body.user-app:not(#_) :is(.lang-switch,.balance-pill){background:#fff!important;border:1px solid #e6e8f0!important;box-shadow:none!important}
body.user-app:not(#_) .cbd-modal-card{border:1px solid #e6e8f0!important;border-radius:16px!important}

/* ===== v9.26 — landing page rhythm: every section heading is the same size, and every
   section has the same space above and below it and the same gap between its heading
   and its content. One set of numbers, used everywhere on the home page. ===== */
.home-page{--home-sec-pad:clamp(56px,7vw,96px);--home-h2:clamp(38px,4.6vw,64px);--home-head-gap:clamp(28px,3.4vw,44px)}
.home-page:not(#_) main > section.section{padding-top:var(--home-sec-pad)!important;padding-bottom:var(--home-sec-pad)!important;margin-top:0!important;margin-bottom:0!important}
.home-page:not(#_) main > section.section + section.section{border-top:1px solid var(--rule,#e6e8f0)}
.home-page:not(#_) main :is(.split-heading h2,.trust-main > h2,.blog-teaser .blog-card h2,.scroll-story .story-copy h2,.story-sticky h2){
  font-size:var(--home-h2)!important;line-height:1.08!important;letter-spacing:-.035em!important;margin-top:0!important;
}
html[lang^="bn"] .home-page:not(#_) main :is(.split-heading h2,.trust-main > h2,.blog-teaser .blog-card h2,.scroll-story .story-copy h2,.story-sticky h2){line-height:1.16!important;letter-spacing:-.015em!important}
.home-page:not(#_) main .split-heading{margin-bottom:var(--home-head-gap)!important}
.home-page:not(#_) main .trust-main > h2{margin-bottom:var(--home-head-gap)!important}
.home-page:not(#_) main .blog-teaser .blog-card h2{margin-bottom:var(--home-head-gap)!important}

/* ===== v9.26 — footer: dark navy band, four columns (brand · platform · company · contact),
   fine grid texture and a violet glow, legal links bottom-right. ===== */
body.public-site:not(#_) .site-footer{
  position:relative;overflow:hidden;width:100%!important;max-width:none!important;margin:0!important;
  padding:clamp(56px,7vw,96px) 0 clamp(28px,3vw,40px)!important;border:0!important;
  color:#c9cde0!important;
  background:
    radial-gradient(520px 360px at 0% 100%,rgba(124,58,237,.38),transparent 70%),
    radial-gradient(420px 300px at 100% 0%,rgba(89,101,219,.22),transparent 70%),
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/56px 56px,
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/56px 56px,
    #0d1328!important;
  display:block!important;
}
body.public-site:not(#_) .site-footer::before{display:none!important}
body.public-site:not(#_) .site-footer *{color:inherit!important;border-color:rgba(255,255,255,.12)!important}
body.public-site:not(#_) .site-footer .sf-inner{width:var(--site-w,min(1200px,calc(100% - 64px)));margin:0 auto;padding:0 18px}
body.public-site:not(#_) .site-footer .sf-top{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.15fr;gap:clamp(28px,4vw,64px);padding-bottom:clamp(36px,4vw,52px);border-bottom:1px solid rgba(255,255,255,.12)!important}
body.public-site:not(#_) .site-footer .sf-brand .brand-logo{height:34px!important;width:auto}
body.public-site:not(#_) .site-footer .sf-brand p{margin:18px 0 20px;max-width:34ch;font-size:17px;line-height:1.6;color:#c9cde0!important}
body.public-site:not(#_) .site-footer .sf-status{display:inline-flex;align-items:center;gap:10px;padding:9px 18px;border:1px solid rgba(139,120,255,.55)!important;border-radius:999px;background:rgba(89,101,219,.18);color:#fff!important;font-size:15px;font-weight:600}
body.public-site:not(#_) .site-footer .sf-status i{width:9px;height:9px;border-radius:50%;background:#a78bfa!important;box-shadow:0 0 10px rgba(167,139,250,.9)!important}
body.public-site:not(#_) .site-footer .sf-col{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
body.public-site:not(#_) .site-footer .sf-head{position:relative;align-self:stretch;margin:0 0 10px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)!important;color:#fff!important;font-size:19px;font-weight:600}
body.public-site:not(#_) .site-footer .sf-head::after{content:"";position:absolute;left:0;bottom:-1px;width:62px;height:3px;border-radius:2px;background:#7c6cf0}
body.public-site:not(#_) .site-footer .sf-col a{color:#dfe2f0!important;font-size:17px;text-decoration:none;transition:color .2s ease}
body.public-site:not(#_) .site-footer .sf-col a:hover{color:#fff!important;text-decoration:underline;text-underline-offset:4px}
body.public-site:not(#_) .site-footer .sf-mail{display:inline-flex!important;align-items:center;gap:12px;align-self:stretch;padding:14px 20px;border:1px solid rgba(139,120,255,.7)!important;border-radius:12px;background:linear-gradient(135deg,rgba(89,101,219,.55),rgba(124,58,237,.35));color:#fff!important;font-size:16px!important;font-weight:600;box-shadow:0 0 22px rgba(124,108,240,.35)!important}
body.public-site:not(#_) .site-footer .sf-mail:hover{text-decoration:none!important;background:linear-gradient(135deg,rgba(89,101,219,.7),rgba(124,58,237,.5))}
body.public-site:not(#_) .site-footer .sf-mail svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.public-site:not(#_) .site-footer .sf-mail span{overflow-wrap:anywhere}
body.public-site:not(#_) .site-footer .sf-contact-link{font-size:15px!important}
body.public-site:not(#_) .site-footer .sf-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:clamp(22px,2.4vw,30px);font-size:15px;color:#b7bcd3!important}
body.public-site:not(#_) .site-footer .sf-legal{display:inline-flex;align-items:center;gap:22px}
body.public-site:not(#_) .site-footer .sf-legal a{color:#c9cde0!important;text-decoration:none}
body.public-site:not(#_) .site-footer .sf-legal a:hover{color:#fff!important}
body.public-site:not(#_) .site-footer .sf-legal i{font-style:normal;opacity:.6}
@media(max-width:980px){body.public-site:not(#_) .site-footer .sf-top{grid-template-columns:1fr 1fr}}
@media(max-width:560px){
  body.public-site:not(#_) .site-footer .sf-top{grid-template-columns:1fr}
  body.public-site:not(#_) .site-footer .sf-bottom{flex-direction:column;align-items:flex-start}
}

/* ===== v9.30 — Bangla headings never clip: conjuncts and vowel signs (ি ে ৈ ু ূ) need more
   vertical room than Latin, so Bangla h1/h2 get a looser line-height everywhere. ===== */
html[lang^="bn"] body.public-site:not(#_) :is(.subpage-hero h1,.gpu-detail-hero h1,.article-header h1,.blog-index h1,.prose-grid h2,.split-heading h2,.faq-section > h2,.not-found-shell h1){line-height:1.22!important;padding-top:.08em;overflow:visible!important}
html[lang^="bn"] body.public-site:not(#_) .subpage-hero h1{letter-spacing:-.01em!important}
/* v9.30 admin: waitlist approve / invite link */
.admin-body .wl-invite{white-space:nowrap}
.admin-body td .bk-pill + .wl-invite{margin-left:6px}
.admin-body .wl-link{display:flex;gap:8px;margin-top:10px}
.admin-body .wl-link input{flex:1;min-width:0;font:12.5px/1.4 ui-monospace,Menlo,monospace}
.auth-no-signup{margin:0 0 4px;font-size:14px;color:var(--ink-soft,#56616b)}
.auth-no-signup a{color:var(--signal,#5965db);font-weight:650}
#resetForm.is-invite .reset-token{display:none}
/* v9.30 admin: user activity / files panel */
.admin-body .user-detail .user-detail-facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin:4px 0 8px}
.admin-body .user-detail .user-detail-facts span{display:grid;gap:2px;font-size:14px}
.admin-body .user-detail .user-detail-facts b{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint,#737b8c)}
.admin-body .user-detail h3.settings-sub{margin-top:22px}
.admin-body #usersTable td:last-child{display:flex;flex-wrap:wrap;gap:6px}

/* ===== v9.31 — dashboard: staged start-up progress, quick console on the session card, pre-start ===== */
.user-app .launch-steps{display:grid;gap:8px;margin:10px 0 4px}
.user-app .launch-steps .ls-bar{height:6px;border-radius:999px;background:rgba(89,101,219,.12);overflow:hidden}
.user-app .launch-steps .ls-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--signal,#5965db),#8b93ff);transition:width .8s ease;position:relative;overflow:hidden}
.user-app .launch-steps .ls-bar i::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:lsShine 1.6s ease-in-out infinite}
@keyframes lsShine{to{transform:translateX(100%)}}
.user-app .launch-steps ol{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--ink-faint,#737b8c)}
.user-app .launch-steps li{display:flex;align-items:center;gap:6px}
.user-app .launch-steps li span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:10px;font-weight:700;background:var(--paper-2,#f3f4f8);border:1px solid var(--rule,#e3e5ec)}
.user-app .launch-steps li.is-done{color:var(--ink,#1e2433)}
.user-app .launch-steps li.is-done span{background:var(--signal,#5965db);border-color:transparent;color:#fff}
.user-app .launch-steps li.is-now{color:var(--ink,#1e2433);font-weight:600}
.user-app .launch-steps li.is-now span{border-color:var(--signal,#5965db);color:var(--signal,#5965db);animation:lsPulse 1.4s ease-in-out infinite}
@keyframes lsPulse{50%{box-shadow:0 0 0 4px rgba(89,101,219,.18)}}
.user-app .ov-quick{grid-column:1/-1;display:grid;gap:10px;padding:10px 12px;border-radius:10px;background:var(--paper-2,#f3f4f8)}
.user-app .ov-quick .ovq-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.user-app .ov-quick .nb-code{min-height:74px;font-size:12.5px}
.user-app .ov-quick .ovq-output{max-height:220px;margin:0}
.user-app .ov-quick [hidden]{display:none!important}
.user-app .ov-warm{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:10px 12px;border-radius:10px;font-size:13px;line-height:1.45;color:var(--ink,#1e2433);background:rgba(89,101,219,.07);border:1px solid rgba(89,101,219,.2)}
.user-app .ov-warm[hidden]{display:none}
.user-app .ov-warm i{flex:0 0 10px;width:10px;height:10px;border-radius:50%;background:#e0a100;animation:lsPulse 1.4s ease-in-out infinite}
.user-app .ov-warm.is-ready i{background:#1f9d55;animation:none;box-shadow:0 0 0 4px rgba(31,157,85,.15)}
@media(prefers-reduced-motion:reduce){.user-app .launch-steps .ls-bar i::after,.user-app .launch-steps li.is-now span,.user-app .ov-warm i{animation:none}}
.receipt-page .rc-thanks{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--rule,#e3e5ec);font-size:14px;font-weight:600;color:var(--ink);text-align:center;letter-spacing:.01em}

/* ===== v9.31 — landing-page video button: handwritten note + arrow, YouTube pop-up on tap ===== */
@font-face{font-family:"Galada";font-style:normal;font-display:swap;font-weight:400;
  src:url(/fonts/galada-bengali-400-normal.woff2) format("woff2");
  unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
@font-face{font-family:"Galada";font-style:normal;font-display:swap;font-weight:400;
  src:url(/fonts/galada-latin-400-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.public-site .pv{position:fixed;right:18px;bottom:84px;z-index:81;opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.public-site .pv.no-wa{bottom:18px}
.public-site .pv.is-in{opacity:1;transform:none}
.public-site .pv[hidden]{display:none}
.public-site .pv-btn{display:grid;grid-template-columns:auto;justify-items:center;gap:6px;padding:7px 7px 8px;border:1px solid var(--rule-strong,#cdd1e0);border-radius:18px;background:#fff;cursor:pointer;box-shadow:0 18px 40px -16px rgba(30,36,51,.4);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.public-site .pv-btn:hover{transform:translateY(-2px);border-color:var(--signal,#5965db);box-shadow:0 24px 48px -18px rgba(63,75,192,.55)}
.public-site .pv-btn:focus-visible{outline:3px solid var(--signal,#5965db);outline-offset:3px}
.public-site .pv-thumb{position:relative;display:block;width:112px;height:63px;border-radius:12px;overflow:hidden;background:#1e2433}
.public-site .pv-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.public-site .pv-play{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(180deg,rgba(30,36,51,.05),rgba(30,36,51,.35))}
.public-site .pv-play svg{width:34px;height:34px;padding:7px 6px 7px 9px;border-radius:50%;background:var(--signal,#5965db);fill:#fff;box-shadow:0 0 0 0 rgba(89,101,219,.55);animation:pvPulse 2s ease-out infinite}
@keyframes pvPulse{70%{box-shadow:0 0 0 12px rgba(89,101,219,0)}100%{box-shadow:0 0 0 0 rgba(89,101,219,0)}}
.public-site .pv-label{font-family:"Galada","Anek Bangla",cursive;font-size:18px;line-height:1.1;color:var(--signal-ink,#3f4bc0)}
/* the handwritten note, up and to the left, with an arrow drawn to the button */
.public-site .pv-note{position:absolute;right:calc(100% - 18px);bottom:62px;width:230px;pointer-events:none}
.public-site .pv-hand{display:block;padding-right:34px;font-family:"Galada","Anek Bangla",cursive;font-size:23px;line-height:1.28;color:var(--ink,#1e2433);text-align:right;transform:rotate(-4deg);text-shadow:0 1px 0 #fff,0 0 12px #fff,0 0 22px #fff}
.public-site .pv-arrow{position:absolute;right:-4px;bottom:-48px;width:78px;height:68px;overflow:visible}
.public-site .pv-arrow path{fill:none;stroke:var(--signal,#5965db);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:160;stroke-dashoffset:160}
.public-site .pv.is-in .pv-arrow-line{animation:pvDraw .9s ease .5s forwards}
.public-site .pv.is-in .pv-arrow-head{animation:pvDraw .35s ease 1.35s forwards}
@keyframes pvDraw{to{stroke-dashoffset:0}}
.public-site .pv-hand{opacity:0;transition:opacity .6s ease .2s}
.public-site .pv.is-in .pv-hand{opacity:1}
.public-site .pv-x{position:absolute;left:-6px;top:-10px;width:24px;height:24px;border-radius:50%;border:1px solid var(--rule-strong,#cdd1e0);background:#fff;color:var(--ink-faint,#737b8c);font-size:15px;line-height:1;cursor:pointer;pointer-events:auto;opacity:0;transition:opacity .2s}
.public-site .pv:hover .pv-x,.public-site .pv-x:focus-visible{opacity:1}
.public-site .pv.no-note .pv-note{display:none}
body.menu-open .pv,body.modal-open .pv,body.pv-open .pv{display:none}
/* the pop-up player */
.pv-modal{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:24px}
.pv-modal[hidden]{display:none}
.pv-backdrop{position:absolute;inset:0;background:rgba(15,19,36,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}
.pv-frame{position:relative;width:min(960px,100%);aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 40px 120px -30px rgba(0,0,0,.7);opacity:0;transform:scale(.96);transition:opacity .3s ease,transform .35s cubic-bezier(.2,.8,.2,1)}
.pv-modal.is-in .pv-backdrop,.pv-modal.is-in .pv-frame{opacity:1;transform:none}
.pv-player,.pv-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.pv-close{position:absolute;right:10px;top:10px;z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#1e2433;font-size:18px;cursor:pointer}
body.pv-open{overflow:hidden}
@media(max-width:600px){
  .public-site .pv{right:14px;bottom:78px}
  .public-site .pv.no-wa{bottom:14px}
  .public-site .pv-thumb{width:88px;height:50px}
  .public-site .pv-label{font-size:16px}
  .public-site .pv-note{width:172px;bottom:56px}
  .public-site .pv-hand{font-size:18px;padding-right:28px}
  .public-site .pv-arrow{width:62px;height:54px;bottom:-40px}
  .pv-modal{padding:12px}
}
@media(prefers-reduced-motion:reduce){.public-site .pv-play svg{animation:none}.public-site .pv-arrow path{stroke-dashoffset:0;animation:none!important}.public-site .pv,.pv-frame,.pv-backdrop{transition:none}}
/* v9.31 fixes: the handwriting must win over the Bangla font rule; arrow ends at the thumbnail */
html body.public-site .pv :is(.pv-hand,.pv-label){font-family:"Galada","Anek Bangla",cursive!important;letter-spacing:0}
html[lang^="bn"] body.public-site .pv-hand{font-size:25px;line-height:1.35}
html[lang^="bn"] body.public-site .pv-label{font-size:19px}
.public-site .pv-arrow{right:6px;bottom:-26px;width:70px;height:58px}
.public-site .pv-note{bottom:78px;right:calc(100% - 26px)}
.public-site .pv-thumb.no-img img{display:none}
@media(max-width:600px){
  .public-site .pv-note{width:150px;bottom:64px;transition:opacity .6s ease}
  html[lang^="bn"] body.public-site .pv-hand,.public-site .pv-hand{font-size:17px}
  .public-site .pv-arrow{width:54px;height:46px;bottom:-22px}
  .public-site .pv.note-faded .pv-note{opacity:0}
}
@media(max-width:600px){
  .public-site .pv-hand{padding:8px 12px;margin-right:22px;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 10px 26px -14px rgba(30,36,51,.45);transform:rotate(-3deg)}
}
@media(max-width:600px){.public-site .pv-note{width:200px}.public-site .pv-hand{padding:8px 12px 9px}}
/* v9.31: the note is the hand-lettered calligraphy (rough ink), with the pen-drawn arrow */
.public-site .pv-note{width:auto;bottom:70px;right:calc(100% - 30px)}
.public-site .pv-hw{display:block;width:280px;height:auto;max-width:none;margin-right:26px;transform:rotate(-3deg);filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 10px rgba(255,255,255,.95));opacity:0;transition:opacity .7s ease .15s}
.public-site .pv.is-in .pv-hw{opacity:1}
.public-site .pv-hand{width:230px}
.public-site .pv-arrow-img{position:absolute;right:-6px;bottom:-40px;width:48px;height:auto;clip-path:inset(0 100% 0 0);filter:drop-shadow(0 0 6px rgba(255,255,255,.9))}
.public-site .pv.is-in .pv-arrow-img{animation:pvWipe .8s cubic-bezier(.4,0,.2,1) .8s forwards}
@keyframes pvWipe{to{clip-path:inset(0 0 0 0)}}
@media(max-width:600px){
  .public-site .pv-note{width:auto;bottom:62px}
  .public-site .pv-hw{width:190px;margin-right:22px;padding:6px 8px;border-radius:14px;background:rgba(255,255,255,.94);box-shadow:0 10px 26px -14px rgba(30,36,51,.45);filter:none;box-sizing:content-box}
  .public-site .pv-hand{width:180px}
  .public-site .pv-arrow-img{width:38px;bottom:-32px}
}
@media(prefers-reduced-motion:reduce){.public-site .pv-arrow-img{animation:none!important;clip-path:none}}
.public-site .pv-note{z-index:3;right:calc(100% - 6px);bottom:74px}
.public-site .pv-btn{position:relative;z-index:1}
.public-site .pv-arrow-img{right:-34px;bottom:-50px;width:50px}
@media(max-width:600px){.public-site .pv-note{right:calc(100% - 8px);bottom:60px}.public-site .pv-arrow-img{right:-26px;bottom:-38px;width:40px}}
.public-site .pv-arrow-img{bottom:-36px;right:-30px}@media(max-width:600px){.public-site .pv-arrow-img{bottom:-30px;right:-22px}}
.public-site .pv-arrow-img{bottom:-50px;right:-8px;width:46px}@media(max-width:600px){.public-site .pv-arrow-img{bottom:-40px;right:-8px;width:38px}}
/* v9.31: the player is pre-loaded while the pop-up is closed, so it must stay laid out (not display:none) */
.pv-modal[hidden]{display:grid;visibility:hidden;pointer-events:none}

/* v9.35 — growth cards (promo code, invite link, "how did you hear") */
.topup-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0 6px}
.topup-inline label{flex:1 1 200px;min-width:0;margin:0}
.topup-inline input,.topup-inline select{width:100%}
.topup-inline > input[hidden]{display:none}
#inviteLink{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}
.soft-rule{border:0;border-top:1px solid var(--line);margin:16px 0}
.heard-card{margin-bottom:16px}
.admin-body .promo-code-cell code{font-weight:700;letter-spacing:.04em}
.admin-body .growth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:12px 0}
.admin-body .growth-grid article{border:1px solid var(--line);border-radius:12px;padding:12px}
.admin-body .growth-grid article span{display:block;font-size:.72rem;letter-spacing:.06em;opacity:.7}
.admin-body .growth-grid article strong{font-size:1.4rem}

/* v9.37 — Admin → Promotions */
.admin-body .promo-range{display:flex;gap:6px;flex-wrap:wrap}
.admin-body .promo-range .button.active{background:var(--ink,#1e2433);color:#fff}
.admin-body .promo-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:8px}
.admin-body .promo-card{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:8px;align-content:start}
.admin-body .promo-card.is-off{background:rgba(30,36,51,.03)}
.admin-body .promo-card h3{margin:0;font-size:1rem;display:flex;justify-content:space-between;gap:8px;align-items:center}
.admin-body .promo-card p{margin:0;font-size:.85rem;opacity:.8}
.admin-body .promo-card .promo-cfg{font-size:.8rem;opacity:.9}
.admin-body .promo-card .promo-meta{font-size:.74rem;opacity:.7}
.admin-body .promo-card .promo-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:.78rem}
.admin-body .promo-card .promo-nums b{display:block;font-size:1.05rem}
.admin-body .promo-pill{font:700 .68rem ui-monospace,monospace;padding:4px 8px;border-radius:999px;letter-spacing:.05em}
.admin-body .promo-pill.on{background:rgba(31,157,85,.12);color:#157a41}
.admin-body .promo-pill.off{background:rgba(194,58,58,.1);color:#a32b2b}
.admin-body .pm-type{font:.68rem ui-monospace,monospace;padding:3px 7px;border-radius:999px;background:rgba(30,36,51,.06);white-space:nowrap}
.admin-body .pm-type.grant{background:rgba(31,157,85,.12);color:#157a41}
.admin-body .pm-type.denied{background:rgba(194,106,46,.14);color:#9a4f1a}
.admin-body .pm-type.admin{background:rgba(89,101,219,.12);color:#3c47b8}

/* v9.43: live session card — details left, "keep your results" on the right; last-session card */
.user-app .live-row{grid-template-columns:88px 1fr;align-items:start}
.user-app .live-row.has-results{grid-template-columns:88px minmax(0,1fr) minmax(230px,300px)}
.user-app .live-main .live-actions{flex-direction:row;flex-wrap:wrap;align-items:center;margin-top:12px}
.user-app .live-results{grid-column:auto;flex-direction:column;flex-wrap:nowrap;align-items:stretch;align-self:start;margin-top:0;gap:10px;padding:14px}
.user-app .live-results .lr-msg{flex-basis:auto;font-size:13px;line-height:1.45}
.user-app .live-results .lr-folder{justify-content:space-between}
.user-app .live-results .lr-folder input{flex:1;min-width:0;width:auto}
.user-app .lr-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.user-app .lr-buttons .button{justify-content:center;width:100%}
.user-app .lr-msg.is-error{color:var(--danger,#b42318);font-weight:600}
.user-app .live-row .ov-quick{grid-column:1/-1}
.user-app .last-row{grid-template-columns:88px minmax(0,1fr) auto;margin-bottom:0}
.user-app .last-row .live-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:170px}
.user-app .last-row .ls-note{margin:10px 0 0;font-size:13px;color:var(--ink-soft)}
.user-app .last-row .ls-reason{margin:8px 0 0;font-size:13px;color:var(--danger,#b42318)}
.user-app .ov-history-card{margin-top:20px}
.user-app .last-session-card{margin-top:20px}
@media(max-width:860px){.user-app .live-row.has-results{grid-template-columns:64px minmax(0,1fr)}.user-app .live-row.has-results .live-results{grid-column:1/-1}}
@media(max-width:760px){.user-app .last-row{grid-template-columns:64px minmax(0,1fr)}.user-app .last-row .live-actions{grid-column:1/-1;flex-direction:column}}

/* v9.44: ready-made notebooks on the public use-case pages */
.uc-notebooks h2{margin:6px 0 8px}
.uc-nb-lead{max-width:680px;color:var(--muted,#5b6070);margin:0 0 24px}
.uc-nb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.uc-notebook{display:flex;flex-direction:column;border:1px solid var(--line,#e4e6ee);border-radius:18px;overflow:hidden;background:var(--surface,#fff)}
.uc-nb-photo{position:relative;aspect-ratio:16/9;background:#0d1020;overflow:hidden}
.uc-nb-photo img,.uc-nb-photo picture{width:100%;height:100%;object-fit:cover;display:block}
.uc-nb-photo .gpu-art{height:100%;display:grid;place-items:center}
.uc-nb-tag{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.92);color:#1b1e2b;font-size:12px;font-weight:700}
.uc-nb-body{display:flex;flex-direction:column;gap:8px;padding:18px;flex:1}
.uc-nb-body h3{margin:0;font-size:19px}
.uc-nb-body small{color:var(--muted,#5b6070)}
.uc-nb-body p{margin:0;color:var(--ink-soft,#3d4252);font-size:14.5px;line-height:1.5}
.uc-nb-meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:auto;padding-top:10px;font-size:13.5px;color:var(--muted,#5b6070)}
.uc-nb-meta strong{color:var(--ink,#11131c);font-size:16px}
.uc-nb-body .button{justify-content:center;margin-top:6px}
/* admin: use-case picker + where-it-shows */
.admin-body .tpl-usecases{grid-column:1/-1;border:1px solid var(--rule,#e4e6ee);border-radius:12px;padding:12px 14px;margin:0}
.admin-body .tpl-usecases legend{font-weight:650;padding:0 6px}
.admin-body .tpl-uc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 16px;margin:6px 0}
.admin-body .tpl-uc-grid label{display:grid;grid-template-columns:18px 1fr auto;gap:2px 10px;align-items:center;font-weight:600;font-size:14px;padding:8px 10px;border:1px solid var(--rule,#e4e6ee);border-radius:10px;cursor:pointer}
.admin-body .tpl-uc-grid label:has(input:checked){border-color:var(--accent,#5b5bd6);background:rgba(91,91,214,.06)}
.admin-body .tpl-uc-grid input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;padding:0;grid-row:span 2}
.admin-body .tpl-uc-grid small{grid-column:2;font-weight:400;color:var(--ink-faint,#6b7080)}
.admin-body .tpl-uc-grid a{font-size:12px;grid-column:3;grid-row:1/span 2}
.admin-body .tpl-where{display:block;margin-top:4px;font-size:12px}
.admin-body .tpl-where.is-bad{color:#b42318;font-weight:600}

/* v9.45: Rewards tab, overview invite banner, top-up promo box, waitlist code box */
.user-app .rw-hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start;background:linear-gradient(135deg,rgba(91,91,214,.08),rgba(34,197,94,.06))}
.user-app .rw-hero h2{margin:6px 0 14px}
.user-app .rw-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.user-app .rw-steps li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;font-size:14.5px;line-height:1.45}
.user-app .rw-steps b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--ink,#11131c);color:#fff;font-size:13px}
.user-app .rw-share{display:grid;gap:12px;padding:16px;border-radius:14px;background:#fff;border:1px solid var(--rule,#e4e6ee)}
.user-app .rw-field{display:grid;gap:6px;font-size:13px;color:var(--ink-soft)}
.user-app .rw-field input{font:13px ui-monospace,Menlo,monospace;padding:9px 10px;border:1px solid var(--rule-strong,#d5d8e2);border-radius:9px;background:var(--paper-2,#f6f7fb);width:100%;min-width:0}
.user-app .rw-code{font-size:13px;color:var(--ink-soft)}
.user-app .rw-code strong{font:700 16px ui-monospace,Menlo,monospace;letter-spacing:.08em;color:var(--ink);margin-left:6px}
.user-app .rw-share-buttons{display:flex;flex-wrap:wrap;gap:8px}
.user-app .rw-wa{background:#25d366!important;border-color:#25d366!important;color:#fff!important}
.user-app .rw-fb{background:#1877f2!important;border-color:#1877f2!important;color:#fff!important}
.user-app .rw-friends{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.user-app .rw-friends li{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--paper-2,#f6f7fb)}
.user-app .rw-friends small{display:block;color:var(--ink-soft);font-size:12.5px}
.user-app .rw-friends time{font-size:12px;color:var(--ink-faint)}
.user-app .rw-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e9e9fb;color:#3b3bb3;font-weight:700}
.user-app .rw-sub{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:6px}
.user-app .ov-invite{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;margin-top:20px;padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,#eef0ff,#eafaf0);color:var(--ink);text-decoration:none;border:1px solid rgba(91,91,214,.18)}
.user-app .ov-invite[hidden]{display:none}
.user-app .ov-invite-icon{font-size:26px}
.user-app .ov-invite strong{display:block;font-size:15.5px}
.user-app .ov-invite small{color:var(--ink-soft);font-size:13px}
.user-app .ov-invite b{font-size:20px}
.user-app .wallet-rewards-link{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:20px;padding:12px 16px;border-radius:12px;background:var(--paper-2,#f6f7fb);font-size:14px}
.user-app .wallet-rewards-link[hidden]{display:none}
.user-app .nav-badge{font-style:normal;font-size:11px;font-weight:700;margin-left:4px;padding:1px 6px;border-radius:999px;background:#22c55e;color:#fff}
.cbd-modal .topup-promo{margin:4px 0 12px;font-size:14px}
.cbd-modal .topup-promo summary{cursor:pointer;color:var(--accent,#5b5bd6);font-weight:600}
.cbd-modal .topup-promo form{margin-top:8px}
.waitlist-code small{display:block;margin-top:4px;font-size:12px;color:var(--muted,#6b7080)}
@media(max-width:860px){.user-app .rw-hero{grid-template-columns:1fr}}

/* v9.46: template thumbnails */
.admin-body .tpl-thumb-field{grid-column:1/-1;display:grid;gap:6px}
.admin-body .tpl-thumb-label{font-weight:600;font-size:14px}
.admin-body .tpl-thumb-row{display:grid;grid-template-columns:240px 1fr;gap:16px;align-items:start}
.admin-body .tpl-thumb-preview{aspect-ratio:16/9;border-radius:12px;border:1px dashed var(--rule-strong,#d5d8e2);background:var(--paper-2,#f6f7fb);display:grid;place-items:center;overflow:hidden;text-align:center;font-size:12px;color:var(--ink-faint,#6b7080);padding:0}
.admin-body .tpl-thumb-preview span{padding:10px}
.admin-body .tpl-thumb-preview img{width:100%;height:100%;object-fit:cover;display:block}
.admin-body .tpl-thumb-controls{display:grid;gap:8px}
.admin-body .tpl-thumb-controls small{color:var(--ink-faint,#6b7080);font-size:12px;line-height:1.45}
.admin-body .tpl-row-thumb{float:left;width:64px;height:36px;object-fit:cover;border-radius:6px;margin:0 10px 4px 0;border:1px solid var(--rule,#e4e6ee)}
.user-app .ready-photo img.tpl-thumb{object-fit:cover;background:#fff}
.uc-nb-photo img.uc-nb-thumb{width:100%;height:100%;object-fit:cover;display:block;background:#fff}
@media(max-width:700px){.admin-body .tpl-thumb-row{grid-template-columns:1fr}}

/* v9.47: legal pages + consent lines */
.legal-page .legal-toc{margin:0 0 28px;padding:16px 20px;border:1px solid var(--line,#e4e6ee);border-radius:14px;background:var(--surface-2,#f6f7fb)}
.legal-page .legal-toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px}
.legal-page .legal-toc li{margin:3px 0;break-inside:avoid}
.legal-page .article-body h2{scroll-margin-top:90px}
.legal-page .article-body ul{padding-left:20px}
.legal-page .article-body li{margin:6px 0;line-height:1.6}
.form-legal-note{font-size:12.5px;color:var(--muted,#6b7080);margin:4px 0 10px}
.form-legal-note a,.auth-legal a{text-decoration:underline}
.auth-legal{font-size:12.5px;color:var(--ink-soft,#5b6070);text-align:center;margin:0 0 14px}
@media(max-width:640px){.legal-page .legal-toc ol{columns:1}}
html[lang^="bn"] .legal-page .legal-toc ol{list-style-type:bengali}
.cbd-modal .topup-nonrefund{margin:2px 0 10px;padding:8px 12px;border-radius:10px;background:#fff7e6;border:1px solid #f5d9a3;color:#7a4b00;font-size:12.5px;line-height:1.45}
.cbd-modal .topup-nonrefund a{color:inherit;text-decoration:underline}

/* v9.48: the sidebar scrolls on its own when the menu is taller than the screen
   (18 admin items ≈ 1,190 px). Before, items below the fold could never be reached on long pages. */
@media(min-width:901px){
  .admin-sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule-strong,#d5d8e2) transparent}
  .admin-body .admin-nav{gap:2px;margin-top:24px}
  .admin-body .admin-nav button{padding:9px 12px}
}
@media(min-width:901px) and (max-height:860px){
  .admin-body .admin-nav{margin-top:16px}
  .admin-body .admin-nav button{padding:6px 12px;font-size:13.5px}
  .admin-body .admin-nav-sep{margin:6px 8px}
  .admin-sidebar{padding-top:18px;padding-bottom:14px}
}
/* v9.48: "watch the video" card on the user dashboard */
.user-app .ov-video{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:18px;align-items:center;margin-top:20px}
.user-app .ov-video[hidden]{display:none}
.user-app .ov-video-frame{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#0d1020;border:0;padding:0;cursor:pointer}
.user-app .ov-video-frame img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.user-app .ov-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.user-app .ov-video-play{position:absolute;inset:0;display:grid;place-items:center}
.user-app .ov-video-play span{width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;font-size:20px;color:#11131c;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.user-app .ov-video-text h2{margin:4px 0 6px}
.user-app .ov-video-text p{margin:0 0 10px;color:var(--ink-soft)}
.user-app .ov-video.is-playing{grid-template-columns:1fr}
.user-app .ov-video.is-playing .ov-video-text{display:none}
@media(max-width:700px){.user-app .ov-video{grid-template-columns:1fr}}
.user-app .ov-video-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.user-app .ov-video-actions .text-button{background:none;border:0;padding:4px 2px;color:var(--ink-soft);font:inherit;font-size:13.5px;text-decoration:underline;cursor:pointer}
.user-app .ov-video-frame img.no-img{visibility:hidden}

/* =============================================================================================
   v9.49 — Free tools (/tools/…), tool cards on home / blog / use-case pages, printable estimate
   ============================================================================================= */
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.tool-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:22px 22px 44px;border:1px solid var(--line);border-radius:18px;background:var(--panel-strong);color:var(--text);text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s}
.tool-card:hover{border-color:#5965db;transform:translateY(-2px);box-shadow:0 14px 34px rgba(30,36,51,.08)}
.tool-card .tool-icon{font-size:26px;line-height:1}
.tool-card strong{font-size:18px;line-height:1.3}
.tool-card p{margin:0;color:#5b6070;font-size:14.5px;line-height:1.55}
.tool-card b{position:absolute;right:20px;bottom:16px;color:#5965db;font-size:18px}
.tool-card.is-soon{border-style:dashed;background:transparent;opacity:.8}
.tools-page .tools-grid{grid-column:1/-1}
.tools-page > .section.shell > .tool-card.is-soon{margin-top:16px;max-width:420px}
.home-tools .split-heading p{max-width:560px}
.blog-tools{margin-top:56px}
.blog-tools h2,.uc-tools h2,.tl-related h2{margin:0 0 18px}

.tl-hero{padding:56px 0 18px}
.tl-hero h1{font-size:clamp(34px,5vw,64px);line-height:1.05;letter-spacing:-.02em;margin:10px 0 16px;max-width:1000px}
.tl-hero h1 em{font-style:normal;color:#5965db}
.tl-hero p{max-width:760px;font-size:18px;line-height:1.6;color:#4a5060;margin:0}
.tl-back{display:inline-block;margin-bottom:14px;color:#5965db;text-decoration:none;font-size:14px}
.tl-app{padding:12px 0 8px}
.tl-grid{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:24px;align-items:start}
.tl-form{display:grid;gap:14px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--panel-strong);position:sticky;top:90px}
.tl-form label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--text)}
.tl-form label[hidden],.tl-form div[hidden]{display:none}
.tl-form select,.tl-form input[type=number],.tl-form input[type=text],.tl-form input[type=url],.tl-form textarea{width:100%;min-width:0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:11px;background:#fff;font:inherit;font-weight:500;font-size:14.5px;color:var(--text)}
.tl-form textarea{resize:vertical;line-height:1.6}
.tl-seg{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tl-seg legend{font-size:14px;font-weight:600;margin-bottom:6px;padding:0}
.tl-seg label{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:999px;font-weight:500;cursor:pointer}
.tl-seg label:has(input:checked){border-color:#5965db;background:rgba(89,101,219,.07);color:#3f4bc0}
.tl-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tl-hint{margin:0;font-size:13px;color:#5b6070;line-height:1.5}
.tl-cost{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0;display:grid;gap:10px}
.tl-cost legend{font-weight:700;font-size:14px;padding:0 6px}
.tl-out{display:grid;gap:16px;min-width:0}
.tl-answer{padding:22px 24px;border-radius:18px;background:linear-gradient(135deg,rgba(89,101,219,.08),rgba(166,196,0,.06));border:1px solid rgba(89,101,219,.16)}
.tl-big{font-size:clamp(18px,2.1vw,23px);line-height:1.45;margin:0 0 12px}
.tl-big strong{color:#3f4bc0}
.tl-sub{margin:4px 0 0;color:#5b6070;font-size:14.5px}
.tl-verdict{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:#fff;font-size:15px;line-height:1.5}
.tl-verdict.ok{border-left:4px solid #22a06b}
.tl-verdict.no{border-left:4px solid #d1453b}
.tl-stack{display:flex;height:14px;border-radius:999px;overflow:hidden;background:rgba(30,36,51,.06)}
.tl-stack i,.tl-legend i{display:block;background:#5965db}
.tl-stack .s-k,.tl-legend .s-k,.tl-stack .s-t,.tl-legend .s-t{background:#a6c400}
.tl-stack .s-o,.tl-legend .s-o{background:#9aa1b5}
.tl-legend{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:#4a5060}
.tl-legend li{display:flex;align-items:center;gap:6px}
.tl-legend i{width:10px;height:10px;border-radius:3px}
.tl-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--panel-strong)}
.tl-table{width:100%;border-collapse:collapse;font-size:14.5px}
.tl-table th,.tl-table td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tl-table thead th{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:#6b7080;font-weight:700;background:rgba(30,36,51,.025)}
.tl-table tbody tr:last-child > *{border-bottom:0}
.tl-table small{display:block;color:#6b7080;font-size:12.5px;font-weight:400;margin-top:2px}
.tl-table tr.is-no{color:#9aa1b5}
.tl-table tr.is-best{background:rgba(89,101,219,.06)}
.tl-table td.is-win{color:#3f4bc0;font-weight:700}
.tl-compare th[scope=row]{width:220px;font-weight:600}
.tl-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:700}
.tl-pill.ok{background:#e3f6ec;color:#16794c}.tl-pill.warn{background:#fff3d6;color:#8a5a00}.tl-pill.no{background:#fde8e6;color:#b42318}
.tl-meter{height:5px;border-radius:999px;background:rgba(30,36,51,.07);margin-top:7px;max-width:140px;overflow:hidden}
.tl-meter i{display:block;height:100%;background:#5965db}
tr.is-no .tl-meter i{background:#d1453b}
.tl-note{font-size:13.5px;color:#5b6070;line-height:1.55;margin:12px 0 0}
.tl-how ul,.tl-how ol{padding-left:20px;display:grid;gap:8px;line-height:1.6;max-width:900px}
.tl-how p{max-width:900px;line-height:1.65}
.tl-faq details{border-top:1px solid var(--line);padding:14px 0;max-width:900px}
.tl-faq summary{cursor:pointer;font-weight:650;font-size:17px}
.tl-faq details p{margin:10px 0 0;line-height:1.65;color:#4a5060}
.tl-chips{display:flex;flex-wrap:wrap;gap:8px}
.tl-chip{display:inline-block;padding:7px 13px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;color:var(--text);text-decoration:none;font:inherit;font-size:13.5px;cursor:pointer}
.tl-chip:hover,.tl-chip.active{border-color:#5965db;color:#3f4bc0}
.tl-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:18px 0 0}
.tl-facts div{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}
.tl-facts dt{font-size:12.5px;color:#6b7080}.tl-facts dd{margin:4px 0 0;font-weight:650;overflow-wrap:anywhere}
.tl-cta{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:28px;border-radius:22px;background:#1e2433;color:#fff;margin-top:40px}
.tl-cta h2{margin:0 0 6px;color:#fff}.tl-cta p{margin:0;color:#c9cdf7}
.tl-cta-actions{display:flex;flex-wrap:wrap;gap:10px}
.tl-cta .button:not(.button-primary){background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.tl-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.tl-pick{position:static}
.tl-pick-item{display:flex!important;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:12px;cursor:pointer;font-weight:500!important}
.tl-pick-item:has(input:checked){border-color:#5965db;background:rgba(89,101,219,.06)}
.tl-pick-item small{display:block;color:#6b7080;font-weight:400}
.tl-wide{margin-top:16px}
.tl-code{display:grid!important;gap:6px;font-weight:600;font-size:13.5px}
.tl-code textarea{width:100%;font:12.5px/1.5 ui-monospace,Menlo,monospace;padding:10px;border:1px solid var(--line-strong);border-radius:10px;background:#f7f8fb;resize:vertical}
.tl-code .button{justify-self:start}
.tl-badge-preview{padding:18px;border:1px dashed var(--line-strong);border-radius:14px;background:#fff;display:flex;justify-content:center}
.tl-badges-row img{margin-right:10px;vertical-align:middle}
.tl-steps{padding-left:22px;line-height:1.7;max-width:720px}
.tl-open h1{overflow-wrap:anywhere}
.tk-viz{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;line-height:2.1;font-size:17px;max-height:320px;overflow:auto}
.tk{background:rgba(89,101,219,.12);border-radius:4px;padding:2px 1px}
.tk.alt{background:rgba(166,196,0,.2)}
.tk.multi{box-shadow:inset 0 -2px 0 #d1453b}
.gl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.gl-card{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);text-decoration:none}
.gl-card:hover{border-color:#5965db}
.gl-card strong{font-size:17px}.gl-card p{margin:6px 0 0;color:#5b6070;font-size:14px;line-height:1.5}
.gl-short{font-size:20px!important;color:var(--text)!important}
.gl-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:32px;align-items:start}
.gl-body article p{font-size:17px;line-height:1.75;max-width:760px}
.gl-example{padding:16px 18px;border-left:4px solid #5965db;background:rgba(89,101,219,.06);border-radius:0 12px 12px 0;margin:18px 0}
.gl-example p{margin:6px 0 0!important}
.gl-other{color:#5b6070;font-size:15px!important}
.gl-rel-h{font-weight:700;margin:18px 0 8px}
.tl-print{display:none}
@media(max-width:900px){.tl-grid,.gl-body{grid-template-columns:1fr}.tl-form{position:static}.tl-cta{grid-template-columns:1fr}.tl-compare th[scope=row]{width:auto}}
@media(max-width:520px){.tl-two{grid-template-columns:1fr}.tl-table{font-size:13.5px}.tl-table th,.tl-table td{padding:9px 10px}}
@media print{
  body.is-printing *{visibility:hidden}
  body.is-printing #tlPrint,body.is-printing #tlPrint *{visibility:visible}
  body.is-printing #tlPrint{display:block;position:absolute;left:0;top:0;width:100%;padding:0;color:#111;font-size:12px}
  body.is-printing{background:#fff}
  #tlPrint .tp-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #5965db;padding-bottom:10px;margin-bottom:12px}
  #tlPrint .tp-head div{text-align:right}#tlPrint .tp-head strong{display:block;font-size:16px}
  #tlPrint h2{font-size:18px;margin:6px 0 10px}
  #tlPrint .tp-inputs{border-collapse:collapse;margin-bottom:12px}
  #tlPrint .tp-inputs th{text-align:left;padding:3px 16px 3px 0;color:#555;font-weight:600}
  #tlPrint .tp-total{font-size:14px;margin:8px 0 12px}
  #tlPrint .tl-table-wrap{border:1px solid #ccc;border-radius:0}
  #tlPrint .tl-table th,#tlPrint .tl-table td{padding:5px 8px;font-size:11.5px}
  #tlPrint .tp-note{font-size:10.5px;color:#444;margin-top:12px;line-height:1.45}
  #tlPrint .tp-foot{font-size:10.5px;color:#5965db;margin-top:8px}
  @page{size:A4;margin:16mm}
}
/* v9.49 fixes: compact radios, selects never overflow the form, clean print */
.tl-form > *,.tl-form label,.tl-two > *{min-width:0}
.tl-form select{max-width:100%;text-overflow:ellipsis}
.tl-form input[type=radio],.tl-form input[type=checkbox]{width:16px;height:16px;min-height:0;min-width:0;margin:0;padding:0;flex:none;accent-color:#5965db}
.tl-seg label{line-height:1.3}
@media print{body.is-printing > *:not(main),body.is-printing main > *:not(#tlPrint){display:none!important}}
.tools-page .tl-form select{width:100%!important;min-width:0!important;box-sizing:border-box}
.tools-page .tl-form{grid-template-columns:minmax(0,1fr)}
.tools-page .tl-form .select-enhanced{display:block;width:100%!important;min-width:0!important;max-width:100%}
.tools-all-link{color:#5965db;font-weight:600;text-decoration:none;white-space:nowrap}

/* v9.50 — tables inside articles */
.article-table{width:100%;border-collapse:collapse;margin:22px 0;font-size:14px;display:block;overflow-x:auto}
.article-table th,.article-table td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top}
.article-table th{background:rgba(89,101,219,.06);font-weight:600}

/* =====================================================================================
   v9.50 — Bangladesh visual identity (scoped: .bd-page / .bd-type / .rk-border / .m3-* / .pecha)
   Lalbagh terracotta tokens, rickshaw-paint border, squircle Material 3 shapes, Pecha the owl,
   Plus Jakarta Sans + Hind Siliguri (both self-hosted, SIL OFL).
   ===================================================================================== */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/plus-jakarta-sans-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/hind-siliguri-bengali-400-normal.woff2) format("woff2");unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/hind-siliguri-bengali-600-normal.woff2) format("woff2");unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/hind-siliguri-bengali-700-normal.woff2) format("woff2");unicode-range:U+0951-0952,U+0964-0965,U+0980-09FE,U+1CD0,U+1CD2,U+1CD5-1CD6,U+1CD8,U+1CE1,U+1CEA,U+1CED,U+1CF2,U+1CF5-1CF7,U+200C-200D,U+20B9,U+25CC,U+A8F1}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/hind-siliguri-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/hind-siliguri-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hind Siliguri";font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/hind-siliguri-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

.bd-page,.not-found-shell{
  --lb-terra:#b4533a;--lb-brick:#8e3b2a;--lb-cream:#f6e9dc;--lb-cream-2:#fbf3ea;--lb-gold:#d9962b;--lb-teal:#1f7a72;--lb-red:#c8372d;--lb-ink:#2b1b16;
}
/* Type pairing: Latin → Plus Jakarta Sans, Bangla → Hind Siliguri. Both lists end in the other so a mixed line never falls to a system font. */
.bd-type,.bd-type :is(h1,h2,h3,h4,p,a,span,li,button,small,strong,b,em,label,summary,td,th,figcaption,blockquote,code){font-family:"Plus Jakarta Sans","Hind Siliguri",ui-sans-serif,system-ui,sans-serif!important}
html[lang^="bn"] body.public-site .bd-type,html[lang^="bn"] body.public-site .bd-type :is(h1,h2,h3,h4,p,a,span,li,button,small,strong,b,em,label,summary,td,th,figcaption,blockquote,code){font-family:"Hind Siliguri","Plus Jakarta Sans",ui-sans-serif,system-ui,sans-serif!important}
.bd-type [lang="bn"],.bd-type [lang="bn"] :is(h3,p,small){font-family:"Hind Siliguri","Plus Jakarta Sans",sans-serif!important}
.bd-type [lang="en"],.bd-type [lang="en"] :is(h3,p,small){font-family:"Plus Jakarta Sans","Hind Siliguri",sans-serif!important}
html[lang^="bn"] .bd-type p,html[lang^="bn"] .bd-type li,.bd-type [lang="bn"] p{line-height:1.85}
html[lang^="bn"] .bd-type :is(h1,h2,h3){line-height:1.35;letter-spacing:0}
.bd-type :is(h1,h2,h3){overflow-wrap:anywhere}

/* rickshaw-paint border: red / marigold / teal stripe along the top edge */
.rk-border{position:relative;border:1px solid rgba(142,59,42,.28);border-radius:20px;background:var(--lb-cream-2,#fbf3ea);overflow:hidden;color:var(--lb-ink,#2b1b16)}
.rk-border::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:repeating-linear-gradient(90deg,#c8372d 0 16px,#d9962b 16px 22px,#1f7a72 22px 38px,#d9962b 38px 44px)}
.rk-border>*{position:relative}
.rk-border{padding-top:22px}
.rk-strip{display:block;height:7px;background:repeating-linear-gradient(90deg,#c8372d 0 16px,#d9962b 16px 22px,#1f7a72 22px 38px,#d9962b 38px 44px)}

/* palette */
.bd-swatches{list-style:none;padding:0;margin:18px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bd-swatches li{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#fff}
.bd-swatches span{display:block;height:54px;border-radius:12px;border:1px solid rgba(0,0,0,.08)}
.bd-swatches code{font-size:12px;color:#6b5a52}

/* Material 3 shapes, squircle where supported */
.m3-fab{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 24px 0 18px;border:0;border-radius:18px;background:var(--lb-terra,#b4533a);color:#fff;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 6px 16px rgba(142,59,42,.35);transition:transform .15s ease,box-shadow .15s ease}
@supports (corner-shape:squircle){.m3-fab,.m3-alarm,.rk-border{corner-shape:squircle}.m3-fab{border-radius:32px}.rk-border,.m3-alarm{border-radius:44px}}
.m3-fab:hover{box-shadow:0 10px 22px rgba(142,59,42,.42);transform:translateY(-1px)}
.m3-fab:focus-visible,.m3-btn:focus-visible{outline:3px solid var(--lb-gold,#d9962b);outline-offset:3px}
.m3-fab-small{min-width:48px;min-height:48px;padding:0;justify-content:center;background:var(--lb-cream,#f6e9dc);color:var(--lb-brick,#8e3b2a)}
.m3-alarm{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;padding:26px 20px 18px;max-width:440px;background:var(--lb-cream-2,#fbf3ea)}
.m3-alarm-icon{width:48px;height:48px;border-radius:16px;background:var(--lb-cream,#f6e9dc);display:grid;place-items:center;font-size:24px}
.m3-alarm-body h3{margin:0 0 4px;font-size:18px}.m3-alarm-body p{margin:0;color:#6b5a52;font-size:14px}
.m3-alarm-actions{grid-column:1/-1;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.m3-btn{min-height:48px;padding:0 20px;border:0;border-radius:24px;background:transparent;color:var(--lb-terra,#b4533a);font-weight:700;cursor:pointer}
.m3-btn-tonal{background:var(--lb-cream,#f6e9dc);color:var(--lb-brick,#8e3b2a)}
.bd-demo-row{display:flex;flex-wrap:wrap;gap:18px;margin:20px 0;align-items:flex-start}
.bd-fabs{align-items:center}

/* Pecha */
.bd-mascots{display:flex;flex-wrap:wrap;gap:20px;margin:20px 0}
.bd-mascots figure{margin:0;display:grid;justify-items:center;gap:6px}
.bd-tip{display:flex;gap:16px;align-items:flex-start;padding:26px 20px 18px;margin:20px 0}
.bd-tip>div{min-width:0}.bd-tip p{margin:4px 0 10px}.bd-tip ul{margin:0;padding-left:20px}
.nf-owl{display:flex;justify-content:center;padding-top:18px}
.pecha-lids{transform-box:fill-box;transform-origin:center;animation:pecha-blink 5s infinite}
.pecha-lids rect{transform-box:fill-box;transform-origin:top;transform:scaleY(0)}
.pecha-lids rect{animation:pecha-lid 5s infinite}
.pecha-body{transform-origin:50% 100%;animation:pecha-bob 4s ease-in-out infinite}
@keyframes pecha-lid{0%,92%,100%{transform:scaleY(0)}95%{transform:scaleY(1)}}
@keyframes pecha-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes pecha-blink{0%,100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.pecha-body,.pecha-lids,.pecha-lids rect{animation:none}}
.pecha-oops .pecha-lids,.pecha-happy .pecha-lids{display:none}

/* typography demo */
.bd-type-demo{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:18px 0}
.bd-type-demo>div{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}
.bd-type-demo small{color:#6b5a52;font-weight:600}.bd-type-demo h3{margin:6px 0;font-size:22px}.bd-type-demo p{margin:0}

/* campaigns */
.bd-steps{padding-left:22px;display:grid;gap:12px}
.bd-prompts,.bd-ideas,.bd-stories{list-style:none;padding:0;margin:16px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.bd-prompts li,.bd-ideas li,.bd-stories li{display:grid;gap:8px;padding:26px 18px 16px}
.bd-prompts code{white-space:normal;font-size:13px}
.bd-carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}
.bd-card{flex:0 0 min(86vw,420px);margin:0;scroll-snap-align:start}
.bd-card img{width:100%;height:auto;aspect-ratio:1;border-radius:16px;border:1px solid var(--line);display:block;background:#f6e9dc}
.bd-card figcaption{padding:8px 2px;font-size:14px}
.bd-caption{margin:12px 0;padding:18px 20px;border-left:6px solid var(--lb-terra,#b4533a);background:var(--lb-cream-2,#fbf3ea);border-radius:0 16px 16px 0;white-space:pre-wrap;overflow-wrap:anywhere}
@media (max-width:560px){.m3-alarm{max-width:none}.bd-tip{flex-direction:column}}

/* v9.50.2 — use-case pages: tighter rhythm + notebook share bar */
.public-site .uc-page .section{padding:clamp(26px,3.2vw,40px) 0}
.public-site .uc-page .section+.section{border-top:0}
.uc-page .section-kicker{margin-bottom:10px}
.uc-page .section h2{margin-top:0;margin-bottom:12px}
.uc-page .section-cta{margin-top:12px}
.uc-page .uc-nb-lead{margin-bottom:16px}
.uc-share{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line,#e4e6ee)}
.uc-share-label{font-size:12.5px;color:var(--muted,#5b6070)}.uc-share-label b{color:var(--green-ink,#3f4bc0)}
.uc-share-row{display:flex;flex-wrap:wrap;gap:6px}
.uc-share-btn{min-height:32px;padding:0 11px;border:1px solid var(--line-strong,#d3d6e2);border-radius:999px;background:#fff;color:inherit;font:600 12.5px/30px inherit;text-decoration:none;cursor:pointer}
.uc-share-btn:hover{border-color:var(--green,#3f4bc0);color:var(--green-ink,#3f4bc0)}
.uc-share-incentive{margin:2px 0 0;font-size:12.5px;color:var(--lb-brick,#8e3b2a);font-weight:600}
.uc-share-hint{color:var(--green-ink,#3f4bc0);font-size:12px}
.public-site .uc-page .subpage-hero{padding-top:clamp(36px,5vw,64px)!important;padding-bottom:clamp(8px,2vw,20px)!important;min-height:0!important}
.public-site .uc-page .subpage-hero h1{font-size:clamp(34px,5vw,60px)!important;line-height:1.05}
.public-site .uc-page .prose-grid{gap:18px 40px;align-items:start}
.public-site .uc-page .prose-grid h2{font-size:clamp(24px,2.8vw,34px)!important;line-height:1.15;margin:0}
.public-site .uc-page .feature-list li{padding-top:10px;padding-bottom:10px}
.public-site .uc-page .gpu-catalog{margin-top:8px}
.admin-body .tpl-grid .tpl-wide{grid-column:1/-1}.admin-body .tpl-grid textarea{width:100%;font:inherit}

/* v9.50.3 — public notebook write-up pages */
.nb-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;align-items:start;padding-top:8px!important}
.nb-writeup{max-width:680px;font-size:16.5px;line-height:1.7}
.nb-writeup h2{font-size:22px;margin:26px 0 8px}.nb-writeup p{margin:0 0 14px}.nb-writeup ul{padding-left:22px;margin:0 0 14px;display:grid;gap:6px}
html[lang^="bn"] .nb-writeup{line-height:1.9}
.nb-side{display:grid;gap:14px;position:sticky;top:90px}
.nb-hero-img{width:100%;height:auto;border-radius:16px;border:1px solid var(--line);display:block;background:#f6e9dc}
.nb-card{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;gap:8px}.nb-card h3{margin:0}.nb-card p{margin:0;font-size:14px;color:var(--muted,#5b6070)}.nb-card small{color:var(--muted,#5b6070)}
.nb-uc{font-size:13.5px;margin:0}.nb-uc a{text-decoration:underline}
.uc-nb-read{font-size:13.5px;font-weight:600;color:var(--green-ink,#3f4bc0);text-decoration:none;margin-top:2px}
.uc-nb-read:hover{text-decoration:underline}
@media(max-width:860px){.nb-grid{grid-template-columns:1fr}.nb-side{position:static}}

/* =====================================================================================
   v9.51 — "AI দিয়ে কী বানাবেন?" alternating story rows (replaces the 6-card grid)
   ===================================================================================== */
.build-story .bs-layout{display:grid;gap:clamp(40px,6vw,76px)}
.bs-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.bs-row:nth-child(even) .bs-item{order:2}
.bs-item{min-width:0}
.bs-num{font:700 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--green-ink,#3f4bc0);text-transform:uppercase}
.bs-item h3{margin:14px 0 12px;font-size:clamp(26px,3vw,38px);line-height:1.2;letter-spacing:-.02em;font-weight:600}
.bs-item p{margin:0;max-width:44ch;color:var(--muted);font-size:16px;line-height:1.8}
.bs-link{display:inline-flex;gap:8px;align-items:center;margin-top:18px;color:var(--green-ink,#3f4bc0);font-weight:700;text-decoration:none;font-size:15px}
.bs-link b{transition:transform .25s ease}.bs-link:hover b{transform:translateX(5px)}

.bs-art{position:relative;display:block;aspect-ratio:16/10;border-radius:22px;color:inherit;text-decoration:none;
  transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s cubic-bezier(.2,.7,.2,1)}
/* two "cards" peeking out behind the picture */
.bs-art::before,.bs-art::after{content:"";position:absolute;inset:0;border-radius:22px;border:1px solid var(--line);z-index:0}
.bs-art::before{background:rgba(89,101,219,.10);transform:translate(14px,14px) rotate(1.4deg)}
.bs-art::after{background:rgba(89,101,219,.05);transform:translate(26px,26px) rotate(2.6deg)}
.bs-row:nth-child(even) .bs-art::before{transform:translate(-14px,14px) rotate(-1.4deg)}
.bs-row:nth-child(even) .bs-art::after{transform:translate(-26px,26px) rotate(-2.6deg)}
.bs-stage{position:absolute;inset:0;z-index:1;border-radius:22px;overflow:hidden;background:#eef0fb;box-shadow:0 18px 50px rgba(30,36,51,.14);isolation:isolate}
.bs-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;clip-path:inset(0 0 0 100%);transform:translateX(6%) scale(1.06) rotate(1.2deg);transition:clip-path .9s cubic-bezier(.7,0,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),opacity .5s ease,visibility 0s .9s}
.bs-slide img{width:100%;height:100%;object-fit:cover;display:block}
.bs-slide.is-active{opacity:1;visibility:visible;clip-path:inset(0);transform:none;transition:clip-path .9s cubic-bezier(.7,0,.2,1),transform .9s cubic-bezier(.2,.7,.2,1),opacity .3s ease,visibility 0s}
.bs-slide.is-active:not(.is-gif) img{animation:bs-zoom 7s ease-out both}
.bs-slide.is-leaving{opacity:1;visibility:visible;clip-path:inset(0);transform:translateX(-7%) scale(.94) rotate(-1.5deg);filter:saturate(.6) brightness(.9);z-index:0;transition:transform .9s cubic-bezier(.7,0,.2,1),filter .9s}
.bs-slide.is-active{z-index:2}
.bs-slide figcaption{position:absolute;left:14px;bottom:14px;max-width:calc(100% - 28px);padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.92);color:#1b1e2b;font-size:12.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform:translateY(8px);opacity:0;transition:transform .5s .35s ease,opacity .5s .35s ease}
.bs-slide.is-active figcaption{transform:none;opacity:1}
.bs-slide figcaption:empty{display:none}
@keyframes bs-zoom{from{transform:scale(1)}to{transform:scale(1.09)}}
.bs-no{position:absolute;z-index:3;top:12px;right:14px;font:800 12px ui-monospace,monospace;color:#fff;mix-blend-mode:difference;letter-spacing:.06em}
.bs-dots{position:absolute;z-index:3;right:14px;bottom:14px;display:flex;gap:5px}
.bs-dots i{width:18px;height:4px;border-radius:4px;background:rgba(255,255,255,.55);overflow:hidden;position:relative;box-shadow:0 0 0 1px rgba(30,36,51,.18)}
.bs-dots i.is-active::after{content:"";position:absolute;inset:0;background:var(--green,#3f4bc0);transform-origin:left;animation:bs-fill 3.6s linear both}
@keyframes bs-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* fallback art (nothing attached yet): the same skewed bars, gently breathing */
.bs-fallback{display:flex;align-items:center;justify-content:center;gap:10px;background:radial-gradient(circle at 70% 20%,rgba(89,101,219,.18),transparent 55%),#eef0fb}
.bs-fallback i{width:44px;height:92px;border-radius:8px;background:var(--green,#3f4bc0);transform:skewY(-18deg);box-shadow:8px 8px 0 rgba(89,101,219,.28);animation:bs-bob 4s ease-in-out infinite}
.bs-fallback i:nth-child(2){height:124px;background:#7f89e6;animation-delay:.5s}.bs-fallback i:nth-child(3){height:70px;background:#b3b9f0;animation-delay:1s}
@keyframes bs-bob{50%{transform:skewY(-18deg) translateY(-8px)}}
/* reveal on scroll — only when JS can reveal them */
.bs-js .bs-row .bs-item{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.bs-js .bs-row .bs-art{opacity:0;clip-path:inset(0 0 0 100%);transition:opacity .6s ease,clip-path 1s cubic-bezier(.7,0,.2,1) .15s,transform .35s cubic-bezier(.2,.7,.2,1)}
.bs-js .bs-row:nth-child(even) .bs-art{clip-path:inset(0 100% 0 0)}
.bs-js .bs-row.is-in .bs-item{opacity:1;transform:none}
.bs-js .bs-row.is-in .bs-art{opacity:1;clip-path:inset(-40px)}
@media (max-width:760px){
  .bs-row{grid-template-columns:1fr;gap:24px}.bs-row:nth-child(even) .bs-item{order:0}
  .bs-art::before{transform:translate(8px,8px) rotate(1deg)!important}.bs-art::after{transform:translate(16px,16px) rotate(2deg)!important}
  .build-story .bs-layout{gap:48px}
}
@media (prefers-reduced-motion:reduce){
  .bs-art{transform:none!important;transition:none}
  .bs-slide,.bs-slide.is-active{transition:none}.bs-slide.is-active img,.bs-fallback i,.bs-dots i.is-active::after{animation:none}
  .bs-dots i.is-active::after{transform:none}
  .bs-js .bs-row .bs-item,.bs-js .bs-row .bs-art{opacity:1;transform:none;clip-path:none;transition:none}
}
/* admin: per-category picture manager */
.ucm-list{display:grid;gap:14px}.ucm-cat{border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:10px}
.ucm-cat h3{margin:0;font-size:14px}.ucm-items{display:flex;flex-wrap:wrap;gap:10px}
.ucm-item{position:relative;width:132px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f4f5fb}
.ucm-item img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}.ucm-item button{position:absolute;top:4px;right:4px;border:0;border-radius:999px;background:rgba(0,0,0,.65);color:#fff;width:24px;height:24px;cursor:pointer}
.ucm-item small{display:block;padding:3px 6px;font-size:11px;color:#666}
.ucm-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ucm-add input[type=text]{min-width:150px}
.build-story{overflow-x:clip}
@media (max-width:760px){.build-story{overflow-x:visible}.bs-art::before{transform:translate(6px,8px) rotate(.8deg)!important}.bs-art::after{transform:translate(10px,15px) rotate(1.4deg)!important}.bs-art{margin-right:8px}}

/* v9.51.3 — the cost calculator's dropdown must open past the card, not be cut off by it */
.estimator-panel.enhanced{overflow:visible!important;z-index:30}
.estimator-panel.enhanced::before{display:none}
.estimator-panel .select-list{z-index:40;max-height:min(340px,60vh)}

/* v9.52 — waitlist: batch notice + animated thank-you */
.waitlist-load-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:12px 14px;border-radius:14px;background:rgba(217,150,43,.12);border:1px solid rgba(217,150,43,.35);color:#6b4a10;font-size:13.5px;line-height:1.6}
html[lang^="bn"] .waitlist-load-note{line-height:1.8}
.waitlist-success{text-align:center;padding:26px 18px!important;display:none;overflow:hidden}
.waitlist-success:not([hidden]){display:grid;justify-items:center;gap:8px;animation:ws-pop .5s cubic-bezier(.2,.9,.3,1.2) both}
.ws-burst{position:relative;width:96px;height:96px;display:grid;place-items:center}
.ws-burst i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--green,#3f4bc0);opacity:0;animation:ws-spark .9s ease-out var(--d) .35s both}
.ws-burst i:nth-child(3n+2){background:#d9962b}.ws-burst i:nth-child(3n){background:#1f7a72}
.ws-check{width:84px;height:84px;position:relative}
.ws-ring{fill:rgba(89,101,219,.10);stroke:var(--green,#3f4bc0);stroke-width:3;stroke-dasharray:145;stroke-dashoffset:145;animation:ws-draw .6s ease-out .1s forwards;transform-origin:center}
.ws-tick{fill:none;stroke:var(--green,#3f4bc0);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:ws-draw .45s ease-out .6s forwards}
.ws-title{font-size:20px;animation:ws-rise .5s ease .75s both}
.waitlist-success p{margin:0;max-width:34ch;animation:ws-rise .5s ease .9s both}
.ws-owl{animation:ws-rise .6s ease 1.1s both}
@keyframes ws-draw{to{stroke-dashoffset:0}}
@keyframes ws-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes ws-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ws-spark{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(-54px) scale(.3)}}
@media (prefers-reduced-motion:reduce){.waitlist-success:not([hidden]),.ws-ring,.ws-tick,.ws-title,.waitlist-success p,.ws-owl{animation:none!important;stroke-dashoffset:0;opacity:1}.ws-burst i{display:none}}

/* v9.52 — icon-only share bar, circle-arrow link, clickable rows */
.uc-share-row{gap:8px}
.uc-share-btn{width:38px;height:38px;min-height:0;padding:0;display:inline-grid;place-items:center;border-radius:50%;line-height:1;color:var(--muted,#5b6070);transition:background .2s,color .2s,transform .2s,border-color .2s}
.uc-share-btn svg{display:block}
.uc-share-btn:hover,.uc-share-btn:focus-visible{transform:translateY(-2px);color:#fff;border-color:transparent}
.uc-share-x:hover{background:#111}.uc-share-linkedin:hover{background:#0a66c2}.uc-share-reddit:hover{background:#ff4500}.uc-share-facebook:hover{background:#1877f2}.uc-share-whatsapp:hover{background:#25d366}.uc-share-github:hover{background:#24292f}.uc-share-copy:hover{background:var(--green,#3f4bc0)}
.bs-go{display:inline-grid;place-items:center;width:48px;height:48px;margin-top:20px;border-radius:50%;border:1.5px solid var(--green,#3f4bc0);color:var(--green-ink,#3f4bc0);text-decoration:none;transition:background .25s,color .25s,transform .25s}
.bs-row:hover .bs-go,.bs-go:hover,.bs-go:focus-visible{background:var(--green,#3f4bc0);color:#fff;transform:translate(3px,-3px)}
.bs-row.is-clickable{cursor:pointer}

/* v9.52 — dashboard AI Computer cards: every price on one line, soft tint instead of hard lines */
.user-app #ovReady{align-items:stretch}
.user-app #ovReady .ready-card{display:flex!important;flex-direction:column}
.user-app #ovReady .ready-photo{aspect-ratio:16/9;height:auto;flex:0 0 auto;overflow:hidden}
.user-app #ovReady .ready-photo img{width:100%;height:100%;object-fit:cover;display:block}
.user-app #ovReady .ready-body{flex:1;display:flex!important;flex-direction:column;gap:4px}
.user-app #ovReady .ready-foot{margin-top:auto;padding-top:12px;min-height:56px;align-items:center}
.user-app #ovReady .ready-foot>span{display:inline-flex;align-items:baseline;gap:2px;padding:6px 12px;border-radius:999px;background:rgba(89,101,219,.09);color:var(--green-ink,#3f4bc0);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;font-weight:700;text-shadow:none!important;box-shadow:none!important;white-space:nowrap}
.user-app #ovReady .ready-foot>span small{color:inherit;opacity:.7}
.user-app .ready-grid .ready-live,.user-app .ready-grid .ready-live *{text-shadow:none!important;box-shadow:none!important}

/* v9.52 — landing "আপনার কাজ। আপনার AI কম্পিউটার।" cards: aligned rates, soft tint instead of lines/shadows */
.public-site #gpus .gpu-card{display:flex;flex-direction:column}
.public-site #gpus .gpu-card-header{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.public-site #gpus .gpu-card-header h3{min-height:1.3em;margin:0}
.public-site .rate-chip,.public-site #gpus .rate-chip{border:0!important;box-shadow:none!important;text-shadow:none!important;background:rgba(89,101,219,.10)!important;color:#3f4bc0!important;padding:7px 13px;border-radius:999px;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;font-weight:700;white-space:nowrap;line-height:1.2}
.public-site .rate-chip *{color:inherit!important;text-shadow:none!important}
.public-site #gpus .gpu-specs{margin-top:12px}
.public-site #gpus .use-case{margin-top:auto;padding-top:12px}
.public-site .gpu-card:hover .gpu-rate strong,.public-site .gpu-rate strong{text-shadow:none!important}

/* v9.52 — indigo-tinted page, per-section colours (admin), no lines between landing sections */
body.public-site{--site-bg:#ffffff;background:var(--site-bg)!important}
.public-site .announcement,.public-site .site-header{background-color:var(--site-bg)}
.home-page main{overflow-x:clip}
.home-page main>section{position:relative;isolation:isolate;border-top:0!important;border-bottom:0!important}
.home-page main>section::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:var(--sec-bg,transparent);z-index:-1;pointer-events:none}
.home-page:not(#_) main>section.section+section.section,.home-page:not(#_) main>section.section{border-top:0!important}
.public-site .signal-marquee,.home-page .signal-marquee{border:0!important;background:transparent!important}
.public-site .scroll-story+.section,.public-site .build-ideas{border-top:0!important}
.home-page .footer{border-top:0}


/* v9.53 — landing page: pure white. No indigo wash on the page, cards, build-story stage or hero lines
   (the admin can still pick a section colour in Settings → home colours). */
body.public-site{--site-bg:#ffffff}
.home-page{--paper-2:#f7f7f8;--rule:#ececec;--flow-line:#c2c4ca;--flow-streak:#6a6f7c}
.home-page .estimate-total,.home-page .blog-card,.home-page .trust-student{background:#fff}
.home-page .bs-fallback{background:#fff}
body.public-site::before{background:#fff!important}
.public-site .site-header,.public-site .announcement{background-color:#fff}
.home-page .hero-flow::before,.home-page .hero-flow::after{background:none!important}

/* =====================================================================================
   v9.56 (SEO) — plain-text links and the new GPU / comparison page sections
   ===================================================================================== */
.public-site .spec-table th[scope="row"]{width:38%;text-align:left;font-weight:600;color:var(--ink-soft,#3d4252)}
.public-site .spec-table td{color:var(--ink,#1e2433)}
.public-site .comparison-row.comparison-head span{font-weight:700;color:var(--ink,#1e2433)}
.public-site .prose-grid p strong{color:var(--ink,#1e2433)}

/* v9.57 — homepage tagline, definition box, code samples, workload contents */
.public-site .hero-tagline{margin:10px 0 0;font-weight:650;letter-spacing:.01em;color:var(--accent,#5965db);font-size:clamp(16px,1.6vw,19px)}
.public-site .definition-box{border:1px solid var(--rule,#e3e5ec);border-left:4px solid var(--accent,#5965db);border-radius:12px;padding:18px 22px;margin:0 0 24px;background:#fff}
.public-site .definition-box p{margin:8px 0 0;font-size:17px;line-height:1.55;color:var(--ink,#1e2433)}
.public-site .definition-box .feature-list{margin:10px 0 0}
.public-site .code-sample{margin:12px 0;padding:16px 18px;border-radius:12px;background:#11131c;color:#e7e9f5;font:13px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto;white-space:pre}
.public-site .code-sample code{font:inherit;color:inherit;background:none}
.public-site .workload-toc{padding-top:0;padding-bottom:0}
.public-site .workload-toc .link-cloud a{font-size:14px}
.public-site .feature-list.numbered{list-style:decimal;padding-left:22px}
.public-site .prose-grid > div,.public-site .split-heading > div{min-width:0}
.public-site .pricing-table-wrap{max-width:100%;overflow-x:auto}

/* v9.58 — Admin → Pages editor */
.pages-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start;margin-top:18px}
.pages-list{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto;padding:10px;border:1px solid var(--line);border-radius:16px;background:rgba(30,36,51,.016)}
.pages-group+.pages-group{margin-top:12px}
.pages-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:4px 8px 6px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.pages-group-head em{margin-left:4px;font-style:normal;font-weight:500}
.pages-group-head .text-button{border:0;background:none;padding:0;color:var(--green-ink,#0f766e);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;text-decoration:underline;cursor:pointer}
.pages-item{display:block;width:100%;padding:8px 10px;border:0;border-radius:10px;background:none;color:var(--text);text-align:left;cursor:pointer;font:inherit}
.pages-item:hover{background:rgba(30,36,51,.05)}
.pages-item.active{background:var(--text);color:#fff}
.pages-item strong{display:block;font-size:13px;font-weight:600}
.pages-item small{display:block;margin-top:2px;font-size:11px;opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pages-edited{color:#b25e09;font-weight:600}
.pages-item.active .pages-edited{color:#ffd59a}
.pages-head h2{margin:4px 0}
.pages-links{margin:4px 0 0;font-size:12px}
.pages-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.pages-fieldset{margin:18px 0 0;padding:0;border:0}
.pages-fieldset legend{width:100%;padding:0 0 8px;margin-bottom:10px;border-bottom:1px solid var(--line);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.pages-field{margin:0 0 16px}
.pages-field-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pages-field-head strong{font-size:14px}
.pages-field-reset{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;cursor:pointer}
.pages-help,.pages-tokens{display:block;margin-top:2px;color:var(--muted);font-size:12px;line-height:1.5}
.pages-tokens code{padding:1px 5px;border-radius:5px;background:rgba(30,36,51,.06);font-size:11px}
.pages-langs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.pages-langs.single{grid-template-columns:1fr}
.pages-lang span{display:block;margin-bottom:4px;font-size:11px;font-weight:600;color:var(--muted)}
.pages-lang input,.pages-lang textarea{width:100%;box-sizing:border-box;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit;font-size:14px;line-height:1.5;resize:vertical}
.pages-lang input:focus,.pages-lang textarea:focus{outline:2px solid rgba(15,118,110,.35);border-color:transparent}
.pages-lang textarea.pages-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;white-space:pre;tab-size:4}
.pages-count{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.pages-count.over{color:#b42318;font-weight:600}
.pages-savebar{position:sticky;bottom:0;display:flex;justify-content:flex-end;align-items:center;gap:14px;margin:8px -24px -24px;padding:14px 24px;border-top:1px solid var(--line);border-radius:0 0 20px 20px;background:rgba(255,255,255,.96);backdrop-filter:blur(6px)}
.pages-empty p{margin:0;color:var(--muted)}
@media (max-width:860px){.pages-layout{grid-template-columns:1fr}.pages-list{position:static;max-height:none}.pages-langs{grid-template-columns:1fr}}

/* v9.59 — draft / published */
.pages-summary{margin:2px 8px 12px;color:var(--muted);font-size:12px;line-height:1.5}
.pages-pill{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:999px;font-size:10px;font-style:normal;font-weight:700;letter-spacing:.03em;vertical-align:1px}
.pages-pill.draft{background:#fff4d6;color:#8a5a00}
.pages-pill.live{background:#dcf5ea;color:#0b6b48}
.pages-item.active .pages-pill.draft{background:#ffd98a;color:#3d2800}
.pages-item.active .pages-pill.live{background:#9ae6c3;color:#06402b}
.pages-status{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-8px -8px 18px;padding:12px 14px;border-radius:12px;font-size:13px;line-height:1.5}
.pages-status.is-draft{background:#fff8e6;border:1px solid #f3d48a;color:#5c3d00}
.pages-status.is-live{background:#eefaf4;border:1px solid #b8e8d1;color:#0b4f37}
.pages-status .button{flex:none}
.draft-bar{position:sticky;top:0;z-index:1000;padding:10px 16px;background:#ffcf4d;color:#2b1d00;font:600 14px/1.4 system-ui,sans-serif;text-align:center;box-shadow:0 1px 0 rgba(0,0,0,.12)}
.draft-bar a{margin-left:8px;color:#2b1d00;text-decoration:underline}
@media (max-width:860px){.pages-status{flex-direction:column;align-items:flex-start}}

/* v9.60 — entry points to the guides, comparisons and research */
.explore-section h2{margin:6px 0 22px;font-size:clamp(26px,3.2vw,40px);letter-spacing:-.03em}
.explore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.explore-card{position:relative;display:flex;flex-direction:column;gap:8px;min-height:150px;padding:20px 20px 44px;border:1px solid var(--line);border-radius:18px;background:rgba(30,36,51,.016);color:var(--ink);text-decoration:none;transition:border-color .2s,transform .2s,background .2s}
.explore-card strong{font-size:17px;line-height:1.3;letter-spacing:-.01em}
.explore-card span{color:var(--ink-soft);font-size:13.5px;line-height:1.55}
.explore-card b{position:absolute;left:20px;bottom:16px;color:var(--green-ink);font-weight:600}
.explore-card:hover{border-color:rgba(89,101,219,.38);background:rgba(89,101,219,.04);transform:translateY(-2px)}
.workload-guides{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.workload-guides p{margin:0 0 12px;color:var(--ink-soft);font-size:14px}
/* chips on every page (beats the two-column link list used on sub-pages) */
.public-site .workload-guides .link-cloud{display:flex;flex-wrap:wrap;gap:8px;border:0}
.public-site .workload-guides .link-cloud a{min-height:0;display:inline-flex;align-items:center;padding:9px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink)!important;background:#fff!important;font-size:13px;line-height:1.3;text-decoration:none}
.public-site .workload-guides .link-cloud a:hover{padding-left:14px;border-color:rgba(89,101,219,.38)!important;color:var(--green-ink)!important}
.public-site .workload-guides .link-cloud a.link-all{border-color:transparent;background:none!important;color:var(--green-ink)!important;font-weight:600}

/* v9.60 — ComputeBD "compute partner" banner on the use-case pages (was inside the hackathon pop-up) */
.cp-strip{--st-navy:#102b69;--st-blue:#1677ee;--st-green:#20c88e;--st-line:#d5e2f2;position:relative;overflow:hidden;height:158px;border-radius:18px;background:#fff;color:var(--st-navy);display:grid;grid-template-columns:31% 1fr 22%;align-items:center;border:1px solid #dfe8f5;box-shadow:0 18px 40px -24px rgba(16,43,105,.35);font-family:"Plus Jakarta Sans","Segoe UI Variable Text",ui-sans-serif,system-ui,sans-serif}
html[lang^="bn"] .cp-strip{font-family:"Anek Bangla","Plus Jakarta Sans",ui-sans-serif,sans-serif}
.cp-strip::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 72% 40%,rgba(222,240,255,.75),transparent 28%)}
.cp-strip p,.cp-strip h3,.cp-strip ul{margin:0}
.cp-strip .st-left{position:relative;height:100%;padding:16px 12px 14px 26px;z-index:1}
.cp-strip .st-tag{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6d86ad}
.cp-strip .st-brand{display:flex;align-items:center;gap:9px;margin-top:5px}
.cp-strip .st-mark{width:58px;height:38px;flex:none}
.cp-strip .st-name{font:800 26px/1 Arial,sans-serif;letter-spacing:-1.4px;white-space:nowrap;color:#17346d}
.cp-strip .st-name span{color:#216ce9}
.cp-strip .st-benefits{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:12px;padding:0;list-style:none}
.cp-strip .st-benefits li{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;color:#243f70;white-space:nowrap}
.cp-strip .st-benefits svg{width:12px;height:12px;fill:none;stroke:var(--st-blue);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cp-strip .st-wave{position:absolute;left:0;bottom:0;width:210px;height:40px;z-index:-1}
.cp-strip .st-wave svg{width:100%;height:100%;display:block}
.cp-strip .st-center{position:relative;z-index:1;height:100%;border-left:2px solid var(--st-line);display:flex;flex-direction:column;justify-content:center;padding:10px 18px 10px 24px;min-width:0}
.cp-strip .st-head{font-size:24px;line-height:1.08;font-weight:800;letter-spacing:-.5px;color:var(--st-navy);white-space:nowrap}
html[lang^="bn"] .cp-strip .st-head{letter-spacing:0;line-height:1.2}
.cp-strip .st-head span{color:var(--st-green)}
.cp-strip .st-sub{margin-top:6px;font-size:12px;line-height:1.45;font-weight:500;color:#233f74;max-width:60ch}
.cp-strip .st-actions{display:flex;gap:9px;margin-top:10px;align-items:center;flex-wrap:wrap}
.cp-strip .st-btn{height:34px;padding:0 16px;border-radius:20px;display:inline-flex;align-items:center;justify-content:center;font:700 11.5px/1 Arial,sans-serif;text-decoration:none;white-space:nowrap;cursor:pointer;transition:transform .3s,box-shadow .25s,background .25s}
html[lang^="bn"] .cp-strip .st-btn{font-family:"Anek Bangla",Arial,sans-serif;font-size:12.5px}
.cp-strip .st-primary{color:#fff;background:linear-gradient(90deg,#2b7df2,#1973ed);box-shadow:0 7px 16px rgba(34,119,239,.22);border:0}
.cp-strip .st-primary:hover{transform:translateY(-2px)}
.cp-strip .st-secondary{color:#18346b;background:#fff;border:1.5px solid #18366e}
.cp-strip .st-secondary:hover{background:#18366e;color:#fff}
.cp-strip :focus-visible{outline:2px solid #1677ee;outline-offset:2px}
.cp-strip .st-right{position:relative;height:100%;overflow:hidden}
.cp-strip .st-net{position:absolute;inset:0;width:100%;height:100%;opacity:.62}
.cp-strip .st-gpus{position:absolute;right:-3px;bottom:-6px;width:295px;height:178px;transform:scale(.62);transform-origin:right bottom}
.cp-strip .st-gpu{position:absolute;bottom:10px;width:63px;height:142px;border-radius:7px;background:linear-gradient(180deg,#122743,#193657 55%,#0d1e35);border:2px solid #0b2549;box-shadow:7px 8px 15px rgba(6,30,62,.28);transform:skewY(-5deg)}
.cp-strip .st-gpu::after{content:"GPU";position:absolute;left:0;right:0;bottom:5px;text-align:center;color:#bcd3ef;font:700 7px Arial,sans-serif;letter-spacing:.6px}
.cp-strip .st-fan{position:absolute;left:8px;right:8px;top:34px;width:43px;height:43px;margin:auto;border-radius:50%;background:radial-gradient(circle at center,#d8f2ff 0 7%,#6f92b4 7.5% 13%,#172e4d 14% 37%,transparent 38%),conic-gradient(from 0deg,#18385a 0 10%,transparent 10% 20%,#18385a 20% 30%,transparent 30% 40%,#18385a 40% 50%,transparent 50% 60%,#18385a 60% 70%,transparent 70% 80%,#18385a 80% 90%,transparent 90% 100%);border:3px solid #294d70}
.cp-strip .st-fan2{top:82px;transform:rotate(23deg)}
.cp-strip .st-gpu.g1{right:188px;height:122px;bottom:20px}.cp-strip .st-gpu.g2{right:141px;height:136px;bottom:14px}.cp-strip .st-gpu.g3{right:94px;height:150px;bottom:7px}.cp-strip .st-gpu.g4{right:47px;height:164px;bottom:0}.cp-strip .st-gpu.g5{right:0;height:172px;bottom:-5px}
@media (max-width:1100px){.cp-strip .st-head{font-size:20px}.cp-strip .st-name{font-size:22px}}
@media (max-width:860px){
  .cp-strip{height:auto;grid-template-columns:1fr}
  .cp-strip .st-left{padding:16px 16px 10px}
  .cp-strip .st-center{border-left:0;border-top:1px solid var(--st-line);padding:14px 16px 16px}
  .cp-strip .st-head{white-space:normal;font-size:20px}
  .cp-strip .st-right{height:86px}
  .cp-strip .st-gpus{transform:scale(.5)}
  .cp-strip .st-wave{display:none}
}
/* v9.61 — GPU-guide links on the blog, articles, GPU list and tools */
.workload-guides-section{padding-top:24px;padding-bottom:24px}
.workload-guides-section .workload-guides{margin-top:0}
.blog-index .workload-guides{margin:56px 0 8px}
.article-shell .workload-guides{margin:48px 0 0}

/* v9.62 — /gpus/ page structure: kicker above the title, calm sub-line, calculator first, link sections aligned to one grid */
.gpus-page .subpage-hero{min-height:0!important;padding-top:clamp(64px,7vw,104px)!important;padding-bottom:clamp(36px,4vw,56px)!important;align-items:start!important}
.gpus-page .subpage-copy{display:flex;flex-direction:column;align-items:flex-start}
.gpus-page .subpage-copy .section-label{order:-1;margin:0 0 22px}
.gpus-page .subpage-copy h1{order:0;font-size:clamp(40px,5.2vw,68px)!important;line-height:1.02!important}
.gpus-page .subpage-copy h1 em{display:block;margin-top:14px;font-size:clamp(20px,2.1vw,28px);line-height:1.3;font-weight:500;letter-spacing:-.01em;color:var(--site-green-ink)}
.gpus-page .subpage-copy p{order:1;margin-top:26px!important}
.gpus-page .subpage-signal{min-height:300px!important;align-self:center}
.gpus-page .gpu-calc-section{padding-top:8px!important;padding-bottom:24px!important;border-top:0!important}
.gpus-page .gpu-calc-section .estimator-panel{margin-top:0}
.gpus-page .internal-links{padding-top:clamp(40px,4vw,64px)!important;padding-bottom:clamp(40px,4vw,64px)!important}
.gpus-page .internal-links .split-heading{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(32px,5vw,72px);align-items:start;margin-bottom:0}
.gpus-page .internal-links .split-heading h2{font-size:clamp(26px,2.6vw,36px);line-height:1.12;letter-spacing:-.025em}
.gpus-page .internal-links .link-cloud{margin-top:2px}
.gpus-page .workload-guides-section{padding-top:clamp(40px,4vw,64px)!important;padding-bottom:clamp(40px,4vw,64px)!important}
.gpus-page .workload-guides{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(32px,5vw,72px);align-items:start;border-top:0;padding-top:0}
.gpus-page .workload-guides>p{margin:0;font-size:clamp(26px,2.6vw,36px);line-height:1.12;letter-spacing:-.025em;font-weight:700;color:var(--ink,#1e2433)}
@media (max-width:860px){.gpus-page .internal-links .split-heading,.gpus-page .workload-guides{grid-template-columns:1fr;gap:22px}}
