/* CS50 magazine: editorial-report seed 526679789; existing Vazir + burgundy retained. */
.magazine,.story{--mag-ink:var(--text);--mag-muted:var(--muted);--mag-ground:var(--surface);--mag-soft:var(--surface2);--mag-accent:#A51C30;--mag-link:#991b2d;color:var(--mag-ink)}
:root[data-theme="dark"] :is(.magazine,.story){--mag-link:#f3afb9}
.story-rail{max-height:calc(100dvh - 120px);overflow-y:auto;scrollbar-width:thin}
.magazine .magazine-community :is(h2,p,a){color:#fff}
.magazine{padding-block:56px 80px}.magazine :is(h1,h2,h3,p),.story :is(h1,h2,h3,p){margin-top:0}.magazine h1,.story h1{color:var(--mag-ink);letter-spacing:-.035em;text-wrap:balance}
.magazine-heading{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.65fr);gap:48px;align-items:end;margin-bottom:36px}
.magazine-heading h1{font-size:clamp(42px,6.8vw,88px);line-height:1.45;margin-bottom:12px}.magazine-heading>div>p{font-size:20px;line-height:1.9;margin-bottom:0}
.magazine-search{display:grid;gap:12px;font-size:14px}.magazine-search label{color:var(--mag-ink)}.magazine-search-line{display:flex;background:var(--mag-soft);border-radius:4px;overflow:hidden}.magazine-search-line input{min-width:0;flex:1;border:0!important;background:transparent!important;padding:12px 16px;color:var(--mag-ink);font:inherit;height:48px}.magazine-search-line input::placeholder{color:var(--mag-muted);opacity:1}.magazine-search-line button{border:0;background:var(--mag-soft);color:var(--mag-ink);width:48px;min-height:48px;cursor:pointer}
.magazine-filter-line{display:grid;grid-template-columns:1fr 1fr;gap:12px}.magazine-filter-line select{width:100%;font:inherit;min-height:44px;border:0;background:var(--mag-soft);color:var(--mag-ink);padding:8px;border-radius:4px}
.magazine-topics{display:flex;align-items:center;flex-wrap:wrap;gap:12px 28px;margin-bottom:40px;font-size:14px}.magazine-topics>a{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--mag-muted)}.magazine-topics>a[aria-current="page"]{color:var(--mag-ink);text-decoration:underline;text-underline-offset:8px}.magazine-topics .magazine-rss{margin-inline-start:auto}
.magazine-result-note{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px;font-size:16px}.magazine-result-note a{color:var(--mag-link);min-height:44px;display:inline-flex;align-items:center}
.magazine-lead{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center;background:var(--mag-soft);padding:32px}.magazine-lead-cover{grid-column:1;grid-row:1;overflow:hidden;display:block}.magazine-lead-cover img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;transition:transform 220ms ease}.magazine-lead-copy{grid-column:2;grid-row:1;min-width:0}.magazine-lead h2{font-size:clamp(24px,2.1vw,32px);line-height:1.8;margin-bottom:16px;font-weight:700;text-wrap:balance}.magazine-lead h2 a{color:var(--mag-ink)}.magazine-excerpt{font-size:17px;line-height:2;margin-block:20px!important}
.magazine-meta,.magazine-byline{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--mag-muted);font-size:13px;line-height:1.8}.magazine-read{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:48px;margin-top:20px;font-size:15px;font-weight:700;color:var(--mag-ink);transition:gap 180ms}.magazine-read:hover{gap:36px}.magazine-lead-cover:hover img{transform:scale(1.025)}.magazine-lead-type{grid-template-columns:1fr;max-width:none}.magazine-lead-type .magazine-lead-copy{grid-column:1;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}.magazine-lead-type h2{grid-row:1/5;font-size:36px;align-self:center}
.magazine-more,.magazine-series{margin-top:72px}.magazine-more>header,.story-related>header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.magazine-more h2,.magazine-series h2,.story-related>header h2{font-size:32px;line-height:1.7;margin-bottom:0}.magazine-more>header>span{font-size:14px;color:var(--mag-muted)}
.magazine-reading-list{display:grid;grid-template-columns:1fr 1fr;gap:40px 48px}.magazine-story{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:start}.magazine-story-cover{display:block;overflow:hidden}.magazine-story-cover img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform 220ms}.magazine-story-cover:hover img{transform:scale(1.03)}.magazine-story h3{font-size:22px;line-height:1.85;margin-bottom:12px}.magazine-story-copy>p{font-size:16px;line-height:1.95;margin-top:16px}.magazine-story .magazine-read{margin-top:0}.magazine-story:not(:has(.magazine-story-cover)){grid-template-columns:1fr}.magazine-story:last-child:nth-child(odd){grid-column:1/-1;grid-template-columns:minmax(200px,.65fr) minmax(0,1fr);gap:48px}.magazine-story:last-child:nth-child(odd) h3{font-size:28px}
.magazine-series{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1fr);gap:48px;align-items:start}.magazine-series>div>p{font-size:16px;line-height:1.95}.magazine-series>div+div{display:grid;gap:16px}.magazine-series>div+div>a{display:block;background:var(--mag-soft);padding:24px}.magazine-series h3{font-size:22px;line-height:1.8;margin-bottom:8px}.magazine-series span{font-size:14px;color:var(--mag-link)}
.magazine-pagination{display:flex;justify-content:space-between;gap:24px;margin-block:48px;font-size:14px;color:var(--mag-muted)}.magazine-pagination>div{display:flex;gap:28px}.magazine-pagination a{min-height:44px;display:inline-flex;align-items:center;color:var(--mag-ink)}
.magazine-community{margin-top:72px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 40px;padding:40px;background:var(--mag-accent);color:white}.magazine-community h2{font-size:32px;line-height:1.7;margin-bottom:0}.magazine-community p{font-size:17px;line-height:1.9;margin-bottom:0}.magazine-community a{grid-column:2;grid-row:1/3;align-self:center;color:white;text-decoration:underline;text-underline-offset:7px;min-height:48px;display:flex;align-items:center;gap:32px;font-weight:700}
.magazine-empty{background:var(--mag-soft);padding:48px}.magazine-empty h2{font-size:32px}.magazine-empty p{font-size:18px;line-height:1.9}
.magazine :is(a,button,input,select):focus-visible,.story :is(a,button,summary,[tabindex]):focus-visible{outline:3px solid var(--mag-link);outline-offset:4px}
.magazine button,.story button{font-family:inherit}.magazine a,.story a{overflow-wrap:anywhere}.magazine :is(button,a):active,.story button:active{transform:translateY(1px)}
/* Reading: the title precedes the outline in source order at every width. */
.story{padding-block:48px 80px}.story-header{margin-bottom:64px}.story-header>h1{font-size:clamp(30px,3.55vw,52px);line-height:1.8;margin-bottom:32px;max-width:1180px}.story-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:56px;align-items:center}.story-intro:not(:has(.story-cover)){grid-template-columns:minmax(0,840px)}
.story-deck{font-size:19px;line-height:2.1;margin-bottom:24px;white-space:pre-line}.story-byline{display:flex;gap:8px 22px;flex-wrap:wrap;color:var(--mag-muted);font-size:13px;line-height:1.9}.story-breadcrumb{display:flex;gap:8px;align-items:center;margin-top:16px;font-size:14px;color:var(--mag-muted);min-height:44px}.story-breadcrumb a{color:var(--mag-muted);text-decoration:underline;text-underline-offset:5px}
.story-cover{margin:0;overflow:hidden;background:var(--mag-soft)}.story-cover img{display:block;width:100%;height:auto;aspect-ratio:16/11;object-fit:cover}
.story-reading-grid{display:grid;grid-template-columns:220px minmax(0,800px);gap:56px;justify-content:center;align-items:start}.story-rail{position:sticky;top:100px;min-width:0;font-size:14px}.story-toc summary,.story-series summary{font-size:16px;font-weight:700;cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}.story-toc summary::-webkit-details-marker{display:none}
#article-toc{display:grid;gap:4px;max-height:50vh;overflow-y:auto;padding-block:8px}#article-toc a{display:block;padding-block:10px;padding-inline:0 8px;color:var(--mag-muted);font-size:14px;line-height:1.8;transition:color 180ms}#article-toc a[aria-current="location"]{color:var(--mag-link);font-weight:700}
.story-reading-tools{display:grid;gap:4px;margin-top:20px}.story-reading-tools button{background:transparent;border:0;min-height:44px;text-align:start;color:var(--mag-ink);font-size:14px;cursor:pointer;padding:8px 0}.story-reading-tools button[aria-pressed="true"]{color:var(--mag-link);font-weight:700}.story-reading-tools [role="status"]{color:var(--mag-muted);font-size:13px;line-height:1.8}.story-series{margin-top:24px}.story-series ol{padding-inline-start:20px}.story-series li{margin-bottom:12px;line-height:1.9}.story-series a{color:var(--mag-muted)}
.story-content{min-width:0}.story-text{font-size:18px;line-height:2.1;color:var(--mag-ink);overflow-wrap:anywhere}.story-text :is(h2,h3,h4){color:var(--mag-ink);margin-block:48px 20px;line-height:1.8;scroll-margin-top:100px;text-wrap:balance}.story-text h2{font-size:30px}.story-text h3{font-size:24px}.story-text h4{font-size:20px}.story-text p{margin-block:0 24px}.story-text>h2:first-child,.story-text>.story-block:first-child>h2{margin-top:0}
.story-text a,.story-sources a{color:var(--mag-link);text-decoration:underline;text-underline-offset:5px}.story-text :is(ul,ol){padding-inline-start:28px;margin-block:20px 28px}.story-text li{padding-inline-start:4px;margin-bottom:8px}.story-text img{max-width:100%;height:auto}.story-text pre{max-width:100%;overflow-x:auto}.story-text table{font-size:16px;line-height:1.9}
.story-summary,.story-takeaways{padding:28px 32px;background:var(--mag-soft);margin-bottom:40px}.story-summary h2,.story-takeaways h2{font-size:24px;line-height:1.8;margin-bottom:16px}.story-summary p{font-size:18px;line-height:2.05;margin-bottom:0}.story-takeaways{margin-top:48px}.story-takeaways ul{font-size:17px;line-height:2;padding-inline-start:24px;margin-bottom:0}.story-takeaways li+li{margin-top:12px}
.story-author{margin-top:48px;padding:28px 32px;background:var(--mag-soft)}.story-author h2{font-size:16px;margin-bottom:12px;color:var(--mag-muted)}.story-author strong{font-size:20px}.story-author p{font-size:16px;line-height:2;margin-block:12px 0;white-space:pre-line}
.story-tags{display:flex;flex-wrap:wrap;gap:12px 24px;margin-block:32px;font-size:14px}.story-tags a{color:var(--mag-link);min-height:44px;display:inline-flex;align-items:center}.story-chapters{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-block:40px}.story-chapters a{padding:24px;background:var(--mag-soft)}.story-chapters span{font-size:13px;color:var(--mag-muted);display:block;margin-bottom:8px}.story-chapters strong{font-size:18px;line-height:1.9;display:block}
.story-related{margin-top:80px}.story-related>header>a{font-size:14px;color:var(--mag-muted);min-height:44px;display:flex;align-items:center}.story-related-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:40px;align-items:start}.story-related-list img{width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;display:block;margin-bottom:24px}.story-related-list h3{font-size:23px;line-height:1.9;margin-bottom:12px}.story-related-list p{font-size:16px;line-height:1.9;margin-top:12px}.story-related-list>article:only-child{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1fr);gap:12px 40px}.story-related-list>article:only-child>a{grid-row:1/5}.story-related-list>article:only-child img{margin-bottom:0}
.story-preview-notice{padding:20px 24px;background:var(--mag-soft);display:flex;flex-wrap:wrap;gap:12px 24px;font-size:14px;line-height:1.9;margin-bottom:32px}.story-preview-notice>a{color:var(--mag-link)}
.story-progress{position:fixed;inset:0 0 auto;height:3px;z-index:80;pointer-events:none}.story-progress span{display:block;width:100%;height:100%;background:#A51C30;transform:scaleX(0);transform-origin:right}
.story.reader-large .story-text{font-size:21px;line-height:2.1}.magazine-saved{margin-top:24px;background:var(--mag-soft);padding:24px}.magazine-saved a{display:block;padding:12px 0;font-size:17px}.magazine-saved h2{font-size:24px}.magazine-saved p{font-size:16px}.magazine-topics button{background:transparent;border:0;color:var(--mag-muted);min-height:44px;font-size:14px;cursor:pointer}
@keyframes magazine-arrival{from{opacity:.55;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:no-preference){.magazine-arrive{animation:magazine-arrival 220ms ease-out both}}
@media(max-width:1100px){.magazine-heading{gap:32px;grid-template-columns:1fr 300px}.magazine-heading h1{font-size:56px}.magazine-lead{gap:28px;padding:24px}.magazine-lead h2{font-size:25px}.magazine-reading-list{grid-template-columns:1fr}.magazine-story,.magazine-story:last-child:nth-child(odd){grid-template-columns:minmax(160px,.6fr) minmax(0,1fr);gap:32px}.magazine-story:last-child:nth-child(odd) h3{font-size:24px}.story-intro{gap:32px}.story-reading-grid{gap:32px;grid-template-columns:180px minmax(0,1fr)}.story-header>h1{font-size:40px}.story-deck{font-size:18px}.story-related-list>article:only-child{grid-template-columns:240px 1fr}}
@media(max-width:900px){.story-reading-grid{display:block}.story-rail{position:static;margin-bottom:32px;display:grid;grid-template-columns:1fr;gap:12px}.story-toc{padding:8px 20px;background:var(--mag-soft)}.story-toc[open]{padding-bottom:16px}.story-reading-tools{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0;padding-inline:4px}.story-reading-tools [role="status"]{flex-basis:100%}.story-series{margin-top:0}.story-text h2{font-size:28px}}
@media(max-width:900px){.story-rail{max-height:none;overflow:visible}}
@media(max-width:700px){.magazine,.story{padding-block:28px 48px}.magazine-heading{display:block;margin-bottom:20px}.magazine-heading h1{font-size:44px}.magazine-heading>div>p{font-size:17px}.magazine-search{margin-top:24px}.magazine-topics{margin-bottom:24px;gap:4px 22px}.magazine-topics .magazine-rss{margin-inline-start:0}.magazine-lead{display:flex;flex-direction:column;align-items:stretch;padding:0;background:none;gap:24px}.magazine-lead h2{font-size:26px;line-height:1.8;margin-bottom:12px}.magazine-lead-cover img{aspect-ratio:4/3}.magazine-excerpt{font-size:16px;margin-block:16px!important}.magazine-lead-type .magazine-lead-copy{display:block}.magazine-meta,.magazine-byline{font-size:13px;gap:4px 16px}.magazine-read{margin-top:16px}
.magazine-more,.magazine-series{margin-top:48px}.magazine-more>header,.story-related>header{display:block;margin-bottom:24px}.magazine-more>header>span{display:block;margin-top:12px;font-size:13px}.magazine-more h2,.magazine-series h2,.story-related>header h2{font-size:27px}.magazine-reading-list{gap:32px}.magazine-story,.magazine-story:last-child:nth-child(odd){display:flex;flex-direction:column;gap:20px}.magazine-story-cover{width:100%}.magazine-story-cover img{aspect-ratio:16/10}.magazine-story h3,.magazine-story:last-child:nth-child(odd) h3{font-size:23px}.magazine-story-copy>p{font-size:16px}.magazine-series{display:block}.magazine-series>div+div{margin-top:24px}.magazine-series>div+div>a{padding:20px}.magazine-community{display:block;padding:28px 24px;margin-top:48px}.magazine-community h2{font-size:26px}.magazine-community p{font-size:16px;margin-block:16px}.magazine-community a{font-size:15px;justify-content:space-between}.magazine-pagination{flex-wrap:wrap}.magazine-empty{padding:28px 24px}.magazine-empty h2{font-size:26px}
.story-header{margin-bottom:32px}.story-header>h1{font-size:29px;line-height:1.9;margin-bottom:24px}.story-intro{display:flex;flex-direction:column;align-items:stretch;gap:24px}.story-deck{font-size:17px;line-height:2;margin-bottom:20px}.story-byline{font-size:13px;gap:4px 16px}.story-cover img{aspect-ratio:16/11}.story-text{font-size:17px;line-height:2.1}.story-text h2{font-size:26px;margin-block:36px 16px}.story-text h3{font-size:22px}.story-summary,.story-takeaways{padding:24px;margin-bottom:28px}.story-summary h2,.story-takeaways h2{font-size:22px}.story-summary p{font-size:17px}.story-author{padding:24px}.story-chapters{grid-template-columns:1fr}.story-related{margin-top:48px}.story-related-list>article:only-child{display:block}.story-related-list>article:only-child img{margin-bottom:20px}.story-related-list h3{font-size:23px}.story-preview-notice{padding:16px}.story.reader-large .story-text{font-size:19px}}
@media(prefers-reduced-motion:reduce){.magazine *,.story *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.magazine .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}
@media(max-width:700px){.magazine-heading>div>p{font-size:18px}}

