﻿@font-face{font-family:Manrope;src:url('/assets/manrope.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
:root{--paper:#f9f9f6;--card:#fff;--ink:#181918;--muted:#62635e;--line:#e4e4df;--red:#da1e28;--red-text:#b8141f;--soft:#f7e9e8;--night:#202421;--pad:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#e9eae5;color:var(--ink);font-family:Manrope,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{max-width:460px;margin:auto;min-height:100dvh;background:var(--paper);position:relative;box-shadow:0 0 70px #1920180b}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:4px}svg{width:22px;height:22px;display:block;flex-shrink:0}button{border:0;background:none}p,h1,h2,h3{margin:0}.masthead{height:63px;display:flex;justify-content:space-between;align-items:center;padding:10px var(--pad) 8px;background:var(--paper);position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;min-height:44px}.brand img{width:120px;height:auto;display:block}.header-actions{display:flex;gap:11px;align-items:center}.edition-mark{font-size:9px;letter-spacing:1.4px;font-weight:700;color:var(--muted);width:48px;line-height:1.65}.icon-button{width:42px;height:44px;display:grid;place-items:center;border-radius:50%}.icon-button:hover{background:var(--line)}main{padding-bottom:105px;min-height:calc(100dvh - 63px)}.intro{padding:25px var(--pad) 0}.date-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted)}.preview-badge{font-size:10px;padding:4px 7px;border:1px solid var(--line);border-radius:4px;letter-spacing:.7px;text-transform:uppercase}.intro h1{font-size:31px;font-weight:800;letter-spacing:-1.5px;line-height:1.2;margin:11px 0 6px}.intro h1 em{font-style:normal;color:var(--red)}.intro-sub{font-size:14px;color:var(--muted);line-height:1.6}.topics-scroll{display:flex;gap:8px;overflow-x:auto;padding:22px var(--pad) 19px;scrollbar-width:none}.topics-scroll::-webkit-scrollbar{display:none}.topic-chip{padding:0 17px;min-height:42px;display:flex;align-items:center;border:1px solid var(--line);border-radius:24px;font-size:13px;white-space:nowrap;font-weight:600;flex-shrink:0}.topic-chip.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 var(--pad) 14px}.section-heading h2{font-size:12px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}.section-heading>span{font-size:12px;color:var(--muted)}.feature{margin:0 var(--pad);padding:23px;background:var(--night);color:#fff;border-radius:20px;position:relative;overflow:hidden}.feature-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase}.feature .eyebrow{color:#ebebdd}.pill{font-size:10px;border:1px solid #ffffff35;border-radius:20px;padding:5px 9px;color:#d7ded6}.feature h2{font-size:29px;font-weight:700;letter-spacing:-1.2px;line-height:1.18;margin:19px 0 12px}.feature .description{font-size:14px;line-height:1.65;color:#bfc8bf}.feature-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:17px;border-top:1px solid #ffffff26}.feature-footer .meta{font-size:11px;color:#c2cbc3;line-height:1.8}.read-circle{width:40px;height:40px;border-radius:50%;background:#fff;color:#1c211d;display:grid;place-items:center}.feature>a{display:block}.feature .feature-number{position:absolute;right:20px;top:64px;color:#ffffff06;font-size:150px;line-height:1;font-weight:800;pointer-events:none}.edition-progress{display:flex;align-items:center;gap:12px;margin:17px var(--pad) 8px}.progress-track{display:flex;gap:5px;flex:1}.progress-track i{height:3px;border-radius:4px;background:var(--line);flex:1}.progress-track i.done{background:var(--red)}.progress-label{font-size:10px;color:var(--muted);white-space:nowrap}.story-list{padding:0 var(--pad)}.story-row{display:flex;gap:14px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}.story-index{font-size:12px;font-weight:600;color:#a1a19a;padding-top:2px;min-width:20px;font-variant-numeric:tabular-nums}.story-copy{flex:1}.row-category{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;font-weight:800;color:var(--red);margin-bottom:8px}.story-copy h2{font-size:19px;line-height:1.4;letter-spacing:-.55px;font-weight:700}.row-bottom{margin-top:11px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;gap:8px}.row-bottom svg{height:17px;width:17px}.story-row:hover h2{color:var(--red)}.finish-card{margin:25px var(--pad) 0;padding:23px 21px;border:1px solid var(--line);border-radius:14px;text-align:center}.finish-icon{color:var(--red);display:flex;justify-content:center;margin-bottom:11px}.finish-card h2{font-size:18px;letter-spacing:-.5px}.finish-card p{font-size:13px;color:var(--muted);line-height:1.65;margin:7px 0 0}.source-note{text-align:center;font-size:11px;color:var(--muted);padding:23px var(--pad) 0;line-height:1.7}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(460px,100%);padding:10px 22px max(12px,env(safe-area-inset-bottom));display:flex;justify-content:space-around;background:var(--paper);border-top:1px solid var(--line);z-index:15}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:76px;min-height:47px;color:var(--muted);font-size:10px;font-weight:600}.bottom-nav a.active{color:var(--red)}.bottom-nav a.active svg{stroke-width:2.2}.bottom-nav span{position:relative}.bottom-nav a.active span:before{content:'';position:absolute;inset:-4px -12px;background:var(--soft);border-radius:14px;z-index:-1}.page-top{padding:20px var(--pad) 0;display:flex;align-items:center;justify-content:space-between}.back-link{min-height:44px;display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600}.page-counter{font-size:12px;color:var(--muted);letter-spacing:1px}.reader{padding:18px var(--pad) 0;animation:arrive .25s ease}.reader .story-label{display:flex;gap:10px;align-items:center;margin-bottom:14px}.reader .row-category{margin:0}.reader h1{font-size:32px;line-height:1.2;letter-spacing:-1.2px;font-weight:800}.reader .byline{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:12px;margin:17px 0 21px;line-height:1.5}.reader .byline svg{width:14px;height:14px}.brief-sections{border-top:1px solid var(--line);padding-top:25px}.brief-section{margin-bottom:26px}.section-label{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;font-weight:800;margin-bottom:10px;display:flex;gap:9px;align-items:center}.section-label span{font-size:10px;color:var(--red)}.brief-section p{font-size:16px;line-height:1.85;letter-spacing:-.15px}.why{padding:22px;background:var(--soft);border-radius:14px}.why .section-label{color:var(--red-text)}.next-section{border-left:2px solid var(--line);padding-left:20px}.publisher-link{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;gap:12px}.publisher-link strong{display:block;font-size:14px}.publisher-link span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.share-button{display:flex;justify-content:center;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;min-height:49px;font-size:14px;font-weight:700;margin-top:18px;width:100%}.next-brief{display:block;background:var(--ink);color:var(--paper);border-radius:14px;padding:19px 20px;margin-top:24px}.next-brief small{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.6}.next-brief>div{display:flex;gap:15px;justify-content:space-between;align-items:center;font-size:16px;font-weight:600;line-height:1.5;margin-top:7px}.reader-note{font-size:11px;text-align:center;color:var(--muted);margin:18px 0;line-height:1.7}.topic-grid{padding:23px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:12px}.topic-tile{padding:20px 17px;border:1px solid var(--line);border-radius:15px;background:var(--card);min-height:125px;display:flex;flex-direction:column;justify-content:space-between}.topic-tile:first-child{background:var(--night);color:#fff}.topic-tile svg{color:var(--red)}.topic-tile strong{font-size:16px;margin-top:16px}.topic-tile span{font-size:11px;color:var(--muted);margin-top:5px}.topic-tile:first-child span{color:#c0c8bd}.market-card{margin:5px var(--pad) 24px;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--card)}.market-card h2{font-size:14px;margin-bottom:6px}.market-card>p{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:14px}.market-row{display:flex;justify-content:space-between;gap:14px;font-size:13px;padding:12px 0;border-top:1px solid var(--line)}.market-row a{color:var(--red);font-size:12px;text-decoration:underline;text-underline-offset:4px}.about{padding:25px var(--pad)}.about h1{font-size:32px;line-height:1.25;letter-spacing:-1.3px}.about-lead{font-size:16px;color:var(--muted);line-height:1.8;margin:15px 0 25px}.principle{display:flex;gap:16px;padding:21px 0;border-top:1px solid var(--line)}.principle>span{font-size:13px;color:var(--red);font-weight:800}.principle h2{font-size:16px;margin-bottom:7px}.principle p{font-size:14px;color:var(--muted);line-height:1.8}details{border-top:1px solid var(--line);padding:20px 0}summary{cursor:pointer;font-size:14px;font-weight:700;min-height:30px}details p{font-size:14px;line-height:1.8;color:var(--muted);padding-top:10px}#toast{position:fixed;bottom:92px;left:50%;transform:translate(-50%,10px);width:max-content;max-width:calc(100% - 40px);background:var(--ink);color:var(--paper);padding:12px 19px;border-radius:12px;opacity:0;pointer-events:none;transition:.2s;font-size:13px;z-index:30}#toast.show{opacity:1;transform:translate(-50%,0)}body.dark{--red:#ff5a5f;--red-text:#ff5a5f;--paper:#181b19;--card:#202421;--ink:#f0f1ec;--muted:#a5aaa1;--line:#343b34;--soft:#342322;background:#101210}.brand .logo-dark{display:none}.dark .brand .logo-light{display:none}.dark .brand .logo-dark{display:block}.dark .feature{background:#292f29}.dark .topic-tile:first-child{background:#30382f}@keyframes arrive{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}@media(min-width:600px){.app{border-left:1px solid #dedfd8;border-right:1px solid #dedfd8}.bottom-nav{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:350px){:root{--pad:18px}.brand img{width:107px}.edition-mark{display:none}.feature{padding:20px}.feature h2{font-size:26px}.intro h1{font-size:28px}.reader h1{font-size:29px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
#screen:focus{outline:none}.legal-body{margin-top:18px}.legal-body p{font-size:14px;line-height:1.8;color:var(--muted);margin:0 0 16px}.legal-body a{color:var(--red-text);text-decoration:underline;text-underline-offset:3px}.legal-links{display:flex;flex-wrap:wrap;gap:8px 16px;border-top:1px solid var(--line);margin-top:8px;padding-top:20px}.legal-links a{font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.correction-link{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--muted);margin:18px 0 4px;text-decoration:underline;text-underline-offset:3px}.correction-link svg{width:15px;height:15px}.earth-image{margin:0 0 24px}.earth-image img{width:100%;height:185px;object-fit:cover;border-radius:12px}.earth-image figcaption{font-size:10px;color:var(--muted);margin-top:6px}

.edition-mark{width:auto;font-size:10px;letter-spacing:.2px;line-height:1.5;text-align:right;font-weight:500;white-space:nowrap}.edition-mark strong{font-size:12px;font-weight:800;color:var(--ink)}@media(max-width:350px){.edition-mark{display:block;font-size:9px}.edition-mark strong{font-size:11px}.header-actions{gap:4px}}

/* Compact single-line homepage headline (was a large 2-line display heading).
   Needs .intro h1.intro-h1-compact, not .intro-h1-compact alone: the base
   ".intro h1" rule has higher specificity (element+descendant) than a lone
   class selector, so a lone-class override was silently losing to it. */
.intro h1.intro-h1-compact{font-size:20px;white-space:nowrap}
@media(max-width:350px){.intro h1.intro-h1-compact{font-size:17px}}

/* Categories nav: replaces the old full-row of topic pills with 2 tabs
   (Briefed + a Categories trigger) that opens a slide-down dropdown menu. */
.categories-trigger{background:none;font:inherit;gap:6px}
.categories-trigger svg{width:15px;height:15px;flex-shrink:0}
.categories-menu[hidden]{display:none}
.categories-menu{position:fixed;inset:0;z-index:30}
.categories-menu-backdrop{position:absolute;inset:0;background:rgba(24,25,24,.45)}
.categories-menu-panel{position:relative;margin:96px var(--pad) 0;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 20px 45px rgba(24,25,24,.18);animation:categoriesMenuIn .16s ease}
.categories-menu-item{display:block;padding:15px 18px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}
.categories-menu-item:last-child{border-bottom:none}
.categories-menu-item.active{color:var(--red-text);background:var(--soft)}
@keyframes categoriesMenuIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
body.dark .categories-menu-backdrop{background:rgba(0,0,0,.6)}

/* Briefed/Categories tabs: equal width, Briefed red when active, Categories
   gets a subtle tinted resting style instead of plain default. */
.topics-scroll>.topic-chip{flex:1;justify-content:center}
.topic-chip.briefed-chip.active{background:var(--red);border-color:var(--red);color:#fff}
.categories-trigger:not(.active){background:var(--soft);border-color:var(--soft)}

/* Topics page: Briefed tile spans full width above the 2x3 category grid. */
.topic-tile:first-child{grid-column:1/-1}

/* >=768px (iPad and desktop alike): fluid width instead of the fixed 460px
   mobile card, with a sensible cap so lines of text don't run edge to edge
   on very wide screens. Below 768px (phones) is untouched. */
@media(min-width:768px){
  .app{max-width:min(880px,92vw)}
}

/* Header: logo left (with a small ™ mark), Mono + Dark toggles right, no
   center date. Restored to the original 63px header height/proportions. */
.masthead{height:63px}
main{min-height:calc(100dvh - 63px)}
.logo-wrap{position:relative;display:inline-flex}
.brand-tm{position:absolute;top:-2px;right:2px;font-size:8px;line-height:1;font-weight:600;color:var(--ink)}
@media(max-width:350px){.brand-tm{font-size:7px;right:1px}}
/* Two labelled toggles (Mono, Dark) take more room than the old single one;
   go icon-only on narrow phones so nothing crowds or overflows. */
@media(max-width:480px){.edition-mark{display:none}}

/* Date now sits centered directly under the featured card instead of in the
   header; edition-progress' top margin is trimmed slightly so the two don't
   stack with doubled spacing. */
.feature-date{text-align:center;font-size:10px;font-weight:500;color:var(--muted);margin:12px var(--pad) 0}
.feature-date+.edition-progress{margin-top:10px}

/* Mono: independent of Dark, desaturates the whole page (red accent, cards,
   logo) in one rule rather than touching each component's colors. */
body.mono{filter:grayscale(1)}

/* Hero heading + slogan: centered for Latest and all 6 categories alike.
   Scoped classes so topicDetail()'s own heading (a different view) is untouched. */
.intro-h1-hero{text-align:center}
.intro-sub-hero{text-align:center}
