/* The Living Timeline · Tour: "The Aperture".
   A cinema letterbox: two solid ink bars frame a widescreen window onto the live scene. The bars carry every word
   (always legible, never over a moving scene) and are also the transition: they close into a shutter between
   scenes, and between eras the closed bars become a chapter title card built from that chapter's moments.
   The lower bar holds the year, the title and Peter's words, a right column that names the machine on screen (then
   the moment up next), and a transport bar: the journey line across the whole Timeline with the controls beside it,
   which give way to the Le Random bug while you watch. Nothing sits over the window, where scenes keep their own panels.
   Scroll down for the program notes of the moment on air. */
html[data-page="tour"]{
  --ink:#011015; --ink2:#0B1A20; --cream:#EFE9D8; --paper:#F7F4EA; --orange:#FF4C00; --blue:#02B0F4;
  --ch:#B08A4E; --chi:#8A6A34;
  --pad:clamp(20px,4.4vw,80px);
  --top:var(--nav-h);
  --bot:clamp(262px,33.5vh,330px);
  --ycol:clamp(210px,21vw,350px);
  --gap:clamp(22px,3vw,52px);
  --ease:cubic-bezier(.65,0,.35,1);
  --out:cubic-bezier(.16,1,.3,1);
  --rules:var(--lr-sans); --serif:var(--lr-serif);
  background:var(--ink);
}
html[data-page="tour"] body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--rules);-webkit-font-smoothing:antialiased;overflow-x:hidden}
#tv{display:block}
:where(.tv-stage,.tv-notes) button,:where(.tv-pill){font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}

/* ───────── the stage ───────── */
.tv-stage{position:relative;height:100vh;height:100svh;min-height:540px;overflow:hidden;background:var(--ink);isolation:isolate;
  touch-action:pan-y;user-select:none;-webkit-user-select:none}
.tv-stage.is-nocc{--bot:clamp(196px,23vh,236px)}
.tv-band{position:absolute;left:0;right:0;top:var(--top);bottom:var(--bot);overflow:hidden;background:var(--ink);z-index:1}
.tv-ground{position:absolute;inset:0;background:color-mix(in srgb,var(--ch) 16%,var(--ink));transition:background-color 1s}
.tv-ground canvas{position:absolute;inset:-4%;width:108%;height:108%;display:block;opacity:.34;transform-origin:50% 55%;
  animation:tvDrift 38s ease-in-out infinite alternate}
.tv-ground::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 45%,transparent 30%,rgba(1,16,21,.72))}
.tv-stage.has-scene .tv-ground canvas{animation-play-state:paused}
@keyframes tvDrift{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.07) translate3d(-1.5%,1%,0)}}
.tv-scenes{position:absolute;inset:0}
.tv-scene{position:absolute;inset:0;opacity:0;transition:opacity 1s var(--ease)}
.tv-scene.is-on{opacity:1}
.tv-scene iframe{background:transparent}

/* the live chip: a solid ink label, lower left of the window */
.tv-live{position:absolute;left:var(--pad);bottom:18px;z-index:2;display:flex;align-items:center;gap:12px;max-width:min(60%,520px);
  padding:9px 14px 9px 12px;background:var(--ink);color:var(--cream);box-shadow:0 0 0 1px rgba(239,233,216,.14);
  opacity:0;transform:translateY(8px);transition:opacity .6s var(--out),transform .6s var(--out);pointer-events:none}
.tv-live .lab{display:flex;align-items:center;gap:7px;color:var(--orange);flex:0 0 auto}
.tv-live .lab i{width:7px;height:7px;border-radius:50%;background:var(--orange);animation:tvBlink 1.6s ease-in-out infinite}
.tv-live b{font:400 13.5px/1.25 var(--rules);letter-spacing:-.01rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-stage.show-live .tv-live{opacity:1;transform:none}
@keyframes tvBlink{0%,100%{opacity:1}50%{opacity:.25}}

/* paused: the live scene is yours to play (the frame takes the pointer), and a solid chip says so */
.tv-stage.is-hands .tv-scene.is-on iframe{pointer-events:auto!important;cursor:auto}
.tv-hold{position:absolute;left:var(--pad);bottom:18px;z-index:3;display:flex;align-items:center;gap:14px;max-width:calc(100% - 2 * var(--pad));
  padding:6px 6px 6px 14px;background:var(--cream);color:var(--ink);box-shadow:6px 6px 0 color-mix(in srgb,var(--ch) 55%,transparent);
  opacity:0;visibility:hidden;transform:translate3d(0,8px,0);transition:opacity .35s var(--out),transform .5s var(--out),visibility 0s .5s}
.tv-stage.is-hands .tv-hold{opacity:1;visibility:visible;transform:none;transition:opacity .45s var(--out) .12s,transform .6s var(--out) .12s,visibility 0s}
.tv-hold-k{display:flex;align-items:center;gap:7px;color:var(--orange);flex:0 0 auto}
.tv-hold-k svg{width:12px;height:12px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}
.tv-hold-t{margin:0;font:400 14.5px/1.25 var(--rules);letter-spacing:-.01rem;min-width:0}
.tv-hold-b{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px 0 8px;background:var(--ink)!important;color:var(--cream)!important;flex:0 0 auto}
.tv-hold-b:hover{background:var(--orange)!important}
.tv-hold-kb{font:500 10px/1 var(--rules);letter-spacing:.04em;padding:4px 5px;border:1px solid rgba(239,233,216,.4)}
@media (hover:none){.tv-hold-kb{display:none}.tv-hold-b{padding-left:14px}}
.tv-stage.is-hands .tv-live{opacity:0}

/* shutters: two ink halves that meet in the middle, with light edges in the era's colour */
.tv-shut{position:absolute;left:0;right:0;height:50.5%;background:var(--ink);z-index:4;will-change:transform;
  transition:transform .76s var(--ease)}
.tv-shut-t{top:0;transform:translate3d(0,-101%,0)}
.tv-shut-b{bottom:0;transform:translate3d(0,101%,0)}
.tv-shut::after{content:'';position:absolute;left:0;right:0;height:2px;background:var(--ch);opacity:0;transition:opacity .5s;box-shadow:0 0 18px 1px var(--ch)}
.tv-shut-t::after{bottom:0}.tv-shut-b::after{top:0}
.tv-band.is-shut .tv-shut{transform:translate3d(0,0,0)}
.tv-band.is-shut .tv-shut::after{opacity:.55}
.tv-stage.is-card .tv-band.is-shut .tv-shut::after{opacity:0;transition-duration:.25s}
.tv-band.is-opening .tv-shut{transition:transform 1.25s cubic-bezier(.76,0,.18,1)}
.tv-band.is-opening .tv-shut::after{opacity:.9;transition:opacity 1.25s cubic-bezier(.9,0,.9,.4)}
.tv-dip{position:absolute;inset:0;z-index:3;background:var(--ink);opacity:0;transition:opacity .24s;pointer-events:none}
.tv-band.is-dip .tv-dip{opacity:1}

/* ───────── top bar: the slate (the site nav takes its place while you move) ───────── */
.tv-slate{position:absolute;left:0;right:0;top:0;height:var(--top);z-index:5;background:var(--ink);display:flex;align-items:center;gap:22px;
  padding:env(safe-area-inset-top,0px) var(--pad) 0;border-bottom:1px solid rgba(239,233,216,.1);color:rgba(239,233,216,.72);
  transition:opacity .5s}
.tv-air{display:flex;align-items:center;gap:9px;color:var(--cream);flex:0 0 auto}
.tv-air i{width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,76,0,.18);animation:tvBlink 1.6s ease-in-out infinite}
.tv-stage.is-paused .tv-air i{background:rgba(239,233,216,.5);box-shadow:none;animation:none}
.tv-slate-ch{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tv-slate-ch em{font-style:normal;color:var(--ch)}
.tv-slate-next{margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:44vw;min-width:0}
.tv-slate-next b{font-weight:500;color:var(--cream)}
.tv-slate-pos{flex:0 0 auto;color:var(--cream);padding-left:18px;border-left:1px solid rgba(239,233,216,.2)}

/* lean-back: while you are still, the nav, controls and cursor step away */
html[data-page="tour"] .site-nav{transition:opacity .5s,visibility .5s}
html.tv-idle[data-page="tour"] .site-nav{opacity:0;visibility:hidden}
html:not(.tv-idle)[data-page="tour"] .tv-stage:not(.is-below) .tv-slate{opacity:0}
html.tv-idle .tv-stage{cursor:none}
html.tv-idle .tv-ctl{opacity:0;pointer-events:none}
html.tv-idle .tv-jtip{opacity:0!important}

/* ───────── bottom bar: the caption ───────── */
.tv-cap{position:absolute;left:0;right:0;bottom:0;height:var(--bot);z-index:2;background:var(--ink)}
.tv-seam{position:absolute;left:0;right:0;top:0;height:2px;background:rgba(239,233,216,.1);display:block}
.tv-seam b{position:absolute;inset:0;background:var(--ch);transform-origin:0 50%;transform:scaleX(0);display:block}
.tv-cap-in{position:absolute;left:var(--pad);right:var(--pad);top:clamp(22px,3.2vh,32px);bottom:62px;display:grid;
  grid-template-columns:var(--ycol) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:var(--gap);row-gap:clamp(12px,1.8vh,18px)}
.tv-year{grid-column:1;grid-row:1;align-self:start;color:var(--ch);font:500 var(--ys,clamp(64px,7.6vw,128px))/1 var(--rules);letter-spacing:-.04em;
  white-space:nowrap;position:relative;height:1em;margin-top:-.06em;transition:color .8s}
.tv-head{grid-column:2;grid-row:1;align-self:end;min-width:0}
.tv-kick{margin:0 0 10px;color:rgba(239,233,216,.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-kick .fl{color:var(--orange)}
.tv-kick .sep{opacity:.5;padding:0 .35em}
.tv-title{margin:0;font:500 var(--ts,clamp(28px,2.9vw,48px))/1.06 var(--rules);letter-spacing:-.04rem;color:var(--cream);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:balance;padding-bottom:.06em}
.tv-title em{font-style:italic}
.tv-chl{grid-column:1;grid-row:2;margin:0;color:var(--ch);align-self:start;line-height:1.5}
.tv-chl span{display:block;color:rgba(239,233,216,.55)}
.tv-sub{grid-column:2;grid-row:2;margin:0;position:relative;min-width:0;max-width:62ch;
  font:400 clamp(20px,1.72vw,29px)/1.34 var(--serif);color:rgba(239,233,216,.94);transition:opacity .4s}
.tv-sub-l{display:block}
.tv-sub-l.is-gone{position:absolute;left:0;top:0;right:0;animation:tvGone .32s var(--ease) forwards}
.tv-stage.is-nocc .tv-sub,.tv-stage.is-nocc .tv-chl{display:none}
.tv-stage.is-nocc .tv-cap-in{grid-template-rows:auto}

/* words land one by one */
.w{display:inline-block;white-space:pre}
.tv-title .w{opacity:0;transform:translate3d(0,.5em,0);animation:tvRise .9s var(--out) forwards;animation-delay:calc(var(--i) * 42ms + 160ms)}
.tv-sub .w{opacity:0;transform:translate3d(0,.3em,0);animation:tvRise .7s var(--out) forwards;animation-delay:calc(var(--i) * 34ms + 240ms)}
@keyframes tvRise{to{opacity:1;transform:none}}
@keyframes tvGone{to{opacity:0;transform:translate3d(0,-.4em,0)}}
.tv-kick{transition:opacity .5s .1s}
.tv-cap.is-out .tv-head,.tv-cap.is-out .tv-chl{opacity:0;transform:translate3d(0,-6px,0);transition:opacity .34s,transform .34s var(--ease)}
.tv-cap.is-out .tv-sub{opacity:0}
.tv-head,.tv-chl{transition:opacity .4s,transform .5s var(--out)}

/* the year odometer: proportional digits on reels; rows 1.5em tall so a neighbour never shows in the 1.06em window */
.odo{display:inline-flex;align-items:flex-start;height:1.06em;overflow:hidden;position:absolute;left:0;top:-.03em}
.odo-d{display:block;flex:0 0 auto;height:1.06em;overflow:hidden;position:relative;transition:width 1.05s cubic-bezier(.3,.85,.2,1)}
.odo-r{display:block;will-change:transform;transition:transform 1.05s cubic-bezier(.3,.85,.2,1);letter-spacing:0}
.odo-r>span{display:block;height:1.5em;line-height:1.5em}
.odo-c{display:block;flex:0 0 auto;height:1.06em;line-height:1em;padding-top:.03em;white-space:pre}
.odo-c.odo-bce{font-size:.34em;height:auto;line-height:1;padding-top:0;margin:1.505em 0 0 .24em;letter-spacing:.06em}

/* ───────── foot row: the journey line and the controls, one transport bar inside the ink (never over the window,
   where the scenes keep their own panels) ───────── */
.tv-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:calc(10px + env(safe-area-inset-bottom,0px));height:40px;z-index:6;
  display:flex;align-items:center;gap:clamp(18px,2.2vw,36px);pointer-events:none}
.tv-foot>*{pointer-events:auto}
.tv-journey{position:relative;flex:1 1 auto;min-width:0;height:34px;cursor:pointer}
.tv-journey canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.tv-jhead{position:absolute;left:0;top:2px;bottom:4px;width:2px;margin-left:-1px;background:var(--orange);transform:translate3d(0,0,0);
  transition:transform 1.4s var(--ease);display:block;will-change:transform}
.tv-jhead::before{content:'';position:absolute;left:50%;top:-3px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 3px rgba(255,76,0,.25)}
.tv-jtip{position:absolute;bottom:42px;left:0;transform:translateX(-50%);width:max-content;max-width:340px;background:var(--cream);color:var(--ink);padding:8px 11px 9px;
  font:500 13.5px/1.25 var(--rules);letter-spacing:-.01rem;text-transform:none;box-shadow:5px 5px 0 color-mix(in srgb,var(--jc,#FF4C00) 45%,transparent);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;opacity:0;pointer-events:none;transition:opacity .2s}
.tv-jtip b{font-weight:500;color:var(--jci,#8A6A34);margin-right:.25em}
.tv-jtip.on{opacity:1}
.tv-ctl{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:6px;transition:opacity .45s,transform .45s var(--out)}
html.tv-idle .tv-ctl{transform:translate3d(0,6px,0)}
.tv-bug{position:absolute;right:0;top:50%;display:flex;align-items:center;gap:14px;pointer-events:none!important;opacity:0;transform:translate3d(0,-50%,0);
  transition:opacity .5s var(--ease)}
.tv-bug img{height:16px;width:auto;display:block;opacity:.8}
.tv-bug .lab{padding-left:14px;border-left:1px solid rgba(239,233,216,.3);color:rgba(239,233,216,.5);white-space:nowrap}
html.tv-idle .tv-bug{opacity:1;transition:opacity 1.2s var(--out) .35s}
.tv-b{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--cream);border:1px solid rgba(239,233,216,.26);
  transition:background .2s,border-color .2s,color .2s}
.tv-b:hover{border-color:var(--cream);background:rgba(239,233,216,.08)}
a.tv-b{text-decoration:none}
.tv-b:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.tv-b svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tv-b svg .f{fill:currentColor;stroke:none}
.tv-b-play{background:var(--cream);color:var(--ink);border-color:var(--cream);width:46px}
.tv-b-play:hover{background:#fff;color:var(--ink)}
.tv-b-play .i-play{display:none}
.tv-stage.is-paused .tv-b-play .i-play{display:block}
.tv-stage.is-paused .tv-b-play .i-pause{display:none}
.tv-b-t{width:auto;padding:0 12px;gap:6px;font:500 10.5px/1 var(--rules);letter-spacing:.16em;text-transform:uppercase}
.tv-b-t svg{width:15px;height:15px}
.tv-b[aria-pressed="true"]{border-color:rgba(239,233,216,.7)}
.tv-b[aria-pressed="false"]{opacity:.55}
.tv-ctl-sep{width:1px;height:22px;background:rgba(239,233,216,.2);margin:0 6px}
#tv-fs .i-fsx{display:none}
html.tv-fs #tv-fs .i-fsx{display:block}
html.tv-fs #tv-fs .i-fs{display:none}

/* ───────── the chapter card (on the closed bars) ───────── */
.tv-card{position:absolute;left:0;right:0;top:var(--top);bottom:66px;z-index:4;pointer-events:none;opacity:0;transition:opacity .5s var(--ease)}
.tv-stage.is-card .tv-card{opacity:1}
.tv-stage.is-card .tv-cap-in{opacity:0;transition:opacity .35s}
.tv-cap-in{transition:opacity .6s .15s}
.tv-stage.is-card .tv-seam{opacity:0}
.tv-card-in{position:absolute;inset:0;padding:clamp(24px,5vh,56px) var(--pad) 0;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;
  column-gap:clamp(28px,4.5vw,84px);align-items:center}
.tv-card-in::before{content:'';position:absolute;inset:0;background:radial-gradient(60% 70% at 18% 46%,color-mix(in srgb,var(--ch) 16%,transparent),transparent 70%);pointer-events:none}
.tv-card-num{grid-column:1;grid-row:1;position:relative;clip-path:inset(-30% -8% 0 -8%);line-height:.8;padding-top:.1em;
  font:500 min(42vh,27vw)/.8 var(--rules);letter-spacing:-.06em;color:var(--ch)}
.tv-card-num span{display:block;transform:translate3d(0,105%,0);animation:tvNum 1.25s var(--out) .1s forwards}
@keyframes tvNum{to{transform:none}}
.tv-card-txt{grid-column:2;grid-row:1;position:relative;max-width:760px}
.tv-card-txt>*{opacity:0;transform:translate3d(0,22px,0);animation:tvRise .95s var(--out) forwards;animation-delay:calc(var(--k) * 95ms + 380ms)}
.tv-card-k{margin:0 0 18px;color:rgba(239,233,216,.66);display:flex;flex-wrap:wrap;gap:6px 14px}
.tv-card-k b{font-weight:500;color:var(--orange)}
.tv-card-years{margin:0;font:500 clamp(46px,5.6vw,96px)/.95 var(--rules);letter-spacing:-.04em;color:var(--cream)}
.tv-card-era{margin:.18em 0 0;font:400 clamp(26px,2.7vw,46px)/1.05 var(--rules);letter-spacing:-.04rem;color:rgba(239,233,216,.72)}
.tv-card-desc{margin:clamp(16px,2.6vh,28px) 0 0;max-width:46ch;font:400 clamp(18px,1.45vw,23px)/1.45 var(--serif);color:rgba(239,233,216,.84)}
.tv-card-count{margin:clamp(14px,2.2vh,24px) 0 0;color:rgba(239,233,216,.6)}
.tv-card-count b{font-weight:500;color:var(--cream)}
.tv-field{grid-column:1 / -1;grid-row:2;position:relative;height:clamp(82px,13vh,128px);margin-top:clamp(12px,2vh,24px)}
.tv-field-ticks{position:absolute;left:0;right:0;top:22px;bottom:22px;border-bottom:1px solid rgba(239,233,216,.22)}
.tv-field-ticks i{position:absolute;bottom:0;width:2px;margin-left:-1px;height:calc(var(--h) * 100%);background:color-mix(in srgb,var(--ch) 55%,transparent);
  transform-origin:50% 100%;transform:scaleY(0);animation:tvTick .8s var(--out) forwards;animation-delay:var(--d)}
.tv-field-ticks i.is-path{background:var(--cream);width:2px}
.tv-field-ticks i.is-now{background:var(--orange);width:3px;margin-left:-1.5px}
@keyframes tvTick{to{transform:none}}
.tv-field-now{position:absolute;top:0;transform:translateX(-50%);white-space:nowrap;color:var(--orange);opacity:0;animation:tvFade .6s var(--out) 1.3s forwards;
  max-width:min(620px,86%);overflow:hidden;text-overflow:ellipsis}
.tv-field-now em,.tv-jtip em,.tv-slate-next em{font-style:italic}
.tv-field-now.is-l{transform:none}.tv-field-now.is-r{transform:translateX(-100%)}
.tv-field-a,.tv-field-b{position:absolute;bottom:0;color:rgba(239,233,216,.5)}
.tv-field-a{left:0}.tv-field-b{right:0}
.tv-card.is-out .tv-card-in{opacity:0;transform:translate3d(0,-2.5%,0);transition:opacity .45s var(--ease),transform .5s var(--ease)}

/* the station ident: the whole Timeline as one barcode */
.tv-ident::before{background:radial-gradient(70% 80% at 30% 40%,rgba(255,76,0,.09),transparent 70%)}
.tv-ident{grid-template-columns:minmax(0,1.62fr) minmax(0,1fr)}
.tv-ident .tv-id-txt{grid-column:1;align-self:end;max-width:none}
.tv-ident .tv-id-side{grid-column:2;grid-row:1;align-self:end;max-width:520px;padding-bottom:.5em}
.tv-id-t{margin:0;font:500 clamp(54px,7.6vw,138px)/.88 var(--rules);letter-spacing:-.05em;color:var(--cream);text-wrap:balance}
.tv-ident .tv-card-era{margin-top:.3em;color:var(--orange)}
.tv-ident .tv-card-desc{max-width:44ch;margin-top:0}
.tv-journey{transition:opacity .7s var(--out)}
.tv-stage.is-ident .tv-journey{opacity:0;transition-duration:.3s}
.tv-fold{position:absolute;z-index:7;display:block;pointer-events:none;will-change:transform,opacity}
.tv-id-keys{margin:clamp(16px,2.6vh,28px) 0 0;display:flex;flex-wrap:wrap;gap:10px 22px;color:rgba(239,233,216,.62)}
.tv-id-keys span{display:inline-flex;align-items:center;gap:6px}
.tv-id-keys kbd{font:500 11px/1 var(--rules);letter-spacing:0;padding:4px 6px;min-width:22px;text-align:center;border:1px solid rgba(239,233,216,.34);color:var(--cream)}
.tv-id-field{height:clamp(112px,17vh,168px)}
.tv-id-field canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.tv-id-mid{position:absolute;bottom:0;left:50%;transform:translateX(-50%);color:rgba(239,233,216,.7);white-space:nowrap;opacity:0;animation:tvFade .6s var(--out) 1.6s forwards}
.tv-id-mid b{font-weight:500;color:var(--cream)}

/* on screen: the right column names the machine in the window, in its own words, until the bumper takes over */
.tv-os{position:absolute;right:var(--pad);top:clamp(22px,3.2vh,32px);width:var(--nw,260px);z-index:1;pointer-events:none;
  opacity:0;transform:translate3d(12px,0,0);transition:opacity .4s var(--ease),transform .5s var(--ease)}
.tv-os.is-on{opacity:1;transform:none;transition:opacity .8s var(--out) .9s,transform 1s var(--out) .9s}
.tv-cap.is-up .tv-os,.tv-stage.is-card .tv-os{opacity:0;transform:translate3d(-12px,0,0);transition:opacity .35s var(--ease),transform .45s var(--ease)}
.tv-os-k{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid rgba(239,233,216,.16);color:rgba(239,233,216,.62)}
.tv-os-k i{width:7px;height:7px;border-radius:50%;background:var(--ch);flex:0 0 auto}
.tv-os-t{margin:0 0 6px;font:500 17px/1.2 var(--rules);letter-spacing:-.02rem;color:var(--cream)}
.tv-os-b{margin:0;font:400 14.5px/1.4 var(--rules);letter-spacing:-.005rem;color:rgba(239,233,216,.66);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}

/* coming up: the bumper in the caption bar's right column */
.tv-upn{position:absolute;right:var(--pad);top:clamp(22px,3.2vh,32px);width:var(--nw,260px);z-index:1;opacity:0;transform:translate3d(18px,0,0);pointer-events:none;
  transition:opacity .45s var(--ease),transform .6s var(--ease)}
.tv-upn.is-on{opacity:1;transform:none;transition:opacity .7s var(--out),transform .9s var(--out)}
.tv-upn-k{display:flex;align-items:center;gap:12px;margin:0 0 12px;color:rgba(239,233,216,.66);white-space:nowrap}
.tv-upn-k span{overflow:hidden;text-overflow:ellipsis;min-width:0}
.tv-upn-bar{flex:1 1 auto;min-width:28px;height:2px;background:rgba(239,233,216,.14);display:block;position:relative}
.tv-upn-bar b{position:absolute;inset:0;background:var(--nc,var(--orange));transform-origin:0 50%;display:block}
.tv-upn-row{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;align-items:start;padding-top:12px;border-top:1px solid rgba(239,233,216,.16)}
.tv-upn-row canvas{width:52px;height:52px;display:block;background:color-mix(in srgb,var(--nc,#B08A4E) 30%,var(--ink))}
.tv-upn-t{margin:0;font:500 17px/1.22 var(--rules);letter-spacing:-.02rem;color:var(--cream);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tv-upn-t span{color:var(--nc,var(--orange));margin-right:.2em}
.tv-upn-t em{font-style:italic}
@media (min-width:1180px){
  html[data-page="tour"]{--nw:clamp(220px,17vw,290px)}
  .tv-cap-in{right:calc(var(--pad) + var(--nw) + var(--gap))}
}
@media (min-width:861px) and (max-width:1179px){.tv-upn,.tv-os{display:none}}
@media (min-width:861px) and (max-width:1100px){
  .tv-bug .lab{display:none}
  .tv-b-notes span,.tv-b-open span{display:none}
  .tv-b-notes,.tv-b-open{width:40px;padding:0}
}
.tv-stage.is-card .tv-upn{opacity:0}

/* an unknown link, said plainly */
.tv-notice{position:absolute;z-index:9;top:calc(var(--top) + 18px);left:50%;width:min(620px,calc(100% - 2 * var(--pad)));display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:6px 18px;align-items:center;padding:14px 14px 14px 18px;background:var(--cream);color:var(--ink);box-shadow:8px 9px 0 rgba(255,76,0,.55);border-left:4px solid var(--orange);
  opacity:0;transform:translate3d(-50%,-12px,0);transition:opacity .4s var(--out),transform .5s var(--out)}
.tv-notice.is-on{opacity:1;transform:translate3d(-50%,0,0)}
.tv-notice[hidden]{display:none}
.tv-notice .lab{grid-column:1;color:var(--orange)}
.tv-notice p{grid-column:1;margin:0;font:400 15px/1.4 var(--rules);letter-spacing:-.01rem}
.tv-notice p b{font-weight:500;word-break:break-all}
.tv-nbs{grid-column:2;grid-row:1 / span 2;display:flex;gap:6px}
.tv-nb{min-height:40px;min-width:40px;padding:0 14px;border:1px solid var(--ink)!important;font:500 10.5px/1 var(--rules)!important;letter-spacing:.16em!important;text-transform:uppercase;color:var(--ink)!important}
.tv-nb:hover{background:var(--ink)!important;color:var(--cream)!important}
.tv-nx{padding:0;font-size:14px!important;letter-spacing:0!important}

/* ───────── below: the program notes on paper ───────── */
.tv-notes{position:relative;background:var(--paper);color:var(--ink);min-height:60vh;padding:clamp(56px,9vh,110px) 0 calc(clamp(60px,10vh,120px) + 56px)}
.tn{max-width:1580px;margin:0 auto;padding:0 var(--pad);--chi:#8A6A34;--ch:#B08A4E}
.tn .lab{color:rgba(1,16,21,.6)}
.tn a{color:inherit}
.tn-bar{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--lr-hair)}
.tn-bar .lab:first-child{color:var(--ink)}
.tn-air{display:flex;align-items:center;gap:8px}
.tn-air i{width:7px;height:7px;border-radius:50%;background:var(--orange)}
.tn-bar .tn-back{margin-left:auto}
.tn-btn{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 16px;border:1px solid var(--ink);color:var(--ink);background:transparent;
  font:500 10.5px/1 var(--rules)!important;letter-spacing:.16em!important;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.tn-btn:hover{background:var(--ink);color:var(--paper)}
.tn-btn.is-solid{background:var(--ink);color:var(--paper);box-shadow:6px 6px 0 color-mix(in srgb,var(--chi) 40%,transparent)}
.tn-btn.is-solid:hover{background:var(--orange);border-color:var(--orange)}
.tn-btn.is-done{background:var(--orange);border-color:var(--orange);color:#fff}
.tn-hero{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:clamp(20px,3.4vw,60px);align-items:end;padding:clamp(28px,5vh,56px) 0 clamp(26px,4vh,44px);border-bottom:1px solid var(--lr-hair)}
.tn-y{font:500 clamp(64px,9vw,150px)/.82 var(--rules);letter-spacing:-.05em;color:var(--chi);white-space:nowrap}
.tn-y.is-long{font-size:clamp(46px,5.4vw,92px)}
.tn-hero h2{margin:8px 0 12px;font:500 clamp(30px,3.3vw,56px)/1.04 var(--rules);letter-spacing:-.04rem;max-width:26ch;text-wrap:balance}
.tn-hero h2 em{font-style:italic}
.tn-meta{margin:0}
.tn-meta .fl{color:var(--orange)}
.tn-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.tn-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,96px);padding-top:clamp(30px,5vh,56px)}
.tn-read{min-width:0}
.tn-read p{font:400 clamp(19px,1.35vw,22px)/1.58 var(--serif);margin:0 0 1em;max-width:66ch;color:#15242A}
.tn-read p a{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--chi) 60%,transparent);text-underline-offset:3px}
.tn-read p a:hover{color:var(--chi)}
.tn-read em{font-style:italic}
.tn-fig{margin:0 0 30px;max-width:720px}
.tn-fig img{display:block;max-width:100%;max-height:520px;height:auto;background:#E9E3D1;box-shadow:var(--lr-shadow)}
.tn-fig figcaption{margin-top:14px;font:400 13.5px/1.45 var(--rules);color:rgba(1,16,21,.64)}
.tn-fig figcaption a{text-decoration:underline;text-underline-offset:2px;display:inline-block;padding:10px 0;margin:-10px 0}
.tn-src{margin-top:26px;padding-top:16px;border-top:1px solid var(--lr-hair)}
.tn-src ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.tn-src a,.tn-src li>span{font:400 14px/1.4 var(--rules)}
.tn-src a{display:inline-flex;align-items:center;min-height:40px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(1,16,21,.3)}
.tn-src li>span{display:inline-block;padding:10px 0;color:rgba(1,16,21,.72)}
.tn-side{min-width:0;display:flex;flex-direction:column;gap:34px}
.tn-h{display:flex;align-items:center;gap:12px;margin:0 0 14px}
.tn-h::before{content:'';width:18px;height:1px;background:currentColor;opacity:.6}
.tn-h3{font:500 clamp(24px,2vw,34px)/1.05 var(--rules);letter-spacing:-.04rem;margin:0 0 18px}

/* watch next: the broadcast's own previous and next, and time's */
.tn-watch{background:var(--ink);color:var(--cream);padding:22px;box-shadow:10px 11px 0 color-mix(in srgb,var(--chi) 30%,transparent)}
.tn-watch .lab{color:rgba(239,233,216,.62)}
.tn-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.tn-w{display:flex;flex-direction:column;gap:8px;text-align:left;padding:12px;border:1px solid rgba(239,233,216,.18);min-height:100%;transition:border-color .2s,background .2s;color:var(--cream)}
.tn-w:hover{border-color:var(--cream);background:rgba(239,233,216,.05)}
.tn-w .tn-plate{width:100%;height:64px}
.tn-w .lab{display:flex;justify-content:space-between;gap:8px}
.tn-w b{font:500 15px/1.22 var(--rules);letter-spacing:-.01rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tn-w b span{color:var(--c);margin-right:.3em}
.tn-w.is-end{opacity:.55;cursor:default}
.tn-sub{margin:4px 0 10px}
.tn-later{list-style:none;margin:0;padding:0;border-top:1px solid rgba(239,233,216,.14)}
.tn-later button{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;width:100%;min-height:44px;align-items:center;text-align:left;padding:10px 0;border-bottom:1px solid rgba(239,233,216,.14);color:var(--cream)}
.tn-later button:hover b{text-decoration:underline;text-underline-offset:3px}
.tn-later span{font:500 13px/1.3 var(--rules);color:var(--c)}
.tn-later b{font:400 14px/1.3 var(--rules);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tn-chips{display:flex;flex-wrap:wrap;gap:8px}
.tn-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(1,16,21,.24);font:400 14px/1.2 var(--rules);color:var(--ink);text-decoration:none;background:transparent;cursor:pointer;transition:border-color .2s,background .2s}
.tn-chip:hover{border-color:var(--ink);background:#fff}
.tn-chip small{font:500 10.5px/1 var(--rules);letter-spacing:.1em;opacity:.55}
.tn-chip i{width:14px;height:2px;background:var(--chi)}
.tn-chip.is-tag{border-style:dashed}

/* filed under: every subject, grouped by kind, none dropped */
.tn-subj{margin-top:clamp(48px,8vh,90px);padding-top:clamp(28px,5vh,44px);border-top:1px solid var(--ink)}
.tn-sgs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:30px clamp(24px,3vw,56px);align-items:start}
.tn-sg h4{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;padding-bottom:9px;border-bottom:2px solid var(--chi);color:var(--ink)}
.tn-sg h4 span{color:rgba(1,16,21,.5)}
.tn-chip.is-subj small:empty{display:none}
.tn-region svg{width:16px;height:16px;fill:var(--chi);flex:0 0 auto}
.tn-hint{margin:10px 0 0;font:400 13.5px/1.4 var(--rules);color:rgba(1,16,21,.58)}

/* related and echoes: moment rows with era plates */
.tn-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,96px);margin-top:clamp(48px,8vh,90px);padding-top:clamp(28px,5vh,44px);border-top:1px solid var(--ink)}
.tn-rows{display:flex;flex-direction:column}
.tn-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--lr-hair);text-decoration:none;color:var(--ink)}
.tn-row:first-child{border-top:1px solid var(--lr-hair)}
.tn-row .tn-plate{width:72px;height:72px}
.tn-row b{font:500 clamp(17px,1.25vw,20px)/1.2 var(--rules);letter-spacing:-.02rem;display:block;margin-top:5px}
.tn-row b span{color:var(--ci)}
.tn-row small{display:block;margin-top:5px;font:400 13.5px/1.3 var(--rules);color:rgba(1,16,21,.58)}
.tn-row:hover b{text-decoration:underline;text-underline-offset:3px}
.tn-row .lab i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ci);margin-right:7px;vertical-align:0}
.tn-plate{display:block;background:color-mix(in srgb,var(--c,#B08A4E) 30%,#011015)}
.tn-none{font:400 15px/1.45 var(--rules);color:rgba(1,16,21,.6);margin:0}
.tn-none a{text-decoration:underline}

/* from Le Random: editorials and podcast */
.tn-lr{margin-top:clamp(48px,8vh,90px);padding-top:clamp(28px,5vh,44px);border-top:1px solid var(--ink)}
.tn-lr-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,96px)}
.tn-ed{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--lr-hair);text-decoration:none;color:var(--ink)}
.tn-ed:first-child{border-top:1px solid var(--lr-hair)}
.tn-ed-n{font:500 13px/1 var(--rules);color:var(--orange)}
.tn-ed b{display:block;font:500 clamp(18px,1.4vw,22px)/1.2 var(--rules);letter-spacing:-.02rem;margin:6px 0 4px}
.tn-ed small{font:400 13.5px/1.3 var(--rules);color:rgba(1,16,21,.58)}
.tn-ed-go{font:400 16px/1 var(--rules);transition:transform .25s var(--out)}
.tn-ed:hover .tn-ed-go{transform:translate(3px,-3px);color:var(--orange)}
.tn-ed:hover b{text-decoration:underline;text-underline-offset:3px}
.tn-pod{padding:16px 0;border-bottom:1px solid var(--lr-hair)}
.tn-pod:first-child{border-top:1px solid var(--lr-hair)}
.tn-pod-top{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.tn-pod-n{font:500 12px/1 var(--rules);letter-spacing:.08em;padding:5px 7px;background:var(--ink);color:var(--paper)}
.tn-pod.is-chapter .tn-pod-n{background:var(--orange)}
.tn-pod-badge{color:var(--orange)!important}
.tn-pod b{display:block;font:500 17px/1.25 var(--rules);letter-spacing:-.01rem}
.tn-pod-meta{margin-top:8px}
.tn-pod-bar{height:3px;background:rgba(1,16,21,.1);margin-top:10px}
.tn-pod-bar i{display:block;height:100%;background:var(--ink)}
.tn-pod-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px}
.tn-pod-links a{font:500 10.5px/1 var(--rules);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;min-height:40px;
  background:linear-gradient(currentColor,currentColor) 0 calc(100% - 6px)/100% 1px no-repeat}
.tn-pod-links a:hover{color:var(--orange)}

/* the rundown: the whole program */
.tn-run{margin-top:clamp(48px,8vh,90px);padding-top:clamp(28px,5vh,44px);border-top:1px solid var(--ink)}
.tn-run-head{display:flex;align-items:end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.tn-run-head p{margin:0;max-width:58ch;font:400 17px/1.45 var(--serif);color:rgba(1,16,21,.72)}
.tn-part{margin-top:26px}
.tn-part>.lab{display:block;margin-bottom:12px;color:var(--ink)}
.tn-cols{columns:3 300px;column-gap:clamp(24px,3vw,56px)}
.tn-grp{break-inside:avoid;margin:0 0 20px}
.tn-grp h4{margin:0 0 6px;padding-bottom:8px;border-bottom:2px solid var(--ci);font:500 10.5px/1.2 var(--rules);letter-spacing:.16em;text-transform:uppercase;display:flex;gap:10px}
.tn-grp h4 span{color:var(--ci)}
.tn-grp ol{list-style:none;margin:0;padding:0}
.tn-grp button{display:grid;grid-template-columns:74px minmax(0,1fr);gap:10px;width:100%;min-height:40px;text-align:left;padding:9px 0;border-bottom:1px solid rgba(1,16,21,.08);align-items:baseline}
.tn-grp button span{font:500 13px/1.3 var(--rules);color:var(--ci)}
.tn-grp button b{font:400 14.5px/1.3 var(--rules);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tn-grp button b em,.tn-later b em{font-style:italic}
.tn-grp button:hover b{text-decoration:underline;text-underline-offset:3px}
.tn-grp button.is-done b{opacity:.5}
.tn-grp button.is-now{background:var(--ink);color:var(--paper);padding-left:8px;margin-left:-8px;width:calc(100% + 16px);padding-right:8px}
.tn-grp button.is-now span{color:var(--orange)}
.tn-foot{margin-top:clamp(56px,9vh,100px);padding-top:22px;border-top:1px solid var(--lr-hair);display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between}
.tn-foot p{margin:0;font:400 13.5px/1.45 var(--rules);color:rgba(1,16,21,.6);max-width:70ch}
.tn-foot nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.tn-foot nav a{font:400 14px/1 var(--rules);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:44px}
.tn-foot nav a:hover{color:var(--orange)}
.tn-empty{padding:40px 0;font:400 18px/1.5 var(--serif);color:rgba(1,16,21,.6)}

/* back to the broadcast: a pill while you read */
.tv-pill{position:fixed;right:max(16px,var(--pad));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:40;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 18px 0 14px;
  background:var(--ink)!important;color:var(--cream)!important;font:500 10.5px/1 var(--rules)!important;letter-spacing:.16em!important;text-transform:uppercase;
  box-shadow:6px 6px 0 rgba(1,16,21,.18);transform:translateY(0);transition:transform .35s var(--out),opacity .3s}
.tv-pill i{width:8px;height:8px;border-radius:50%;background:rgba(239,233,216,.5)}
.tv-pill:hover{background:var(--orange)!important}
.tv-pill[hidden]{display:flex;opacity:0;pointer-events:none;transform:translateY(20px)}

.tv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ───────── narrower screens ───────── */
@media (max-width:1100px){
  .tv-slate-next{display:none}
  .tn-grid,.tn-lr-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  html[data-page="tour"]{--bot:clamp(340px,47svh,430px);--ycol:auto}
  .tv-stage.is-nocc{--bot:clamp(232px,30svh,270px)}
  /* the site nav's tab bar owns the bottom 52px while you move; the journey line lives there while you watch */
  .tv-foot{left:0;right:0;bottom:0;height:0;display:block}
  .tv-journey{position:absolute;left:var(--pad);right:var(--pad);bottom:calc(10px + env(safe-area-inset-bottom,0px));height:30px}
  .tv-ctl{position:absolute;left:var(--pad);right:var(--pad);bottom:calc(60px + env(safe-area-inset-bottom,0px));justify-content:space-between;gap:6px}
  html.tv-idle .tv-ctl{opacity:0}
  .tv-b{width:44px;height:44px}
  .tv-b-play{width:56px}
  .tv-b-t{width:auto;padding:0 12px}
  .tv-ctl-sep{display:none}
  #tv-fs{display:none}
  .tv-id-mid{display:none}
  .tv-id-keys{gap:10px 16px}
  .tv-os,.tv-bug{display:none}
  .tv-upn{top:auto;left:var(--pad);right:var(--pad);width:auto;bottom:calc(58px + env(safe-area-inset-bottom,0px));transform:translate3d(0,8px,0)}
  .tv-upn-k{margin-bottom:6px}
  .tv-upn-row{grid-template-columns:36px minmax(0,1fr);gap:10px;padding-top:0;border-top:0;align-items:center}
  .tv-upn-row canvas{width:36px;height:36px}
  .tv-upn-t{font-size:14.5px;-webkit-line-clamp:1;white-space:nowrap;display:block;text-overflow:ellipsis}
  html:not(.tv-idle) .tv-upn,html:not(.tv-idle) .tv-upn.is-on{opacity:0;transition-duration:.2s}
  .tv-notice{top:calc(var(--top) + 10px);grid-template-columns:1fr}
  .tv-nbs{grid-column:1;grid-row:auto;margin-top:6px}
  .tv-cap-in{top:16px;bottom:calc(114px + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr);row-gap:8px}
  .tv-year{grid-column:1;grid-row:1;--ys:clamp(46px,14vw,64px)}
  .tv-chl{grid-column:2;grid-row:1;text-align:right;align-self:center}
  .tv-head{grid-column:1 / -1;grid-row:2;align-self:start}
  .tv-kick{margin-bottom:6px}
  .tv-title{--ts:clamp(21px,6vw,26px);-webkit-line-clamp:3}
  .tv-sub{grid-column:1 / -1;grid-row:3;font-size:clamp(17px,4.6vw,19px);line-height:1.36;max-width:none}
  .tv-stage.is-nocc .tv-cap-in{grid-template-rows:auto auto}
  .tv-stage.is-nocc .tv-chl{display:block}
  .tv-slate{gap:14px}
  .tv-slate-pos{padding-left:12px;margin-left:auto}
  .tv-live{left:12px;bottom:12px;max-width:calc(100% - 24px)}
  .tv-hold{left:12px;bottom:12px;max-width:calc(100% - 24px);gap:10px;padding-left:12px}
  .tv-hold-t{font-size:13.5px}
  .tv-card{bottom:calc(112px + env(safe-area-inset-bottom,0px))}
  .tv-card-in{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);align-items:start;row-gap:12px;padding-top:22px}
  .tv-card-num{font-size:min(30vh,40vw);grid-row:1}
  .tv-card-txt{grid-column:1;grid-row:2}
  .tv-card-k{margin-bottom:12px}
  .tv-card-desc{font-size:16.5px;line-height:1.42;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
  .tv-field{grid-row:3;align-self:end;height:84px;margin-bottom:6px}
  .tv-ident{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);row-gap:18px}
  .tv-ident .tv-id-txt,.tv-ident .tv-id-side{grid-column:1;align-self:start;max-width:none;padding-bottom:0}
  .tv-ident .tv-id-txt{grid-row:1}
  .tv-ident .tv-id-side{grid-row:2}
  .tv-ident .tv-id-field{grid-row:3;height:clamp(96px,14svh,130px)}
  .tv-ident .tv-card-desc{-webkit-line-clamp:7}
  .tv-id-t{font-size:clamp(44px,13.4vw,60px)}
  .tv-jtip{display:none}
  .tv-notes{padding-bottom:calc(136px + env(safe-area-inset-bottom,0px))}
  .tn-two{grid-template-columns:1fr}
  .tv-pill{bottom:calc(64px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:760px){
  .tv-b-notes span,.tv-b-open span{display:none}
  .tv-b-notes,.tv-b-open{width:44px;padding:0}
  .tn-hero{grid-template-columns:1fr;gap:8px}
  .tn-y{font-size:clamp(56px,17vw,84px)}
  .tn-y.is-long{font-size:clamp(40px,11vw,60px)}
  .tn-pair{grid-template-columns:1fr 1fr}
  .tn-bar .tn-back{margin-left:0}
  .tn-cols{columns:1}
  .tn-ed{grid-template-columns:30px minmax(0,1fr) auto;gap:10px}
}
/* tablets upright: the phone layout, set larger so the tall caption bar reads from the sofa */
@media (min-width:600px) and (max-width:860px){
  .tv-year{--ys:clamp(64px,10vw,86px)}
  .tv-title{--ts:clamp(28px,4.3vw,37px)}
  .tv-sub{font-size:clamp(20px,2.9vw,24px)}
  .tv-card-num{font-size:min(30vh,34vw)}
  .tv-card-desc{font-size:19px}
}
@media (max-height:620px) and (min-width:861px){
  html[data-page="tour"]{--bot:clamp(210px,36vh,260px)}
  .tv-sub{font-size:19px}
  .tv-card-desc{display:none}
}

/* ───────── reduced motion: a still, legible broadcast ─────────
   tour.js adds html.tv-rm when the viewer prefers reduced motion (or the page is opened as tour.html#still), so the
   still broadcast is one state that can be seen and checked. Shutters become an ink fade, words and numerals appear
   without travel, the barcode draws at once, the chrome only fades. */
html.tv-rm .tv-ground canvas{animation:none}
html.tv-rm .tv-shut{transform:none!important;opacity:0;transition:opacity .3s!important}
html.tv-rm .tv-band.is-shut .tv-shut{opacity:1}
html.tv-rm .tv-shut::after{display:none}
html.tv-rm .w,html.tv-rm .tv-title .w,html.tv-rm .tv-sub .w{opacity:1;transform:none;animation:none}
html.tv-rm .tv-sub-l:not(.is-gone){animation:tvFade .4s both}
html.tv-rm .tv-sub-l.is-gone{animation:tvOut .3s forwards}
html.tv-rm .tv-card-num span,html.tv-rm .tv-card-txt>*,html.tv-rm .tv-field-ticks i{animation:tvFade .4s both!important;transform:none}
html.tv-rm .tv-field-now,html.tv-rm .tv-id-mid{animation:tvFade .4s both!important}
html.tv-rm .tv-card.is-out .tv-card-in,html.tv-rm .tv-cap.is-out .tv-head,html.tv-rm .tv-cap.is-out .tv-chl{transform:none}
html.tv-rm .odo-r,html.tv-rm .odo-d{transition:none}
html.tv-rm .tv-jhead{transition:none}
html.tv-rm .tv-air i,html.tv-rm .tv-live .lab i{animation:none}
html.tv-rm .tv-upn,html.tv-rm .tv-upn.is-on,html.tv-rm .tv-os,html.tv-rm .tv-os.is-on,html.tv-rm .tv-cap.is-up .tv-os,
html.tv-rm .tv-live,html.tv-rm .tv-hold,html.tv-rm .tv-ctl{transform:none!important}
html.tv-rm .tv-notice{transform:translate3d(-50%,0,0)!important}
@keyframes tvOut{to{opacity:0}}
@keyframes tvFade{from{opacity:0}to{opacity:1}}
