/* Meet Me Gently — per-path pages (Steady / Open / Reach / Repair / After Dark).
   Each page lives permanently inside its category's scene: <body data-scene="…"
   data-scene-lock> re-lights the room from site.css scene tokens, and every
   section carries data-scene-section so the scene text colors apply. */

/* On a locked-scene page the focus ring must read against the dark room. */
body[data-scene-lock] :focus-visible {
  outline-color: var(--scene-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--scene-accent) 25%, transparent);
}

/* Buttons re-inked for the dark room (site.css only restyles them in .hero). */
body[data-scene-lock] .btn.primary {
  background: var(--scene-accent); color: var(--scene-bg);
  box-shadow: 0 12px 28px -12px color-mix(in srgb, var(--scene-accent) 70%, transparent);
}
body[data-scene-lock] .btn.primary:hover {
  background: color-mix(in srgb, var(--scene-accent) 85%, #fff);
}
body[data-scene-lock] .btn.ghost {
  color: var(--scene-on);
  border-color: color-mix(in srgb, var(--scene-on) 65%, transparent);
}
body[data-scene-lock] .btn.ghost:hover { background: var(--scene-on); color: var(--scene-bg); }
body[data-scene-lock] .menu-toggle { color: var(--scene-on);
  border-color: color-mix(in srgb, var(--scene-on) 40%, transparent); }
@media (max-width: 860px) {
  body[data-scene-lock] nav#nav { background: var(--scene-bg);
    border-bottom-color: color-mix(in srgb, var(--scene-on) 22%, transparent); }
  body[data-scene-lock] nav#nav a { border-bottom-color: color-mix(in srgb, var(--scene-on) 16%, transparent); }
}

/* ---- hero ---- */
.p-hero { max-width: var(--maxw); margin: 0 auto;
  padding: clamp(3rem, 9vw, 6.5rem) clamp(1.1rem, 4vw, 2.4rem) clamp(2rem, 5vw, 3.5rem);
  display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 5vw, 3.5rem);
  align-items: center; }
.p-hero h1 { font-size: clamp(2.3rem, 6.4vw, 4.1rem); letter-spacing: -.01em; margin: .2rem 0 1.1rem; }
.p-hero h1 em { font-style: italic; color: var(--scene-accent); }
.p-hero .lead { max-width: 48ch; }
.p-hero-stage { display: grid; justify-items: center; perspective: 1200px; }
.p-hero-stage .p-hero-card { width: min(64%, 250px); rotate: 2.5deg; }
.p-count { display: flex; gap: 1.6rem; margin-top: 1.6rem; flex-wrap: wrap; }
.p-count span { font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; }
.p-count b { display: block; font-family: var(--serif); font-size: 1.5rem; letter-spacing: 0;
  color: var(--scene-accent) !important; }

/* ---- generic panels on the dark room ---- */
.p-panel { background: color-mix(in srgb, var(--scene-glow) 26%, transparent);
  border: 1px solid color-mix(in srgb, var(--scene-on) 16%, transparent);
  border-radius: var(--r); padding: 1.5rem 1.4rem;
  transition: transform .18s ease, border-color .2s ease; }
.p-panel:hover { transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--scene-accent) 55%, transparent); }
.p-panel h3 { font-size: 1.14rem; margin-bottom: .55rem; }
.p-panel p { margin: 0; font-size: .93rem; }
.p-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.1rem; }

/* the in-depth "job" split */
.p-job { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.4rem, 4vw, 3rem); }
.p-job .p-job-lede { font-family: var(--serif); font-size: clamp(1.2rem, 2.4vw, 1.6rem);
  line-height: 1.45; margin: 0; }
.p-job .p-job-body p { margin: 0 0 1rem; }
.p-job .p-job-body p:last-child { margin-bottom: 0; }

/* ---- session timeline ---- */
.p-steps { list-style: none; margin: 0; padding: 0; counter-reset: pstep;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.p-steps li { counter-increment: pstep; position: relative;
  background: color-mix(in srgb, var(--scene-glow) 22%, transparent);
  border: 1px solid color-mix(in srgb, var(--scene-on) 14%, transparent);
  border-radius: var(--r); padding: 1.4rem 1.3rem 1.3rem; }
.p-steps li::before { content: counter(pstep, decimal-leading-zero);
  display: block; font: 600 .78rem/1 var(--sans); letter-spacing: .14em;
  color: var(--scene-accent) !important; margin-bottom: .7rem; }
.p-steps h3 { font-size: 1.08rem; margin-bottom: .45rem; }
.p-steps p { margin: 0; font-size: .9rem; }

/* ---- sample prompt cards ---- */
.p-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
  gap: 1rem; align-items: end; }
.p-cards > :nth-child(even) { translate: 0 12px; }
.p-cards .mmg-card, .p-cards .mmg-back { transition: transform .25s ease; }
.p-cards > :hover { transform: translateY(-6px); }
/* no-JS fallback: static prompt plaques that paths.js replaces with real cards */
.p-fallback { margin: 0; border-radius: 14px; background: var(--mmg-cream, #FBF7EF);
  border-top: 5px solid var(--scene-accent); color: #24201a;
  padding: 1.2rem 1rem 1.1rem; display: flex; flex-direction: column; gap: .8rem;
  min-height: 220px; box-shadow: 0 18px 40px -22px rgba(0,0,0,.6); }
.p-fallback p { margin: 0; flex: 1; font-family: var(--serif); font-style: italic;
  font-size: .95rem; line-height: 1.4; color: #24201a !important; }
.p-fallback cite { font: 600 .58rem/1.4 var(--sans); font-style: normal;
  letter-spacing: .14em; text-transform: uppercase; color: #6a6152 !important; }
.p-cards-note { margin-top: 1.6rem; }

/* ---- who it's for ---- */
.p-who { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem .7rem; }
.p-who li { border: 1px solid color-mix(in srgb, var(--scene-on) 30%, transparent);
  border-radius: 999px; padding: .55rem 1.05rem; font-size: .88rem;
  background: color-mix(in srgb, var(--scene-glow) 20%, transparent); }
.p-who li b { font-weight: 600; }

/* ---- closing funnel band ---- */
.p-cta { text-align: center; }
.p-cta .actions { justify-content: center; }
.p-others { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem;
  margin: 2.2rem 0 0; padding: 0; list-style: none; }
.p-others a { display: inline-block; text-decoration: none; font-size: .82rem;
  font-weight: 600; letter-spacing: .06em; padding: .5rem 1rem; border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--scene-on) 28%, transparent);
  transition: border-color .2s ease, transform .2s ease; }
.p-others a:hover { border-color: var(--scene-accent); transform: translateY(-2px); }

/* ---- After Dark specifics ---- */
.p-18 { display: inline-flex; align-items: center; gap: .45rem;
  font: 700 .66rem/1 var(--sans); letter-spacing: .16em; text-transform: uppercase;
  color: #FF5A70 !important; border: 1px solid #E01F3D; border-radius: 999px;
  padding: .45rem .8rem; background: rgba(224,31,61,.12); margin-bottom: 1.1rem; }
/* Heat levels inside After Dark: Spicy (burgundy) and XXX (black).
   Layout only — card geometry is owned by shared/cards.css (aspect-ratio 2.75/4.75)
   and must never be given a width+height pair or a fixed px radius here. */
.p-level { margin-top: clamp(1.4rem, 3.5vw, 2.2rem); }
.p-level + .p-level { margin-top: clamp(2.2rem, 5vw, 3.4rem); }
.p-level-head { display: flex; flex-direction: column; gap: .45rem;
  margin-bottom: 1.15rem; padding-bottom: .85rem;
  border-bottom: 1px solid color-mix(in srgb, var(--scene-on) 16%, transparent); }
.p-level-head h3 { margin: 0; font-size: clamp(1.12rem, 2.3vw, 1.45rem);
  display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.p-level-head p { margin: 0; max-width: 64ch; font-size: .93rem; }
.p-level-tag { font: 700 .68rem/1 var(--sans); letter-spacing: .2em;
  text-transform: uppercase; padding: .44rem .72rem; border-radius: 999px;
  border: 1px solid currentColor; }
.p-level-tag--spicy { color: #FF8A9C !important; background: rgba(224,82,107,.14); }
.p-level-tag--xxx { color: #FF5A70 !important; background: rgba(224,31,61,.16); }

.p-sealed-note { border-left: 3px solid var(--scene-accent);
  padding: .9rem 1.2rem; border-radius: 0 12px 12px 0;
  background: color-mix(in srgb, var(--scene-glow) 30%, transparent);
  max-width: 60ch; }
.p-sealed-note p { margin: 0; }

/* dock inherits site.css; on a dark page give it a hairline of the accent */
body[data-scene-lock] .cta-dock { border-color: color-mix(in srgb, var(--scene-accent) 40%, transparent); }

@media (max-width: 860px) {
  .p-hero { grid-template-columns: 1fr; }
  .p-hero-stage { order: -1; }
  .p-hero-stage .p-hero-card { width: min(52%, 210px); }
  .p-job { grid-template-columns: 1fr; }
  .p-steps { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .p-cards { grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .p-panel, .p-cards > *, .p-others a { transition: none; }
  .p-cards > :nth-child(even) { translate: none; }
}
