@font-face{font-family:"Fredoka";font-weight:500;font-display:swap;src:url(fonts/fredoka-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fredoka";font-weight:700;font-display:swap;src:url(fonts/fredoka-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Fredoka";font-weight:500;font-display:swap;src:url(fonts/fredoka-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:"Fredoka";font-weight:700;font-display:swap;src:url(fonts/fredoka-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD}
@font-face{font-family:"Marker";font-weight:400;font-display:swap;src:url(fonts/permanent-marker-latin-400-normal.woff2) format("woff2")}

:root{
  color-scheme:light;
  --plum:#3A1240;
  --plum-soft:#6B4A70;
  --butter:#FFF1A8;
  --butter-deep:#FFE14D;
  --pink:#FF4FA3;
  --pink-soft:#FF9FCB;
  --blush:#FFD6E7;
  --white:#FFFFFF;
  --max:1120px;
  --pad:clamp(20px,5vw,48px);
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(76px + env(safe-area-inset-top,0px));background:var(--butter)}
body{margin:0;background:var(--butter);color:var(--plum);font-family:"Fredoka",system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:500;font-size:clamp(17px,.6vw + 14px,20px);line-height:1.55;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit;text-underline-offset:4px}
:focus-visible{outline:3px solid var(--plum);outline-offset:3px;border-radius:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
section{padding:clamp(56px,8vw,104px) 0}
h1,h2,h3{font-weight:700;line-height:1.02;letter-spacing:-.01em;margin:0}
h2{font-size:clamp(38px,5.4vw,64px);margin-bottom:.5em}
h3{font-size:clamp(24px,2.4vw,30px);margin-bottom:.4em}
p{margin:0 0 .6em;max-width:36em}
.lines p{margin:0 0 .25em}
.big{font-size:clamp(21px,1.6vw + 12px,27px);line-height:1.35}
.hand{font-family:"Marker",cursive;font-weight:400}
.skip{position:absolute;left:-999px;top:8px;background:var(--plum);color:var(--white);padding:10px 14px;border-radius:10px;z-index:30}
.skip:focus{left:8px}

/* header */
.site-head{position:sticky;top:0;z-index:20;background:var(--butter);border-bottom:2px solid transparent;transition:border-color .2s ease}
.site-head.scrolled{border-bottom-color:var(--plum)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--butter);z-index:25}
.site-head .bar{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:var(--max);margin:0 auto;padding:14px var(--pad)}
.logo{font-weight:700;font-size:24px;text-decoration:none}
.site-head nav{display:flex;align-items:center;gap:24px;font-size:17px}
.site-head nav a:not(.btn){text-decoration:none}
.site-head nav a:not(.btn):hover{text-decoration:underline}
.site-head .btn{font-size:16px;padding:10px 20px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--pink);color:var(--white);text-decoration:none;font-weight:700;font-size:20px;padding:15px 30px;border-radius:999px;border:0;cursor:pointer;transition:transform .15s ease,background-color .15s ease}
.btn:hover{transform:translateY(-2px);background:#F0328E}
.btn:active{transform:translateY(0)}
.btn.ghost{background:transparent;color:var(--plum);border:2px solid var(--plum)}
.btn.ghost:hover{background:var(--plum);color:var(--white)}
.note{font-size:16px;color:var(--plum-soft);margin-top:12px}

/* hero */
.hero{padding-top:clamp(24px,5vw,56px)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,6vw,72px);align-items:center}
.hero h1{font-size:clamp(50px,7.4vw,92px);line-height:1;margin-bottom:.32em}
.hero .lead{font-size:clamp(22px,1.8vw + 10px,28px);margin-bottom:.3em}
.hero .langs{margin-bottom:28px}
.polaroid{justify-self:center;background:var(--white);padding:16px 16px 10px;width:min(100%,360px);transform:rotate(-4deg);box-shadow:0 14px 34px rgba(58,18,64,.2)}
.photo{position:relative;aspect-ratio:1/1.05;background:var(--blush);overflow:hidden}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo svg{position:absolute;inset:0;width:100%;height:100%}
.polaroid .cap{font-size:clamp(22px,2vw,27px);text-align:center;margin:10px 0 2px}

/* intro media */
.hear{background:var(--white)}
.hear .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,64px);align-items:center}
.media-box{background:var(--blush);border-radius:28px;padding:clamp(16px,2.5vw,24px)}
.media-box video{width:100%;border-radius:18px;background:var(--plum)}
.media-box audio{width:100%}
.hear details{margin-top:14px}
.hear summary{cursor:pointer;font-weight:700}

/* intro copy */
.intro .lines{font-size:clamp(26px,2.6vw + 10px,40px);line-height:1.18}
.story{margin:clamp(32px,5vw,52px) 0;background:var(--white);border-radius:28px;padding:clamp(24px,4vw,44px);max-width:760px;transform:rotate(-1deg)}
.story h3{font-size:clamp(32px,3.6vw,46px)}

/* sound familiar */
.familiar{background:var(--plum);color:var(--white)}
.familiar h2{color:var(--white)}
.bubbles{list-style:none;margin:0 0 clamp(32px,5vw,48px);padding:0;display:flex;flex-wrap:wrap;gap:12px}
.bubbles li{font-size:clamp(18px,1.4vw + 10px,24px);line-height:1.25;padding:12px 22px;border-radius:999px;color:var(--plum)}
.bubbles li:nth-child(odd){background:var(--butter)}
.bubbles li:nth-child(even){background:var(--pink-soft)}
.familiar .stuff{font-size:clamp(28px,2.6vw + 10px,40px);font-weight:700;margin-bottom:.3em}

/* read the room */
.room h2{font-size:clamp(48px,8vw,104px)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 clamp(28px,4vw,44px)}
.pair p{margin:0;max-width:none;background:var(--white);border-radius:24px;padding:clamp(20px,3vw,30px);font-size:clamp(21px,1.6vw + 10px,28px);line-height:1.25}
.room .kicker{font-size:clamp(30px,3.4vw + 10px,52px);font-weight:700;line-height:1.05;max-width:14em}

/* steps */
.how{background:var(--white)}
.steps{list-style:none;margin:0 0 36px;padding:0;counter-reset:s}
.steps li{display:grid;grid-template-columns:clamp(56px,8vw,88px) 1fr;gap:clamp(12px,3vw,24px);align-items:center;padding:20px 0;border-top:2px solid var(--plum)}
.steps li:last-child{border-bottom:2px solid var(--plum)}
.steps li::before{counter-increment:s;content:counter(s);font-weight:700;font-size:clamp(48px,6vw,76px);line-height:.9;color:var(--pink)}
.steps p{margin:0;font-size:clamp(19px,1.2vw + 12px,24px)}
.steps strong{font-weight:700}

/* sessions */
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}
.card{background:var(--white);border-radius:28px;padding:clamp(22px,3vw,34px);display:flex;flex-direction:column}
.card .price{font-size:clamp(44px,5vw,64px);font-weight:700;line-height:1;margin:.1em 0 .25em}
.card ul{margin:0 0 24px;padding-left:1.1em}
.card li{margin-bottom:4px}
.card .btn{margin-top:auto;align-self:flex-start}
.card.pack{background:var(--pink-soft)}
.card.duo{background:var(--blush)}
.card.monthly{background:var(--white)}
.card .per{font-size:.4em;font-weight:500}
.card .ways{margin-top:22px;padding-top:16px;border-top:1.5px solid rgba(58,18,64,.2);font-size:16px}
.card .ways p{margin:0 0 10px;max-width:none}
.ways a{font-weight:700;color:var(--pink);white-space:nowrap}
.hard{background:var(--blush)}
.hard .lines{margin-bottom:28px}
.card .price.small{font-size:clamp(26px,2.6vw,34px);margin:.3em 0 .5em}

/* teams */
.teams{background:var(--pink-soft)}
.teams .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center}
.teams h2{margin:0}

/* about */
.about{background:var(--white)}
.about .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px)}

/* faq */
.faq details{border-top:2px solid var(--plum)}
.faq details:last-of-type{border-bottom:2px solid var(--plum)}
.faq summary{cursor:pointer;list-style:none;font-weight:700;font-size:clamp(20px,1.4vw + 12px,26px);padding:18px 48px 18px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:34px;line-height:1;color:var(--pink);transition:transform .2s ease}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq details p{margin:0 0 18px}

/* fine print + closing */
.fine{background:var(--white);padding:36px 0;border-top:3px solid var(--plum)}
.fine p{margin:0}
.closing{text-align:left}
.closing h2{font-size:clamp(52px,9vw,120px)}
.closing .actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin-top:24px}
.mail{font-weight:700}

/* footer */
.site-foot{background:var(--plum);color:var(--white);padding:36px 0;font-size:16px}
.site-foot .wrap{display:flex;flex-wrap:wrap;gap:14px 32px;justify-content:space-between}
.site-foot p{margin:0;max-width:none}
.site-foot nav{display:flex;gap:20px;flex-wrap:wrap}

/* legal pages */
.legal{padding:clamp(40px,6vw,72px) 0}
.legal .wrap{max-width:800px}
.legal h1{font-size:clamp(40px,6vw,64px);margin-bottom:.3em}
.legal h2{font-size:clamp(24px,2.4vw,30px);margin:1.6em 0 .5em}
.legal p,.legal li{max-width:none}
.legal ul{padding-left:1.2em}
.legal .updated{color:var(--plum-soft)}
.legal table{border-collapse:collapse;width:100%;margin:8px 0 16px;font-size:16px}
.legal th,.legal td{text-align:left;vertical-align:top;border-bottom:1px solid rgba(58,18,64,.25);padding:10px 12px 10px 0}
.table-scroll{overflow-x:auto}

.form-sample{margin:12px 0 20px;padding:18px 20px;background:var(--white);border-left:4px solid var(--pink);border-radius:8px}
.form-sample p{margin:0 0 6px}
.legal h3{font-size:clamp(20px,2vw,24px);margin:1.2em 0 .4em}
[hidden]{display:none!important}

@media (max-width:820px){
  .site-head nav a:not(.btn){display:none}
  .hero .wrap,.hear .wrap,.teams .wrap,.about .cols,.pair,.cards{grid-template-columns:1fr}
  .polaroid{width:min(78%,300px);margin-top:8px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;scroll-behavior:auto!important}
  .btn:hover{transform:none}
}
