@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url("/fonts/bricolage-grotesque-latin.woff2") format("woff2");
}

:root{
  --bg:oklch(0.9642 0.0041 271.4);
  --card:oklch(0.9909 0.0029 264.5);
  --surface-2:oklch(0.9372 0.0084 271.3);
  --border:oklch(0.9163 0.0097 273.3);
  --ink:oklch(0.2351 0.0553 263.4);
  --ink-soft:oklch(0.3776 0.0487 267.0);
  --muted:oklch(0.4870 0.0403 268.8);
  --accent:oklch(0.5106 0.1954 266.6);
  --accent-tint:oklch(0.9526 0.0167 271.2);
  --accent-tint-border:oklch(0.8703 0.0466 267.9);
  --navy:oklch(0.2351 0.0553 263.4);
  --navy-2:oklch(0.2979 0.0614 265.0);
  --on-navy:oklch(0.9641 0.0070 268.5);
  --on-navy-muted:oklch(0.7980 0.0313 267.1);
  --on-navy-border:oklch(0.3728 0.0514 264.9);
  --radius:14px;
  --shadow:0 1px 3px rgba(16,29,56,.10),0 6px 16px rgba(16,29,56,.07);
  --shadow-hover:0 4px 10px rgba(16,29,56,.12),0 14px 30px rgba(16,29,56,.14);
  --font-sans:"Bricolage Grotesque",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --fs-hero:clamp(2.6rem, 1.8rem + 3.6vw, 3.8rem);
  --fs-h1:clamp(1.95rem, 1.5rem + 2vw, 2.65rem);
  --fs-h2:clamp(1.5rem, 1.3rem + 0.95vw, 1.95rem);
  --fs-h3:1.25rem;
  --fs-lead:clamp(1.08rem, 1.01rem + 0.32vw, 1.22rem);
  --fs-sm:0.93rem;
  --fs-xs:0.84rem;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);
  font-optical-sizing:auto;
  color:var(--ink); background:var(--bg);
  font-size:1rem; line-height:1.65;
}
a{color:var(--accent)}
a:focus-visible,
summary:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
  border-radius:3px;
}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* ---- top navigation ---- */
.topbar{
  background:var(--navy);
  position:sticky;top:0;z-index:10;
}
.topbar-inner{
  display:flex;align-items:center;justify-content:space-between;height:56px;
}
.brand{
  font-weight:700;font-size:1.05rem;color:var(--on-navy);
  text-decoration:none;letter-spacing:-.012em;white-space:nowrap;
}
.navlinks{display:flex;gap:22px}
.navlinks a{
  display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;
  color:var(--on-navy-muted);text-decoration:none;font-size:var(--fs-sm);font-weight:500;
}
.navlinks a:hover,.navlinks a[aria-current="page"]{color:var(--on-navy)}
.topbar a:focus-visible{outline-color:var(--on-navy)}

/* ---- hero header (home) ---- */
.site-header{
  text-align:center; padding:56px 20px 48px;
  background:var(--navy);
}
.site-header h1{
  font-size:var(--fs-hero);font-weight:800;color:var(--on-navy);
  letter-spacing:-.025em;line-height:1.05;text-wrap:balance;
}
.tagline{color:var(--on-navy-muted);font-size:var(--fs-lead);margin-top:10px}
.intro{max-width:38rem;margin:18px auto 0;color:var(--on-navy-muted)}
.updated{
  display:inline-block;margin-top:18px;font-size:var(--fs-xs);font-weight:500;
  color:var(--on-navy-muted);background:var(--navy-2);
  border:1px solid var(--on-navy-border);padding:5px 14px;border-radius:999px;
}

section{padding:44px 0}
.section-title{
  font-size:var(--fs-h2);font-weight:700;letter-spacing:-.018em;
  line-height:1.2;text-align:center;margin-bottom:6px;text-wrap:balance;
}
.section-sub{text-align:center;color:var(--muted);margin-bottom:28px;font-size:var(--fs-sm)}
.section-flush{padding-top:8px}

/* ---- creator grid ---- */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:22px;
}
.creator{
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  transition:transform .2s ease,box-shadow .2s ease;
}
.creator a{display:block;text-decoration:none;color:inherit}
.creator-media{aspect-ratio:3/4;overflow:hidden;background:var(--surface-2)}
.creator-media img{width:100%;height:100%;object-fit:cover;display:block}
.creator h3{
  padding:14px 12px;text-align:center;font-size:1.05rem;
  font-weight:600;letter-spacing:-.012em;
}
.creator:not(.placeholder):hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.creator:not(.placeholder):hover h3{color:var(--accent)}
.placeholder{border-style:dashed;box-shadow:none;background:var(--bg)}
.placeholder h3{color:var(--muted);font-weight:500}

.prose{max-width:36rem;margin:0 auto}
.prose p{margin-bottom:14px;color:var(--ink-soft);text-wrap:pretty}
.prose p:first-of-type{margin-top:20px}

/* ---- faq accordion ---- */
.faq{max-width:720px;margin:0 auto}
.faq details{
  background:var(--card);border:1px solid var(--border);
  border-radius:10px;margin-bottom:10px;overflow:hidden;
}
.faq summary{
  cursor:pointer;padding:16px 46px 16px 18px;font-weight:600;
  letter-spacing:-.01em;position:relative;list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);
  font-size:1.4rem;color:var(--accent);font-weight:400;line-height:1;
}
.faq details[open] summary::after{content:"\2212"}
.faq details[open] summary{border-bottom:1px solid var(--border)}
.faq .answer{padding:14px 18px 18px;color:var(--ink-soft)}

/* ---- guide cards (hub + home teaser) ---- */
.guide-list{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:18px;max-width:900px;margin:0 auto;
}
.guide-card{
  display:block;background:var(--card);border:1px solid var(--border);
  border-radius:var(--radius);padding:20px 22px;text-decoration:none;color:inherit;
  box-shadow:var(--shadow);transition:transform .2s ease,box-shadow .2s ease;
}
.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.guide-card h2,.guide-card h3{
  font-size:var(--fs-h3);font-weight:600;margin-bottom:6px;
  color:var(--ink);letter-spacing:-.012em;line-height:1.25;
}
.guide-card p{font-size:var(--fs-sm);color:var(--muted);line-height:1.55}
.guide-card .more{
  display:inline-block;margin-top:10px;font-size:var(--fs-sm);
  color:var(--accent);font-weight:600;
}

/* ---- guide article ---- */
.article{max-width:36rem;margin:0 auto;padding:38px 0 8px}
.breadcrumb{font-size:var(--fs-xs);color:var(--muted);margin-bottom:20px}
.breadcrumb a{color:var(--muted);text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.article h1{
  font-size:var(--fs-h1);font-weight:700;line-height:1.15;
  letter-spacing:-.022em;margin-bottom:14px;text-wrap:balance;
}
.article .lead{font-size:var(--fs-lead);color:var(--ink-soft);margin-bottom:8px;line-height:1.5}
.guide-updated{font-size:var(--fs-xs);color:var(--muted);margin-bottom:24px}
.article h2{
  font-size:var(--fs-h2);font-weight:700;letter-spacing:-.015em;
  line-height:1.25;margin:32px 0 12px;text-wrap:balance;
}
.article p{margin-bottom:14px;color:var(--ink-soft);text-wrap:pretty}
.disclaimer{
  background:var(--accent-tint);
  border:1px solid var(--accent-tint-border);
  border-radius:8px;
  padding:14px 16px;font-size:var(--fs-sm);color:var(--ink-soft);margin:22px 0;
}
.related{
  margin:32px 0 0;padding:22px 0 8px;
  border-top:1px solid var(--border);
}
.related h2{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin-bottom:12px}
.related ul{list-style:none;display:flex;flex-direction:column;gap:8px}
.related a{color:var(--accent);text-decoration:none;font-weight:500}
.related a:hover{text-decoration:underline}

/* ---- sponsored promo banner ---- */
.promo{
  position:relative;margin-top:30px;
  display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-2) 100%);
  border:1px solid var(--on-navy-border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:24px 26px;overflow:hidden;
}
.promo::before{
  content:"";position:absolute;inset:0 auto 0 0;width:4px;
  background:linear-gradient(180deg,#f5c451,#e0992a);
}
.promo-label{
  position:absolute;top:12px;right:14px;
  font-size:0.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--on-navy-muted);
}
.promo-body{flex:1 1 260px;min-width:0;padding-left:6px}
.promo-title{
  font-size:var(--fs-h3);font-weight:700;letter-spacing:-.012em;
  color:var(--on-navy);margin-bottom:6px;
}
.promo-text{color:var(--on-navy-muted);font-size:var(--fs-sm);line-height:1.55;max-width:42rem}
.promo-btn{
  flex:none;white-space:nowrap;
  display:inline-block;font-weight:700;font-size:1rem;
  color:#1b1402;background:linear-gradient(135deg,#f5c451,#e0992a);
  border-radius:9px;padding:12px 24px;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease;
}
.promo-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(224,153,42,.35)}
.promo-btn:focus-visible{outline:2px solid #f5c451;outline-offset:2px}

/* ---- submission form + cta ---- */
.cta{
  max-width:540px;margin:36px auto 0;padding-top:30px;
  border-top:1px solid var(--border);text-align:center;
}
.cta h3{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.012em;margin-bottom:8px}
.cta p{color:var(--ink-soft);margin-bottom:16px}
.btn{
  display:inline-block;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;
  background:var(--navy);color:var(--on-navy);border:1px solid var(--navy);
  border-radius:9px;padding:12px 24px;text-decoration:none;
  transition:transform .15s ease,opacity .15s ease;
}
.btn:hover{transform:translateY(-1px);opacity:.92}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.form{max-width:36rem;margin:26px auto 0}
.field{margin-bottom:18px}
.field label{display:block;font-weight:600;font-size:var(--fs-sm);margin-bottom:6px}
.field input,.field textarea{
  width:100%;font:inherit;font-size:1rem;color:var(--ink);
  background:var(--card);border:1px solid var(--border);
  border-radius:8px;padding:11px 13px;
}
.field input:focus-visible,.field textarea:focus-visible{
  outline:2px solid var(--accent);outline-offset:1px;
}
.field textarea{min-height:92px;resize:vertical}
.hint{font-size:var(--fs-xs);color:var(--muted);margin-top:5px}
.btn + .hint{margin-top:12px}
.consent{
  display:flex;gap:11px;align-items:flex-start;
  font-size:var(--fs-sm);color:var(--ink-soft);margin-bottom:20px;
}
.consent input{
  flex:none;width:18px;height:18px;margin-top:3px;accent-color:var(--accent);
}
.form-note{max-width:36rem;margin:16px auto 0;font-size:var(--fs-xs);color:var(--muted)}

/* ---- footer ---- */
.site-footer{
  background:var(--navy);text-align:center;
  padding:30px 20px;color:var(--on-navy-muted);font-size:var(--fs-sm);
}
.site-footer .age{
  display:inline-block;border:1px solid var(--on-navy-border);border-radius:6px;
  padding:1px 8px;font-weight:700;color:var(--on-navy);margin-right:4px;
}
.site-footer p{margin:0 auto;max-width:560px}
.site-footer p + p{margin-top:10px}
.site-footer a{color:var(--on-navy)}

@media(max-width:600px){
  .site-header{padding:42px 16px 34px}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .topbar-inner{
    flex-direction:column;justify-content:center;height:auto;
    gap:2px;padding-top:9px;padding-bottom:9px;
  }
  .navlinks{gap:20px}
}
