/* The campaign composition is scoped to the landing; result/admin pages keep their layout. */
.landing-shell{position:relative;width:100%;max-width:1200px;margin:0 auto;border-radius:0;box-shadow:none;overflow:visible;background:#002b60}
.landing-shell>main{background:#f1f9ff}
.landing-shell>.brand-header{position:absolute;z-index:3;inset:12px 16px auto;min-height:60px;padding:8px 12px;gap:10px;border:0;border-radius:16px;background:#fffffff5}
.landing-shell .brand{flex:1 1 138px;max-width:165px;min-height:44px;align-items:center}
.landing-shell .sponsor{flex:0 0 auto;padding-left:10px;border-left:1px solid #b9d2ef;font-size:clamp(8px,2.3vw,11px);line-height:1.15}
.landing-shell .partners{min-height:0;padding-left:10px;gap:10px;margin-left:0}
.landing-shell .partners picture{display:flex;align-items:center}
.landing-shell .partners img{width:auto;height:42px;max-width:42px;object-fit:contain}
.landing-shell .hero{position:relative;display:flex;flex-direction:column;justify-content:normal;height:auto;background:#f1f9ff;overflow:visible;border-radius:0;isolation:isolate}
.landing-shell .hero::before{display:none}
.landing-shell .hero-transition{display:none}
/* Keep the horizon below the copy even when small screens wrap its description. */
.landing-shell .hero-media{position:relative;aspect-ratio:944/1280;min-height:clamp(500px,150vw,580px)}
.landing-shell .hero-picture{position:absolute;inset:0;z-index:0;display:block;aspect-ratio:auto;border-radius:0 0 50% 50% / 0 0 6% 6%;overflow:clip;background:#98d5ff;mask-image:none}
.landing-shell .hero-picture img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top}
/* The spherical photo scales independently of the stadium's responsive crop. */
.landing-shell .hero-ball{position:absolute;z-index:1;top:64%;left:8.5%;width:30%;aspect-ratio:1;pointer-events:none}
.landing-shell .hero-ball::before{content:'';position:absolute;inset:auto 3% -1% 3%;height:15%;border-radius:50%;background:radial-gradient(ellipse,#14290785,transparent 70%)}
.landing-shell .hero-ball img{position:relative;display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}
.landing-shell .hero-content{position:absolute;inset:86px 0 auto;z-index:1;max-width:none;padding:0 32px;isolation:isolate}
.landing-shell .hero h1{margin:0;font-size:clamp(29px,9.2vw,48px);font-weight:800;line-height:1.02;letter-spacing:-1.2px}
.landing-shell .hero-content p{max-width:300px;margin:10px 0 0;font-size:clamp(16px,4.1vw,21px);line-height:1.25}
.landing-shell .hero-cta{z-index:2;align-self:stretch;width:auto;min-height:54px;margin:-54px 28px 24px;padding:14px 42px;font-size:20px;border-radius:16px;box-shadow:inset 0 2px 2px #ffffff45,0 4px 14px #0066ff20}
.landing-shell .button{background:linear-gradient(125deg,#087fff,#0060fb);box-shadow:inset 0 2px 2px #ffffff3d,0 4px 14px #0066ff16}
.landing-shell .participation-scene{position:relative;isolation:isolate;z-index:1;background:linear-gradient(#f1f9ff,#eaf5ff);border-radius:0 0 50% 50% / 0 0 2.5% 2.5%;overflow:clip}
.landing-shell .scene-picture{position:absolute;z-index:-1;inset:auto 0 48px;height:650px;display:block;pointer-events:none;mask-image:linear-gradient(transparent,#000 28%,#000 80%,transparent)}
.landing-shell .scene-picture img{width:100%;height:100%;display:block;object-fit:cover;object-position:70% 50%}
.landing-shell .mechanics{position:relative;padding:4px 16px 0;background:none}
.landing-shell .mechanics h2{margin:0;text-align:center;font-size:clamp(27px,7vw,36px);line-height:1.15;letter-spacing:-.9px}
.landing-shell .steps{position:relative;width:100%;max-width:790px;margin:18px auto 0;display:grid;grid-template-columns:1fr;gap:14px}
.landing-shell .step{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;grid-template-rows:auto;align-items:center;gap:16px;padding:16px;border-radius:20px;background:#fff;box-shadow:0 5px 24px #1074cd09}
.landing-shell .step-number{width:52px;height:52px;font-size:29px;background:linear-gradient(135deg,#e0efff,#cde6ff);color:#0050d9}
.landing-shell .step h3{margin:0;font-size:18px;line-height:1.15;letter-spacing:-.45px}
.landing-shell .step p{margin:4px 0 0;font-size:14px;line-height:1.42}
.landing-shell .step-symbol{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#f8fcff,#eaf5ff)}
.landing-shell .step-icon{display:block;grid-area:auto;width:31px;height:31px;margin:0;align-self:auto;filter:none}
.landing-shell .registration{position:relative;display:block;padding:130px 16px 30px;scroll-margin-top:28px;background:none}
.landing-shell .form-surround{position:relative;max-width:810px;margin:0 auto;padding:0;border-radius:0;background:none}
.landing-shell .form-card{padding:24px 24px 16px;border-radius:26px;background:#fff;box-shadow:0 7px 32px #1d6fba0b}
.landing-shell .form-card h2{font-size:clamp(26px,6.8vw,36px);letter-spacing:-.9px}
.landing-shell .form-subtitle{margin:8px -4px 22px;font-size:16px;line-height:1.4}
.landing-shell .email-field{margin-bottom:22px}
.landing-shell .email-field>label{font-size:15px}
.landing-shell .email-field input{height:50px;font-size:17px}
.landing-shell .consent-row{column-gap:16px}
.landing-shell .consent-row label{font-size:14px;line-height:1.5}
.landing-shell .marketing-row{margin-top:16px}
.landing-shell .submit-button{margin-top:20px;min-height:54px;border-radius:16px}
.landing-shell .form-caption{font-size:12px;margin:10px -4px 0}
.landing-shell .site-footer{position:relative;z-index:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 16px;margin-top:-30px;padding:60px 32px 24px;background:radial-gradient(ellipse at 65% 0,#07477f,#002451 75%)}
.landing-shell .footer-top{display:contents}
.landing-shell .footer-brand{grid-column:1;grid-row:1;width:100%;max-width:190px;align-self:center}
.landing-shell .footer-brand span{font-size:11px;letter-spacing:1px}
.landing-shell .socials{grid-column:2;grid-row:1;padding-left:20px;border-left:1px solid #7d9bb9}
.landing-shell .socials strong{font-size:14px}
.landing-shell .socials>div{gap:8px;margin-top:6px}
.landing-shell .social{width:44px;height:44px;position:relative}

.landing-shell .resources{grid-column:1/-1;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 0;margin:0;font-size:14px}
.landing-shell .resources strong{flex-basis:100%;margin:0}
.landing-shell .resources a+a{margin-left:16px;padding-left:16px;border-left:1px solid #7797b7}
.landing-shell .footer-legal{grid-column:1/-1;justify-content:flex-start;align-items:center;gap:12px;margin:0;padding-top:14px;font-size:12px}

@media(min-width:480px){
  .landing-shell>.brand-header{inset:14px 24px auto;min-height:76px;padding:10px 18px;gap:16px}
  .landing-shell .brand{max-width:220px}
  .landing-shell .sponsor{font-size:13px;padding-left:16px}
  .landing-shell .partners{padding-left:16px;gap:16px}
  .landing-shell .partners img{height:54px;max-width:54px}
  .landing-shell .hero-content{inset:114px 0 auto;padding:0 40px}
  .landing-shell .hero h1{font-size:clamp(44px,8.3vw,66px)}
  .landing-shell .hero-content p{font-size:clamp(20px,3.8vw,27px);max-width:470px}
  .landing-shell .hero-cta{margin-left:40px;margin-right:40px;min-height:60px;margin-top:-64px;font-size:24px}
  .landing-shell .mechanics{padding-left:24px;padding-right:24px}
  .landing-shell .step{grid-template-columns:60px minmax(0,1fr) 60px;padding:20px;gap:22px}
  .landing-shell .step-number,.landing-shell .step-symbol{width:60px;height:60px}
  .landing-shell .step h3{font-size:22px}
  .landing-shell .step p{font-size:17px}
  .landing-shell .step-icon{width:36px;height:36px}
  .landing-shell .registration{padding:160px 24px 40px}
  .landing-shell .form-card{padding:32px 36px 24px}
  .landing-shell .form-subtitle{font-size:19px}
  .landing-shell .consent-row label{font-size:16px}
  .landing-shell .site-footer{padding-left:40px;padding-right:40px}
}
@media(min-width:900px){
  .landing-shell>.brand-header{inset:12px auto auto 50%;width:min(820px,calc(100% - 100px));transform:translateX(-50%);min-height:90px;padding:8px 24px;gap:24px;background:#ffffffb8;border-radius:20px}
  .landing-shell .brand{max-width:240px;flex-basis:240px}
  .landing-shell .sponsor{font-size:16px;padding-left:20px}
  .landing-shell .partners{margin-left:auto;padding-left:24px;gap:26px}
  .landing-shell .partners img{height:74px;max-width:74px}
  .landing-shell .hero{min-height:560px;height:clamp(560px,54vw,660px);justify-content:flex-start;overflow:clip;border-radius:0;background:#aedbfa}
  .landing-shell .hero-transition{position:absolute;z-index:1;inset:auto 0 -1px;display:block;width:100%;height:clamp(90px,10vw,120px);pointer-events:none}
  .landing-shell .hero-media{position:absolute;inset:0;z-index:-1;aspect-ratio:auto;min-height:0}
  .landing-shell .hero-picture{border-radius:0;mask-image:none}
  .landing-shell .hero-picture img{object-position:center}
  .landing-shell .hero-ball{top:auto;bottom:7%;left:max(52.5%,calc(11% + 446px));width:min(17%,200px)}
  .landing-shell .hero-content{position:relative;inset:auto;max-width:690px;padding:132px 0 0 11%}
  .landing-shell .hero h1{font-size:clamp(54px,5.6vw,70px);line-height:1.02;letter-spacing:-1.8px}
  .landing-shell .hero-content p{max-width:460px;font-size:26px;line-height:1.25;margin-top:14px}
  .landing-shell .hero-cta{align-self:flex-start;width:430px;min-height:66px;margin:34px 0 80px 11%;font-size:24px}
  .landing-shell .hero .button>.icon{width:32px;height:32px}
  .landing-shell .mechanics{padding:30px 40px 0}
  .landing-shell .mechanics h2{font-size:46px}
  .landing-shell .steps{margin-top:24px;gap:16px;max-width:790px}
  .landing-shell .steps::before{content:'';position:absolute;top:50px;bottom:65px;left:60px;border-left:2px dashed #65a3e9}
  .landing-shell .step{grid-template-columns:72px minmax(0,1fr) 64px;gap:30px;padding:22px 24px;border-radius:26px}
  .landing-shell .step-number{width:72px;height:72px;font-size:38px}
  .landing-shell .step-symbol{width:64px;height:64px;background:none}
  .landing-shell .step-icon{width:44px;height:44px}
  .landing-shell .step h3{font-size:25px}
  .landing-shell .step p{font-size:20px;line-height:1.4}
  .landing-shell .scene-picture{height:970px;bottom:64px;mask-image:linear-gradient(transparent,#000 22%,#000 88%,transparent)}
  .landing-shell .registration{padding:105px 40px 38px}
  .landing-shell .form-card{padding:32px 64px 24px;border-radius:42px}
  .landing-shell .form-card h2{font-size:42px}
  .landing-shell .form-subtitle{font-size:21px;margin-bottom:30px}
  .landing-shell .email-field>label{font-size:17px}
  .landing-shell .email-field input{height:58px;font-size:20px}
  .landing-shell .consent-row{min-height:38px;column-gap:18px}
  .landing-shell .consent-row label{font-size:17px}
  .landing-shell .marketing-row{margin-top:8px}
  .landing-shell .submit-button{min-height:64px;margin-top:20px;font-size:24px}
  .landing-shell .form-caption{font-size:14px;margin-top:12px}
  .landing-shell .site-footer{grid-template-columns:1.1fr 1fr 1fr;gap:26px 42px;padding:78px 9% 26px;margin-top:-42px}
  .landing-shell .footer-brand{max-width:255px}
  .landing-shell .footer-brand span{font-size:14px;letter-spacing:1.1px;margin-top:6px}
  .landing-shell .resources{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;font-size:16px;border-left:1px solid #6c8fad;padding-left:42px}
  .landing-shell .resources strong{flex-basis:auto;margin-bottom:4px}
  .landing-shell .resources a+a{margin:0;padding:0;border:0}
  .landing-shell .socials{grid-column:3;padding-left:42px}
  .landing-shell .socials strong{font-size:16px}
  .landing-shell .socials>div{gap:14px;margin-top:12px}
  .landing-shell .social{width:44px;height:44px}

  .landing-shell .footer-legal{justify-content:center;font-size:14px;gap:26px;padding-top:18px}
}
@media(max-width:359px){
  .landing-shell>.brand-header{inset:10px 12px auto;padding:7px 8px;gap:6px;min-height:52px}
  .landing-shell .brand{max-width:112px}
  .landing-shell .sponsor{font-size:8px;padding-left:7px}
  .landing-shell .partners{padding-left:7px;gap:7px}
  .landing-shell .partners img{height:34px;max-width:32px}
  .landing-shell .hero-content{inset:76px 0 auto;padding:0 22px}
  .landing-shell .hero-cta{margin:-42px 20px 22px;min-height:52px;font-size:16px}
  .landing-shell .step{grid-template-columns:42px minmax(0,1fr) 42px;gap:10px;padding:13px 12px}
  .landing-shell .step-number,.landing-shell .step-symbol{width:42px;height:42px}
  .landing-shell .step-number{font-size:24px}
  .landing-shell .step h3{font-size:16px}
  .landing-shell .step p{font-size:12px}
  .landing-shell .step-icon{width:27px;height:27px}
  .landing-shell .form-card{padding:22px 18px 16px}
  .landing-shell .form-card h2{font-size:24px}
  .landing-shell .form-subtitle{font-size:14px}
  .landing-shell .consent-row{column-gap:12px}
  .landing-shell .consent-row label{font-size:13px}
  .landing-shell .site-footer{padding-left:24px;padding-right:24px;column-gap:10px}
  .landing-shell .socials{padding-left:12px}
  .landing-shell .socials>div{gap:8px}
  .landing-shell .social{width:44px;height:44px}

  .landing-shell .footer-brand span{font-size:9px}
  .landing-shell .resources{font-size:13px}
  .landing-shell .resources a+a{margin-left:12px;padding-left:12px}
  .landing-shell .footer-legal{gap:10px;font-size:11px}
}
