/* ==========================================================================
   Event coverage planner — /event-coverage.html only (section#planner, .ep-*). Loaded after event.css.
   The run of show (owner, 2026-10-11): "Use bold, minimalism in the design of the coverage planner logic form."
     · the active cue is the hero: one question in large serif type, lots of space, choices as big plain rows
     · answered cues fold into one clean line (number · question · answer · logic note · Change)
     · base near-black / off-white / grey; teal is the only accent; no gradients or glows on the form
     · the reveal is the one big moment; everything after it is quiet (hairlines, no panels)
   The package colours (Storyline #1598B8 · Storyline & Sinker #12C9DA · Documentary #19E6CF · Client Event Visit
   #3478D4) stay only where they encode a package (strips, tiles, the comparison). The deliverable tokens
   (.ev-fmt / .ev-clips / .ev-car / .ev-ph) come from event.css.
   Default CSS = the final, visible state. One-shot pre-states live only in the motion block at the end
   (html.ready .x:not(.in)); everything else that moves is a transition or a one-shot entrance. Nothing loops.
   No gold here: gold stays on the page's primary action ("Plan My Event Coverage").
   The planner is its own titled panel (owner, 2026-10-11: "its own section style borders, different color highlights,
   and a less seamless integration … a clear title"): inside .ep-tool the page's teal accent is swapped for a
   stage-light violet (#A894FF: 6:1 on the panel's var(--elev) background), set once through the accent custom properties.
   Shared with the Case Study Films planner panel: accent #A894FF · border rgba(168,148,255,.45) · background var(--elev).
   Package colours stay on package-specific marks (strips, tiles, the comparison, the package tag).
   ========================================================================== */

/* ---------------------------------------------------------------- 1. section + hero link */
.ep { --ep-c: #19E6CF; }
.ep-intro { margin-bottom: clamp(36px, 6vw, 64px); }
.ev-hero .ep-hero-est { display: inline-flex; align-items: center; }
.ev-hero .ep-hero-est .tlink { line-height: 1.4; }

/* ---------------------------------------------------------------- 2. how the estimate is built (always visible) */
.ep-formula { display: flex; align-items: stretch; gap: 10px; max-width: none; margin: 0 0 22px; color: var(--text); }
.ep-term { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 18px; border: 1px solid var(--line); background: rgba(15, 18, 23, .86); }
.ep-term b { color: var(--text); font: 400 clamp(1.15rem, 1.5vw, 1.35rem)/1.15 var(--serif); font-weight: 400; }
.ep-term > span:last-child { color: var(--text2); font-size: .88rem; line-height: 1.4; }
.ep-term.is-q { border-style: dashed; border-color: var(--line2); }
.ep-term.is-sum { border-color: color-mix(in srgb, var(--teal) 60%, transparent); background: linear-gradient(170deg, rgba(25, 230, 207, .14), rgba(15, 18, 23, .92)); box-shadow: 0 0 70px -28px var(--teal); }
.ep-op { flex: none; align-self: center; color: var(--accent-t); font: 400 2rem/1 var(--serif); }
.ep-term-g { display: flex; align-items: center; gap: 3px; height: 22px; margin-bottom: 8px; }
.ep-term-g i { display: block; height: 8px; border-radius: 1px; }
.ep-term-g .g-win { width: 52px; background: linear-gradient(90deg, rgba(25, 230, 207, .5), var(--teal)); box-shadow: 0 0 12px -2px var(--teal); }
.ep-term-g .g-win.is-short { width: 30px; }
.ep-term-g .g-day { width: 25px; background: color-mix(in srgb, var(--teal) 55%, #15191F); border: 1px solid color-mix(in srgb, var(--teal) 70%, transparent); }
.ep-term-g .g-x { width: 26px; border: 1px solid color-mix(in srgb, var(--teal) 60%, transparent); background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--teal) 85%, transparent) 0 2px, transparent 2px 6px); }
.ep-term-g .g-q { width: 44px; height: 14px; border: 1px dashed rgba(244, 243, 239, .45); }
.ep-term-g .g-sum { width: 14px; height: 14px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(25, 230, 207, .16), 0 0 16px var(--teal); }

.ep-how-cols { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(16px, 2.4vw, 32px); align-items: start; }
.ep-rates tbody th { width: 24%; }
.ep-rates tbody th::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-right: 9px; border-radius: 50%; background: var(--c); box-shadow: 0 0 10px var(--c); vertical-align: 2px; }
.ep-rates td { color: var(--text); font-variant-numeric: tabular-nums; }
.ep-rates td span, .ep-rates th span { display: block; margin-top: 2px; color: var(--text2); font-size: .86rem; font-weight: 400; line-height: 1.4; }
.ep-quoted { padding: 18px 20px; border: 1px dashed var(--line2); background: rgba(15, 18, 23, .6); }
.ep-quoted p { margin: 8px 0 12px; font-size: .92rem; }
.ep-quoted ul { display: grid; gap: 7px; }
.ep-quoted li { position: relative; padding-left: 20px; color: var(--text); font-size: .92rem; line-height: 1.45; }
.ep-quoted li::before { content: ''; position: absolute; left: 0; top: .42em; width: 9px; height: 9px; border: 1px dashed rgba(244, 243, 239, .55); }


/* ---------------------------------------------------------------- 3. the coverage planner panel + the run of show */
.ep-tool { --teal: #A894FF; --accent: #A894FF; --accent-t: #A894FF; --ep-hi: #A894FF; --ep-bg: var(--elev); --ep-bg2: rgba(168, 148, 255, .08); --ep-rule: rgba(168, 148, 255, .45); --ep-px: clamp(20px, 3.2vw, 48px);
  position: relative; margin-top: clamp(36px, 5vh, 56px); padding: 0 var(--ep-px) clamp(28px, 4vw, 52px); scroll-margin-top: 104px;
  background: var(--ep-bg); border: 1px solid var(--ep-rule); border-top: 3px solid var(--ep-hi); border-radius: 3px; }
.ep-tool-head { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 6px; margin: 0 calc(-1 * var(--ep-px)) clamp(26px, 4vh, 40px); padding: clamp(22px, 3vh, 30px) var(--ep-px);
  background: var(--ep-bg2); border-bottom: 1px solid var(--ep-rule); }
.ep-tool-k { display: inline-flex; align-items: center; gap: 10px; font: var(--ev-lab); letter-spacing: .2em; text-transform: uppercase; color: var(--accent-t); }
.ep-tool-k::before { content: ''; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--ep-hi); }
.ep-tool-h { margin: 4px 0 0; color: var(--text); font: 400 clamp(2rem, 3.6vw, 3rem)/1.04 var(--serif); letter-spacing: -.02em; }
.ep-tool-h:focus { outline: none; }
.ep-tool-h:focus-visible { outline: 2px solid var(--ep-hi); outline-offset: 6px; }
.ep-tool-p { margin: 4px 0 0; max-width: 40rem; color: var(--text); font-size: 1.02rem; line-height: 1.5; }
.ep-tool-m { margin: 4px 0 0; max-width: none; font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: var(--text2); }
.ep-tool + .ep-how, .ep-tool ~ .ep-how { margin-top: clamp(56px, 8vh, 96px); }
.ep-run { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 340px); gap: clamp(32px, 6vw, 104px); align-items: start; }
.ep-in { min-width: 0; }
.ep-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; padding-bottom: 14px; border-bottom: 1px solid var(--line2); }
.ep-head-k { font: var(--ev-lab); letter-spacing: .2em; text-transform: uppercase; color: var(--text); }
.ep-prog { display: flex; flex: 1 1 220px; align-items: center; gap: 14px; min-width: 0; }
.ep-prog-t { font: var(--ev-lab); letter-spacing: .16em; text-transform: uppercase; color: var(--text2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ep-prog-bar { position: relative; flex: 1; height: 1px; background: var(--line2); }
.ep-prog-bar i { position: absolute; left: 0; top: -.5px; height: 2px; width: calc(var(--p, 0) * 100%); background: var(--teal); transition: width .5s var(--ease); }
.ep-reset { min-height: 44px; padding: 0 2px; font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text2); text-decoration: underline; text-decoration-color: var(--line2); text-underline-offset: .35em; transition: color .3s; }
.ep-reset:hover { color: var(--text); }

/* ---------------------------------------------------------------- 4. cues: the active one is the hero */
.ep-cues { margin: 0; padding: 0; list-style: none; }
.ep-cue { border-bottom: 1px solid var(--line); }
.ep-cue.is-active { padding: clamp(40px, 7vh, 72px) 0 clamp(36px, 5vh, 56px); border-bottom: 0; }
.ep-cue-b { min-width: 0; margin: 0; padding: 0; border: 0; }
.ep-q { display: block; float: none; width: 100%; max-width: 19em; margin: 0 0 clamp(24px, 3.4vh, 36px); padding: 0; }
.ep-q:focus { outline: none; }
.ep-q:focus-visible { outline: 2px solid var(--teal); outline-offset: 8px; }
.ep-q-n { display: block; margin-bottom: 16px; font: var(--ev-lab); letter-spacing: .2em; text-transform: uppercase; color: var(--accent-t); }
.ep-q-t { display: block; color: var(--text); font: 400 clamp(1.95rem, 3.5vw, 3.3rem)/1.04 var(--serif); letter-spacing: -.02em; }
.ep-q-h { margin: calc(-1 * clamp(10px, 1.6vh, 18px)) 0 22px; max-width: none; color: var(--text2); font-size: .95rem; }

/* choices: big plain rows on hairlines; the selected one fills with a trace of teal and its mark lights */
.ep-chs { display: grid; border-top: 1px solid var(--line2); }
.ep-ch { position: relative; display: block; border-bottom: 1px solid var(--line2); }
.ep-ch input { position: absolute; top: 50%; left: 16px; width: 1px; height: 1px; margin: 0; opacity: 0; }
.ep-ch label { display: grid; grid-template-columns: minmax(0, 1fr) 20px; align-items: center; column-gap: 20px; min-height: 66px; padding: 16px 4px 16px 0; cursor: pointer;
  transition: background .3s, padding .35s var(--ease); }
.ep-ch-t { grid-column: 1; color: var(--text); font: 600 clamp(1.02rem, 1.25vw, 1.16rem)/1.3 var(--sans); transition: color .3s; }
.ep-ch-h { grid-column: 1; display: block; margin-top: 3px; color: var(--text2); font: 400 .9rem/1.4 var(--sans); }
.ep-ch label::after { content: ''; grid-column: 2; grid-row: 1 / span 2; justify-self: end; width: 18px; height: 18px; border: 1.5px solid rgba(244, 243, 239, .34); border-radius: 50%; transition: background .3s, border-color .3s, box-shadow .3s; }
.ep-ch.is-c label::after { border-radius: 2px; }
.ep-ch label:hover { padding-left: 8px; }
.ep-ch label:hover .ep-ch-t { color: var(--accent-t); }
.ep-ch input:checked + label { padding-left: 14px; background: rgba(168, 148, 255, .1); }
.ep-ch input:checked + label .ep-ch-t { color: var(--teal); }
.ep-ch input:checked + label::after { border-color: var(--teal); background: var(--teal); box-shadow: inset 0 0 0 4px var(--ep-bg, #0B0D10); }
.ep-ch.is-c input:checked + label::after { box-shadow: none; background: var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.3l2.3 2.3 4.7-5' fill='none' stroke='%230B0D10' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.ep-ch input:focus-visible + label { outline: 2px solid var(--teal); outline-offset: -2px; }
/* event types: a field of plain chips */
.ep-chs.is-chips { display: flex; flex-wrap: wrap; gap: 10px; border-top: 0; }
.ep-ch.is-chip { border: 1px solid var(--line2); border-radius: 2px; }
.ep-ch.is-chip label { grid-template-columns: auto; min-height: 54px; padding: 14px 20px; }
.ep-ch.is-chip label::after { display: none; }
.ep-ch.is-chip label:hover { padding-left: 20px; border-color: var(--text2); }
.ep-ch.is-chip .ep-ch-t { font-size: 1rem; }
.ep-ch.is-chip input:checked + label { padding-left: 20px; background: var(--teal); }
.ep-ch.is-chip input:checked + label .ep-ch-t { color: #14102A; }

/* steppers: big numerals, plain − / +, one bold Continue */
.ep-sub { margin-top: 30px; }
.ep-num { margin: 0 0 24px; }
.ep-num > label { display: block; margin-bottom: 12px; color: var(--text2); font: 600 .95rem/1.35 var(--sans); }
.ep-step { display: inline-grid; grid-template-columns: 64px minmax(2.2ch, auto) 64px; align-items: center; border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); }
.ep-step-b { display: grid; place-items: center; height: clamp(76px, 10vh, 96px); color: var(--text); transition: color .3s; }
.ep-step-b:hover { color: var(--teal); }
.ep-step-b:focus-visible { outline: 2px solid var(--teal); outline-offset: -4px; }
.ep-step-b[aria-disabled="true"], .ep-step-b[aria-disabled="true"]:hover { color: var(--text2); opacity: .4; cursor: default; }
.ep-step-b svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; }
.ep-step input { width: 2.4ch; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--text); text-align: center; font: 400 clamp(3.4rem, 6vw, 5rem)/1 var(--serif); font-variant-numeric: tabular-nums; -moz-appearance: textfield; appearance: textfield; }
.ep-step input::-webkit-outer-spin-button, .ep-step input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ep-step input:focus { outline: none; }
.ep-step:focus-within { border-color: var(--teal); }
.ep-step:has(input[aria-invalid="true"]) { border-color: var(--ev-bad); }
.ep .ev-hint { margin-top: 10px; max-width: 34rem; }
.ep .ev-err { margin-top: 8px; }
.ep-go { display: inline-flex; align-items: center; gap: 14px; min-height: 56px; margin-top: 6px; padding: 0 30px; border: 1.5px solid var(--teal); border-radius: 2px; background: transparent; color: var(--text);
  font: 700 .78rem/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; transition: background .3s, color .3s, opacity .3s; }
.ep-go::after { content: '→'; content: '→' / ''; font-size: 1rem; color: var(--teal); }
.ep-go:hover { background: rgba(168, 148, 255, .14); color: var(--accent-t); }
.ep-go:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.ep-go[disabled] { opacity: .35; cursor: not-allowed; }
.ep-go[disabled]:hover { background: transparent; color: var(--text); }
.ep-chs + .ep-go, .ep-chs + .ep-sel, .ep-chs + .ep-gos { margin-top: 28px; }
.ep-gos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; }
.ep-gos .ep-go { margin-top: 0; }
.ep-none { min-height: 56px; padding: 0 4px; font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text2); text-decoration: underline; text-decoration-color: var(--line2); text-underline-offset: .35em; }
.ep-none:hover { color: var(--text); }
.ep-edges { margin: 4px 0 26px; }
.ep-edges .ep-ch:first-child { border-top: 1px solid var(--line2); }
.ep-edges .ep-ch label { min-height: 54px; }
/* selects (clips count, photographs): a plain line */
.ep-sel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
.ep-sel label { color: var(--text2); font: 600 .95rem/1.35 var(--sans); }
.ep-sel select { min-height: 48px; padding: 8px 34px 8px 0; color: var(--text); font: 600 1.05rem/1.3 var(--sans); background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23A894FF' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 6px center / 12px 8px;
  border: 0; border-bottom: 1px solid var(--line2); border-radius: 0; -webkit-appearance: none; appearance: none; }
.ep-sel select option { color: var(--text); background: #15191F; }
.ep-sel select:focus { outline: none; border-bottom-color: var(--teal); }
.ep-sel select:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.ep-ch-wrap .ep-sub { margin: 0; padding: 4px 0 16px 14px; }
.ep-photos { margin-top: 22px; }
.ep-photos + .ep-go { margin-top: 28px; }

/* answered cues: one clean line */
.ep-fold { display: grid; grid-template-columns: 2.4em minmax(7.5rem, 12rem) minmax(0, 1fr) auto; column-gap: 18px; row-gap: 3px; align-items: baseline; padding: 15px 0; }
.ep-fold-n { grid-row: 1 / span 2; font: var(--ev-lab); letter-spacing: .14em; color: var(--accent-t); font-variant-numeric: tabular-nums; }
.ep-fold-q { grid-row: 1 / span 2; font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text2); }
.ep-fold-a { grid-column: 3; color: var(--text); font: 700 1.02rem/1.35 var(--sans); }
.ep-fold-why { grid-column: 3; color: var(--text2); font-size: .88rem; line-height: 1.45; }
.ep-fold-why:empty { display: none; }
.ep-change { grid-column: 4; grid-row: 1 / span 2; align-self: center; min-height: 44px; padding: 0 2px; font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text2); text-decoration: underline; text-decoration-color: var(--line2); text-underline-offset: .35em; transition: color .3s; }
.ep-change:hover { color: var(--accent-t); }

/* phones and tablets: progress rides along at the bottom; after the reveal it carries the package */
.ep-ticker { display: none; }

/* ---------------------------------------------------------------- 5. the plan so far (desktop only) */
.ep-sofar { position: sticky; top: 124px; min-width: 0; padding-top: 2px; }
.ep-sofar-still { margin: 0 0 22px; }
.ep-sofar-f { position: relative; display: block; aspect-ratio: 21 / 9; overflow: hidden; background: #07090b; border-radius: 2px; }
.ep-sofar-f img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.ep-sofar-still figcaption { margin-top: 8px; font: var(--ev-lab); letter-spacing: .1em; text-transform: uppercase; color: var(--text2); }
.ep-sofar-k, .ep-lock-k, .ep-lab { display: block; font: var(--ev-lab); letter-spacing: .18em; text-transform: uppercase; color: var(--text2); }
.ep-sofar-k { padding-bottom: 12px; border-bottom: 1px solid var(--line2); color: var(--text); }
.ep-sofar-dl { margin: 0; }
.ep-sofar-dl > div { display: grid; grid-template-columns: 6.2em minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.ep-sofar-dl dt { padding-top: .2em; font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: var(--text2); }
.ep-sofar-dl dd { margin: 0; color: var(--text); font-size: .92rem; line-height: 1.4; }
.ep-mini { display: grid; gap: 7px; margin: 16px 0 0; padding: 0; list-style: none; }
.ep-mini li { display: grid; grid-template-columns: 5.2em minmax(0, 1fr); align-items: center; gap: 10px; font: var(--ev-lab); letter-spacing: .1em; text-transform: uppercase; color: var(--text2); }
.ep-mini i { display: block; height: 6px; background: linear-gradient(var(--text) 0 0) left / calc(var(--w) * 100%) 100% no-repeat, var(--line); }
.ep-mini .is-full i { background: linear-gradient(var(--teal) 0 0) left / 100% 100% no-repeat; }
.ep-mini .is-edge i { background: none; box-shadow: inset 0 0 0 1px var(--teal); }
.ep-lock { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line2); }
.ep-lock-t { margin: 8px 0 6px; max-width: none; color: var(--text2); font: 400 1.3rem/1.2 var(--serif); }
.ep-lock-t b { display: block; color: var(--text); font: 400 1.7rem/1.1 var(--serif); }
.ep-lock-p { font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: var(--text2); }
.ep-lock.is-open .ep-lock-t { color: var(--text); }
.ep-lock.is-open .ep-lock-p { display: none; }

/* ---------------------------------------------------------------- 6. the reveal: the one big moment */
.ep-out { --c: #19E6CF; margin-top: clamp(48px, 7vh, 88px); padding-top: clamp(36px, 6vh, 64px); border-top: 1px solid var(--ep-rule, var(--line2)); scroll-margin-top: 112px; }
.ep-out:focus { outline: none; }
.ep-rev { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); column-gap: clamp(32px, 6vw, 96px); align-items: end; }
.ep-rev > * { grid-column: 1; min-width: 0; }
.ep-rev-k { display: flex; gap: 14px; margin: 0; max-width: none; font: var(--ev-lab); letter-spacing: .2em; text-transform: uppercase; color: var(--text2); }
.ep-rev-k span { color: var(--accent-t); }
.ep-rev-h { margin: 18px 0 0; }
.ep-rev-h:focus { outline: none; }
.ep-rev-h:focus-visible { outline: 2px solid var(--teal); outline-offset: 8px; }
.ep-rec { display: block; color: var(--text); font: 400 clamp(2.8rem, 6.6vw, 6.2rem)/.94 var(--serif); letter-spacing: -.035em; }
.ep-rec-tag { margin: 14px 0 0; max-width: none; font: var(--ev-lab); letter-spacing: .18em; text-transform: uppercase; color: color-mix(in srgb, var(--c) 72%, #fff); }
.ep-why { margin: 22px 0 0; max-width: 36rem; color: var(--text2); font-size: .98rem; line-height: 1.5; }
.ep-why-k { display: block; margin-bottom: 10px; font: var(--ev-lab); letter-spacing: .16em; text-transform: uppercase; color: var(--text2); }
.ep-chip { display: inline-flex; margin: 0 8px 8px 0; padding: 7px 11px; border: 1px solid var(--teal); color: var(--text); font: var(--ev-lab); letter-spacing: .08em; }
.ep-total { grid-column: 2; grid-row: 2 / span 3; align-self: end; padding-bottom: 6px; }
.ep-total-k { display: block; font: var(--ev-lab); letter-spacing: .18em; text-transform: uppercase; color: var(--text2); }
.ep-total-p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 10px 0 0; max-width: none; }
.ep-from { font: var(--ev-lab); letter-spacing: .16em; text-transform: uppercase; color: var(--text2); }
.ep-total-v { color: var(--text); font: 400 clamp(3.2rem, 7vw, 6.4rem)/.9 var(--serif); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.ep-total-m { margin: 12px 0 0; max-width: none; color: var(--text2); font-size: .9rem; line-height: 1.45; }
.ep-same { grid-column: 1 / -1; margin: 30px 0 0; padding-top: 16px; max-width: none; border-top: 1px solid var(--line); color: var(--text2); font-size: .92rem; }
.ep-same:empty { display: none; }
.ep-notes { grid-column: 1 / -1; }
.ep-note, .ep-step-up { margin: 0; max-width: 60rem; padding: 14px 0; border-top: 1px solid var(--line); color: var(--text2); font-size: .95rem; line-height: 1.5; }
.ep-note.is-win, .ep-note.is-visit p { color: var(--text); }
.ep-note.is-visit p { margin: 0; max-width: 60rem; }
.ep-step-up b { color: var(--text); font-weight: 600; }
.ep-alt-go { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; padding: 0; color: var(--teal); font: 600 .98rem/1.35 var(--sans); text-align: left; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--teal) 45%, transparent); text-underline-offset: .3em; }
.ep-alt-go:hover { color: var(--accent-t); }
.ep-cta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin-top: 22px; }
.ep .ep-send { justify-content: space-between; gap: 18px; padding: 18px 24px; border-color: var(--teal); color: var(--text); }
.ep .ep-send:hover, .ep .ep-send:focus-visible { color: var(--accent-t); background: rgba(168, 148, 255, .1); box-shadow: none; }
.ep .ep-send[disabled] { opacity: .5; cursor: not-allowed; }
.ep-sent-note { margin: 0; max-width: none; color: var(--accent-t); font-size: .9rem; }

/* everything after the reveal: quiet hairlines, no panels */
.ep-plan { display: grid; gap: clamp(44px, 6vh, 72px); margin-top: clamp(52px, 8vh, 96px); }
.ep-ctx { max-width: 54rem; margin: 0; padding-left: 16px; border-left: 2px solid var(--teal); color: var(--text); font-size: .98rem; line-height: 1.55; }
.ep-ctx > .ep-lab { margin-bottom: 6px; }
.ep-ctx-r { display: block; margin-top: 10px; color: var(--text2); font-size: .92rem; }
.ep-ctx-r .ep-lab { margin-bottom: 3px; }
.ep-plan-grid, .ep-take-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.ep-cap { margin-top: 12px; font: var(--ev-lab); letter-spacing: .08em; text-transform: uppercase; color: var(--text2); }

/* day strips: each requested day against the package's included window, to scale (14 marks = 14 hours) */
.ep-strip { --c: #19E6CF; --nw: 6.6rem; margin: 0; }
.ep-strip-head, .ep-rcpt-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; padding-bottom: 12px; margin-bottom: 16px; border-bottom: 1px solid var(--line2); }
.ep-strip-stage { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; }
.ep-strip.is-many .ep-strip-stage { grid-template-columns: minmax(0, 1fr) clamp(150px, 27%, 210px); column-gap: 28px; }
.ep-strip-ax { grid-column: 1; grid-row: 1; position: relative; height: 18px; margin: 0 0 6px calc(var(--nw) + 14px); font: var(--ev-lab); letter-spacing: .06em; color: var(--text2); }
.ep-strip-ax span { position: absolute; top: 0; left: calc(var(--h) / 14 * 100%); transform: translateX(-50%); white-space: nowrap; }
.ep-strip-ax span:first-child { transform: none; } .ep-strip-ax span:last-child { transform: translateX(-100%); }
.ep-days { grid-column: 1; grid-row: 2; display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ep-day { display: grid; grid-template-columns: var(--nw) minmax(0, 1fr); column-gap: 14px; row-gap: 6px; align-items: center; }
.ep-day-n { font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: var(--text); white-space: nowrap; }
.ep-day-trk { position: relative; height: 22px; background: repeating-linear-gradient(90deg, rgba(244, 243, 239, .1) 0 1px, transparent 1px calc(100% / 14)); border-bottom: 1px solid var(--line2); }
.ep-day-trk i, .ep-day-full { position: absolute; display: block; }
.ep-day-win { top: -4px; bottom: -4px; left: 0; width: calc(var(--w) * 100%); border: 1px dashed color-mix(in srgb, var(--c) 70%, transparent); }
.ep-day-in { top: 4px; bottom: 4px; left: 0; width: calc(var(--in) * 100%); background: var(--c); }
.ep-day-x { top: 4px; bottom: 4px; left: calc(var(--w) * 100%); width: calc(var(--x) * 100%); background: repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 6px); }
.ep-strip[data-k="V"] .ep-day-x { background: repeating-linear-gradient(135deg, rgba(244, 243, 239, .45) 0 2px, transparent 2px 6px); }
.ep-day-full { display: none; inset: 2px 0; align-items: center; padding-left: 10px; background: var(--c); font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: #04201d; white-space: nowrap; overflow: hidden; }
.ep-day[data-kind="doc"] .ep-day-full, .ep-day[data-kind="edge"] .ep-day-full { display: flex; }
.ep-day[data-kind="edge"] .ep-day-full { background: none; box-shadow: inset 0 0 0 1px var(--c); color: var(--text); }
.ep-day[data-kind="doc"] .ep-day-win, .ep-day[data-kind="doc"] .ep-day-in, .ep-day[data-kind="doc"] .ep-day-x,
.ep-day[data-kind="edge"] .ep-day-win, .ep-day[data-kind="edge"] .ep-day-in, .ep-day[data-kind="edge"] .ep-day-x { display: none; }
.ep-day-v { grid-column: 2; color: var(--text2); font-size: .86rem; line-height: 1.35; font-variant-numeric: tabular-nums; }
.ep-strip[data-kind="doc"] .ep-strip-ax, .ep-strip[data-kind="doc"] .ep-strip-scale { display: none; }
.ep-merge { grid-column: 2; grid-row: 2; padding-left: 16px; border-left: 2px solid var(--c); }
.ep-merge p { margin: 6px 0 0; max-width: none; color: var(--text); font: 400 1.08rem/1.25 var(--serif); }
.ep-strip-key { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; max-width: none; font: var(--ev-lab); letter-spacing: .1em; text-transform: uppercase; color: var(--text2); }
.ep-strip-key span { display: inline-flex; align-items: center; gap: 8px; }
.ep-strip-key span::before { content: ''; width: 18px; height: 8px; }
.ep-strip-key .is-in::before, .ep-strip-key .is-doc::before { background: var(--c); }
.ep-strip-key .is-x::before { background: repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 5px); }
.ep-strip[data-kind="win"] .ep-strip-key .is-doc, .ep-strip[data-kind="doc"] .ep-strip-key .is-in, .ep-strip[data-kind="doc"] .ep-strip-key .is-x { display: none; }
.ep-strip-key .is-xq { display: none; }
.ep-strip[data-k="V"] .ep-strip-key .is-x { display: none; }
.ep-strip[data-k="V"] .ep-strip-key .is-xq { display: inline-flex; }
.ep-strip[data-k="V"] .ep-strip-key .is-xq::before { background: repeating-linear-gradient(135deg, rgba(244, 243, 239, .45) 0 2px, transparent 2px 5px); }

/* the itemised estimate */
.ep-rcpt { min-width: 0; }
.ep-rcpt-h { margin: 0 0 4px; color: var(--text); font: 400 1.5rem/1.15 var(--serif); }
.ep-rc { margin: 0; padding: 0; list-style: none; }
.ep-rc li { display: grid; grid-template-columns: minmax(0, auto) minmax(14px, 1fr) auto; gap: 8px; align-items: end; padding: 11px 0; border-bottom: 1px solid var(--line); }
.ep-rc-l { min-width: 0; color: var(--text); font-size: .93rem; line-height: 1.35; }
.ep-rc-l > span { display: block; margin-top: 2px; color: var(--text2); font-size: .84rem; }
.ep-est { display: inline-block; margin-left: 8px; padding: 1px 6px; border: 1px solid color-mix(in srgb, var(--teal) 55%, transparent); font: var(--ev-lab); font-style: normal; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-t); vertical-align: 1px; }
.ep-rc-dots { align-self: end; margin-bottom: 6px; border-bottom: 1px dotted var(--line2); }
.ep-rc-a { color: var(--text); font: 400 1.2rem/1.1 var(--serif); font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.ep-rc-a.is-q, .ep-rc-a.is-i { max-width: 13em; white-space: normal; font: italic 500 .84rem/1.35 var(--sans); color: var(--text2); }
.ep-rc-a.is-q { font-style: normal; color: var(--text); }
.ep-rc-total { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 14px; margin: 12px 0 0; max-width: none; }
.ep-rc-total span { font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text2); }
.ep-rc-total b { color: var(--text); font: 400 clamp(1.8rem, 2.6vw, 2.3rem)/1 var(--serif); font-weight: 400; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ep-rc-foot { margin: 10px 0 0; max-width: none; color: var(--text2); font-size: .84rem; line-height: 1.45; }

/* deliverables + delivery */
.ep-take, .ep-when { min-width: 0; }
.ep-take > .ep-lab, .ep-when > .ep-lab { padding-bottom: 12px; border-bottom: 1px solid var(--line2); }
.ep-toks { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); column-gap: 28px; margin: 0; padding: 0; list-style: none; }
.ep-toks li { display: grid; grid-template-columns: 124px minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); transition: background .9s var(--ease); }
.ep-toks.is-flash li { background: rgba(25, 230, 207, .05); transition-duration: .2s; }
.ep-tok-g { display: flex; align-items: center; min-height: 24px; }
.ep-tok-t { color: var(--text); font-size: .92rem; line-height: 1.4; }
.ep-combined { margin: 14px 0 0; max-width: none; color: var(--accent-t); font-size: .9rem; }
/* the tiles at the package cards' size; Storyline & Sinker and the Documentary carry their example film's frames (event.css: .is-shot) */
.ep-tok-g .ev-fmt { gap: 6px; }
.ep-tok-g .ev-fmt .is-v { width: 27px; height: 48px; }
.ep-tok-g .ev-fmt .is-h { width: 85px; height: 48px; }
.ep-tok-g .ev-clips.is-shot { grid-template-columns: repeat(6, 14px); grid-auto-rows: auto; }
.ep-tok-g .ev-clips.is-shot .is-teaser { grid-column: auto; grid-row: auto; width: 27px; height: 48px; margin: 0; }
.ep-tok-src { margin: 14px 0 0; max-width: none; color: var(--text2); font-size: .84rem; line-height: 1.45; }
.ep-g-int { display: flex; gap: 6px; }
.ep-g-int i { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--c); }
.ep-g-visit { position: relative; display: block; width: 26px; height: 26px; border: 1px solid var(--line2); }
.ep-g-visit i { position: absolute; inset: 5px; background: var(--c); }
.ep-g-alloc { display: flex; gap: 4px; }
.ep-g-alloc i { width: 9px; height: 16px; border: 1px solid var(--line2); }
.ep-g-alloc i.is-on { border-color: var(--teal); background: var(--teal); }
.ep-when > p { margin: 14px 0 0; max-width: none; font-size: .92rem; line-height: 1.5; }
.ep-lane { margin-top: 16px; }
.ep-lane-ax { position: relative; display: block; height: 18px; border-bottom: 1px solid var(--line2); font: var(--ev-lab); letter-spacing: .06em; text-transform: uppercase; color: var(--text2); }
.ep-lane-ax span { position: absolute; bottom: 4px; left: calc(var(--at) / 7 * 100%); transform: translateX(-50%); white-space: nowrap; }
.ep-lane-ax span:first-child { left: 0; transform: none; color: var(--text); }
.ep-lane-ax span:last-child { transform: translateX(-100%); }
.ep-lane-trk { position: relative; height: 70px; margin: 0; padding: 0; list-style: none; }
.ep-lane-trk::before { content: ''; position: absolute; left: 0; right: 0; top: calc(50% - .5px); height: 1px; background: var(--line2); }
.ep-lane-trk::after { content: ''; position: absolute; left: 0; top: calc(50% - 1px); height: 2px; width: calc(var(--end) / 7 * 100%); background: var(--c); }
.ep-lane-trk li { position: absolute; z-index: 1; top: 50%; left: calc(var(--at) / 7 * 100%); width: 0; height: 0; }
.ep-lane-trk li::before { content: ''; position: absolute; left: -5px; top: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.ep-lane-trk b { position: absolute; left: -5px; white-space: nowrap; font: var(--ev-lab); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.ep-lane-trk .is-up b { bottom: 12px; } .ep-lane-trk .is-dn b { top: 12px; }
.ep-lane-trk li[style*="--at:7"] b { left: auto; right: -5px; top: 12px; bottom: auto; }

/* every package, the same event: quiet columns on hairlines; the fit bar is the meter */
.ep-cmp-h { margin: 0 0 22px; color: var(--text); font: 400 clamp(1.5rem, 2.2vw, 2rem)/1.15 var(--serif); letter-spacing: -.01em; }
.ep-cmp-h em { font-style: italic; color: var(--accent-t); }
.ep-cmp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 44px); align-items: start; }
.ep-cmp.has-visit { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ep-cc { min-width: 0; padding-top: 16px; border-top: 1px solid color-mix(in srgb, var(--c) 50%, transparent); }
.ep-cc.is-rec { border-top: 3px solid var(--c); padding-top: 14px; }
.ep-cc-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 10px; }
.ep-cc-tag { font: var(--ev-lab); letter-spacing: .12em; text-transform: uppercase; color: var(--text2); }
.ep-cc-badge { padding: 3px 7px; background: var(--c); color: #04201d; font: var(--ev-lab); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.ep-cc-name { margin: 10px 0 8px; color: var(--text); font: 400 1.4rem/1.1 var(--serif); letter-spacing: -.01em; }
.ep-cc-est { margin: 0; max-width: none; }
.ep-cc-est b { display: block; color: var(--text); font: 400 clamp(1.8rem, 2.4vw, 2.2rem)/1 var(--serif); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.ep-cc-q { display: block; margin-top: 6px; color: var(--text2); font-size: .84rem; }
.ep-cc-q:empty { display: none; }
.ep-cc-bar { display: flex; gap: 2px; height: 4px; margin-top: 14px; }
.ep-cc-bar i { flex: 1 1 0; min-width: 2px; background: var(--line2); }
.ep-cc[data-k="V"] .ep-cc-badge { background: color-mix(in srgb, #3478D4 70%, #fff); }   /* #04201d on #3478D4 is 3.9:1; this is 6.4:1 */
.ep-cc-bar .is-yes { background: var(--c); }
.ep-cc-bar .is-quote { background: repeating-linear-gradient(135deg, var(--c) 0 2px, transparent 2px 4px); }
.ep-cc-fit { margin: 8px 0 4px; max-width: none; font: var(--ev-lab); letter-spacing: .1em; text-transform: uppercase; color: var(--text2); }
.ep-cc-needs { margin: 0; padding: 0; list-style: none; }
.ep-cc-needs li { display: grid; grid-template-columns: 10px minmax(0, 1fr); column-gap: 10px; padding: 8px 0; border-top: 1px solid var(--line); }
.ep-ni { grid-row: 1 / span 3; width: 8px; height: 8px; margin-top: 6px; border-radius: 50%; border: 1px solid var(--line2); }
.ep-cc-needs .is-yes .ep-ni { border-color: var(--c); background: var(--c); }
.ep-cc-needs .is-quote .ep-ni { border-style: dashed; border-color: var(--c); }
.ep-cc-needs .is-no .ep-ni { background: linear-gradient(45deg, transparent 42%, var(--text2) 42% 58%, transparent 58%); }
.ep-nl { color: var(--text); font-size: .88rem; line-height: 1.4; }
.ep-st { font: var(--ev-lab); letter-spacing: .1em; text-transform: uppercase; line-height: 1.6; color: var(--text2); }
.ep-cc-needs .is-yes .ep-st { color: color-mix(in srgb, var(--c) 72%, #fff); }
.ep-cc-needs .is-quote .ep-st { color: var(--text); }
.ep-sd { color: var(--text2); font-size: .84rem; line-height: 1.4; }
.ep-cc-adds { margin: 12px 0 0; max-width: none; padding-top: 10px; border-top: 1px solid var(--line); color: var(--text2); font-size: .86rem; line-height: 1.5; }
.ep-cc-adds .ep-lab { margin-bottom: 4px; }

/* ---------------------------------------------------------------- 7. the inquiry form: the planner summary (event.js shows it) */
.ep-sum { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; margin: 0 0 18px; padding: 14px 16px; border: 1px solid color-mix(in srgb, var(--teal) 40%, transparent); border-left: 2px solid var(--teal); background: rgba(16, 35, 42, .5); }
.ep-sum-in { flex: 1 1 18rem; min-width: 0; }
.ep-sum-t { margin: 6px 0 0; max-width: none; color: var(--text); font-size: .92rem; line-height: 1.5; overflow-wrap: anywhere; }
.ep-sum-w { margin: 8px 0 0; max-width: none; color: #ffb4a9; font-size: .88rem; line-height: 1.45; }
.ep-sum-x { flex: none; min-height: 44px; padding: 0 16px; border: 1px solid var(--line2); font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--text); transition: border-color .3s, color .3s; }
.ep-sum-x:hover { border-color: var(--teal); color: var(--accent-t); }


/* ---------------------------------------------------------------- 8. responsive */
@media (max-width: 1240px) {
  .ep-cmp.has-visit { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .ep-run { grid-template-columns: minmax(0, 1fr); }
  .ep-sofar { display: none; }
  .ep-ticker { position: sticky; z-index: 5; bottom: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 4px 14px; margin-top: 18px; padding: 14px 0;
    text-decoration: none; color: var(--text); background: var(--ep-bg, #0B0D10); border-top: 1px solid var(--ep-rule, var(--line2)); }
  .ep-tk-k { font: var(--ev-lab); letter-spacing: .16em; text-transform: uppercase; color: var(--text2); }
  .ep-ticker b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: var(--ev-lab); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--text); }
  .ep-ticker.is-done b { font: 400 1.15rem/1.2 var(--serif); letter-spacing: 0; text-transform: none; }
  .ep-tk-v { font: 400 1.15rem/1.2 var(--serif); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .ep-tk-v:empty { display: none; }
  .ep-tk-go { display: inline-flex; align-items: center; gap: 8px; font: var(--ev-lab); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-t); white-space: nowrap; }
  .ep-tk-go::after { content: '↓'; content: '↓' / ''; color: var(--teal); }
  .ep-ticker:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
}
@media (min-width: 981px) and (max-width: 1180px) {
  .ep-strip-ax span:nth-child(7) { display: none; }
}
@media (max-width: 980px) {
  .ep-how-cols, .ep-plan-grid, .ep-take-row { grid-template-columns: minmax(0, 1fr); }
  .ep-cmp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ep-rev { grid-template-columns: minmax(0, 1fr); }
  .ep-total { grid-column: 1; grid-row: auto; margin-top: 30px; }
}
@media (max-width: 760px) {
  .ep-formula { flex-direction: column; gap: 6px; }
  .ep-term { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 14px; row-gap: 2px; padding: 14px 16px; }
  .ep-term-g { grid-row: 1 / span 2; margin: 0; height: auto; }
  .ep-op { align-self: flex-start; margin-left: 22px; font-size: 1.6rem; line-height: .9; }
  .ep-cmp, .ep-cmp.has-visit { grid-template-columns: minmax(0, 1fr); }
  .ep-strip { --nw: 5.6rem; }
  .ep-strip.is-many .ep-strip-stage { grid-template-columns: minmax(0, 1fr); }
  .ep-merge { grid-column: 1; grid-row: 3; margin-top: 22px; }
  .ep-rc li.is-q, .ep-rc li.is-i { grid-template-columns: minmax(0, 1fr) auto; }
  .ep-rc li.is-q .ep-rc-dots, .ep-rc li.is-i .ep-rc-dots { display: none; }
  .ep-rates tbody th { width: auto; }
  /* the stacked table puts each cell's label and value side by side: the qualifier belongs under the value */
  .ep-rates td > span { grid-column: 2; margin-top: -8px; }
}
@media (max-width: 560px) {
  .ep-tool { --ep-px: 24px; margin-left: -24px; margin-right: -24px; border-left: 0; border-right: 0; border-radius: 0; }
  .ep-cue.is-active { padding: 36px 0 32px; }
  .ep-head { justify-content: space-between; }
  .ep-prog { order: 3; flex-basis: 100%; }
  .ep-prog-t { white-space: normal; }
  .ep-q-t { font-size: clamp(1.85rem, 8.6vw, 2.2rem); }
  .ep-ch label { min-height: 60px; column-gap: 14px; }
  .ep-chs.is-chips { display: grid; gap: 8px; }
  .ep-ch.is-chip label { min-height: 52px; padding: 13px 16px; }
  .ep-ch.is-chip label:hover, .ep-ch.is-chip input:checked + label { padding-left: 16px; }
  .ep-step { grid-template-columns: 58px minmax(2.2ch, auto) 58px; }
  .ep-go { width: 100%; justify-content: space-between; }
  .ep-gos { gap: 4px 18px; }
  .ep-fold { grid-template-columns: 2.2em minmax(0, 1fr) auto; column-gap: 12px; }
  .ep-fold-n { grid-row: 1; }
  .ep-fold-q { grid-row: 1; grid-column: 2; }
  .ep-change { grid-row: 1; grid-column: 3; }
  .ep-fold-a, .ep-fold-why { grid-column: 2 / -1; }
  .ep-cta .mag, .ep .ep-send { width: 100%; }
  .ep-toks li { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .ep-day { grid-template-columns: minmax(0, 1fr); row-gap: 5px; }
  .ep-day-v { grid-column: 1; }
  .ep-strip-ax { margin-left: 0; }
  .ep-strip-ax span:nth-child(2), .ep-strip-ax span:nth-child(4), .ep-strip-ax span:nth-child(6), .ep-strip-ax span:nth-child(7) { display: none; }
  .ep-ticker { grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px 12px; }
  .ep-tk-k { display: none; }
  /* the arrow stays; the words stay in the link's accessible name, visually hidden */
  .ep-tk-go-t { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .ep-tk-go::after { font: 400 1.1rem/1 var(--sans); }
  .ep-sum-x { width: 100%; }
  .ev-hero .ep-hero-est { width: 100%; }
}

/* ---------------------------------------------------------------- 9. one-shot motion (pre-states only here) */
@media (prefers-reduced-motion: no-preference) {
  /* the formula assembles term by term, then the total lights */
  html.ready .ep-formula:not(.in) .ep-term { opacity: .35; transform: translateY(14px); }
  html.ready .ep-formula:not(.in) .ep-op { opacity: .2; transform: scale(.6); }
  html.ready .ep-formula:not(.in) .ep-term-g i { transform: scaleX(0); }
  html.ready .ep-formula:not(.in) .ep-term.is-sum { box-shadow: none; }
  .ep-formula .ep-term { transition: opacity .55s var(--ease) calc(var(--k) * .3s + .1s), transform .6s var(--ease) calc(var(--k) * .3s + .1s), box-shadow 1s var(--ease) calc(var(--k) * .3s + .4s); }
  .ep-formula .ep-op { transition: opacity .4s var(--ease) calc(var(--k) * .3s + .32s), transform .45s cubic-bezier(.3, 1.5, .5, 1) calc(var(--k) * .3s + .32s); }
  .ep-formula .ep-term-g i { transform-origin: left; transition: transform .6s var(--ease) calc(var(--k) * .3s + .35s); }

  /* a cue arrives; an answer folds in (one-shot entrances, words never below .35) */
  .ep-cue.is-active > .ep-cue-b { animation: epCueIn .5s var(--ease) both; }
  .ep-cue.is-done > .ep-fold { animation: epFoldIn .4s var(--ease) both; }

  /* the reveal: the decisive needs light in order, the package lands, the total counts up (event-planner.js),
     the package's window draws over the day strips, then the plan settles in */
  html.ready .ep-out:not(.in) .ep-rev-k, html.ready .ep-out:not(.in) .ep-rec-tag, html.ready .ep-out:not(.in) .ep-why-k { opacity: .35; }
  html.ready .ep-out:not(.in) .ep-chip { opacity: .35; border-color: var(--line2); }
  html.ready .ep-out:not(.in) .ep-rec { opacity: .35; transform: translateY(22px); }
  html.ready .ep-out:not(.in) .ep-total { opacity: .35; transform: translateY(12px); }
  html.ready .ep-out:not(.in) .ep-same, html.ready .ep-out:not(.in) .ep-notes, html.ready .ep-out:not(.in) .ep-cta, html.ready .ep-out:not(.in) .ep-plan { opacity: .35; transform: translateY(16px); }
  html.ready .ep-out:not(.in) .ep-day-in, html.ready .ep-out:not(.in) .ep-day-x, html.ready .ep-out:not(.in) .ep-day-full { clip-path: inset(0 100% 0 0); }
  .ep-out .ep-rev-k, .ep-out .ep-why-k { transition: opacity .5s var(--ease); }
  .ep-out .ep-chip { transition: opacity .35s var(--ease) calc(var(--k, 0) * .16s + .15s), border-color .35s var(--ease) calc(var(--k, 0) * .16s + .15s); }
  .ep-out .ep-rec { transition: opacity .7s var(--ease) .45s, transform .9s var(--ease) .45s; }
  .ep-out .ep-rec-tag { transition: opacity .6s var(--ease) .7s; }
  .ep-out .ep-total { transition: opacity .6s var(--ease) .3s, transform .8s var(--ease) .3s; }
  .ep-out .ep-same, .ep-out .ep-notes, .ep-out .ep-cta { transition: opacity .7s var(--ease) 1.2s, transform .8s var(--ease) 1.2s; }
  .ep-out .ep-plan { transition: opacity .8s var(--ease) 1.4s, transform .9s var(--ease) 1.4s; }
  .ep-out .ep-day-in, .ep-out .ep-day-x, .ep-out .ep-day-full { transition: clip-path .9s var(--ease) calc(var(--k, 0) * .08s + 1.6s), width .55s var(--ease), left .55s var(--ease); }
  .ep-day-win { transition: width .55s var(--ease); }
  .ep-ch label::after { transition: background .3s, border-color .3s, box-shadow .3s; }
}
@keyframes epCueIn { from { opacity: .35; transform: translateY(18px); } }
@keyframes epFoldIn { from { opacity: .35; } }
@media (prefers-reduced-motion: reduce) {
  .ep-toks li, .ep-ch label, .ep-prog-bar i { transition: none; }
  .ep-ch label:hover { padding-left: 0; }
  .ep-ch input:checked + label { padding-left: 14px; }
}
@media print {
  .ep-ticker, .ep-head .ep-reset, .ep-cta, .ep-sofar, .ep-change { display: none !important; }
}
