/* Hub: Golden Tree. Real links laid over the illustration. */
body.hub{background:linear-gradient(var(--paper),#f6efd8)}
.top,.page,.foot{width:100%;max-width:var(--page);margin:0 auto;padding:14px 24px}
.top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand{font-size:24px;font-weight:800;letter-spacing:-.01em}
.brand small{display:block;font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.adults{position:relative}
.adults summary{min-height:var(--tap);display:inline-flex;align-items:center;padding:0 16px;border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--card);font-size:15px;font-weight:600;cursor:pointer;list-style:none}
.adults summary::-webkit-details-marker{display:none}
.adults .sheet{position:absolute;right:0;top:calc(100% + 8px);z-index:5;width:min(300px,86vw);display:grid;gap:10px;
  padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 10px 30px rgba(60,45,15,.18);font-size:15px}
.heading{padding:6px 0 14px}
.heading h1{font-size:clamp(26px,4vw,38px);line-height:1.15;letter-spacing:-.02em}
.heading p{margin-top:4px;color:var(--muted)}
/* intro card */
.intro:not([hidden]){display:grid;gap:14px;max-width:620px;margin:32px auto;padding:28px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.intro h1{font-size:30px}
.intro .btn{justify-self:start}
/* map */
.map{position:relative;container-type:inline-size;border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;background:#f4edcc;box-shadow:var(--shadow)}
.map>img{display:block;width:100%;height:auto}
.gate-link{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);display:block;
  border-radius:var(--r-md);text-decoration:none;color:var(--forest);-webkit-tap-highlight-color:transparent}
.gate-link:hover{background:rgba(255,249,230,.22);box-shadow:inset 0 0 0 3px var(--gold)}
.gate-link:focus-visible{outline-offset:-4px;background:rgba(255,249,230,.3)}
.gate-link .name{position:absolute;left:var(--lx);top:var(--ly);width:var(--lw);height:var(--lh);display:grid;place-items:center;
  text-align:center;font-weight:800;line-height:1.05;font-size:max(11px,1.95cqw);letter-spacing:-.01em}
.gate-link .hint{display:none}
.gate-link.fruit{--x:2.07%;--y:29.47%;--w:28.31%;--h:19.8%;--lx:20.73%;--ly:67.44%;--lw:60.24%;--lh:29.3%}
.gate-link.create{--x:68.02%;--y:31.77%;--w:29.7%;--h:17.96%;--lx:21.63%;--ly:68.21%;--lw:58.14%;--lh:30.26%}
.gate-link.quest{--x:3.8%;--y:52.49%;--w:32.11%;--h:26.24%;--lx:14.41%;--ly:72.98%;--lw:59.35%;--lh:25.26%}
.gate-link.echo{--x:63.88%;--y:52.49%;--w:32.46%;--h:26.24%;--lx:27.23%;--ly:73.68%;--lw:59.36%;--lh:24.56%}
.calm{margin:16px 0 4px;text-align:center;color:var(--muted);font-size:15px}
.privacy{margin:14px 0 0;font-size:14px;color:var(--muted)}
.privacy summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;font-weight:600}
.privacy p{margin:6px 0;max-width:70ch}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--muted)}
/* phones: the picture shrinks, so the four games become big buttons under it */
@media (max-width:639px){
  .top,.page,.foot{padding-left:14px;padding-right:14px}
  .map{border-radius:var(--r-md);display:grid;gap:10px;padding-bottom:12px}
  .gate-link{position:static;width:auto;height:auto;margin:0 12px;min-height:76px;display:grid;align-content:center;
    padding:12px 16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
  .gate-link .name{position:static;width:auto;height:auto;display:block;text-align:left;font-size:21px}
  .gate-link .hint{display:block;margin-top:2px;font-size:15px;color:var(--muted)}
}
@media (prefers-reduced-motion:no-preference){.gate-link{transition:background .15s,box-shadow .15s}}
