
:root{
  --paper:#f4efe3;--parch:#ece3d1;--ink:#2c2519;--ink-soft:#6b5f47;
  --leaf:#4e5d44;--leaf-dark:#3c4934;--line:rgba(44,37,25,.16);
  --gold:#b2843e;--noir:#0f0d09;--cream:#f5eddc;
  --max-reader:46rem;--max-room:68rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.72}
img{max-width:100%;height:auto}
a{color:inherit}
.skip-link{position:absolute;left:-9999px;top:auto}.skip-link:focus{left:1rem;top:1rem;z-index:999;background:var(--paper);padding:.7rem 1rem;border:1px solid var(--ink)}
.topbar{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.86rem 5vw;background:rgba(78,93,68,.98);border-bottom:1px solid var(--leaf-dark)}
.topbar a{color:var(--paper);text-decoration:none;font-size:.78rem;letter-spacing:.065em}.topbar .mark{font-family:"Playfair Display",Georgia,serif;font-size:1rem}.topbar a:focus-visible,.btn:focus-visible,.corridor-row:focus-visible,.gift-link:focus-visible,button:focus-visible{outline:3px solid #e8d5a0;outline-offset:3px}
.room-shell{max-width:var(--max-room);margin:0 auto;padding:4.7rem 1.4rem 5rem}.reader-shell{max-width:var(--max-reader);margin:0 auto;padding:5.2rem 1.35rem 5rem}
.eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.21em;text-transform:uppercase;color:var(--ink-soft)}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:500;line-height:1.16}
.room-title{font-size:clamp(2.7rem,7vw,5rem);margin:.45rem 0 .75rem}.reader-title{font-size:clamp(2.45rem,7vw,4.25rem);margin:.55rem 0 .65rem}
.subhead{font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.05rem,2.2vw,1.3rem);font-style:italic;color:var(--ink-soft);line-height:1.65;max-width:48rem}
.intro{max-width:48rem;font-size:1.04rem;color:#4a4134}.intro p{margin:1.15rem 0}
.status-note{margin:2rem 0;padding:1.2rem 1.35rem;background:rgba(236,227,209,.72);border-left:3px solid var(--leaf);font-family:"Playfair Display",Georgia,serif;color:#4f4638}
.actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:2rem 0}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1rem;border:1px solid var(--leaf);border-radius:2px;text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.075em;text-transform:uppercase;background:transparent;color:var(--leaf)}.btn:hover{background:rgba(78,93,68,.08)}.btn.primary{background:var(--leaf);color:var(--paper)}.btn.primary:hover{background:var(--leaf-dark)}.btn.whatsapp{background:#1f8f4e;border-color:#1f8f4e;color:white}.btn.whatsapp:hover{background:#187a42}
.rule{border:0;border-top:1px solid var(--line);margin:3.4rem 0}
.corridor-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.corridor-head h2{font-size:clamp(2rem,4vw,3rem);margin:0}.corridor-note{font-size:.85rem;color:var(--ink-soft);max-width:30rem}
.corridor{border-top:1px solid var(--line)}
.corridor-row{display:grid;grid-template-columns:3rem 74px minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1.05rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .2s,padding .2s}.corridor-row:hover{background:rgba(236,227,209,.52);padding-left:.65rem;padding-right:.65rem}.corridor-row.is-future{color:#817667;cursor:default}.corridor-row.is-future:hover{background:transparent;padding-left:0;padding-right:0}
.corridor-num{font-family:"Playfair Display",Georgia,serif;font-size:1.15rem;color:var(--ink-soft)}.corridor-thumb{width:74px;height:96px;object-fit:cover;border-radius:2px;box-shadow:0 2px 8px rgba(44,37,25,.12)}.corridor-copy h3{font-size:1.35rem;margin:0 0 .2rem}.corridor-copy p{margin:0;font-size:.86rem;color:var(--ink-soft);line-height:1.5}.corridor-state{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--leaf);white-space:nowrap}
.hero-poster{display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:clamp(2rem,5vw,4.2rem);align-items:center;margin-bottom:3.8rem}.hero-poster img{width:100%;border-radius:3px;box-shadow:0 8px 28px rgba(44,37,25,.17)}
.reader-meta{text-align:center;margin-bottom:2.2rem}.reader-meta .eyebrow{display:block}.reader-tagline{font-family:"Playfair Display",Georgia,serif;font-style:italic;color:var(--ink-soft);font-size:1.08rem;line-height:1.65;max-width:38rem;margin:.5rem auto 0}
.reader-poster{display:block;width:min(100%,420px);margin:0 auto 3rem;border-radius:2px;box-shadow:0 7px 25px rgba(44,37,25,.15)}
.story{font-family:"Playfair Display",Georgia,serif;font-size:1.13rem;line-height:1.92}.story p{margin:0 0 1.35rem}.story .chapter{font-family:Inter,system-ui,sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--leaf);margin:3.1rem 0 1.15rem}.story .star{text-align:center;color:var(--leaf);letter-spacing:.2em;margin:2.3rem 0}.story strong{font-weight:600}.story em{font-style:italic}.story .closing-hook{font-style:italic;color:var(--ink-soft)}
.progress-marks{display:flex;justify-content:center;gap:.36rem;margin:1rem 0 0}.progress-marks span{width:7px;height:7px;border-radius:50%;border:1px solid var(--leaf)}.progress-marks span.on{background:var(--leaf)}
.gift-box{margin:4rem auto 1.6rem;padding:2rem 1.5rem;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.gift-box h2{font-size:1.65rem;margin:0 0 .6rem}.gift-box p{max-width:32rem;margin:.5rem auto 1.25rem;color:var(--ink-soft);font-size:.92rem}.gift-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.78rem 1.15rem;background:#1f8f4e;color:#fff;text-decoration:none;border-radius:2px;font-size:.76rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.gift-link:hover{background:#187a42}
.reader-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center;margin:2rem 0}.reader-nav a{text-decoration:none;color:var(--leaf);font-size:.79rem;line-height:1.45}.reader-nav .next{text-align:right}.reader-nav .home{text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:.69rem}.reader-nav .disabled{opacity:.35}
.transcript{margin:3.5rem 0 1rem;border-top:1px solid var(--line);padding-top:1.6rem}.transcript summary{cursor:pointer;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;color:var(--leaf)}.transcript ol{padding-left:1.4rem}.transcript li{margin:1rem 0;color:#4c4336}
.site-footer{text-align:center;padding:2.5rem 1rem 3rem;font-size:.7rem;color:var(--ink-soft);letter-spacing:.03em}
.quiet-card{display:grid;grid-template-columns:minmax(220px,390px) 1fr;gap:2.2rem;align-items:center;margin:2.5rem 0;padding:1.4rem;background:rgba(236,227,209,.55);border:1px solid var(--line)}.quiet-card img{border-radius:2px}.quiet-card h2{font-size:2rem;margin:.4rem 0}.quiet-card p{color:#514839}
.small-note{font-size:.8rem;color:var(--ink-soft)}
@media(max-width:720px){.hero-poster,.quiet-card{grid-template-columns:1fr}.hero-poster img{max-width:330px;margin:auto}.corridor-row{grid-template-columns:2.4rem 58px minmax(0,1fr)}.corridor-thumb{width:58px;height:76px}.corridor-state{grid-column:3;margin-top:.15rem}.corridor-copy h3{font-size:1.15rem}.reader-nav{grid-template-columns:1fr 1fr}.reader-nav .home{grid-column:1/-1;grid-row:2}.room-shell{padding-top:3.4rem}.reader-shell{padding-top:4rem}}
@media(max-width:430px){.corridor-row{grid-template-columns:2.2rem minmax(0,1fr)}.corridor-thumb{display:none}.corridor-state{grid-column:2}.actions{flex-direction:column;align-items:stretch}.btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.corridor-row{transition:none}}

/* CSJA live-series refinements */
.channel-note{margin:.8rem 0 0;font-size:.88rem;line-height:1.6;color:var(--muted)}
.story-nav{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;justify-content:center}


/* CSJA reading and room refinement — production fix */
.csja-room-hero{grid-template-columns:minmax(230px,330px) minmax(0,1fr);gap:clamp(2.4rem,5vw,4.5rem);align-items:center}
.csja-room-hero>div{max-width:38rem}
.csja-room-hero .room-title{font-size:clamp(3rem,5.6vw,4.75rem);line-height:1.06;max-width:12ch;margin:.35rem 0 1rem}
.csja-room-hero .subhead{font-size:clamp(1.08rem,1.8vw,1.3rem);line-height:1.58;margin:0 0 1.2rem;max-width:36rem}
.csja-room-hero .intro{font-size:1rem;line-height:1.72;max-width:36rem}
.csja-room-hero .intro p{margin:.85rem 0}
.csja-room-hero img{max-width:320px;justify-self:center}

.csja-story-page{background:#f7f2e8}
.csja-story-page .topbar{position:sticky}
.csja-reader{max-width:50rem;padding-top:4.2rem}
.csja-reader .reader-meta{text-align:center;margin-bottom:2.2rem}
.csja-reader .reader-title{font-size:clamp(2.65rem,6vw,4.35rem);max-width:14ch;margin:.65rem auto .8rem;line-height:1.08}
.csja-reader .reader-tagline{max-width:34rem;font-size:1.12rem}
.story-reading-note{font-size:.78rem;letter-spacing:.055em;text-transform:uppercase;color:var(--ink-soft);margin:1.1rem 0 .7rem}
.csja-reader .reader-poster{width:min(100%,390px);margin-bottom:3.6rem}
.csja-reader .story{max-width:42rem;margin:0 auto;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.12rem,1.5vw,1.24rem);line-height:1.9;color:#322a1f}
.csja-reader .story p{margin:0 0 1.45em}
.csja-reader .story .opening-line{font-size:1.22em;line-height:1.65;margin-bottom:1.35em}
.csja-reader .story .opening-line::first-letter{float:left;font-size:4.1rem;line-height:.78;padding:.14rem .5rem 0 0;color:var(--leaf);font-family:"Playfair Display",Georgia,serif}
.csja-reader .story .star{margin:3.1rem auto;text-align:center;color:var(--gold);font-size:.72rem;letter-spacing:0}
.csja-reader .gift-box{max-width:42rem;margin-top:4.5rem;background:rgba(236,227,209,.38);padding:2.4rem 1.5rem;border:1px solid var(--line)}
.csja-reader .gift-box h2{font-size:2rem}
.csja-reader .reader-nav{max-width:42rem;margin:2.2rem auto}
@media(max-width:720px){
 .csja-room-hero{grid-template-columns:1fr;gap:2rem}
 .csja-room-hero>div{max-width:none}
 .csja-room-hero .room-title{font-size:clamp(2.7rem,12vw,3.8rem);max-width:11ch}
 .csja-room-hero img{order:2;max-width:300px}
 .csja-room-hero>div{order:1}
 .csja-reader{padding-top:3rem}
 .csja-reader .reader-title{font-size:clamp(2.45rem,11vw,3.45rem)}
 .csja-reader .reader-poster{width:min(88vw,350px);margin-bottom:2.8rem}
 .csja-reader .story{font-size:1.1rem;line-height:1.82}
 .csja-reader .story p{margin-bottom:1.32em}
 .csja-reader .story .opening-line::first-letter{font-size:3.5rem}
}
@media(max-width:430px){
 .csja-reader{padding-left:1.15rem;padding-right:1.15rem}
 .csja-reader .story{font-size:1.06rem;line-height:1.78}
 .csja-reader .reader-tagline{font-size:1.03rem}
 .story-reading-note{font-size:.7rem;line-height:1.55}
}

/* ═══════════════════════════════════════════════════════
   SHELF SYSTEM — v1.0.21
   One master shelf design for all four series rooms.
   Classes: .shelf-room, .shelf, .shelf-header, .shelf-label,
            .shelf-status, .shelf-items, .spine, .spine.live,
            .spine.next, .spine.wp (Witness Papers),
            .next-shelf-card (end-of-episode footer)
   ═══════════════════════════════════════════════════════ */

/* Room wrapper */
.shelf-room { max-width: var(--max-room); margin: 0 auto; padding: 4.7rem 1.4rem 5rem; }

/* Individual shelf block */
.shelf {
  margin: 0 0 3.2rem;
  padding: 0;
}
.shelf:last-child { margin-bottom: 0; }

/* Shelf header: thin rule top, label + status inline */
.shelf-header {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  border-top: 1px solid var(--line);
  padding-top: .85rem;
  margin-bottom: 1.25rem;
}
.shelf-label {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.shelf-status {
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: .18rem .55rem;
  border-radius: 2px;
  border: 1px solid transparent;
}
.shelf-status.complete {
  color: var(--ink-soft);
  border-color: var(--line);
}
.shelf-status.live {
  color: var(--leaf);
  border-color: var(--leaf);
}

/* Spine grid — the items on the shelf */
.shelf-items {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Individual spine/row */
.spine {
  display: grid;
  grid-template-columns: 2.6rem 1fr auto;
  gap: .6rem 1rem;
  align-items: center;
  padding: .9rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--ink);
  transition: background .18s, padding .18s;
}
a.spine:hover {
  background: rgba(236,227,209,.52);
  padding-left: .6rem;
  padding-right: .6rem;
}
div.spine { cursor: default; }

.spine-num {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.05rem;
  color: var(--ink-soft);
  line-height: 1;
}
.spine-copy { min-width: 0; }
.spine-copy h3 {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 500;
  margin: 0 0 .18rem;
  line-height: 1.2;
}
.spine-copy p {
  margin: 0;
  font-size: .82rem;
  color: var(--ink-soft);
  line-height: 1.45;
}
.spine-action {
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--leaf);
  white-space: nowrap;
  text-align: right;
}
.spine.next .spine-action {
  color: var(--ink-soft);
  font-size: .64rem;
  line-height: 1.5;
  white-space: nowrap;
  text-align: right;
}
.spine.next .spine-copy h3 { color: var(--ink-soft); }
.spine.next .spine-copy p  { color: rgba(107,95,71,.6); }

/* Witness Papers — indented, slightly differentiated */
.spine.wp {
  margin-left: 2.6rem;
  grid-template-columns: 1.6rem 1fr auto;
  background: rgba(236,227,209,.28);
  border-left: 2px solid var(--gold);
  padding-left: .85rem;
}
.spine.wp .spine-num {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gold);
  font-family: Inter, system-ui, sans-serif;
  font-weight: 600;
}
.spine.wp .spine-copy h3 {
  font-size: 1.05rem;
  color: #5a4e38;
}
.spine.wp.next .spine-copy h3 { color: var(--ink-soft); }
a.spine.wp:hover {
  background: rgba(178,132,62,.08);
}

/* ─── End-of-episode: Next on this shelf ─── */
.next-shelf-card {
  margin: 3.2rem auto 0;
  padding: 1.8rem 1.5rem 1.6rem;
  max-width: 46rem;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.next-shelf-card .nsc-label {
  font-size: .65rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink-soft);
  display: block;
  margin-bottom: .6rem;
}
.next-shelf-card .nsc-title {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 1.55rem;
  font-weight: 500;
  margin: 0 0 .2rem;
  line-height: 1.2;
}
.next-shelf-card .nsc-sub {
  font-size: .88rem;
  color: var(--ink-soft);
  margin: 0 0 1.1rem;
}
.next-shelf-card .nsc-date {
  font-size: .8rem;
  color: var(--ink-soft);
  margin: .35rem 0 1.25rem;
  font-style: italic;
}
.next-shelf-card .nsc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
}
/* When next is LIVE — read button primary */
.next-shelf-card .btn.nsc-read {
  background: var(--leaf);
  color: var(--paper);
  border-color: var(--leaf);
}
.next-shelf-card .btn.nsc-read:hover { background: var(--leaf-dark); }

/* Position text in reader-meta */
.reader-position {
  display: block;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: .3rem;
  margin-bottom: .15rem;
}

@media (max-width: 640px) {
  .shelf-room { padding-top: 3.5rem; }
  .spine { grid-template-columns: 2.2rem 1fr auto; }
  .spine.wp { margin-left: 1.4rem; grid-template-columns: 1.2rem 1fr auto; }
  .next-shelf-card .nsc-title { font-size: 1.3rem; }
  .next-shelf-card .nsc-actions { flex-direction: column; }
  .next-shelf-card .nsc-actions .btn { width: 100%; }
}
@media (max-width: 430px) {
  .spine-copy h3 { font-size: 1.05rem; }
  .spine-action { font-size: .6rem; }
}
