/* loading + states */
.skel{display:block;background:linear-gradient(90deg,var(--line),#eef2f8,var(--line));background-size:200% 100%;animation:sk 1.2s linear infinite;border-radius:4px}
@keyframes sk{to{background-position:-200% 0}}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.state{padding:70px 0 90px;font-size:19px;color:var(--ink-2)}
.state a{color:var(--red);font-weight:700}

/* JOURNAL LIST — paper ground, newest article first and biggest */
.jl-head{background:#fff;padding:56px 0 40px;border-bottom:1px solid var(--line)}
.jl-head h1{font:900 clamp(34px,5vw,58px)/1.06 var(--slab);margin-top:16px;max-width:18ch}
.jl-head .lead{margin:18px 0 0}
.jl-list{background:var(--paper);padding:46px 0 80px}
.jl-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 28px}
.card{display:block;text-decoration:none;min-width:0}
.card img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:4px}
.card .k{margin-top:16px;font:800 13px/1 var(--body);letter-spacing:.14em;color:var(--red);text-transform:uppercase}
.card h2{font:800 22px/1.2 var(--slab);color:var(--navy);margin-top:8px;overflow-wrap:break-word}
.card:hover h2{color:var(--red)}
.card .ex{font-size:16px;line-height:1.55;color:var(--ink-2);margin:10px 0 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
.card.lead-card{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:36px;align-items:center;padding-bottom:34px;border-bottom:1px solid var(--line)}
.card.lead-card img{aspect-ratio:16/10}
.card.lead-card .k{margin-top:0}
.card.lead-card h2{font-size:clamp(26px,3vw,38px);line-height:1.12}
.card.lead-card .ex{font-size:18px}

/* JOURNAL ARTICLE — built to be read: paper ground, big serif, one column, a rail on the side */
.art-head{background:#fff;padding:56px 0 0}
.art-head .wrap{max-width:900px}
.kicker{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.kicker .ribbon{padding:8px 20px;font-size:14px;letter-spacing:.1em;text-transform:uppercase}
.kicker span{color:var(--ink-2);font-weight:600}
.kicker span.ribbon{color:#fff}
.art-head h1{font:900 clamp(32px,5vw,58px)/1.08 var(--slab);margin-top:20px;padding-bottom:30px;overflow-wrap:break-word}
.hero-img{position:relative;max-width:1180px;margin:0 auto}
.hero-img img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:center 60%;border-radius:4px}

.body{background:var(--paper);padding:50px 0 80px}
.body .wrap{display:grid;grid-template-columns:minmax(0,680px) 300px;gap:70px;justify-content:center}
.prose{font:400 21px/1.75 var(--serif);color:#222a3d;min-width:0;overflow-wrap:break-word}
.prose>p:first-child::first-letter{float:left;font:400 84px/.8 var(--heavy);color:var(--red);margin:10px 12px 0 0}
.prose h2{font:800 30px/1.15 var(--slab);color:var(--navy);margin:46px 0 14px;display:flex;gap:12px;align-items:baseline}
.prose h2::before{content:"★";color:var(--red);font-size:22px}
.prose h3{font:700 24px/1.2 var(--slab);color:var(--navy);margin:34px 0 12px}
.prose p{margin:0 0 22px}
.prose ul,.prose ol{margin:0 0 26px;background:#fff;border-left:6px solid var(--red);border-radius:0 8px 8px 0;padding:18px 24px}
.prose ul{list-style:none}
.prose ol{padding-left:48px}
.prose li{padding:8px 0;border-bottom:1px solid var(--line);font-size:19px}
.prose li:last-child{border:0}
.prose a{color:var(--red);font-weight:600}
.prose figure{margin:30px 0}
.prose img{max-width:100%;height:auto;border-radius:4px}
.prose figcaption{font:400 15px/1.4 var(--body);color:var(--ink-2);margin-top:8px}
.prose table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:0 0 26px;font-size:17px}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.prose pre{white-space:pre-wrap}
.prose blockquote{margin:30px 0;padding:6px 0 6px 22px;border-left:4px solid var(--navy);color:var(--ink-2)}
.j-back{display:inline-block;margin-top:0;font:800 14px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);text-decoration:none;border-bottom:3px solid var(--red);padding:21px 0 6px}

.rail{display:flex;flex-direction:column;gap:22px;min-width:0}
.rail .box{background:#fff;border-radius:10px;padding:22px;box-shadow:0 8px 22px rgba(31,51,102,.08)}
.rail .watch{--b:var(--navy);color:#fff;padding:26px 24px}
.rail .watch h3{color:#fff;font-size:22px}
.rail .watch p{color:#DCE6F7;font-size:16px;margin:10px 0 18px}
.rail h4{font:800 13px var(--body);letter-spacing:.16em;color:var(--red);text-transform:uppercase;margin:0 0 10px}
.rail .more a{display:block;text-decoration:none;padding:12px 0;border-top:1px solid var(--line);font:700 17px/1.3 var(--slab);color:var(--navy)}
.rail .more a:hover{color:var(--red)}

@media (max-width:980px){
  .body .wrap{grid-template-columns:minmax(0,1fr);gap:40px}
  .prose{font-size:19px}
  .hero-img img{aspect-ratio:16/10;border-radius:0}
  .jl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .card.lead-card{grid-template-columns:minmax(0,1fr);gap:18px}
}
@media (max-width:600px){
  .jl-head,.art-head{padding-top:36px}
  .jl-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .prose{font-size:18px;line-height:1.7}
  .prose h2{font-size:25px}
  .prose>p:first-child::first-letter{font-size:66px}
  .prose ul,.prose ol{padding:12px 16px}
  .prose ol{padding-left:36px}
  .prose li{font-size:17px}
  .body{padding:34px 0 60px}
}
