/* ===== consolidated from zirflo-v274.css ===== */
/* ZIRFLO v2.5.0 — consolidated visual stylesheet.
   One ZIRFLO stylesheet only. Legacy layout/grid sheets are no longer loaded. */


/* ---- consolidated from site-preferences-v120.css (visual rules only, final layout authority is below) ---- */

/* Ghost in the Positron v1.1 — user appearance */
:root{
  --user-bg:#080b10;
  --user-text:#f2f5f7;
  --user-accent:#78d6ff;
}
html[data-gitp-mode="normal"]{
  --bg:var(--user-bg);
  --text:var(--user-text);
  --accent:var(--user-accent);
}
html[data-gitp-mode="dark"]{
  --bg:#05070a;
  --panel:#0a0f14;
  --panel2:#0d131a;
  --panel3:#080c11;
  --line:#1d2934;
  --text:#f5f7f9;
  --soft:#c8d0d6;
  --muted:#8795a1;
  --accent:var(--user-accent);
  color-scheme:dark;
}
html[data-gitp-mode="warm"]{
  --bg:#100c08;
  --panel:#17110c;
  --panel2:#1b140e;
  --panel3:#0e0a07;
  --line:#3a2b1e;
  --text:#f4eadc;
  --soft:#d8c8b3;
  --muted:#aa947c;
  --accent:#efb76d;
  color-scheme:dark;
}
html[data-gitp-mode="normal"] body{
  background:
    radial-gradient(circle at 15% 15%,color-mix(in srgb,var(--user-accent) 11%,transparent),transparent 28rem),
    radial-gradient(circle at 85% 0%,rgba(90,174,151,.05),transparent 30rem),
    var(--bg);
}
html[data-gitp-mode="warm"] body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:2147483000;
  background:rgba(255,142,46,.075);
  mix-blend-mode:multiply;
}
.gitp-mode-switch{
  --slot:30px;
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,var(--slot));
  align-items:center;
  gap:2px;
  padding:3px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb,var(--panel) 92%,transparent);
  margin-left:auto;
}
.gitp-mode-switch::before{
  content:"";
  position:absolute;
  width:var(--slot);
  height:var(--slot);
  left:3px;
  top:3px;
  border-radius:50%;
  background:color-mix(in srgb,var(--accent) 18%,var(--panel2));
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));
  transform:translateX(calc(var(--gitp-mode-index,0) * (var(--slot) + 2px)));
  transition:transform .18s ease;
}
.gitp-mode-switch button{
  position:relative;
  z-index:1;
  width:var(--slot);
  height:var(--slot);
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  border-radius:50%;
  font-size:0;
}
.gitp-mode-switch button::after{font-size:13px}
.gitp-mode-switch button[data-mode="normal"]::after{content:"◐"}
.gitp-mode-switch button[data-mode="dark"]::after{content:"●"}
.gitp-mode-switch button[data-mode="warm"]::after{content:"☀"}
.gitp-mode-switch button[aria-pressed="true"]{color:var(--text)}
.gitp-mode-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.site-header{gap:14px}
.top-nav{margin-left:10px}
@media(max-width:700px){
  .gitp-mode-switch{--slot:28px}
  .brand-text{display:none}
}

/* v1.2: shared platform appearance layer. */


/* ---- consolidated from zirflo-v05.css (visual rules only, final layout authority is below) ---- */


.feed-health{
  margin-top:4px;
  color:#70879a!important;
  font-size:.76rem!important
}
.story-title-link{
  color:inherit;
  text-decoration:none
}
.story-title-link:hover{
  text-decoration:underline;
  text-decoration-color:#36536a;
  text-underline-offset:4px
}
.open-source{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:14px;
  color:#86a4b8;
  font-size:.76rem;
  text-decoration:none
}
.open-source:hover{color:var(--text)}
.source-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
  color:#6f8191;
  font-size:.72rem
}
.story-card[data-source-rank="repeat"]{
  box-shadow:0 14px 45px rgba(0,0,0,.16)
}


/* ---- consolidated from zirflo-v06.css (visual rules only, final layout authority is below) ---- */


/* ZIRFLO v0.6 — live article imagery */
.story-image-live{
  background:
    radial-gradient(circle at 70% 35%,rgba(96,160,205,.18),transparent 28%),
    #0c131c;
}
.story-image-live img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.story-image-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to bottom,rgba(4,8,12,.05),rgba(4,8,12,.10) 55%,rgba(4,8,12,.42)),
    linear-gradient(to right,rgba(4,8,12,.08),transparent 55%);
  pointer-events:none;
}
.story-image-live.image-failed{
  background:
    radial-gradient(circle at 68% 38%,rgba(135,212,255,.24),transparent 12%),
    radial-gradient(circle at 58% 50%,rgba(88,120,255,.12),transparent 24%),
    linear-gradient(135deg,#0b111b,#111b2d 52%,#071018);
}
.story-image-live .image-tag{
  z-index:2;
}
.story-hero .story-image-live{
  min-height:330px;
}
.image-card .story-image-live{
  min-height:235px;
}
@media(max-width:700px){
  .story-hero .story-image-live{min-height:235px}
}


/* ---- consolidated from zirflo-v09.css (visual rules only, final layout authority is below) ---- */


/* ZIRFLO v0.9 — transparent signal map + interest-aware card sizing */

.profile-map[hidden]{display:none}
.profile-map{
  margin:18px 0 0;
  padding:22px 24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:
    linear-gradient(135deg,rgba(120,214,255,.035),rgba(157,242,216,.018)),
    rgba(255,255,255,.012);
  display:grid;
  grid-template-columns:minmax(220px,.8fr) minmax(0,1.7fr);
  gap:28px;
  align-items:start
}
.profile-map-intro h2{
  margin:8px 0 8px;
  font-size:1.45rem;
  letter-spacing:-.035em
}
.profile-map-intro p{
  margin:0;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.55
}
.profile-map-groups{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}
.profile-group{min-width:0}
.profile-group-label{
  display:block;
  margin-bottom:9px;
  color:#71889a;
  font-size:.66rem;
  font-weight:800;
  letter-spacing:.14em
}
.profile-chips{
  display:flex;
  flex-wrap:wrap;
  gap:7px
}
.profile-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  max-width:100%;
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#0d141c;
  color:#91a5b5;
  font-size:.72rem
}
.profile-chip b{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--soft);
  font-weight:650
}
.profile-chip span{
  color:var(--mint);
  font-variant-numeric:tabular-nums
}
.profile-empty{color:#6f8191;font-size:.76rem}

/* A strong personalized match may occupy a larger editorial field. */
.feature{
  grid-column:span 8;
  padding:0
}
.feature .story-image{min-height:235px}
.feature .story-content{padding:24px}
.feature h2{
  font-size:clamp(1.8rem,3vw,3.1rem);
  max-width:900px
}

/* Keep the visual cue subtle: size is primary, border tone is secondary. */
.story-card.interest-strong:not(.preference-more){border-color:#304e52}
.story-card.interest-likely:not(.preference-more){border-color:#293a47}
.story-card.interest-low{opacity:.88}

@media(max-width:900px){
  .profile-map{grid-template-columns:1fr}
  .profile-map-groups{grid-template-columns:1fr 1fr}
  .feature{grid-column:span 12}
}
@media(max-width:620px){
  .profile-map{padding:18px}
  .profile-map-groups{grid-template-columns:1fr}
}


/* ---- consolidated from zirflo-v160.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v1.6 — compact daily context + explicit 50-item pagination */
.feed-tabs{display:flex;overflow-x:auto;scrollbar-width:thin;white-space:nowrap}
.feed-tabs .tab{flex:0 0 auto}
.daily-brief{margin:16px 0 20px;padding:18px 22px;border:1px solid #2c4754;border-radius:18px;background:linear-gradient(140deg,rgba(30,55,68,.82),rgba(15,22,29,.97) 52%,rgba(11,20,30,.98));color:#ecf6fb}
.daily-brief[hidden]{display:none}
.daily-brief-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.daily-brief-heading h2{font-size:clamp(1.35rem,2vw,2rem);letter-spacing:-.03em;margin:5px 0 0}
.daily-brief-time{color:#9bb0be;font-size:.8rem;text-align:right;line-height:1.4;white-space:nowrap}
.daily-brief-intro{max-width:118ch;color:#d8e5eb;line-height:1.58;font-size:clamp(.96rem,1vw,1.07rem);margin:13px 0 11px}
.daily-brief-intro p{margin:0}
.daily-brief-intro .brief-narrative{max-width:118ch}
.daily-brief-sources{display:flex;gap:7px;flex-wrap:wrap;margin:0}
.daily-brief-sources:empty{display:none}
.daily-brief-sources a{border:1px solid #335363;border-radius:999px;padding:5px 10px;color:#a7e9fa;font-size:.74rem;text-decoration:none}
.daily-brief-sources a:hover,.daily-brief-sources a:focus-visible{border-color:#8bdcff;background:#193241}
.daily-brief-note{color:#879eac;font-size:.73rem;line-height:1.45;margin:10px 0 0}
.feed-pagination{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:20px 0 40px;color:#9aafbd;font-size:.82rem}
.feed-pagination[hidden]{display:none}
.feed-more{min-height:44px;padding:10px 22px;border:1px solid #426477;border-radius:999px;background:#14222b;color:#eaf8ff;font:inherit;font-weight:750;cursor:pointer}
.feed-more:hover,.feed-more:focus-visible{background:#203946;outline:2px solid #78d6ff;outline-offset:2px}
@media(max-width:720px){.daily-brief{padding:16px 17px}.daily-brief-heading{display:block}.daily-brief-time{display:block;text-align:left;margin-top:6px}.daily-brief-intro{margin-top:11px}}
@media(max-width:560px){
  .zirflo-body .site-header{flex-wrap:wrap;justify-content:space-between;min-height:0;padding:12px 0;gap:8px}
  .zirflo-body .top-nav{flex:0 0 100%;margin-left:0;justify-content:space-between}
  .zirflo-body .top-nav a{padding:8px 10px}
}


/* ---- consolidated from zirflo-header-v170.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v1.7 header — scalable visual masthead with subtle motion. */
.zirflo-hero{
  position:relative;
  width:100%;
  min-height:clamp(430px,42vw,680px);
  height:min(42vw,680px);
  margin:clamp(22px,2.2vw,44px) 0 clamp(18px,1.6vw,30px);
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(164,214,255,.18);
  border-radius:clamp(18px,1.7vw,30px);
  background:#0c2252;
  box-shadow:0 26px 85px rgba(0,35,83,.25);
}

.zirflo-bg-layer,.zirflo-ambient-layer,.zirflo-wave-layer,.zirflo-particle-layer,.zirflo-meteor-layer,.zirflo-content-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.zirflo-bg-layer{
  z-index:1;
  background-image:url("/assets/images/zirflo-header-background.png");
  background-size:cover;
  background-position:center center;
  transform-origin:center;
  will-change:transform;
}

.zirflo-ambient-layer{
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,25,79,.04),rgba(0,38,95,.08) 58%,rgba(0,28,72,.20)),
    radial-gradient(circle at 50% 18%,rgba(255,255,255,.06),transparent 30%),
    radial-gradient(circle at 84% 11%,rgba(81,176,255,.08),transparent 24%);
  mix-blend-mode:multiply;
  animation:zirfloAmbientDrift 36s ease-in-out infinite alternate;
}

.zirflo-wave-layer{z-index:3;pointer-events:none}
#zirfloWaveBack{animation:zirfloWaveBackMove 24s ease-in-out infinite alternate}
#zirfloWaveFront{animation:zirfloWaveFrontMove 18s ease-in-out infinite alternate}
.zirflo-wave-pulse{
  fill:#f2fbff;
  opacity:.52;
  filter:drop-shadow(0 0 5px rgba(190,232,255,.52));
  animation:zirfloWavePulseMove 15s linear infinite;
}

.zirflo-particle-layer{z-index:4;pointer-events:none}
.zirflo-meteor-layer{z-index:5;pointer-events:none;overflow:hidden}
.zirflo-meteor{
  position:absolute;
  width:clamp(120px,12vw,240px);
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.18) 25%,rgba(212,241,255,.65) 60%,#fff 100%);
  box-shadow:0 0 8px rgba(215,242,255,.45),0 0 18px rgba(146,214,255,.28);
  transform-origin:right center;
  opacity:0;
}
.zirflo-meteor::after{
  content:"";
  position:absolute;
  right:-1px;
  top:50%;
  width:6px;
  height:6px;
  transform:translateY(-50%);
  border-radius:50%;
  background:rgba(255,255,255,.95);
  box-shadow:0 0 10px rgba(255,255,255,.65),0 0 20px rgba(146,214,255,.45);
}
.zirflo-meteor.animate{animation:zirfloMeteorFlight ease-out forwards}
.zirflo-meteor.soft{height:1.5px;filter:blur(.2px)}

.zirflo-content-layer{z-index:10;color:#fff;pointer-events:none}
.zirflo-center-copy{
  position:absolute;
  left:50%;
  top:44%;
  transform:translate(-50%,-50%);
  width:min(1200px,82vw);
  text-align:center;
}
.zirflo-pretitle{
  display:block;
  width:fit-content;
  margin:0 auto 20px;
  font-weight:800;
  font-size:clamp(11px,.82vw,17px);
  line-height:1.2;
  letter-spacing:.20em;
  text-transform:uppercase;
  color:#6fd2ff;
  text-shadow:0 1px 12px rgba(255,255,255,.15);
}
.zirflo-brand{
  margin:0;
  padding-left:.16em;
  font-weight:300;
  font-size:clamp(68px,8.6vw,172px);
  line-height:.92;
  letter-spacing:.16em;
  color:#1849a8;
  text-shadow:0 1px 7px rgba(255,255,255,.10);
  animation:zirfloBrandBreath 9s ease-in-out infinite;
}
.zirflo-tagline{
  margin:22px auto 0;
  max-width:min(1240px,92vw);
  font-weight:500;
  font-size:clamp(16px,1.35vw,28px);
  line-height:1.35;
  letter-spacing:.075em;
  color:#173f90;
  text-shadow:0 1px 10px rgba(255,255,255,.08);
  animation:zirfloTaglineBreath 9s ease-in-out infinite;
}

.zirflo-meta,.zirflo-feed-status{
  position:absolute;
  font-size:clamp(9px,.62vw,13px);
  letter-spacing:.28em;
  line-height:1.8;
  text-transform:uppercase;
  color:rgba(245,250,255,.90);
  text-shadow:0 1px 8px rgba(0,38,92,.22);
}
.zirflo-meta{white-space:pre-line}
.zirflo-meta::after,.zirflo-feed-status::after{
  content:"";
  display:block;
  width:40px;
  height:1.5px;
  margin-top:12px;
  background:rgba(245,250,255,.52);
}
.zirflo-meta-left-top{left:clamp(18px,2.2vw,42px);top:clamp(18px,2vw,36px)}
.zirflo-meta-right-top{right:clamp(18px,2.2vw,42px);top:clamp(18px,1.8vw,30px);text-align:right}
.zirflo-meta-right-mid{right:clamp(18px,2.2vw,42px);top:35%;text-align:right}
.zirflo-meta-left-bottom{left:clamp(18px,2.2vw,42px);bottom:clamp(18px,2vw,34px)}
.zirflo-meta-right-bottom{right:clamp(18px,2.2vw,42px);bottom:clamp(18px,1.8vw,30px);text-align:right}
.zirflo-meta-right-top::after,.zirflo-meta-right-mid::after,.zirflo-meta-right-bottom::after{margin-left:auto}
.zirflo-meta-right-bottom::after{display:none}
.zirflo-meta-right-bottom .infinity{display:block;margin-bottom:7px;font-size:clamp(25px,2vw,40px);line-height:1;letter-spacing:0;opacity:.88}
.zirflo-meta-right-bottom .label{font-size:inherit;letter-spacing:.28em}

.zirflo-feed-status{display:grid;gap:2px;max-width:min(330px,31vw);letter-spacing:.08em;line-height:1.4}
.zirflo-feed-status-label{font-size:.78em;font-weight:900;letter-spacing:.24em;color:#1764b2}
.zirflo-feed-status strong{font-size:1.02em;letter-spacing:.10em;color:#123b78}
.zirflo-feed-status #feed-generated,.zirflo-feed-status #feed-health{font-size:.78em!important;letter-spacing:.03em;text-transform:none;color:rgba(17,54,108,.82)!important;margin:0}

.zirflo-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:20;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 16%,transparent 75%,rgba(0,24,67,.10));
  box-shadow:inset 0 0 70px rgba(1,38,92,.08);
}

@keyframes zirfloAmbientDrift{to{transform:translate3d(-1.2%,.7%,0) scale(1.02)}}
@keyframes zirfloWaveBackMove{to{transform:translate3d(-10px,0,0)}}
@keyframes zirfloWaveFrontMove{to{transform:translate3d(15px,0,0)}}
@keyframes zirfloWavePulseMove{0%{transform:translateX(0);opacity:0}12%{opacity:.58}52%{transform:translateX(720px);opacity:.54}88%{opacity:.4}100%{transform:translateX(1320px);opacity:0}}
@keyframes zirfloMeteorFlight{0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--meteor-rot))}8%{opacity:var(--meteor-opacity)}75%{opacity:var(--meteor-opacity)}100%{opacity:0;transform:translate3d(var(--meteor-x),var(--meteor-y),0) rotate(var(--meteor-rot))}}
@keyframes zirfloBrandBreath{0%,100%{color:#1849a8;text-shadow:0 1px 7px rgba(255,255,255,.10)}50%{color:#2a67d3;text-shadow:0 1px 13px rgba(255,255,255,.14)}}
@keyframes zirfloTaglineBreath{0%,100%{color:#173f90}50%{color:#245cbd}}

@media (max-width:1100px){
  .zirflo-hero{height:min(52vw,620px)}
  .zirflo-meta,.zirflo-feed-status{font-size:10px;letter-spacing:.20em;line-height:1.6}
  .zirflo-center-copy{top:45%;width:min(1080px,86vw)}
  .zirflo-brand{font-size:clamp(60px,10vw,145px);letter-spacing:.13em;padding-left:.13em}
  .zirflo-tagline{font-size:clamp(15px,1.75vw,23px);letter-spacing:.055em}
}
@media (max-width:760px){
  .zirflo-hero{min-height:440px;height:min(72vw,580px)}
  .zirflo-meta{font-size:8.5px;letter-spacing:.16em;line-height:1.5}
  .zirflo-meta-right-mid{top:39%}
  .zirflo-pretitle{font-size:10px;letter-spacing:.14em;margin-bottom:15px}
  .zirflo-brand{font-size:clamp(48px,13vw,94px);letter-spacing:.10em;padding-left:.10em}
  .zirflo-tagline{font-size:14px;letter-spacing:.035em;max-width:90vw}
  .zirflo-feed-status{max-width:44vw;font-size:8.5px}
}
@media (max-width:520px){
  .zirflo-hero{min-height:420px}
  .zirflo-meta-left-bottom,.zirflo-meta-right-bottom{opacity:.76}
  .zirflo-meta-right-mid{display:none}
  .zirflo-pretitle{font-size:9px;letter-spacing:.11em}
  .zirflo-brand{font-size:clamp(40px,13vw,76px)}
  .zirflo-tagline{font-size:13px;line-height:1.45}
  .zirflo-feed-status{max-width:47vw}
}
@media (prefers-reduced-motion:reduce){
  .zirflo-hero,.zirflo-hero *,.zirflo-hero *::before,.zirflo-hero *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}
}


/* ---- consolidated from zirflo-reader-v191.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v1.8 — in-app magazine reader. Full external articles are never mirrored by default. */
body.reader-open{overflow-x:hidden}
body.reader-open .zirflo-page{display:none}
.zirflo-reader[hidden]{display:none!important}
.zirflo-reader{position:relative;width:min(1380px,calc(100% - 40px));margin:0 auto 90px;min-height:calc(100vh - 88px)}
.reader-toolbar{position:sticky;top:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;padding:10px 2px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(8,11,16,.88);backdrop-filter:blur(20px) saturate(125%)}
.reader-back,.reader-action,.reader-original{appearance:none;border:1px solid var(--line);border-radius:999px;background:rgba(13,19,26,.86);color:#aab9c6;min-height:38px;padding:8px 13px;font:inherit;font-size:.76rem;font-weight:730;text-decoration:none;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}
.reader-back:hover,.reader-action:hover,.reader-original:hover,.reader-action.selected{color:var(--text);border-color:#496377;background:#14222d}
.reader-action.selected[data-reader-action="more"]{border-color:#508f85;color:#c8fff0;background:#142723}
.reader-action.selected[data-reader-action="less"]{border-color:#795463;color:#ffd9e4;background:#26171d}
.reader-back:focus-visible,.reader-action:focus-visible,.reader-original:focus-visible,.reader-nav:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.reader-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.reader-position{color:#718290;font-size:.72rem;letter-spacing:.08em;white-space:nowrap;margin:0 4px}
.reader-article{width:min(900px,calc(100% - 120px));margin:0 auto;padding:58px 0 100px}
.reader-header{max-width:860px;margin:0 auto}
.reader-kicker-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.reader-kicker{color:var(--accent);font-size:.72rem;font-weight:850;letter-spacing:.17em;text-transform:uppercase}
.reader-kicker-sep{color:#425161}
.reader-source-meta{color:#7f919f;font-size:.8rem}
.reader-title{margin:0;font-size:clamp(2.5rem,5.2vw,5.7rem);line-height:.96;letter-spacing:-.065em;text-wrap:balance}
.reader-deck{margin:24px 0 0;max-width:760px;color:#aebbc5;font-size:clamp(1.12rem,1.55vw,1.38rem);line-height:1.62}
.reader-hero-image{margin:42px 0 34px;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:#0d131a;box-shadow:0 28px 80px rgba(0,0,0,.22)}
.reader-hero-image img{display:block;width:100%;max-height:560px;object-fit:cover}
.reader-copy{max-width:760px;margin:0 auto}
.reader-mode-label{display:flex;align-items:center;gap:9px;margin:0 0 20px;color:#7990a1;font-size:.73rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.reader-mode-label:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 18px rgba(157,242,216,.45)}
.reader-text{color:#dbe5ea;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.16rem,1.45vw,1.35rem);line-height:1.82;letter-spacing:.003em}
.reader-text p{margin:0 0 1.35em}
.reader-context{margin-top:38px;padding:22px 24px;border:1px solid #263948;border-radius:18px;background:linear-gradient(145deg,rgba(25,43,54,.72),rgba(12,18,24,.92))}
.reader-context h3{margin:0 0 12px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#8fdfff}
.reader-context ul{margin:0;padding-left:19px;color:#94a6b3;font-size:.9rem;line-height:1.65}
.reader-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.reader-topics span{padding:6px 10px;border:1px solid #2a3c4b;border-radius:999px;color:#8195a4;background:#0d151c;font-size:.73rem}
.reader-source-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:42px;padding:20px 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.reader-source-cta-copy{color:#8799a7;font-size:.82rem;line-height:1.45}
.reader-source-cta-copy strong{display:block;color:#dce7ec;font-size:.9rem;margin-bottom:3px}
.reader-original{flex:0 0 auto;color:#dff7ff;border-color:#365569;background:#10202a}
.reader-nav{position:fixed;top:50%;z-index:46;transform:translateY(-50%);width:52px;height:86px;border:1px solid rgba(255,255,255,.09);border-radius:18px;background:rgba(9,14,19,.58);backdrop-filter:blur(16px);color:#9cb1c0;font-size:2rem;line-height:1;cursor:pointer;opacity:.62;transition:opacity .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}
.reader-nav:hover{opacity:1;background:rgba(18,31,40,.92);border-color:#3f5b6e}
.reader-nav:disabled{opacity:.14;cursor:default}
.reader-nav-prev{left:max(18px,calc((100vw - 1380px)/2 + 6px))}
.reader-nav-next{right:max(18px,calc((100vw - 1380px)/2 + 6px))}
.reader-nav-label{position:absolute;top:50%;width:190px;transform:translateY(-50%);padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0d151c;color:#9fb0bc;font:700 .72rem/1.3 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:0;text-align:left;opacity:0;pointer-events:none;transition:opacity .18s ease}
.reader-nav-prev .reader-nav-label{left:62px}.reader-nav-next .reader-nav-label{right:62px;text-align:right}.reader-nav:not(:disabled):hover .reader-nav-label{opacity:1}
.reader-empty{padding:80px 20px;text-align:center;color:var(--muted)}
.reader-empty a{color:var(--accent)}
@media(max-width:980px){
  .zirflo-reader{width:min(100% - 24px,1380px)}
  .reader-toolbar{align-items:flex-start;flex-direction:column;padding:10px 0 12px}
  .reader-toolbar-actions{justify-content:flex-start}
  .reader-article{width:min(820px,100%);padding-top:38px}
  .reader-nav{top:auto;bottom:18px;transform:none;width:54px;height:54px;border-radius:50%;background:rgba(11,20,27,.92);opacity:.92}
  .reader-nav-prev{left:18px}.reader-nav-next{right:18px}.reader-nav-label{display:none}
}
@media(max-width:620px){
  .reader-toolbar-actions{gap:6px}
  .reader-position{order:-1;width:100%;margin:2px 0 4px}
  .reader-action,.reader-original,.reader-back{font-size:.72rem;min-height:36px;padding:7px 10px}
  .reader-article{padding:30px 0 88px}
  .reader-title{font-size:clamp(2.2rem,12vw,3.7rem)}
  .reader-deck{font-size:1.04rem}
  .reader-hero-image{margin:28px 0 26px;border-radius:17px}
  .reader-copy{max-width:100%}
  .reader-text{font-size:1.08rem;line-height:1.72}
  .reader-source-cta{align-items:flex-start;flex-direction:column;padding:18px 0}
}
@media(prefers-reduced-motion:reduce){.reader-nav,.reader-action,.reader-back,.reader-original{transition:none}}
/* The card itself is now the entry point into the in-app reader. */
.story-card{cursor:pointer}
.story-title-link{text-decoration:none}
.story-title-link:hover{text-decoration:underline;text-decoration-color:rgba(120,214,255,.38);text-underline-offset:.12em}
.open-source{position:relative;z-index:2}

/* ZIRFLO v1.9 — embedded original publication view. */
.reader-view-switch{display:inline-flex;align-items:center;padding:3px;border:1px solid var(--line);border-radius:999px;background:rgba(10,16,22,.7)}
.reader-view-button{appearance:none;border:0;border-radius:999px;background:transparent;color:#718391;min-height:31px;padding:5px 11px;font:inherit;font-size:.7rem;font-weight:800;cursor:pointer;transition:background .16s ease,color .16s ease}
.reader-view-button:hover{color:#d9e7ee}
.reader-view-button.selected{background:#183041;color:#dff7ff;box-shadow:inset 0 0 0 1px #36566a}
.reader-view-button:disabled{opacity:.35;cursor:not-allowed}
.reader-page-view{position:relative;width:100%;min-height:calc(100vh - 76px);padding-top:12px}
.reader-page-view[hidden]{display:none!important}
.reader-frame-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 10px;padding:8px 14px;border:1px solid #263845;border-radius:12px;background:rgba(12,20,26,.82);color:#9aadb9;font-size:.72rem;line-height:1.35}
.reader-frame-status[hidden]{display:none!important}
.reader-frame-fallback{color:#667a88;text-align:right}
.reader-frame{display:block;width:100%;height:calc(100vh - 104px);min-height:680px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.28)}
body.reader-open .reader-toolbar{margin-bottom:0}
@media(max-width:980px){
  .reader-page-view{padding-top:8px;min-height:calc(100vh - 124px)}
  .reader-frame{height:calc(100vh - 170px);min-height:560px;border-radius:14px}
  .reader-frame-status{align-items:flex-start;flex-direction:column;gap:4px}
  .reader-frame-fallback{text-align:left}
}
@media(max-width:620px){
  .reader-view-switch{order:-1}
  .reader-frame{height:calc(100vh - 208px);min-height:500px;border-radius:10px}
}
@media(prefers-reduced-motion:reduce){.reader-view-button{transition:none}}

/* v1.9.1 — graceful fallback when a publisher forbids iframe embedding */
.reader-embed-blocked{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0 0 24px;
  padding:20px 22px;
  border:1px solid rgba(255,184,92,.30);
  border-radius:16px;
  background:linear-gradient(135deg,rgba(86,52,9,.25),rgba(30,31,38,.92));
  color:#c8d4dc;
  font-size:.84rem;
  line-height:1.55;
  text-decoration:none;
  cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
a.reader-embed-blocked:hover{
  transform:translateY(-1px);
  border-color:rgba(255,184,92,.62);
  background:linear-gradient(135deg,rgba(105,64,9,.34),rgba(31,35,44,.98));
  box-shadow:0 10px 28px rgba(0,0,0,.20);
}
a.reader-embed-blocked:focus-visible{outline:2px solid rgba(114,205,255,.95);outline-offset:3px}
.reader-embed-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.reader-embed-blocked strong{color:#f3f7fa;font-size:.9rem}
.reader-embed-blocked .reader-embed-copy>span{color:#9fb0bb}
.reader-embed-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:#f4f7fa;
  font-weight:800;
  letter-spacing:.01em;
  white-space:nowrap;
}
.reader-embed-cta b{font-size:1.05rem;color:#8fd9ff}
@media(max-width:720px){
  .reader-embed-blocked{align-items:flex-start;flex-direction:column;gap:14px}
  .reader-embed-cta{align-self:stretch;justify-content:center}
}


/* ---- consolidated from zirflo-dynamic-v200.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v2.0 — full-page dynamic visual layer.
   Keeps v1.9 feed/profile/reader logic intact and only changes presentation. */
:root{
  --zirflo-bg:#050b16;
  --zirflo-bg-2:#081325;
  --zirflo-glass:rgba(10,21,41,.66);
  --zirflo-blue:#63c6ff;
  --zirflo-blue-2:#3c83ff;
  --zirflo-cyan:#83e5ff;
  --zirflo-shadow:0 22px 70px rgba(0,0,0,.28);
}

html{background:var(--zirflo-bg)}
body.zirflo-body{
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 50% -10%,rgba(25,73,138,.32) 0,transparent 38rem),
    linear-gradient(180deg,var(--zirflo-bg-2),var(--zirflo-bg));
}
.zirflo-body .ambient-grid{opacity:.018;z-index:-4}

/* Full-page ambience from the dynamic prototype. */
.zirflo-page-ambient{position:fixed;inset:0;z-index:-3;overflow:hidden;pointer-events:none}
.zirflo-aurora{position:absolute;width:55vw;height:55vw;border-radius:50%;filter:blur(90px);opacity:.13;mix-blend-mode:screen}
.zirflo-aurora-a{left:-20vw;top:45vh;background:#0b70ff;animation:zirfloAuroraA 26s ease-in-out infinite alternate}
.zirflo-aurora-b{right:-24vw;top:88vh;background:#00b9ff;animation:zirfloAuroraB 34s ease-in-out infinite alternate}
#zirfloAmbientParticles{position:absolute;inset:0;width:100%;height:100%;opacity:.68}

/* Floating glass platform navigation. */
.zirflo-body .site-header{
  position:fixed;
  top:18px;
  left:50%;
  z-index:120;
  transform:translateX(-50%);
  width:min(1460px,calc(100vw - 36px));
  max-width:none;
  min-height:58px;
  margin:0;
  padding:8px 10px 8px 14px;
  border:1px solid rgba(176,221,255,.13);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(16,32,58,.62),rgba(6,15,28,.46));
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 12px 40px rgba(0,0,0,.10);
  transition:background .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.zirflo-body .site-header.zirflo-nav-scrolled{
  background:rgba(5,13,27,.84);
  border-color:rgba(160,211,255,.20);
  box-shadow:0 16px 50px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.035);
}
.zirflo-body .brand{gap:10px;letter-spacing:.02em}
.zirflo-body .brand-mark{
  width:36px;height:36px;border-radius:50%;
  border-color:rgba(178,221,255,.17);
  color:#dff5ff;background:rgba(255,255,255,.035);
}
.zirflo-body .brand-text{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#dbe8f5}
.zirflo-body .top-nav{gap:4px;align-items:center}
.zirflo-body .top-nav a{
  padding:9px 13px;border-radius:999px;color:#aebed1;font-size:.75rem;letter-spacing:.08em;
  transition:background .22s ease,color .22s ease,border-color .22s ease;
}
.zirflo-body .top-nav a:hover,.zirflo-body .top-nav a.active{color:#fff;background:rgba(113,199,255,.10)}
body.reader-open .site-header{display:none}

/* Wide full page shell. */
.zirflo-body .zirflo-page{
  width:min(1540px,calc(100vw - 48px));
  max-width:none;
  margin:0 auto;
  padding:96px 0 110px;
}

/* Hero: preserve real ZIRFLO elements, adopt prototype composition. */
.zirflo-body .zirflo-hero{
  min-height:min(840px,82vh);
  height:min(840px,82vh);
  max-height:900px;
  margin:0 0 clamp(72px,8vw,126px);
  border-radius:34px;
  border:1px solid rgba(176,221,255,.14);
  background:#06172f;
  box-shadow:0 30px 100px rgba(0,0,0,.32);
}
.zirflo-body .zirflo-bg-layer{inset:-2%;width:104%;height:104%;background-position:center center;transform:scale(1.03)}
.zirflo-body .zirflo-ambient-layer{
  background:
    linear-gradient(180deg,rgba(4,10,22,.10) 0%,rgba(4,10,22,.08) 46%,rgba(4,10,22,.70) 86%,var(--zirflo-bg) 100%),
    radial-gradient(circle at 50% 34%,rgba(255,255,255,.05),transparent 38%);
  mix-blend-mode:normal;
}
.zirflo-body .zirflo-wave-layer{opacity:.46}
.zirflo-body .zirflo-center-copy{top:48%;width:min(1120px,86vw)}
.zirflo-body .zirflo-pretitle{
  margin-bottom:22px;
  color:var(--zirflo-cyan);
  font-size:clamp(12px,1vw,18px);
  letter-spacing:.17em;
  text-shadow:0 0 22px rgba(74,187,255,.20);
}
.zirflo-body .zirflo-brand{
  color:#f6f9ff;
  font-weight:250;
  font-size:clamp(86px,11vw,205px);
  letter-spacing:.13em;
  padding-left:.13em;
  line-height:.9;
  text-shadow:0 0 30px rgba(116,202,255,.09);
  animation:zirfloDynamicBrandBreath 10s ease-in-out infinite;
}
.zirflo-body .zirflo-tagline{
  margin-top:26px;
  max-width:980px;
  color:rgba(241,247,255,.84);
  font-size:clamp(18px,1.48vw,29px);
  line-height:1.5;
  letter-spacing:0;
  text-shadow:0 2px 18px rgba(0,0,0,.32);
  animation:none;
}
.zirflo-hero-actions{display:flex;justify-content:center;gap:12px;margin-top:34px;pointer-events:auto}
.zirflo-primary-btn,.zirflo-ghost-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:16px;
  font:inherit;font-size:.88rem;font-weight:750;text-decoration:none;cursor:pointer;transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.zirflo-primary-btn{border:1px solid rgba(146,219,255,.40);background:linear-gradient(135deg,rgba(67,158,255,.88),rgba(55,112,255,.80));color:#fff;box-shadow:0 12px 36px rgba(39,114,255,.18)}
.zirflo-ghost-btn{border:1px solid rgba(182,221,255,.16);background:rgba(7,18,36,.34);color:#d8e5f6;backdrop-filter:blur(12px)}
.zirflo-primary-btn:hover,.zirflo-ghost-btn:hover{transform:translateY(-2px)}

/* Keep status useful, make decorative copy less dominant. */
.zirflo-body .zirflo-meta{color:rgba(226,240,255,.62);text-shadow:0 1px 8px rgba(0,0,0,.25)}
.zirflo-body .zirflo-feed-status{color:rgba(226,240,255,.82);text-shadow:0 1px 8px rgba(0,0,0,.3)}
.zirflo-body .zirflo-feed-status-label{color:#8adfff}
.zirflo-body .zirflo-feed-status strong{color:#eaf7ff}
.zirflo-body .zirflo-feed-status #feed-generated,.zirflo-body .zirflo-feed-status #feed-health{color:rgba(220,235,246,.72)!important}
.zirflo-body .zirflo-hero::after{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 18%,transparent 72%,rgba(1,8,19,.24));box-shadow:inset 0 0 90px rgba(0,0,0,.08)}

/* Section lead mirrors the uploaded prototype. */
.zirflo-feed-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin:0 0 24px;padding:0 2px}
.zirflo-feed-heading h2{margin:10px 0 0;font-size:clamp(34px,4vw,64px);line-height:1.02;font-weight:420;letter-spacing:-.035em}
.zirflo-feed-heading-note{max-width:420px;color:#7990aa;font-size:.78rem;letter-spacing:.08em;text-align:right}
.zirflo-reveal{opacity:0;transform:translateY(18px);transition:.7s cubic-bezier(.22,.8,.24,1)}
.zirflo-reveal.visible{opacity:1;transform:none}

/* Floating topic bar / controls. */
.zirflo-body .feed-controls{
  top:88px;
  z-index:40;
  margin:0 0 26px;
  padding:7px 8px;
  border:1px solid rgba(176,221,255,.13);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(16,32,58,.66),rgba(6,15,28,.56));
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 14px 45px rgba(0,0,0,.12);
}
.zirflo-body .feed-tabs{gap:5px;scrollbar-width:none}
.zirflo-body .feed-tabs::-webkit-scrollbar{display:none}
.zirflo-body .tab{padding:10px 15px;border-radius:999px;color:#aebed1;font-size:.78rem;transition:.22s ease}
.zirflo-body .tab:hover,.zirflo-body .tab.active{color:#fff;background:rgba(113,199,255,.11)}
.zirflo-body .feed-meta{padding:0 8px;color:#71869e;font-size:.73rem}
.zirflo-body .reset-link{color:#7aaed1}

/* Daily brief becomes part of the same glass language. */
.zirflo-body .daily-brief{
  margin:0 0 26px;
  padding:24px 26px;
  border:1px solid rgba(164,218,255,.13);
  border-radius:24px;
  background:
    radial-gradient(circle at 82% 10%,rgba(42,140,255,.10),transparent 28%),
    linear-gradient(140deg,rgba(12,28,52,.78),rgba(6,14,28,.82));
  backdrop-filter:blur(14px);
  box-shadow:0 18px 55px rgba(0,0,0,.14);
}
.zirflo-body .daily-brief-heading h2{font-weight:430;letter-spacing:-.035em}
.zirflo-body .daily-brief-intro{color:#bdcadd}
.zirflo-body .daily-brief-sources a{border-color:rgba(137,215,255,.18);background:rgba(105,191,255,.045)}

/* Feed cards: retain real card structure, adopt prototype glass/depth. */
.zirflo-body .story-wall{gap:16px!important;padding:0 0 28px!important}
.zirflo-body .story-card{
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(167,216,255,.12);
  border-radius:26px;
  background:
    radial-gradient(circle at 84% 14%,rgba(75,169,255,.09),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018)),
    rgba(9,20,38,.68);
  box-shadow:var(--zirflo-shadow);
  transition:transform .42s cubic-bezier(.22,.8,.24,1),border-color .25s ease,box-shadow .25s ease,opacity .25s ease;
  transform-style:preserve-3d;
}
.zirflo-body .story-card::before{
  content:"";position:absolute;inset:-30%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle at 70% 20%,rgba(92,190,255,.11),transparent 26%),radial-gradient(circle at 20% 75%,rgba(49,93,255,.08),transparent 25%);
  opacity:.7;transition:transform .55s ease;
}
.zirflo-body .story-card:hover{border-color:rgba(138,215,255,.28);box-shadow:0 30px 90px rgba(0,0,0,.35)}
.zirflo-body .story-card:hover::before{transform:scale(1.06) translate3d(1%,-1%,0)}
.zirflo-body .story-card.preference-more{border-color:rgba(111,231,205,.38)}
.zirflo-body .story-card.preference-less{opacity:.60}
.zirflo-body .story-image{border-bottom-color:rgba(167,216,255,.10)}
.zirflo-body .story-image-live img{transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .35s ease}
.zirflo-body .story-card:hover .story-image-live img{transform:scale(1.035);filter:saturate(1.06) contrast(1.03)}
.zirflo-body .story-image-shade{background:linear-gradient(180deg,transparent 20%,rgba(5,11,22,.18) 60%,rgba(5,11,22,.72) 100%)}
.zirflo-body .gradient-space,.zirflo-body .gradient-chip{background:radial-gradient(circle at 74% 22%,rgba(111,210,255,.23),transparent 30%),linear-gradient(145deg,#102a57,#07111f)}
.zirflo-body .image-tag{border-color:rgba(187,226,255,.16);background:rgba(5,13,27,.58);color:#d9f5ff}
.zirflo-body .story-content{padding:26px}
.zirflo-body .story-kicker,.zirflo-body .story-meta span:first-child{color:#8bdfff}
.zirflo-body .story-score{border-color:rgba(155,221,255,.15);color:#a5f1df;background:rgba(255,255,255,.025)}
.zirflo-body .story-card h2,.zirflo-body .story-card h3{letter-spacing:-.032em;line-height:1.07;font-weight:520}
.zirflo-body .story-title-link{text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .22s ease}
.zirflo-body .story-card:hover .story-title-link{background-size:100% 1px}
.zirflo-body .story-card p{color:#aebed1;line-height:1.58}
.zirflo-body .source-line{color:#72869e}
.zirflo-body .open-source{display:inline-block;margin-top:12px;color:#bfeaff;font-size:.76rem;text-decoration:none}
.zirflo-body .open-source:hover{color:#fff}
.zirflo-body .story-actions{gap:6px;margin-top:20px;opacity:.66;transition:opacity .2s ease}
.zirflo-body .story-card:hover .story-actions{opacity:1}
.zirflo-body .feedback-btn{border-color:rgba(164,218,255,.12);background:rgba(255,255,255,.035);color:#aabbd0;padding:7px 10px}
.zirflo-body .feedback-btn:hover,.zirflo-body .feedback-btn.selected{background:rgba(105,191,255,.09);border-color:rgba(156,219,255,.24);color:#fff}
.zirflo-body .resonance-row span{background:rgba(105,191,255,.06);color:#8fa7bf}

/* Profile map follows glass style. */
.zirflo-body .profile-map{
  margin:0 0 26px;padding:24px 26px;border-color:rgba(164,218,255,.12);border-radius:24px;
  background:linear-gradient(145deg,rgba(13,29,52,.72),rgba(6,14,28,.76));backdrop-filter:blur(12px)
}
.zirflo-body .profile-chip{border-color:rgba(164,218,255,.12);background:rgba(255,255,255,.035)}

/* Bottom context band from prototype, but with current personalization explanation. */
.zirflo-body .explain-panel{
  margin:28px 0 0;
  min-height:470px;
  padding:60px;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:center;
  border:1px solid rgba(164,218,255,.12);
  border-radius:34px;
  background:radial-gradient(circle at 75% 40%,rgba(42,140,255,.12),transparent 34%),linear-gradient(140deg,rgba(12,28,52,.75),rgba(6,14,28,.76));
  backdrop-filter:blur(14px);
  overflow:hidden;
}
.zirflo-body .explain-panel h2{margin:10px 0 18px;font-size:clamp(34px,4vw,64px);line-height:1.02;font-weight:420;letter-spacing:-.035em}
.zirflo-body .explain-panel p{max-width:720px;color:#9fb0c7;line-height:1.72;font-size:17px}
.zirflo-insight-orbit{position:relative;height:330px}
.zirflo-orbit-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(122,203,255,.16);border-radius:50%;transform:translate(-50%,-50%) rotate(-12deg)}
.zirflo-ring-1{width:310px;height:180px;animation:zirfloOrbitFloat 12s ease-in-out infinite alternate}
.zirflo-ring-2{width:420px;height:250px;animation:zirfloOrbitFloat2 17s ease-in-out infinite alternate}
.zirflo-orbit-core{position:absolute;left:50%;top:50%;width:110px;height:110px;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;font-size:44px;font-weight:300;color:#eaf8ff;background:radial-gradient(circle at 30% 20%,rgba(127,220,255,.35),rgba(30,93,171,.16) 42%,rgba(4,12,25,.82) 74%);box-shadow:0 0 60px rgba(59,151,255,.14),inset -15px -20px 30px rgba(0,0,0,.25)}
.zirflo-orbit-node{position:absolute;width:9px;height:9px;border-radius:50%;background:#dff8ff;box-shadow:0 0 14px rgba(111,217,255,.68)}
.zirflo-orbit-node.n1{left:24%;top:34%;animation:zirfloNodePulse 6s ease-in-out infinite}
.zirflo-orbit-node.n2{right:20%;top:46%;animation:zirfloNodePulse 8s ease-in-out infinite 1.2s}
.zirflo-orbit-node.n3{left:50%;bottom:13%;animation:zirfloNodePulse 7s ease-in-out infinite 2.4s}

/* Reader: bring current functional v1.9 reader into the new magazine visual language. */
.zirflo-body .zirflo-reader{width:min(1520px,calc(100% - 56px));margin:28px auto 60px;padding:0;border:1px solid rgba(163,218,255,.14);border-radius:34px;background:radial-gradient(circle at 80% 10%,rgba(42,138,255,.08),transparent 26%),rgba(5,13,26,.96);box-shadow:0 40px 120px rgba(0,0,0,.55);overflow:clip;min-height:calc(100vh - 56px)}
.zirflo-body .reader-toolbar{top:0;padding:14px 18px;min-height:68px;border-bottom:1px solid rgba(163,218,255,.10);background:rgba(5,13,26,.82);backdrop-filter:blur(20px)}
.zirflo-body .reader-back,.zirflo-body .reader-action,.zirflo-body .reader-original{border-color:rgba(164,218,255,.12);background:rgba(255,255,255,.035);color:#c5d2e2}
.zirflo-body .reader-back:hover,.zirflo-body .reader-action:hover,.zirflo-body .reader-original:hover{background:rgba(105,191,255,.09);border-color:rgba(156,219,255,.26);color:#fff}
.zirflo-body .reader-article{width:min(1120px,calc(100% - 100px));padding:72px 0 110px}
.zirflo-body .reader-title{font-size:clamp(42px,5.4vw,84px);line-height:.98;letter-spacing:-.045em;font-weight:440}
.zirflo-body .reader-deck{color:#afbed0}
.zirflo-body .reader-copy{max-width:820px}
.zirflo-body .reader-text{color:#d4dce8;font-size:19px;line-height:1.82}
.zirflo-body .reader-context{border-color:rgba(165,216,255,.10);background:rgba(255,255,255,.03)}
.zirflo-body .reader-nav{width:56px;height:92px;border-color:rgba(255,255,255,.09);background:rgba(9,14,19,.62);border-radius:18px}
.zirflo-body .reader-page-view{padding:12px 14px 16px}
.zirflo-body .reader-frame{border-radius:22px}

/* Feedback dialogs follow the same glass shell. */
.zirflo-body .why-dialog{border-color:rgba(164,218,255,.16);background:rgba(5,13,26,.97);backdrop-filter:blur(16px)}

@media(max-width:1100px){
  .zirflo-body .zirflo-page{width:min(100% - 32px,1540px)}
  .zirflo-body .zirflo-hero{min-height:720px;height:76vh}
  .zirflo-body .explain-panel{grid-template-columns:1fr;padding:40px}.zirflo-insight-orbit{height:280px}
  .zirflo-body .reader-article{width:min(900px,calc(100% - 56px))}
}
@media(max-width:860px){
  .zirflo-body .site-header{width:calc(100vw - 24px);top:12px}.zirflo-body .brand-text{display:none}
  .zirflo-body .zirflo-page{width:min(100% - 24px,1540px);padding-top:84px}
  .zirflo-body .zirflo-hero{min-height:680px;height:76vh;margin-bottom:80px;border-radius:26px}
  .zirflo-body .zirflo-meta-left-bottom,.zirflo-body .zirflo-meta-right-bottom{display:none}
  .zirflo-feed-heading{align-items:flex-start;flex-direction:column}.zirflo-feed-heading-note{text-align:left}
  .zirflo-body .feed-controls{top:78px}
  .zirflo-body .explain-panel{padding:34px}
  .zirflo-body .zirflo-reader{width:calc(100% - 20px);margin:10px auto;border-radius:24px}
}
@media(max-width:620px){
  .zirflo-body .site-header{padding:7px 8px}.zirflo-body .top-nav a{padding:8px 9px;font-size:.68rem}.zirflo-body .brand-mark{width:32px;height:32px}
  .zirflo-body .zirflo-page{width:min(100% - 18px,1540px)}
  .zirflo-body .zirflo-hero{min-height:620px;height:78vh;border-radius:22px}
  .zirflo-body .zirflo-center-copy{width:90vw}.zirflo-body .zirflo-brand{font-size:clamp(58px,17vw,108px)}.zirflo-body .zirflo-tagline{font-size:16px}
  .zirflo-hero-actions{flex-direction:column;align-items:center}.zirflo-primary-btn,.zirflo-ghost-btn{width:min(260px,82vw)}
  .zirflo-body .zirflo-meta-left-top,.zirflo-body .zirflo-meta-right-mid{display:none}
  .zirflo-body .zirflo-feed-status{max-width:56vw}
  .zirflo-body .feed-controls{top:70px;padding:6px}.zirflo-body .feed-meta{display:none}
  .zirflo-body .daily-brief{padding:18px;border-radius:20px}
  .zirflo-body .story-card{border-radius:22px}.zirflo-body .story-actions{opacity:1}
  .zirflo-body .explain-panel{padding:28px 22px;border-radius:26px;min-height:0}.zirflo-insight-orbit{height:230px}.zirflo-ring-1{width:240px;height:140px}.zirflo-ring-2{width:310px;height:190px}.zirflo-orbit-core{width:88px;height:88px}
  .zirflo-body .zirflo-reader{width:calc(100% - 12px);margin:6px auto}.zirflo-body .reader-toolbar{padding:10px}.zirflo-body .reader-article{width:calc(100% - 28px);padding-top:44px}
}

@keyframes zirfloAuroraA{to{transform:translate3d(16vw,-8vh,0) scale(1.12)}}
@keyframes zirfloAuroraB{to{transform:translate3d(-13vw,10vh,0) scale(.94)}}
@keyframes zirfloDynamicBrandBreath{0%,100%{opacity:.96;text-shadow:0 0 30px rgba(116,202,255,.09)}50%{opacity:1;text-shadow:0 0 42px rgba(116,202,255,.15)}}
@keyframes zirfloOrbitFloat{to{transform:translate(-50%,-50%) rotate(-6deg) scale(1.03)}}
@keyframes zirfloOrbitFloat2{to{transform:translate(-50%,-50%) rotate(-18deg) scale(.97)}}
@keyframes zirfloNodePulse{50%{transform:scale(1.4);opacity:.5}}

@media(prefers-reduced-motion:reduce){
  .zirflo-page-ambient *,.zirflo-body .zirflo-reveal,.zirflo-body .story-card,.zirflo-body .story-image-live img,.zirflo-body .site-header,.zirflo-body .zirflo-primary-btn,.zirflo-body .zirflo-ghost-btn{animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important}
}


/* ---- consolidated from zirflo-dynamic-v210.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v2.1 — compact living masthead + continuous water stage.
   Visual-only layer: feed/profile/reader behaviour remains owned by v1.9.1. */
:root{
  --zirflo-v210-hero-h:clamp(440px,31vw,560px);
  --zirflo-v210-radius:30px;
  --zirflo-v210-water-y:0px;
  --zirflo-v210-capsule-x:0px;
  --zirflo-v210-capsule-y:0px;
  --zirflo-v210-page-pad-top:96px;
  --zirflo-v210-water-h:clamp(350px,26vw,430px);
}

/* The hero and the next interface layers share one living landscape.
   The background is attached to MAIN so sticky feed controls stay sticky across the full feed. */
.zirflo-body .zirflo-page{
  position:relative;
  isolation:isolate;
}
.zirflo-body .zirflo-page > *{
  position:relative;
  z-index:2;
}
.zirflo-body .zirflo-page::before{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  left:0;
  right:0;
  top:calc(var(--zirflo-v210-page-pad-top) + var(--zirflo-v210-hero-h) - 8px);
  height:var(--zirflo-v210-water-h);
  background-image:
    linear-gradient(180deg,
      rgba(4,18,44,.02) 0%,
      rgba(4,18,44,.14) 28%,
      rgba(5,16,35,.40) 62%,
      rgba(5,11,22,.92) 91%,
      var(--zirflo-bg) 100%),
    url("/assets/images/zirflo-header-background.png");
  background-repeat:no-repeat,no-repeat;
  background-size:100% 100%,100% 215%;
  background-position:center,center calc(100% + var(--zirflo-v210-water-y));
  transform:translateZ(0) scale(1.002);
  transform-origin:center top;
  filter:saturate(.94) brightness(.88);
}
.zirflo-body .zirflo-page::after{
  content:"";
  position:absolute;
  z-index:1;
  pointer-events:none;
  left:0;
  right:0;
  top:calc(var(--zirflo-v210-page-pad-top) + var(--zirflo-v210-hero-h) - 28px);
  height:calc(var(--zirflo-v210-water-h) + 28px);
  background:
    radial-gradient(ellipse at 50% 5%,rgba(128,211,255,.11),transparent 43%),
    linear-gradient(180deg,rgba(2,12,29,0) 0%,rgba(2,12,29,.10) 48%,rgba(5,11,22,.58) 80%,var(--zirflo-bg) 100%);
}

/* Compact the masthead: still cinematic, but the content starts sooner. */
.zirflo-body .zirflo-hero{
  min-height:var(--zirflo-v210-hero-h);
  height:var(--zirflo-v210-hero-h);
  max-height:none;
  margin:0;
  border-radius:var(--zirflo-v210-radius) var(--zirflo-v210-radius) 0 0;
  border-bottom-color:rgba(150,215,255,.06);
  box-shadow:0 24px 72px rgba(0,0,0,.22);
}
.zirflo-body .zirflo-bg-layer{
  inset:-1.5%;
  width:103%;
  height:103%;
  background-position:center 50%;
}
.zirflo-body .zirflo-ambient-layer{
  background:
    linear-gradient(180deg,rgba(4,10,22,.03) 0%,rgba(4,10,22,.04) 58%,rgba(4,13,31,.22) 84%,rgba(4,15,36,.32) 100%),
    radial-gradient(circle at 50% 25%,rgba(255,255,255,.045),transparent 35%);
}
.zirflo-body .zirflo-center-copy{
  top:49%;
  width:min(1050px,78vw);
}

/* Personal Intelligence Feed becomes a real responsive, animated UI element. */
.zirflo-body .zirflo-pretitle{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:min(330px,42vw);
  margin:0 auto 15px;
  padding:8px 22px 8px 25px;
  border:1px solid rgba(180,235,255,.48);
  border-radius:999px;
  background:
    linear-gradient(110deg,rgba(255,255,255,.025),rgba(107,209,255,.12),rgba(255,255,255,.025));
  background-size:220% 100%;
  backdrop-filter:blur(10px) saturate(135%);
  -webkit-backdrop-filter:blur(10px) saturate(135%);
  box-shadow:
    inset 0 1px rgba(255,255,255,.10),
    0 0 0 1px rgba(62,166,255,.08),
    0 0 26px rgba(97,205,255,.12);
  color:#e7fbff;
  font-size:clamp(10px,.72vw,13px);
  font-weight:760;
  line-height:1;
  letter-spacing:.22em;
  transform:translate3d(var(--zirflo-v210-capsule-x),var(--zirflo-v210-capsule-y),0);
  animation:zirfloV210CapsuleGlow 8s ease-in-out infinite,zirfloV210CapsuleSweep 13s linear infinite;
}
.zirflo-body .zirflo-pretitle::before,
.zirflo-body .zirflo-pretitle::after{
  content:"";
  position:absolute;
  top:50%;
  width:clamp(44px,6vw,108px);
  height:1px;
  opacity:.88;
  transform:translateY(-50%);
}
.zirflo-body .zirflo-pretitle::before{
  right:calc(100% + 12px);
  background:linear-gradient(90deg,transparent,rgba(194,239,255,.62));
  filter:drop-shadow(0 0 4px rgba(209,244,255,.30));
}
.zirflo-body .zirflo-pretitle::after{
  left:calc(100% + 12px);
  background:linear-gradient(90deg,rgba(194,239,255,.62),transparent);
}
.zirflo-body .zirflo-brand{
  font-size:clamp(76px,8.25vw,142px);
  font-weight:250;
  line-height:.88;
  letter-spacing:.145em;
  padding-left:.145em;
}
.zirflo-body .zirflo-tagline{
  margin-top:18px;
  max-width:900px;
  font-size:clamp(16px,1.18vw,22px);
  line-height:1.42;
}
.zirflo-body .zirflo-hero-actions{
  margin-top:22px;
  gap:10px;
}
.zirflo-body .zirflo-primary-btn,
.zirflo-body .zirflo-ghost-btn{
  min-height:44px;
  padding:0 18px;
  border-radius:14px;
  font-size:.82rem;
}

/* Keep the decorative text useful but visually secondary in the tighter hero. */
.zirflo-body .zirflo-meta,
.zirflo-body .zirflo-feed-status{
  font-size:clamp(8px,.52vw,11px);
  line-height:1.55;
}
.zirflo-body .zirflo-meta-left-top{top:24px;left:30px}
.zirflo-body .zirflo-meta-right-top{top:24px;right:30px}
.zirflo-body .zirflo-meta-right-mid{top:51%;right:30px}
.zirflo-body .zirflo-meta-left-bottom,
.zirflo-body .zirflo-meta-right-bottom{display:none}
.zirflo-body .zirflo-wave-layer{opacity:.34}

/* Let the lower part sit on the water rather than below a giant header. */
.zirflo-body .zirflo-feed-heading{
  margin:0;
  padding:26px 20px 8px;
  align-items:flex-end;
}
.zirflo-body .zirflo-feed-heading h2{
  margin-top:8px;
  font-size:clamp(34px,3.55vw,58px);
  line-height:1;
  text-shadow:0 2px 24px rgba(0,0,0,.24);
}
.zirflo-body .zirflo-feed-heading .eyebrow{
  color:#83e9ff;
  text-shadow:0 0 16px rgba(65,207,255,.25);
}
.zirflo-body .zirflo-feed-heading-note{
  color:rgba(205,225,244,.72);
  padding-bottom:6px;
}

.zirflo-body .feed-controls{
  margin:8px 18px 0;
  padding:6px 7px;
  border-color:rgba(176,221,255,.16);
  background:linear-gradient(180deg,rgba(8,29,61,.50),rgba(4,19,43,.43));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 12px 34px rgba(0,0,0,.10);
  backdrop-filter:blur(15px) saturate(135%);
  -webkit-backdrop-filter:blur(15px) saturate(135%);
}
.zirflo-body .feed-meta{color:rgba(187,211,234,.66)}
.zirflo-body .profile-map{
  margin:14px 18px 0;
  padding:20px 22px;
  border-color:rgba(164,218,255,.14);
  background:
    linear-gradient(145deg,rgba(5,24,52,.44),rgba(4,16,36,.40));
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 14px 42px rgba(0,0,0,.10);
  backdrop-filter:blur(14px) saturate(128%);
  -webkit-backdrop-filter:blur(14px) saturate(128%);
}
.zirflo-body .profile-map-intro p{color:rgba(205,220,236,.72)}
.zirflo-body .profile-chip{
  background:rgba(3,18,42,.42);
  border-color:rgba(154,217,255,.18);
  backdrop-filter:blur(6px);
}

/* The next section starts on the normal site background after the water has faded out. */
.zirflo-body .daily-brief{margin-top:8px}

@media(max-width:1200px){
  :root{--zirflo-v210-hero-h:clamp(460px,45vw,570px)}
  .zirflo-body .zirflo-center-copy{width:min(900px,82vw)}
  .zirflo-body .zirflo-brand{font-size:clamp(70px,9.4vw,126px)}
  .zirflo-body .zirflo-pretitle{min-width:min(300px,46vw)}
}

@media(max-width:860px){
  :root{--zirflo-v210-hero-h:clamp(500px,72vw,620px);--zirflo-v210-radius:24px}
  :root{--zirflo-v210-page-pad-top:84px;--zirflo-v210-water-h:520px}
  .zirflo-body .zirflo-page::before{background-size:100% 100%,100% 225%;background-position:center,center bottom}
  .zirflo-body .zirflo-hero{min-height:var(--zirflo-v210-hero-h);height:var(--zirflo-v210-hero-h);margin:0;border-radius:var(--zirflo-v210-radius) var(--zirflo-v210-radius) 0 0}
  .zirflo-body .zirflo-center-copy{top:48%;width:86vw}
  .zirflo-body .zirflo-pretitle{min-width:min(270px,54vw);padding:8px 18px;font-size:10px}
  .zirflo-body .zirflo-pretitle::before,.zirflo-body .zirflo-pretitle::after{width:36px}
  .zirflo-body .zirflo-feed-heading{padding:22px 14px 6px}
  .zirflo-body .zirflo-feed-heading-note{padding:0}
  .zirflo-body .feed-controls,.zirflo-body .profile-map{margin-left:10px;margin-right:10px}
}

@media(max-width:620px){
  :root{--zirflo-v210-hero-h:560px;--zirflo-v210-radius:20px;--zirflo-v210-water-h:720px}
  .zirflo-body .zirflo-center-copy{top:49%;width:90vw}
  .zirflo-body .zirflo-pretitle{min-width:0;max-width:72vw;padding:8px 14px 8px 16px;letter-spacing:.16em;white-space:nowrap}
  .zirflo-body .zirflo-pretitle::before,.zirflo-body .zirflo-pretitle::after{display:none}
  .zirflo-body .zirflo-brand{font-size:clamp(52px,15vw,86px);letter-spacing:.105em;padding-left:.105em}
  .zirflo-body .zirflo-tagline{max-width:84vw;margin-top:15px;font-size:14px}
  .zirflo-body .zirflo-hero-actions{margin-top:18px}
  .zirflo-body .zirflo-meta-right-top{right:16px;top:16px}
  .zirflo-body .zirflo-feed-heading{padding-top:20px}
  .zirflo-body .zirflo-feed-heading h2{font-size:clamp(31px,10vw,44px)}
  .zirflo-body .zirflo-feed-heading-note{font-size:.68rem}
  .zirflo-body .profile-map{padding:18px}
}

/* v4.0.4: compact, flat briefing and deliberate feed refresh control. */
.zirflo-body .daily-brief{
  margin:18px 0 24px;
  padding:18px 20px 14px;
  border:0;
  border-top:1px solid rgba(151,201,232,.22);
  border-bottom:1px solid rgba(151,201,232,.16);
  border-radius:0;
  background:rgba(5,15,28,.32);
  box-shadow:none;
  backdrop-filter:none;
}
.zirflo-body .daily-brief-heading{align-items:end;margin-bottom:14px}
.zirflo-body .daily-brief-heading h2{font-size:clamp(1.18rem,1.55vw,1.6rem);font-weight:520;margin-top:3px}
.zirflo-body .daily-brief-layout{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,3fr);gap:22px;align-items:start}
.zirflo-body .daily-brief-weather{padding:2px 18px 2px 0;border-right:1px solid rgba(151,201,232,.16);color:#c8d8e4;line-height:1.48}
.zirflo-body .daily-brief-weather p{margin:6px 0 0;font-size:.86rem}
.zirflo-body .brief-section-label,.zirflo-body .brief-item-index{color:#78cfee;font-size:.66rem;letter-spacing:.15em}
.zirflo-body .daily-brief-intro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;max-width:none;color:#d8e5eb}
.zirflo-body .brief-item{min-width:0;padding:2px 18px;border-left:1px solid rgba(151,201,232,.13)}
.zirflo-body .brief-item:first-child{border-left:0;padding-left:0}
.zirflo-body .brief-item h3{margin:7px 0 7px;font-size:clamp(.9rem,1vw,1.04rem);line-height:1.26;font-weight:600;color:#f0f6fa}
.zirflo-body .brief-item p{margin:0 0 8px;font-size:.79rem;line-height:1.42;color:#aebfcb}
.zirflo-body .brief-item a,.zirflo-body .brief-item>span:last-child{font-size:.7rem;color:#79d2ee;text-decoration:none}
.zirflo-body .daily-brief-note{margin-top:12px;padding-top:9px;border-top:1px solid rgba(151,201,232,.1)}
.zirflo-body .refresh-news{border:1px solid rgba(111,202,236,.34);background:transparent;color:#9ce4f7;padding:5px 10px;border-radius:4px;font:inherit;cursor:pointer}
.zirflo-body .refresh-news:hover,.zirflo-body .refresh-news:focus-visible{border-color:#8bdcf2;background:rgba(98,196,229,.09)}
.zirflo-body .refresh-news:disabled{opacity:.55;cursor:wait}
.zirflo-body .refresh-news-status{min-width:10ch;color:#8da4b5}
@media(max-width:980px){.zirflo-body .daily-brief-layout{grid-template-columns:1fr}.zirflo-body .daily-brief-weather{border-right:0;border-bottom:1px solid rgba(151,201,232,.16);padding:0 0 12px}.zirflo-body .daily-brief-intro{grid-template-columns:1fr}.zirflo-body .brief-item,.zirflo-body .brief-item:first-child{padding:12px 0;border-left:0;border-top:1px solid rgba(151,201,232,.12)}}

@keyframes zirfloV210CapsuleGlow{
  0%,100%{box-shadow:inset 0 1px rgba(255,255,255,.10),0 0 0 1px rgba(62,166,255,.08),0 0 20px rgba(97,205,255,.09)}
  50%{box-shadow:inset 0 1px rgba(255,255,255,.13),0 0 0 1px rgba(90,197,255,.14),0 0 34px rgba(97,205,255,.18)}
}
@keyframes zirfloV210CapsuleSweep{
  0%{background-position:0 50%}
  100%{background-position:220% 50%}
}

@media(prefers-reduced-motion:reduce){
  .zirflo-body .zirflo-pretitle{animation:none!important;transform:none!important}
  .zirflo-body .zirflo-page::before{transform:none!important}
}


/* ---- consolidated from zirflo-dynamic-v213.css (visual rules only, final layout authority is below) ---- */

/* ZIRFLO v2.1.2 — one correct continuous stage image with dynamic overlays.
   Fixes duplicated/split landscapes by using a single scenic stage surface. */

:root{
  --zirflo-v212-stage-bottom-fade: 20%;
}

/* Disable the old separate water extension layers. */
.zirflo-body .zirflo-page::before,
.zirflo-body .zirflo-page::after{
  display:none !important;
}

/* One continuous scenic stage for hero + heading + tabs + signal map. */
.zirflo-body .zirflo-stage-shell{
  position:relative;
  overflow:visible;
  margin:0 0 14px;
  border-radius:var(--zirflo-v210-radius);
  background-color:var(--zirflo-bg);
  background-image:
    linear-gradient(180deg,
      rgba(255,255,255,.02) 0%,
      rgba(255,255,255,0) 34%,
      rgba(3,17,43,.06) 52%,
      rgba(5,14,31,.18) 68%,
      rgba(5,12,24,.52) 84%,
      var(--zirflo-bg) 100%),
    url('/assets/images/zirflo-stage-background-v213.png');
  background-repeat:no-repeat,no-repeat;
  background-position:center top,center top;
  background-size:100% 100%,100% 100%;
  box-shadow:0 24px 72px rgba(0,0,0,.22);
  isolation:isolate;
  border:1px solid rgba(164,214,255,.14);
}
.zirflo-body .zirflo-stage-shell::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 50% 58%, rgba(138,218,255,.09), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 58%, rgba(5,11,22,.10) 73%, rgba(5,11,22,.54) 90%, var(--zirflo-bg) 100%);
  z-index:0;
}
.zirflo-body .zirflo-stage-shell > *{
  position:relative;
  z-index:1;
}

/* Hero becomes transparent so the shared stage image shows through once. */
.zirflo-body .zirflo-hero{
  background:transparent;
  border:none;
  box-shadow:none;
  border-radius:0;
  margin:0;
}
.zirflo-body .zirflo-bg-layer{
  opacity:0;
}
.zirflo-body .zirflo-ambient-layer{
  background:
    linear-gradient(180deg,rgba(0,25,79,.03),rgba(0,38,95,.05) 58%,rgba(0,28,72,.12)),
    radial-gradient(circle at 50% 18%,rgba(255,255,255,.055),transparent 30%),
    radial-gradient(circle at 84% 11%,rgba(81,176,255,.07),transparent 24%);
}
.zirflo-body .zirflo-wave-layer{opacity:.22}

/* Pull the lower sections onto the same scenic stage. */
.zirflo-body .zirflo-feed-heading{
  margin:0;
  padding:26px 20px 8px;
  align-items:flex-end;
}
.zirflo-body .feed-controls{
  margin:8px 18px 0;
}
.zirflo-body .profile-map{
  margin:14px 18px 18px;
}

/* Ensure the glass surfaces float above the single stage image. */
.zirflo-body .feed-controls,
.zirflo-body .profile-map{
  border-color:rgba(176,221,255,.16);
  backdrop-filter:blur(15px) saturate(135%);
  -webkit-backdrop-filter:blur(15px) saturate(135%);
}
.zirflo-body .feed-controls{
  background:linear-gradient(180deg,rgba(8,29,61,.46),rgba(4,19,43,.34));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 12px 34px rgba(0,0,0,.10);
}
.zirflo-body .profile-map{
  background:linear-gradient(145deg,rgba(5,24,52,.38),rgba(4,16,36,.34));
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 14px 42px rgba(0,0,0,.10);
}

/* Daily brief starts after the scenic stage has faded back into the site. */
.zirflo-body .daily-brief{margin-top:10px}

@media(max-width:860px){
  .zirflo-body .zirflo-stage-shell{
    border-radius:24px;
  }
  .zirflo-body .feed-controls,
  .zirflo-body .profile-map{margin-left:10px;margin-right:10px}
}

@media(max-width:620px){
  .zirflo-body .zirflo-stage-shell{
    border-radius:20px;
    background-size:cover, cover;
  }
  .zirflo-body .profile-map{margin-bottom:14px}
}

/* Optional briefing sections do not affect article card geometry. */
.zirflo-body .daily-brief-layout.brief-without-weather{grid-template-columns:1fr}
.zirflo-body .daily-brief [hidden]{display:none}
.zirflo-body #daily-brief-favorites{margin-top:12px;align-items:center}
/* ========================================================================== */
/* v2.6.0 NATIVE FLEX FLOW — no JS-created rows, no masonry, no Tetris.        */
/* Browser owns line breaking; importance only controls preferred width.       */
/* ========================================================================== */

body.zirflo-body .zirflo-page,
body.zirflo-body .site-header{
  width:calc(100vw - clamp(12px,1.2vw,48px)) !important;
  max-width:none !important;
  min-width:0 !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

body.zirflo-body #story-wall{
  display:flex !important;
  flex-flow:row wrap !important;
  align-items:stretch !important;
  align-content:flex-start !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  gap:clamp(10px,.7vw,16px) !important;
  margin:0 !important;
  padding:24px 0 20px !important;
  overflow:visible !important;
}

body.zirflo-body #story-wall > article.story-card{
  /* Exact row filling is native flex behavior. No fixed width and no max width. */
  flex:var(--zr260-grow,1) 1 var(--zr260-basis,300px) !important;
  width:auto !important;
  max-width:none !important;
  min-width:min(var(--zr260-min,240px),100%) !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  grid-column:auto !important;
  grid-row:auto !important;
  position:relative !important;
  inset:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  display:flex !important;
  align-self:stretch !important;
  transform:none !important;
  opacity:1 !important;
  box-sizing:border-box !important;
}

/* Importance is a preference, not a rigid frame. */
body.zirflo-body #story-wall > article.story-card[data-zr260-size="large"]{
  --zr260-grow:2.05;
  --zr260-basis:clamp(390px,23vw,700px);
  --zr260-min:330px;
}
body.zirflo-body #story-wall > article.story-card[data-zr260-size="medium"]{
  --zr260-grow:1.42;
  --zr260-basis:clamp(300px,17vw,500px);
  --zr260-min:270px;
}
body.zirflo-body #story-wall > article.story-card[data-zr260-size="small"]{
  --zr260-grow:1;
  --zr260-basis:clamp(235px,12vw,355px);
  --zr260-min:225px;
}

/* Stable geometry lives on the article. The visual surface may animate freely. */
body.zirflo-body .zr260-surface{
  position:relative;
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  min-height:100%;
  padding:16px;
  overflow:hidden;
  border:1px solid rgba(167,216,255,.12);
  border-radius:24px;
  background:
    radial-gradient(circle at 84% 14%,rgba(75,169,255,.09),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018)),
    rgba(9,20,38,.68);
  box-shadow:var(--zirflo-shadow);
  box-sizing:border-box;
  transform-style:preserve-3d;
  transition:border-color .25s ease,box-shadow .25s ease;
}
body.zirflo-body article.story-card.preference-more .zr260-surface{border-color:rgba(111,231,205,.38)}
body.zirflo-body article.story-card.preference-less .zr260-surface{opacity:.64}
body.zirflo-body article.story-card:hover .zr260-surface{border-color:rgba(138,215,255,.28);box-shadow:0 30px 90px rgba(0,0,0,.35)}

body.zirflo-body .zr260-surface .story-content,
body.zirflo-body .zr260-surface .compact-content{
  display:flex !important;
  flex-direction:column !important;
  flex:1 1 auto !important;
  min-height:0 !important;
  padding:0 !important;
  overflow:visible !important;
}

body.zirflo-body .zr260-surface > .story-image,
body.zirflo-body .zr260-surface > .story-image-compact,
body.zirflo-body .zr260-surface > .story-image-live{
  width:auto !important;
  max-width:none !important;
  margin:-16px -16px 13px !important;
  border-radius:0 !important;
  flex:0 0 auto !important;
  overflow:hidden !important;
  min-height:0 !important;
}
body.zirflo-body article.story-card[data-zr260-size="large"] .story-image,
body.zirflo-body article.story-card[data-zr260-size="large"] .story-image-compact,
body.zirflo-body article.story-card[data-zr260-size="large"] .story-image-live{height:clamp(190px,9vw,320px) !important}
body.zirflo-body article.story-card[data-zr260-size="medium"] .story-image,
body.zirflo-body article.story-card[data-zr260-size="medium"] .story-image-compact,
body.zirflo-body article.story-card[data-zr260-size="medium"] .story-image-live{height:clamp(150px,7vw,240px) !important}
body.zirflo-body article.story-card[data-zr260-size="small"] .story-image,
body.zirflo-body article.story-card[data-zr260-size="small"] .story-image-compact,
body.zirflo-body article.story-card[data-zr260-size="small"] .story-image-live{height:clamp(112px,5vw,175px) !important}

/* Text is never used as sacrificial geometry. */
body.zirflo-body .zr260-surface h2,
body.zirflo-body .zr260-surface h3,
body.zirflo-body .zr260-surface p,
body.zirflo-body .zr260-surface .source-line{
  display:block !important;
  overflow:visible !important;
  max-height:none !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:initial !important;
  text-overflow:clip !important;
  white-space:normal !important;
}
body.zirflo-body article.story-card[data-zr260-size="large"] h2,
body.zirflo-body article.story-card[data-zr260-size="large"] h3{font-size:clamp(1.35rem,1.05rem + .30vw,2.05rem) !important}
body.zirflo-body article.story-card[data-zr260-size="medium"] h2,
body.zirflo-body article.story-card[data-zr260-size="medium"] h3{font-size:clamp(1.08rem,.96rem + .19vw,1.55rem) !important}
body.zirflo-body article.story-card[data-zr260-size="small"] h2,
body.zirflo-body article.story-card[data-zr260-size="small"] h3{font-size:clamp(.94rem,.88rem + .10vw,1.22rem) !important}

body.zirflo-body .zr260-surface .source-line{margin-top:auto !important;padding-top:12px !important}

/* Scroll assembly now transforms ONLY the visual surface, never the flex item. */
body.zirflo-body .zr260-surface.zr260-enter{
  --zr-x:0px;--zr-y:105px;--zr-z:-120px;--zr-rx:12deg;--zr-ry:0deg;--zr-rz:0deg;
  --zr-scale:.94;--zr-blur:2px;--zr-duration:920ms;--zr-delay:0ms;
  opacity:0;
  transform-origin:50% 100%;
  transform:perspective(1500px) translate3d(var(--zr-x),var(--zr-y),var(--zr-z)) rotateX(var(--zr-rx)) rotateY(var(--zr-ry)) rotateZ(var(--zr-rz)) scale(var(--zr-scale));
  filter:blur(var(--zr-blur)) brightness(.82) saturate(.9);
  will-change:transform,opacity,filter;
  backface-visibility:hidden;
}
body.zirflo-body .zr260-surface.zr260-left{--zr-x:-22vw;--zr-y:78px;--zr-z:-150px;--zr-rx:8deg;--zr-ry:10deg;--zr-rz:-1deg;--zr-scale:.92;transform-origin:0 100%}
body.zirflo-body .zr260-surface.zr260-right{--zr-x:22vw;--zr-y:78px;--zr-z:-150px;--zr-rx:8deg;--zr-ry:-10deg;--zr-rz:1deg;--zr-scale:.92;transform-origin:100% 100%}
body.zirflo-body .zr260-surface.zr260-floor{--zr-y:145px;--zr-z:-80px;--zr-rx:60deg;--zr-scale:.92}
body.zirflo-body .zr260-surface.zr260-depth{--zr-y:100px;--zr-z:-400px;--zr-rx:6deg;--zr-scale:.83;--zr-blur:3px}
body.zirflo-body .zr260-surface.zr260-reveal{animation:zr260Assemble var(--zr-duration) cubic-bezier(.16,.84,.24,1) var(--zr-delay) both}
@keyframes zr260Assemble{
  0%{opacity:0;transform:perspective(1500px) translate3d(var(--zr-x),var(--zr-y),var(--zr-z)) rotateX(var(--zr-rx)) rotateY(var(--zr-ry)) rotateZ(var(--zr-rz)) scale(var(--zr-scale));filter:blur(var(--zr-blur)) brightness(.82) saturate(.9)}
  62%{opacity:1;filter:blur(.2px) brightness(1.02) saturate(1.02)}
  84%{opacity:1;transform:perspective(1500px) translate3d(0,-7px,0) rotateX(-.3deg) scale(1.008);filter:none}
  100%{opacity:1;transform:none;filter:none}
}
body.zirflo-body .zr260-surface.zr260-settled{opacity:1;transform:none;filter:none;will-change:auto}

@media(max-width:900px){
  body.zirflo-body #story-wall > article.story-card[data-zr260-size="large"]{--zr260-basis:390px;--zr260-min:300px}
  body.zirflo-body #story-wall > article.story-card[data-zr260-size="medium"]{--zr260-basis:300px;--zr260-min:250px}
  body.zirflo-body #story-wall > article.story-card[data-zr260-size="small"]{--zr260-basis:235px;--zr260-min:210px}
}
@media(max-width:620px){
  body.zirflo-body #story-wall{gap:10px !important}
  body.zirflo-body #story-wall > article.story-card{
    flex:1 1 100% !important;
    min-width:0 !important;
  }
  body.zirflo-body .zr260-surface{padding:12px;border-radius:18px}
  body.zirflo-body .zr260-surface > .story-image,
  body.zirflo-body .zr260-surface > .story-image-compact,
  body.zirflo-body .zr260-surface > .story-image-live{margin:-12px -12px 10px !important}
}
@media(prefers-reduced-motion:reduce){
  body.zirflo-body .zr260-surface{opacity:1!important;transform:none!important;filter:none!important;animation:none!important;will-change:auto!important}
}

/* ========================================================================== */
/* v2.6.1 SAFE SCROLL ASSEMBLY — layout cards never move or disappear.         */
/* A temporary absolute visual clone performs the entrance animation instead.  */
/* ========================================================================== */
body.zirflo-body #story-wall > article.story-card > .zr260-surface,
body.zirflo-body #story-wall > article.story-card > .zr260-surface.zr260-enter,
body.zirflo-body #story-wall > article.story-card > .zr260-surface.zr260-reveal,
body.zirflo-body #story-wall > article.story-card > .zr260-surface.zr260-settled{
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
  animation:none !important;
  will-change:auto !important;
}
body.zirflo-body .zr261-flyer{
  position:absolute !important;
  z-index:999 !important;
  pointer-events:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  contain:layout paint style;
}
body.zirflo-body article.story-card.zr261-active > .zr260-surface{
  visibility:hidden !important;
}
@media(prefers-reduced-motion:reduce){
  body.zirflo-body article.story-card.zr261-active > .zr260-surface{visibility:visible!important}
  body.zirflo-body .zr261-flyer{display:none!important}
}

/* ========================================================================== */
/* v2.7.3 SAFE SIGNAL EMPHASIS                                                */
/* Geometry/flex rules are intentionally untouched from v2.6.1.               */
/* Signal importance only changes content presentation INSIDE the stable card. */
/* ========================================================================== */

/* LEAD — stronger editorial treatment without changing outer card width. */
body.zirflo-body article.story-card[data-zr273-tier="lead"] > .zr260-surface{
  padding:20px;
  border-color:rgba(126,220,255,.34);
  background:
    radial-gradient(circle at 82% 10%,rgba(67,179,255,.15),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02)),
    rgba(8,22,42,.76);
  box-shadow:0 28px 82px rgba(0,18,42,.31),inset 0 1px rgba(255,255,255,.055);
}

body.zirflo-body article.story-card[data-zr273-tier="lead"] .story-image,
body.zirflo-body article.story-card[data-zr273-tier="lead"] .story-image-compact,
body.zirflo-body article.story-card[data-zr273-tier="lead"] .story-image-live{
  height:clamp(205px,8.5vw,330px) !important;
  margin:-20px -20px 16px !important;
}
body.zirflo-body article.story-card[data-zr273-tier="lead"] h2,
body.zirflo-body article.story-card[data-zr273-tier="lead"] h3{
  font-size:clamp(1.28rem,1.04rem + .28vw,1.95rem) !important;
  line-height:1.08 !important;
  letter-spacing:-.024em;
}
body.zirflo-body article.story-card[data-zr273-tier="lead"] p{
  font-size:clamp(.94rem,.88rem + .06vw,1.06rem) !important;
  line-height:1.58 !important;
}

/* MID — normal editorial treatment. */
body.zirflo-body article.story-card[data-zr273-tier="mid"] > .zr260-surface{
  padding:16px;
  border-color:rgba(167,216,255,.16);
}
body.zirflo-body article.story-card[data-zr273-tier="mid"] .story-image,
body.zirflo-body article.story-card[data-zr273-tier="mid"] .story-image-compact,
body.zirflo-body article.story-card[data-zr273-tier="mid"] .story-image-live{
  height:clamp(150px,6.4vw,235px) !important;
  margin:-16px -16px 13px !important;
}
body.zirflo-body article.story-card[data-zr273-tier="mid"] h2,
body.zirflo-body article.story-card[data-zr273-tier="mid"] h3{
  font-size:clamp(1.05rem,.96rem + .12vw,1.42rem) !important;
  line-height:1.13 !important;
}

/* COMPACT — smaller visual treatment, but full text remains readable/unclipped. */
body.zirflo-body article.story-card[data-zr273-tier="compact"] > .zr260-surface{
  padding:13px;
  border-color:rgba(167,216,255,.10);
  background:
    radial-gradient(circle at 84% 14%,rgba(75,169,255,.055),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.032),rgba(255,255,255,.014)),
    rgba(8,18,34,.66);
}
body.zirflo-body article.story-card[data-zr273-tier="compact"] .story-image,
body.zirflo-body article.story-card[data-zr273-tier="compact"] .story-image-compact,
body.zirflo-body article.story-card[data-zr273-tier="compact"] .story-image-live{
  height:clamp(105px,4.5vw,165px) !important;
  margin:-13px -13px 10px !important;
}
body.zirflo-body article.story-card[data-zr273-tier="compact"] h2,
body.zirflo-body article.story-card[data-zr273-tier="compact"] h3{
  font-size:clamp(.91rem,.86rem + .055vw,1.08rem) !important;
  line-height:1.17 !important;
}
body.zirflo-body article.story-card[data-zr273-tier="compact"] p{
  font-size:clamp(.78rem,.75rem + .035vw,.88rem) !important;
  line-height:1.48 !important;
}

/* Score hint: subtle, not a geometry change. */
body.zirflo-body article.story-card[data-zr273-tier="lead"] .story-score{
  color:#8beaff !important;
  text-shadow:0 0 14px rgba(69,206,255,.28);
}
body.zirflo-body article.story-card[data-zr273-tier="compact"] .story-score{opacity:.72}

@media(max-width:620px){
  body.zirflo-body article.story-card[data-zr273-tier] > .zr260-surface{padding:12px}
  body.zirflo-body article.story-card[data-zr273-tier] .story-image,
  body.zirflo-body article.story-card[data-zr273-tier] .story-image-compact,
  body.zirflo-body article.story-card[data-zr273-tier] .story-image-live{
    margin:-12px -12px 10px !important;
    height:clamp(150px,44vw,230px) !important;
  }
}

/* ========================================================================== */
/* v4.0.3 — editorial pacing without decorative filler.                       */
/* ========================================================================== */

body.zirflo-body #story-wall > .editorial-chapter{
  flex:1 1 100%;
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:baseline;
  gap:clamp(12px,1.25vw,24px);
  margin:clamp(22px,3.6vw,58px) 0 2px;
  padding:12px 2px 8px;
  border-top:1px solid rgba(151,205,239,.22);
  color:rgba(218,234,247,.78);
}
body.zirflo-body .editorial-chapter-index{
  color:#78d6ff;
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.14em;
  white-space:nowrap;
}
body.zirflo-body .editorial-chapter h2{
  margin:0;
  color:#e8f0f7;
  font-size:clamp(1rem,.92rem + .18vw,1.36rem);
  font-weight:520;
  line-height:1.15;
  letter-spacing:-.018em;
}
body.zirflo-body .editorial-chapter p{
  margin:0;
  color:rgba(153,177,198,.72);
  font-size:.68rem;
  white-space:nowrap;
}

/* Roughly half of text-only compact cards become flat editorial notes. */
body.zirflo-body article.story-card.editorial-plain[data-zr274-tier="compact"] > .zr260-surface{
  padding:12px 3px !important;
  border:0 !important;
  border-top:1px solid rgba(153,201,232,.17) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body.zirflo-body article.story-card.editorial-plain:hover > .zr260-surface{
  border-top-color:rgba(130,214,255,.40) !important;
  box-shadow:none !important;
}
body.zirflo-body article.story-card.editorial-plain::before{display:none !important}

body.zirflo-body article.story-card.has-event-cluster .event-cluster summary{
  color:rgba(188,224,248,.90);
  font-weight:650;
}
body.zirflo-body article.story-card.has-event-cluster .event-cluster-list{
  border-left-color:rgba(120,214,255,.38);
}

@media(max-width:620px){
  body.zirflo-body #story-wall > .editorial-chapter{
    grid-template-columns:auto minmax(0,1fr);
    margin-top:28px;
  }
  body.zirflo-body .editorial-chapter p{
    grid-column:2;
    white-space:normal;
  }
}

/* ========================================================================== */
/* v2.7.4 — stronger INNER editorial hierarchy + preloaded-image presentation. */
/* Outer v2.6.1 flex geometry is intentionally untouched.                      */
/* ========================================================================== */

/* Preload status never changes geometry; existing cards remain in place. */
body.zirflo-body #story-wall{position:relative}
body.zirflo-body #story-wall.zr274-preloading::after{
  content:"Preparing images…";
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1200;
  padding:8px 11px;
  border:1px solid rgba(135,218,255,.18);
  border-radius:999px;
  background:rgba(5,14,27,.82);
  color:rgba(213,238,255,.74);
  font-size:.68rem;
  letter-spacing:.06em;
  backdrop-filter:blur(12px);
  pointer-events:none;
}

/* LEAD — unmistakably editorial, but no outer width change. */
body.zirflo-body article.story-card[data-zr274-tier="lead"] > .zr260-surface{
  padding:24px;
  border-color:rgba(119,224,255,.48);
  background:
    radial-gradient(circle at 82% 8%,rgba(65,184,255,.22),transparent 32%),
    linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.024)),
    rgba(7,22,44,.82);
  box-shadow:0 34px 96px rgba(0,19,48,.38),inset 0 1px rgba(255,255,255,.075),0 0 34px rgba(73,190,255,.08);
}
body.zirflo-body article.story-card[data-zr274-tier="lead"] > .zr260-surface::before{
  content:"HIGH SIGNAL";
  position:absolute;
  top:11px;
  right:12px;
  z-index:6;
  padding:5px 8px;
  border:1px solid rgba(151,232,255,.30);
  border-radius:999px;
  background:rgba(3,20,43,.62);
  color:#9cecff;
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.14em;
  line-height:1;
  backdrop-filter:blur(8px);
  pointer-events:none;
}
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-live{
  height:clamp(255px,10vw,410px) !important;
  margin:-24px -24px 19px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="lead"] h2,
body.zirflo-body article.story-card[data-zr274-tier="lead"] h3{
  font-size:clamp(1.52rem,1.17rem + .38vw,2.35rem) !important;
  line-height:1.04 !important;
  letter-spacing:-.034em !important;
  margin-bottom:12px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="lead"] p{
  font-size:clamp(.98rem,.91rem + .075vw,1.12rem) !important;
  line-height:1.62 !important;
}
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-score{
  color:#9df0ff !important;
  font-weight:800 !important;
  text-shadow:0 0 16px rgba(70,207,255,.34);
}

/* MID — clearly richer than compact, restrained versus lead. */
body.zirflo-body article.story-card[data-zr274-tier="mid"] > .zr260-surface{
  padding:17px;
  border-color:rgba(157,218,255,.20);
  background:
    radial-gradient(circle at 84% 12%,rgba(72,174,255,.105),transparent 29%),
    linear-gradient(180deg,rgba(255,255,255,.047),rgba(255,255,255,.018)),
    rgba(8,20,38,.72);
}
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-live{
  height:clamp(155px,6.7vw,250px) !important;
  margin:-17px -17px 13px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="mid"] h2,
body.zirflo-body article.story-card[data-zr274-tier="mid"] h3{
  font-size:clamp(1.08rem,.98rem + .14vw,1.48rem) !important;
  line-height:1.12 !important;
  letter-spacing:-.018em !important;
}
body.zirflo-body article.story-card[data-zr274-tier="mid"] p{
  font-size:clamp(.84rem,.80rem + .04vw,.95rem) !important;
  line-height:1.53 !important;
}

/* COMPACT — visibly lighter and denser, never clipped. */
body.zirflo-body article.story-card[data-zr274-tier="compact"] > .zr260-surface{
  padding:11px;
  border-color:rgba(158,211,247,.085);
  background:
    radial-gradient(circle at 84% 14%,rgba(73,168,255,.038),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.010)),
    rgba(7,17,32,.61);
  box-shadow:0 13px 35px rgba(0,0,0,.20),inset 0 1px rgba(255,255,255,.018);
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-live{
  height:clamp(82px,3.6vw,132px) !important;
  margin:-11px -11px 8px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] h2,
body.zirflo-body article.story-card[data-zr274-tier="compact"] h3{
  font-size:clamp(.86rem,.82rem + .04vw,1.01rem) !important;
  line-height:1.17 !important;
  letter-spacing:-.008em !important;
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] p{
  font-size:clamp(.74rem,.72rem + .025vw,.84rem) !important;
  line-height:1.43 !important;
  color:rgba(203,216,229,.76) !important;
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-meta,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .source-line,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .open-source{
  font-size:.66rem !important;
}

/* Already-preloaded images should paint without a late opacity transition. */
body.zirflo-body .story-image-live img{
  opacity:1 !important;
  transition:none !important;
}

@media(max-width:620px){
  body.zirflo-body article.story-card[data-zr274-tier] > .zr260-surface{padding:12px}
  body.zirflo-body article.story-card[data-zr274-tier] .story-image,
  body.zirflo-body article.story-card[data-zr274-tier] .story-image-compact,
  body.zirflo-body article.story-card[data-zr274-tier] .story-image-live{
    margin:-12px -12px 10px !important;
    height:clamp(150px,44vw,230px) !important;
  }
  body.zirflo-body article.story-card[data-zr274-tier="lead"] > .zr260-surface::before{top:8px;right:8px}
}
/* ===== consolidated from zirflo-v279.css ===== */
/* ZIRFLO v2.7.5 — actual-node image readiness.
   Geometry is untouched. The real image node is decoded before its card enters the wall. */
body.zirflo-body .story-image-live img[data-zr275-ready="1"]{
  opacity:1 !important;
  visibility:visible !important;
  transition:none !important;
}

/* ZIRFLO v2.7.6 — hide freshly inserted cards until the layout/animation layer
   has wrapped and classified them. This prevents the brief unstable state where
   text can appear on top of the image and then drop below it a frame later. */
body.zirflo-body article.story-card.zr276-await-layout{
  opacity:0 !important;
  pointer-events:none !important;
}
body.zirflo-body article.story-card.zr276-layout-ready{
  opacity:1 !important;
  transition:opacity .18s ease !important;
}

/* ZIRFLO v2.7.7 — animate a full article clone, not a detached surface.
   This preserves article-level tier/classes during flight so image + text never
   switch layout when the real card takes over. */
body.zirflo-body article.story-card.zr277-flyer-card{
  position:absolute !important;
  z-index:999 !important;
  pointer-events:none !important;
  margin:0 !important;
  box-sizing:border-box !important;
  flex:none !important;
  max-width:none !important;
  min-width:0 !important;
  transform-style:preserve-3d;
  backface-visibility:hidden;
  contain:layout paint style;
  overflow:hidden;
}
body.zirflo-body article.story-card.zr277-flyer-card > .zr260-surface{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  filter:none !important;
  animation:none !important;
  transition:none !important;
  width:100% !important;
  height:100% !important;
}
body.zirflo-body article.story-card.zr277-flyer-card .story-image-live img{
  opacity:1 !important;
  visibility:visible !important;
}
@media(prefers-reduced-motion:reduce){
  body.zirflo-body article.story-card.zr277-flyer-card{display:none!important}
}

/* v2.7.8 — load-more must extend the feed downward, never be scroll-anchored
   upward around the pagination control. Geometry of the stable card wall is unchanged. */
body.zirflo-body .feed-pagination{
  overflow-anchor:none;
}
body.zirflo-body #load-more-stories:disabled{
  opacity:.55;
  cursor:wait;
}

/* ZIRFLO v2.7.9 — focus-aware image cropping. */
body.zirflo-body .story-image-live img[data-zr279-fit="cover"]{
  object-fit:cover !important;
  object-position:var(--zr279-focus-x,50%) var(--zr279-focus-y,38%) !important;
}
body.zirflo-body .story-image-live img[data-zr279-fit="contain"]{
  object-fit:contain !important;
  object-position:center center !important;
  background:#050b13;
}
body.zirflo-body .story-image-live:has(img[data-zr279-fit="contain"]){
  background:linear-gradient(145deg,#06111e,#09182a);
}


/* ===== consolidated from zirflo-v280.css ===== */
/* ZIRFLO v2.8.0 — adaptive image fitting.
   Keeps cover when the crop is modest; switches to a blurred soft-contain
   when cover would discard too much of the source image. */
body.zirflo-body .story-image-live{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
body.zirflo-body .story-image-live[data-zr280-mode="soft-contain"]{
  background:#06101c;
}
body.zirflo-body .story-image-live[data-zr280-mode="soft-contain"]::before{
  content:"";
  position:absolute;
  inset:-12%;
  z-index:0;
  background-image:var(--zr280-bg-image);
  background-size:cover;
  background-position:center;
  filter:blur(18px) saturate(.92) brightness(.48);
  transform:scale(1.08);
  opacity:.88;
  pointer-events:none;
}
body.zirflo-body .story-image-live[data-zr280-mode="soft-contain"] img{
  position:relative;
  z-index:1;
  object-fit:contain !important;
  object-position:center center !important;
  background:transparent !important;
}
body.zirflo-body .story-image-live[data-zr280-mode="cover"] img{
  object-fit:cover !important;
  object-position:var(--zr279-focus-x,50%) var(--zr279-focus-y,38%) !important;
}
body.zirflo-body .story-image-live .story-image-shade{z-index:2}
body.zirflo-body .story-image-live .image-tag{z-index:3}


/* ===== consolidated from zirflo-v281.css ===== */
/* ZIRFLO v2.8.1 — larger editorial image windows.
   Geometry/layout engine is untouched; only the visual image area inside cards grows. */
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-live{
  height:clamp(330px,15vw,560px) !important;
}
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-live{
  height:clamp(225px,10vw,360px) !important;
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-live{
  height:clamp(145px,6.4vw,230px) !important;
}

/* A little more visual breathing room beneath the larger image. */
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="lead"] .story-image-live{
  margin-bottom:22px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="mid"] .story-image-live{
  margin-bottom:16px !important;
}
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-compact,
body.zirflo-body article.story-card[data-zr274-tier="compact"] .story-image-live{
  margin-bottom:10px !important;
}

@media(max-width:620px){
  body.zirflo-body article.story-card[data-zr274-tier] .story-image,
  body.zirflo-body article.story-card[data-zr274-tier] .story-image-compact,
  body.zirflo-body article.story-card[data-zr274-tier] .story-image-live{
    height:clamp(190px,52vw,300px) !important;
    margin-bottom:12px !important;
  }
}


/* ===== consolidated from zirflo-v283.css ===== */
/* ZIRFLO v2.8.3 — attached image staging.
   Real card images are decoded in an off-screen but DOM-attached staging area
   before the exact same nodes enter #story-wall. */
.zr283-image-staging{
  position:fixed !important;
  left:-200vw !important;
  top:0 !important;
  width:100vw !important;
  max-width:none !important;
  height:auto !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:-9999 !important;
  overflow:visible !important;
  contain:none !important;
}



/* ===== ZIRFLO v300 intelligence/consolidation additions ===== */
.event-cluster{
  display:flex;align-items:center;gap:.45rem;margin:.65rem 0 .2rem;
  font-size:.72rem;line-height:1.2;letter-spacing:.02em;
  color:rgba(210,232,255,.76);
}
.event-cluster-dot{
  width:.48rem;height:.48rem;border-radius:50%;
  background:currentColor;box-shadow:0 0 14px rgba(124,195,255,.42);
  flex:0 0 auto;
}
.story-actions .feedback-btn.selected[data-action="follow"],
.reader-action.selected[data-reader-action="follow"]{
  border-color:rgba(127,203,255,.62);
  background:rgba(73,153,218,.16);
  box-shadow:inset 0 0 0 1px rgba(157,216,255,.08);
}
.story-image-live img[data-image-fit="contain"]{
  object-fit:contain!important;
  background:rgba(4,9,15,.96);
}
.story-image-live img[width][height]{
  height:100%;
  max-width:100%;
}

.event-cluster{display:block}
.event-cluster summary{
  display:flex;align-items:center;gap:.45rem;cursor:pointer;list-style:none;
  width:max-content;max-width:100%;
}
.event-cluster summary::-webkit-details-marker{display:none}
.event-cluster-list{
  display:grid;gap:.28rem;margin:.45rem 0 .15rem;padding:.45rem .55rem;
  border-left:1px solid rgba(132,194,255,.22);
}
.event-cluster-story{
  display:grid;grid-template-columns:minmax(5.5rem,auto) 1fr;gap:.55rem;
  text-decoration:none;color:rgba(220,236,255,.78);font-size:.7rem;
}
.event-cluster-story b{color:rgba(154,209,255,.92);font-weight:600}
.event-cluster-story:hover span{text-decoration:underline}
