/* Peace Reader — Walk For Peace Interactive e-Book Reader
   Stylesheet. Colors/typography are driven by CSS custom properties that
   the theme switcher sets on #room (see THEMES in peacereader.js).
*/

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:#1a0d0a}
#room{
  --bg:#27110d; --bg2:#3a190f; --paper:#fcf4e4; --paper2:#f5e7cd;
  --ink:#3b2a1b; --inkSoft:#8a6f57; --accent:#b3471f; --accent2:#7a1f17;
  --gold:#c79a3e; --line:rgba(122,31,23,.16); --edge:rgba(187, 177, 174, 0.2);
  --roomInk:#f3e2c4; --roomSoft:#c79f86;
  --fontHead:'Marcellus',serif; --fontBody:'Spectral',Georgia,serif;
  position:fixed; inset:0; overflow:hidden; color:var(--roomInk);
  font-family:var(--fontBody);
  background:
    radial-gradient(120% 90% at 50% -10%, var(--bg2), transparent 60%),
    radial-gradient(140% 120% at 50% 120%, color-mix(in oklab, var(--bg2) 70%, #000) , transparent 55%),
    var(--bg);
  transition:background .6s ease, color .4s ease;
  -webkit-font-smoothing:antialiased;
}
#ambient{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 50% at 50% 42%, color-mix(in oklab,var(--gold) 9%, transparent), transparent 70%);
  opacity:.7;mix-blend-mode:screen}
#vignette{position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 220px 30px color-mix(in oklab,#000 55%, transparent)}

/* ---- topbar ---- */
#topbar{position:absolute;top:0;left:0;right:0;height:74px;z-index:40;
  display:flex;align-items:center;gap:16px;padding:0 22px}
#brand{display:flex;align-items:center;gap:13px;min-width:0}
#emblem{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;
  color:var(--accent2);border-radius:50%;overflow:hidden;cursor:pointer;
  background:#fff;
  border:1px solid color-mix(in oklab,var(--gold) 55%, transparent);
  box-shadow:0 2px 14px color-mix(in oklab,#000 40%,transparent)}
#emblem svg{width:30px;height:30px}
#emblem img{width:33px;height:33px;object-fit:contain}
#wordmark{display:flex;flex-direction:column;line-height:1.12;min-width:0}
#wordmark .wm1{font-family:var(--fontHead);font-size:11px;letter-spacing:.34em;
  text-transform:uppercase;color:var(--roomInk);opacity:.9;margin-bottom:3px}
#wordmark .wm2{font-family:var(--fontHead);font-size:19px;letter-spacing:.01em;
  display:block;text-decoration:none;
  color:var(--roomInk);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 1px 2px rgba(0,0,0,.35)}
#wordmark a.wm2:hover{color:var(--gold)}
#tools{margin-left:auto;display:flex;align-items:center;gap:10px}
.chip{appearance:none;cursor:pointer;font-family:var(--fontHead);font-size:13px;
  letter-spacing:.06em;color:var(--roomInk);
  background:color-mix(in oklab,var(--roomInk) 8%, transparent);
  border:1px solid color-mix(in oklab,var(--roomInk) 22%, transparent);
  border-radius:999px;padding:9px 16px;display:flex;align-items:center;gap:8px;
  transition:background .25s,border-color .25s,transform .15s}
.chip:hover{background:color-mix(in oklab,var(--roomInk) 16%, transparent);transform:translateY(-1px)}
.chip svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.7}
.chip-ico{padding:9px;border-radius:50%}
.tool-grp{position:relative;display:flex;align-items:center}
.font-ico{display:flex;align-items:baseline;gap:1px;font-family:var(--fontHead);line-height:1;color:var(--roomInk)}
.font-ico span:first-child{font-size:11px}
.font-ico span:last-child{font-size:16px}
#themeToggle{display:none;padding:8px 11px;gap:7px}
#themeToggle .tt-sw{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
#themeToggle .tt-caret{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;transition:transform .25s}
#themeToggle.open .tt-caret{transform:rotate(180deg)}
.pop{position:absolute;top:100%;margin-top:9px;right:0;z-index:80;display:none;
  flex-direction:column;gap:2px;padding:6px;border-radius:14px;min-width:152px;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 20px 48px -16px rgba(0,0,0,.55)}
.pop.show{display:flex}
.pop-opt{appearance:none;cursor:pointer;background:none;border:0;width:100%;
  font-family:var(--fontHead);font-size:14px;letter-spacing:.02em;color:var(--ink);
  padding:9px 12px;border-radius:9px;display:flex;align-items:center;gap:12px;text-align:left}
.pop-opt:hover{background:var(--paper2)}
.pop-opt.active{color:var(--accent2);background:color-mix(in oklab,var(--accent2) 8%, transparent)}
.pop-opt .po-a{font-family:var(--fontHead);width:22px;text-align:center;color:var(--accent2)}
.pop-label{font-family:var(--fontHead);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--inkSoft);opacity:.7;padding:6px 12px 3px}
.pop-sep{height:1px;background:var(--line);margin:6px 4px}
.pop-opt .po-sp{width:22px;height:16px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.pop-opt .po-sp i{display:block;height:1.5px;border-radius:2px;background:var(--accent2);opacity:.8}
.pop-opt .po-sp i:nth-child(1){width:100%}
.pop-opt .po-sp i:nth-child(2){width:78%}
.pop-opt .po-sp i:nth-child(3){width:90%}
.pop-opt .po-sp.wide{gap:4px}
.pop-opt .po-sp.wider{gap:6px}
.pop-theme-only{display:none}
.pop-theme-row{align-items:center;gap:11px;padding:8px 12px 5px;flex-wrap:wrap}

/* edge-tap navigation overlays */
#edgePrev,#edgeNext{display:flex}
body.lb-open #edgePrev,body.lb-open #edgeNext{display:none}
.edge-zone{position:absolute;top:0;bottom:0;width:15%;z-index:30;border:0;padding:0;margin:0;
  background:transparent;pointer-events:none;-webkit-tap-highlight-color:transparent;
  display:flex;align-items:center;justify-content:center}
#edgePrev{left:0;justify-content:flex-start;padding-left:2px}
#edgeNext{right:0;justify-content:flex-end;padding-right:2px}
.edge-arrow{display:grid;place-items:center;color:var(--roomInk);
  opacity:.62;transition:opacity .2s,transform .2s;
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.edge-zone:active .edge-arrow{opacity:.95;transform:scale(.9)}
.edge-arrow svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:2.2}
.edge-zone[data-avail="0"]{pointer-events:none}
.edge-zone[data-avail="0"] .edge-arrow{opacity:0}
@media (hover:hover){ .edge-zone[data-avail="1"] .edge-arrow{pointer-events:auto;cursor:pointer} }
#themeRow{display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;
  background:color-mix(in oklab,var(--roomInk) 7%, transparent);
  border:1px solid color-mix(in oklab,var(--roomInk) 16%, transparent)}
.sw{appearance:none;-webkit-appearance:none;padding:0;width:21px;height:21px;
  border-radius:50%;cursor:pointer;position:relative;display:block;border:0;
  background-clip:padding-box;transition:transform .15s;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
.sw:hover{transform:scale(1.12)}
.sw:focus{outline:none}
.sw:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sw.active::after{content:"";position:absolute;inset:-5px;border-radius:50%;
  border:2px solid color-mix(in oklab,var(--gold) 75%, transparent)}

/* ---- book stage ---- */
#stage{position:absolute;inset:72px 26px 78px;z-index:10;
  display:flex;align-items:center;justify-content:center;perspective:2600px}
#leaf{position:relative;width:min(900px,95%);height:100%;
  transform-style:flat;will-change:transform;border-radius:4px 8px 8px 4px;
  background:linear-gradient(90deg, var(--paper2) 0 1.6%, var(--paper) 4% 100%);
  box-shadow:
    0 1px 0 1px color-mix(in oklab,var(--paper2) 70%, #000 6%),
    inset 30px 0 46px -34px var(--edge),
    0 30px 70px -22px rgba(0,0,0,.55),
    0 8px 22px -12px rgba(0,0,0,.4);
  overflow:hidden}
#leaf::before{content:"";position:absolute;top:0;bottom:0;left:0;width:14px;
  background:linear-gradient(90deg, color-mix(in oklab,var(--accent2) 30%, var(--edge)), transparent);
  opacity:.5;pointer-events:none;z-index:5}
#leaf::after{content:"";position:absolute;top:6px;bottom:6px;right:-6px;width:6px;border-radius:0 6px 6px 0;
  background:linear-gradient(90deg, color-mix(in oklab,var(--paper2) 80%, #000 14%), color-mix(in oklab,var(--paper2) 60%, #000 30%));
  box-shadow:2px 0 6px rgba(0,0,0,.3)}
#flipShade{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;
  background:linear-gradient(90deg, rgba(0,0,0,.4), rgba(0,0,0,0) 40%, rgba(0,0,0,.04) 70%, rgba(0,0,0,.22))}
#pageScroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;
  padding:clamp(34px,5vw,68px) clamp(30px,5.4vw,76px)}
#pageScroll::-webkit-scrollbar{width:10px}
#pageScroll::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--inkSoft) 45%, transparent);
  border-radius:10px;border:3px solid transparent;background-clip:padding-box}
#pageScroll::-webkit-scrollbar-track{background:transparent}

/* ---- page header ---- */
.p-head{margin-bottom:1.4em}
.p-kicker{font-family:var(--fontHead);font-size:calc(12px * var(--fs,1));letter-spacing:.28em;
  text-transform:uppercase;color:var(--accent);opacity:.95;margin-bottom:.7em}
.p-title{font-family:var(--fontHead);color:var(--ink);font-weight:400;
  font-size:calc(clamp(28px,3.7vw,44px) * var(--fs,1));line-height:1.08;letter-spacing:.005em}
.p-date{font-family:var(--fontBody);font-style:italic;color:var(--inkSoft);
  font-size:calc(15px * var(--fs,1));margin-top:.7em}
.ornament{display:flex;align-items:center;gap:12px;margin:1.5em 0 .3em;color:var(--gold)}
.ornament::before,.ornament::after{content:"";height:1px;flex:1;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.55}
.ornament span{font-size:16px;letter-spacing:.3em}

/* ---- rss content ---- */
.rss-content{font-family:var(--fontBody);color:var(--ink);
  /* "15px - -.5vw" == ".5vw + 15px", written as a subtraction so the minifier cannot break it */
  font-size:calc(clamp(16px, 15px - -.5vw, 19px) * var(--fs,1));line-height:var(--lh,1.85)}
.rss-content p{margin:0 0 1.1em;text-wrap:pretty}
.rss-content p.kicker{font-family:var(--fontHead);letter-spacing:.16em;
  text-transform:uppercase;font-size:.82em;color:var(--accent);margin-bottom:1.2em}
.rss-content p.lead::first-letter{font-family:var(--fontHead);float:left;
  font-size:3.5em;line-height:.74;padding:.06em .12em 0 0;color:var(--accent)}
.rss-content a{color:var(--accent);text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px}
.rss-content em,.rss-content i{font-style:italic}
.rss-content strong{font-weight:600;color:color-mix(in oklab,var(--ink) 90%, var(--accent))}
.rss-content .hashtags{margin-top:2em;padding-top:1.1em;border-top:1px solid var(--line);
  font-size:.78em;letter-spacing:.02em;color:var(--inkSoft);opacity:.62;word-spacing:.25em}
.rss-content .posted-meta{font-size:.82em;font-style:italic;color:var(--inkSoft);opacity:.75}
.rss-content img.lone{display:block;max-width:100%;height:auto;border-radius:8px;
  margin:1.5em auto;border:1px solid var(--line);cursor:zoom-in}

/* ---- gallery ---- */
.wfp-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:1.8em 0}
.wfp-gallery.single{grid-template-columns:1fr}
.wfp-thumb{position:relative;aspect-ratio:1;overflow:hidden;border-radius:7px;
  border:1px solid var(--line);cursor:pointer;background:var(--paper2);
  box-shadow:0 1px 4px rgba(0,0,0,.08);display:block;text-decoration:none}
.p-hero{text-decoration:none}
.wfp-gallery.single .wfp-thumb{aspect-ratio:16/10}
.wfp-thumb img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);filter:saturate(.96)}
.wfp-thumb:hover img{transform:scale(1.07)}
.wfp-thumb::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse at center, transparent 56%, rgba(0,0,0,.24) 100%)}
.wfp-thumb.img-loaded::before{opacity:1}
.wfp-thumb::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.28));
  opacity:0;transition:opacity .3s}
.wfp-thumb:hover::after{opacity:1}
.wfp-badge{position:absolute;right:8px;bottom:7px;z-index:2;width:26px;height:26px;
  border-radius:50%;display:grid;place-items:center;opacity:0;transform:translateY(4px);
  background:color-mix(in oklab,var(--accent2) 80%, transparent);color:#fff;
  transition:opacity .3s,transform .3s}
.wfp-thumb:hover .wfp-badge{opacity:1;transform:translateY(0)}
.wfp-badge svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.wfp-thumb-video::after{opacity:1;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.4))}
.wfp-play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:3}
.wfp-play svg{width:42px;height:42px;fill:#fff;opacity:.95;filter:drop-shadow(0 2px 10px rgba(0,0,0,.6))}

/* ---- facebook / youtube video ---- */
.wfp-video{position:relative;width:100%;aspect-ratio:16/9;margin:1.6em 0 .6em;
  border-radius:10px;overflow:hidden;background:#0c0c0c;
  border:1px solid var(--line);box-shadow:0 10px 30px -14px rgba(0,0,0,.5)}
.wfp-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.wfp-vlink{display:inline-flex;align-items:center;gap:6px;margin:0 0 1.4em;
  font-family:var(--fontBody);font-size:13.5px;color:var(--accent);text-decoration:none}
.wfp-vlink svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8}

/* ---- pager ---- */
#credits{position:absolute;right:18px;bottom:10px;z-index:41;
  font-family:var(--fontBody);font-size:11px;letter-spacing:.04em;
  color:color-mix(in oklab,var(--gold) 78%, transparent);opacity:.78;pointer-events:auto}
#credits a{color:var(--gold);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--gold) 40%, transparent)}
#credits a:hover{opacity:1;border-bottom-color:var(--gold)}
/* Serene: light room — gold credits/footer wash out, use the header ink color */
#room[data-theme="serene"] #credits{color:var(--roomInk);opacity:.62}
#room[data-theme="serene"] #credits a{color:var(--roomInk);
  border-bottom-color:color-mix(in oklab,var(--roomInk) 45%, transparent)}
#room[data-theme="serene"] #credits a:hover{border-bottom-color:var(--roomInk)}
#room[data-theme="serene"] #pgInfo,
#room[data-theme="serene"] #pgInfo b{font-weight:700;color:var(--bg);text-shadow:none}
#room[data-theme="serene"] #wordmark .wm2{text-shadow:none}
#pager{position:absolute;left:0;right:0;bottom:0;height:80px;z-index:40;
  display:flex;align-items:center;justify-content:center;gap:20px}
.pg-btn{appearance:none;cursor:pointer;width:46px;height:46px;border-radius:50%;
  display:grid;place-items:center;color:var(--roomInk);
  background:var(--bg);
  border:1px solid color-mix(in oklab,var(--roomInk) 55%, transparent);
  transition:background .25s,transform .15s,opacity .25s}
.pg-btn:hover{background:color-mix(in oklab,var(--gold) 26%, transparent);transform:scale(1.06)}
.pg-btn[disabled]{opacity:.28;cursor:default;pointer-events:none}
.pg-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
#pgCenter{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:230px;cursor:pointer}
#pgCenter:hover #pgInfo{color:var(--roomInk)}
#pgInfo{font-family:var(--fontHead);font-size:13.5px;letter-spacing:.13em;font-weight:600;
  text-transform:uppercase;color:var(--roomInk);text-align:center;
  text-shadow:0 1px 2px color-mix(in oklab,var(--bg) 70%, transparent)}
#pgInfo b{color:var(--roomInk);font-weight:600}
#pgTrack{width:230px;height:3px;border-radius:3px;
  background:color-mix(in oklab,var(--roomInk) 42%, transparent);overflow:hidden}
#pgFill{height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--gold));
  border-radius:3px;transition:width .45s cubic-bezier(.4,0,.2,1)}

/* ---- cover ---- */
.cover{min-height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;text-align:center;gap:4px;padding:0 0 20px;
  margin-top:calc(8px - clamp(34px,5vw,68px))}
.cover-logo{width:120px;height:120px;object-fit:contain;margin-bottom:8px;
  color:var(--accent2)}
.cover-logo svg{width:100%;height:100%}
.cover-over{font-family:var(--fontHead);font-size:calc(13px * var(--fs,1));letter-spacing:.36em;
  text-transform:uppercase;color:var(--accent);margin-top:6px}
.cover-title{font-family:var(--fontHead);font-weight:400;color:var(--ink);
  font-size:calc(clamp(32px,5vw,56px) * var(--fs,1));line-height:1.04;margin:.28em 0 .14em;
  max-width:none;text-wrap:balance}
.cover-rule{width:64px;height:1px;background:var(--gold);margin:.7em 0;opacity:.7}
.cover-sub{font-family:var(--fontBody);font-style:italic;color:var(--inkSoft);
  font-size:calc(clamp(15px,1.6vw,18px) * var(--fs,1));max-width:54ch;line-height:var(--lh,1.7)}
.cover-meta{font-family:var(--fontHead);font-size:calc(12.5px * var(--fs,1));letter-spacing:.18em;
  text-transform:uppercase;color:var(--inkSoft);margin-top:1.6em}
.cover-hint{font-family:var(--fontBody);font-size:calc(15px * var(--fs,1));color:var(--accent);
  margin-top:2.4em;display:inline-flex;align-items:center;gap:9px;opacity:.92;
  cursor:pointer;background:none;border:0;appearance:none;padding:9px 6px;
  transition:gap .2s ease,opacity .2s ease}
.cover-hint:hover{gap:15px;opacity:1}
.cover-hint svg{width:22px;height:13px;stroke:currentColor;fill:none;stroke-width:1.6;
  animation:nudge 1.8s ease-in-out infinite}
.cover-photo{display:none;width:min(440px,100%);margin:0 auto 22px;line-height:0;
  border-radius:10px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 20px 50px -22px rgba(0,0,0,.6)}
.cover.has-photo .cover-photo{display:block;margin-top:-28px}
.cover-photo img{width:100%;height:auto;display:block}
.cover.has-photo .cover-logo{width:144px;height:144px;margin:0}
.cover.has-photo .cover-title{font-size:calc(clamp(24px,4vw,42px) * var(--fs,1));margin-top:.16em}
.cm-count,.cm-range{display:inline}

/* hero image at top of a post */
.p-hero{display:block;position:relative;width:100%;aspect-ratio:16/9.9;margin:0 0 1.8em;padding:0;border:0;
  border-radius:11px;overflow:hidden;cursor:pointer;background:var(--paper2);
  border:1px solid var(--line);box-shadow:0 16px 38px -20px rgba(0,0,0,.5)}
.p-hero img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.p-hero:hover img{transform:scale(1.045)}
.p-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;opacity:0;
  background:radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,.22) 100%)}
.p-hero.img-loaded::after{opacity:1}
/* portrait hero: vertical crop, floated left with text flowing down the right */
.p-hero.p-hero-portrait{float:left;width:min(50%,360px);aspect-ratio:3/4;
  margin:.2em 1.9em .9em 0;shape-outside:inset(0 round 11px)}
.rss-content > .p-hero.p-hero-portrait + *{margin-top:0}

/* ---- index drawer ---- */
#scrim{position:absolute;inset:0;z-index:60;background:rgba(8,5,3,.55);
  backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .35s}
#scrim.show{opacity:1;pointer-events:auto}
#drawer{position:absolute;top:0;right:0;bottom:0;z-index:70;width:min(440px,86vw);
  transform:translateX(104%);transition:transform .42s cubic-bezier(.5,0,.2,1);
  background:var(--paper);color:var(--ink);display:flex;flex-direction:column;
  box-shadow:-24px 0 60px -20px rgba(0,0,0,.6)}
#drawer.show{transform:translateX(0)}
.dw-head{display:flex;align-items:center;justify-content:space-between;
  padding:22px 24px 16px;border-bottom:1px solid var(--line)}
.dw-head h2{font-family:var(--fontHead);font-weight:400;font-size:22px;color:var(--ink)}
.dw-head .dw-sub{font-family:var(--fontBody);font-style:italic;font-size:13px;color:var(--inkSoft)}
.dw-close{appearance:none;cursor:pointer;background:none;border:1px solid var(--line);
  border-radius:50%;width:36px;height:36px;display:grid;place-items:center;color:var(--ink)}
.dw-close:hover{background:var(--paper2)}
.dw-close svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
#indexList{overflow-y:auto;padding:10px 14px 26px;flex:1 1 auto}
.dw-credits{display:none;flex:0 0 auto;padding:14px 24px 18px;border-top:1px solid var(--line);
  font-family:var(--fontBody);font-size:12px;letter-spacing:.03em;color:var(--inkSoft)}
.dw-credits a{color:var(--accent2);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--accent2) 40%, transparent)}
.dw-credits a:hover{border-bottom-color:var(--accent2)}
#indexList::-webkit-scrollbar{width:8px}
#indexList::-webkit-scrollbar-thumb{background:color-mix(in oklab,var(--inkSoft) 40%, transparent);border-radius:8px}
.idx-item{display:flex;gap:14px;align-items:flex-start;padding:13px 12px;cursor:pointer;
  border-radius:10px;position:relative;transition:background .2s}
.idx-item:hover{background:var(--paper2)}
.idx-item.active{background:color-mix(in oklab,var(--accent) 12%, transparent)}
.idx-rail{flex:0 0 18px;display:flex;flex-direction:column;align-items:center;align-self:stretch;padding-top:5px}
.idx-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--accent);
  background:var(--paper);flex:0 0 auto;z-index:1}
.idx-item.active .idx-dot{background:var(--accent)}
.idx-line{width:2px;flex:1;background:var(--line);margin-top:3px}
.idx-item:last-child .idx-line{display:none}
.idx-body{flex:1;min-width:0}
.idx-date{font-family:var(--fontHead);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent)}
.idx-title{font-family:var(--fontHead);font-size:16.5px;color:var(--ink);margin:2px 0 4px;line-height:1.2}
.idx-ex{font-family:var(--fontBody);font-size:13px;color:var(--inkSoft);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.idx-thumb{flex:0 0 62px;width:62px;height:62px;border-radius:8px;overflow:hidden;
  border:1px solid var(--line);background:var(--paper2);display:grid;place-items:center;color:var(--accent2)}
.idx-thumb img{width:100%;height:100%;object-fit:cover}
.idx-thumb svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.6}

/* ---- lightbox ---- */
#lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  background:rgba(10,7,5,.93);backdrop-filter:blur(6px)}
#lightbox.show{display:flex;animation:fade .25s ease}
#lbImg{max-width:92vw;max-height:80vh;object-fit:contain;border-radius:6px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}
#lbVideo{display:none;width:min(92vw,1100px);aspect-ratio:16/9;border-radius:8px;overflow:hidden;
  background:#000;box-shadow:0 30px 80px -20px rgba(0,0,0,.8)}
#lbVideo iframe{width:100%;height:100%;border:0}
.lb-btn{position:absolute;appearance:none;cursor:pointer;width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;color:#f5ecdd;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);transition:background .2s,transform .15s}
.lb-btn:hover{background:rgba(255,255,255,.18);transform:scale(1.06)}
.lb-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8}
#lbPrev{left:max(18px,3vw)}
#lbNext{right:max(18px,3vw)}
#lbClose{top:22px;right:max(18px,3vw);width:46px;height:46px}
#lbCount{position:absolute;top:30px;left:50%;transform:translateX(-50%);
  font-family:var(--fontHead);letter-spacing:.2em;color:#f5ecdd;font-size:14px}
#lbCap{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-family:var(--fontBody);font-style:italic;color:#cdbfa9;font-size:14px;
  max-width:80vw;text-align:center}

/* ---- loader / error ---- */
#loader{position:absolute;inset:72px 26px 78px;z-index:15;display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--roomSoft)}
#loader .ring{width:46px;height:46px;border-radius:50%;border:3px solid color-mix(in oklab,var(--roomInk) 18%,transparent);
  border-top-color:var(--gold);animation:spin 1s linear infinite}
#loader .lt{font-family:var(--fontHead);letter-spacing:.22em;text-transform:uppercase;font-size:13px}
#errorBox{display:none;text-align:center;max-width:420px;line-height:1.6}
#errorBox.show{display:block}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}

@media (max-width:820px){
  #topbar{min-height:62px;height:auto;padding:8px 14px;gap:10px}
  #tools{flex:0 0 auto}
  #brand{flex:1 1 auto;min-width:0}
  #wordmark{display:flex}
  #wordmark .wm1{font-size:8.5px;letter-spacing:.26em;margin-bottom:4px}
  #wordmark .wm2{font-size:13px;line-height:1.15;white-space:normal;overflow:visible;
    text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  #stage{inset:70px 2.5vw 78px;perspective:1600px}
  #leaf{border-radius:4px;width:100%}
  #leaf::after{display:none}
  .chip span.lbl{display:none}
  #themeWrap{display:none}
  .pop-theme-only{display:block}
  .pop-theme-row{display:flex;flex-wrap:nowrap}
  #fontPop{min-width:248px}
  .p-hero.p-hero-portrait{float:none;width:100%;aspect-ratio:4/5;margin:0 0 1.8em}
  .sw{width:22px;height:22px}
  #pager{gap:14px;height:74px}
  #pgCenter{min-width:0;width:auto;flex:0 1 auto}
  #pgTrack{min-width:0;width:130px}
  #pgInfo{font-size:10.5px;letter-spacing:.08em}
  .pg-btn{width:42px;height:42px}
  #credits{display:none}
  .dw-credits{display:block}
  .wfp-gallery{grid-template-columns:repeat(2,1fr)}
  .cover-meta{display:flex;flex-direction:column;gap:5px;line-height:1.4}
  .cm-dot{display:none}
  .cover{margin-top:calc(-1 * clamp(34px,5vw,68px) - 14px)}
}
