/* ============================================================
   MODULE — Silver marketing site
   Depends on tokens.css. Monochrome-metallic theme built around
   the silver capsule mark. Self-contained; does not touch site.css.
   ============================================================ */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--surface-base);
  color: var(--fg-1);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
a { color: inherit; }
img { max-width: 100%; display: block; }

/* ---- silver palette (local) ---- */
:root {
  --silver-hi:  #F8FAFC;
  --silver-2:   #DBE2EC;
  --silver-mid: #8C99AE;
  --silver-lo:  #5B6779;
  --silver-line: rgba(180,196,220,0.16);
  --silver-grad: linear-gradient(150deg, #F8FAFC 0%, #C3CCDA 36%, #8C99AE 60%, #DBE2EC 100%);
}

/* faint metallic grid, fading down from the top */
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(180,196,220,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(180,196,220,0.05) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 90% 50% at 50% 0%, #000 18%, transparent 72%);
}

.wrap { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-6); position: relative; z-index: 1; }
.eyebrow { font-family: var(--font-body); font-weight: 600; font-size: var(--t-caption); letter-spacing: var(--t-eyebrow-ls); text-transform: uppercase; color: var(--silver-mid); }

/* ---------- Mark + wordmark ---------- */
.mark-wrap { line-height: 0; display: inline-block; }
.mark-wrap svg { display: block; }
.word {
  font-family: var(--font-display); font-weight: 300; letter-spacing: 0.22em;
  white-space: nowrap; line-height: 1; text-indent: 0.22em;
  background: var(--silver-grad);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ---------- Animated spoke mark (silver) ---------- */
.mark .stalk, .mark .cap { fill: none; stroke: var(--spoke); stroke-width: 2.1; stroke-linecap: round; }
.mark .node { fill: var(--dot); }
.mark .cap.brk { stroke: var(--brk); }
.mark .node.brk { fill: var(--brkdot); }
.mark .trail { fill: var(--brk); }
.mark .bloom-in { stop-color:#fff; stop-opacity:.95; }
.mark .bloom-mid { stop-color: var(--core2); stop-opacity:.5; }
.mark .bloom-out { stop-color: var(--core2); stop-opacity:0; }
.mark .ci-0 { stop-color:#fff; } .mark .ci-1 { stop-color: var(--core2); } .mark .ci-2 { stop-color: var(--core2); stop-opacity:.2; }
.mark.flat .bloom { opacity:.72; }
.mark.animated .bloom { animation: corePulse 3.4s ease-in-out infinite; transform-box: fill-box; transform-origin:center; }
.mark.animated .drift { animation: drift 4.2s ease-in-out infinite; }
.mark.animated .trail { animation: trail 2.6s ease-in-out infinite; }
.mark.animated .trail.t2 { animation-delay:.18s; } .mark.animated .trail.t3 { animation-delay:.36s; }
@keyframes corePulse { 0%,100%{opacity:.82;transform:scale(1);} 50%{opacity:1;transform:scale(1.1);} }
@keyframes drift { 0%,100%{transform:translateX(0);} 50%{transform:translateX(9px);} }
@keyframes trail { 0%,100%{opacity:.35;} 50%{opacity:1;} }
@media (prefers-reduced-motion: reduce){ .mark.animated * { animation:none !important; } }

/* ---------- Buttons ---------- */
.btn { font-family: var(--font-body); font-weight: 600; font-size: 15px; display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius: var(--radius-sm); border:1px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap; transition: transform var(--dur-fast) var(--ease-standard), background var(--dur-base), box-shadow var(--dur-base), border-color var(--dur-base), color var(--dur-base); }
.btn:active { transform: translateY(1px) scale(.99); }
.btn svg { width:17px; height:17px; }
.btn-primary { background: linear-gradient(160deg, #EDEFF3, #AEB8C6); color:#10131a; }
.btn-primary:hover { background: linear-gradient(160deg, #FFFFFF, #C6CFDC); box-shadow: 0 6px 22px rgba(190,205,225,0.18); }
.btn-secondary { background:transparent; color: var(--fg-1); border-color: var(--silver-line); }
.btn-secondary:hover { border-color: var(--silver-mid); color: #fff; }
.btn-lg { padding: 15px 28px; font-size: 16px; }

/* ---------- Badges ---------- */
.badge { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:.02em; padding:5px 12px; border-radius: var(--radius-pill); border:1px solid var(--silver-line); background: rgba(200,214,235,.06); color: var(--silver-2); }
.badge .dot { width:6px; height:6px; border-radius:50%; background: currentColor; }

/* ---------- Nav ---------- */
.nav { position: sticky; top: 0; z-index: 50; background: rgba(8,11,20,.72); backdrop-filter: blur(12px); border-bottom: 1px solid var(--silver-line); }
.nav .inner { display:flex; align-items:center; justify-content:space-between; height: 72px; }
.nav .brand { display:flex; align-items:center; gap:10px; text-decoration:none; }
.nav .brand .mark-wrap svg { width: 30px; height: 30px; }
.nav .brand .word { font-size: 15px; }
.nav .links { display:flex; gap: 30px; }
.nav .links a { font-size: 14px; color: var(--fg-2); text-decoration:none; transition: color var(--dur-fast); }
.nav .links a:hover { color: #fff; }
.nav .nav-cta { display:flex; align-items:center; gap: 14px; }

/* ---------- Hero ---------- */
.hero { position: relative; padding: 100px 0 8px; overflow: hidden; }
.hero::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(58% 68% at 20% 10%, rgba(200,216,238,.10), transparent 60%),
    radial-gradient(46% 56% at 86% 80%, rgba(150,168,196,.08), transparent 55%); }
.hero .inner { position: relative; z-index:1; display:grid; grid-template-columns: 1.12fr .88fr; gap: var(--space-7); align-items:center; }
.hero h1 { font-family: var(--font-display); font-weight: 300; font-size: 60px; line-height: 1.04; letter-spacing: -.02em; margin: 18px 0 0; }
.hero h1 .accent { background: var(--silver-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.hero .sub { font-size: 19px; line-height: 1.6; color: var(--fg-2); max-width: 520px; margin: 22px 0 32px; }
.hero .cta-row { display:flex; gap: 14px; flex-wrap: wrap; }

/* hero visual — large animated silver spoke mark */
.hero .visual { display:flex; align-items:center; justify-content:center; position: relative; }
.hero .visual .mark-wrap { position: relative; z-index:1; }
.hero .visual .mark-wrap svg { width: 400px; height: 400px; filter: drop-shadow(0 8px 28px rgba(0,0,0,.45)); }

/* ---------- Section scaffolding ---------- */
.section { padding: 96px 0; position: relative; z-index:1; }
.section.tight { padding: 72px 0; }
.section-head { max-width: 640px; margin-bottom: 52px; }
.section-head .eyebrow { display:block; margin-bottom: 14px; }
.section-head h2 { font-family: var(--font-display); font-weight: 400; font-size: 38px; line-height: 1.1; letter-spacing: -.01em; margin: 0 0 16px; }
.section-head p { font-size: 17px; line-height: 1.6; color: var(--fg-2); margin: 0; }

/* ---------- Services ---------- */
.services { display:grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.svc { padding: 30px; border-radius: var(--radius-lg); border: 1px solid var(--silver-line); background: var(--surface-raised); transition: border-color var(--dur-base), transform var(--dur-base) var(--ease-out); }
.svc:hover { border-color: rgba(200,216,238,.34); transform: translateY(-4px); }
.svc .ico { width: 48px; height: 48px; border-radius: var(--radius-md); display:flex; align-items:center; justify-content:center; background: rgba(200,216,238,.08); color: var(--silver-2); margin-bottom: 22px; border: 1px solid var(--silver-line); }
.svc .ico svg { width: 23px; height: 23px; }
.svc h3 { font-family: var(--font-display); font-weight: 500; font-size: 22px; margin: 0 0 10px; }
.svc p { font-size: 15px; line-height: 1.6; color: var(--fg-2); margin: 0 0 18px; }
.svc ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.svc li { display:flex; align-items:center; gap:9px; font-size: 14px; color: var(--fg-2); }
.svc li svg { width:15px; height:15px; color: var(--silver-mid); flex:0 0 auto; }

/* ---------- Approach ---------- */
.approach { background: var(--surface-raised); border-top:1px solid var(--silver-line); border-bottom:1px solid var(--silver-line); }
.steps { display:grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
.step { position: relative; }
.step .n { font-family: var(--font-mono); font-size: 13px; color: var(--silver-mid); margin-bottom: 14px; }
.step h4 { font-family: var(--font-display); font-weight: 500; font-size: 20px; margin: 0 0 8px; }
.step p { font-size: 14px; line-height: 1.6; color: var(--fg-2); margin: 0; }
.step::before { content:""; position:absolute; top: 6px; left: 30px; right: -24px; height: 1px; background: var(--silver-line); }
.step:last-child::before { display:none; }
.step .dotmark { width: 9px; height: 9px; border-radius:50%; background: linear-gradient(160deg,#F4F6FA,#8C99AE); box-shadow: 0 0 14px rgba(200,216,238,.3); position: relative; z-index:1; margin-bottom: 18px; }

/* ---------- CTA band ---------- */
.cta-band { position: relative; overflow:hidden; border-radius: var(--radius-xl); border:1px solid var(--silver-line); padding: 72px 56px; text-align:center;
  background: radial-gradient(80% 140% at 50% 0%, rgba(200,216,238,.12), transparent 60%), var(--surface-raised); }
.cta-band h2 { font-family: var(--font-display); font-weight: 300; font-size: 44px; line-height: 1.08; letter-spacing:-.015em; margin: 0 auto 18px; max-width: 620px; }
.cta-band p { font-size: 18px; color: var(--fg-2); max-width: 480px; margin: 0 auto 30px; }
.cta-band .cta-row { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta-band .ghost-mark { position:absolute; right:-60px; bottom:-80px; opacity:.32; pointer-events:none; }
.cta-band .ghost-mark svg { width: 280px; height: 280px; }

/* ---------- Footer ---------- */
.footer { border-top: 1px solid var(--silver-line); padding: 64px 0 40px; margin-top: 0; }
.footer .top { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: var(--space-6); margin-bottom: 48px; }
.footer .brand { display:flex; align-items:center; gap:10px; margin-bottom: 16px; }
.footer .brand .mark-wrap svg { width: 28px; height: 28px; }
.footer .brand .word { font-size: 14px; }
.footer .blurb { font-size: 14px; color: var(--fg-3); max-width: 280px; line-height: 1.6; }
.footer .col h5 { font-size: 12px; letter-spacing:.1em; text-transform:uppercase; color: var(--fg-3); margin: 0 0 16px; font-weight:600; }
.footer .col a { display:block; font-size: 14px; color: var(--fg-2); text-decoration:none; margin-bottom: 11px; transition: color var(--dur-fast); }
.footer .col a:hover { color: #fff; }
.footer .bar { display:flex; align-items:center; justify-content:space-between; padding-top: 28px; border-top: 1px solid var(--silver-line); font-size: 13px; color: var(--fg-3); }

/* ---------- responsive ---------- */
@media (max-width: 960px) {
  .hero { padding: 44px 0 76px; }
  .hero .inner { grid-template-columns: 1fr; }
  .hero .visual { order: -1; }
  .hero .visual .mark-wrap svg { width: 190px; height: 190px; }
  .hero h1 { font-size: 44px; }
  .services { grid-template-columns: 1fr; }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .step::before { display:none; }
  .nav .links { display:none; }
  .footer .top { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .hero { padding: 28px 0 28px; }
  .hero .inner { gap: 18px; }
  .hero .visual .mark-wrap svg { width: 172px; height: 172px; }
  .section { padding: 52px 0; }
  .section.tight { padding: 44px 0; }
  #studio.section { padding: 32px 0; }
  .section-head { margin-bottom: 34px; }
  .footer { margin-top: 0; padding: 44px 0 32px; }
}
