/* Shared public-site shell. Game art and site names stay specific to each build. */
:root{--portal-navy:#083d54;--portal-cyan:#087dc3}
body{color:var(--portal-navy)}
.rail-head{z-index:4}
.site-rail .brand{background:#f1fffb}
.rail-controls a,.rail-controls button{color:var(--portal-cyan)}
.rail-controls a:focus-visible,.rail-controls button:focus-visible{outline-offset:2px}

/* Discovery pages start with playable content beside the compact navigation. */
:is(.route-home,.route-categories,.route-category) .site-main>.site-header{display:none}
:is(.route-home,.route-categories,.route-category) .site-rail .rail-games{display:none}
:is(.route-home,.route-categories,.route-category) .site-main>.layout{min-height:0}
:is(.route-home,.route-categories,.route-category) .site-main main{padding-top:0}

/* One footer for every public route, including the game reading view. */
.site-footer{
  position:relative;
  isolation:isolate;
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(0,1.35fr);
  align-items:start;
  gap:clamp(28px,2.8vw,58px);
  width:calc(100% + var(--portal-pad) + var(--portal-pad));
  min-width:0;
  min-height:330px;
  margin:0 0 0 calc(0px - var(--portal-pad));
  padding:58px clamp(28px,2vw,42px) 65px;
  border:0;
  border-radius:0 0 18px 18px;
  background:#fff;
  color:#173e5b;
}
.site-footer::before,.site-footer::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-140px;
  height:150px;
  z-index:1;
  pointer-events:none;
}
.site-footer::before{
  background:linear-gradient(90deg,#7bffe8 0 6%,#16e3d1 6% 12%,#74fae4 12% 33%,#00d9cb 33% 35.4%,#77ffe5 35.4% 100%);
  clip-path:polygon(0 94%,4% 91%,6.2% 0,12% 50%,15% 94%,33% 55%,35.4% 75%,100% 42%,100% 100%,0 100%);
}
.site-footer::after{
  background:#fff;
  clip-path:polygon(0 99%,4% 97%,6.2% 80%,12% 85%,15% 100%,33% 77%,35.4% 93%,100% 69%,100% 100%,0 100%);
}
.footer-seam{position:absolute;top:0;bottom:0;left:31.8%;width:4.4%;z-index:0;background:#eef4fd;clip-path:polygon(30% 0,100% 0,72% 100%,0 100%);pointer-events:none}
.footer-brand,.footer-columns{position:relative;z-index:2;min-width:0}
.footer-brand-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px}
.footer-logo{color:#0b3b5b;text-decoration:none;font-size:1.5rem;font-weight:900;letter-spacing:-.05em;white-space:nowrap}
.footer-logo span{color:var(--portal-cyan)}
.footer-brand-line strong{color:#173e5b;font-size:1rem}
.footer-locale{display:inline-flex;align-items:center;gap:7px;min-height:39px;margin-top:31px;padding:7px 13px;border:2px solid #159cf1;border-radius:999px;color:#0788d0;font-size:.9rem;font-weight:800;line-height:1}
.footer-locale svg{width:17px;height:17px}
.footer-personal{display:flex;flex-wrap:wrap;gap:13px;margin:29px 0 0}
.footer-personal a,.footer-personal button{display:inline-flex;align-items:center;justify-content:center;width:39px;height:39px;padding:0;border:0;border-radius:50%;background:#073a5b;color:#fff;box-shadow:none;cursor:pointer;text-decoration:none}
.footer-personal a:hover,.footer-personal button:hover{background:#0b78ae}
.footer-personal svg{width:20px;height:20px}
.footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,42px);align-content:start}
.footer-columns nav{display:grid;align-content:start;gap:16px;min-width:0}
.footer-columns h2{margin:0 0 11px;color:#a7bac9;font-size:.87rem;line-height:1.3}
.footer-columns a{color:#173e5b;text-decoration:none;font-size:.9rem;font-weight:700;overflow-wrap:anywhere}
.footer-columns a:hover{text-decoration:underline;text-underline-offset:2px}
.footer-columns a:focus-visible,.footer-personal a:focus-visible,.footer-personal button:focus-visible{outline:2px solid #087dc3;outline-offset:3px}

@media(max-width:900px){
  .site-footer{grid-template-columns:1fr;gap:38px;padding:53px 32px 58px}
  .footer-seam{display:none}
  .footer-columns{gap:20px}
}
@media(max-width:650px){
  .site-footer{gap:35px;padding:45px 22px 52px;border-radius:0 0 15px 15px}
  .site-footer::before,.site-footer::after{top:-79px;height:85px}
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}
}

@media(max-width:900px){
  :is(.route-home,.route-categories,.route-category) .site-main>.site-header{display:block}
  :is(.route-home,.route-categories,.route-category) .site-main>.site-header .category-nav{display:none}
  :is(.route-home,.route-categories,.route-category) .site-main>.site-header .header-inner{padding-bottom:12px}
}
