.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}
.home-hero{margin-top:28px;background:var(--ink);color:white}.hero-stage{position:relative}.hero-slide{position:relative;min-height:570px;isolation:isolate;display:flex;align-items:flex-end}.hero-slide[hidden]{display:none}.hero-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.4) 65%,rgba(0,0,0,.08));z-index:-1}.hero-copy{padding:48px;max-width:920px}.hero-category{display:inline-flex;align-items:center;gap:10px;color:var(--lime);font-weight:700}.hero-category:before{content:'';width:8px;height:18px;background:var(--lime)}.hero-copy h2{font-size:clamp(28px,3.1vw,43px);line-height:1.5;margin:12px 0}.hero-copy h2 a:hover{color:var(--lime)}.hero-copy p{max-width:740px;color:#f5f5f5;font-size:17px;line-height:1.9}.hero-read{display:inline-flex;gap:30px;align-items:center;background:var(--red);color:#fff;padding:10px 24px;margin-top:24px;font-weight:700}.hero-read:hover{background:var(--lime);color:var(--ink)}.hero-controls{display:flex;align-items:center;gap:16px;padding:14px 24px;border-top:3px solid var(--lime)}.hero-controls[hidden]{display:none}.hero-controls button{font:inherit;color:white;background:transparent;border:1px solid #737373;cursor:pointer;min-width:44px;min-height:44px}.hero-controls button:hover{color:var(--ink);background:var(--lime)}.hero-controls button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.hero-dots{display:flex;gap:4px}.hero-dots button{border:0;position:relative}.hero-dots button:after{content:'';position:absolute;width:9px;height:9px;background:#aaa;border-radius:50%;inset:0;margin:auto}.hero-dots button[aria-pressed=true]:after{background:var(--lime);width:24px;border-radius:8px}.hero-count{font-size:14px;color:var(--lime)}.hero-controls [data-pause]{margin-inline-start:auto;padding:6px 14px;font-size:13px}.home-stories{padding-top:30px}.home-stories .section-title{border-top:0;padding-top:0}.home-stories .meta span{color:var(--ink);border-inline-start:5px solid var(--lime);padding-inline-start:9px}.home-stories .picture img{aspect-ratio:1.85}
@media(max-width:650px){.home-hero{margin-top:20px}.hero-slide{min-height:530px}.hero-copy{padding:28px 20px}.hero-copy h2{font-size:27px}.hero-copy p{font-size:15px}.hero-controls{padding:10px 8px;gap:2px;flex-wrap:wrap}.hero-dots button{min-width:36px}.hero-controls [data-pause]{padding-inline:8px}.hero-count{margin-inline:8px}.home-stories .grid{grid-template-columns:1fr}.home-stories{padding-top:26px}}
/* Native horizontal scrolling supports touch and trackpad gestures. */
.hero-stage.swipe-ready{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;direction:rtl}
.hero-stage.swipe-ready::-webkit-scrollbar{display:none}
.swipe-ready .hero-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.hero-stage.dragging{scroll-snap-type:none;cursor:grabbing;user-select:none}
.hero-controls{justify-content:center;padding-block:5px}
.hero-stage:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
/* Six manually browsable stories, three visible on desktop. */
.home-stories .stories-track{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;padding-block:6px;direction:rtl}
.stories-track::-webkit-scrollbar{display:none}
.home-stories .stories-track .card{flex:0 0 calc((100% - 64px)/3);min-width:0;scroll-snap-align:start}
.stories-controls{display:flex;justify-content:center;gap:12px;margin-top:24px;direction:rtl}
.stories-controls[hidden]{display:none}
.stories-controls button{width:48px;height:44px;border:1px solid var(--ink);background:var(--lime);color:var(--ink);font-size:24px;cursor:pointer}
.stories-controls button:hover:not(:disabled){background:var(--ink);color:var(--lime)}
.stories-controls button:disabled{opacity:.3;cursor:default}
.stories-controls button:focus-visible,.stories-track:focus-visible{outline:3px solid var(--red);outline-offset:3px}
@media(max-width:950px){.home-stories .stories-track{gap:24px}.home-stories .stories-track .card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:650px){.home-stories .stories-track{gap:18px}.home-stories .stories-track .card{flex-basis:100%}}

/* Split lead: the story artwork and copy stay together beside the opinion banner. */
.home-lead{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(250px,1fr);gap:24px;margin-top:28px;align-items:stretch}
.home-lead .home-hero{margin:0;min-width:0;display:flex;flex-direction:column}
.home-lead .hero-stage{flex:1;min-width:0}
.home-lead .hero-slide{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;min-height:0}
.home-lead .hero-slide[hidden]{display:none}
.home-lead .hero-slide>img{position:static;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;background:#eee9e1;z-index:auto}
.home-lead .hero-slide:after{display:none}
.home-lead .hero-copy{padding:24px 28px 26px;max-width:none;display:flex;flex-direction:column;align-items:flex-start;flex:1;border-top:4px solid var(--lime)}
.home-lead .hero-copy h2{font-size:clamp(23px,2.25vw,34px);line-height:1.5;margin:10px 0}
.home-lead .hero-copy p{font-size:15px;line-height:1.9;margin:0 0 16px;color:#ddd}
.home-lead .hero-read{margin-top:auto;padding:8px 20px;font-size:15px}
.home-lead .hero-controls{border-top:1px solid #454545}
.opinion-promo{background:var(--lime);color:var(--ink);padding:28px;display:flex;flex-direction:column;position:relative;overflow:hidden;border-bottom:6px solid var(--red)}
.opinion-promo-top{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #1f1f2040;font-size:14px;padding-bottom:16px}
.opinion-mark{font-family:Georgia,serif;font-size:110px;line-height:.8;font-weight:bold;height:65px}
.opinion-promo-copy{margin:auto 0;padding:32px 0}
.opinion-kicker{font-size:14px;border-right:4px solid var(--red);padding-right:10px}
.opinion-promo h2{font-size:clamp(40px,4.2vw,64px);line-height:1.2;margin:22px 0}
.opinion-promo p{font-size:19px;line-height:1.8;margin:0}
.opinion-promo-link{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--ink);color:white;padding:16px;font-size:16px;font-weight:700}
.opinion-promo-link:hover{background:var(--red)}
.opinion-promo-link:focus-visible{outline:3px solid var(--red);outline-offset:4px}
@media(max-width:850px){.home-lead{grid-template-columns:1fr;gap:18px}.opinion-promo{padding:24px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.opinion-promo-top{display:none}.opinion-promo-copy{padding:0}.opinion-promo h2{font-size:36px;margin:12px 0}.opinion-promo h2 br{display:none}.opinion-promo h2 br:after{content:' '}.opinion-promo p{font-size:16px}.opinion-promo p br{display:none}.opinion-promo-link{font-size:14px}.home-lead .hero-copy h2{font-size:27px}}
@media(max-width:500px){.home-lead{margin-top:20px}.home-lead .hero-copy{padding:20px}.home-lead .hero-copy h2{font-size:24px}.opinion-promo{grid-template-columns:1fr;gap:20px}.opinion-promo h2{font-size:40px}.opinion-promo-link{justify-self:start;gap:30px}}

/* Client sketch: 30% opinion / 70% story; artwork gets two thirds of the lead. */
.home-lead{grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:20px;height:clamp(560px,46vw,680px)}
.home-lead .hero-stage{flex:1;min-height:0}
.home-lead .hero-slide{display:grid;grid-template-rows:minmax(0,7fr) minmax(0,3fr);height:100%}
.home-lead .hero-slide[hidden]{display:none}
.hero-artwork{display:block;min-height:0;overflow:hidden}
.hero-artwork img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.home-lead .hero-copy{padding:16px 24px;justify-content:center;min-height:0}
.home-lead .hero-category{font-size:13px}
.home-lead .hero-copy h2{font-size:clamp(23px,2.15vw,32px);line-height:1.45;margin:8px 0 0}
.home-lead .hero-controls{flex:none;height:54px;box-sizing:border-box}
@media(max-width:850px){.home-lead{grid-template-columns:1fr;height:auto}.home-lead .home-hero{height:570px}.home-lead .hero-copy h2{font-size:26px}}
@media(max-width:500px){.home-lead .home-hero{height:510px}.home-lead .hero-slide{grid-template-rows:minmax(0,6fr) minmax(0,4fr)}.home-lead .hero-copy{padding:16px 18px}.home-lead .hero-copy h2{font-size:23px}}

/* Two equal panels: section promotion above an editorial recommendation. */
.opinion-promo.opinion-split{padding:0;border:0;display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch}
.opinion-ad{padding:24px 26px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:0}
.opinion-split h2{font-size:clamp(32px,3.1vw,46px);line-height:1.25;margin:16px 0 10px}
.opinion-split p{font-size:16px;line-height:1.7;margin:0 0 16px}
.opinion-split .opinion-promo-link{font-size:14px;padding:10px 16px;gap:30px;margin-top:auto}
.opinion-pick{background:#fff;border-top:4px solid var(--red);padding:20px 24px;display:flex;flex-direction:column;justify-content:center;min-height:0;gap:14px}
.opinion-pick-label{color:var(--red);font-size:13px;font-weight:700}
.opinion-pick-image{display:block;background:var(--paper)}
.opinion-pick-image img{width:100%;height:auto;display:block;object-fit:contain}
.opinion-pick h3{font-size:clamp(20px,1.8vw,25px);line-height:1.55;margin:0}
.opinion-pick h3 a:hover{color:var(--red)}
@media(max-width:850px){.opinion-promo.opinion-split{grid-template-rows:minmax(260px,1fr) minmax(260px,1fr)}.opinion-ad,.opinion-pick{padding:24px}.opinion-split h2{font-size:40px}.opinion-pick-image{max-width:420px}.opinion-pick h3{font-size:24px}.opinion-split .opinion-promo-link{margin-top:0}}

/* Separate launch teaser; the existing reader-opinion archive stays independent. */
.opinion-promo.opinion-teaser{display:flex;flex-direction:column;justify-content:space-between;padding:28px;gap:20px;border-bottom:6px solid var(--red)}
.teaser-soon{font-size:14px;border-bottom:1px solid #1f1f2040;padding-bottom:18px}
.teaser-quote{font-family:Georgia,serif;font-size:110px;line-height:.7;align-self:flex-end;font-weight:bold}
.opinion-teaser h2{font-size:clamp(36px,3.5vw,54px);line-height:1.3;margin:18px 0}
.opinion-teaser p{font-size:18px;line-height:1.8}
.opinion-teaser .opinion-promo-link{font-size:15px}
@media(max-width:850px){.opinion-promo.opinion-teaser{min-height:380px}.teaser-quote{display:none}.opinion-teaser h2{font-size:42px}}
