/* 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-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{
  --footer-fold-top:-140px;
  --footer-fold-height:150px;
  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:var(--footer-fold-top);
  height:var(--footer-fold-height);
  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%);
}
/* Join the pale seam to the fold's white edge at 33%, 35.4% and 36.2%. */
.footer-seam{position:absolute;top:var(--footer-fold-top);bottom:0;left:31.8%;width:4.4%;z-index:2;background:#eef4fd;clip-path:polygon(27.2727% calc(var(--footer-fold-height)*.77),81.8182% calc(var(--footer-fold-height)*.93),100% calc(var(--footer-fold-height)*.927028),72% 100%,0 100%);pointer-events:none}
.footer-brand,.footer-columns{position:relative;z-index:3;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{--footer-fold-top:-79px;--footer-fold-height:85px;gap:35px;padding:45px 22px 52px;border-radius:0 0 15px 15px}
  .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}
}

/* Information pages have their own masthead and reading layout. */
body.route-info{--info-accent:#7c3da2;--info-accent-hover:#622d85;--info-tint:#f4eafa;--info-highlight:#e8d5f4;--info-masthead:#e8bdf7;--portal-cyan:var(--info-accent);--blue:var(--info-accent);background:#fff;background-image:none;color:#083754}
.route-info .info-shell{min-height:100vh}
/* Keep the shared footer within this shell and reserve room for its folded edge. */
.route-info .site-footer{width:100%;margin:calc(0px - var(--footer-fold-top)) 0 0}
/* The masthead, footer and search controls share the information-page palette. */
.route-info .site-footer::before{background:linear-gradient(90deg,#e6b0f5 0 6%,#d69bf0 6% 12%,var(--info-masthead) 12% 33%,#bc71df 33% 35.4%,#e6b0f5 35.4% 100%)}
.route-info .footer-seam{background:var(--info-tint)}
.route-info .footer-locale{border-color:var(--info-accent);color:var(--info-accent)}
.route-info .footer-personal a,.route-info .footer-personal button{background:var(--info-accent)}
.route-info .footer-personal a:hover,.route-info .footer-personal button:hover{background:var(--info-accent-hover)}
.route-info .footer-columns h2{color:#71647d}
.route-info .footer-columns a:hover{color:var(--info-accent)}
.route-info .site-search-dialog{background:var(--info-masthead);background-image:linear-gradient(145deg,#efd2fa,var(--info-masthead) 54%,#d69bf0);box-shadow:18px 0 42px #47215f38}
.route-info .search-panel-topbar{background:var(--info-masthead);background-image:linear-gradient(145deg,#efd2fa,var(--info-masthead))}
.route-info .search-dialog-close,.route-info .search-dialog-form{box-shadow:0 6px 16px #47215f35}
.route-info .search-dialog-close:hover,.route-info .search-dialog-form button:hover,.route-info .search-panel-topics button:hover,.route-info .search-panel-topics a:hover{background:var(--info-tint);color:var(--info-accent)}
.route-info .search-dialog-form:focus-within{box-shadow:0 0 0 3px var(--info-accent),0 6px 16px #47215f35}
.route-info .search-panel-mark,.route-info .search-dialog-form button,.route-info .search-dialog-all{color:var(--info-accent)}
.route-info .search-panel-topics button,.route-info .search-panel-topics a{box-shadow:0 4px 10px #47215f20}
.route-info .search-panel-game{background:var(--info-tint);box-shadow:0 8px 14px #47215f30}
.route-info .search-panel-game:hover{box-shadow:0 11px 20px #47215f44}
.route-info .search-panel-game::before,.route-info .search-panel-game-fallback{background:linear-gradient(145deg,var(--info-tint),#d69bf0);color:var(--info-accent)}
.route-info .search-dialog-results>.empty-state{border-color:var(--info-highlight);background:#ffffffa8}
.route-info .empty-state-art{filter:hue-rotate(105deg)}
.route-info .info-header{position:relative;isolation:isolate;height:250px;padding:38px clamp(24px,2.4vw,50px);background:transparent}
.route-info .info-header::before,.route-info .info-header::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none}
.route-info .info-header::before{background-color:var(--info-masthead);background-image:linear-gradient(30deg,transparent 0 18%,#dba3ed70 18% 30%,transparent 30%),linear-gradient(151deg,transparent 0 58%,#eebcfc 58% 70%,transparent 70%),linear-gradient(82deg,transparent 0 44%,#e1a9f077 44% 57%,transparent 57%);clip-path:polygon(0 0,100% 0,100% 65%,58% 84%,52.5% 62%,0 100%)}
.route-info .info-header::after{background:#d89aea70;clip-path:polygon(51.5% 0,58.7% 0,58% 84%,52.5% 62%)}
.route-info .info-brand{position:relative;z-index:2;display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px 11px;max-width:calc(100% - 150px);min-height:44px;color:#073754;text-decoration:none;font-size:1.42rem;font-weight:850;line-height:1.25;letter-spacing:-.03em}
.route-info .info-brand-symbol{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;color:var(--info-accent);font-size:1.8rem;line-height:1}
.route-info .info-header-label{margin-left:4px;letter-spacing:-.025em}
.route-info .info-exit{position:absolute;top:38px;right:clamp(24px,2.4vw,50px);z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:44px;min-width:78px;color:#073754;text-decoration:none;font-size:1.05rem;font-weight:850}
.route-info .info-exit svg{width:21px;height:21px;flex:0 0 21px}
.route-info .info-exit:hover,.route-info .info-brand:hover{color:var(--info-accent)}
.route-info .info-header-art{position:absolute;z-index:1;top:-15px;right:clamp(110px,14vw,350px);display:block;width:270px;height:270px;pointer-events:none;transform:rotate(-7deg)}
.route-info .info-main{width:100%;max-width:1140px;margin:0 auto;padding:0 20px 65px}
.route-info .info-page{overflow:visible;border-radius:0;background:transparent;box-shadow:none}
.route-info .info-hero{padding:56px 0 48px;background:transparent;text-align:center;overflow:visible}
.route-info .info-hero::before,.route-info .info-hero::after{display:none}
.route-info .info-eyebrow{display:none}
.route-info .info-hero h1{max-width:1080px;margin:0 auto 21px;color:#073754;font-size:clamp(2rem,3vw,2.4rem);font-weight:850;line-height:1.2;letter-spacing:-.035em;text-wrap:balance}
.route-info .info-hero>p{max-width:1060px;margin:0 auto;color:#173e5b;font-size:clamp(1.1rem,1.7vw,1.42rem);line-height:1.65;text-wrap:pretty}
.route-info .info-topic-grid,.route-info .info-feature-grid,.route-info .info-contact-grid{gap:20px;margin:0 0 22px;padding:0}
.route-info .info-topic-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.route-info .info-topic-grid>a,.route-info .info-topic-grid>div,.route-info .info-feature-grid article,.route-info .info-contact-grid article,.route-info .info-reading,.route-info .info-custom,.route-info .info-faq details{border:1px solid #f1f2f5;border-radius:21px;background:#fff;box-shadow:0 10px 15px #0a23452b,0 0 12px #0a234509}
.route-info .info-topic-grid>a,.route-info .info-topic-grid>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:234px;padding:28px 18px 24px;color:#073754;text-align:center;text-decoration:none}
.route-info .info-topic-grid>a>svg{display:block;flex:0 0 80px;width:80px;height:80px;margin:0 auto 5px;color:#073754}
.route-info .info-topic-grid strong{max-width:180px;font-size:1.35rem;font-weight:850;line-height:1.25;letter-spacing:-.025em;text-wrap:balance}
.route-info .info-topic-grid span{display:block;max-width:190px;color:#37576e;font-size:.86rem;line-height:1.4}
.route-info .info-topic-grid>a:hover{transform:translateY(-3px);box-shadow:0 13px 20px #0a234534,0 0 12px #0a23450a}
.route-info .info-feature-grid article,.route-info .info-contact-grid article{padding:26px 23px}
.route-info .info-feature-icon{width:58px;height:58px;margin:0 auto;background:var(--info-tint);color:#073754;font-size:1.8rem}
.route-info .info-feature-grid h2,.route-info .info-contact-grid h2{margin:17px 0 11px;color:#073754;font-size:1.35rem;font-weight:850;line-height:1.3}
.route-info .info-feature-grid p,.route-info .info-contact-grid p{color:#234a65;font-size:1rem;line-height:1.65}
.route-info .info-reading,.route-info .info-custom{max-width:none;margin:22px 0;padding:24px 22px;scroll-margin-top:24px}
.route-info .info-reading h2,.route-info .info-custom h2{margin:0 0 16px;color:#073754;font-size:1.4rem;font-weight:850;line-height:1.3}
.route-info .info-reading p,.route-info .info-custom p{margin:0 0 14px;color:#234a65;font-size:1rem;line-height:1.75}
.route-info .info-reading p:last-child,.route-info .info-custom p:last-child{margin-bottom:0}
.route-info .info-link,.route-info .info-contact-link,.route-info .info-inline-actions a,.route-info .info-inline-actions button{color:var(--info-accent)}
.route-info .info-inline-actions{align-items:center;gap:8px 20px;margin-top:15px}
.route-info .info-inline-actions a,.route-info .info-inline-actions button{min-height:44px}
.route-info .info-inline-actions [role=status]{color:#37576e}
.route-info .info-contact-pending{color:#37576e}
.route-info .info-contact-grid .info-contact-link{min-height:44px;margin-top:10px;line-height:1.5}
.route-info .info-faq{gap:16px;margin:0 0 22px;padding:0}
.route-info .info-faq details{padding:0 23px}
.route-info .info-faq summary{min-height:66px;padding:20px 0;color:#073754;font-size:1.1rem;font-weight:850;line-height:1.5}
.route-info .info-faq details p{padding:0 0 22px;color:#234a65;font-size:1rem;line-height:1.7}
.route-info .info-page>.info-link{min-height:44px;margin:0 0 20px}
.route-info .info-next{justify-content:center;gap:8px 12px;margin-top:32px;padding:25px 0 0;border-color:#ece7f2}
.route-info .info-next a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 15px;background:var(--info-tint);color:#173e5b;font-size:.92rem;font-weight:750}
.route-info .info-next a:hover{background:var(--info-highlight)}
.route-info a:focus-visible,.route-info button:focus-visible,.route-info summary:focus-visible{outline:3px solid var(--info-accent);outline-offset:4px}
@media(max-width:900px){
  .route-info .info-header{height:215px;padding:28px 28px}
  .route-info .info-exit{top:28px;right:28px}
  .route-info .info-header-art{top:5px;right:100px;width:220px;height:220px}
  .route-info .info-brand{font-size:1.25rem}
  .route-info .info-main{padding-inline:24px}
  .route-info .info-hero{padding:46px 0 35px}
  .route-info .info-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .route-info .info-topic-grid>a,.route-info .info-topic-grid>div{min-height:218px}
  .route-info .info-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
  .route-info .info-feature-grid article{padding:22px 18px}
}
@media(max-width:650px){
  .route-info .info-header{height:185px;padding:20px 18px}
  .route-info .info-brand{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:9px;row-gap:2px;max-width:calc(100% - 91px);font-size:1.15rem}
  .route-info .info-brand-symbol{grid-row:1/3;width:24px;font-size:1.55rem}
  .route-info .info-header-label{grid-column:2;margin-left:0;font-size:.9rem;line-height:1.35}
  .route-info .info-exit{top:20px;right:18px;gap:8px;min-width:70px;font-size:.95rem}
  .route-info .info-exit svg{width:19px;height:19px;flex-basis:19px}
  .route-info .info-header-art{top:58px;right:24px;width:145px;height:145px}
  .route-info .info-main{padding:0 18px 44px}
  .route-info .info-hero{padding:38px 0 30px}
  .route-info .info-hero h1{margin-bottom:17px;font-size:1.9rem;line-height:1.22}
  .route-info .info-hero>p{font-size:1.08rem;line-height:1.65}
  .route-info .info-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .route-info .info-topic-grid>a,.route-info .info-topic-grid>div{gap:10px;min-height:210px;padding:24px 12px 21px;border-radius:18px}
  .route-info .info-topic-grid>a>svg{flex-basis:64px;width:64px;height:64px;margin-bottom:3px}
  .route-info .info-topic-grid strong{font-size:1.12rem}
  .route-info .info-topic-grid span{font-size:.78rem}
  .route-info .info-feature-grid,.route-info .info-contact-grid{grid-template-columns:1fr;gap:17px}
  .route-info .info-feature-grid article,.route-info .info-contact-grid article{padding:24px 20px}
  .route-info .info-feature-icon{margin:0}
  .route-info .info-reading,.route-info .info-custom{margin:20px 0;padding:22px 20px;border-radius:18px}
  .route-info .info-reading h2,.route-info .info-custom h2,.route-info .info-feature-grid h2,.route-info .info-contact-grid h2{font-size:1.25rem}
  .route-info .info-faq details{padding:0 20px;border-radius:18px}
  .route-info .info-faq summary{font-size:1rem}
  .route-info .info-next{gap:8px;margin-top:26px;padding-top:22px}
  .route-info .info-next a{padding-inline:12px;font-size:.86rem}
}
@media(prefers-reduced-motion:reduce){.route-info .info-topic-grid>a:hover{transform:none}}
