/* Fit typical desktop displays without clipping content or disabling scrolling.
   Small windows, mobile and enlarged text retain natural document flow. */
main,header,footer,.details,.sponsors{min-width:0}
@media(max-width:899px){
  .tagline{font-size:16px}
  .details{font-size:14px}
  .audience{font-size:16px}
  .next-step{font-size:13px;line-height:1.5}
  .register{min-height:48px}
  .details a{min-height:44px}
}
@media(max-width:359px){
  main{padding-inline:16px}.header{padding-inline:16px}
  h1{font-size:10.5vw;letter-spacing:-1px}
  .intro{font-size:8px;letter-spacing:1.2px}
  .details{font-size:13px}.divider{padding-inline:2px}
  .header .logo{width:120px}
}
@media (min-width:900px) and (min-height:600px){
  body{min-height:100svh;display:flex;flex-direction:column}
  .header{padding:1.8vh 4vw 1vh;flex-shrink:0}
  .logo{width:clamp(135px,19vh,190px)}
  .edition{font-size:clamp(10px,1.3vh,12px)}
  main{flex:1;padding:1vh 4vw 1.5vh;max-width:1050px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
  .intro{font-size:clamp(9px,1.25vh,12px);margin-bottom:1.2vh;letter-spacing:2.5px}
  h1{font-size:clamp(44px,8.3vh,90px);line-height:.98;letter-spacing:-2.5px;margin:0 0 1.3vh}
  .tagline{font-size:clamp(16px,1.9vh,20px);line-height:1.35;margin:0 0 1.5vh}
  .details{padding-top:1.3vh;font-size:clamp(14px,1.65vh,16px);width:100%}
  .details p,.details>a{margin:0 0 1vh;gap:10px}
  .details svg{width:18px;height:18px}
  .map{font-size:12px}
  .countdown-section{width:min(100%,580px)}
  .countdown-heading{font-size:9px;margin:1vh 0 .8vh}
  .countdown{gap:12px}
  .countdown>div{padding:1.4vh 8px 1.2vh;border-radius:9px}
  .countdown strong{font-size:clamp(30px,5.3vh,52px)}
  .countdown span{font-size:9px;margin-top:.7vh}
  .audience{font-size:clamp(14px,1.65vh,16px);line-height:1.4;margin:1.5vh 0 1.3vh;max-width:670px}
  .desktop-break{display:none}
  .register{font-size:clamp(16px,2vh,19px);min-height:44px;padding:1.25vh 23px;gap:70px;border-radius:7px}
  .register span{font-size:23px}
  .next-step{font-size:clamp(12px,1.3vh,14px);line-height:1.4;margin:.8vh 0 0;max-width:620px}
  footer{flex-shrink:0;flex-wrap:nowrap;align-items:center;gap:24px;padding:1.4vh 4vw}
  .sponsors{padding:1vh 22px;grid-template-columns:125px minmax(0,1.45fr) minmax(0,.85fr) minmax(0,1.45fr);gap:20px}
  .sponsors>p{grid-column:auto;text-align:left;font-size:9px;line-height:1.6}
  .sponsors>p br{display:block}
  .sponsors strong{margin-left:0;font-size:11px}
  .sponsor-logo{height:clamp(50px,8vh,82px)}
  .applause img{max-width:180px}.purespectrum img{max-width:175px}.incognito img{max-width:74px}
  .organiser{display:grid;grid-template-columns:55px auto;column-gap:12px;align-items:center;min-width:205px;padding:0;border:0}
  .organiser>span{grid-column:1/-1;font-size:9px;letter-spacing:1.5px;margin-bottom:5px}
  .apu-logo{width:50px;margin:0}
  .organiser p{font-size:9px;margin:0;line-height:1.5;max-width:155px}
  .bottom{flex-shrink:0;padding:.8vh 4vw;font-size:9px}
  .scene{height:100%;max-height:100svh;background-size:cover;background-position:center top;overflow:hidden}
  #particles{height:100%;max-height:100svh}
}
@media(min-width:900px) and (max-width:1100px) and (min-height:600px){
  .sponsors{grid-template-columns:90px minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1.4fr);gap:12px;padding-inline:14px}
  .sponsors strong{font-size:9px}.sponsors>p{font-size:8px}
  .organiser{min-width:175px;grid-template-columns:45px auto;gap:8px}.apu-logo{width:42px}
}
