/* Layout for the site pages (home, mundo, 404). Palette and fonts come from /assets/brand.css;
   the look mirrors the game: grid paper, thick ink borders, hard shadows. */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--paper);color:var(--ink)}
body{
  margin:0;font-family:var(--body);font-size:17px;line-height:1.5;
  background:var(--paper);
  
  padding:max(20px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(40px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));
}
a{color:inherit}
img,svg{max-width:100%;display:block}
.wrap{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:24px}

/* Header */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.band{font-family:var(--display);font-weight:700;font-size:clamp(22px,5vw,30px);line-height:1;letter-spacing:.02em;text-decoration:none;transform:rotate(-2deg);display:inline-block}
.nav{display:flex;gap:8px;flex-wrap:wrap}
.nav a{font-family:var(--display);font-size:13px;text-decoration:none;border:2px solid var(--ink);background:var(--card);padding:4px 10px}
.nav a[aria-current="page"]{background:var(--yellow)}

/* Building blocks */
.card{background:var(--card);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:20px;display:flex;flex-direction:column;gap:12px}
h1,h2,h3{font-family:var(--display);line-height:1.1;margin:0;text-wrap:balance}
h1{font-size:clamp(34px,9vw,64px);font-weight:700}
h2{font-size:clamp(20px,4vw,28px);font-weight:700}
h3{font-size:18px;font-weight:400}
p{margin:0;max-width:62ch}
.kicker{font-family:var(--display);font-size:12px;letter-spacing:.08em;align-self:flex-start;background:var(--yellow);border:2px solid var(--ink);padding:0 6px}
.small{font-size:15px;color:var(--muted)}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{font-family:var(--display);font-size:15px;border:3px solid var(--ink);background:var(--yellow);color:var(--ink);padding:10px 16px;box-shadow:3px 3px 0 var(--ink);text-decoration:none;display:inline-block}
.btn.alt{background:var(--card)}
.btn.big{font-size:clamp(16px,3.6vw,20px);padding:14px 22px;background:var(--red);color:var(--white)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}
.btn:focus-visible,.nav a:focus-visible,.links a:focus-visible,.band:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

/* Hero */
.hero{background:var(--ink);color:var(--card);border-color:var(--ink);gap:16px}
.hero h1{transform:rotate(-2deg);color:var(--yellow)}
.stripes{display:grid;grid-template-columns:repeat(4,1fr);height:12px;border:2px solid var(--card)}
.stripes i:nth-child(1){background:var(--red)}.stripes i:nth-child(2){background:var(--yellow)}.stripes i:nth-child(3){background:var(--green)}.stripes i:nth-child(4){background:var(--blue)}

/* Album */
.album{display:grid;grid-template-columns:minmax(0,220px) 1fr;gap:20px;align-items:center}
.cover{width:100%;height:auto;aspect-ratio:1;border:3px solid var(--ink);background:var(--yellow);image-rendering:pixelated}
.album .title{font-family:var(--display);font-size:clamp(18px,3.6vw,24px);line-height:1.2}
@media (max-width:600px){.album{grid-template-columns:1fr}.cover{max-width:220px}}

/* Game cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.game{position:relative}
.game .shot{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;padding:12%;border:3px solid var(--ink);background:var(--ink);image-rendering:pixelated}
.game.soon{background:var(--paper);box-shadow:6px 6px 0 var(--muted);border-style:dashed;color:var(--muted)}
.game.soon .shot{background:repeating-linear-gradient(45deg,var(--grid) 0 8px,var(--paper) 8px 16px);border-style:dashed}
.btn[aria-disabled="true"]{background:var(--paper);color:var(--muted);box-shadow:none;cursor:default;border-style:dashed}

/* Link lists */
.links{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.links a{font-family:var(--display);font-size:13px;text-decoration:none;border:2px solid var(--ink);background:var(--card);padding:6px 10px;display:inline-block;box-shadow:2px 2px 0 var(--ink)}
.links a:hover{background:var(--yellow)}

.foot{font-size:14px;color:var(--muted)}
@media (prefers-reduced-motion:reduce){.band,.hero h1{transform:none}}
.ghost{width:96px;height:96px;image-rendering:pixelated;border:3px solid var(--card)}
.members{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.members b{font-family:var(--display);font-weight:400;margin-right:4px}
.band-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:50% 30%;border:3px solid var(--ink)}
.cover{image-rendering:auto;background:var(--ink)}
.singles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.singles img{display:block;width:100%;height:auto;border:3px solid var(--ink)}
@media (max-width:600px){.singles{grid-template-columns:repeat(3,1fr)}}
body{min-height:100vh;box-sizing:border-box}
.thumb{all:unset;display:block;cursor:zoom-in;box-sizing:border-box}
.thumb:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.thumb.photo{width:100%}
.singles .thumb span{display:block;margin-top:6px;font-family:var(--display);font-size:11px;line-height:1.3;text-align:center}
.singles .thumb:hover img{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}
.singles img{transition:transform .1s,box-shadow .1s}
.lightbox{border:3px solid var(--ink);padding:0;background:var(--ink);color:var(--card);max-width:min(92vw,92vh);box-shadow:8px 8px 0 rgba(0,0,0,.5)}
.lightbox::backdrop{background:rgba(20,18,16,.85)}
.lightbox figure{margin:0}
.lightbox img{display:block;width:100%;height:auto;max-height:82vh;object-fit:contain;background:var(--ink)}
.lightbox figcaption{font-family:var(--display);font-size:clamp(13px,2.4vw,18px);padding:10px 56px;text-align:center;min-height:1.3em}
.lb-nav,.lb-close{position:absolute;font-family:var(--display);background:var(--yellow);color:var(--ink);border:3px solid var(--ink);width:44px;height:44px;padding:0;cursor:pointer;font-size:16px;box-shadow:3px 3px 0 var(--ink)}
.lb-nav{bottom:4px}.lb-nav.prev{left:4px}.lb-nav.next{right:4px}
.lb-close{top:6px;right:6px;background:var(--card)}
@media (prefers-reduced-motion:reduce){.singles img{transition:none}}

/* Grid paper on the root so it always covers the whole window, however short or tall the page is. */
html{min-height:100%;background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:22px 22px}
body{background:transparent}
