/* graphicle.dev, set as a newspaper. Every face is served from /assets; no
   sans-serif anywhere. Fonts: Playfair Display (headlines), Source Serif 4
   (text), UnifrakturMaguntia (the nameplate), Courier Prime (code), all
   under the SIL Open Font License (/assets/licenses/). */
@font-face{font-family:"Playfair Display";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-weight:400;font-style:italic;font-display:swap;src:url(/assets/fonts/playfair-display-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-weight:700;font-style:normal;font-display:swap;src:url(/assets/fonts/playfair-display-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-weight:700;font-style:italic;font-display:swap;src:url(/assets/fonts/playfair-display-latin-700-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-weight:900;font-style:normal;font-display:swap;src:url(/assets/fonts/playfair-display-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-weight:400;font-style:normal;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-weight:400;font-style:italic;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-weight:600;font-style:normal;font-display:swap;src:url(/assets/fonts/source-serif-4-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"UnifrakturMaguntia";font-weight:400;font-display:swap;src:url(/assets/fonts/unifrakturmaguntia-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-weight:400;font-display:swap;src:url(/assets/fonts/courier-prime-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Courier Prime";font-weight:700;font-display:swap;src:url(/assets/fonts/courier-prime-latin-700-normal.woff2) format("woff2")}

:root{
  --paper:var(--theme-bg);--paper-deep:var(--theme-surface);--ink:var(--theme-text);--ink-soft:var(--theme-muted);--faded:var(--theme-muted);--rule:var(--theme-text);--hair:var(--theme-rule);
  --red:var(--theme-link);--stamp:var(--theme-link);
  --display:"Playfair Display",Georgia,"Times New Roman",serif;--text:"Source Serif 4",Georgia,"Times New Roman",serif;
  --black:"UnifrakturMaguntia","Playfair Display",Georgia,serif;--mono:"Courier Prime","Courier New",Courier,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;font-size:19px}
body{margin:0;color:var(--ink);font:400 1rem/1.62 var(--text);font-feature-settings:"onum","kern","liga";
  background-color:var(--paper)}
[data-gd-theme=paper] body{background-image:radial-gradient(ellipse at 20% 0%,rgba(255,255,255,.35),transparent 60%),radial-gradient(ellipse at 100% 100%,rgba(120,90,40,.10),transparent 55%),
    repeating-linear-gradient(0deg,rgba(80,60,20,.025) 0 1px,transparent 1px 3px)}
a{color:var(--theme-link);text-decoration-thickness:1px;text-underline-offset:.15em}a:hover{color:var(--red)}
::selection{background:var(--ink);color:var(--paper)}
.sheet{max-width:1240px;margin:0 auto;padding:18px 28px 80px}

/* the nameplate */
.flag{text-align:center;border-bottom:4px double var(--rule);padding:6px 0 10px}
.ears{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:18px}
.ear{border:1px solid var(--rule);padding:6px 10px;font:italic .72rem/1.35 var(--text);text-align:center;max-width:220px}
.ear b{display:block;font:700 1.15rem/1.2 var(--display);font-style:normal}.ear.right{justify-self:end}.ear.left{justify-self:start}
.nameplate{font:400 clamp(2.6rem,8vw,5.6rem)/1 var(--black);margin:4px 0 0;letter-spacing:.01em;color:var(--ink);text-decoration:none;display:block}
.motto{font:italic .8rem/1.4 var(--text);color:var(--ink-soft);margin:2px 0 0}
.dateline{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 18px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:8px;padding:4px 2px;
  font:600 .72rem/1.4 var(--text);text-transform:uppercase;letter-spacing:.12em}
.dateline nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;min-width:0}
.dateline nav a{text-decoration:none;white-space:nowrap}

/* headlines */
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);margin:0}
.banner{font:900 clamp(2.2rem,5.4vw,4.2rem)/1.02 var(--display);text-align:center;margin:22px 0 6px;letter-spacing:-.01em}
.deck{font:italic 400 clamp(1.05rem,2vw,1.35rem)/1.4 var(--display);text-align:center;color:var(--ink-soft);max-width:900px;margin:0 auto 14px}
.kicker{font:600 .7rem/1.3 var(--text);letter-spacing:.2em;text-transform:uppercase;color:var(--red);display:block;margin-bottom:4px}
.hed{font:700 1.55rem/1.15 var(--display);margin:0 0 6px}.hed.big{font-size:2.2rem;font-weight:900}.hed.small{font-size:1.15rem}
.byline{font:italic .78rem/1.4 var(--text);color:var(--faded);margin:0 0 8px;text-transform:none;overflow-wrap:anywhere}
.byline::before{content:"— "}

/* the grid of columns, ruled between */
.front{display:grid;grid-template-columns:2.1fr 1fr;gap:0;border-bottom:1px solid var(--rule);margin-top:10px}
.front>*{padding:14px 20px 18px}.front>*+*{border-left:1px solid var(--rule)}
.columns{column-width:17rem;column-gap:2.2rem;column-rule:1px solid var(--hair)}
.columns p{margin:0 0 .75em;text-align:justify;hyphens:auto}
.dropcap::first-letter{float:left;font:900 4.1em/.8 var(--display);padding:.06em .08em 0 0;color:var(--ink)}
.section-head{display:flex;align-items:baseline;gap:14px;border-top:3px solid var(--rule);border-bottom:1px solid var(--rule);margin:30px 0 14px;padding:6px 0}
.section-head h2{font:900 1.65rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em}
.section-head span{font:italic .85rem/1.3 var(--text);color:var(--faded)}
hr.rule{border:0;border-top:1px solid var(--rule);margin:16px 0}hr.thin{border:0;border-top:1px solid var(--hair);margin:12px 0}
.pull{font:italic 700 1.5rem/1.25 var(--display);border-top:2px solid var(--rule);border-bottom:2px solid var(--rule);padding:12px 4px;margin:14px 0;text-align:center;break-inside:avoid}

/* the pitch */
.pitch{text-align:center;margin:10px auto 0;max-width:1000px}
.pitch .figure{font:900 clamp(3rem,9vw,6.4rem)/1 var(--display);display:block;letter-spacing:-.02em}
.pitch .unit{font:italic 700 clamp(1.2rem,2.6vw,1.9rem)/1.2 var(--display)}
.pitch p{font-size:1.1rem;margin:6px 0 0}

/* listings */
.desk{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:0;border-top:1px solid var(--rule)}
.desk>article{padding:14px 18px 16px;border-bottom:1px solid var(--hair);border-right:1px solid var(--hair)}
.desk h3{font:700 1.18rem/1.2 var(--display);word-break:break-word}
.desk h3 a{text-decoration:none}.desk .meta{font:italic .78rem/1.45 var(--text);color:var(--ink-soft);margin:3px 0 6px}
.langbar{font:.74rem/1.4 var(--mono);color:var(--ink-soft);letter-spacing:.02em;white-space:normal}
.lang-head{font:900 1.25rem/1.2 var(--display);text-transform:uppercase;letter-spacing:.06em;margin:22px 0 0;padding:4px 0;border-bottom:2px solid var(--rule)}
.stamp{display:inline-block;border:1.5px solid var(--stamp);color:var(--stamp);font:700 .66rem/1.2 var(--text);letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;transform:rotate(-2deg)}

/* the press room (live) */
.press .now{border:2px solid var(--rule);padding:10px 14px;margin:0 0 12px;background:var(--paper-deep)}
.press .now .hed{font-size:1.25rem}
.ticker{font:.82rem/1.5 var(--mono)}
.ticker li{list-style:none;border-bottom:1px dotted var(--hair);padding:3px 0;display:flex;justify-content:space-between;gap:10px}
.ticker ol,.ticker ul{margin:0;padding:0}
.progress{height:6px;border:1px solid var(--rule);margin:6px 0 2px;position:relative;overflow:hidden}
.progress i{position:absolute;inset:0 auto 0 0;background:var(--ink)}
.progress.over i{background:repeating-linear-gradient(45deg,var(--ink) 0 6px,transparent 6px 10px)}
.press-dot{display:inline-block;width:.6em;height:.6em;border-radius:50%;background:var(--red);margin-right:.35em;animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.15}}
@media (prefers-reduced-motion:reduce){.press-dot{animation:none}}
.wire{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;border:1px solid var(--rule)}
.wire div{padding:8px 10px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.wire b{display:block;font:900 1.7rem/1.1 var(--display)}.wire small{font:italic .75rem/1.3 var(--text);color:var(--faded)}
.live-note{font:italic .72rem/1.4 var(--text);color:var(--faded)}

/* classifieds, forms, boxes */
.box{border:1px solid var(--rule);outline:1px solid var(--rule);outline-offset:3px;padding:14px 16px;margin:8px 4px 16px;background:rgba(255,255,255,.12)}
.price-tag{font:900 2.4rem/1 var(--display)}
form.ad{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
form.ad label{flex-basis:100%}
form.ad input,form.ad textarea,form.ad select{flex:1 1 16rem;font:1rem/1.4 var(--text);padding:8px 10px;border:1px solid var(--rule);background:var(--paper);color:var(--ink)}
button,.button{font:700 .85rem/1 var(--text);letter-spacing:.14em;text-transform:uppercase;padding:10px 16px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer}
button:hover{background:var(--red);border-color:var(--red)}
code,pre,kbd{font-family:var(--mono)}code{font-size:.9em;background:rgba(80,60,20,.08);padding:.05em .3em}
pre{font-size:.82rem;line-height:1.45;border-left:3px solid var(--rule);background:rgba(80,60,20,.06);padding:10px 14px;overflow-x:auto;margin:10px 0}pre code{background:none;padding:0}
blockquote{margin:12px 0;padding:6px 14px;border-left:3px double var(--rule);font-style:italic}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--hair);vertical-align:top}
th{font:700 .7rem/1.3 var(--text);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--rule)}
td.num,th.num{text-align:right;white-space:nowrap}
ol.rules{padding-left:1.4em}ol.rules li{margin:.3em 0}

/* a single story or page */
.story{max-width:46rem;margin:0 auto}
.story .hed.big{text-align:center;margin-top:18px}.story .deck{margin-bottom:6px}
.story p{text-align:justify;hyphens:auto}.story h2{font:700 1.4rem/1.2 var(--display);margin:1.4em 0 .4em}
.story h3{font:700 1.12rem/1.25 var(--display);margin:1.2em 0 .3em}
.story ul,.story ol{padding-left:1.3em}.crumb{font:italic .8rem/1.4 var(--text);color:var(--faded);text-align:center;margin:10px 0 0}

footer.colophon{margin-top:44px;border-top:4px double var(--rule);padding-top:10px;text-align:center;font:italic .78rem/1.6 var(--text);color:var(--ink-soft)}
footer.colophon a{margin:0 8px}

.footer-wordmark {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: clamp(4.75rem, 23vw, 15.25rem);
  margin-top: clamp(1rem, 3vw, 2rem);
  overflow: hidden;
  contain: strict;
  color: var(--theme-link);
}
.footer-wordmark-text {
  max-width: 96%;
  font: 900 clamp(.85rem, 4.4vw, 4.25rem)/1.1 var(--display);
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.footer-wordmark canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

@media (max-width:860px){
  html{font-size:18px}.sheet{padding:12px 16px 60px}.front{grid-template-columns:minmax(0,1fr)}.front>*+*{border-left:0;border-top:1px solid var(--rule)}
  .ears{grid-template-columns:1fr}.ear{display:none}.dateline{justify-content:center}
}
@media print{body{background:#fff}.press-dot,.footer-wordmark{display:none}}

/* the newsroom's stories */
.desk .summary{margin:.2em 0 .5em;text-align:justify;hyphens:auto}
.story-body{font-size:1.06rem}
.story-body p:first-of-type::first-letter{float:left;font:900 3.4em/.8 var(--display);padding:.06em .08em 0 0}
.story-body pre{overflow-x:auto;background:var(--paper-deep);border:1px solid var(--hair);padding:10px 12px;font:.9rem/1.45 var(--mono,"Courier Prime",monospace)}
.story-body blockquote{border-left:3px solid var(--rule);margin:1em 0;padding:.1em 0 .1em 1em;font-style:italic}
figure.diagram{margin:1.6em 0;break-inside:avoid}
figure.diagram svg{display:block;width:100%;height:auto;border-top:2px solid var(--rule);border-bottom:1px solid var(--rule)}
figure.diagram figcaption{font:italic .85rem/1.4 var(--text);color:var(--faded);margin-top:6px;text-align:center}
/* passes: one line per length; the request form's note */
table.tiers{width:100%;border-collapse:collapse;margin:.4rem 0}
table.tiers td{padding:.25rem .3rem;border-bottom:1px dotted currentColor;text-align:left}
table.tiers td.price-tag.small{font-size:1.15rem;text-align:right;white-space:nowrap}
.form-note{display:block;flex-basis:100%;font-size:.9rem;min-height:1.2em;color:#8a2a17}

[data-gd-theme="synthwave"] :is(h1,h2,.nameplate){text-shadow:var(--theme-glow)}

/* Public program forms keep the newspaper's type and palette. */
.program form { display: grid; gap: .55rem; max-width: 36rem; margin: .85rem 0; }
.program form label { display: grid; gap: .15rem; }
.program form .program-check { display: block; margin: .3rem 0; }
.program form input:not([type=checkbox]), .program form select, .program form textarea {
  width: 100%; font: inherit; background: var(--paper); color: var(--ink); border: 1px solid var(--hair); padding: .25rem;
}
.program form button { justify-self: start; font: inherit; color: var(--paper); background: var(--ink); border: 1px solid var(--ink); padding: .15rem .55rem; }
.program form button:disabled { opacity: .6; }
.program pre { white-space: pre-wrap; overflow-wrap: anywhere; }

.program-table { overflow-x: auto; }
.program-table table { width: 100%; border-collapse: collapse; }
.program-table caption { text-align: left; }
.program-table th, .program-table td { padding: .3rem .5rem; text-align: left; white-space: nowrap; border-bottom: 1px solid var(--theme-rule); }
