/* ============================================================
   CERTMESA / Shared stylesheet
   Used by: index, privacy, imprint, contact, certs/*.html
   ============================================================ */

/* ---------- Theme tokens ---------- */
:root, [data-theme="dark"]{
  --bg:        #0a0908;
  --bg-2:      #121110;
  --surface:   #16140f;
  --ink:       #ede5d3;
  --ink-2:     #c8c0ad;
  --ink-dim:   #7a7263;
  --line:      rgba(237,229,211,0.09);
  --line-2:    rgba(237,229,211,0.18);
  --accent:    #e23636;
  --accent-2:  #ff5a4a;
  --good:      #7eb87a;
  --good-bg:   rgba(126,184,122,0.10);
  --bad:       #d44a48;
  --warn:      #d9a23c;
  --grid:      rgba(237,229,211,0.04);
  --tog-active-bg: var(--ink);
  --tog-active-fg: var(--bg);
}
[data-theme="light"]{
  --bg:        #f7f4ec;
  --bg-2:      #f1ede1;
  --surface:   #ffffff;
  --ink:       #14171d;
  --ink-2:     #4a4943;
  --ink-dim:   #8a8780;
  --line:      rgba(20,23,29,0.10);
  --line-2:    rgba(20,23,29,0.18);
  --accent:    #c2261d;
  --accent-2:  #e23636;
  --good:      #4a7c4f;
  --good-bg:   rgba(74,124,79,0.08);
  --bad:       #b22a28;
  --warn:      #a37418;
  --grid:      rgba(20,23,29,0.05);
  --tog-active-bg: var(--ink);
  --tog-active-fg: var(--bg);
}

/* ---------- Reset + base ---------- */
*{box-sizing:border-box; margin:0; padding:0;}
html,body{
  background:var(--bg); color:var(--ink);
  font-family:'Inter', -apple-system, sans-serif;
  font-size:15px; line-height:1.6; min-height:100vh;
  -webkit-font-smoothing:antialiased;
  background-image: radial-gradient(circle, var(--grid) 1px, transparent 1px);
  background-size: 28px 28px;
  background-position: -1px -1px;
  transition: background-color .25s ease, color .25s ease;
}
::selection{ background:var(--accent); color:var(--bg);}
a{ color:inherit; text-decoration:none;}
button{ font:inherit; color:inherit;}

/* ---------- Type ---------- */
.display-1{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size: clamp(38px, 6vw, 78px);
  line-height:1.05;
  letter-spacing:-0.035em;
  color:var(--ink);
}
.display-1 .accent{ color:var(--accent); font-weight:700;}
.display-1 .br{ color:var(--ink-dim); font-weight:400;}
.display-2{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size: clamp(28px, 3.6vw, 42px);
  line-height:1.15;
  letter-spacing:-0.025em;
}
.display-3{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size: 22px;
  line-height:1.25;
  letter-spacing:-0.015em;
}
.lede{
  font-family:'Inter', sans-serif;
  font-weight:300;
  font-size: clamp(16px, 1.6vw, 19px);
  line-height:1.6;
  color:var(--ink-2);
}
.section-marker{
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:500;
  letter-spacing:0.14em;
  color:var(--ink-dim);
  display:flex; align-items:center; gap:14px;
  margin-bottom: 20px;
}
.section-marker::before{
  content:""; display:inline-block;
  width:24px; height:1px; background:var(--ink-dim);
}

/* ---------- Layout ---------- */
.frame{ max-width:1180px; margin:0 auto; padding:0 32px;}
section{ padding: 80px 0;}
section + section{ padding-top:0;}

/* ---------- Header (shared) ---------- */
header.top{
  padding: 28px 0 0;
  position:sticky; top:0; z-index:10;
  background:var(--bg);
  background-image: radial-gradient(circle, var(--grid) 1px, transparent 1px);
  background-size: 28px 28px;
}
.nav{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:20px; border-bottom:1px solid var(--line);
}
.brand{
  display:flex; align-items:center; gap:12px;
  font-family:'JetBrains Mono', monospace;
  font-size:17px; font-weight:600; letter-spacing:-0.02em;
  color:var(--ink);
}
.brand .mark{
  width:22px; height:22px;
  background:var(--accent); color:#fff;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:10px; font-weight:700;
}
.brand .pulse{
  width:8px; height:8px; background:var(--accent);
  border-radius:50%;
  box-shadow: 0 0 0 3px rgba(226,54,54,0.18);
  animation: pulse 2.4s ease-in-out infinite;
  margin-left:4px;
}
@keyframes pulse{ 50%{ box-shadow: 0 0 0 6px rgba(226,54,54,0);}}

.brand-logo[data-variant="light"] { display: block; }
.brand-logo[data-variant="dark"]  { display: none; }
[data-theme="dark"] .brand-logo[data-variant="light"] { display: none; }
[data-theme="dark"] .brand-logo[data-variant="dark"]  { display: block; }

.nav-right{
  display:flex; align-items:center; gap:24px;
  font-family:'JetBrains Mono', monospace;
  font-size:12px; font-weight:500;
  color:var(--ink-2);
  letter-spacing:0.02em;
}
.nav-right a.nav-link{ transition:color .15s;}
.nav-right a.nav-link:hover{ color:var(--accent);}
.nav-right a.nav-link::before{ content:"// "; color:var(--ink-dim); font-weight:400;}

.theme-toggle{
  display:flex; gap:0;
  border:1px solid var(--line-2);
}
.theme-tog{
  background:transparent;
  border:none;
  color:var(--ink-dim);
  padding: 6px 12px;
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:500;
  letter-spacing:0.1em;
  cursor:pointer;
  transition: all .15s;
}
.theme-tog:hover{ color:var(--ink-2);}
.theme-tog.active{
  background:var(--tog-active-bg);
  color:var(--tog-active-fg);
}
.theme-tog + .theme-tog{ border-left:1px solid var(--line-2);}

/* ---------- Footer (shared) ---------- */
footer.bot{
  padding: 40px 0 32px;
  border-top:1px solid var(--line-2);
}
.foot{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:24px;
  font-family:'JetBrains Mono', monospace;
  font-size:11px; color:var(--ink-dim);
  letter-spacing:0.04em;
}
.foot .build{ display:flex; gap:18px; flex-wrap:wrap;}
.foot .build .sep{ color: var(--line-2);}
.foot .build .k{ color: var(--ink-dim);}
.foot .build .v{ color: var(--ink-2);}
.foot .links{ display:flex; gap:22px;}
.foot .links a:hover{ color:var(--accent);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:14px;
  padding: 14px 22px;
  background:var(--accent); color:#fff;
  font-family:'JetBrains Mono', monospace;
  font-size:13px; font-weight:500;
  letter-spacing:0.04em;
  border:1px solid var(--accent); cursor:pointer;
  border-radius:0;
  transition: all .18s ease;
}
.btn:hover{ background:var(--accent-2); border-color:var(--accent-2); transform:translateY(-1px);}
.btn .arrow{ transition: transform .18s;}
.btn:hover .arrow{ transform:translateX(4px);}
.btn.ghost{
  background:transparent; color:var(--ink);
  border:1px solid var(--line-2);
}
.btn.ghost:hover{ background:var(--surface); color:var(--accent); border-color:var(--accent); transform:none;}

/* ============================================================
   LANDING-SPECIFIC (index.html)
   ============================================================ */
.hero{ padding-top: 88px; padding-bottom: 56px;}
.hero h1{ margin-bottom: 36px; max-width: 22ch;}
.hero .lede{ max-width: 60ch; margin-bottom: 44px;}
.hero-cta{
  display:flex; gap:16px; align-items:center; flex-wrap:wrap;
  margin-bottom: 72px;
}
.hero-stats{
  display:grid; grid-template-columns: repeat(4, 1fr);
  border:1px solid var(--line);
  background: var(--surface);
}
.hero-stats .stat{
  padding:24px 22px;
  border-right:1px solid var(--line);
}
.hero-stats .stat:last-child{ border-right:none;}
.hero-stats .stat .idx{
  font-family:'JetBrains Mono', monospace;
  font-size:10px; color:var(--ink-dim);
  letter-spacing:0.12em;
  margin-bottom: 12px;
}
.hero-stats .stat .n{
  font-family:'JetBrains Mono', monospace;
  font-weight:700; font-size:36px;
  line-height:1; letter-spacing:-0.04em;
  color:var(--ink); margin-bottom:8px;
}
.hero-stats .stat .n .unit{
  font-size:0.5em; color:var(--ink-dim); margin-left:4px; font-weight:500;
}
.hero-stats .stat .l{
  font-family:'Inter', sans-serif;
  font-size:12px; font-weight:400;
  color:var(--ink-2);
}

.how{ padding: 64px 0;}
.how-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom: 48px; gap:32px; flex-wrap:wrap;}
.how-head .lede{ max-width: 42ch;}
.how-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:0;
  border:1px solid var(--line); background:var(--surface);
}
.how-step{
  padding: 32px 28px;
  border-right:1px solid var(--line);
  position: relative;
}
.how-step:last-child{ border-right:none;}
.how-step::before{
  content:""; position:absolute;
  top:-1px; left:-1px; width:10px; height:10px;
  border-top:1px solid var(--accent);
  border-left:1px solid var(--accent);
}
.how-step .idx{
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:500;
  letter-spacing:0.14em; color:var(--accent);
  margin-bottom:18px;
}
.how-step h3{
  font-family:'Inter', sans-serif;
  font-weight:600; font-size:19px;
  line-height:1.3;
  margin-bottom:14px; letter-spacing:-0.015em;
}
.how-step p{
  color:var(--ink-2); font-size:14px; line-height:1.6;
  font-family:'Inter', sans-serif;
}

.cats{ padding: 64px 0 96px;}
.cats-head{ margin-bottom: 36px;}
.cats-head h2{ max-width: 18ch; margin-bottom: 16px;}
.cats-head .lede{ max-width: 56ch;}
.chips{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-top: 32px;
  margin-bottom: 48px;
}
.chip{
  background:var(--surface);
  border:1px solid var(--line-2);
  padding: 10px 16px;
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:500;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ink-dim);
  cursor:pointer;
  transition: all .15s;
  white-space:nowrap;
}
.chip:hover{ color:var(--ink); border-color:var(--ink-dim);}
.chip.active{
  background:var(--accent); color:#fff;
  border-color:var(--accent);
}
.chip .count{
  margin-left:8px;
  font-size:10px;
  color:var(--ink-dim);
  font-weight:400;
}
.chip.active .count{ color:rgba(255,255,255,0.7);}
.chip:hover .count{ color: var(--ink-2);}

.vendor{
  padding: 44px 0;
  border-top:1px solid var(--line-2);
}
.vendor.last-visible{ border-bottom:1px solid var(--line-2);}
.vendor-head{
  display:grid;
  grid-template-columns: 240px 1fr;
  gap: 48px; align-items:flex-start;
  margin-bottom: 28px;
}
.vendor-name{
  font-family:'Inter', sans-serif;
  font-size:26px; font-weight:700;
  letter-spacing:-0.02em;
}
.vendor-name .num{
  display:block;
  font-family:'JetBrains Mono', monospace;
  font-size:11px; font-weight:400;
  color:var(--ink-dim);
  margin-top:8px; letter-spacing:0.08em;
}
.vendor-blurb{
  color:var(--ink-2);
  font-size:14px; line-height:1.65;
  max-width: 60ch;
  font-family:'Inter', sans-serif;
}

.cert-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.cert{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:0;
  padding: 24px;
  display:flex; flex-direction:column;
  transition: all .2s ease;
  position:relative;
  min-height: 240px;
  text-align:left;
}
.cert::before{
  content:""; position:absolute;
  top:-1px; right:-1px; width:8px; height:8px;
  border-top:1px solid var(--line-2);
  border-right:1px solid var(--line-2);
  transition: border-color .2s;
}
.cert.available{ cursor:pointer;}
.cert.available:hover{
  border-color: var(--accent);
  transform: translateY(-2px);
}
.cert.available:hover::before{ border-color: var(--accent);}
.cert.soon{ opacity: 0.7; background: var(--bg-2);}
.cert .card-idx{
  position:absolute; top:12px; right:14px;
  font-family:'JetBrains Mono', monospace;
  font-size:10px; color:var(--ink-dim);
  letter-spacing:0.12em;
}
.cert .head{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom: 14px; padding-right: 36px;
}
.cert .code{
  font-family:'JetBrains Mono', monospace;
  font-size:17px; font-weight:700;
  letter-spacing:0.02em;
  color:var(--accent);
}
.cert .status{
  font-family:'JetBrains Mono', monospace;
  font-size:10px; font-weight:500;
  letter-spacing:0.14em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:7px;
  margin-bottom: 14px;
}
.cert .status .sq{ width:8px; height:8px; display:inline-block;}
.cert .status.available{ color: var(--good);}
.cert .status.available .sq{ background: var(--good);}
.cert .status.soon{ color: var(--ink-dim);}
.cert .status.soon .sq{ border:1px solid var(--ink-dim);}
.cert .name{
  font-family:'Inter', sans-serif;
  font-size: 17px;
  line-height: 1.3;
  font-weight:600;
  letter-spacing:-0.015em;
  margin-bottom: 12px;
}
.cert .desc{
  font-family:'Inter', sans-serif;
  font-size: 13px; line-height: 1.55;
  color: var(--ink-2);
  margin-bottom: 18px;
  flex: 1;
}
.cert .meta{
  font-family:'JetBrains Mono', monospace;
  font-size: 10px;
  color: var(--ink-dim);
  display:flex; gap: 12px; flex-wrap:wrap;
  padding-top: 12px;
  border-top:1px dashed var(--line-2);
  letter-spacing:0.04em;
}
.cert .meta .k{ color: var(--ink-dim);}
.cert .meta .v{ color: var(--ink-2); font-weight:500;}
.cert .meta .sep{ color: var(--line-2);}
.cert .cta{
  margin-top: 14px;
  font-family:'JetBrains Mono', monospace;
  font-size: 12px; font-weight:500;
  color: var(--accent);
  display:flex; align-items:center; gap:8px;
  letter-spacing:0.06em;
  transition: gap .15s;
}
.cert.available:hover .cta{ gap:14px;}
.cert.soon .cta{ color:var(--ink-dim);}

/* ============================================================
   QUIZ-SPECIFIC (certs/*.html)
   ============================================================ */
.quiz-frame{ max-width:980px; margin:0 auto; padding: 32px 28px 80px;}

.view{ display:none; animation: fadeIn .35s ease;}
.view.active{ display:block;}
@keyframes fadeIn{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:translateY(0);}}

/* Quiz home view */
.q-hero{ padding:24px 0 8px;}
.q-kicker{
  font-size:11px; letter-spacing:0.32em; text-transform:uppercase;
  color:var(--accent); margin-bottom:24px;
  font-family:'JetBrains Mono', monospace; font-weight:500;
}
.q-title{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size: clamp(42px, 7vw, 90px);
  line-height:0.95;
  letter-spacing:-0.035em;
  margin-bottom:16px;
}
.q-title em{
  font-weight:700; color:var(--accent);
  font-style:normal;
}
.q-sub{
  font-family:'Inter', sans-serif;
  font-size: clamp(18px, 2vw, 22px);
  color:var(--ink-2);
  margin-bottom:16px; max-width:640px;
  line-height:1.5; font-weight:300;
}

.q-meta{
  font-family:'JetBrains Mono', monospace;
  font-size:11px; letter-spacing:0.12em;
  color:var(--ink-dim); text-transform:uppercase;
  margin-bottom:48px;
}
.q-meta:empty{ display:none;}

.q-stats{
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-bottom:48px;
}
.q-stats.q-stats-3{ grid-template-columns:repeat(3, 1fr);}
.q-stats .stat{ padding:22px 24px; border-right:1px solid var(--line);}
.q-stats .stat:last-child{ border-right:none;}
.q-stats .stat .n{
  font-family:'JetBrains Mono', monospace;
  font-size:34px; font-weight:700; line-height:1;
  letter-spacing:-0.03em;
}
.q-stats .stat .l{
  font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-dim); margin-top:8px;
  font-family:'JetBrains Mono', monospace;
}

/* ---------- Session length selector ---------- */
.q-length{ margin-bottom:48px;}
.q-length-label{
  font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-dim); margin-bottom:14px;
  font-family:'JetBrains Mono', monospace;
}
.length-selector{
  display:inline-flex; gap:0;
  border:1px solid var(--line-2);
}
.length-tog{
  background:transparent;
  border:none;
  color:var(--ink-dim);
  padding: 10px 22px;
  font-family:'JetBrains Mono', monospace;
  font-size:13px; font-weight:500;
  letter-spacing:0.08em;
  cursor:pointer;
  transition: color 0.15s, background 0.15s;
}
.length-tog:hover{ color:var(--ink-2);}
.length-tog.active{
  background:var(--tog-active-bg);
  color:var(--tog-active-fg);
}
.length-tog + .length-tog{ border-left:1px solid var(--line-2);}

.q-domains{ margin-bottom:56px;}
.q-domains h2{
  font-size:11px; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--ink-dim); margin-bottom:20px; font-weight:500;
  font-family:'JetBrains Mono', monospace;
}
.domain-list{
  display:grid; grid-template-columns:repeat(2,1fr); gap:0;
  border-top:1px solid var(--line);
}
.domain-list .row{
  display:flex; justify-content:space-between; padding:14px 18px 14px 0;
  border-bottom:1px solid var(--line);
  font-size:13px;
  font-family:'JetBrains Mono', monospace;
}
.domain-list .row:nth-child(odd){ border-right:1px solid var(--line); padding-right:18px;}
.domain-list .row:nth-child(even){ padding-left:18px;}
.domain-list .row .num{ color:var(--accent); margin-right:14px; font-weight:600;}
.domain-list .row .name{ flex:1; color:var(--ink-2);}
.domain-list .row .cnt{ color:var(--ink-dim); font-size:11px;}

/* Quiz test view */
.test-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom: 32px; padding-bottom:18px; border-bottom:1px solid var(--line);
}
.qcounter{
  font-family:'JetBrains Mono', monospace;
  font-size:54px; line-height:1; font-weight:700;
  letter-spacing:-0.04em;
}
.qcounter span.of{ color:var(--ink-dim); font-size:32px; font-weight:400;}
.qcounter span.cur{ color:var(--accent);}
.progress-label{
  font-size:10px; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--ink-dim); margin-top:8px;
  font-family:'JetBrains Mono', monospace; font-weight:500;
}
.progress-bar{
  height:2px; background:var(--line); margin-top:12px; position:relative;
}
.progress-bar .fill{
  height:100%; background:var(--accent); transition: width .35s cubic-bezier(.4,0,.2,1);
}
.domain-tag{
  display:inline-block; padding:6px 12px; border:1px solid var(--line-2);
  font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-2);
  font-family:'JetBrains Mono', monospace; font-weight:500;
}

.question{
  font-family:'Inter', sans-serif;
  font-weight:500;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height:1.45;
  margin: 32px 0 36px;
  letter-spacing:-0.01em;
}
.options{ display:flex; flex-direction:column; gap:12px;}
.opt{
  display:flex; gap:18px; align-items:flex-start;
  padding:18px 22px;
  border:1px solid var(--line-2);
  background:var(--surface);
  cursor:pointer; transition: all .15s ease;
  text-align:left;
  color:var(--ink-2);
  font-family:'Inter', sans-serif;
  font-size:14px; line-height:1.5;
}
.opt:hover{ border-color:var(--ink-dim); color:var(--ink); background:var(--bg-2);}
.opt .letter{
  font-family:'JetBrains Mono', monospace;
  font-size:18px; font-weight:700; color:var(--accent);
  line-height:1; min-width:24px; padding-top:2px;
}
.opt.selected{
  border-color:var(--accent);
  background: var(--good-bg);
  color:var(--ink);
}
[data-theme="dark"] .opt.selected{ background:rgba(226,54,54,0.10);}
.opt.selected .letter{ color:var(--accent-2);}

.test-foot{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:48px; padding-top:24px; border-top:1px solid var(--line);
}
.quit{
  background:none; border:none; color:var(--ink-dim);
  font-family:'JetBrains Mono', monospace; font-size:11px;
  letter-spacing:0.2em; text-transform:uppercase; cursor:pointer; font-weight:500;
}
.quit:hover{ color:var(--accent);}
.next-disabled{ opacity:0.3; pointer-events:none;}

/* Quiz results view */
.verdict{
  text-align:left; padding:32px 0 24px;
  border-bottom:1px solid var(--line); margin-bottom:40px;
}
.verdict .label{
  font-size:11px; letter-spacing:0.32em; text-transform:uppercase;
  margin-bottom:18px; font-family:'JetBrains Mono', monospace; font-weight:500;
}
.pass .label{ color:var(--good);}
.fail .label{ color:var(--accent);}
.score{
  font-family:'JetBrains Mono', monospace;
  font-size: clamp(80px, 16vw, 180px);
  font-weight:700; line-height:0.9;
  letter-spacing:-0.05em;
  display:flex; align-items:baseline; gap:16px;
}
.pass .score .num{ color:var(--good);}
.fail .score .num{ color:var(--accent);}
.score .pct{
  font-size:0.4em; color:var(--ink-dim); font-weight:400;
}
.verdict .summary{
  font-family:'Inter', sans-serif; font-style:italic;
  font-size: clamp(16px, 1.8vw, 20px);
  color:var(--ink-2); margin-top:18px; max-width:680px;
  line-height:1.5; font-weight:300;
}

.review-head{
  display:flex; justify-content:space-between; align-items:flex-end;
  margin: 12px 0 24px;
}
.review-head h3{
  font-family:'Inter', sans-serif; font-weight:700;
  font-size:24px; letter-spacing:-0.015em;
}
.review-head .legend{
  font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-dim); display:flex; gap:18px;
  font-family:'JetBrains Mono', monospace; font-weight:500;
}
.review-head .legend span{ display:flex; align-items:center; gap:6px;}
.review-head .legend .swatch{ width:10px; height:10px;}

.review-item{
  border:1px solid var(--line);
  background:var(--surface);
  margin-bottom:14px;
  padding:24px 28px;
  position:relative;
}
.review-item.correct{ border-left:3px solid var(--good);}
.review-item.wrong{ border-left:3px solid var(--bad);}
.review-item .tag-row{
  display:flex; justify-content:space-between; align-items:center;
  font-size:10px; letter-spacing:0.2em; text-transform:uppercase;
  color:var(--ink-dim); margin-bottom:14px;
  font-family:'JetBrains Mono', monospace; font-weight:500;
}
.review-item .tag-row .verdict-tag.correct{ color:var(--good);}
.review-item .tag-row .verdict-tag.wrong{ color:var(--bad);}
.review-item .q{
  font-family:'Inter', sans-serif;
  font-size:17px; line-height:1.55;
  margin-bottom:18px; font-weight:500;
}
.review-item .ans-line{
  font-size:13px; padding:8px 0; display:flex; gap:14px;
  border-top:1px dashed var(--line);
  font-family:'Inter', sans-serif;
}
.review-item .ans-line .lbl{
  color:var(--ink-dim); min-width:120px;
  font-size:10px; letter-spacing:0.18em; text-transform:uppercase;
  padding-top:3px;
  font-family:'JetBrains Mono', monospace; font-weight:500;
}
.review-item .ans-line .val{ color:var(--ink-2); flex:1;}
.review-item .ans-line.correct-ans .val{ color:var(--good);}
.review-item .ans-line.user-wrong .val{ color:var(--bad);}
.review-item .explanation{
  margin-top:18px; padding-top:16px; border-top:1px solid var(--line);
  font-family:'Inter', sans-serif; font-style:italic;
  font-size:14px; line-height:1.6; color:var(--ink-2);
}
.review-item .explanation::before{
  content:"// "; color:var(--accent); font-style:normal;
  font-family:'JetBrains Mono', monospace; font-size:12px;
}

.end-actions{
  display:flex; gap:16px; margin-top:40px; padding-top:32px;
  border-top:1px solid var(--line);
}

/* ============================================================
   PROSE PAGES (privacy, imprint, contact)
   ============================================================ */
.prose-page{ padding: 88px 0 96px;}
.prose-page .lede{ max-width: 64ch; margin-bottom: 48px;}
.prose{
  max-width: 68ch;
  font-family:'Inter', sans-serif;
  font-size: 15px; line-height: 1.7;
  color: var(--ink-2);
}
.prose h2{
  font-family:'Inter', sans-serif;
  font-weight:700; font-size:22px;
  letter-spacing:-0.015em;
  color: var(--ink);
  margin: 40px 0 16px;
}
.prose h2:first-child{ margin-top:0;}
.prose p{ margin-bottom: 16px;}
.prose p strong{ color: var(--ink); font-weight:500;}
.prose ul{ margin: 12px 0 20px; padding-left: 0; list-style:none;}
.prose ul li{
  padding: 8px 0 8px 22px;
  position:relative;
  border-bottom:1px dashed var(--line);
}
.prose ul li:last-child{ border-bottom:none;}
.prose ul li::before{
  content: ""; position:absolute;
  top: 17px; left: 0;
  width: 8px; height: 1px; background: var(--accent);
}
.prose code, .prose .mono{
  font-family:'JetBrains Mono', monospace;
  font-size: 13px;
  background: var(--bg-2);
  padding: 2px 6px;
  border: 1px solid var(--line);
  color: var(--ink);
}
.prose a{
  color: var(--accent);
  border-bottom:1px solid var(--accent);
  transition: opacity .15s;
}
.prose a:hover{ opacity:0.7;}

.contact-block{
  margin-top: 32px;
  padding: 28px 32px;
  border: 1px solid var(--line-2);
  background: var(--surface);
  font-family: 'JetBrains Mono', monospace;
}
.contact-block .label{
  font-size: 11px;
  color: var(--ink-dim);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.contact-block .email{
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.contact-block .email .at{ color: var(--accent);}
.contact-block .note{
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: var(--ink-dim);
  margin-top: 14px;
  font-weight: 400;
}

/* ============================================================
   MOBILE
   ============================================================ */
@media (max-width: 900px){
  .frame{ padding: 0 22px;}
  section{ padding: 56px 0;}
  .hero{ padding-top: 48px;}
  .hero h1{ max-width:none;}
  .hero-cta{ margin-bottom: 40px;}
  .hero-stats{ grid-template-columns: repeat(2, 1fr);}
  .hero-stats .stat:nth-child(2){ border-right:none;}
  .hero-stats .stat:nth-child(1), .hero-stats .stat:nth-child(2){ border-bottom:1px solid var(--line);}
  .how-grid{ grid-template-columns: 1fr;}
  .how-step{ border-right:none; border-bottom:1px solid var(--line);}
  .how-step:last-child{ border-bottom:none;}
  .vendor-head{ grid-template-columns: 1fr; gap: 12px;}
  .cert-grid{ grid-template-columns: 1fr;}
  .nav-right{ gap: 12px;}
  .nav-right .nav-link{ display:none;}
  .foot{ font-size:10px;}

  .quiz-frame{ padding: 20px 18px 60px;}
  .q-stats{ grid-template-columns: repeat(2, 1fr);}
  .q-stats.q-stats-3{ grid-template-columns: repeat(3, 1fr);}
  .q-stats .stat{ padding: 18px 16px;}
  .q-stats .stat:nth-child(2){ border-right:none;}
  .q-stats.q-stats-3 .stat:nth-child(2){ border-right:1px solid var(--line);}
  .q-stats.q-stats-3 .stat:nth-child(3){ border-right:none;}
  .q-stats .stat .n{ font-size:26px;}
  .length-selector{ flex-wrap:wrap; }
  .length-tog{ padding: 10px 18px; font-size:12px;}
  .domain-list{ grid-template-columns: 1fr;}
  .domain-list .row:nth-child(odd){ border-right:none; padding-right:0;}
  .domain-list .row:nth-child(even){ padding-left:0;}
  .test-head{ flex-direction:column; align-items:flex-start; gap:14px;}
  .domain-tag{ align-self:flex-start;}
  .end-actions{ flex-direction:column;}
}
