@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500;600;700&family=Courier+Prime:wght@400;700&display=swap');
*{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#0a0a0c;--surface:#111116;--surface2:#1a1a22;--border:#2a2a35;--text:#c8c8d0;--text-dim:#6a6a78;--text-bright:#e8e8f0;--accent:#ff3333;--accent-dim:#991a1a;--green:#33ff66;--yellow:#ffcc33;--cyan:#33ccff;--purple:#aa66ff;--orange:#ff9933;--scanline:rgba(255,255,255,0.015)}
html,body{width:100%;height:100%;background:var(--bg);color:var(--text);font-family:'IBM Plex Mono','Courier Prime',monospace;overflow:hidden;cursor:crosshair}
body::before{content:'';position:fixed;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent,transparent 3px,var(--scanline) 3px,var(--scanline) 6px);pointer-events:none;z-index:1000}
body::after{content:'';position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,0.3) 100%);pointer-events:none;z-index:999}

#header{position:fixed;top:0;left:0;right:0;height:42px;background:var(--surface);border-bottom:1px solid var(--accent-dim);display:flex;align-items:center;justify-content:space-between;padding:0 14px;z-index:100}
#header .left{display:flex;align-items:center;gap:10px}
.classification{background:var(--accent);color:#000;font-size:7px;font-weight:700;letter-spacing:3px;padding:2px 7px;text-transform:uppercase;animation:blink-slow 3s ease-in-out infinite}
@keyframes blink-slow{0%,100%{opacity:1}50%{opacity:.6}}
#header .title{font-size:11px;font-weight:600;letter-spacing:2px;color:var(--text-bright);text-transform:uppercase}
#header .right{display:flex;align-items:center;gap:14px;font-size:9px;color:var(--text);letter-spacing:1px}
.ca-container{display:flex;align-items:center;gap:0;border:1px solid var(--green);border-radius:2px;overflow:hidden;box-shadow:0 0 12px rgba(102,221,170,.25)}
.ca-btn{background:linear-gradient(135deg,var(--green),var(--cyan));color:#000;font-weight:700;font-size:8px;letter-spacing:1px;padding:4px 10px;cursor:pointer;transition:all .2s;text-transform:uppercase;white-space:nowrap}
.ca-btn:hover{filter:brightness(1.15)}
.ca-address{background:rgba(102,221,170,.1);color:var(--green);font-size:9px;letter-spacing:0;padding:4px 10px;cursor:pointer;transition:all .2s;font-family:'IBM Plex Mono',monospace;white-space:nowrap}
.ca-address:hover{background:rgba(102,221,170,.2);color:var(--text-bright)}
.ca-address.copied{background:var(--accent);color:#000}
.status-dot{width:5px;height:5px;background:var(--green);border-radius:50%;animation:pulse 2s ease-in-out infinite;display:inline-block}
.help-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--cyan);background:transparent;color:var(--cyan);font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:inherit}
.help-btn:hover{background:var(--cyan);color:#000;box-shadow:0 0 12px rgba(51,204,255,.4)}
@keyframes pulse{0%,100%{box-shadow:0 0 3px var(--green)}50%{box-shadow:0 0 10px var(--green)}}

/* HELP MODAL */
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);z-index:200;display:none;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
.modal-overlay.active{display:flex}
.modal-content{background:var(--bg);border:1px solid var(--accent);max-width:600px;max-height:85vh;overflow-y:auto;padding:24px;position:relative;box-shadow:0 0 60px rgba(255,51,51,.2)}
.modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.modal-close:hover{border-color:var(--accent);color:var(--accent)}
.modal-content h2{font-size:14px;letter-spacing:2px;color:var(--accent);margin-bottom:20px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.modal-content h3{font-size:10px;letter-spacing:2px;color:var(--cyan);margin:16px 0 10px;text-transform:uppercase}
.help-section{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}
.help-section:last-of-type{border-bottom:none}
.help-section ul{margin:0;padding-left:18px;font-size:11px;line-height:1.8;color:var(--text)}
.help-section li{margin-bottom:4px}
.help-section li b{color:var(--text-bright)}
.help-section p{font-size:11px;line-height:1.7;color:var(--text);margin:8px 0}
.help-section code{background:var(--surface2);padding:2px 6px;font-size:10px;color:var(--green)}
.help-grid{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px 12px;font-size:10px;align-items:center}
.help-dot{width:10px;height:10px;border-radius:50%}

#graph-container{position:fixed;top:42px;left:0;right:0;bottom:0}
#graph-container svg{width:100%;height:100%}
#grid-overlay{position:fixed;top:42px;left:0;right:0;bottom:0;pointer-events:none;z-index:1;opacity:.03;background-image:linear-gradient(var(--text-dim) 1px,transparent 1px),linear-gradient(90deg,var(--text-dim) 1px,transparent 1px);background-size:60px 60px}
.node-label{font-family:'IBM Plex Mono',monospace;pointer-events:none;text-transform:uppercase;letter-spacing:1.2px;paint-order:stroke;stroke:#0a0a0c;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}

/* LIVE INTEL TICKER */
#intel-ticker{position:fixed;bottom:0;left:0;right:0;height:32px;background:rgba(10,10,12,.97);border-top:1px solid var(--accent-dim);z-index:100;overflow:hidden;display:flex;align-items:center}
#intel-ticker .ticker-label{background:var(--accent);color:#000;font-size:8px;font-weight:700;letter-spacing:2px;padding:0 12px;height:100%;display:flex;align-items:center;white-space:nowrap;flex-shrink:0}
#intel-ticker .ticker-content{flex:1;overflow:hidden;position:relative;height:100%;display:flex;align-items:center}
.ticker-track{display:flex;white-space:nowrap;position:absolute;animation:ticker-scroll linear infinite}
.ticker-track span{font-size:10px;letter-spacing:1px;color:var(--text);padding:0 30px;display:inline-block}
.ticker-track .sep{color:var(--accent);font-weight:700}
@keyframes ticker-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* LIVE CHAT FEED */
#live-feed{position:fixed;bottom:34px;left:14px;width:340px;max-height:260px;z-index:50;display:flex;flex-direction:column;transition:all .3s ease}
#live-feed.tl-active{bottom:90px}
#live-feed.minimized #feed-messages{display:none}
#live-feed.panel-open{left:14px}
.feed-header{font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;display:flex;align-items:center;gap:6px;pointer-events:auto;cursor:pointer;user-select:none;padding:4px 8px;background:rgba(17,17,22,.92);border:1px solid var(--accent-dim)}
.feed-header .intel-badge{color:var(--accent);font-weight:700;text-shadow:0 0 8px rgba(255,51,51,.5);animation:intel-glow 2s ease-in-out infinite}
@keyframes intel-glow{0%,100%{text-shadow:0 0 6px rgba(255,51,51,.4)}50%{text-shadow:0 0 14px rgba(255,51,51,.7)}}
.feed-header .minimize-btn{margin-left:auto;font-size:10px;color:var(--text-dim);transition:transform .2s}
#live-feed.minimized .minimize-btn{transform:rotate(180deg)}
#feed-messages{display:flex;flex-direction:column;gap:3px;overflow:hidden}
.feed-msg{padding:6px 10px;background:rgba(17,17,22,.92);border-left:2px solid var(--border);font-size:10px;line-height:1.5;color:var(--text);animation:feed-in .5s ease-out;backdrop-filter:blur(4px);pointer-events:auto;cursor:default;transition:border-color .2s}
.feed-msg:hover{border-color:var(--accent);color:var(--text-bright)}
.feed-msg .feed-tag{font-size:7px;letter-spacing:1.5px;text-transform:uppercase;margin-right:4px;font-weight:600}
.feed-msg .feed-tag.alert{color:var(--accent)}.feed-msg .feed-tag.intel{color:var(--cyan)}.feed-msg .feed-tag.share{color:var(--green)}.feed-msg .feed-tag.breaking{color:var(--yellow)}
@keyframes feed-in{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}

/* INFO PANEL */
#info-panel{position:fixed;top:56px;right:16px;width:390px;max-height:calc(100vh - 100px);background:rgba(17,17,22,.97);border:1px solid var(--border);z-index:60;display:none;overflow-y:auto;box-shadow:0 4px 40px rgba(0,0,0,.6);scrollbar-width:thin;scrollbar-color:var(--accent) var(--surface)}
#info-panel.active{display:block}
.panel-header{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:var(--surface2);position:sticky;top:0;z-index:10}
.panel-header h2{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text-bright)}
.close-btn{width:24px;height:24px;background:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-family:inherit}
.close-btn:hover{border-color:var(--accent);color:var(--accent)}
.panel-body{padding:14px}
.field{margin-bottom:12px}.field-label{font-size:8px;letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:3px}.field-value{font-size:11px;color:var(--text-bright);line-height:1.7}
.tag{display:inline-block;padding:2px 6px;font-size:8px;letter-spacing:1px;text-transform:uppercase;margin:0 3px 3px 0}
.connections-list{list-style:none;padding:0}.connections-list li{padding:5px 0;border-bottom:1px solid var(--border);font-size:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--text)}.connections-list li:hover{color:var(--accent)}.connections-list li:last-child{border-bottom:none}
.conn-type{font-size:7px;letter-spacing:1px;text-transform:uppercase;padding:2px 5px;background:var(--surface2);border:1px solid var(--border);color:var(--text-dim)}
.panel-actions{display:flex;gap:5px;margin-bottom:10px;flex-wrap:wrap}
.action-btn{padding:6px 12px;font-family:inherit;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .2s}
.action-btn:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,51,51,.06)}
.action-btn svg{width:12px;height:12px;fill:currentColor}

/* PROMINENT SHARE IMAGE BUTTON */
.share-image-btn{width:100%;padding:12px 16px;margin-bottom:12px;font-family:inherit;font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;border:2px solid var(--accent);background:linear-gradient(135deg,rgba(255,51,51,.15),rgba(255,51,51,.05));color:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s;animation:pulse-share 2s ease-in-out infinite}
.share-image-btn:hover{background:linear-gradient(135deg,rgba(255,51,51,.3),rgba(255,51,51,.15));box-shadow:0 0 20px rgba(255,51,51,.3);transform:translateY(-1px)}
.share-image-btn svg{width:18px;height:18px;fill:currentColor}
@keyframes pulse-share{0%,100%{box-shadow:0 0 5px rgba(255,51,51,.2)}50%{box-shadow:0 0 15px rgba(255,51,51,.4)}}

/* FILTERS */
#filter-bar{position:fixed;top:56px;left:14px;z-index:50;display:flex;flex-direction:column;gap:3px}
.filter-btn{padding:5px 11px;font-family:'IBM Plex Mono',monospace;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border);background:rgba(17,17,22,.9);color:var(--text);cursor:pointer;white-space:nowrap;transition:all .2s}
.filter-btn:hover{border-color:var(--text);color:var(--text-bright)}
.filter-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(255,51,51,.08)}
.filter-btn.reset-btn{border-color:var(--text-dim);color:var(--text-dim);margin-top:6px;font-size:9px;letter-spacing:1px}
.filter-btn.reset-btn:hover{border-color:var(--cyan);color:var(--cyan);background:rgba(51,204,255,.08)}
.filter-btn.reset-btn.autoplay-active{border-color:var(--green);color:var(--green);background:rgba(102,221,170,.1);animation:pulse-glow 2s ease-in-out infinite}
@keyframes pulse-glow{0%,100%{box-shadow:none}50%{box-shadow:0 0 8px rgba(102,221,170,.3)}}

/* LEGEND */
#legend{position:fixed;top:56px;right:16px;z-index:40;display:flex;flex-direction:column;gap:3px;opacity:.7}
#legend.panel-open{display:none}
.legend-item{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--text)}
.legend-dot{width:8px;height:8px;border-radius:50%}

/* STATS */
#stats-bar{position:fixed;bottom:46px;left:14px;display:flex;gap:18px;z-index:50}
.stat-item{display:flex;flex-direction:column;gap:0}.stat-label{font-size:7px;letter-spacing:2px;text-transform:uppercase;color:var(--text-dim)}.stat-value{font-size:14px;font-weight:600;color:var(--text-bright)}

#reveal-counter{position:fixed;bottom:46px;left:50%;transform:translateX(-50%);z-index:50;text-align:center}
.counter-label{font-size:7px;letter-spacing:3px;text-transform:uppercase;color:var(--text-dim)}.counter-value{font-size:22px;font-weight:700;color:var(--accent);text-shadow:0 0 20px rgba(255,51,51,.4)}

/* CASUALTY COUNTER - MATCHES LEGEND STYLE */
#casualty-counter{
  position:fixed;
  top:220px;
  right:36px;
  z-index:40;
  display:flex;
  flex-direction:column;
  gap:3px;
  opacity:.7;
}
.casualty-header{
  font-size:8px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:2px;
}
.casualty-item{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:8px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--text);
}
.casualty-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
}
#legend.panel-open ~ #casualty-counter{display:none}
@media(max-width:768px){
  #casualty-counter{top:200px;right:8px}
}

#search-box{position:fixed;bottom:96px;right:16px;z-index:55}
#search-input{width:220px;padding:7px 12px;font-family:inherit;font-size:10px;letter-spacing:1px;background:rgba(17,17,22,.9);border:1px solid var(--border);color:var(--text-bright);outline:none}
#search-input::placeholder{color:var(--text-dim);text-transform:uppercase;font-size:8px;letter-spacing:2px}
#search-input:focus{border-color:var(--accent)}

#tooltip{position:fixed;padding:6px 10px;background:rgba(17,17,22,.95);border:1px solid var(--border);font-size:10px;letter-spacing:1px;color:var(--text-bright);pointer-events:none;z-index:200;display:none;white-space:nowrap;text-transform:uppercase}
#toast{position:fixed;top:56px;left:50%;transform:translateX(-50%);background:var(--surface2);border:1px solid var(--green);color:var(--green);padding:8px 20px;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;z-index:200;display:none;opacity:0;transition:opacity .3s}
#toast.show{display:block;opacity:1}

#share-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:300;display:none;align-items:center;justify-content:center}
#share-modal.active{display:flex}
.share-content{background:var(--surface);border:1px solid var(--border);padding:22px;max-width:420px;width:90%}


/* ============ MOBILE RESPONSIVE ============ */
@media(max-width:768px){
  #header{height:36px;padding:0 8px}
  #header .title{font-size:8px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45vw}
  .classification{font-size:6px;letter-spacing:1.5px;padding:1px 4px}
  #header .right{gap:6px;font-size:7px}
  #header .right span:nth-child(1){display:none}
  #graph-container{top:36px}
  #grid-overlay{top:36px}

  #filter-bar{top:42px;left:6px;gap:2px;max-height:calc(100vh - 140px);overflow-y:auto;scrollbar-width:none}
  #filter-bar::-webkit-scrollbar{display:none}
  .filter-btn{padding:3px 7px;font-size:7px;letter-spacing:1px}
  .filter-btn.reset-btn{font-size:7px}
  /* Hide autoplay on mobile */
  #autoplay-btn{display:none}

  #legend{top:42px;right:8px;gap:2px}
  .legend-item{font-size:7px;gap:3px}
  .legend-dot{width:6px;height:6px}

  #info-panel{top:38px;right:0;left:0;width:100%;max-height:65vh;border-left:none;border-right:none}
  #legend.panel-open{display:none}

  #stats-bar{bottom:38px;left:6px;gap:8px}
  .stat-label{font-size:6px}.stat-value{font-size:11px}
  #reveal-counter{display:none}

  #search-box{bottom:76px;right:6px}
  #search-input{width:140px;padding:5px 8px;font-size:9px}

  /* Live feed: collapsed by default on mobile, narrower */
  #live-feed{width:260px;left:6px;bottom:38px;max-height:180px}
  #live-feed.tl-active{bottom:78px}
  #live-feed #feed-messages{display:none}
  .feed-header{font-size:7px;padding:3px 6px}
  .feed-msg{font-size:9px;padding:4px 8px}

  /* Ticker */
  #intel-ticker{height:26px}
  #intel-ticker .ticker-label{font-size:7px;padding:0 6px}
  .ticker-track span{font-size:8px;padding:0 14px}

  /* Share modal */
  .share-content{padding:14px}

  .scroll-hint{font-size:7px}
  .panel-body{padding:10px}
  .field-value{font-size:10px;line-height:1.6}
}
@media(max-width:480px){
  #header .title{max-width:38vw;font-size:7px}
  #header .right span:nth-child(2),#header .right span:nth-child(3){display:none}
  #filter-bar{max-height:calc(100vh - 120px)}
  .filter-btn{padding:3px 5px;font-size:6px}
  #stats-bar{display:none}
  #search-input{width:110px;font-size:8px}
  #live-feed{width:220px}
  .feed-msg{font-size:8px}
}
.share-content h3{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text-bright);margin-bottom:12px}
.share-url{width:100%;padding:7px 10px;font-family:inherit;font-size:9px;background:var(--surface2);border:1px solid var(--border);color:var(--cyan);margin-bottom:8px;outline:none}
.share-buttons{display:flex;gap:7px;margin-bottom:12px}
.share-btn{flex:1;padding:7px;font-family:inherit;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;text-align:center;text-decoration:none;transition:all .2s}
.share-btn:hover{border-color:var(--text);color:var(--text-bright)}
.share-btn.x-btn{border-color:#1d9bf0;color:#1d9bf0}
.share-btn.copy-btn{border-color:var(--green);color:var(--green)}
.share-close{margin-top:6px;width:100%;padding:7px;font-family:inherit;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--border);background:none;color:var(--text-dim);cursor:pointer}

/* SOURCES */
.source-links{list-style:none;padding:0;margin:0}.source-links li{margin-bottom:6px}.source-links a{color:var(--cyan);font-size:10px;letter-spacing:.5px;text-decoration:none;display:inline-flex;align-items:flex-start;gap:5px;line-height:1.5;transition:color .2s;word-break:break-word}.source-links a:hover{color:var(--text-bright);text-decoration:underline}.source-links .src-icon{flex-shrink:0;opacity:.6}.source-links .src-label{font-size:8px;letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);display:block;margin-bottom:2px}

/* COMMENTS */
.comments-section{border-top:1px solid var(--border);margin-top:10px;padding-top:10px}
.comments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.comments-header .field-label{margin-bottom:0}
.comment-count-badge{font-size:8px;background:var(--accent-dim);color:var(--text-bright);padding:1px 6px;border-radius:2px;min-width:16px;text-align:center}
.comment-input-wrap{display:flex;gap:5px;margin-bottom:10px}
.comment-input{flex:1;padding:7px 10px;font-family:inherit;font-size:10px;background:var(--surface2);border:1px solid var(--border);color:var(--text-bright);outline:none;letter-spacing:.5px}
.comment-input::placeholder{color:var(--text-dim);font-size:9px}
.comment-input:focus{border-color:var(--cyan)}
.comment-submit{padding:7px 14px;font-family:inherit;font-size:8px;letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--cyan);background:rgba(51,204,255,.08);color:var(--cyan);cursor:pointer;white-space:nowrap;transition:all .2s}
.comment-submit:hover{background:rgba(51,204,255,.15);color:var(--text-bright)}
.comments-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}
.comment-item{padding:7px 10px;background:var(--surface2);border-left:2px solid var(--border);font-size:10px;line-height:1.5;color:var(--text)}
.comment-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px}
.comment-user{font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:var(--cyan);font-weight:600}
.comment-time{font-size:7px;color:var(--text-dim);letter-spacing:1px}
.comment-text{color:var(--text-bright)}
.comments-loading{font-size:9px;color:var(--text-dim);text-align:center;padding:8px;letter-spacing:1px}
.no-comments{font-size:9px;color:var(--text-dim);text-align:center;padding:12px;letter-spacing:1px;font-style:italic}

/* NARRATION MODE */
#narration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:150;pointer-events:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:100px;transition:opacity .5s}
#narration-overlay.hidden{opacity:0}
#narration-overlay.active{opacity:1}
.narration-caption{max-width:800px;padding:16px 28px;background:rgba(0,0,0,.85);border:1px solid var(--accent);border-radius:4px;font-size:18px;line-height:1.7;color:var(--text-bright);text-align:center;letter-spacing:.5px;margin-bottom:16px;box-shadow:0 4px 30px rgba(255,51,51,.2);animation:caption-in .4s ease-out;pointer-events:auto}
@keyframes caption-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.narration-caption .highlight{color:var(--accent);font-weight:600}
.narration-caption .year{color:var(--yellow);font-weight:700}
.narration-caption .name{color:var(--cyan);font-weight:600}
.narration-controls{display:flex;gap:10px;margin-bottom:12px;pointer-events:auto}
.narration-ctrl{padding:8px 18px;font-family:inherit;font-size:9px;letter-spacing:2px;text-transform:uppercase;border:1px solid var(--border);background:rgba(17,17,22,.9);color:var(--text);cursor:pointer;transition:all .2s}
.narration-ctrl:hover{border-color:var(--accent);color:var(--accent);background:rgba(255,51,51,.1)}
.narration-progress{width:300px;height:4px;background:var(--surface2);border-radius:2px;overflow:hidden}
.narration-progress-fill{height:100%;background:var(--accent);width:0;transition:width .3s linear}
.filter-btn.narrate-btn{border-color:var(--yellow);color:var(--yellow)}
.filter-btn.narrate-btn:hover{background:rgba(255,204,51,.1)}
.filter-btn.narrate-btn.active{background:var(--yellow);color:#000;animation:none}
.filter-btn.music-btn{border-color:var(--purple);color:var(--purple)}
.filter-btn.music-btn:hover{background:rgba(170,102,255,.1)}
.filter-btn.music-btn.active{background:var(--purple);color:#000;animation:none}

@media(max-width:768px){
  .narration-caption{font-size:14px;padding:12px 18px;max-width:90vw;margin-left:10px;margin-right:10px}
  .narration-progress{width:200px}
  #narration-overlay{padding-bottom:140px}
}

/* TIMELINE SCRUBBER */
#timeline-bar{position:fixed;bottom:32px;left:0;right:0;height:56px;background:rgba(10,10,12,.97);border-top:1px solid var(--accent-dim);z-index:95;display:flex;align-items:center;padding:0 14px;gap:8px;transition:transform .3s}
#timeline-bar.hidden{transform:translateY(100%)}
.tl-toggle{position:fixed;bottom:38px;right:14px;z-index:96;background:rgba(17,17,22,.95);border:1px solid var(--accent);color:var(--accent);font-family:inherit;font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:6px 14px;cursor:pointer;transition:all .2s;box-shadow:0 0 12px rgba(255,51,51,.2);animation:tl-pulse 3s ease-in-out infinite}
@keyframes tl-pulse{0%,100%{box-shadow:0 0 8px rgba(255,51,51,.15)}50%{box-shadow:0 0 18px rgba(255,51,51,.35)}}
.tl-toggle:hover{background:var(--accent);color:#000;box-shadow:0 0 20px rgba(255,51,51,.4)}
.tl-toggle.active{background:var(--accent);color:#000;bottom:90px;animation:none;box-shadow:0 0 12px rgba(255,51,51,.3)}
#timeline-bar .tl-label{font-size:7px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);white-space:nowrap;flex-shrink:0;user-select:none}
#timeline-bar .tl-year{font-size:16px;font-weight:700;color:var(--text-bright);min-width:42px;text-align:center;flex-shrink:0;font-variant-numeric:tabular-nums}
#timeline-bar .tl-era{font-size:8px;letter-spacing:1.5px;text-transform:uppercase;min-width:120px;text-align:center;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-slider-wrap{flex:1;position:relative;height:32px;display:flex;align-items:center}
.tl-slider-track{position:absolute;top:50%;left:0;right:0;height:6px;transform:translateY(-50%);background:var(--surface2);border-radius:3px;pointer-events:none;border:1px solid var(--border)}
.tl-slider-fill{position:absolute;top:50%;left:0;height:6px;transform:translateY(-50%);border-radius:3px;pointer-events:none;transition:background .3s}
.tl-milestones{position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);pointer-events:none}
.tl-milestone{position:absolute;top:-6px;width:2px;height:16px;background:var(--accent);opacity:.7;border-radius:1px}
.tl-milestone-label{position:absolute;top:14px;font-size:8px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--text);white-space:nowrap;transform:translateX(-50%);text-shadow:0 0 6px rgba(0,0,0,.9)}
.tl-range-input{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;cursor:pointer;position:relative;z-index:2}
.tl-range-input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--accent);border:2px solid var(--text-bright);border-radius:50%;cursor:grab;box-shadow:0 0 10px rgba(255,51,51,.6)}
.tl-range-input::-moz-range-thumb{width:18px;height:18px;background:var(--accent);border:2px solid var(--text-bright);border-radius:50%;cursor:grab;box-shadow:0 0 10px rgba(255,51,51,.6)}
.tl-range-input:active::-webkit-slider-thumb{cursor:grabbing;box-shadow:0 0 16px rgba(255,51,51,.8)}
.tl-stats{font-size:8px;color:var(--text-dim);letter-spacing:1px;white-space:nowrap;flex-shrink:0;min-width:70px;text-align:right}
.tl-stats .tl-count{color:var(--text-bright);font-weight:600}
.tl-play-btn{background:none;border:1px solid var(--accent-dim);color:var(--accent);font-family:inherit;font-size:12px;padding:2px 8px;cursor:pointer;flex-shrink:0;transition:all .2s}
.tl-play-btn:hover,.tl-play-btn.playing{background:var(--accent);color:#000}

@media(max-width:768px){
  #timeline-bar{height:40px;padding:0 8px;gap:4px;bottom:27px}
  #timeline-bar .tl-year{font-size:13px;min-width:36px}
  #timeline-bar .tl-era{font-size:6px;min-width:80px}
  #timeline-bar .tl-label{font-size:6px}
  .tl-stats{font-size:7px;min-width:50px}
  .tl-toggle{bottom:28px;right:8px;font-size:8px;padding:5px 10px}
  .tl-toggle.active{bottom:74px}
  .tl-milestone-label{display:none}
}
@media(max-width:480px){
  #timeline-bar .tl-era{display:none}
  #timeline-bar .tl-label{display:none}
  .tl-stats{min-width:40px}
}

::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text)}
#info-panel .scroll-hint{position:sticky;bottom:0;left:0;right:0;text-align:center;padding:6px 0;background:linear-gradient(transparent,rgba(17,17,22,.97) 40%);color:var(--accent);font-size:9px;letter-spacing:2px;text-transform:uppercase;pointer-events:none;transition:opacity .3s}
#info-panel .scroll-hint.hidden{opacity:0}
