/* ============================================================
   Safety is [REDACTED] — Matt Soeth
   Shared stylesheet
   ============================================================ */

:root{
  --teal:#1B9B8A;
  --coral:#E8503A;
  --yellow:#F2C230;
  --sky:#4FB4E0;
  --ink:#141414;
  --paper:#FBF7EF;
  --white:#ffffff;
  --muted:#6B6B6B;
  --line:#e7e0d3;
  --shadow:6px 6px 0 var(--ink);
  --shadow-sm:4px 4px 0 var(--ink);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--coral)}
.mono{font-family:'DM Mono',ui-monospace,monospace}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
.narrow{max-width:760px;margin:0 auto;padding:0 24px}

/* skip link for accessibility */
.skip{
  position:absolute;left:-999px;top:0;background:var(--ink);color:var(--white);
  padding:10px 16px;z-index:200;font-family:'DM Mono',monospace;font-size:13px;
}
.skip:focus{left:8px;top:8px}

/* keyboard focus visibility */
a:focus-visible,button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}

/* ---------- redaction motif ---------- */
.redact{
  background:var(--ink);color:var(--ink);
  padding:0 .28em;border-radius:2px;position:relative;
  transition:color .18s ease;cursor:default;white-space:nowrap;
}
.redact::after{
  content:"";position:absolute;inset:0;border:2px solid var(--coral);
  border-radius:3px;transform:rotate(-1.2deg);opacity:.9;pointer-events:none;
}
.redact:hover,.redact:focus{color:var(--white)}

/* ---------- nav ---------- */
header.nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:3px solid var(--ink)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{
  font-family:'Press Start 2P',monospace;font-size:13px;letter-spacing:.5px;
  color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px;
}
.brand b{color:var(--coral)}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{
  font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1.5px;
  font-size:12px;color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;
}
.nav-links a:hover,.nav-links a.active{border-bottom-color:var(--coral)}
.nav-cta{background:var(--ink);color:var(--white)!important;padding:8px 14px!important;border-radius:4px;border-bottom:none!important}
.nav-cta:hover{background:var(--coral)}
.burger{display:none;background:none;border:none;cursor:pointer;padding:8px}
.burger span{display:block;width:24px;height:3px;background:var(--ink);margin:4px 0}

/* ---------- buttons ---------- */
.btn{
  font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1px;
  font-size:13px;font-weight:500;text-decoration:none;padding:14px 22px;border-radius:5px;
  border:3px solid var(--ink);display:inline-block;box-shadow:var(--shadow-sm);
  transition:transform .08s ease,box-shadow .08s ease;cursor:pointer;
}
.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
.btn-primary{background:var(--coral);color:var(--white)}
.btn-ghost{background:var(--white);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--white)}

/* ---------- color band strip ---------- */
.bands{display:flex;height:14px}
.bands div{flex:1}
.b-teal{background:var(--teal)}.b-coral{background:var(--coral)}
.b-yellow{background:var(--yellow)}.b-sky{background:var(--sky)}

/* ---------- hero ---------- */
.hero{background:var(--teal);border-bottom:3px solid var(--ink);position:relative;overflow:hidden}
.hero-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center;max-width:1080px;margin:0 auto;padding:70px 24px 60px}
.eyebrow{
  font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:3px;font-size:12px;
  color:var(--ink);background:var(--yellow);display:inline-block;padding:6px 12px;
  border:2px solid var(--ink);border-radius:3px;margin-bottom:22px;transform:rotate(-1deg);
}
h1.hero-title{
  font-family:'Press Start 2P',monospace;font-size:clamp(28px,5vw,52px);line-height:1.15;
  color:var(--white);text-shadow:4px 4px 0 var(--ink);margin-bottom:26px;
}
h1.hero-title .r{
  color:var(--white);background:var(--coral);padding:2px 10px;display:inline-block;
  border:3px solid var(--ink);box-shadow:var(--shadow-sm);transform:rotate(-1.5deg);text-shadow:none;
}
.hero-sub{font-size:19px;color:var(--ink);max-width:44ch;margin-bottom:30px;font-weight:500}
.btns{display:flex;gap:14px;flex-wrap:wrap}
.hero-art{display:flex;justify-content:center;align-items:center}
.hero-art img{width:100%;max-width:300px;filter:drop-shadow(6px 6px 0 rgba(20,20,20,.25))}

/* ---------- sections ---------- */
section{padding:66px 0}
.sec-head{font-family:'Press Start 2P',monospace;font-size:clamp(18px,3vw,26px);margin-bottom:14px;line-height:1.35}
.sec-intro{font-size:18px;max-width:62ch;margin-bottom:34px}

.intro-band{background:var(--sky);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.intro-band p{font-size:21px;max-width:64ch;font-weight:500;color:var(--ink)}

/* ---------- show block ---------- */
.show-grid{display:grid;grid-template-columns:1fr 300px;gap:40px;align-items:start}
.redsays{
  background:var(--yellow);border:3px solid var(--ink);border-radius:6px;padding:18px 20px;
  box-shadow:5px 5px 0 var(--ink);display:flex;gap:14px;align-items:center;margin-top:26px;
}
.redsays img{width:64px;flex-shrink:0}
.redsays p{font-family:'DM Mono',monospace;font-size:14px;line-height:1.5}
.redsays b{color:var(--coral)}
.cover{width:100%;border:3px solid var(--ink);border-radius:8px;box-shadow:var(--shadow)}

/* ---------- subscribe pills ---------- */
.subs{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.sub-pill{
  font-family:'DM Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:1px;
  padding:10px 16px;border:2px solid var(--ink);border-radius:30px;text-decoration:none;
  color:var(--ink);background:var(--white);
}
.sub-pill:hover{background:var(--ink);color:var(--white)}

/* ---------- episodes ---------- */
.eps{background:var(--white);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.ep{display:grid;grid-template-columns:120px 1fr auto;gap:22px;align-items:center;padding:20px 0;border-bottom:2px solid var(--line)}
.ep:last-child{border-bottom:none}
.ep .date{font-family:'DM Mono',monospace;font-size:12px;color:#8a8272;text-transform:uppercase;letter-spacing:1px}
.ep h3{font-size:18px;line-height:1.3;margin-bottom:3px}
.ep h3 a{color:var(--ink);text-decoration:none}
.ep h3 a:hover{color:var(--coral)}
.ep .guest{font-size:14px;color:var(--teal);font-weight:600}
.ep .play{font-family:'DM Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:1px;text-decoration:none;color:var(--ink);border:2px solid var(--ink);border-radius:4px;padding:8px 14px;white-space:nowrap}
.ep .play:hover{background:var(--coral);color:var(--white)}

/* ---------- generic page header ---------- */
.page-head{background:var(--yellow);border-bottom:3px solid var(--ink);padding:56px 0}
.page-head h1{font-family:'Press Start 2P',monospace;font-size:clamp(22px,4vw,38px);line-height:1.2;color:var(--ink);text-shadow:3px 3px 0 rgba(20,20,20,.15)}
.page-head .r{background:var(--coral);color:var(--white);padding:0 10px;border:3px solid var(--ink);display:inline-block;transform:rotate(-1.5deg)}
.page-head p{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:2px;font-size:13px;margin-top:16px;color:var(--ink)}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:280px 1fr;gap:44px;align-items:start}
.about-grid .headshot{width:100%;border:3px solid var(--ink);border-radius:8px;box-shadow:var(--shadow)}
.about-body p{font-size:18px;margin-bottom:18px;max-width:64ch}
.about-body h2{font-family:'Press Start 2P',monospace;font-size:16px;margin:34px 0 14px}
.linklist{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:8px}
.linklist a{font-family:'DM Mono',monospace;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--coral);display:inline-block;padding-bottom:2px}
.linklist a:hover{color:var(--coral)}

/* ---------- player ---------- */
.player-embed{margin:26px 0;border:3px solid var(--ink);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}
.player-embed iframe{display:block;width:100%;border:0}

/* ---------- episode + blog article ---------- */
.article{max-width:760px;margin:0 auto;padding:60px 24px}
.article .meta{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:1.5px;font-size:12px;color:var(--muted);margin-bottom:14px}
.article h1{font-family:'Press Start 2P',monospace;font-size:clamp(20px,3.5vw,30px);line-height:1.3;margin-bottom:18px}
.article .guest-line{font-size:16px;color:var(--teal);font-weight:700;margin-bottom:26px}
.article h2{font-size:22px;margin:34px 0 12px}
.article p{font-size:18px;margin-bottom:18px}
.article .transcript{border-top:2px solid var(--line);margin-top:40px;padding-top:30px}
.article .transcript h2{font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:2px;font-size:15px;color:var(--muted)}
.back-link{font-family:'DM Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:1.5px;text-decoration:none;color:var(--ink);border-bottom:2px solid var(--coral)}

/* ---------- blog index ---------- */
.post-list{display:flex;flex-direction:column;gap:0}
.post-item{padding:24px 0;border-bottom:2px solid var(--line)}
.post-item .date{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.post-item h3{font-size:22px;margin:6px 0}
.post-item h3 a{color:var(--ink);text-decoration:none}
.post-item h3 a:hover{color:var(--coral)}
.post-item p{font-size:16px;color:#44413b;max-width:64ch}

/* ---------- consult ---------- */
.consult .sec-intro{max-width:58ch}

/* ---------- 404 ---------- */
.four{background:var(--coral);border-top:3px solid var(--ink);text-align:center;color:var(--white);min-height:70vh;display:flex;align-items:center}
.four img{width:220px;margin:0 auto 8px;filter:drop-shadow(5px 5px 0 rgba(20,20,20,.3))}
.four h1{font-family:'Press Start 2P',monospace;font-size:clamp(30px,7vw,64px);text-shadow:5px 5px 0 var(--ink);margin-bottom:18px}
.four p{font-size:19px;max-width:46ch;margin:0 auto 26px;font-weight:500}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--paper);padding:48px 0 40px}
.foot-inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:center}
.foot-brand{font-family:'Press Start 2P',monospace;font-size:13px;line-height:1.6}
.foot-brand .r{color:var(--coral)}
.foot-links{display:flex;gap:22px;flex-wrap:wrap;font-family:'DM Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:1.5px}
.foot-links a{color:var(--paper);text-decoration:none;border-bottom:2px solid transparent}
.foot-links a:hover{border-bottom-color:var(--coral)}

/* ---------- placeholder note (remove-friendly) ---------- */
.ph{background:repeating-linear-gradient(45deg,#eee,#eee 10px,#e3e3e3 10px,#e3e3e3 20px);border:2px dashed #999;display:flex;align-items:center;justify-content:center;text-align:center;color:#666;font-family:'DM Mono',monospace;font-size:12px;padding:20px;min-height:120px}

/* ---------- responsive ---------- */
@media(max-width:820px){
  .nav-links{display:none}
  .nav-links.open{display:flex;position:absolute;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;gap:0;border-bottom:3px solid var(--ink);padding:8px 24px 16px}
  .nav-links.open a{padding:12px 0;border-bottom:1px solid var(--line)}
  .burger{display:block}
  .hero-inner{grid-template-columns:1fr}
  .hero-art{order:-1;margin-bottom:10px}
  .hero-art img{max-width:180px}
  .show-grid{grid-template-columns:1fr}
  .cover{max-width:300px}
  .about-grid{grid-template-columns:1fr}
  .about-grid .headshot{max-width:280px}
  .ep{grid-template-columns:1fr;gap:6px}
  .ep .play{justify-self:start;margin-top:8px}
  .foot-inner{flex-direction:column;align-items:flex-start}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important}
}
