/* ============================================================
   TOEIC ENGINE — 首頁專用樣式（index.html only）
   ============================================================ */

nav.top{
  border-bottom:1px solid var(--line-strong);
  position:sticky; top:0; z-index:20;
  background:rgba(238,240,234,.92);
  backdrop-filter:blur(4px);
}
nav.top .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:58px; max-width:1080px;
}
.logo{
  font-family:"IBM Plex Mono", monospace;
  font-weight:600;
  font-size:15px;
  letter-spacing:.08em;
  display:flex; align-items:center; gap:8px;
}
.logo .led{
  width:8px; height:8px; border-radius:50%;
  background:var(--spark);
  box-shadow:0 0 0 3px var(--spark-bg);
}
nav.top .navlinks{
  display:flex; gap:22px;
  font-size:13px;
  font-family:"IBM Plex Mono", monospace;
  color:var(--ink-soft);
}
nav.top .navlinks a{text-decoration:none;}
nav.top .navlinks a:hover{color:var(--ink);}

/* ---------------- hero ---------------- */
header.hero{padding:64px 0 40px; border-bottom:1px solid var(--line-strong);}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:40px;
  align-items:center;
}
@media (max-width:860px){ .hero-grid{grid-template-columns:1fr;} }

h1{
  font-size:44px;
  font-weight:900;
  letter-spacing:.01em;
  margin:14px 0 14px;
  font-family:"IBM Plex Mono", monospace;
}
h1 span{color:var(--spark);}
.hero p.lead{
  font-size:16px;
  color:var(--ink-soft);
  max-width:46ch;
  margin:0 0 26px;
}
.gauge{
  display:flex; align-items:center; gap:14px;
  margin-bottom:26px;
}
.gauge .track{
  flex:1; height:6px; background:var(--paper-2);
  border:1px solid var(--line-strong);
  position:relative;
}
.gauge .track i{
  display:block; height:100%;
  background:var(--spark);
  width:16.6%;
}
.gauge .label{
  font-family:"IBM Plex Mono", monospace;
  font-size:12px; color:var(--ink-soft); white-space:nowrap;
}

/* ---------------- engine schematic (signature visual) ---------------- */
.schematic{
  border:1px solid var(--line-strong);
  background:var(--card);
  padding:18px;
}
.schematic svg{width:100%; height:auto; display:block;}
.schematic-cap{
  font-family:"IBM Plex Mono", monospace;
  font-size:11px; color:var(--ink-soft);
  text-align:center; margin-top:10px; letter-spacing:.04em;
}
.node{cursor:pointer;}
.node rect{transition:filter .15s ease;}
.node:hover rect{filter:brightness(1.06);}

/* ---------------- modules section ---------------- */
section.modules{padding:56px 0 70px;}
.modules h2{
  font-size:20px; font-weight:900; margin:0 0 6px;
}
.modules .lead{color:var(--ink-soft); font-size:14px; margin:0 0 28px;}

.grid6{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}
@media (max-width:860px){ .grid6{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .grid6{grid-template-columns:1fr;} }

.mod-card{
  border:1px solid var(--line-strong);
  background:var(--card);
  padding:18px 18px 16px;
  display:flex; flex-direction:column;
  min-height:210px;
  position:relative;
}
.mod-card::before{
  content:"";
  position:absolute; top:8px; left:8px;
  width:6px; height:6px;
  border-top:1.5px solid var(--line-strong);
  border-left:1.5px solid var(--line-strong);
}
.mod-card .m-num{
  font-family:"IBM Plex Mono", monospace;
  font-size:11px; color:var(--ink-soft); letter-spacing:.06em;
}
.mod-card .m-title{
  font-size:16.5px; font-weight:700; margin:8px 0 8px;
}
.mod-card .m-desc{
  font-size:13px; color:var(--ink-soft); flex:1; margin:0 0 14px;
}
.mod-card .status{margin-bottom:12px;}

.m-action{
  font-family:"IBM Plex Mono", monospace;
  font-size:12.5px; font-weight:600;
  text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
}
.m-action.live-link{color:var(--spark);}
.m-action.live-link:hover{text-decoration:underline;}
.m-action.disabled{color:var(--line-strong); cursor:default;}
.mod-card.is-dev{opacity:.72;}
