/* The approved scroll-driven camera sequence lives in style.css and app.js.
   This sheet styles only the newspaper visible after that sequence. */
:root { --paper:#f7f6f2; --paper-deep:#e9e5dd; --ink:#131313; --fine:#aaa59d; --scarlet:#a20b18; }
.site { font-family:Arial,Helvetica,sans-serif; scroll-behavior:smooth; overscroll-behavior:contain; }
.site button,.site input { font:inherit; }
.site button:focus-visible,.site a:focus-visible,.site input:focus-visible { outline:3px solid var(--scarlet); outline-offset:3px; }
.site .site-inner { width:min(1440px,100%); background:var(--paper); min-height:100%; }
.site .site-top { position:relative; z-index:2; display:flex; align-items:center; padding:20px clamp(22px,5vw,80px) 18px; border-bottom:0; background:var(--paper); }
.site .brand-small { text-decoration:none; color:var(--ink); font-size:clamp(22px,2.3vw,32px); letter-spacing:-.075em; }
.site .brand-small span { color:var(--scarlet); }
.site .site-nav { display:flex; justify-content:flex-end; gap:clamp(12px,2vw,36px); font-size:11px; font-weight:800; }
.site .site-nav a { color:var(--ink); opacity:.72; text-decoration:none; white-space:nowrap; border-bottom:1px solid transparent; padding:5px 0; }
.site .site-nav a:hover { color:var(--scarlet); opacity:1; border-bottom-color:currentColor; }
.edition-rule { display:flex; justify-content:space-between; padding:12px clamp(22px,5vw,80px); gap:20px; font-size:10px; line-height:1.25; text-transform:uppercase; font-weight:800; letter-spacing:.12em; }
.edition-rule span:nth-child(2) { color:var(--scarlet); }
.newspaper-section { padding:clamp(38px,5vw,80px) clamp(22px,5vw,80px) clamp(50px,6vw,90px); border-bottom:1px solid var(--ink); scroll-margin-top:0; }
.front-page,.archive-page,.department-page,.bio-page { border-bottom:0; }
.section-kicker { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:2px solid var(--ink); border-bottom:1px solid var(--fine); padding:10px 0; font-size:10px; line-height:1.4; font-weight:800; text-transform:uppercase; letter-spacing:.17em; }
.section-kicker span:first-child { color:var(--scarlet); }
.section-title,.lead-title { font-family:Georgia,'Times New Roman',serif; color:var(--ink); font-weight:900; letter-spacing:-.075em; line-height:.97; }
.section-title em,.lead-title em { color:var(--scarlet); font-style:normal; }
.section-title { font-size:clamp(52px,7vw,112px); margin:34px 0 14px; }
.section-deck { font-family:Georgia,'Times New Roman',serif; font-size:clamp(16px,1.55vw,22px); line-height:1.35; max-width:660px; color:#4c4945; margin:0; }
.front-page { padding-top:clamp(28px,3.3vw,50px); display:flex; flex-direction:column; }
.lead-title { font-size:clamp(60px,8.5vw,126px); max-width:1200px; margin:clamp(32px,5vw,67px) 0 45px; }
.lead-title em { display:block; }
.lead-columns { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,6vw,90px); border-top:3px double var(--ink); padding:30px 0 0; }
.lead-columns p { font-family:Georgia,'Times New Roman',serif; font-size:clamp(22px,2.15vw,31px); font-weight:700; line-height:1.35; margin:0; }
.lead-columns p + p { border-left:1px solid var(--fine); padding-left:clamp(25px,4vw,60px); }
.lead-bridge { margin:40px 0 0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(18px,1.55vw,23px); line-height:1.5; }
.lead-bridge p { margin:0 0 16px; }
.lead-resolution { margin:43px 0 40px; padding-top:34px; border-top:3px double var(--ink); }
.lead-resolution strong { font-family:Georgia,'Times New Roman',serif; display:block; font-size:clamp(36px,5vw,73px); line-height:1.06; letter-spacing:-.06em; color:var(--scarlet); }
.lead-resolution p { font-size:clamp(16px,1.4vw,20px); max-width:740px; line-height:1.5; margin:23px 0 0; }
.section-bottomline { display:flex; justify-content:flex-end; align-items:center; gap:15px; margin-top:auto; border-top:1px solid var(--ink); padding-top:17px; font-weight:800; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.section-bottomline a { color:var(--scarlet); text-decoration:none; }
.section-bottomline a:hover { text-decoration:underline; }

.archive-page { background:var(--paper); }
.archive-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:38px; }
.archive-controls { display:flex; align-items:center; gap:13px; flex:none; }
.archive-controls button { width:43px; height:43px; border:1px solid var(--ink); background:transparent; font-size:21px; cursor:pointer; }
.archive-controls button:disabled { opacity:.28; cursor:default; }
.archive-controls button:not(:disabled):hover { background:var(--ink); color:#fff; }
.archive-controls span { min-width:76px; text-align:center; font-size:11px; font-weight:800; letter-spacing:.08em; font-variant-numeric:tabular-nums; }
.archive-rail { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 20px)/2); gap:20px; overflow-x:auto; padding:0 0 18px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--scarlet) #cfc9bf; }
.case-card { min-height:370px; border:1px solid #38332d; background:transparent; display:flex; flex-direction:column; padding:clamp(22px,3vw,35px); scroll-snap-align:start; }
.case-top { display:flex; justify-content:space-between; gap:10px; border-bottom:3px double var(--ink); padding-bottom:13px; font-size:11px; letter-spacing:.16em; font-weight:900; }
.case-top span:first-child { color:var(--scarlet); }
.case-card h3 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(30px,3.25vw,49px); letter-spacing:-.06em; line-height:1.06; margin:45px 0 27px; }
.case-card dl { margin:0 0 30px; border-top:1px solid #ccc3b9; }
.case-card dl div { display:grid; grid-template-columns:105px 1fr; gap:10px; padding:10px 0; border-bottom:1px solid #ccc3b9; font-size:13px; line-height:1.35; }
.case-card dt { font-weight:800; }
.case-card dd { margin:0; color:#79736c; font-style:italic; }
.case-read { align-self:flex-start; background:none; border:0; border-bottom:1px solid var(--scarlet); padding:0 0 5px; margin-top:auto; font-size:11px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; color:var(--scarlet); cursor:pointer; }
.case-read:hover { color:var(--ink); border-bottom-color:var(--ink); }
.archive-hint { font-size:11px; text-align:right; letter-spacing:.08em; text-transform:uppercase; margin:14px 0 0; color:#716c64; }

.ad-layout { display:grid; grid-template-columns:3fr 2fr; gap:15px; align-items:stretch; min-height:550px; margin-top:35px; }
.ad-side { display:grid; grid-template-rows:5fr 3fr; gap:15px; }
.classified { position:relative; border:1px solid var(--ink); padding:clamp(22px,2.7vw,40px); display:flex; flex-direction:column; min-width:0; }
.classified-head { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-bottom:12px; border-bottom:1px solid currentColor; font-size:10px; text-transform:uppercase; letter-spacing:.13em; font-weight:800; }
.primary-ad { background:transparent; color:var(--ink); }
.primary-ad .classified-head { color:var(--ink); }
.ad-index { text-transform:uppercase; color:var(--scarlet); font-size:11px; font-weight:900; letter-spacing:.18em; margin:40px 0 7px; }
.primary-ad h3 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(39px,4.4vw,76px); letter-spacing:-.068em; line-height:1.04; margin:0 0 30px; }
.primary-ad h3 em { color:var(--scarlet); font-style:normal; }
.primary-ad>p:not(.ad-index) { max-width:580px; font-size:clamp(15px,1.3vw,19px); line-height:1.55; margin:0 0 35px; }
.primary-ad-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-top:auto; }
.primary-ad-bottom .ink-button { flex:none; margin-left:auto; padding:14px 16px; font-size:10px; gap:14px; }
.price-stamp { box-sizing:border-box; display:inline-flex; flex:none; flex-direction:column; align-items:center; justify-content:center; min-width:164px; min-height:65px; padding:9px 13px; border:4px double #245743; outline:1px solid rgba(36,87,67,.42); outline-offset:3px; color:#245743; font-family:Georgia,'Times New Roman',serif; font-size:21px; font-weight:900; line-height:1.06; letter-spacing:-.055em; text-align:center; white-space:nowrap; transform:rotate(-7deg); opacity:.88; pointer-events:none; }
.price-stamp small { font-family:Arial,Helvetica,sans-serif; font-size:11px; font-weight:900; line-height:1.3; letter-spacing:.06em; }
.ai-ad { background:transparent; }
.ai-ad h3 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(27px,3vw,43px); letter-spacing:-.06em; line-height:1.08; margin:25px 0 14px; }
.ai-ad p { line-height:1.5; font-size:15px; margin:0 0 15px; }
.ai-ad-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:auto; }
.ad-note { flex:1 1 180px; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; color:var(--scarlet); }
.ai-ad-bottom .price-stamp { min-width:142px; min-height:56px; padding:6px 9px; margin-left:auto; font-size:18px; transform:rotate(4deg); }
.build-ad { background:transparent; }
.build-ad h3 { font-family:Georgia,'Times New Roman',serif; letter-spacing:-.05em; font-size:clamp(24px,2.45vw,36px); line-height:1.06; margin:20px 0 12px; }
.build-ad p { line-height:1.45; font-size:14px; margin:0; }
.build-ad-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:auto; }
.build-ad-bottom p { flex:1 1 180px; }
.price-stamp-custom { min-width:145px; min-height:49px; padding:8px 11px; margin-left:auto; font-size:17px; transform:rotate(-3deg); }
.department-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:27px; }
.department-footer p { margin:0; font-size:13px; color:#65615a; font-style:italic; }
.ink-button { border:1px solid var(--ink); border-radius:0; background:var(--scarlet); color:#fff; padding:19px 24px; display:inline-flex; justify-content:space-between; align-items:center; gap:35px; font-size:12px; line-height:1.2; text-transform:uppercase; letter-spacing:.12em; font-weight:900; cursor:pointer; text-align:left; }
.ink-button:hover { background:var(--ink); }
.ink-button span { font-size:18px; font-weight:400; }

.bio-page { background:var(--paper); }
.bio-header { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:25px; font-size:12px; font-weight:800; letter-spacing:.15em; }
.bio-sticker { display:inline-block; border:1px solid var(--scarlet); color:var(--scarlet); padding:8px 12px; font-size:12px; text-transform:uppercase; }
.bio-title { font-size:clamp(48px,6.1vw,92px); margin-top:22px; max-width:1100px; }
.bio-content { display:grid; grid-template-columns:minmax(240px,.76fr) minmax(0,1.24fr); gap:clamp(35px,7vw,120px); padding-top:28px; margin-top:38px; border-top:1px solid var(--ink); }
.dossier-card { align-self:start; background:transparent; border:1px solid var(--ink); padding:26px; }
.dossier-title { text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:900; border-bottom:3px double var(--ink); padding-bottom:13px; }
.dossier-name { font-family:Georgia,'Times New Roman',serif; font-size:clamp(29px,3.2vw,47px); line-height:1; letter-spacing:-.06em; margin:27px 0; }
.dossier-layout { display:grid; grid-template-columns:minmax(110px,.78fr) minmax(0,1fr); gap:16px; align-items:start; }
.dossier-portrait { display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; object-position:center 13%; background:#111; border:1px solid #c9c4bd; }
.dossier-facts { display:grid; gap:0; min-width:0; }
.dossier-facts span { display:block; border-bottom:1px solid #c9c4bd; padding:8px 0; font-size:12px; line-height:1.4; overflow-wrap:break-word; }
.dossier-facts span:first-child { padding-top:0; }
.dossier-special { margin-top:19px; padding:13px 14px; border-left:3px solid var(--scarlet); background:#efede7; }
.dossier-special-title,.dossier-networks-title { text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:900; }
.dossier-special p { margin:8px 0 0; font-size:13px; line-height:1.4; }
.dossier-networks { margin-top:17px; padding-top:14px; border-top:1px solid #c9c4bd; }
.dossier-links { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-top:11px; }
.dossier-links a { color:var(--ink); font-size:12px; font-weight:700; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:3px; }
.dossier-links a:hover,.dossier-links a:focus-visible { color:var(--scarlet); }
.bio-story { font-family:Georgia,'Times New Roman',serif; font-size:clamp(16px,1.4vw,20px); line-height:1.62; }
.bio-story p { margin:0 0 22px; }
.bio-story .drop-intro:first-letter { font-size:3.6em; float:left; line-height:.7; padding:12px 9px 0 0; color:var(--scarlet); }
.bio-story h3 { font-size:clamp(25px,2.5vw,37px); line-height:1.13; letter-spacing:-.045em; margin:37px 0 24px; }
.bio-followup h3 { margin-top:0; }
.bio-followup { margin-top:26px; }
.bio-story .bio-turn { font-weight:800; margin-top:38px; }
.bio-story blockquote { border-left:5px solid var(--scarlet); padding:15px 0 15px 24px; margin:22px 0 0; font-size:clamp(27px,3.1vw,47px); font-weight:400; font-style:italic; line-height:1.2; letter-spacing:-.06em; color:var(--scarlet); }

.contact-page { padding-bottom:clamp(72px,8vw,135px); }
.contact-feature { max-width:900px; padding:75px 0 30px; margin:auto; }
.contact-copy .section-title { margin-top:0; }
.contact-copy .section-title em { display:block; }
.contact-copy>p { max-width:670px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(17px,1.55vw,23px); line-height:1.45; margin:0 0 15px; }
.contact-copy .ink-button { margin-top:25px; }
.paper-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px clamp(22px,5vw,80px); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }
.paper-footer a { color:var(--scarlet); text-decoration:none; }
.paper-footer .restart { padding:12px 15px; font-size:10px; }

.paper-dialog { max-width:min(540px,calc(100vw - 32px)); width:100%; max-height:calc(100dvh - 36px); overflow-y:auto; margin:auto; border:2px solid var(--ink); padding:clamp(25px,4vw,47px); background:var(--paper); box-shadow:10px 10px 0 rgba(0,0,0,.2); color:var(--ink); }
.paper-dialog::backdrop { background:rgba(3,3,3,.78); }
.dialog-close { position:absolute; top:12px; right:14px; border:0; background:none; font-size:30px; line-height:1; padding:5px 10px; cursor:pointer; }
.dialog-eyebrow { font-size:10px; font-weight:900; letter-spacing:.16em; color:var(--scarlet); text-transform:uppercase; }
.paper-dialog h2 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(32px,5vw,52px); letter-spacing:-.06em; line-height:1.04; margin:22px 18px 27px 0; }
.contact-options { display:grid; gap:12px; }
.contact-option { background:transparent; border:1px solid var(--ink); text-align:left; padding:20px; cursor:pointer; }
.contact-option:hover { background:#ebe6dc; }
.contact-option strong { display:flex; justify-content:space-between; font-family:Georgia,'Times New Roman',serif; font-size:25px; line-height:1.15; letter-spacing:-.035em; }
.contact-option strong span { color:var(--scarlet); }
.contact-option small { display:block; margin-top:9px; color:#77716a; font-size:12px; }
.dialog-status,.form-feedback { padding:12px 15px; background:#efe3d9; border-left:3px solid var(--scarlet); font-size:13px; line-height:1.45; margin:20px 0 0; }
.dialog-back { background:none; color:var(--scarlet); font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; border:0; padding:0; cursor:pointer; margin-bottom:32px; }
.dialog-form-screen form { display:grid; gap:12px; }
.dialog-form-screen form label { font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:900; margin-top:8px; }
.dialog-form-screen input { display:block; width:100%; color:var(--ink); background:#fffefa; border:1px solid #b4b0a7; border-radius:0; padding:14px 15px; font-size:16px; }
.dialog-form-screen .ink-button { margin-top:16px; width:100%; }
.dialog-form-screen .form-info { font-size:11px; color:#726b64; line-height:1.5; margin:0; }
.dialog-form-screen .form-consent { display:flex; align-items:flex-start; gap:11px; margin:8px 0 0; }
.dialog-form-screen .form-consent input[type="checkbox"] { display:block; flex:0 0 18px; width:18px; height:18px; margin:2px 0 0; padding:0; accent-color:var(--scarlet); cursor:pointer; }
.dialog-form-screen .form-consent .consent-copy { font-size:12px; line-height:1.6; color:#5d5752; }
.dialog-form-screen form .form-consent label { display:inline; cursor:pointer; font-size:12px; font-weight:400; text-transform:none; letter-spacing:normal; margin:0; }
.dialog-form-screen .form-consent a { color:var(--scarlet); text-decoration:underline; text-underline-offset:2px; }
.dialog-form-screen .form-consent a:focus-visible { outline:3px solid var(--scarlet); outline-offset:3px; }
.case-dialog p { font-family:Georgia,'Times New Roman',serif; font-size:18px; line-height:1.5; }
.case-detail-fields { margin:0; border-top:1px solid var(--ink); }
.case-detail-fields div { display:grid; grid-template-columns:140px 1fr; gap:10px; padding:16px 0; border-bottom:1px solid #c9c4bd; }
.case-detail-fields dt { font-weight:800; }
.case-detail-fields dd { margin:0; }

@media(max-width:1000px) {
  .site .site-top { align-items:flex-start; flex-direction:column; gap:12px; }
  .site .site-nav { justify-content:flex-start; width:100%; gap:20px; overflow-x:auto; flex-wrap:nowrap; padding-bottom:4px; }
  .lead-title { font-size:clamp(55px,9vw,90px); }
  .lead-columns { gap:35px; }
  .ad-layout { grid-template-columns:1.15fr 1fr; }
  .primary-ad h3 { font-size:clamp(35px,5vw,54px); }
}
@media(max-width:700px) {
  .edition-rule span:nth-child(2) { display:none; }
  .edition-rule { font-size:9px; }
  .newspaper-section { padding-top:36px; padding-bottom:56px; }
  .section-kicker { font-size:9px; }
  .lead-title { font-size:clamp(54px,13vw,88px); margin:32px 0 29px; }
  .lead-columns { grid-template-columns:1fr; padding-top:22px; gap:22px; }
  .lead-columns p + p { border-left:0; padding-left:0; }
  .lead-bridge { margin-top:30px; }
  .lead-resolution { margin-top:30px; }
  .section-bottomline { margin-top:38px; font-size:9px; }
  .section-title { font-size:clamp(48px,12vw,80px); }
  .archive-heading { display:block; }
  .archive-controls { margin-top:22px; }
  .archive-rail { grid-auto-columns:88%; }
  .case-card { min-height:400px; }
  .case-card h3 { font-size:38px; }
  .ad-layout { display:block; min-height:0; }
  .primary-ad { min-height:510px; }
  .ad-side { display:block; }
  .ai-ad,.build-ad { margin-top:15px; min-height:285px; }
  .build-ad { min-height:230px; }
  .department-footer { align-items:stretch; flex-direction:column; }
  .bio-header { align-items:flex-start; font-size:10px; }
  .bio-title { font-size:clamp(47px,10.9vw,76px); }
  .bio-content { grid-template-columns:1fr; gap:50px; }
  .dossier-card { max-width:410px; }
  .dossier-layout { grid-template-columns:1fr; }
  .dossier-portrait { width:min(210px,100%); }
  .bio-story { font-size:17px; }
  .contact-feature { padding-top:50px; }
  .paper-footer { align-items:flex-start; flex-wrap:wrap; }
}
@media(max-width:430px) {
  .site .site-nav { gap:17px; }
  .site .site-nav a { font-size:10px; }
  .edition-rule { flex-wrap:wrap; }
  .lead-title { font-size:clamp(48px,11vw,60px); }
  .archive-rail { grid-auto-columns:96%; }
  .classified { padding:23px; }
  .primary-ad h3 { font-size:40px; }
  .section-kicker span:last-child { text-align:right; }
  .paper-footer .restart { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  .site { scroll-behavior:auto; }
}
