/* Playcebo — shared site styles for static pages.
   Tokens and motifs mirror index.html (which stays self-contained
   to protect its intro animation). Keep the two in step. */

:root{
  --paper:#FBFBF8;
  --ink:#1A1A1A;
  --teal:#127569;
  --pink:#F62459;
  --amber:#FFC531;
  --line:rgba(18,117,105,.22);
  --faint:rgba(18,117,105,.07);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  background-image:radial-gradient(var(--faint) 1px, transparent 1.5px);
  background-size:26px 26px;
  color:var(--ink);
  font-family:'Outfit',system-ui,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--pink);color:#fff}
img{display:block;max-width:100%}
a{color:var(--teal)}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px;border-radius:2px}

.px{font-family:'Silkscreen',monospace;font-weight:400;letter-spacing:.04em}

main{max-width:1020px;margin:0 auto;padding:0 24px}

/* ---------- shared header ---------- */
.site-head{max-width:1020px;margin:0 auto;padding:18px 24px;
  display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.site-head .brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.site-head .brand .mk{height:30px;width:auto}
.site-head .brand .wd{height:17px;width:auto}
.site-head nav{margin-left:auto;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.site-head nav a.px{font-size:10px;color:var(--teal);text-decoration:none;padding:4px 0}
.site-head nav a.px:hover{color:var(--pink)}
.site-head nav a.px[aria-current="page"]{color:var(--pink)}
/* Hamburger toggle — hidden on desktop, shown on mobile via the media query. */
.nav-toggle{display:none;margin-left:auto;width:42px;height:42px;border:1.5px solid var(--line);
  border-radius:10px;background:var(--paper,#fffdfa);cursor:pointer;align-items:center;justify-content:center;flex:none}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{content:"";display:block;width:20px;height:2px;
  background:var(--teal);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.nav-toggle span{position:relative}
.nav-toggle span::before{position:absolute;top:-6px}
.nav-toggle span::after{position:absolute;top:6px}
/* When open, morph the bars into an X. */
.site-head[data-open] .nav-toggle span{background:transparent}
.site-head[data-open] .nav-toggle span::before{top:0;transform:rotate(45deg)}
.site-head[data-open] .nav-toggle span::after{top:0;transform:rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:'Outfit',system-ui,sans-serif;font-weight:600;font-size:16px;letter-spacing:.01em;
  background:var(--pink);color:#fff;text-decoration:none;padding:14px 30px;border:none;cursor:pointer;
  box-shadow:5px 5px 0 0 var(--teal);transition:transform .12s ease,box-shadow .12s ease}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 0 var(--teal)}
.btn:active{transform:translate(3px,3px);box-shadow:2px 2px 0 0 var(--teal)}
.btn.mini{padding:9px 18px;font-size:14px;box-shadow:4px 4px 0 0 var(--teal)}
.btn.mini:hover{box-shadow:6px 6px 0 0 var(--teal)}
.btn.mini:active{box-shadow:2px 2px 0 0 var(--teal)}

/* ---------- page rhythm ---------- */
section{padding:64px 0;scroll-margin-top:20px}
.page-hero{padding:72px 0 56px}
.sec-eyebrow{font-size:11px;color:var(--teal);margin-bottom:14px}
.sec-eyebrow .sep{color:var(--pink)}
h1{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(32px,5vw,48px);
  letter-spacing:-.015em;line-height:1.08;margin-bottom:18px}
h2{font-family:'Archivo',sans-serif;font-weight:800;font-size:clamp(24px,3.6vw,34px);
  letter-spacing:-.015em;line-height:1.1;margin-bottom:16px}
h3{font-family:'Archivo',sans-serif;font-weight:700;font-size:19px;letter-spacing:-.01em;margin-bottom:10px}
.lede{max-width:640px;font-size:clamp(17px,2vw,19px);color:#3a3f3d}

.prose{max-width:680px}
.prose p{margin-bottom:18px;color:#3a3f3d}
.prose p strong{color:var(--ink)}
.prose h2{margin-top:40px}
.prose ul,.prose ol{margin:0 0 18px 22px;color:#3a3f3d}
.prose li{margin-bottom:8px}
.prose .hairline{border:none;border-top:1.5px dashed var(--line);margin:32px 0}

/* ---------- pixel dissolve divider ---------- */
.dissolve{display:flex;align-items:center;gap:7px;justify-content:center;margin:0 auto;padding:8px 0}
.dissolve i{background:var(--pink);display:block}
.dissolve i:nth-child(1){width:44px;height:10px}
.dissolve i:nth-child(2){width:12px;height:10px}
.dissolve i:nth-child(3){width:10px;height:10px}
.dissolve i:nth-child(4){width:8px;height:8px}
.dissolve i:nth-child(5){width:6px;height:6px}
.dissolve i:nth-child(6){width:5px;height:5px;opacity:.75}
.dissolve i:nth-child(7){width:4px;height:4px;opacity:.5}
.dissolve i:nth-child(8){width:3px;height:3px;opacity:.3}

/* ---------- card ---------- */
.card{width:100%;background:#fff;border:1.5px solid var(--ink);position:relative;
  box-shadow:8px 8px 0 0 rgba(18,117,105,.16)}
.card::before,.card::after{content:"";position:absolute;width:10px;height:10px;background:var(--pink)}
.card::before{top:-5.5px;right:14px}
.card::after{bottom:-5.5px;left:14px;background:var(--teal)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:14px 22px;border-bottom:1.5px dashed var(--line)}
.card-head .study{font-size:10px;color:var(--teal)}
.card-body{padding:28px 26px 30px}
.status{font-size:10px;color:var(--teal);display:inline-flex;align-items:center;gap:8px}
.status .dot{width:8px;height:8px;background:var(--amber);display:inline-block;animation:blink 1.6s steps(2,start) infinite}
@keyframes blink{50%{opacity:.25}}

/* compact enrolment call-back */
.callback-wrap{display:flex;justify-content:center}
.callback{max-width:560px;text-align:center}
.callback h2{font-size:clamp(22px,3vw,28px);margin-bottom:10px}
.callback p{font-size:16px;color:#3a3f3d;margin-bottom:24px}

/* ---------- FAQ ---------- */
.faq-list{max-width:720px;margin-top:40px}
.faq-list details{background:#fff;border:1.5px solid var(--ink);margin-bottom:16px;position:relative;
  box-shadow:5px 5px 0 0 rgba(18,117,105,.16)}
.faq-list details::before{content:"";position:absolute;top:-5.5px;right:14px;width:10px;height:10px;background:var(--pink)}
.faq-list details[open]::before{background:var(--teal)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px;
  padding:18px 22px;font-family:'Archivo',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.01em}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .qnum{font-family:'Silkscreen',monospace;font-weight:400;font-size:10px;color:var(--pink);flex:none}
.faq-list summary::after{content:"+";margin-left:auto;color:var(--teal);font-family:'Silkscreen',monospace;font-size:14px}
.faq-list details[open] summary::after{content:"−"}
.faq-list details[open] summary{border-bottom:1.5px dashed var(--line)}
.faq-list .answer{padding:16px 22px 20px;font-size:16px;color:#3a3f3d}
.faq-list .answer p{margin-bottom:12px}
.faq-list .answer p:last-child{margin-bottom:0}

/* ---------- blog ---------- */
.note-grid{display:grid;gap:26px;margin-top:44px}
.note-card{display:block;text-decoration:none;color:var(--ink);background:#fff;
  border:1.5px solid var(--ink);position:relative;padding:24px 26px;
  box-shadow:6px 6px 0 0 rgba(18,117,105,.16);
  transition:transform .12s ease,box-shadow .12s ease}
.note-card::before{content:"";position:absolute;top:-5.5px;right:14px;width:10px;height:10px;background:var(--pink)}
.note-card::after{content:"";position:absolute;bottom:-5.5px;left:14px;width:10px;height:10px;background:var(--teal)}
.note-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 0 rgba(18,117,105,.22)}
.note-card .meta{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.note-card .meta .num{font-size:10px;color:var(--pink)}
.note-card .meta time{font-size:13px;color:#7c847f}
.note-card h2{font-size:clamp(20px,2.8vw,26px);margin-bottom:8px}
.note-card .excerpt{font-size:16px;color:#3a3f3d}
.note-card .read{margin-top:14px;font-size:10px;color:var(--teal)}
.note-card:hover .read{color:var(--pink)}

.post-meta{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.post-meta .num{font-size:10px;color:var(--pink)}
.post-meta time{font-size:14px;color:#7c847f}

/* ---------- footer ---------- */
footer{border-top:1.5px solid var(--line);margin-top:40px;padding:34px 24px 44px}
.foot-inner{max-width:1020px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}
.foot-inner img{height:26px;width:auto}
.foot-inner p{margin-left:auto;font-size:13.5px;line-height:1.35;text-align:right;color:#7c847f}
.foot-inner p span{display:block;white-space:nowrap}
.foot-inner p span.legal-links{white-space:normal}
.foot-inner p span.legal-links a{color:inherit;text-decoration:underline}

@media (max-width:720px){
  section{padding:52px 0}
  .page-hero{padding:48px 0 40px}
}
@media (max-width:620px){
  .site-head{padding:14px 16px;gap:12px;position:relative}
  /* Show the hamburger; hide the inline nav until opened. */
  .nav-toggle{display:flex}
  .site-head nav{display:none}
  /* When open, the nav drops down as a full-width panel below the header. */
  .site-head[data-open] nav{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;top:100%;left:0;right:0;z-index:40;
    background:var(--paper,#fffdfa);border-bottom:1.5px solid var(--line);
    box-shadow:0 12px 24px rgba(0,0,0,.08);padding:6px 16px 14px}
  .site-head[data-open] nav a.px{font-size:14px;padding:12px 4px;border-bottom:1px solid var(--line)}
  .site-head[data-open] nav a.btn.mini{margin-top:12px;text-align:center}
  footer{padding:28px 16px 30px}
  .foot-inner{gap:10px;flex-wrap:nowrap}
  .foot-inner img{height:24px;flex:none}
  .foot-inner p{min-width:0;font-size:11.5px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
