/* ============================================================
   DELTA ONE · HUB · video player (window.D1Player)
   Ice on basalt — a dark plate in both themes, same tokens as the Book.
   Everything is scoped under .d1p so it does not depend on hub.css.
   ============================================================ */
@font-face{font-family:'Manrope';src:url('/brand/fonts/manrope-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';src:url('/brand/fonts/manrope-latin-600-normal.woff2') format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Manrope';src:url('/brand/fonts/manrope-latin-700-normal.woff2') format('woff2');font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';src:url('/brand/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';src:url('/brand/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2');font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

.d1p{
  --bg:#050608;--bg2:#07090C;--card:#0A0E12;--ink:#E9F1F5;--ink2:#9FB4BD;--ink3:#5E7078;--ink3s:#71858E;
  --ice:#BCD3DF;--ice-dim:rgba(188,211,223,.62);--line:rgba(188,211,223,.14);--line2:rgba(188,211,223,.07);
  --edge:rgba(188,211,223,.34);--gold:#C8A96A;--pill-ink:#0A0F13;
  --sans:'Manrope',system-ui,-apple-system,sans-serif;--mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  --r2:10px;--r3:14px;--r4:18px;
  --ease:cubic-bezier(.16,1,.3,1);--t-fast:.35s cubic-bezier(.16,1,.3,1);--t-slow:.9s cubic-bezier(.16,1,.3,1);
  --ctl:48px;            /* control size — 56 on touch */
  --d1p-head:62px;       /* header incl. borders (used by the theater size envelope) — 70 on touch */
  --d1p-ar:1.7777778;    /* video aspect, set per item */
  position:fixed;inset:0;z-index:1000;display:none;pointer-events:none;
  font-family:var(--sans);font-weight:500;font-size:15px;line-height:1.4;color:var(--ink);
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;
}
@media (pointer:coarse){.d1p{--ctl:56px;--d1p-head:70px}}   /* touch type sizes: see the end of this file (they must win the cascade) */
.d1p.is-open{display:block}
.d1p *,.d1p *::before,.d1p *::after{box-sizing:border-box}
.d1p :where(button){font:inherit;color:inherit;background:none;border:0;cursor:pointer;margin:0;padding:0;-webkit-appearance:none;appearance:none}
.d1p :where(button:disabled){opacity:.4;cursor:default}
.d1p [hidden]{display:none!important}
.d1p :where(a){color:inherit;text-decoration:none}
.d1p .i-fsx,.d1p .i-dock{display:none}
.d1p.is-fs .i-fs{display:none}.d1p.is-fs .i-fsx{display:block}
.d1p[data-mode="float"] .i-float{display:none}.d1p[data-mode="float"] .i-dock{display:block}
.d1p :where(svg){display:block;flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.d1p .d1p-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.d1p button:focus-visible,.d1p a:focus-visible,.d1p [tabindex]:focus-visible,.d1p input:focus-visible{outline:2px solid var(--ice);outline-offset:3px;border-radius:8px}
.d1p ::selection{background:rgba(188,211,223,.25)}
html.d1p-lock,html.d1p-lock body{overflow:hidden!important;overscroll-behavior:none}

/* ---------- scrim (theater) ---------- */
.d1p-scrim{position:absolute;inset:0;background:rgba(3,4,6,.66);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  opacity:0;transition:opacity .45s ease;pointer-events:auto}
.d1p.is-in .d1p-scrim{opacity:1}
.d1p.is-open:not(.is-in) .d1p-scrim,.d1p.is-open:not(.is-in) .d1p-panel{pointer-events:none}   /* the 380 ms close fade lets clicks through to the page (open() adds .is-in on the next frame) */
.d1p[data-mode="float"] .d1p-scrim{display:none}

/* ---------- panel ---------- */
.d1p-panel{position:absolute;left:50%;top:50%;pointer-events:auto;
  width:min(90vw,1920px,calc((85vh - var(--d1p-head)) * var(--d1p-ar)));
  width:min(90vw,1920px,calc((85svh - var(--d1p-head)) * var(--d1p-ar)));
  transform:translate(-50%,-50%) scale(.96);opacity:0;
  transition:transform .45s var(--ease),opacity .45s ease}
.d1p.is-in .d1p-panel{transform:translate(-50%,-50%) scale(1);opacity:1}
.d1p-frame{position:relative;display:flex;flex-direction:column;border-radius:var(--r4);overflow:hidden;
  background:rgba(5,7,11,.78);border:1px solid var(--line);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 34px 90px rgba(0,0,0,.6),0 6px 22px rgba(0,0,0,.35)}

/* ---------- head: mark · title · float / close ---------- */
.d1p-head{display:flex;align-items:center;gap:14px;min-height:56px;padding:6px 10px 6px 18px;border-bottom:1px solid var(--line2);
  background:linear-gradient(180deg,rgba(188,211,223,.04),transparent);user-select:none;-webkit-user-select:none}
.d1p-mark{flex:none;width:36px;height:auto;opacity:.92;pointer-events:none}
.d1p-titles{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:10px;row-gap:3px}   /* eyebrow line, then title + note chip on one line */
.d1p-titles .d1p-eyebrow{flex:1 1 100%;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}   /* fades instead of clipping mid-word in a narrow header */
[dir="rtl"] .d1p-titles .d1p-eyebrow{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to left,#000 calc(100% - 28px),transparent)}
.d1p-eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ice-dim);
  display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden}
.d1p-eyebrow::before{content:'';width:18px;height:1px;background:var(--ice);opacity:.7;flex:none}
.d1p .d1p-eyebrow:empty{display:none}   /* no orphan dash when a card has no eyebrow text */
.d1p-title{flex:0 1 auto;min-width:0;font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* "Shown in English": the one line that explains why the film speaks another language — a chip like the hub's .fallback-chip */
.d1p-note{flex:none;display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid var(--edge);border-radius:999px;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.d1p-note:empty{display:none}
.d1p-headbtns{display:flex;gap:6px;flex:none;position:relative;z-index:31}   /* above the float resize handles */
.d1p-hb{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:var(--ctl);min-height:var(--ctl);height:var(--ctl);padding:0 16px 0 14px;border-radius:999px;
  border:1px solid var(--edge);color:var(--ink);background:rgba(10,14,18,.55);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  transition:border-color var(--t-fast),transform var(--t-fast),background var(--t-fast)}
.d1p-hb svg{width:18px;height:18px}
.d1p-hb .d1p-x{transition:transform .5s var(--ease)}
.d1p-hb .d1p-hbl{font:600 14px/1 var(--sans);letter-spacing:0;text-transform:none;white-space:nowrap}   /* the word next to the icon (SPEC §5) */
.d1p-hb .d1p-hbl:empty{display:none}

/* ---------- stage ---------- */
.d1p-stage{position:relative;width:100%;aspect-ratio:var(--d1p-ar);background:#000;overflow:hidden;container-type:inline-size;outline:0}
.d1p .d1p-stage[tabindex]:focus-visible{outline:0}   /* programmatic focus on open: no clipped ring (tabindex=-1, never Tab-reached) */
.d1p-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;display:block}
.d1p-video::cue{background:rgba(3,4,6,.72);color:#E9F1F5;font-family:var(--sans);font-size:clamp(14px,2.6cqw,26px);line-height:1.35}
.d1p-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;pointer-events:none;
  opacity:0;transition:opacity .5s ease}
.d1p[data-state="idle"] .d1p-poster,.d1p[data-state="loading"] .d1p-poster,.d1p[data-state="error"] .d1p-poster{opacity:1}
.d1p.is-resume .d1p-poster{opacity:1}
.d1p-tap{position:absolute;inset:0;z-index:1;cursor:pointer;touch-action:manipulation}
.d1p.is-idle[data-state="playing"] .d1p-stage,.d1p.is-idle[data-state="playing"] .d1p-tap{cursor:none}

/* skip ripple ("−10 s" / "+10 s") */
.d1p-skip{position:absolute;top:50%;width:112px;height:112px;margin-top:-56px;border-radius:50%;z-index:2;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:rgba(188,211,223,.14);border:1px solid rgba(188,211,223,.35);color:var(--ink);
  font-family:var(--mono);font-size:13px;letter-spacing:.1em;opacity:0;transform:scale(.7)}
.d1p-skip.l{left:10%}.d1p-skip.r{right:10%}   /* physical: the tap zones are physical too */
.d1p-skip span{direction:ltr;unicode-bidi:isolate}
.d1p-skip.go{animation:d1pSkip .7s var(--ease) 1}
@keyframes d1pSkip{0%{opacity:0;transform:scale(.7)}25%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.25)}}

/* big central play / pause — the Book's lens, larger */
.d1p-big{position:absolute;left:50%;top:50%;z-index:3;width:92px;height:92px;margin:-46px 0 0 -46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--ink);
  background:rgba(5,7,11,.6);border:1px solid rgba(188,211,223,.5);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  transition:transform var(--t-fast),opacity .3s ease,background var(--t-fast)}
.d1p-big svg{width:34px;height:34px;fill:var(--ink);stroke:none}
.d1p-big .i-play{margin-inline-start:5px}
.d1p-big::before{content:'';position:absolute;inset:-1px;border-radius:50%;border:1px solid rgba(188,211,223,.55);animation:d1pPulse 2.4s ease-out infinite}
@keyframes d1pPulse{0%{transform:scale(1);opacity:.9}70%{transform:scale(1.55);opacity:0}100%{transform:scale(1.55);opacity:0}}
.d1p .i-pause{display:none}
.d1p[data-state="playing"] .d1p-big{transform:scale(.9)}
.d1p[data-state="playing"] .d1p-big::before{animation:none;opacity:0}
.d1p[data-state="playing"] .d1p-big .i-play{display:none}
.d1p[data-state="playing"] .d1p-big .i-pause{display:block}
.d1p[data-state="playing"] .d1p-big,.d1p[data-state="ended"] .d1p-big,.d1p[data-state="error"] .d1p-big,.d1p[data-state="loading"] .d1p-big,.d1p.is-resume .d1p-big,.d1p.has-menu .d1p-big{opacity:0;visibility:hidden;pointer-events:none;
  transition:transform var(--t-fast),opacity .3s ease,background var(--t-fast),visibility 0s .3s}
.d1p.is-mini .d1p-big{display:none}

/* spinner */
.d1p-spin{position:absolute;left:50%;top:50%;z-index:3;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;pointer-events:none;
  border:2px solid rgba(188,211,223,.18);border-top-color:var(--ice);box-shadow:0 0 18px rgba(188,211,223,.25);
  opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s .25s;animation:d1pSpin 1s linear infinite}
.d1p.is-waiting .d1p-spin,.d1p[data-state="loading"] .d1p-spin{opacity:1;visibility:visible;transition:opacity .25s ease,visibility 0s}
@keyframes d1pSpin{to{transform:rotate(360deg)}}

/* overlays: resume · ended · error */
.d1p-ov{position:absolute;inset:0;z-index:4;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;
  padding:24px;background:rgba(3,4,6,.58);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.d1p-ov.is-on{display:flex}
.d1p-ov-ended{justify-content:flex-start;padding-bottom:calc(var(--ctl) + 54px)}   /* room for seek bar + control bar, which stay up on the end card */
.d1p-ov-ended .d1p-endgrid{margin:auto 0}                                          /* centred when it fits, scrollable from the top when it does not */
.d1p-ov .d1p-eyebrow{justify-content:center}
.d1p-ov-h{font-size:clamp(18px,3.4cqw,26px);font-weight:700;letter-spacing:-.01em;line-height:1.15;max-width:22ch;color:var(--ink)}
.d1p-ov-p{font-size:15px;color:var(--ink2);max-width:44ch}
.d1p-ov-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.d1p-pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;min-height:var(--ctl);padding:0 26px;
  font-weight:700;font-size:15px;letter-spacing:.005em;transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.d1p-pill.primary{background:var(--ice);color:var(--pill-ink);box-shadow:0 14px 44px rgba(188,211,223,.22)}
.d1p-pill.primary svg{stroke:var(--pill-ink)}
.d1p-pill.ghost{border:1px solid var(--edge);color:var(--ink)}
/* "Watch again": the big ice lens and the words are ONE button (grandpa-usability-r2-04) */
.d1p-replay{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 14px;border-radius:24px;color:var(--ink)}
.d1p-replay-i{width:96px;height:96px;border-radius:50%;background:var(--ice);color:var(--pill-ink);display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 44px rgba(188,211,223,.28);transition:transform var(--t-fast),box-shadow var(--t-fast)}
.d1p-replay-i svg{width:38px;height:38px;stroke:var(--pill-ink)}
.d1p-replay-l{font-size:clamp(18px,3.4cqw,26px);font-weight:700;letter-spacing:-.01em;line-height:1.15}

/* ---------- controls (glassy bar at the foot of the stage) ---------- */
.d1p-controls{position:absolute;inset-inline:0;inset-block-end:0;z-index:5;padding:40px 12px 10px;pointer-events:none;
  background:linear-gradient(180deg,rgba(3,4,6,0),rgba(3,4,6,.72));
  transition:opacity .35s ease,transform .45s var(--ease)}
.d1p-controls>*{pointer-events:auto}   /* only the seek bar and the bar itself take pointer events, not the gradient above them */
.d1p.is-idle .d1p-controls>*{pointer-events:none}
.d1p.is-idle .d1p-controls{opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none;transition:opacity .35s ease,transform .45s var(--ease),visibility 0s .35s}
.d1p.is-idle .d1p-head{opacity:.4}
.d1p[data-mode="float"].is-idle .d1p-head{opacity:1}
.d1p.is-mini .d1p-controls{display:none}
.d1p-bar{display:flex;align-items:center;gap:2px;overflow:hidden;min-height:calc(var(--ctl) + 12px);padding:6px 8px;border-radius:var(--r3);
  background:rgba(10,14,18,.66);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 12px 40px rgba(0,0,0,.35)}
.d1p-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;
  min-width:var(--ctl);height:var(--ctl);padding:0 10px;border-radius:12px;color:var(--ink);
  transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}
.d1p-btn:active{transform:scale(.96)}
.d1p-btn[aria-pressed="true"],.d1p-btn.is-on{color:var(--ice)}
.d1p-btn .d1p-lbl{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.d1p-btn.d1p-lang{border:1px solid var(--edge);border-radius:999px;padding:0 16px 0 12px;margin-inline:4px}
.d1p-btn.d1p-lang .d1p-lbl,.d1p-btn.d1p-dl .d1p-lbl,.d1p-btn.d1p-share .d1p-lbl{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none}
.d1p-btn.d1p-cc.is-on .d1p-lbl{color:var(--ice)}
.d1p-btn.d1p-cc.is-on::after{content:'';position:absolute;inset-inline:14px;bottom:6px;height:2px;border-radius:2px;background:var(--ice);box-shadow:0 0 8px rgba(188,211,223,.8)}
.d1p-btn.d1p-fwd svg,.d1p-btn.d1p-back svg{width:26px;height:26px}
.d1p-btn.d1p-play svg{fill:currentColor;stroke:none}
.d1p-btn.d1p-play .i-pause{display:none}
.d1p[data-state="playing"] .d1p-btn.d1p-play .i-play{display:none}
.d1p[data-state="playing"] .d1p-btn.d1p-play .i-pause{display:block}
.d1p-sp{flex:1;min-width:6px}
.d1p-time{flex:none;direction:ltr;unicode-bidi:isolate;display:flex;align-items:baseline;gap:6px;padding:0 10px;font-family:var(--mono);font-size:12.5px;font-weight:500;letter-spacing:.04em;color:var(--ink2);white-space:nowrap;font-variant-numeric:tabular-nums}
.d1p-time .cur{color:var(--ink)}
.d1p-time .sep{color:var(--ink3)}
.d1p-time .rem{color:var(--ink3s)}
.d1p-time .rem::before{content:'−'}

/* volume */
.d1p-vol{display:flex;align-items:center;flex:0 1 auto;min-width:0}
.d1p-vol input{-webkit-appearance:none;appearance:none;width:0;height:var(--ctl);margin:0;padding:0 6px;background:transparent;cursor:pointer;opacity:0;
  transition:width var(--t-fast),opacity var(--t-fast),padding var(--t-fast)}
.d1p-vol:hover input,.d1p-vol:focus-within input,.d1p-vol input:focus{width:96px;min-width:32px;opacity:1}
.d1p-vol input::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--ice) var(--v,100%),rgba(233,241,245,.18) var(--v,100%))}
.d1p-vol input::-moz-range-track{height:6px;border-radius:3px;background:rgba(233,241,245,.18)}
.d1p-vol input::-moz-range-progress{height:6px;border-radius:3px;background:var(--ice)}
.d1p-vol input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:var(--ice);border:0;box-shadow:0 0 10px rgba(188,211,223,.7)}
.d1p-vol input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ice);border:0;box-shadow:0 0 10px rgba(188,211,223,.7)}
.d1p-vol input:focus-visible{outline:2px solid var(--ice);outline-offset:0;border-radius:8px}
@media (pointer:coarse){.d1p-vol input{display:none}}

/* seek bar — 8 px track, 20 px hit area, ice fill with glow, buffered ranges, scrub preview */
.d1p-seekwrap{position:relative;padding:0 8px 4px}
.d1p-seek{position:relative;height:20px;display:flex;align-items:center;cursor:pointer;touch-action:none;outline:0;border-radius:8px}
.d1p-seek:focus-visible{outline:2px solid var(--ice);outline-offset:2px}
.d1p-track{position:relative;width:100%;height:8px;border-radius:4px;background:rgba(233,241,245,.14);overflow:visible}
.d1p-buf{position:absolute;inset-block:0;border-radius:4px;background:rgba(233,241,245,.2)}
.d1p-played{position:absolute;inset-block:0;inset-inline-start:0;width:0;border-radius:4px;background:var(--ice);
  box-shadow:0 0 12px rgba(188,211,223,.75),0 0 30px rgba(188,211,223,.35)}
.d1p-knob{position:absolute;top:50%;inset-inline-start:0;width:16px;height:16px;margin:-8px;border-radius:50%;background:var(--ice);
  box-shadow:0 0 0 4px rgba(188,211,223,.18),0 0 16px rgba(188,211,223,.85);transform:scale(0);transition:transform var(--t-fast);pointer-events:none}
.d1p-seek:focus-visible .d1p-knob,.d1p-seek.is-drag .d1p-knob{transform:scale(1)}
@media (pointer:coarse){.d1p-knob{transform:scale(1)}}
.d1p-preview{position:absolute;bottom:calc(100% + 8px);left:0;transform:translateX(-50%);z-index:6;pointer-events:none;
  display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;transition:opacity .2s ease}
.d1p-preview.is-on{opacity:1}
.d1p-thumb{width:160px;height:90px;border-radius:var(--r2);border:1px solid var(--edge);background:#000 no-repeat;background-size:auto;
  box-shadow:0 18px 44px rgba(0,0,0,.55);display:none}
.d1p-thumb.has-img{display:block}
.d1p-ptime{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--ink);padding:5px 10px;border-radius:999px;
  background:rgba(10,14,18,.85);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

/* ---------- menus (speed / quality / language / more) ---------- */
.d1p-menu{position:absolute;z-index:20;bottom:calc(var(--ctl) + 42px);min-width:220px;max-width:calc(100% - 24px);max-height:calc(100% - 80px);overflow:auto;
  padding:6px;border-radius:var(--r3);background:rgba(10,14,18,.92);border:1px solid var(--line);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 24px 60px rgba(0,0,0,.5);
  overscroll-behavior:contain;animation:d1pMenu .3s var(--ease) 1}
@keyframes d1pMenu{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.d1p-mh{display:flex;align-items:center;gap:10px;padding:4px 12px;min-height:44px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ice-dim);border-bottom:1px solid var(--line2);margin-bottom:4px}
.d1p-mh button{display:inline-flex;align-items:center;justify-content:center;width:var(--ctl);height:var(--ctl);margin-inline-start:-12px;border-radius:10px;color:var(--ink2)}
.d1p-mh button svg{width:18px;height:18px}
.d1p-mi{display:flex;align-items:center;gap:14px;width:100%;min-height:var(--ctl);padding:0 12px;border-radius:10px;text-align:start;color:var(--ink2);font-size:15px;font-weight:500;
  transition:background var(--t-fast),color var(--t-fast)}
.d1p-mi:focus-visible{background:rgba(188,211,223,.08);color:var(--ink);outline-offset:-2px}
.d1p-mi[aria-checked="true"]{color:var(--ink)}
.d1p-mi svg{width:20px;height:20px;color:var(--ice);opacity:.85}
.d1p-mi .mt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.d1p-mi .ms{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3s)}
.d1p-mi .mv{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3s);white-space:nowrap}
.d1p-mi .mk{width:20px;height:20px;border-radius:50%;border:1px solid var(--edge);display:flex;align-items:center;justify-content:center;flex:none}
.d1p-mi[aria-checked="true"] .mk{background:var(--ice);border-color:var(--ice);box-shadow:0 0 12px rgba(188,211,223,.6)}
.d1p-mi[aria-checked="true"] .mk::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--pill-ink)}
.d1p-mi .mk svg{display:none}
.d1p-mi.is-sub .mk{display:none}
.d1p-mi.is-sub .mv svg{width:16px;height:16px;color:var(--ink3s)}
.d1p-mi a{color:inherit;text-decoration:none}
.d1p-menu-scrim{position:absolute;inset:0;z-index:19}

/* folding: when the full bar would overflow (player.js fitBar → .is-fold) the secondary controls move into "More".
   In the theater "More" joins a worded Share · Download · More row under the bar (SPEC §5: words next to icons, nothing hidden);
   in the floating panel it stays a bar button. */
.d1p-more,.d1p-actions{display:none}
.d1p.is-fold .d1p-bar .d1p-sec{display:none}
.d1p.is-fold .d1p-bar .d1p-more{display:inline-flex}
.d1p.is-fold[data-mode="theater"] .d1p-bar .d1p-more{display:none}
.d1p.is-fold[data-mode="theater"] .d1p-actions{display:flex}
.d1p.is-fold[data-mode="theater"][data-state="ended"] .d1p-actions{display:none}   /* the end card carries its own worded Share / Download */
.d1p-actions{flex-wrap:wrap;gap:8px;margin-top:8px}
.d1p-actions .d1p-pill{min-height:var(--ctl);padding:0 18px;font-size:14px;font-weight:600;color:var(--ink);
  background:rgba(10,14,18,.66);border:1px solid var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(0,0,0,.35)}
.d1p-actions .d1p-pill svg{width:20px;height:20px}
.d1p-actions .d1p-pill[aria-expanded="true"]{color:var(--ice);border-color:var(--edge)}
@media (pointer:coarse) and (max-width:430px){   /* 56 px pills on a phone: Share · Download · More stay on one row, equal width when they wrap */
  .d1p-actions{gap:6px}
  .d1p-actions .d1p-pill{padding:0 10px;flex:1 1 auto;min-width:0;gap:8px}
  .d1p-actions .d1p-pill svg{width:18px;height:18px}
}
.d1p.is-acttight .d1p-actions .d1p-pill{padding:0 8px}
.d1p.is-acttight .d1p-actions .d1p-pill svg{display:none}   /* the words are the labels; icons only while they fit */
@media (max-height:430px){   /* landscape phones: keep the film visible, "More" goes back into the bar */
  .d1p.is-fold[data-mode="theater"] .d1p-actions{display:none}
  .d1p.is-fold[data-mode="theater"] .d1p-bar .d1p-more{display:inline-flex}
}
@container (min-width:761px){   /* popover menus above the action row */
  .d1p.is-fold[data-mode="theater"] .d1p-menu{bottom:calc(var(--ctl) * 2 + 66px);max-height:calc(100% - var(--ctl) * 2 - 74px)}
}
/* narrow stages: the language pill folds too, menus become sheets */
@container (max-width:760px){
  .d1p.is-fold .d1p-bar .d1p-lang{display:none}
  .d1p-menu{inset:auto 0 0 0;max-width:none;max-height:calc(100% - 8px);border-radius:var(--r4) var(--r4) 0 0;bottom:0;animation:d1pSheet .4s var(--ease) 1}
  .d1p-menu-scrim{background:rgba(3,4,6,.45)}
  .d1p-controls{padding:34px 8px 8px}
  .d1p-bar{padding:4px 4px}
  .d1p-time{padding:0 6px;font-size:12px}
  .d1p-btn{padding:0 6px}
}
@container (max-width:520px){.d1p-time .rem,.d1p-time .sep2{display:none}.d1p-btn .d1p-lbl{display:none}.d1p-btn.d1p-lang .d1p-lbl{display:inline}.d1p-vol{display:none}.d1p-bar{gap:0}}
@container (max-width:400px){.d1p-time{padding:0 4px;font-size:11.5px}.d1p-btn{padding:0 4px}.d1p[data-mode="float"] .d1p-time .dur,.d1p[data-mode="float"] .d1p-time .sep{display:none}}
@container (max-width:340px){.d1p-time .dur,.d1p-time .sep{display:none}}
@media (pointer:coarse){@container (max-width:400px){.d1p[data-mode="float"] .d1p-bar .d1p-back,.d1p[data-mode="float"] .d1p-bar .d1p-fwd{display:none}}}   /* 56 px controls in the smallest float: double-tap still skips */
@keyframes d1pSheet{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}

/* ---------- hover feedback (mouse only: on touch a tap must not leave a pill lifted or a button tinted) ---------- */
@media (hover:hover){
  .d1p-hb:hover{border-color:var(--ice);transform:translateY(-1px);background:rgba(188,211,223,.08)}
  .d1p-hb:hover .d1p-x{transform:rotate(90deg)}
  .d1p-big:hover{transform:scale(1.06);background:rgba(5,7,11,.72)}
  .d1p-pill.primary:hover{transform:translateY(-2px);box-shadow:0 18px 54px rgba(188,211,223,.3)}
  .d1p-pill.ghost:hover{border-color:var(--ice);background:rgba(188,211,223,.06);transform:translateY(-2px)}
  .d1p-replay:hover .d1p-replay-i{transform:scale(1.06)}
  .d1p-ov-ended.has-next .d1p-replay:hover{border-color:var(--ice);background:rgba(188,211,223,.06)}
  .d1p-btn:hover{background:rgba(188,211,223,.09)}
  .d1p-btn.d1p-lang:hover{border-color:var(--ice)}
  .d1p-seek:hover .d1p-knob{transform:scale(1)}
  .d1p-mh button:hover{background:rgba(188,211,223,.08);color:var(--ink)}
  .d1p-mi:hover{background:rgba(188,211,223,.08);color:var(--ink)}
  .d1p-actions .d1p-pill:hover{transform:none;border-color:var(--ice);background:rgba(188,211,223,.08)}
}

/* ---------- float mode ---------- */
.d1p[data-mode="float"] .d1p-panel{position:fixed;left:auto;top:auto;transform:none;width:auto;transition:opacity .35s ease}
.d1p[data-mode="float"] .d1p-frame{background:rgba(5,7,11,.94);box-shadow:0 30px 80px rgba(0,0,0,.65),0 0 0 1px rgba(188,211,223,.06)}   /* no scrim underneath: opaque enough that the bone page cannot grey the plate (eyebrow ≥ 4.5:1) */
.d1p[data-mode="float"] .d1p-head{cursor:grab;touch-action:none}
.d1p[data-mode="float"].is-drag .d1p-head{cursor:grabbing}
.d1p[data-mode="float"] .d1p-panel{width:min(calc(100vw - 48px),1240px,calc((100vh - 150px) * var(--d1p-ar)));width:auto}
/* resize handles — 24 px edges, 28 px corners, mostly outside the frame (6–8 px inside) so they never cover the header buttons */
.d1p-rz{position:absolute;z-index:30;display:none;touch-action:none;user-select:none}
.d1p[data-mode="float"]:not(.is-mini) .d1p-rz{display:block}
.d1p-rz.n{top:-18px;left:14px;right:14px;height:24px;cursor:ns-resize}
.d1p-rz.s{bottom:-18px;left:14px;right:14px;height:24px;cursor:ns-resize}
.d1p-rz.e{right:-18px;top:14px;bottom:14px;width:24px;cursor:ew-resize}
.d1p-rz.w{left:-18px;top:14px;bottom:14px;width:24px;cursor:ew-resize}
.d1p-rz.ne{top:-20px;right:-20px;width:28px;height:28px;cursor:nesw-resize}
.d1p-rz.sw{bottom:-20px;left:-20px;width:28px;height:28px;cursor:nesw-resize}
.d1p-rz.nw{top:-20px;left:-20px;width:28px;height:28px;cursor:nwse-resize}
.d1p-rz.se{bottom:-20px;right:-20px;width:28px;height:28px;cursor:nwse-resize}
.d1p-rz.se::after,.d1p-rz.sw::after{content:'';position:absolute;bottom:20px;width:12px;height:12px;border-bottom:2px solid var(--ice-dim);opacity:.8;border-radius:1px}
.d1p-rz.se::after{right:20px;border-right:2px solid var(--ice-dim);border-radius:0 0 4px 0}
.d1p-rz.sw::after{left:20px;border-left:2px solid var(--ice-dim);border-radius:0 0 0 4px}
.d1p[data-mode="float"].is-rz .d1p-frame{box-shadow:0 0 0 1px rgba(188,211,223,.5),0 30px 80px rgba(0,0,0,.65)}
.d1p[data-mode="float"] .d1p-hb .d1p-hbl{display:none}   /* the floating header is narrow: icons only, words stay in aria-label */
.d1p.is-ebfold[data-mode="float"] .d1p-titles .d1p-eyebrow{display:none}   /* "Now playing" would clip in the smallest float: title and buttons only */
.d1p[data-mode="float"] .d1p-hb{padding:0 12px}

/* ---------- mini (float on phones): bottom-docked strip ---------- */
.d1p.is-mini .d1p-panel{position:fixed;left:8px!important;right:8px;top:auto!important;bottom:calc(8px + env(safe-area-inset-bottom));width:auto!important;height:auto!important;transform:none}
.d1p.is-mini .d1p-frame{flex-direction:row;align-items:center;gap:6px;padding:6px;border-radius:var(--r3);background:rgba(7,9,12,.92)}
.d1p.is-mini .d1p-stage{order:1;width:112px;flex:none;aspect-ratio:var(--d1p-ar);border-radius:var(--r2);cursor:pointer}
.d1p.is-mini .d1p-head{order:2;flex:1;min-width:0;min-height:0;align-self:stretch;padding:0 4px;border:0;background:none;cursor:pointer}
.d1p.is-mini .d1p-mark,.d1p.is-mini .d1p-headbtns,.d1p.is-mini .d1p-note,.d1p.is-mini .d1p-eyebrow{display:none}
.d1p.is-mini .d1p-titles{position:relative;height:100%;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:0;padding-bottom:18px}
.d1p.is-mini .d1p-title{font-size:14px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.d1p-expand{display:none}
.d1p.is-mini .d1p-expand{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;gap:6px;padding:0 0 2px;border-radius:8px;
  font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ice);text-align:start}
.d1p.is-mini .d1p-expand svg{width:14px;height:14px}
.d1p.is-mini .d1p-expand:focus-visible{outline-offset:-2px}
.d1p-minibar{display:none;order:3;flex:none;gap:2px}
.d1p.is-mini .d1p-minibar{display:flex}
.d1p-minibar .d1p-btn{min-width:56px;height:56px;border-radius:12px}
.d1p-minibar .d1p-btn.d1p-play svg{width:28px;height:28px}
.d1p.is-mini .d1p-spin{width:30px;height:30px;margin:-15px 0 0 -15px}
.d1p.is-mini .d1p-ov{display:none!important}
.d1p.is-mini .d1p-skip{display:none}

@media (max-width:900px){.d1p[data-mode="theater"] .d1p-closebtn .d1p-hbl{display:none}.d1p[data-mode="theater"] .d1p-closebtn{padding:0 12px}}   /* narrow theaters (tablets portrait, landscape phones): × alone, the word stays on the float button */

/* ---------- theater on phones: the panel fills the viewport ---------- */
@media (max-width:700px){
  .d1p[data-mode="theater"] .d1p-panel{left:0;top:0;width:100%;height:100%;transform:none;transition:opacity .35s ease}
  .d1p.is-in[data-mode="theater"] .d1p-panel{transform:none}
  .d1p[data-mode="theater"] .d1p-frame{height:100%;border-radius:0;border:0;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  .d1p[data-mode="theater"] .d1p-stage{flex:1;aspect-ratio:auto;min-height:0}
  .d1p[data-mode="theater"] .d1p-head{padding-inline:14px 8px}
  .d1p[data-mode="theater"] .d1p-mark,.d1p[data-mode="theater"] .d1p-titles .d1p-eyebrow{display:none}   /* two header lines at most: title, note chip */
  .d1p[data-mode="theater"] .d1p-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}   /* wraps instead of clipping "Delta One · Der Tra…" */
  .d1p[data-mode="theater"] .d1p-closebtn .d1p-hbl:not(:empty){display:inline}                              /* the word goes to Close (SPEC §5): leaving the film is what a first-time viewer needs */
  .d1p[data-mode="theater"] .d1p-closebtn{padding:0 16px 0 14px}
  .d1p[data-mode="theater"] .d1p-floatbtn .d1p-hbl{display:none}                                            /* Minimize keeps its icon; the word stays in aria-label */
  .d1p[data-mode="theater"] .d1p-floatbtn{padding:0 12px}
  .d1p[data-mode="theater"] .d1p-scrim{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg)}
}

/* ---------- native fullscreen ---------- */
.d1p-panel:fullscreen{width:100%!important;height:100%!important;left:0!important;top:0!important;transform:none!important;background:#000}
.d1p-panel:fullscreen .d1p-frame{height:100%;border-radius:0;border:0;background:#000;backdrop-filter:none;-webkit-backdrop-filter:none}
.d1p-panel:fullscreen .d1p-stage{flex:1;aspect-ratio:auto;min-height:0}
.d1p-panel:fullscreen .d1p-head{position:absolute;inset-inline:0;top:0;z-index:6;background:linear-gradient(180deg,rgba(3,4,6,.7),transparent);border:0;
  transition:opacity .35s ease}
.d1p-panel:fullscreen .d1p-rz{display:none!important}
.d1p.is-fs.is-idle .d1p-head{opacity:0;pointer-events:none}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .d1p-scrim,.d1p-panel,.d1p-controls,.d1p-big,.d1p-hb,.d1p-btn,.d1p-pill,.d1p-knob,.d1p-preview,.d1p-poster{transition:none!important}
  .d1p-big::before{animation:none;opacity:0}
  .d1p-menu{animation:none}
  .d1p-skip.go{animation:d1pSkipRm .8s steps(1,end) 1}
  .d1p-spin{animation-duration:1.6s}
}
@keyframes d1pSkipRm{0%,85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}

/* ---------- "Up next" — the guided path's end state (SPEC §7) ---------- */
.d1p-endgrid{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:100%}
.d1p-ov-ended{overflow:auto;overscroll-behavior:contain}
.d1p-ov-ended.has-next .d1p-endgrid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(18px,4cqw,48px);align-items:center;text-align:start;width:min(100%,820px)}
.d1p-ov-ended.has-next .d1p-again{display:flex;flex-direction:column;align-items:stretch;gap:10px;order:2}
.d1p-ov-ended.has-next .d1p-again .d1p-ov-row{display:contents}                       /* Watch again · Share · Download: one stack of equal ghost pills */
.d1p-ov-ended.has-next .d1p-replay{flex-direction:row;justify-content:center;gap:10px;min-height:var(--ctl);padding:0 18px 0 14px;border-radius:999px;border:1px solid var(--edge);
  font-size:15px;font-weight:600;transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast)}
.d1p-ov-ended.has-next .d1p-replay-i{width:auto;height:auto;background:none;box-shadow:none;color:var(--ink)}
.d1p-ov-ended.has-next .d1p-replay-i svg{width:22px;height:22px;stroke:var(--ink)}
.d1p-ov-ended.has-next .d1p-replay-l{font-size:inherit;font-weight:inherit;letter-spacing:0}
.d1p-ov-ended.has-next .d1p-again .d1p-pill{min-height:var(--ctl);padding:0 18px;font-size:15px}
.d1p-next{display:flex;flex-direction:column;gap:14px;min-width:0;order:1}
.d1p-next .d1p-eyebrow{justify-content:flex-start}
.d1p-nx-card{display:grid;grid-template-columns:minmax(120px,36%) minmax(0,1fr);gap:16px;align-items:center}
.d1p-nx-thumb{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0B1116;border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.4)}
.d1p-nx-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.d1p-nx-glyph{display:none;position:absolute;inset:0;align-items:center;justify-content:center;color:var(--ice);
  background:radial-gradient(70% 90% at 30% 20%,rgba(188,211,223,.14),transparent 60%),linear-gradient(180deg,#0E151B,#080B0F)}
.d1p-nx-glyph svg{width:36px;height:36px}
.d1p-nx-thumb.no-img .d1p-nx-glyph{display:flex}
.d1p-nx-dur{position:absolute;bottom:8px;inset-inline-end:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;padding:5px 9px;border-radius:999px;
  background:rgba(5,7,11,.7);border:1px solid rgba(188,211,223,.25);color:#E9F1F5}
.d1p-nx-title{font-size:clamp(17px,2.8cqw,24px);font-weight:700;line-height:1.2;letter-spacing:-.01em;color:var(--ink)}
.d1p-nx-sub{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3s);margin-top:6px}
.d1p-next .d1p-ov-row{justify-content:flex-start;margin-top:0}
.d1p-nx-go svg,.d1p-nx-link svg{width:16px;height:16px}
.d1p-nx-count{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink2)}
.d1p-nx-count i{display:block;height:2px;width:140px;max-width:40%;background:var(--line);position:relative;overflow:hidden;border-radius:2px;flex:none}
.d1p-nx-count i::after{content:'';position:absolute;inset:0;background:var(--ice);box-shadow:0 0 10px rgba(188,211,223,.6);transform-origin:0 50%;transform:scaleX(var(--nx,1));transition:transform 1s linear}
[dir="rtl"] .d1p-nx-count i::after{transform-origin:100% 50%}
@container (max-width:640px){
  .d1p-ov-ended.has-next .d1p-endgrid{grid-template-columns:1fr;gap:14px}
  .d1p-ov-ended.has-next .d1p-again{flex-direction:row;justify-content:flex-start;flex-wrap:wrap;gap:8px 12px}
  .d1p-nx-card{grid-template-columns:110px minmax(0,1fr);gap:12px}
  .d1p-next{gap:10px}
}
@container (max-width:420px){.d1p-nx-thumb{display:none}.d1p-nx-card{grid-template-columns:1fr}.d1p-ov-ended.has-next{padding:12px 12px calc(var(--ctl) + 46px)}.d1p-next .d1p-eyebrow{font-size:11px;letter-spacing:.12em}}
:lang(ar) .d1p-nx-sub,:lang(ar) .d1p-nx-count,:lang(ar) .d1p-nx-dur{letter-spacing:0}
@media (prefers-reduced-motion:reduce){.d1p-nx-count i::after{transition:none}}

/* ---------- short stages (floating panel, landscape phones): a compact end card; the control bar steps aside only when the card
   cannot fit above it (player.js fitEnd → .is-short below 340 px stage height, .is-endbar-off when the card would still overflow) ---------- */
.d1p.is-short .d1p-ov-ended{padding:10px 14px calc(var(--ctl) + 46px);gap:8px}
.d1p.is-short .d1p-ov-ended .d1p-endgrid{gap:8px}
.d1p.is-short .d1p-ov-ended.has-next .d1p-endgrid{grid-template-columns:1fr;width:100%}
.d1p.is-short .d1p-next{gap:8px}
.d1p.is-short .d1p-nx-thumb,.d1p.is-short .d1p-nx-sub,.d1p.is-short .d1p-nx-count i{display:none}
.d1p.is-short .d1p-nx-card{grid-template-columns:1fr;gap:4px}
.d1p.is-short .d1p-nx-title{font-size:17px}
.d1p.is-short .d1p-ov-ended.has-next .d1p-again{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:8px}
.d1p.is-short .d1p-ov-ended:not(.has-next) .d1p-replay{flex-direction:row;gap:12px;padding:4px 12px}
.d1p.is-short .d1p-ov-ended:not(.has-next) .d1p-replay-i{width:56px;height:56px}
.d1p.is-short .d1p-ov-ended:not(.has-next) .d1p-replay-i svg{width:26px;height:26px}
.d1p.is-short .d1p-ov-ended:not(.has-next) .d1p-replay-l{font-size:18px}
.d1p.is-short .d1p-ov-ended:not(.has-next) .d1p-ov-row{margin-top:0}
.d1p.is-endbar-off .d1p-controls{opacity:0;visibility:hidden;pointer-events:none}
.d1p.is-endbar-off .d1p-controls>*{pointer-events:none}
.d1p.is-endbar-off .d1p-ov-ended{padding-bottom:12px}
.d1p.is-short .d1p-next{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px}   /* the countdown sits beside Cancel instead of on its own line (landscape phones: 281 → 258 px) */
.d1p.is-short .d1p-next .d1p-eyebrow,.d1p.is-short .d1p-nx-card{flex:1 1 100%}
.d1p.is-short .d1p-next .d1p-ov-row{flex:0 0 auto}
.d1p.is-short .d1p-nx-count{flex:1 1 0%}   /* zero basis: shares the row when its longest word fits, otherwise takes its own line */
.d1p.is-endscroll .d1p-ov-ended{-webkit-mask-image:linear-gradient(#000 calc(100% - 28px),transparent);mask-image:linear-gradient(#000 calc(100% - 28px),transparent)}   /* player.js fitEnd: more below — the fade says so */

/* ---------- touch type sizes (SPEC §5 grandpa rule: the most-tapped words at 16 px; mono labels never under 11 px) ---------- */
@media (pointer:coarse){
  .d1p-mi,.d1p-actions .d1p-pill,.d1p-title,.d1p-ov-ended.has-next .d1p-replay,.d1p-ov-ended.has-next .d1p-again .d1p-pill{font-size:16px}
  .d1p.is-mini .d1p-title{font-size:15px}
}
