/* ============================================================
   PMT-AI — „Neon Control Room" design system
   Ładowany PO bootstrap.min.css (nadpisuje motyw BS)
   ============================================================ */

:root{
  /* Kolory bazowe */
  --bg:#070B14;
  --surface:#0E1626;
  --surface-alt:#131F33;
  --text-primary:#EAF2FF;
  --text-muted:#8CA0C0;

  /* Akcenty */
  --accent:#22E6D2;          /* cyan — magistrala CAN */
  --accent-2:#7C5CFF;        /* violet — AI */
  --success:#A6F135;         /* lime — plug&play / diody OK */
  --border:#26344D;

  /* Gradienty */
  --grad-from:#22E6D2;
  --grad-to:#7C5CFF;
  --grad-primary:linear-gradient(135deg,var(--grad-from),var(--grad-to));
  --grad-card:linear-gradient(160deg,rgba(19,31,51,.55),rgba(14,22,38,.35));
  --grad-line:linear-gradient(90deg,var(--accent),transparent);

  /* Alpha akcentów */
  --accent-a10:rgba(34,230,210,.10);
  --accent-a35:rgba(34,230,210,.35);
  --accent2-a12:rgba(124,92,255,.12);
  --accent2-a40:rgba(124,92,255,.40);
  --success-a15:rgba(166,241,53,.15);
  --success-a40:rgba(166,241,53,.40);

  /* Typografia */
  --font-head:'Space Grotesk',system-ui,sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --tracking-head:-.02em;
  --tracking-mono:.08em;

  /* Promienie */
  --r-sm:8px;
  --r-btn:12px;
  --r-card:18px;
  --r-pill:999px;

  /* Cienie / poświaty */
  --shadow-card:0 8px 40px rgba(0,0,0,.45);
  --shadow-nav:0 4px 24px rgba(0,0,0,.40);
  --glow-btn:0 0 0 1px var(--accent2-a40),0 8px 24px rgba(34,230,210,.25);
  --glow-accent:0 0 6px var(--accent);
  --glow-dot:0 0 8px currentColor;

  /* Layout */
  --section-y:96px;
  --container-max:1200px;

  /* Motion */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:200ms;
  --dur-reveal:500ms;
}
@media (max-width:768px){ :root{ --section-y:56px; } }

/* ---------- Base ---------- */
html{ scroll-behavior:smooth; position:relative; min-height:100%; }
body.pmt-body{
  background:var(--bg);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  margin:0;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3,h4,.h1,.h2,.h3{ font-family:var(--font-head); letter-spacing:var(--tracking-head); line-height:1.08; font-weight:700; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--text-primary); }
.mono{ font-family:var(--font-mono); letter-spacing:var(--tracking-mono); }
.pmt-body .text-muted{ color:var(--text-muted) !important; }

/* ---------- Tło ---------- */
.pmt-bg{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    repeating-linear-gradient(0deg, transparent 0 39px, rgba(38,52,77,.35) 39px 40px),
    repeating-linear-gradient(90deg, transparent 0 39px, rgba(38,52,77,.35) 39px 40px);
  opacity:.5;
}
.pmt-bg::before,.pmt-bg::after{
  content:""; position:absolute; border-radius:50%; filter:blur(120px); opacity:.14;
}
.pmt-bg::before{ width:52vw; height:52vw; top:-10vw; right:-8vw; background:radial-gradient(circle,var(--accent),transparent 65%); }
.pmt-bg::after{ width:46vw; height:46vw; bottom:-12vw; left:-10vw; background:radial-gradient(circle,var(--accent-2),transparent 65%); }

/* ---------- Kontener / sekcje ---------- */
.pmt-container{ max-width:var(--container-max); margin-inline:auto; padding-inline:clamp(16px,4vw,24px); }
.pmt-section{ position:relative; padding-block:var(--section-y); }
.pmt-section--alt{ background:var(--surface); }
.pmt-section--line::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:var(--grad-line); opacity:.5;
}
.eyebrow{
  font-family:var(--font-mono); text-transform:uppercase; letter-spacing:var(--tracking-mono);
  color:var(--accent); font-size:.8rem; font-weight:500; display:inline-flex; align-items:center; gap:.55rem;
}
.eyebrow::before{ content:""; width:22px; height:1px; background:var(--accent); display:inline-block; }
.section-title{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin-top:.6rem; }
.section-lead{ color:var(--text-muted); max-width:60ch; font-size:1.075rem; }

/* ---------- Navbar ---------- */
.pmt-navbar{
  position:sticky; top:0; z-index:1000;
  background:rgba(7,11,20,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
  transition:background var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}
.pmt-navbar.is-scrolled{ background:rgba(7,11,20,.92); box-shadow:var(--shadow-nav); }
.pmt-navbar .pmt-container{ display:flex; align-items:center; gap:1rem; height:68px; }
.pmt-brand{ font-family:var(--font-head); font-weight:700; font-size:1.25rem; color:var(--text-primary); display:inline-flex; align-items:center; gap:.5rem; }
.pmt-brand:hover{ color:var(--text-primary); }
.pmt-brand .dot{ width:11px; height:11px; border-radius:50%; background:var(--grad-primary); box-shadow:0 0 10px var(--accent); }
.pmt-nav{ display:flex; align-items:center; gap:.25rem; margin-left:auto; }
.pmt-nav .nav-link{
  font-family:var(--font-body); font-weight:500; font-size:.98rem; color:var(--text-muted);
  padding:.5rem .85rem; border-radius:var(--r-pill); position:relative; transition:color var(--dur-fast) ease, background var(--dur-fast) ease;
}
.pmt-nav .nav-link:hover{ color:var(--text-primary); background:var(--accent2-a12); }
.pmt-nav .nav-link.active{ color:var(--accent); }
.pmt-nav .nav-admin{ color:var(--text-muted); font-size:.85rem; opacity:.75; }

/* Hamburger */
.pmt-burger{ margin-left:auto; display:none; background:none; border:1px solid var(--border); border-radius:var(--r-sm); width:44px; height:40px; color:var(--text-primary); align-items:center; justify-content:center; }
@media (max-width:900px){
  .pmt-burger{ display:inline-flex; }
  .pmt-nav{
    position:fixed; inset:68px 0 auto 0; flex-direction:column; align-items:stretch; gap:.35rem; margin:0;
    padding:1rem clamp(16px,4vw,24px) 1.5rem; background:rgba(10,17,32,.97); backdrop-filter:blur(16px);
    border-bottom:1px solid var(--border); transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity var(--dur-fast) ease, transform var(--dur-fast) ease;
  }
  .pmt-nav.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .pmt-nav .nav-link{ padding:.85rem 1rem; font-size:1.05rem; }
}

/* ---------- Przyciski ---------- */
.btn-glow,.btn-ghost{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-head); font-weight:600;
  border-radius:var(--r-btn); padding:.85rem 1.5rem; font-size:1rem; cursor:pointer; border:1px solid transparent;
  transition:transform var(--dur-fast) ease, box-shadow var(--dur-fast) ease, background var(--dur-fast) ease, border-color var(--dur-fast) ease;
}
.btn-glow{ background:var(--grad-primary); color:#070B14; box-shadow:var(--glow-btn); }
.btn-glow:hover{ color:#070B14; transform:scale(1.02); box-shadow:0 0 0 1px var(--accent2-a40),0 12px 32px rgba(34,230,210,.4); }
.btn-glow:active{ transform:scale(1); }
.btn-ghost{ background:transparent; border-color:var(--border); color:var(--text-primary); }
.btn-ghost:hover{ color:var(--text-primary); border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent-a35), 0 0 18px rgba(34,230,210,.12); }
.btn-sm{ padding:.5rem .95rem; font-size:.9rem; }
:where(.btn-glow,.btn-ghost,.nav-link,a,button):focus-visible{ outline:3px solid var(--accent2-a40); outline-offset:2px; }

/* ---------- Karty ---------- */
.pmt-card{
  position:relative; background:var(--grad-card); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--border); border-radius:var(--r-card); box-shadow:var(--shadow-card);
  padding:26px; height:100%; overflow:hidden;
  transition:transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out);
}
.pmt-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--grad-primary);
  opacity:0; transition:opacity 250ms ease;
}
.pmt-card:hover{ transform:translateY(-4px); box-shadow:0 16px 50px rgba(0,0,0,.5),0 0 24px rgba(34,230,210,.08); }
.pmt-card:hover::before{ opacity:1; }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .pmt-card{ background:var(--surface-alt); }
}

/* Karta modułu */
.pmt-card--module{ display:flex; flex-direction:column; gap:.75rem; }
.module-head{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.module-code{ font-family:var(--font-mono); letter-spacing:var(--tracking-mono); text-transform:uppercase; color:var(--accent); font-size:.82rem; }
.module-name{ font-family:var(--font-head); font-size:1.15rem; font-weight:600; margin:0; }
.module-desc{ color:var(--text-muted); font-size:.95rem; margin:0; flex:1; }
.module-chips{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.35rem; }

/* Pusty slot „dołóż moduł" */
.module-slot--empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; min-height:180px;
  border:1.5px dashed var(--border); border-radius:var(--r-card); color:var(--text-muted);
  font-family:var(--font-mono); font-size:.8rem; text-transform:uppercase; letter-spacing:var(--tracking-mono);
  transition:border-color var(--dur-fast) ease, color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;
}
.module-slot--empty .plus{ font-size:2rem; line-height:1; color:var(--accent); }
.module-slot--empty:hover{ border-color:var(--accent); color:var(--text-primary); box-shadow:0 0 24px rgba(34,230,210,.12); }

/* ---------- Diody / chipy ---------- */
.status-dot{ width:9px; height:9px; border-radius:50%; display:inline-block; box-shadow:var(--glow-dot); }
.status-dot--ok{ color:var(--success); background:var(--success); }
.status-dot--new{ color:var(--accent-2); background:var(--accent-2); }
.status-dot--warn{ color:var(--accent); background:var(--accent); }
.status-pulse{ animation:pulse 2s ease-in-out infinite; }

.cap-chip{
  display:inline-flex; align-items:center; gap:.4rem; padding:4px 12px; border-radius:var(--r-pill);
  background:var(--accent-a10); border:1px solid var(--accent-a35); color:var(--accent);
  font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:var(--tracking-mono);
}
.cap-chip::before{ content:""; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:var(--glow-dot); }
.cap-chip--pnp{ background:var(--success-a15); border-color:var(--success-a40); color:var(--success); }
.cap-chip--ai{ background:var(--accent2-a12); border-color:var(--accent2-a40); color:var(--accent-2); }
.cap-chip--selv{ background:var(--accent2-a12); border-color:var(--accent2-a40); color:var(--accent-2); }

/* Status badge (etap modułu) */
.status-badge{
  display:inline-flex; align-items:center; gap:.4rem; padding:3px 10px; border-radius:var(--r-pill);
  font-family:var(--font-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:var(--tracking-mono);
  border:1px solid var(--border); color:var(--text-muted); background:rgba(255,255,255,.02);
}
.status-badge--prod{ color:var(--success); border-color:var(--success-a40); }
.status-badge--design{ color:var(--accent); border-color:var(--accent-a35); }

/* ---------- Hero ---------- */
.hero{ position:relative; padding-top:clamp(48px,7vw,96px); padding-bottom:clamp(48px,7vw,110px); }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,4vw,4rem); align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }
.hero h1{ font-size:clamp(2.2rem,6vw,4rem); margin:1rem 0 1.1rem; }
.hero h1 .grad{ background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-sub{ color:var(--text-muted); font-size:clamp(1.05rem,1.6vw,1.25rem); max-width:56ch; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.8rem; }
.hero-meta{ display:flex; flex-wrap:wrap; gap:1.5rem; margin-top:2.2rem; color:var(--text-muted); font-family:var(--font-mono); font-size:.78rem; letter-spacing:var(--tracking-mono); text-transform:uppercase; }
.hero-meta span{ display:inline-flex; align-items:center; gap:.5rem; }

/* Hero rail (SVG) */
.hero-rail{ width:100%; }
.hero-rail svg{ width:100%; height:auto; display:block; overflow:visible; }
.bus-flow{ stroke-dasharray:8 10; animation:flow 3s linear infinite; }
.ai-bubble-svg{ animation:floaty 6s ease-in-out infinite; }

/* ---------- „Jak to działa" ---------- */
.step-card{ position:relative; }
.step-num{ font-family:var(--font-mono); font-size:2.4rem; font-weight:500; background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1; }
.step-icon{ margin:1rem 0 .8rem; color:var(--accent); }
.step-card h3{ font-size:1.2rem; }

/* ---------- AI terminal ---------- */
.ai-terminal{
  background:var(--surface-alt); border:1px solid var(--accent-a35); border-radius:var(--r-card);
  box-shadow:0 0 40px rgba(34,230,210,.08),var(--shadow-card); overflow:hidden; max-width:820px; margin-inline:auto;
}
.ai-terminal-bar{ display:flex; align-items:center; gap:.5rem; padding:.7rem 1rem; border-bottom:1px solid var(--border); background:rgba(0,0,0,.2); }
.ai-terminal-bar .tdot{ width:11px; height:11px; border-radius:50%; }
.ai-terminal-bar .tdot:nth-child(1){ background:#ff5f57; }
.ai-terminal-bar .tdot:nth-child(2){ background:#febc2e; }
.ai-terminal-bar .tdot:nth-child(3){ background:#28c840; }
.ai-terminal-bar .tlabel{ margin-left:.6rem; font-family:var(--font-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:var(--tracking-mono); color:var(--text-muted); }
.ai-terminal-body{ padding:1.4rem 1.5rem; font-family:var(--font-mono); font-size:.95rem; line-height:1.9; min-height:150px; }
.ai-line{ color:var(--text-muted); }
.ai-line .usr{ color:var(--text-primary); }
.ai-line .ok{ color:var(--success); }
.ai-line .ai{ color:var(--accent); }
.ai-cursor::after{ content:"▋"; color:var(--accent); animation:blink 1s steps(2) infinite; }

/* ---------- Czat konfiguratora ---------- */
.chat-scroll{ max-height:min(52vh,520px); overflow-y:auto; padding:1.4rem 1.5rem; display:flex; flex-direction:column; gap:1rem; }
.chat-msg{ display:flex; gap:.7rem; max-width:88%; }
.chat-msg .who{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:var(--tracking-mono); text-transform:uppercase; padding-top:.2rem; flex:0 0 auto; }
.chat-msg .bubble{ padding:.7rem 1rem; border-radius:14px; line-height:1.5; }
.chat-msg--ai{ align-self:flex-start; }
.chat-msg--ai .who{ color:var(--accent); }
.chat-msg--ai .bubble{ background:var(--surface); border:1px solid var(--border); }
.chat-msg--user{ align-self:flex-end; flex-direction:row-reverse; }
.chat-msg--user .who{ color:var(--text-muted); }
.chat-msg--user .bubble{ background:var(--accent2-a12); border:1px solid var(--accent2-a40); }
.chat-typing{ display:inline-flex; gap:4px; align-items:center; }
.chat-typing span{ width:7px; height:7px; border-radius:50%; background:var(--accent); animation:blink 1.2s infinite; }
.chat-typing span:nth-child(2){ animation-delay:.2s; } .chat-typing span:nth-child(3){ animation-delay:.4s; }
.chat-input{ display:flex; gap:.6rem; padding:1rem 1.2rem; border-top:1px solid var(--border); background:rgba(0,0,0,.2); }
.chat-input input{ flex:1; background:var(--surface); border:1px solid var(--border); color:var(--text-primary); border-radius:var(--r-btn); padding:.75rem 1rem; font-family:var(--font-body); font-size:1rem; }
.chat-input input:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-a10); }
.result-mod{ display:flex; align-items:flex-start; gap:1rem; }
.result-qty{ flex:0 0 auto; min-width:44px; height:44px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--grad-primary); color:#070B14; font-family:var(--font-head); font-weight:700; }
.result-note{ display:flex; gap:.6rem; color:var(--text-muted); font-size:.92rem; }
.result-note::before{ content:"›"; color:var(--accent); }

/* ---------- Dla kogo ---------- */
.audience-track{ height:100%; }
.audience-track h3{ display:flex; align-items:center; gap:.6rem; font-size:1.3rem; }
.audience-track--pro h3{ color:var(--accent); }
.audience-track--fan h3{ color:var(--accent-2); }
.audience-list{ list-style:none; padding:0; margin:1rem 0 0; display:flex; flex-direction:column; gap:.7rem; }
.audience-list li{ display:flex; gap:.65rem; color:var(--text-muted); }
.audience-list li::before{ content:""; flex:0 0 7px; height:7px; margin-top:.55rem; border-radius:50%; background:currentColor; }
.audience-track--pro .audience-list li::before{ background:var(--accent); box-shadow:var(--glow-dot); color:var(--accent); }
.audience-track--fan .audience-list li::before{ background:var(--accent-2); box-shadow:0 0 8px var(--accent-2); }

/* ---------- Trust / liczniki ---------- */
.trust-stat{ text-align:center; }
.trust-stat .num{ font-family:var(--font-mono); font-size:clamp(2rem,4vw,2.8rem); font-weight:500; font-variant-numeric:tabular-nums; background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent; }
.trust-stat .lbl{ font-family:var(--font-mono); font-size:.75rem; text-transform:uppercase; letter-spacing:var(--tracking-mono); color:var(--text-muted); margin-top:.35rem; }

/* ---------- Use case tile ---------- */
.usecase-tile{ text-align:left; }
.usecase-tile .uc-icon{ color:var(--accent); margin-bottom:1rem; }
.usecase-tile h3{ font-size:1.2rem; }
.usecase-tile .uc-mods{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:var(--tracking-mono); color:var(--text-muted); text-transform:uppercase; margin-top:.6rem; }

/* ---------- CTA band ---------- */
.cta-band{ text-align:center; position:relative; border-radius:24px; padding:clamp(2.5rem,6vw,4.5rem); background:var(--grad-card); border:1px solid var(--border); overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(600px circle at 50% -20%,rgba(34,230,210,.18),transparent 70%); pointer-events:none; }
.cta-band h2{ font-size:clamp(1.8rem,4vw,2.8rem); position:relative; }

/* ---------- Footer ---------- */
.pmt-footer{ background:var(--surface); border-top:1px solid var(--border); position:relative; padding-block:3rem 2rem; }
.pmt-footer::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px; background:var(--grad-line); opacity:.4; }
.pmt-footer a{ color:var(--text-muted); }
.pmt-footer a:hover{ color:var(--accent); }
.pmt-footer .foot-brand{ font-family:var(--font-head); font-weight:700; color:var(--text-primary); font-size:1.15rem; }
.pmt-footer .foot-copy{ font-family:var(--font-mono); font-size:.75rem; letter-spacing:.04em; color:var(--text-muted); }

/* ---------- Breadcrumb / detail ---------- */
.pmt-breadcrumb{ font-family:var(--font-mono); font-size:.8rem; letter-spacing:var(--tracking-mono); text-transform:uppercase; color:var(--text-muted); display:flex; gap:.6rem; align-items:center; }
.pmt-breadcrumb a{ color:var(--text-muted); }
.pmt-breadcrumb a:hover{ color:var(--accent); }
.spec-group{ margin-top:1.8rem; }
.spec-group h5{ font-family:var(--font-mono); text-transform:uppercase; letter-spacing:var(--tracking-mono); font-size:.85rem; color:var(--accent); }
.spec-table{ width:100%; border-collapse:collapse; }
.spec-table th,.spec-table td{ padding:.7rem .9rem; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.spec-table th{ width:38%; color:var(--text-muted); font-weight:500; }
.spec-table td{ font-variant-numeric:tabular-nums; }

/* ---------- Admin (czytelne tabele na ciemnym) ---------- */
.pmt-body .table{ color:var(--text-primary); border-color:var(--border); }
.pmt-body .table > :not(caption) > * > *{ background:transparent; border-color:var(--border); color:var(--text-primary); }
.pmt-body .table thead th{ color:var(--text-muted); font-family:var(--font-mono); font-size:.78rem; text-transform:uppercase; letter-spacing:var(--tracking-mono); }
.pmt-body .table-hover > tbody > tr:hover > *{ background:var(--accent2-a12); }
.pmt-body .form-control,.pmt-body .form-select{ background:var(--surface-alt); border:1px solid var(--border); color:var(--text-primary); }
.pmt-body .form-control:focus,.pmt-body .form-select:focus{ background:var(--surface-alt); border-color:var(--accent); color:var(--text-primary); box-shadow:0 0 0 3px var(--accent-a10); }
.pmt-body .form-control::placeholder{ color:#5f7290; }
.pmt-body .form-label{ color:var(--text-muted); font-size:.9rem; }
.pmt-body .breadcrumb{ --bs-breadcrumb-divider-color:var(--text-muted); }
.pmt-body .breadcrumb-item.active{ color:var(--text-muted); }
.admin-shell{ padding-block:2.5rem; }

/* ---------- Reveal ---------- */
.reveal{ opacity:0; transform:translateY(24px); }
.reveal.is-visible{ opacity:1; transform:translateY(0); transition:opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out); transition-delay:calc(var(--i,0) * 60ms); }

/* SVG diody */
.svg-pulse{ animation:svgpulse 2s ease-in-out infinite; }
@keyframes svgpulse{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }

/* ---------- Keyframes ---------- */
@keyframes flow{ to{ stroke-dashoffset:-36; } }
@keyframes pulse{ 0%,100%{ box-shadow:0 0 4px currentColor; } 50%{ box-shadow:0 0 14px currentColor,0 0 22px currentColor; } }
@keyframes floaty{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-6px); } }
@keyframes blink{ 0%,50%{ opacity:1; } 50.01%,100%{ opacity:0; } }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
