/* Local race opening. Short comic headlines, readable personal radio copy. */
body.sw-clean #dsRace[data-race-opening] .race-start-grid{
 position:relative;isolation:isolate;overflow:hidden;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:28px;padding:26px 28px 24px;
 background-color:#153453;
 background-image:radial-gradient(ellipse at 75% 15%,#376b9066,transparent 65%),repeating-linear-gradient(115deg,transparent 0 45px,#fff5db06 46px 48px,transparent 49px 78px),url('/assets/tactic-contours-v1.svg');
 background-size:auto,auto,cover;
}
body.sw-clean #dsRace[data-race-opening] .race-start-grid::before{
 content:'';position:absolute;inset:0 auto 0 -25%;width:18%;z-index:-1;pointer-events:none;
 background:linear-gradient(90deg,transparent,#d2eeff12,transparent);transform:skewX(-20deg);
 animation:race-start-sweep .85s cubic-bezier(.2,.6,.3,1) both;
}
body.sw-clean #dsRace[data-race-opening] .race-start-grid .ds-headline{
 display:flex;align-items:center;gap:16px;margin:14px 0 19px;padding:0 5px 4px 0;overflow:visible;
 font:italic 900 clamp(42px,5.6vw,68px)/1.06 var(--arc-shout,'SW Arcade',Arial,sans-serif)!important;
 color:#ffe400!important;letter-spacing:.015em!important;text-shadow:2px 3px #071226!important;
 -webkit-text-stroke:1.2px #071226!important;paint-order:stroke fill;text-wrap:nowrap;
 animation:race-start-punch .48s cubic-bezier(.16,.9,.25,1.12) both;
}
.race-start-flag{display:block;flex:none;width:44px;height:31px;transform:rotate(-8deg) skewX(-8deg);border:2px solid #071226;border-bottom:4px solid #071226;box-shadow:3px 3px #ee3344;background:repeating-conic-gradient(#fff5db 0 25%,#071226 0 50%) 0/14px 14px}
body.sw-clean #dsRace[data-race-opening] .race-start-quote{
 width:auto;max-width:100%;margin:0 5px 0 0;padding:17px 22px 19px;border:2px solid #071226;border-left:6px solid #ffe400;border-radius:3px;
 box-shadow:5px 5px #b72236;background:#fff5db url('/assets/newsprint-fibres-v1.svg') center/400px;
 animation:race-radio-arrive .55s cubic-bezier(.2,.8,.2,1) both;
}
body.sw-clean #dsRace[data-race-opening] .race-start-quote .ds-eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:9px;color:#982336;font:700 13px/1.3 var(--arc-label)}
body.sw-clean #dsRace[data-race-opening] .race-start-quote .race-start-shout{
 font:italic 900 clamp(29px,3.5vw,42px)/1.12 var(--arc-shout,'SW Arcade',Arial,sans-serif)!important;
 color:#0c1b32!important;letter-spacing:.01em!important;text-shadow:none!important;-webkit-text-stroke:0!important;
 margin:0 0 9px;overflow-wrap:normal;
}
.race-start-shout span{white-space:nowrap}
body.sw-clean #dsRace[data-race-opening] .race-start-quote .race-start-line{
 font:700 clamp(21px,2.1vw,25px)/1.4 var(--arc-label,'SW Condensed',Arial,sans-serif)!important;
 color:#213b54!important;letter-spacing:0!important;text-shadow:none!important;-webkit-text-stroke:0!important;
 margin:0;overflow-wrap:anywhere;
}
body.sw-clean #dsRace[data-race-opening] .race-start-line strong{color:#0c1b32;font:inherit!important}
.race-radio-wave{display:flex;align-items:center;gap:2px;height:15px;flex:none}
.race-radio-wave i{width:3px;height:7px;background:currentColor;animation:race-radio-level .7s ease-in-out 4 alternate}
.race-radio-wave i:nth-child(2n){height:14px;animation-delay:-.3s}
.race-radio-wave i:nth-child(3){height:11px;animation-delay:-.5s}
body.sw-clean #dsRace[data-race-opening] .race-drive-note{font:700 17px/1.4 var(--arc-label)!important;color:#fff5db;margin:17px 0 0;letter-spacing:.02em}
body.sw-clean #dsRace[data-race-opening] .race-drive-art{border:2px solid #071226;border-bottom:4px solid #ffe400;box-shadow:4px 4px #071226;transform:rotate(1deg);min-height:245px}
body.sw-clean #dsRace[data-race-opening][data-paused=true] :is(.ds-headline,.race-start-quote,.race-radio-wave i),body.sw-clean #dsRace[data-race-opening][data-paused=true] .race-start-grid::before{animation-play-state:paused}
@keyframes race-start-punch{from{transform:translateX(-18px) scale(.94)}70%{transform:translateX(2px) scale(1.015)}to{transform:none}}
@keyframes race-radio-arrive{from{transform:translateY(13px) rotate(-1deg)}to{transform:none}}
@keyframes race-start-sweep{to{left:115%}}
@keyframes race-radio-level{to{transform:scaleY(.5)}}
@media(max-width:620px){
 body.sw-clean #dsRace[data-race-opening] .race-start-grid{grid-template-columns:minmax(0,1fr);padding:18px 16px 20px;gap:16px}
 body.sw-clean #dsRace[data-race-opening] .race-start-grid .ds-headline{font-size:46px!important;gap:13px;margin:11px 0 16px}
 .race-start-flag{width:35px;height:26px;background-size:12px 12px}
 body.sw-clean #dsRace[data-race-opening] .race-start-quote{padding:14px 15px 16px}
 body.sw-clean #dsRace[data-race-opening] .race-start-quote .race-start-shout{font-size:31px!important;line-height:1.16!important}
 body.sw-clean #dsRace[data-race-opening] .race-start-quote .race-start-line{font-size:22px!important;line-height:1.4!important}
}
@media(prefers-reduced-motion:reduce){
 body.sw-clean #dsRace[data-race-opening] :is(.ds-headline,.race-start-quote,.race-radio-wave i),body.sw-clean #dsRace[data-race-opening] .race-start-grid::before{animation:none!important;transform:none}
 body.sw-clean #dsRace[data-race-opening] .race-start-grid::before{display:none}
}
