/* Homepage "live scan" hero. A dark band in both themes, so this file is loaded after
   dark.css on the homepage only and is not processed by tools/dark_css.py. */
.hero.scan-hero{--night:#050b16;--panel:#0a1424;--panel-line:#1b2a42;--signal:#3ddc97;--signal-soft:#3ddc9726;--azure:#5b9dff;--text:#e9f0fa;--dim:#8d9db6;--high:#ff6b6b;--med:#ffb547;--low:#7cc4ff;
  background:var(--night);color:var(--text);isolation:isolate;border-bottom:1px solid #12203a}
.scan-hero-bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.scan-grid{position:absolute;inset:-40px;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:44px 44px;
  mask-image:radial-gradient(ellipse 80% 70% at 65% 40%,#000 30%,transparent 75%);animation:grid-drift 24s linear infinite}
.scan-sweep{position:absolute;left:0;right:0;top:-30%;height:30%;background:linear-gradient(180deg,transparent,#3ddc9712 70%,#3ddc9730 99%,transparent);animation:sweep 7s cubic-bezier(.45,0,.55,1) infinite}
.scan-glow{position:absolute;width:720px;height:720px;right:-160px;top:-220px;border-radius:50%;background:radial-gradient(circle,#2f6bff2e,transparent 65%);animation:glow-breathe 9s ease-in-out infinite}
@keyframes grid-drift{to{transform:translate(44px,44px)}}
@keyframes sweep{0%{transform:translateY(0)}100%{transform:translateY(430%)}}
@keyframes glow-breathe{50%{transform:scale(1.12);opacity:.75}}

.scan-hero .hero-grid{min-height:640px}
.scan-hero h1{color:#fff}
.scan-hero h1 span{background:linear-gradient(90deg,var(--signal),#7ee8ff 55%,var(--azure));-webkit-background-clip:text;background-clip:text;color:transparent}
.scan-hero .hero-description{color:#a9b8cd}
.scan-hero .hero-kicker{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;color:var(--signal);background:#3ddc970f;border-color:#3ddc9733}
.scan-hero .status-dot{background:var(--signal);box-shadow:0 0 0 0 #3ddc9799;animation:pulse 2.2s ease-out infinite}
.kicker-cursor{width:7px;height:13px;background:var(--signal);margin-left:2px;animation:blink 1.1s steps(1) infinite}
@keyframes pulse{70%{box-shadow:0 0 0 7px #3ddc9700}100%{box-shadow:0 0 0 0 #3ddc9700}}
@keyframes blink{50%{opacity:0}}
.scan-hero .button{background:var(--signal);color:#04130c;border-color:var(--signal);box-shadow:0 10px 30px #3ddc9733;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.scan-hero .button:hover{transform:translateY(-2px);box-shadow:0 16px 40px #3ddc974d;background:#5ef0ad}
.scan-hero .button .icon{color:currentColor}
.scan-hero .text-button,.scan-hero .text-button span{color:var(--text)}
.scan-hero .text-button:hover span{color:var(--signal)}
.hero-proof{display:flex;flex-wrap:wrap;gap:10px 22px;list-style:none;margin:34px 0 0;padding:0;font-size:.9375rem;color:var(--dim)}
.hero-proof li{display:flex;align-items:center;gap:7px}
.hero-proof li::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--signal);transform:rotate(45deg)}
.hero-proof strong{color:var(--text);font-weight:650}

/* The terminal. */
.scan-terminal{margin:0;position:relative;border-radius:18px;background:linear-gradient(180deg,#0d192c,var(--panel));border:1px solid var(--panel-line);
  box-shadow:0 40px 90px #0009,0 0 0 1px #ffffff08 inset,0 0 80px #2f6bff1a;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  transform:perspective(1400px) rotateY(-6deg) rotateX(2deg);transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.scan-terminal:hover{transform:perspective(1400px) rotateY(0) rotateX(0)}
.terminal-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--panel-line);background:#ffffff05}
.terminal-dots{display:flex;gap:6px}.terminal-dots i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.terminal-dots i+i{background:#febc2e}.terminal-dots i+i+i{background:#28c840}
.terminal-title{font-size:.75rem;color:var(--dim);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.terminal-toggle{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:.6875rem;color:var(--dim);background:transparent;border:1px solid var(--panel-line);border-radius:999px;padding:3px 10px;cursor:pointer}
.terminal-toggle:hover{color:var(--text);border-color:#33476a}
.terminal-toggle:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.terminal-body{padding:18px 20px 8px;min-height:318px;font-size:.8125rem;line-height:1.55}
.t-line{display:flex;align-items:baseline;gap:8px;margin:0 0 7px;color:var(--text);white-space:nowrap;overflow:hidden}
.t-prompt,.t-arrow{color:var(--azure)}
.t-muted{color:var(--dim)}
.t-ok .t-mark{color:var(--signal)}
.t-find .t-mark{color:var(--high)}
.t-sev,.t-done{margin-left:auto;font-size:.6875rem;font-weight:700;letter-spacing:.06em;padding:1px 8px;border-radius:6px}
.sev-high{color:var(--high);background:#ff6b6b1f}.sev-med{color:var(--med);background:#ffb5471f}.sev-low{color:var(--low);background:#7cc4ff1f}
.t-done{color:var(--signal);background:var(--signal-soft)}
.t-find.is-fixed{color:var(--dim);text-decoration:line-through;text-decoration-color:#8d9db680}
.t-find.is-fixed .t-mark{color:transparent;position:relative}.t-find.is-fixed .t-mark::after{content:"✓";position:absolute;left:0;color:var(--signal)}
.t-find.is-fixed .t-sev{color:var(--signal);background:var(--signal-soft);text-decoration:none}
.t-final{color:var(--signal)}
.terminal-score{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:6px 14px;padding:14px 20px 16px;border-top:1px solid var(--panel-line);background:#ffffff04}
.terminal-score small{display:block;font-size:.625rem;letter-spacing:.14em;color:var(--dim)}
.terminal-score strong{font-size:1.5rem;color:#fff;font-variant-numeric:tabular-nums}
.score-out{font-size:.875rem;color:var(--dim);font-weight:500}
.terminal-score figcaption{grid-column:1/-1;font-size:.6875rem;color:#6d7f9b}
.score-ring{position:relative;width:52px;height:52px}
.score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-track{fill:none;stroke:#1d2c45;stroke-width:4}
.ring-fill{fill:none;stroke:var(--signal);stroke-width:4;stroke-linecap:round;stroke-dasharray:94 100;transition:stroke-dasharray .6s cubic-bezier(.2,.8,.2,1),stroke .4s}
.score-grade{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;font-size:1.125rem;color:#fff}
.scan-terminal[data-grade="F"] .ring-fill{stroke:var(--high)}
.scan-terminal[data-grade="D"] .ring-fill,.scan-terminal[data-grade="C"] .ring-fill{stroke:var(--med)}
.scan-terminal[data-grade="B"] .ring-fill{stroke:#9be27a}

/* Animated state: lines start hidden and are revealed in order by site.js. */
.scan-terminal.is-playing .t-line{opacity:0;transform:translateY(6px)}
.scan-terminal.is-playing .t-line.is-shown{opacity:1;transform:none;transition:opacity .45s ease,transform .45s cubic-bezier(.2,.8,.2,1),color .4s}
.scan-terminal.is-playing .t-typed.is-typing::after{content:"";display:inline-block;width:7px;height:13px;margin-left:2px;vertical-align:-2px;background:var(--text);animation:blink .8s steps(1) infinite}
.scan-terminal.is-playing .t-done{opacity:0;transform:scale(.8);transition:opacity .35s ease .25s,transform .35s cubic-bezier(.2,.8,.2,1) .25s}
.scan-terminal.is-playing .t-line.is-shown .t-done{opacity:1;transform:none}
.scan-terminal.is-resetting .terminal-body{opacity:0;transition:opacity .5s ease}

/* Ticker of checks. */
.check-ticker{position:relative;overflow:hidden;border-top:1px solid #12203a;padding:18px 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ticker-track{display:flex;width:max-content;animation:ticker 38s linear infinite}
.check-ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track ul{display:flex;gap:44px;list-style:none;margin:0;padding:0 22px}
.ticker-track li{display:flex;align-items:center;gap:12px;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8125rem;letter-spacing:.04em;color:#9fb0c8}
.ticker-track li::before{content:"✓";color:var(--signal)}
@keyframes ticker{to{transform:translateX(-50%)}}

@media(max-width:1100px){.scan-terminal{transform:none}.scan-hero .hero-grid{min-height:0}}
@media(max-width:700px){.terminal-body{font-size:.6875rem;padding:14px 14px 6px;min-height:0}.t-line{gap:6px}.terminal-score{padding:12px 14px}.hero-proof{font-size:.875rem}.scan-glow{width:420px;height:420px}}
@media(prefers-reduced-motion:reduce){.scan-grid,.scan-sweep,.scan-glow,.ticker-track,.kicker-cursor,.scan-hero .status-dot{animation:none}.scan-sweep{display:none}.ticker-track{flex-wrap:wrap}.ticker-track ul[aria-hidden]{display:none}.check-ticker{mask-image:none}.scan-terminal,.scan-terminal:hover{transform:none}}
/* Desktop headline kept to a calmer size so the copy and terminal read as one unit. */
@media(min-width:901px){.scan-hero h1{font-size:clamp(44px,4.2vw,56px);line-height:1.04;letter-spacing:-.05em}}

/* Cross-link band to leaguesoftwares.ai: the AI site's violet and amber, dark in both themes like the hero. */
.ai-band{padding:28px 0 36px}
.ai-band-inner{display:flex;align-items:center;gap:28px;padding:30px 34px;border-radius:20px;background:radial-gradient(ellipse 60% 120% at 100% 100%,#6e4cff40,transparent 70%),linear-gradient(135deg,#0b1024,#141238);border:1px solid #2b2c5c;color:#eef1fb}
.ai-band-mark{width:56px;height:56px;flex-shrink:0;filter:drop-shadow(0 8px 18px #8b7bff55)}
.ai-band-copy{flex:1;min-width:0}
.ai-band-eyebrow{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem;font-weight:700;letter-spacing:.14em;color:#ffb547;margin-bottom:6px}
.ai-band h2{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.03em;color:#fff;margin-bottom:6px}
.ai-band-copy p:last-child{color:#b6bddb;max-width:620px}
.ai-band-link{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;padding:13px 20px;border-radius:12px;background:linear-gradient(135deg,#8b7bff,#6a5bff);color:#fff;font-weight:650;box-shadow:0 10px 28px #8b7bff40;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.ai-band-link:hover{transform:translateY(-2px);box-shadow:0 16px 36px #8b7bff59}
.ai-band-link .icon{width:16px;height:16px}
@media(max-width:800px){.ai-band-inner{flex-direction:column;align-items:flex-start;gap:18px;padding:26px 22px}}
