/* FirewallX — home page */

.h-hero { padding: clamp(28px, 6vw, 72px) 0 24px; }
.h-hero__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
@media (max-width: 980px) { .h-hero__grid { grid-template-columns: 1fr; } }

.h-offer {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px 7px 12px;
  border-radius: 999px;
  border: 1px solid rgba(127, 208, 255, 0.3);
  background: var(--ice-wash);
  color: #c9ecff;
  font-size: var(--s-sm);
  font-weight: 500;
  transition: border-color 0.2s;
}
.h-offer:hover { border-color: var(--ice); }

.h-title {
  margin-top: 22px;
  font-size: var(--s-4xl);
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.035em;
  font-variation-settings: "opsz" 96;
  max-width: 14ch;
  text-wrap: balance;
}
html[lang="ar"] .h-title { line-height: 1.22; letter-spacing: 0; max-width: 14ch; font-weight: 700; }
.h-lead { margin-top: 22px; font-size: var(--s-lg); color: var(--mist); max-width: 58ch; }
.h-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.h-note { margin-top: 16px; font-size: var(--s-sm); color: var(--steel); max-width: 52ch; padding-inline-start: 12px; border-inline-start: 2px solid var(--fire); }

/* ---- The wall ---- */
.h-wall {
  margin: 0;
  border-radius: var(--r-xl);
  border: 1px solid var(--line-2);
  background: linear-gradient(180deg, rgba(15, 22, 38, 0.9), rgba(6, 9, 18, 0.9));
  box-shadow: var(--shadow);
  overflow: hidden;
}
.h-wall__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--line); font-size: var(--s-sm); font-weight: 600; flex-wrap: wrap; }
.h-wall__stage { position: relative; height: 300px; }
.h-wall__stage canvas { width: 100%; height: 100%; }
.h-wall__side { position: absolute; top: 12px; font-size: 11px; color: var(--steel); }
.h-wall__side--in { inset-inline-start: 18px; color: var(--ice); }
.h-wall__side--out { inset-inline-end: 18px; color: var(--fire-2); }
.h-wall__log {
  list-style: none;
  margin: 0;
  padding: 12px 18px 16px;
  border-top: 1px solid var(--line);
  display: grid;
  gap: 6px;
  min-height: 132px;
  align-content: start;
  font-family: var(--f-mono);
  font-size: 12px;
  color: var(--mist);
}
html[lang="ar"] .h-wall__log { font-family: var(--f-body); font-size: 13px; }
.h-wall__log li { display: flex; gap: 10px; align-items: baseline; animation: hLog 0.45s var(--ease); }
.h-wall__log li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--steel); flex: none; transform: translateY(-1px); }
.h-wall__log li.is-fire { color: #ffc2bb; }
.h-wall__log li.is-fire::before { background: var(--fire); }
.h-wall__log li.is-ice { color: #cfeeff; }
.h-wall__log li.is-ice::before { background: var(--ice); }
.h-wall__log time { color: var(--steel); flex: none; font-family: var(--f-mono); font-size: 11px; }
@keyframes hLog { from { opacity: 0; transform: translateY(-6px); } }

/* ---- Live stats ---- */
.h-stats { margin-top: clamp(40px, 6vw, 72px); border-top: 1px solid var(--line); padding-top: 22px; }
.h-stats__cap { display: flex; align-items: center; gap: 10px; color: var(--steel); font-size: var(--s-sm); }
.h-stats__row { display: grid; grid-template-columns: repeat(3, 1fr); margin: 18px 0 0; }
.h-stats__row > div { padding-inline-end: 24px; }
.h-stats__row > div + div { padding-inline-start: 24px; border-inline-start: 1px solid var(--line); }
.h-stats dt { font-size: var(--s-sm); color: var(--mist); }
.h-stats dd { margin: 4px 0 0; font-family: var(--f-display); font-size: clamp(2rem, 4.4vw, 3.4rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; font-variant-numeric: tabular-nums; }
.h-stats dd.is-fire { color: #ff8f84; }
.h-stats dd.is-ice { color: var(--ice); }
@media (max-width: 640px) {
  .h-stats__row { grid-template-columns: 1fr; gap: 16px; }
  .h-stats__row > div + div { padding-inline-start: 0; border-inline-start: 0; border-top: 1px solid var(--line); padding-top: 16px; }
}

/* ---- Sections ---- */
.h-sec { padding: clamp(64px, 10vw, 120px) 0 0; scroll-margin-top: 72px; }
.h-sec--end { padding-bottom: 40px; }
.h-head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
.h-h2 { font-size: var(--s-3xl); font-weight: 650; letter-spacing: -0.03em; text-wrap: balance; }
html[lang="ar"] .h-h2 { letter-spacing: 0; }
.h-p { margin-top: 14px; color: var(--mist); font-size: var(--s-lg); max-width: 64ch; }

/* ---- Matrix ---- */
.h-matrix { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: rgba(10, 15, 27, 0.6); }
.h-group { padding: 18px 16px 20px; border-inline-end: 1px solid var(--line); }
.h-group:nth-child(5) { border-inline-end: 0; }
.h-group h3 { font-family: var(--f-body); font-size: var(--s-sm); font-weight: 600; color: var(--steel); margin-bottom: 14px; min-height: 2.6em; }
.h-group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.h-cell {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.015);
  transition: background 0.5s var(--ease), border-color 0.5s var(--ease);
}
.h-cell__n { font-size: var(--s-sm); font-weight: 500; line-height: 1.35; }
.h-cell code { grid-column: 1; font-size: 10.5px; color: var(--steel); overflow-wrap: anywhere; }
.h-lim {
  grid-row: 1 / span 2;
  grid-column: 2;
  align-self: center;
  display: inline-grid;
  place-items: center;
  min-width: 28px;
  height: 28px;
  border-radius: 8px;
  font-family: var(--f-mono);
  font-weight: 500;
  font-size: 13px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--mist);
  transition: background 0.5s, color 0.5s;
}
.h-cell.is-hit { background: var(--fire-wash); border-color: rgba(255, 75, 58, 0.55); }
.h-cell.is-hit .h-lim { background: var(--fire); color: #fff; }
.h-cell.is-held { background: var(--ice-wash); border-color: rgba(127, 208, 255, 0.35); }
.h-cell.is-held .h-lim { background: rgba(127, 208, 255, 0.18); color: var(--ice); }
.h-matrix__legend { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-top: 1px solid var(--line); font-size: var(--s-xs); color: var(--steel); margin: 0; }
.h-matrix__legend .h-lim { grid-row: auto; height: 22px; min-width: 22px; font-size: 11px; }
@media (max-width: 1080px) {
  .h-matrix { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .h-group { border-bottom: 1px solid var(--line); }
  .h-group:nth-child(2n) { border-inline-end: 0; }
  .h-group h3 { min-height: 0; }
}
@media (max-width: 600px) { .h-matrix { grid-template-columns: 1fr; } .h-group { border-inline-end: 0; } }

.h-response { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; margin-top: 16px; }
@media (max-width: 860px) { .h-response { grid-template-columns: 1fr; } }
.h-pun, .h-restore { border-radius: var(--r-lg); border: 1px solid var(--line); padding: 22px; background: rgba(10, 15, 27, 0.6); }
.h-pun h3, .h-restore h3 { font-size: var(--s-lg); }
.h-pun ul { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 640px) { .h-pun ul { grid-template-columns: 1fr 1fr; } }
.h-pun li { padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--line); }
.h-pun b { display: block; font-weight: 600; color: #ffb9b1; }
.h-pun span { display: block; font-size: var(--s-xs); color: var(--steel); margin-top: 4px; line-height: 1.45; }
.h-restore { background: linear-gradient(160deg, rgba(127, 208, 255, 0.12), rgba(10, 15, 27, 0.6) 60%); border-color: rgba(127, 208, 255, 0.25); }
.h-restore svg { width: 30px; height: 30px; color: var(--ice); margin-bottom: 14px; }
.h-restore p { margin-top: 8px; color: var(--mist); font-size: var(--s-sm); }

/* ---- Bento ---- */
.h-bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.h-card { position: relative; overflow: hidden; padding: 24px; border-radius: var(--r-lg); border: 1px solid var(--line); background: rgba(10, 15, 27, 0.6); }
.h-card h3 { font-size: var(--s-xl); }
.h-card p { margin-top: 10px; color: var(--mist); font-size: var(--s-sm); max-width: 60ch; }
.h-card .h-fact { color: var(--bone); font-weight: 500; padding-top: 14px; margin-top: 16px; border-top: 1px solid var(--line); }
.h-card--raid { grid-column: span 4; }
.h-card--spam { grid-column: span 2; grid-row: span 2; }
.h-card--swear { grid-column: span 2; }
.h-card--ver { grid-column: span 2; }
.h-card--log { grid-column: span 6; display: grid; grid-template-columns: auto 1fr; gap: 6px 24px; align-items: baseline; }
.h-card--log p { margin-top: 0; }
@media (max-width: 980px) {
  .h-bento { grid-template-columns: 1fr 1fr; }
  .h-card--raid, .h-card--log { grid-column: span 2; }
  .h-card--spam { grid-column: span 1; grid-row: span 2; }
  .h-card--swear, .h-card--ver { grid-column: span 1; }
}
@media (max-width: 640px) {
  .h-bento { grid-template-columns: 1fr; }
  .h-bento > * { grid-column: auto !important; grid-row: auto !important; }
  .h-card--log { grid-template-columns: 1fr; }
}

.h-joins { display: flex; gap: 6px; margin-top: 22px; align-items: flex-end; height: 44px; }
.h-joins i { flex: 1; border-radius: 4px; background: rgba(127, 208, 255, 0.25); height: 30%; }
.h-joins i:nth-child(2) { height: 22%; } .h-joins i:nth-child(3) { height: 35%; } .h-joins i:nth-child(4) { height: 26%; }
.h-joins i:nth-child(5) { height: 40%; }
.h-joins i:nth-child(n + 6) { background: rgba(255, 75, 58, 0.55); }
.h-joins i:nth-child(6) { height: 70%; } .h-joins i:nth-child(7) { height: 100%; } .h-joins i:nth-child(8) { height: 92%; }
.h-joins i:nth-child(9) { height: 80%; } .h-joins i:nth-child(10) { height: 64%; }

.h-checks { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 0; }
.h-checks li { padding: 9px 0; border-top: 1px solid var(--line); font-size: var(--s-sm); display: flex; align-items: center; gap: 10px; }
.h-checks li::before { content: ""; width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid var(--ice); background: linear-gradient(var(--ice), var(--ice)) center / 6px 6px no-repeat; flex: none; }

.h-modes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.h-modes span { font-size: var(--s-xs); padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--mist); }

/* ---- Steps ---- */
.h-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; position: relative; }
.h-steps::before { content: ""; position: absolute; top: 19px; inset-inline: 20px; height: 1px; background: linear-gradient(90deg, var(--fire), var(--amber), var(--ice)); opacity: 0.6; }
html[dir="rtl"] .h-steps::before { background: linear-gradient(-90deg, var(--fire), var(--amber), var(--ice)); }
.h-steps li { position: relative; padding-inline-end: 28px; }
.h-steps__n { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--abyss); border: 1px solid var(--line-2); font-family: var(--f-display); font-weight: 700; margin-bottom: 20px; position: relative; }
.h-steps li:nth-child(1) .h-steps__n { border-color: var(--fire); color: var(--fire); }
.h-steps li:nth-child(2) .h-steps__n { border-color: var(--amber); color: var(--amber); }
.h-steps li:nth-child(3) .h-steps__n { border-color: var(--ice); color: var(--ice); }
.h-steps h3 { font-size: var(--s-lg); }
.h-steps p { margin-top: 8px; color: var(--mist); font-size: var(--s-sm); max-width: 38ch; }
@media (max-width: 760px) {
  .h-steps { grid-template-columns: 1fr; gap: 28px; }
  .h-steps::before { top: 20px; bottom: 20px; inset-inline-start: 19px; inset-inline-end: auto; width: 1px; height: auto; background: linear-gradient(var(--fire), var(--amber), var(--ice)); }
  .h-steps li { padding-inline-start: 60px; }
  .h-steps__n { position: absolute; inset-inline-start: 0; top: 0; }
}

/* ---- Commands ---- */
.h-cmd, .h-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr); gap: clamp(24px, 5vw, 72px); align-items: start; }
.h-head--side { position: sticky; top: 100px; margin-bottom: 0; }
@media (max-width: 900px) { .h-cmd, .h-faq { grid-template-columns: 1fr; } .h-head--side { position: static; } }
.h-cmd__list { margin: 0; border-top: 1px solid var(--line); }
.h-cmd__list > div { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.h-cmd__list dt { font-family: var(--f-mono); color: var(--ice); font-size: var(--s-sm); direction: ltr; text-align: start; }
.h-cmd__list dd { margin: 0; color: var(--mist); font-size: var(--s-sm); }
@media (max-width: 520px) { .h-cmd__list > div { grid-template-columns: 1fr; gap: 2px; } }

/* ---- FAQ ---- */
.h-faq__list { border-top: 1px solid var(--line); }
.h-faq__list details { border-bottom: 1px solid var(--line); }
.h-faq__list summary { list-style: none; cursor: pointer; padding: 20px 0; font-weight: 600; font-size: var(--s-lg); display: flex; justify-content: space-between; gap: 16px; }
.h-faq__list summary::-webkit-details-marker { display: none; }
.h-faq__list summary::after { content: "+"; font-weight: 400; color: var(--steel); font-size: 1.4em; line-height: 0.9; transition: transform 0.3s var(--ease); }
.h-faq__list details[open] summary::after { transform: rotate(45deg); color: var(--ice); }
.h-faq__list p { padding: 0 0 22px; color: var(--mist); max-width: 66ch; }

/* ---- Support + final ---- */
.h-support { display: grid; grid-template-columns: auto 1fr auto; gap: 20px; align-items: center; padding: 22px 24px; border-radius: var(--r-lg); border: 1px solid rgba(88, 101, 242, 0.4); background: rgba(88, 101, 242, 0.08); }
.h-support > svg { width: 40px; height: 40px; color: #8c96ff; }
.h-support h3 { font-size: var(--s-lg); }
.h-support p { color: var(--mist); font-size: var(--s-sm); margin-top: 4px; }
@media (max-width: 700px) { .h-support { grid-template-columns: 1fr; } }

.h-final { text-align: center; padding: clamp(64px, 9vw, 112px) 0 24px; display: grid; justify-items: center; }
.h-final img { width: 84px; height: 84px; border-radius: 50%; margin-bottom: 26px; box-shadow: -18px 0 50px -10px rgba(61, 155, 255, 0.55), 18px 0 50px -10px rgba(255, 75, 58, 0.5); }
.h-final .h-h2 { max-width: 18ch; }
.h-final .h-p { margin-inline: auto; }
.h-final .h-cta { justify-content: center; }
