:root{
  --bg:#f6f6f3;
  --ink:#203139;
  --muted:#68747a;
  --blue:#355c7d;
  --gold:#b68c37;
  --line:#d9dedb;
  --paper:#fff;
  --serif:Georgia,"Times New Roman","Songti SC","STSong",serif;
  --sans:"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#e9ece9;color:var(--ink);font-family:var(--sans);line-height:1.8}
a{color:inherit;text-decoration:none}
a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:.18em}
a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.wrap{width:min(1080px,calc(100% - 32px));margin:28px auto;background:var(--bg);box-shadow:0 14px 42px #20313914}
.issue-topbar{min-height:84px;padding:18px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.plastocyanin-link{font:25px/1 var(--serif);letter-spacing:-.6px}
.plastocyanin-link span,.gold-o{color:var(--gold)}
.archive-link{font-size:10px;letter-spacing:1.4px;color:var(--muted);text-transform:uppercase}
.cover{display:grid;grid-template-columns:minmax(0,1fr) 235px;border-bottom:1px solid var(--line);min-height:360px}
.cover-main{padding:52px 40px 44px;position:relative;overflow:hidden}
.cover-main::after{content:"SPIN";position:absolute;right:-12px;bottom:-22px;font:150px/.75 var(--serif);color:#20313905;letter-spacing:-9px;pointer-events:none}
.eyebrow{font-size:10px;letter-spacing:2.2px;color:var(--gold);text-transform:uppercase}
.hero-title{display:inline-block}
.hero-title h1{margin:18px 0 14px;font:400 clamp(56px,8vw,92px)/.9 var(--serif);letter-spacing:-3.5px}
.deck{max-width:610px;margin:0;color:var(--muted);font-size:16px;line-height:1.95}
.cover-epigraph{position:absolute;left:40px;bottom:28px;z-index:1;width:50%;max-width:470px;margin:0;padding-top:9px;border-top:1px solid #b68c3760}
.cover-epigraph-label{margin-bottom:4px;font-size:8px;letter-spacing:1.65px;color:var(--gold);text-transform:uppercase}
.cover-epigraph blockquote{margin:0;font:400 12.5px/1.45 var(--serif);color:#405159}
.cover-epigraph-source{margin-top:5px;color:var(--muted);font-size:8.5px;line-height:1.4}
.cover-epigraph-source strong{font:400 9.5px/1.35 var(--serif);color:var(--ink)}
.cover-epigraph-source a{color:var(--blue)}
.cover-date{background:var(--ink);color:#fff;padding:38px 30px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.cover-date::before{content:"";position:absolute;width:150px;height:150px;border:1px solid #ffffff12;border-radius:50%;top:-54px;right:-42px}
.cover-date strong{font:400 92px/.76 var(--serif);color:#d3ad61}
.cover-date .month{margin-top:18px;font:22px/1 var(--serif)}
.cover-date .year{margin-top:9px;font-size:10px;letter-spacing:1.8px;color:#bdc7c4}
.scope-chip{margin-top:28px;padding-top:16px;border-top:1px solid #ffffff25;font-size:9px;letter-spacing:1.3px;color:#d2dad7;text-transform:uppercase}
.scope{margin:0 40px;border-bottom:1px solid var(--line)}
.scope summary{cursor:pointer;list-style:none;padding:18px 0;font-size:11px;letter-spacing:.8px;color:var(--muted);display:flex;align-items:center;justify-content:space-between}
.scope summary::-webkit-details-marker{display:none}
.scope summary::after{content:"+";font-size:18px;color:var(--gold)}
.scope[open] summary::after{content:"−"}
.scope-copy{padding:0 0 22px}
.scope-copy>span{display:block;margin-bottom:8px;font-size:9px;letter-spacing:1.5px;color:var(--gold)}
.scope-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.9}
.issue{padding:0 40px 20px}
.story{display:grid;grid-template-columns:72px minmax(0,1fr) 145px;gap:26px;padding:38px 0;border-bottom:1px solid var(--line)}
.story:last-child{border-bottom:0}
.story-index{font:400 32px/1 var(--serif);color:var(--gold);padding-top:3px}
.story-index span{color:#a8b1ae;margin-left:2px}
.story-type{margin-bottom:8px;font-size:9px;letter-spacing:1.3px;color:var(--muted);text-transform:uppercase}
.story h2{margin:0 0 14px;font:400 31px/1.42 var(--serif);letter-spacing:-.2px}
.story-tags-inline{display:none;gap:8px;flex-wrap:wrap;margin-bottom:17px}
.story-tags-inline a{font-size:9px;letter-spacing:.8px;color:var(--blue);text-decoration:none}
.story-tags-inline a:is(:hover,:active,:focus-visible){text-decoration:underline;text-underline-offset:.18em}
.summary{margin:0;color:#405159;font-size:15px;line-height:1.95}
.commentary{margin-top:22px;padding-left:17px;border-left:2px solid var(--gold)}
.commentary-label{margin-bottom:6px;font-size:9px;letter-spacing:1.55px;color:var(--gold)}
.commentary p{margin:0;color:#4d5e64;font-size:13px;line-height:1.9}
.story-meta{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 18px;margin-top:22px;padding-top:15px;border-top:1px solid #e2e6e3;font-size:11px;color:var(--muted)}
.story-meta>span{font-size:9px;letter-spacing:1.2px;text-transform:uppercase;color:#87918e}
.story-meta strong{font-weight:500;color:#526168}
.story-meta a{color:var(--blue);overflow-wrap:anywhere}
.source-line{min-width:0;overflow-wrap:anywhere}
.source-doi{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10.5px}
.story-type-link{color:inherit;text-decoration:none}
.story-type-link:is(:hover,:active,:focus-visible){color:var(--blue);text-decoration:underline;text-underline-offset:.18em}
.story-side{font-size:9px;line-height:2.05;letter-spacing:.9px;color:#718087;text-align:right;text-transform:uppercase;padding-top:5px}
.story-side-link{display:inline-block;color:inherit;text-decoration:none}
.story-side-link:is(:hover,:active,:focus-visible){color:var(--blue);text-decoration:underline;text-underline-offset:.18em}
.issue-nav{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0 40px;padding:28px 0;border-top:1px solid var(--line)}
.issue-nav a{display:flex;flex-direction:column;gap:4px}
.issue-nav .next{text-align:right}
.issue-nav small{font-size:9px;letter-spacing:1.4px;color:var(--muted)}
.issue-nav strong{font:400 16px/1.4 var(--serif)}
.footer{padding:28px 40px 34px;border-top:2px solid var(--ink);display:flex;justify-content:space-between;gap:24px;color:var(--muted);font-size:10px;line-height:1.8}
.footer-brand{font:400 15px/1 var(--serif);color:var(--ink)}
.footer-right{text-align:right}
@media(max-width:760px){
  body{background:var(--bg)}
  .wrap{width:100%;margin:0;box-shadow:none}
  .issue-topbar{padding:16px 20px}
  .cover{grid-template-columns:1fr}
  .cover-main{padding:38px 20px 32px}
  .cover-main::after{font-size:110px}
  .hero-title h1{font-size:60px;letter-spacing:-2px}
  .deck{font-size:14px}
  .cover-epigraph{position:static;width:100%;max-width:none;margin-top:18px;padding-top:9px}
  .cover-epigraph blockquote{font-size:12px}
  .cover-date{min-height:170px;padding:22px 20px}
  .cover-date strong{font-size:66px}
  .scope-chip{margin-top:18px}
  .scope{margin:0 20px}
  .issue{padding:0 20px 8px}
  .story{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:30px 0}
  .story h2{font-size:23px}
  .story-side{display:none}
  .story-tags-inline{display:flex}
  .story-index{font-size:25px}
  .summary{font-size:14px}
  .commentary p{font-size:12.5px}
  .story-meta{grid-template-columns:90px minmax(0,1fr);gap:7px 12px}
  .issue-nav{margin:0 20px;gap:12px}
  .issue-nav strong{font-size:14px}
  .footer{padding:24px 20px 30px;display:block}
  .footer-right{text-align:left;margin-top:10px}
}
@media print{
  body{background:#fff}
  .wrap{width:100%;margin:0;box-shadow:none}
  .issue-topbar,.archive-link,.issue-nav{display:none}
  .story{break-inside:avoid}
}

/* Shared editorial hover/focus treatment for issue title and brand links. */
.plastocyanin-link,
.hero-title,
.footer-parent-brand,
.footer-brand{
  color:var(--ink);
  text-decoration:none;
}
.plastocyanin-link:is(:hover,:active,:focus-visible),
.hero-title:is(:hover,:active,:focus-visible),
.footer-parent-brand:is(:hover,:active,:focus-visible),
.footer-brand:is(:hover,:active,:focus-visible){
  color:var(--blue);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:.18em;
  text-decoration-skip-ink:auto;
}
.plastocyanin-link:is(:hover,:active,:focus-visible) span,
.hero-title:is(:hover,:active,:focus-visible) .gold-o,
.footer-parent-brand:is(:hover,:active,:focus-visible) .footer-dot,
.footer-brand:is(:hover,:active,:focus-visible) .gold-o{
  color:var(--gold);
}
.hero-title h1{color:inherit}
.footer-brand-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}
.footer-parent-brand{font:400 16px/1.25 var(--serif)}
.footer-brand{font:400 14px/1.25 var(--serif)}
.footer-dot{color:var(--gold)}
.footer-brand-stack small{margin-top:4px;color:var(--muted);font-size:9px;letter-spacing:.5px}


/* plastocyanin parent brand: gold o + gold dot everywhere. */
.plastocyanin-o,
.plastocyanin-dot,
.footer-o,
.footer-dot{
  color:var(--gold);
}
.plastocyanin-link:is(:hover,:active,:focus-visible) .plastocyanin-o,
.plastocyanin-link:is(:hover,:active,:focus-visible) .plastocyanin-dot,
.footer-parent-brand:is(:hover,:active,:focus-visible) .footer-o,
.footer-parent-brand:is(:hover,:active,:focus-visible) .footer-dot{
  color:var(--gold);
}
