:root{
  --cocoa:#2A1812; --bark:#5C3A2B; --hide:#8A5A44;
  --blush:#FBDDE7; --bubble:#FF6FA5; --bone:#F1DCC8; --muted:#E9C9D5;
  --display:"Bowlby One","Arial Black",system-ui,sans-serif;
  --body:Rubik,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:0}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font:400 1.0625rem/1.6 var(--body);background:var(--cocoa);color:var(--blush);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--bubble);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--bubble);color:var(--cocoa);padding:.6rem 1rem;z-index:20}
.skip:focus{left:0}

/* Header */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.25rem;background:var(--cocoa);border-bottom:2px solid var(--bark)}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font:1.2rem var(--display)}
.brand svg{width:38px;height:38px}
.top nav{display:flex;gap:1.1rem}
.top nav a{text-decoration:none;font-weight:500}
.top nav a:hover{text-decoration:underline;text-decoration-color:var(--bubble);text-decoration-thickness:3px;text-underline-offset:5px}

/* Hero */
.hero{max-width:1100px;margin:0 auto;padding:2.5rem 1.25rem 4rem;display:grid;gap:2rem;align-items:center}
.hero-art{order:-1;position:relative;width:min(72vw,440px);aspect-ratio:1;margin-inline:auto}
.disc{position:absolute;inset:8%;border-radius:50%;background:var(--bubble);box-shadow:10px 10px 0 var(--bark)}
.hero-art svg{position:relative;width:100%;height:100%;overflow:visible;cursor:pointer;transform-origin:50% 90%}
h1{margin:0;font:clamp(2.4rem,12vw,5rem)/.95 var(--display);text-shadow:.05em .05em 0 var(--bubble);overflow-wrap:normal;hyphens:none}
.tagline{margin:1.5rem 0 .5rem;font-size:clamp(1.25rem,3vw,1.6rem);font-weight:500}
.sub{margin:0 0 1.75rem;max-width:34rem;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:1rem}
@media (min-width:860px){
  .hero{grid-template-columns:1.1fr .9fr;min-height:calc(100svh - 64px)}
  .hero-art{order:0;width:100%}
  h1{font-size:clamp(3rem,6.8vw,5rem)}
}

/* Buttons */
.btn{--sh:var(--blush);display:inline-block;padding:.85rem 1.6rem;border:3px solid transparent;border-radius:999px;font:700 1rem var(--body);text-decoration:none;cursor:pointer;box-shadow:4px 4px 0 var(--sh);transition:transform .12s,box-shadow .12s}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--sh)}
.btn-primary{background:var(--bubble);color:var(--cocoa)}
.btn-ghost{border-color:var(--blush);color:var(--blush);box-shadow:none}
.light .btn{--sh:var(--cocoa)}

/* Bands */
.band{padding:4.5rem 1.25rem}
.wrap{max-width:1100px;margin:0 auto}
.light{background:var(--blush);color:var(--cocoa)}
.brown{background:var(--bark);color:var(--blush)}
h2{margin:0 0 .75rem;font:clamp(2rem,6vw,3.25rem)/1.05 var(--display)}
.lead{max-width:38rem;margin:0 0 2.5rem}

/* Games grid: 1 column mobile, 2 columns desktop */
.grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:1.75rem}
@media (min-width:760px){.grid{grid-template-columns:repeat(2,1fr)}}
.card{height:100%;display:flex;flex-direction:column;overflow:hidden;background:#FFF3F7;border:3px solid var(--cocoa);border-radius:20px;box-shadow:6px 6px 0 var(--cocoa)}
.shot{aspect-ratio:16/9;display:grid;place-items:center;border-bottom:3px solid var(--cocoa);background:repeating-linear-gradient(45deg,#FFB3CF 0 14px,#FF8FB8 14px 28px)}
.shot span{padding:.3rem .8rem;border-radius:999px;background:var(--cocoa);color:var(--blush);font-size:.85rem}
.shot img{display:block;width:100%;height:100%;object-fit:cover}
.card-body{flex:1;display:flex;flex-direction:column;gap:.6rem;padding:1.25rem 1.5rem 1.5rem}
.tag{align-self:flex-start;padding:.15rem .7rem;border:2px solid var(--cocoa);border-radius:999px;background:var(--bubble);font-size:.85rem;font-weight:700}
h3{margin:0;font:1.5rem/1.15 var(--display)}
.card p{margin:0;max-width:60ch;color:#4A2F25}
.card-body a{margin-top:auto;padding-top:.4rem;font-weight:700;text-decoration:underline;text-decoration-color:var(--bubble);text-decoration-thickness:3px;text-underline-offset:4px}

/* About */
.about{display:grid;gap:2.5rem}
.about p{max-width:36rem;margin:0 0 1rem}
.pillars{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
.pillars li{padding-left:1rem;border-left:5px solid var(--bubble)}
.pillars strong{display:block;font:1.25rem var(--display);margin-bottom:.2rem}
@media (min-width:860px){.about{grid-template-columns:1.1fr .9fr;align-items:center}}

/* Contact */
.form{display:grid;gap:1rem;max-width:640px}
label{display:grid;gap:.35rem;font-weight:500}
input,textarea{width:100%;padding:.8rem 1rem;border:3px solid var(--cocoa);border-radius:12px;background:#fff;color:var(--cocoa);font:inherit}
textarea{min-height:9rem;resize:vertical}
.form .btn{justify-self:start}
.status{min-height:1.6em;margin:0;font-weight:500}

/* Footer */
.foot{padding:2rem 1.25rem;text-align:center;font-size:.9rem;color:var(--muted)}
.foot p{margin:0}

/* The one moment of motion: the bull drops in, and squashes when clicked */
@media (prefers-reduced-motion:no-preference){
  .hero-art svg{animation:drop .8s cubic-bezier(.3,1.6,.5,1) both}
  .hero-art svg.bump{animation:bump .45s ease-out}
}
@keyframes drop{from{transform:translateY(-40px) scaleY(1.08);opacity:0}to{transform:none;opacity:1}}
@keyframes bump{30%{transform:scale(1.08,.9)}60%{transform:scale(.96,1.05)}to{transform:none}}

/* Language toggle + header layout (mobile: two rows, desktop: one sticky row) */
.lang{display:flex;border:2px solid var(--blush);border-radius:999px;overflow:hidden}
.lang button{padding:.3rem .75rem;border:0;background:transparent;color:var(--blush);font:700 .85rem var(--body);cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--bubble);color:var(--cocoa)}
.top{position:static;flex-wrap:wrap}
.brand{order:1}
.lang{order:2}
.top nav{order:3;width:100%;gap:1.25rem}
@media (min-width:640px){
  html{scroll-padding-top:72px}
  .top{position:sticky;flex-wrap:nowrap}
  .brand,.lang,.top nav{order:0}
  .top nav{width:auto;gap:1.1rem}
}
