@import url('wiki-shell.css');
@import url('enhancements.css');

@font-face{font-family:PixelAE;src:url('../assets/fonts/PixelAE-Regular.ttf') format('truetype');font-display:swap}

:root{
  --night:#041426;
  --night-deep:#020b18;
  --moss:#082846;
  --moss-light:#0d355c;
  --paper:#eaf7ff;
  --ink:#e7f5ff;
  --muted:#9bb9cf;
  --sun:#6ed2ff;
  --clay:#2369c9;
  --sky:#4fa8ed;
  --line:#1d4668;
  --line-soft:rgba(193,229,250,.12);
  --danger:#e27a5f;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--night-deep)}
body{margin:0;background:var(--night);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;overflow-x:hidden}
body::before{content:"";position:absolute;inset:0 0 auto;height:40rem;pointer-events:none;opacity:.18;background-image:radial-gradient(rgba(163,220,255,.22) .6px,transparent .7px);background-size:5px 5px;z-index:0}
a{color:var(--paper);text-underline-offset:.22em;text-decoration-thickness:1px}
a:hover{color:#fff}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--sun);outline-offset:4px}
button,input,select{font:inherit}
.hidden{display:none!important}

.wiki-shell{position:relative;z-index:1;width:min(1280px,calc(100% - 3rem));margin:0 auto}
.wiki-topbar{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;border-bottom:1px solid var(--line);position:relative;z-index:20}
.brand{display:flex;align-items:center;gap:.8rem;color:var(--ink);text-decoration:none;font-family:PixelAE,monospace;font-size:1rem;letter-spacing:.025em}
.brand img{width:44px;height:44px;object-fit:contain;image-rendering:auto}
.brand b{color:var(--sun);font-weight:400}
.top-links{display:flex;align-items:center;gap:1.5rem}
.top-links a{color:var(--muted);font-weight:650;font-size:.9rem;text-decoration:none;padding:.5rem 0}
.top-links a:hover{color:var(--ink)}
.top-links .store-link{color:var(--night-deep);background:var(--paper);padding:.66rem .9rem;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}
.top-links .store-link:hover{background:#fff;color:var(--night-deep)}

/* Home hero: a real game world is the page's signature artifact. */
.wiki-home{min-width:0}
.home-hero{min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(320px,.86fr) minmax(460px,1.35fr);align-items:center;gap:clamp(2rem,5vw,5.5rem);position:relative;padding:3.5rem 0 5rem}
.hero-copy{position:relative;z-index:2;align-self:center}
.edition-line{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;color:var(--muted);font-size:.78rem;font-weight:700;margin:0 0 1.15rem;padding:0 0 .65rem;border-bottom:2px solid var(--clay)}
.edition-line span{color:var(--sun);white-space:nowrap}
.home-hero h1{font-family:PixelAE,monospace;font-weight:400;font-size:clamp(2.45rem,4vw,4.9rem);line-height:1.08;letter-spacing:.015em;margin:0;white-space:nowrap}
.hero-summary{font-size:clamp(1rem,1.35vw,1.2rem);color:var(--muted);max-width:35rem;margin:1.45rem 0 2rem}
.hero-search{position:relative;max-width:35rem}
.hero-search>label{display:block;font-weight:760;font-size:.86rem;margin-bottom:.55rem;color:var(--paper)}
.search-control{display:grid;grid-template-columns:1fr auto;align-items:center;background:var(--night-deep);border-bottom:3px solid var(--sun)}
.search-control input{min-width:0;width:100%;border:0;background:transparent;color:var(--ink);padding:.9rem 1rem;outline:0}
.search-control input::placeholder{color:#779bb6}
.search-control span{font-family:PixelAE,monospace;color:var(--sun);font-size:1.25rem;padding:0 1rem}
.search-results{display:none;position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--paper);color:var(--night);border-top:3px solid var(--night);max-height:23rem;overflow:auto}
.search-results.has-results{display:block}
.search-results a{display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--night);text-decoration:none;padding:.72rem 1rem;border-bottom:1px solid rgba(4,20,38,.16)}
.search-results a:hover{background:#fff;color:var(--night)}
.search-results a span{color:#31536d;font-size:.78rem}
.search-results p{margin:0;padding:1rem}
.hero-scene{margin:0;position:relative;min-width:0;align-self:stretch;display:flex;align-items:center;padding:2.5rem 0}
.hero-scene::before{content:"";position:absolute;inset:13% -1rem 10% 18%;background:var(--clay);clip-path:polygon(8% 0,100% 0,100% 88%,91% 88%,91% 100%,0 100%,0 14%,8% 14%)}
.hero-scene img{position:relative;display:block;width:100%;height:auto;object-fit:contain;clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) calc(100% - 28px),calc(100% - 28px) 100%,0 100%);filter:saturate(.87) contrast(1.03)}
.hero-scene figcaption{position:absolute;left:-.75rem;bottom:9%;background:var(--night-deep);color:var(--paper);font-size:.72rem;font-weight:700;padding:.55rem .7rem;border-left:4px solid var(--sun)}

.route-section,.library-section,.fact-section{padding:clamp(4.5rem,8vw,8.5rem) 0}
.section-opening{display:grid;grid-template-columns:1fr minmax(240px,.48fr);align-items:end;gap:2rem;margin-bottom:2.25rem}
.section-opening h2,.library-heading h2,.fact-intro h2{font-family:PixelAE,monospace;font-size:clamp(2rem,3.4vw,3.6rem);font-weight:400;line-height:1.1;letter-spacing:.01em;margin:0}
.section-opening p,.library-heading p,.fact-intro p{color:var(--muted);margin:0}
.route-section{border-top:1px solid var(--line)}
.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:var(--line)}
.route{position:relative;min-height:13rem;display:grid;grid-template-columns:3rem 1fr auto;grid-template-rows:auto 1fr;gap:.75rem 1.25rem;align-content:start;background:var(--moss);color:var(--ink);text-decoration:none;padding:1.5rem 2.1rem 1.75rem 1.5rem;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}
.route:hover{background:var(--moss-light);color:var(--ink)}
.route-number{font-family:PixelAE,monospace;color:var(--sun);font-size:.78rem;grid-row:1/3}
.route strong{font-family:PixelAE,monospace;font-size:clamp(1.15rem,2vw,1.7rem);font-weight:400;line-height:1.25}
.route small{grid-column:2;align-self:end;color:var(--muted);font-size:.9rem;max-width:32rem}
.route-arrow{font-size:1.2rem;transition:transform .2s ease}
.route:hover .route-arrow{transform:translate(3px,-3px)}
.route-build{background:#0a2c4b}.route-explore{background:#09233c}.route-together{background:#0b3152}

.library-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.library-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.45fr);gap:2rem;align-items:end;margin-bottom:3rem}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem)}
.guide-group h3{font-family:PixelAE,monospace;color:var(--sun);font-size:1rem;font-weight:400;margin:0 0 1rem;padding-bottom:.6rem;border-bottom:2px solid currentColor}
.guide-group ol{list-style:none;margin:0;padding:0;counter-reset:guide}
.guide-group li{counter-increment:guide;border-bottom:1px solid var(--line)}
.guide-group a{display:grid;grid-template-columns:1fr auto;gap:.15rem 1rem;position:relative;color:var(--ink);text-decoration:none;padding:.9rem 0 .9rem 2.5rem}
.guide-group a::before{content:counter(guide,decimal-leading-zero);position:absolute;left:0;top:1rem;color:#789ab3;font-family:PixelAE,monospace;font-size:.65rem}
.guide-group a:hover span{color:var(--sun)}
.guide-group a>span{font-weight:720;transition:color .18s ease}
.guide-group small{grid-column:1;color:var(--muted);font-size:.78rem}
.guide-group a::after{content:"↗";grid-column:2;grid-row:1/3;align-self:center;color:#789ab3}

.fact-section{display:grid;grid-template-columns:minmax(260px,.48fr) minmax(0,1fr);gap:clamp(2rem,7vw,7rem);align-items:start}
.fact-intro p{margin-top:1rem}
.fact-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2.5rem}
.fact-grid div{padding:1rem 0 1.25rem;border-top:1px solid var(--line)}
.fact-grid dt{color:var(--sun);font-size:.75rem;font-weight:800;margin-bottom:.3rem}
.fact-grid dd{margin:0;color:var(--muted)}

/* Shared article pages */
.article-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding:3rem 0 6rem;min-width:0}
.article-nav{position:sticky;top:1.5rem;padding-top:.65rem;border-top:4px solid var(--clay)}
.article-nav strong{display:block;color:var(--paper);font-family:PixelAE,monospace;font-weight:400;font-size:.8rem;margin:0 0 .8rem}
.article-nav a{display:block;color:var(--muted);text-decoration:none;padding:.38rem 0;font-size:.86rem}
.article-nav a:hover{color:var(--sun)}
.article{min-width:0;max-width:880px}
.crumbs{color:var(--muted);font-size:.8rem;margin-bottom:1rem}
.crumbs a{color:var(--muted)}
.kicker{color:var(--sun);font-weight:750;font-size:.78rem;margin:.3rem 0 .8rem}
.article h1{font-family:PixelAE,monospace;font-size:clamp(2.45rem,5.2vw,5rem);font-weight:400;line-height:1.08;letter-spacing:.012em;margin:.3rem 0 1.4rem;text-wrap:balance}
.article>p:first-of-type,.hero-copy{font-size:1.08rem;color:#c3deef;max-width:56rem}
.article h2{font-family:PixelAE,monospace;font-size:clamp(1.35rem,2.5vw,2.2rem);font-weight:400;line-height:1.25;margin:3.4rem 0 .9rem;color:var(--paper);scroll-margin-top:2rem}
.article h3{font-size:1.05rem;color:var(--ink);margin:2rem 0 .4rem}
.article p,.article li{color:var(--muted)}
.article strong{color:var(--paper)}
.article ul,.article ol{padding-left:1.35rem}
.article li{margin:.42rem 0}
.notice,.callout{padding:1rem 1.15rem;margin:1.35rem 0;background:var(--moss);color:#c6dfef;border-left:5px solid var(--sun)}
.callout{border-left-color:var(--clay)}
.feature-image{display:block;width:100%;height:auto;object-fit:contain;margin:1.5rem 0;clip-path:polygon(0 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) calc(100% - 18px),calc(100% - 18px) 100%,0 100%)}
.table-wrap{overflow-x:auto;margin:1.4rem 0;border-top:3px solid var(--clay);background:var(--night-deep)}
.wiki-table{width:100%;border-collapse:collapse;min-width:580px}
.wiki-table th,.wiki-table td{text-align:left;vertical-align:top;padding:.78rem .82rem;border-bottom:1px solid var(--line)}
.wiki-table th{color:var(--paper);background:var(--moss);font-size:.76rem;letter-spacing:.025em}
.wiki-table td{color:var(--muted);font-size:.9rem}
.wiki-table tr:hover td{background:#09213a}
.pill{display:inline-block;color:var(--sun);font-size:.75rem;font-weight:750}
.data-toolbar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:1.5rem 0 .85rem}
.data-toolbar input,.data-toolbar select,.search-wrap input{min-height:44px;background:var(--night-deep);color:var(--ink);border:1px solid var(--line);border-radius:0;padding:.72rem .82rem}
.data-toolbar input{flex:1 1 260px}
.count-note{color:var(--muted);font-size:.82rem}
.cell-label{display:block;color:var(--sun);font-size:.68rem;font-weight:750;margin-bottom:.15rem}
.achievement-goal{display:block;color:var(--ink)}
.article-footer{display:flex;justify-content:space-between;gap:1.5rem;border-top:1px solid var(--line);margin-top:4rem;padding:1.5rem 0 0}
.article-footer a{color:var(--muted);text-decoration:none}
.article-footer a:hover{color:var(--sun)}
.footer{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:center;border-top:1px solid var(--line);color:var(--muted);padding:1.5rem 0 3rem;font-size:.78rem}
.footer a{justify-self:end;color:var(--muted)}

@media(max-width:1100px){
  .home-hero{grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr);gap:2rem}
  .article-layout{grid-template-columns:160px minmax(0,1fr);gap:2rem}
}

@media(max-width:820px){
  .wiki-shell{width:min(100% - 1.5rem,1280px)}
  .home-hero{min-height:auto;grid-template-columns:1fr;padding:3rem 0 4rem}
  .hero-copy{max-width:42rem}
  .hero-scene{min-height:26rem;padding:0}
  .hero-scene img{height:auto}
  .hero-scene::before{inset:8% 0 -1rem 16%}
  .hero-scene figcaption{left:.75rem;bottom:1rem}
  .section-opening,.library-heading,.fact-section{grid-template-columns:1fr}
  .section-opening,.library-heading{align-items:start}
  .library-grid{grid-template-columns:1fr 1fr}
  .guide-group:last-child{grid-column:1/-1}
  .article-layout{grid-template-columns:1fr;padding-top:2rem}
  .article-nav{position:static;display:flex;flex-wrap:wrap;gap:.25rem 1rem;border-top-width:3px;padding-top:.8rem}
  .article-nav strong{width:100%;margin-bottom:.2rem}
  .article-nav a{display:inline-block}
}

@media(max-width:580px){
  .wiki-topbar{min-height:70px;align-items:center}
  .brand span{font-size:.86rem}.brand img{width:38px;height:38px}
  .top-links{gap:.85rem}.top-links a{font-size:.78rem}.top-links a:first-child{display:none}
  .home-hero{padding-top:2.3rem}.home-hero h1{font-size:2rem}.hero-summary{font-size:.98rem}
  .hero-scene{min-height:0}.hero-scene img{height:auto}.hero-scene::before{inset:7% 0 -1rem 12%}
  .route-grid,.library-grid,.fact-grid{grid-template-columns:1fr}
  .route{min-height:11rem}.guide-group:last-child{grid-column:auto}
  .route-section,.library-section,.fact-section{padding:4.25rem 0}
  .section-opening h2,.library-heading h2,.fact-intro h2{font-size:2rem}
  .article h1{font-size:2.45rem}
  .article-footer{flex-direction:column}
  .footer{grid-template-columns:1fr;gap:.35rem}.footer a{justify-self:start}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.route-arrow,.guide-group a>span{transition:none}}
