/* More projects (Figma 490-4816) — shared by every case page (case.html, case-daisy.html).
   The red block, the heading, and two project FRAMES. Each frame runs the FULL HEIGHT of the block
   (heading strip included) and clips its own trail, so an image is never cut at the heading's edge;
   the heading and the names sit ABOVE the trail (Markiian, 2026-10-08: "hover across full height
   and under text, so text stays on top"). No side margins: the frames run to the edges. */
.more{position:relative;margin-top:200px;background:var(--red);color:#fff;height:400px;box-sizing:border-box;padding:0;}
.more h2{position:relative;z-index:3;pointer-events:none;margin:0;font-family:'General Sans','Geist',sans-serif;font-weight:500;font-size:40px;line-height:1.15;letter-spacing:.01em;text-align:center;padding-top:20px;}
.more .halves{position:absolute;inset:0;display:flex;align-items:stretch;}
/* each project is its own frame: it clips its own trail; hovering changes nothing about it
   (Markiian, 2026-09-08). The name keeps its old spot: centred in the space under the heading. */
.more .halves a{position:relative;overflow:hidden;flex:1 0 0;min-width:0;display:flex;align-items:center;justify-content:center;padding:66px 0 40px;box-sizing:border-box;font-family:'General Sans','Geist',sans-serif;font-weight:500;font-size:20px;line-height:1.15;letter-spacing:.01em;color:#fff;text-decoration:none;}
.more .halves a:focus-visible{outline:2px solid #fff;outline-offset:-4px;}
.more .halves a .name{position:relative;z-index:2;pointer-events:none;}
/* the trail, re-engineered from antinomy.studio's next-case blocks (sampled at 50 ms on
   /project/adyen and /project/atlantic, 2026-09-08): ONE SLOT PER IMAGE of the next case.
   A spawn takes the next slot round-robin, gives it a NEW RANDOM SIZE, and puts it on the
   pointer with a little jitter, on top. Spawns come every 100 ms while the pointer moves and
   on a 600 ms clock while it rests. A slot's first showing fades in over .3 s with a short
   slide; a reused slot moves without fading. The frame fades clean when the pointer leaves. */
.more .trail{position:absolute;inset:0;z-index:1;pointer-events:none;}
.more .slot{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity;transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .3s ease-out;}
.more .slot.gone{transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .35s ease-in;}
.more .slot.jump{transition:none;}
.more .slot img{display:block;width:var(--w,360px);height:auto;border-radius:4px;box-shadow:none;}
@media (prefers-reduced-motion:reduce){ .more .slot{transition:none;} }
