.picker{grid-template-columns:minmax(0,1fr);align-items:start;gap:26px;display:grid}.picker-open{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.picker-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:13px;display:grid}.choice-card{cursor:pointer;min-width:0;color:var(--parchment);background:linear-gradient(#ffffff0d,#0000 40%),linear-gradient(170deg,#00000040,#0000008c);border:1px solid #d4af3747;border-radius:4px;flex-direction:column;align-items:center;gap:7px;padding:17px 12px 13px;transition:transform .16s,border-color .22s,box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 22px #00000073,0 3px 9px #0006}.choice-card:hover:not(:disabled){border-color:var(--card-accent,var(--gold));box-shadow:inset 0 0 22px #00000059, 0 9px 22px #00000080, 0 0 22px color-mix(in srgb, var(--card-accent,var(--gold)) 30%, transparent);transform:translateY(-3px)}.choice-selected{border-color:var(--card-accent,var(--gold));box-shadow:inset 0 0 26px color-mix(in srgb, var(--card-accent,var(--gold)) 18%, transparent), 0 0 0 1px var(--card-accent,var(--gold)), 0 8px 24px #0000008c, 0 0 28px color-mix(in srgb, var(--card-accent,var(--gold)) 38%, transparent)}.choice-banner{background:var(--card-accent,var(--gold));opacity:.34;filter:url(#ink-rough)blur(.4px);pointer-events:none;border-radius:3px;width:88%;height:34px;transition:opacity .25s;position:absolute;top:8px;left:6%}.choice-card:hover .choice-banner,.choice-selected .choice-banner{opacity:.62}.choice-name{font-family:var(--font-heading);letter-spacing:.03em;text-shadow:0 1px 3px #000c;font-size:19px;font-weight:700;position:relative}.choice-subtitle{letter-spacing:.06em;color:#efe0c0bf;margin-top:-4px;font-size:12px;font-style:italic;position:relative}.choice-mods{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%;min-width:0;margin-top:4px;display:grid}.mod{min-width:0;font-family:var(--font-heading);background:#0000004d;border:1px solid #00000080;border-radius:2px;justify-content:space-between;align-items:center;gap:3px;padding:2px 5px;font-size:12px;display:flex}.mod-abbr{opacity:.6;font-size:11px}.mod-val{font-weight:700}.mod-up .mod-val{color:var(--gold-bright)}.mod-down .mod-val{color:#e07a6a}.mod-flat .mod-val{opacity:.4}.choice-locked{cursor:not-allowed;opacity:.55;filter:grayscale(.65)}.choice-locked .choice-banner{opacity:.18}.choice-locked-badge{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--wood-darkest);background:var(--iron-light);border-radius:2px;margin-top:8px;padding:4px 11px;font-size:10px;font-weight:700;position:relative}.lore-panel{border:1px solid var(--parchment-shadow);box-shadow:var(--shadow-deep), inset 0 0 60px #78552847;border-radius:3px;padding:26px 28px 30px;position:sticky;top:18px}.lore-header{border-bottom:2px solid #2b1a0e47;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;padding-bottom:10px;display:flex}.lore-title{font-family:var(--font-display);color:var(--ink);font-size:27px}.lore-sub{color:var(--ink-faded);white-space:nowrap;font-size:13px;font-style:italic}.lore-text{color:var(--ink-soft);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 18px}.lore-traits{color:var(--ink-soft);margin:0;padding:0;font-size:15px;list-style:none}.lore-traits li{align-items:baseline;gap:9px;margin-bottom:5px;display:flex}.trait-marker{color:var(--blood);flex-shrink:0;transform:translateY(2px)}.lore-abilities .filigree{color:var(--blood);margin-bottom:12px}.lore-abilities .filigree:before,.lore-abilities .filigree:after{background:linear-gradient(90deg,#0000,#8c2f2480,#0000)}.ability+.ability{border-top:1px dashed #2b1a0e40;margin-top:14px;padding-top:14px}.ability-name{font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--blood);margin-bottom:5px;font-size:14px;font-weight:700}.ability-desc{color:var(--ink-soft);margin:0;font-size:15px}@media (width<=480px){.lore-header{flex-direction:column;align-items:flex-start;gap:2px}.lore-sub{white-space:normal}.lore-panel{padding:20px 18px 22px}.lore-text{text-align:left}}@media (width<=400px){.picker-grid{grid-template-columns:minmax(0,1fr)}.choice-name{font-size:17px}}@media (width<=1000px){.picker,.picker-open{grid-template-columns:minmax(0,1fr)}.lore-panel{position:static}}.details-form{border:1px solid var(--parchment-shadow);box-shadow:var(--shadow-deep), inset 0 0 60px #78552847;border-radius:3px;padding:30px 32px 34px}.details-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 22px;display:grid}.field-wide{grid-column:span 2}.field-full{grid-column:1/-1}.details-form .field-label{color:var(--blood)}.details-form .hint{color:var(--ink-faded)}@media (width<=860px){.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-wide{grid-column:1/-1}}@media (width<=520px){.details-grid{grid-template-columns:minmax(0,1fr)}}.export-bar{background:linear-gradient(#ffffff0d,#00000059);border:1px solid #d4af374d;border-radius:3px;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:18px;padding:14px 18px;display:flex;box-shadow:inset 0 0 24px #0006}.export-title{font-family:var(--font-heading);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-size:11px;font-weight:700}.export-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.export-btn{align-items:center;gap:7px;padding:8px 15px;font-size:12px;display:inline-flex}.export-error{color:#e88b7d;flex-basis:100%;margin:0;font-size:14px}.share-box{background:#0000004d;border:1px solid #d4af374d;border-radius:3px;margin-top:14px;padding:15px 17px;animation:.25s both rise-in}.share-intro{color:#efe0c0bf;max-width:62ch;margin:0 0 10px;font-size:14px}.share-code{overflow-wrap:anywhere;width:100%;min-height:84px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px}.share-actions{gap:8px;margin-top:10px;display:flex}.share-fallback{border-top:1px dashed #d4af3740;margin-top:14px;padding-top:12px}.share-fallback summary{cursor:pointer;font-family:var(--font-heading);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:10.5px;font-weight:600}.share-fallback .hint{margin:10px 0 8px}.share-fallback .btn{margin-top:8px}.creator{flex-direction:column;gap:26px;display:flex}.steps{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.step{cursor:pointer;color:#efe0c099;background:linear-gradient(#ffffff08,#0000004d);border:1px solid #d4af373d;border-radius:3px;align-items:center;gap:11px;padding:9px 19px 9px 11px;transition:color .2s,border-color .22s,box-shadow .25s;display:flex}.step:hover{color:var(--parchment);border-color:#d4af3780}.step-numeral{width:27px;height:27px;font-family:var(--font-display);color:#efe0c08c;background:#00000073;border:1px solid #d4af3733;border-radius:2px;justify-content:center;align-items:center;font-size:13px;font-weight:900;transition:all .25s;display:flex}.step-label{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:600}.step-done .step-numeral{color:#d8f0dd;background:linear-gradient(160deg, var(--emerald), #1e4a2c);border-color:var(--emerald)}.step-active{color:var(--gold-bright);border-color:var(--gold);box-shadow:0 0 20px var(--candle-glow), inset 0 0 18px #d4af371a}.step-active .step-numeral{color:var(--wood-darkest);background:linear-gradient(160deg, var(--gold-bright), var(--gold-deep));border-color:var(--gold-bright)}.creator-body{min-height:380px}.sheet-stage{max-width:940px}.empty-state{text-align:center;border:1px solid var(--parchment-shadow);box-shadow:var(--shadow-deep), inset 0 0 60px #78552847;border-radius:3px;padding:60px 40px}.empty-state h3{font-family:var(--font-display);color:var(--ink);margin-bottom:9px;font-size:26px}.empty-state p{color:var(--ink-faded);margin:0;font-style:italic}.oath-panel{border:1px solid #8c2f248c;border-left:4px solid var(--blood);background:linear-gradient(#8c2f2429,#00000052);border-radius:3px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:22px;margin-top:22px;padding:17px 21px;display:flex}.oath-title{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:#e08878;margin-bottom:5px;font-size:12px;font-weight:700}.oath-warning{color:#efe0c0d9;max-width:62ch;margin:0;font-size:15px}.creator-nav{justify-content:space-between;gap:12px;padding-top:6px;display:flex}.nav-btn{align-items:center;gap:8px;display:inline-flex}.missing-content{background:linear-gradient(#e0983c24,#0000004d);border:1px solid #e0983c80;border-left:4px solid #e0983c;border-radius:3px;padding:15px 19px}.missing-title{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:#f0b467;margin-bottom:5px;font-size:12px;font-weight:700}.missing-body{color:#efe0c0d9;max-width:70ch;margin:0;font-size:15px}.codex{flex-direction:column;gap:34px;display:flex}.codex-intro{border:1px solid var(--parchment-shadow);box-shadow:var(--shadow-deep), inset 0 0 60px #78552847;border-radius:3px;padding:30px 34px}.codex-intro-title{font-family:var(--font-display);color:var(--ink);margin-bottom:14px;font-size:28px}.codex-intro p{color:var(--ink-soft);text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 12px}.codex-intro p:last-child{margin-bottom:0}.codex-section-header{border-bottom:1px solid #d4af3747;align-items:center;gap:17px;margin-bottom:14px;padding-bottom:13px;display:flex}.codex-abbr{width:50px;height:50px;font-family:var(--font-display);color:var(--wood-darkest);background:linear-gradient(180deg, #fff6, transparent 55%), linear-gradient(160deg, var(--gold-bright), var(--gold) 55%, var(--gold-deep));box-shadow:0 3px 10px #00000073, 0 0 20px var(--candle-glow);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:21px;font-weight:900;display:flex}.codex-abbr svg{display:block}.codex-stat-name{font-family:var(--font-display);color:var(--gold-bright);font-size:25px}.codex-headline{color:#efe0c0b8;margin:2px 0 0;font-size:16px;font-style:italic}.codex-plain{color:#efe0c0e6;max-width:78ch;margin:0 0 20px}.codex-tables{grid-template-columns:repeat(auto-fit,minmax(288px,1fr));align-items:start;gap:17px;display:grid}.codex-table{border:1px solid var(--parchment-shadow);box-shadow:var(--shadow-lift), inset 0 0 42px #78552842;border-radius:3px;padding:20px 22px 22px}.codex-wide{margin-top:17px}.codex-table-title{font-family:var(--font-heading);letter-spacing:.15em;text-transform:uppercase;color:var(--blood);border-bottom:2px solid #8c2f244d;margin-bottom:11px;padding-bottom:9px;font-size:13px;font-weight:700}.codex-table-intro{color:var(--ink-faded);margin:-4px 0 12px;font-size:14px;font-style:italic}.codex-table table{border-collapse:collapse;width:100%}.codex-table th{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;text-align:left;color:var(--ink-faded);padding:0 9px 7px;font-size:10px;font-weight:700}.codex-table td{color:var(--ink-soft);border-top:1px solid #2b1a0e29;padding:7px 9px;font-size:15px}.codex-table tbody tr:nth-child(odd) td{background:#ffffff2e}.codex-key{font-family:var(--font-heading);color:var(--ink);white-space:nowrap;font-weight:700}.codex-footnote{color:var(--ink-faded);margin:11px 0 0;font-size:13px;font-style:italic}.table-scroll{overflow-x:auto}.matrix th:not(:first-child),.matrix td:not(:first-child){text-align:center;font-family:var(--font-heading);font-weight:700}.matrix td.zero{opacity:.35;font-weight:400}.swatch{vertical-align:baseline;border:1px solid #00000073;border-radius:2px;width:11px;height:11px;margin-right:8px;display:inline-block}.row-pending td{opacity:.6;font-style:italic}.pending-cell{color:var(--ink-faded);text-align:center!important;font-family:var(--font-body)!important;font-weight:400!important}.roster{width:232px;box-shadow:inset 0 0 34px #0000008c, var(--shadow-lift);background:linear-gradient(#ffffff0a,#0000 35%),linear-gradient(170deg,#4a3423,#2a1c11 65%,#1b110a);border:1px solid #d4af3738;border-radius:4px;flex-direction:column;flex-shrink:0;align-self:flex-start;gap:14px;padding:18px 16px 20px;display:flex;position:sticky;top:18px}.roster:before{content:"";pointer-events:none;border:1px dashed #d4af373d;border-radius:3px;position:absolute;inset:7px}.roster-head .filigree{font-size:10px}.roster-list{flex-direction:column;gap:7px;max-height:46vh;padding-right:3px;display:flex;overflow-y:auto}.roster-empty{color:#efe0c073;margin:6px 2px;font-size:14px;font-style:italic}.roster-item{border:1px solid #d4af3729;border-left:3px solid var(--roster-accent);background:#00000052;border-radius:2px;align-items:stretch;transition:border-color .2s,background .2s;display:flex;overflow:hidden}.roster-item:hover{background:#0000002e;border-color:#d4af3766}.roster-active{border-color:var(--gold);background:#d4af371f;box-shadow:inset 0 0 16px #d4af371f}.roster-select{cursor:pointer;text-align:left;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:9px 11px;display:flex}.roster-name{font-family:var(--font-heading);color:var(--parchment);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;font-weight:600;overflow:hidden}.roster-meta{color:#efe0c080;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-style:italic;overflow:hidden}.roster-delete{cursor:pointer;color:#efe0c059;background:0 0;border:none;border-left:1px solid #d4af3724;flex-shrink:0;width:28px;font-size:13px;transition:color .2s,background .2s}.roster-delete:hover{color:#e88b7d;background:#8c2f2440}.roster-actions{flex-direction:column;gap:7px;display:flex}.roster-action{justify-content:center;align-items:center;gap:7px;width:100%;padding:9px 12px;font-size:11px;display:inline-flex}.roster-delete{justify-content:center;align-items:center;display:flex}@media (width<=940px){.roster{width:100%;position:static}.roster-list{max-height:200px}}.app-body{align-items:flex-start;gap:26px;max-width:1560px;margin:0 auto;display:flex}.app-main{flex:1;min-width:0}.notice{z-index:40;font-family:var(--font-heading);letter-spacing:.06em;color:var(--parchment-light);border:1px solid var(--gold-deep);background:linear-gradient(180deg, var(--wood-light), var(--wood-dark));box-shadow:var(--shadow-deep), 0 0 26px var(--candle-glow);border-radius:3px;padding:13px 24px;font-size:14px;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}@media (width<=940px){.app-body{flex-direction:column;align-items:stretch}.app-main{width:100%}}
