/* Peterswell NS - same identity as the old site, tidied up. */

:root{
  --navy:#011b3a;
  --sky:#a8dcf1;
  --sky-soft:#d3eefa;
  --blue:#00aaff;
  --gold:#f0c22e;
  --red:#e4322b;
  --green:#81ca00;
  --green-dark:#6ea800;
  --ink:#595959;
  --muted:#808080;
  --rule:#e6e6e6;
  --paper:#fff;
  --sans:"Lato",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --container:75rem;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
/* type scale taken from the old theme: Lato 16/20, headings 42/36/30/24 at weight 300 */
body{margin:0;background:#f8f8f8;color:#595959;font-family:var(--sans);
  font-size:16px;line-height:20px;font-weight:400}
p{line-height:30px;margin:0 0 30px}
h1{font-size:42px;font-weight:300;color:var(--navy);margin:0 0 33px;line-height:1.15}
h3{font-size:30px;font-weight:300;color:var(--navy);margin:0 0 35px;line-height:1.2}
h4{font-size:24px;font-weight:300;color:var(--navy);margin:0 0 36px;line-height:1.25}
li{line-height:30px}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-underline-offset:3px}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.wrap{width:min(100% - 2.5rem,var(--container));margin-inline:auto}

/* ---------------------------------------------------------- top bar */
.topbar{background:var(--navy);color:#fff;font-size:.95rem}
.topbar .wrap{width:min(100% - 2.5rem,92rem);margin-left:auto;margin-right:auto}
.topbar ul{list-style:none;width:100%;display:flex;flex-wrap:nowrap;justify-content:center;
  gap:.4rem clamp(1.5rem,4vw,4rem);margin:0 auto;padding:.7rem 0}
.topbar li{white-space:nowrap}
.topbar li{display:flex;align-items:center;gap:.7rem}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{color:var(--gold)}
.topbar .ico{width:1.55rem;height:1.55rem;flex:none;display:grid;place-items:center;
  background:var(--red);border-radius:3px;color:#fff}
.topbar .ico svg{width:.95rem;height:.95rem;fill:currentColor}

/* ------------------------------------------------------------ header */
.stage{position:relative;background:var(--sky)}   /* no overflow clip: the menu drops out of it */
.stage--page{background:var(--navy) center/cover;position:relative}
.stage--page::before{content:"";position:absolute;inset:0;background:rgba(1,27,58,.66);z-index:0}
.stage--page > *{position:relative;z-index:1}
.stage__bg{display:block;width:100%;height:auto}
.site-head{background:transparent}
.site-head .site-head__in{border-bottom:1px solid rgba(255,255,255,.22)}
.site-head > .wrap > .mainnav > ul > li > a{color:#fff}
.site-head .mainnav > ul > li > a{color:#fff}
.site-head .mainnav > ul > li > a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.7)}
.site-head .navtoggle{background:rgba(255,255,255,.16)}
.site-head--over{position:absolute;top:0;left:0;right:0;background:transparent;z-index:50}
.site-head--over .site-head__in{border-bottom-color:rgba(255,255,255,.6)}
.site-head--over .site-head__in{border-bottom:1px solid rgba(255,255,255,.6)}
.site-head--over .mainnav > ul > li > a{color:#fff;text-shadow:0 1px 3px rgba(0,40,70,.45)}
.site-head--over .mainnav > ul > li > a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.8)}
.site-head--over .mainnav > ul > li > a[aria-current=page]{color:#fff;border-bottom-color:var(--red)}
.site-head--over .navtoggle{background:rgba(1,27,58,.75)}
.site-head__in{display:flex;align-items:center;gap:2rem;padding:1.1rem 0}
.crest{flex:none}
.crest img{width:78px}
.mainnav{margin-left:auto}
.mainnav > ul{list-style:none;display:flex;flex-wrap:wrap;gap:0 2.2rem;margin:0;padding:0}
.mainnav > ul > li > a{display:block;padding:.55rem 0;color:var(--navy);text-decoration:none;
  font-size:1.02rem;border-bottom:3px solid transparent}
.mainnav > ul > li > a:hover{color:var(--blue);border-bottom-color:var(--blue)}
.mainnav > ul > li > a[aria-current=page]{color:var(--blue);border-bottom-color:var(--red);font-weight:700}

.navtoggle{display:none;margin-left:auto;background:var(--blue);color:#fff;border:0;
  border-radius:4px;font:inherit;font-weight:700;padding:.6rem 1rem;cursor:pointer}


/* About Us dropdown */
.mainnav li{position:relative}
.mainnav a{text-decoration:none}
.mainnav .subnav a{text-decoration:none}
.mainnav .subnav{display:none;list-style:none;position:absolute;z-index:60;top:100%;left:-1rem;min-width:17rem;margin:0;padding:.4rem 0;
  list-style:none;background:var(--blue);z-index:30;box-shadow:0 6px 18px rgba(1,27,58,.25)}
.mainnav .has-sub:hover > .subnav,.mainnav .has-sub:focus-within > .subnav{display:block}
.subnav a{display:block;padding:.65rem 1.4rem;color:#fff;font-size:1rem;white-space:nowrap;
  border-bottom:0;text-shadow:none}
.subnav a:hover{background:rgba(255,255,255,.18);color:#fff;border-bottom:0}
.site-head--over .subnav a{color:#fff;text-shadow:none}

/* -------------------------------------------------------------- hero */
.hero{background:var(--sky);position:relative;overflow:hidden}
.hero video,.hero img.hero-still{width:100%;display:block;object-fit:cover;
  max-height:min(62vh,34rem)}
.pagehead{position:relative;padding:9rem 0 4.4rem;color:#fff;background:transparent}
.pagehead .wrap{position:relative}
.pagehead h1::after{content:"";display:block;width:4rem;height:3px;background:var(--green);
  margin:1.1rem 0 0}
.pagehead h1{margin:0;font-size:42px;line-height:1.15;font-weight:300;color:#fff}
.pagehead p{margin:.8rem 0 0;color:#b9c9db;font-size:1.1rem;max-width:62ch}

/* ------------------------------------------------------- green band */
.band{background:var(--green);color:#fff;border-top:3px solid var(--blue);margin:0 0 3.5rem}
.band__in{display:grid;grid-template-columns:13rem 1fr auto;align-items:stretch}
.band__photo{background-size:cover;background-position:center;min-height:13rem}
.band__text{padding:2.6rem 2.8rem;display:flex;flex-direction:column;justify-content:center;
  align-items:flex-start;gap:.7rem}
.band__cta{display:flex;align-items:center;padding:2rem 3rem 2rem 1rem}
.band__text h2{margin:0;font-size:clamp(1.7rem,3.2vw,2.2rem);font-weight:300;color:#fff}
.band__text p{margin:0;font-size:1.06rem;color:#f2fbe6;max-width:46ch}
.ghostbtn{display:inline-block;border:2px solid rgba(255,255,255,.85);
  color:#fff;text-decoration:none;padding:.85rem 2.4rem;font-weight:400;font-size:1.05rem;
  border-radius:2px;white-space:nowrap}
.ghostbtn:hover{background:#fff;color:var(--green-dark)}

/* ---------------------------------------------------------- content */
main{padding:0 0 4.5rem;background:#f8f8f8}
.section{padding:3.8rem 0 0}
.section--tint{background:#fff;padding:3.8rem 0;margin-top:3.8rem;
  border-block:1px solid var(--rule)}
h2{font-size:36px;font-weight:300;line-height:1.2;margin:0 0 34px;color:var(--navy)}

p,ul,ol{max-width:none}
.narrow p{max-width:68ch}
.lead{font-size:18px;line-height:30px;color:var(--muted);max-width:66ch}
.ga{font-style:italic}

.rule{height:4px;width:4.5rem;background:var(--red);border:0;margin:0 0 1.4rem}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.4rem;margin-top:2.2rem}
.tile{background:#fff;border:1px solid var(--rule);border-top:4px solid var(--green);
  padding:1.5rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.35rem}
.tile:hover{border-top-color:var(--red);color:inherit;box-shadow:0 2px 10px rgba(20,56,95,.09)}
.tile b{font-size:1.12rem;color:var(--navy)}
.tile span{font-size:.95rem;color:var(--muted)}

/* document lists */
.docs{list-style:none;margin:0;padding:0;max-width:none;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(23rem,1fr));gap:0 3rem}
.docs li{border-bottom:1px solid var(--rule)}
.docs a{display:block;position:relative;padding:1.05rem .3rem 1.05rem 2.4rem;
  text-decoration:none;color:var(--ink)}
.docs a::before{content:"";position:absolute;left:.2rem;top:1.35rem;width:1rem;height:1.25rem;
  border:2px solid var(--blue);border-radius:2px}
.docs a:hover{background:#f2fafe}
.docs a:hover .name{color:var(--blue)}
.docs .name{display:block;font-weight:700;color:var(--navy);line-height:1.35}
.docs .meta{display:block;font-size:.85rem;color:var(--muted);margin-top:.1rem}
.fullfig{margin:0 0 34px}
.fullfig img{width:100%;border-radius:3px}
.fullfig--half{max-width:26rem}
.docs .current a{background:#fdf6e0}
.yearhead{font-size:1.35rem;font-weight:700;margin:2.6rem 0 .8rem;color:var(--blue)}

/* term calendar */
.terms{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:2.5rem 3rem}
.term h3{margin:0 0 .9rem;font-size:1.15rem;font-weight:700;color:var(--navy);
  padding-bottom:.5rem;border-bottom:2px solid var(--rule)}
.term dl{margin:0}
.term-row{display:grid;grid-template-columns:8.5rem 1fr;gap:.5rem 1rem;align-items:baseline;
  padding:.5rem 0 .5rem .85rem;border-left:4px solid var(--rule)}
.term-row dt{font-weight:700;color:var(--navy);font-size:.95rem}
.term-row dd{margin:0;color:var(--muted);font-size:.95rem}
.term-row--closed{border-left-color:var(--red)}
.term-row--half{border-left-color:var(--gold)}
.term-row--open{border-left-color:var(--green)}
.term-key{display:flex;flex-wrap:wrap;gap:.6rem 1.8rem;margin:2.4rem 0 0;
  font-size:.9rem;color:var(--muted);max-width:none}
.key{display:flex;align-items:center;gap:.5rem}
.key::before{content:"";width:.9rem;height:.9rem;border-radius:2px;background:var(--rule)}
.key--closed::before{background:var(--red)}
.key--half::before{background:var(--gold)}
.key--open::before{background:var(--green)}

/* people */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:1.8rem;margin-top:1.8rem}
.person img{aspect-ratio:1;object-fit:cover;border-radius:50%;width:100%;max-width:10.5rem;
  border:4px solid var(--sky-soft)}
.person__initials{display:grid;place-items:center;aspect-ratio:1;width:100%;max-width:10.5rem;
  border-radius:50%;background:var(--sky-soft);color:var(--navy);font-size:2rem;font-weight:300;
  border:4px solid var(--sky-soft)}
.person b{display:block;margin-top:.8rem;color:var(--navy)}
.person span{font-size:.9rem;color:var(--muted)}

.gallery{column-count:4;column-gap:1rem;margin-top:2rem}
.gallery img{width:100%;height:auto;display:block;margin:0 0 1rem;
  break-inside:avoid;border-radius:3px;background:#fff}
@media (max-width:1100px){.gallery{column-count:3}}
@media (max-width:800px){.gallery{column-count:2}}
@media (max-width:520px){.gallery{column-count:1}}
.episodes{list-style:none;margin:0 0 34px;padding:0}
.episodes li{margin-bottom:1rem}
.episodes iframe{display:block;width:100%;border:0}
.videowrap{position:relative;padding-top:56.25%;margin:0 0 34px;background:#000;border-radius:3px;
  overflow:hidden;max-width:52rem}
.videowrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:3.5rem;align-items:start}
.cform label{display:block;font-weight:700;color:var(--navy);margin:0 0 .4rem;font-size:15px}
.cform input,.cform textarea{width:100%;font:inherit;padding:.75rem .8rem;margin:0 0 1.2rem;
  border:1px solid var(--rule);border-radius:3px;background:#fff;color:inherit}
.cform input:focus,.cform textarea:focus{outline:3px solid var(--gold);outline-offset:1px;
  border-color:var(--blue)}
.cform button{background:var(--green);color:#fff;border:0;border-radius:3px;font:inherit;
  font-weight:700;padding:.9rem 2.4rem;cursor:pointer}
.cform button:hover{background:var(--green-dark)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.note{padding:1rem 1.2rem;border-radius:3px;margin:0 0 1.6rem}
.note--ok{background:#eaf6df;border:1px solid #a9d183;color:#33560a}
.note--bad{background:#fbe9e8;border:1px solid #e0b0ac;color:#8a2b22}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:2rem}}
.post{padding:0 0 2.4rem;margin:0 0 2.4rem;border-bottom:1px solid var(--rule);max-width:52rem}
.post:last-of-type{border-bottom:0}
.post__date{color:var(--muted);font-size:.9rem;margin:-1.6rem 0 1.4rem}
.post__pic{margin:0 0 1.4rem}
.post__pic img{width:100%;border-radius:3px}
.bloggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.6rem}
.blogcard{display:flex;flex-direction:column;gap:.35rem;background:#fff;border:1px solid var(--rule);
  border-top:4px solid var(--green);text-decoration:none;color:inherit;padding:0 0 1.1rem;overflow:hidden}
.blogcard:hover{border-top-color:var(--blue);box-shadow:0 3px 14px rgba(1,27,58,.1);color:inherit}
.blogcard img{width:100%;height:10rem;object-fit:cover;margin:0 0 .8rem}
.blogcard b,.blogcard span{padding:0 1.1rem}
.blogcard b{font-size:1.05rem;color:var(--navy);line-height:1.3}
.blogcard__date{font-size:.82rem;color:var(--muted)}
.blogcard__text{font-size:.92rem;color:var(--muted);line-height:1.5}
.poster{margin:0 0 34px;max-width:30rem}
.poster img{width:100%;height:auto;border:1px solid var(--rule);border-radius:3px}

.board{list-style:none;padding:0;margin:1.2rem 0 0;max-width:34rem}
.board li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;
  border-bottom:1px solid var(--rule)}
.board span{color:var(--muted);font-size:.94rem}

.callout{background:#f5fafd;border:1px solid var(--rule);border-left:4px solid var(--gold);
  padding:1.5rem 1.7rem;margin:2.2rem 0;max-width:46rem}
.callout p{margin:.4rem 0 0}
.callout p:first-child{margin-top:0}

.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:2.5rem 0 0;max-width:40rem}
.facts div{border-left:4px solid var(--gold);padding-left:1rem}
.facts dt{font-size:2.2rem;line-height:1;font-weight:700;color:var(--blue)}
.facts dd{margin:.4rem 0 0;font-size:.92rem;color:var(--muted)}

/* footer */
.foot{background:var(--navy);color:#dbe6f0;padding:3.4rem 0 1.6rem;font-size:1rem}
.foot a{color:#00aaff;text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot__grid{display:grid;grid-template-columns:1.25fr .8fr 1fr;gap:2.5rem;align-items:start}

.foot-contact{list-style:none;margin:0;padding:0}
.foot-contact li{display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.15rem;
  color:#dbe6f0;line-height:1.5}
.foot-contact a{color:#dbe6f0}
.foot-contact a:hover{color:#4db8ea;text-decoration:none}
.foot-contact .ico{width:1.35rem;height:1.35rem;flex:none;margin-top:.2rem;
  display:grid;place-items:center;color:var(--red)}
.foot-contact .ico svg{width:1.15rem;height:1.15rem;fill:currentColor}

.foot-roll{margin:0;text-align:center;color:#dbe6f0}
.foot-roll strong{color:var(--red)}

.foot-policies{list-style:none;margin:0;padding:0}
.foot-policies li{margin-bottom:.7rem}
.foot-policies a{color:#00aaff}

.foot .fine{margin:2.8rem 0 0;padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15);
  color:#93a9bf;font-size:.88rem;text-align:center;max-width:none}
.footedge{height:6px;background:#00aaff}


/* about / montessori rows */
.about-row{display:grid;grid-template-columns:1fr 24rem;gap:3.5rem;align-items:center}
.about-row--flip{grid-template-columns:24rem 1fr}
.about-row figure{margin:0}
.about-row figure img{width:100%;border-radius:3px}
.about-row__btns{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center;margin-top:1.8rem}
.btn-link{color:var(--blue);text-decoration:none;font-weight:700}
.btn-link:hover{text-decoration:underline}
.btn-outline{display:inline-block;border:2px solid var(--blue);color:var(--navy);
  text-decoration:none;padding:.85rem 2.2rem;background:#fff}
.btn-outline:hover{background:var(--blue);color:#fff}

/* useful resources */
.resources{background-size:cover;background-position:center;padding:4.5rem 0 0;margin:4rem 0 0;
  position:relative}
.resources::before{content:"";position:absolute;inset:0;background:rgba(1,27,58,.28)}
.resources .wrap{position:relative}
.resources h2{color:#fff;text-align:center;font-weight:300;font-size:2.4rem;margin:0 0 1rem;
  text-shadow:0 2px 8px rgba(0,20,40,.4)}
.rule--centre{margin:0 auto 3rem}
.tabs__nav{display:grid;grid-template-columns:1fr 1fr;max-width:52rem;margin:0 auto}
.tabs__nav button{font:inherit;font-size:1.15rem;padding:1.15rem 1rem;cursor:pointer;
  border:0;border-top:4px solid transparent;background:var(--blue);color:#fff}
.tabs__nav button.is-active{background:#fff;color:var(--navy);border-top-color:var(--green)}
.tabs__panels{padding-top:3rem}






@media (max-width:900px){
  .about-row,.about-row--flip{grid-template-columns:1fr;gap:2rem}
  .about-row--flip figure{order:2}
  .tabs__nav{max-width:none}
}

@media (max-width:960px){
  .band__in{grid-template-columns:1fr}
  .band__cta{padding:0 2.2rem 2.2rem}
  .band__photo{min-height:11rem}
  .band__text{padding:2.2rem}
  .foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  .site-head--over{position:static;background:var(--navy)}
  .pagehead{padding:2.6rem 0 3rem}
  .site-head--over .mainnav a{color:var(--navy);text-shadow:none}
  .site-head--over .site-head__in{border-bottom:0}
  .topbar ul{flex-wrap:wrap;justify-content:flex-start;gap:.5rem 1.5rem;font-size:.88rem}
  .navtoggle{display:block}
  .mainnav{order:3;width:100%;margin-left:0}
  .mainnav > ul{display:none;flex-direction:column;gap:0;padding-top:.5rem}
  .mainnav.open > ul{display:flex}
  .mainnav li{border-top:1px solid rgba(255,255,255,.16)}
  .mainnav > ul > li > a{padding:.85rem 0;border-bottom:0}
  .mainnav .subnav{display:block;position:static;background:transparent;box-shadow:none;
    padding:0 0 .4rem 1.2rem;min-width:0}
  .subnav a{padding:.5rem 0;font-size:.95rem;color:#cfe4f5}
  .site-head--over .subnav a{color:#cfe4f5}
  .site-head__in{flex-wrap:wrap;gap:1rem}
  .facts{grid-template-columns:1fr 1fr}
  .foot__grid{grid-template-columns:1fr}
  .docs .meta{white-space:normal}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ---------------------------------------- animated header (home page) */
.psw-hero{position:relative;z-index:0}
.psw-hero{position:relative;width:100%;aspect-ratio:2/1;overflow:hidden;background:#9ddceb;isolation:isolate;font-size:0}
.psw-hero *{box-sizing:border-box}
.psw-sky{position:absolute;left:0;right:0;bottom:0;height:140%;will-change:transform}
.psw-sky-in{position:absolute;inset:0;animation:psw-drift 46s ease-in-out infinite alternate;transform-origin:50% 100%}
.psw-sky-in{background:url("assets/hero/sky.jpg") center bottom/100% auto no-repeat #9ddceb}
.psw-badge-p{position:absolute;left:15.275%;top:32.91%;width:69.45%;will-change:transform}
.psw-badge{position:relative;width:100%;animation:psw-float 7s ease-in-out infinite;filter:drop-shadow(0 1.2vw 1.4vw rgba(20,60,120,.28))}
.psw-badge>img{display:block;width:100%;height:auto}
.psw-rays{position:absolute;left:81.05%;top:6.32%;width:9.65%;animation:psw-spin 70s linear infinite}
.psw-tree{position:absolute;left:80.2%;top:39.51%;width:14.32%;transform-origin:50% 100%;animation:psw-sway 3.8s ease-in-out infinite alternate}
.psw-rays img,.psw-tree img{display:block;width:100%;height:auto}
.psw-fg{position:absolute;inset:-10% 0;pointer-events:none;will-change:transform}
.psw-wisp{position:absolute;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.55),rgba(255,255,255,0));animation:psw-wisp 30s ease-in-out infinite alternate}
.psw-wisp.a{left:-4%;top:12%;width:34%;height:14%}
.psw-wisp.b{left:58%;top:70%;width:40%;height:16%;animation-duration:38s;animation-delay:-14s}
.psw-wisp.c{left:22%;top:78%;width:26%;height:11%;animation-duration:26s;animation-delay:-6s;opacity:.7}
.psw-spark{position:absolute;width:2.2%;aspect-ratio:1;opacity:0;animation:psw-twinkle 5.5s ease-in-out infinite;transform-origin:center}
.psw-spark svg{display:block;width:100%;height:100%}
.psw-spark.s1{left:12%;top:24%;animation-delay:.2s}
.psw-spark.s2{left:85.5%;top:26%;animation-delay:1.9s;width:1.7%}
.psw-spark.s3{left:9.5%;top:64%;animation-delay:3.3s;width:1.5%}
.psw-spark.s4{left:87%;top:66%;animation-delay:4.4s}
.psw-spark.s5{left:48%;top:22%;animation-delay:2.6s;width:1.3%}
.psw-spark.s6{left:60%;top:73%;animation-delay:.9s;width:1.4%}
.psw-note{position:absolute;transform-origin:50% 80%;animation:psw-bob 3.2s ease-in-out infinite alternate}
.psw-note.n1{left:6.82%;top:36.35%;width:1.98%;animation-delay:-1s}
.psw-note.n2{left:8.03%;top:39.51%;width:4.35%;animation-duration:3.8s;animation-delay:-2.4s}
.psw-note.n3{left:5.06%;top:46.7%;width:2.76%;animation-duration:3.5s;animation-delay:-.6s}
.psw-hurler{position:absolute;left:12.94%;top:16.95%;width:8.88%;transform-origin:50% 100%;animation:psw-swing 4.5s ease-in-out infinite}
.psw-ball{position:absolute;left:22.74%;top:28.59%;width:1.13%;animation:psw-ball 4.5s ease-in-out infinite}
.psw-note img,.psw-hurler img,.psw-ball img{display:block;width:100%;height:auto}
.psw-clouds{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.psw-cloud{position:absolute;left:-22%;will-change:transform;animation:psw-cross linear infinite}
.psw-cloud img{display:block;width:100%;height:auto}
.psw-cloud.c1{--d:940%;top:8%;width:13%;animation-duration:110s;animation-delay:-35s}
.psw-cloud.c2{--d:1110%;top:66%;width:11%;opacity:.85;animation-duration:150s;animation-delay:-95s}
.psw-cloud.c3{--d:1525%;top:26%;width:8%;opacity:.55;animation-duration:170s;animation-delay:-120s}
.psw-cloud.c4{--d:815%;top:76%;width:15%;animation-duration:90s;animation-delay:-12s}
.psw-cloud.c4 img{transform:scaleX(-1)}
@keyframes psw-cross{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--d),0,0)}}
@keyframes psw-bob{from{transform:translate3d(0,-7%,0) rotate(-7deg)}to{transform:translate3d(0,7%,0) rotate(7deg)}}
@keyframes psw-swing{0%,20%{transform:rotate(0deg)}58%{transform:rotate(4.5deg)}66%{transform:rotate(-3.5deg)}80%,100%{transform:rotate(0deg)}}
@keyframes psw-ball{0%,48%{transform:translate3d(0,0,0);opacity:1}57%{transform:translate3d(0,-200%,0)}66%{transform:translate3d(0,-10%,0);opacity:1}78%{transform:translate3d(520%,-320%,0);opacity:1}84%{transform:translate3d(760%,-380%,0);opacity:0}90%{transform:translate3d(0,0,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}
@keyframes psw-drift{from{transform:translate3d(-1.3%,0,0) scale(1.04)}to{transform:translate3d(1.3%,0,0) scale(1.07)}}
@keyframes psw-float{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(0,-1.6%,0) rotate(-.35deg)}}
@keyframes psw-spin{to{transform:rotate(360deg)}}
@keyframes psw-sway{from{transform:rotate(-3.6deg) skewX(-2.2deg)}to{transform:rotate(3.6deg) skewX(2.2deg)}}
@keyframes psw-wisp{from{transform:translate3d(-6%,0,0)}to{transform:translate3d(6%,0,0)}}
@keyframes psw-twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(0deg)}12%{opacity:.95;transform:scale(1) rotate(15deg)}24%{opacity:0;transform:scale(.3) rotate(30deg)}}
@media (prefers-reduced-motion:reduce){.psw-hero *{animation:none!important}}
