/* Homepage (home.py), 7 Nov 2026. Page-only styles, prefix hm-. Loaded after omega.css.
   Every live sentence stays; this sheet changes how the page looks and moves, not what it says.
   Motion: CSS where possible; scroll-driven where the browser has it; nothing for reduced motion. */

/* ---- Hero: full-bleed photo, copy over a navy wash, a line of trust marks, a ticker beneath. */
.hm-hero{position:relative;display:flex;align-items:flex-end;min-height:min(100svh,960px);background:var(--deep);color:#fff;overflow:hidden;isolation:isolate}
.hm-slides{position:absolute;inset:0;z-index:0}
.hm-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s var(--ease)}
.hm-slide.is-on{opacity:1}
.hm-slide img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;transform-origin:55% 60%}
.hm-slide.is-on img{animation:hm-kb 11s linear both}
@keyframes hm-kb{from{transform:scale(1)}to{transform:scale(1.08)}}
.hm-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,23,63,.93) 0%,rgba(0,23,63,.78) 30%,rgba(0,23,63,.28) 62%,rgba(0,23,63,.12) 100%),linear-gradient(0deg,rgba(0,23,63,.72) 0%,rgba(0,23,63,.1) 42%,rgba(0,23,63,.18) 100%)}
.hm-hero .wrap{position:relative;z-index:2;width:100%;padding-top:150px;padding-bottom:clamp(48px,6vw,80px)}
.hm-copy{max-width:720px}
.hm-kicker{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;padding:7px 14px 7px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(0,23,63,.35);color:#fff;font-size:13.5px;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(6px)}
.hm-kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,77,1,.25)}
.hm-h1{color:#fff;font-size:clamp(34px,3.2vw + 12px,66px);line-height:1.04;letter-spacing:-.025em;margin-bottom:22px}
.hm-h1 span{display:inline-block;animation:hm-rise .7s var(--ease) both;animation-delay:calc(var(--i) * 55ms)}
@keyframes hm-rise{from{opacity:0;transform:translateY(.45em)}to{opacity:1;transform:none}}
.hm-hero .lead{color:#eef2f8;font-size:clamp(17px,.35vw + 15.5px,20px);max-width:60ch;animation:hm-fade .8s var(--ease) .35s both}
.hm-hero .note{margin-top:14px;color:var(--on-navy);animation:hm-fade .8s var(--ease) .45s both}
.hm-hero .note a{color:#fff}
.hm-hero .btns{margin-top:30px;animation:hm-fade .8s var(--ease) .5s both}
.hm-hero .btn{min-height:54px;padding:0 28px;font-size:17px}
.hm-hero .btn-w{border-color:#fff}
.hm-hero .btn-w:hover{background:#fff;color:var(--navy)}
@keyframes hm-fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hm-trust{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:clamp(32px,4vw,52px);padding-top:22px;border-top:1px solid rgba(255,255,255,.22);animation:hm-fade .8s var(--ease) .65s both}
.hm-trust li{display:flex;align-items:center;gap:9px;color:#fff;font-size:15px;font-weight:500}
.hm-trust .tick{width:18px;height:18px;margin:0;color:var(--orange)}
.hm-trust b{font-weight:700}
/* slide controls: dots and a pause button, shown only once the slides are running */
.hm-ctl{position:absolute;z-index:3;right:var(--gutter);bottom:clamp(48px,6vw,80px);display:none;align-items:center;gap:8px}
.hm-hero.is-slides .hm-ctl{display:flex}
.hm-ctl button{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(0,23,63,.4);color:#fff;cursor:pointer;backdrop-filter:blur(6px)}
.hm-ctl button:hover{background:rgba(0,23,63,.75)}
.hm-ctl svg{width:14px;height:14px}
.hm-ctl .hm-dot{width:10px;height:10px;border:0;background:rgba(255,255,255,.45)}
.hm-ctl .hm-dot[aria-current=true]{background:var(--orange);width:26px;border-radius:5px}
.hm-ctl .i-play{display:none}
.hm-hero.is-paused .i-play{display:block}.hm-hero.is-paused .i-pause{display:none}
.hm-hero.is-paused .hm-slide.is-on img{animation-play-state:paused}

/* ---- Ticker: experience named on the live Sectors page, scrolling under the hero. */
.hm-ticker{position:relative;display:flex;align-items:center;background:var(--deep);color:#fff;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}
.hm-ticker-label{flex:none;position:relative;z-index:2;display:flex;align-items:center;min-height:52px;padding:0 20px 0 var(--gutter);background:var(--deep);color:var(--on-navy);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;box-shadow:16px 0 20px -8px var(--deep)}
.hm-ticker-track{display:flex;width:max-content;animation:hm-tick 70s linear infinite}
.hm-ticker:hover .hm-ticker-track{animation-play-state:paused}
.hm-ticker ul{display:flex;flex:none}
.hm-ticker li{display:flex;align-items:center;gap:22px;padding-right:22px;font-size:15px;font-weight:500;white-space:nowrap}
.hm-ticker li::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--orange)}
@keyframes hm-tick{to{transform:translateX(-50%)}}

/* ---- Routes: the four live doorways, now numbered and flat under the ticker. */
.hm-routes{margin-top:0}
.hm-routes ul{box-shadow:none;border-bottom:1px solid var(--line)}
.hm-routes a{padding:26px 24px 28px}
.hm-routes li{counter-increment:hm-route}
.hm-routes a::before{content:"0" counter(hm-route);display:block;margin-bottom:10px;color:var(--orange);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.hm-routes li:first-child a{box-shadow:none}

/* ---- Logo marquee: "Working with", the same twelve logos the live page shows. */
.hm-logos{padding:clamp(28px,3vw,40px) 0;border-bottom:1px solid var(--line);overflow:hidden}
.hm-logos .wrap{display:flex;align-items:center;gap:32px}
.hm-logos-label{flex:none;color:var(--muted);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.hm-logos-view{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.hm-logos-track{display:flex;width:max-content;animation:hm-tick 48s linear infinite}
.hm-logos:hover .hm-logos-track{animation-play-state:paused}
.hm-logos ul{display:flex;flex:none;align-items:center}
.hm-logos li{display:flex;align-items:center;justify-content:center;height:56px;padding:0 30px}
.hm-logos img{max-height:36px;max-width:150px;width:auto;filter:grayscale(1) contrast(1.1);opacity:.7;transition:opacity .2s,filter .2s}
.hm-logos li:hover img{filter:none;opacity:1}

/* ---- Figures count up (home.js); the rule under each already grows in omega.css. */
.figures strong{display:block;min-width:4ch}

/* ---- Services: a photo grid with one large tile, every live title and description visible. */
.hm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:300px;gap:12px;margin-top:clamp(24px,3vw,40px)}
.hm-tile{position:relative;display:block;overflow:hidden;border-radius:6px;background:var(--navy);color:#fff;text-decoration:none;isolation:isolate;transition:translate .3s var(--ease),box-shadow .3s var(--ease)}
.hm-tile:first-child{grid-column:span 2;grid-row:span 2}
.hm-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.hm-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,23,63,.96) 0%,rgba(0,23,63,.72) 38%,rgba(0,23,63,.08) 70%,rgba(0,23,63,0) 100%);transition:opacity .3s}
.hm-tile:hover{translate:0 -4px;box-shadow:0 24px 44px -28px rgba(0,34,91,.7)}
.hm-tile:hover img{transform:scale(1.06)}
.hm-tile>div{position:absolute;z-index:2;left:20px;right:20px;bottom:18px}
.hm-tile h3{color:#fff;font-size:19px;line-height:1.2;margin-bottom:6px}
.hm-tile p{color:#dfe6f2;font-size:13.5px;line-height:1.4}
.hm-tile .go{display:inline-flex;align-items:center;gap:7px;margin-top:10px;color:#fff;font-size:14px;font-weight:600}
.hm-tile .go .arrow{color:var(--orange)}
.hm-tile:first-child>div{left:28px;right:28px;bottom:26px}
.hm-tile:first-child h3{font-size:clamp(24px,1.3vw + 17px,34px);margin-bottom:10px}
.hm-tile:first-child p{font-size:16px;max-width:56ch;line-height:1.5}
.hm-tile:first-child .go{font-size:15px;margin-top:14px}
.hm-tile .hm-no{position:absolute;z-index:2;top:16px;left:20px;color:#fff;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;opacity:.85}
.hm-tile:first-child .hm-no{left:28px;top:22px}
.hm-tile::before{content:"";position:absolute;z-index:3;top:0;left:0;right:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.hm-tile:hover::before{transform:scaleX(1)}

/* ---- Accreditation certificate tilts toward the pointer a little. */
.hm-cert{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.accr:hover .hm-cert{transform:rotate(0) translateY(-6px);box-shadow:0 40px 70px -30px #000}

/* ---- Scroll motion: tiles rise in, hero photo settles. Only where the browser supports it. */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .hm-tile{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    .hm-tile:hover{animation:none}
  }
}

/* ---- Tablet */
@media (max-width:1180px){
  .hm-hero .wrap{padding-top:120px}
  .hm-grid{grid-template-columns:1fr 1fr;grid-auto-rows:280px}
  .hm-tile:first-child{grid-column:span 2;grid-row:span 1}
  .hm-tile:first-child p{max-width:none}
}
@media (max-width:900px){
  .hm-hero{min-height:min(100svh,860px)}
  .hm-ticker-label{display:none}
  .hm-logos .wrap{flex-direction:column;align-items:stretch;gap:14px}
}
/* ---- Phone */
@media (max-width:640px){
  .hm-hero{min-height:min(100svh,780px);align-items:flex-end}
  .hm-hero::after{background:linear-gradient(0deg,rgba(0,23,63,.96) 0%,rgba(0,23,63,.82) 34%,rgba(0,23,63,.3) 64%,rgba(0,23,63,.25) 100%)}
  .hm-slide img{object-position:50% 40%}
  .hm-hero .wrap{padding-top:120px;padding-bottom:calc(104px + env(safe-area-inset-bottom))}
  .hm-kx{display:none}
  .hm-kicker{font-size:12.5px;padding:6px 12px 6px 9px}
  .hm-h1{font-size:clamp(32px,9vw,40px);margin-bottom:16px}
  .hm-hero .lead{font-size:16.5px}
  .hm-hero .btns{margin-top:22px}
  .hm-hero .btns .btn{flex:1 1 140px;min-height:50px;font-size:16px;padding:0 16px}
  .hm-trust{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:24px;padding-top:18px}
  .hm-trust li{font-size:13.5px;align-items:flex-start}
  .hm-trust .tick{margin-top:2px}
  .hm-ctl{right:16px;bottom:auto;top:calc(58px + 14px)}
  .hm-ticker li{font-size:14px}
  .hm-ticker-track{animation-duration:50s}
  .hm-routes a{padding:16px 16px 18px}
  .hm-routes a::before{margin-bottom:4px}
  .hm-logos li{height:44px;padding:0 20px}
  .hm-logos img{max-height:28px;max-width:110px}
  /* services become a swipe row, like the approved service cards */
  .hm-grid{display:flex;gap:12px;margin:clamp(24px,3vw,40px) calc(var(--gutter) * -1) 0;padding:2px var(--gutter) 10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-padding:0 var(--gutter)}
  .hm-grid::-webkit-scrollbar{display:none}
  .hm-tile,.hm-tile:first-child{flex:0 0 84%;min-height:380px;scroll-snap-align:start;animation:none}
  .hm-tile:first-child>div{left:20px;right:20px;bottom:18px}
  .hm-tile:first-child h3{font-size:22px;margin-bottom:6px}
  .hm-tile:first-child p{font-size:14px;line-height:1.4}
  .hm-tile:first-child .go{font-size:14px;margin-top:10px}
  .hm-tile:first-child .hm-no{left:20px;top:16px}
  .hm-swipe{display:flex;align-items:center;gap:8px;margin-top:20px;color:var(--muted);font-size:13.5px;font-weight:600}
}
@media (min-width:641px){.hm-swipe{display:none}}
@media (prefers-reduced-motion:reduce){
  .hm-h1 span,.hm-hero .lead,.hm-hero .note,.hm-hero .btns,.hm-trust,.hm-slide.is-on img,.hm-ticker-track,.hm-logos-track{animation:none!important}
  .hm-ticker-track,.hm-logos-track{width:auto;flex-wrap:wrap}
  .hm-ticker ul+ul,.hm-logos ul+ul{display:none}
  .hm-ticker ul,.hm-logos ul{flex:1 1 100%;width:100%;flex-wrap:wrap;justify-content:center;gap:6px 0}
  .hm-logos-view{-webkit-mask-image:none;mask-image:none}
  .hm-slide{transition:none}
}

/* ================================================================ Round 2, 7 Nov 2026: cube collection + sectors */

/* ---- Cube collection: dot map of the UK, lit outward from Daventry as it scrolls in; the collection week beside it. */
.hm-uk{view-timeline:--hm-map block;overflow:hidden}
.hm-uk-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);grid-template-areas:"head map" "tools map";gap:0 clamp(28px,5vw,80px);align-items:center}
.hm-uk-head{grid-area:head;align-self:end}
.hm-uk-tools{grid-area:tools;align-self:start}
.hm-uk-map{grid-area:map}
.hm-week,.hm-sx-list{list-style:none;margin:0;padding:0}
.hm-pc{margin-top:28px;padding:18px 20px 20px;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 18px 40px -30px rgba(0,34,91,.5)}
.hm-pc label{display:block;margin-bottom:10px;color:var(--navy);font-size:15px;font-weight:600}
.hm-pc-row{display:flex;gap:10px}
.hm-pc input{flex:1;min-width:0;min-height:50px;padding:0 14px;border:1px solid #9aa5b8;border-radius:3px;background:#fff;font-size:17px;letter-spacing:.04em;text-transform:uppercase}
.hm-pc input::placeholder{text-transform:none;letter-spacing:0;color:#8a93a6}
.hm-pc input:focus{outline:2px solid var(--navy);outline-offset:0;border-color:var(--navy)}
.hm-pc .btn{flex:none;padding:0 22px}
.hm-week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:26px;border-top:2px solid var(--navy)}
.hm-week>li{padding:12px 10px 14px 0;border-left:1px solid var(--line);padding-left:12px}
.hm-week>li:first-child{border-left:0;padding-left:0}
.hm-week>li>b{display:block;margin-bottom:8px;color:var(--navy);font-size:15px;font-weight:700}
.hm-week ul li{position:relative;padding:3px 0 3px 12px;color:var(--ink);font-size:13.5px;line-height:1.35}
.hm-week ul li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--orange)}
.hm-week-note{margin-top:12px;color:var(--muted)}
.hm-uk-map{position:relative}
.hm-map{width:100%;max-width:480px;height:auto;margin:0 auto;display:block;overflow:visible}
.hm-dim{fill:#b9c3d6;opacity:.55}
.hm-lit{fill:var(--navy)}
.hm-pin-dot{fill:var(--orange)}
.hm-pin-core{fill:#fff}
.hm-pulse{fill:none;stroke:var(--orange);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.hm-pin-label{fill:var(--navy);font:600 13px/1 var(--font);paint-order:stroke;stroke:var(--ground);stroke-width:5px;stroke-linejoin:round}
.hm-van{position:absolute;left:0;bottom:4%;width:min(42%,230px);margin:0;background:#fff;padding:6px;border-radius:6px;box-shadow:0 22px 44px -26px rgba(0,34,91,.65);transform:rotate(-2deg)}
.hm-van img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px}
.hm-van figcaption{padding:8px 4px 4px;color:var(--navy);font-size:12.5px;font-weight:600;line-height:1.3}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .hm-reach{animation:hm-reach linear both;animation-timeline:--hm-map;animation-range:cover 12% cover 48%}
    .hm-pulse{animation:hm-pulse 2.6s ease-out infinite}
    .hm-pulse-2{animation-delay:1.3s}
  }
}
@keyframes hm-reach{from{r:0}to{r:560px}}
@keyframes hm-pulse{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.6);opacity:0}}

/* ---- Sectors: a numbered index on the left, one large photo on the right that follows the pointer. */
.hm-sx{background:var(--deep)}
.hm-sx-head{align-items:flex-end}
.hm-sx-head .more{flex:none;margin-bottom:6px}
.hm-sx-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,72px);align-items:start}
.hm-sx-list{border-top:1px solid rgba(255,255,255,.18);counter-reset:none}
.hm-sx-row a{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;gap:0 14px;align-items:center;padding:15px 12px 15px 0;border-bottom:1px solid rgba(255,255,255,.14);color:#fff;text-decoration:none;transition:padding .25s var(--ease),background .2s}
.hm-sx-row figure{display:none;margin:0}
.hm-sx-row b{color:rgba(255,255,255,.5);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;transition:color .2s}
.hm-sx-row h3{color:#fff;font-size:clamp(20px,.6vw + 16px,25px);line-height:1.15;transition:color .2s}
.hm-sx-row p{margin-top:3px;color:var(--on-navy);font-size:14px;line-height:1.4;display:none}
.hm-sx-row .arrow{color:rgba(255,255,255,.45);transition:color .2s,transform .22s var(--ease)}
.hm-sx-row.on a,.hm-sx-row a:hover,.hm-sx-row a:focus-visible{padding-left:14px;background:rgba(255,255,255,.05);box-shadow:inset 3px 0 0 var(--orange)}
.hm-sx-row.on b,.hm-sx-row a:hover b{color:var(--orange)}
.hm-sx-row.on p,.hm-sx-row a:hover p,.hm-sx-row a:focus-visible p{display:block}
.hm-sx-row.on .arrow,.hm-sx-row a:hover .arrow{color:var(--orange);transform:translate(3px,-3px)}
.hm-sx-stage{position:sticky;top:110px;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--navy);box-shadow:0 30px 60px -30px #000}
.hm-sx-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:opacity .6s var(--ease),transform 6s linear}
.hm-sx-stage img.on{opacity:1;transform:scale(1)}
.hm-sx-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,23,63,.85) 0%,rgba(0,23,63,.1) 45%,rgba(0,23,63,0) 100%);pointer-events:none}
.hm-sx-cap{position:absolute;z-index:2;left:26px;right:26px;bottom:22px;display:flex;align-items:baseline;gap:14px;color:#fff}
.hm-sx-cap [data-sx-n]{color:var(--orange);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.hm-sx-cap [data-sx-name]{font-size:clamp(26px,1.6vw + 16px,40px);font-weight:600;letter-spacing:-.02em;line-height:1}
.hm-sx-bar{position:absolute;z-index:2;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.2)}
.hm-sx-bar i{display:block;height:100%;width:0;background:var(--orange)}
.hm-sx.is-auto .hm-sx-bar i{animation:hm-sxbar 4s linear both}
@keyframes hm-sxbar{from{width:0}to{width:100%}}

@media (max-width:1180px){
  .hm-sx-stage{top:90px}
}
@media (max-width:900px){
  .hm-uk-grid{grid-template-columns:1fr;grid-template-areas:"head" "map" "tools";gap:28px 0}
  .hm-uk-map{max-width:420px;margin:0 auto;width:100%}
  .hm-pc{margin-top:0}
  .hm-van{display:none}
  .hm-week{grid-template-columns:repeat(5,minmax(0,1fr))}
  .hm-week>li{padding-left:8px;padding-right:4px}
  .hm-week ul li{font-size:12.5px;padding-left:10px}
  .hm-sx-grid{grid-template-columns:1fr}
  .hm-sx-stage{display:none}
  .hm-sx-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:0}
  .hm-sx-row a{display:block;padding:0;border:0;background:var(--navy);border-radius:6px;overflow:hidden;box-shadow:none}
  .hm-sx-row.on a,.hm-sx-row a:hover{padding-left:0;background:var(--navy);box-shadow:none}
  .hm-sx-row figure{display:block;position:relative;aspect-ratio:3/4;overflow:hidden}
  .hm-sx-row figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
  .hm-sx-row a:hover figure img{transform:scale(1.04)}
  .hm-sx-row figure::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,23,63,.96) 8%,rgba(0,23,63,.5) 46%,rgba(0,23,63,0) 72%)}
  .hm-sx-row b{position:absolute;z-index:2;top:14px;left:16px;color:#fff;opacity:.85}
  .hm-sx-row a>div{position:absolute;z-index:2;left:16px;right:16px;bottom:16px}
  .hm-sx-row h3{font-size:22px;margin-bottom:4px}
  .hm-sx-row p{display:block;color:#e8edf6;font-size:14px}
  .hm-sx-row .arrow{display:none}
  .hm-sx-head{flex-direction:column;align-items:flex-start;gap:16px}
}
@media (max-width:640px){
  .hm-week{display:flex;flex-direction:column;border-top:1px solid var(--navy)}
  .hm-week>li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:0 10px;align-items:start;padding:10px 0;border-left:0;border-bottom:1px solid var(--line)}
  .hm-week>li>b{margin:0;padding-top:3px}
  .hm-week>li>b span{display:inline}
  .hm-week ul{display:flex;flex-wrap:wrap;gap:4px 14px}
  .hm-week ul li{padding:2px 0 2px 12px;font-size:13.5px}
  .hm-pc-row{flex-direction:column}
  .hm-pc .btn{width:100%}
  .hm-uk-map{max-width:320px}
  .hm-pin-label{font-size:15px}
  .hm-sx-list{display:flex;gap:12px;margin:0 calc(var(--gutter) * -1);padding:2px var(--gutter) 10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;scroll-padding:0 var(--gutter)}
  .hm-sx-list::-webkit-scrollbar{display:none}
  .hm-sx-row{flex:0 0 76%;scroll-snap-align:start}
}
@media (min-width:901px){.hm-week>li>b span{display:inline}}
@media (prefers-reduced-motion:reduce){.hm-pulse,.hm-reach,.hm-sx-bar i{animation:none!important}.hm-pulse{opacity:.35;transform:scale(1.6)}}

/* ================================================================ Round 3, 7 Nov 2026: the cube test, recorded */
.hm-rg-ticks{grid-template-columns:1fr 1fr;margin:4px 0 0}
.hm-film{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.hm-film li{position:relative;overflow:hidden;border-radius:6px;background:var(--navy)}
.hm-film img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.hm-film li:hover img{transform:scale(1.05)}
.hm-film span{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;background:linear-gradient(0deg,rgba(0,16,45,.9),rgba(0,16,45,0));color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.hm-film li::before{content:"";position:absolute;z-index:2;left:0;right:0;top:0;height:2px;background:var(--orange)}

.hm-rg{position:relative;background:#00102d;border:1px solid var(--rule-navy);border-radius:10px;overflow:hidden;box-shadow:0 40px 80px -40px #000}
.hm-rg-stage{position:relative;aspect-ratio:16/10;background:#000;overflow:hidden;isolation:isolate}
.hm-rg-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-rg-stage::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(0,16,45,.55) 0%,rgba(0,16,45,0) 30%),linear-gradient(180deg,rgba(0,16,45,.45) 0%,rgba(0,16,45,0) 26%);pointer-events:none}
.hm-rg-stage.playing::after,.hm-rg-stage.playing>*:not(iframe){display:none}
.hm-rg-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* cracks: a pale edge under a dark line, drawn at peak load; dust drops from the base */
.hm-rg-crack{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.hm-rg-crack path{fill:none;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:720;stroke-dashoffset:720}
.hm-rg-cr-lo path{stroke:rgba(255,255,255,.75);stroke-width:7}
.hm-rg-cr-hi path{stroke:#2a2622;stroke-width:3.2}
.hm-rg-dust circle{fill:#d9d3c7;opacity:0;transform-box:fill-box;transform-origin:center}
.is-hit .hm-rg-crack path,.is-done .hm-rg-crack path{stroke-dashoffset:0;transition:stroke-dashoffset .55s cubic-bezier(.2,.8,.2,1)}
.is-hit .hm-rg-crack path:nth-child(2),.is-done .hm-rg-crack path:nth-child(2){transition-delay:.08s}
.is-hit .hm-rg-crack path:nth-child(3),.is-done .hm-rg-crack path:nth-child(3){transition-delay:.16s}
.is-hit .hm-rg-crack path:nth-child(4),.is-done .hm-rg-crack path:nth-child(4){transition-delay:.22s}
.is-hit .hm-rg-dust circle{animation:hm-dust .9s ease-in both;animation-delay:calc(var(--k) * 45ms)}
@keyframes hm-dust{0%{opacity:0;transform:translateY(-6px)}15%{opacity:.9}100%{opacity:0;transform:translateY(34px)}}
.hm-rg-flash{position:absolute;inset:0;z-index:3;background:#fff;opacity:0;pointer-events:none}
.is-hit .hm-rg-flash{animation:hm-flash .5s ease-out both}
@keyframes hm-flash{0%{opacity:.7}100%{opacity:0}}
.is-hit>img{animation:hm-shake .45s cubic-bezier(.36,.07,.19,.97) both}
@keyframes hm-shake{10%,90%{transform:translate(-2px,1px)}20%,80%{transform:translate(3px,-1px)}30%,50%,70%{transform:translate(-4px,2px)}40%,60%{transform:translate(4px,-2px)}}
/* viewfinder HUD */
.hm-rg-corner,.hm-rg-corner::before{position:absolute;z-index:2;inset:14px;pointer-events:none;border:2px solid rgba(255,255,255,.55);border-radius:2px;-webkit-mask:linear-gradient(#000 0 0) top left/26px 26px no-repeat,linear-gradient(#000 0 0) top right/26px 26px no-repeat,linear-gradient(#000 0 0) bottom left/26px 26px no-repeat,linear-gradient(#000 0 0) bottom right/26px 26px no-repeat;mask:linear-gradient(#000 0 0) top left/26px 26px no-repeat,linear-gradient(#000 0 0) top right/26px 26px no-repeat,linear-gradient(#000 0 0) bottom left/26px 26px no-repeat,linear-gradient(#000 0 0) bottom right/26px 26px no-repeat}
.hm-rg-corner::before{content:none}
.hm-rg-rec{position:absolute;z-index:4;left:26px;top:24px;display:flex;align-items:center;gap:7px;padding:4px 10px;background:rgba(0,16,45,.8);border-radius:3px;color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.06em}
.hm-rg-rec i{width:8px;height:8px;border-radius:50%;background:var(--orange);animation:hm-blink 1.2s steps(2,end) infinite}
@keyframes hm-blink{to{opacity:.25}}
.hm-rg-tc{position:absolute;z-index:4;left:92px;top:24px;padding:4px 10px;background:rgba(0,16,45,.8);border-radius:3px;color:#fff;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.hm-rg-state{position:absolute;z-index:4;right:26px;top:24px;display:flex;align-items:center;gap:8px;padding:4px 11px;background:rgba(0,16,45,.8);border-radius:999px;color:#fff;font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;transition:background .3s,color .3s}
.hm-rg-state::before{content:"";width:8px;height:8px;border-radius:50%;background:#7fb0ff;animation:hm-blink 1s steps(2,end) infinite}
.hm-rg-state[data-state=peak]{background:var(--orange)}
.hm-rg-state[data-state=peak]::before{background:#fff;animation:none}
.hm-rg-state[data-state=done]{background:#fff;color:var(--navy)}
.hm-rg-state[data-state=done]::before{background:var(--orange);animation:none}
.hm-rg-gauge{position:absolute;z-index:4;right:26px;top:62px;bottom:26px;width:8px;border-radius:4px;background:rgba(255,255,255,.18);overflow:visible}
.hm-rg-gauge i{position:absolute;left:0;right:0;bottom:0;height:0;border-radius:4px;background:linear-gradient(0deg,var(--orange),#ffa070)}
.hm-rg-gauge em{position:absolute;right:14px;bottom:-4px;color:#fff;font-size:11px;font-style:normal;font-weight:600;letter-spacing:.06em}
.hm-rg-play{position:absolute;z-index:4;left:26px;bottom:24px;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px 0 12px;border:0;border-radius:999px;background:#fff;color:var(--navy);font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 12px 30px -10px rgba(0,0,0,.8);transition:transform .2s var(--ease),background .2s}
.hm-rg-play:hover{transform:translateY(-2px);background:var(--ground)}
.hm-rg-play svg{width:18px;height:18px;color:var(--orange)}
/* readings */
.hm-rg-reads{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule-navy)}
.hm-rg-read{display:flex;flex-direction:column;gap:8px;padding:16px 20px 18px;border-left:1px solid var(--rule-navy)}
.hm-rg-read:first-child{border-left:0}
.hm-rg-read span{color:var(--on-navy);font-size:13.5px}
.hm-rg-read strong{color:#fff;font-size:clamp(24px,1.5vw + 12px,34px);font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1}
.hm-rg-read em{font-style:normal;font-size:.42em;color:var(--on-navy);margin-left:6px;letter-spacing:0}
.hm-rg-peak{background:rgba(255,77,1,.12);transition:background .4s}
.hm-rg-peak strong{color:var(--orange)}
.hm-rg[data-phase=load] .hm-rg-peak{background:none}
.hm-rg[data-phase=load] .hm-rg-peak strong{color:rgba(255,255,255,.35)}
/* trace */
.hm-rg-trace{padding:18px 20px 10px;border-top:1px solid var(--rule-navy)}
.hm-rg-trace svg{width:100%;height:auto;display:block}
.hm-rg-trace .gl{stroke:rgba(255,255,255,.1);stroke-width:1;vector-effect:non-scaling-stroke}
.hm-rg-trace .area{fill:url(#hm-rg-area)}
.hm-rg-trace .curve{fill:none;stroke:var(--orange);stroke-width:2.5;stroke-linejoin:round}
.hm-rg-trace .tip{fill:#fff;stroke:var(--orange);stroke-width:2}
.hm-rg-trace text{fill:var(--on-navy);font:400 11px var(--font)}
.hm-rg-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px 14px;color:var(--on-navy);font-size:13px;line-height:1.35}
.hm-rg-replay{flex:none;min-height:34px;padding:0 12px;background:#fff;border:0;border-radius:3px;color:var(--navy);font-size:13.5px;font-weight:600;cursor:pointer}
.hm-rg-replay:hover{background:var(--ground)}
@media (max-width:900px){
  .hm-rgband .rig{grid-template-columns:1fr}
  .hm-film{max-width:520px}
}
@media (max-width:640px){
  .hm-rg-ticks{grid-template-columns:1fr}
  .hm-film{gap:8px}
  .hm-rg{border-radius:8px}
  .hm-rg-rec{left:16px;top:14px}
  .hm-rg-tc{left:82px;top:14px}
  .hm-rg-state{right:16px;top:14px;font-size:11.5px;padding:3px 9px}
  .hm-rg-gauge{right:16px;top:48px;bottom:16px}
  .hm-rg-corner{inset:8px}
  .hm-rg-play{left:16px;bottom:14px;min-height:36px;font-size:13px}
  .hm-rg-reads{grid-template-columns:1fr 1fr}
  .hm-rg-read{padding:12px 14px 14px}
  .hm-rg-read:nth-child(3){border-left:0}
  .hm-rg-read:nth-child(n+3){border-top:1px solid var(--rule-navy)}
  .hm-rg-read strong{font-size:clamp(20px,6vw,26px)}
  .hm-rg-trace{padding:14px 14px 8px}
  .hm-rg-foot{padding:8px 14px 12px}
}
@media (prefers-reduced-motion:reduce){
  .hm-rg-rec i,.hm-rg-state::before,.is-hit>img,.is-hit .hm-rg-flash,.is-hit .hm-rg-dust circle{animation:none!important}
  .hm-rg-crack path{transition:none!important}
}
