/* PULP — THE POSTER
   Three colours that fight — lime, magenta, cobalt — and black type on every
   one of them, because black on any of these clears the contrast floor and
   white does not. Type at poster scale, a ticker that never stops, and
   everything reacts. The grid underneath is strict. */
*,*::before,*::after{box-sizing:border-box}*{margin:0}
:root{
  --lime:#d8ff3d; --mag:#ff2d8a; --cob:#2b3cff; --blk:#0b0b0f; --white:#ffffff;
  --sans:"Archivo",system-ui,sans-serif; --mono:ui-monospace,"SF Mono",Menlo,monospace;
  --pop:cubic-bezier(.2,1.4,.4,1);
}
body{background:var(--lime);color:var(--blk);font-family:var(--sans);font-size:17px;line-height:1.5;font-weight:500;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
h1,h2{font-weight:900;line-height:.86;letter-spacing:-.045em;text-transform:uppercase}
ul{list-style:none;padding:0}
.demo{background:var(--blk);color:var(--lime);font-family:var(--mono);font-size:11px;
  letter-spacing:.13em;text-transform:uppercase;padding:8px 16px;text-align:center}
.demo b{font-weight:400;color:var(--mag)}
.small{font-size:14px;max-width:60ch;margin-top:28px;font-weight:500}

/* the ticker never stops */
.ticker,.band{overflow:hidden;background:var(--blk);color:var(--lime);font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.ticker div,.band div{display:flex;width:max-content;animation:tick 18s linear infinite}
.ticker span,.band span{padding:10px 0;font-size:14px}
.band{background:var(--mag);color:var(--blk);border-top:4px solid var(--blk);border-bottom:4px solid var(--blk)}
.band span{font-size:clamp(2rem,1rem + 4vw,4.5rem);padding:14px 0;letter-spacing:-.03em}
@keyframes tick{to{transform:translateX(-50%)}}

.top{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(16px,4vw,48px);border-bottom:4px solid var(--blk)}
.brand{font-weight:900;font-size:2rem;letter-spacing:-.06em}
.top nav{display:flex;gap:22px;align-items:center;font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.02em}
.top nav a:not(.pill){border-bottom:3px solid transparent;transition:border-color 200ms}
.top nav a:not(.pill):hover{border-color:var(--blk)}
.pill{background:var(--blk);color:var(--lime);padding:12px 18px;border:3px solid var(--blk);transition:transform 350ms var(--pop),background 200ms,color 200ms}
.pill:hover{background:var(--mag);color:var(--blk);transform:translateY(-3px) rotate(-2deg)}

/* the hero: giant type and a sticker that spins */
.hero{position:relative;padding:clamp(40px,8vh,96px) clamp(16px,4vw,48px) clamp(60px,10vh,120px);border-bottom:4px solid var(--blk);overflow:hidden}
.hero h1{font-size:min(clamp(4.5rem,2rem + 15vw,19rem),20vh);max-width:8ch}
.hero h1 span{display:block}
.hero__alt{color:var(--cob);-webkit-text-stroke:0;font-style:italic}
.hero__block{display:inline-block;margin-top:28px;background:var(--mag);border:4px solid var(--blk);box-shadow:8px 8px 0 var(--blk);
  padding:12px 18px;font-weight:800;font-size:clamp(1.125rem,1rem + 1vw,1.75rem);text-transform:uppercase;letter-spacing:-.01em;
  transform:rotate(-1.5deg);transition:transform 350ms var(--pop)}
.hero__block:hover{transform:rotate(1deg) scale(1.03)}
.sticker{position:absolute;right:clamp(8px,5vw,80px);top:clamp(20px,6vh,60px);width:clamp(120px,18vw,240px);height:auto;animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* the menu: cards that swap colour under the cursor */
.menu{padding:clamp(40px,8vh,96px) clamp(16px,4vw,48px)}
.menu h2,.find h2{font-size:clamp(2.5rem,1.4rem + 5vw,6rem);margin-bottom:28px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{position:relative;padding:22px 20px 20px;border:4px solid var(--blk);box-shadow:8px 8px 0 var(--blk);min-height:220px;
  display:flex;flex-direction:column;gap:6px;transition:transform 350ms var(--pop),background 250ms,box-shadow 350ms var(--pop)}
.card:hover{transform:translate(-4px,-6px) rotate(-1deg);box-shadow:14px 14px 0 var(--blk)}
.card__n{font-family:var(--mono);font-size:12px;letter-spacing:.2em;margin-bottom:auto}
.card b{font-weight:900;font-size:clamp(1.5rem,1.1rem + 1.6vw,2.5rem);line-height:.95;letter-spacing:-.04em;text-transform:uppercase}
.card i{font-style:normal;font-size:15px}
.card em{font-style:normal;position:absolute;right:16px;top:14px;font-weight:900;font-size:1.5rem}
.card--lime{background:var(--lime)}.card--lime:hover{background:var(--mag)}
.card--mag{background:var(--mag)}.card--mag:hover{background:var(--cob);color:var(--white)}
.card--cob{background:var(--cob);color:var(--white)}.card--cob:hover{background:var(--lime);color:var(--blk)}
.card--blk{background:var(--blk);color:var(--lime)}.card--blk:hover{background:var(--white);color:var(--blk)}
@media(max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}

.find{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(24px,5vw,80px);align-items:end;
  padding:clamp(40px,8vh,96px) clamp(16px,4vw,48px);background:var(--cob);color:var(--white)}
.find__big{font-weight:800;font-size:clamp(1.375rem,1rem + 1.8vw,2.5rem);line-height:1.1;letter-spacing:-.02em;margin-bottom:16px;max-width:20ch}
.find p:last-child{max-width:40ch}
.find__tel{justify-self:end;background:var(--lime);color:var(--blk);border:4px solid var(--blk);box-shadow:8px 8px 0 var(--blk);
  padding:18px 24px;font-weight:900;font-size:clamp(1.5rem,1rem + 2.4vw,3rem);letter-spacing:-.03em;
  transition:transform 350ms var(--pop)}
.find__tel:hover{transform:translateY(-4px) rotate(2deg)}
@media(max-width:700px){.find{grid-template-columns:1fr}.find__tel{justify-self:start}}

.foot{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;
  border-top:4px solid var(--blk);padding:18px clamp(16px,4vw,48px) 40px;
  font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase}
.back{display:inline-flex;gap:9px;border:3px solid var(--blk);padding:9px 14px;font-weight:800;transition:transform 350ms var(--pop),background 200ms,color 200ms}
.back:hover{background:var(--blk);color:var(--lime);transform:translateY(-2px)}

@media(prefers-reduced-motion:reduce){
  .ticker div,.band div,.sticker{animation:none}
  .card:hover,.pill:hover,.hero__block:hover,.find__tel:hover,.back:hover{transform:none}
}
