@import url(../fonts/fonts.css);

/* Direction C, "comic poster": refero Flying Papers (flat full-bleed colour fields, huge heavy display type,
   mascot peeking over the letters, 3px outlined buttons, dark green footer) + Le Puzz (yellow header with
   cell navigation, products as bordered box covers, Times-style body text). */
:root{
  --plum:#6f63b8;
  --plum-deep:#554a9a;
  --dough:#ffd27a;
  --lemon:#f2ee3a;
  --apple:#d9443f;
  --leaf:#2f5a2b;
  --blush:#f7c3bb;
  --cream:#fbf6ef;
  --ink:#111;
  --poster:'Bowlby One','Arial Black',Impact,sans-serif;
  --serif:'Tinos','Times New Roman',Times,serif;
  --mono:'Space Mono',ui-monospace,Menlo,monospace;
  --pad:max(20px,calc((100% - 1240px) / 2));
  --line:3px solid var(--ink);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font:400 19px/1.45 var(--serif)}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-family:var(--poster);font-weight:400;line-height:.92;letter-spacing:.01em;text-transform:uppercase}
:focus-visible{outline:3px solid var(--apple);outline-offset:3px}
.skip{position:fixed;left:12px;top:-60px;z-index:90;background:var(--ink);color:var(--cream);padding:10px 14px}
.skip:focus{top:12px}
.kicker{font:700 13px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:12px 22px;border:3px solid currentColor;background:transparent;
  font:700 14px/1.1 var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;color:inherit}
.btn:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.btn--solid{background:var(--dough);color:var(--ink);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.btn--solid:hover{background:var(--lemon);color:var(--ink)}
.btn--small{min-height:40px;padding:8px 16px}

/* utility + header */
.utility{margin:0;padding:8px var(--pad);background:var(--ink);color:var(--cream);font:400 12px/1.4 var(--mono);text-align:center}
.top{display:flex;align-items:stretch;min-height:76px;padding:0 var(--pad);background:var(--dough);border-bottom:var(--line);position:relative;z-index:20}
.logo{display:flex;align-items:center;font:400 clamp(22px,2.4vw,30px)/1 var(--poster);text-transform:uppercase;text-decoration:none;padding-right:24px}
.nav{display:flex;margin-left:auto;border-left:var(--line)}
.nav a{display:flex;align-items:center;padding:0 24px;border-right:var(--line);font:700 14px var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.nav a:hover,.nav a[aria-current=page]{background:var(--lemon)}
.menu-btn{display:none;margin:auto 0 auto auto;border:var(--line);background:var(--cream);padding:8px 16px;font:700 13px var(--mono);text-transform:uppercase;cursor:pointer}
@media (max-width:760px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;border:0;border-bottom:var(--line);background:var(--dough)}
  .nav.open{display:flex}
  .nav a{padding:16px var(--pad);border-right:0;border-top:var(--line)}
}

/* hero */
.hero{background:var(--plum);color:var(--cream);padding:56px var(--pad) 64px;text-align:center;position:relative;overflow:hidden}
.hero .kicker{color:var(--lemon)}
.hero h1{font-size:clamp(44px,7vw,104px);color:var(--dough);max-width:14ch;margin:0 auto}
.hero .lead{max-width:40ch;margin:24px auto 0;font-size:clamp(19px,1.8vw,23px)}
.hw{position:relative;margin:calc(min(22vw,350px) * .5) auto 40px;max-width:1240px}
.hero-word{margin:0;font:400 min(14.4vw,232px)/.84 var(--poster);text-transform:uppercase;color:var(--dough);letter-spacing:-.01em}
/* the mascot's hands sit on the top edge of the first line, so no letter is covered */
.hero-mascot{position:absolute;left:50%;top:calc(min(22vw,350px) * -.5);width:min(22vw,350px);transform:translateX(-50%)}
.hero--big h1{font-size:clamp(30px,4vw,56px);color:var(--cream);max-width:20ch}

/* list */
.list{padding:72px var(--pad) 80px}
.list-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:34px}
.list-head h2{font-size:clamp(52px,8vw,112px)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{min-height:44px;padding:8px 18px;border:var(--line);border-radius:999px;background:var(--cream);font:700 13px var(--mono);letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.chip[aria-pressed=true]{background:var(--ink);color:var(--dough)}
.chip:hover{background:var(--lemon)}
.chip[aria-pressed=true]:hover{background:var(--ink)}
.boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 30px}
@media (max-width:1040px){.boxes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:660px){.boxes{grid-template-columns:1fr}}
.box{display:flex;flex-direction:column;border:4px solid var(--ink);background:var(--cream);box-shadow:8px 8px 0 var(--ink)}
.box[hidden]{display:none}
.box-cover{position:relative;aspect-ratio:1/1;background:var(--c);border-bottom:4px solid var(--ink);overflow:hidden}
.box-art{position:absolute;inset:6%;width:88%;height:88%;object-fit:contain}
.box-art--type{display:grid;place-items:center;font:400 180px/1 var(--poster);color:var(--ink)}
.box-n{position:absolute;left:-4px;top:-4px;z-index:2;display:grid;place-items:center;width:64px;height:64px;background:var(--ink);color:var(--dough);font:400 34px/1 var(--poster)}
.box-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.box-body .kicker{color:var(--plum-deep)}
.box h3{font-size:clamp(28px,2.6vw,36px)}
.rating{display:flex;align-items:baseline;gap:8px;margin:14px 0 12px}
.rating strong{font:400 46px/1 var(--poster);font-weight:400}
.rating span{font:400 13px/1.3 var(--mono)}
.facts{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0}
.facts li{padding:3px 10px;border:2px solid var(--ink);border-radius:999px;background:var(--c);color:var(--ink);font:700 12px/1.4 var(--mono)}
.blurb{font-size:18px;margin-bottom:12px}
.controls{font-size:16px;font-style:italic;margin-bottom:18px}
.controls span{font:700 11px var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;margin-right:4px}
.btn--play{margin-top:auto;width:100%;background:var(--c);color:var(--ink);border-color:var(--ink)}
.btn--play:hover{background:var(--ink);color:var(--c)}
.empty{font:700 15px var(--mono);margin-top:20px}

/* bands */
.band{padding:72px var(--pad);border-top:var(--line)}
.band h2{font-size:clamp(40px,6vw,84px);margin-bottom:30px}
.band--dough{background:var(--dough)}
.band--blush{background:var(--blush)}
.band-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-bottom:30px}
.band-grid>div{border-top:var(--line);padding-top:14px}
.band-grid p:last-child{margin:0}
.band-p{font-size:clamp(20px,2vw,26px);max-width:40ch;margin:0}
@media (max-width:760px){.band-grid{grid-template-columns:1fr}}

/* inner pages */
.prose-wrap{padding:64px var(--pad) 80px}
.prose{max-width:760px;margin:0 auto 40px}
.prose h2{font-size:clamp(28px,3.2vw,40px);margin-bottom:16px}
.prose p{font-size:20px}
.prose a{color:var(--plum-deep);text-decoration-thickness:2px}
.big-mail{font:400 clamp(26px,4.4vw,52px)/1 var(--poster);text-decoration:none!important;word-break:break-all;color:var(--ink)!important}
.mailform{display:grid;gap:16px;margin:30px 0 14px;padding:24px;border:4px solid var(--ink);box-shadow:8px 8px 0 var(--ink);background:var(--blush)}
.mailform label{display:grid;gap:6px;font:700 13px var(--mono);text-transform:uppercase;letter-spacing:.06em}
.mailform input,.mailform textarea{font:400 18px var(--serif);padding:12px;border:var(--line);background:var(--cream);border-radius:0}
.mailform .btn{justify-self:start}
.small{font-size:15px!important}
.wrap-actions{padding:40px var(--pad) 70px;text-align:center}

/* footer */
.foot{background:var(--leaf);color:var(--cream);padding:56px var(--pad) 34px;border-top:var(--line)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:30px 60px}
.foot-logo{font:400 clamp(34px,5vw,64px)/.9 var(--poster);text-transform:uppercase;color:var(--dough);margin-bottom:14px}
.foot-grid p{max-width:48ch}
.foot-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;align-content:start}
.foot-nav a{font:700 14px var(--mono);text-transform:uppercase;letter-spacing:.06em;text-decoration:none}
.foot-nav a:hover{color:var(--lemon)}
.fine{margin:40px 0 0;font:400 12px/1.6 var(--mono);opacity:.85}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media (max-width:600px){.hero-mascot{top:calc(min(22vw,350px) * -.64)}.hw{margin-top:calc(min(22vw,350px) * .66)}}
