/* DUDE International — broadsheet design system
   Newsprint #F6F2E9 · Ink #141414 · Accent (oxblood) #7B2230 · Up #2F6B43 · Down #A23B2A
   Type: Playfair Display (wordmark) · Old Standard TT (headlines) · Source Serif 4 (text, data) */
:root{--wrap:1240px;--gut:24px;
--fw:'Playfair Display','Times New Roman',serif;--fh:'Old Standard TT','Times New Roman',Georgia,serif;--fb:'Source Serif 4','Source Serif Pro',Georgia,serif}
[data-theme=light]{--paper:#F6F2E9;--paper2:#EFE9DC;--mat:#FFFDF8;--ink:#141414;--ink2:#3A3833;--mute:#6E695F;--hair:rgba(20,20,20,.16);--rule:#141414;--acc:#7B2230;--up:#2F6B43;--down:#A23B2A;color-scheme:light}
[data-theme=dark]{--paper:#161512;--paper2:#1E1D19;--mat:#1B1A16;--ink:#ECE7DC;--ink2:#CFC9BC;--mute:#9A9488;--hair:rgba(236,231,220,.17);--rule:#ECE7DC;--acc:#D49A92;--up:#8DBB95;--down:#E0907F;color-scheme:dark}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:56px}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.5 var(--fb);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .3s,color .3s}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.num{font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}
.up{color:var(--up)!important}.down{color:var(--down)!important}
.kick{margin:0 0 .35rem;font:600 .8rem/1.2 var(--fb);font-variant:all-small-caps;font-size:.95rem;letter-spacing:.09em;color:var(--acc)}
.fine{margin:.6rem 0 0;font-size:.78rem;line-height:1.4;color:var(--mute);font-style:italic}
.hed{margin:0;font-family:var(--fh);font-weight:700;line-height:1.14;letter-spacing:-.003em;color:var(--ink);text-wrap:balance}
.hed a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s}
.hed a:hover{background-size:100% 1px}
.meta{display:flex;flex-wrap:wrap;gap:0 .5em;margin:.45rem 0 0;font-size:.8rem;color:var(--mute);font-variant:all-small-caps;letter-spacing:.06em;font-size:.92rem}
.meta .src{color:var(--ink2);font-weight:600}
.meta time::before{content:'·';margin-right:.5em}
.why{margin:.45rem 0 0;font-size:.94rem;line-height:1.48;color:var(--ink2)}
.why__l{font-weight:600;font-variant:all-small-caps;letter-spacing:.06em;color:var(--acc);font-size:1.02em;margin-right:.15em}
/* market strip */
.strip{border-bottom:1px solid var(--hair);-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent);background:var(--paper);font-size:.8rem;overflow-x:auto;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip__in{display:flex;justify-content:flex-start;gap:1.6rem;white-space:nowrap;padding:.42rem var(--gut);max-width:none}
.q b{font-weight:600}.q .num{margin-left:.25em}.q .num.up,.q .num.down{font-size:.95em}
/* masthead */
.mast{padding:.6rem 0 0}
.mast__util{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--mute);font-style:italic}
.mast__act{display:flex;gap:1.1rem;align-items:center;font-style:normal;font-variant:all-small-caps;letter-spacing:.08em;font-size:.95rem}
.mast__act a:hover,.theme:hover{color:var(--ink)}
.theme{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;letter-spacing:inherit;font-variant:inherit}
[data-theme=light] .t-light,[data-theme=dark] .t-dark{display:none}
.wordmark{display:block;text-align:center;font:900 clamp(2.5rem,6.6vw,5.1rem)/1 var(--fw);letter-spacing:-.012em;margin:.5rem 0 .65rem;color:var(--ink)}
.dateline{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:3px double var(--rule);border-bottom:3px double var(--rule);padding:.32rem 0 .3rem;font-variant:all-small-caps;letter-spacing:.1em;font-size:.95rem;color:var(--ink2)}
.dateline span{flex:1}.dateline span:last-child{text-align:right}.dl-mid{text-align:center;font-weight:600;color:var(--ink)}
.secnav{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--hair)}
.secnav__in{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut);display:flex;justify-content:flex-start;gap:1.5rem;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.secnav__in::-webkit-scrollbar{display:none}
.secnav a{padding:.55rem 0 .5rem;font-size:.9rem;font-weight:600;color:var(--ink2);border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.secnav a:hover{color:var(--ink)}.secnav a.on{color:var(--ink);border-bottom-color:var(--acc)}
/* labels */
.label{margin:0 0 .2rem;padding-top:.45rem;border-top:2px solid var(--rule);font:700 1.02rem/1.2 var(--fb);font-variant:all-small-caps;letter-spacing:.12em}
.label__sub{margin:0 0 .6rem;font-size:.84rem;font-style:italic;color:var(--mute);line-height:1.4}
/* front page */
.front{display:grid;grid-template-columns:262px minmax(0,1fr) 292px;margin-top:1.4rem}
.front>*{padding:0 var(--gut)}.front>*:first-child{padding-left:0}.front>*:last-child{padding-right:0}
.front>*+*{border-left:1px solid var(--hair)}
.brief{list-style:none;margin:0;padding:0}
.brief li{padding:.85rem 0;border-top:1px solid var(--hair)}.brief li:first-child{border-top:0;padding-top:.4rem}
.brief .hed{font-size:1.08rem;line-height:1.22}
.brief__why{margin:.35rem 0 0;font-size:.86rem;line-height:1.45;color:var(--ink2)}
.edstats{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--rule)}
.edstats dl{margin:0}.edstats dl div{display:flex;align-items:baseline;gap:.4rem;font-size:.86rem;padding:.12rem 0}
.edstats dt{color:var(--ink2)}.edstats dl div::after{content:'';order:1;flex:1;border-bottom:1px dotted var(--hair)}
.edstats dd{order:2;margin:0;font-weight:600}
.lead .kick{margin-top:.9rem}
.hed--lead{font-size:clamp(1.9rem,3.1vw,2.6rem);line-height:1.08;letter-spacing:-.008em}
.deck{margin:.7rem 0 0;font-size:1.17rem;line-height:1.45;color:var(--ink2)}
.byline{margin:.7rem 0 0;font-size:.95rem;color:var(--mute);font-variant:all-small-caps;letter-spacing:.06em}
.byline .src{color:var(--ink);font-weight:600}.byline a{color:var(--acc);font-weight:600}.byline a:hover{text-decoration:underline}
.seconds{display:grid;grid-template-columns:1fr 1fr;margin-top:1.3rem;border-top:1px solid var(--rule)}
.seconds>*{padding:.9rem 0 1rem}.seconds>*:nth-child(odd){padding-right:1.1rem}.seconds>*:nth-child(even){padding-left:1.1rem;border-left:1px solid var(--hair)}.seconds>*:nth-child(n+3){border-top:1px solid var(--hair)}
.st--m .hed{font-size:1.42rem;line-height:1.15}
.st--s .hed{font-size:1.12rem;line-height:1.2}
/* engravings */
.eng{margin:0}
.eng__img{background:var(--paper);overflow:hidden;aspect-ratio:3/2}
.eng--lead .eng__img{aspect-ratio:16/9}
.eng__img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);mix-blend-mode:multiply}
[data-theme=dark] .eng__img img,[data-theme=dark] .toon__frame img,[data-theme=dark] .railtoon img{filter:grayscale(1) invert(.88) contrast(1.05);mix-blend-mode:screen}
.eng figcaption{text-align:right;font-size:.7rem;color:var(--mute);margin-top:.25rem;letter-spacing:.02em}
/* right rail */
.note__hed{margin:.5rem 0 .4rem;font:italic 400 1.42rem/1.2 var(--fh)}
.note__body{margin:0;font-size:.95rem;line-height:1.55;color:var(--ink2)}
.note__body::first-letter{float:left;font:700 3.05rem/.8 var(--fh);margin:.3rem .35rem 0 0;color:var(--ink)}
.note__fine{margin:.5rem 0 0;font-size:.74rem;font-style:italic;color:var(--mute)}
.railmk{margin-top:1.4rem}
table{border-collapse:collapse;width:100%}
.mini td{padding:.3rem 0;border-bottom:1px solid var(--hair);font-size:.86rem}
.mini td.num{text-align:right;padding-left:.6rem}
.mini tr:last-child td{border-bottom:0}
.railtoon{display:block;margin-top:1.4rem}
.railtoon .crop{display:block;border:1px solid var(--hair);margin-top:.5rem;overflow:hidden;aspect-ratio:4/3}
.railtoon img{display:block;filter:grayscale(1);width:100%;height:100%!important;object-fit:cover;transform:scale(1.14)}
.inside{margin-top:1.4rem}.inside ol{list-style:none;margin:0;padding:0}
.inside li a{display:flex;align-items:baseline;gap:.4rem;padding:.32rem 0;font-size:.92rem;border-top:1px solid var(--hair)}
.inside li:first-child a{border-top:0}.inside .dots{flex:1;border-bottom:1px dotted var(--mute);opacity:.5;transform:translateY(-3px)}
.inside li a:hover span:first-child{text-decoration:underline;text-underline-offset:2px}
.railtoon p{margin:.45rem 0 0;font:italic .95rem/1.4 var(--fh);text-align:center;color:var(--ink2)}
/* sections */
.sec{margin-top:3rem}
.sec__head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.2rem 1rem;border-top:3px double var(--rule);padding-top:.55rem;margin-bottom:1rem}
.sec__head h2{margin:0;font:700 1.5rem/1.1 var(--fb);font-variant:all-small-caps;letter-spacing:.1em}
.sec__head p{margin:0;font-size:.86rem;color:var(--mute)}
.sec__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr) minmax(0,1fr)}
.col{padding:0 var(--gut)}.col--a{padding-left:0}.col--c{padding-right:0}.col+.col{border-left:1px solid var(--hair)}
.col--a .st{padding-top:.8rem}
.col--a .st--m .hed{font-size:1.65rem;line-height:1.12}
.noart .col--a .st--m .hed{font-size:2rem}
.col--b .st,.col--c .st{padding:0 0 1rem}
.col--b .st+.st,.col--c .st+.st,.col--c .st+.also,.col--c .st+.wx,.col--a .st+.also{border-top:1px solid var(--hair);padding-top:1rem}
.also ul{list-style:none;margin:0;padding:0}
.also li{padding:.45rem 0;border-top:1px solid var(--hair);font:700 .98rem/1.25 var(--fh)}
.also li:first-child{border-top:0;padding-top:0}
.also li a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.also .meta{display:block;margin-top:.15rem;font-family:var(--fb);font-weight:400}
.wx{margin-bottom:1rem}
.wx__now{margin:.1rem 0 .4rem;font-size:.95rem;color:var(--ink2)}
.wx__now b{font:400 2.1rem/1 var(--fh);color:var(--ink);margin-right:.3rem}
.wx__days td{padding:.22rem 0;border-top:1px solid var(--hair);font-size:.85rem;color:var(--ink2)}
.wx__days td.num{text-align:right;color:var(--ink)}.wx__days td.lo{color:var(--mute);padding-left:.5rem}
/* watchlist */
.watch__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.watch__chart{padding-right:var(--gut)}.watch__table{padding-left:var(--gut);border-left:1px solid var(--hair)}
.panel__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.3rem 1rem;margin-bottom:.5rem}
.panel__head h3{margin:0;font:700 1.05rem/1.2 var(--fh)}
.panel__head small{font-size:.8rem;color:var(--mute);font-style:italic}
.chips{display:flex;flex-wrap:wrap;gap:.15rem .9rem}
.chip{background:none;border:0;padding:.1rem 0;font:600 .9rem var(--fb);font-variant:all-small-caps;letter-spacing:.06em;color:var(--mute);cursor:pointer;border-bottom:2px solid transparent}
.chip.on{color:var(--ink);border-bottom-color:var(--cc)}
.chartbox{position:relative;height:300px}.chartbox.tall{height:330px}.chartbox.short{height:150px}
.movers2{display:flex;gap:2rem;margin-top:.8rem;padding-top:.6rem;border-top:1px solid var(--hair);font-size:.92rem}
.movers2 p{margin:0}.movers2 .kick{display:inline;margin-right:.35rem}
.movers{font-size:.88rem}
.movers th{text-align:left;font-weight:600;font-variant:all-small-caps;letter-spacing:.07em;font-size:.95rem;color:var(--mute);padding:.3rem .4rem .35rem;border-bottom:1px solid var(--rule);cursor:pointer;user-select:none;white-space:nowrap}
.movers th.num,.movers td.num{text-align:right}
.movers th.asc::after{content:' ▲';font-size:.6em}.movers th.desc::after{content:' ▼';font-size:.6em}
.movers td{padding:.32rem .4rem;border-bottom:1px solid var(--hair)}
.movers td:first-child,.movers th:first-child{padding-left:0}
.movers td b{font-weight:600}.movers td small{margin-left:.45em;color:var(--mute);font-size:.78em;letter-spacing:.04em}
.sparkcell{width:104px;padding-right:0!important}
.spark{width:96px;height:22px;display:block}
.spark.up{color:var(--up)}.spark.down{color:var(--down)}
/* cartoon */
.toon__fig{max-width:560px;margin:0 auto;text-align:center}
.toon__frame{background:var(--mat);border:1px solid var(--hair);padding:clamp(10px,2.5vw,26px);box-shadow:0 1px 0 var(--hair)}
.toon__frame .crop{display:block;overflow:hidden}
.toon__frame img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;transform:scale(1.3);filter:grayscale(1) contrast(1.04);mix-blend-mode:multiply}
.toon__fig figcaption{margin:1rem auto 0;max-width:36em;font:italic 400 1.35rem/1.4 var(--fh);color:var(--ink)}
/* numbers */
.ngrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.ngrid>*{padding:0 var(--gut)}.ngrid>*:first-child{padding-left:0}.ngrid>*:last-child{padding-right:0}.ngrid>*+*{border-left:1px solid var(--hair)}
.mini--src td.bar{width:42%;padding:0 .6rem}
.mini--src td.bar span{display:block;height:5px;background:var(--ink2);opacity:.55}
.hist{margin-top:1.2rem;padding-top:.6rem;border-top:1px solid var(--hair)}
/* footer */
.foot{margin-top:3.5rem;padding:1.6rem 0 2.4rem;border-top:3px double var(--rule);text-align:center}
.wordmark--s{font-size:2rem;margin:.2rem 0 .5rem}
.foot__tag{margin:0 auto;font-style:italic;color:var(--ink2);max-width:40em}
.foot__small{margin:.8rem auto 0;max-width:52em;font-size:.78rem;line-height:1.55;color:var(--mute)}
.foot__links{margin:.8rem 0 0;font-variant:all-small-caps;letter-spacing:.08em;color:var(--ink2)}
.foot__links a:hover{color:var(--acc)}
/* archive */
.archive{margin-top:2rem;min-height:50vh}
.arch{list-style:none;margin:0;padding:0}
.arch a{display:grid;grid-template-columns:260px 1fr auto;gap:1rem;align-items:baseline;padding:.9rem 0;border-bottom:1px solid var(--hair)}
.arch .d{font:700 1.1rem var(--fh)}.arch .t{color:var(--ink2)}.arch .c{font-variant:all-small-caps;letter-spacing:.06em;color:var(--mute)}
.arch a:hover .t{text-decoration:underline;text-underline-offset:3px}
/* motion: quiet fades only */
.reveal{opacity:0;transition:opacity .7s ease}
.reveal.in{opacity:1}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none}html{scroll-behavior:auto}}
/* responsive */
@media (max-width:1120px){
  .front{grid-template-columns:240px minmax(0,1fr)}
  .rail--right{grid-column:1/-1;border-left:0!important;padding:0!important;margin-top:2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .rail--right>*{margin-top:0!important;padding:0 var(--gut)}.rail--right>*:first-child{padding-left:0}.rail--right>*:last-child{padding-right:0}.rail--right>*+*{border-left:1px solid var(--hair)}
}
@media (max-width:980px){
  .sec__grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .col--a{grid-column:1/-1;padding-right:0;margin-bottom:1.2rem}
  .col--b{padding-left:0;border-left:0!important}
  .watch__grid,.ngrid{grid-template-columns:minmax(0,1fr)}
  .watch__chart,.watch__table,.ngrid>*{padding:0!important;border-left:0!important}
  .watch__table,.ngrid>*+*{margin-top:1.6rem}
}
@media (max-width:760px){
  :root{--gut:18px}
  body{font-size:17px}
  .front{grid-template-columns:minmax(0,1fr);margin-top:1rem}
  .front>*{padding:0!important;border-left:0!important}
  .center{order:-1}
  .rail--brief{margin-top:2rem}
  .rail--right{display:block;margin-top:2rem}
  .rail--right>*{padding:0!important;border-left:0!important}
  .railmk,.railtoon{margin-top:1.6rem!important}
  .seconds{grid-template-columns:minmax(0,1fr)}
  .seconds>*{padding:.9rem 0 0!important;border-left:0!important}.seconds>*+*{border-top:1px solid var(--hair);margin-top:.9rem}
  .hed--lead{font-size:1.85rem}
  .deck{font-size:1.08rem}
  .sec{margin-top:2.4rem}
  .sec__grid{grid-template-columns:minmax(0,1fr)}
  .col{padding:0!important;border-left:0!important}
  .col--b .st:first-child,.col--c>*:first-child{border-top:1px solid var(--hair);padding-top:1rem}
  .col--a .st--m .hed,.noart .col--a .st--m .hed{font-size:1.5rem}
  .st--m .hed{font-size:1.3rem}
  .dateline{font-size:.82rem;letter-spacing:.06em}.dl-mid{display:none}
  .mast__tag{display:none}.mast__util{justify-content:flex-end}
  .wordmark{font-size:clamp(2.1rem,10.4vw,3rem);margin:.35rem 0 .5rem}
  .secnav__in{justify-content:flex-start;gap:1.2rem}
  .hide-s{display:none}
  .sparkcell{width:72px}.spark{width:66px}
  .chartbox{height:240px}.chartbox.tall{height:300px}
  .arch a{grid-template-columns:1fr;gap:.2rem}
  .movers2{flex-direction:column;gap:.3rem}
}
