/* Minigames hub and game pages (generated by minigames.py). The palette, type and nav match the
   hand-written site pages, which carry the same rules inline. */
:root{
  --sand:#f3e3c7; --sand-2:#ead2ab; --dune:#dcb483; --ochre:#c98a3e;
  --clay:#c8683a; --rust:#9c4526; --umber:#5a3320; --ink:#2a1a10;
  --bone:#fbf4e6; --sage:#7d8a5a;
  --radius:14px; --max:1120px;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--sand);color:var(--ink);font:400 17px/1.6 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Zilla Slab",Georgia,serif;line-height:1.1;margin:0 0 .4em}
a{color:var(--rust)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px;width:100%}
main{flex:1}

header.nav{position:sticky;top:0;z-index:10;background:rgba(243,227,199,.88);backdrop-filter:blur(8px);border-bottom:1px solid rgba(90,51,32,.12)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font:700 20px "Zilla Slab",serif;letter-spacing:.3px}
.brand svg{width:30px;height:30px}
.nav nav a{color:var(--umber);text-decoration:none;font-weight:500;margin-left:22px;font-size:15px}
.nav nav a:hover{color:var(--rust)}

.mg-hub,.mg-game{padding-top:40px;padding-bottom:64px}
h1{font-size:clamp(34px,5vw,52px)}
.blurb{color:var(--umber);max-width:720px;margin:0 0 28px}
.fine{font-size:14px;color:var(--umber)}
.crumbs{margin:0 0 6px;font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.crumbs a{text-decoration:none}

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.card{display:flex;flex-direction:column;background:var(--bone);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 rgba(90,51,32,.12);transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(90,51,32,.18)}
.card img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--sand-2)}
.card .t{font:700 22px/1.2 "Zilla Slab",Georgia,serif;padding:14px 18px 4px}
.card .b{font-size:15px;color:var(--umber);padding:0 18px 18px}

.stage{position:relative;width:100%;max-height:78vh;background:var(--ink);border-radius:var(--radius);overflow:hidden}
.stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:none;background:#000}
.stage.running iframe{display:block}
.stage .start{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;cursor:pointer;background:var(--ink)}
.stage .start img{width:100%;height:100%;object-fit:cover;opacity:.55;display:block}
.stage .start span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--clay);color:var(--bone);font:700 22px Inter,system-ui,sans-serif;padding:16px 38px;border-radius:999px}
.stage .start:hover span{background:var(--rust)}
.stage.running .start{display:none}
.stage:fullscreen{max-height:none;border-radius:0}
.stage.filled{position:fixed;inset:0;z-index:100;max-height:none;border-radius:0;aspect-ratio:auto!important}
.stage.filled + .bar{position:fixed;top:10px;right:10px;z-index:101;margin:0}

.bar{display:flex;gap:10px;justify-content:flex-end;margin:12px 0 30px}
.btn{font:600 15px Inter,system-ui,sans-serif;background:var(--ink);color:var(--bone);border:0;padding:10px 20px;border-radius:999px;cursor:pointer;min-height:44px}
.btn:hover{background:var(--rust)}
.btn:disabled{opacity:.45;cursor:default;background:var(--ink)}
.info{max-width:720px}

footer{background:var(--umber);color:#e3cfae;font-size:14px;padding:30px 0}
footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
footer .mail{color:#e3cfae;display:inline-block;padding:4px 0}

@media (max-width:820px){
  .nav .wrap{height:auto;min-height:56px;flex-wrap:wrap;column-gap:16px;padding-top:8px;padding-bottom:8px}
  .nav nav{display:flex;flex-wrap:wrap;column-gap:16px}
  .nav nav a{margin-left:0;padding:6px 0}
  .mg-hub,.mg-game{padding-top:24px}
}
