/* ========================================
   Buffett Knowledge Base — Warm Academic Theme
   ======================================== */

:root {
  --parchment: #F5F1EB;
  --parchment-dark: #EBE5D9;
  --sidebar-bg: #1E2127;
  --sidebar-text: #ABAEB5;
  --sidebar-active: #D4AF37;
  --gold: #B8860B;
  --gold-light: #D4AF37;
  --gold-ghost: rgba(184, 134, 11, 0.08);
  --gold-ghost-hover: rgba(184, 134, 11, 0.15);
  --card-bg: #FFFFFF;
  --card-border: #E5DFD5;
  --text: #2C2416;
  --text-secondary: #6B6257;
  --text-tertiary: #9B9287;
  --dark-btn: #1E2127;
  --dark-btn-text: #FFFFFF;
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --shadow: 0 2px 8px rgba(0,0,0,0.08);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.12);
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;
  --sidebar-width: 240px;
  --font-serif: 'Noto Serif SC', 'Source Han Serif SC', 'STSong', 'SimSun', 'Songti SC', 'PMingLiU', 'Noto Serif CJK SC', serif;
  --font-sans: 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans);font-size:1rem;line-height:1.75;
  color:var(--text);background:var(--parchment);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  display:flex;min-height:100vh;min-height:100dvh;
  -webkit-overflow-scrolling:touch;
}
a,button{touch-action:manipulation}
a{color:var(--gold);text-decoration:none;transition:color .15s}
a:hover{color:var(--gold-light)}
code,pre{font-family:var(--font-mono);font-size:.875rem}

/* ========================================
   SIDEBAR
   ======================================== */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);
  background:var(--sidebar-bg);color:var(--sidebar-text);
  display:flex;flex-direction:column;z-index:100;
  overflow-y:auto;
}
.sidebar-logo{
  display:flex;align-items:center;gap:10px;
  padding:24px 20px 16px;
  font-size:1.1rem;font-weight:700;color:#fff;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08);
}
.sidebar-logo .logo-icon{font-size:1.5rem}
.sidebar-search{
  padding:16px 16px 8px;
}
.sidebar-search input{
  width:100%;padding:10px 14px;border-radius:8px;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);
  color:#fff;font-size:.85rem;font-family:var(--font-sans);
  outline:none;transition:border-color .2s;
}
.sidebar-search input::placeholder{color:rgba(255,255,255,.35)}
.sidebar-search input:focus{border-color:var(--gold-light)}
.sidebar-nav{
  flex:1;padding:8px 12px;
}
.sidebar-nav a{
  display:flex;align-items:center;gap:8px;
  padding:9px 12px;border-radius:8px;
  font-size:.875rem;color:var(--sidebar-text);
  transition:all .15s;text-decoration:none;
}
.sidebar-nav a:hover,.sidebar-nav a.active{
  background:rgba(255,255,255,.08);color:#fff;
}
.sidebar-nav a.active{color:var(--sidebar-active);font-weight:600}
.sidebar-nav .nav-badge{
  margin-left:auto;font-size:.7rem;font-weight:700;
  background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);
  padding:2px 8px;border-radius:10px;min-width:24px;text-align:center;
}
.sidebar-nav .nav-section{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(255,255,255,.3);padding:16px 12px 4px;
}
.sidebar-bottom{
  padding:12px 16px;border-top:1px solid rgba(255,255,255,.08);
  font-size:.78rem;
}
.sidebar-bottom a{
  display:block;padding:6px 8px;color:var(--sidebar-text);text-decoration:none;
  border-radius:6px;transition:all .15s;
}
.sidebar-bottom a:hover{color:#fff;background:rgba(255,255,255,.05)}

.mobile-sidebar-toggle{
  display:none;position:fixed;top:12px;left:12px;z-index:250;
  background:var(--sidebar-bg);color:#fff;border:none;
  width:40px;height:40px;border-radius:8px;font-size:1.3rem;
  cursor:pointer;box-shadow:var(--shadow);
}
.sidebar-backdrop{
  display:none;position:fixed;inset:0;z-index:90;
  background:rgba(0,0,0,.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
}
.sidebar-backdrop.active{display:block}
@media(max-width:768px){
  body{display:block}
  .sidebar{
    position:fixed;top:0;left:0;bottom:0;z-index:100;
    transform:translateX(-100%);transition:transform .25s ease;
    box-shadow:var(--shadow-lg);width:var(--sidebar-width);
  }
  .sidebar.open{transform:translateX(0)}
  .mobile-sidebar-toggle{display:flex;align-items:center;justify-content:center;z-index:250}
  .main-content{margin-left:0;width:100%}
  .main-content:before{content:'';display:block;height:56px}
}
/* ========================================
   MAIN CONTENT
   ======================================== */
.main-content{
  margin-left:var(--sidebar-width);flex:1;min-width:0;
}
@media(max-width:768px){
  .main-content{margin-left:0}
}
.container{max-width:960px;margin:0 auto;padding:0 32px}
.container-wide{max-width:1100px;margin:0 auto;padding:0 32px}
@media(max-width:640px){
  .container,.container-wide{padding:0 16px}
}

/* ========================================
   HERO
   ======================================== */
.hero{
  padding:56px 0 40px;text-align:center;
  background:linear-gradient(180deg,var(--parchment-dark) 0%,var(--parchment) 100%);
  border-bottom:1px solid var(--card-border);
}
.hero-overline{
  font-family:var(--font-sans);font-size:.7rem;font-weight:600;
  letter-spacing:.2em;color:var(--text-tertiary);
  text-transform:uppercase;margin-bottom:16px;
}
.hero h1{
  font-family:var(--font-serif);font-size:2.4rem;font-weight:900;
  color:var(--text);line-height:1.3;margin-bottom:8px;
}
.hero .version-tag{
  display:inline-block;padding:2px 10px;border-radius:10px;
  background:var(--gold-ghost);color:var(--gold);
  font-size:.7rem;font-weight:700;vertical-align:super;
}
.hero .hero-stats-line{
  color:var(--text-tertiary);font-size:.9rem;margin-top:8px;
}
.hero .hero-stats-line strong{color:var(--gold);font-family:var(--font-serif)}

/* ========================================
   STATS BAR
   ======================================== */
.stats-bar{
  display:flex;justify-content:center;gap:32px;
  max-width:800px;margin:32px auto 0;padding:0 32px;
}
.stat-item{text-align:center}
.stat-number{
  font-family:var(--font-serif);font-size:2.2rem;font-weight:900;
  color:var(--gold);line-height:1.2;
}
.stat-label{font-size:.8rem;color:var(--text-secondary);margin-top:2px}
.stat-divider{width:1px;background:var(--card-border);align-self:stretch}
@media(max-width:640px){
  .stats-bar{gap:16px;padding:0 16px}
  .stat-number{font-size:1.5rem}
  .stat-label{font-size:.7rem}
  .hero h1{font-size:1.6rem}
}

/* ========================================
   SECTION HEADERS
   ======================================== */
.home-section{padding:48px 0}
.home-section h2{
  font-family:var(--font-serif);font-size:1.5rem;font-weight:800;
  text-align:center;margin-bottom:6px;color:var(--text);
}
.home-section .section-desc{
  text-align:center;color:var(--text-secondary);margin-bottom:32px;font-size:.9rem;
}
@media(max-width:640px){
  .home-section{padding:20px 0}
  .home-section h2{font-size:1.2rem}
  .home-section .section-desc{margin-bottom:16px;font-size:.8rem}
}

/* ========================================
   CARDS
   ======================================== */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.card-grid-3{grid-template-columns:repeat(3,1fr)}
.card-grid-4{grid-template-columns:repeat(4,1fr)}
.card-grid-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:900px){.card-grid-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){
  .card-grid-3,.card-grid-4{grid-template-columns:repeat(2,1fr)}
  .card-grid-5{gap:4px;grid-template-columns:repeat(3,1fr)}
  .feature-card{padding:8px 4px;border-radius:8px}
  .feature-card .card-icon{font-size:1rem;margin-bottom:2px;line-height:1}
  .feature-card .card-title{font-size:.68rem;margin-bottom:1px;line-height:1.15}
  .feature-card .card-body{font-size:.62rem;line-height:1.2}
  .feature-card .card-arrow{font-size:.75rem;margin-top:2px;line-height:1}
}
@media(max-width:400px){
  .card-grid,.card-grid-3{grid-template-columns:1fr}
  .card-grid-4{grid-template-columns:repeat(2,1fr)}
  .card-grid-5{gap:3px;grid-template-columns:repeat(3,1fr)}
  .feature-card{padding:5px 2px;border-radius:6px}
  .feature-card .card-icon{font-size:.85rem;margin-bottom:1px;line-height:1}
  .feature-card .card-title{font-size:.62rem;margin-bottom:0;line-height:1.1}
  .feature-card .card-body{font-size:.58rem;line-height:1.15}
  .feature-card .card-arrow{font-size:.65rem;margin-top:1px;line-height:1}
}

.feature-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  justify-content:center;
  padding:20px 16px;background:var(--card-bg);
  border:1px solid var(--card-border);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text);
  transition:all .25s;
}
.feature-card:hover{
  box-shadow:var(--shadow-md);transform:translateY(-3px);
  border-color:var(--gold-light);
}
.feature-card .card-icon{font-size:2rem;margin-bottom:8px;line-height:1}
.feature-card .card-title{font-weight:700;font-size:1.05rem;margin-bottom:2px;line-height:1.2}
.feature-card .card-body{font-size:.82rem;color:var(--text-secondary);line-height:1.4}
.feature-card .card-arrow{color:var(--gold);font-size:1.2rem;margin-top:4px;line-height:1}

/* ========================================
   BANNER CTA
   ======================================== */
.book-cta{
  display:flex;align-items:center;gap:24px;
  max-width:800px;margin:0 auto;
  padding:32px 36px;background:var(--card-bg);
  border:1px solid var(--card-border);border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.book-cta .book-cover{
  width:80px;height:110px;background:var(--gold);
  border-radius:4px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-serif);font-size:.65rem;color:#fff;text-align:center;
  line-height:1.4;padding:8px;box-shadow:2px 2px 8px rgba(0,0,0,.2);
}
.book-cta .book-info{flex:1}
.book-cta .book-info h3{font-family:var(--font-serif);font-size:1.15rem;font-weight:800;margin-bottom:4px}
.book-cta .book-info p{font-size:.82rem;color:var(--text-secondary)}
.book-cta .book-btn{
  display:inline-block;padding:10px 24px;border-radius:8px;
  background:var(--dark-btn);color:var(--dark-btn-text);
  font-weight:600;font-size:.85rem;text-decoration:none;
  flex-shrink:0;transition:all .2s;
}
.book-cta .book-btn:hover{background:#333;color:#fff;transform:scale(1.03)}
@media(max-width:640px){
  .book-cta{flex-direction:column;text-align:center}
}

/* ========================================
   AI CHAT FEATURE CARD
   ======================================== */
.ai-feature-card{
  max-width:800px;margin:0 auto;
  padding:36px 40px;background:#242832;border-radius:var(--radius-lg);
  color:#E8E3D9;
  display:flex;align-items:center;gap:32px;
}
.ai-feature-main{
  flex:1;min-width:0;
}
.ai-feature-card .ai-label{
  display:inline-block;padding:3px 14px;border-radius:10px;
  background:rgba(255,140,0,.2);color:#FFB74D;
  font-size:.75rem;font-weight:700;margin-bottom:16px;
}
.ai-feature-card h3{
  font-family:var(--font-serif);font-size:1.4rem;font-weight:800;margin-bottom:4px;
}
.ai-feature-card h3 .beta-tag{
  font-size:.6rem;background:rgba(255,255,255,.15);color:rgba(255,255,255,.6);
  padding:1px 8px;border-radius:8px;vertical-align:middle;margin-left:8px;
}
.ai-feature-card p{font-size:.88rem;color:rgba(255,255,255,.55);margin-bottom:20px}
.ai-feature-card .ai-start-btn{
  display:inline-block;padding:12px 32px;border-radius:10px;
  background:linear-gradient(135deg,var(--gold),var(--gold-light));
  color:#fff;font-weight:700;font-size:.9rem;text-decoration:none;
  transition:all .2s;
}
.ai-feature-card .ai-start-btn:hover{transform:scale(1.04);box-shadow:0 4px 16px rgba(184,134,11,.4)}
.ai-feature-card .ai-examples{
  flex-shrink:0;
  display:flex;flex-direction:column;gap:8px;
}
.ai-feature-card .ai-example-chip{
  padding:8px 16px;border-radius:20px;
  background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);
  font-size:.78rem;white-space:nowrap;
}
@media(max-width:700px){
  .ai-feature-card{flex-direction:column;padding:28px 24px;align-items:stretch}
  .ai-feature-card .ai-examples{display:none}
}

/* ========================================
   TAG CLOUD
   ======================================== */
.tag-cloud-section{max-width:900px;margin:0 auto}
.tag-cloud-section h3{
  font-family:var(--font-serif);font-size:1.1rem;font-weight:700;
  margin-bottom:4px;text-align:center;
}
.tag-cloud-section .tag-cloud-subtitle{
  text-align:center;font-size:.78rem;color:var(--text-tertiary);margin-bottom:16px;
}
.tag-cloud{
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
}
.tag-cloud .cloud-tag{
  display:inline-flex;align-items:center;gap:4px;
  padding:6px 14px;border-radius:20px;
  background:var(--card-bg);border:1px solid var(--card-border);
  font-size:.82rem;color:var(--text);text-decoration:none;
  transition:all .15s;
}
.tag-cloud .cloud-tag:hover{
  border-color:var(--gold);background:var(--gold-ghost);
  transform:translateY(-1px);
}
.tag-cloud .cloud-tag .gold-count{
  font-weight:700;color:var(--gold);font-family:var(--font-serif);
  font-size:.85rem;margin-left:2px;
}

/* ========================================
   PEOPLE CARDS
   ======================================== */
.people-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  max-width:900px;margin:0 auto;
}
@media(max-width:640px){.people-grid{grid-template-columns:repeat(2,1fr)}}
.person-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:24px 16px;background:var(--card-bg);
  border:1px solid var(--card-border);border-radius:var(--radius);
  box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text);
  transition:all .2s;
}
.person-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.person-avatar{
  width:64px;height:64px;border-radius:50%;
  background:var(--sidebar-bg);color:var(--gold);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-serif);font-size:1.4rem;font-weight:800;
  margin-bottom:12px;
}
.person-name{font-weight:700;font-size:.95rem}
.person-count{font-size:.78rem;color:var(--text-tertiary);margin-top:2px}

/* ========================================
   DARK CTA BANNER
   ======================================== */
.dark-cta{
  max-width:800px;margin:0 auto;text-align:center;
  padding:40px 36px;background:var(--sidebar-bg);border-radius:var(--radius-lg);
  color:#E8E3D9;
}
.dark-cta h3{font-family:var(--font-serif);font-size:1.3rem;font-weight:800;margin-bottom:8px}
.dark-cta .dark-cta-stats{font-size:.85rem;color:rgba(255,255,255,.5);margin-bottom:16px}
.dark-cta .dark-cta-stats strong{color:var(--gold-light);font-family:var(--font-serif)}
.dark-cta .gold-btn{
  display:inline-block;padding:12px 32px;border-radius:10px;
  border:2px solid var(--gold);color:var(--gold-light);
  font-weight:700;font-size:.9rem;text-decoration:none;
  transition:all .2s;
}
.dark-cta .gold-btn:hover{background:var(--gold);color:#fff}

/* ========================================
   DONATION
   ======================================== */
.donation{text-align:center;padding:32px 0}
.donation p{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px}
.donation .donate-btn{
  display:inline-block;padding:8px 24px;border-radius:20px;
  background:var(--card-bg);border:1px solid var(--card-border);
  color:var(--text-secondary);font-size:.82rem;text-decoration:none;
  transition:all .2s;
}
.donation .donate-btn:hover{border-color:var(--gold);color:var(--gold)}

/* ========================================
   FOOTER
   ======================================== */
.site-footer{
  padding:24px 0;text-align:center;font-size:.8rem;
  color:var(--text-tertiary);border-top:1px solid var(--card-border);
}
.site-footer a{color:var(--text-secondary)}

/* ========================================
   ANALYSIS PAGES
   ======================================== */
.analysis-header{padding:40px 0 24px;border-bottom:1px solid var(--card-border);margin-bottom:32px}
.analysis-header h1{font-family:var(--font-serif);font-size:1.8rem;font-weight:800;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.source-badge{display:inline-block;padding:4px 12px;border-radius:6px;font-size:.75rem;font-weight:600;font-family:var(--font-sans)}
.source-partnership{background:#E8F0FE;color:#1A56CC}
.source-berkshire-letter{background:#E6F4EA;color:#1E7E34}
.source-annual-meeting{background:#FFF3E0;color:#E65100}
.analysis-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:10px 16px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius)}
.analysis-nav a{font-weight:500;font-size:.88rem}
.section-block{margin-bottom:32px;padding:28px 32px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.section-block h2{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--gold-ghost);display:flex;align-items:center;gap:8px}
.section-block h3{font-family:var(--font-serif);font-size:1rem;font-weight:700;margin:16px 0 8px;color:var(--gold)}
.concept-list{list-style:none;padding:0}
.concept-list li{padding:12px 0;border-bottom:1px solid var(--card-border)}
.concept-list li:last-child{border-bottom:none}
.concept-name{font-weight:700;color:var(--gold);display:inline-block;margin-right:8px}
.concept-badge{display:inline-block;padding:6px 14px;margin:4px;border-radius:20px;font-size:.85rem;font-weight:500;background:var(--gold-ghost);color:var(--gold);border:1px solid transparent;text-decoration:none;transition:all .15s}
.concept-badge:hover{border-color:var(--gold);background:var(--gold)}
.tag-pill{display:inline-block;padding:4px 10px;margin:3px;border-radius:20px;font-size:.75rem;font-weight:500;background:var(--card-bg);color:var(--text-secondary);border:1px solid var(--card-border);text-decoration:none;transition:all .15s;max-width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.tag-pill:hover{border-color:var(--gold);color:var(--gold)}
.strategy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:600px){.strategy-grid{grid-template-columns:1fr}}
.strategy-card{padding:20px;border:1px solid var(--card-border);border-radius:var(--radius);background:var(--parchment)}
.strategy-card h4{font-weight:700;margin-bottom:8px}
.golden-quote{margin:12px 0;padding:16px 20px;background:var(--gold-ghost);border-left:4px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.93rem;font-style:italic}
.dimension-detail{margin-bottom:20px}
.dimension-detail h4{font-weight:700;color:var(--gold);margin-bottom:6px}
.original-text{max-height:60vh;overflow-y:auto;padding:8px 0;font-size:.93rem;line-height:2}
.original-text h1,.original-text h2,.original-text h3{font-family:var(--font-serif);color:var(--text)}
.original-text strong{color:var(--text)}
.original-text blockquote{border-left:3px solid var(--gold-ghost);padding-left:16px;margin:12px 0;color:var(--text-secondary)}

/* ========================================
   LLM PROSE BODY (full-width, no card)
   ======================================== */
.prose-body{padding:0 0 32px}
.prose-body h1{font-family:var(--font-serif);font-size:1.5rem;font-weight:800;margin:32px 0 12px;color:var(--text)}
.prose-body h2{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;margin:28px 0 10px;color:var(--gold);border:none;padding:0}
.prose-body h3{font-family:var(--font-serif);font-size:1.05rem;font-weight:700;margin:20px 0 8px;color:var(--gold)}
.prose-body h4{font-size:0.95rem;font-weight:700;margin:16px 0 6px;color:var(--text)}
.prose-body p{font-size:0.93rem;line-height:1.9;color:var(--text-secondary);margin-bottom:12px}
.prose-body ul,.prose-body ol{margin:8px 0 16px 20px;font-size:0.93rem;color:var(--text-secondary);line-height:1.8}
.prose-body li{margin-bottom:4px}
.prose-body strong{color:var(--text)}
.prose-body blockquote{margin:16px 0;padding:16px 20px;background:var(--gold-ghost);border-left:4px solid var(--gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:0.93rem;color:var(--text-secondary);line-height:1.8}
.prose-body blockquote strong{color:var(--gold)}
.prose-body a{color:var(--gold);text-decoration:underline}
.prose-body hr{border:none;border-top:1px solid var(--card-border);margin:24px 0}
.prose-body code{background:var(--gold-ghost);padding:2px 6px;border-radius:4px;font-size:0.85rem}

/* ========================================
   CONCEPT / INDEX PAGES
   ======================================== */
.concept-hero{padding:40px 0 20px}
.concept-hero h1{font-family:var(--font-serif);font-size:1.8rem;font-weight:800}
.concept-hero .concept-stats{font-size:.88rem;color:var(--text-secondary);margin-top:4px}
.concept-index{column-count:4;column-gap:16px}
@media(max-width:900px){.concept-index{column-count:3}}
@media(max-width:600px){.concept-index{column-count:2}}
.concept-index-item{display:block;padding:6px 10px;border-radius:6px;font-size:.85rem;color:var(--text);text-decoration:none;break-inside:avoid;transition:all .1s}
.concept-index-item:hover{background:var(--gold-ghost);color:var(--gold)}
.reference-group h3{font-family:var(--font-serif);font-weight:700;margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--card-border)}
.reference-item{display:flex;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--card-border);font-size:.88rem}
.reference-item .ref-year{font-weight:700;color:var(--gold);white-space:nowrap;min-width:44px}
.reference-item .ref-excerpt{color:var(--text-secondary)}
.reference-item .ref-link{font-size:.82rem;white-space:nowrap}
.tag-category{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin:20px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--card-border)}
/* ========================================
   YEAR GRID / SECTION INDEX
   ======================================== */
.section-hero{padding:40px 0 24px;text-align:center}
.section-hero h1{font-family:var(--font-serif);font-size:1.8rem;font-weight:800}
.section-hero p{color:var(--text-secondary);font-size:.9rem;margin-top:4px}
.year-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:20px 0}
.year-card{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:52px;padding:0 4px;border:1px solid var(--card-border);border-radius:var(--radius-sm);font-weight:600;font-size:.8rem;background:var(--card-bg);color:var(--text);text-decoration:none;transition:all .15s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.year-card:hover{border-color:var(--gold);background:var(--gold-ghost);color:var(--gold)}

/* ========================================
   SEARCH OVERLAY
   ======================================== */
.search-overlay{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.search-overlay.active{display:flex;justify-content:center;padding-top:80px}
.search-overlay-panel{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;max-width:560px;max-height:65vh;overflow:hidden;display:flex;flex-direction:column}
.search-overlay-header{padding:16px 20px;border-bottom:1px solid var(--card-border)}
.search-overlay-header input{width:100%;border:none;outline:none;font-size:1.05rem;font-family:var(--font-sans);color:var(--text);background:transparent}
.search-overlay-results{overflow-y:auto;padding:4px 0}
.search-result-item{display:block;padding:12px 20px;border-bottom:1px solid var(--card-border);transition:background .1s;text-decoration:none;color:var(--text)}
.search-result-item:hover{background:var(--parchment)}
.search-result-title{font-weight:600;margin-bottom:2px}
.search-result-meta{font-size:.75rem;color:var(--text-tertiary)}
.search-result-snippet{font-size:.8rem;color:var(--text-secondary);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.search-overlay-empty{padding:32px 20px;text-align:center;color:var(--text-tertiary)}

/* ========================================
   EVOLUTION PAGE
   ======================================== */
.evolution-hero{padding:48px 0 32px;text-align:center;background:linear-gradient(180deg,var(--parchment-dark),var(--parchment));border-bottom:1px solid var(--card-border)}
.evolution-hero h1{font-family:var(--font-serif);font-size:2rem;font-weight:800}
.evolution-hero p{color:var(--text-secondary);font-size:.95rem;margin-top:6px}
.timeline{position:relative;padding:32px 0}
.timeline::before{content:'';position:absolute;left:20px;top:0;bottom:0;width:2px;background:var(--card-border)}
.era-section{position:relative;margin-bottom:56px;padding-left:52px}
.era-marker{position:absolute;left:11px;top:0;width:20px;height:20px;border-radius:50%;background:var(--gold);border:4px solid var(--parchment);box-shadow:0 0 0 2px var(--gold)}
.era-title{font-family:var(--font-serif);font-size:1.3rem;font-weight:800;margin-bottom:2px}
.era-range{font-size:.8rem;color:var(--text-tertiary);margin-bottom:16px}
.era-milestone{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--card-border)}
.era-milestone .milestone-year{font-weight:800;font-size:.85rem;color:var(--gold);white-space:nowrap;min-width:40px}
.milestone-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600;margin:2px;background:var(--gold-ghost);color:var(--gold)}
.concept-timeline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:12px 0}
.concept-arrival{padding:10px 14px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center}
.concept-arrival .arrival-name{font-weight:600;font-size:.85rem}
.concept-arrival .arrival-year{font-size:.8rem;color:var(--gold);font-weight:700}
/* ========================================
   PULSE / ANIMATION
   ======================================== */
@keyframes pulse{0%,100%{box-shadow:0 2px 8px rgba(184,134,11,.3)}50%{box-shadow:0 4px 20px rgba(184,134,11,.5)}}
/* ========================================
   SKIP LINK
   ======================================== */
.skip-link{position:absolute;top:-100px;left:16px;background:var(--sidebar-bg);color:#fff;padding:8px 16px;border-radius:6px;z-index:999;font-weight:600;font-size:.85rem;text-decoration:none}
.skip-link:focus{top:8px}

/* ========================================
   PRINT
   ======================================== */
@media print{
  .sidebar,.site-footer,.search-overlay,.analysis-nav{display:none}
  .main-content{margin-left:0}
  .section-block{break-inside:avoid;border:none;padding:12px 0;box-shadow:none}
}
