:root {
  color: #334155;
  background: #eef3f8;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.7;
}

* { box-sizing: border-box; }
body { margin: 0; }

body.dark {
  --page-bg: #111827;
  --page-surface: #1f2937;
  --page-surface-muted: #172033;
  --page-border: #334155;
  --page-text: #cbd5e1;
  --page-muted: #94a3b8;
  --page-heading: #f8fafc;
  background: var(--page-bg);
  color: var(--page-text);
}

body:not(.dark) {
  --page-bg: #eef3f8;
  --page-surface: #ffffff;
  --page-surface-muted: #f8fafc;
  --page-border: #dbe3ee;
  --page-text: #334155;
  --page-muted: #64748b;
  --page-heading: #0f172a;
}

main {
  background: var(--page-bg);
  min-height: 100vh;
}

.page-shell {
  margin: 0 auto;
  max-width: 1080px;
  padding: 28px 24px 72px;
}

.page-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-bottom: 42px;
}

.theme-toggle {
  background: var(--page-surface);
  border: 1px solid var(--page-border);
  border-radius: 999px;
  color: var(--page-text);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  padding: 8px 13px;
}

.theme-toggle:hover { border-color: #60a5fa; }

.brand {
  color: var(--page-heading);
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -0.03em;
  text-decoration: none;
}

.header-actions { align-items: center; display: flex; gap: 10px; }
.back-link { color: #2563eb; font-size: 14px; font-weight: 800; }

.eyebrow {
  color: #2563eb;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin: 0 0 10px;
  text-transform: uppercase;
}

.hero {
  background: linear-gradient(135deg, #0f172a 0%, #172554 58%, #1d4ed8 100%);
  border: 1px solid #334155;
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22);
  color: #e0f2fe;
  overflow: hidden;
  padding: clamp(28px, 5vw, 54px);
  position: relative;
  margin-bottom: 30px;
  max-width: 900px;
}

.hero::after {
  background: radial-gradient(circle, rgba(125, 211, 252, 0.38), transparent 68%);
  content: '';
  height: 280px;
  position: absolute;
  right: -80px;
  top: -100px;
  width: 280px;
}

h1, h2, h3 { color: var(--page-heading); line-height: 1.25; letter-spacing: -0.035em; }
h1 { font-size: clamp(32px, 6vw, 52px); margin: 0 0 16px; }
h2 { font-size: 25px; margin: 42px 0 14px; }
h3 { font-size: 18px; margin: 0 0 8px; }
p, li { font-size: 16px; }
.hero .eyebrow { color: #7dd3fc; position: relative; z-index: 1; }
.hero h1, .hero > p { color: #f8fafc; position: relative; z-index: 1; }
.hero > p { font-size: 18px; margin: 0; max-width: 680px; }

.content-card {
  background: var(--page-surface);
  border: 1px solid var(--page-border);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.07);
  padding: clamp(20px, 4vw, 38px);
}

.steps {
  display: grid;
  gap: 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.steps li {
  align-items: flex-start;
  background: var(--page-surface-muted);
  border: 1px solid var(--page-border);
  border-radius: 12px;
  display: flex;
  gap: 14px;
  padding: 16px;
}

.faq-list { display: grid; gap: 14px; }
.faq-item { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px; }
.faq-item h3, .faq-item p { margin: 0; }
.faq-item p { margin-top: 6px; }
.dark .faq-item { background: #172033; border-color: #475569; }

.step-number {
  align-items: center;
  background: #2563eb;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  flex: 0 0 28px;
  font-size: 14px;
  font-weight: 900;
  height: 28px;
  justify-content: center;
}

.screen-shot {
  background: #111827;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
  display: block;
  margin: 22px auto 8px;
  max-width: 100%;
}

figcaption { color: #64748b; font-size: 13px; text-align: center; }

.info-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

.info-box { background: var(--page-surface-muted); border: 1px solid var(--page-border); border-radius: 12px; padding: 16px; }
.info-box p { margin: 0; }
.notice { background: var(--page-surface-muted); border: 1px solid var(--page-border); border-left: 4px solid #38bdf8; border-radius: 0 10px 10px 0; margin: 24px 0; padding: 14px 16px; }
.notice strong { color: #0369a1; }
.dark .notice strong { color: #7dd3fc; }

.guide-image-wrap { margin: 26px 0 10px; position: relative; }
.guide-image-wrap .screen-shot { margin: 0 auto; }
.image-marker {
  align-items: center;
  background: #2563eb;
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.35);
  color: #fff;
  display: flex;
  font-size: 13px;
  font-weight: 900;
  height: 30px;
  justify-content: center;
  position: absolute;
  width: 30px;
}
.marker-1 { left: 19%; top: 29%; }
.marker-2 { left: 39%; top: 29%; }
.marker-3 { left: 16%; top: 43%; }
.marker-4 { left: 12%; top: 72%; }
.marker-5 { left: 48%; top: 72%; }
.marker-6 { left: 79%; top: 27%; }

.contact-card {
  align-items: center;
  background: linear-gradient(135deg, #eff6ff, #dbeafe);
  border: 1px solid #bfdbfe;
  border-radius: 14px;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-top: 24px;
  padding: 18px;
}

.dark .contact-card { background: linear-gradient(135deg, #172554, #1e3a8a); border-color: #1d4ed8; }
.contact-card h3, .contact-card p { margin: 0; }
.contact-card p { color: var(--page-muted); font-size: 14px; }
.contact-button { background: #2563eb; border-radius: 999px; color: #fff; padding: 9px 15px; text-decoration: none; white-space: nowrap; }
.contact-button:hover { background: #1d4ed8; }

.page-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}

.page-nav a {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  color: #1d4ed8;
  font-size: 14px;
  font-weight: 800;
  padding: 8px 14px;
  text-decoration: none;
}

.dark .page-nav a { background: #172554; border-color: #3b82f6; color: #bfdbfe; }

a { color: #1d4ed8; font-weight: 700; }
footer { border-top: 1px solid var(--page-border); margin-top: 48px; padding-top: 20px; }
footer a { color: var(--page-muted); }

@media (max-width: 640px) {
  .page-shell { padding: 20px 16px 48px; }
  .page-header { margin-bottom: 30px; }
  .info-grid { grid-template-columns: 1fr; }
  .hero > p { font-size: 16px; }
  .contact-card { align-items: flex-start; flex-direction: column; }
}
