.generator-main{max-width:840px;margin:0 auto;padding:44px 24px 72px}
.generator-main h1{font-family:var(--font-display);font-size:clamp(34px,5vw,48px);line-height:1.12;margin:0 0 12px;color:var(--ink)}
.generator-main h1 sup,.generator-main h1 sub{color:var(--rust);font-size:.6em}
.generator-main .lead{max-width:66ch;color:var(--ink-soft);margin:0 0 28px}
.generator-main .tool{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card)}
.generator-main label{display:block;font-weight:600;margin:0 0 7px;color:var(--ink)}
.generator-main textarea{display:block;width:100%;min-height:112px;resize:vertical;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font:inherit}
.generator-main textarea:focus,.generator-main button:focus-visible,.generator-main input:focus-visible{outline:3px solid var(--rust);outline-offset:2px}
.generator-main #out{font-size:1.2rem}
.generator-main .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.generator-main button{font:inherit;font-weight:600;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer}
.generator-main button:hover{border-color:var(--rust);background:var(--rust-tint)}
.generator-main button.primary{background:var(--rust);color:#fff;border-color:var(--rust)}
.generator-main button.primary:hover{background:var(--rust-dark)}
.generator-main .opt{display:flex;gap:8px;align-items:center;color:var(--ink-soft);font-size:.9rem;margin:0 0 0 auto;font-weight:400}
.generator-main .opt input{accent-color:var(--rust)}
.generator-main #status{color:var(--good);font-weight:600;min-height:1.6em;margin-top:10px}
.generator-main .examples{margin-top:12px;color:var(--stone);font-size:.92rem}
.generator-main .examples button{padding:4px 10px;font-weight:500;font-size:.88rem;margin:2px 4px 2px 0}
.generator-main h2{font-family:var(--font-display);font-size:26px;margin:40px 0 10px}
.generator-main .character-intro{color:var(--ink-soft);margin-top:0}
.generator-main .map{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:8px}
.generator-main .map button{display:flex;flex-direction:column;align-items:center;padding:9px 4px;font-weight:400;border-radius:var(--radius-sm)}
.generator-main .map span{font-size:1.3rem;line-height:1.2}
.generator-main .map small{color:var(--stone)}
.generator-main details{border-top:1px solid var(--line);padding:13px 0}
.generator-main summary{cursor:pointer;font-weight:600;color:var(--ink)}
.generator-main details p{margin:8px 0 0;color:var(--ink-soft)}
.generator-footer{margin-top:0}
@media(max-width:640px){.generator-main{padding:32px 20px 56px}.generator-main .tool{padding:18px}.generator-main .opt{width:100%;margin:4px 0 0}}
