/* America / Charlie Challenge pages */
.usa-hero{background:linear-gradient(160deg,#0b1d3a 0%,#1b2f5e 55%,#7a1522 120%);color:#fff;padding:4rem 0 3rem;position:relative;overflow:hidden}
.usa-hero h1{color:#fff}.usa-hero .lead{color:#e8eefc}
.usa-hero .eyebrow{color:#ffd76a}
.stars{position:absolute;inset:0;pointer-events:none}
.stars i{position:absolute;color:#fff;opacity:.0;font-style:normal;animation:tw 4s infinite}
@keyframes tw{0%,100%{opacity:0;transform:scale(.6)}50%{opacity:.9;transform:scale(1.2)}}
.leaders{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin:1.2rem 0}
.ld{background:#fff;border-radius:14px;padding:1rem;border-top:6px solid #888;box-shadow:0 2px 10px #0002;color:#06130b}
.ld.r{border-color:#c4222f}.ld.d{border-color:#1e56b8}
.ld .av{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;margin-bottom:.5rem;background:#555}
.ld.r .av{background:#c4222f}.ld.d .av{background:#1e56b8}
.ld small{display:block;color:#456352}
.tilemap{display:grid;grid-template-columns:repeat(11,1fr);gap:4px;max-width:760px;margin:1rem auto}
.tile{aspect-ratio:1;border-radius:6px;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:#e6ebe8;color:#8a948e;border:0;cursor:default}
.tile.has{background:#c9d6cf;color:#1b3a2a;cursor:pointer}
.tile.tu{background:#f2b632;color:#2a1c00;animation:pulse 2.4s infinite}
.tile.ld2{background:#5b8be0;color:#fff;cursor:pointer}.tile.ll{background:#8fb2f0;color:#06214f;cursor:pointer}
.tile.sel{outline:3px solid #06130b}
@keyframes pulse{50%{transform:scale(1.08);box-shadow:0 0 12px #f2b632}}
.key{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;font-size:.85rem}.key b{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:4px}
#racebox{max-width:760px;margin:.8rem auto;background:#f3faf5;border-radius:12px;padding:1rem;min-height:3.5rem}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;margin:1rem 0}
.stat div{background:#fff;border-radius:12px;padding:.9rem;text-align:center;box-shadow:0 2px 8px #0002;color:#06130b}.stat b{display:block;font-size:1.8rem;font-family:Fraunces,serif}
.cc-banner{background:linear-gradient(135deg,#0b1d3a,#b01f2d);color:#fff;border-radius:18px;padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center}
.cc-banner img,.pic{width:100%;border-radius:14px}
.cc-banner h2{color:#fff}.cc-banner .btn{background:#ffd76a;color:#1b1200}
@media(max-width:760px){.cc-banner{grid-template-columns:1fr}.tilemap{gap:2px}.tile{font-size:.6rem}}
video.vid{display:block;width:100%;max-width:900px;height:auto;max-height:75vh;margin:0 auto;object-fit:contain;border-radius:14px;background:#000}
.xform{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin:1.2rem 0;font-size:3.2rem}
.xform span:nth-child(1){animation:bob 3s infinite}.xform span:nth-child(3){animation:spin 6s linear infinite}.xform span:nth-child(5){animation:bob 3s .6s infinite}
.xform em{font-style:normal;font-size:1.6rem;color:#b01f2d}
@keyframes bob{50%{transform:translateY(-10px)}}@keyframes spin{to{transform:rotate(360deg)}}
.field{position:relative;height:120px;border-radius:12px;background:repeating-linear-gradient(90deg,#2f7d3a 0 40px,#38903f 40px 80px);overflow:hidden;margin:1rem 0}
.field .ez{position:absolute;right:0;top:0;bottom:0;width:70px;background:#b01f2d;color:#fff;writing-mode:vertical-rl;text-align:center;font-weight:700;letter-spacing:.2em;display:grid;place-items:center}
.field .carry{position:absolute;left:0;top:30px;font-size:2.4rem;white-space:nowrap;animation:run 9s linear infinite}
@keyframes run{from{left:-10%}to{left:78%}}
.field .tebow{position:absolute;right:80px;top:38px;font-size:2rem}
.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;background:#fff;border-radius:12px;margin:.7rem 0;padding:1rem 1rem 1rem 3.4rem;position:relative;box-shadow:0 2px 8px #0002;color:#06130b}
.steps li:before{content:counter(s);position:absolute;left:1rem;top:.8rem;width:1.8rem;height:1.8rem;border-radius:50%;background:#b01f2d;color:#fff;display:grid;place-items:center;font-weight:700}
.src{font-size:.85rem;color:#456352}
.two{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:center}@media(max-width:760px){.two{grid-template-columns:1fr}}

/* ===== Immersive story mode (charlie-challenge.html, body.story) ===== */
.story .sprog{position:fixed;top:0;left:0;height:4px;width:0;z-index:9999;background:linear-gradient(90deg,#b01f2d,#fff,#1e56b8);box-shadow:0 0 10px #ffd76a}
.story .rail{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:900;display:flex;flex-direction:column;gap:10px}
.story .rail a{width:12px;height:12px;border-radius:50%;background:#0b1d3a55;border:2px solid #fff;box-shadow:0 0 4px #0006;position:relative;transition:.3s}
.story .rail a.on{background:#ffd76a;transform:scale(1.5);box-shadow:0 0 12px #ffd76a}
.story .rail a span{position:absolute;right:20px;top:-4px;white-space:nowrap;background:#0b1d3a;color:#fff;font-size:.72rem;padding:2px 8px;border-radius:10px;opacity:0;pointer-events:none;transition:.2s}
.story .rail a:hover span{opacity:1}
@media(max-width:760px){.story .rail{display:none}}
.story .usa-hero{min-height:92vh;display:flex;align-items:center}
.story .usa-hero .container{width:100%}
.story .usa-hero h1{font-size:clamp(2.6rem,7vw,5rem);line-height:1.02}
.story .usa-hero h1 .w{display:inline-block;animation:rise .9s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{transform:translateY(40px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.story .usa-hero .pic{animation:float 7s ease-in-out infinite;box-shadow:0 0 60px #ffd76a66,0 20px 50px #0008}
@keyframes float{50%{transform:translateY(-14px) rotate(.6deg)}}
.story .usa-hero:after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:radial-gradient(ellipse at 70% 100%,#ffd76a55,transparent 70%);pointer-events:none}
.story .scrollcue{display:inline-block;margin-top:1.4rem;color:#ffd76a;animation:bob 2s infinite;font-size:.95rem}
.story .rv{transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .9s}
.story.js .rv:not(.in){transform:translateY(46px);opacity:.02}
.story.js .rv.l:not(.in){transform:translateX(-60px)}.story.js .rv.r:not(.in){transform:translateX(60px)}
.story .pic{will-change:transform}
.story section{position:relative;overflow:hidden}
.story .chap{position:absolute;right:2%;top:-.15em;font:700 clamp(8rem,22vw,18rem)/1 Fraunces,serif;color:#0b1d3a;opacity:.06;pointer-events:none;z-index:0}
.story .container{position:relative;z-index:1}
/* chapter 2: machine glitch */
.story .machine{position:relative}
.story .machine:after{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#00000030 3px 4px);mix-blend-mode:multiply}
.story .machine .pic{animation:glitch 5s infinite}
@keyframes glitch{0%,92%,100%{transform:none;filter:none}93%{transform:translate(-5px,2px);filter:hue-rotate(60deg) saturate(2)}95%{transform:translate(5px,-2px);filter:hue-rotate(-60deg)}97%{transform:translate(-2px,0)}}
.story .scan{position:absolute;left:0;right:0;height:14%;background:linear-gradient(#0000,#ff2a3a33,#0000);animation:scan 4s linear infinite;z-index:2;pointer-events:none}
@keyframes scan{from{top:-15%}to{top:100%}}
/* chapter 3: candle glow */
.story .candle{position:relative}
.story .candle:before{content:"";position:absolute;inset:-20px;border-radius:30px;background:radial-gradient(circle at 30% 70%,#ffb94766,transparent 60%);animation:flick 2.2s infinite alternate;pointer-events:none;z-index:0}
@keyframes flick{0%{opacity:.5}30%{opacity:1}55%{opacity:.65}100%{opacity:.95}}
.story .candle .pic{position:relative;z-index:1}
/* chapter 4: dark, word-by-word reveal */
.story .dark{background:radial-gradient(ellipse at 50% 0,#1b2f5e,#07101f 70%)!important;color:#e8eefc}
.story .dark h2,.story .dark .eyebrow{color:#fff}.story .dark .eyebrow{color:#ffd76a}
.story .dark .chap{color:#fff;opacity:.05}
.story .dark .lead{color:#fff}
.story .dark p{color:#d6def2}
.story .wr span{opacity:.18;transition:opacity .5s,color .5s}
.story .wr span.lit2{opacity:1}
.story .date{display:inline-block;margin:.4rem 0 1rem;padding:.35rem .9rem;border:1px solid #ffd76a;border-radius:30px;color:#ffd76a;letter-spacing:.12em;font-size:.85rem;animation:glow 3s infinite}
@keyframes glow{50%{box-shadow:0 0 18px #ffd76a77}}
/* chapter 5 */
.story .arise{background:linear-gradient(180deg,#07101f,#1b2f5e 40%,#b01f2d 130%)!important;color:#fff}
.story .arise h2,.story .arise .eyebrow{color:#fff}.story .arise .eyebrow{color:#ffd76a}
.story .arise p{color:#fff}.story .arise .src{color:#cfd9ef}
.story .arise h2{font-size:clamp(2rem,5vw,3.4rem)}
.story .arise .chap{color:#fff}
.story .arise video.vid{box-shadow:0 0 0 2px #ffd76a55,0 0 70px #ffd76a55}
.story .xform span{filter:drop-shadow(0 0 14px #ffd76a)}
.story .sunrise{position:absolute;left:50%;bottom:-40%;width:90vw;height:90vw;max-width:1100px;max-height:1100px;transform:translateX(-50%);background:radial-gradient(circle,#ffd76a99,#ff8a3d33 40%,transparent 68%);pointer-events:none;animation:rise2 8s ease-in-out infinite alternate;z-index:0}
@keyframes rise2{to{transform:translateX(-50%) translateY(-12%) scale(1.1)}}
/* chapter 6 */
.story .cc-banner{box-shadow:0 0 60px #b01f2d66;animation:breathe 4s ease-in-out infinite}
@keyframes breathe{50%{box-shadow:0 0 90px #ffd76a66}}
.story .cc-banner .btn{animation:pulse 2.4s infinite}
.story .bigcount{display:flex;gap:2rem;flex-wrap:wrap;margin:1.4rem 0}
.story .bigcount div{text-align:center}.story .bigcount b{display:block;font:700 2.6rem Fraunces,serif;color:#ffd76a}
@media(prefers-reduced-motion:reduce){.story *{animation:none!important;transition:none!important}.story.js .rv:not(.in){transform:none;opacity:1}}

/* Immersive video hero (charlie-challenge) */
.story .usa-hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.story .usa-hero .hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#0b1d3aee 0%,#0b1d3a99 45%,#0b1d3a33 100%),linear-gradient(0deg,#0b1d3acc,transparent 40%)}
.story .usa-hero .stars,.story .usa-hero .container{position:relative;z-index:2}
.story .usa-hero .stars{position:absolute}
@media(max-width:700px){.story .usa-hero .hero-shade{background:#0b1d3acc}}

/* Section spacing (charlie-challenge) */
.story section.plain,.story section.band{padding:6rem 0}
.story section.band.dark,.story section.arise{padding:6.5rem 0}
.story section.arise{margin-top:0;border-top:1px solid #ffd76a33}
.story .container>h2,.story .container h2{margin-bottom:1.2rem}
.story .eyebrow{margin-bottom:.8rem}
.story .container p{margin:0 0 1.3rem;line-height:1.7}
.story .two{gap:3.5rem}
.story .container .lead{margin-bottom:1.8rem}
.story .arise video.vid,.story .arise .xform{margin-top:2rem;margin-bottom:1rem}
.story .usa-hero{min-height:min(100vh,760px)}
@media(max-width:760px){.story section.plain,.story section.band{padding:4rem 0}.story .two{gap:2rem}}

/* CTA banner spacing */
.cc-banner{padding:2.75rem;gap:2.5rem}
.cc-banner .eyebrow{margin:0 0 .9rem}
.cc-banner h2{margin:0 0 1.1rem;line-height:1.2}
.cc-banner p{margin:0 0 1.4rem;line-height:1.65}
.cc-banner p:last-child{margin:1.8rem 0 0}
@media(max-width:760px){.cc-banner{padding:1.75rem;gap:1.75rem}}

/* Mobile: no sideways scroll, visible link buttons */
html,body{overflow-x:hidden;max-width:100%}
.story section,.story .container{max-width:100%}
.m-links{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;padding:1.6rem 1rem;background:#0b1d3a}
.m-links a{display:inline-block;padding:.8rem 1.3rem;border-radius:100px;background:#ffd76a;color:#0b1d3a;font-weight:700;text-decoration:none;font-size:.95rem}
.m-links a.alt{background:#fff}
@media(max-width:760px){.m-links a{flex:1 1 100%;text-align:center}}
