also looking at this
LSU's own coaching surface, and what auditing the site turned up
#12
86 files
+3943
-1190
Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.
| @@ -9,6 +9,23 @@ | ||
| 9 | 9 | exists per page in base.css, which is why the old hero's red words |
| 10 | 10 | rendered white. */ |
| 11 | 11 | |
| 12 | /* Unscoped, and kept that way: the scoped rules below build on these - the | |
| 13 | hero h1 takes its family, case and tracking from here and overrides only | |
| 14 | the size. They came across from stx-site.css with the rest of the page. */ | |
| 15 | .coaching-hero{position:relative;padding:clamp(140px,18vw,240px) clamp(18px,5vw,40px) 100px;background:linear-gradient(90deg,#000e,#0003),url('/assets/lsu/images/hero-desktop.webp') 50% 35%/cover} | |
| 16 | .coaching-hero h1{max-width:13ch;font:400 clamp(48px,8vw,120px)/1.05 var(--lsu-display);text-transform:uppercase;letter-spacing:.02em;margin:24px 0} | |
| 17 | .coaching-hero p{max-width:54ch;color:#ffffffb3;font:400 19px/1.6 var(--lsu-body)} | |
| 18 | .coaching-body{max-width:1360px;margin:auto;padding:clamp(50px,7vw,100px) clamp(18px,5vw,40px)} | |
| 19 | .coaching-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;margin:3rem 0} | |
| 20 | .coaching-steps article{padding:2rem;border-right:1px solid #ffffff24} | |
| 21 | .coaching-steps article:last-child{border:0} | |
| 22 | .coaching-steps h2{font:400 30px/1.2 var(--lsu-display);text-transform:uppercase} | |
| 23 | .coaching-steps p{color:#ffffffa6;line-height:1.7} | |
| 24 | .coaching-note{padding:2rem;border-left:3px solid var(--lsu-red);background:#0d0d0f} | |
| 25 | .coaching-note h2{font:400 36px var(--lsu-display);text-transform:uppercase} | |
| 26 | .coaching-note p{max-width:65ch;color:#ffffffa6;line-height:1.7} | |
| 27 | @media(max-width:700px){.coaching-hero{background-image:linear-gradient(90deg,#000d,#0006),url('/assets/lsu/images/hero-mobile.webp')}.coaching-steps{grid-template-columns:1fr}.coaching-steps article{border-right:0;border-bottom:1px solid #ffffff24}} | |
| 28 | ||
| 12 | 29 | .coaching-page .accent{color:var(--lsu-red)} |
| 13 | 30 | .coaching-page .coaching-body>*+*{margin-top:clamp(56px,7vw,104px)} |
| 14 | 31 | .coaching-page .coaching-head{display:flex;flex-direction:column;gap:18px;max-width:65ch} |
| @@ -1,1 +1,12 @@ | ||
| 1 | 1 | .accent.lsu-scope-home{color:var(--lsu-red)}.hero.lsu-scope-home{position:relative;height:auto;min-height:100svh;overflow:hidden;display:flex;align-items:flex-end}.hero-photo.lsu-scope-home{position:absolute;inset:-8% 0 32%;background-image:url(/assets/lsu/images/hero-desktop.webp);background-size:cover;background-position:50% 35%;filter:brightness(.85)}@media(max-width:900px){.hero-photo.lsu-scope-home{background-image:url(/assets/lsu/images/hero-mobile.webp);background-position:50% 30%}}.rig.lsu-scope-home{position:absolute;inset:-20% 0;pointer-events:none;mix-blend-mode:screen}.rig-core.lsu-scope-home{opacity:.85;animation:lsuTorch 7.4s ease-in-out infinite}.rig-streak.lsu-scope-home{opacity:.8;animation:lsuTorch 5.6s ease-in-out infinite}.rig-mid.lsu-scope-home{opacity:.75;animation:lsuTorch 8.8s ease-in-out infinite}.rig-haze.lsu-scope-home{opacity:.7;animation:lsuTorch 10.6s ease-in-out infinite}.glow.lsu-scope-home,.ray.lsu-scope-home,.streak.lsu-scope-home,.mid.lsu-scope-home,.haze.lsu-scope-home{position:absolute;left:0;top:0;width:10px;height:10px;transform:translate(-50%,-50%)}.glow.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fffdf6c7,#fff7e142 30%,#fff0cd0f 62%,#0000);filter:blur(4px)}.ray.lsu-scope-home{-webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.9) 0%,rgba(0,0,0,.35) 34%,rgba(0,0,0,0) 66%);mask-image:radial-gradient(circle,#000000e6,#00000059 34%,#0000 66%);filter:blur(1.2px)}.streak.lsu-scope-home{height:3px;background:linear-gradient(90deg,#0000,#fff8e429 32%,#fffcf466,#fff8e429 68%,#0000);filter:blur(2px)}.mid.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fff9e838,#fff4d812 40%,#0000);filter:blur(9px)}.haze.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fff6dc24,#fff2d20a 48%,#0000);filter:blur(22px)}.rain.lsu-scope-home{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}.rain-back.lsu-scope-home{opacity:.9;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.95) 0%,rgba(0,0,0,.8) 55%,rgba(0,0,0,.55) 100%);mask-image:linear-gradient(to bottom,#000000f2,#000c 55%,#0000008c)}.rain-front.lsu-scope-home{z-index:4;filter:blur(1.2px);opacity:.5}@media(max-width:900px){.rain-front.lsu-scope-home{filter:none}}.hero-vignette.lsu-scope-home{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 10%,#0000,#0000008c 55%,#000000f5)}.hero-foot.lsu-scope-home{position:absolute;left:0;right:0;bottom:0;height:40%;pointer-events:none;z-index:2;background:linear-gradient(to bottom,#0000,#0000004d 45%,#000000bf 78%,#000)}.hero-mist.lsu-scope-home{position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 45% at 22% 78%,#becddc29,#0000 70%),radial-gradient(50% 40% at 76% 66%,#becddc1f,#0000 70%);animation:lsuMist 17s ease-in-out infinite alternate;mix-blend-mode:screen}.hero-flash.lsu-scope-home{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#d2e1f01a,#0000 55%);animation:lsuFlash 14s linear infinite;mix-blend-mode:screen}.hero-copy.lsu-scope-home{position:relative;z-index:3;width:100%;max-width:calc(var(--lsu-max) + 2 * var(--lsu-pad-x));margin-inline:auto;padding:clamp(96px,12vh,140px) var(--lsu-pad-x) 56px;display:flex;flex-direction:column;gap:28px}.hero-live.lsu-scope-home{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--lsu-red);text-shadow:0 1px 14px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.8)}.hero-dot.lsu-scope-home{width:8px;height:8px;border-radius:50%;background:var(--lsu-red);animation:lsuPulse 2.4s ease-in-out infinite;flex:0 0 auto}.hero-copy.lsu-scope-home h1.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(24px,8vw,190px);line-height:1.05;letter-spacing:.02em;text-transform:uppercase;max-width:1100px;white-space:nowrap}.hero-copy.lsu-scope-home h1.lsu-scope-home .hero-kicker.lsu-scope-home{display:block;margin-bottom:26px;font-family:var(--lsu-body);line-height:1.4;white-space:normal;color:#ffffffb8;text-shadow:0 1px 14px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.8)}.hero-base.lsu-scope-home{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px;border-top:1px solid var(--lsu-line);padding-top:26px}.hero-base.lsu-scope-home p.lsu-scope-home{margin:0;max-width:480px;font-size:18px;line-height:1.6;color:#ffffffb8}.hero-actions.lsu-scope-home{display:flex;gap:14px;flex-wrap:wrap}@media(max-width:1080px){.hero-actions.lsu-scope-home{display:none}}.marquee-band.lsu-scope-home{position:relative;z-index:4;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft);border-bottom:1px solid var(--lsu-line-soft);overflow:hidden}.marquee.lsu-scope-home{display:flex;gap:56px;padding:16px 0;white-space:nowrap;font-family:var(--lsu-display);font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:#ffffff73;width:max-content;animation:lsuMarquee 60s linear infinite;will-change:transform}.marquee.lsu-scope-home>.lsu-scope-home{flex:none}@keyframes lsuMarquee{to{transform:translate(-50%)}}.marquee.lsu-scope-home .slash.lsu-scope-home{color:var(--lsu-red)}.lapscroll.lsu-scope-home{position:relative;background:var(--lsu-black)}.lap-inner.lsu-scope-home{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;padding-block:clamp(40px,5vw,72px)}.lap-photo.lsu-scope-home{position:absolute;inset:-10% 0;background-image:url(/assets/lsu/images/rappid-65.webp);background-size:cover;background-position:center;filter:grayscale(1) contrast(1.2) brightness(.3);opacity:.5}.lap-scrim.lsu-scope-home{position:absolute;inset:0;background:linear-gradient(to bottom,#000000f2,#00000080 50%,#000000f2)}.lap-grid.lsu-scope-home{position:relative;z-index:2;width:100%;padding:0 var(--lsu-pad-x);display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}.lap-kicker.lsu-scope-home{margin-bottom:22px}.lap-readouts.lsu-scope-home{display:flex;align-items:flex-start;gap:24px;flex-wrap:wrap}.seg.lsu-scope-home{position:relative;display:inline-block}.seg-ghost.lsu-scope-home{color:#ffffff14}.seg-live.lsu-scope-home{position:absolute;left:0;top:0;color:var(--lsu-white);text-shadow:0 0 16px rgba(255,255,255,.5),0 0 52px rgba(255,255,255,.2)}.seg-ghost.lsu-scope-home,.seg-live.lsu-scope-home{font-family:var(--lsu-seg);font-variant-numeric:tabular-nums}.seg-ghost-red.lsu-scope-home{color:#ff2a1a17}.seg-live-red.lsu-scope-home{color:var(--lsu-seg-red);text-shadow:0 0 18px rgba(255,42,26,.75),0 0 60px rgba(255,42,26,.35)}.seg-lap.lsu-scope-home{font-size:min(16vw,168px,18vh);line-height:.9}.seg-live.lsu-scope-home.seg-lap{inset:0}.seg-clock.lsu-scope-home{font-size:clamp(24px,3vw,46px);line-height:1;white-space:nowrap}.seg-live.lsu-scope-home.seg-clock{text-shadow:0 0 14px rgba(255,42,26,.7)}.seg-souls.lsu-scope-home{font-size:clamp(52px,7.5vw,110px);line-height:1}.seg-km.lsu-scope-home{font-size:clamp(30px,4vw,58px);line-height:1;white-space:nowrap}.seg-live.lsu-scope-home.seg-km{text-shadow:0 0 14px rgba(255,255,255,.45),0 0 44px rgba(255,255,255,.18)}.seg-unit.lsu-scope-home{font-family:var(--lsu-body);font-size:.35em;letter-spacing:.2em;color:var(--lsu-dim-2)}.seg-label.lsu-scope-home{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#ffffff52;margin-bottom:8px}.seg-label-red.lsu-scope-home{color:#ff2a1aa6}.lap-elapsed.lsu-scope-home{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,42,26,.25);display:flex;align-items:baseline;gap:12px}.lap-elapsed.lsu-scope-home .seg-label.lsu-scope-home{margin-bottom:0;color:#ff2a1a99}.lap-side.lsu-scope-home{padding-top:14px;display:flex;flex-direction:column;gap:18px}.lap-meta.lsu-scope-home{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#ffffff52;text-shadow:0 0 10px rgba(255,255,255,.15)}.lap-meta-live.lsu-scope-home{color:#ffffffd9;text-shadow:0 0 10px rgba(255,255,255,.25)}.attr.lsu-scope-home{margin-top:34px}.attr-head.lsu-scope-home{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:#ffffff4d;margin-bottom:8px}.attr.lsu-scope-home canvas.lsu-scope-home{cursor:crosshair;display:block;width:100%;height:44px;filter:drop-shadow(0 0 8px rgba(255,255,255,.28)) drop-shadow(0 0 5px rgba(255,42,26,.3))}.lap-copy.lsu-scope-home{display:flex;flex-direction:column;gap:26px}.lap-copy.lsu-scope-home p.lsu-scope-home{white-space:pre-line}.lap-copy.lsu-scope-home h2.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(34px,4.2vw,62px);line-height:1.05;text-transform:uppercase;letter-spacing:.02em}.lap-copy.lsu-scope-home p.lsu-scope-home{margin:0;font-size:18px;line-height:1.6;color:var(--lsu-dim-2);max-width:430px;min-height:116px}.lap-facts.lsu-scope-home{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--lsu-line);border:1px solid var(--lsu-line)}.lap-facts.lsu-scope-home>div.lsu-scope-home{background:var(--lsu-black);padding:20px 22px}.lap-fact-l.lsu-scope-home{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#ffffff4d;margin-bottom:8px}.lap-fact-v.lsu-scope-home{font-family:var(--lsu-display);font-size:22px;text-transform:uppercase}.y87scroll.lsu-scope-home{position:relative;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft)}.y87-sticky.lsu-scope-home{position:relative;min-height:62vh;overflow:hidden;display:flex;align-items:flex-start;justify-content:flex-start;padding:clamp(56px,8vh,80px) 0 clamp(40px,14vh,140px)}.y87-bg.lsu-scope-home{position:absolute;inset:0}.y87-poster.lsu-scope-home{position:absolute;inset:0;background-image:url(/assets/lsu/images/yard87-poster.jpg);background-size:cover;background-position:38% 30%}.y87-vid.lsu-scope-home{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 30%}.y87-top.lsu-scope-home{position:absolute;inset:0;background:linear-gradient(to bottom,#000000d9,#0000 30% 68%,#00000080)}.y87-shell.lsu-scope-home{position:relative;width:100%;padding:0 var(--lsu-pad-x);display:flex;justify-content:center}.y87-col.lsu-scope-home{width:100%;max-width:var(--lsu-max);display:flex;flex-direction:column;gap:clamp(18px,2.6vh,28px)}.y87-stage.lsu-scope-home{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.y87-chapter.lsu-scope-home{display:flex;flex-direction:column;gap:10px;padding:20px;background:#0000008c;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(3px)}.y87-chapter.lsu-scope-home h2.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(20px,2.2vw,30px);line-height:1;text-transform:uppercase;text-shadow:0 2px 30px rgba(0,0,0,.9)}.y87-chapter.lsu-scope-home p.lsu-scope-home{margin:0;font-size:14px;line-height:1.55;color:var(--lsu-dim-1);text-shadow:0 1px 12px rgba(0,0,0,.8)}@media(max-width:900px){.y87-stage.lsu-scope-home{grid-template-columns:1fr 1fr}.y87-vid.lsu-scope-home{object-position:42% 30%}.y87-poster.lsu-scope-home{background-position:42% 30%}}@media(max-width:560px){.y87-stage.lsu-scope-home{grid-template-columns:1fr}}.recap.lsu-scope-home{position:relative;padding:clamp(66px,8.6vw,120px) var(--lsu-pad-x);background:var(--lsu-black)}.recap-head.lsu-scope-home{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px 30px;margin-bottom:52px;border-bottom:1px solid var(--lsu-line);padding-bottom:22px}.recap-title.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(38px,5.5vw,84px);line-height:1.05;text-transform:uppercase}.recap-meta.lsu-scope-home{display:flex;flex-direction:column;align-items:flex-end;gap:14px;padding-bottom:8px}.recap-sub.lsu-scope-home{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-dim-2)}.recap-link.lsu-scope-home{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-red);border-bottom:1px solid var(--lsu-red);padding-bottom:4px}.recap-link.lsu-scope-home:hover{color:var(--lsu-white);border-color:var(--lsu-white)}.carousel-track.lsu-scope-home{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}.carousel-track.lsu-scope-home::-webkit-scrollbar{display:none}.carousel-track.lsu-scope-home:focus-visible{outline:2px solid var(--lsu-red);outline-offset:4px}.carousel-slide.lsu-scope-home{flex:0 0 calc((100% - 40px) / 3);scroll-snap-align:start;aspect-ratio:3 / 4;overflow:hidden}.carousel-slide.lsu-scope-home img.lsu-scope-home{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.carousel-nav.lsu-scope-home{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:26px}.carousel-btn.lsu-scope-home{width:56px;height:56px;border:1px solid var(--lsu-line);background:transparent;color:var(--lsu-white);font-size:22px;cursor:pointer}.carousel-btn.lsu-scope-home:hover:not(:disabled){background:var(--lsu-red);border-color:var(--lsu-red);color:var(--lsu-white)}.carousel-btn.lsu-scope-home:disabled{opacity:.3;cursor:default}.carousel-count.lsu-scope-home{min-width:5ch;text-align:center;font-family:var(--lsu-mono);font-size:13px;letter-spacing:.16em;color:var(--lsu-dim-2)}@media(max-width:1000px){.carousel-slide.lsu-scope-home{flex-basis:calc((100% - 20px)/2)}}@media(max-width:640px){.carousel-slide.lsu-scope-home{flex-basis:100%}.carousel-track.lsu-scope-home{gap:12px}}@media(max-width:900px){.recap-head.lsu-scope-home>div.lsu-scope-home{align-items:flex-start}}.duelscroll.lsu-scope-home{position:relative;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft)}.duel-sticky.lsu-scope-home{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;padding-block:clamp(40px,5vw,72px)}.duel-bg.lsu-scope-home{position:absolute;inset:-26% 0;background-image:url(/assets/lsu/images/rappid-13-1080.webp);background-size:cover;background-position:center 30%;opacity:.22;filter:grayscale(1) contrast(1.15);will-change:transform}.duel-scrim.lsu-scope-home{position:absolute;inset:0;background:radial-gradient(90% 75% at 50% 46%,#00000052,#000000e6),linear-gradient(to bottom,#000000e6,#0003 26% 72%,#000000eb)}.duel-shell.lsu-scope-home{position:relative;width:100%;max-width:var(--lsu-max);margin:0 auto;padding:0 var(--lsu-pad-x)}.duel-kicker.lsu-scope-home{margin-bottom:18px}.duel-title.lsu-scope-home{margin-bottom:46px}.duel-bars.lsu-scope-home{display:flex;flex-direction:column;gap:38px}.duel-head.lsu-scope-home{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:16px;flex-wrap:wrap}.duel-id.lsu-scope-home{display:flex;align-items:baseline;gap:16px}.duel-ed.lsu-scope-home{font-family:var(--lsu-display);font-size:20px;text-transform:uppercase;color:#ffffffd9}.duel-ed-2.lsu-scope-home{color:var(--lsu-red)}.duel-km.lsu-scope-home{font-family:var(--lsu-seg);font-size:15px;color:var(--lsu-dim-1)}.duel-km-2.lsu-scope-home{color:var(--lsu-red)}.duel-unit.lsu-scope-home{font-family:var(--lsu-mono);font-size:12px;letter-spacing:.12em}.duel-note.lsu-scope-home{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-dim-3)}.duel-track.lsu-scope-home{position:relative;height:34px;background:#ffffff12}.duel-fill.lsu-scope-home{position:absolute;left:0;top:0;bottom:0;width:0%}.duel-fill-1.lsu-scope-home{background:#ffffffd9}.duel-fill-2.lsu-scope-home{background:var(--lsu-red)}.duel-yard.lsu-scope-home{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-family:var(--lsu-seg);font-size:18px}.duel-yard-1.lsu-scope-home{color:#000;mix-blend-mode:difference;filter:invert(1)}.duel-yard-2.lsu-scope-home{color:var(--lsu-white);text-shadow:0 0 10px rgba(0,0,0,.6)}.duel-mark.lsu-scope-home{position:relative;height:0}.duel-mark-line.lsu-scope-home{position:absolute;left:95.74%;top:-152px;width:1px;height:170px;background:#ff2a1a80}.duel-mark-label.lsu-scope-home{position:absolute;left:95.74%;top:22px;transform:translate(-100%);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#ff2a1acc;white-space:nowrap;padding-right:8px}.duel-text.lsu-scope-home{margin:6px 0 0;max-width:560px;font-size:16px;line-height:1.6;color:var(--lsu-dim-2);min-height:52px}.attr-band.lsu-scope-home .band-bg.lsu-scope-home{inset:-8% 0;background-image:url(/assets/lsu/images/statement-1080.webp);background-size:cover;background-position:center 44%;filter:brightness(.6)}@media(max-width:760px){.attr-band.lsu-scope-home .band-bg.lsu-scope-home{background-image:url(/assets/lsu/images/statement-720.webp);background-position:center 30%}}.attr-band.lsu-scope-home .band-scrim.lsu-scope-home{background:linear-gradient(to top,#000000d9,#00000026 60%,#00000040)}.attr-band.lsu-scope-home .band-copy.lsu-scope-home{align-self:flex-end;padding-bottom:clamp(24px,5vw,64px)}.attr-band.lsu-scope-home{height:85vh;min-height:480px}.attr-copy.lsu-scope-home{font-size:clamp(28px,3.8vw,56px);letter-spacing:.02em}@media(max-width:760px){.lap-inner.lsu-scope-home{min-height:0}.lap-facts.lsu-scope-home{display:none}.lap-readouts.lsu-scope-home{gap:16px}.lap-side.lsu-scope-home{flex-direction:row;align-items:baseline;gap:26px;padding-top:6px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.rig.lsu-scope-home,.hero-mist.lsu-scope-home,.hero-flash.lsu-scope-home,.hero-dot.lsu-scope-home{animation:none}} |
| 2 | ||
| 3 | /* Moved out of stx-site.css, which every route downloads and none of these | |
| 4 | can match: the duel bars and the deferral hints belong to this page. */ | |
| 5 | .duel-fill-1.lsu-scope-home{width:71.28%} | |
| 6 | .duel-fill-2.lsu-scope-home{width:100%} | |
| 7 | /* Let the browser defer distant story panels and their background photos. | |
| 8 | Explicitly sized bands keep their authored height. Story panels remember | |
| 9 | their measured height after their first visit; one viewport reserves space | |
| 10 | before they approach the viewport. Unsupported browsers render normally. */ | |
| 11 | .lapscroll.lsu-scope-home,.duelscroll.lsu-scope-home{content-visibility:auto;contain-intrinsic-block-size:auto 100svh} | |
| 12 | .attr-band.lsu-scope-home{content-visibility:auto} | |
| @@ -1,1 +1,5 @@ | ||
| 1 | 1 | .enter.lsu-scope-next-loop{position:relative;min-height:640px;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}.enter-bg.lsu-scope-next-loop{position:absolute;inset:-20% 0;background-image:url(/assets/lsu/images/rappid-20.webp);background-size:cover;background-position:center 40%;filter:grayscale(1) brightness(.45)}.enter-scrim.lsu-scope-next-loop{position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 50%,#00000059,#000000f2)}.enter-copy.lsu-scope-next-loop{position:relative;z-index:3;text-align:center;padding:0 var(--lsu-pad-x);display:flex;flex-direction:column;align-items:center;gap:30px}.seg.lsu-scope-next-loop{position:relative;display:inline-block}.seg-ghost.lsu-scope-next-loop,.seg-live.lsu-scope-next-loop{font-family:var(--lsu-seg);font-variant-numeric:tabular-nums;font-size:clamp(56px,12vw,160px);line-height:1;white-space:nowrap}.seg-ghost.lsu-scope-next-loop{color:#ffffff14}.seg-live.lsu-scope-next-loop{position:absolute;left:0;top:0;color:var(--lsu-white);text-shadow:0 0 16px rgba(255,255,255,.5),0 0 52px rgba(255,255,255,.2)}.enter-sub.lsu-scope-next-loop{margin-top:-18px;font:13px var(--lsu-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--lsu-dim-1)}.enter-title.lsu-scope-next-loop{margin:0;font-family:var(--lsu-display);font-size:clamp(44px,8vw,132px);line-height:1;letter-spacing:.02em;text-transform:uppercase}.enter-copy.lsu-scope-next-loop p.lsu-scope-next-loop{margin:0;max-width:560px;font-size:17px;line-height:1.6;color:#ffffffb8} |
| 2 | ||
| 3 | /* Moved out of stx-site.css: this sheet is loaded by the two pages that | |
| 4 | have an .enter band, and no others. */ | |
| 5 | .enter.lsu-scope-next-loop{content-visibility:auto} | |
| @@ -1,18 +1,1 @@ | ||
| 1 | .lsu-skip{position:fixed;left:1rem;top:-5rem;z-index:200;background:#fff;color:#000;padding:1rem}.lsu-skip:focus{top:1rem}main:focus{outline:none}.nav-links{gap:clamp(12px,1.6vw,28px)}.coaching-hero{position:relative;padding:clamp(140px,18vw,240px) clamp(18px,5vw,40px) 100px;background:linear-gradient(90deg,#000e,#0003),url('/assets/lsu/images/hero-desktop.webp') 50% 35%/cover}.coaching-hero h1{max-width:13ch;font:400 clamp(48px,8vw,120px)/1.05 var(--lsu-display);text-transform:uppercase;letter-spacing:.02em;margin:24px 0}.coaching-hero p{max-width:54ch;color:#ffffffb3;font:400 19px/1.6 var(--lsu-body)}.coaching-body{max-width:1360px;margin:auto;padding:clamp(50px,7vw,100px) clamp(18px,5vw,40px)}.coaching-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;margin:3rem 0}.coaching-steps article{padding:2rem;border-right:1px solid #ffffff24}.coaching-steps article:last-child{border:0}.coaching-steps h2{font:400 30px/1.2 var(--lsu-display);text-transform:uppercase}.coaching-steps p{color:#ffffffa6;line-height:1.7}.coaching-note{padding:2rem;border-left:3px solid var(--lsu-red);background:#0d0d0f}.coaching-note h2{font:400 36px var(--lsu-display);text-transform:uppercase}.coaching-note p{max-width:65ch;color:#ffffffa6;line-height:1.7}.race-portal{max-width:720px;margin:auto;padding:clamp(24px,5vw,64px);border:1px solid #ffffff24;background:#0d0d0f}.race-portal label{display:block;font:600 12px var(--lsu-body);text-transform:uppercase;letter-spacing:.12em;margin:1rem 0 .5rem}.race-portal input,.race-portal textarea,.race-portal select{display:block;width:100%;padding:1rem;background:#050505;border:1px solid #ffffff40;color:#fff;font:inherit}.race-portal .btn{margin-top:1.5rem}.race-portal [role=alert]{color:#ff928f}.race-portal h2{font:400 36px var(--lsu-display);text-transform:uppercase}.race-portal p{line-height:1.65}.race-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.race-tabs button{background:transparent;color:#fff;border:0;border-bottom:2px solid #ffffff40;padding:.75rem;cursor:pointer}.race-tabs button[aria-selected=true]{border-color:#dd0f15}.race-portal .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lsu-scroll-gallery{overflow:auto;scroll-snap-type:x mandatory}.lsu-scroll-gallery>*{scroll-snap-align:start}@media(max-width:700px){.coaching-hero{background-image:linear-gradient(90deg,#000d,#0006),url('/assets/lsu/images/hero-mobile.webp')}.coaching-steps{grid-template-columns:1fr}.coaching-steps article{border-right:0;border-bottom:1px solid #ffffff24}.race-portal .field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}} | |
| 2 | ||
| 3 | .lsu-globe-stage{position:relative;width:100%;height:100%;min-height:420px}.lsu-globe-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.lsu-event-dot{display:block;width:14px;height:14px;border-radius:50%;background:#dd0f15;border:2px solid white;box-shadow:0 0 0 6px #dd0f1540}.ts-map{background:transparent}.lsu-globe-stage .ts-map{position:absolute;inset:0}.lsu-globe-stage:has([data-ts-map])>.lsu-globe-fallback{visibility:hidden} | |
| 4 | ||
| 5 | .hour-dial .rest-ring{width:100%;height:auto;aspect-ratio:1;transform:rotate(-90deg)} | |
| 6 | ||
| 7 | .duel-fill-1.lsu-scope-home{width:71.28%}.duel-fill-2.lsu-scope-home{width:100%} | |
| 8 | @supports(animation-timeline:view()){.duelscroll{view-timeline-name:--duel;view-timeline-axis:block}.duel-fill{transform-origin:left;animation:lsu-grow linear both;animation-timeline:--duel;animation-range:entry 20% exit 65%}@keyframes lsu-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}} | |
| 9 | @media(prefers-reduced-motion:reduce){.duel-fill{animation:none}} | |
| 10 | ||
| 11 | .lsu-host-dialog[data-stx-dialog]{z-index:200}.lsu-host-dialog .sr-dialog{color:var(--lsu-white,#fff);background:#080808;padding:0;border:1px solid #333;border-radius:0} | |
| 12 | ||
| 13 | /* Let the browser defer distant story panels and their background photos. | |
| 14 | Explicitly sized bands keep their authored height. Story panels remember | |
| 15 | their measured height after their first visit; one viewport reserves space | |
| 16 | before they approach the viewport. Unsupported browsers render normally. */ | |
| 17 | .lapscroll.lsu-scope-home,.duelscroll.lsu-scope-home{content-visibility:auto;contain-intrinsic-block-size:auto 100svh} | |
| 18 | .attr-band.lsu-scope-home,.enter.lsu-scope-next-loop{content-visibility:auto} | |
| 1 | .lsu-skip{position:fixed;left:1rem;top:-5rem;z-index:200;background:#fff;color:#000;padding:1rem}.lsu-skip:focus{top:1rem}main:focus{outline:none}.nav-links{gap:clamp(12px,1.6vw,28px)}.race-portal{max-width:720px;margin:auto;padding:clamp(24px,5vw,64px);border:1px solid #ffffff24;background:#0d0d0f}.race-portal label{display:block;font:600 12px var(--lsu-body);text-transform:uppercase;letter-spacing:.12em;margin:1rem 0 .5rem}.race-portal input,.race-portal textarea,.race-portal select{display:block;width:100%;padding:1rem;background:#050505;border:1px solid #ffffff40;color:#fff;font:inherit}.race-portal .btn{margin-top:1.5rem}.race-portal [role=alert]{color:#ff928f}.race-portal h2{font:400 36px var(--lsu-display);text-transform:uppercase}.race-portal p{line-height:1.65}.race-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.race-tabs button{background:transparent;color:#fff;border:0;border-bottom:2px solid #ffffff40;padding:.75rem;cursor:pointer}.race-tabs button[aria-selected=true]{border-color:#dd0f15}.race-portal .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lsu-scroll-gallery{overflow:auto;scroll-snap-type:x mandatory}.lsu-scroll-gallery>*{scroll-snap-align:start}@media(max-width:700px){.race-portal .field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.lsu-globe-stage{position:relative;width:100%;height:100%;min-height:420px}.lsu-globe-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.lsu-event-dot{display:block;width:14px;height:14px;border-radius:50%;background:#dd0f15;border:2px solid white;box-shadow:0 0 0 6px #dd0f1540}.ts-map{background:transparent}.lsu-globe-stage .ts-map{position:absolute;inset:0}.lsu-globe-stage:has([data-ts-map])>.lsu-globe-fallback{visibility:hidden}.hour-dial .rest-ring{width:100%;height:auto;aspect-ratio:1;transform:rotate(-90deg)}@supports(animation-timeline:view()){.duelscroll{view-timeline-name:--duel;view-timeline-axis:block}.duel-fill{transform-origin:left;animation:lsu-grow linear both;animation-timeline:--duel;animation-range:entry 20% exit 65%}@keyframes lsu-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}}@media(prefers-reduced-motion:reduce){.duel-fill{animation:none}}.lsu-host-dialog[data-stx-dialog]{z-index:200}.lsu-host-dialog .sr-dialog{color:var(--lsu-white,#fff);background:#080808;padding:0;border:1px solid #333;border-radius:0} | |
| @@ -9,6 +9,23 @@ | ||
| 9 | 9 | exists per page in base.css, which is why the old hero's red words |
| 10 | 10 | rendered white. */ |
| 11 | 11 | |
| 12 | /* Unscoped, and kept that way: the scoped rules below build on these - the | |
| 13 | hero h1 takes its family, case and tracking from here and overrides only | |
| 14 | the size. They came across from stx-site.css with the rest of the page. */ | |
| 15 | .coaching-hero{position:relative;padding:clamp(140px,18vw,240px) clamp(18px,5vw,40px) 100px;background:linear-gradient(90deg,#000e,#0003),url('/assets/lsu/images/hero-desktop.webp') 50% 35%/cover} | |
| 16 | .coaching-hero h1{max-width:13ch;font:400 clamp(48px,8vw,120px)/1.05 var(--lsu-display);text-transform:uppercase;letter-spacing:.02em;margin:24px 0} | |
| 17 | .coaching-hero p{max-width:54ch;color:#ffffffb3;font:400 19px/1.6 var(--lsu-body)} | |
| 18 | .coaching-body{max-width:1360px;margin:auto;padding:clamp(50px,7vw,100px) clamp(18px,5vw,40px)} | |
| 19 | .coaching-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;margin:3rem 0} | |
| 20 | .coaching-steps article{padding:2rem;border-right:1px solid #ffffff24} | |
| 21 | .coaching-steps article:last-child{border:0} | |
| 22 | .coaching-steps h2{font:400 30px/1.2 var(--lsu-display);text-transform:uppercase} | |
| 23 | .coaching-steps p{color:#ffffffa6;line-height:1.7} | |
| 24 | .coaching-note{padding:2rem;border-left:3px solid var(--lsu-red);background:#0d0d0f} | |
| 25 | .coaching-note h2{font:400 36px var(--lsu-display);text-transform:uppercase} | |
| 26 | .coaching-note p{max-width:65ch;color:#ffffffa6;line-height:1.7} | |
| 27 | @media(max-width:700px){.coaching-hero{background-image:linear-gradient(90deg,#000d,#0006),url('/assets/lsu/images/hero-mobile.webp')}.coaching-steps{grid-template-columns:1fr}.coaching-steps article{border-right:0;border-bottom:1px solid #ffffff24}} | |
| 28 | ||
| 12 | 29 | .coaching-page .accent{color:var(--lsu-red)} |
| 13 | 30 | .coaching-page .coaching-body>*+*{margin-top:clamp(56px,7vw,104px)} |
| 14 | 31 | .coaching-page .coaching-head{display:flex;flex-direction:column;gap:18px;max-width:65ch} |
| @@ -1,1 +1,12 @@ | ||
| 1 | 1 | .accent.lsu-scope-home{color:var(--lsu-red)}.hero.lsu-scope-home{position:relative;height:auto;min-height:100svh;overflow:hidden;display:flex;align-items:flex-end}.hero-photo.lsu-scope-home{position:absolute;inset:-8% 0 32%;background-image:url(/assets/lsu/images/hero-desktop.webp);background-size:cover;background-position:50% 35%;filter:brightness(.85)}@media(max-width:900px){.hero-photo.lsu-scope-home{background-image:url(/assets/lsu/images/hero-mobile.webp);background-position:50% 30%}}.rig.lsu-scope-home{position:absolute;inset:-20% 0;pointer-events:none;mix-blend-mode:screen}.rig-core.lsu-scope-home{opacity:.85;animation:lsuTorch 7.4s ease-in-out infinite}.rig-streak.lsu-scope-home{opacity:.8;animation:lsuTorch 5.6s ease-in-out infinite}.rig-mid.lsu-scope-home{opacity:.75;animation:lsuTorch 8.8s ease-in-out infinite}.rig-haze.lsu-scope-home{opacity:.7;animation:lsuTorch 10.6s ease-in-out infinite}.glow.lsu-scope-home,.ray.lsu-scope-home,.streak.lsu-scope-home,.mid.lsu-scope-home,.haze.lsu-scope-home{position:absolute;left:0;top:0;width:10px;height:10px;transform:translate(-50%,-50%)}.glow.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fffdf6c7,#fff7e142 30%,#fff0cd0f 62%,#0000);filter:blur(4px)}.ray.lsu-scope-home{-webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.9) 0%,rgba(0,0,0,.35) 34%,rgba(0,0,0,0) 66%);mask-image:radial-gradient(circle,#000000e6,#00000059 34%,#0000 66%);filter:blur(1.2px)}.streak.lsu-scope-home{height:3px;background:linear-gradient(90deg,#0000,#fff8e429 32%,#fffcf466,#fff8e429 68%,#0000);filter:blur(2px)}.mid.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fff9e838,#fff4d812 40%,#0000);filter:blur(9px)}.haze.lsu-scope-home{border-radius:50%;background:radial-gradient(circle,#fff6dc24,#fff2d20a 48%,#0000);filter:blur(22px)}.rain.lsu-scope-home{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}.rain-back.lsu-scope-home{opacity:.9;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.95) 0%,rgba(0,0,0,.8) 55%,rgba(0,0,0,.55) 100%);mask-image:linear-gradient(to bottom,#000000f2,#000c 55%,#0000008c)}.rain-front.lsu-scope-home{z-index:4;filter:blur(1.2px);opacity:.5}@media(max-width:900px){.rain-front.lsu-scope-home{filter:none}}.hero-vignette.lsu-scope-home{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 10%,#0000,#0000008c 55%,#000000f5)}.hero-foot.lsu-scope-home{position:absolute;left:0;right:0;bottom:0;height:40%;pointer-events:none;z-index:2;background:linear-gradient(to bottom,#0000,#0000004d 45%,#000000bf 78%,#000)}.hero-mist.lsu-scope-home{position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 45% at 22% 78%,#becddc29,#0000 70%),radial-gradient(50% 40% at 76% 66%,#becddc1f,#0000 70%);animation:lsuMist 17s ease-in-out infinite alternate;mix-blend-mode:screen}.hero-flash.lsu-scope-home{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#d2e1f01a,#0000 55%);animation:lsuFlash 14s linear infinite;mix-blend-mode:screen}.hero-copy.lsu-scope-home{position:relative;z-index:3;width:100%;max-width:calc(var(--lsu-max) + 2 * var(--lsu-pad-x));margin-inline:auto;padding:clamp(96px,12vh,140px) var(--lsu-pad-x) 56px;display:flex;flex-direction:column;gap:28px}.hero-live.lsu-scope-home{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--lsu-red);text-shadow:0 1px 14px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.8)}.hero-dot.lsu-scope-home{width:8px;height:8px;border-radius:50%;background:var(--lsu-red);animation:lsuPulse 2.4s ease-in-out infinite;flex:0 0 auto}.hero-copy.lsu-scope-home h1.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(24px,8vw,190px);line-height:1.05;letter-spacing:.02em;text-transform:uppercase;max-width:1100px;white-space:nowrap}.hero-copy.lsu-scope-home h1.lsu-scope-home .hero-kicker.lsu-scope-home{display:block;margin-bottom:26px;font-family:var(--lsu-body);line-height:1.4;white-space:normal;color:#ffffffb8;text-shadow:0 1px 14px rgba(0,0,0,.95),0 0 4px rgba(0,0,0,.8)}.hero-base.lsu-scope-home{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:32px;border-top:1px solid var(--lsu-line);padding-top:26px}.hero-base.lsu-scope-home p.lsu-scope-home{margin:0;max-width:480px;font-size:18px;line-height:1.6;color:#ffffffb8}.hero-actions.lsu-scope-home{display:flex;gap:14px;flex-wrap:wrap}@media(max-width:1080px){.hero-actions.lsu-scope-home{display:none}}.marquee-band.lsu-scope-home{position:relative;z-index:4;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft);border-bottom:1px solid var(--lsu-line-soft);overflow:hidden}.marquee.lsu-scope-home{display:flex;gap:56px;padding:16px 0;white-space:nowrap;font-family:var(--lsu-display);font-size:15px;letter-spacing:.24em;text-transform:uppercase;color:#ffffff73;width:max-content;animation:lsuMarquee 60s linear infinite;will-change:transform}.marquee.lsu-scope-home>.lsu-scope-home{flex:none}@keyframes lsuMarquee{to{transform:translate(-50%)}}.marquee.lsu-scope-home .slash.lsu-scope-home{color:var(--lsu-red)}.lapscroll.lsu-scope-home{position:relative;background:var(--lsu-black)}.lap-inner.lsu-scope-home{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;padding-block:clamp(40px,5vw,72px)}.lap-photo.lsu-scope-home{position:absolute;inset:-10% 0;background-image:url(/assets/lsu/images/rappid-65.webp);background-size:cover;background-position:center;filter:grayscale(1) contrast(1.2) brightness(.3);opacity:.5}.lap-scrim.lsu-scope-home{position:absolute;inset:0;background:linear-gradient(to bottom,#000000f2,#00000080 50%,#000000f2)}.lap-grid.lsu-scope-home{position:relative;z-index:2;width:100%;padding:0 var(--lsu-pad-x);display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}.lap-kicker.lsu-scope-home{margin-bottom:22px}.lap-readouts.lsu-scope-home{display:flex;align-items:flex-start;gap:24px;flex-wrap:wrap}.seg.lsu-scope-home{position:relative;display:inline-block}.seg-ghost.lsu-scope-home{color:#ffffff14}.seg-live.lsu-scope-home{position:absolute;left:0;top:0;color:var(--lsu-white);text-shadow:0 0 16px rgba(255,255,255,.5),0 0 52px rgba(255,255,255,.2)}.seg-ghost.lsu-scope-home,.seg-live.lsu-scope-home{font-family:var(--lsu-seg);font-variant-numeric:tabular-nums}.seg-ghost-red.lsu-scope-home{color:#ff2a1a17}.seg-live-red.lsu-scope-home{color:var(--lsu-seg-red);text-shadow:0 0 18px rgba(255,42,26,.75),0 0 60px rgba(255,42,26,.35)}.seg-lap.lsu-scope-home{font-size:min(16vw,168px,18vh);line-height:.9}.seg-live.lsu-scope-home.seg-lap{inset:0}.seg-clock.lsu-scope-home{font-size:clamp(24px,3vw,46px);line-height:1;white-space:nowrap}.seg-live.lsu-scope-home.seg-clock{text-shadow:0 0 14px rgba(255,42,26,.7)}.seg-souls.lsu-scope-home{font-size:clamp(52px,7.5vw,110px);line-height:1}.seg-km.lsu-scope-home{font-size:clamp(30px,4vw,58px);line-height:1;white-space:nowrap}.seg-live.lsu-scope-home.seg-km{text-shadow:0 0 14px rgba(255,255,255,.45),0 0 44px rgba(255,255,255,.18)}.seg-unit.lsu-scope-home{font-family:var(--lsu-body);font-size:.35em;letter-spacing:.2em;color:var(--lsu-dim-2)}.seg-label.lsu-scope-home{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#ffffff52;margin-bottom:8px}.seg-label-red.lsu-scope-home{color:#ff2a1aa6}.lap-elapsed.lsu-scope-home{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,42,26,.25);display:flex;align-items:baseline;gap:12px}.lap-elapsed.lsu-scope-home .seg-label.lsu-scope-home{margin-bottom:0;color:#ff2a1a99}.lap-side.lsu-scope-home{padding-top:14px;display:flex;flex-direction:column;gap:18px}.lap-meta.lsu-scope-home{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#ffffff52;text-shadow:0 0 10px rgba(255,255,255,.15)}.lap-meta-live.lsu-scope-home{color:#ffffffd9;text-shadow:0 0 10px rgba(255,255,255,.25)}.attr.lsu-scope-home{margin-top:34px}.attr-head.lsu-scope-home{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:#ffffff4d;margin-bottom:8px}.attr.lsu-scope-home canvas.lsu-scope-home{cursor:crosshair;display:block;width:100%;height:44px;filter:drop-shadow(0 0 8px rgba(255,255,255,.28)) drop-shadow(0 0 5px rgba(255,42,26,.3))}.lap-copy.lsu-scope-home{display:flex;flex-direction:column;gap:26px}.lap-copy.lsu-scope-home p.lsu-scope-home{white-space:pre-line}.lap-copy.lsu-scope-home h2.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(34px,4.2vw,62px);line-height:1.05;text-transform:uppercase;letter-spacing:.02em}.lap-copy.lsu-scope-home p.lsu-scope-home{margin:0;font-size:18px;line-height:1.6;color:var(--lsu-dim-2);max-width:430px;min-height:116px}.lap-facts.lsu-scope-home{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--lsu-line);border:1px solid var(--lsu-line)}.lap-facts.lsu-scope-home>div.lsu-scope-home{background:var(--lsu-black);padding:20px 22px}.lap-fact-l.lsu-scope-home{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:#ffffff4d;margin-bottom:8px}.lap-fact-v.lsu-scope-home{font-family:var(--lsu-display);font-size:22px;text-transform:uppercase}.y87scroll.lsu-scope-home{position:relative;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft)}.y87-sticky.lsu-scope-home{position:relative;min-height:62vh;overflow:hidden;display:flex;align-items:flex-start;justify-content:flex-start;padding:clamp(56px,8vh,80px) 0 clamp(40px,14vh,140px)}.y87-bg.lsu-scope-home{position:absolute;inset:0}.y87-poster.lsu-scope-home{position:absolute;inset:0;background-image:url(/assets/lsu/images/yard87-poster.jpg);background-size:cover;background-position:38% 30%}.y87-vid.lsu-scope-home{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 30%}.y87-top.lsu-scope-home{position:absolute;inset:0;background:linear-gradient(to bottom,#000000d9,#0000 30% 68%,#00000080)}.y87-shell.lsu-scope-home{position:relative;width:100%;padding:0 var(--lsu-pad-x);display:flex;justify-content:center}.y87-col.lsu-scope-home{width:100%;max-width:var(--lsu-max);display:flex;flex-direction:column;gap:clamp(18px,2.6vh,28px)}.y87-stage.lsu-scope-home{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.y87-chapter.lsu-scope-home{display:flex;flex-direction:column;gap:10px;padding:20px;background:#0000008c;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(3px)}.y87-chapter.lsu-scope-home h2.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(20px,2.2vw,30px);line-height:1;text-transform:uppercase;text-shadow:0 2px 30px rgba(0,0,0,.9)}.y87-chapter.lsu-scope-home p.lsu-scope-home{margin:0;font-size:14px;line-height:1.55;color:var(--lsu-dim-1);text-shadow:0 1px 12px rgba(0,0,0,.8)}@media(max-width:900px){.y87-stage.lsu-scope-home{grid-template-columns:1fr 1fr}.y87-vid.lsu-scope-home{object-position:42% 30%}.y87-poster.lsu-scope-home{background-position:42% 30%}}@media(max-width:560px){.y87-stage.lsu-scope-home{grid-template-columns:1fr}}.recap.lsu-scope-home{position:relative;padding:clamp(66px,8.6vw,120px) var(--lsu-pad-x);background:var(--lsu-black)}.recap-head.lsu-scope-home{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px 30px;margin-bottom:52px;border-bottom:1px solid var(--lsu-line);padding-bottom:22px}.recap-title.lsu-scope-home{margin:0;font-family:var(--lsu-display);font-size:clamp(38px,5.5vw,84px);line-height:1.05;text-transform:uppercase}.recap-meta.lsu-scope-home{display:flex;flex-direction:column;align-items:flex-end;gap:14px;padding-bottom:8px}.recap-sub.lsu-scope-home{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-dim-2)}.recap-link.lsu-scope-home{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-red);border-bottom:1px solid var(--lsu-red);padding-bottom:4px}.recap-link.lsu-scope-home:hover{color:var(--lsu-white);border-color:var(--lsu-white)}.carousel-track.lsu-scope-home{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain}.carousel-track.lsu-scope-home::-webkit-scrollbar{display:none}.carousel-track.lsu-scope-home:focus-visible{outline:2px solid var(--lsu-red);outline-offset:4px}.carousel-slide.lsu-scope-home{flex:0 0 calc((100% - 40px) / 3);scroll-snap-align:start;aspect-ratio:3 / 4;overflow:hidden}.carousel-slide.lsu-scope-home img.lsu-scope-home{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.carousel-nav.lsu-scope-home{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:26px}.carousel-btn.lsu-scope-home{width:56px;height:56px;border:1px solid var(--lsu-line);background:transparent;color:var(--lsu-white);font-size:22px;cursor:pointer}.carousel-btn.lsu-scope-home:hover:not(:disabled){background:var(--lsu-red);border-color:var(--lsu-red);color:var(--lsu-white)}.carousel-btn.lsu-scope-home:disabled{opacity:.3;cursor:default}.carousel-count.lsu-scope-home{min-width:5ch;text-align:center;font-family:var(--lsu-mono);font-size:13px;letter-spacing:.16em;color:var(--lsu-dim-2)}@media(max-width:1000px){.carousel-slide.lsu-scope-home{flex-basis:calc((100% - 20px)/2)}}@media(max-width:640px){.carousel-slide.lsu-scope-home{flex-basis:100%}.carousel-track.lsu-scope-home{gap:12px}}@media(max-width:900px){.recap-head.lsu-scope-home>div.lsu-scope-home{align-items:flex-start}}.duelscroll.lsu-scope-home{position:relative;background:var(--lsu-black);border-top:1px solid var(--lsu-line-soft)}.duel-sticky.lsu-scope-home{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:flex-start;padding-block:clamp(40px,5vw,72px)}.duel-bg.lsu-scope-home{position:absolute;inset:-26% 0;background-image:url(/assets/lsu/images/rappid-13-1080.webp);background-size:cover;background-position:center 30%;opacity:.22;filter:grayscale(1) contrast(1.15);will-change:transform}.duel-scrim.lsu-scope-home{position:absolute;inset:0;background:radial-gradient(90% 75% at 50% 46%,#00000052,#000000e6),linear-gradient(to bottom,#000000e6,#0003 26% 72%,#000000eb)}.duel-shell.lsu-scope-home{position:relative;width:100%;max-width:var(--lsu-max);margin:0 auto;padding:0 var(--lsu-pad-x)}.duel-kicker.lsu-scope-home{margin-bottom:18px}.duel-title.lsu-scope-home{margin-bottom:46px}.duel-bars.lsu-scope-home{display:flex;flex-direction:column;gap:38px}.duel-head.lsu-scope-home{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:16px;flex-wrap:wrap}.duel-id.lsu-scope-home{display:flex;align-items:baseline;gap:16px}.duel-ed.lsu-scope-home{font-family:var(--lsu-display);font-size:20px;text-transform:uppercase;color:#ffffffd9}.duel-ed-2.lsu-scope-home{color:var(--lsu-red)}.duel-km.lsu-scope-home{font-family:var(--lsu-seg);font-size:15px;color:var(--lsu-dim-1)}.duel-km-2.lsu-scope-home{color:var(--lsu-red)}.duel-unit.lsu-scope-home{font-family:var(--lsu-mono);font-size:12px;letter-spacing:.12em}.duel-note.lsu-scope-home{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--lsu-dim-3)}.duel-track.lsu-scope-home{position:relative;height:34px;background:#ffffff12}.duel-fill.lsu-scope-home{position:absolute;left:0;top:0;bottom:0;width:0%}.duel-fill-1.lsu-scope-home{background:#ffffffd9}.duel-fill-2.lsu-scope-home{background:var(--lsu-red)}.duel-yard.lsu-scope-home{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-family:var(--lsu-seg);font-size:18px}.duel-yard-1.lsu-scope-home{color:#000;mix-blend-mode:difference;filter:invert(1)}.duel-yard-2.lsu-scope-home{color:var(--lsu-white);text-shadow:0 0 10px rgba(0,0,0,.6)}.duel-mark.lsu-scope-home{position:relative;height:0}.duel-mark-line.lsu-scope-home{position:absolute;left:95.74%;top:-152px;width:1px;height:170px;background:#ff2a1a80}.duel-mark-label.lsu-scope-home{position:absolute;left:95.74%;top:22px;transform:translate(-100%);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:#ff2a1acc;white-space:nowrap;padding-right:8px}.duel-text.lsu-scope-home{margin:6px 0 0;max-width:560px;font-size:16px;line-height:1.6;color:var(--lsu-dim-2);min-height:52px}.attr-band.lsu-scope-home .band-bg.lsu-scope-home{inset:-8% 0;background-image:url(/assets/lsu/images/statement-1080.webp);background-size:cover;background-position:center 44%;filter:brightness(.6)}@media(max-width:760px){.attr-band.lsu-scope-home .band-bg.lsu-scope-home{background-image:url(/assets/lsu/images/statement-720.webp);background-position:center 30%}}.attr-band.lsu-scope-home .band-scrim.lsu-scope-home{background:linear-gradient(to top,#000000d9,#00000026 60%,#00000040)}.attr-band.lsu-scope-home .band-copy.lsu-scope-home{align-self:flex-end;padding-bottom:clamp(24px,5vw,64px)}.attr-band.lsu-scope-home{height:85vh;min-height:480px}.attr-copy.lsu-scope-home{font-size:clamp(28px,3.8vw,56px);letter-spacing:.02em}@media(max-width:760px){.lap-inner.lsu-scope-home{min-height:0}.lap-facts.lsu-scope-home{display:none}.lap-readouts.lsu-scope-home{gap:16px}.lap-side.lsu-scope-home{flex-direction:row;align-items:baseline;gap:26px;padding-top:6px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.rig.lsu-scope-home,.hero-mist.lsu-scope-home,.hero-flash.lsu-scope-home,.hero-dot.lsu-scope-home{animation:none}} |
| 2 | ||
| 3 | /* Moved out of stx-site.css, which every route downloads and none of these | |
| 4 | can match: the duel bars and the deferral hints belong to this page. */ | |
| 5 | .duel-fill-1.lsu-scope-home{width:71.28%} | |
| 6 | .duel-fill-2.lsu-scope-home{width:100%} | |
| 7 | /* Let the browser defer distant story panels and their background photos. | |
| 8 | Explicitly sized bands keep their authored height. Story panels remember | |
| 9 | their measured height after their first visit; one viewport reserves space | |
| 10 | before they approach the viewport. Unsupported browsers render normally. */ | |
| 11 | .lapscroll.lsu-scope-home,.duelscroll.lsu-scope-home{content-visibility:auto;contain-intrinsic-block-size:auto 100svh} | |
| 12 | .attr-band.lsu-scope-home{content-visibility:auto} | |
| @@ -1,1 +1,5 @@ | ||
| 1 | 1 | .enter.lsu-scope-next-loop{position:relative;min-height:640px;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}.enter-bg.lsu-scope-next-loop{position:absolute;inset:-20% 0;background-image:url(/assets/lsu/images/rappid-20.webp);background-size:cover;background-position:center 40%;filter:grayscale(1) brightness(.45)}.enter-scrim.lsu-scope-next-loop{position:absolute;inset:0;background:radial-gradient(80% 70% at 50% 50%,#00000059,#000000f2)}.enter-copy.lsu-scope-next-loop{position:relative;z-index:3;text-align:center;padding:0 var(--lsu-pad-x);display:flex;flex-direction:column;align-items:center;gap:30px}.seg.lsu-scope-next-loop{position:relative;display:inline-block}.seg-ghost.lsu-scope-next-loop,.seg-live.lsu-scope-next-loop{font-family:var(--lsu-seg);font-variant-numeric:tabular-nums;font-size:clamp(56px,12vw,160px);line-height:1;white-space:nowrap}.seg-ghost.lsu-scope-next-loop{color:#ffffff14}.seg-live.lsu-scope-next-loop{position:absolute;left:0;top:0;color:var(--lsu-white);text-shadow:0 0 16px rgba(255,255,255,.5),0 0 52px rgba(255,255,255,.2)}.enter-sub.lsu-scope-next-loop{margin-top:-18px;font:13px var(--lsu-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--lsu-dim-1)}.enter-title.lsu-scope-next-loop{margin:0;font-family:var(--lsu-display);font-size:clamp(44px,8vw,132px);line-height:1;letter-spacing:.02em;text-transform:uppercase}.enter-copy.lsu-scope-next-loop p.lsu-scope-next-loop{margin:0;max-width:560px;font-size:17px;line-height:1.6;color:#ffffffb8} |
| 2 | ||
| 3 | /* Moved out of stx-site.css: this sheet is loaded by the two pages that | |
| 4 | have an .enter band, and no others. */ | |
| 5 | .enter.lsu-scope-next-loop{content-visibility:auto} | |
| @@ -1,18 +1,1 @@ | ||
| 1 | .lsu-skip{position:fixed;left:1rem;top:-5rem;z-index:200;background:#fff;color:#000;padding:1rem}.lsu-skip:focus{top:1rem}main:focus{outline:none}.nav-links{gap:clamp(12px,1.6vw,28px)}.coaching-hero{position:relative;padding:clamp(140px,18vw,240px) clamp(18px,5vw,40px) 100px;background:linear-gradient(90deg,#000e,#0003),url('/assets/lsu/images/hero-desktop.webp') 50% 35%/cover}.coaching-hero h1{max-width:13ch;font:400 clamp(48px,8vw,120px)/1.05 var(--lsu-display);text-transform:uppercase;letter-spacing:.02em;margin:24px 0}.coaching-hero p{max-width:54ch;color:#ffffffb3;font:400 19px/1.6 var(--lsu-body)}.coaching-body{max-width:1360px;margin:auto;padding:clamp(50px,7vw,100px) clamp(18px,5vw,40px)}.coaching-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;margin:3rem 0}.coaching-steps article{padding:2rem;border-right:1px solid #ffffff24}.coaching-steps article:last-child{border:0}.coaching-steps h2{font:400 30px/1.2 var(--lsu-display);text-transform:uppercase}.coaching-steps p{color:#ffffffa6;line-height:1.7}.coaching-note{padding:2rem;border-left:3px solid var(--lsu-red);background:#0d0d0f}.coaching-note h2{font:400 36px var(--lsu-display);text-transform:uppercase}.coaching-note p{max-width:65ch;color:#ffffffa6;line-height:1.7}.race-portal{max-width:720px;margin:auto;padding:clamp(24px,5vw,64px);border:1px solid #ffffff24;background:#0d0d0f}.race-portal label{display:block;font:600 12px var(--lsu-body);text-transform:uppercase;letter-spacing:.12em;margin:1rem 0 .5rem}.race-portal input,.race-portal textarea,.race-portal select{display:block;width:100%;padding:1rem;background:#050505;border:1px solid #ffffff40;color:#fff;font:inherit}.race-portal .btn{margin-top:1.5rem}.race-portal [role=alert]{color:#ff928f}.race-portal h2{font:400 36px var(--lsu-display);text-transform:uppercase}.race-portal p{line-height:1.65}.race-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.race-tabs button{background:transparent;color:#fff;border:0;border-bottom:2px solid #ffffff40;padding:.75rem;cursor:pointer}.race-tabs button[aria-selected=true]{border-color:#dd0f15}.race-portal .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lsu-scroll-gallery{overflow:auto;scroll-snap-type:x mandatory}.lsu-scroll-gallery>*{scroll-snap-align:start}@media(max-width:700px){.coaching-hero{background-image:linear-gradient(90deg,#000d,#0006),url('/assets/lsu/images/hero-mobile.webp')}.coaching-steps{grid-template-columns:1fr}.coaching-steps article{border-right:0;border-bottom:1px solid #ffffff24}.race-portal .field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}} | |
| 2 | ||
| 3 | .lsu-globe-stage{position:relative;width:100%;height:100%;min-height:420px}.lsu-globe-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.lsu-event-dot{display:block;width:14px;height:14px;border-radius:50%;background:#dd0f15;border:2px solid white;box-shadow:0 0 0 6px #dd0f1540}.ts-map{background:transparent}.lsu-globe-stage .ts-map{position:absolute;inset:0}.lsu-globe-stage:has([data-ts-map])>.lsu-globe-fallback{visibility:hidden} | |
| 4 | ||
| 5 | .hour-dial .rest-ring{width:100%;height:auto;aspect-ratio:1;transform:rotate(-90deg)} | |
| 6 | ||
| 7 | .duel-fill-1.lsu-scope-home{width:71.28%}.duel-fill-2.lsu-scope-home{width:100%} | |
| 8 | @supports(animation-timeline:view()){.duelscroll{view-timeline-name:--duel;view-timeline-axis:block}.duel-fill{transform-origin:left;animation:lsu-grow linear both;animation-timeline:--duel;animation-range:entry 20% exit 65%}@keyframes lsu-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}} | |
| 9 | @media(prefers-reduced-motion:reduce){.duel-fill{animation:none}} | |
| 10 | ||
| 11 | .lsu-host-dialog[data-stx-dialog]{z-index:200}.lsu-host-dialog .sr-dialog{color:var(--lsu-white,#fff);background:#080808;padding:0;border:1px solid #333;border-radius:0} | |
| 12 | ||
| 13 | /* Let the browser defer distant story panels and their background photos. | |
| 14 | Explicitly sized bands keep their authored height. Story panels remember | |
| 15 | their measured height after their first visit; one viewport reserves space | |
| 16 | before they approach the viewport. Unsupported browsers render normally. */ | |
| 17 | .lapscroll.lsu-scope-home,.duelscroll.lsu-scope-home{content-visibility:auto;contain-intrinsic-block-size:auto 100svh} | |
| 18 | .attr-band.lsu-scope-home,.enter.lsu-scope-next-loop{content-visibility:auto} | |
| 1 | .lsu-skip{position:fixed;left:1rem;top:-5rem;z-index:200;background:#fff;color:#000;padding:1rem}.lsu-skip:focus{top:1rem}main:focus{outline:none}.nav-links{gap:clamp(12px,1.6vw,28px)}.race-portal{max-width:720px;margin:auto;padding:clamp(24px,5vw,64px);border:1px solid #ffffff24;background:#0d0d0f}.race-portal label{display:block;font:600 12px var(--lsu-body);text-transform:uppercase;letter-spacing:.12em;margin:1rem 0 .5rem}.race-portal input,.race-portal textarea,.race-portal select{display:block;width:100%;padding:1rem;background:#050505;border:1px solid #ffffff40;color:#fff;font:inherit}.race-portal .btn{margin-top:1.5rem}.race-portal [role=alert]{color:#ff928f}.race-portal h2{font:400 36px var(--lsu-display);text-transform:uppercase}.race-portal p{line-height:1.65}.race-tabs{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}.race-tabs button{background:transparent;color:#fff;border:0;border-bottom:2px solid #ffffff40;padding:.75rem;cursor:pointer}.race-tabs button[aria-selected=true]{border-color:#dd0f15}.race-portal .field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.lsu-scroll-gallery{overflow:auto;scroll-snap-type:x mandatory}.lsu-scroll-gallery>*{scroll-snap-align:start}@media(max-width:700px){.race-portal .field-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.lsu-globe-stage{position:relative;width:100%;height:100%;min-height:420px}.lsu-globe-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.lsu-event-dot{display:block;width:14px;height:14px;border-radius:50%;background:#dd0f15;border:2px solid white;box-shadow:0 0 0 6px #dd0f1540}.ts-map{background:transparent}.lsu-globe-stage .ts-map{position:absolute;inset:0}.lsu-globe-stage:has([data-ts-map])>.lsu-globe-fallback{visibility:hidden}.hour-dial .rest-ring{width:100%;height:auto;aspect-ratio:1;transform:rotate(-90deg)}@supports(animation-timeline:view()){.duelscroll{view-timeline-name:--duel;view-timeline-axis:block}.duel-fill{transform-origin:left;animation:lsu-grow linear both;animation-timeline:--duel;animation-range:entry 20% exit 65%}@keyframes lsu-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}}@media(prefers-reduced-motion:reduce){.duel-fill{animation:none}}.lsu-host-dialog[data-stx-dialog]{z-index:200}.lsu-host-dialog .sr-dialog{color:var(--lsu-white,#fff);background:#080808;padding:0;border:1px solid #333;border-radius:0} | |
| @@ -0,0 +1,43 @@ | ||
| 1 | import { describe, expect, it } from 'bun:test' | |
| 2 | import { readdirSync } from 'node:fs' | |
| 3 | ||
| 4 | /** | |
| 5 | * stx-site.css is the one sheet every route downloads. It drifted into being | |
| 6 | * the place page-specific rules went, and 7 of its 11.5 KB ended up being | |
| 7 | * /coaching rules served to twenty-four pages that cannot match them. | |
| 8 | */ | |
| 9 | ||
| 10 | const siteWide = await Bun.file('resources/assets/styles/site/stx-site.css').text() | |
| 11 | ||
| 12 | /** Selectors a rule can be keyed on, one per top-level rule. */ | |
| 13 | function selectors(css: string): string[] { | |
| 14 | return [...css.matchAll(/(^|[}\n])([^{}@][^{}]*)\{/g)] | |
| 15 | .flatMap(match => match[2]!.split(',')) | |
| 16 | .map(selector => selector.trim()) | |
| 17 | .filter(Boolean) | |
| 18 | } | |
| 19 | ||
| 20 | describe('the sheet every page downloads', () => { | |
| 21 | it('carries nothing keyed to one page', () => { | |
| 22 | // Page sheets live beside it and are named for their route. | |
| 23 | const pages = readdirSync('resources/assets/styles/site') | |
| 24 | .filter(name => name.endsWith('.css') && !['base.css', 'stx-site.css'].includes(name)) | |
| 25 | .map(name => name.slice(0, -'.css'.length)) | |
| 26 | ||
| 27 | const offenders = selectors(siteWide).filter(selector => | |
| 28 | pages.some(page => selector.includes(`.${page}-`) || selector.includes(`.lsu-scope-${page}`))) | |
| 29 | ||
| 30 | expect(offenders).toEqual([]) | |
| 31 | }) | |
| 32 | ||
| 33 | it('stays small enough to be worth sending everywhere', () => { | |
| 34 | expect(siteWide.length).toBeLessThan(5000) | |
| 35 | }) | |
| 36 | ||
| 37 | it('still carries what every page needs', () => { | |
| 38 | // The skip link, the shared portal chrome, and the one global motion rule. | |
| 39 | expect(siteWide).toContain('.lsu-skip') | |
| 40 | expect(siteWide).toContain('.race-portal') | |
| 41 | expect(siteWide).toContain('prefers-reduced-motion') | |
| 42 | }) | |
| 43 | }) | |