/* =====================================================================
   Palmer Stadum — Living Story · app layout (extends living-stories.css)
   ===================================================================== */
.app-shell{max-width:1340px;margin:0 auto;padding:0 40px;}

/* ---------- HERO ---------- */
.story-hero{padding:56px 0 40px;}
.story-hero .grid{display:grid;grid-template-columns:1fr 360px;gap:56px;align-items:end;}
.story-hero .kicker{display:flex;align-items:center;gap:13px;}
.story-hero h1{font-size:64px;line-height:0.98;letter-spacing:-0.025em;margin-top:16px;}
.story-hero .life{font-family:var(--mono);font-size:14px;color:var(--brass-2);margin-top:14px;letter-spacing:0.04em;}
.story-hero .summary{font-size:19px;line-height:1.6;color:var(--ink-70);max-width:54ch;margin-top:22px;font-weight:300;}
.story-hero .meta{margin-top:24px;}
.story-hero .actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:30px;}
.story-hero .portrait{aspect-ratio:4/5;}
.whatsnew-pill{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:0.04em;text-transform:uppercase;color:var(--green);background:var(--green-tint);
  border-radius:var(--r-pill);padding:6px 13px;}
.whatsnew-pill .n{background:var(--green);color:var(--paper);border-radius:var(--r-pill);padding:1px 8px;font-size:11px;}
@media(max-width:900px){ .story-hero .grid{grid-template-columns:1fr;gap:32px;} .story-hero h1{font-size:46px;} .story-hero .portrait{display:none;} }

/* ---------- CONTROL BAR (lens switcher + importance) ---------- */
.controlbar{position:sticky;top:0;z-index:50;background:rgba(244,238,226,0.93);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.controlbar .inner{max-width:1340px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;height:58px;}
.lenstabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;}
.lenstabs::-webkit-scrollbar{display:none;}
.lenstab{font-family:var(--sans);font-size:13.5px;font-weight:600;letter-spacing:0.02em;color:var(--ink-50);
  background:none;border:none;cursor:pointer;padding:8px 14px;border-radius:var(--r-sm);position:relative;white-space:nowrap;
  display:inline-flex;align-items:center;gap:8px;transition:color .15s var(--ease);}
.lenstab svg{width:15px;height:15px;opacity:0.65;}
.lenstab:hover{color:var(--ink);}
.lenstab.active{color:var(--green);}
.lenstab.active svg{opacity:1;}
.lenstab.active::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--green);}
.lenstab .cnt{font-family:var(--mono);font-size:10px;color:var(--ink-50);}

.importance{display:flex;align-items:center;gap:10px;flex:none;}
.importance .lbl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-50);}
.seg{display:inline-flex;background:var(--paper-3);border-radius:var(--r-pill);padding:3px;}
.seg button{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:0.02em;color:var(--ink-70);
  background:none;border:none;cursor:pointer;padding:6px 13px;border-radius:var(--r-pill);transition:all .15s var(--ease);white-space:nowrap;}
.seg button.on{background:var(--green);color:var(--paper);}
@media(max-width:700px){ .importance .lbl{display:none;} }

/* ---------- APP GRID ---------- */
.app-grid{max-width:1340px;margin:0 auto;padding:36px 40px 100px;display:grid;grid-template-columns:1fr 324px;gap:48px;align-items:start;}
.app-grid.wide{display:block;padding-left:40px;padding-right:40px;}
.context-rail{position:sticky;top:74px;display:flex;flex-direction:column;gap:26px;}
.app-grid.wide .context-rail{display:none;}
.lens-root{min-width:0;}
@media(max-width:1000px){ .app-grid{grid-template-columns:1fr;} .context-rail{position:static;display:grid;grid-template-columns:repeat(2,1fr);gap:20px;} }
@media(max-width:600px){ .app-shell,.controlbar .inner,.app-grid{padding-left:20px;padding-right:20px;} .context-rail{grid-template-columns:1fr;} }

/* ---------- CONTEXT RAIL ---------- */
.rail-card{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);overflow:hidden;}
.rail-card > .hd{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ink-50);padding:14px 16px 10px;display:flex;align-items:center;justify-content:between;gap:8px;}
.rail-card > .hd .more{margin-left:auto;color:var(--green);cursor:pointer;font-size:10px;}
.spine{padding:4px 16px 16px;}
.spine .ev{display:grid;grid-template-columns:46px 1fr;gap:10px;padding:7px 0;cursor:pointer;border:none;background:none;text-align:left;width:100%;}
.spine .ev .yr{font-family:var(--mono);font-size:11px;color:var(--brass-2);padding-top:2px;}
.spine .ev .tt{font-family:var(--serif);font-size:15px;line-height:1.25;color:var(--ink);transition:color .15s var(--ease);}
.spine .ev:hover .tt{color:var(--green);}
.spine .ev .dot{display:none;}
.rail-people{padding:8px 14px 16px;display:flex;flex-wrap:wrap;gap:7px;}
.rail-themes{padding:8px 14px 16px;display:flex;flex-wrap:wrap;gap:7px;}
.theme-chip{font-family:var(--sans);font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--line);
  background:var(--paper);color:var(--ink-70);border-radius:var(--r-pill);padding:5px 11px;transition:all .15s var(--ease);
  display:inline-flex;align-items:center;gap:6px;}
.theme-chip:hover{border-color:var(--ink);color:var(--ink);}
.theme-chip.on{background:var(--brass-tint);border-color:transparent;color:var(--brass-2);}
.theme-chip .c{font-family:var(--mono);font-size:9.5px;opacity:0.7;}
.rail-audio{padding:6px 12px 12px;display:flex;flex-direction:column;gap:8px;}

/* ---------- STORY LENS ---------- */
.story-intro{font-family:var(--serif);font-weight:300;font-size:26px;line-height:1.45;letter-spacing:-0.01em;
  max-width:30ch;margin:0 0 18px;color:var(--ink);}
.filter-strip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 30px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.filter-strip .fl{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-50);margin-right:2px;}
.filter-clear{font-family:var(--sans);font-size:12px;color:var(--green);cursor:pointer;border:none;background:none;text-decoration:underline;}

.beat{display:grid;grid-template-columns:90px 1fr;gap:24px;position:relative;}
.beat .rail{position:relative;}
.beat .rail .yr{font-family:var(--mono);font-size:13px;color:var(--brass-2);letter-spacing:0.02em;padding-top:3px;}
.beat .rail .un{color:var(--ink-50);}
.beat .rail .dot{width:13px;height:13px;border-radius:50%;background:var(--paper);border:3px solid var(--paper);
  outline:1px solid var(--ink-50);position:absolute;left:-46px;top:6px;}
.beat.key .rail .dot{background:var(--brass);outline-color:var(--brass);width:15px;height:15px;left:-47px;}
.beat .line{position:absolute;left:-40px;top:20px;bottom:-26px;width:1px;background:var(--line);}
.beat:last-child .line{display:none;}
.beat .body{padding-bottom:46px;}
.beat h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:-0.015em;}
.beat.detail h3{font-size:24px;font-weight:500;}
.beat .new-tag{font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--green);background:var(--green-tint);border-radius:var(--r-pill);padding:3px 9px;margin-left:10px;vertical-align:middle;}
.beat p.prose{font-size:18px;line-height:1.62;color:var(--ink-70);margin:14px 0 0;max-width:60ch;}
.beat .beat-img{margin:20px 0 0;}
.beat .beat-img .ph{aspect-ratio:16/9;border-radius:var(--r);}
.beat.detail .beat-img .ph{aspect-ratio:21/9;}
.evi-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;align-items:center;}
.evi-chip{font-family:var(--sans);font-size:12.5px;font-weight:500;cursor:pointer;border:1px solid var(--line);
  background:var(--paper);color:var(--ink-70);border-radius:var(--r-sm);padding:6px 11px;display:inline-flex;align-items:center;gap:7px;
  transition:all .15s var(--ease);}
.evi-chip:hover{border-color:var(--ink);color:var(--ink);}
.evi-chip.on{border-color:var(--green);color:var(--green);background:var(--green-tint);}
.evi-chip .ic{width:13px;height:13px;opacity:0.7;}
.evi-chip.aud{color:var(--green);border-color:rgba(60,90,71,0.4);}
.evi-chip.aud:hover{background:var(--green-tint);}
.evi-people{font-family:var(--sans);font-size:12px;color:var(--ink-50);display:inline-flex;align-items:center;gap:7px;margin-left:4px;}

.evi-panel{margin-top:14px;border:1px solid var(--line);border-left:2px solid var(--green);border-radius:0 var(--r) var(--r) 0;
  background:var(--paper-2);overflow:hidden;}
.evi-panel.collapsed{display:none;}
.evi-detail{display:grid;grid-template-columns:200px 1fr;gap:0;}
.evi-detail .vis{border-right:1px solid var(--line);min-height:140px;}
.evi-detail .vis .ph,.evi-detail .vis .doc-preview{height:100%;border-radius:0;border:none;}
.evi-detail .info{padding:18px 20px;}
.evi-detail .info .ty{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--green);}
.evi-detail .info h5{font-family:var(--serif);font-weight:500;font-size:20px;margin:6px 0 0;}
.evi-detail .info .by{font-family:var(--mono);font-size:11px;color:var(--ink-50);margin-top:8px;letter-spacing:0.02em;}
.evi-detail .info .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;}
.evi-detail .info .view{margin-top:16px;}
.mini-audio{margin-top:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--green);color:#EFE7D6;padding:16px 18px;display:flex;align-items:center;gap:14px;}
.mini-audio.collapsed{display:none;}
.mini-audio .pb{width:44px;height:44px;border-radius:50%;background:#EFE7D6;color:var(--green);border:none;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;}
.mini-audio .pb svg{width:16px;height:16px;}
.mini-audio .scrub{flex:1;height:4px;background:rgba(239,231,214,0.25);border-radius:3px;position:relative;cursor:pointer;}
.mini-audio .scrub .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#EFE7D6;border-radius:3px;}
.mini-audio .nm{font-family:var(--sans);font-size:12.5px;font-weight:600;}
.mini-audio .tm{font-family:var(--mono);font-size:11px;color:rgba(239,231,214,0.8);}

/* hairline card-style variant (tweak) */
.cardstyle-hairline .ls-card,.cardstyle-hairline .source-card,.cardstyle-hairline .rail-card,.cardstyle-hairline .evi-panel{border-radius:0;}
.cardstyle-hairline .ls-card,.cardstyle-hairline .source-card{border:none;border-top:1px solid var(--line);box-shadow:none!important;}
.cardstyle-hairline .source-card:hover{transform:none;box-shadow:none!important;}

/* density (tweak) */
.density-compact .beat .body{padding-bottom:30px;}
.density-compact .beat h3{font-size:26px;}
.density-compact .beat p.prose{font-size:16px;margin-top:10px;}
.density-compact .beat{gap:18px;}

/* accent (tweak) */
.accent-brass{--green:#A9854E;--green-2:#8A6C3C;--green-tint:#EFE3CB;}

/* ---------- LENS HEADER ---------- */
.lens-head{margin-bottom:26px;}
.lens-head h2{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-0.015em;}
.lens-head p{font-size:16px;color:var(--ink-70);margin:8px 0 0;max-width:62ch;}
.lens-note{font-family:var(--mono);font-size:11px;color:var(--ink-50);margin-top:10px;display:flex;align-items:center;gap:8px;}
.lens-note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brass);flex:none;}

/* ---------- TIMELINE LENS ---------- */
#timeline-embed{width:100%;height:min(80vh,860px);min-height:620px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);}
.tl-timeline{font-family:var(--sans)!important;background:var(--paper)!important;}
.tl-timeline h2,.tl-timeline h3,.tl-headline{font-family:var(--serif)!important;font-weight:400!important;color:var(--ink)!important;letter-spacing:-0.01em!important;}
.tl-text-content,.tl-text p{font-family:var(--serif)!important;color:var(--ink-70)!important;}
.tl-slide{background:var(--paper)!important;}
.tl-menubar,.tl-timenav{background:var(--paper-2)!important;}
.tl-menubar{box-shadow:none!important;border-color:var(--line)!important;}
.tl-timemarker.tl-timemarker-active .tl-timemarker-content-container{background:var(--green)!important;border-color:var(--green)!important;}
.tl-timemarker.tl-timemarker-active .tl-timemarker-text h2,.tl-timemarker.tl-timemarker-active .tl-timemarker-text h3{color:#F4EEE2!important;}
.tl-timemarker.tl-timemarker-active .tl-timemarker-line-right,.tl-timemarker.tl-timemarker-active .tl-timemarker-line-left{border-color:var(--green)!important;}
.tl-timemarker.tl-timemarker-active .tl-timemarker-line-right:after,.tl-timemarker.tl-timemarker-active .tl-timemarker-line-left:after{background-color:var(--green)!important;}
.tl-headline-date{font-family:var(--sans)!important;color:var(--brass)!important;text-transform:uppercase;letter-spacing:0.08em!important;}
.tl-caption,.tl-credit{font-family:var(--mono)!important;}
.tl-text .map-embed{width:100%;height:300px;border:1px solid var(--line);display:block;margin:6px 0;}
.tl-text audio{width:100%;margin:8px 0;}

/* ---------- PEOPLE / GRAPH LENS ---------- */
.graph-wrap{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start;}
#graph{width:100%;height:600px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper-2);
  background-image:radial-gradient(rgba(35,33,28,0.05) 1px,transparent 1px);background-size:22px 22px;cursor:grab;overflow:hidden;}
#graph:active{cursor:grabbing;}
#graph text{font-family:var(--sans);}
.graph-node circle{cursor:pointer;transition:stroke-width .15s;}
.graph-node text{pointer-events:none;}
.graph-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.graph-legend .lg{display:inline-flex;align-items:center;gap:7px;font-family:var(--sans);font-size:12px;color:var(--ink-70);}
.graph-legend .lg .sw{width:11px;height:11px;border-radius:50%;}
.node-detail{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:20px;position:sticky;top:74px;}
.node-detail .kindlbl{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;}
.node-detail h4{font-family:var(--serif);font-weight:500;font-size:22px;margin:6px 0 0;line-height:1.15;}
.node-detail .role{font-family:var(--sans);font-size:12.5px;color:var(--ink-50);margin-top:5px;}
.node-detail .nd-blurb{font-size:15.5px;color:var(--ink-70);line-height:1.5;margin-top:14px;}
.node-detail .nd-conn{margin-top:16px;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-50);}
.node-detail .nd-list{display:flex;flex-direction:column;gap:1px;margin-top:8px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.node-detail .nd-list a{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--paper);font-family:var(--sans);font-size:13px;cursor:pointer;color:var(--ink);}
.node-detail .nd-list a:hover{background:var(--paper-2);}
.node-detail .nd-list .d{width:7px;height:7px;border-radius:50%;flex:none;}
@media(max-width:900px){ .graph-wrap{grid-template-columns:1fr;} #graph{height:460px;} .node-detail{position:static;} }

/* ---------- PLACES LENS ---------- */
.places-wrap{display:grid;grid-template-columns:300px 1fr;gap:24px;align-items:start;}
#map{width:100%;height:600px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper-3);z-index:1;}
.leaflet-container{font-family:var(--sans)!important;background:var(--paper-3)!important;}
.place-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.place-item{background:var(--paper);padding:15px 16px;cursor:pointer;text-align:left;border:none;width:100%;transition:background .15s var(--ease);}
.place-item:hover,.place-item.on{background:var(--paper-2);}
.place-item .nm{font-family:var(--serif);font-size:18px;font-weight:500;display:flex;align-items:center;gap:9px;}
.place-item .nm .pin{width:18px;height:18px;border-radius:50% 50% 50% 0;background:var(--blue);transform:rotate(-45deg);flex:none;display:inline-flex;align-items:center;justify-content:center;}
.place-item .nm .pin::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--paper);}
.place-item .note{font-size:14px;color:var(--ink-70);line-height:1.45;margin-top:7px;}
.place-popup{font-family:var(--serif);}
.place-popup b{font-family:var(--sans);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--green);display:block;margin-bottom:3px;}
@media(max-width:900px){ .places-wrap{grid-template-columns:1fr;} #map{height:420px;} }

/* ---------- AUDIO LENS ---------- */
.audio-lens{display:flex;flex-direction:column;gap:20px;}
.audio-hero{background:var(--green);color:#EFE7D6;border-radius:var(--r-lg);padding:36px 40px;position:relative;overflow:hidden;}
.audio-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,0.025) 0 2px,transparent 2px 14px);}
.audio-hero > *{position:relative;z-index:1;}
.audio-hero h3{font-family:var(--serif);color:#F4EEE2;font-size:30px;font-weight:400;margin-top:14px;}
.audio-hero .desc{color:rgba(239,231,214,0.8);font-size:16px;line-height:1.5;font-weight:300;margin-top:12px;max-width:46ch;}
.audio-hero .player{display:flex;align-items:center;gap:16px;margin-top:24px;}
.audio-hero .pb{width:58px;height:58px;border-radius:50%;background:#EFE7D6;color:var(--green);border:none;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;}
.audio-hero .pb svg{width:20px;height:20px;}
.audio-hero .scrub{flex:1;height:5px;background:rgba(239,231,214,0.25);border-radius:3px;position:relative;cursor:pointer;}
.audio-hero .scrub .fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#EFE7D6;border-radius:3px;}
.audio-hero .tm{font-family:var(--mono);font-size:12px;color:rgba(239,231,214,0.85);}
.ep-grid{display:flex;flex-direction:column;gap:14px;}
.ep{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:18px 20px;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
.ep:hover{border-color:var(--ink);box-shadow:var(--shadow);}
.ep .cover{width:64px;height:64px;border-radius:var(--r);flex:none;background:var(--green);color:#EFE7D6;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.ep .cover svg{width:22px;height:22px;}
.ep .cover::after{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,0.07) 0 2px,transparent 2px 9px);}
.ep h4{font-family:var(--serif);font-size:19px;font-weight:500;}
.ep .sub{font-family:var(--sans);font-size:12.5px;color:var(--ink-50);margin-top:5px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.ep-expand{border:1px solid var(--line);border-top:none;border-radius:0 0 var(--r) var(--r);background:var(--paper-2);padding:20px;margin-top:-14px;}
.ep-expand.collapsed{display:none;}
.ep-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
@media(max-width:700px){ .ep-cols{grid-template-columns:1fr;} .ep{grid-template-columns:auto 1fr;} .ep .listen{grid-column:1/-1;} }

/* ---------- SOURCES LENS ---------- */
.sources-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px;}
.chart-card{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);padding:22px 24px;margin-bottom:28px;}
.chart-card .hd{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-50);margin-bottom:6px;}
.chart-card .sub{font-family:var(--serif);font-size:22px;font-weight:400;margin-bottom:18px;}
#archiveChart{width:100%;}
#archiveChart text{font-family:var(--sans);}
.sources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:760px){ .sources-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:480px){ .sources-grid{grid-template-columns:1fr;} }
.src-expand{grid-column:1/-1;}
