/* ============================================================
   East Nashville Press launch deck.
   One idea per screen. Type and image carry it, not paragraphs.
   ============================================================ */
:root{
  --paper:#e9ebe6; --paper-2:#dfe2dc; --card:#f2f4ef;
  --ink:#15191a; --ink-2:#3a4142; --ink-3:#6a716f;
  --rule:#c6cbc3; --rule-2:#d5d9d1;
  --rust:#9e3a21; --rust-2:#c06845; --rust-3:#dda994;
  --quiet:#9aa19d;

  --dark:#0f1315; --dark-2:#161b1e; --on-dark:#eceae3; --on-dark-2:#a7aca6;

  --display:Superclarendon,"Bookman Old Style",Rockwell,"Roboto Slab",Georgia,serif;
  --body:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;

  --pad:clamp(1.4rem,5vw,5rem);
  --wide:74rem;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#13171a; --paper-2:#191e21; --card:#1d2326;
    --ink:#e3e4dd; --ink-2:#b6bab4; --ink-3:#858c89;
    --rule:#2e3639; --rule-2:#242b2e;
    --rust:#d06a4c; --rust-2:#a94f36; --rust-3:#7a3624;
    --quiet:#5c6461;
  }
}
:root[data-theme="dark"]{
  --paper:#13171a; --paper-2:#191e21; --card:#1d2326;
  --ink:#e3e4dd; --ink-2:#b6bab4; --ink-3:#858c89;
  --rule:#2e3639; --rule-2:#242b2e;
  --rust:#d06a4c; --rust-2:#a94f36; --rust-3:#7a3624;
  --quiet:#5c6461;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
  scroll-snap-type:y proximity;
}
@media (prefers-reduced-motion:reduce){body{scroll-snap-type:none}*{animation:none!important;transition:none!important}}
img{display:block;max-width:100%}

/* ---------- slide ---------- */
.slide{
  min-height:100svh;scroll-snap-align:start;position:relative;
  display:grid;align-content:center;
  padding:clamp(4rem,9vh,7rem) var(--pad) clamp(3.5rem,8vh,6rem);
  border-top:1px solid var(--rule);
}
.slide:first-child{border-top:0}
/* content children get the measure; absolutely positioned chrome must not,
   or width:100% and auto margins fight left/right and shove it off axis */
.slide > *:not(.stamp):not(.scroll-cue):not(.bg){width:100%;max-width:var(--wide);margin-inline:auto}
.slide.tight > *{max-width:52rem}
.slide.auto{min-height:auto;padding-block:clamp(3rem,7vh,5rem)}

/* dark and image slides */
.slide.dark{background:var(--dark);color:var(--on-dark);border-top-color:#000}
.slide.dark .eyebrow{color:var(--rust-3)}
.slide.dark .lede,.slide.dark p{color:var(--on-dark-2)}
.slide.dark h2,.slide.dark .big{color:var(--on-dark)}

.slide.shot{background:var(--dark);color:var(--on-dark);border-top-color:#000;overflow:hidden}
.slide.shot > .bg{position:absolute;inset:0;max-width:none;margin:0}
.slide.shot .bg img{width:100%;height:100%;object-fit:cover}
.slide.shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,13,15,.42),rgba(10,13,15,.18) 40%,rgba(10,13,15,.88))}
/* the stamp and the scroll cue are absolutely positioned; this rule is three
   classes deep and would otherwise outrank them and drop them back into flow */
.slide.shot > *:not(.bg):not(.stamp):not(.scroll-cue){position:relative;z-index:2}
.slide.shot .lede,.slide.shot p{color:#c6c8c2}
.slide.shot .eyebrow{color:#d99a80}

/* ---------- type ---------- */
.eyebrow{
  font-family:var(--mono);font-size:.625rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--rust);margin:0 0 1.4rem;
}
h1{
  font-family:var(--display);font-weight:400;
  font-size:clamp(2.4rem,7vw,5.6rem);line-height:.94;letter-spacing:-.032em;
  margin:0 0 1.4rem;max-width:15ch;color:#f3f1ea;
}
h1 .rg{color:#e08a6c}
h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.6rem,3.6vw,2.9rem);line-height:1.06;letter-spacing:-.02em;
  margin:0 0 1rem;max-width:19ch;text-wrap:balance;
}
.slide.wide h2{max-width:26ch}
h3{font-family:var(--display);font-weight:400;font-size:clamp(1.1rem,1.9vw,1.35rem);margin:0 0 .5rem}
p{margin:0 0 .85em;max-width:46ch}
.lede{font-size:clamp(1.0625rem,1.7vw,1.3rem);line-height:1.42;color:var(--ink-2);max-width:44ch}
.fine{font-family:var(--mono);font-size:.6875rem;line-height:1.6;color:var(--ink-3);max-width:52ch}
strong{font-weight:600}
em{font-style:italic}

/* the hero number */
.big{
  font-family:var(--display);font-weight:400;
  font-size:clamp(4rem,15vw,11rem);line-height:.86;letter-spacing:-.045em;
  margin:0 0 .4rem;color:var(--rust);font-variant-numeric:tabular-nums;
}
.big-sub{font-family:var(--display);font-size:clamp(1.3rem,3.4vw,2.4rem);line-height:1.14;max-width:20ch;margin:0}

/* ---------- title slide ---------- */
.title-slide{align-content:end}
.title-slide .sub{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:#b6b3ab;line-height:2;margin:0;max-width:none}
.stamp{position:absolute;top:1.1rem;left:var(--pad);right:var(--pad);z-index:3;max-width:none;margin:0;
  font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);
  display:flex;justify-content:space-between;gap:1rem}

/* ---------- pieces ---------- */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.slide.dark .cols,.slide.shot .cols{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.14)}
.cell{background:var(--paper);padding:1.15rem 1.25rem}
.slide.dark .cell,.slide.shot .cell{background:var(--dark-2)}
.cell h4{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin:0 0 .5rem;font-weight:400}
.cell p{font-size:.9375rem;line-height:1.45;margin:0;max-width:none;color:var(--ink-2)}
.slide.dark .cell p,.slide.shot .cell p{color:var(--on-dark-2)}

.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:clamp(1.2rem,3vw,2.5rem)}
.metric .v{font-family:var(--display);font-size:clamp(2rem,5vw,3.4rem);line-height:1;display:block;font-variant-numeric:tabular-nums}
.metric .v.hot{color:var(--rust)}
.metric .k{font-family:var(--mono);font-size:.625rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);margin-top:.5rem;display:block;line-height:1.5}
.slide.dark .metric .k{color:var(--on-dark-2)}

blockquote{margin:0 0 1.2rem;padding-left:1.1rem;border-left:2px solid var(--rust);
  font-family:var(--display);font-size:clamp(1.15rem,2.4vw,1.7rem);line-height:1.3;max-width:32ch}
blockquote cite{display:block;margin-top:.8rem;font-family:var(--mono);font-size:.625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-style:normal}
.slide.shot blockquote,.slide.dark blockquote{border-color:var(--rust-3)}
.slide.shot blockquote cite,.slide.dark blockquote cite{color:#8d918b}

.flag{border:1px solid var(--rust);border-left-width:3px;background:var(--card);padding:1rem 1.2rem;max-width:44rem}
.slide.dark .flag,.slide.shot .flag{background:rgba(158,58,33,.14);border-color:var(--rust-2)}
.flag .tag{font-family:var(--mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rust);display:block;margin-bottom:.45rem}
.slide.dark .flag .tag,.slide.shot .flag .tag{color:var(--rust-3)}
.flag p:last-child{margin-bottom:0}

/* tables kept for the dense reference slides only */
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:32rem;font-size:.8125rem;line-height:1.4}
th,td{text-align:left;padding:.6rem .8rem .6rem 0;border-bottom:1px solid var(--rule-2);vertical-align:top}
th{font-family:var(--mono);font-size:.5625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-weight:400;border-bottom:1px solid var(--rule);white-space:nowrap}
td:first-child{font-weight:600;padding-right:1.2rem;white-space:nowrap}
.num-c{font-variant-numeric:tabular-nums;white-space:nowrap;font-family:var(--mono)}

.check{list-style:none;padding:0;margin:0;max-width:46rem}
.check li{
  display:grid;grid-template-columns:1.3rem minmax(0,1fr);column-gap:.7rem;row-gap:.15rem;
  padding:.75rem 0;border-bottom:1px solid var(--rule-2);margin:0;align-items:start;
}
/* the marker owns column 1; both text nodes are pinned to column 2 or the
   span drops into the 1.3rem column and wraps a word per line */
.check li::before{content:"";grid-column:1;grid-row:1;display:block;width:.85rem;height:.85rem;margin-top:.35rem;border:1px solid var(--ink-3);border-radius:1px}
.check li b{grid-column:2;grid-row:1;font-weight:600;font-size:1.0625rem;line-height:1.35;max-width:44ch}
.check li span{grid-column:2;grid-row:2;font-size:.8125rem;color:var(--ink-3);font-family:var(--mono);line-height:1.5;max-width:62ch}

/* ---------- image grids ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.gcell{background:var(--paper);margin:0}
.gcell img{width:100%;height:140px;object-fit:cover;filter:grayscale(1)}
.gcell figcaption{font-family:var(--mono);font-size:.5rem;color:var(--ink-3);line-height:1.4;padding:.4rem .5rem .5rem}
.plgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.pcell{background:var(--card);margin:0}
.pcell img{width:100%;aspect-ratio:1;object-fit:cover}

/* ---------- charts ---------- */
.chart{margin:0}
.chart svg{display:block;width:100%;height:auto}
.chart figcaption{font-family:var(--mono);font-size:.6875rem;color:var(--ink-3);margin-top:.7rem;line-height:1.55;max-width:52ch}
.slide.dark .chart figcaption{color:var(--on-dark-2)}
.legend{display:flex;flex-wrap:wrap;gap:1rem;margin:0 0 .8rem;font-family:var(--mono);font-size:.625rem;color:var(--ink-3)}
.legend i{display:inline-block;width:.7rem;height:.7rem;margin-right:.35rem;vertical-align:-1px}
.sw-hot{background:var(--rust)}.sw-quiet{background:var(--quiet)}
.bar-hot{fill:var(--rust)}.bar-mid{fill:var(--rust-2)}.bar-pale{fill:var(--rust-3)}.bar-quiet{fill:var(--quiet)}
.gridline{stroke:var(--rule-2);stroke-width:1}
.axis{stroke:var(--rule);stroke-width:1}
.lbl{font-family:var(--mono);font-size:10px;fill:var(--ink-2)}
.lbl-s{font-family:var(--mono);font-size:9px;fill:var(--ink-3)}
.val{font-family:var(--mono);font-size:10px;fill:var(--ink);font-weight:600}
.val-i{font-family:var(--mono);font-size:10px;fill:var(--paper);font-weight:600}
.trend{fill:none;stroke:var(--rust);stroke-width:2}
.dot{fill:var(--rust);stroke:var(--paper);stroke-width:2}
.slide.dark .lbl{fill:var(--on-dark-2)}
.slide.dark .lbl-s{fill:#7d827c}
.slide.dark .val{fill:var(--on-dark)}
.slide.dark .axis{stroke:#39413f}
.slide.dark .gridline{stroke:#242b2e}
.slide.dark .dot{stroke:var(--dark)}

/* ---------- chrome ---------- */
.deck-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}
.deck-progress span{display:block;height:100%;width:0;background:var(--rust)}

.deck-nav{position:fixed;right:.9rem;top:50%;transform:translateY(-50%);z-index:55;display:flex;flex-direction:column;gap:.45rem;align-items:flex-end}
@media (max-width:1180px){.deck-nav{display:none}}
.deck-dot{width:22px;height:12px;padding:0;border:0;background:transparent;cursor:pointer;position:relative}
.deck-dot::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:12px;height:1px;background:var(--rule);transition:width .18s ease,background .18s ease}
.deck-dot:hover::after{width:18px;background:var(--ink-3)}
.deck-dot[aria-current="true"]::after{width:22px;height:2px;background:var(--rust)}
.deck-dot:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.deck-label{position:fixed;right:2.6rem;top:50%;transform:translateY(-50%);z-index:55;
  font-family:var(--mono);font-size:.5625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  opacity:0;transition:opacity .2s ease;pointer-events:none;text-align:right}
.deck-nav:hover ~ .deck-label,.deck-label.on{opacity:1}
@media (max-width:1180px){.deck-label{display:none}}

.deck-count{position:fixed;left:var(--pad);bottom:1rem;z-index:55;font-family:var(--mono);font-size:.625rem;letter-spacing:.12em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.deck-theme{position:fixed;right:.9rem;bottom:1rem;z-index:55;width:2rem;height:2rem;border-radius:50%;cursor:pointer;
  background:var(--card);color:var(--ink-3);border:1px solid var(--rule);font-size:.85rem;line-height:1;display:grid;place-items:center}
.deck-theme:hover{color:var(--rust);border-color:var(--rust)}
.deck-theme:focus-visible{outline:2px solid var(--rust);outline-offset:2px}

.deck-lightbox{position:fixed;inset:0;z-index:80;background:rgba(8,10,12,.95);display:grid;place-items:center;gap:1rem;padding:clamp(1rem,4vw,3rem);cursor:zoom-out}
.deck-lightbox[hidden]{display:none}
.deck-lightbox img{max-width:100%;max-height:82vh;object-fit:contain}
.deck-lightbox p{font-family:var(--mono);font-size:.6875rem;color:rgba(255,255,255,.6);text-align:center;max-width:44rem;margin:0;line-height:1.6}
.gcell img,.pcell img{cursor:zoom-in}
.gcell img:focus-visible,.pcell img:focus-visible{outline:2px solid var(--rust);outline-offset:2px}

@media print{
  body{scroll-snap-type:none}
  /* print may never wait on script */
  .js [data-r],[data-r]{opacity:1!important;transform:none!important}
  .js .title-slide h1 span.w,.js .title-slide .eyebrow,.js .title-slide .sub{opacity:1!important;animation:none!important}
  .js .chart rect[data-grow]{transform:none!important}
  .js .chart .trend{stroke-dashoffset:0!important}
  .js .chart .dot{opacity:1!important}
  .js .slide.shot .bg img{transform:none!important}
  .deck-nav,.deck-theme,.deck-progress,.deck-lightbox,.deck-count,.deck-label{display:none!important}
  .slide{min-height:auto;break-after:page;page-break-after:always;padding-block:2rem}
}

/* ============================================================
   Motion. Everything below is opt-out under prefers-reduced-motion,
   which is handled at the top of this file and again here.
   ============================================================ */

/* film grain over the whole deck */
body::after{
  content:"";position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
}

/* slow drift on the cinematic frames */
.js .slide.shot .bg img{
  transform:scale(1.08);
  transition:transform 14s cubic-bezier(.2,.6,.3,1);
  will-change:transform;
}
.slide.shot.seen .bg img{transform:scale(1)}

/* scroll reveals */
.js [data-r]{opacity:0;transform:translateY(18px);transition:opacity .85s cubic-bezier(.2,.7,.25,1),transform .85s cubic-bezier(.2,.7,.25,1)}
.js [data-r].in{opacity:1;transform:none}
[data-r="1"]{transition-delay:.06s}
[data-r="2"]{transition-delay:.16s}
[data-r="3"]{transition-delay:.28s}
[data-r="4"]{transition-delay:.40s}
[data-r="5"]{transition-delay:.52s}

/* the big number, set before it animates so nothing jumps */
.big[data-count]{min-width:3ch;display:inline-block}

/* title sequence */
.js .title-slide h1 span.w{display:inline-block;opacity:0;transform:translateY(.35em);
  animation:rise .95s cubic-bezier(.2,.7,.25,1) forwards}
.title-slide h1 span.w:nth-child(1){animation-delay:.35s}
.title-slide h1 span.w:nth-child(2){animation-delay:.48s}
.title-slide h1 span.w:nth-child(3){animation-delay:.61s}
.title-slide h1 span.w:nth-child(4){animation-delay:.74s}
@keyframes rise{to{opacity:1;transform:none}}
.js .title-slide .eyebrow,.title-slide .sub{opacity:0;animation:fade 1.1s ease forwards}
.title-slide .eyebrow{animation-delay:.15s}
.title-slide .sub{animation-delay:1.05s}
@keyframes fade{to{opacity:1}}

.scroll-cue{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:3;
  font-family:var(--mono);font-size:.5625rem;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.45);opacity:0;animation:fade 1s ease 1.8s forwards;max-width:none;margin:0}
.scroll-cue::after{content:"";display:block;width:1px;height:26px;margin:.6rem auto 0;
  background:linear-gradient(180deg,rgba(255,255,255,.5),transparent);animation:drop 2.2s ease-in-out infinite}
@keyframes drop{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}

/* chart bars grow when their slide arrives */
.js .chart rect[data-grow]{transform-origin:left center;transform:scaleX(0);transition:transform 1s cubic-bezier(.2,.7,.25,1)}
.slide.seen .chart rect[data-grow]{transform:scaleX(1)}
.js .chart .trend{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 1.6s ease .2s}
.slide.seen .chart .trend{stroke-dashoffset:0}
.js .chart .dot{opacity:0;transition:opacity .5s ease}
.slide.seen .chart .dot{opacity:1}

@media (prefers-reduced-motion:reduce){
  body::after{display:none}
  [data-r]{opacity:1;transform:none}
  .slide.shot .bg img{transform:none}
  .title-slide h1 span.w,.title-slide .eyebrow,.title-slide .sub,.scroll-cue{opacity:1;animation:none}
  .chart rect[data-grow]{transform:none}
  .chart .trend{stroke-dashoffset:0}
  .chart .dot{opacity:1}
}

/* ============================================================
   Editorial calendar.
   ============================================================ */
.cal-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .6rem}
.cal-chip{
  font-family:var(--mono);font-size:.5625rem;letter-spacing:.11em;text-transform:uppercase;
  padding:.4rem .7rem;cursor:pointer;border-radius:2px;
  background:transparent;color:var(--ink-3);border:1px solid var(--rule);
}
.cal-chip::before{content:"";display:inline-block;width:.5rem;height:.5rem;margin-right:.4rem;vertical-align:-1px;background:currentColor;border-radius:1px}
.cal-chip[aria-pressed="true"]{color:var(--ink);border-color:var(--ink-3)}
.cal-chip[aria-pressed="false"]{opacity:.4}
.cal-chip.ch-sdc[aria-pressed="true"]{color:#9e3a21;border-color:#9e3a21}
.cal-chip.ch-enp[aria-pressed="true"]{color:#3f6b80;border-color:#3f6b80}
.cal-chip.ch-mail[aria-pressed="true"]{color:#6b6a2f;border-color:#6b6a2f}
.cal-chip.ch-video[aria-pressed="true"]{color:#7a4b86;border-color:#7a4b86}
.cal-chip.ch-ads[aria-pressed="true"]{color:#b0662a;border-color:#b0662a}
.cal-chip.ch-trade[aria-pressed="true"]{color:var(--ink-2);border-color:var(--ink-2)}
.cal-chip:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.cal-count{margin:0 0 1rem}

.cal-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:clamp(1rem,2.5vw,2rem)}
.cal-month h3{font-family:var(--mono);font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rust);margin:0 0 .6rem}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:1px}
.cal-head span{font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;color:var(--ink-3);text-align:center;padding:.2rem 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cal-day{background:var(--paper);min-height:4.4rem;padding:.25rem;display:flex;flex-direction:column;gap:2px}
.cal-day.pad{background:var(--paper-2);min-height:0}
.cal-day.empty{background:var(--paper-2)}
.cal-n{font-family:var(--mono);font-size:.5rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.cal-e{
  display:block;width:100%;text-align:left;cursor:pointer;
  font-family:var(--mono);font-size:.4375rem;line-height:1.25;letter-spacing:.02em;
  padding:.2rem .25rem;border:0;border-left:2px solid var(--ink-3);border-radius:1px;
  background:var(--card);color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.cal-e:hover{color:var(--ink);background:var(--paper-2)}
.cal-e[aria-current]{background:var(--ink);color:var(--paper)}
.cal-e:focus-visible{outline:2px solid var(--rust);outline-offset:1px}
.cal-e.ch-sdc{border-left-color:#9e3a21}
.cal-e.ch-enp{border-left-color:#3f6b80}
.cal-e.ch-mail{border-left-color:#6b6a2f}
.cal-e.ch-video{border-left-color:#7a4b86}
.cal-e.ch-ads{border-left-color:#b0662a}
.cal-e.ch-trade{border-left-color:var(--ink-3)}
.cal-e.k-milestone{font-weight:700;background:rgba(158,58,33,.1);color:var(--rust)}

.cal-detail{margin-top:1.4rem;border-top:1px solid var(--rule);padding-top:1rem;min-height:8rem}
.cal-d-meta{font-family:var(--mono);font-size:.5625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--rust);margin:0 0 .5rem;max-width:none}
.cal-detail h4{font-family:var(--display);font-weight:400;font-size:clamp(1.15rem,2.2vw,1.5rem);margin:0 0 .5rem}
.cal-detail p{font-size:.9375rem;line-height:1.5;color:var(--ink-2);max-width:60ch;margin:0}

@media (max-width:560px){
  .cal-day{min-height:3.4rem}
  .cal-e{font-size:0;padding:.3rem .25rem;border-left-width:3px}
  .cal-e.k-milestone{font-size:.4375rem}
}

/* five doors */
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.door{background:var(--paper);padding:1.1rem 1.15rem;display:flex;flex-direction:column;gap:.35rem}
.slide.dark .door{background:var(--dark-2)}
.door .dn{font-family:var(--mono);font-size:.625rem;letter-spacing:.14em;color:var(--rust)}
.door b{font-family:var(--display);font-weight:400;font-size:1.0625rem;line-height:1.2}
.door p{font-size:.8125rem;line-height:1.45;color:var(--ink-3);margin:0;max-width:none}
.door p em{color:var(--rust);font-style:normal;font-family:var(--mono);font-size:.6875rem;display:block;margin-top:.3rem}

/* colophon in the title stamp */
.stamp-mark{display:inline-flex;align-items:center;gap:.5rem}
.stamp-mark svg{fill:currentColor;flex:none;opacity:.85}
