/* ============================================================
   REMAKES — SICK AGENCY broadside design system (shared)
   Loud printed broadside. Maximalist zine spread.
   Yellow / orange / cobalt full-bleed bands, no shadows,
   no gradients, no rounded corners except 999px pills.
   ============================================================ */

:root{
  --yellow:#f5b700;
  --orange:#ff4e27;
  --cobalt:#0029ff;
  --sienna:#4d170c;
  --black:#000000;
  --white:#ffffff;
  --morganite:'Anton','Bebas Neue',Impact,sans-serif;
  --thunder:'Josefin Sans',ui-sans-serif,sans-serif;
  --sentient:'Spectral',Georgia,serif;
  --fine:Georgia,'Times New Roman',times,serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  background:var(--yellow);color:var(--black);
  font-family:var(--sentient);line-height:1.5;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}

.band{width:100%;}
.yellow{background:var(--yellow);color:var(--black);}
.orange{background:var(--orange);color:var(--white);}
.cobalt{background:var(--cobalt);color:var(--white);}
.ink{background:var(--black);color:var(--white);}

/* Pill buttons — the only softness in the system */
.btn{
  display:inline-block;font-family:var(--sentient);font-size:16px;
  padding:8px 26px;border-radius:999px;border:2px solid var(--cobalt);
  color:var(--cobalt);transition:background .2s,color .2s;
}
.btn:hover{background:var(--cobalt);color:var(--white);}
.btn.primary{background:var(--cobalt);border-color:var(--cobalt);color:var(--white);}
.btn.primary:hover{background:var(--black);border-color:var(--black);}
.btn.on-dark{border-color:var(--white);color:var(--white);}
.btn.on-dark:hover{background:var(--white);color:var(--black);}

/* Sticker badges — circular, contrasting, CTA punctuation */
.sticker{
  position:absolute;display:grid;place-items:center;align-content:center;
  width:140px;height:140px;border-radius:50%;
  font-family:var(--fine);font-size:11px;line-height:1.2;text-align:center;
  letter-spacing:.05em;text-transform:uppercase;
}
.sticker b{font-size:20px;font-family:var(--morganite);font-weight:400;display:block;line-height:1;}
.sticker small{display:block;margin-top:4px;font-size:9px;}

/* ================= ARTICLE (devlog / about) ================= */
.article-nav{
  position:sticky;top:0;z-index:50;background:var(--yellow);color:var(--black);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 5vw;border-bottom:3px solid var(--black);flex-wrap:wrap;
}
.article-nav .brand{font-family:var(--morganite);font-weight:400;font-size:30px;line-height:1;display:flex;align-items:center;gap:10px;}
.article-nav .brand .swatch{width:16px;height:16px;border-radius:50%;background:var(--cobalt);display:inline-block;}
.article-nav .links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.article-nav .links a{font-family:var(--sentient);font-size:13px;letter-spacing:-.01em;padding:6px 16px;border-radius:999px;border:2px solid var(--black);transition:background .2s,color .2s;}
.article-nav .links a:hover{background:var(--black);color:var(--yellow);}
.article-nav .links a.cta{background:var(--cobalt);border-color:var(--cobalt);color:var(--white);}
.article-nav .links a.cta:hover{background:var(--black);border-color:var(--black);color:var(--yellow);}
@media(max-width:640px){.article-nav .links{width:100%;order:3;}}

.article-wrap{max-width:880px;margin:0 auto;padding:0 5vw;}

.article-hero{padding:70px 0 50px;position:relative;}
.article-hero .sticker{right:-20px;top:10px;}
.article-eyebrow{font-family:var(--fine);font-size:12px;text-transform:uppercase;letter-spacing:.18em;display:inline-flex;align-items:center;gap:12px;margin-bottom:26px;}
.article-eyebrow::before{content:'';width:34px;height:2px;background:var(--black);display:inline-block;}
.article-hero h1{
  font-family:var(--morganite);font-weight:400;
  font-size:clamp(66px,13vw,150px);line-height:.72;letter-spacing:.01em;
  text-transform:uppercase;margin-bottom:34px;
}
.article-tagline{font-size:16px;line-height:1.44;letter-spacing:-.015em;max-width:520px;}
.article-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;}
.article-tag{font-family:var(--fine);font-size:12px;text-transform:uppercase;letter-spacing:.1em;border:2px solid var(--black);border-radius:999px;padding:4px 16px;}
.article-date{font-family:var(--fine);font-size:12px;text-transform:uppercase;letter-spacing:.1em;opacity:.6;}

/* Body */
.article-body{
  padding:44px clamp(24px,5vw,60px) 90px;
  background:var(--white);
  color:var(--black);
  border:3px solid var(--black);
  border-top:none;
  box-shadow:8px 8px 0 var(--black);
  max-width:1000px;
  margin:0 auto;
}
.hairline{height:3px;background:var(--black);width:100%;}
.article-body h2{
  font-family:var(--morganite);font-weight:400;
  font-size:clamp(40px,7vw,64px);line-height:.75;text-transform:uppercase;
  margin:70px 0 24px;
}
.article-body h3{font-family:var(--morganite);font-weight:400;font-size:clamp(26px,4vw,38px);line-height:.8;text-transform:uppercase;margin:44px 0 16px;}
.article-body p{font-size:17px;line-height:1.6;letter-spacing:-.012em;margin-bottom:22px;max-width:66ch;}
.article-body strong{font-weight:700;}
.article-body a{color:var(--cobalt);border-bottom:2px solid var(--cobalt);}
.article-body a:hover{background:var(--cobalt);color:var(--white);}
.article-body ul{margin:6px 0 26px;list-style:none;}
.article-body ul li{
  position:relative;padding:14px 0 14px 34px;font-size:17px;line-height:1.5;letter-spacing:-.012em;
  border-bottom:2px solid var(--black);max-width:66ch;
}
.article-body ul li::before{content:'→';position:absolute;left:0;top:15px;font-size:18px;color:var(--cobalt);}
.article-body blockquote{
  font-family:var(--thunder);font-weight:300;
  font-size:clamp(24px,4vw,36px);line-height:1.1;
  padding:30px 0;margin:50px 0;border-top:4px solid var(--cobalt);border-bottom:4px solid var(--cobalt);
  max-width:24ch;
}
.article-body blockquote::before{content:'“';display:block;font-family:var(--fine);font-size:44px;color:var(--cobalt);}
.article-body code{background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.2);padding:1px 7px;font-family:var(--fine);font-size:.92em;}

/* Footer band */
.article-footer{background:var(--black);color:var(--white);padding:70px 5vw;text-align:center;}
.article-footer .foot-brand{font-family:var(--morganite);font-weight:400;font-size:clamp(48px,10vw,110px);line-height:.7;color:var(--yellow);text-transform:uppercase;margin-bottom:28px;}
.article-footer .foot-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-bottom:26px;}
.article-footer .foot-links a{font-family:var(--fine);font-size:12px;text-transform:uppercase;letter-spacing:.1em;border-radius:999px;border:1px solid var(--white);padding:7px 18px;transition:background .2s,color .2s;}
.article-footer .foot-links a:hover{background:var(--yellow);color:var(--black);border-color:var(--yellow);}
.article-footer .foot-note{color:rgba(255,255,255,.55);font-size:13px;line-height:1.7;}
.article-footer .foot-note a{color:var(--yellow);border-bottom:1px solid var(--yellow);}

/* Back to devlog pill */
.back-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:60px;}

/* ============================================================
   FUN — hover pops, ambient float, playful touches
   Shared: applies to both the index and every article page.
   ============================================================ */

/* --- keyframes --- */
@keyframes bounceDown{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-10px) rotate(1deg);}}
@keyframes wiggle{0%,100%{transform:rotate(-2deg);}25%{transform:rotate(3deg);}75%{transform:rotate(-3deg);}}
@keyframes spinSlow{to{transform:rotate(360deg);}}
@keyframes blinkText{0%,100%{opacity:1;}50%{opacity:.35;}}
@keyframes jiggle{0%,100%{transform:rotate(0) translateY(0);}20%{transform:rotate(-8deg);}40%{transform:rotate(8deg);}60%{transform:rotate(-5deg);}80%{transform:rotate(5deg);}}

/* --- buttons: springy pop + press --- */
.btn{
  transition:transform .18s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s,box-shadow .2s;
  will-change:transform;
}
.btn:hover{transform:translateY(-3px) rotate(-1deg);}
.btn:active{transform:translateY(1px) scale(.94);}

/* --- sticker badge: gently bobs; heavier wiggle on hover --- */
.sticker{animation:bob 5s ease-in-out infinite;transition:filter .2s;}
.sticker:hover{animation:wiggle .5s ease-in-out infinite;}
.sticker b{transition:transform .18s cubic-bezier(.34,1.56,.64,1);}
.sticker:hover b{transform:scale(1.12);}

/* --- nav links: bounce in to say hi --- */
.article-nav .brand .swatch{transition:transform .3s;}
.article-nav .brand:hover .swatch{transform:scale(1.35) rotate(180deg);}
.article-nav .links a{transition:transform .16s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s;}
.article-nav .links a:hover{transform:translateY(-3px);}

/* --- footer links --- */
.article-footer .foot-brand{transition:letter-spacing .3s;}
.article-footer .foot-brand:hover{letter-spacing:.06em;color:var(--white);}
.article-footer .foot-links a{transition:transform .16s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s;}
.article-footer .foot-links a:hover{transform:translateY(-3px) rotate(-2deg);}

/* --- article hero title: cheeky hover shift --- */
.article-hero h1{
  transition:transform .3s cubic-bezier(.34,1.56,.64,1),letter-spacing .3s;
}
.article-hero h1:hover{letter-spacing:.015em;}

/* --- article tags: wiggle --- */
.article-tag{transition:background .2s,color .2s,transform .15s;}
.article-tag:hover{background:var(--black);color:var(--yellow);transform:rotate(-6deg);}

/* --- body links --- */
.article-body a{transition:background .2s,color .2s,padding .2s;}
.article-body a:hover{padding:0 4px;}

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