/* ==========================================================================
   Daily news: homepage ticker (.nt-*) and news pages (.nd-*, .ns-*, .na-*).
   Scoped file, loaded only on / and /news/**. Uses tokens from styles.css :root.
   ========================================================================== */

/* ---------- Ticker (homepage) ---------- */
.nt,main .nt{margin:0 calc(50% - 50vw)}
.nt{background:var(--card);border-bottom:1px solid var(--line);height:48px;overflow:hidden;font-size:.92rem}
.nt-in{display:flex;align-items:center;gap:14px;height:48px}
.nt-label{flex:none;display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--ink);padding:6px 14px 6px 0;border-right:1px solid var(--line)}
.nt-k{font:700 .72rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--ink)}
.nt-k:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold2);margin-right:8px;vertical-align:1px}
.nt-label time{font-size:.82rem;color:var(--gold2);font-weight:600}
.nt-label:hover .nt-k{text-decoration:underline;text-underline-offset:3px}
.nt-view{flex:1;min-width:0;overflow:hidden;position:relative;height:48px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 28px,#000 calc(100% - 28px),transparent)}
.nt-track{display:flex;width:max-content;height:100%;animation:nt-scroll var(--nt-dur,60s) linear infinite;will-change:transform}
.nt-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;height:100%}
.nt-list li{display:flex;align-items:center;white-space:nowrap}
.nt-list li:after{content:"";width:4px;height:4px;background:var(--gold2);transform:rotate(45deg);margin:0 22px;flex:none}
.nt-list a{color:var(--ink);text-decoration:none;padding:12px 0}
.nt-list a:hover,.nt-list a:focus-visible{color:var(--ox);text-decoration:underline}
.nt:hover .nt-track,.nt:focus-within .nt-track,.nt.nt-paused .nt-track{animation-play-state:paused}
@keyframes nt-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.nt-btn{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:0}
.nt-btn:hover{border-color:var(--ink)}
.nt-ico{display:block;width:10px;height:10px;border-left:3px solid currentColor;border-right:3px solid currentColor}
.nt-paused .nt-ico{width:0;height:0;border-style:solid;border-width:5px 0 5px 9px;border-color:transparent transparent transparent currentColor;margin-left:2px}
.nt-all{flex:none;font-size:.84rem;font-weight:600;color:var(--gold2);text-decoration:none}
.nt-all:hover{color:var(--ink);text-decoration:underline}
@media(max-width:640px){.nt-all{display:none}.nt-label{padding-right:10px}.nt-k{letter-spacing:.1em}.nt-in{gap:10px}}
@media(max-width:400px){.nt-kl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nt-label time{font-size:.8rem}}
/* Reduced motion: no scrolling; a static, swipeable row of headlines, duplicate removed */
@media(prefers-reduced-motion:reduce){
  .nt-track{animation:none;width:auto}
  .nt-dup,.nt-btn{display:none}
  .nt-view{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-mask-image:none;mask-image:none}
  .nt-view::-webkit-scrollbar{display:none}
}

/* Keyboard focus inside the strip: same static, scrollable row as reduced motion, so focused headlines are never clipped (WCAG 2.4.11) */
.nt:focus-within .nt-track{animation:none;transform:none;width:auto}
.nt:focus-within .nt-dup{display:none}
.nt:focus-within .nt-view{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-mask-image:none;mask-image:none}
.nt:focus-within .nt-view::-webkit-scrollbar{display:none}
.nt:focus-within .nt-view{container-type:inline-size}
.nt:focus-within .nt-list a{display:block;max-width:calc(100cqw - 8px);overflow:hidden;text-overflow:ellipsis;padding:12px 2px}
.nt:focus-within .nt-list li:after{margin:0 14px}

/* ---------- News pages ---------- */
.nd{padding-bottom:72px}
.nd-head{max-width:760px;padding:28px 0 8px}
.nd-eye{font:700 .74rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold2);margin:0 0 12px}
.nd-eye:before{content:"";display:block;width:36px;height:3px;background:var(--gold);margin-bottom:14px}
.nd-head h1{margin:0 0 14px;font-size:clamp(2rem,4.2vw,3rem);line-height:1.08}
.nd-h1a{display:block}
.nd-h1b{display:block;font-family:var(--sans);font-weight:600;font-size:clamp(1.05rem,1.8vw,1.3rem);letter-spacing:0;color:var(--ink2);margin-top:10px}
.nd-dek{color:var(--ink2);font-size:1.05rem;margin:0 0 18px;max-width:640px}
.nd-pn{display:flex;justify-content:space-between;gap:12px;margin:8px 0 0;max-width:760px}
.nd-pn a{display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:var(--card);color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}
.nd-pn a:hover{border-color:var(--ink);color:var(--ink)}
.nd-grid{display:grid;grid-template-columns:minmax(0,760px) 260px;justify-content:space-between;gap:48px;margin-top:28px}
.nd-list{border-top:2px solid var(--ink)}
.ns{padding:24px 0 26px;border-bottom:1px solid var(--line);scroll-margin-top:96px}
.ns:target{background:linear-gradient(90deg,rgba(122,90,18,.07),transparent 70%);box-shadow:-12px 0 0 rgba(122,90,18,.07)}
.ns-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:0 0 8px;font-size:.78rem;color:var(--muted)}
.ns-sec{font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold2)}
.ns-h{font-size:clamp(1.3rem,2.2vw,1.6rem);line-height:1.2;margin:0 0 8px}
.ns-sum{margin:0 0 10px;font-size:1.04rem;line-height:1.6;color:var(--ink)}
.ns-src{margin:0;font-size:.86rem;color:var(--muted)}
.ns-src a{color:var(--muted);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.ns-src a:hover{color:var(--ox);text-decoration-color:currentColor}
.nd-note{margin:22px 0 18px;font-size:.86rem;color:var(--muted)}
.nd-side{align-self:start;position:sticky;top:96px}
.nd-side-h{font:700 .74rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:0 0 6px;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.na-m h3{font:600 .95rem/1.3 var(--sans);margin:16px 0 6px;color:var(--ink2)}
.na-m ul{list-style:none;margin:0;padding:0}
.na-m li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.na-m a{color:var(--ink);text-decoration:none}.na-m a:hover{color:var(--ox);text-decoration:underline}
.na-m [aria-current]{font-weight:700}
.na-n{color:var(--muted);font-size:.82rem}
.nd-more{font-size:.9rem;margin:12px 0 0}
.na-full{max-width:760px;margin-top:20px}
.na-mh{font-size:1.4rem;margin:28px 0 4px;padding-bottom:8px;border-bottom:2px solid var(--ink)}
.na-day{margin:0;padding:18px 0;border-bottom:1px solid var(--line)}
.na-day h2{font:600 1.08rem/1.3 var(--sans);margin:0 0 8px}
.na-day h2 a{color:var(--ink)}
.na-day ul{margin:0;padding-left:1.1em;color:var(--muted)}
.na-day li{margin:4px 0}.na-day li a{color:var(--ink2);text-decoration:none}.na-day li a:hover{color:var(--ox);text-decoration:underline}
.na-day .na-n{margin:6px 0 0}
@media(max-width:960px){.nd-grid{grid-template-columns:1fr;gap:28px}.nd-side{position:static}}
@media(max-width:640px){.nd-head{padding-top:18px}.ns{padding:20px 0 22px}.nd-pn a{padding:10px 14px}.na-m li{padding:10px 0}.na-m a{display:inline-block;padding:2px 0}}
