/* ═══════════════════════════════════════════════════════════
   NoCap+ Editorial Design System
   Dark editorial magazine + neon green accent
═══════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Surface */
  --bg:#0a0a0a;
  --bg2:#121212;
  --bg3:#1a1a1a;
  --bg-warm:#1c1813;
  --cream:#ECE5D7;
  --paper:#F5F0E8;

  /* Brand */
  --green:#B5F23D;
  --green-dim:rgba(181,242,61,.12);
  --green-glow:rgba(181,242,61,.22);
  --green-deep:#7FB322;

  /* Text */
  --white:#FAFAF7;
  --ink:#FAFAF7;
  --muted:rgba(250,250,247,.55);
  --muted2:rgba(250,250,247,.32);
  --faint:rgba(250,250,247,.18);

  /* Borders */
  --border:rgba(250,250,247,.08);
  --border2:rgba(250,250,247,.14);
  --rule:rgba(250,250,247,.20);

  /* Verdicts */
  --red:#FF453A;
  --yellow:#FFD60A;
  --orange:#FF9F0A;

  /* Type */
  --font-display:'Instrument Serif',Georgia,serif;
  --font-sans:'Inter',-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;

  /* Type scale */
  --t-eyebrow:11px;
  --t-caption:12px;
  --t-body:15px;
  --t-lead:18px;
  --t-h6:18px;
  --t-h5:22px;
  --t-h4:28px;
  --t-h3:clamp(28px,3.2vw,40px);
  --t-h2:clamp(40px,5vw,64px);
  --t-h1:clamp(56px,8vw,108px);
  --t-display:clamp(72px,11vw,160px);

  /* Spacing */
  --space-xs:8px;
  --space-sm:14px;
  --space-md:24px;
  --space-lg:40px;
  --space-xl:64px;
  --space-section:clamp(64px,10vw,120px);
}

html,body{
  font-family:var(--font-sans);
  background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  font-feature-settings:'cv11','ss01','ss03';
  min-height:100vh;
}

::selection{background:var(--green);color:#0a0a0a;}

a{color:inherit;text-decoration:none;}
button{font-family:inherit;}

/* Editorial Type Utilities */
.ed-display{font-family:var(--font-display);font-weight:400;letter-spacing:-0.02em;line-height:0.92;font-size:var(--t-display);}
.ed-h1{font-family:var(--font-display);font-weight:400;letter-spacing:-0.015em;line-height:0.96;font-size:var(--t-h1);}
.ed-h2{font-family:var(--font-display);font-weight:400;letter-spacing:-0.01em;line-height:1.02;font-size:var(--t-h2);}
.ed-h3{font-family:var(--font-display);font-weight:400;letter-spacing:-0.008em;line-height:1.05;font-size:var(--t-h3);}
.ed-h4{font-family:var(--font-display);font-weight:400;letter-spacing:-0.005em;line-height:1.1;font-size:var(--t-h4);}
.ed-italic{font-family:var(--font-display);font-style:italic;font-weight:400;}
.ed-eyebrow{font-family:var(--font-mono);font-size:var(--t-eyebrow);font-weight:500;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);}
.ed-caption{font-family:var(--font-mono);font-size:var(--t-caption);letter-spacing:0.06em;color:var(--muted);}
.ed-rule{height:1px;background:var(--rule);width:100%;border:0;margin:24px 0;}
.ed-tag{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--rule);border-radius:2px;color:var(--ink);}
.ed-tag--accent{background:var(--green);color:#0a0a0a;border-color:var(--green);}

/* ── Top Bar (shared masthead) ── */
.ed-topbar{
  position:sticky;top:0;left:0;right:0;z-index:400;
  height:64px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;
  background:rgba(10,10,10,.78);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--rule);
}
.ed-tb-logo{display:flex;align-items:center;height:32px;}
.ed-tb-logo img{height:28px;width:auto;display:block;}
.ed-tb-nav{display:flex;align-items:center;gap:0;border:1px solid var(--rule);}
.ed-tb-nav a,.ed-tb-nav button{
  background:none;border:none;cursor:pointer;
  font-family:var(--font-mono);font-size:11px;font-weight:500;
  color:var(--muted);padding:9px 16px;
  letter-spacing:0.14em;text-transform:uppercase;
  transition:all .15s;text-decoration:none;
}
.ed-tb-nav a:hover,.ed-tb-nav button:hover{color:var(--ink);background:rgba(250,250,247,.04);}
.ed-tb-nav a.active{background:var(--green);color:#0a0a0a;}
.ed-tb-right{display:flex;align-items:center;gap:12px;}

/* ── Container ── */
.ed-container{
  max-width:1200px;margin:0 auto;
  padding:0 24px;
}
.ed-narrow{max-width:680px;margin:0 auto;padding:0 24px;}

/* ── Form (editorial input) ── */
.ed-form{display:flex;flex-direction:column;gap:24px;}
.ed-field{display:flex;flex-direction:column;gap:8px;}
.ed-label{
  font-family:var(--font-mono);font-size:10px;font-weight:500;
  color:var(--muted);
  letter-spacing:0.18em;text-transform:uppercase;
}
.ed-input{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--rule);
  border-radius:0;
  color:var(--ink);font-family:var(--font-sans);
  font-size:18px;font-weight:400;
  padding:12px 0;
  outline:none;
  transition:border-color .2s;
  letter-spacing:-0.01em;
}
.ed-input:focus{border-bottom-color:var(--green);}
.ed-input::placeholder{color:var(--muted2);font-family:var(--font-display);font-style:italic;}

/* ── Buttons ── */
.ed-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--ink);
  color:var(--bg);
  border:1px solid var(--ink);
  border-radius:0;
  padding:14px 28px;
  font-family:var(--font-mono);font-size:11px;font-weight:600;
  letter-spacing:0.18em;text-transform:uppercase;
  cursor:pointer;
  transition:all .15s;
}
.ed-btn:hover{background:transparent;color:var(--ink);}
.ed-btn--primary{background:var(--green);border-color:var(--green);color:#0a0a0a;}
.ed-btn--primary:hover{background:transparent;color:var(--green);}
.ed-btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule);}
.ed-btn--ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink);}
.ed-btn--lg{padding:18px 40px;font-size:12px;}
.ed-btn--full{width:100%;}

/* ── Page Header ── */
.ed-page-header{
  padding:64px 0 48px;
  border-bottom:1px solid var(--rule);
  margin-bottom:48px;
}
.ed-page-eyebrow{margin-bottom:16px;}
.ed-page-title{
  font-family:var(--font-display);
  font-size:clamp(48px,7vw,88px);
  font-weight:400;line-height:0.96;
  letter-spacing:-0.018em;
  margin-bottom:16px;
}
.ed-page-lead{
  font-family:var(--font-display);
  font-style:italic;
  font-size:clamp(20px,2.5vw,28px);
  color:var(--muted);
  line-height:1.4;
  max-width:60ch;
}

/* ── Cards (editorial) ── */
.ed-card{
  border:1px solid var(--rule);
  padding:32px;
  background:rgba(250,250,247,.01);
}
.ed-card-eyebrow{margin-bottom:16px;}
.ed-card-title{
  font-family:var(--font-display);
  font-size:28px;font-weight:400;
  line-height:1.05;letter-spacing:-0.012em;
  margin-bottom:12px;
}
.ed-card-body{font-size:15px;line-height:1.6;color:var(--muted);}

/* ── Footer ── */
.ed-footer{
  margin-top:120px;
  padding:64px 24px 32px;
  border-top:1px solid var(--rule);
  background:var(--bg);
}
.ed-footer-grid{
  max-width:1200px;margin:0 auto;
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;
  margin-bottom:48px;
}
@media(max-width:768px){.ed-footer-grid{grid-template-columns:1fr 1fr;gap:32px;}}
@media(max-width:480px){.ed-footer-grid{grid-template-columns:1fr;}}
.ed-footer-brand img{height:32px;margin-bottom:16px;}
.ed-footer-tagline{
  font-family:var(--font-display);
  font-style:italic;
  font-size:18px;color:var(--muted);
  max-width:32ch;line-height:1.5;
}
.ed-footer-col h4{
  font-family:var(--font-mono);
  font-size:10px;font-weight:500;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--muted);
  margin-bottom:16px;
}
.ed-footer-col a{
  display:block;
  color:var(--ink);
  font-size:14px;line-height:2;
  transition:color .15s;
}
.ed-footer-col a:hover{color:var(--green);}
.ed-footer-bottom{
  max-width:1200px;margin:0 auto;
  padding-top:32px;
  border-top:1px solid var(--rule);
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-mono);font-size:11px;
  color:var(--muted);letter-spacing:0.06em;
}
.ed-footer-bottom-links{display:flex;gap:24px;}
.ed-footer-bottom-links a{color:var(--muted);}
.ed-footer-bottom-links a:hover{color:var(--ink);}

/* Loading spinner */
.ed-spinner{
  display:inline-block;
  width:14px;height:14px;
  border:1.5px solid var(--rule);
  border-top-color:var(--green);
  border-radius:50%;
  animation:edspin .8s linear infinite;
}
@keyframes edspin{to{transform:rotate(360deg);}}

/* Alerts */
.ed-alert{
  padding:14px 16px;
  border:1px solid var(--rule);
  font-size:13px;
  color:var(--ink);
  display:flex;align-items:flex-start;gap:10px;
}
.ed-alert--error{border-color:rgba(255,69,58,.4);background:rgba(255,69,58,.06);color:#FF6B61;}
.ed-alert--success{border-color:rgba(181,242,61,.4);background:var(--green-dim);color:var(--green);}
