:root{--bg: #0b0e1a;--bg-2: #131a2e;--gold: #c9a227;--gold-soft: #e6c86a;--gold-dim: rgba(201, 162, 39, .35);--text: #e8e6df;--text-dim: #9aa0b4}@font-face{font-family:LifeCraft;src:url(/fonts/LifeCraft.ttf) format("truetype");font-display:swap}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Friz Quadrata,Trajan Pro,Cinzel,Georgia,serif;background:radial-gradient(1200px 600px at 80% -10%,#2a1f4d 0%,transparent 60%),radial-gradient(900px 500px at 10% 110%,#123a52 0%,transparent 55%),var(--bg);color:var(--text);min-height:100vh}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);z-index:0}h1,h2,h3,.font-display{font-family:LifeCraft,Friz Quadrata,Cinzel,serif;font-weight:400}.topbar{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:1.2rem 2rem}.topbar-link{color:var(--gold-soft);text-decoration:none;border:1px solid var(--gold);border-radius:6px;padding:.45rem .9rem;background:#0000004d}.topbar-link:hover{background:#c9a22726}.hero{position:relative;text-align:center;padding:6rem 2rem 4rem;overflow:hidden}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px 300px at 50% 20%,rgba(201,162,39,.12),transparent 70%);pointer-events:none}.orb{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(201,162,39,.35),transparent 70%);filter:blur(2px);animation:float 9s ease-in-out infinite;pointer-events:none}.orb-1{width:90px;height:90px;top:18%;left:14%}.orb-2{width:60px;height:60px;top:30%;right:16%;animation-delay:-3s}.orb-3{width:120px;height:120px;bottom:10%;left:42%;animation-delay:-6s;opacity:.5}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}.hero-title{position:relative;font-size:clamp(2.6rem,6vw,4.2rem);color:var(--gold-soft);margin-bottom:1rem;text-shadow:0 0 24px rgba(201,162,39,.4),0 3px 0 rgba(0,0,0,.5);letter-spacing:.04em}.hero-sub{position:relative;color:var(--text-dim);max-width:34rem;margin:0 auto 2.2rem;font-size:1.1rem;line-height:1.6}.cta-btn{position:relative;display:inline-block;background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:#1a1400;font-family:LifeCraft,Friz Quadrata,serif;font-size:1.25rem;padding:.9rem 2.4rem;border-radius:4px;text-decoration:none;box-shadow:0 0 0 1px #2a1f0a inset,0 6px 24px #c9a22759;transition:transform .15s ease,box-shadow .15s ease}.cta-btn:hover{transform:translateY(-2px);box-shadow:0 0 0 1px #2a1f0a inset,0 10px 32px #c9a22780}.features{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem;max-width:900px;margin:0 auto;padding:1rem 2rem 4rem}.feature{background:linear-gradient(180deg,#ffffff0a,#ffffff03);border:1px solid var(--gold-dim);border-radius:6px;padding:1.4rem;box-shadow:0 0 0 1px #00000080 inset}.feature-title{color:var(--gold-soft);margin-bottom:.5rem}.feature-text{color:var(--text-dim);line-height:1.55}.footer{position:relative;z-index:1;text-align:center;color:var(--text-dim);font-size:.85rem;padding:2rem;border-top:1px solid rgba(255,255,255,.06)}.generator-page{min-height:100vh;display:flex;flex-direction:column}.generator-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(280px,380px) 1fr;grid-template-areas:"races classes" "settings settings" "result result";gap:1.6rem;max-width:1180px;margin:0 auto;padding:1.5rem 2rem 3rem;width:100%;flex:1}.sr-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.pane-races{grid-area:races}.pane-classes{grid-area:classes}.pane-settings{grid-area:settings;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}.result-panel{grid-area:result}.group{background:linear-gradient(180deg,#131a2ed9,#0b0e1ad9);border:1px solid var(--gold-dim);border-radius:6px;padding:1rem;box-shadow:0 0 0 1px #00000080 inset,0 4px 18px #0006}.group legend{color:var(--gold-soft);padding:0 .4rem;letter-spacing:.05em}.chip{background:#ffffff0d;color:var(--text);border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:.4rem .9rem;cursor:pointer;margin-right:.4rem}.chip.is-active,.class-card.is-active,.race-item.is-active{border-color:var(--gold);background:#c9a2272e;color:var(--gold-soft)}.race-list{display:flex;flex-direction:column;gap:.35rem;margin-top:.7rem;max-height:420px;overflow-y:auto}.race-item{display:flex;align-items:center;gap:.6rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--text);padding:.35rem .6rem;cursor:pointer;text-align:left}.race-item:hover{border-color:var(--gold)}.race-item img{border-radius:4px;box-shadow:0 0 8px #0009}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-top:.7rem}.class-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.3rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--text);padding:.5rem;cursor:pointer;font-size:.78rem;box-shadow:0 0 0 1px #0006 inset}.class-card:hover:not(:disabled){border-color:var(--gold)}.class-card:disabled{opacity:.4;filter:grayscale(.8);cursor:not-allowed}.class-card .reason{position:absolute;top:100%;left:50%;transform:translate(-50%);z-index:5;width:max-content;max-width:220px;background:#0b0e1af2;border:1px solid var(--gold);border-radius:4px;padding:.3rem .5rem;font-size:.68rem;color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease}.class-card:disabled:hover .reason{opacity:1}.class-card img{border-radius:4px;box-shadow:0 0 8px #0009}.gender-toggle{display:flex;flex-direction:column;gap:.6rem}.gender-preview{display:flex;justify-content:center}.gender-preview img{border-radius:6px;border:1px solid var(--gold-dim);box-shadow:0 0 12px #0009}.gender-glyph{font-size:2.2rem;line-height:1;color:var(--gold-soft)}.row{display:flex;flex-wrap:wrap;gap:.4rem}.hint{grid-area:settings;align-self:start;color:var(--gold-soft);font-size:.9rem;background:#c9a2271a;border:1px dashed var(--gold);border-radius:4px;padding:.5rem .8rem}.result-card{width:100%;background:linear-gradient(180deg,#131a2ee6,#0b0e1ae6);border:2px solid var(--gold);border-radius:8px;padding:3rem 2rem;text-align:center;box-shadow:0 0 0 1px #2a1f0a inset,0 12px 40px #0009}.result-race-icons{display:flex;justify-content:center;gap:1rem;margin-bottom:1.2rem}.result-race-icons img{border-radius:6px;box-shadow:0 0 12px #0009}.nickname{font-family:LifeCraft,Friz Quadrata,serif;font-size:clamp(2rem,5vw,3.4rem);color:var(--gold-soft);letter-spacing:.04em;margin-bottom:1rem;word-break:break-word;text-shadow:0 0 18px rgba(201,162,39,.35)}.result-note{color:var(--text-dim);font-style:italic;margin-bottom:1rem}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}.btn{background:linear-gradient(180deg,#ffffff12,#ffffff05);color:var(--text);border:1px solid var(--gold-dim);border-radius:4px;padding:.55rem 1.5rem;cursor:pointer;font-size:.95rem;font-family:inherit}.btn:hover{border-color:var(--gold);color:var(--gold-soft)}.result-empty{grid-area:result;color:var(--text-dim);font-size:1.05rem;text-align:center;width:100%;padding:4rem 2rem;border:1px dashed var(--gold-dim);border-radius:8px}@media (max-width: 820px){.generator-layout{grid-template-columns:1fr;grid-template-areas:"races" "classes" "settings" "result"}}
