:root {
  --bg: #05070c;
  --panel: rgba(9, 15, 25, .90);
  --panel-2: rgba(14, 23, 38, .92);
  --line: rgba(113, 204, 255, .28);
  --text: #f3f8ff;
  --muted: #a9b8c9;
  --cyan: #54d8ff;
  --blue: #5a8cff;
  --orange: #ff9e4a;
  --red: #ff5e68;
  --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: linear-gradient(rgba(2,5,10,.66), rgba(2,5,10,.86)), url('assets/images/star-background.png') center top / cover fixed;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
}
body::before { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 50% -10%, rgba(56,135,255,.18), transparent 44%); z-index:-1; }
a { color: inherit; }
.site-header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1rem clamp(1.2rem,4vw,4.5rem); background:rgba(3,7,13,.84); border-bottom:1px solid var(--line); backdrop-filter:blur(16px); }
.brand,.footer-brand { display:flex; align-items:center; gap:.75rem; color:white; font-weight:900; letter-spacing:.14em; text-decoration:none; }
.brand-mark { width:11px; height:28px; border-radius:3px; background:linear-gradient(var(--cyan),var(--blue)); box-shadow:0 0 18px var(--cyan); }
nav { display:flex; flex-wrap:wrap; gap:1.25rem; }
nav a { color:var(--muted); font-size:.86rem; font-weight:700; letter-spacing:.06em; text-decoration:none; text-transform:uppercase; }
nav a:hover { color:var(--cyan); }
main { width:min(1380px, calc(100% - 2rem)); margin:auto; }
.hero { min-height:76vh; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr); gap:clamp(2rem,7vw,7rem); align-items:center; padding:clamp(5rem,9vw,9rem) clamp(0rem,3vw,3rem); }
.eyebrow { margin:0 0 .65rem; color:var(--cyan); font-size:.78rem; font-weight:900; letter-spacing:.22em; text-transform:uppercase; }
h1,h2 { margin:0; line-height:1.02; text-transform:uppercase; letter-spacing:-.04em; }
h1 { font-size:clamp(3rem,7vw,7.5rem); max-width:900px; }
h1 span { color:transparent; -webkit-text-stroke:1px rgba(122,218,255,.95); text-shadow:0 0 30px rgba(56,172,255,.24); }
h2 { font-size:clamp(2rem,4.3vw,4.4rem); }
.intro,.section-intro { max-width:760px; color:var(--muted); font-size:clamp(1rem,1.5vw,1.2rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.button { padding:.9rem 1.25rem; border-radius:7px; font-weight:850; text-decoration:none; text-transform:uppercase; letter-spacing:.05em; }
.primary { background:linear-gradient(115deg,var(--cyan),var(--blue)); color:#06101b; }
.secondary { border:1px solid var(--line); background:rgba(7,13,22,.7); }
.project-summary { display:grid; gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--line); box-shadow:0 25px 80px rgba(0,0,0,.35); }
.project-summary div { display:grid; gap:.2rem; padding:1.25rem 1.4rem; background:var(--panel); }
.project-summary span { color:var(--orange); font-size:.72rem; font-weight:900; letter-spacing:.18em; }
.project-summary strong { font-size:1.05rem; }
.content-section { margin:0 0 5rem; padding:clamp(1.5rem,4vw,4rem); border:1px solid var(--line); border-radius:24px; background:linear-gradient(145deg,rgba(10,18,30,.96),rgba(5,9,16,.91)); box-shadow:0 30px 100px rgba(0,0,0,.28); scroll-margin-top:95px; }
.section-heading { display:flex; align-items:flex-start; gap:1.25rem; margin-bottom:2rem; }
.section-number { margin:.3rem 0 0; color:var(--orange); font-weight:900; font-size:1rem; letter-spacing:.12em; }
.video-shell { position:relative; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#010205; }
.video-shell iframe { width:100%; height:100%; border:0; position:relative; z-index:2; }
.video-placeholder { position:absolute; inset:0; display:grid; place-content:center; text-align:center; color:var(--muted); background:radial-gradient(circle,rgba(21,55,83,.55),rgba(2,5,10,.95)); }
.play-icon { width:72px; height:72px; display:grid; place-items:center; margin:auto; padding-left:5px; border:1px solid var(--cyan); border-radius:50%; color:var(--cyan); font-size:1.8rem; box-shadow:0 0 35px rgba(84,216,255,.2); }
.video-placeholder p { font-weight:900; letter-spacing:.12em; }
.diagram-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.diagram-card { margin:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel-2); }
.image-open { position:relative; width:100%; padding:0; border:0; cursor:zoom-in; background:#fff; }
.image-open img { display:block; width:100%; aspect-ratio:1.3/1; object-fit:contain; }
.zoom-label { position:absolute; right:1rem; bottom:1rem; padding:.55rem .75rem; border-radius:6px; background:rgba(3,8,14,.86); color:white; font-size:.78rem; font-weight:800; text-transform:uppercase; }
.diagram-card figcaption { display:grid; gap:.35rem; padding:1.25rem; }
.diagram-card figcaption strong { font-size:1.15rem; }
.diagram-card figcaption span { color:var(--muted); }
.parts-summary { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:1.5rem; }
.parts-summary>p { max-width:720px; color:var(--muted); }
.total { min-width:230px; text-align:right; }
.total span,.total small { display:block; color:var(--muted); font-size:.72rem; font-weight:850; letter-spacing:.12em; }
.total strong { display:block; color:var(--cyan); font-size:2.5rem; }
.table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); }
table { width:100%; border-collapse:collapse; background:rgba(2,6,12,.5); }
th,td { padding:1rem 1.1rem; text-align:left; border-bottom:1px solid rgba(113,204,255,.14); }
th { color:var(--cyan); background:rgba(43,102,150,.14); font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; }
tbody tr:hover { background:rgba(84,216,255,.045); }
.price { white-space:nowrap; color:var(--orange); font-weight:850; }
.buy-link { white-space:nowrap; color:var(--cyan); font-weight:800; text-decoration:none; }
.error-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; padding:0; list-style:none; counter-reset:errors; }
.error-grid li { display:grid; grid-template-columns:110px 1fr; gap:1rem; padding:1rem 1.15rem; border:1px solid rgba(113,204,255,.16); border-radius:10px; background:rgba(4,9,16,.65); }
.error-grid strong { color:var(--red); }
.error-grid span { color:var(--muted); }
.download-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.download-card { min-height:180px; display:flex; flex-direction:column; justify-content:flex-end; padding:1.35rem; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(145deg,rgba(30,72,104,.22),rgba(4,8,14,.8)); text-decoration:none; }
.download-card span { width:max-content; margin-bottom:auto; padding:.35rem .55rem; border-radius:5px; background:var(--orange); color:#1c0e02; font-size:.72rem; font-weight:950; }
.download-card strong { font-size:1.2rem; }
.download-card small { color:var(--muted); }
footer { width:min(1380px,calc(100% - 2rem)); margin:0 auto 2rem; padding:2rem 0; display:flex; justify-content:space-between; gap:2rem; border-top:1px solid var(--line); color:var(--muted); }
footer p { max-width:730px; margin:0; font-size:.86rem; }
.lightbox { position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:4rem 1rem 2rem; background:rgba(0,0,0,.94); }
.lightbox.open { display:grid; }
.lightbox img { max-width:96vw; max-height:84vh; object-fit:contain; background:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.18),0 20px 100px #000; }
.lightbox p { margin:.75rem 0 0; color:#ccd6e2; }
.lightbox-close { position:absolute; top:1rem; right:1.25rem; width:48px; height:48px; border:1px solid var(--line); border-radius:50%; background:#09111c; color:white; font-size:2rem; cursor:pointer; }
@media (max-width:900px) {
  .site-header { align-items:flex-start; }
  nav { display:none; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:5rem 0; }
  .project-summary { grid-template-columns:repeat(2,1fr); }
  .diagram-grid,.download-grid { grid-template-columns:1fr; }
  .error-grid { grid-template-columns:1fr; }
  .parts-summary,footer { align-items:flex-start; flex-direction:column; }
  .total { text-align:left; }
}
@media (max-width:540px) {
  main { width:min(100% - 1rem,1380px); }
  .site-header { padding:.85rem 1rem; }
  .brand { font-size:.83rem; }
  .content-section { padding:1.15rem; border-radius:16px; }
  .project-summary { grid-template-columns:1fr; }
  .error-grid li { grid-template-columns:1fr; gap:.25rem; }
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.brand-logo {
  width: 42px;
  height: 42px;
  object-fit: contain;
  display: block;
}


/* Arduino Nano code agreement modal */
.code-download-card {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.code-download-card:hover,
.code-download-card:focus-visible {
  border-color: var(--cyan);
  background: linear-gradient(145deg, rgba(30, 92, 130, .34), rgba(4, 8, 14, .9));
}
.license-modal {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: none;
  place-items: center;
  padding: 1rem;
  background: rgba(0, 0, 0, .92);
}
.license-modal.open { display: grid; }
.license-dialog {
  width: min(820px, 100%);
  max-height: calc(100vh - 2rem);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #08101b;
  box-shadow: 0 30px 120px #000;
}
.license-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}
.license-header h2 { font-size: clamp(1.7rem, 4vw, 3rem); }
.license-close {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #0d1826;
  color: white;
  font-size: 1.8rem;
  cursor: pointer;
}
.license-scroll {
  min-height: 220px;
  max-height: 44vh;
  overflow-y: auto;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(113, 204, 255, .2);
  border-radius: 10px;
  background: rgba(2, 6, 12, .72);
  color: var(--muted);
}
.license-scroll h3 {
  margin: 1.35rem 0 .35rem;
  color: var(--cyan);
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.license-scroll p { margin: .5rem 0; }
.license-end {
  margin-top: 2rem !important;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--text);
}
.scroll-notice {
  margin: 0;
  color: var(--orange);
  font-size: .9rem;
}
.agreement-check {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  color: var(--text);
  font-weight: 700;
}
.agreement-check input {
  width: 1.2rem;
  height: 1.2rem;
  margin-top: .15rem;
  accent-color: var(--cyan);
}
.license-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .75rem;
}
.license-actions .button { border: 0; cursor: pointer; }
.license-actions .secondary { border: 1px solid var(--line); color: var(--text); }
.license-actions button:disabled {
  cursor: not-allowed;
  opacity: .42;
}
@media (max-width: 540px) {
  .license-dialog { padding: 1rem; }
  .license-scroll { max-height: 42vh; padding: .85rem; }
  .license-actions { display: grid; grid-template-columns: 1fr; }
  .license-actions .button { width: 100%; }
}
