:root{--blue:#0759c7;--deep:#0d3da2;--purple:#6527b7;--ink:#102b61;--sky:#eefbff;--shadow:0 22px 55px rgba(20,65,135,.18)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Trebuchet MS,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.55}img{display:block;max-width:100%}a{color:inherit}.skip-link{position:fixed;left:12px;top:-80px;z-index:1000;background:#fff;padding:12px 18px;border-radius:12px}.skip-link:focus{top:12px}.container{width:min(1180px,92vw);margin:auto}.centred{text-align:center}.eyebrow{margin:0 0 .55rem;color:#6c2dd0;text-transform:uppercase;letter-spacing:.1em;font-weight:900;font-size:.82rem}.section-lead{max-width:680px;margin:0 auto 36px;text-align:center;font-size:1.08rem}.site-header{height:82px;padding:0 clamp(18px,4vw,64px);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#0755ba,#063a9c);color:#fff;position:relative;z-index:20}.brand img{width:250px;height:66px;object-fit:cover;object-position:center 27%;border-radius:12px}.site-header nav{display:flex;align-items:center;gap:34px;font-weight:900}.site-header nav a{text-decoration:none}.site-header nav a:hover{text-decoration:underline}.nav-coming{padding:.7rem 1.2rem;border-radius:999px;background:linear-gradient(#ffd56c,#ffad35);color:#653200;box-shadow:0 7px 12px rgba(0,0,0,.17)}.menu-button{display:none;border:0;border-radius:12px;padding:.7rem 1rem;font-weight:900;color:#1545a8;background:#fff}
.hero{position:relative;width:100%;aspect-ratio:16/9;min-height:630px;overflow:hidden;background:#1e9fe7}.hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-copy{position:absolute;left:46.75%;top:20.15%;width:22.5%;height:21.4%;max-width:none;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#123e8f;padding:.35% 1.1% .45%}.hero-kicker{margin:0 0 .18rem;font-size:clamp(.58rem,.68vw,.78rem);font-weight:900;text-transform:uppercase;letter-spacing:.075em;color:#076ed9;line-height:1.05}.hero-copy h1{margin:0;font-size:clamp(1.62rem,2.55vw,3rem);line-height:.91;color:#0b65cf;text-shadow:0 2px 0 #fff}.hero-copy h1 span{display:block;font-size:.59em;color:#642c9d;text-shadow:none;margin-bottom:.08em;line-height:1}.hero-description{max-width:95%;margin:.38rem auto .48rem;font-size:clamp(.65rem,.73vw,.84rem);font-weight:900;line-height:1.18}.hero-actions{display:flex;flex-direction:column;align-items:center;gap:5px;width:100%}.hero-actions .button{max-width:92%;padding:.48rem .88rem;font-size:clamp(.66rem,.69vw,.8rem)}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:.66rem 1.05rem;font-weight:900;line-height:1.15;box-shadow:0 8px 18px rgba(31,67,124,.2)}.button.primary{background:linear-gradient(#7d3dd6,#4c139f);color:#fff;border:3px solid #fff}.button.secondary{background:#fff8e5;color:#8a4700;border:2px solid #ffc44a}
.intro{padding:105px 0;background:linear-gradient(#effbff,#fff)}.intro-grid{display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:84px}.intro-copy h2,.worlds h2,.features h2,.screenshots h2,.download h2{font-size:clamp(2.1rem,4vw,3.65rem);line-height:1.08;margin:.12rem 0 1rem;color:#1949b6}.intro-copy p{font-size:1.1rem}.mini-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.mini-badges span{padding:.55rem .9rem;border:2px solid #bce8fb;border-radius:999px;background:#fff;color:#1853ae;font-weight:900}.pip-card{position:relative;margin:0;border:8px solid #fff;border-radius:46px;background:#a9eaff;box-shadow:0 18px 42px rgba(20,65,135,.14);overflow:hidden;min-height:560px}.pip-image-wrap{height:560px;background:#a9eaff}.pip-card img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.pip-card figcaption{position:absolute;right:24px;top:34px;padding:17px 22px;border:4px solid #8fdcf7;border-radius:26px;background:#fff;text-align:center;color:#5927aa;box-shadow:0 12px 28px rgba(20,60,120,.18)}
.worlds{padding:95px 0;background:linear-gradient(#fff,#eaf8ff)}.world-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.world-card{overflow:hidden;border:6px solid #fff;border-radius:28px;background:#fff;box-shadow:var(--shadow);transition:.25s}.world-card:hover{transform:translateY(-8px)}.world-card img{width:100%;height:220px;object-fit:cover}.world-card div{padding:18px 20px 24px}.world-card h3{margin:0 0 .3rem;color:#5c29b1;font-size:1.45rem}.world-card p{margin:0}.features{padding:95px 0;background:linear-gradient(145deg,#fff9e9,#fff,#f1ebff)}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}.feature{padding:26px;border:3px solid #eee8ff;border-radius:26px;background:#fff;box-shadow:0 13px 32px rgba(39,52,114,.12)}.feature span{font-size:2.35rem}.feature h3{margin:.45rem 0;color:#562da9}.feature p{margin:0}.screenshots{padding:95px 0;background:#eaf9ff}.shot-grid{display:grid;grid-template-columns:1.45fr 1fr 1fr;gap:22px;margin-top:38px}.shot{display:flex;flex-direction:column;overflow:hidden;margin:0;border:7px solid #fff;border-radius:30px;background:#fff;box-shadow:var(--shadow)}.shot img{width:100%;height:420px;object-fit:cover}.shot figcaption{padding:15px 18px;color:#4f2ca8;font-weight:900;text-align:center}.download{padding:95px 4vw;background:url('assets/images/gallery.webp') center/cover fixed no-repeat}.download-panel{width:min(1000px,94vw);margin:auto;display:grid;grid-template-columns:300px 1fr;align-items:center;gap:36px;padding:26px 44px;border:8px solid #fff;border-radius:44px;background:rgba(255,255,255,.95);box-shadow:0 28px 75px rgba(19,31,92,.35)}.download-panel img{width:100%;height:315px;object-fit:contain;object-position:center bottom;border-radius:28px;background:#bceeff}.rainbow{height:16px;background:linear-gradient(90deg,#ff4f7f,#ff9d2e,#ffe24b,#4bdc6a,#3bc8ff,#5165f3,#a14beb)}footer{background:#103f9f;color:#fff}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:50px;padding:56px 0 34px}.footer-logo{width:230px;height:92px;object-fit:cover;object-position:center 27%;border-radius:16px}.footer-grid h2{font-size:1rem;color:#ffec6c;text-transform:uppercase;letter-spacing:.08em}.footer-grid a{display:block;margin:.35rem 0;text-decoration:none}.footer-grid a:hover{text-decoration:underline}.copyright{margin:0;padding:19px;text-align:center;border-top:1px solid rgba(255,255,255,.2)}.reveal{opacity:0;transform:translateY(22px);transition:.65s}.reveal.visible{opacity:1;transform:none}
@media(max-width:1050px){.site-header nav{gap:20px}.hero{min-height:570px}.hero-copy{left:46.75%;top:20.15%;width:24%;height:21.4%}.intro-grid{gap:42px}.pip-card,.pip-image-wrap{min-height:500px;height:500px}}
@media(max-width:820px){.site-header{height:74px}.brand img{width:190px;height:54px}.menu-button{display:block}.site-header nav{position:absolute;display:none;top:74px;left:15px;right:15px;flex-direction:column;align-items:stretch;gap:6px;padding:15px;border-radius:18px;background:#fff;color:#1648a6;box-shadow:var(--shadow)}.site-header nav.open{display:flex}.site-header nav a,.nav-coming{padding:.7rem 1rem}.hero{aspect-ratio:auto;min-height:720px}.hero-art{object-position:center}.hero-copy{left:46.75%;top:19%;width:31%;height:23%;}.hero-copy h1{font-size:clamp(2rem,7vw,3.4rem)}.hero-description{font-size:.85rem}.intro-grid,.download-panel{grid-template-columns:1fr}.world-grid,.feature-grid{grid-template-columns:repeat(2,1fr)}.shot-grid{grid-template-columns:1fr 1fr}.shot.wide{grid-column:1/-1}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}
@media(max-width:560px){.hero{min-height:650px}.hero-art{object-position:50% center}.hero-copy{left:46.75%;top:18.5%;width:43%;height:25%}.hero-kicker{font-size:.58rem}.hero-copy h1{font-size:2rem}.hero-description{font-size:.72rem;margin:.55rem auto}.button{padding:.62rem .85rem;font-size:.78rem}.intro,.worlds,.features,.screenshots{padding:70px 0}.intro-grid{gap:34px}.pip-card,.pip-image-wrap{min-height:430px;height:430px}.pip-card figcaption{top:16px;right:12px;padding:10px 13px;font-size:.8rem}.world-grid,.feature-grid,.shot-grid{grid-template-columns:1fr}.shot.wide{grid-column:auto}.shot img{height:310px}.download{padding:65px 3vw}.download-panel{padding:22px;text-align:center}.download-panel img{height:265px}.footer-grid{grid-template-columns:1fr;gap:24px}.footer-grid>div:first-child{grid-column:auto}}

/* Fresh two-part homepage hero */
.hero-board-copy{
  position:absolute;
  left:46.75%;
  top:20.1%;
  width:22.5%;
  height:20.2%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#123e8f;
  padding:.7% 1.7% 1%;
}
.hero-board-copy .hero-kicker{
  margin:0 0 .45rem;
  font-size:clamp(.58rem,.7vw,.82rem);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.09em;
  color:#076ed9;
  line-height:1.08;
}
.hero-board-copy h1{
  margin:0;
  font-size:clamp(1.8rem,2.85vw,3.35rem);
  line-height:.9;
  color:#0b65cf;
  text-shadow:0 2px 0 #fff;
}
.hero-board-copy h1 span{
  display:block;
  margin-bottom:.14em;
  font-size:.53em;
  line-height:1;
  color:#642c9d;
  text-shadow:none;
}
.hero-info-panel{
  position:absolute;
  left:50%;
  bottom:4.2%;
  width:min(760px,72vw);
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:16px 18px 16px 24px;
  border:4px solid rgba(255,255,255,.96);
  border-radius:28px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 42px rgba(10,55,125,.28);
  backdrop-filter:blur(8px);
}
.hero-info-text{display:flex;align-items:center;gap:15px;min-width:0}
.hero-info-text p{margin:0;font-size:clamp(.9rem,1.05vw,1.08rem);font-weight:900;line-height:1.25;color:#173d86}
.hero-safe-badge{flex:0 0 auto;padding:.55rem .8rem;border-radius:999px;background:linear-gradient(#68df79,#29b94d);color:#fff;font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em;box-shadow:inset 0 -3px 0 rgba(0,0,0,.1)}
.hero-info-panel .hero-actions{display:flex;flex-direction:row;align-items:center;gap:9px;width:auto;flex:0 0 auto}
.hero-info-panel .button{max-width:none;padding:.72rem 1rem;font-size:.78rem;white-space:nowrap}

@media(max-width:1050px){
  .hero-board-copy{left:46.75%;top:20.1%;width:24%;height:20.2%}
  .hero-info-panel{width:min(720px,82vw)}
}
@media(max-width:820px){
  .hero-board-copy{left:46.75%;top:19%;width:31%;height:22%}
  .hero-board-copy h1{font-size:clamp(2rem,7vw,3.4rem)}
  .hero-info-panel{bottom:3%;width:min(620px,92vw);padding:14px 16px;gap:14px}
  .hero-info-text{gap:10px}
  .hero-info-panel .hero-actions{flex-direction:column;gap:6px}
  .hero-info-panel .button{width:100%}
}
@media(max-width:560px){
  .hero-board-copy{left:46.75%;top:18.5%;width:43%;height:24%}
  .hero-board-copy .hero-kicker{font-size:.54rem;margin-bottom:.3rem}
  .hero-board-copy h1{font-size:2rem}
  .hero-info-panel{bottom:2.2%;display:block;width:92vw;padding:14px;border-width:3px;border-radius:23px;text-align:center}
  .hero-info-text{display:block}
  .hero-safe-badge{display:inline-block;margin-bottom:8px}
  .hero-info-text p{font-size:.86rem}
  .hero-info-panel .hero-actions{margin-top:11px;flex-direction:row}
  .hero-info-panel .button{font-size:.7rem;padding:.62rem .72rem}
}

/* Header refinement — keep the full PuddlePop logo visible */
.site-header{
  min-height:96px;
  height:96px;
  padding:0 clamp(22px,4.5vw,76px);
  background:linear-gradient(180deg,#1171db 0%,#0759c7 52%,#0645a7 100%);
  box-shadow:0 8px 24px rgba(8,54,135,.24);
  overflow:visible;
}
.brand{
  display:flex;
  align-items:center;
  align-self:stretch;
  flex:0 0 auto;
  padding:8px 0;
}
.brand img{
  width:270px;
  height:80px;
  object-fit:contain;
  object-position:center;
  border-radius:0;
}
.site-header nav{
  gap:clamp(18px,2.2vw,34px);
}
.site-header nav a{
  position:relative;
  padding:.45rem 0;
  text-shadow:0 1px 2px rgba(0,0,0,.14);
}
.site-header nav a::after{
  content:"";
  position:absolute;
  left:50%;
  right:50%;
  bottom:0;
  height:3px;
  border-radius:999px;
  background:#fff;
  transition:left .2s ease,right .2s ease;
}
.site-header nav a:hover{text-decoration:none}
.site-header nav a:hover::after,
.site-header nav a:focus-visible::after{left:0;right:0}

@media(max-width:820px){
  .site-header{height:82px;min-height:82px;padding:0 18px}
  .brand{padding:7px 0}
  .brand img{width:210px;height:68px}
  .site-header nav{top:82px}
}
@media(max-width:430px){
  .site-header{height:76px;min-height:76px;padding:0 12px}
  .brand img{width:178px;height:62px}
  .site-header nav{top:76px;left:10px;right:10px}
  .menu-button{padding:.62rem .82rem}
}


/* Responsive hero coordinate system — keeps copy anchored to the artwork */
.hero{
  isolation:isolate;
}
.hero-art-stage{
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:auto;
  min-width:100%;
  aspect-ratio:16/9;
  transform:translateX(-50%);
}
.hero-art-stage .hero-art{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:fill;
}
.hero-art-stage .hero-board-copy{
  left:46.75%;
  top:20.1%;
  width:22.5%;
  height:20.2%;
  padding:.7% 1.7% 1%;
}

@media (min-width:821px) and (max-width:1180px){
  .hero{min-height:clamp(570px,62vw,700px)}
  .hero-art-stage .hero-board-copy h1{font-size:clamp(1.85rem,3.1vw,2.75rem)}
  .hero-art-stage .hero-board-copy .hero-kicker{font-size:clamp(.58rem,.9vw,.75rem)}
}

@media (min-width:561px) and (max-width:820px){
  .hero{min-height:clamp(680px,92vw,760px)}
  .hero-art-stage .hero-board-copy h1{font-size:clamp(1.8rem,4.4vw,2.45rem)}
  .hero-art-stage .hero-board-copy .hero-kicker{font-size:clamp(.56rem,1.25vw,.7rem)}
  .hero-info-panel{bottom:2.5%;width:min(650px,92vw)}
}

@media (max-width:560px){
  .hero{min-height:clamp(620px,165vw,700px)}
  .hero-art-stage .hero-board-copy{
    left:46.75%;
    top:20.1%;
    width:22.5%;
    height:20.2%;
    padding:.7% 1.5% 1%;
  }
  .hero-art-stage .hero-board-copy .hero-kicker{
    margin:0 0 .28rem;
    font-size:clamp(.5rem,2.15vw,.62rem);
    letter-spacing:.065em;
    white-space:nowrap;
  }
  .hero-art-stage .hero-board-copy h1{
    font-size:clamp(1.65rem,7.9vw,2.05rem);
    line-height:.92;
  }
  .hero-art-stage .hero-board-copy h1 span{
    margin-bottom:.12em;
    font-size:.54em;
  }
  .hero-info-panel{
    bottom:2%;
    width:calc(100% - 28px);
    max-width:520px;
  }
}

@media (max-width:390px){
  .hero{min-height:640px}
  .hero-art-stage .hero-board-copy .hero-kicker{font-size:.48rem}
  .hero-art-stage .hero-board-copy h1{font-size:1.58rem}
  .hero-info-panel .hero-actions{flex-direction:column}
}

/* Mobile hero alignment correction — board copy uses the exact artwork coordinate. */
@media (max-width:560px){
  .hero-art-stage .hero-board-copy{
    left:46.75%;
  }
  .hero-info-panel{
    bottom:0;
  }
}

@media (max-width:390px){
  .hero-art-stage .hero-board-copy{
    left:46.75%;
  }
}

/* Mobile-only composed hero artwork. The sign, title, Pip and card are one image,
   preventing independent alignment drift across phone browsers. */
.hero-picture{position:absolute;inset:0;display:block;width:100%;height:100%}
.mobile-hero-hotspots{display:none}

@media (max-width:560px){
  .hero{
    min-height:0;
    aspect-ratio:853/1300;
    background:#28a8ec;
  }
  .hero-art-stage{
    position:absolute;
    inset:0;
    width:100%;
    min-width:0;
    aspect-ratio:auto;
    transform:none;
  }
  .hero-picture,
  .hero-art-stage .hero-art{
    width:100%;
    height:100%;
  }
  .hero-art-stage .hero-art{
    object-fit:cover;
    object-position:center top;
  }
  .hero-art-stage .hero-board-copy,
  .hero-info-panel{
    display:none;
  }
  .mobile-hero-hotspots{
    display:block;
    position:absolute;
    inset:0;
    z-index:4;
    pointer-events:none;
  }
  .mobile-hero-hotspots a,
  .mobile-hero-hotspots span{
    position:absolute;
    bottom:2.1%;
    height:7.2%;
    border-radius:999px;
    pointer-events:auto;
  }
  .mobile-hero-hotspots a{left:7.5%;width:43%}
  .mobile-hero-hotspots span{right:7.5%;width:43%}
}
