:root{color:#241b16;background:#ddd7cd;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:32px}.generator-page{grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(260px,320px);grid-template-areas:"panel result party";align-items:start;gap:24px;max-width:1540px;margin:0 auto;display:grid}.generator-panel{grid-area:panel}.generator-page__result{grid-area:result}.party-builder{grid-area:party}.generator-panel,.character-card,.party-builder{background:#fffaf2;border:1px solid #d8cabb;border-radius:8px}.generator-panel{align-self:start;gap:16px;padding:16px;display:grid}.generator-panel label{gap:6px;display:grid}.generator-panel span,.eyebrow{color:#6f6258;text-transform:uppercase;font-size:.8rem}.generator-panel input,.generator-panel select,.generator-panel button,.party-builder button{background:#fff;border:1px solid #c8b8a6;border-radius:6px;min-height:40px}.generator-panel button,.party-builder button{color:#fff;background:#47382f}.generator-panel button:disabled,.party-builder button:disabled{color:#a79a8e;cursor:not-allowed;opacity:1;background:#ede4d8;border-color:#d8cabb}.generator-panel__section{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.generator-panel__section-title{text-transform:uppercase;color:#7a6a5c;letter-spacing:.04em;font-size:.75rem;display:block}.generator-panel__section button{width:100%}.character-card{padding:24px}.character-name-input{color:#241b16;width:100%;font:inherit;background:0 0;border:1px solid transparent;border-radius:6px;padding:2px 4px;font-size:2rem;font-weight:700}.character-name-input:hover,.character-name-input:focus{background:#fffaf2;border-color:#d8cabb;outline:none}.character-card h2,.character-card p{margin:0}.character-card__header,.character-card__section,.stack,.facet-list{gap:12px;display:grid}.character-card__section{margin-top:24px}.summary{color:#4f433b}.aspect-row{border:1px solid #e2d5c7;border-radius:8px;gap:4px;padding:12px;display:grid}.aspect-row span{color:#806f62;text-transform:uppercase;font-size:.78rem}.trait-list{flex-wrap:wrap;gap:8px;display:flex}.trait-pill{background:#f6efe5;border:1px solid #d8cabb;border-radius:999px;padding:6px 10px}.facet-bar{gap:6px;display:grid}.facet-bar__label{justify-content:space-between;gap:16px;display:flex}.facet-bar__track{background:#e3d7c8;border-radius:999px;height:8px;overflow:hidden}.facet-bar__fill{border-radius:inherit;background:#6a594c;height:100%}.party-builder{align-self:start;gap:16px;padding:16px;display:grid}.party-builder__header{gap:12px;display:grid}.party-builder__header h2{margin:0;font-size:1.25rem}.party-builder__actions{gap:8px;display:grid}.party-builder__actions button{width:100%}.party-builder__list{gap:12px;display:grid}.party-builder__empty{color:#6f6258;margin:0;font-size:.95rem}.party-member-card{cursor:pointer;background:#fffdf8;border:1px solid #e2d5c7;border-radius:8px;gap:8px;padding:12px;transition:border-color .12s,background .12s,transform .12s;display:grid}.party-member-card:hover,.party-member-card:focus{background:#fffaf2;border-color:#47382f;outline:none}.party-member-card:active{transform:translateY(1px)}.party-member-card h3{margin:0;font-size:1rem}.party-member-card p{margin:0}.party-member-card__archetype{color:#47382f;font-size:.92rem;font-weight:700}.party-member-card__summary{color:#4f433b;font-size:.9rem;line-height:1.35}.party-member-card__meta{color:#806f62;text-transform:uppercase;font-size:.78rem}.party-member-card__remove{color:#47382f;background:#f6efe5;width:100%;min-height:34px;margin-top:2px}.party-member-card__remove:hover{background:#ede4d8}@media (width<=1180px){.generator-page{grid-template-columns:minmax(220px,280px) minmax(0,1fr);grid-template-areas:"panel party""panel result";max-width:1180px}}@media (width<=760px){.app-shell{padding:16px}.generator-page{grid-template-columns:1fr;grid-template-areas:"panel""party""result"}.character-card{padding:18px}.character-name-input{font-size:1.65rem}}