@font-face {
  font-family:Instrument Sans;
  src:url('/static/fonts/instrument-sans-latin.woff2') format('woff2');
  font-style:normal;
  font-weight:400 700;
  font-display:optional;
}
@font-face {
  font-family:IBM Plex Mono;
  src:url('/static/fonts/ibm-plex-mono-latin.woff2') format('woff2');
  font-style:normal;
  font-weight:400;
  font-display:optional;
}
:root {
  color-scheme:dark;
  --color-bg:#000000;
  --color-surface:#080808;
  --color-surface-raised:#121212;
  --color-text:#f4f5ef;
  --color-muted:#afb7a9;
  --color-accent:#FFCE99;
  /* Story spectrum. Teal through navy, purple, magenta, and orange. The two washes are derived from these hues. */
  --spectrum-hue-1:#30B6A8;
  --spectrum-hue-2:#1A7790;
  --spectrum-hue-3:#113974;
  --spectrum-hue-4:#6549B7;
  --spectrum-hue-5:#964CA6;
  --spectrum-hue-6:#C54594;
  --spectrum-hue-7:#E1686B;
  --spectrum-hue-8:#FF8400;
  --spectrum-1:color-mix(in srgb,var(--spectrum-hue-1) 50%,white);
  --spectrum-2:color-mix(in srgb,var(--spectrum-hue-2) 50%,white);
  --spectrum-3:color-mix(in srgb,var(--spectrum-hue-3) 50%,white);
  --spectrum-4:color-mix(in srgb,var(--spectrum-hue-4) 50%,white);
  --spectrum-5:color-mix(in srgb,var(--spectrum-hue-5) 50%,white);
  --spectrum-6:color-mix(in srgb,var(--spectrum-hue-6) 50%,white);
  --spectrum-7:color-mix(in srgb,var(--spectrum-hue-7) 50%,white);
  --spectrum-8:color-mix(in srgb,var(--spectrum-hue-8) 50%,white);
  --spectrum-gradient:linear-gradient(90deg,var(--spectrum-1),var(--spectrum-2),var(--spectrum-3),var(--spectrum-4),var(--spectrum-5),var(--spectrum-6),var(--spectrum-7),var(--spectrum-8));
  --spectrum-muted-1:color-mix(in srgb,var(--spectrum-hue-1) 30%,white);
  --spectrum-muted-2:color-mix(in srgb,var(--spectrum-hue-2) 30%,white);
  --spectrum-muted-3:color-mix(in srgb,var(--spectrum-hue-3) 30%,white);
  --spectrum-muted-4:color-mix(in srgb,var(--spectrum-hue-4) 30%,white);
  --spectrum-muted-5:color-mix(in srgb,var(--spectrum-hue-5) 30%,white);
  --spectrum-muted-6:color-mix(in srgb,var(--spectrum-hue-6) 30%,white);
  --spectrum-muted-7:color-mix(in srgb,var(--spectrum-hue-7) 30%,white);
  --spectrum-muted-8:color-mix(in srgb,var(--spectrum-hue-8) 30%,white);
  --spectrum-gradient-muted:linear-gradient(90deg,var(--spectrum-muted-1),var(--spectrum-muted-2),var(--spectrum-muted-3),var(--spectrum-muted-4),var(--spectrum-muted-5),var(--spectrum-muted-6),var(--spectrum-muted-7),var(--spectrum-muted-8));
  --color-on-accent:#000000;
  --color-positive:#9bdeac;
  --color-negative:#ff9b8a;
  --color-info:var(--color-accent);
  --color-border:#202020;
  --color-divider:var(--color-border);
  --color-control-border:#afb7a9;
  /* Subtle raised surface for controls and hover states. */
  --color-scene:#0a0a0a;
  --color-globe-background:var(--color-bg);
  --color-feature:var(--color-bg);
  --color-scene-text:#f4f5f6;
  --color-scene-muted:#c0c5c9;
  --color-scene-border:#73787b;
  --font-body:'Instrument Sans',Arial,sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-6:24px;
  --space-8:32px;
  --space-12:48px;
  --space-16:64px;
  --space-24:96px;
  --motion-fast:120ms;
  --motion-ui:200ms;
  --motion-enter:450ms;
  --motion-story:750ms;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-standard:cubic-bezier(.4,0,.2,1);
  --ease-story:cubic-bezier(.65,0,.35,1);
  --ink:var(--color-text);
  --muted:var(--color-muted);
  --line:var(--color-divider);
  --paper:var(--color-surface);
  --canvas:var(--color-bg);
  --violet:var(--color-accent);
  --violet-soft:var(--color-surface-raised);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font:16px/1.5 var(--font-body);
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea {
  font:inherit;
}
button,a,input,select {
  touch-action:manipulation;
}
button {
  cursor:pointer;
}
button:disabled {
  cursor:default;
}
a {
  color:inherit;
  text-decoration:none;
}
a:hover {
  text-decoration-thickness:1px;
}
p,h1,h2,h3 {
  margin:0;
}
img {
  display:block;
  max-width:100%;
}
button,select,input {
  border-radius:0;
}
[hidden] {
  display:none!important;
}
::selection {
  background:var(--color-accent);
  color:var(--color-on-accent);
}
:focus-visible {
  outline:2px solid var(--color-accent);
  outline-offset:4px;
}
.shell {
  width:min(1440px,calc(100% - 96px));
  margin-inline:auto;
}
.mono {
  font:400 12px/1.5 var(--font-mono);
  font-variant-numeric:tabular-nums;
}
.muted {
  color:var(--color-muted);
}
.accent {
  color:var(--color-accent);
}
.icon {
  flex-shrink:0;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
  vertical-align:middle;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:100;
  transform:translateY(-150%);
  background:var(--color-accent);
  color:var(--color-on-accent);
  padding:12px 20px;
}
.skip-link:focus {
  transform:none;
}
.button,.icon-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:44px;
  border:1px solid var(--color-control-border);
  padding:11px 18px;
  background:transparent;
  color:var(--color-text);
  font-size:14px;
  font-weight:500;
  transition:background var(--motion-ui),color var(--motion-ui);
}
.icon-button:hover {
  background:var(--color-text);
  color:var(--color-bg);
}
.button {
  padding:11px 22px;
  border:0;
  border-radius:999px;
  background:#242424;
  font-weight:600;
}
.button:not(:disabled):hover { background:#333; color:var(--color-text); }
.button:disabled { opacity:.6; cursor:not-allowed; }
.button-small {
  font-size:13px;
}
.icon-button {
  width:44px;
  padding:0;
  background:var(--color-scene);
}
/* Masthead and navigation. */
.site-header {
  position:relative;
  z-index:5;
}
.masthead {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:102px;
}
.site-logo {
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
  min-height:44px;
}
.site-logo img {
  display:block;
  width:240px;
  height:auto;
}
.wordmark {
  display:inline-flex;
  align-items:center;
  font-size:40px;
  font-weight:650;
  line-height:1;
  letter-spacing:-2.2px;
}
.wordmark span {
  margin-left:5px;
  color:var(--color-accent);
  font-size:35px;
  font-weight:400;
}
.edition-date {
  color:var(--color-muted);
}
.edition-nav {
  display:flex;
  align-items:center;
  gap:32px;
  min-height:56px;
  font-size:14px;
  white-space:nowrap;
  overflow-x:auto;
}
.edition-nav a {
  min-height:52px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.edition-nav a:hover {
  color:var(--color-accent);
}
@keyframes accent-gradient-shift {
  0%,100% { background-position:0% 50%; }
  50% { background-position:100% 50%; }
}
.news-home {
  padding-top:0;
}
/* Clip viewport-wide scenery without adding horizontal page scrolling. */
body:has(.news-home) {
  overflow-x:clip;
}
/* Shared square frames. */
.panel {
  min-width:0;
  border:1px solid var(--color-divider);
  background:var(--color-bg);
}
#personalised.panel {
  border:0;
}
.panel-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:22px 24px;
  border-bottom:1px solid var(--color-divider);
}
.panel-heading>div {
  display:flex;
  align-items:center;
  gap:16px;
}
.panel-heading h2 {
  font-size:22px;
  font-weight:500;
  letter-spacing:-.035em;
}
.panel-note {
  color:var(--color-muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.panel-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px;
  border-top:1px solid var(--color-divider);
  color:var(--color-muted);
}
/* Foreground stories move vertically on desktop and horizontally on mobile. */
.hero {
  --site-header-height:158px;
  --globe-size:960px;
  --card-width:560px;
  min-width:0;
}
.hero-stage {
  position:relative;
  height:max(720px,calc(var(--card-height,560px) + 160px));
  isolation:isolate;
}
.hero-editorial { display:contents; }
.stage-caption {
  position:absolute;
  left:40px;
  bottom:106px;
  z-index:2;
  color:var(--color-scene-text);
  pointer-events:none;
}
.stage-caption>.mono { visibility:hidden; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.stage-caption p {
  font-size:clamp(32px,3.6vw,52px);
  font-weight:500;
  line-height:1.05;
  letter-spacing:-.035em;
  margin-top:16px;
}
.backer-ticker {
  width:min(420px,30vw);
  max-width:100%;
  margin-top:24px;
  overflow:hidden;
  background:transparent;
  mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent);
}
.backer-ticker-track { display:flex; width:max-content; animation:backer-ticker-scroll 24s linear infinite; }
.backer-ticker-copy { display:flex; flex-shrink:0; align-items:center; gap:16px; padding-right:16px; white-space:nowrap; font-size:14px; line-height:1.5; }
.backer-ticker-copy strong { font-weight:700; }
.backer-ticker-separator { color:var(--color-muted); }
@keyframes backer-ticker-scroll { to { transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce) {
  .backer-ticker { overflow:visible; mask-image:none; }
  .backer-ticker-track { width:100%; animation:none; }
  .backer-ticker-copy { flex-wrap:wrap; flex-shrink:1; gap:8px 12px; padding-right:0; white-space:normal; }
  .backer-ticker-copy+.backer-ticker-copy { display:none; }
}
.story-viewport {
  position:absolute;
  inset:0;
  z-index:3;
  overflow:hidden;
  pointer-events:none;
}
.story-track {
  position:absolute;
  inset:0 4% 0 auto;
  width:var(--card-width);
  z-index:3;
  perspective:1400px;
  pointer-events:none;
}
/* Shared news + matched-market card; the carousel only adds positioning. */
.match-card {
  min-width:0;
  background:var(--color-feature);
  border:1px solid var(--color-divider);
  color:var(--color-scene-text);
}
.feature-card {
  position:absolute;
  top:50%;
  width:100%;
  transform:translateY(calc(-50% + var(--initial-slot)*660px));
  pointer-events:none;
  transition:transform var(--motion-story) var(--ease-story),opacity var(--motion-story) var(--ease-story);
  backface-visibility:hidden;
}
.feature-card.is-current { pointer-events:auto; }
.feature-card:not(.is-current) { opacity:.38; }
.match-card:focus-visible { outline-offset:5px; }
.story-market.match-card,
.story-sources li,
.story-post { position:relative; }
@property --market-border-angle {
  syntax:"<angle>";
  initial-value:0deg;
  inherits:false;
}
@property --market-beam-x {
  syntax:"<percentage>";
  initial-value:84.21%;
  inherits:false;
}
.story-market.match-card::before,
.story-sources li::before,
.story-post::before {
  content:"";
  position:absolute;
  inset:-1px;
  padding:2px;
  background:
    conic-gradient(from var(--market-border-angle),transparent 0deg,rgb(255 255 255 / 0) 36deg,rgb(255 255 255 / .45) 52deg,rgb(255 255 255 / 0) 68deg,transparent 360deg),
    conic-gradient(from var(--market-border-angle),transparent 0deg,rgb(from var(--spectrum-1) r g b / 0) 2deg,var(--spectrum-1) 12deg,var(--spectrum-2) 24deg,var(--spectrum-3) 36deg,var(--spectrum-4) 46deg,var(--spectrum-5) 56deg,var(--spectrum-6) 66deg,var(--spectrum-7) 78deg,var(--spectrum-8) 90deg,rgb(from var(--spectrum-8) r g b / 0) 104deg,transparent 360deg);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite:exclude;
  opacity:0;
  pointer-events:none;
  z-index:4;
}
.story-market.match-card:target,
.story-sources li:target,
.story-post:target { outline:0; }
.story-market.match-card:target::before,
.story-sources li:target::before,
.story-post:target::before {
  opacity:1;
  animation:market-border-spin 8.5s linear infinite;
}
.story-sources li::after,
.story-market h3:has(a)::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:
    linear-gradient(90deg,transparent 0 16%,rgb(255 255 255 / 0) 45%,rgb(255 255 255 / .45) 50%,rgb(255 255 255 / 0) 55%,transparent 66.667% 100%),
    linear-gradient(90deg,transparent 0 16%,var(--spectrum-1) 20%,var(--spectrum-1) 33.5%,var(--spectrum-2) 38%,var(--spectrum-3) 42.5%,var(--spectrum-4) 47%,var(--spectrum-5) 51.5%,var(--spectrum-6) 56%,var(--spectrum-7) 60.5%,var(--spectrum-8) 65%,transparent 66.667% 100%);
  background-repeat:no-repeat;
  background-size:630% 100%;
  background-position:var(--market-beam-x) 0;
  opacity:0;
  transition:opacity .2s ease;
  --market-beam-x:50%;
  pointer-events:none;
  z-index:5;
}
.story-market h3:has(a)::after { bottom:-6px; }
.story-sources li:has(a:hover):not(:target)::after,
.story-sources li:has(a:focus-visible):not(:target)::after,
.story-market h3:has(a:hover)::after,
.story-market h3:has(a:focus-visible)::after {
  opacity:1;
  transition:none;
  animation:source-border-travel .65s ease-out both;
}
a.story-market.match-card:hover { border-color:var(--color-divider); }
.story-markets-rail a.story-market:hover { border-color:var(--color-accent); }
.story-markets-rail a.story-market:hover h3 { color:var(--color-accent); }
@keyframes market-border-spin { to { --market-border-angle:360deg; } }
@keyframes source-border-travel {
  0% { --market-beam-x:79.25%; }
  100% { --market-beam-x:50%; }
}
@media (prefers-reduced-motion:reduce) {
  .story-market.match-card:target::before,
  .story-sources li:target::before,
  .story-post:target::before,
  .story-market h3:has(a:hover)::after,
  .story-market h3:has(a:focus-visible)::after,
  .story-sources li:has(a:hover):not(:target)::after,
  .story-sources li:has(a:focus-visible):not(:target)::after,
  .story-market h3:has(a)::after,
  .story-sources li::after,
  .market-fold summary .chevron { animation:none; transition:none; }
  .story-market h3:has(a)::after,
  .story-sources li::after {
    --market-beam-x:50%;
    transition:none;
  }
}
.match-story {
  container:match-card / inline-size;
  --match-padding-x:24px;
  --match-padding-y:22px;
  display:grid;
  grid-template-columns:minmax(0,1fr);
}
.match-story:has(>.match-image-frame:not([hidden])) { grid-template-columns:minmax(0,1fr) clamp(112px,28%,168px); }
.match-text { min-width:0; padding:var(--match-padding-y) var(--match-padding-x); }
.match-source-icon {
  display:grid;
  place-items:center;
  flex-shrink:0;
  width:26px;
  height:26px;
  border:1px solid var(--color-scene-border);
  color:var(--color-scene-text);
}
.match-source-icon>* { grid-area:1 / 1; }
.match-source-icon img { width:20px; height:20px; object-fit:contain; opacity:0; }
.match-source-icon.is-loaded { background:#fff; border-color:transparent; }
.match-source-icon.is-loaded img { opacity:1; }
.match-source-icon.is-loaded svg { visibility:hidden; }
.match-time { display:block; margin-top:var(--space-1); font-size:10px; color:var(--color-scene-muted); }
.match-lead { min-width:0; margin-top:18px; }
.match-copy { min-width:0; }
.match-copy h2,.match-copy h3 {
  font-size:26px;
  font-weight:500;
  line-height:1.12;
  letter-spacing:-.035em;
  overflow-wrap:anywhere;
}
.coverage-list .match-copy h3 {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
  min-height:calc(1.12em * 3);
}
.match-copy h2 a:hover,.match-copy h3 a:hover { color:var(--color-accent); }
.match-excerpt { margin-top:12px; font-size:13px; line-height:1.55; color:var(--color-scene-muted); }
.feature-card .match-excerpt { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.match-image-frame {
  position:relative;
  grid-column:2;
  grid-row:1;
  min-width:0;
  align-self:stretch;
  overflow:hidden;
}
.match-image-frame.is-unavailable { background:var(--color-scene); }
.match-actions { display:flex; align-items:center; gap:2px; margin-left:auto; }
.match-action { position:relative; display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; background:transparent; color:var(--color-scene-muted); cursor:pointer; }
.match-action .icon { width:22px; height:22px; stroke-width:2.2; }
.match-action:hover { color:var(--color-text); }
.match-action-tip {
  position:absolute;
  z-index:6;
  left:50%;
  bottom:calc(100% + 2px);
  transform:translateX(-50%);
  padding:3px 6px;
  border:1px solid var(--color-divider);
  border-radius:4px;
  background:var(--color-feature);
  color:var(--color-scene-text);
  font-size:10px;
  line-height:1.3;
  letter-spacing:.03em;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
}
.match-action:hover .match-action-tip,
.match-action:focus-visible .match-action-tip { opacity:1; }
.match-share { position:relative; }
.match-share:has([aria-expanded="true"]) .match-action-tip { opacity:0; }
.match-share-menu {
  position:absolute;
  z-index:8;
  right:0;
  bottom:calc(100% + 8px);
  display:flex;
  align-items:flex-start;
  gap:2px;
  padding:10px 8px 8px;
  border:1px solid #2a2a2a;
  border-radius:16px;
  background:#141414;
}
.story-dateline .match-share-menu { right:auto; left:0; }
.match-share-menu[hidden] { display:none; }
.match-share-item {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  width:68px;
  padding:0;
  border:0;
  background:transparent;
  color:#f4f5ef;
  font:12px/1.2 var(--font-body);
  text-align:center;
  cursor:pointer;
}
.match-share-icon {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:#2a2a2a;
  color:#f4f5ef;
}
.match-share-icon .icon { width:18px; height:18px; stroke-width:1.8; }
.match-share-label { color:#f4f5ef; white-space:nowrap; }
.match-share-logo { width:18px; height:18px; display:block; }
.match-share-item:hover .match-share-icon,
.match-share-item:focus-visible .match-share-icon { background:#3a3a3a; }
.match-share-item:hover,
.match-share-item:focus-visible { text-decoration:none; }
.match-bookmark.is-saved { color:var(--color-text); }
.match-bookmark.is-saved .icon { fill:currentColor; }
.match-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  /* Fill the frame without distorting the source. */
  object-fit:cover;
  object-position:center;
  background:var(--color-scene);
}
@container match-card (max-width:400px) {
  .match-story:has(>.match-image-frame:not([hidden]))>.match-text { grid-column:1 / -1; grid-row:2; }
  .match-image-frame { grid-column:1 / -1; grid-row:1; height:clamp(88px,30cqw,128px); }
  /* Coverage cards stay one height: the photo remains beside the headline. */
  .coverage-list .match-story:has(>.match-image-frame:not([hidden]))>.match-text { grid-column:1; grid-row:1; }
  .coverage-list .match-image-frame { grid-column:2; grid-row:1; height:auto; }
}
.match-market-stack { min-width:0; border-top:1px solid var(--color-divider); }
.match-stack-heading { position:relative; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:4px 12px; padding:6px 24px; min-height:52px; transition:background-color var(--motion-ui); }
.match-stack-label {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  font-weight:500;
  color:var(--color-scene-muted);
}
.match-stack-label>.icon { width:20px; height:20px; stroke-width:2.2; }
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .match-stack-label,
  .match-stack-label>span {
    background-image:var(--spectrum-gradient-muted);
    background-size:300% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    animation:accent-gradient-shift 6s ease-in-out infinite;
  }
  .match-stack-label>.icon {
    background-image:var(--spectrum-gradient-muted);
    background-size:300% 100%;
    animation:accent-gradient-shift 6s ease-in-out infinite;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  .match-stack-label>.icon:first-of-type {
    -webkit-mask-image:url("/static/icons/globe.svg");
    mask-image:url("/static/icons/globe.svg");
  }
}
.match-market-stage { position:relative; overflow:hidden; }
.match-market-stage.is-sliding>.match-market { position:absolute; top:0; left:0; width:100%; pointer-events:none; }
.match-market-stage.is-moving>.match-market { transition:transform 320ms var(--ease-out); }
.match-market-step {
  position:absolute;
  z-index:2;
  top:50%;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--color-scene-muted);
  cursor:pointer;
}
.match-market-step[hidden] { display:none; }
.match-market-step-prev { left:2px; transform:translateY(-50%); }
.match-market-step-next { right:2px; transform:translateY(-50%); }
.match-market-step-prev .icon { transform:scaleX(-1); }
.match-market-step:hover { color:var(--color-text); }
.match-market-step .icon { width:18px; height:18px; stroke-width:2.2; }
.match-market-stage:has(.match-market-step)>.match-market { padding-left:36px; padding-right:36px; }
@media(prefers-reduced-motion:reduce) {
  .match-market-stage.is-moving>.match-market { transition:none; }
}
.match-market { display:block; box-sizing:border-box; min-width:0; min-height:124px; padding:14px 24px; border-top:1px solid var(--color-divider); }
a.match-market:hover { background:var(--color-scene); }
a.match-market:hover .match-question { color:var(--color-accent); }
a.match-market:focus-visible { outline-offset:-4px; }
.match-market-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.match-question {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  font-size:14px;
  line-height:1.35;
  font-weight:500;
  overflow-wrap:anywhere;
}
.match-outcomes { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.match-outcome { display:inline-flex; align-items:center; gap:12px; border:1px solid var(--color-scene-border); padding:5px 9px; font-size:11px; }
.match-outcome>span { overflow-wrap:anywhere; }
.match-outcome .mono { font-size:12px; white-space:nowrap; }
.match-outcome-yes { color:var(--color-positive); border-color:rgb(155 222 172 / 50%); }
.match-outcome-no { color:var(--color-negative); border-color:rgb(255 155 138 / 50%); }
.match-market-meta { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:9px; color:var(--color-scene-muted); font-size:9px; }
.match-market-meta:empty { display:none; }
.match-markets-toggle { min-height:40px; padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.match-unavailable { font-size:12px; color:var(--color-scene-muted); }
.match-no-markets { padding:4px 24px 20px; }
.match-feed { gap:24px; align-items:start; }
.hero>.empty-state h2 { font-size:32px; font-weight:500; letter-spacing:-.035em; }
/* Without JavaScript the first card still sizes its own stage. */
html:not(.js) .hero .hero-stage { height:auto; min-height:720px; }
html:not(.js) .hero .story-viewport { position:relative; }
html:not(.js) .hero .story-track { position:relative; inset:auto; margin-left:auto; margin-right:4%; padding-block:80px; }
html:not(.js) .hero .feature-card { display:none; }
html:not(.js) .hero .feature-card.is-current { display:block; position:relative; top:auto; transform:none; }
.globe-backdrop {
  position:absolute;
  inset:calc(0px - var(--site-header-height)) calc(50% - 50vw) 0;
  overflow:hidden;
  background:var(--color-globe-background);
  /* Blend the globe into the page at the top, left and bottom. */
  mask-image:
    linear-gradient(to bottom,transparent,#000 calc(var(--site-header-height) + 220px),#000 55%,transparent 88%),
    linear-gradient(to right,transparent,#000 clamp(96px,18vw,280px));
  mask-composite:intersect;
  pointer-events:none;
}
.globe-shell {
  position:absolute;
  width:var(--globe-size);
  height:var(--globe-size);
  top:40%;
  left:30%;
  transform:translate(-50%,-50%);
  z-index:0;
  border-radius:50%;
  pointer-events:none;
  mask-image:linear-gradient(110deg,transparent,#000 15%,#000 76%,transparent);
}
.globe-fallback,.globe-canvas { position:absolute; inset:0; width:100%; height:100%; }
.globe-canvas { opacity:0; border-radius:50%; pointer-events:none; }
.globe-shell.is-ready .globe-canvas { opacity:1; }
.globe-shell.is-ready .globe-fallback { visibility:hidden; }
.no-script-note { padding:16px 24px; color:var(--color-muted); font-size:14px; }
.no-script-note a { text-decoration:underline; }
/* Reading column and compact context rail. */
.news-grid {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  gap:24px;
  margin-top:0;
  align-items:start;
}
.news-grid>.panel:only-child {
  grid-column:1 / -1;
}
.context-rail {
  display:grid;
  gap:24px;
  min-width:0;
}
.personal-intro {
  padding:32px 32px 12px;
}
.personal-intro-heading {
  display:grid;
  width:fit-content;
  max-width:100%;
  grid-template-columns:clamp(72px,8vw,112px) minmax(0,1fr);
  align-items:center;
  gap:8px;
  margin-left:0;
  margin-bottom:16px;
  text-align:left;
  transition:transform .75s cubic-bezier(.22,1,.36,1), opacity .55s ease;
}
.personal-intro-heading.is-reveal-pending { transform:translateX(32px); opacity:0; }
.personal-intro-logo {
  width:100%;
  height:auto;
  align-self:start;
  aspect-ratio:3 / 2;
  background-image:var(--spectrum-gradient-muted);
  background-size:300% 100%;
  animation:accent-gradient-shift 6s ease-in-out infinite;
  -webkit-mask:url("/static/polymarket.svg") center / cover no-repeat;
  mask:url("/static/polymarket.svg") center / cover no-repeat;
}
.personal-intro-title {
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.08;
  font-weight:500;
  letter-spacing:-.035em;
  margin:0;
}
.personal-intro em {
  font-style:normal;
  color:var(--color-text);
}
@supports (background-clip:text) or (-webkit-background-clip:text) {
  .personal-intro-title em {
    background:var(--spectrum-gradient-muted);
    background-size:300% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    animation:accent-gradient-shift 6s ease-in-out infinite;
  }
}
@media(forced-colors:active) {
  .personal-intro-title em,.match-stack-label,.match-stack-label>span { background:none; color:CanvasText; }
  .personal-intro-logo { background:CanvasText; animation:none; }
  .match-stack-label>.icon { background:none; -webkit-mask-image:none; mask-image:none; color:CanvasText; }
}
.personal-intro>span {
  font-size:14px;
  color:var(--color-muted);
}
.personal-search { max-width:700px; margin-top:32px; }
.personal-search:has(.personal-account:not([hidden])) { max-width:none; }
.personal-search label { display:block; margin-bottom:12px; font-size:10px; color:var(--color-muted); text-transform:uppercase; letter-spacing:.08em; }
/* Neutral account controls match the application navigation. */
.personal-search,.personal-topics { --color-text:#f4f4f4; --color-muted:#999; --color-accent:#f4f4f4; }
.profile-search-field {
  display:flex;
  align-items:center;
  border:1px solid #333;
  border-radius:16px;
  background:var(--color-bg);
  transition:border-color var(--motion-ui),box-shadow var(--motion-ui);
}
.profile-search-field:focus-within { border-color:var(--color-text); box-shadow:0 0 0 1px var(--color-text); }
.profile-search-symbol { display:flex; padding-left:20px; color:var(--color-muted); }
.profile-search-field input { min-width:0; width:100%; border:0; outline:0; padding:22px 16px; background:transparent; color:var(--color-text); font:inherit; font-size:18px; }
.profile-search-field input::placeholder { color:var(--color-muted); opacity:1; }
.profile-search-submit {
  flex-shrink:0;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:8px;
  padding:10px 18px;
  border:0;
  border-left:1px solid var(--color-divider);
  background:transparent;
  color:var(--color-text);
  font-size:14px;
  font-weight:500;
  letter-spacing:-.02em;
  cursor:pointer;
  transition:color var(--motion-ui), background var(--motion-ui), border-color var(--motion-ui);
}
.profile-search-submit:hover,.profile-search-submit:focus-visible { color:#fff; background:var(--color-surface-raised); }
.profile-search-submit:focus-visible { outline-color:var(--color-text); outline-offset:0; }
.profile-search-submit .icon { transition:transform var(--motion-ui) var(--ease-out); }
.profile-search-submit:hover .icon { transform:translateX(3px); }
@media(prefers-reduced-motion:reduce) {
  .profile-search-field,.personal-intro-title em,.personal-intro-logo { animation:none; }
  .profile-search-field,.profile-search-submit,.profile-search-submit .icon { transition:none; }
  .profile-search-submit:hover .icon { transform:none; }
}
.profile-search-help { font-size:12px; color:var(--color-muted); margin-top:12px; line-height:1.6; }
.profile-search-results { margin:18px 0 0; padding:0; list-style:none; border:1px solid var(--color-divider); border-radius:16px; background:var(--color-bg); max-height:300px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.profile-search-results li+li { border-top:1px solid var(--color-divider); }
.profile-search-results button { display:flex; align-items:center; gap:14px; width:100%; min-height:76px; text-align:left; padding:14px 18px; background:transparent; color:var(--color-text); border:0; cursor:pointer; }
.profile-search-results button:hover, .profile-search-results button:focus-visible { background:var(--color-surface-raised); }
.profile-search-results button:focus-visible { outline:2px solid var(--color-text); outline-offset:-2px; }
.profile-search-results button>span:nth-child(2) { flex:1; min-width:0; }
.profile-search-results strong { display:block; font-size:16px; font-weight:500; overflow-wrap:anywhere; }
.profile-search-results small { display:block; margin-top:4px; font-size:11px; color:var(--color-muted); overflow-wrap:anywhere; }
.profile-avatar { position:relative; overflow:hidden; flex-shrink:0; display:grid; place-items:center; width:38px; height:38px; border-radius:50%; background:var(--color-surface-raised); border:0; color:var(--color-accent); font-size:17px; }
.profile-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:var(--color-surface-raised); opacity:0; }
.profile-avatar img.is-loaded { opacity:1; }
.personal-account { display:flex; align-items:center; gap:14px; padding-top:12px; }
.personal-account>div { min-width:0; flex:1; }
.personal-account strong { display:block; font-size:18px; font-weight:500; overflow-wrap:anywhere; }
.personal-change { flex-shrink:0; padding:6px 12px; cursor:pointer; }
.personal-change:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.personal-status { margin-top:14px; font-size:12px; color:var(--color-muted); }
.personal-status:empty { display:none; }
[data-personal-retry] { margin-top:12px; }
[data-personal-results] { display:flow-root; transition:opacity .2s ease; }
[data-personal-results][aria-busy="true"] { opacity:.45; }
[data-personal-results][data-revealing] { overflow:clip; }
.personal-topics { padding:24px 32px; }
.personal-topics-heading { display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-bottom:18px; }
.personal-topics-heading>.mono { font-size:10px; text-transform:uppercase; color:var(--color-accent); }
.personal-topics-heading>.personal-story-total { display:inline-flex; align-items:center; gap:8px; color:var(--color-muted); }
.personal-story-count { display:inline-flex; font-size:16px; line-height:1; font-variant-numeric:tabular-nums; color:var(--color-accent); }
.personal-count-digit { display:block; width:1ch; height:1em; overflow:hidden; }
.personal-count-reel { display:block; transform:translateY(calc(-1em * var(--digit-steps))); animation:personal-count-roll var(--digit-duration) cubic-bezier(.16,1,.3,1) both; }
.personal-count-reel>span { display:block; height:1em; line-height:1; }
@keyframes personal-count-roll {
  from { transform:translateY(0); }
  to { transform:translateY(calc(-1em * var(--digit-steps))); }
}
@media(prefers-reduced-motion:reduce) {
  .personal-count-reel { animation:none; }
}
.personal-topic-note { color:var(--color-muted); font-size:12px; }
.personal-topic-note { margin:12px 0; }
.personal-topic-list { display:flex; flex-wrap:wrap; gap:8px; }
.personal-topic-list button { display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 16px; font-size:12px; font-weight:500; color:var(--color-text); border:1px solid #333; border-radius:999px; background:var(--color-bg); cursor:pointer; }
.personal-topic-list button>span { opacity:.6; font-size:10px; }
.personal-topic-list button[aria-pressed="true"] { background:var(--color-accent); color:var(--color-on-accent); border-color:var(--color-accent); }
.personal-topic-list button:hover { border-color:#666; background:var(--color-surface-raised); }
.personal-topic-list button[aria-pressed="true"]:hover { background:#FFD5A8; border-color:#FFD5A8; }
.personal-topic-list button:focus-visible { outline-color:var(--color-text); }
.personal-stories { margin-block:24px; }
.personal-updated { padding:0 32px 20px; }
@media(max-width:767px) {
  .personal-search { margin-top:26px; }
  .profile-search-symbol { padding-left:14px; }
  .profile-search-field input { font-size:16px; padding:20px 10px; }
  .profile-search-submit { gap:8px; margin:5px; padding:10px 12px; font-size:13px; }
  .profile-search-help { font-size:11px; }
  .personal-account { flex-wrap:wrap; }
  .personal-change { margin-left:auto; }
  .personal-topics { padding:22px 20px; }
  .personal-updated { padding:0 20px 16px; }
}
.demo-state-switch {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 24px;
  border-bottom:1px solid var(--color-divider);
}
.demo-state-switch label {
  font-size:10px;
  color:var(--color-muted);
  text-transform:uppercase;
}
.demo-state-switch select {
  background:var(--color-bg);
  color:var(--color-text);
  border:1px solid var(--color-control-border);
  min-height:44px;
  padding:8px 28px 8px 12px;
  font-size:12px;
  max-width:65%;
}
.feed-explanation {
  padding:20px 24px 0;
  color:var(--color-muted);
  font-size:10px;
}
.editorial-story {
  display:flex;
  align-items:flex-start;
  gap:24px;
  padding:28px 24px;
  border-bottom:1px solid var(--color-divider);
  scroll-margin-top:30px;
}
.editorial-story:last-child {
  border-bottom:0;
}
.story-copy {
  flex:1;
  min-width:0;
}
.story-meta {
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  font-size:10px;
  color:var(--color-muted);
  margin-bottom:14px;
  text-transform:uppercase;
}
.story-meta>span:first-child {
  color:var(--color-text);
}
.editorial-story h3 {
  font-size:24px;
  line-height:1.14;
  letter-spacing:-.025em;
  font-weight:500;
}
.editorial-story h3 a:hover {
  color:var(--color-accent);
}
.story-summary {
  font-size:14px;
  line-height:1.6;
  color:var(--color-muted);
  margin-top:12px;
  max-width:64ch;
}
.editorial-story .match-time {
  margin-top:0;
  line-height:12px;
  color:var(--color-muted);
  text-transform:uppercase;
}
.editorial-story .match-time + .story-summary { margin-top:0; }
.story-art {
  width:120px;
  height:120px;
  object-fit:cover;
  flex-shrink:0;
  margin-top:2px;
  filter:saturate(.6);
}
.relevance-reason {
  display:flex;
  align-items:flex-start;
  gap:7px;
  font-size:11px;
  line-height:1.5;
  color:var(--color-accent);
  margin-top:18px;
}
.relevance-reason .icon {
  margin-top:2px;
}
.story-source {
  font-size:10px;
  margin-top:20px;
  color:var(--color-muted);
}
.beam-placeholder {
  /* Darken the glow without desaturating the spectrum or the content. */
  --beam-strength:.7;
  --beam-inner-opacity:.5;
  padding:24px 26px;
  margin:16px 0 24px;
  min-width:0;
  width:100%;
  background:var(--color-surface);
  border-radius:16px;
  text-align:left;
}
.beam-placeholder[hidden] { display:none; }
.beam-placeholder[data-loading] { display:flex; align-items:center; gap:20px; }
.beam-placeholder[data-loading]>manifest-loader { position:relative; z-index:4; flex:0 0 56px; width:56px; height:56px; margin:0; }
.beam-placeholder[data-loading]>.beam-placeholder-content { flex:1; min-width:0; }
manifest-loader { display:block; width:80px; height:80px; margin-bottom:20px; color:var(--color-text); }
manifest-loader>canvas,manifest-loader>img { display:block; width:100% !important; height:100% !important; object-fit:contain; }
manifest-loader>[hidden] { display:none !important; }
/* Keep the glow visible while the inline logo moves. The colour drift lives in placeholder.css. */
.beam-placeholder[data-loading] { --beam-opacity-placeholder:1 !important; }
.beam-placeholder[data-paused] { --beam-opacity-placeholder:1 !important; }
.beam-placeholder-lines { display:grid; gap:8px; max-width:198px; margin-bottom:22px; }
.beam-placeholder-lines span { height:8px; border-radius:4px; background:rgb(238 238 239 / 8%); }
.beam-placeholder-lines span:first-child { height:10px; width:55%; background:rgb(238 238 239 / 14%); }
.beam-placeholder-lines span:last-child { width:78%; }
.beam-placeholder-content { position:relative; z-index:4; overflow-wrap:anywhere; }
.beam-placeholder .beam-placeholder-content>:is(h1,h2,h3) { font-size:20px; font-weight:500; line-height:1.3; letter-spacing:-.02em; margin:0; }
.beam-placeholder .beam-placeholder-content>p { color:#999; font-size:14px; line-height:1.6; margin:12px 0 0; max-width:55ch; }
.beam-placeholder .button { margin-top:18px; }
.coverage-list>.beam-placeholder { grid-column:1 / -1; }
.hero>.beam-placeholder { max-width:640px; margin:40px auto; }
.match-market-stack>.beam-placeholder { width:auto; margin:16px; }
@media (prefers-reduced-motion:reduce) {
  [data-beam="placeholder"],
  [data-beam="placeholder"]::before,
  [data-beam="placeholder"]::after,
  [data-beam="placeholder"] [data-beam-bloom] {
    animation:none !important;
    --beam-opacity-placeholder:1 !important;
  }
}
.empty-state {
  padding:40px 32px 28px;
  max-width:550px;
}
.empty-symbol {
  display:block;
  color:var(--color-accent);
  margin-bottom:28px;
}
.empty-state h3 {
  font-size:32px;
  line-height:1.08;
  letter-spacing:-.035em;
  font-weight:500;
}
.empty-state p {
  color:var(--color-muted);
  margin-top:16px;
  max-width:44ch;
}
.empty-state .button {
  margin-top:24px;
}
.demo-connect {
  margin:0 32px 20px;
}
.state-footnote {
  font-size:10px;
  color:var(--color-muted);
  padding:0 32px 28px;
}
.market-label-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:var(--color-muted);
  font-size:9px;
  text-transform:uppercase;
  padding:22px 20px 10px;
}
.market-list {
  list-style:none;
  margin:0;
  padding:0 20px;
}
.market-item {
  display:grid;
  grid-template-columns:22px 1fr auto;
  align-items:start;
  gap:12px;
  padding:18px 0;
  border-bottom:1px solid var(--color-divider);
}
.market-item:last-child {
  border:0;
}
.market-rank {
  font-size:10px;
  color:var(--color-muted);
  padding-top:4px;
}
.market-item h3 {
  font-size:15px;
  line-height:1.3;
  letter-spacing:-.01em;
  font-weight:500;
}
.market-change {
  font-size:10px;
  margin-top:8px;
}
.market-change span {
  color:var(--color-muted);
}
.positive {
  color:var(--color-positive);
}
.negative {
  color:var(--color-negative);
}
.market-probability {
  font-size:25px;
  line-height:1.25;
  white-space:nowrap;
}
.market-probability small {
  font-size:13px;
  color:var(--color-muted);
  margin-left:2px;
}
.market-footnote {
  padding:14px 20px;
  border-top:1px solid var(--color-divider);
  color:var(--color-muted);
  font-size:11px;
  line-height:1.7;
}
.tweet-feed {
  max-height:326px;
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:var(--color-muted) var(--color-surface);
  overscroll-behavior-y:auto;
}
.tweet {
  padding:22px 24px;
  border-bottom:1px solid var(--color-divider);
}
.tweet:last-child {
  border:0;
}
.tweet-author {
  display:flex;
  align-items:center;
  gap:10px;
}
.tweet-avatar {
  width:32px;
  height:32px;
  background:var(--color-surface-raised);
  color:var(--color-muted);
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:11px;
}
.tweet-author h3 {
  font-size:13px;
  font-weight:600;
}
.tweet-author .mono {
  font-size:11px;
  color:var(--color-muted);
}
.tweet-author time {
  margin-left:auto;
  align-self:flex-start;
}
.tweet>p {
  font-size:14px;
  line-height:1.65;
  margin-top:14px;
}
.text-link {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--color-accent);
}
/* Connected backend coverage remains available below the new modules. */
.coverage-section {
  margin:64px 0;
}
.coverage-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:24px;
}
.coverage-heading h2 {
  font-size:44px;
  line-height:1.1;
  font-weight:500;
  letter-spacing:-.035em;
}
.coverage-search-beam { --beam-strength:.7; --color-accent:#f4f4f4; --color-text:#f4f4f4; --color-muted:#999; max-width:100%; }
.coverage-search {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 13px;
  background:var(--color-surface);
  border:0;
  border-radius:20px;
  box-shadow:inset 0 0 0 1px rgb(44 47 54 / 52%),inset 0 0 50px rgb(255 255 255 / 2%);
  color:var(--color-muted);
  max-width:100%;
}
/* Keep the story search glow static when reduced motion is requested. */
@media (prefers-reduced-motion:reduce) {
  [data-beam="story-search"][data-active],
  [data-beam="story-search"][data-active]::before,
  [data-beam="story-search"][data-active]::after,
  [data-beam="story-search"] [data-beam-bloom] {
    animation:none !important;
    --beam-opacity-story-search:1;
  }
}
.coverage-search-beam:focus-within { outline:2px solid var(--color-accent); outline-offset:3px; }
.coverage-search input {
  background:transparent;
  border:0;
  min-height:42px;
  width:310px;
  min-width:0;
  color:var(--color-text);
  font-size:14px;
}
.coverage-search input::placeholder {
  color:var(--color-muted);
}
.coverage-search input:focus-visible { outline:0; }
.coverage-search input::selection { background:#f4f4f4; color:#000; }
.coverage-search:focus-within { border-color:var(--color-accent); }
.coverage-search:focus-within>.icon { color:var(--color-accent); }
.coverage-label {
  padding:16px 0;
  color:var(--color-muted);
  border-top:1px solid var(--color-border);
  text-transform:uppercase;
  font-size:10px;
}
.coverage-list {
  display:grid;
  grid-template-columns:1fr 1fr;
}
.coverage-list > .match-card.is-coverage-pending { opacity:1; transform:none; }
.coverage-list > .match-card.is-coverage-entering { animation:coverage-card-in .45s cubic-bezier(.22,1,.36,1) var(--coverage-delay,0ms) both; }
@keyframes coverage-card-in {
  from { transform:translateY(12px); }
  to { transform:translateY(0); }
}
@supports (grid-template-rows:subgrid) {
  @media(min-width:768px) {
    /* Share story heights, but draw each frame around its own market content. */
    .coverage-list.match-feed>.match-card {
      display:grid;
      grid-template-rows:subgrid;
      grid-row:span 2;
      row-gap:0;
      align-self:stretch;
      border:0;
      background:transparent;
    }
    .coverage-list.match-feed>.match-card>.match-story {
      border:1px solid var(--color-divider);
      border-bottom:0;
      background:var(--color-feature);
    }
    .coverage-list.match-feed>.match-card>.match-market-stack {
      align-self:start;
      border:1px solid var(--color-divider);
      background:var(--color-feature);
    }
    .coverage-list.match-feed>.match-card:focus-visible {
      outline:0;
    }
    .coverage-list.match-feed>.match-card:focus-visible>.match-story,
    .coverage-list.match-feed>.match-card:focus-visible>.match-market-stack {
      border-color:var(--color-accent);
      box-shadow:0 0 0 1px var(--color-accent);
    }
  }
}
.coverage-list .editorial-story {
  padding:28px 24px 28px 0;
  border-bottom:1px solid var(--color-divider);
}
.coverage-list .editorial-story:nth-child(even) {
  padding:28px 0 28px 24px;
  border-left:1px solid var(--color-divider);
}
.coverage-list .story-art {
  width:104px;
  height:116px;
}
.related-market {
  display:flex;
  gap:16px;
  align-items:center;
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid var(--color-divider);
  font-size:12px;
  color:var(--color-muted);
}
.related-market span {
  flex:1;
}
.related-market strong {
  color:var(--color-accent);
}
.feed-notice {
  padding:24px;
  border:1px solid var(--color-divider);
  color:var(--color-muted);
}
.site-footer {
  width:100%;
  overflow:hidden;
}
.site-footer>img { display:block; width:100%; height:auto; margin-bottom:-3px; }
/* Keep the existing public-trade tool aligned with the editorial shell. */
.brand {
  font-size:26px;
  font-weight:600;
  letter-spacing:-1px;
}
@media(min-width:1000px) {
  /* Keep the full story in the first view and center the editorial group beside it. */
  .feature-card { top:calc(16px + var(--card-height,560px) / 2); }
  .hero-editorial {
    position:absolute;
    top:calc(16px + var(--card-height,560px) / 2);
    left:32px;
    z-index:4;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:28px;
    width:max-content;
    max-width:calc(96% - var(--card-width) - 64px);
    transform:translateY(-50%);
    pointer-events:none;
  }
  .hero-editorial .stage-caption { position:static; min-width:0; max-width:100%; }
  html:not(.js) .hero .story-track { padding-top:16px; }
}
@media(min-width:1600px) {
  .hero { --globe-size:1080px; --card-width:600px; }
  .hero-stage { height:max(740px,calc(var(--card-height,560px) + 180px)); }
}
@media(max-width:1199px) {
  .shell {
    width:calc(100% - 64px);
  }
  .news-grid {
    grid-template-columns:1fr;
  }
  .context-rail {
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
  .hero { --globe-size:840px; --card-width:500px; }
  .story-track { right:4%; }
  .stage-caption { left:28px; }
  .stage-caption p { font-size:28px; max-width:9ch; }
  .editorial-story .story-art {
    width:144px;
    height:128px;
  }
  .coverage-list .story-art {
    width:80px;
    height:96px;
  }
  .coverage-list .editorial-story {
    gap:16px;
  }
  .market-probability {
    font-size:23px;
  }
}
@media(min-width:768px) and (max-width:999px) {
  .hero { --card-width:460px; }
  .stage-caption { display:none; }
}
@media(max-width:767px) {
  .shell {
    width:calc(100% - 32px);
  }
  .masthead {
    min-height:80px;
    gap:12px;
  }
  .site-logo img {
    width:196px;
  }
  .wordmark {
    font-size:31px;
    letter-spacing:-1.8px;
  }
  .wordmark span {
    font-size:28px;
  }
  .edition-date {
    display:none;
  }
  .button-small {
    padding:9px 10px;
    font-size:11px;
    gap:8px;
  }
  .edition-nav {
    gap:24px;
    min-height:48px;
    font-size:12px;
  }
  .edition-nav a {
    min-height:48px;
  }
  .hero { --site-header-height:128px; --globe-size:720px; --card-width:calc(100% - 40px); }
  .hero-stage { height:auto; padding-top:0; }
  .story-viewport { position:relative; inset:auto; padding:32px 0 24px; }
  .story-track { position:relative; inset:auto; display:grid; margin-left:auto; margin-right:20px; }
  .feature-card {
    position:relative;
    top:auto;
    grid-area:1 / 1;
    align-self:center;
    transform:translate(calc(var(--initial-slot) * (100% + 32px)),0);
  }
  .hero-editorial { display:block; position:relative; z-index:4; padding:0 20px 24px; }
  .stage-caption { display:block; position:static; }
  .stage-caption p { font-size:clamp(28px,8vw,32px); max-width:none; }
  .backer-ticker { width:100%; }
  .globe-shell { left:22%; }
  .story-track { right:auto; }
  .match-story { --match-padding-x:16px; --match-padding-y:18px; }
  .match-story:has(>.match-image-frame:not([hidden])) { grid-template-columns:minmax(0,1fr); }
  .match-story:has(>.match-image-frame:not([hidden]))>.match-text { grid-row:2; }
  .match-image-frame {
    grid-column:1;
    grid-row:1;
    height:clamp(144px,52cqw,220px);
    border:0;
    /* Fade the image into the actual card background. */
    mask-image:linear-gradient(to bottom,#000 calc(100% - 40px),transparent calc(100% - 2px));
  }
  .match-image { border:0; }
  .match-time { font-size:9px; }
  .match-copy h2,.match-copy h3 { font-size:23px; }
  .match-excerpt { font-size:12px; }
  .match-stack-heading { padding:6px 16px; }
  .match-market { padding:12px 16px; }
  .match-stack-label { font-size:13px; }
  .match-outcomes { gap:6px; }
  .match-outcome { padding:4px 7px; gap:8px; }
  .match-no-markets { padding:4px 16px 16px; }
  html:not(.js) .hero .hero-stage { padding-top:0; }
  html:not(.js) .hero .story-viewport { position:relative; }
  html:not(.js) .hero .story-track { margin-right:20px; padding-block:0; }
  .news-grid {
    margin-top:24px;
    gap:24px;
  }
  .context-rail {
    grid-template-columns:1fr;
  }
  .panel-heading {
    padding:18px 16px;
    gap:12px;
  }
  #personalised > .panel-heading { padding-left:0; }
  .panel-heading h2 {
    font-size:21px;
  }
  .panel-heading>div {
    gap:12px;
  }
  .panel-note {
    font-size:9px;
  }
  .personal-intro {
    padding:24px 20px 12px;
  }
  .personal-intro-title {
    font-size:clamp(24px,6.2vw,32px);
  }
  .personal-intro-heading {
    grid-template-columns:48px minmax(0,1fr);
    gap:8px;
  }
  .personal-intro>span {
    font-size:12px;
  }
  .demo-state-switch {
    padding:12px 16px;
  }
  .feed-explanation {
    padding:18px 16px 0;
    font-size:9px;
  }
  .editorial-story {
    padding:24px 16px;
    gap:14px;
  }
  .editorial-story h3 {
    font-size:22px;
  }
  .story-meta {
    font-size:11px;
    gap:6px 12px;
  }
  .editorial-story .story-art {
    width:80px;
    height:96px;
  }
  .story-summary {
    font-size:14px;
  }
  .relevance-reason {
    font-size:10px;
  }
  .panel-bottom {
    padding:18px 16px;
  }
  .panel-bottom .mono {
    font-size:9px;
  }
  .empty-state {
    padding:32px 20px 24px;
  }
  .empty-state h3 {
    font-size:29px;
  }
  .empty-state p {
    font-size:14px;
  }
  .demo-connect {
    margin-inline:20px;
  }
  .tweet-feed {
    max-height:340px;
  }
  .coverage-section {
    margin-block:40px;
  }
  .coverage-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:20px;
  }
  .coverage-heading h2 {
    font-size:36px;
  }
  .coverage-search-beam,
  .coverage-search {
    width:100%;
  }
  .coverage-search input {
    width:100%;
    /* Keep mobile Safari from zooming the page when the field receives focus. */
    font-size:16px;
  }
  .coverage-list {
    grid-template-columns:1fr;
  }
  .coverage-list .editorial-story,.coverage-list .editorial-story:nth-child(even) {
    padding:24px 0;
    border-left:0;
  }
  .coverage-label {
    font-size:9px;
  }
}
@media(max-width:359px) {
  .match-copy h2,.match-copy h3 { font-size:21px; }
  .editorial-story .story-art {
    width:60px;
    height:80px;
  }
  .market-label-row {
    font-size:8px;
  }
  .market-item {
    gap:8px;
  }
  .masthead .button-small {
    font-size:10px;
  }
  .wordmark {
    font-size:28px;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important;
  }
}

/* Shareable event brief. */
[data-story-url] { cursor:pointer; }
.story-page { position:relative; padding-top:var(--space-12); padding-bottom:var(--space-24); }
.story-back { color:var(--color-muted); font-size:12px; }
.story-heading { max-width:1020px; border-bottom:1px solid var(--color-divider); padding-bottom:var(--space-8); margin-bottom:var(--space-8); }
.story-kicker { color:var(--color-accent); font-size:11px; letter-spacing:.09em; text-transform:uppercase; margin:0 0 20px; }
.story-heading h1 { font-size:clamp(32px,4.7vw,64px); font-weight:500; line-height:1.08; letter-spacing:-.035em; margin:0 0 24px; text-wrap:balance; }
.story-dateline { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; color:#999; font-family:var(--font-body); font-size:11px; font-weight:500; }
.story-dateline-times { display:flex; flex-wrap:wrap; gap:12px 24px; min-width:0; }
.story-dateline .match-actions { margin-left:0; color:inherit; }
.story-dateline .match-action { width:28px; height:28px; color:inherit; }
.story-dateline .match-action .icon { width:18px; height:18px; }
.story-deck { font-size:clamp(19px,2vw,24px); line-height:1.55; max-width:880px; margin:28px 0 0; }
.story-layout { display:grid; grid-template-columns:minmax(0, 2fr) minmax(260px, 1fr); gap:var(--space-16); align-items:start; }
.story-reporting { min-width:0; }
.story-prose p,.story-section p,.story-section li,.story-market-intro p:not(.story-kicker) { font-size:17px; line-height:1.8; }
.story-prose p { margin:0 0 24px; }
.story-prose p,.story-section p { text-align:justify; text-align-last:start; }
.story-section { margin-top:var(--space-12); padding-top:var(--space-6); border-top:1px solid var(--color-divider); }
.story-tldr { margin-top:0; padding-top:0; border-top:0; }
.story-outlook { padding-bottom:var(--space-6); border-bottom:1px solid var(--color-divider); margin-bottom:var(--space-6); }
.story-outlook ul { margin-bottom:0; }
.story-outlook li:last-child { margin-bottom:0; }
.story-section h2,.story-market-intro h2 { font-size:24px; font-weight:500; letter-spacing:-.025em; margin:0 0 20px; }
.story-section ul { padding-left:22px; }
.story-section li { margin-bottom:16px; }
.story-citation { margin-left:4px; font:10px var(--font-mono); vertical-align:super; }
.story-citation a { color:var(--color-accent); padding:2px; }
.story-citation a:hover { text-decoration:underline; }
.story-market-intro p:not(.story-kicker),.story-market-note { color:var(--color-muted); }
.story-market-note { font-size:13px; line-height:1.6; }
.story-market-titles { display:inline-flex; flex-direction:column; gap:6px; max-width:100%; margin-bottom:10px; }
.story-market-titles .story-kicker { container-type:inline-size; margin:0; line-height:1.2; }
/* 18 monospace characters at .6em advance plus .06em tracking. */
.story-market-titles .story-kicker > span { font-size:calc(100cqw / 11.88); letter-spacing:.06em; white-space:nowrap; }
.story-market-titles h2 { margin:0; line-height:1.2; }
.story-markets { scroll-margin-top:24px; }
.story-markets-detail { margin-top:var(--space-12); }
.story-markets-rail .story-market h3 { font-size:14px; }
.story-market { display:block; padding:var(--space-6); margin-top:var(--space-4); scroll-margin-top:var(--space-6); }
a.story-market:hover { border-color:var(--color-accent); }
a.story-market:hover h3 { color:var(--color-accent); }
a.story-market:focus-visible { outline:2px solid var(--color-accent); outline-offset:4px; }
.story-market h3 { position:relative; font-size:18px; line-height:1.35; font-weight:500; margin:var(--space-3) 0 var(--space-4); }
.story-market-label { font-size:10px; color:#999; }
.card-since { display:flex; align-items:baseline; gap:8px; margin:12px 0 0; font-size:12px; }
.card-since strong { font-size:13px; font-weight:500; }
.card-since span { color:#8a8a8a; }
.card-since.up strong { color:var(--color-positive); }
.card-since.down strong { color:var(--color-negative); }
.card-since.flat strong { color:#9a9a9a; }
.market-fold { margin-top:14px; border-top:1px solid var(--color-divider); }
.market-fold summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0 0; color:#9a9a9a; font-size:11px; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; list-style:none; }
.market-fold summary::-webkit-details-marker { display:none; }
.market-fold summary .chevron { display:inline-block; font-size:22px; line-height:1; transition:transform .15s linear; }
.market-fold[open] summary .chevron { transform:rotate(180deg); }
[data-market-tape] { position:relative; }
.tape { display:block; width:100%; height:340px; margin-top:8px; overflow:visible; cursor:crosshair; }
.tape text { font-family:var(--font-mono); }
.tape:not([data-fitted]) text { opacity:0; }
.tape-readout { position:absolute; top:16px; z-index:2; margin:0; padding:6px 8px; border:1px solid #2a2a2a; background:rgb(0 0 0 / 88%); pointer-events:none; white-space:nowrap; }
.tape-readout strong { display:block; color:#f4f5ef; font-size:13px; font-weight:500; }
.tape-readout span { color:#8a8a8a; font-size:11px; }
.tape-foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:2px; }
.tape-meta { margin:0; color:#c8c8c8; font-size:11px; }
.tape-ranges { display:flex; gap:8px; flex:none; }
.tape-ranges button { padding:0; border:0; background:transparent; color:#666; font:11px var(--font-mono); cursor:pointer; }
.tape-ranges button[aria-pressed="true"] { color:#f4f5ef; }
.story-market-date { color:var(--color-muted); font-size:10px; line-height:1.8; margin:16px 0 0; }
.story-sources ol { padding-left:24px; }
.story-sources li { padding:8px 0; scroll-margin-top:24px; }
.story-source-line { display:flex; align-items:baseline; gap:10px; }
.story-source-line>.match-source-icon { align-self:flex-start; }
.story-source-details { min-width:0; font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.story-sources a { display:inline; font-size:15px; line-height:1.5; }
.story-sources a:hover,.story-market a:hover { color:var(--color-accent); }
.story-source-publisher { color:var(--color-muted); font-size:10px; }
.story-source-x { color:var(--color-text); }
.story-posts .story-source-line a { font-size:15px; line-height:1.5; }
/* Posts on X: its own section above Sources, quiet by default. */
.story-posts { margin-top:var(--space-12); }
.story-posts-count { color:var(--color-muted); font-size:.6em; letter-spacing:0; vertical-align:middle; }
/* A row of small cards that scrolls sideways. Native overflow and snap work with no script;
   x-posts.js adds the arrows and the edge fade. */
.story-posts-rail { position:relative; }
.story-posts-scroller {
  container-type:inline-size;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:var(--color-border) transparent;
  /* Room for the :target highlight, which draws 1px outside a card: overflow clips at the padding
     edge, so the padding keeps the ring whole. The negative margin keeps the cards on the page grid. */
  padding:4px 4px 12px;
  margin:-4px -4px 0;
  scroll-padding-inline:4px;
}
/* The edge mask would hide an outline drawn outside the scroller, so the focus ring is drawn on the
   rail around it. Without :has() the scroller keeps its own outline. */
.story-posts-scroller:focus-visible { outline:2px solid var(--color-accent); outline-offset:4px; }
@supports selector(:has(*)) {
  .story-posts-scroller:focus-visible { outline:0; }
  .story-posts-rail:has(.story-posts-scroller:focus-visible)::after {
    content:"";
    position:absolute;
    inset:-2px -6px;
    border:2px solid var(--color-accent);
    border-radius:8px;
    pointer-events:none;
  }
}
.story-posts-scroller.has-after { mask-image:linear-gradient(90deg,#000 calc(100% - 56px),transparent); }
.story-posts-scroller.has-before { mask-image:linear-gradient(90deg,transparent,#000 56px); }
.story-posts-scroller.has-before.has-after { mask-image:linear-gradient(90deg,transparent,#000 56px,#000 calc(100% - 56px),transparent); }
/* A targeted card keeps its whole highlight: no edge fade while the address points into the row. */
.story-posts-scroller.story-posts-scroller:has(.story-post:target) { mask-image:none; }
.story-post::before { border-radius:14px; }
.story-posts-list { list-style:none; margin:0; padding:0; display:flex; align-items:stretch; gap:var(--space-4); width:max-content; }
.story-post { flex:none; display:flex; flex-direction:column; width:min(82cqw,320px); scroll-snap-align:start; scroll-margin-top:var(--space-6); }
.story-post-label { display:block; margin-bottom:8px; color:#999; font-size:10px; }
.story-post-alias { display:block; height:0; }
.story-posts-arrow {
  display:none;
  position:absolute;
  top:50%;
  z-index:6;
  width:32px;
  height:32px;
  margin-top:-16px;
  padding:0;
  border:1px solid var(--color-border);
  border-radius:50%;
  background:rgb(0 0 0 / 72%);
  color:#9a9a9a;
  font:20px/1 var(--font-mono);
  cursor:pointer;
  transition:opacity .15s ease,color .15s ease;
}
.story-posts-prev { left:-12px; }
.story-posts-next { right:-12px; }
.story-posts-arrow:hover { color:var(--color-text); border-color:var(--color-control-border); }
.story-posts-arrow:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px; }
.story-posts-arrow:disabled { opacity:0; pointer-events:none; }
@media (min-width:768px) {
  .js .story-posts-arrow { display:block; }
  .js .story-posts-arrow[hidden] { display:none; }
}
@media (max-width:767px) {
  .story-posts-scroller { scrollbar-width:none; }
}
.story-source-x-logo { width:13px; height:13px; }
/* One card per post, drawn by us from the story's own data (name, handle, text, date) plus the avatar and
   one image when X's public endpoint answered. No border: a quiet raised tile on the page's black. Every
   card in the row is as tall as the tallest (the list stretches, the item and the card are flex columns)
   and the footer is pinned to the bottom, so a short post leaves its spare room between text and footer.
   The card itself is not a link: only "View on X" goes to the post. Text is clamped to six lines. */
.x-card {
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  gap:12px;
  padding:16px;
  border-radius:12px;
  background:var(--color-surface-raised);
  color:var(--color-text);
  font-family:var(--font-body);
  text-align:left;
  text-align-last:left;
  word-spacing:normal;
}
.x-card-head { display:flex; align-items:center; gap:10px; min-width:0; }
.x-card-avatar { flex:none; width:36px; height:36px; border-radius:50%; background:#1f1f1f; object-fit:cover; }
.x-card-id { display:flex; flex-direction:column; gap:1px; min-width:0; }
.x-card-name,.x-card-handle { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.x-card-name { font-size:15px; font-weight:560; letter-spacing:-.02em; line-height:1.3; }
.x-card-handle { color:var(--color-muted); font:12px/1.4 var(--font-mono); }
.x-card-mark { display:inline-flex; margin-left:auto; padding-left:8px; color:var(--color-muted); }
.x-card-logo { width:14px; height:14px; }
.x-card-text {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:6;
  line-clamp:6;
  overflow:hidden;
  font-size:15px;
  line-height:1.5;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
.x-card-media {
  position:relative;
  display:block;
  aspect-ratio:16 / 9;
  overflow:hidden;
  border-radius:8px;
  background:#1f1f1f;
}
.x-card-media img { display:block; width:100%; height:100%; object-fit:cover; }
.x-card-caption {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:18px 10px 8px;
  background:linear-gradient(transparent,rgb(0 0 0 / 70%));
  color:var(--color-text);
  font-size:11px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.x-card-play {
  position:absolute;
  top:50%;
  left:50%;
  width:44px;
  height:44px;
  margin:-22px 0 0 -22px;
  border-radius:50%;
  background:rgb(0 0 0 / 60%);
}
.x-card-play::after {
  content:"";
  position:absolute;
  top:13px;
  left:17px;
  border:9px solid transparent;
  border-left:14px solid var(--color-text);
  border-right:0;
}
.x-card-foot {
  display:flex;
  flex-wrap:wrap;
  gap:4px 12px;
  align-items:center;
  justify-content:space-between;
  margin-top:auto;
  color:var(--color-muted);
  font-size:12px;
  line-height:1.4;
}
.story-posts a.x-card-view {
  margin-left:auto;
  padding:2px 0;
  color:var(--color-text);
  font-size:12px;
  border-bottom:1px solid var(--color-control-border);
  transition:color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}
.story-posts a.x-card-view:hover { color:var(--color-accent); border-bottom-color:var(--color-accent); }
.story-posts a.x-card-view:focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) {
  .story-posts-arrow,.story-posts a.x-card-view { transition:none; }
}
.story-disclosure { color:var(--color-muted); font-size:12px; line-height:1.7; margin-top:32px; }
.story-notice { border-left:2px solid var(--color-accent); padding:12px 18px; background:var(--color-surface); font-size:14px; line-height:1.7; margin:0 0 24px; }
.story-notice h2 { font-size:20px; }
.story-error { padding:40px 0 100px; }
.story-error h1 { max-width:700px; font-size:clamp(28px,5vw,52px); }
@media (max-width:767px) {
  .story-page { padding-top:32px; }
  .story-layout { grid-template-columns:1fr; gap:36px; }
  .story-markets-rail { order:-1; margin-bottom:24px; }
  .tape { height:240px; }
  .story-heading { padding-bottom:28px; margin-bottom:28px; }
  .story-prose p,.story-section p,.story-section li,.story-market-intro p:not(.story-kicker) { font-size:16px; }
  .story-back { font-size:10px; }
}

/* Reuse the homepage globe, faded behind the editorial header. */
.story-atmosphere {
  position:absolute;
  inset:0 0 auto;
  height:860px;
  overflow:hidden;
  pointer-events:none;
  opacity:.32;
  mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 55%,transparent 100%);
}
.story-atmosphere::before {
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  background:linear-gradient(to bottom,#000 0%,#000 42%,transparent 76%);
  opacity:.7;
}
.story-atmosphere.has-still {
  opacity:1;
  mask-image:linear-gradient(to bottom,#000 0%,#000 42%,transparent 100%);
}
.story-atmosphere.has-still .globe-shell { visibility:hidden; }
.story-backdrop-still { position:absolute; inset:0; }
.story-backdrop-still {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 28%;
  transform:scale(1.03);
}
.story-atmosphere.has-still::after {
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  background:
    linear-gradient(to right,rgb(0 0 0 / 78%) 0%,rgb(0 0 0 / 42%) 42%,rgb(0 0 0 / 8%) 100%),
    linear-gradient(to bottom,rgb(0 0 0 / 28%),transparent 24%,var(--color-bg) 100%);
}
.story-atmosphere .globe-shell {
  --globe-size:960px;
  top:42%;
  left:82%;
}
.story-intro { position:relative; z-index:2; }
.story-heading { position:relative; z-index:2; }
.story-heading h1,.story-deck { text-shadow:0 2px 18px var(--color-bg); }
.story-markets { min-width:0; }
.story-market h3,.story-sources a { overflow-wrap:anywhere; }
@media (max-width:767px) {
  .story-atmosphere { height:680px; opacity:.2; }
  .story-atmosphere.has-still { opacity:1; }
  .story-atmosphere .globe-shell { --globe-size:640px; left:110%; top:35%; }
  .story-market { padding:var(--space-6); }
}

.feed-pagination { height:1px; pointer-events:none; }

/* Beta access prompt for article saves. */
.beta-dialog { margin:auto; width:min(440px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:36px 28px 28px; border-radius:24px; border:1px solid #34383e; background:var(--color-bg); color:#e5e7eb; box-shadow:0 24px 80px rgb(0 0 0 / 60%); }
.beta-dialog::backdrop { background:rgb(0 0 0 / 55%); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.beta-dialog-close { position:absolute; top:8px; right:8px; border:0; background:transparent; color:#858b95; }
.beta-dialog-close:hover { background:transparent; color:#e5e7eb; }
.beta-dialog h2 { font-size:30px; line-height:1.15; font-weight:500; letter-spacing:-.025em; margin-bottom:16px; }
.beta-dialog>p { color:#a2a8b2; line-height:1.6; }
html:has(.beta-dialog[open]) { overflow:hidden; }
.beta-dialog form { margin-top:24px; }
.beta-dialog input { width:100%; min-height:50px; border:1px solid #333; border-radius:999px; padding:13px 22px; background:var(--color-surface); color:var(--color-text); font:inherit; }
.beta-dialog-signup { width:100%; min-height:50px; gap:6px; padding:13px 22px; border:0; border-radius:999px; margin-top:12px; background:#242424; color:var(--color-text); font-weight:600; }
.beta-dialog input::placeholder { color:#999; }
.beta-dialog :focus-visible { outline-color:#999; }
.beta-dialog-signup:disabled { opacity:.6; cursor:wait; }
.beta-dialog-status:not(:empty) { margin-top:16px; font-size:13px; line-height:1.5; }

.beta-dialog.is-closing { pointer-events:none; animation:beta-dialog-exit 220ms ease-in forwards; }
.beta-dialog.is-closing::backdrop { animation:beta-backdrop-exit 220ms ease-in forwards; }
@keyframes beta-dialog-exit { to { opacity:0; transform:translateY(12px) scale(.97); } }
@keyframes beta-backdrop-exit { to { opacity:0; } }
@media (prefers-reduced-motion:reduce) {
  .beta-dialog.is-closing,.beta-dialog.is-closing::backdrop { animation:none; }
}

/* Email passcode confirmation shares the signup dialog's existing controls. */
.beta-code-actions { display:flex; justify-content:space-between; gap:16px; margin-top:16px; }
.beta-code-actions button,.beta-signout { padding:4px 0; border:0; background:transparent; color:var(--color-scene-muted); font-size:13px; }
.beta-code-actions button:hover,.beta-signout:hover { color:var(--color-text); }
.beta-code-actions button:disabled { opacity:.5; }
.beta-dialog [data-beta-code] { text-align:center; letter-spacing:.35em; font:24px var(--font-mono); }
.beta-dialog [data-beta-code]:placeholder-shown { caret-color:transparent; }
.beta-signout { display:block; margin:16px auto 0; }

/* Application navigation: persistent on desktop, a focused drawer on mobile. */
.manifest-app { --nav-width:232px; padding-left:var(--nav-width); }
.manifest-app .shell { width:min(1320px,calc(100% - 80px)); }
.app-sidebar { position:fixed; z-index:20; inset:0 auto 0 0; display:flex; flex-direction:column; width:var(--nav-width); padding:36px 20px 20px; border-right:1px solid var(--color-divider); background:var(--color-feature); overflow-y:auto; }
.nav-brand { display:flex; align-items:center; min-height:44px; padding:0 12px; }
.nav-brand img { width:160px; height:auto; }
.nav-eyebrow { display:block; visibility:hidden; margin:20px 12px 28px; font:9px/1.5 var(--font-mono); letter-spacing:.1em; color:#777; }
.app-nav { display:flex; flex-direction:column; gap:0; margin-block:-4px; }
.app-sidebar { --sidebar-inset:20px; }
.app-sidebar > .app-nav { margin-inline:calc(-1 * var(--sidebar-inset)); }
.app-sidebar .app-nav-link { padding-inline:calc(var(--sidebar-inset) + 16px); }
.app-nav-link { display:flex; align-items:center; gap:17px; width:100%; min-height:62px; padding:17px 16px; border:0; border-radius:0; background:transparent; color:#999; text-align:left; font-size:17px; font-weight:500; transition:background 160ms,color 160ms; }
.app-nav-link .icon { stroke-width:1.8; }
.app-nav-link:hover { background:#0e0e0e; color:#fff; }
.app-nav-link[aria-current] { background:#161616; color:#fff; font-weight:650; }
.app-nav-link[aria-current] .icon { stroke-width:2.2; }
.nav-bottom { margin-top:auto; padding-top:48px; }
.nav-membership { position:absolute; z-index:2; bottom:20px; inset-inline:var(--sidebar-inset, 22px); max-height:calc(100% - 40px); overflow-y:auto; padding:18px 14px 12px; border:1px solid var(--color-divider); border-radius:16px; background:linear-gradient(150deg,#101010,#050505); }
.nav-membership-symbol { display:block; color:#dedede; margin-bottom:16px; }
.nav-membership h2 { white-space:nowrap; margin-bottom:20px; font-size:20px; font-weight:500; line-height:1.15; letter-spacing:-.04em; }
.nav-membership p { margin:12px 0 20px; color:#8d8d8d; font-size:12px; line-height:1.6; }
.nav-join { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:44px; padding:10px; border:0; border-radius:24px; background:#f3f3f3; color:#080808; font-size:12px; font-weight:650; }
.nav-join:hover { background:#dcdcdc; }
.nav-login { display:block; width:100%; min-height:44px; margin-top:6px; padding:8px 0; border:0; background:transparent; font-size:10px; color:#8d8d8d; }
.nav-login strong { color:#e7e7e7; font-weight:500; }
.nav-login:hover strong { text-decoration:underline; }
.nav-footer { display:block; visibility:hidden; padding:20px 0 0; text-align:center; color:#646464; font-size:9px; }
.nav-account { display:flex; align-items:center; gap:10px; width:100%; padding:12px 8px; border:1px solid var(--color-divider); border-radius:16px; background:#080808; color:#f4f4f4; text-align:left; }
.app-sidebar .nav-account { width:calc(100% + 2 * var(--sidebar-inset)); margin-inline:calc(-1 * var(--sidebar-inset)); padding-inline:var(--sidebar-inset); border-inline:0; border-radius:0; }
.account-avatar { flex-shrink:0; display:grid; place-items:center; width:36px; height:36px; border:1px solid #444; border-radius:50%; background:#1b1b1b; color:#fff; font-size:14px; font-weight:600; }
.nav-account-copy { display:flex; flex-direction:column; gap:4px; min-width:0; flex:1; }
.nav-account-copy strong { font-size:12px; font-weight:500; }
.nav-account-copy>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#939393; font-size:10px; }
.nav-icon-button { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; padding:0; border:0; border-radius:50%; background:transparent; color:#ddd; }
.nav-icon-button:hover { background:#171717; }
.mobile-tab-bar { display:none; }
.nav-drawer { position:fixed; inset:0 auto 0 0; width:min(330px,calc(100vw - 40px)); max-width:none; height:100dvh; max-height:none; margin:0; padding:24px 22px max(24px,env(safe-area-inset-bottom)); border:0; border-right:1px solid var(--color-divider); background:var(--color-feature); color:#fff; overflow-y:auto; }
.nav-drawer[open] { display:flex; flex-direction:column; animation:drawer-enter 220ms var(--ease-out); }
.nav-drawer::backdrop { background:rgb(0 0 0 / 65%); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.nav-drawer-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nav-drawer .nav-brand { padding:0; }
.nav-drawer .nav-brand img { width:154px; }
.nav-drawer .nav-eyebrow { margin:30px 12px 18px; }
.nav-drawer > .app-nav { margin-inline:-22px; }
.nav-drawer .app-nav-link { padding-inline:38px; font-size:20px; min-height:66px; }
.nav-drawer .nav-bottom { padding-top:32px; }
.nav-drawer .nav-membership { bottom:max(24px,env(safe-area-inset-bottom)); max-height:calc(100% - 48px - env(safe-area-inset-bottom)); padding:20px; }
.nav-drawer .nav-membership p br { display:none; }
.nav-drawer .nav-membership p { font-size:13px; }
.nav-drawer .nav-membership h2 { font-size:23px; }
.nav-drawer .nav-join { font-size:14px; }
.nav-drawer .nav-login { font-size:12px; }
.drawer-identity { display:flex; align-items:center; gap:12px; margin:28px 10px 0; min-width:0; font-size:13px; }
.drawer-identity>[data-auth-email] { overflow:hidden; text-overflow:ellipsis; }
.nav-drawer-open { overflow:hidden; }
@keyframes drawer-enter { from { transform:translateX(-100%); } to { transform:translateX(0); } }
@media(min-width:1100px) {
  .manifest-app #main-content.news-home { margin-left:0; padding-left:0; }
  .manifest-app .story-dateline { font-size:13px; }
  .manifest-app .story-section { position:relative; }
  .manifest-app .story-heading::before,
  .manifest-app .story-section:not(.story-tldr)::before,
  .manifest-app .story-outlook::after { content:""; position:absolute; right:100%; width:max(40px,calc((100vw - var(--nav-width) - 1320px) / 2)); height:1px; background:var(--color-divider); pointer-events:none; }
  .manifest-app .story-section:not(.story-tldr)::before { top:-1px; }
  .manifest-app .story-heading::before,
  .manifest-app .story-outlook::after { bottom:-1px; }
  .manifest-app .news-home > .news-grid,
  .manifest-app .news-home > .coverage-section { width:100%; margin-left:40px; }
  .manifest-app #personalised > .panel-heading { margin-left:-40px; padding-left:40px; }
  html.js .manifest-app .hero:has([data-stage]) + .news-grid #personalised { position:relative; }
  html.js .manifest-app .hero:has([data-stage]) + .news-grid #personalised > .panel-heading { position:absolute; bottom:100%; left:-40px; right:0; margin-left:0; pointer-events:none; }
  html.js .manifest-app .hero:has([data-stage]) + .news-grid #personalised-title { pointer-events:auto; }
  .manifest-app .hero { --site-header-height:0px; --original-shell-width:min(1440px,calc(100vw - 96px)); }
  html.js .manifest-app .hero .hero-stage { margin-bottom:158px; }
  .manifest-app .hero-editorial { max-width:none; }
  .manifest-app .stage-caption { left:8px; bottom:90px; max-width:none; }
  .manifest-app .stage-caption p { max-width:none; font-size:clamp(30px,3vw,52px); white-space:nowrap; }
  .manifest-app .stage-caption>.mono { font-size:8px; }
  .manifest-app .backer-ticker { width:235px; }
  /* Move main's complete clipping viewport below the former header space. */
  html.js .manifest-app .hero .story-viewport { top:158px; bottom:-158px; left:calc((100vw - var(--original-shell-width)) / 2 - var(--nav-width)); right:auto; width:var(--original-shell-width); }
  .manifest-app .globe-backdrop { left:-40px; right:-40px; }
}
@media(min-width:1100px) and (max-width:1199px) {
  .manifest-app .hero { --original-shell-width:calc(100vw - 64px); }
}
@media(min-width:1600px) {
  .manifest-app { --nav-width:260px; }
  .app-sidebar { --sidebar-inset:28px; padding-inline:28px; }
}
@media(max-width:1099px) {
  .manifest-app { padding-left:0; }
  .app-sidebar { display:none; }
  .manifest-app .shell { width:calc(100% - 48px); }
}
@media(max-width:1099px) {
  .manifest-app { padding-bottom:calc(72px + env(safe-area-inset-bottom)); }
  .mobile-tab-bar { position:fixed; z-index:20; inset:auto 0 0; display:grid; grid-template-columns:repeat(4,1fr); padding:8px 10px max(8px,env(safe-area-inset-bottom)); border-top:1px solid var(--color-divider); background:rgb(0 0 0 / 94%); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); }
  .mobile-tab-bar>a,.mobile-tab-bar>button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:48px; border:0; background:transparent; color:#777; font-size:10px; font-weight:500; }
  .mobile-tab-bar .icon { stroke-width:1.8; }
  .mobile-tab-bar [aria-current] { color:#fff; }
  .mobile-tab-bar [aria-current] .icon { stroke-width:2.3; }
  html { scroll-padding-top:20px; }
}
@media(prefers-reduced-motion:reduce) {
  .nav-drawer[open] { animation:none; }
  .app-nav-link { transition:none; }
}

.manifest-app .hero { --site-header-height:0px; }
@media(max-width:767px) {
  .manifest-app .shell { width:calc(100% - 32px); }
}
