@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');
.map-today__asset{position:relative;width:100%;aspect-ratio:2/3;margin:1.25rem 0 0}.map-today__map,.map-today__markers{position:absolute;inset:0;display:block;width:100%;height:100%}.map-today__map{object-fit:contain}.map-today__markers{pointer-events:none}
:root{--paper:#f5f0e5;--ink:#151310;--red:#b21f22;--faint:#c9c0ae;--serif:"Libre Baskerville",Georgia,serif;--mono:"DM Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 var(--serif)}a{color:inherit;text-decoration-color:var(--red);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--red)}.masthead{width:100%;padding:0;border-bottom:1px solid var(--ink)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;width:min(1280px,calc(100% - 52px));margin:auto;padding:18px 0}.masthead__top{display:none}.masthead__top,nav,.eyebrow,.kicker,.source,footer{font:10px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase}.nameplate{display:grid;margin:0;color:var(--ink);font-size:clamp(2.2rem,4.1vw,4.25rem);font-weight:700;letter-spacing:-.09em;line-height:.88;text-decoration:none}.nameplate i{color:var(--red);font-weight:400}.strapline{display:block;margin:8px 0 0;font-size:clamp(.65rem,1vw,.81rem);font-style:italic;letter-spacing:0}.masthead nav{display:flex;justify-content:flex-end;gap:18px;margin:0}.masthead nav a{text-decoration:none}.hero{position:relative;display:block;min-height:330px;max-width:none;margin:0;overflow:hidden;border-bottom:1px solid var(--ink);background:#f5f0e5}.hero__copy{position:relative;z-index:2;width:min(1280px,calc(100% - 52px));margin:auto;padding:31px 50% 30px 0}.eyebrow{margin:0 0 12px;color:var(--red)}.hero h1{margin:0;max-width:630px;font-size:clamp(2.55rem,5.8vw,5.7rem);letter-spacing:-.07em;line-height:.96}.hero__standfirst{max-width:500px;margin:17px 0 0;font-size:1rem}.hero__image{position:absolute;inset:0 0 0 49%;z-index:0;margin:0;overflow:hidden;background:#dbe4e0}.hero__image:before{content:"";position:absolute;z-index:2;inset:0 auto 0 0;width:180px;background:linear-gradient(90deg,var(--paper),rgba(245,240,229,0));pointer-events:none}.pym-placeholder{position:absolute;inset:0;overflow:hidden;background:linear-gradient(150deg,#dce8e6 0%,#c7d9d7 65%,#b5cbca 65%)}.pym-placeholder p{position:absolute;right:20px;bottom:14px;margin:0;font:10px/1.4 var(--mono);text-align:right;text-transform:uppercase;letter-spacing:.08em}.pym-placeholder small{color:var(--red)}.snow{position:absolute;color:white;font-size:22px}.snow--one{top:18%;left:16%}.snow--two{top:13%;right:18%}.snow--three{top:45%;right:9%}.ice-line{position:absolute;right:0;bottom:26%;width:100%;border-top:2px solid #fff;transform:rotate(-3deg)}.desk{position:absolute;right:23%;bottom:19%;width:47%;height:18%;background:#573a2a;border-bottom:6px solid #2e211a}.desk:after{content:"";position:absolute;right:14%;bottom:-62%;height:65%;border-left:7px solid #38281f;box-shadow:-120px 0 #38281f}.lamp{position:absolute;top:-90%;left:14%;height:85%;border-left:4px solid #38281f;transform:rotate(15deg)}.lamp:after{content:"";position:absolute;top:-10px;left:-19px;width:37px;height:18px;background:var(--red);border-radius:22px 22px 3px 3px}.paper{position:absolute;top:17%;right:18%;width:31%;height:48%;background:#f5f0e5;transform:rotate(-7deg)}.penguin{position:absolute;left:25%;bottom:18%;width:105px;height:145px;background:#12191b;border-radius:50% 50% 37% 37%}.penguin:before{content:"";position:absolute;left:20px;top:41px;width:65px;height:94px;background:#f6f0e2;border-radius:48% 48% 35% 35%}.penguin__eye{position:absolute;top:28px;left:52px;z-index:1;width:9px;height:9px;border-radius:50%;background:#fff}.penguin__beak{position:absolute;z-index:2;top:45px;left:69px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:25px solid #d5762a}.edition{width:min(100% - 38px,940px);margin:0 auto}.edition__header{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:45px 0 30px;border-bottom:1px solid var(--ink)}.edition h2{margin:0;font-size:clamp(2.2rem,5vw,4.6rem);letter-spacing:-.07em;line-height:1}.edition__header>p{margin:0;text-align:right;font-size:.77rem;line-height:1.55}.lead-story,.story{display:grid;grid-template-columns:30% 1fr;gap:38px;padding:35px 0;border-bottom:1px solid var(--faint)}.story__heading h2{font-size:clamp(1.55rem,3.1vw,2.65rem)}.kicker{margin:0 0 9px;color:var(--red)}.story__body p{margin:0 0 17px}.deck{font-size:1.15rem;line-height:1.65}.question{padding-left:17px;border-left:3px solid var(--red);font-style:italic}.story{grid-template-columns:28% 1fr 145px}.source{align-self:start;padding-top:5px;color:#5f584d;font-size:9px}.source b,.source a{display:block;margin-bottom:8px}.source b{color:var(--red)}.source a{text-transform:none;letter-spacing:0;line-height:1.45}.pym{display:grid;grid-template-columns:120px minmax(0,730px);gap:38px;max-width:940px;margin:55px auto 0;padding:33px 0 51px;border-top:5px solid var(--red)}.pym__mark{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:3rem;font-style:italic}.pym h2{margin:0 0 18px;font-size:clamp(1.8rem,4vw,3.5rem);letter-spacing:-.065em;line-height:1.04}.pym p{margin:0 0 16px}.try{padding:16px 18px;background:#e8dfce;font-size:.92rem}.try b{color:var(--red)}footer{display:flex;justify-content:space-between;gap:30px;padding:18px max(20px,calc((100% - 940px)/2));border-top:1px solid var(--ink);color:#4e483e;font-size:9px}footer p{margin:0;max-width:680px}footer a{color:var(--red);white-space:nowrap}@media(max-width:700px){.header-inner{display:block;width:calc(100% - 38px);padding:15px 0}.nameplate{font-size:clamp(2.25rem,13vw,3.5rem)}.strapline{max-width:310px;margin:10px 0 14px;font-size:.69rem}.masthead nav{justify-content:flex-start;gap:12px;font-size:8px}.hero{display:block;min-height:0}.hero__copy{width:100%;padding:26px 20px 22px}.hero__standfirst{font-size:.93rem}.hero__image{position:relative;inset:auto;height:205px}.hero__image:before{display:none}.penguin{left:22%;transform:scale(.82);transform-origin:bottom left}.edition{width:min(100% - 38px,940px)}.edition__header{padding:34px 0 22px}.lead-story,.story{display:block;padding:29px 0}.story__heading{margin-bottom:21px}.story__body p{font-size:.95rem}.source{margin-top:22px;padding:13px 0 0;border-top:1px solid var(--faint)}.source a{display:inline-block;margin-right:15px}.pym{display:block;width:calc(100% - 38px);margin-top:35px;padding:26px 0 35px}.pym__mark{width:54px;height:54px;margin-bottom:22px;font-size:2rem}footer{display:block;padding:17px 19px}footer a{display:block;margin-top:9px}}

/* Restore the original Research Today masthead; the hero remains edge-to-edge. */
:root { --paper: #ffffff; --editorial-width: 800px; }

/* Keep supporting text deliberately quieter than body copy, but never tiny. */
:root { --meta-size: .78rem; }
.masthead__top, .masthead nav, .eyebrow, .kicker, .source, footer {
  font-size: var(--meta-size);
  line-height: 1.5;
}
.source { font-size: var(--meta-size); }
.source a { line-height: 1.5; }
.story { grid-template-columns: 28% 1fr 160px; }
.edition__header > p { font-size: var(--meta-size); }
.try { font-size: .96rem; }
footer { font-size: var(--meta-size); }
.hero h1 { font-size: clamp(2.3rem, 4.3vw, 3.95rem); line-height: 1.04; }
.hero__standfirst { font-size: .94rem; }
.edition h2 { font-size: clamp(2rem, 4.5vw, 4.15rem); line-height: 1.06; }
.story__heading h2 { font-size: clamp(1.45rem, 2.8vw, 2.4rem); line-height: 1.12; }
.pym h2 { font-size: clamp(1.7rem, 3.6vw, 3.15rem); line-height: 1.1; }
.about h2 { font-size: clamp(1.45rem, 2.7vw, 2.15rem); line-height: 1.18; }
.hero { background: #ffffff; }
.hero__image > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.masthead { padding: 11px 26px 17px; text-align: center; border-bottom: 5px solid var(--red); }
.masthead__top { display: flex; justify-content: space-between; max-width: 1280px; margin-inline: auto; color: #635d52; }
.nameplate { display: block; max-width: 1280px; margin: 11px auto 4px; font-size: clamp(3rem, 9vw, 7.6rem); line-height: .88; }
.strapline { display: block; max-width: 1280px; margin: 12px auto 16px; font-size: clamp(1rem, 1.7vw, 1.2rem); letter-spacing: 0; line-height: 1.45; }
.masthead nav { justify-content: center; max-width: 1280px; margin-inline: auto; }

/* A shorter, compact opening panel. */
@media (min-width: 701px) {
  .hero { min-height: clamp(17rem, 29vh, 20rem); }
  .hero__copy { width: 100%; margin: 0; padding-top: 24px; padding-right: 40%; padding-bottom: 24px; padding-left: max(19px, calc((100vw - var(--editorial-width)) / 2)); }
  .hero__image { left: 60%; }
  .hero h1 { max-width: 34rem; font-size: clamp(2.3rem, 4.3vw, 3.95rem); line-height: 1.04; }
  .hero__standfirst { max-width: 33rem; margin-top: 16px; }
}

@media (max-width: 700px) {
  .masthead { padding-inline: 19px; }
  .masthead__top { font-size: var(--meta-size); }
  .nameplate { margin-top: 13px; }
  .strapline { max-width: 330px; margin: 12px auto 16px; font-size: 1rem; }
  .masthead nav { justify-content: center; font-size: var(--meta-size); }
  .hero__standfirst, .story__body p { font-size: 1rem; }
}

.edition, .about { width: min(100% - 38px, var(--editorial-width)); }
.about { margin: 0 auto; padding: 54px 0 66px; }
.archive { width: min(100% - 38px, var(--editorial-width)); margin: 0 auto; padding: 54px 0 66px; }
.archive h1 { margin: 0 0 36px; font-size: clamp(2.3rem, 4.3vw, 3.95rem); letter-spacing: -.07em; line-height: 1.04; }
.archive__calendars { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 46px 38px; }
.archive-calendar { width: 100%; border-collapse: collapse; table-layout: fixed; border-top: 1px solid var(--ink); }
.archive-calendar caption { padding: 0 0 12px; text-align: left; font-size: clamp(1.2rem, 2.4vw, 1.65rem); font-weight: 700; letter-spacing: -.04em; }
.archive-calendar th { padding: 7px 0 8px; border-bottom: 1px solid var(--faint); color: #635d52; font: var(--meta-size)/1.4 var(--mono); text-align: center; text-transform: uppercase; }
.archive-calendar td { height: 40px; padding: 0; border-bottom: 1px solid #e8e3da; text-align: center; vertical-align: middle; }
.archive-calendar__day > span { color: #8c8579; font-size: .9rem; }
.archive-calendar__day--published a { display: grid; place-items: center; width: 100%; height: 100%; color: var(--ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.archive-calendar__day--published a:hover { color: var(--red); background: #f3eee4; }
.archive-calendar__day--published a:focus-visible { outline: 3px solid var(--red); outline-offset: -3px; }
.archive-calendar__day--latest a { color: var(--red); }
@media (max-width: 700px) { .archive__calendars { grid-template-columns: 1fr; gap: 38px; } .archive-calendar td { height: 42px; } }
.about__lead { margin-top: 0; font-size: 1.25rem; line-height: 1.55; }
.about h2 { margin: 42px 0 12px; font-size: clamp(1.55rem, 3vw, 2.35rem); letter-spacing: -.055em; line-height: 1.12; }
.about p, .about h2 { max-width: 640px; }
.about p { margin: 0 0 18px; }
.about__note { margin-top: 40px !important; padding: 18px 20px; border-left: 4px solid var(--red); background: #f3eee4; }
@media (max-width: 700px) { .about { padding: 37px 0 46px; } .about__lead { font-size: 1.12rem; } }

@media (min-width: 701px) {
  footer { padding-inline: max(20px, calc((100% - var(--editorial-width)) / 2)); }
}

/* Let Pym's final image meet the footer rule without a gap. */
.pym { padding-bottom: 0; }
.pym > div > figure:last-child { margin-bottom: 0 !important; }

/* Articles use a left rail for their identity and provenance.  Keeping the
   source in the same grid row lets it settle against the article's lower rule,
   regardless of how much copy is in the text columns. */
@media (min-width: 701px) {
  .lead-story,
  .story:not(.map-story) {
    grid-template-columns: 28% minmax(0, 1fr) minmax(0, 1fr);
  }

  .lead-story > .story__heading,
  .story:not(.map-story) > .story__heading {
    grid-column: 1;
    grid-row: 1;
  }

  .lead-story > .story__body,
  .story:not(.map-story) > .story__body {
    grid-column: 2 / -1;
    grid-row: 1;
  }

  .lead-story > .source,
  .story:not(.map-story) > .source {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
  }

}

@media (max-width: 700px) {
  .lead-story > .source,
  .story > .source {
    grid-column: auto;
    grid-row: auto;
  }
}

/* Map Today is its own full-width visual field: explanatory copy keeps the
   right-hand measure while the map itself runs across the complete article. */
@media (min-width: 701px) {
  .map-story {
    grid-template-columns: 28% minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .map-story > .story__heading {
    grid-column: 1;
  }

  .map-story > .story__body {
    display: contents;
  }

  .map-story > .story__body > p {
    grid-column: 2 / -1;
  }

  .map-story > .story__body > .map-today__asset {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .map-story > .story__body { display: block; }
}

/* Older published pages may still contain an empty source aside. */
.source:not(:has(a)) { display: none; }

/* Pym reader-value pilot */
.reader-feedback { width: 100%; margin: 0; padding: 2.5rem 19px; background: #f2f2f2; border-top: 1px solid var(--ink); }
.reader-feedback > form { width: min(100%, var(--editorial-width)); margin: 0 auto; }
.reader-feedback h2 { margin: 0 0 1.5rem; max-width: 24ch; font-size: clamp(1.5rem, 3.6vw, 2.15rem); line-height: 1.2; letter-spacing: -.045em; }
.reader-feedback fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; display: flex; flex-wrap: wrap; gap: .65rem; }
.reader-feedback legend, .reader-feedback form > label { display: block; margin-bottom: .6rem; font: 500 .85rem/1.5 var(--mono); }
.reader-feedback fieldset label { display: inline-flex; align-items: center; gap: .6rem; min-height: 48px; padding: .6rem 1.1rem; border: 1px solid #aaa191; background: var(--paper); cursor: pointer; font: .95rem/1.4 var(--serif); transition: border-color .15s, background .15s; }
.reader-feedback fieldset label:hover { border-color: var(--red); }
.reader-feedback fieldset label:has(input:checked) { border-color: var(--red); background: #f7e9e7; box-shadow: inset 0 0 0 1px var(--red); }
.reader-feedback input[type="radio"] { width: 18px; height: 18px; margin: 0; accent-color: var(--red); }
.reader-feedback textarea, .reader-feedback input[type="text"] { display: block; width: 100%; min-width: 0; margin: 0 0 .6rem; padding: .8rem 1rem; border: 1px solid #aaa191; border-radius: 0; background: var(--paper); color: var(--ink); font: 1rem/1.6 var(--serif); }
.reader-feedback textarea { min-height: 130px; resize: vertical; }
.reader-feedback input::placeholder { color: #6c655b; font-size: .88rem; opacity: 1; }
.reader-feedback :is(input, textarea, button):focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.reader-feedback p { margin: .5rem 0 1.4rem; color: #595247; font: .8rem/1.65 var(--mono); }
.reader-feedback button { min-height: 48px; padding: .8rem 1.35rem; border: 1px solid var(--red); border-radius: 0; background: var(--red); color: #fff; font: 500 .9rem/1.4 var(--mono); cursor: pointer; }
.reader-feedback button:hover { background: #8d171a; }
.reader-feedback button:disabled { cursor: default; opacity: .65; }
.reader-feedback [role="status"]:empty { display: none; }
.reader-feedback [role="status"] { margin: 1rem 0 0; color: var(--ink); }
@media (max-width: 480px) { .reader-feedback { padding-block: 1.5rem; } .reader-feedback fieldset label { flex: 1 1 auto; } .reader-feedback button { width: 100%; } }
