:root { --ink:#0A0A08; --paper:#F8F5EE; --blue:#0026FF; }
* { box-sizing:border-box; }
html, body { width:100%; min-height:100%; margin:0; }
body { overflow:hidden; background:var(--paper); color:var(--ink); font-family:Helvetica,"Helvetica Neue",Arial,sans-serif; }
button { font:inherit; }
.manifesto {
  position:fixed; inset:0; display:grid; place-items:center;
  padding:clamp(1.25rem,4vw,4rem); isolation:isolate;
}
.manifesto > *:first-child { align-self:end; }
.manifesto > *:last-child { align-self:start; }
.phrase {
  position:relative; z-index:2; width:min(900px,80vw); min-height:3.2em;
  display:flex; align-items:center; align-content:center; justify-content:center; flex-wrap:wrap;
  gap:.04em .22em; text-align:center; font-size:clamp(1.25rem,2vw,2.5rem); line-height:.75;
  letter-spacing:-.055em; cursor:default; transition:opacity 36ms linear,transform 36ms linear;
  text-wrap:balance;
}
.phrase.is-switching { opacity:0; transform:scale(.985); }
.plain { display:inline; }
.punk { display:inline-flex; align-items:center; height:1.5em; color:var(--ink); margin-inline:.015em; transform:scale(1); }
.punk img { display:block; width:auto; height:100%; overflow:visible; fill:currentColor; }
.spot {
  position:fixed; z-index:1; left:0; top:0; width:14px; height:14px; border-radius:50%;
  background:var(--blue); pointer-events:none; transform:translate3d(-100px,-100px,0);
  transition:width 120ms ease,height 120ms ease,opacity 120ms ease; opacity:0; display:none;
}
body.has-pointer .spot { opacity:1; }
body.is-near .spot { width:24px; height:24px; }
body.is-paused .spot { width:38px; height:38px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
#yoyoga-souljuice img { height:4rem; max-width:80%; }
@media (max-width:680px) {
  .manifesto { padding:1.2rem; }
  .phrase { width:94vw; font-size:clamp(2.15rem,11vw,4.5rem); line-height:.93; }
  .spot { display:none; }
}
@media (prefers-reduced-motion:reduce) { .phrase { transition:none; } }
