.brand-logo{display:inline-flex;align-items:center;justify-content:center;line-height:1}.brand-logo img{display:block;width:100%;height:auto;object-fit:contain}.brand-logo-text{width:min(280px,100%)}.brand-logo-full{width:min(680px,100%)}.brand-logo-fallback{font-family:var(--font-logo);color:var(--ember-gold);filter:drop-shadow(0 3px 16px rgba(212,106,37,.3))}.loading-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 90% 60% at 50% 108%,rgba(212,106,37,.3) 0%,transparent 60%),radial-gradient(ellipse at center,var(--iron-panel) 0%,var(--void-black) 85%);z-index:500}.loading-panel{display:flex;flex-direction:column;align-items:center;gap:1em;padding:clamp(28px,5vw,48px) clamp(32px,6vw,64px);background:linear-gradient(#24180ebf,#17120de6);border:1px solid var(--old-gold);border-radius:4px;box-shadow:0 12px 48px #0009,inset 0 0 60px #0006}.loading-logo{filter:drop-shadow(0 2px 10px rgba(212,106,37,.35))}.loading-logo-mark{width:min(300px,72vw)}.loading-logo-mark .brand-logo-fallback{font-size:clamp(28px,6vw,56px);letter-spacing:.12em}.loading-rule{color:var(--old-gold);letter-spacing:.5em;font-size:.8rem}.loading-bar{width:min(280px,60vw);height:8px;background:var(--aged-leather);border:1px solid var(--old-gold);border-radius:3px;overflow:hidden}.loading-bar-fill{width:40%;height:100%;background:linear-gradient(90deg,var(--old-gold),var(--ember-gold));transition:width .15s ease-out}.loading-bar-sweep{animation:loading-sweep 1.4s ease-in-out infinite}@keyframes loading-sweep{0%{transform:translate(-100%)}to{transform:translate(350%)}}.loading-pct{font-family:var(--font-heading, serif);color:var(--ember-gold);font-size:.95rem;letter-spacing:.08em}.loading-label{color:var(--faded-script);font-style:italic;font-size:.95rem;margin:0;min-height:1.3em}.lang-select{position:relative;display:inline-block}.lang-select-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 12px;background:linear-gradient(180deg,#14100a,#0b0806);border:1px solid #6b5a33;border-radius:4px;color:#d8c9a8;font:inherit;font-size:14px;letter-spacing:.02em;cursor:pointer;transition:border-color .15s ease,color .15s ease}.lang-select-btn:hover{border-color:#a98a45;color:#f0e2bf}.lang-select-btn:focus-visible{outline:2px solid #ffd24a;outline-offset:2px}.lang-select-glyph{color:#a98a45;font-size:12px}.lang-select-caret{color:#8a7644;font-size:11px}.lang-select-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:100%;margin:0;padding:4px;list-style:none;background:#0c0906;border:1px solid #6b5a33;border-radius:5px;box-shadow:0 8px 22px #0009,0 0 0 1px #a98a4526;z-index:60}.lang-select-footer .lang-select-menu{bottom:calc(100% + 6px);top:auto}.lang-select-menu li{margin:0}.lang-select-menu button{display:block;width:100%;min-height:36px;padding:8px 14px;text-align:left;background:transparent;border:none;border-radius:3px;color:#cbbc98;font:inherit;font-size:14px;cursor:pointer;transition:background .12s ease,color .12s ease}.lang-select-menu button:hover{background:#1a140c;color:#f0e2bf}.lang-select-menu button.active{color:#ffd24a}.lang-select-menu button.active:before{content:"✦ ";color:#a98a45}.lang-select-menu button:focus-visible{outline:2px solid #ffd24a;outline-offset:-2px}@media(pointer:coarse){.lang-select-btn,.lang-select-menu button{font-size:16px}}.gnav{display:flex;align-items:center;gap:2em;padding:.8em 2em;background:var(--obsidian-black);border-bottom:1px solid var(--old-gold);position:sticky;top:0;z-index:50}.gnav-logo{display:inline-flex;align-items:center;text-decoration:none}.gnav-logo-mark{width:150px}.gnav-logo-mark .brand-logo-fallback{font-size:1.3rem;letter-spacing:.1em;white-space:nowrap}.gnav-links{display:flex;gap:1.6em;flex:1;flex-wrap:wrap}.gnav-links a{font-family:var(--font-heading);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--old-paper);text-decoration:none;padding-bottom:.2em;border-bottom:1px solid transparent}.gnav-links a:hover,.gnav-links a.active{color:var(--ember-gold);border-color:var(--ember-gold)}.gnav-account{display:flex;align-items:center;gap:1em;white-space:nowrap}.gnav-account-link{font-size:.82rem;color:var(--old-paper);text-decoration:none}.gnav-account-link:hover{color:var(--ember-gold)}.gnav-account-cta{font-family:var(--font-heading);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ember-gold);border:1px solid var(--old-gold);border-radius:4px;padding:.5em 1em;text-decoration:none}.gnav-account-cta:hover{border-color:var(--ember-gold);box-shadow:0 0 12px #c99a454d}.gnav-enter-world{font-family:var(--font-heading);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--obsidian-black);background:linear-gradient(var(--ember-gold),var(--old-gold));border:1px solid var(--ember-gold);border-radius:4px;padding:.55em 1.2em;text-decoration:none;font-weight:700;box-shadow:0 0 10px #c99a4540}.gnav-enter-world:hover{box-shadow:0 0 18px #c99a458c}.gnav-user{position:relative}.gnav-user-btn{font-family:var(--font-heading);font-size:.82rem;letter-spacing:.06em;color:var(--ember-gold);background:none;border:1px solid transparent;border-radius:4px;padding:.5em .8em;cursor:pointer}.gnav-user-btn:hover{border-color:var(--old-gold)}.gnav-user-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:170px;display:flex;flex-direction:column;padding:.4em 0;z-index:60}.gnav-user-menu a,.gnav-user-menu button{font-family:var(--font-ui);font-size:.85rem;color:var(--old-paper);background:none;border:none;text-align:left;text-decoration:none;padding:.6em 1.1em;cursor:pointer}.gnav-user-menu a:hover,.gnav-user-menu button:hover{color:var(--ember-gold);background:#c99a4514}@media(max-width:760px){.gnav{flex-wrap:wrap;gap:.8em;padding:.8em 1em}.gnav-links{order:3;gap:1em}.gnav-account{gap:.8em;flex-wrap:wrap;white-space:normal;row-gap:.5em}}.gfooter{margin-top:4rem;border-top:1px solid var(--ancient-brown);background:linear-gradient(180deg,rgba(13,11,8,.6),var(--void-black))}.gfooter-inner{max-width:1200px;margin:0 auto;padding:2.6rem 2rem 1.5rem;display:flex;flex-wrap:wrap;gap:2.4rem 3rem}.gfooter-brand{flex:1 1 240px;min-width:220px}.gfooter-wordmark{font-family:var(--font-logo);font-size:1.4rem;letter-spacing:.12em;color:var(--ember-gold)}.gfooter-tagline{margin:.5em 0 0;font-size:1rem;color:var(--faded-script)}.gfooter-col{display:flex;flex-direction:column;gap:.45em;min-width:130px}.gfooter-soon{font-family:var(--font-ui);font-size:.82rem;font-style:italic;color:var(--faded-script);max-width:12em}.gfooter-col h3{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--old-gold);margin:0 0 .4em}.gfooter-col a{font-family:var(--font-ui);font-size:.9rem;color:var(--old-paper);text-decoration:none}.gfooter-col a:hover{color:var(--ember-gold);text-decoration:underline}.gfooter-meta{max-width:1200px;margin:0 auto;padding:1rem 2rem 1.4rem;border-top:1px solid rgba(51,33,17,.6);display:flex;flex-wrap:wrap;gap:.4em 2em;justify-content:space-between;font-family:var(--font-ui);font-size:.8rem;color:var(--faded-script)}.gfooter-build{font-variant-numeric:tabular-nums;letter-spacing:.04em;display:inline-flex;align-items:center;gap:.5em}.gfooter-version{color:var(--old-paper)}.gfooter-dot{color:var(--ancient-brown)}.gfooter-hash{color:var(--faded-script)}@media(max-width:640px){.gfooter-inner{gap:1.8rem 2.5rem;padding:2rem 1.2rem 1rem}.gfooter-meta{padding:.9rem 1.2rem 1.2rem}}.gbtn{font-family:var(--font-heading);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;padding:.85em 2em;border-radius:4px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;background:linear-gradient(#231a10,var(--iron-panel));color:var(--parchment);border:1px solid var(--old-gold)}.gbtn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--ember-gold)}.gbtn:disabled{opacity:.4;cursor:not-allowed}.gbtn-primary{color:var(--parchment);border-color:var(--bronze);background:linear-gradient(var(--bronze),var(--aged-leather))}.gbtn-primary:hover:not(:disabled){border-color:var(--ember-gold);box-shadow:0 0 18px #d46a2566}.gbtn-secondary{color:var(--old-paper);border-color:var(--bronze)}.gbtn-secondary:hover:not(:disabled){color:var(--parchment);border-color:var(--old-gold)}.gbtn-danger{color:#e8a89a;border-color:var(--danger-red)}.gbtn-danger:hover:not(:disabled){box-shadow:0 0 18px #7a201873}.race-card{display:flex;flex-direction:column;width:220px;padding:0;background:var(--iron-panel);cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:transform .12s,border-color .12s,box-shadow .12s}.race-card:hover{transform:translateY(-3px);border-color:var(--bronze)}.race-card.selected{border-color:var(--ember-gold);box-shadow:0 0 18px #c99a4559}.race-card-art{width:100%;height:200px;object-fit:cover;border-bottom:1px solid var(--old-gold);display:block}.race-card-body{padding:.9em 1em 1.1em}.race-card-name{display:flex;align-items:baseline;justify-content:space-between;gap:.5em;font-family:var(--font-heading);color:var(--ember-gold);letter-spacing:.08em;font-size:1.1rem;margin-bottom:.2em}.race-card-chosen{flex:none;font-family:var(--font-ui);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ember-gold);border:1px solid var(--old-gold);border-radius:999px;padding:.2em .6em;background:#c89a481f}.race-card-subtitle{font-family:var(--font-ui);color:var(--old-paper);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;margin-bottom:.5em}.race-card-explore{font-family:var(--font-ui);color:var(--bronze);letter-spacing:.05em;font-size:.78rem;margin-top:.4em}.race-card:hover .race-card-explore{color:var(--ember-gold)}.race-card-desc{font-size:.92rem;margin:0 0 .5em;min-height:3.2em}.race-card-stats{font-family:var(--font-ui);font-size:.78rem;color:var(--forest-green);letter-spacing:.03em}.landing{display:flex;flex-direction:column}.landing-hero{position:relative;min-height:72vh;background-size:cover;background-position:center;display:flex;align-items:center}.landing-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050403e6,#0504038c 45%,#05040340)}.landing-hero-inner{position:relative;text-align:left;padding:0 clamp(20px,8vw,90px);max-width:720px}.landing-title{font-family:var(--font-logo);font-size:clamp(36px,7vw,76px);letter-spacing:0;color:var(--ember-gold);filter:drop-shadow(0 4px 18px rgba(212,106,37,.35));margin:.2em 0}.landing-hero-rule{width:min(520px,82vw);display:flex;justify-content:center;gap:clamp(24px,5vw,42px);letter-spacing:0;margin-bottom:.25em}.landing-title-mark{width:min(520px,82vw)}.landing-title-mark .brand-logo-fallback{font-size:clamp(36px,7vw,76px);letter-spacing:.08em}.landing-tagline{max-width:480px;margin:0 0 1.6em;font-style:italic;white-space:pre-line}.landing-hero-buttons{display:flex;gap:1.2em;flex-wrap:wrap}.landing-offline-note{margin:1.2em 0 0;font-family:var(--font-ui);font-size:.75rem}.landing-offline-note a{color:var(--faded-script);text-decoration:underline}.landing-offline-note a:hover{color:var(--old-paper)}.landing-section{padding:clamp(32px,6vw,72px) clamp(20px,6vw,80px);max-width:1200px;margin:0 auto;width:100%}.landing-section-title{text-align:center;font-size:1.6rem;letter-spacing:.08em;margin-bottom:1em}.landing-race-row{display:flex;gap:1.2em;flex-wrap:wrap;justify-content:center}.landing-section-dark{max-width:none;position:relative;background-size:cover;background-position:center}.landing-section-overlay{background:#050403b8;max-width:900px;margin:0 auto;padding:clamp(24px,5vw,48px);border-radius:8px;text-align:center}.landing-explore-copy{max-width:620px;margin:0 auto 1.4em}.landing-map-preview{max-width:100%;border:1px solid var(--old-gold);border-radius:6px}.landing-feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2em}.landing-feature-card{padding:1.4em;border-radius:6px}.landing-feature-card h3{font-size:1.05rem}.landing-feature-card p{font-size:.98rem;margin:0}.landing-footer{text-align:center;padding:2em;color:var(--faded-script);font-size:.82rem;letter-spacing:.05em}:root{--void-black: #050403;--obsidian-black: #0d0b08;--iron-panel: #17120d;--aged-leather: #24180e;--ancient-brown: #332111;--ember-gold: #c99a45;--old-gold: #8f6a2e;--bronze: #a0522d;--fire-orange: #d46a25;--danger-red: #7a2018;--forest-green: #466b3a;--arcane-purple: #654c8c;--frost-blue: #496c86;--parchment: #d8c9a3;--old-paper: #b7a77c;--faded-script: #7d7058;--font-logo: "Cinzel Decorative", "Cinzel", serif;--font-heading: "Cinzel", serif;--font-lore: "Cormorant Garamond", serif;--font-ui: "Inter", sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;width:100%;min-height:100%;background:var(--void-black);color:var(--parchment)}body{font-family:var(--font-ui)}.gw-root{min-height:100vh;display:flex;flex-direction:column;background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0px,rgba(0,0,0,.25) 1px,transparent 1px,transparent 3px),radial-gradient(ellipse 120% 60% at 50% -10%,rgba(51,33,17,.55) 0%,transparent 60%),var(--void-black)}a{color:var(--ember-gold)}:focus-visible{outline:2px solid var(--ember-gold);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gw-skip-link{position:absolute;top:-100px;left:1em;z-index:1000;background:var(--iron-panel);color:var(--ember-gold);border:1px solid var(--ember-gold);border-radius:4px;padding:.7em 1.2em;text-decoration:none;font-family:var(--font-ui);transition:top .15s}.gw-skip-link:focus{top:1em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:.04em;color:var(--ember-gold);margin:0 0 .5em}p{font-family:var(--font-lore);font-size:1.15rem;line-height:1.6;color:var(--old-paper)}.gw-frame{position:relative;border:1px solid var(--old-gold);background:var(--iron-panel);box-shadow:0 6px 24px #00000080,inset 0 0 40px #00000059}.gw-frame:before,.gw-frame:after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--ember-gold);opacity:.75;pointer-events:none}.gw-frame:before{top:6px;left:6px;border-right:none;border-bottom:none}.gw-frame:after{bottom:6px;right:6px;border-left:none;border-top:none}.gw-rule{color:var(--old-gold);letter-spacing:.6em;font-size:.8rem;opacity:.8}.gw-scroll{flex:1;overflow-y:auto}.gw-route-loading{min-height:80vh}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--void-black)}::-webkit-scrollbar-thumb{background:var(--ancient-brown);border:1px solid var(--old-gold)}
