:root{
  --navy:#0B2A45; --navy-2:#173E61; --navy-3:#1F4A70;
  --coral:#FF5757; --blue:#2082BB; --blue-text:#1A6E9F;
  --ink-2:#3A3F46; --muted:#5A6068; --line:#E1E4E8; --line-2:#D5D8DD;
  --tint:#EEF5FA; --ph:#C9D0D8; --white:#FFFFFF;
  --serif:'Newsreader',Georgia,serif; --sans:'Public Sans',system-ui,-apple-system,sans-serif;
  --wrap:1240px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--navy);font-family:var(--sans);line-height:1.5}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--blue-text)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:24px;padding-right:24px}
.serif{font-family:var(--serif)}
.kicker{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-text)}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:10;background:#fff;padding:8px 12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:4px;font-weight:600;font-size:15px;border:0;cursor:pointer;font-family:inherit;line-height:1.2}
.btn-dark{background:var(--navy);color:#fff}.btn-dark:hover{background:var(--navy-2);color:#fff}
.btn-coral{background:var(--coral);color:var(--navy);font-weight:700}.btn-coral:hover{background:#ff6b6b;color:var(--navy)}
.btn-line{border:1px solid var(--navy);padding:13px 22px}
.btn-link{padding:14px 6px;text-decoration:underline;text-underline-offset:4px;font-weight:600}

/* top bar */
.topbar{background:var(--navy);color:#fff;font-size:13px}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding-top:10px;padding-bottom:10px}
.topbar a{color:#fff}.topbar a:hover{color:#fff;text-decoration:underline}
.topbar nav{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.topbar .btn-coral{padding:8px 14px;font-size:13px}
.topbar .btn-coral:hover{text-decoration:none}

/* masthead */
.mast-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:28px 0 14px}
.mast{border-top:6px solid var(--coral);border-bottom:1px solid var(--navy);padding:18px 0 14px;text-align:center}
.mast-name{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 22px;font-family:var(--serif);font-weight:700;font-size:clamp(46px,9vw,104px);line-height:.95;letter-spacing:-.02em;color:var(--navy)}
.mast-name:hover{color:var(--navy)}
.mast-name img{width:clamp(64px,10vw,128px)}
.mast p{margin:10px 0 0;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--ink-2)}
.sections{border-bottom:1px solid var(--line-2)}
.sections ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:0 28px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.sections a{display:block;padding:14px 0}
.sections a.on{color:var(--blue-text)}

/* compact header */
.chead{border-bottom:1px solid var(--line-2)}
.chead .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:32px;font-weight:700;letter-spacing:-.01em}
.brand img{width:48px}
.chead nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}

/* hero */
.hero{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;padding-top:48px;padding-bottom:56px}
.cover{flex:1 1 300px;max-width:400px;display:block}
.cover img,.cover .ph{width:100%;aspect-ratio:11/14;object-fit:cover;border:1px solid #C9CDD3;box-shadow:0 18px 40px rgba(11,42,69,.18);background:#E7E9EC}
.hero-body{flex:999 1 460px;min-width:0;display:flex;flex-direction:column;gap:20px}
.hero h1{margin:0;font-family:var(--serif);font-weight:600;font-size:clamp(34px,5vw,60px);line-height:1.04;letter-spacing:-.015em}
.hero .lede{margin:0;font-family:var(--serif);font-size:22px;line-height:1.45;color:var(--ink-2);max-width:640px}
.actions{display:flex;flex-wrap:wrap;gap:12px}

/* subscribe */
.sub{background:var(--tint);padding:24px;border-radius:6px;display:flex;flex-direction:column;gap:10px;max-width:620px}
.sub label{font-family:var(--serif);font-size:22px;font-weight:600}
.sub .note{font-size:14px;color:var(--muted)}
.sub .row{display:flex;flex-wrap:wrap;gap:10px}
.sub input{flex:1 1 240px;min-width:0;padding:13px 14px;font-size:16px;border:1px solid #A9AFB7;border-radius:4px;font-family:inherit;background:#fff}
.sub .msg{font-size:14px;font-weight:600;min-height:1.2em}
.sub.dark{background:var(--navy);color:#fff}
.sub.dark .note{color:#C9CDD3}
.sub.dark input{border:0}

/* section heads */
.shead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:2px solid var(--navy);padding-bottom:12px;margin-bottom:32px}
.shead h2{margin:0;font-family:var(--serif);font-size:36px;font-weight:600}
.shead a{font-weight:600;font-size:14px}
.band{background:var(--tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pad{padding-top:56px;padding-bottom:56px}

/* stories */
.lead{display:flex;flex-wrap:wrap;background:#fff;border:1px solid var(--line);margin-bottom:32px}
.lead .img{flex:1 1 420px;min-height:320px;background:var(--ph);object-fit:cover}
.lead .txt{flex:1 1 340px;padding:36px 32px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.lead h3{margin:0;font-family:var(--serif);font-size:40px;line-height:1.08;font-weight:600}
.lead p{margin:0;font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--ink-2)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:28px}
.card{display:flex;flex-direction:column;gap:10px}
.card .img{aspect-ratio:3/2;width:100%;object-fit:cover;background:var(--ph)}
.card .t{font-family:var(--serif);font-size:21px;line-height:1.25;font-weight:600;color:var(--navy)}
.card:hover .t{color:var(--blue-text)}
.ph{display:flex;align-items:center;justify-content:center;color:#3F4650;font-size:13px}

/* facebook band */
.fb{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;padding-top:64px;padding-bottom:64px}
.fb .l{flex:1 1 340px;display:flex;flex-direction:column;gap:16px}
.fb h2{margin:0;font-family:var(--serif);font-size:38px;line-height:1.1;font-weight:600}
.fb p{margin:0;font-size:17px;line-height:1.6;color:var(--ink-2)}
.stats{display:flex;gap:32px;padding:8px 0}
.stats b{display:block;font-family:var(--serif);font-size:36px;color:var(--blue)}
.stats span{font-size:13px;color:var(--muted)}
.sched{flex:1 1 460px;min-width:0;border:1px solid var(--line-2);border-radius:6px}
.sched .h{padding:16px 20px;border-bottom:1px solid var(--line-2);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.sched a{display:flex;gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid #ECEEF1}
.sched a:last-child{border-bottom:0}
.sched .d{width:56px;flex:none;text-align:center}
.sched .d small{display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-text)}
.sched .d b{font-family:var(--serif);font-size:24px}
.sched .s{font-family:var(--serif);font-size:18px;line-height:1.3}

/* issues */
.issues{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:28px}
.issue{display:flex;flex-direction:column;gap:10px}
.issue .c{aspect-ratio:11/14;width:100%;object-fit:cover;border:1px solid #C9CDD3;background:#E7E9EC}
.issue .c.ph{flex-direction:column;gap:8px;padding:14px;align-items:stretch;justify-content:flex-start}
.issue .c.ph b{font-family:var(--serif);font-size:18px;text-align:center;border-bottom:1.5px solid var(--navy);padding-bottom:5px;color:var(--navy)}
.issue .c.ph i{flex:1;background:#CDD2D9}
.issue span{font-family:var(--serif);font-size:20px;font-weight:600}
.yearnav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.yearnav a{border:1px solid var(--line-2);padding:8px 14px;border-radius:4px;font-weight:600;font-size:14px}

/* dark band */
.dark{background:var(--navy);color:#fff}
.dark .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;padding-top:64px;padding-bottom:64px}
.dark .col{display:flex;flex-direction:column;gap:14px}
.dark .kicker{color:var(--coral)}
.dark h2{margin:0;font-family:var(--serif);font-size:36px;font-weight:600}
.dark p{margin:0;font-size:17px;line-height:1.6;color:#C9CDD3}
.dark .newsboy{width:160px}
.btn-white{background:#fff;color:var(--navy);font-weight:700}.btn-white:hover{color:var(--navy);background:#EEF5FA}

/* footer */
.foot{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;font-size:14px;line-height:1.7;color:var(--ink-2);padding-top:48px;padding-bottom:40px}
.foot h4{margin:0 0 6px;color:var(--navy);font-size:14px}
.foot .brand{font-size:28px}.foot .brand img{width:44px}
.foot p{margin:6px 0 0}
.copy{border-top:1px solid var(--line);padding:18px 24px;text-align:center;font-size:13px;color:var(--muted)}

/* article */
.art-wrap{display:flex;flex-wrap:wrap;gap:56px;padding-top:48px;padding-bottom:64px}
article.story{flex:999 1 620px;min-width:0;max-width:760px}
.crumbs{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.crumbs a:last-child{color:var(--muted)}
.story h1{margin:16px 0 18px;font-family:var(--serif);font-size:clamp(34px,5vw,58px);line-height:1.05;font-weight:600;letter-spacing:-.015em}
.story .dek{margin:0 0 24px;font-family:var(--serif);font-size:23px;line-height:1.45;color:var(--ink-2)}
.byline{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-bottom:28px;font-size:14px;color:var(--muted)}
.share{display:flex;gap:8px}
.share a,.share button{display:inline-flex;gap:8px;align-items:center;border:1px solid #C9CDD3;background:#fff;padding:9px 14px;border-radius:4px;font-weight:600;font-size:14px;font-family:inherit;color:var(--navy);cursor:pointer}
.story figure{margin:0 0 32px}
.story figcaption{margin-top:10px;font-size:14px;color:var(--muted)}
.body{font-family:var(--serif);font-size:20px;line-height:1.7;color:#1F2A36}
.body p{margin:0 0 22px}
.body h2,.body h3{font-family:var(--serif);line-height:1.2;margin:36px 0 14px}
.body img{margin:24px 0}
.body blockquote{margin:28px 0;padding:20px 0;border-top:2px solid var(--navy);border-bottom:1px solid var(--line-2);font-size:26px;line-height:1.35;font-style:italic}
.body a{color:var(--blue-text);text-decoration:underline}
.inprint{margin-top:40px;display:flex;gap:16px;align-items:center;background:var(--tint);padding:18px 20px;border-radius:6px}
.inprint .t{width:52px;height:66px;flex:none;background:#DDE1E6;border:1px solid #C9CDD3;object-fit:cover}
.inprint b{display:block}.inprint small{font-size:14px;color:var(--muted)}
aside.side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:32px}
.more .h{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid var(--navy);padding-bottom:10px}
.more a{display:flex;flex-direction:column;gap:4px;padding:14px 0;border-bottom:1px solid var(--line)}
.more .t{font-family:var(--serif);font-size:18px;line-height:1.3}
.fbbox{display:flex;gap:12px;align-items:center;border:1px solid var(--line-2);padding:16px;border-radius:6px}
.fbbox b{display:block}.fbbox small{font-size:13px;color:var(--muted)}

/* page */
.page{max-width:760px;padding-top:48px;padding-bottom:64px}
.page h1{font-family:var(--serif);font-size:clamp(34px,5vw,52px);line-height:1.08;margin:0 0 24px;font-weight:600}

/* reader */
body.reader{background:var(--navy);color:#fff}
.rbar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--navy-3)}
.rbar a{color:#C9CDD3}.rbar a:hover{color:#fff}
.rbar .l{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.rbar .brand{font-size:24px;color:#fff}.rbar .brand img{width:40px}
.rbar .r{display:flex;gap:8px;flex-wrap:wrap}
.rbtn{min-width:44px;height:44px;padding:0 14px;background:var(--navy-2);color:#fff;border:0;border-radius:4px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.rbtn:hover{background:var(--navy-3)}
.rbar .btn-coral{height:44px;padding:0 16px}
.rmain{display:flex;flex-wrap:wrap;min-height:calc(100vh - 69px)}
.stage{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:32px 16px}
.spread-row{display:flex;align-items:center;gap:16px;width:100%;justify-content:center}
.spread{display:flex;gap:2px;max-width:min(1000px,100%);box-shadow:0 24px 60px rgba(0,0,0,.45);touch-action:pan-y}
.spread img{width:auto;max-height:calc(100vh - 230px);max-width:50%;background:#F4F5F7;cursor:zoom-in}
.spread.single img{max-width:100%}
.nav{flex:none;width:48px;height:48px;border-radius:50%;font-size:24px}
.pinfo{font-size:14px;color:#C9CDD3}
.thumbs{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:6px 2px}
.thumbs button{flex:none;width:52px;padding:0;border:1px solid #3A5876;background:#F4F5F7;cursor:pointer;border-radius:2px}
.thumbs button[aria-current="true"]{outline:3px solid var(--coral)}
.thumbs img{width:52px;height:66px;object-fit:cover}
.rail{flex:1 1 320px;min-width:0;max-width:100%;background:#fff;color:var(--navy);padding:28px 24px}
.rail h2{margin:4px 0 10px;font-family:var(--serif);font-size:26px;font-weight:600}
.rail a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line);color:var(--navy)}
.rail a .st{font-family:var(--serif);font-size:17px;line-height:1.3;min-width:0;flex:1;color:var(--navy)}
.rail a .pg{flex:none;font-size:13px;color:var(--muted)}
.empty{max-width:520px;text-align:center;color:#C9CDD3;font-size:17px;line-height:1.6}
.zoom{position:fixed;inset:0;background:rgba(5,20,35,.96);display:none;overflow:auto;z-index:20}
.zoom.on{display:block}
.zoom img{max-width:none;width:min(1600px,200%);margin:0 auto;cursor:zoom-out}
.zoom .rbtn{position:fixed;top:16px;right:16px}

@media (min-width:901px){
  .rail{position:sticky;top:0;align-self:flex-start;max-height:calc(100vh - 69px);overflow:auto}
  .rmain{align-items:flex-start}
  .stage{min-height:calc(100vh - 69px)}
}
@media (max-width:700px){
  .spread img{max-height:none;max-width:100%}
  .nav{display:none}
  .shead h2{font-size:30px}
  .lead h3{font-size:32px}
  .issues{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .issue span{font-size:17px}
}
