/* Clear, comfortably sized navigation and functional labels in both appearances. */
:root { --header-offset:84px; }
.site-header { height:auto; }
.header-inner { height:auto; min-height:84px; gap:28px; }
.header-inner nav { height:auto; gap:24px; }
.header-inner nav a { height:auto; font-size:15px; line-height:1.5; font-weight:600; padding-block:29px; }
.brand { font-size:22px; }
.brand small { font-size:9px; line-height:1.5; letter-spacing:1.6px; margin-top:4px; }
.theme-toggle .theme-label { font-size:12px; font-weight:600; }
.eyebrow,.dg-kicker,.dg-step-label,.dg-finder .dg-step-label,.dg-workshop .dg-step-label { font-size:12px; line-height:1.8; letter-spacing:1px; }
.sd-edition { font-size:12px; letter-spacing:1px; }
.sd-signature div > span,.sd-character-label > span { font-size:12px; }
.sd-character-label small { font-size:13px; }
.sd-statbar > div > span,.sd-statbar .dg-data-chip { font-size:11px; letter-spacing:.8px; }
.section-header p,.dg-section-top p,.page-top > p { font-size:15px; line-height:1.85; }
.filter-caption,.dg-plan-controls .filter-caption { font-size:13px; }
.sd-select-wrap select,.dg-finder .sd-select-wrap select,.dg-plan-controls .sd-select-wrap select { font-size:14px; }
.card-info p,.card-info .badge,.dg-card-team,.dg-card-team span { font-size:12px; }
.team-member b,.dg-plan-example .team-member b { font-size:13px; }
.team-member small,.dg-plan-example .team-member small { font-size:12px; }
.dg-team-tag,.dg-team-cost { font-size:12px; }
.dg-workshop .dg-plan-slot-role,.dg-plan-rolebar small { font-size:12px; }
.dg-plan-main .section-header .dg-kicker,.dg-plan-tips > .dg-kicker,.dg-plan-tips article small,.dg-plan-tip-number { font-size:12px; }
.dg-coach-example,.dg-coach-limit,.dg-coach-assumptions { font-size:12px; }
.breadcrumbs,.detail-meta,.source-line,.side-info,.equipment-row small,.count-label { font-size:13px; line-height:1.8; }
footer > p,footer .text-button,footer > small { font-size:12px; line-height:1.8; }
#character-section,#dg-builder,.dg-workshop,.dg-plan-main,.tt-board-heading,[id^="tt-title-"] { scroll-margin-top:calc(var(--header-offset) + 20px); }
:root[data-theme="light"] { --bg:#f7f1e9; --ink:#402735; --muted:#70515f; --line:#d3bdc3; --white:#fffdf8; --surface:#fffdf8; --surface2:#f0e1de; }
:root[data-theme="light"] body { background:radial-gradient(ellipse at 85% 0,#f0dce34d,transparent 40%),#f7f1e9; }
:root[data-theme="light"] .site-header { background:#fffcf6f7; border-color:#d3b9c1; box-shadow:0 4px 22px #6431440c; }
:root[data-theme="light"] .header-inner nav a { color:#70515f; }
:root[data-theme="light"] .header-inner nav a.active { color:#80314b; }
:root[data-theme="light"] .header-inner nav a.active::after { background:#87354e; }
:root[data-theme="light"] .sd-filters { background:#fffdf8; border-color:#d3b9c1; box-shadow:0 8px 24px #6a3c4c0a; }
:root[data-theme="light"] .filter-caption { color:#704856; }
:root[data-theme="light"] .sd-select-wrap select,:root[data-theme="light"] .dg-finder .sd-select-wrap select,:root[data-theme="light"] .dg-plan-controls .sd-select-wrap select,:root[data-theme="light"] .sd-search-field .search-box { background:#fffcf8; color:#4c2c3c; border-color:#c6a8b5; }
:root[data-theme="light"] .sd-search-field input::placeholder { color:#856574; }
:root[data-theme="light"] :is(.char-card,.card-info,.item-card,.dg-team-card,.dg-plan-example,.dg-saved-team) { background:#fffdf8; border-color:#d6bdc4; box-shadow:0 6px 18px #6c3b4c0a; }
:root[data-theme="light"] .char-portrait { background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--el) 12%,transparent),transparent 80%),#eee3dd; }
:root[data-theme="light"] :is(.team-member b,.card-info h3,.dg-workshop .dg-plan-slot .slot-name) { color:#482c3a; }
:root[data-theme="light"] :is(.team-member small,.card-info p,.dg-filter-tip,.dg-library-intro p,.source-line,.side-info) { color:#735361; }
:root[data-theme="light"] .sd-statbar { background:#fffcf6; border-color:#d2b8bd; }
:root[data-theme="light"] .sd-statbar > div > span { color:#795361; }
:root[data-theme="light"] .sd-hero { background:radial-gradient(ellipse at 75% 45%,#e6c9ce66,transparent 57%),linear-gradient(135deg,#fff9ec,#f6e9e3); border-color:#cfb2b9; }
:root[data-theme="light"] .sd-copy h1 { color:#4c2c38; }
:root[data-theme="light"] .sd-copy h1 em { color:#8b3a50; }
:root[data-theme="light"] .sd-copy > p { color:#765260; }
:root[data-theme="light"] .sd-character-label { background:#fff9eff5; border-color:#ba8f9c; box-shadow:0 10px 28px #6a34461c; }
:root[data-theme="light"] .dg-workshop { background:linear-gradient(150deg,#fffaf5,#f5e8e6); border-color:#c8a9b3; }
:root[data-theme="light"] .dg-workshop .dg-plan-slot { background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--el) 12%,transparent),transparent 80%),#fffaf5 !important; border-color:#c4a6b2; }
@media(max-width:1100px) {
 :root { --header-offset:133px; }
 .header-inner { display:flex; flex-wrap:wrap; padding-top:13px; padding-bottom:0; gap:8px 20px; min-height:0; }
 .header-inner .brand { margin-right:auto; }
 .theme-toggle { margin-left:auto; }
 .header-inner nav { order:3; width:100%; flex-basis:100%; display:flex; justify-content:center; gap:32px; margin:0; overflow:visible; }
 .header-inner nav a { font-size:14px; padding:17px 0; flex-shrink:0; }
}
@media(max-width:560px) {
 :root { --header-offset:145px; }
 .header-inner { padding:11px 16px 8px; gap:9px; }
 .brand { font-size:19px; gap:9px; }
 .brand-icon { width:32px; height:34px; font-size:21px; }
 .brand small { font-size:8px; letter-spacing:1.5px; margin-top:3px; }
 .theme-toggle { min-height:37px; padding:3px; gap:2px; }
 .theme-toggle > span:not(.theme-label) { width:26px; height:26px; }
 .theme-toggle svg { width:16px; height:16px; }
 .theme-toggle .theme-label { display:block; font-size:11px; margin:0 5px; min-width:24px; }
 .header-inner nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); width:100%; gap:2px 6px; overflow:visible; padding:0; }
 .header-inner nav a { display:flex; align-items:center; justify-content:center; font-size:13px; line-height:1.4; min-height:35px; padding:7px 2px; border-radius:7px; border:0; }
 .header-inner nav a.active { background:#65334466; }
 .header-inner nav a.active::after { display:none; }
 :root[data-theme="light"] .header-inner nav a.active { background:#f0dde3; }
 .sd-edition { font-size:11px; }
 .sd-signature div > span { font-size:12px; }
 .sd-character-label > span { font-size:10px; }
 .sd-character-label small { font-size:12px; }
 .sd-statbar > div > span { font-size:10px; letter-spacing:.3px; }
 .sd-statbar .dg-data-chip { font-size:11px; }
 .section-header p,.page-top > p { font-size:14px; }
 .filter-caption,.dg-plan-controls .filter-caption { font-size:12px; }
 .sd-select-wrap select,.dg-finder .sd-select-wrap select,.dg-plan-controls .sd-select-wrap select { font-size:13px; }
 .card-info h3 { font-size:14px; }
 .card-info p,.card-info .badge { font-size:12px; }
 .dg-card-team { font-size:11px; }
 .tabs button,.tabs button span,.element-filter { font-size:12px; }
 .dg-kicker,.dg-finder .dg-step-label,.dg-workshop .dg-step-label { font-size:11px; letter-spacing:.8px; }
 .team-member small,.dg-plan-example .team-member small { font-size:11px; }
 .team-member b,.dg-plan-example .team-member b { font-size:12px; }
 .dg-library-intro p,.dg-draft-link small,.source-line,.side-info { font-size:12px; }
}
@media(max-width:360px) { .theme-toggle .theme-label { display:none; } .brand { font-size:18px; } }
.sd-copy > p { font-size:15px; line-height:1.9; }
.sd-copy .button { font-size:13px; min-height:46px; }
.section-header .small-link { font-size:13px; }
@media(max-width:560px) { .sd-copy > p { font-size:14px; } .sd-copy .button { font-size:12px; } .section-header .small-link { font-size:12px; } }
