*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--color-bg);color:var(--color-text);font:15px/1.6 var(--font-sans)}button,input,select{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0;background:none}button:disabled{opacity:.4;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--font-editorial);font-weight:400;letter-spacing:-.045em;line-height:1.12}h2{font-size:32px}h3{font-size:15px;font-weight:600}em{color:var(--color-accent-text);font-weight:400}.wrap{width:min(1200px,calc(100% - 80px));margin-inline:auto}.site-header{border-bottom:1px solid var(--color-border)}.header-inner{width:min(1320px,calc(100% - 64px));height:94px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;font:600 17px/1.2 Georgia,serif;letter-spacing:.1em}.brand small{display:block;font:9px/1.8 var(--font-sans);letter-spacing:.23em}.brand img{border-radius:9px}.site-header nav{display:flex;gap:33px;font-size:12px;align-items:center}.site-header nav a:hover{color:var(--color-accent-text)}#nav-count{display:inline-grid;place-items:center;border:1px solid var(--color-border);border-radius:50%;font-size:9px;width:18px;height:18px;margin-left:5px}.header-end{display:flex;gap:25px;align-items:center}.free-label{font-size:10px;white-space:nowrap;color:var(--color-accent-text)}[data-theme-picker]{position:relative}[data-theme-picker]>summary{list-style:none;width:44px;height:44px;border:1px solid var(--color-border);border-radius:50%;display:grid;place-items:center;font-size:23px;cursor:pointer}.theme-menu{position:absolute;z-index:4;right:0;top:50px;min-width:110px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0001}.theme-menu button{display:block;width:100%;text-align:left;padding:11px;font-size:12px;border-radius:5px}.theme-menu button[aria-pressed=true]{background:var(--color-accent-soft)}.hero{display:flex;align-items:center;justify-content:space-between;padding-block:62px 50px;gap:35px}.eyebrow{font-size:9px;letter-spacing:.16em;font-weight:600;color:var(--color-text-muted)}.hero .eyebrow{color:var(--color-accent-text);margin-bottom:21px}h1{font-size:clamp(43px,4.7vw,64px)}.hero-description{max-width:440px;color:var(--color-text-secondary);font-size:14px;margin-top:21px}.hero-meta{display:flex;flex-wrap:wrap;gap:25px;margin-top:25px;font-size:10px;color:var(--color-text-secondary)}.hero-art{width:310px;flex-shrink:0;margin-right:45px;position:relative;color:var(--color-accent-text);text-align:center}.hero-art:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,var(--color-art-glow),transparent 67%);border-radius:50%}.hero-art svg{width:100%;position:relative}.hero-art p{font-size:8px;letter-spacing:.24em;color:var(--color-text-muted);margin-top:8px}.ad-slot{min-height:90px;border:1px dashed var(--color-border);display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--color-surface-subtle);text-align:center;overflow:hidden}.ad-slot>span{font-size:8px;letter-spacing:.2em;color:var(--color-text-muted)}.ad-slot>p{font:italic 13px var(--font-editorial);color:var(--color-text-muted);margin-top:8px}.ad-slot ins{width:100%}.ad-slot.ad-enabled>p{display:none}.forge{padding-top:50px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.section-heading .eyebrow{margin-bottom:9px}.section-aside{font:italic 14px var(--font-editorial);color:var(--color-text-muted)}.forge-layout{display:grid;grid-template-columns:325px minmax(0,1fr);gap:34px}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:13px}.settings{padding:23px;align-self:start}.field-heading{display:flex;align-items:center;gap:10px;margin-bottom:17px}.field-heading h3{font-size:13px}.step{font-size:9px;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:50%;color:var(--color-text-muted)}.faction-tabs{display:flex;gap:3px;background:var(--color-surface-subtle);padding:3px;border-radius:6px;margin-bottom:14px}.faction-tabs button{flex:1;font-size:10px;min-height:37px;border-radius:4px;padding:3px}.faction-tabs button[aria-pressed=true]{background:var(--color-surface);box-shadow:0 1px 3px #0001}.race-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.race-button{min-height:70px;border:1px solid var(--color-border);border-radius:7px;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:4px;font-size:10px}.race-symbol{font-size:22px;line-height:1.2;color:var(--color-text-muted)}.race-button[aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent-text);color:var(--color-accent-text)}.race-button[aria-pressed=true] .race-symbol{color:inherit}.race-button:hover{background:var(--color-accent-soft)}hr{border:0;border-top:1px solid var(--color-border);margin:24px 0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}label{display:block;min-width:0;font-size:10px;font-weight:500;margin-bottom:15px}select,input{display:block;width:100%;min-width:0;background:var(--color-surface);border:1px solid var(--color-border-control);border-radius:6px;min-height:42px;padding:9px;margin-top:6px;font-size:12px}input::placeholder{color:var(--color-text-muted)}.advanced{font-size:11px}.advanced summary{display:flex;justify-content:space-between;cursor:pointer;padding:5px 0 12px}.advanced label:first-of-type{margin-top:10px}.advanced p{color:var(--color-text-muted);margin-bottom:12px}.optional{font-weight:400;color:var(--color-text-muted)}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:44px;border-radius:6px;font-size:12px;font-weight:600;padding:11px 17px}.primary{background:var(--color-accent);color:var(--color-text-inverse)}.primary:hover{background:var(--color-accent-hover)}.secondary{border:1px solid var(--color-border-control);background:var(--color-surface)}.generate{width:100%;justify-content:space-between;margin-top:10px}.generate>span:first-child{font-size:19px}.settings-foot{font-size:9px;text-align:center;color:var(--color-text-muted);margin-top:11px}.error{color:var(--color-danger);font-size:12px}.results-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:4px}.results-header .eyebrow{font-size:9px;color:var(--color-accent-text)}.results-header h3{font:25px/1.3 var(--font-editorial);letter-spacing:-.02em;margin-top:6px}.text-button{font-size:11px;min-height:44px;padding:8px 6px;white-space:nowrap}.text-button:hover{text-decoration:underline}.result-hint{font-size:11px;color:var(--color-text-muted);margin:11px 0 22px}.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.name-card{min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:9px;padding:16px 17px 5px}.name-card:hover{border-color:var(--color-accent-text)}.card-number{font:9px var(--font-mono);color:var(--color-text-muted);display:block;margin-bottom:9px}.name-parts{display:flex;flex-wrap:wrap;gap:0 5px;font:21px/1.4 var(--font-editorial);letter-spacing:-.03em;overflow-wrap:anywhere}.name-part{display:flex;align-items:center;max-width:100%;gap:2px}.name-value{padding:0;min-height:32px;min-width:0;font:inherit;letter-spacing:inherit;text-align:left;overflow-wrap:anywhere}.name-value:hover{color:var(--color-accent-text)}.part-lock{font:10px var(--font-sans);opacity:.25;min-height:32px;min-width:22px;padding:2px}.part-lock:hover,.part-lock[aria-pressed=true]{opacity:1;color:var(--color-accent-text)}.card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border);margin-top:13px;padding-top:2px}.race-label{font-size:9px;color:var(--color-text-muted)}.card-actions{display:flex}.icon-button{width:34px;height:36px;display:grid;place-items:center;color:var(--color-text-secondary);font-size:15px;border-radius:4px}.icon-button:hover,.icon-button[aria-pressed=true]{background:var(--color-accent-soft);color:var(--color-accent-text)}.result-disclaimer{font-size:10px;color:var(--color-text-muted);margin-top:16px}.forge-tip{display:flex;align-items:center;gap:17px;margin-top:25px;background:var(--color-accent-soft);padding:20px;border-radius:8px}.forge-tip>span{font-size:33px;color:var(--color-accent-text)}.forge-tip .eyebrow{color:var(--color-accent-text);font-size:8px;margin-bottom:5px}.forge-tip p:last-child{font-size:11px;color:var(--color-text-secondary)}.collection{padding:27px 30px;margin-top:42px}.collection h2{font-size:27px}.collection h2 span{font:11px var(--font-sans);vertical-align:middle;padding:4px 8px;border:1px solid var(--color-border);border-radius:15px;margin-left:5px}.collection .section-heading{margin-bottom:17px}.collection-actions{display:flex;gap:15px}.empty-collection{text-align:center;padding:19px 0 28px;color:var(--color-text-muted);font-size:12px}.empty-collection span{display:block;font:30px var(--font-editorial);margin-bottom:4px}.local-note{font-size:9px;color:var(--color-text-muted)}.saved-list{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:16px}.saved-item{display:flex;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:6px;padding:2px 6px 2px 12px}.saved-item button:first-child{font:16px var(--font-editorial);min-height:40px}.ad-bottom{margin-top:35px}.guide{padding-block:65px;display:grid;grid-template-columns:1fr 1.35fr;gap:100px}.guide-intro h2{font-size:39px;margin:17px 0}.guide-intro>p:not(.eyebrow){font-size:13px;max-width:330px;color:var(--color-text-secondary)}.guide-intro>a{display:inline-block;margin-top:23px;font-size:10px;color:var(--color-accent-text);border-bottom:1px solid var(--color-border)}.guide-cards article{position:relative;padding:0 0 21px 42px;border-bottom:1px solid var(--color-border);margin-bottom:21px}.guide-cards article:last-child{border:0;margin:0;padding-bottom:0}.guide-cards article>span{position:absolute;left:0;top:0;font:11px var(--font-mono);color:var(--color-accent-text)}.guide-cards h3{font:21px var(--font-editorial);margin-bottom:8px}.guide-cards p{font-size:12px;color:var(--color-text-secondary)}.checker-section{padding:30px;display:grid;grid-template-columns:1.1fr 1fr;gap:35px;align-items:center}.checker-section h2{font-size:27px;margin:12px 0}.checker-section p{font-size:11px;color:var(--color-text-muted)}.checker-section .secondary{width:100%}#check-result{margin-top:10px}#check-result[data-valid=true]{color:var(--color-accent-text)}#check-result[data-valid=false]{color:var(--color-danger)}.faq{display:grid;grid-template-columns:1fr 1.35fr;gap:100px;padding:65px 0}.faq h2{font-size:32px;margin-top:17px}.faq-list details{border-bottom:1px solid var(--color-border);padding:0 0 15px;margin-bottom:15px}.faq-list summary{font-size:12px;font-weight:500;cursor:pointer;min-height:30px;list-style:none;padding-right:24px;position:relative}.faq-list summary:after{content:'+';position:absolute;right:0}.faq-list details[open] summary:after{content:'−'}.faq-list p{font-size:12px;color:var(--color-text-secondary);margin:6px 22px 4px 0}.race-links{padding-bottom:45px}.race-links>div{display:flex;gap:10px 22px;flex-wrap:wrap;font-size:11px;margin-top:14px}.race-links a{border-bottom:1px solid var(--color-border)}footer{border-top:1px solid var(--color-border);padding-block:30px 24px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-top>p{font:italic 15px var(--font-editorial);color:var(--color-text-muted)}.footer-top>div{display:flex;align-items:center;gap:18px;font-size:10px}.footer-fine{font-size:9px;color:var(--color-text-muted);max-width:630px;margin-top:22px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);padding:11px 22px;border:1px solid var(--color-border);background:var(--color-text);color:var(--color-bg);border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:30;font-size:13px;max-width:90%;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.consent{position:fixed;bottom:20px;right:20px;padding:23px;width:min(430px,calc(100% - 40px));z-index:25;box-shadow:0 5px 45px #0002}.consent[hidden]{display:none}.consent h3{font:25px var(--font-editorial);margin:8px 0}.consent p:not(.eyebrow){font-size:12px;color:var(--color-text-secondary)}.consent a{text-decoration:underline}.consent>div{display:flex;gap:10px;margin-top:17px}.skip-link{position:absolute;top:-60px;padding:12px;background:var(--color-surface);z-index:100}.skip-link:focus{top:10px}.legal{max-width:760px;min-height:65vh;padding-block:65px}.legal h1{font-size:43px;margin-bottom:25px}.legal h2{font-size:25px;margin:27px 0 10px}.legal p{margin-block:12px;color:var(--color-text-secondary)}.legal a{text-decoration:underline;color:var(--color-accent-text)}
@media(max-width:1023px){.wrap,.header-inner{width:calc(100% - 48px)}.site-header nav{gap:20px}.free-label{display:none}.hero-art{margin-right:0;width:255px}.forge-layout{grid-template-columns:285px minmax(0,1fr);gap:20px}.settings{padding:18px}.name-card{padding:13px 12px 5px}.name-parts{font-size:19px}.guide,.faq{gap:45px}.section-aside{display:none}}
@media(max-width:767px){.wrap,.header-inner{width:calc(100% - 36px)}.header-inner{height:auto;min-height:79px;flex-wrap:wrap;padding-block:15px;gap:12px}.header-end{margin-left:auto}.site-header nav{order:3;width:100%;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:9px;font-size:11px;gap:10px}.site-header nav a{min-height:32px;display:flex;align-items:center}.brand{font-size:15px}.hero{padding-block:36px 33px}.hero-art{display:none}.hero .eyebrow{font-size:8px;margin-bottom:18px}h1{font-size:clamp(41px,9vw,59px)}.hero-description{font-size:13px}.hero-meta{gap:15px;font-size:9px;margin-top:22px}.ad-slot{min-height:85px}.forge{padding-top:35px}h2{font-size:27px}.forge-layout{grid-template-columns:1fr;gap:28px}.settings{padding:21px}.race-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.race-button{min-height:65px;font-size:9px}.faction-tabs button{min-height:44px;font-size:11px}input,select{font-size:16px;min-height:44px}label{font-size:11px}.advanced summary{min-height:44px;align-items:center}.results-header h3{font-size:23px}.results-grid{gap:10px}.name-card{padding:14px 12px 5px}.name-parts{font-size:21px;display:block}.name-part{justify-content:space-between}.part-lock{min-height:44px;min-width:28px;opacity:.5}.name-value{min-height:44px}.card-number{margin-bottom:5px}.card-bottom{margin-top:7px}.icon-button{width:35px;height:44px}.collection{padding:22px 19px;margin-top:29px}.collection h2{font-size:25px}.collection .section-heading{align-items:flex-start;gap:8px}.collection-actions{gap:0;flex-direction:column;align-items:flex-end}.collection-actions .text-button{padding:1px;min-height:32px;font-size:10px}.guide,.faq{grid-template-columns:1fr;gap:30px;padding-block:43px}.guide-intro h2{font-size:34px}.checker-section{grid-template-columns:1fr;padding:23px;gap:20px}.faq-list summary{min-height:44px;font-size:13px;display:flex;align-items:center}.faq-list summary:after{top:10px}.footer-top{flex-wrap:wrap}.footer-top>p{font-size:13px}.footer-top>div{width:100%;justify-content:flex-start}.race-links{padding-bottom:30px}.result-hint{font-size:10px}.result-disclaimer{font-size:9px}.legal{padding-block:35px}.legal h1{font-size:34px}}
@media(max-width:359px){.wrap,.header-inner{width:calc(100% - 28px)}.settings{padding:15px}.race-grid{grid-template-columns:repeat(3,1fr)}.name-card{padding-inline:9px}.name-parts{font-size:18px}.icon-button{width:30px}.race-label{font-size:8px}.hero-meta{gap:11px;font-size:8px}.section-heading h2{font-size:24px}.results-header h3{font-size:21px}.text-button{font-size:10px}}
@media(max-width:1023px){.card-bottom .race-label{display:none}.card-actions{width:100%;justify-content:space-between}.card-actions .icon-button{width:25%;min-width:0}}
.local-language{display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:6px;font-size:11px;white-space:nowrap}.local-language a{padding:6px 9px;min-height:34px;display:grid;place-items:center;border-radius:4px}.local-language a[aria-current=true]{background:var(--color-accent-soft);color:var(--color-accent-text)}html[lang=zh-CN] h1{line-height:1.3;letter-spacing:-.02em}html[lang=zh-CN] h2{line-height:1.35;letter-spacing:0}html[lang=zh-CN] .eyebrow{letter-spacing:.1em}html[lang=zh-CN] .brand>span{letter-spacing:.12em}html[lang=zh-CN] .brand small{letter-spacing:.15em}html[lang=zh-CN] .hero-description{line-height:1.9}html[lang=zh-CN] .guide-intro h2{font-size:34px}
@media(max-width:767px){.header-end{gap:10px}.local-language{font-size:10px}.local-language a{padding:5px 7px}html[lang=zh-CN] .hero h1{font-size:clamp(38px,8vw,54px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* WoW race portraits: fixed dimensions keep the layout stable as images load. */
.race-portrait{display:block;width:36px;height:36px;object-fit:cover;border-radius:50%;border:1px solid #b8a16c;box-shadow:0 1px 4px #0002;background:#263c32;transition:transform .15s,border-color .15s}
.race-button{min-height:84px;padding:9px 3px;gap:7px}
.race-button[aria-pressed=true] .race-portrait{border:2px solid var(--color-accent-text);box-shadow:0 0 0 3px var(--color-accent-soft)}
.race-button:hover .race-portrait{transform:translateY(-1px)}
.card-number{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.result-portrait{width:24px;height:24px;object-fit:cover;border-radius:50%;border:1px solid #b8a16c;background:#263c32}
@media(max-width:767px){.race-button{min-height:78px;gap:6px}.race-portrait{width:34px;height:34px}}
@media(prefers-reduced-motion:reduce){.race-portrait{transition:none}}
/* Product wordmark retains its requested English spelling in both preview languages. */
.brand{font-size:16px;letter-spacing:0;font-weight:600}
.brand small{font:500 11px/1.6 var(--font-sans);letter-spacing:.025em}
html[lang=zh-CN] .brand>span{letter-spacing:0}
html[lang=zh-CN] .brand small{letter-spacing:.025em}
@media(max-width:359px){.brand{font-size:13px;gap:7px}.brand small{font-size:10px}.brand img{width:32px;height:32px}.header-end{gap:6px}}
/* The hero uses the same generated shield emblem as the site identity. */
.hero-art:before{display:none}
.hero-emblem{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:22px;box-shadow:0 12px 38px #14251b20}
[data-theme=dark] .hero-emblem{box-shadow:0 12px 38px #0004}
.hero-art p{margin-top:18px}
/* Empty, unconfigured, blocked and unfilled ads never expose placeholders. */
.ad-slot,.ad-slot[hidden]{display:none!important;min-height:0;border:0;background:none;margin-top:0;margin-bottom:0}
.ad-slot.ad-pending:not([hidden]){display:block!important;height:0;overflow:hidden}
.ad-slot.ad-enabled:not([hidden]){display:block!important;height:auto;overflow:hidden;margin-block:24px}
.ad-slot.ad-enabled:before{content:'Advertisement';display:block;text-align:center;font-size:9px;color:var(--color-text-muted)}
/* Share is available on each result and saved name, including narrow screens. */
.card-actions{flex:0 0 auto}
.shared-name-card{border-color:var(--color-accent-text);box-shadow:0 0 0 1px var(--color-accent-text)}
.shared-label{font:10px var(--font-sans);color:var(--color-accent-text);margin-left:auto}
@media(max-width:1023px){.card-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;min-width:0}.card-actions .icon-button{width:100%;min-width:0;padding:4px}}
@media(max-width:767px){.saved-item{max-width:100%;gap:6px}.saved-item button:first-child{min-width:0;overflow-wrap:anywhere}.saved-item .icon-button{flex-shrink:0}}
@media(max-width:1023px){.card-actions .icon-button{padding:0}}
/* Both factions remain visible, with shared Skyborne choices in each group. */
.faction-races{display:grid;gap:18px}
.faction-heading{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.faction-heading>span{height:1px;flex:1;background:var(--color-border)}
.faction-heading h4{display:flex;align-items:center;gap:6px;margin:0;font-size:11px;font-weight:600;line-height:1.4}
.faction-heading b{display:grid;place-items:center;width:21px;height:23px;font-size:15px;border-radius:3px}
.faction-alliance h4{color:#5178a1}.faction-alliance b{background:#24477a;color:#e1c66c}
.faction-horde h4{color:#bd6557}.faction-horde b{background:#8a332c;color:#f5cbb2}
[data-theme=dark] .faction-alliance h4{color:#8cadd1}[data-theme=dark] .faction-horde h4{color:#e18d7d}
.faction-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.faction-options .race-button{min-width:0;min-height:74px;padding:6px 0;font-size:9px;border-color:transparent;gap:6px}
.faction-options .race-button[aria-pressed=true]{border-color:var(--color-accent-text)}
.faction-options .race-portrait{width:36px;height:36px;border-radius:5px}
.faction-options .race-button[aria-pressed=true] .race-portrait{box-shadow:none}
.faction-options .race-button>span{line-height:1.3;text-align:center;overflow-wrap:normal}
@media(max-width:1023px) and (min-width:768px){.faction-options{gap:2px}.faction-options .race-portrait{width:32px;height:32px}.faction-options .race-button{font-size:8px}}
/* Fantasy character builder: compact controls and calm, centered result cards. */
:root{--name-highlight:#8b6525;--builder-selected:#eee9d9}
[data-theme=dark]{--name-highlight:#e4bd70;--builder-selected:#2a3023}
.forge-layout{grid-template-columns:315px minmax(0,1fr);gap:32px}
.settings{padding:0 24px 0 0;border:0;border-right:1px solid var(--color-border);border-radius:0;background:none}
.settings .field-heading{margin-bottom:16px}.settings .step{display:none}
.settings .field-heading h3{font-size:15px}
.control-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 12px}
.control-heading h3{font-size:14px}
.control-heading>button{min-height:30px;font-size:11px;color:var(--name-highlight);padding:4px 0}
.class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.class-option{display:flex;align-items:center;gap:8px;min-height:36px;padding:5px;border:1px solid var(--color-border);border-radius:4px;text-align:left;font-size:11px}
.class-option img{width:22px;height:22px;border-radius:2px}
.class-option[aria-pressed=true]{background:var(--builder-selected);border-color:var(--name-highlight)}
.class-option[aria-pressed=true] span{font-weight:600}
[data-theme=dark] .class-option span{color:var(--class-color)}
.class-note{font-size:9px;line-height:1.6;color:var(--color-text-muted);margin-top:8px}
.tone-options{display:grid;gap:6px}
.tone-options>button{display:flex;align-items:center;gap:12px;text-align:left;padding:10px;min-height:61px;border:1px solid var(--color-border);border-radius:4px}
.tone-options>button[aria-pressed=true]{background:var(--builder-selected);border-color:var(--name-highlight)}
.tone-icon{display:grid;place-items:center;width:28px;height:28px;background:var(--color-surface-subtle);border-radius:4px;font:22px Georgia,serif;color:var(--name-highlight)}
.tone-options strong,.tone-options small{display:block}.tone-options strong{font-size:12px;font-weight:600}.tone-options small{font-size:10px;color:var(--color-text-muted);margin-top:2px}
.tone-options i{width:12px;height:12px;margin-left:auto;flex-shrink:0;border:1px solid var(--color-border-control);border-radius:50%}
.tone-options [aria-pressed=true] i{border-color:var(--name-highlight);background:radial-gradient(circle,var(--name-highlight) 0 2px,transparent 3px)}
.ruleset-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ruleset-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:62px;padding:6px 2px;border:1px solid var(--color-border);border-radius:4px}
.ruleset-options strong{font-size:11px;font-weight:500}.ruleset-options small{font-size:9px;color:var(--color-text-muted);margin-top:5px}
.ruleset-options [aria-pressed=true]{background:var(--color-accent-soft);border-color:var(--color-accent-text)}
.settings .two-fields:has(#gender){display:block}.settings hr{margin-top:25px}
.results-grid{gap:14px}.name-card{border-radius:6px;padding:13px 17px 8px;min-height:145px;position:relative}
.card-topline{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-profile{display:flex;align-items:center;gap:8px;min-width:0;font-size:9px;color:var(--color-text-muted)}
.card-profile img{width:21px;height:21px;flex-shrink:0;border-radius:2px}
.card-number{margin:0;min-height:21px;font-size:9px}
.name-parts{display:flex;justify-content:center;align-items:center;gap:4px;margin:9px 0 13px;min-height:40px;font-size:23px;line-height:1.3}
.name-part{min-width:0}.name-last .name-value{color:var(--name-highlight)}
.part-lock{min-width:12px;width:12px;padding:0;font-size:8px;opacity:.15}
.name-part:hover .part-lock,.part-lock[aria-pressed=true],.part-lock:focus-visible{opacity:1}
.card-bottom{position:relative;margin-top:0;justify-content:space-between;gap:4px;padding-top:4px;min-height:38px}
.card-bottom .race-label{font-size:8px}.card-actions{display:flex;flex:0 0 auto;width:auto;gap:2px;margin-left:auto}
.card-actions .icon-button{display:grid;place-items:center;width:31px;height:32px;min-width:0;padding:0;font-size:20px}
.reroll-menu{position:relative}.reroll-menu summary{display:grid;place-items:center;cursor:pointer;list-style:none;min-width:27px;min-height:32px;font-size:17px;color:var(--color-text-muted)}
.reroll-menu>div{position:absolute;right:0;bottom:38px;z-index:5;min-width:155px;padding:5px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px;box-shadow:0 4px 18px #0002}
.reroll-menu button{display:block;width:100%;min-height:38px;text-align:left;font-size:11px;padding:8px}.reroll-menu button:hover{background:var(--color-accent-soft)}
.batch-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:16px;padding:12px;min-height:47px;border:1px solid var(--name-highlight);background:var(--builder-selected);color:var(--name-highlight);border-radius:4px;font-size:12px}
.batch-button:hover{filter:brightness(1.04)}
.forge-tip{margin-top:22px}
@media(max-width:1023px){.forge-layout{grid-template-columns:275px minmax(0,1fr);gap:23px}.settings{padding-right:18px}.name-card{padding-inline:12px}.name-parts{font-size:21px}.card-profile{font-size:8px;gap:5px}}
@media(max-width:767px){.forge-layout{grid-template-columns:1fr;gap:28px}.settings{border:1px solid var(--color-border);padding:20px;background:var(--color-surface);border-radius:9px}.class-option{min-height:44px;font-size:13px}.control-heading h3{font-size:15px}.tone-options>button{min-height:64px}.name-card{min-height:167px;padding-inline:10px}.name-parts{font-size:19px;gap:1px;min-height:61px;align-content:center}.name-part{justify-content:center}.name-value{min-height:34px}.part-lock{min-height:34px;min-width:12px}.card-actions .icon-button{height:44px;width:29px}.reroll-menu summary{min-height:44px;min-width:22px}.card-profile{font-size:8px;gap:4px}.card-profile img{width:18px;height:18px}.card-number{font-size:8px}.card-bottom{min-height:48px}.result-hint{font-size:10px}}
@media(max-width:359px){.settings{padding:15px}.name-parts{font-size:18px}.name-card{padding-inline:8px}.card-actions .icon-button{width:25px}.card-profile>span{max-width:65px;line-height:1.3}}
/* Larger, readable labels throughout the character controls. */
.settings .field-heading h3{font-size:17px}
.faction-heading h4{font-size:13px}
.faction-options .race-button{font-size:12px;min-height:83px}
.control-heading h3{font-size:16px}
.control-heading>button{font-size:13px}
.class-option{font-size:14px;min-height:43px;gap:8px}
.class-note{font-size:11px;line-height:1.7}
.tone-options strong{font-size:14px}
.tone-options small{font-size:12px;line-height:1.6}
.tone-options>button{min-height:70px}
.ruleset-options strong{font-size:13px}
.ruleset-options small{font-size:11px}
@media(min-width:768px) and (max-width:1023px){.faction-options .race-button{font-size:11px}}
@media(max-width:767px){.class-option{min-height:46px}.control-heading h3{font-size:17px}.faction-options .race-button{font-size:12px}}
.faction-options .race-button>span{max-width:100%;overflow-wrap:anywhere}
@media(max-width:359px){.faction-options .race-button{font-size:11px}}
/* Original 24-unit SVG icons share one rounded line weight, independent of fonts. */
.ui-icon{display:block;flex-shrink:0;overflow:visible;vertical-align:middle}
.card-actions .ui-icon,.reroll-menu summary .ui-icon{width:19px;height:19px}
.card-actions .icon-button,.reroll-menu summary{color:var(--color-text-secondary);border-radius:6px}
.card-actions .icon-button:hover,.reroll-menu summary:hover{background:var(--color-accent-soft);color:var(--color-accent-text)}
.card-actions .icon-button[aria-pressed=true]{color:var(--name-highlight)}
.part-lock{display:inline-grid;place-items:center}
.part-lock .ui-icon{width:12px;height:12px;stroke-width:1.8}
.tone-icon{width:38px;height:38px;flex-shrink:0;border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;color:var(--name-highlight)}
.tone-icon .ui-icon{width:25px;height:25px}
.tone-options [aria-pressed=true] .tone-icon{border-color:var(--name-highlight);background:var(--builder-selected)}
.ruleset-options button{min-height:88px;gap:5px}
.ruleset-options .ui-icon{width:23px;height:23px;color:var(--color-text-muted)}
.ruleset-options [aria-pressed=true] .ui-icon{color:var(--color-accent-text)}
.ruleset-options small{margin-top:0}
#copy-all{display:inline-flex;align-items:center;gap:7px}
#copy-all .ui-icon{width:16px;height:16px}
.batch-button .ui-icon{width:19px;height:19px}
.saved-item .ui-icon{width:17px;height:17px}
/* Original editorial guidance complements the working generator. */
.naming-notes{padding-top:48px}
.notes-block{padding:28px 0 32px;border-bottom:1px solid var(--color-border)}
.notes-block:first-child{border-top:1px solid var(--color-border)}
.notes-block>h2{font-size:25px;line-height:1.3;margin-bottom:22px;color:var(--color-text)}
.notes-columns{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.notes-columns h3{font-family:var(--font-editorial);font-size:18px;font-weight:400;margin-bottom:10px;color:var(--color-accent-text)}
.notes-columns p,.notes-columns li{font-size:13px;line-height:1.9;color:var(--color-text-secondary)}
.notes-columns p+p{margin-top:13px}
.notes-columns strong{color:var(--color-text);font-weight:600}
.notes-columns ul{margin:0;padding-left:20px}.notes-columns li+li{margin-top:9px}
.notes-columns a{display:inline-block;margin-top:13px;font-size:12px;color:var(--color-accent-text);text-decoration:underline;text-underline-offset:4px}
@media(max-width:767px){.naming-notes{padding-top:30px}.notes-block{padding-block:25px}.notes-block>h2{font-size:24px}.notes-columns{grid-template-columns:1fr;gap:24px}.notes-columns p,.notes-columns li{font-size:14px}.notes-columns h3{font-size:19px}}
/* Race landing pages have their own readable editorial copy and FAQs. */
.race-editorial{padding-block:54px;border-bottom:1px solid var(--color-border)}
.race-editorial h2{font-size:32px;margin:12px 0 22px;max-width:760px}
.race-copy{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.race-copy p{font-size:14px;line-height:1.9;color:var(--color-text-secondary)}
@media(max-width:767px){.race-editorial{padding-block:35px}.race-editorial h2{font-size:27px}.race-copy{grid-template-columns:1fr;gap:18px}}
@media(max-width:359px){.site-header nav>a:first-child{max-width:135px}}
/* Keep every race portrait on the same baseline, including long English labels. */
.faction-options .race-button{justify-content:flex-start;padding-top:8px;min-height:88px}
.faction-options .race-portrait{flex-shrink:0;margin:0}
.faction-options .race-button>span{display:block;width:100%;min-height:30px;max-width:100%;line-height:1.3;overflow-wrap:normal;white-space:normal}
.faction-options [data-race="skyborne"]>span{font-size:11px;white-space:nowrap}
@media(min-width:768px) and (max-width:1023px){.faction-options [data-race="skyborne"]>span{font-size:10px}}
@media(max-width:359px){.faction-options [data-race="skyborne"]>span{font-size:10px}}
/* Alpha follows the emblem contour; a rectangular image shadow must not recreate dark corners. */
.hero-emblem{border-radius:0;box-shadow:none;filter:drop-shadow(0 10px 18px #14251b2e)}
[data-theme=dark] .hero-emblem{box-shadow:none;filter:drop-shadow(0 10px 18px #0005)}
.brand img{border-radius:0}
/* Official Stormsong Valley scenery, with theme-specific contrast protection. */
body{position:relative;isolation:isolate}
body:before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(100deg,rgba(246,245,239,.88) 0%,rgba(246,245,239,.68) 52%,rgba(246,245,239,.48) 100%),url('/brand/backgrounds/wow-stormsong-1920.jpg');background-size:cover;background-position:center;background-repeat:no-repeat}
[data-theme=dark] body:before{background-image:linear-gradient(100deg,rgba(12,22,18,.9) 0%,rgba(12,22,18,.77) 52%,rgba(12,22,18,.57) 100%),url('/brand/backgrounds/wow-stormsong-1920.jpg')}
.site-header{background:rgba(246,245,239,.88);backdrop-filter:blur(12px)}
[data-theme=dark] .site-header{background:rgba(18,28,23,.9)}
.forge{padding:30px 28px 28px;margin-top:20px;border:1px solid var(--color-border);border-radius:15px;background:rgba(246,245,239,.94);box-shadow:0 12px 40px #16251c10}
[data-theme=dark] .forge{background:rgba(21,30,24,.95);box-shadow:0 12px 40px #0002}
.collection,.notes-block,.guide,.faq,.race-editorial,.race-links,.legal,footer{backdrop-filter:blur(8px)}
.naming-notes,.guide,.faq,.race-editorial,.race-links,.legal,footer{background:rgba(246,245,239,.9);padding-inline:28px}
[data-theme=dark] .naming-notes,[data-theme=dark] .guide,[data-theme=dark] .faq,[data-theme=dark] .race-editorial,[data-theme=dark] .race-links,[data-theme=dark] .legal,[data-theme=dark] footer{background:rgba(21,30,24,.94)}
.naming-notes{margin-top:32px;padding-top:0;border-radius:14px 14px 0 0}
.race-links{padding-top:20px}
.background-credit{font-size:10px;line-height:1.6;color:var(--color-text-muted);margin-top:12px}
.background-credit a:hover{text-decoration:underline}
@media(max-width:767px){body:before{background-image:linear-gradient(rgba(246,245,239,.83),rgba(246,245,239,.9)),url('/brand/backgrounds/wow-stormsong-960.jpg');background-position:35% center}[data-theme=dark] body:before{background-image:linear-gradient(rgba(12,22,18,.79),rgba(12,22,18,.92)),url('/brand/backgrounds/wow-stormsong-960.jpg')}.forge{padding:25px 15px 20px;margin-top:10px}.naming-notes,.guide,.faq,.race-editorial,.race-links,.legal,footer{padding-inline:20px}.collection{backdrop-filter:none}.forge-layout{gap:26px}}
@media(prefers-reduced-transparency:reduce){.site-header,.forge,.naming-notes,.guide,.faq,.race-editorial,.race-links,.legal,footer{background:var(--color-bg);backdrop-filter:none}}
