:root{
  --ink:#16140F; --ink2:#1E1B14; --ink3:#221E15;
  --cream:#EDE6D8; --paper:#F3EEE4;
  --muted:#8C8678; --sub:#9A958A;
  --gold:#B79256; --goldlt:#D8B97E;
  --gold-rgb:183,146,86; --cream-rgb:237,230,216;
  --line:rgba(237,230,216,0.10);
  --line-strong:rgba(237,230,216,0.18);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{ font-family:'Manrope',sans-serif; background:var(--ink); color:var(--cream); overflow-x:hidden; -webkit-font-smoothing:antialiased; letter-spacing:.01em;}
html[lang="zh"] body, html[lang="zh"] .font-serif{ font-family:'Noto Serif SC','Fraunces',serif;}
.font-serif{font-family:'Fraunces',serif;}
.font-mono{font-family:'JetBrains Mono',monospace;}
[x-cloak]{display:none !important;}

/* ── Atmosphere (more subtle than Lab — editorial feel) ── */
body::before{ content:''; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(100% 60% at 50% 0%, rgba(183,146,86,.07), transparent 50%),
    radial-gradient(70% 50% at 100% 100%, rgba(183,146,86,.04), transparent 55%);}
body::after{ content:''; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.25; mix-blend-mode:overlay;
  background-image:url("../extracted/inline-svg.f11bb9f6e5740da3.svg");}

/* ── Ticker (static like Lab for calm reading) ── */
.ticker-strip{ position:fixed; top:0; left:0; right:0; height:30px; background:rgba(11,9,5,.96); border-bottom:1px solid rgba(216,185,126,.14); overflow:hidden; display:flex; align-items:center; justify-content:center; z-index:50;}
.ticker-strip::before, .ticker-strip::after{ content:none;}
.ticker-track{ display:flex; gap:2.4rem; white-space:nowrap; padding-left:0; animation:none; font-family:'JetBrains Mono',monospace; font-size:.68rem; letter-spacing:.06em; transition:none; flex-wrap:nowrap; justify-content:center;}
.ticker-track:hover{ animation:none;}
@keyframes tickerSlide{ from{transform:translateX(0)} to{transform:translateX(0)}}
.ticker-item{ display:inline-flex; align-items:center; gap:.5em; color:rgba(237,230,216,.55);}
.ticker-item b{ color:var(--cream); font-weight:400;}
.ticker-item .up{ color:#7BC894;}
.ticker-item .down{ color:#D88770;}
.ticker-item .neutral{ color:rgba(216,185,126,.7);}
.ticker-divider{ color:rgba(216,185,126,.3); user-select:none;}
.ticker-brand{ color:rgba(216,185,126,.7); letter-spacing:.22em;}

/* ── Header ── */
.site-header{ position:fixed; top:30px; left:0; right:0; z-index:40; border-bottom:1px solid var(--line); background:rgba(22,20,15,.78); backdrop-filter:blur(20px);}

/* ── Cursor (lighter for reading focus) ── */
.cur-dot{position:fixed; top:0;left:0; width:5px;height:5px;border-radius:50%; background:var(--goldlt); z-index:99998; pointer-events:none; transform:translate(-50%,-50%); will-change:transform;}
.cur-ring{position:fixed; top:0;left:0; width:28px;height:28px;border-radius:50%; border:1px solid rgba(var(--gold-rgb),.45); z-index:99997; pointer-events:none; transform:translate(-50%,-50%); will-change:transform,width,height; transition:width .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1),border-color .3s,background .3s;}
.cur-ring.hov{ width:52px;height:52px; border-color:rgba(var(--gold-rgb),.85); background:rgba(var(--gold-rgb),.05);}
@media (hover:hover) and (pointer:fine){ html,body,a,button,[data-cur]{cursor:none;}}
@media (hover:none),(pointer:coarse){ .cur-dot,.cur-ring{display:none!important;}}

/* ── Scroll progress (golden hairline) ── */
.scroll-prog{ position:fixed; top:30px; left:0; height:1.5px; width:0%; background:linear-gradient(90deg,var(--goldlt),var(--gold)); z-index:999; opacity:0; pointer-events:none; transition:width .15s linear,opacity .2s ease; box-shadow:0 0 12px rgba(var(--gold-rgb),.5);}
.scroll-prog.show{ opacity:1;}

/* ── Typography (editorial-focused) ── */
.eyebrow{ font-family:'JetBrains Mono','Manrope',monospace; font-size:.66rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:.6em;}
.eyebrow::before{ content:''; width:18px; height:1px; background:var(--gold);}
.eyebrow.bare::before{ display:none;}
.serif-h{ font-family:'Fraunces',serif; font-weight:400; letter-spacing:-.012em; line-height:1.1;}
.lead{ color:rgba(var(--cream-rgb),.62); line-height:1.7;}
.hairline{ height:1px; background:linear-gradient(90deg,transparent,var(--line-strong) 25%,rgba(var(--gold-rgb),.4) 50%,var(--line-strong) 75%,transparent);}

/* ── Buttons ── */
.btn-gold{ background:linear-gradient(180deg,var(--goldlt),var(--gold)); color:#1a160d; font-weight:600; border-radius:999px; transition:transform .35s,box-shadow .35s; display:inline-flex; align-items:center; justify-content:center; gap:.5em; border:none; cursor:pointer; box-shadow:0 10px 30px -12px rgba(var(--gold-rgb),.6);}
.btn-gold:hover{ transform:translateY(-2px); box-shadow:0 18px 44px -14px rgba(var(--gold-rgb),.8);}
.btn-line{ border:1px solid rgba(var(--cream-rgb),.22); color:var(--cream); border-radius:999px; background:transparent; transition:border-color .3s,color .3s,background .3s; display:inline-flex; align-items:center; justify-content:center; gap:.5em;}
.btn-line:hover{ border-color:var(--goldlt); color:var(--goldlt); background:rgba(var(--gold-rgb),.04);}
.ul{ position:relative;}
.ul::after{ content:''; position:absolute; left:0; bottom:-3px; height:1px; width:0; background:var(--goldlt); transition:width .4s cubic-bezier(.22,1,.36,1);}
.ul:hover::after{ width:100%;}

/* ── Article card ── */
.art-card{ position:relative; border-radius:14px; overflow:hidden; cursor:pointer; transition:transform .55s cubic-bezier(.22,1,.36,1), box-shadow .55s; background:var(--ink2); border:1px solid var(--line);}
.art-card:hover{ transform:translateY(-4px); box-shadow:0 22px 50px -22px rgba(0,0,0,.6); border-color:rgba(var(--gold-rgb),.3);}
.art-cover{ aspect-ratio:16/10; overflow:hidden; position:relative;}
.art-cover-art{ position:absolute; inset:0; transition:transform .8s cubic-bezier(.22,1,.36,1); display:flex; align-items:center; justify-content:center;}
.art-card:hover .art-cover-art{ transform:scale(1.04);}
.art-cat{ position:absolute; top:14px; left:14px; font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; padding:5px 10px; border-radius:999px; backdrop-filter:blur(8px); background:rgba(22,20,15,.75); border:1px solid rgba(216,185,126,.4); color:var(--goldlt);}
.art-pin{ position:absolute; top:14px; right:14px; font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; padding:5px 10px; border-radius:999px; background:var(--goldlt); color:#1a160d; font-weight:600;}
.art-prem{ position:absolute; bottom:14px; right:14px; display:inline-flex; align-items:center; gap:.4em; font-family:'JetBrains Mono',monospace; font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; padding:4px 9px; border-radius:999px; background:rgba(216,185,126,.18); backdrop-filter:blur(6px); border:1px solid rgba(216,185,126,.4); color:var(--goldlt);}
.art-body{ padding:1.5rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.75rem;}
.art-title{ font-family:'Fraunces',serif; font-weight:400; font-size:1.25rem; line-height:1.2; letter-spacing:-.012em; color:var(--cream); transition:color .3s;}
.art-card:hover .art-title{ color:var(--goldlt);}
.art-excerpt{ font-size:.86rem; color:rgba(var(--cream-rgb),.55); line-height:1.6;}
.art-meta{ display:flex; align-items:center; gap:.8rem; font-family:'JetBrains Mono',monospace; font-size:.62rem; letter-spacing:.12em; color:rgba(var(--cream-rgb),.4); text-transform:uppercase;}
.art-meta .dot{ width:3px; height:3px; border-radius:50%; background:rgba(var(--gold-rgb),.5);}

/* ── Hero pinned article (compact editorial lead-story layout) ── */
.hero-pin{ display:grid; grid-template-columns:340px 1fr; gap:1.8rem; padding:1.5rem; border-radius:16px; background:var(--ink2); border:1px solid var(--line); position:relative; overflow:hidden;}
@media (max-width:900px){ .hero-pin{ grid-template-columns:1fr; padding:1.3rem; gap:1.2rem;}}
.hero-pin::before{ content:''; position:absolute; top:0; left:0; right:0; height:1.5px; background:linear-gradient(90deg,transparent,var(--goldlt),transparent); opacity:.5;}
.hero-cover{ border-radius:11px; overflow:hidden; aspect-ratio:16/10; position:relative;}
.hero-cover-art{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.hero-content{ display:flex; flex-direction:column; justify-content:center; gap:.75rem;}
.hero-title{ font-family:'Fraunces',serif; font-weight:400; font-size:clamp(1.4rem,2.3vw,1.9rem); line-height:1.18; letter-spacing:-.012em; color:var(--cream);}
.hero-dek{ font-family:'Fraunces',serif; font-style:italic; font-weight:300; font-size:.96rem; color:rgba(var(--cream-rgb),.65); line-height:1.45;}
.pin-badge{ display:inline-flex; align-items:center; gap:.4em; font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.26em; text-transform:uppercase; padding:4px 10px; border-radius:999px; background:var(--goldlt); color:#1a160d; font-weight:600;}

/* ── Category nav ── */
.cat-nav{ display:flex; gap:.4rem; overflow-x:auto; padding-bottom:.5rem; -ms-overflow-style:none; scrollbar-width:none;}
.cat-nav::-webkit-scrollbar{ display:none;}
.cat-pill{ font-family:'JetBrains Mono',monospace; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; padding:8px 16px; border-radius:999px; border:1px solid var(--line-strong); color:rgba(var(--cream-rgb),.55); transition:all .3s; white-space:nowrap; cursor:pointer;}
.cat-pill:hover{ color:var(--goldlt); border-color:rgba(var(--gold-rgb),.4);}
.cat-pill.active{ background:var(--goldlt); color:#1a160d; border-color:var(--goldlt); font-weight:500;}

/* ── Sidebar widgets ── */
.side-card{ background:var(--ink2); border:1px solid var(--line); border-radius:14px; padding:1.4rem 1.3rem; position:relative; overflow:hidden;}
.side-title{ font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; display:flex; align-items:center; gap:.5em;}
.trend-item{ display:flex; gap:.8rem; padding:.8rem 0; border-top:1px solid var(--line); cursor:pointer; transition:background .3s; margin:0 -1.3rem; padding-left:1.3rem; padding-right:1.3rem;}
.trend-item:first-child{ border-top:none;}
.trend-item:hover{ background:rgba(var(--cream-rgb),.025);}
.trend-num{ font-family:'Fraunces',serif; font-weight:300; font-size:1.4rem; color:rgba(var(--gold-rgb),.6); line-height:1; flex-shrink:0; width:1.5rem;}
.trend-title{ font-family:'Fraunces',serif; font-size:.95rem; line-height:1.3; color:var(--cream); transition:color .3s;}
.trend-item:hover .trend-title{ color:var(--goldlt);}
.trend-meta{ font-family:'JetBrains Mono',monospace; font-size:.58rem; letter-spacing:.16em; color:rgba(var(--cream-rgb),.4); text-transform:uppercase; margin-top:.3rem;}

/* ── Ad banner ── */
.ad-banner{ position:relative; border-radius:14px; overflow:hidden; cursor:pointer; transition:transform .4s; border:1px solid rgba(var(--gold-rgb),.25);}
.ad-banner:hover{ transform:translateY(-2px);}
.ad-banner .ad-tag{ position:absolute; top:10px; right:10px; font-family:'JetBrains Mono',monospace; font-size:.55rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(237,230,216,.45); background:rgba(22,20,15,.55); backdrop-filter:blur(4px); padding:3px 8px; border-radius:999px; z-index:2;}
.ad-banner-inner{ padding:1.6rem 1.4rem; display:flex; flex-direction:column; gap:.5rem;}
.ad-banner h4{ font-family:'Fraunces',serif; font-size:1.15rem; line-height:1.2; color:var(--cream);}
.ad-banner p{ font-size:.82rem; color:rgba(var(--cream-rgb),.7); line-height:1.45;}
.ad-banner .ad-cta{ display:inline-flex; align-items:center; gap:.4em; font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; color:var(--goldlt); margin-top:.5rem;}
.wire-toast{ position:fixed; bottom:30px; left:50%; transform:translateX(-50%); background:#1a160d; color:var(--goldlt); padding:10px 18px; border-radius:8px; border:1px solid var(--goldlt); font-family:Manrope,sans-serif; font-size:.84rem; z-index:9999; box-shadow:0 10px 30px rgba(0,0,0,.5); }

/* ── Article reader page ── */
.reader{ max-width:720px; margin:0 auto; padding:2rem 1.4rem;}
.reader-eyebrow{ font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-bottom:1.4rem;}
.reader-title{ font-family:'Fraunces',serif; font-weight:400; font-size:clamp(2rem,4vw,3rem); line-height:1.1; letter-spacing:-.018em; color:var(--cream); margin-bottom:1.2rem;}
.reader-dek{ font-family:'Fraunces',serif; font-style:italic; font-weight:300; font-size:1.25rem; line-height:1.5; color:rgba(var(--cream-rgb),.7); margin-bottom:2rem;}
.reader-meta{ display:flex; align-items:center; gap:1rem; font-family:'JetBrains Mono',monospace; font-size:.68rem; letter-spacing:.16em; color:rgba(var(--cream-rgb),.45); text-transform:uppercase; padding-bottom:1.5rem; border-bottom:1px solid var(--line); margin-bottom:2rem;}
.reader-cover{ aspect-ratio:16/9; border-radius:14px; overflow:hidden; margin-bottom:2.5rem; position:relative; border:1px solid var(--line);}
.reader-cover-auto{ aspect-ratio:auto; height:auto; background:#100E0A; display:flex; justify-content:center;}
.reader-cover-img{ display:block; width:100%; height:auto; max-height:80vh; object-fit:contain; border-radius:14px;}
.reader-body{ font-family:'Fraunces',serif; font-weight:300; font-size:1.13rem; line-height:1.8; color:rgba(var(--cream-rgb),.85); letter-spacing:.005em;}
.reader-body p{ margin:0 0 1.5rem;}
.reader-body p:first-of-type::first-letter{ font-family:'Fraunces',serif; font-weight:400; font-size:3rem; line-height:1; float:left; margin:.02em .1em 0 0; color:var(--goldlt);}
.reader-body h3{ font-family:'Fraunces',serif; font-weight:500; font-size:1.5rem; color:var(--cream); margin:2.6rem 0 1.1rem; line-height:1.25; position:relative; padding-top:1.4rem; letter-spacing:-.01em;}
.reader-body h3::before{ content:''; position:absolute; top:0; left:0; width:48px; height:2px; background:linear-gradient(90deg,var(--goldlt),transparent);}
.reader-body blockquote{ margin:2rem 0; padding:0 0 0 1.4rem; border-left:2px solid var(--goldlt); font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:1.35rem; line-height:1.4; color:var(--goldlt); letter-spacing:-.005em;}
.reader-body hr{ border:none; height:1px; background:linear-gradient(90deg,transparent,var(--line-strong) 30%,rgba(var(--gold-rgb),.4) 50%,var(--line-strong) 70%,transparent); margin:2.4rem 0;}
.reader-body strong{ color:var(--cream); font-weight:500;}
.reader-body em{ color:var(--goldlt); font-style:italic;}

/* ── Media inside articles ── */
.reader-body figure{ margin:2.2rem -1rem; padding:0;}
.reader-body figure img{ width:100%; height:auto; border-radius:12px; display:block; border:1px solid var(--line);}
.reader-body figcaption{ font-family:'JetBrains Mono','Manrope',monospace; font-size:.72rem; letter-spacing:.04em; color:rgba(var(--cream-rgb),.5); margin-top:.8rem; text-align:center; line-height:1.5; font-style:normal;}
.reader-body img.inline-img{ max-width:100%; height:auto; border-radius:8px; vertical-align:middle; margin:.2em 0;}
.reader-body a{ color:var(--goldlt); text-decoration:none; border-bottom:1px solid rgba(var(--gold-rgb),.4); transition:border-color .3s;}
.reader-body a:hover{ border-color:var(--goldlt);}
.video-embed{ position:relative; padding-bottom:56.25%; height:0; margin:2.2rem -1rem; border-radius:12px; overflow:hidden; border:1px solid var(--line); background:#0a0905;}
.video-embed iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0;}

/* ── Telegra.ph-like content blocks ── */
.reader-blocks{ display:flex; flex-direction:column; gap:0; }
.reader-block{ margin:0 0 1.5rem; }
.reader-block:last-child{ margin-bottom:0; }
.reader-block-heading{ font-family:'Fraunces',serif; font-weight:500; color:var(--cream); margin:2.6rem 0 1.1rem; line-height:1.25; position:relative; padding-top:1.4rem; letter-spacing:-.01em; }
.reader-block-heading.level-2{ font-size:clamp(1.65rem,3vw,2.05rem); }
.reader-block-heading.level-3{ font-size:1.5rem; }
.reader-block-heading::before{ content:''; position:absolute; top:0; left:0; width:48px; height:2px; background:linear-gradient(90deg,var(--goldlt),transparent); }
.reader-block-text p{ margin:0 0 1.5rem; }
.reader-block-text p:last-child{ margin-bottom:0; }
.reader-block-quote{ margin:2rem 0; padding:0 0 0 1.4rem; border-left:2px solid var(--goldlt); font-family:'Fraunces',serif; font-style:italic; font-weight:400; font-size:1.35rem; line-height:1.4; color:var(--goldlt); letter-spacing:-.005em; }
.reader-block-list{ margin:0 0 1.5rem; padding-left:1.5rem; }
.reader-block-list li{ margin:.45rem 0; padding-left:.3rem; }
.reader-block-list li::marker{ color:var(--goldlt); }
.reader-block-divider{ border:none; height:1px; background:linear-gradient(90deg,transparent,var(--line-strong) 30%,rgba(var(--gold-rgb),.4) 50%,var(--line-strong) 70%,transparent); margin:2.4rem 0; }
.reader-block-figure{ margin:2.2rem -1rem; padding:0; }
.reader-block-figure.width-text{ margin-left:0; margin-right:0; }
.reader-block-figure.width-wide{ margin-left:clamp(-2.5rem,-4vw,-1rem); margin-right:clamp(-2.5rem,-4vw,-1rem); }
.reader-block-figure.width-full{ position:relative; left:50%; width:min(calc(100vw - 2rem),1040px); transform:translateX(-50%); margin-left:0; margin-right:0; }
.reader-block-figure img{ width:100%; height:auto; border-radius:12px; display:block; border:1px solid var(--line); cursor:zoom-in; }
.reader-block-figure figcaption{ font-family:'JetBrains Mono','Manrope',monospace; font-size:.72rem; letter-spacing:.04em; color:rgba(var(--cream-rgb),.5); margin-top:.8rem; text-align:center; line-height:1.5; font-style:normal; }
.reader-block-gallery{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:2.2rem -1rem; }
.reader-block-gallery figure{ min-width:0; margin:0; }
.reader-block-gallery .gallery-card img{ min-height:0; max-height:none; aspect-ratio:4/3; object-fit:cover; }
.reader-block-gallery figcaption{ font-family:'JetBrains Mono','Manrope',monospace; font-size:.68rem; color:rgba(var(--cream-rgb),.5); margin-top:.55rem; text-align:center; line-height:1.45; }
.reader-block-sources{ margin:2.8rem 0 0; padding:1.35rem 1.5rem; border:1px solid var(--line); border-radius:14px; background:rgba(var(--gold-rgb),.035); }
.reader-block-sources h2{ margin:0 0 .8rem; font-family:'Fraunces',serif; font-size:1.35rem; font-weight:500; }
.reader-block-sources ol{ margin:0; padding-left:1.25rem; }
.reader-block-sources li{ margin:.55rem 0; color:rgba(var(--cream-rgb),.62); }
.reader-block-sources a{ overflow-wrap:anywhere; }
body.light-mode .reader-block-heading{ color:#1A140E; }
body.light-mode .reader-block-quote{ color:#8C6E3B; border-left:3px solid #B79256; background:rgba(140,110,59,.045); }
body.light-mode .reader-block-divider{ background:rgba(26,20,14,.11); }
body.light-mode .reader-block-figure img{ border-color:rgba(26,20,14,.1); }
body.light-mode .reader-block-figure figcaption{ color:rgba(26,20,14,.55); }
body.light-mode .reader-block-gallery figcaption{ color:rgba(26,20,14,.55); }
.reader-light .reader-block-heading{ color:var(--rl-text); }
.reader-light .reader-block-quote{ color:var(--rl-gold-text); border-left:3px solid var(--rl-gold-text); background:rgba(var(--rl-gold-rgb),.06); }
.reader-light .reader-block-divider{ background:var(--rl-line); }
.reader-light .reader-block-figure img{ border:1px solid var(--rl-line); }
.reader-light .reader-block-figure figcaption{ color:rgba(var(--rl-text-rgb),.55); }
.reader-light .reader-block-gallery figcaption{ color:rgba(var(--rl-text-rgb),.55); }

.cover-photo{ width:100%; height:100%; background-size:cover; background-repeat:no-repeat; background-position:center; position:relative; background-color:#100E0A;}
.cover-photo img,.cover-photo>img{ width:100%; height:100%; object-fit:contain; object-position:center; display:block;}
.cover-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(to bottom right, rgba(22,20,15,.04), rgba(22,20,15,.12)); pointer-events:none;}

/* ─────────── GLOBAL LIGHT MODE ─────────── */
/* Applied to <body> when readerTheme === 'light'.
   Overrides core palette variables so all components inherit the warm paper palette.
   Plus explicit overrides for hardcoded rgba colors that wouldn't switch automatically. */
body.light-mode{
  --ink:        #FAF7EE;             /* warm paper — main bg */
  --ink2:       #F0EAD9;             /* slightly tinted — surfaces, cards */
  --cream:      #1A140E;             /* dark warm — text */
  --cream-rgb:  26, 20, 14;
  --line:       rgba(26,20,14,.11);
  --gold:       #8C6E3B;             /* deepened gold for contrast on light */
  --goldlt:     #A37D45;
  --gold-rgb:   140, 110, 59;
}
body.light-mode{ background:#FAF7EE; color:#1A140E; }

/* Header in light mode */
body.light-mode header[style*="background"]{
  background:rgba(250,247,238,.85) !important;
  border-bottom:1px solid rgba(26,20,14,.08);
}

/* Ticker bar — hardcoded dark colors need explicit overrides */
body.light-mode .ticker-strip{
  background:rgba(240,234,217,.96);
  border-bottom:1px solid rgba(26,20,14,.1);
}
body.light-mode .ticker-strip::before{
  background:linear-gradient(90deg, rgba(240,234,217,1), transparent);
}
body.light-mode .ticker-strip::after{
  background:linear-gradient(-90deg, rgba(240,234,217,1), transparent);
}
body.light-mode .ticker-item{ color:rgba(26,20,14,.6); }
body.light-mode .ticker-item b{ color:#1A140E; }

/* Body background overrides — many sections use direct ink references */
body.light-mode .bg-ink, body.light-mode [class*="bg-ink"]{
  background-color:#FAF7EE;
}
body.light-mode .bg-ink2{ background-color:#F0EAD9; }

/* Card surfaces */
body.light-mode .card,
body.light-mode .panel{
  background:#F5EFE3;
  border-color:rgba(26,20,14,.1);
}

/* Hero pinned story */
body.light-mode .hero-pin{
  background:#F5EFE3;
  border-color:rgba(26,20,14,.12);
}
body.light-mode .hero-title{ color:#1A140E; }
body.light-mode .hero-dek{ color:rgba(26,20,14,.62); }

/* Article cards */
body.light-mode .art-card{
  background:#F5EFE3;
  border:1px solid rgba(26,20,14,.08);
}
body.light-mode .art-cover-art{ opacity:.55; }
body.light-mode .art-title{ color:#1A140E; }
body.light-mode .art-card:hover .art-title{ color:#8C6E3B; }
body.light-mode .art-excerpt{ color:rgba(26,20,14,.6); }
body.light-mode .art-meta{ color:rgba(26,20,14,.5); }

/* Book cards */
body.light-mode .book-card{
  background:#F5EFE3;
  border:1px solid rgba(26,20,14,.1);
}
body.light-mode .book-title{ color:#1A140E; }
body.light-mode .book-card:hover .book-title{ color:#8C6E3B; }
body.light-mode .book-author{ color:rgba(26,20,14,.5); }

/* Sidebar widgets */
body.light-mode .side-widget,
body.light-mode .ad-banner{
  background:#F0EAD9;
  border-color:rgba(26,20,14,.1);
}

/* Buttons */
body.light-mode .btn-line{
  background:rgba(26,20,14,.03);
  border-color:rgba(26,20,14,.18);
  color:#1A140E;
}
body.light-mode .btn-line:hover{
  background:rgba(140,110,59,.08);
  border-color:#8C6E3B;
  color:#8C6E3B;
}

/* Modals */
body.light-mode .modal-bg{ background:rgba(250,247,238,.85); }
body.light-mode .modal-box{
  background:linear-gradient(160deg,#FAF7EE,#F0EAD9);
  border-color:rgba(26,20,14,.15);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.18);
}

/* Forms (subscribe email, etc.) */
body.light-mode .fin{
  background:#FFFDF7;
  border-color:rgba(26,20,14,.18);
  color:#1A140E;
}
body.light-mode .fin::placeholder{ color:rgba(26,20,14,.4); }
body.light-mode .fin:focus{ border-color:#8C6E3B; }

/* User menu (profile dropdown) */
body.light-mode .user-menu{
  background:linear-gradient(160deg,#FAF7EE,#F0EAD9);
  border-color:rgba(26,20,14,.18);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.18);
}
body.light-mode .user-menu-head{ border-color:rgba(26,20,14,.1); }
body.light-mode .user-menu-name{ color:#1A140E; }
body.light-mode .user-menu-email{ color:rgba(26,20,14,.55); }
body.light-mode .user-menu a, body.light-mode .user-menu button{ color:rgba(26,20,14,.75); }
body.light-mode .user-menu a:hover, body.light-mode .user-menu button:hover{
  background:rgba(26,20,14,.04); color:#1A140E;
}

/* Footer */
body.light-mode footer{
  background:#F0EAD9;
  border-top-color:rgba(26,20,14,.1);
}

/* Search modal */
body.light-mode .search-modal-bg{ background:rgba(250,247,238,.85); }
body.light-mode .search-input-wrap,
body.light-mode .search-results{
  background:linear-gradient(160deg,#FAF7EE,#F0EAD9);
  border-color:rgba(26,20,14,.18);
}
body.light-mode .search-input-wrap input{ color:#1A140E; }
body.light-mode .search-input-wrap input::placeholder{ color:rgba(26,20,14,.4); }
body.light-mode .search-result{ border-color:rgba(26,20,14,.08); }
body.light-mode .search-result:hover{ background:rgba(140,110,59,.06); }
body.light-mode .search-result .title{ color:#1A140E; }
body.light-mode .search-result .snippet{ color:rgba(26,20,14,.6); }
body.light-mode .search-result mark{
  background:rgba(140,110,59,.25); color:#8C6E3B;
}

/* Reader (the article page itself) */
body.light-mode .reader-title{ color:#1A140E; }
body.light-mode .reader-dek{ color:rgba(26,20,14,.62); }
body.light-mode .reader-meta{ color:rgba(26,20,14,.5); border-color:rgba(26,20,14,.1); }
body.light-mode .reader-body p,
body.light-mode .reader-body li{ color:rgba(26,20,14,.85); }
body.light-mode .reader-body h3{ color:#1A140E; }
body.light-mode .reader-body strong{ color:#1A140E; font-weight:500; }
body.light-mode .reader-body em{ color:#8C6E3B; }
body.light-mode .reader-body blockquote{
  color:#8C6E3B;
  border-left:3px solid #B79256;
  background:rgba(140,110,59,.045);
}
body.light-mode .reader-body hr{ background:rgba(26,20,14,.11); }
body.light-mode .reader-body a{
  color:#8C6E3B;
  border-bottom:1px solid rgba(140,110,59,.45);
}
body.light-mode .reader-body a:hover{ border-color:#8C6E3B; }
body.light-mode .reader-body p.drop-cap::first-letter,
body.light-mode .reader-body > p:first-of-type::first-letter{
  color:#8C6E3B;
}
body.light-mode .reader-body figure img{ border-color:rgba(26,20,14,.1); }
body.light-mode .reader-body figcaption{ color:rgba(26,20,14,.55); }
body.light-mode .reader-body img.inline-img{ border-color:rgba(26,20,14,.1); }
body.light-mode .video-embed{ border-color:rgba(26,20,14,.1); }
body.light-mode .gallery-section{ border-top-color:rgba(26,20,14,.12); }
body.light-mode .gallery-card{ color:inherit; }
body.light-mode .gallery-card img{ border-color:rgba(26,20,14,.1); }


.gallery-section{ margin-top:2.8rem; border-top:1px solid var(--line); padding-top:2rem; }
.gallery-grid{ display:grid; grid-template-columns:1fr; gap:1.35rem; }
.gallery-card{ display:block; width:100%; padding:0; border:0; text-align:left; font:inherit; position:relative; overflow:hidden; border-radius:16px; color:inherit; text-decoration:none; background:rgba(255,255,255,.02); cursor:zoom-in; }
.gallery-card::after{ content:'Открыть'; position:absolute; right:1rem; bottom:1rem; font-family:'JetBrains Mono','Manrope',monospace; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; padding:.42rem .62rem; border-radius:999px; color:#fff5dc; background:rgba(12,10,7,.58); border:1px solid rgba(var(--cream-rgb),.18); opacity:0; transform:translateY(8px); transition:opacity .28s ease, transform .28s ease; pointer-events:none; }
.gallery-card img{ width:100%; min-height:320px; max-height:620px; object-fit:contain; object-position:center; background-color:#100E0A; border-radius:16px; border:1px solid var(--line); display:block; transition:transform .45s ease, filter .35s ease, border-color .3s ease, box-shadow .35s ease; }
.gallery-card:hover img, .gallery-card:focus-visible img{ transform:scale(1.015); filter:saturate(1.04) contrast(1.02); border-color:rgba(var(--gold-rgb),.34); box-shadow:0 18px 40px rgba(0,0,0,.18); }
.gallery-card:hover::after, .gallery-card:focus-visible::after{ opacity:1; transform:translateY(0); }
.gallery-card:focus-visible{ outline:2px solid rgba(var(--gold-rgb),.42); outline-offset:3px; }
.gallery-lightbox{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:clamp(1rem,3vw,3rem); background:rgba(7,6,4,.86); backdrop-filter:blur(14px); }
.gallery-lightbox-panel{ position:relative; width:min(1180px,96vw); max-height:92vh; display:flex; align-items:center; justify-content:center; }
.gallery-lightbox-img{ max-width:100%; max-height:88vh; object-fit:contain; border-radius:18px; border:1px solid rgba(var(--cream-rgb),.16); box-shadow:0 40px 120px rgba(0,0,0,.55); background:#0f0d09; }
.gallery-lightbox-close{ position:absolute; top:-.75rem; right:-.75rem; width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:rgba(20,17,12,.92); border:1px solid rgba(var(--cream-rgb),.18); color:#fff5dc; font-size:1.3rem; line-height:1; }
.gallery-lightbox-close:hover{ border-color:rgba(var(--gold-rgb),.5); color:var(--goldlt); }
.gallery-lightbox-caption{ position:absolute; left:1rem; right:1rem; bottom:1rem; text-align:center; font-family:'JetBrains Mono','Manrope',monospace; font-size:.68rem; letter-spacing:.08em; color:rgba(var(--cream-rgb),.72); text-shadow:0 2px 10px rgba(0,0,0,.8); }

body.light-mode .profile-tabs{ background:rgba(26,20,14,.04); }
body.light-mode .profile-card{ background:#F5EFE3; border-color:rgba(26,20,14,.1); }
body.light-mode .profile-row{ border-color:rgba(26,20,14,.08); }
body.light-mode .profile-row .label{ color:rgba(26,20,14,.55); }
body.light-mode .profile-row .value{ color:#1A140E; }

body.light-mode .share-url-box{
  background:#FFFDF7;
  border-color:rgba(26,20,14,.15);
}
body.light-mode .sub-state-card.active{
  background:linear-gradient(135deg,rgba(108,168,124,.08),transparent);
  border-color:rgba(108,168,124,.35);
}
body.light-mode .sub-state-card.paused{
  background:linear-gradient(135deg,rgba(140,110,59,.08),transparent);
  border-color:rgba(140,110,59,.35);
}
body.light-mode .sub-state-card.inactive{ background:rgba(26,20,14,.03); }
body.light-mode .pause-option{
  background:rgba(26,20,14,.02);
  border-color:rgba(26,20,14,.12);
}
body.light-mode .pause-option:hover{ border-color:rgba(140,110,59,.5); }

/* Auth modal tabs */
body.light-mode .auth-tabs{ background:rgba(26,20,14,.04); }
body.light-mode .auth-tab:not(.active){ color:rgba(26,20,14,.55); }
body.light-mode .auth-tab:not(.active):hover{ color:#1A140E; }

/* Bookmark button */
body.light-mode .bm-btn{
  background:rgba(26,20,14,.04);
  border-color:rgba(26,20,14,.12);
  color:rgba(26,20,14,.65);
}
body.light-mode .bm-btn:hover{ border-color:#8C6E3B; color:#1A140E; }
body.light-mode .bm-btn.saved{
  background:rgba(140,110,59,.1);
  border-color:#8C6E3B;
  color:#8C6E3B;
}

body.light-mode .bm-card{
  background:rgba(250,247,238,.85);
  border-color:rgba(26,20,14,.12);
  color:rgba(26,20,14,.65);
}
body.light-mode .bm-card.saved{
  background:#B79256;
  border-color:#8C6E3B;
  color:#fff;
}

/* Mobile nav drawer */
body.light-mode #mob-nav{
  background:#FAF7EE;
  border-color:rgba(26,20,14,.1);
}

/* Subscribe / book sub-badge */
body.light-mode .sub-badge{
  background:rgba(140,110,59,.1);
  color:#8C6E3B;
  border-color:rgba(140,110,59,.35);
}
body.light-mode .art-prem, body.light-mode .book-prem-corner{
  background:rgba(250,247,238,.85);
  color:#8C6E3B;
  border-color:rgba(140,110,59,.4);
}
body.light-mode .art-cat{
  background:rgba(26,20,14,.05);
  color:rgba(26,20,14,.7);
  border-color:rgba(26,20,14,.12);
}

/* Eyebrow text */
body.light-mode .eyebrow{ color:#8C6E3B; }
body.light-mode .eyebrow::before{ background:#8C6E3B; }
body.light-mode .reader-eyebrow{ color:#8C6E3B; }

/* Lead text */
body.light-mode .lead{ color:rgba(26,20,14,.7); }
body.light-mode .serif-h{ color:#1A140E; }

/* Theme toggle button itself in light mode */
body.light-mode .btn-line svg{ color:#1A140E; }

/* Cover gradients dimmed a bit on light */
body.light-mode .cover-grad-1, body.light-mode .cover-grad-2, body.light-mode .cover-grad-3,
body.light-mode .cover-grad-4, body.light-mode .cover-grad-5, body.light-mode .cover-grad-6{
  opacity:.72;
}
/* Activated only on article and book reader pages via a small toggle.
   Wraps the reader content in a warm cream "paper" surface — keeps the
   premium editorial feel of FT/NYT Reader Light. */
.reader-light{
  --rl-bg:        #FAF7EE;            /* warm paper */
  --rl-bg2:       #F0EAD9;            /* slightly tinted */
  --rl-text:      #1A140E;            /* warm dark */
  --rl-text-rgb:  26, 20, 14;
  --rl-line:      rgba(26,20,14,.11);
  --rl-gold-text: #8C6E3B;            /* gold deepened for contrast */
  --rl-gold-bg:   #B79256;
  background:var(--rl-bg);
  color:var(--rl-text);
  border-radius:18px;
  padding:2.5rem 2rem 3rem;
  margin:0 -1rem;
  border:1px solid var(--rl-line);
  position:relative;
  box-shadow:0 30px 60px -25px rgba(0,0,0,.6);
}
@media (min-width:768px){ .reader-light{ padding:3rem 3.5rem 3.5rem;}}
.reader-light .reader-eyebrow{ color:var(--rl-gold-text); border-color:var(--rl-gold-bg);}
.reader-light .reader-title{ color:var(--rl-text);}
.reader-light .reader-dek{ color:rgba(var(--rl-text-rgb),.6);}
.reader-light .reader-meta{ color:rgba(var(--rl-text-rgb),.5); border-bottom:1px solid var(--rl-line); padding-bottom:1.2rem; margin-bottom:2.2rem;}
.reader-light .reader-cover{ border:1px solid var(--rl-line);}
.reader-light .reader-body p,
.reader-light .reader-body li{ color:rgba(var(--rl-text-rgb),.85);}
.reader-light .reader-body h3{ color:var(--rl-text);}
.reader-light .reader-body strong{ color:var(--rl-text); font-weight:500;}
.reader-light .reader-body em{ color:var(--rl-gold-text); font-style:italic;}
.reader-light .reader-body blockquote{
  color:var(--rl-gold-text);
  border-left:3px solid var(--rl-gold-bg);
  background:rgba(140,110,59,.045);
}
.reader-light .reader-body hr{ background:var(--rl-line);}
.reader-light .reader-body a{
  color:var(--rl-gold-text);
  border-bottom:1px solid rgba(140,110,59,.45);
}
.reader-light .reader-body a:hover{ border-color:var(--rl-gold-text);}
.reader-light .reader-body p.drop-cap::first-letter,
.reader-light .reader-body > p:first-of-type::first-letter{
  color:var(--rl-gold-text);
}
.reader-light .reader-body figure img{ border:1px solid var(--rl-line);}
.reader-light .reader-body figcaption{ color:rgba(var(--rl-text-rgb),.55);}
.reader-light .reader-body img.inline-img{ border:1px solid var(--rl-line);}
.reader-light .video-embed{ border:1px solid var(--rl-line);}
.reader-light .gallery-section{ border-top-color:var(--rl-line); }
.reader-light .gallery-label{ color:rgba(var(--rl-text-rgb),.5); }
.reader-light .gallery-card img{ border:1px solid var(--rl-line); }
.reader-light .gallery-card figcaption{ color:rgba(var(--rl-text-rgb),.58); }

/* Reader light: interactive elements */
.reader-light .bm-btn{
  background:rgba(var(--rl-text-rgb),.04);
  border:1px solid var(--rl-line);
  color:rgba(var(--rl-text-rgb),.65);
}
.reader-light .bm-btn:hover{
  border-color:rgba(140,110,59,.5);
  color:var(--rl-text);
}
.reader-light .bm-btn.saved{
  background:rgba(140,110,59,.1);
  border-color:var(--rl-gold-text);
  color:var(--rl-gold-text);
}
.reader-light .sub-badge{
  background:rgba(140,110,59,.1);
  color:var(--rl-gold-text);
  border:1px solid rgba(140,110,59,.32);
}

/* Theme toggle button itself */
.theme-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:50%;
  background:rgba(var(--cream-rgb),.05);
  border:1px solid var(--line);
  color:rgba(var(--cream-rgb),.6);
  cursor:pointer;
  transition:all .3s;
  flex-shrink:0;
}
.theme-toggle:hover{
  border-color:var(--goldlt);
  color:var(--goldlt);
  transform:scale(1.05);
}
.reader-light .theme-toggle{
  background:rgba(var(--rl-text-rgb),.04);
  border-color:var(--rl-line);
  color:var(--rl-gold-text);
}
.reader-light .theme-toggle:hover{
  border-color:var(--rl-gold-text);
}
.theme-toggle svg{ width:16px; height:16px;}

/* ── Auth modal & profile menu ── */
.auth-tabs{ display:flex; gap:0; padding:.3rem; border-radius:11px; background:rgba(var(--cream-rgb),.04); margin-bottom:1.4rem;}
.auth-tab{ flex:1; padding:.65rem; border-radius:8px; font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(var(--cream-rgb),.55); cursor:pointer; transition:all .3s; text-align:center; background:transparent; border:none;}
.auth-tab.active{ background:var(--goldlt); color:#1a160d; font-weight:600;}
.auth-tab:not(.active):hover{ color:var(--cream);}
.auth-error{ font-size:.82rem; color:#D88770; margin-top:.6rem; padding:.6rem .9rem; border-radius:8px; background:rgba(216,135,112,.08); border:1px solid rgba(216,135,112,.25);}

.user-avatar{ display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,var(--goldlt),var(--gold)); color:#1a160d; font-weight:600; font-size:.82rem; font-family:'Manrope'; cursor:pointer; transition:transform .3s; flex-shrink:0;}
.user-avatar:hover{ transform:scale(1.05);}
.user-menu{ position:absolute; right:0; top:calc(100% + 10px); min-width:240px; padding:.6rem; border-radius:14px; background:linear-gradient(160deg,#221E15,#16140F); border:1px solid rgba(var(--gold-rgb),.28); box-shadow:0 30px 60px -20px rgba(0,0,0,.7); z-index:60;}
.user-menu-head{ padding:.7rem .8rem .9rem; border-bottom:1px solid var(--line); margin-bottom:.4rem;}
.user-menu-name{ font-family:'Fraunces',serif; font-size:1rem; color:var(--cream); line-height:1.2;}
.user-menu-email{ font-family:'JetBrains Mono',monospace; font-size:.66rem; color:rgba(var(--cream-rgb),.5); margin-top:.25rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.user-menu-status{ display:inline-flex; align-items:center; gap:.35em; margin-top:.6rem; font-family:'JetBrains Mono',monospace; font-size:.58rem; letter-spacing:.18em; padding:3px 9px; border-radius:999px; text-transform:uppercase;}
.user-menu-status.active{ background:rgba(123,200,148,.12); color:#7BC894; border:1px solid rgba(123,200,148,.3);}
.user-menu-status.inactive{ background:rgba(var(--cream-rgb),.05); color:rgba(var(--cream-rgb),.5); border:1px solid var(--line);}
.user-menu a, .user-menu button{ display:flex; align-items:center; gap:.7em; width:100%; padding:.6rem .8rem; border-radius:8px; font-size:.86rem; color:rgba(var(--cream-rgb),.75); text-align:left; background:transparent; border:none; cursor:pointer; transition:all .25s;}
.user-menu a:hover, .user-menu button:hover{ background:rgba(var(--cream-rgb),.04); color:var(--cream);}
.user-menu a.signout, .user-menu button.signout{ color:rgba(var(--cream-rgb),.5);}
.user-menu a.signout:hover, .user-menu button.signout:hover{ color:#D88770;}

/* ── Bookmark star button ── */
.bm-btn{ display:inline-flex; align-items:center; gap:.5em; padding:.6rem 1rem; border-radius:999px; background:rgba(var(--cream-rgb),.04); border:1px solid var(--line); color:rgba(var(--cream-rgb),.65); font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; transition:all .3s; cursor:pointer;}
.bm-btn:hover{ border-color:rgba(var(--gold-rgb),.4); color:var(--cream);}
.bm-btn.saved{ background:rgba(var(--gold-rgb),.1); border-color:var(--goldlt); color:var(--goldlt);}
.bm-btn svg{ width:14px; height:14px; transition:transform .35s;}
.bm-btn.saved svg{ transform:scale(1.1);}
/* tiny version for cards (top-right corner) */
.bm-card{ position:absolute; top:.7rem; right:.7rem; z-index:5; width:32px; height:32px; border-radius:50%; background:rgba(22,20,15,.7); backdrop-filter:blur(8px); border:1px solid rgba(var(--cream-rgb),.18); display:flex; align-items:center; justify-content:center; color:rgba(var(--cream-rgb),.7); transition:all .3s; cursor:pointer; opacity:0;}
.art-card:hover .bm-card{ opacity:1;}
.bm-card:hover{ border-color:var(--goldlt); color:var(--goldlt); transform:scale(1.08);}
.bm-card.saved{ opacity:1; background:rgba(var(--gold-rgb),.85); border-color:var(--goldlt); color:#1a160d;}

/* ── Profile page ── */
.profile-tabs{ display:flex; gap:.4rem; padding:.4rem; border-radius:14px; background:rgba(var(--cream-rgb),.04); margin-bottom:2rem; max-width:fit-content;}
.profile-tab{ display:inline-flex; align-items:center; gap:.55em; padding:.6rem 1.1rem; border-radius:10px; font-family:'JetBrains Mono',monospace; font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(var(--cream-rgb),.55); cursor:pointer; transition:all .3s; background:transparent; border:none; white-space:nowrap;}
.profile-tab:not(.active):hover{ color:var(--cream);}
.profile-tab.active{ background:var(--goldlt); color:#1a160d; font-weight:600;}
.profile-tab svg{ width:14px; height:14px;}

.profile-card{ background:var(--ink2); border:1px solid var(--line); border-radius:16px; padding:1.7rem;}
.profile-row{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line);}
.profile-row:last-child{ border-bottom:none;}
.profile-row .label{ font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.18em; color:rgba(var(--cream-rgb),.5); text-transform:uppercase;}
.profile-row .value{ color:var(--cream); font-size:.94rem;}
.profile-row .value.gold{ color:var(--goldlt);}

.share-url-box{ display:flex; gap:.5rem; padding:.6rem .6rem .6rem 1rem; border-radius:10px; background:rgba(var(--ink),.55); border:1px solid var(--line); align-items:center;}
.share-url-box input{ flex:1; background:transparent; border:none; color:var(--goldlt); font-family:'JetBrains Mono',monospace; font-size:.84rem; outline:none; padding:.5rem 0;}
.share-url-box button{ background:linear-gradient(180deg,var(--goldlt),var(--gold)); color:#1a160d; border:none; padding:.6rem 1.2rem; border-radius:7px; cursor:pointer; font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; transition:transform .25s;}
.share-url-box button:hover{ transform:translateY(-1px);}

.perk-card{ display:flex; align-items:flex-start; gap:1rem; padding:1.3rem 1.5rem; border-radius:14px; background:linear-gradient(135deg, rgba(var(--gold-rgb),.08), transparent); border:1px solid rgba(var(--gold-rgb),.3);}
.perk-card .icon{ width:42px; height:42px; border-radius:11px; background:linear-gradient(140deg, var(--goldlt), var(--gold)); display:flex; align-items:center; justify-content:center; color:#1a160d; flex-shrink:0;}
.perk-card .promo{ display:inline-flex; align-items:center; gap:.4em; padding:.3rem .9rem; border-radius:999px; background:#1a160d; color:var(--goldlt); font-family:'JetBrains Mono',monospace; font-size:.78rem; letter-spacing:.22em; border:1px dashed var(--goldlt); margin-top:.5rem;}

/* ── Search modal ── */
.search-modal-bg{ position:fixed; inset:0; z-index:120; background:rgba(10,9,6,.72); backdrop-filter:blur(12px); padding:5rem 1.5rem 1.5rem; overflow-y:auto;}
.search-modal-box{ max-width:780px; margin:0 auto;}
.search-input-wrap{ position:relative; display:flex; align-items:center; gap:1rem; padding:1.2rem 1.5rem; background:linear-gradient(160deg, #2A2418, #1E1B14); border:1px solid rgba(var(--gold-rgb),.35); border-radius:16px; box-shadow:0 30px 60px -20px rgba(0,0,0,.7);}
.search-input-wrap svg{ color:var(--goldlt); flex-shrink:0;}
.search-input-wrap input{ flex:1; background:transparent; border:none; outline:none; color:var(--cream); font-family:'Fraunces',serif; font-size:1.4rem; font-weight:300; letter-spacing:-.01em;}
.search-input-wrap input::placeholder{ color:rgba(var(--cream-rgb),.35);}
.search-results{ margin-top:1.2rem; background:linear-gradient(160deg, #221E15, #16140F); border:1px solid var(--line); border-radius:14px; overflow:hidden;}
.search-result{ display:block; padding:1.1rem 1.4rem; border-bottom:1px solid var(--line); cursor:pointer; transition:background .25s; text-decoration:none;}
.search-result:last-child{ border-bottom:none;}
.search-result:hover{ background:rgba(var(--gold-rgb),.05);}
.search-result .meta{ font-family:'JetBrains Mono',monospace; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(var(--gold-rgb),.7); margin-bottom:.4rem;}
.search-result .title{ font-family:'Fraunces',serif; font-size:1.05rem; color:var(--cream); line-height:1.3; margin-bottom:.35rem;}
.search-result .snippet{ font-size:.84rem; color:rgba(var(--cream-rgb),.55); line-height:1.5;}
.search-result mark{ background:rgba(var(--gold-rgb),.3); color:var(--goldlt); padding:0 .15em; border-radius:2px;}
.search-shortcut{ display:inline-flex; align-items:center; gap:.3em; padding:.15rem .5rem; border-radius:5px; background:rgba(var(--cream-rgb),.06); border:1px solid var(--line); font-family:'JetBrains Mono',monospace; font-size:.64rem; color:rgba(var(--cream-rgb),.55);}

/* ── Subscription / Pause card ── */
.sub-state-card{ padding:1.6rem 1.8rem; border-radius:16px; border:1px solid var(--line); margin-bottom:1.4rem;}
.sub-state-card.active{ background:linear-gradient(135deg, rgba(123,200,148,.06), transparent); border-color:rgba(123,200,148,.3);}
.sub-state-card.paused{ background:linear-gradient(135deg, rgba(var(--gold-rgb),.06), transparent); border-color:rgba(var(--gold-rgb),.3);}
.sub-state-card.inactive{ background:rgba(var(--cream-rgb),.03);}
.pause-options{ display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem; margin-top:.5rem;}
@media (min-width:480px){ .pause-options{ grid-template-columns:repeat(4,1fr);}}
.pause-option{ padding:1.1rem; border-radius:11px; border:1px solid var(--line); cursor:pointer; transition:all .25s; text-align:center; background:rgba(var(--cream-rgb),.02);}
.pause-option:hover{ border-color:rgba(var(--gold-rgb),.5); transform:translateY(-2px);}
.pause-option .num{ font-family:'Fraunces',serif; font-size:1.7rem; color:var(--goldlt); line-height:1;}
.pause-option .label{ font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(var(--cream-rgb),.55); margin-top:.4rem;}

/* ─────────── BOOKS ─────────── */
.book-card{ position:relative; border-radius:14px; overflow:hidden; cursor:pointer; transition:transform .55s cubic-bezier(.22,1,.36,1), box-shadow .55s; background:var(--ink2); border:1px solid var(--line); display:flex; flex-direction:column;}
.book-card:hover{ transform:translateY(-5px); box-shadow:0 26px 56px -24px rgba(0,0,0,.7); border-color:rgba(var(--gold-rgb),.35);}
.book-cover{ aspect-ratio:3/4; position:relative; overflow:hidden; background:linear-gradient(160deg,#1F1B13 0%,#2E2616 100%);}
.book-cover::after{ content:''; position:absolute; top:0; left:18%; width:1.5px; bottom:0; background:linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.1)); /* spine illusion */}
.book-cover-photo{ position:absolute; inset:0; background-size:cover; background-position:center;}
.book-cover-fallback{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:1.4rem 1rem; text-align:center;}
.book-cover-fallback .b-em{ font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(var(--gold-rgb),.55); margin-bottom:.9rem;}
.book-cover-fallback h4{ font-family:'Fraunces',serif; font-weight:400; font-size:1.05rem; line-height:1.2; color:var(--cream); letter-spacing:-.01em;}
.book-cover-fallback .b-au{ margin-top:auto; font-family:'JetBrains Mono',monospace; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(var(--cream-rgb),.4); padding-top:1rem;}
.book-prem-corner{ position:absolute; top:12px; right:12px; display:inline-flex; align-items:center; gap:.35em; font-family:'JetBrains Mono',monospace; font-size:.56rem; letter-spacing:.18em; text-transform:uppercase; padding:4px 8px; border-radius:999px; background:rgba(22,20,15,.78); backdrop-filter:blur(8px); border:1px solid rgba(var(--gold-rgb),.5); color:var(--goldlt);}
.book-info{ padding:1.1rem 1.1rem 1.2rem;}
.book-title{ font-family:'Fraunces',serif; font-weight:400; font-size:1.05rem; line-height:1.25; letter-spacing:-.01em; color:var(--cream); margin-bottom:.4rem; transition:color .3s;}
.book-card:hover .book-title{ color:var(--goldlt);}
.book-author{ font-family:'JetBrains Mono',monospace; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(var(--cream-rgb),.45);}

/* Single book view */
.book-detail{ display:grid; grid-template-columns:340px 1fr; gap:3rem; align-items:start;}
@media (max-width:880px){ .book-detail{ grid-template-columns:1fr; gap:2rem;}}
.book-detail-cover{ aspect-ratio:3/4; border-radius:16px; overflow:hidden; position:relative; background:linear-gradient(160deg,#1F1B13 0%,#2E2616 100%); box-shadow:0 30px 60px -20px rgba(0,0,0,.7);}
.book-detail-meta{ display:flex; flex-direction:column; gap:.6rem; font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.16em; color:rgba(var(--cream-rgb),.5); text-transform:uppercase; margin:1.8rem 0; padding:1.2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.book-detail-meta span{ display:flex; justify-content:space-between; gap:1rem;}
.book-detail-meta b{ color:var(--cream); font-weight:400;}
.book-desc{ font-family:'Fraunces',serif; font-weight:300; font-size:1.06rem; line-height:1.75; color:rgba(var(--cream-rgb),.78); letter-spacing:.005em;}
.book-desc p{ margin:0 0 1rem;}
.dl-cta{ display:inline-flex; align-items:center; gap:.6em; padding:1rem 1.8rem; border-radius:999px; background:linear-gradient(180deg,var(--goldlt),var(--gold)); color:#1a160d; font-weight:600; font-size:.92rem; box-shadow:0 14px 36px -14px rgba(var(--gold-rgb),.7); transition:transform .35s,box-shadow .35s; cursor:pointer; border:none;}
.dl-cta:hover{ transform:translateY(-2px); box-shadow:0 22px 48px -16px rgba(var(--gold-rgb),.85);}
.dl-cta-locked{ display:inline-flex; align-items:center; gap:.6em; padding:1rem 1.8rem; border-radius:999px; background:transparent; color:var(--goldlt); border:1px solid rgba(var(--gold-rgb),.4); font-weight:500; font-size:.92rem; cursor:pointer; transition:.3s;}
.dl-cta-locked:hover{ background:rgba(var(--gold-rgb),.06); border-color:var(--goldlt);}

/* Nav separator for Books link */
.nav-sep{ width:1px; height:14px; background:rgba(var(--cream-rgb),.18); margin:0 .25rem;}

/* ── Paywall ── */
.paywall-fade{ position:relative; max-height:520px; overflow:hidden;}
.paywall-fade::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:340px; background:linear-gradient(to bottom, transparent, rgba(22,20,15,.95) 60%, var(--ink) 100%); pointer-events:none;}
.paywall-cta{ margin-top:-160px; position:relative; z-index:2; text-align:center; padding:2.4rem 1.5rem 1rem;}
.paywall-cta h3{ font-family:'Fraunces',serif; font-weight:400; font-size:1.8rem; line-height:1.2; color:var(--cream); margin-bottom:.8rem;}
.paywall-cta p{ font-size:.95rem; color:rgba(var(--cream-rgb),.65); line-height:1.6; margin-bottom:1.6rem; max-width:480px; margin-left:auto; margin-right:auto;}
.paywall-perks{ display:flex; justify-content:center; gap:1.8rem; flex-wrap:wrap; margin-bottom:1.6rem; font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.18em; color:rgba(var(--cream-rgb),.55); text-transform:uppercase;}
.paywall-perks span{ display:inline-flex; align-items:center; gap:.4em;}
.paywall-perks svg{ color:var(--goldlt);}

/* ── Subscribe modal ── */
.modal-bg{ position:fixed; inset:0; background:rgba(10,9,6,.78); backdrop-filter:blur(12px); z-index:200; display:flex; align-items:center; justify-content:center; padding:1.5rem;}
.modal-box{ background:linear-gradient(160deg,#221E15,#16140F); border:1px solid rgba(var(--gold-rgb),.3); border-radius:22px; max-width:520px; width:100%; padding:2.4rem; position:relative; box-shadow:0 60px 120px -30px rgba(0,0,0,.8);}
.modal-close{ position:absolute; top:18px; right:18px; font-family:'JetBrains Mono',monospace; font-size:.68rem; letter-spacing:.16em; color:rgba(var(--cream-rgb),.4); text-transform:uppercase; transition:color .3s; cursor:pointer; background:none; border:none;}
.modal-close:hover{ color:var(--goldlt);}
.plan-card{ border:1px solid var(--line-strong); border-radius:14px; padding:1.4rem; transition:all .35s; cursor:pointer;}
.plan-card:hover{ border-color:rgba(var(--gold-rgb),.5); background:rgba(var(--gold-rgb),.04);}
.plan-card.selected{ border-color:var(--goldlt); background:rgba(var(--gold-rgb),.07);}
.fin{ width:100%; background:rgba(var(--cream-rgb),.03); border:1px solid var(--line-strong); color:var(--cream); padding:.85rem 1.1rem; border-radius:12px; font-family:'Manrope'; font-size:.92rem; outline:none; transition:border-color .3s,background .3s;}
.fin:focus{ border-color:rgba(var(--gold-rgb),.6); background:rgba(var(--cream-rgb),.05);}
.fin::placeholder{ color:rgba(var(--cream-rgb),.4);}

/* ── Reveal animation ── */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);}
.reveal.in{ opacity:1; transform:translateY(0);}
.rd1{ transition-delay:.07s;} .rd2{ transition-delay:.14s;} .rd3{ transition-delay:.21s;} .rd4{ transition-delay:.28s;}

::-webkit-scrollbar{ width:9px;}
::-webkit-scrollbar-track{ background:var(--ink);}
::-webkit-scrollbar-thumb{ background:rgba(var(--gold-rgb),.4); border-radius:9px; border:2px solid var(--ink);}
::selection{ background:rgba(var(--gold-rgb),.3); color:var(--cream);}

/* ── Cover art templates ── */
.cover-grad-1{ background:linear-gradient(135deg,#1F1B13 0%,#3A2F1A 60%,#5A4624 100%);}
.cover-grad-2{ background:linear-gradient(135deg,#241F16 0%,#3E331C 100%);}
.cover-grad-3{ background:linear-gradient(135deg,#1A1710 0%,#2E2616 100%);}
.cover-grad-4{ background:linear-gradient(135deg,#1E1B14 0%,#352B19 100%);}
.cover-grad-5{ background:linear-gradient(160deg,#0F0E0A 0%,#231E12 70%,#3a2e15 100%);}
.cover-grad-6{ background:linear-gradient(135deg,#0E0C08 0%,#1F1B13 50%,#352B19 100%);}

/* ── Category accent colors ── */
.cat-ai{ --cat-c:#D8B97E;}
.cat-crypto{ --cat-c:#E0B675;}
.cat-web{ --cat-c:#C2A06E;}
.cat-innovation{ --cat-c:#CCAB72;}
.cat-industry{ --cat-c:#B79256;}

/* ── Subscription badge ── */
.sub-badge{ display:inline-flex; align-items:center; gap:.4em; font-family:'JetBrains Mono',monospace; font-size:.6rem; letter-spacing:.22em; padding:5px 11px; border-radius:999px; background:rgba(var(--gold-rgb),.12); border:1px solid rgba(var(--gold-rgb),.35); color:var(--goldlt); text-transform:uppercase;}

/* ── Newsletter ── */
.newsletter{ background:linear-gradient(170deg,rgba(var(--gold-rgb),.10),rgba(var(--cream-rgb),.02)); border:1px solid rgba(var(--gold-rgb),.28); border-radius:14px; padding:1.6rem 1.4rem;}

@media (max-width:900px){
  .reader-body p:first-of-type::first-letter{ font-size:2.6rem;}
  .reader-body{ font-size:1.06rem;}
  .reader-block-figure.width-wide,.reader-block-figure.width-full{ left:auto; width:auto; transform:none; margin-left:0; margin-right:0; }
  .reader-block-gallery{ grid-template-columns:1fr; margin-left:0; margin-right:0; }
  .gallery-card img{ min-height:220px; max-height:520px; }
  .reader-block-gallery .gallery-card img{ min-height:0; max-height:none; }
  .gallery-lightbox{ padding:1rem; }
  .gallery-lightbox-close{ top:.75rem; right:.75rem; }
}
