@font-face{font-family:'Inter';font-style:normal;font-weight:400 800;font-display:swap;src:url('/fonts/inter-latin.woff2') format('woff2')}

/* ---------- Tokens ----------
   Brand colors are sampled from the color logo (brand/treasure-past-logo-final-color.png).
   Light is the default; dark applies when the device prefers it (unless the visitor picked light with the
   toggle) or when the visitor picked dark. theme.js sets data-theme on <html> from the saved choice. */
:root{
  --blue:#3f48fd;
  --navy:#232571;
  --red:#fa034e;
  --purple:#7129fd;
  --yellow:#fdb601;
  --pink:#fd42a3;
  --green:#01e291;

  --bg:#f6f6fb;
  --dots:#23257118;
  --card:#ffffff;
  --card-soft:#ffffffa8;
  --ink:#16172f;
  --heading:#16172f;
  --muted:#5b5d78;
  --line:#e1e2ee;
  --shadow:#2325711c;
  --blob-opacity:.28;
  --glare:#ffffff80;
  --chip-bg:.14;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0d0e2b; --dots:#ffffff14; --card:#171943; --card-soft:#171943b0; --ink:#e9eaff; --heading:#ffffff;
    --muted:#a3a6d4; --line:#2d307089; --shadow:#0000006b; --blob-opacity:.42; --glare:#ffffff26; --chip-bg:.22;
    color-scheme:dark;
  }
  :root:not([data-theme="light"]) .logo-black,:root:not([data-theme="light"]) .icon-moon{display:none}
  :root:not([data-theme="light"]) .logo-white,:root:not([data-theme="light"]) .icon-sun{display:block}
}
:root[data-theme="dark"]{
  --bg:#0d0e2b; --dots:#ffffff14; --card:#171943; --card-soft:#171943b0; --ink:#e9eaff; --heading:#ffffff;
  --muted:#a3a6d4; --line:#2d307089; --shadow:#0000006b; --blob-opacity:.42; --glare:#ffffff26; --chip-bg:.22;
  color-scheme:dark;
}
:root[data-theme="dark"] .logo-black,:root[data-theme="dark"] .icon-moon{display:none}
:root[data-theme="dark"] .logo-white,:root[data-theme="dark"] .icon-sun{display:block}

/* ---------- Page ---------- */
*{box-sizing:border-box}
html{font-family:Inter,system-ui,sans-serif;color:var(--ink);background:var(--bg)}
body{
  margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow-x:hidden;
  background-color:var(--bg);
  background-image:radial-gradient(var(--dots) 1.2px,transparent 1.6px);
  background-size:24px 24px;
  transition:background-color .3s ease,color .3s ease;
}
/* The logo's letter colors as a stripe across the top of the page */
body:before{
  content:'';height:6px;flex:none;position:relative;z-index:2;
  background:linear-gradient(90deg,var(--red) 0 16.6%,var(--blue) 0 33.3%,var(--purple) 0 50%,var(--yellow) 0 66.6%,var(--pink) 0 83.3%,var(--green) 0);
}
h1,h2,h3{margin:0;color:var(--heading)}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.hero,main,footer,.topbar{position:relative;z-index:1}

/* ---------- Floating treasure behind the hero ---------- */
.sky{position:absolute;inset:0 0 auto;height:760px;overflow:hidden;pointer-events:none;z-index:0}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:var(--blob-opacity);animation:drift 22s ease-in-out infinite alternate}
.b1{width:420px;height:420px;background:var(--blue);top:-120px;left:-120px}
.b2{width:360px;height:360px;background:var(--pink);top:60px;right:-120px;animation-duration:26s;animation-delay:-8s}
.b3{width:300px;height:300px;background:var(--green);top:420px;left:30%;animation-duration:30s;animation-delay:-4s;opacity:calc(var(--blob-opacity) * .7)}
.float{position:absolute;fill:currentColor;animation:bob 7s ease-in-out infinite alternate;filter:drop-shadow(0 4px 8px var(--shadow))}
.f1{width:30px;height:30px;color:var(--yellow);top:90px;left:12%}
.f2{width:26px;height:26px;color:var(--yellow);top:260px;left:6%;animation-duration:9s;animation-delay:-2s}
.f3{width:30px;height:30px;color:var(--pink);top:150px;right:14%;animation-duration:8s;animation-delay:-5s}
.f4{width:18px;height:18px;color:var(--green);top:330px;right:8%;animation-duration:6s;animation-delay:-1s}
.f5{width:20px;height:20px;color:var(--yellow);top:60px;right:30%;animation-duration:10s;animation-delay:-3s}
.f6{width:16px;height:16px;color:var(--blue);top:420px;left:18%;animation-duration:6.5s;animation-delay:-4s}
.f7{width:22px;height:22px;color:var(--purple);top:380px;right:22%;animation-duration:11s;animation-delay:-6s}
.f8{width:22px;height:22px;color:var(--red);top:40px;left:34%;animation-duration:7.5s;animation-delay:-2.5s}
@keyframes bob{from{transform:translateY(-10px) rotate(-12deg)}to{transform:translateY(12px) rotate(14deg)}}
@keyframes drift{from{transform:translate(0,0) scale(1)}to{transform:translate(60px,40px) scale(1.15)}}

/* ---------- Theme toggle ---------- */
.topbar{display:flex;justify-content:flex-end;padding:16px 16px 0;max-width:1120px;width:100%;margin:0 auto}
.theme-toggle{
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;cursor:pointer;
  border:2px solid var(--line);background:var(--card);color:var(--heading);
  box-shadow:0 6px 18px var(--shadow);transition:transform .25s ease,border-color .2s ease;
}
.theme-toggle svg{width:22px;height:22px;fill:currentColor}
.icon-sun{display:none;color:var(--yellow)}
.theme-toggle:hover{transform:rotate(-20deg) scale(1.06);border-color:var(--blue)}
.theme-toggle:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}

/* ---------- Hero ---------- */
.hero{text-align:center;padding:4px 16px 44px}
.logo-wrap{display:inline-block;animation:logo-float 5s ease-in-out infinite alternate}
.logo{display:block;width:min(260px,58vw);height:auto;filter:drop-shadow(0 12px 24px var(--shadow))}
.logo-white{display:none}
@keyframes logo-float{from{transform:translateY(-5px) rotate(-1.2deg)}to{transform:translateY(5px) rotate(1.2deg)}}
.tagline{margin:26px auto 0;font-size:clamp(22px,3.6vw,32px);font-weight:800;letter-spacing:-.02em;color:var(--heading);line-height:1.2}
.shimmer{
  background:linear-gradient(90deg,var(--red),var(--yellow),var(--pink),var(--purple),var(--blue),var(--green),var(--red));
  background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 8s linear infinite;
}
@keyframes shimmer{to{background-position:300% 0}}
.perks{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.perks li{
  display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:14px;font-weight:600;
  background:var(--card-soft);border:1px solid var(--line);color:var(--ink);backdrop-filter:blur(6px);
}
.dot{width:9px;height:9px;border-radius:50%}
.d1{background:var(--green)}.d2{background:var(--blue)}.d3{background:var(--pink)}

/* ---------- Games ---------- */
main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:0 16px 56px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:18px}
.section-head h2{font-size:26px;font-weight:800;letter-spacing:-.01em}
.count{color:var(--muted);font-size:14px;font-weight:600}

.game{
  --rx:0deg;--ry:0deg;--lift:0px;--gx:50%;--gy:50%;
  position:relative;display:grid;overflow:hidden;color:inherit;text-decoration:none;
  border:2px solid var(--line);border-radius:26px;background:var(--card);
  box-shadow:0 10px 30px var(--shadow);
  transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));
  transition:transform .25s ease,border-color .2s ease,box-shadow .25s ease;
}
/* Glare that follows the pointer */
.game:after{
  content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:radial-gradient(circle at var(--gx) var(--gy),var(--glare),transparent 45%);
}
.game:hover,.game:focus-visible{--lift:-6px;border-color:var(--blue);box-shadow:0 22px 50px #3f48fd38}
.game:hover:after{opacity:1}
.game:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.game-art{position:relative;overflow:hidden;background:var(--navy)}
.game-art img{display:block;width:100%;height:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .6s ease}
.game:hover .game-art img{transform:scale(1.06)}
.badge{
  position:absolute;top:16px;left:16px;padding:6px 14px;border-radius:999px;transform:rotate(-5deg);
  background:var(--yellow);color:#1b1400;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:0 6px 16px #0005;animation:badge-pop 2.4s ease-in-out infinite;
}
@keyframes badge-pop{0%,100%{transform:rotate(-5deg) scale(1)}50%{transform:rotate(-2deg) scale(1.08)}}
.game-body{display:flex;flex-direction:column;gap:12px;padding:26px 28px 28px}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.tags li{padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em}
.t1{color:var(--purple);background:rgb(113 41 253 / var(--chip-bg))}
.t2{color:#e0197f;background:rgb(253 66 163 / var(--chip-bg))}
.t3{color:#01a86c;background:rgb(1 226 145 / var(--chip-bg))}
.game h3{font-size:clamp(26px,3vw,34px);font-weight:800;letter-spacing:-.02em}
.game p{margin:0;color:var(--muted);line-height:1.6;font-size:15px}
.play{
  position:relative;overflow:hidden;margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;
  padding:12px 24px;border-radius:999px;background:var(--blue);color:#fff;font-weight:800;font-size:16px;
  box-shadow:0 8px 20px #3f48fd55;
}
.play:after{
  content:'';position:absolute;inset:0;transform:translateX(-120%) skewX(-20deg);
  background:linear-gradient(90deg,transparent,#ffffff70,transparent);
}
.game:hover .play:after{animation:sweep .8s ease}
@keyframes sweep{to{transform:translateX(120%) skewX(-20deg)}}
.arrow{transition:transform .2s ease}
.game:hover .arrow{transform:translateX(5px)}

@media (min-width:760px){
  .game.featured{grid-template-columns:1.35fr 1fr}
  .game.featured .game-body{padding:36px 36px 36px 32px;justify-content:center}
  .game.featured .play{margin-top:10px}
}

.games{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
/* Grid cards fill their cell, so the Play buttons line up */
.games .game{height:100%;grid-template-rows:auto 1fr}
.locked{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:210px;padding:28px 20px;
  border:2px dashed var(--line);border-radius:26px;background:var(--card-soft);text-align:center;color:var(--muted);
  backdrop-filter:blur(4px);
}
.locked h3{font-size:18px;font-weight:800;color:var(--heading);margin-top:8px}
.locked p{margin:0;font-size:14px}
.lock-icon{
  width:56px;height:56px;padding:12px;border-radius:18px;fill:var(--muted);
  background:var(--bg);border:2px solid var(--line);
}
.locked:hover .lock-icon{animation:jiggle .5s ease;fill:var(--yellow)}
@keyframes jiggle{20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(3deg)}}

footer{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px 16px 34px;color:var(--muted);font-size:13px}
.foot-spark{width:14px;height:14px;fill:var(--yellow)}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none !important;transition:none !important}
  .game:hover,.game:focus-visible{--lift:0px}
}
