@charset "UTF-8";

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display:none !important; }

:root {
  --bg:#1A1D21; --surface:#22262B; --surface2:#2A2F36;
  --border:#333840; --accent:#C0392B; --accent-rgb:192,57,43; --accent-dim:#7D1C13;
  --text:#C8CDD4; --muted:#565E6B; --muted2:#7A8390;
  --crit:#C0392B; --crit-rgb:192,57,43; --high:#E67E22; --low:#27AE60; --r:8px;
  --nav-bg:rgba(26,29,33,.90); --nav-bg-solid:rgba(26,29,33,.96);
  --grid-line:rgba(255,255,255,.012); --shadow-a:rgba(0,0,0,.38);
  --fade-end:rgba(15,10,10,.5); --th-bg:rgba(255,255,255,.015);
  --term-bg:#141619; --term-shadow:rgba(0,0,0,.35);
  color-scheme:dark;
}
html { scroll-behavior: smooth; overflow-x: clip; }
body { background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; font-size:16px; line-height:1.6; overflow-x:hidden; overflow-x:clip; }
a { color:inherit; }

.global-grid {
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:linear-gradient(var(--grid-line) 1px, transparent 1px),linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:44px 44px;
}
.global-grid-glow {
  position:fixed; inset:0; z-index:0; pointer-events:none; opacity:0;
  background-image:linear-gradient(rgba(var(--accent-rgb),.5) 1px, transparent 1px),linear-gradient(90deg, rgba(var(--accent-rgb),.5) 1px, transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(circle 200px at var(--gx,50%) var(--gy,50%), #000 0%, rgba(0,0,0,.4) 45%, transparent 72%);
  mask-image:radial-gradient(circle 200px at var(--gx,50%) var(--gy,50%), #000 0%, rgba(0,0,0,.4) 45%, transparent 72%);
  transition:opacity .35s ease;
}
.global-grid-glow.active { opacity:1; }

.stats-bar, .how-bg, footer { position:relative; z-index:1; }
section, .hero, footer { position:relative; }

.section-inner, .nis2-inner, .hero-text, .hero .terminal-wrap { position:relative; z-index:2; }

#mainNav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; justify-content:space-between; align-items:center; padding:18px 48px; background:var(--nav-bg); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--border); }
.nav-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo-img { width:36px; height:36px; display:block; object-fit:contain; flex-shrink:0; }
.logo-text { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:18px; color:var(--text); }
.logo-text i { font-style:normal; color:var(--accent); }
.nav-links { display:flex; }
#mainNav .nav-links { gap:32px; list-style:none; }
.nav-links a { color:var(--muted2); text-decoration:none; font-size:14px; font-weight:500; transition:color .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--text); }
.nav-cta { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; background:var(--accent); color:#fff; border:none; padding:10px 20px; border-radius:var(--r); font-size:14px; font-weight:600; cursor:pointer; text-decoration:none; transition:opacity .2s, transform .2s, box-shadow .2s; }
.nav-cta:hover { opacity:.88; transform:translateY(-3px); box-shadow:0 10px 24px rgba(var(--accent-rgb),.35); }
.nav-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.nav-cta svg { width:16px; height:16px; flex-shrink:0; }
.cta-short { display:none; }

.hero { min-height:100vh; display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:56px; padding:120px 48px 80px; max-width:1200px; margin:0 auto; position:relative; }
.hero-bg { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.hero-text { position:relative; z-index:2; align-self:flex-start; padding-top:40px; }
.hero .terminal-wrap { position:relative; z-index:2; align-self:center; width:100%; }
.hero h1 { font-family:'Space Grotesk',sans-serif; font-size:clamp(34px,4vw,52px); font-weight:700; line-height:1.1; letter-spacing:-1px; margin-bottom:20px; }
.hero h1 em { font-style:normal; color:var(--accent); }
.hero-sub { color:var(--muted2); font-size:16px; line-height:1.75; margin-bottom:36px; max-width:480px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.btn-primary { background:var(--accent); color:#fff; padding:13px 26px; border-radius:var(--r); font-size:14px; font-weight:600; text-decoration:none; transition:opacity .2s, transform .2s, box-shadow .2s; display:inline-block; }
.btn-primary:hover { opacity:.88; transform:translateY(-3px); box-shadow:0 10px 24px rgba(var(--accent-rgb),.35); }
.btn-ghost { background:transparent; color:var(--muted2); padding:13px 26px; border-radius:var(--r); font-size:14px; font-weight:500; text-decoration:none; border:1px solid var(--border); transition:border-color .2s,color .2s, transform .2s, box-shadow .2s; display:inline-block; }
.btn-ghost:hover { border-color:var(--muted); color:var(--text); transform:translateY(-3px); box-shadow:0 10px 24px var(--shadow-a); }

.terminal-wrap { background:var(--term-bg); border:1px solid var(--border); border-radius:14px; overflow:hidden; box-shadow:0 32px 80px var(--term-shadow); }
.terminal-bar { background:var(--surface2); padding:13px 18px; display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--border); }
.dot { width:11px; height:11px; border-radius:50%; }
.dot-r { background:#FF5F57; } .dot-y { background:#FEBC2E; } .dot-g { background:#28C840; }
.terminal-title { margin-left:12px; font-size:12px; color:var(--muted); font-family:'Space Mono',monospace; letter-spacing:.2px; }
.terminal-body { contain:layout; padding:30px 28px 34px; min-height:400px; font-family:'Space Mono',monospace; font-size:12.5px; line-height:2.05; overflow:hidden; }
.t-line { opacity:0; transform:translateY(2px); transition:opacity .22s ease, transform .22s ease; }
.t-line.show { opacity:1; transform:none; }

.t-cmd { color:var(--text); margin-bottom:14px; }
.t-cmd .t-bin { color:var(--accent); }

.t-kv { display:flex; align-items:baseline; gap:14px; }
.t-kv .t-arrow { color:var(--muted); flex-shrink:0; }
.t-kv .t-key { color:var(--muted2); white-space:nowrap; }
.t-kv .t-fill { flex:1 1 auto; min-width:16px; }
.t-kv .t-val { text-align:right; white-space:nowrap; }

.t-sep { height:16px; }
.t-foot { color:var(--muted); }
.t-score { display:flex; align-items:baseline; gap:14px; margin-top:2px; }
.t-score .t-fill { flex:1 1 auto; }
.t-muted{color:var(--muted);} .t-red{color:var(--crit);} .t-orange{color:var(--high);} .t-green{color:var(--low);}
.t-cmd { position:relative; }
.t-cursor { position:absolute; margin:5px 0 0 8px; width:8px; height:14px; background:var(--accent); animation:blink .9s infinite; }
.t-cursor.done { display:none; }

.stats-bar { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:0 48px; overflow:hidden; }
.stats-bar::before { content:''; position:absolute; top:0; left:0; width:32%; height:1px; background:linear-gradient(90deg, transparent, var(--accent), transparent); transform:translateX(-100%); pointer-events:none; }
.stats-bar.in::before { animation:statSweep 2.2s cubic-bezier(.65,0,.35,1) .15s backwards; transform:translateX(420%); }
@keyframes statSweep { from { transform:translateX(-100%); } }
.stats-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); }
.stat { position:relative; padding:46px 32px 42px; min-width:0; }
.stat + .stat { border-left:1px solid var(--border); }
.stat:first-child { padding-left:0; }
.anim .stat:not(.on) { opacity:0; }
.stat.on { animation:riseIn .8s cubic-bezier(.16,1,.3,1) backwards; }
@keyframes riseIn { from { opacity:0; transform:translateY(26px); } }
.stat-k { display:flex; align-items:center; gap:10px; font-family:'Space Mono',monospace; font-size:10.5px; font-weight:700; letter-spacing:2.2px; text-transform:uppercase; color:var(--muted2); margin-bottom:20px; }
.stat-k::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px rgba(var(--accent-rgb),.16); flex-shrink:0; }
.stat-n { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(36px,3.7vw,50px); line-height:1; letter-spacing:-1.5px; color:var(--text); font-variant-numeric:tabular-nums; white-space:nowrap; }
.stat-unit { color:var(--accent); font-size:.46em; letter-spacing:0; margin-left:7px; }
.stat-rule { display:block; position:relative; height:2px; margin:22px 0 16px; border-radius:2px; background:var(--border); overflow:hidden; }
.stat-rule::after { content:''; position:absolute; inset:0; border-radius:2px; background:linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb),.35)); transform:scaleX(.3); transform-origin:left center; transition:transform .6s cubic-bezier(.16,1,.3,1); }
.stat.on .stat-rule::after { animation:ruleIn 1.5s cubic-bezier(.16,1,.3,1) .25s backwards; }
@keyframes ruleIn { from { transform:scaleX(0); } }
.stat:hover .stat-rule::after { transform:scaleX(1); }
.stat-l { font-size:14px; line-height:1.5; color:var(--text); max-width:230px; }
.stat-src { margin-top:12px; font-family:'Space Mono',monospace; font-size:10.5px; letter-spacing:.3px; line-height:1.5; color:var(--muted2); }

section { padding:96px 48px; }
.section-inner { max-width:1200px; margin:0 auto; }
.section-eyebrow { font-size:11px; font-weight:700; letter-spacing:2.5px; color:var(--accent); text-transform:uppercase; margin-bottom:12px; }
.section-title { font-family:'Space Grotesk',sans-serif; font-size:clamp(26px,3vw,38px); font-weight:700; line-height:1.15; letter-spacing:-.5px; margin-bottom:16px; }
.section-title em { font-style:normal; color:var(--accent); }
.t-center { text-align:center; }
.m-auto { margin-left:auto; margin-right:auto; }
.section-inner--narrow { max-width:700px; }
.nis2-text { color:var(--muted2); font-size:15px; line-height:1.8; margin-top:16px; }
.nis2-text strong { color:var(--text); }
.nis2-src { color:var(--muted2); font-size:12px; line-height:1.8; margin-top:20px; }
.nis2-src a { color:var(--text); text-decoration:underline; text-decoration-color:var(--accent); text-underline-offset:3px; transition:color .2s; }
.nis2-src a:hover { color:var(--accent); }
.contact-box { max-width:560px; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
.contact-lead { color:var(--muted2); font-size:15px; line-height:1.7; margin:16px 0 34px; text-align:center; }
.contact-note { color:var(--muted); font-size:12px; margin-top:16px; }
#contact { text-align:center; background:linear-gradient(180deg, transparent 0%, var(--fade-end) 100%); }
.contact-actions { display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin-top:4px; }
.section-sub { color:var(--muted2); font-size:15px; max-width:560px; line-height:1.75; }

.problem-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:52px; }
.problem-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:26px; transition:border-color .2s; }
.problem-card:hover { border-color:var(--accent-dim); }
.problem-icon { font-size:26px; margin-bottom:14px; }
.problem-card h3 { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:600; margin-bottom:8px; }
.problem-card p { color:var(--muted2); font-size:13px; line-height:1.6; }

.how-bg { background:var(--surface); position:relative; z-index:1; }
.how-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:56px; }
.how-step { min-width:0; }
.anim .how-step:not(.play) { opacity:0; }
.how-step.play { animation:riseIn .8s cubic-bezier(.16,1,.3,1) backwards; }
.how-visual { position:relative; height:176px; border-radius:14px; background:var(--bg); border:1px solid var(--border); overflow:hidden; display:flex; align-items:center; justify-content:center; gap:22px; padding:20px; transition:border-color .4s, box-shadow .4s; }
.how-visual::before { content:''; position:absolute; inset:0; background-image:linear-gradient(var(--grid-line) 1px, transparent 1px),linear-gradient(90deg, var(--grid-line) 1px, transparent 1px); background-size:22px 22px; pointer-events:none; }
.how-step:hover .how-visual { border-color:rgba(var(--accent-rgb),.55); box-shadow:0 18px 44px var(--shadow-a); }
.how-head { display:flex; align-items:center; gap:16px; margin:24px 0 14px; }
.step-num { width:42px; height:42px; border-radius:50%; flex-shrink:0; background:var(--bg); border:1px solid var(--accent); display:flex; align-items:center; justify-content:center; font-family:'Space Mono',monospace; font-size:13px; font-weight:700; color:var(--accent); box-shadow:0 0 22px rgba(var(--accent-rgb),.28); transition:background .3s, color .3s; }
.how-step:hover .step-num { background:var(--accent); color:#fff; }
.how-rail { position:relative; flex:1; height:1px; margin-right:-32px; background:var(--border); }
.how-rail::after { content:''; position:absolute; inset:-1px 0; background:var(--accent); box-shadow:0 0 8px rgba(var(--accent-rgb),.6); transform:scaleX(0); transform-origin:left center; transition:transform 1s cubic-bezier(.65,0,.35,1); }
.how-step.done .how-rail::after { transform:scaleX(1); }
.how-step:last-child .how-rail { visibility:hidden; }
.how-step h3 { font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; margin-bottom:10px; }
.how-step p { color:var(--muted2); font-size:13.5px; line-height:1.7; }

.hv-domain { flex-direction:column; gap:16px; }
.hv-field { position:relative; display:flex; align-items:center; gap:10px; width:100%; max-width:250px; height:44px; padding:0 14px; border-radius:10px; background:var(--surface); border:1px solid var(--border); font-family:'Space Mono',monospace; font-size:14px; color:var(--text); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14); }
.hv-globe { width:14px; height:14px; border-radius:50%; border:1.5px solid var(--accent); flex-shrink:0; position:relative; }
.hv-globe::after { content:''; position:absolute; left:50%; top:-1.5px; bottom:-1.5px; width:6px; margin-left:-3px; border-radius:50%; border:1.5px solid var(--accent); border-top-color:transparent; border-bottom-color:transparent; }
.hv-typed { display:inline-block; width:10ch; overflow:hidden; white-space:nowrap; }
.hv-caret { width:7px; height:16px; margin-left:-6px; background:var(--accent); animation:blink .9s steps(1) infinite; }
.hv-pills { position:relative; display:flex; flex-wrap:wrap; justify-content:center; gap:7px; }
.hv-pills span { font-family:'Space Mono',monospace; font-size:10.5px; color:var(--low); padding:4px 10px; border-radius:100px; border:1px solid rgba(39,174,96,.35); background:rgba(39,174,96,.10); white-space:nowrap; }
.how-step.play .hv-typed { animation:hvType 1s steps(10,end) .45s backwards; }
@keyframes hvType { from { width:0; } }
.how-step.play .hv-pills span { animation:hvPop .5s cubic-bezier(.34,1.56,.64,1) backwards; }
.how-step.play .hv-pills span:nth-child(1) { animation-delay:1.5s; }
.how-step.play .hv-pills span:nth-child(2) { animation-delay:1.65s; }
.how-step.play .hv-pills span:nth-child(3) { animation-delay:1.8s; }
@keyframes hvPop { from { opacity:0; transform:scale(.7); } }

.hv-radar { position:relative; width:128px; height:128px; flex-shrink:0; overflow:visible; }
.hv-ring { fill:none; stroke:var(--border); stroke-width:1; }
.hv-sweep { transform-origin:60px 60px; animation:hvSpin 3.4s linear infinite; }
.hv-sweep-fill { fill:rgba(var(--accent-rgb),.20); }
.hv-sweep-edge { stroke:var(--accent); stroke-width:1.6; stroke-linecap:round; }
@keyframes hvSpin { to { transform:rotate(360deg); } }
.hv-core { fill:var(--accent); }
.hv-blip { transform-box:fill-box; transform-origin:center; }
.hv-b1, .hv-b4 { fill:var(--crit); } .hv-b2, .hv-b5 { fill:var(--high); } .hv-b3 { fill:var(--low); }
.how-step.play .hv-blip { animation:hvBlip .6s cubic-bezier(.34,1.56,.64,1) backwards; }
.how-step.play .hv-b1 { animation-delay:.5s; } .how-step.play .hv-b2 { animation-delay:.85s; }
.how-step.play .hv-b3 { animation-delay:1.2s; } .how-step.play .hv-b4 { animation-delay:1.55s; }
.how-step.play .hv-b5 { animation-delay:1.9s; }
@keyframes hvBlip { 0% { opacity:0; transform:scale(0); } 60% { opacity:1; transform:scale(2.1); } }
.hv-mods { position:relative; list-style:none; display:flex; flex-direction:column; gap:7px; font-family:'Space Mono',monospace; font-size:11px; color:var(--text); }
.hv-mods li { display:flex; align-items:center; gap:9px; white-space:nowrap; }
.hv-mods li::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--low); box-shadow:0 0 0 3px rgba(39,174,96,.16); }
.how-step.play .hv-mods li { animation:hvRow .45s ease backwards; }
.how-step.play .hv-mods li:nth-child(1) { animation-delay:.5s; } .how-step.play .hv-mods li:nth-child(2) { animation-delay:.85s; }
.how-step.play .hv-mods li:nth-child(3) { animation-delay:1.2s; } .how-step.play .hv-mods li:nth-child(4) { animation-delay:1.55s; }
.how-step.play .hv-mods li:nth-child(5) { animation-delay:1.9s; }
@keyframes hvRow { from { opacity:.25; transform:translateX(-6px); } }

.hv-doc { position:relative; width:100%; max-width:236px; border-radius:10px; background:var(--surface); border:1px solid var(--border); box-shadow:0 14px 30px var(--shadow-a); padding:12px 14px 14px; }
.hv-doc-top { display:flex; align-items:center; gap:10px; padding-bottom:10px; margin-bottom:12px; border-bottom:1px solid var(--border); }
.hv-doc-tag { font-family:'Space Mono',monospace; font-size:9.5px; font-weight:700; letter-spacing:1px; color:#fff; background:var(--accent); border-radius:4px; padding:2px 6px; }
.hv-doc-line { height:6px; width:58%; border-radius:3px; background:var(--border); }
.hv-doc-body { display:flex; align-items:center; gap:14px; }
.hv-gauge { width:62px; height:62px; flex-shrink:0; }
.hv-g-track { fill:none; stroke:var(--border); stroke-width:5; }
.hv-g-arc { fill:none; stroke:var(--crit); stroke-width:5; stroke-linecap:round; stroke-dasharray:163.4; stroke-dashoffset:107.8; transform:rotate(-90deg); transform-origin:32px 32px; }
.hv-g-num { font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:700; fill:var(--text); }
.hv-bars { flex:1; display:flex; flex-direction:column; gap:7px; min-width:0; }
.hv-bar { display:block; height:6px; border-radius:3px; transform-origin:left center; }
.hv-crit { width:88%; background:var(--crit); } .hv-high { width:64%; background:var(--high); }
.hv-low { width:40%; background:var(--low); } .hv-mute { width:72%; background:var(--border); }
.how-step.play .hv-doc { animation:hvDoc .8s cubic-bezier(.16,1,.3,1) .25s backwards; }
@keyframes hvDoc { from { opacity:0; transform:translateY(22px) rotate(-3deg); } }
.how-step.play .hv-g-arc { animation:hvArc 1.3s cubic-bezier(.65,0,.35,1) .8s backwards; }
@keyframes hvArc { from { stroke-dashoffset:163.4; } }
.how-step.play .hv-bar { animation:hvBar .8s cubic-bezier(.16,1,.3,1) backwards; }
.how-step.play .hv-crit { animation-delay:1s; } .how-step.play .hv-high { animation-delay:1.15s; }
.how-step.play .hv-low { animation-delay:1.3s; } .how-step.play .hv-mute { animation-delay:1.45s; }
@keyframes hvBar { from { transform:scaleX(0); } }

.scope-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px; }
.scope-card { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:30px 26px;
              display:flex; flex-direction:column; gap:14px; align-items:flex-start;
              transition:border-color .3s, transform .35s, box-shadow .35s; }
.scope-card:hover { border-color:var(--accent-dim); transform:translateY(-5px); box-shadow:0 22px 50px var(--shadow-a); }
.scope-icon { font-size:24px; line-height:1; display:inline-block; transform-origin:left center;
              transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.scope-card:hover .scope-icon { transform:scale(1.14); }
.scope-rule { display:block; height:2px; width:34px; border-radius:2px; background:var(--accent); opacity:.85; }
.scope-name { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:700; letter-spacing:.2px; }

.offer-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:stretch; gap:0; margin-top:56px; }
.offer-step { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:32px 28px;
              display:flex; flex-direction:column; position:relative;
              transition:border-color .3s, transform .35s, box-shadow .35s; }
.offer-step:hover { border-color:var(--muted); transform:translateY(-5px); box-shadow:0 22px 50px var(--shadow-a); }
.offer-step.featured { border-color:var(--accent); background:linear-gradient(160deg,rgba(var(--accent-rgb),.07) 0%,var(--surface) 62%);
                       box-shadow:0 0 0 1px rgba(var(--accent-rgb),.18), 0 20px 50px rgba(var(--accent-rgb),.08); }
.offer-num { font-family:'Space Mono',monospace; font-size:12px; font-weight:700; letter-spacing:2px; color:var(--muted); margin-bottom:16px; }
.offer-tag { display:inline-flex; align-self:flex-start; align-items:center; font-size:10px; font-weight:700; letter-spacing:1.4px;
             text-transform:uppercase; padding:5px 12px; border-radius:100px; margin-bottom:14px; }
.offer-tag.free { background:rgba(39,174,96,.12); border:1px solid rgba(39,174,96,.35); color:var(--low); }
.offer-tag.paid { background:rgba(var(--accent-rgb),.12); border:1px solid rgba(var(--accent-rgb),.35); color:var(--accent); }
.offer-price { font-family:'Space Grotesk',sans-serif; font-size:38px; font-weight:700; line-height:1; margin-bottom:14px; }
.offer-price sup { font-size:17px; vertical-align:super; margin-left:2px; }
.offer-step h3 { font-family:'Space Grotesk',sans-serif; font-size:17px; font-weight:600; margin-bottom:10px; }
.offer-step p { color:var(--muted2); font-size:13.5px; line-height:1.7; }
.offer-arrow { display:flex; align-items:center; justify-content:center; padding:0 14px; color:var(--muted); font-size:18px; }
.anim .offer-flow:not(.in) > * { opacity:0; }
.offer-flow.in > * { animation:offerIn .85s cubic-bezier(.16,1,.3,1) backwards; }
.offer-flow.in > .offer-arrow { animation-name:fadeIn; animation-duration:.4s; }
.offer-flow.in > :nth-child(2) { animation-delay:.6s; }
.offer-flow.in > :nth-child(3) { animation-delay:.8s; }
.offer-flow.in > :nth-child(4) { animation-delay:1.4s; }
.offer-flow.in > :nth-child(5) { animation-delay:1.6s; }
@keyframes offerIn { from { opacity:0; transform:translateY(38px) scale(.96); } }
@keyframes fadeIn { from { opacity:0; } }
.offer-cta-wrap { text-align:center; margin-top:46px; }
.offer-note { color:var(--muted); font-size:12px; margin-top:16px; }

.wizard { max-width:760px; margin:48px auto 0; background:var(--surface); border:1px solid var(--border);
  border-radius:16px; padding:40px 44px 34px; }

.wizard-head { margin-bottom:36px; }
.wizard-step-label { display:block; font-family:'Space Mono',monospace; font-size:11px; letter-spacing:2px;
  text-transform:uppercase; color:var(--muted2); margin-bottom:14px; }
.wizard-bar { height:3px; background:var(--border); border-radius:3px; overflow:hidden; }
.wizard-bar-fill { display:block; height:100%; width:33.33%; border-radius:3px;
  background:linear-gradient(90deg,#3B82F6 0%,var(--accent) 100%);
  transition:width .45s cubic-bezier(.65,0,.35,1); }

.wizard-step { animation:wizardIn .4s ease; }
@keyframes wizardIn { from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:none;} }
.wizard-q { font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; letter-spacing:-.3px; margin-bottom:8px; }
.wizard-help { color:var(--muted2); font-size:14px; margin-bottom:26px; }

.form-row { display:flex; flex-direction:column; gap:8px; }
.form-row label { font-family:'Space Grotesk',sans-serif; font-size:14px; font-weight:600; color:var(--text); }
.form-row label .req { color:var(--accent); }
.form-row input {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--r);
  padding:14px 16px; font-family:'Inter',sans-serif; font-size:15px; color:var(--text);
  transition:border-color .2s, box-shadow .2s; width:100%;
}
.form-row input::placeholder { color:var(--muted); }
.form-row input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14); }
.form-row input.field-err { border-color:var(--crit); box-shadow:0 0 0 3px rgba(var(--crit-rgb),.14); }
.form-hint { color:var(--muted); font-size:12px; }
.form-check { display:flex; align-items:flex-start; gap:12px; margin-top:20px; cursor:pointer; color:var(--muted2); font-size:13.5px; line-height:1.6; }
.form-check .req { color:var(--accent); }
.form-check input { -webkit-appearance:none; appearance:none; flex-shrink:0; width:20px; height:20px; margin-top:1px; display:grid; place-content:center; border:1px solid var(--border); border-radius:5px; background:var(--bg); cursor:pointer; transition:background .2s, border-color .2s, box-shadow .2s; }
.form-check input::after { content:''; width:10px; height:6px; margin-top:-2px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(-45deg) scale(0); transition:transform .15s; }
.form-check input:checked { background:var(--accent); border-color:var(--accent); }
.form-check input:checked::after { transform:rotate(-45deg) scale(1); }
.form-check input:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.form-check input.field-err { border-color:var(--crit); box-shadow:0 0 0 3px rgba(var(--crit-rgb),.14); }

.sector-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sector-card {
  text-align:left; background:var(--bg); border:1px solid var(--border); border-radius:12px;
  padding:20px 22px; cursor:pointer; display:flex; flex-direction:column; gap:5px;
  transition:border-color .2s, transform .2s, box-shadow .2s, background .2s; font-family:inherit;
}
.sector-card:hover { border-color:var(--muted); transform:translateY(-3px); box-shadow:0 14px 32px var(--shadow-a); }
.sector-card b { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:700; color:var(--text); }
.sector-card span { color:var(--muted2); font-size:12.5px; line-height:1.4; }
.sector-card.selected { border-color:var(--accent); background:linear-gradient(160deg,rgba(var(--accent-rgb),.08) 0%,var(--bg) 70%);
  box-shadow:0 0 0 1px rgba(var(--accent-rgb),.25); }
.sector-card--other { grid-column:1 / -1; }
#sectorOtherRow { margin-top:16px; }

.wizard-nav { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:32px; }
.wizard-nav .btn-primary, .wizard-nav .btn-ghost { border:none; cursor:pointer; font-size:14px; }
.wizard-nav .btn-ghost { background:transparent; color:var(--muted2); border:1px solid var(--border); }
.wizard-nav .btn-ghost:hover { border-color:var(--muted); color:var(--text); }

.wizard-recap { margin-top:22px; background:var(--bg); border:1px solid var(--border); border-radius:12px; padding:18px 20px; }
.wizard-recap:empty { display:none; }
.wizard-recap dl { display:grid; grid-template-columns:auto 1fr; gap:8px 16px; margin:0; }
.wizard-recap dt { color:var(--muted); font-size:12.5px; font-family:'Space Mono',monospace; }
.wizard-recap dd { color:var(--text); font-size:13.5px; margin:0; word-break:break-word; }

.form-error { margin-top:18px; background:rgba(var(--crit-rgb),.1); border:1px solid rgba(var(--crit-rgb),.35);
  border-radius:var(--r); padding:12px 16px; color:var(--crit); font-size:13.5px; }

.form-legal { color:var(--muted); font-size:12px; line-height:1.6; margin-top:26px; text-align:center; }

.nis2-inner { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; max-width:1200px; margin:0 auto; }
.nis2-stats { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.nis2-stat { position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:26px 22px 22px; transition:border-color .3s, transform .3s, box-shadow .3s; }
.nis2-stat::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--accent), rgba(var(--accent-rgb),.25)); transform-origin:left center; }
.nis2-stat::after { content:''; position:absolute; top:0; bottom:0; left:0; width:40%; background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb),.22), transparent); transform:translateX(-110%); pointer-events:none; }
.nis2-stat:hover { transform:translateY(-4px); border-color:rgba(var(--accent-rgb),.55); box-shadow:0 18px 44px var(--shadow-a); }
.anim .nis2-stat:not(.on) { opacity:0; }
.nis2-stat.on { animation:tileIn .9s cubic-bezier(.16,1,.3,1) backwards; }
.nis2-stat.on::before { animation:ruleIn 1.1s cubic-bezier(.16,1,.3,1) .25s backwards; }
.nis2-stat.on::after { animation:tileScan 1.2s cubic-bezier(.65,0,.35,1) .1s backwards; }
.nis2-stat.on .nis2-stat-l { animation:riseIn .7s cubic-bezier(.16,1,.3,1) .5s backwards; }
@keyframes tileIn { from { opacity:0; clip-path:inset(0 100% 0 0); transform:translateY(16px); } to { clip-path:inset(0 0 0 0); } }
@keyframes tileScan { from { transform:translateX(-110%); } to { transform:translateX(280%); } }
.nis2-stat-n { font-family:'Space Mono',monospace; font-size:26px; font-weight:700; color:var(--accent); white-space:nowrap; }
.nis2-stat-l { color:var(--muted2); font-size:12.5px; line-height:1.55; margin-top:10px; }

.faq-list { margin-top:44px; display:flex; flex-direction:column; gap:10px; }
.faq-item { background:var(--surface); border:1px solid var(--border); border-radius:var(--r); overflow:hidden; }
.faq-q { width:100%; padding:18px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px; background:none; border:0; color:inherit; font-family:inherit; text-align:left; line-height:1.5; cursor:pointer; font-weight:500; font-size:14px; user-select:none; transition:color .2s; }
.faq-q:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.faq-q:hover { color:var(--accent); }
.faq-chevron { color:var(--muted); transition:transform .25s; font-size:16px; }
.faq-a { max-height:0; overflow:hidden; transition:max-height .35s ease; color:var(--muted2); font-size:13px; line-height:1.75; padding:0 22px; }
.faq-a::after { content:''; display:block; height:18px; }
.faq-item.open .faq-chevron { transform:rotate(180deg); }
.faq-item.open .faq-a { max-height:640px; }

footer { background:linear-gradient(180deg, var(--surface) 0%, var(--fade-end) 100%); border-top:1px solid var(--border); padding:60px 48px 30px; }
.foot-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:44px; }
.foot-brand b { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:20px; color:var(--text); display:block; margin-bottom:14px; }
.foot-brand b i { font-style:normal; color:var(--accent); }
.foot-brand p { color:var(--muted); font-size:13.5px; line-height:1.65; max-width:320px; margin-bottom:18px; }
.foot-tags { display:flex; flex-wrap:wrap; gap:8px; }
.foot-tags span { font-family:'Space Mono',monospace; font-size:11px; color:var(--muted2); border:1px solid var(--border); border-radius:100px; padding:5px 12px; }
footer h4 { font-family:'Space Mono',monospace; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted2); margin-bottom:16px; font-weight:700; }
.foot-grid a { display:block; color:var(--muted); text-decoration:none; font-size:14px; margin-bottom:11px; transition:color .2s; }
.foot-grid a:hover { color:var(--accent); }
.foot-legal { max-width:1200px; margin:48px auto 0; padding-top:24px; border-top:1px solid var(--border); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.foot-legal span { color:var(--muted); font-size:12.5px; font-family:'Space Mono',monospace; }

@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes floatGlow{0%,100%{opacity:.4;transform:translate(0,0) scale(1)}50%{opacity:.7;transform:translate(20px,-20px) scale(1.1)}}

.reveal { opacity:0; transform:translateY(36px); transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-scale { opacity:0; transform:scale(.92); transition:opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1); }
.reveal-scale.visible { opacity:1; transform:scale(1); }

html:not(.js) .reveal, html:not(.js) .reveal-scale { opacity:1; transform:none; }
html:not(.js) .faq-a { max-height:none; }
html:not(.js) .err-term, html:not(.js) .err-hint { display:none; }
html:not(.js) .wizard-step[hidden] { display:block !important; }
html:not(.js) #sectorOtherRow { display:flex !important; }
html:not(.js) .wizard-head, html:not(.js) .sector-grid, html:not(.js) [data-next], html:not(.js) [data-back] { display:none; }
html:not(.js) .wizard-step + .wizard-step { margin-top:28px; }
@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-scale{transition:none;opacity:1;transform:none;}
  .hero-glow{display:none!important;}
  .stat, .stats-bar::before, .stat-rule::after, .nis2-stat, .nis2-stat::before, .nis2-stat::after, .nis2-stat-l, .offer-flow > *, .how-step, .how-step *, .how-rail::after, .err-code, .err-in > *, .err-digit, .err-radar, .err-radar *{animation:none!important;transition:none!important;}
}

.scroll-progress { position:fixed; top:0; left:0; height:2px; background:linear-gradient(90deg,var(--accent-dim),var(--accent)); z-index:200; width:0%; transition:width .1s linear; box-shadow:0 0 12px rgba(var(--accent-rgb),.6); }

.hero-glow { position:absolute; top:6%; right:0; width:480px; height:480px; background:radial-gradient(circle, rgba(var(--accent-rgb),.16) 0%, transparent 70%); filter:blur(40px); pointer-events:none; animation:floatGlow 9s ease-in-out infinite; }

.terminal-wrap { position:relative; }

.problem-card { position:relative; overflow:hidden; transition:border-color .3s, transform .3s, box-shadow .3s; }
.problem-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, var(--accent), transparent); opacity:0; transition:opacity .3s; }
.problem-card:hover { border-color:var(--accent-dim); transform:translateY(-4px); box-shadow:0 16px 40px var(--shadow-a); }
.problem-card:hover::before { opacity:1; }
.problem-card:hover .problem-icon { transform:scale(1.08); }
.problem-icon { display:inline-block; transform-origin:left center; transition:transform .35s cubic-bezier(.34,1.56,.64,1); }

.btn-primary, .nav-cta { position:relative; overflow:hidden; }
.btn-primary::after, .nav-cta::after { content:''; position:absolute; top:0; left:-100%; width:100%; height:100%; background:linear-gradient(90deg, transparent, rgba(255,255,255,.2), transparent); transition:left .5s; }
.btn-primary:hover::after, .nav-cta:hover::after { left:100%; }

#mainNav { transition:padding .3s, background .3s, border-color .3s; }
#mainNav.scrolled { padding:12px 48px; background:var(--nav-bg-solid); }

#mainNav .nav-links a { position:relative; }
#mainNav .nav-links a::after { content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:var(--accent); transition:width .25s; }
#mainNav .nav-links a:hover::after, #mainNav .nav-links a.is-current::after { width:100%; }
#mainNav .nav-links a.is-current { color:var(--text); }

.hero h1 { animation:fadeUp .8s cubic-bezier(.16,1,.3,1) both; }
.hero-sub { animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .15s both; }
.hero-actions { animation:fadeUp .8s cubic-bezier(.16,1,.3,1) .3s both; }
.terminal-wrap { animation:fadeUp 1s cubic-bezier(.16,1,.3,1) .4s both; }

.page-legal { line-height:1.7; }
.page-legal main { padding-top:70px; }

#nav { position:fixed; top:0; left:0; right:0; z-index:100; background:var(--nav-bg); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--border); }
.nav-in { max-width:1120px; margin:0 auto; padding:16px 32px; display:flex; align-items:center; gap:28px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; flex-shrink:0; }
.brand img { width:36px; height:36px; object-fit:contain; display:block; }
.brand-txt { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:18px; color:var(--text); }
.brand-txt i { font-style:normal; color:var(--accent); }
#nav .nav-links { gap:22px; margin-left:8px; }
#nav .nav-links a { white-space:nowrap; }
.nav-right { margin-left:auto; flex-shrink:0; display:flex; align-items:center; gap:12px; }
.btn { display:inline-block; text-decoration:none; border-radius:var(--r); font-size:14px; font-weight:600; padding:10px 20px; transition:border-color .2s, color .2s, background .2s, transform .2s, box-shadow .2s; }
.back-short { display:none; }
.btn--ghost { background:transparent; color:var(--muted2); border:1px solid var(--border); }
.btn--ghost:hover { border-color:var(--muted); color:var(--text); transform:translateY(-2px); }

.legal-hero { position:relative; overflow:hidden; padding:76px 32px 60px; border-bottom:1px solid var(--border); background:linear-gradient(180deg, rgba(var(--accent-rgb),.05) 0%, transparent 70%); }
.legal-hero .in { max-width:1120px; margin:0 auto; position:relative; z-index:2; }
.legal-hero .glow { position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle, rgba(var(--accent-rgb),.14) 0%, transparent 65%); filter:blur(20px); pointer-events:none; z-index:1; }
.legal-hero .glow-a { top:-260px; right:-120px; }
.eyebrow { display:inline-block; font-family:'Space Mono',monospace; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.legal-hero h1 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(30px, 5vw, 46px); line-height:1.08; letter-spacing:-.5px; margin-bottom:18px; }
.legal-hero p { color:var(--muted2); max-width:680px; font-size:15px; }
.err { position:relative; z-index:2; min-height:100vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:120px 24px 70px; overflow:hidden; }
.err .hero-glow { top:50%; left:50%; right:auto; margin:-320px 0 0 -240px; z-index:0; }
.err-in { position:relative; z-index:1; width:100%; max-width:620px; display:flex; flex-direction:column; align-items:center; }
.err-code { display:flex; align-items:center; justify-content:center; gap:.06em; font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(96px,24vw,196px); line-height:1; letter-spacing:-.03em; color:var(--text); margin:8px 0 24px; font-variant-numeric:tabular-nums; transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)); transition:transform .3s ease-out; }
.err-digit { display:inline-block; min-width:.6em; text-shadow:0 0 44px rgba(var(--accent-rgb),.28); animation:riseIn .9s cubic-bezier(.16,1,.3,1) backwards; }
.err-digit:last-child { animation-delay:.24s; }
.err-radar { font:inherit; width:.8em; height:.8em; flex-shrink:0; padding:0; border:0; border-radius:50%; background:var(--bg); cursor:pointer; animation:hvPop .8s cubic-bezier(.34,1.56,.64,1) .12s backwards; transition:box-shadow .3s, transform .3s; }
.err-radar:hover { transform:scale(1.05); box-shadow:0 0 0 10px rgba(var(--accent-rgb),.10), 0 0 60px rgba(var(--accent-rgb),.35); }
.err-radar:focus-visible { outline:2px solid var(--accent); outline-offset:8px; }
.err-radar svg { display:block; width:100%; height:100%; overflow:visible; }
.err-radar .hv-ring { stroke:var(--muted); stroke-width:.8; }
.err-radar .hv-sweep { animation-duration:5s; }
.err-ring { fill:none; stroke:var(--accent); stroke-width:4; }
.err.scanning .err-radar .hv-sweep { animation-duration:.9s; }
.err.scanning .err-ring { animation:errPulse .9s ease-in-out infinite; }
@keyframes errPulse { 50% { stroke-opacity:.3; } }
.err-title { font-family:'Space Grotesk',sans-serif; font-size:clamp(24px,3.4vw,34px); font-weight:700; line-height:1.15; letter-spacing:-.5px; margin:10px 0 12px; animation:riseIn .8s cubic-bezier(.16,1,.3,1) .35s backwards; }
.err-sub { color:var(--muted2); font-size:15px; line-height:1.7; max-width:440px; animation:riseIn .8s cubic-bezier(.16,1,.3,1) .45s backwards; }
.err-term { width:100%; max-width:520px; margin-top:34px; text-align:left; }
.err-term .terminal-body { min-height:0; padding:22px 24px 24px; }
.err-hint { font-family:'Space Mono',monospace; font-size:11px; color:var(--muted2); margin-top:14px; }
.err-actions { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:30px; animation:riseIn .8s cubic-bezier(.16,1,.3,1) .6s backwards; }
.legal-hero .maj { color:var(--muted); font-size:13px; font-family:'Space Mono',monospace; margin-top:16px; }

.legal-wrap { max-width:820px; margin:0 auto; padding:54px 32px 90px; }
.legal-toc { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:26px 30px; margin-bottom:48px; }
.legal-toc b { display:block; font-family:'Space Grotesk',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--muted2); margin-bottom:16px; }
.legal-toc ol { list-style:none; counter-reset:toc; columns:2; column-gap:40px; }
.legal-toc li { counter-increment:toc; margin-bottom:10px; break-inside:avoid; }
.legal-toc li a { color:var(--muted2); text-decoration:none; font-size:14px; display:flex; gap:10px; transition:color .2s; }
.legal-toc li a::before { content:counter(toc, decimal-leading-zero); color:var(--accent); font-family:'Space Mono',monospace; font-size:12px; flex-shrink:0; }
.legal-toc li a:hover { color:var(--text); }
.legal-wrap h2 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:20px; letter-spacing:-.3px; color:var(--text); margin:44px 0 16px; padding-top:12px; scroll-margin-top:90px; border-top:1px solid var(--border); }
.legal-wrap h2:first-of-type { border-top:none; padding-top:0; }
.legal-wrap h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:16px; color:var(--text); margin:26px 0 10px; }
.legal-wrap p { color:var(--muted2); margin-bottom:14px; font-size:15px; }
.legal-wrap strong { color:var(--text); font-weight:600; }
.legal-wrap a:not(.btn) { color:var(--accent); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s; }
.legal-wrap a:not(.btn):hover { border-bottom-color:var(--accent); }
.legal-wrap ul, .legal-wrap ol { margin:0 0 16px 22px; color:var(--muted2); font-size:15px; }
.legal-wrap li { margin-bottom:8px; }
.legal-wrap table { width:100%; border-collapse:collapse; margin:8px 0 22px; background:var(--surface); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.legal-wrap th, .legal-wrap td { text-align:left; padding:13px 18px; font-size:14.5px; border-bottom:1px solid var(--border); vertical-align:top; }
.legal-wrap tr:last-child th, .legal-wrap tr:last-child td { border-bottom:none; }
.legal-wrap th { color:var(--muted2); font-weight:600; white-space:nowrap; width:210px; background:var(--th-bg); }
.legal-wrap td { color:var(--text); }
.legal-wrap .t-cols th { width:auto; white-space:normal; }

.page-legal footer { background:linear-gradient(180deg, transparent 0%, var(--fade-end) 100%); padding:60px 32px 30px; }
.page-legal .foot-grid, .page-legal .foot-legal { max-width:1120px; }

#totop { position:fixed; bottom:28px; right:28px; z-index:120; width:44px; height:44px; border-radius:12px; background:var(--surface); border:1px solid var(--border); color:var(--muted2); font-size:18px; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .3s, border-color .2s, color .2s, transform .2s; }
#totop.show { opacity:1; pointer-events:auto; }
#totop:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-3px); }

@media(max-width:1024px){
  .scope-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:900px){
  #mainNav, #mainNav.scrolled{padding:16px 20px;} #mainNav .nav-links{display:none;}
  .hero{grid-template-columns:1fr;padding:96px 22px 56px;gap:36px;}
  .hero h1{font-size:clamp(30px,8vw,44px);}
  .hero-sub{font-size:15px;max-width:none;}
  .hero-glow{width:300px;height:300px;right:-10%;}
  .stats-bar{padding:0 22px;}
  .stats-inner{grid-template-columns:1fr 1fr;}
  .stat{padding:34px 22px 30px;}
  .stat + .stat{border-left:0;}
  .stat:nth-child(even){border-left:1px solid var(--border);}
  .stat:nth-child(n+3){border-top:1px solid var(--border);}
  .stat:nth-child(odd){padding-left:0;}
  section{padding:56px 22px;}
  .section-title{font-size:clamp(24px,6vw,32px);}
  .problem-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:36px;}
  .how-steps{grid-template-columns:1fr;gap:40px;margin-top:36px;max-width:520px;margin-left:auto;margin-right:auto;}
  .how-rail{display:none;}
  .scope-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:36px;}
  .offer-flow{grid-template-columns:1fr;gap:14px;margin-top:36px;max-width:460px;margin-left:auto;margin-right:auto;}
  .offer-arrow{padding:2px 0;transform:rotate(90deg);}
  .nis2-inner{grid-template-columns:1fr;gap:40px;}
  footer{padding:44px 22px 24px;}
  .foot-grid{grid-template-columns:1fr 1fr;grid-template-areas:"marque marque" "service ressources" "legal ressources";gap:28px;align-items:start;}
  .foot-grid>:nth-child(1){grid-area:marque;} .foot-grid>:nth-child(2){grid-area:service;}
  .foot-grid>:nth-child(3){grid-area:ressources;} .foot-grid>:nth-child(4){grid-area:legal;}
  .foot-legal{flex-direction:column;gap:8px;}
}
@media(max-width:560px){
  #mainNav, #mainNav.scrolled{padding:14px 16px;}
  .logo-text{font-size:16px;}
  .nav-cta{padding:9px 14px;font-size:13px;gap:6px;}
  .cta-long{display:none;} .cta-short{display:inline;}
  .nav-actions{gap:8px;}
  .nav-logo{gap:8px;min-width:0;}
}
@media(max-width:400px){
  .terminal-body{font-size:10px;padding:18px 14px 22px;}
  .t-kv{gap:8px;}
  .t-kv .t-fill{min-width:4px;}
}
@media(max-width:380px){
  #mainNav, #mainNav.scrolled{padding:12px 12px;}
  .nav-cta{padding:9px 12px;}
  .nav-cta svg{display:none;}
}
@media(max-width:560px){
  .wizard{padding:28px 20px 24px;margin-top:32px;}
  .wizard-q{font-size:19px;}
  .sector-grid{grid-template-columns:1fr;}
  .wizard-nav{flex-wrap:wrap;}
  .wizard-nav .btn-primary{flex:1;text-align:center;}
  .hero{padding:88px 16px 48px;}
  .hero-actions{flex-direction:column;}
  .hero-actions a{width:100%;text-align:center;}
  .stats-bar{padding:0 16px;}
  .stat{padding:28px 14px 26px;}
  .stat-n{font-size:32px;letter-spacing:-1px;}
  .stat-k{font-size:9.5px;letter-spacing:1.6px;margin-bottom:16px;}
  .stat-l{font-size:13px;}
  .stat-src{font-size:9.5px;}
  .how-visual{height:164px;gap:16px;padding:16px;}
  .nis2-stats{grid-template-columns:1fr;}
  section{padding:48px 16px;}
  .scope-grid{grid-template-columns:1fr;}
  .terminal-body{font-size:11px;padding:20px 16px 24px;min-height:0;line-height:1.95;}
  .terminal-title{font-size:11px;}
  .faq-q{font-size:13px;padding:16px 18px;}
  .contact-actions{flex-direction:column;width:100%;max-width:320px;}
  .contact-actions .btn-ghost{width:100%;text-align:center;}
  .err{padding:100px 16px 50px;}
  .err-actions{flex-direction:column;width:100%;max-width:320px;}
  .err-actions a{width:100%;text-align:center;}
  .err-term .terminal-body{padding:18px 16px 20px;}
}

@media(max-width:820px){
  .legal-toc ol{columns:1;}
}
@media(max-width:640px){
  .nav-in{flex-wrap:wrap;gap:14px 20px;padding:14px 20px;}
  #nav .nav-links{order:3;width:100%;margin-left:0;overflow-x:auto;gap:18px;}
  .nav-right{margin-left:auto;gap:8px;}
  .nav-right .btn{padding:9px 12px;font-size:13px;}
  .legal-hero{padding:52px 20px 40px;}
  .legal-wrap{padding:40px 20px 70px;}
  .page-legal .foot-grid{grid-template-columns:1fr;grid-template-areas:"marque" "service" "ressources" "legal";gap:28px;}
  .page-legal .foot-legal{flex-direction:column;gap:8px;}
  .legal-wrap th{width:130px;white-space:normal;}
  .legal-wrap .t-cols{table-layout:fixed;}
  .legal-wrap .t-cols th, .legal-wrap .t-cols td{width:auto;padding:11px 10px;font-size:13px;line-height:1.5;overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto;}
}
@media(max-width:400px){
  .back-long{display:none;} .back-short{display:inline;}
  .brand-txt{font-size:16px;} .nav-in{gap:14px 12px;padding:14px 16px;}
  .legal-wrap table{table-layout:fixed;}
  .legal-wrap th, .legal-wrap td{padding:11px 10px;}
  .legal-wrap td{overflow-wrap:anywhere;}
  .legal-wrap th{width:124px;}
  .legal-wrap .t-cols th{width:auto;}
}

.scope-card:nth-child(1) .scope-rule { background:#3B82F6; }
.scope-card:nth-child(2) .scope-rule { background:var(--accent); }
.scope-card:nth-child(3) .scope-rule { background:#27AE60; }
.scope-card:nth-child(4) .scope-rule { background:#F1C40F; }
.scope-card:nth-child(5) .scope-rule { background:#3498DB; }
.scope-card:nth-child(6) .scope-rule { background:var(--high); }

[data-theme="light"] {
  --bg:#ECE6D9; --surface:#F2EDE2; --surface2:#E4DCCB;
  --border:#D3C9B5; --accent:#2F5F98; --accent-rgb:47,95,152; --accent-dim:#8FB0D6;
  --text:#1D2A3B; --muted:#525D70; --muted2:#4A586D;
  --crit:#AB3226; --crit-rgb:171,50,38; --high:#8F4A07; --low:#1D6E40;
  --nav-bg:rgba(236,230,217,.90); --nav-bg-solid:rgba(236,230,217,.97);
  --grid-line:rgba(29,42,59,.05); --shadow-a:rgba(40,52,72,.14);
  --fade-end:rgba(211,201,181,.6); --th-bg:rgba(29,42,59,.035);
  --term-shadow:rgba(40,52,72,.28);
  color-scheme:light;
}

[data-theme="light"] .terminal-wrap {
  --surface:#22262B; --surface2:#2A2F36; --border:#333840;
  --text:#C8CDD4; --muted:#8A93A0; --muted2:#9AA3AF;
  --accent:#7FB0E6; --crit:#E2766B; --high:#E6A04E; --low:#4CC485;
  border-color:#333840;
}

[data-theme="light"] .nav-logo, [data-theme="light"] .brand { position:relative; }
[data-theme="light"] .nav-logo::before, [data-theme="light"] .brand::before {
  content:''; position:absolute; left:0; top:50%; width:36px; height:36px; margin-top:-18px; border-radius:8px; background:#1F2C3F;
}
[data-theme="light"] .logo-img, [data-theme="light"] .brand img { position:relative; filter:hue-rotate(212deg) saturate(.85) brightness(1.25); }

[data-theme="light"] .global-grid-glow {
  background-image:linear-gradient(rgba(var(--accent-rgb),.42) 1px, transparent 1px),linear-gradient(90deg, rgba(var(--accent-rgb),.42) 1px, transparent 1px);
}
[data-theme="light"] .hero-glow { background:radial-gradient(circle, rgba(var(--accent-rgb),.20) 0%, transparent 70%); }
[data-theme="light"] .wizard-bar-fill { background:linear-gradient(90deg,#8FB0D6 0%,var(--accent) 100%); }
[data-theme="light"] .hv-pills span { border-color:rgba(29,110,64,.35); background:rgba(29,110,64,.10); }
[data-theme="light"] .hv-mods li::before { box-shadow:0 0 0 3px rgba(29,110,64,.16); }
[data-theme="light"] .how-rail::after { box-shadow:none; }
[data-theme="light"] .step-num { box-shadow:0 0 0 4px rgba(var(--accent-rgb),.10); }
[data-theme="light"] .scroll-progress { box-shadow:0 0 10px rgba(var(--accent-rgb),.4); }
[data-theme="light"] .offer-tag.free { background:rgba(29,110,64,.10); border-color:rgba(29,110,64,.35); }
[data-theme="light"] .problem-card, [data-theme="light"] .scope-card, [data-theme="light"] .offer-step,
[data-theme="light"] .faq-item, [data-theme="light"] .nis2-stat, [data-theme="light"] .wizard, [data-theme="light"] .how-visual { box-shadow:0 1px 2px rgba(40,52,72,.05); }

.theme-toggle {
  width:38px; height:38px; border-radius:50%;
  border:1px solid var(--border);
  background:var(--surface);
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  color:var(--muted2);
  transition:border-color .2s, color .2s, background .2s;
  flex-shrink:0;
}
.theme-toggle:hover { border-color:var(--accent); color:var(--accent); }
.theme-toggle svg { width:16px; height:16px; pointer-events:none; }
.icon-sun { display:none; }
.icon-moon { display:block; }
[data-theme="light"] .icon-sun { display:block; }
[data-theme="light"] .icon-moon { display:none; }
.theme-toggle:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
