@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@400;600;700&display=swap');

:root{
  --cream:#FFF8F4; --ink:#4B4650; --ink-soft:#7A7480;
  --card:#FFFFFF; --line:#EFE2E1; --radius:18px;
  --shadow:0 10px 30px rgba(150,110,120,.12);
  --accent:#E79AA2;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Nunito',sans-serif;color:var(--ink);line-height:1.55;
  background:radial-gradient(circle at 12% 8%,#FCE7E9 0,transparent 40%),
    radial-gradient(circle at 88% 4%,#E4F0E6 0,transparent 38%),var(--cream);}
.wrap{max-width:820px;margin:0 auto;padding:28px 20px 90px}
.brand{display:flex;align-items:center;gap:9px;font-family:'Baloo 2';font-weight:700;
  font-size:20px;color:var(--accent);text-decoration:none}
.brand .dot{width:11px;height:11px;border-radius:50%;background:#8FB49A;display:inline-block}

.hero{text-align:center;margin:26px 0 6px}
.deco{font-family:'Baloo 2';font-weight:800;font-size:clamp(46px,10vw,78px);
  letter-spacing:clamp(6px,2vw,16px);line-height:1;
  background:linear-gradient(90deg,#E79AA2,#C99BC4,#8FB49A);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.deco-sub{font-family:'Baloo 2';font-weight:600;letter-spacing:4px;text-transform:uppercase;
  font-size:14px;color:var(--ink-soft);margin-top:2px}
h1{font-family:'Baloo 2';font-weight:700;font-size:clamp(20px,3vw,26px);
  margin:14px 0 8px;color:var(--ink)}
.hero p{font-size:16.5px;color:var(--ink-soft);max-width:600px;margin:0 auto 14px}
.badges{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.badge{background:#CFE0D0;color:#3f5a45;font-weight:700;font-size:12.5px;padding:5px 12px;border-radius:999px}
.badge.pink{background:#F6D5D8;color:#8a4a52}

.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:24px;margin:24px 0}
.panel h2{font-family:'Baloo 2';font-size:21px;margin:0 0 4px}
.panel .hint{font-size:14px;color:var(--ink-soft);margin:0 0 18px}

.controls{display:flex;flex-wrap:wrap;gap:20px 28px;align-items:flex-end}
.field label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}
.field input[type=number]{width:88px;font:inherit;font-weight:700;padding:9px 12px;
  border:1.5px solid var(--line);border-radius:11px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
button.btn{font-family:'Baloo 2';font-weight:600;font-size:15.5px;cursor:pointer;border:none;
  border-radius:12px;padding:13px 22px;transition:.15s}
button.btn:hover{transform:translateY(-1px)}
button.btn:focus-visible{outline:3px solid #8FB49A;outline-offset:2px}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 6px 16px rgba(231,154,162,.4)}
.btn.secondary{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.btn.ghost{background:transparent;color:var(--accent);border:none;font-family:'Baloo 2';
  font-weight:600;font-size:14.5px;cursor:pointer;padding:6px 4px}
.foot-note{font-size:13px;color:var(--ink-soft);text-align:center;margin-top:14px}
.license{font-size:13px;color:var(--ink-soft);text-align:center;max-width:640px;margin:0 auto}

/* Site chrome: header / breadcrumb / footer nav */
.site-header{max-width:820px;margin:0 auto;padding:20px 20px 0;display:flex;
  align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.home-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:12px;background:var(--card);border:1px solid var(--line);color:#979598;
  box-shadow:var(--shadow);transition:.15s;flex-shrink:0}
.home-btn:hover{color:#7F7D82;transform:translateY(-1px)}
.home-btn:focus-visible{outline:3px solid #8FB49A;outline-offset:2px}
.home-btn svg{width:28px;height:28px;display:block}
.breadcrumb{font-size:13.5px;color:var(--ink-soft)}
.breadcrumb a{color:var(--ink-soft);text-decoration:none}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .crumb-current{color:var(--ink);font-weight:700}

.site-footer{max-width:820px;margin:40px auto 0;padding:0 20px 40px}
.more-games{border-top:1px solid var(--line);padding-top:24px;margin-top:8px}
.more-games h2{font-family:'Baloo 2';font-size:17px;margin:0 0 12px;text-align:center}
.more-games ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
  gap:10px;margin:0 0 24px;padding:0}
.more-games a{display:inline-block;background:var(--card);border:1px solid var(--line);
  border-radius:999px;padding:8px 16px;font-size:13.5px;font-weight:700;color:var(--ink);
  text-decoration:none}
.more-games a:hover{color:var(--accent);border-color:var(--accent)}

.site-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;
  font-size:13px;margin-bottom:16px}
.site-nav a{color:var(--ink-soft);text-decoration:none}
.site-nav a:hover{color:var(--accent)}

.copyright{font-size:12.5px;color:var(--ink-soft);text-align:center;margin-top:12px}

.ad-slot{min-height:90px;display:flex;align-items:center;justify-content:center;
  background:transparent;margin:24px auto}

/* Game category grid ("cubes") */
.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:4px}
.game-cube{aspect-ratio:1/1;background:var(--card);border:1.5px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;gap:8px;padding:10px;
  text-decoration:none;color:var(--ink);transition:.15s}
.game-cube:hover{transform:translateY(-3px);border-color:var(--accent)}
.game-cube:focus-visible{outline:3px solid #8FB49A;outline-offset:2px}
.game-cube .emoji{font-size:clamp(30px,7vw,42px);line-height:1}
.game-cube .name{font-family:'Baloo 2';font-weight:700;font-size:clamp(11px,2.4vw,15px);
  line-height:1.2;overflow-wrap:anywhere}

@media (max-width:820px){
  .game-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:380px){
  .game-grid{grid-template-columns:1fr;max-width:220px;margin-left:auto;margin-right:auto}
}

@media (max-width:520px){
  .wrap{padding:22px 8px 70px}
  .panel{padding:16px 8px}
}

@media print{
  body{background:#fff}
  .site-header,.site-footer{display:none !important}
}
