:root{color-scheme:light;--bg:#e9e4d9;--panel:#f7f4ec;--panel-2:#efe9dc;--paper:#fffdf7;--ink:#24201b;--muted:#736b61;--line:#d2c8b7;--line-strong:#aa9d88;--accent:#8d2f28;--accent-2:#b58a39;--accent-soft:#f2e3d7;--shadow:0 10px 35px rgba(44,34,24,.12);--top:64px;--nav:258px;--list:390px;--serif:Georgia,'Times New Roman',serif;--sans:Inter,Segoe UI,Arial,sans-serif}
[data-theme="dark"]{color-scheme:dark;--bg:#13110f;--panel:#1d1a17;--panel-2:#27221d;--paper:#211d19;--ink:#eee7dc;--muted:#aaa094;--line:#3e3730;--line-strong:#665c51;--accent:#d4685e;--accent-2:#d3ad5b;--accent-soft:#39231f;--shadow:0 10px 35px rgba(0,0,0,.34)}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.mobile-only{display:none!important}
.skip-link{position:fixed;left:8px;top:-48px;z-index:100;padding:10px 14px;background:var(--accent);color:#fff;border-radius:4px}.skip-link:focus{top:8px}
.app-shell{height:100%;display:grid;grid-template-columns:var(--nav) var(--list) minmax(0,1fr);grid-template-rows:var(--top) minmax(0,1fr);grid-template-areas:"top top top" "tree list detail"}
.topbar{grid-area:top;display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--panel);z-index:10}
.brand{border:0;background:none;display:flex;align-items:center;gap:11px;padding:0;color:var(--ink);text-align:left;min-width:225px}.brand-die{width:38px;height:38px;display:grid;place-items:center;color:var(--accent-2);font-family:var(--serif);font-size:12px;font-weight:700;background:linear-gradient(145deg,var(--paper),var(--panel-2));border:1px solid var(--line-strong);clip-path:polygon(50% 0,90% 18%,100% 62%,72% 100%,28% 100%,0 62%,10% 18%)}.brand b{font-family:var(--serif);font-size:16px;letter-spacing:.05em}.brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.global-search{height:40px;flex:1;max-width:760px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:0 10px;box-shadow:inset 0 1px 2px rgba(30,20,10,.04)}.global-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.global-search span{font-size:22px;color:var(--muted);transform:rotate(-12deg)}.global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent}.global-search kbd{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 5px;background:var(--panel-2)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:6px}.icon-button,.text-button{border:1px solid var(--line);background:var(--paper);border-radius:7px;min-height:36px}.icon-button{width:36px;font-size:18px}.text-button{padding:0 12px;display:flex;align-items:center;gap:7px;font-weight:600}.icon-button:hover,.text-button:hover{border-color:var(--line-strong);background:var(--panel-2)}
.tree-panel{grid-area:tree;min-width:0;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;overflow:hidden}.tree-head{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid var(--line)}#tree{padding:10px 8px 24px;overflow:auto;flex:1}.tree-group{margin:0 0 5px}.tree-group>button,.tree-leaf{width:100%;border:0;background:none;border-radius:6px;padding:7px 9px;display:flex;align-items:center;gap:8px;text-align:left;font-size:14px}.tree-group>button{font-weight:700;color:var(--ink)}.tree-group>button .chevron{margin-left:auto;color:var(--muted);font-size:10px;transition:.15s}.tree-group.closed .chevron{transform:rotate(-90deg)}.tree-group.closed .tree-children{display:none}.tree-icon{width:18px;text-align:center;color:var(--accent-2)}.tree-children{padding:1px 0 5px 19px}.tree-leaf{color:var(--muted);padding-top:5px;padding-bottom:5px}.tree-leaf:hover,.tree-leaf.active{color:var(--ink);background:var(--panel-2)}.tree-leaf.active{box-shadow:inset 3px 0 var(--accent);font-weight:600}.tree-badge{margin-left:auto;font-size:10px;padding:1px 5px;border-radius:8px;background:var(--accent-soft);color:var(--accent)}.tree-footer{border-top:1px solid var(--line);padding:10px 14px;display:flex;flex-direction:column;color:var(--muted);font-size:11px}.tree-footer span{font-weight:700;color:var(--ink)}
.list-panel{grid-area:list;background:var(--panel-2);border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:0;overflow:hidden}.list-head{min-height:82px;padding:14px 15px 11px;display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel-2) 92%,var(--paper))}.eyebrow{display:block;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:700}.list-head h1{font:700 19px/1.2 var(--serif);margin:4px 0 0}.count-pill{align-self:flex-end;background:var(--paper);border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:11px;padding:3px 8px;white-space:nowrap}.filters{border-bottom:1px solid var(--line);padding:8px 10px;display:flex;gap:6px;flex-wrap:wrap;background:var(--panel)}.filters:empty{display:none}.filter-select,.filter-input,.filter-check{height:31px;border:1px solid var(--line);border-radius:6px;background:var(--paper);font-size:12px}.filter-select{padding:0 26px 0 8px;max-width:165px}.filter-input{padding:0 8px;min-width:120px;flex:1}.filter-check{display:flex;align-items:center;gap:5px;padding:0 8px;color:var(--muted)}.filter-reset{border:0;background:none;color:var(--accent);font-size:12px;padding:0 6px}.result-list{overflow:auto;flex:1;padding:7px}.result-card{width:100%;border:1px solid transparent;border-radius:7px;background:transparent;padding:10px 10px 9px;text-align:left;display:block;margin:0 0 3px}.result-card:hover{background:color-mix(in srgb,var(--paper) 72%,transparent);border-color:var(--line)}.result-card.active{background:var(--paper);border-color:var(--line-strong);box-shadow:0 3px 12px rgba(30,20,10,.07)}.result-title{font-weight:700;font-size:14px;display:flex;gap:8px;align-items:flex-start}.result-title span:first-child{flex:1}.source-icon{font-weight:400;color:var(--muted);font-size:11px}.result-meta{color:var(--muted);font-size:11px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-badges{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.mini-badge{font-size:9px;line-height:1;border:1px solid var(--line);border-radius:10px;padding:3px 5px;color:var(--muted);background:var(--panel)}.mini-badge.accent{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft)}.empty-list{padding:36px 18px;text-align:center;color:var(--muted)}.empty-list b{display:block;color:var(--ink);font-family:var(--serif);margin-bottom:5px}
.detail-panel{grid-area:detail;min-width:0;overflow:auto;background:var(--paper);scroll-behavior:smooth}.detail-empty{max-width:950px;margin:0 auto;padding:8vh clamp(28px,5vw,76px) 60px}.home-crest{width:92px;height:92px;display:grid;place-items:center;margin-bottom:28px;border:1px solid var(--line-strong);border-radius:50%;font:700 17px var(--serif);color:var(--accent);box-shadow:inset 0 0 0 7px var(--paper),inset 0 0 0 8px var(--line),var(--shadow);background:radial-gradient(circle,var(--panel) 0 56%,var(--panel-2) 57%)}.detail-empty h2{font:700 clamp(32px,4vw,54px)/1.08 var(--serif);max-width:700px;margin:10px 0 18px;letter-spacing:-.025em}.home-lead{max-width:740px;color:var(--muted);font-size:18px;line-height:1.65}.home-stats{display:flex;gap:18px;flex-wrap:wrap;margin:28px 0}.home-stat{border-left:2px solid var(--accent-2);padding-left:11px}.home-stat b{font:700 22px var(--serif);display:block}.home-stat span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:28px 0}.quick-grid button{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:16px;text-align:left;min-height:120px}.quick-grid button:hover{border-color:var(--accent-2);transform:translateY(-1px);box-shadow:var(--shadow)}.quick-grid b,.quick-grid small{display:block}.quick-grid b{font-family:var(--serif);margin:12px 0 4px}.quick-grid small{color:var(--muted)}.quick-icon{font-size:22px;color:var(--accent)}.editorial-note{border-top:1px solid var(--line);margin-top:30px;padding-top:18px;color:var(--muted);font-size:13px}.editorial-note b{color:var(--ink)}
.record-detail{max-width:980px;margin:0 auto;padding:42px clamp(24px,5vw,72px) 80px}.detail-breadcrumbs{font-size:11px;color:var(--muted);margin-bottom:14px}.detail-breadcrumbs button{border:0;background:none;color:var(--accent);padding:0}.detail-kicker{color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.13em;font-size:10px}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:22px;border-bottom:1px solid var(--line)}.detail-title-row h2{font:700 clamp(28px,4vw,44px)/1.1 var(--serif);margin:5px 0 9px}.detail-summary{color:var(--muted);margin:0;max-width:720px;font-size:15px}.detail-actions{display:flex;gap:5px}.detail-actions button{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:6px 9px}.tag-row{display:flex;gap:6px;flex-wrap:wrap;margin:17px 0}.tag{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:4px 8px;color:var(--muted);font-size:11px;background:var(--panel)}.tag.strong{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,var(--line));color:var(--accent);font-weight:700}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:20px 0 26px}.stat-cell{padding:10px 12px;min-height:61px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.stat-cell:nth-child(3n){border-right:0}.stat-cell:nth-last-child(-n+3){border-bottom:0}.stat-cell small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}.stat-cell b{font-size:14px}.prose{font:400 15.5px/1.72 var(--serif)}.prose p{margin:0 0 1.05em}.prose h1,.prose h2,.prose h3,.prose h4{font-family:var(--serif);line-height:1.25;margin:1.5em 0 .55em}.prose h2{font-size:24px}.prose h3{font-size:18px}.prose h4{font-size:15px}.prose ul,.prose ol{padding-left:1.4em}.prose table{font:400 12px/1.35 var(--sans);width:100%;border-collapse:collapse;margin:15px 0}.prose th,.prose td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.prose th{background:var(--panel-2);font-weight:700}.prose .table-wrap{overflow:auto;max-width:100%}.prose .notice,.prose .rulebox,.prose .source-limit,.info-box{padding:13px 15px;border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:5px;background:var(--panel);font:400 13px/1.55 var(--sans);margin:14px 0}.prose .source{font:500 11px/1.4 var(--sans);color:var(--muted);margin-top:20px}.source-block{margin-top:30px;padding-top:15px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:11px}.source-block b{color:var(--ink);text-transform:uppercase;letter-spacing:.1em}.source-note{padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:12px;margin:6px 0}.raw-source{white-space:pre-wrap;font:400 13px/1.6 var(--serif);color:var(--ink)}.atlas-image,.diagram-image{max-width:100%;height:auto;border:1px solid var(--line);border-radius:7px;background:#fff;margin:15px 0}.diagram-image{max-height:420px}.context-tool{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--accent-soft);padding:13px 15px;border-radius:6px;margin:22px 0}.context-tool p{margin:2px 0 0;color:var(--muted);font-size:12px}.primary-button{border:1px solid color-mix(in srgb,var(--accent) 70%,#000);background:var(--accent);color:#fff;border-radius:6px;padding:8px 13px;font-weight:700}.secondary-button{border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:7px 11px}.warning-line{color:var(--accent);font-size:12px}
.tool-shell{margin-top:20px}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-field{display:flex;flex-direction:column;gap:5px}.tool-field>span{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.tool-field input,.tool-field select{height:40px;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:0 9px}.tool-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.tool-result{border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:6px;background:var(--panel);padding:14px;min-height:52px}.tool-result strong{font-family:var(--serif);font-size:20px}.roll-list{display:grid;gap:7px;margin:15px 0}.roll-row{display:grid;grid-template-columns:120px 1fr 60px 58px;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:6px 0}.roll-name{font-weight:700}.dice-tray{display:flex;gap:4px;flex-wrap:wrap}.die{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:5px;background:var(--paper);font-weight:700}.die.discarded{opacity:.38;text-decoration:line-through}.die.one{color:var(--accent)}.die button{all:unset;cursor:pointer}.roll-total{width:58px;height:33px;border:1px solid var(--line);border-radius:5px;background:var(--paper);text-align:center}.reorder{display:flex;gap:2px}.reorder button{width:26px;height:28px;border:1px solid var(--line);background:var(--panel);border-radius:4px}.variant-label{display:inline-flex;align-items:center;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-soft);border-radius:10px;padding:3px 7px;margin-left:7px}.calc-breakdown{font-size:12px;color:var(--muted);margin-top:6px}.tool-note{font-size:11px;color:var(--muted);margin:8px 0}
.campaign-dialog{width:min(650px,calc(100% - 24px));max-height:90vh;padding:0;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.35)}.campaign-dialog::backdrop{background:rgba(20,16,12,.56);backdrop-filter:blur(2px)}.campaign-dialog form{padding:22px}.campaign-dialog header{display:flex;justify-content:space-between;align-items:flex-start}.campaign-dialog h2{font:700 25px var(--serif);margin:4px 0}.campaign-dialog>form>p{color:var(--muted);font-size:13px}.campaign-dialog fieldset{border:1px solid var(--line);border-radius:7px;margin:14px 0;padding:8px 14px}.campaign-dialog legend{font-weight:700;font-size:12px;padding:0 7px}.switch-row,.radio-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.switch-row:last-child,.radio-row:last-child{border-bottom:0}.switch-row span,.radio-row span{flex:1}.switch-row b,.switch-row small,.radio-row b,.radio-row small{display:block}.switch-row small,.radio-row small{color:var(--muted);font-size:11px;margin-top:2px}.switch-row input{appearance:none;width:38px;height:21px;border-radius:12px;background:var(--line-strong);position:relative;transition:.2s}.switch-row input:after{content:"";position:absolute;width:17px;height:17px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.2s}.switch-row input:checked{background:var(--accent)}.switch-row input:checked:after{transform:translateX(17px)}.campaign-dialog footer{display:flex;justify-content:flex-end;margin-top:16px}.toast{position:fixed;right:20px;bottom:20px;z-index:80;background:var(--ink);color:var(--paper);padding:9px 13px;border-radius:6px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
.component-filters{min-height:31px;margin:0;padding:2px 8px 4px;border:1px solid var(--line);border-radius:6px;background:var(--paper);display:flex;align-items:center;gap:8px}.component-filters legend{padding:0 4px;color:var(--muted);font-size:9px}.component-filters label{display:flex;align-items:center;gap:3px;font-size:12px;font-weight:700}.component-filters input{accent-color:var(--accent)}
.prose .grid,.axis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.prose .grid>article,.axis-grid>article{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.prose .grid h3,.axis-grid h3{margin:0 0 8px}.prose .grid p,.axis-grid p{margin:0}.prose .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.prose .stats>div{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);display:flex;flex-direction:column;gap:6px}.prose .stats b{font:700 25px var(--serif);color:var(--accent)}.prose .stats span{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.prose .table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:7px;margin:18px 0}.prose .table-wrap table{margin:0;min-width:520px}.prose .table-wrap th{position:sticky;top:0;z-index:1;background:var(--panel-2)}.prose .table-wrap th,.prose .table-wrap td{padding:9px 10px}.spell-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:18px 0}.spell-card>div{padding:14px;background:var(--panel-2)}.spell-card>div b,.spell-card>div span{display:block}.spell-card dl{margin:0;display:grid;grid-template-columns:minmax(130px,.45fr) 1fr}.spell-card dt,.spell-card dd{margin:0;padding:9px 12px;border-top:1px solid var(--line)}.spell-card dt{font-weight:700;background:var(--panel)}
.steps{display:grid;gap:10px;padding-left:0!important;list-style:none;counter-reset:creation-step}.steps li{counter-increment:creation-step;display:grid;grid-template-columns:35px minmax(140px,.55fr) 1fr;align-items:start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.steps li:before{content:counter(creation-step);width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font:700 13px var(--sans)}.steps li b{font-family:var(--sans)}.steps li span{color:var(--muted);font:400 13px/1.5 var(--sans)}
.creation-steps{display:grid;gap:12px;margin:18px 0}.creation-steps>article{display:grid;grid-template-columns:50px 1fr;gap:14px;padding:17px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.creation-steps>article>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);font:700 19px var(--serif)}.creation-steps h3{margin:0 0 5px}.creation-steps p{margin:0 0 10px}
.character-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.character-card{padding:18px;border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 2px 8px rgba(30,20,10,.04)}.char-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.char-head h3{margin:3px 0 4px}.char-head p{margin:0;color:var(--muted);font:500 12px/1.4 var(--sans)}.player{font:700 10px var(--sans);text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.quick{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.quick b{padding:5px 7px;border:1px solid var(--line);border-radius:5px;background:var(--paper);font:700 11px var(--sans);white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:16px 0}.stat-grid>div{padding:8px 4px;text-align:center;border:1px solid var(--line);border-radius:5px;background:var(--paper)}.stat-grid span,.stat-grid b{display:block}.stat-grid span{font:600 9px var(--sans);color:var(--muted);text-transform:uppercase}.stat-grid b{margin-top:4px;font:700 15px var(--serif)}.char-facts{display:grid;gap:0;margin:0}.char-facts>div{display:grid;grid-template-columns:minmax(130px,.75fr) 1fr;gap:18px;padding:9px 0;border-bottom:1px solid var(--line)}.char-facts dt{font:700 11px/1.45 var(--sans);color:var(--muted)}.char-facts dd{margin:0;font:500 12px/1.45 var(--sans)}.trait-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.trait-list span{padding:5px 7px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font:600 10px/1.3 var(--sans)}
.alignment-matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.alignment-matrix article{padding:14px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.alignment-matrix h3{margin:0 0 7px;font-size:16px}.alignment-matrix p{margin:0;font-size:13px;line-height:1.55}.source-details{margin:22px 0;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.source-details>summary{cursor:pointer;padding:13px 15px;font:700 12px var(--sans);color:var(--accent)}.source-details>.long-form{padding:0 17px 17px;border-top:1px solid var(--line)}.long-form{max-width:76ch}.long-form p{margin:0 0 1em}.long-form h2,.long-form h3{padding-bottom:5px;border-bottom:1px solid var(--line)}.source-transcription{max-width:78ch}.source-transcription p{margin-bottom:1.15em}.spaced-list,.priority-list{display:grid;gap:9px}.spaced-list li,.priority-list li{padding-left:4px}.example-box{margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;background:var(--accent-soft)}.example-box p{margin:5px 0 0}
.source-table-row{overflow-x:auto;white-space:pre;max-width:100%;padding:7px 9px;border:1px solid var(--line);border-bottom:0;background:var(--panel);font:500 11px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace}.source-table-row+.source-table-row{border-top-color:color-mix(in srgb,var(--line) 60%,transparent)}.source-table-row:last-of-type{border-bottom:1px solid var(--line);margin-bottom:14px}
.adventure-frameworks{display:grid;gap:18px;margin:20px 0}.adventure-framework{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel)}.adventure-framework header{padding:18px;background:var(--panel-2);border-bottom:1px solid var(--line)}.adventure-framework header span{font:700 10px var(--sans);color:var(--accent);text-transform:uppercase;letter-spacing:.12em}.adventure-framework header h3{margin:4px 0 7px}.adventure-framework header p{margin:0}.adventure-framework ol{margin:0;padding:16px 20px 6px 46px;display:grid;gap:10px}.adventure-framework li{padding-left:5px}.prep-line{margin:8px 18px 18px!important;padding:12px;border-radius:6px;background:var(--paper);font:500 12px/1.5 var(--sans)}
.health-track{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.health-track article{display:flex;flex-direction:column;gap:6px;padding:15px;border:1px solid var(--line);border-left-width:4px;border-radius:7px;background:var(--panel)}.health-track article b{font-family:var(--sans)}.health-track article span{font:400 12px/1.5 var(--sans);color:var(--muted)}.health-track .safe{border-left-color:#3f7f54}.health-track .unconscious{border-left-color:#b58a34}.health-track .dying{border-left-color:#b85b3e}.health-track .dead{border-left-color:#7d2430}
.check-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.check-group{padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.check-group h3{margin:0 0 10px}.check-item{display:grid;grid-template-columns:20px 1fr;align-items:start;gap:8px;padding:8px 0;border-top:1px solid var(--line);font:400 12px/1.45 var(--sans)}.check-item input{margin:2px 0 0;accent-color:var(--accent)}.abort-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.abort-grid article{display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.abort-grid span{font:400 12px/1.45 var(--sans);color:var(--muted)}
.tool-section{margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.tool-section h3{margin:0 0 12px;font:700 16px var(--serif)}.filter-check.roomy{height:auto;min-height:40px;padding:8px 10px;color:var(--ink)}.initiative-timeline{display:grid;gap:5px;margin-top:8px;font-size:12px}.resolution-block+.resolution-block{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.resolution-block>p{margin:5px 0}.resolution-block>strong{display:block;margin-top:5px}.rulebox.option{border-left-color:#556f9b}.rulebox.danger{border-left-color:#a84636}
/* Guide du Maître : arborescence réelle, textes et tableaux restructurés */
.tree-branch{margin:1px 0}.tree-branch-row{display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center}.tree-branch-row .tree-leaf{min-width:0;padding-left:calc(24px + var(--tree-indent,0px))}.tree-branch-leaf>span:not(.tree-icon){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-branch-toggle{width:28px;height:34px;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:.16s}.tree-branch-toggle:hover{color:var(--accent);background:var(--accent-soft)}.tree-branch.closed>.tree-branch-children{display:none}.tree-branch.closed>.tree-branch-row .tree-branch-toggle{transform:rotate(-90deg)}.tree-branch-children{border-left:1px solid var(--line);margin-left:20px}.tree-nested-leaf{padding-left:calc(32px + var(--tree-indent,0px))!important}.dmg-section-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center;margin:20px 0}.dmg-section-nav>span{color:var(--muted);font:600 11px var(--sans);white-space:nowrap}.dmg-section-nav>div:last-child{text-align:right}.dmg-section-nav button{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dmg-children{margin:20px 0;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.dmg-children h3{margin:0 0 12px;font:700 18px/1.3 var(--serif)}.dmg-child-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dmg-child-grid button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);text-align:left;cursor:pointer}.dmg-child-grid button:hover{border-color:var(--accent);background:var(--accent-soft)}.dmg-child-grid b{font:600 12px/1.4 var(--sans)}.dmg-child-grid span{color:var(--accent);font:700 10px/1.4 var(--sans);white-space:nowrap}.dmg-content{max-width:82ch}.dmg-content .dmg-table-wrap{margin:16px 0;overflow:auto;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.dmg-content .dmg-table-wrap+.dmg-table-wrap{margin-top:-17px;border-top:0;border-radius:0 0 7px 7px}.dmg-table{min-width:100%;width:max-content;border-collapse:collapse;font:500 11px/1.35 var(--sans)}.dmg-table th,.dmg-table td{min-width:70px;padding:7px 9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;white-space:normal}.dmg-table th{position:sticky;top:0;background:var(--panel-2);color:var(--accent);font-weight:700}.dmg-table tr:last-child td{border-bottom:0}.dmg-table th:last-child,.dmg-table td:last-child{border-right:0}
@media(max-width:1180px){:root{--nav:225px;--list:345px}.desktop-label{display:none}.text-button{width:38px;padding:0;justify-content:center}}
@media(max-width:860px){html,body{overflow:hidden}.mobile-only{display:flex!important}.app-shell{grid-template-columns:1fr;grid-template-rows:58px minmax(0,1fr) 49px;grid-template-areas:"top" "list" "tabs"}.topbar{padding:0 8px;gap:8px}.brand{min-width:0}.brand-die{width:32px;height:32px}.brand b{font-size:13px}.brand small{display:none}.global-search{height:38px}.global-search kbd{display:none}.top-actions .text-button{display:none}.tree-panel{position:fixed;z-index:50;left:0;top:0;bottom:0;width:min(320px,88vw);transform:translateX(-105%);transition:.22s;box-shadow:var(--shadow)}.tree-panel.open{transform:none}.tree-head{height:58px}.list-panel{grid-area:list;border:0}.detail-panel{position:fixed;z-index:40;inset:58px 0 49px;background:var(--paper);transform:translateX(105%);transition:.22s}.detail-panel.open{transform:none}.mobile-tabs{grid-area:tabs;background:var(--panel);border-top:1px solid var(--line);display:grid!important;grid-template-columns:repeat(3,1fr);z-index:45}.mobile-tabs button{border:0;background:none;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.mobile-tabs button.active{color:var(--accent);font-weight:700;border-top:2px solid var(--accent)}.quick-grid{grid-template-columns:repeat(2,1fr)}.record-detail{padding:25px 18px 70px}.detail-title-row{display:block}.detail-actions{margin-top:12px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-cell:nth-child(3n){border-right:1px solid var(--line)}.stat-cell:nth-child(2n){border-right:0}.stat-cell:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.stat-cell:nth-last-child(-n+2){border-bottom:0}.tool-grid{grid-template-columns:1fr}.roll-row{grid-template-columns:90px 1fr 52px}.reorder{grid-column:2/4;justify-content:flex-end}.global-search input::placeholder{color:transparent}}
@media(max-width:520px){.topbar{gap:5px}.brand span:last-child{display:none}.global-search{padding:0 8px}.home-stats{gap:12px}.home-stat{width:calc(50% - 6px)}.quick-grid{grid-template-columns:1fr 1fr}.quick-grid button{padding:12px;min-height:105px}.detail-empty{padding:38px 18px 60px}.detail-empty h2{font-size:31px}.home-lead{font-size:15px}.stats-grid{grid-template-columns:1fr}.stat-cell,.stat-cell:nth-child(n){border-right:0;border-bottom:1px solid var(--line)}.stat-cell:last-child{border-bottom:0}.roll-row{grid-template-columns:75px 1fr 50px}.dice-tray{gap:2px}.die{width:28px;height:28px}.prose{font-size:14px}.list-head{min-height:72px}.result-card{padding:9px}}
@media(max-width:860px){.character-grid,.alignment-matrix,.checklist{grid-template-columns:1fr}.prose .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.steps li{grid-template-columns:35px 1fr}.steps li span{grid-column:2}.health-track{grid-template-columns:1fr}.component-filters{width:100%;justify-content:center}.char-facts>div{grid-template-columns:minmax(105px,.7fr) 1fr;gap:12px}}
@media(max-width:520px){.prose .grid,.axis-grid,.prose .stats,.abort-grid{grid-template-columns:1fr}.character-card{padding:14px}.char-head{display:block}.quick{justify-content:flex-start;margin-top:10px}.stat-grid{grid-template-columns:repeat(3,1fr)}.char-facts>div{display:block}.char-facts dd{margin-top:3px}.creation-steps>article{grid-template-columns:38px 1fr;gap:10px}.creation-steps>article>span{width:34px;height:34px}.spell-card dl{grid-template-columns:1fr}.spell-card dt{padding-bottom:3px}.spell-card dd{padding-top:3px;border-top:0}.alignment-matrix article{padding:12px}}
@media(max-width:700px){.dmg-child-grid{grid-template-columns:1fr}.dmg-section-nav{grid-template-columns:1fr 1fr}.dmg-section-nav>span{grid-column:1/-1;grid-row:1;text-align:center}.dmg-section-nav>div:last-child{text-align:right}.tree-branch-row .tree-leaf{padding-left:calc(20px + var(--tree-indent,0px))}.tree-nested-leaf{padding-left:calc(26px + var(--tree-indent,0px))!important}}
@media print{html,body{overflow:visible;background:#fff}.topbar,.tree-panel,.list-panel,.mobile-tabs,.detail-actions,.context-tool{display:none!important}.app-shell{display:block}.detail-panel{overflow:visible}.record-detail{max-width:none;padding:0}.source-block{break-inside:avoid}}

/* Édition publique : adresses permanentes, informations légales et emplacements publicitaires inactifs. */
.detail-layout{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr)}
.detail-content{min-width:0}
.legal-links{display:flex;flex-wrap:wrap;gap:5px 10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.legal-links a,.legal-links button,.home-legal a{border:0;background:none;padding:0;color:var(--muted);font-size:10px;text-decoration:none}
.legal-links a:hover,.legal-links button:hover,.home-legal a:hover{color:var(--accent);text-decoration:underline}
.home-legal{display:flex;gap:8px 15px;flex-wrap:wrap;margin-top:18px}
.home-legal a{font-size:11px}
.public-reference{border-left-color:var(--accent)!important}
.source-block a{text-decoration:none}
.source-block a:hover{color:var(--accent);border-color:var(--accent)}
.reference-tables{margin-top:22px}.reference-tables section+section{margin-top:28px}.reference-tables .table-wrap{max-width:100%;overflow:auto}.reference-tables table{min-width:560px}
.ad-slot{display:none;border:1px dashed var(--line-strong);background:var(--panel);color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em;align-items:center;justify-content:center}
.ad-slot-desktop{width:170px;min-height:600px;margin:28px 18px 28px 0;position:sticky;top:20px;align-self:start}
.ad-slot-mobile{min-height:90px;margin:12px 18px 70px}
.ads-enabled .ad-slot{display:flex}
.ads-enabled .detail-layout{grid-template-columns:minmax(0,1fr) 190px}
.ads-enabled .ad-slot-mobile{display:none}
.cookie-dialog{width:min(610px,calc(100% - 24px));max-height:90vh;padding:0;border:1px solid var(--line-strong);border-radius:10px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px rgba(0,0,0,.35)}
.cookie-dialog::backdrop{background:rgba(20,16,12,.56);backdrop-filter:blur(2px)}
.cookie-dialog form{padding:22px}
.cookie-dialog header{display:flex;justify-content:space-between;align-items:flex-start}
.cookie-dialog h2{font:700 25px var(--serif);margin:4px 0}
.cookie-dialog>form>p{color:var(--muted);font-size:13px;line-height:1.55}
.cookie-choice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid var(--line)}
.cookie-choice span{flex:1}
.cookie-choice b,.cookie-choice small{display:block}
.cookie-choice small{color:var(--muted);font-size:11px;margin-top:3px}
.cookie-choice strong{font-size:11px;color:var(--accent)}
.cookie-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

@media(max-width:860px){
  .ads-enabled .detail-layout{display:block}
  .ads-enabled .ad-slot-desktop{display:none}
  .ads-enabled .ad-slot-mobile{display:flex}
}

@media print{
  .ad-slot,.home-legal{display:none!important}
}
