@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Libre+Caslon+Display&display=swap');
:root{--bg:#f6f5ef;--surface:#fffefa;--ink:#283d33;--muted:#7c837b;--line:#e4e5dc;--green:#315c49;--pale:#edf1e8;--gold:#ac8748;--red:#a45149;--shadow:0 4px 22px #243c2911;font-family:'DM Sans',sans-serif;color:var(--ink);font-size:14px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{opacity:.45;cursor:not-allowed}a{color:var(--green)}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input:focus,textarea:focus,select:focus{outline:2px solid var(--green);outline-offset:2px}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}h1{font-size:44px;line-height:1.05;letter-spacing:-.7px}h2{font-size:25px}h3{font-size:14px;font-weight:600}small{font-size:11px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.7px;font-weight:600}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:10px 15px;border:1px solid var(--line);border-radius:7px;background:var(--surface);font-weight:550;font-size:12px;white-space:nowrap}.btn:hover{background:var(--pale);border-color:#b4c2af}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{filter:brightness(1.1)}.btn.quiet{border-color:transparent;background:transparent;padding:8px}.btn.danger{color:var(--red)}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px}.icon-btn:hover{background:var(--pale)}.chip{display:inline-flex;align-items:center;gap:5px;background:var(--pale);border-radius:5px;padding:5px 8px;font-size:10px;font-weight:550}.chip.gold{background:#f7eedc;color:#99753c}.chip.red{background:#f9e8e4;color:var(--red)}.dot{width:6px;height:6px;border-radius:50%;background:#69956a}.layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;padding:32px 18px 20px;background:#f0f1e9;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 33px}.brand img{width:33px;height:33px;border-radius:9px}.brand span{font-family:'Libre Caslon Display',serif;font-size:29px;letter-spacing:1px}.nav-label{padding:15px 13px 10px;font-size:9px;letter-spacing:1.5px;color:var(--muted);font-weight:650}.navitem{display:flex;gap:12px;align-items:center;width:100%;padding:12px 14px;border-radius:7px;text-align:left;color:#737d73;font-size:12px;margin-bottom:4px}.navitem.active{color:var(--green);background:#e0e7d9;font-weight:650}.navitem:hover{background:#e5eadf}.navitem .count{margin-left:auto;font-size:10px}.character-mini{margin:5px 0;padding:12px 10px;display:flex;gap:10px;align-items:center;text-align:left;width:100%;border-radius:7px}.character-mini.active{background:var(--surface);box-shadow:0 2px 5px #243c2906}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#dddccc;border:2px solid var(--surface);color:var(--green);font-family:Georgia,serif;font-size:16px;flex-shrink:0}.character-mini strong{font-size:11px;display:block}.character-mini small{font-size:9px;color:var(--muted)}.side-bottom{margin-top:auto;padding-top:24px}.local-info{border-top:1px solid var(--line);margin:18px 8px 0;padding:17px 0 0;font-size:10px;color:var(--muted);line-height:1.6}.local-info .row{color:var(--green);margin-bottom:5px}.main-shell{grid-column:2;min-width:0}.topbar{height:73px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line);background:var(--surface)}.breadcrumb{font-size:11px;color:var(--muted);gap:9px}.breadcrumb strong{font-weight:500;color:var(--ink)}.search-top{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px;padding:8px 11px;border:1px solid var(--line);border-radius:6px;min-width:210px}.key{font-size:9px;border:1px solid var(--line);border-radius:3px;padding:2px 4px;margin-left:auto}.top-actions{display:flex;align-items:center;gap:14px}.main{max-width:1470px;margin:auto;padding:26px 36px 110px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.page-heading h2{font-size:29px}.page-heading p{font-size:11px;color:var(--muted);margin-top:4px}.banner{min-height:174px;border-radius:10px;overflow:hidden;background:linear-gradient(90deg,#152c23d9 0%,#16312388 45%,#122c2522),url('assets/evergreen.png') center 50%/cover;position:relative;display:flex;align-items:center;padding:30px 32px;color:#fff}.portrait{height:86px;width:86px;flex-shrink:0;border:1px solid #d2be8b88;border-radius:50%;background:#ded3b8;position:relative;overflow:hidden;box-shadow:0 0 0 5px #fff1}.portrait svg{width:100%;height:100%}.character-title{padding-left:23px}.character-title .eyebrow{color:#d7c399;font-size:9px;margin-bottom:7px}.character-title h1{margin-bottom:9px}.character-title p{color:#d7dfd5;font-size:11px}.banner-tools{margin-left:auto;align-self:flex-start}.banner .btn{color:white;background:#fff1;border-color:#fff4;backdrop-filter:blur(6px)}.banner-tag{position:absolute;bottom:18px;right:22px;letter-spacing:1.3px;font-size:9px;color:#f2ebd7}.tabbar{display:flex;border-bottom:1px solid var(--line);margin:18px 0 23px;gap:27px;overflow-x:auto;scrollbar-width:none}.tab{display:flex;gap:7px;align-items:center;padding:14px 1px;color:var(--muted);border-bottom:2px solid transparent;font-size:12px;white-space:nowrap}.tab.active{color:var(--green);border-color:var(--green);font-weight:600}.tab .icon{width:15px;height:15px}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:22px}.main-col,.right-col{display:flex;flex-direction:column;gap:20px}.abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.ability{border:1px solid var(--line);background:var(--surface);border-radius:8px;text-align:center;padding:15px 5px 12px;transition:transform .15s}.ability:hover{transform:translateY(-3px);border-color:#99ab93}.ability .eyebrow{font-size:8px;letter-spacing:1px;color:var(--muted)}.ability .mod{font-family:'Libre Caslon Display',serif;font-size:32px;line-height:1.1;margin:7px 0}.ability .score{font-size:10px;display:inline-block;background:var(--bg);border-radius:4px;padding:3px 9px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:20px;box-shadow:0 3px 6px #243c2902}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:10px}.card-title{display:flex;align-items:center;gap:9px}.card-title .icon{width:16px;color:var(--muted)}.card-title h2{font-size:23px}.card-header .link{font-size:10px;color:var(--green);padding:5px}.tiny-tabs{display:flex;gap:15px;border-bottom:1px solid var(--line);margin:-2px 0 2px;padding-bottom:10px}.tiny-tabs button{font-size:10px;color:var(--muted);padding:0}.tiny-tabs button.active{color:var(--green);font-weight:600}.action-row{padding:15px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.action-row:last-child{border-bottom:0;padding-bottom:0}.action-icon{width:35px;height:35px;border-radius:7px;background:var(--pale);display:grid;place-items:center;color:var(--green)}.action-info{min-width:0;flex:1}.action-info strong{font-size:12px;font-weight:600;display:block}.action-info small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.roll-btn{border:1px solid #d6dfce;color:var(--green);background:#eff3e9;border-radius:5px;padding:8px 12px;font-size:12px;font-weight:650;min-width:51px}.roll-btn:hover{background:#dde8d3}.damage-btn{min-width:72px;color:var(--muted);font-size:11px}.section-split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.skill-row{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:11px}.prof-dot{width:7px;height:7px;border:1px solid #a8b39f;border-radius:50%;flex-shrink:0}.prof-dot.filled{background:var(--green);border-color:var(--green)}.skill-row .abbr{margin-left:auto;font-size:9px;color:#9ba196}.skill-row button{font-size:11px;font-weight:650;min-width:29px;text-align:right;color:var(--green)}.health-card{padding:20px}.health-count{font-family:'Libre Caslon Display',serif;font-size:47px;line-height:1}.health-count span{font-family:'DM Sans';font-size:15px;color:var(--muted)}.health-heart{color:#829d75}.health-bar{height:7px;background:#e7ebdf;border-radius:8px;margin:15px 0 10px;overflow:hidden}.health-bar div{background:#6d8f60;height:100%;border-radius:8px;transition:width .3s}.health-form{display:flex;gap:6px;margin-top:14px}.health-form input{width:60px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--surface);text-align:center}.health-form .btn{padding:8px 11px;flex:1;font-size:10px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.mini-stat{border:1px solid var(--line);border-radius:8px;background:var(--surface);text-align:center;padding:15px 6px}.mini-stat .icon{color:#8d997e}.mini-stat strong{display:block;font-family:'Libre Caslon Display';font-size:27px;margin:6px 0 3px}.mini-stat small{font-size:8px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.resource-row{margin:15px 0}.resource-row:first-child{margin-top:0}.resource-row:last-child{margin-bottom:0}.resource-label{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:8px}.resource-label small{font-size:9px;color:var(--muted)}.pips{display:flex;gap:7px;flex-wrap:wrap}.pip{width:19px;height:19px;border:1px solid #b6c2ab;border-radius:50%;background:var(--surface)}.pip.full{background:var(--green);border-color:var(--green);box-shadow:inset 0 0 0 3px var(--surface)}.pip:hover{border-color:var(--gold);transform:scale(1.1)}.inspiration{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;background:#f7f0e1;border:1px solid #eadfc5;border-radius:8px}.inspiration strong{font-size:11px}.inspiration small{display:block;font-size:9px;margin-top:4px;color:#9b875d}.toggle{height:20px;width:35px;border-radius:20px;background:#d8d5c6;padding:3px}.toggle span{height:14px;width:14px;background:#fff;border-radius:50%;display:block;transition:transform .2s}.toggle.on{background:var(--gold)}.toggle.on span{transform:translateX(15px)}.note-preview{background:var(--pale);border:1px solid #dde4d5;border-radius:8px;padding:18px}.note-preview p{font-size:11px;line-height:1.7;color:#6d7867;margin:12px 0}.note-preview .row small{font-size:9px}.dice-dock{position:fixed;bottom:20px;left:calc(50% + 100px);transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 7px 35px #1c362623;z-index:25}.dice-dock .dice{height:32px;width:32px;display:grid;place-items:center;font-size:10px;font-weight:650;clip-path:polygon(50% 0,97% 25%,97% 75%,50% 100%,3% 75%,3% 25%);background:#e9edde;color:#536848}.dice-dock .dice:hover{background:var(--green);color:white}.dice-dock .dice.d20{background:var(--green);color:white;width:38px;height:38px}.dice-dock .divider{height:23px;width:1px;background:var(--line)}.dice-dock .roll-mode{padding:7px;border:0;background:var(--surface);color:var(--muted);font-size:10px;max-width:92px}.dice-dock .icon{width:16px}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);text-align:left;font-weight:500;padding:12px;border-bottom:1px solid var(--line)}.table td{padding:14px 12px;border-bottom:1px solid var(--line)}.table td:first-child{padding-left:0}.table tr:last-child td{border-bottom:0}.table small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:10px 12px}.search-field input{border:0;outline:none;background:none;color:var(--ink);width:100%;min-width:0;font-size:12px}.filters{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}.filters button{padding:7px 12px;border:1px solid var(--line);border-radius:20px;font-size:10px;background:var(--surface);color:var(--muted)}.filters button.active{background:var(--green);color:#fff;border-color:var(--green)}.spell-card{padding:16px 0;border-bottom:1px solid var(--line)}.spell-card:last-child{border:0}.spell-card summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}.spell-card summary::-webkit-details-marker{display:none}.spell-card p{font-size:12px;color:var(--muted);line-height:1.7;margin:15px 0}.spell-card details[open] .chevron{transform:rotate(90deg)}.spell-name{font-size:13px;font-weight:600;flex:1}.slot-card{margin-bottom:18px}.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.slot-grid .resource-label{font-size:10px}.journal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.journal-card{min-height:180px}.journal-card p{font-size:13px;line-height:1.8;color:var(--muted);white-space:pre-wrap;margin:15px 0}.empty{text-align:center;padding:42px 20px;color:var(--muted);font-size:13px}.empty .icon{height:35px;width:35px;margin-bottom:12px}.character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.character-card{overflow:hidden;padding:0}.character-cover{height:114px;background:linear-gradient(0deg,#19362a55,#19362a22),url('assets/evergreen.png') center/cover;display:flex;align-items:end;padding:18px}.character-card-body{padding:20px}.character-card h2{margin:10px 0}.character-card p{font-size:12px;color:var(--muted);line-height:1.7}.character-card .btn{margin-top:20px;width:100%}.feature-card{margin-top:12px;padding:18px;border:1px solid var(--line);border-radius:8px}.feature-card p{color:var(--muted);font-size:12px;line-height:1.8;margin-top:12px;white-space:pre-wrap}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px;margin:14px 0;text-align:left}.field label{font-size:11px;color:var(--muted);font-weight:550}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);padding:11px 12px;font-size:12px}.field textarea{min-height:100px;resize:vertical;line-height:1.7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.help{font-size:11px;line-height:1.7;color:var(--muted)}.link-list a{display:block;margin:13px 0;font-size:12px}.footnote{font-size:10px;color:var(--muted);line-height:1.8;margin-top:18px}.session-row{padding:18px 0;border-bottom:1px solid var(--line)}.session-row h3{margin:6px 0}.session-row p{font-size:12px;line-height:1.7;color:var(--muted);margin:10px 0;white-space:pre-wrap}.roll-result{display:grid;grid-template-columns:55px 1fr;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.roll-result .total{font-family:'Libre Caslon Display';font-size:36px;text-align:center;color:var(--green)}.roll-result p{font-size:11px;margin-top:6px;color:var(--muted)}.roll-result strong{font-size:12px}.roll-result .time{float:right;font-size:9px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);padding:0;max-width:560px;width:calc(100% - 30px);max-height:90vh;box-shadow:0 20px 100px #12271e55}dialog::backdrop{background:#172a2370;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:23px 26px 0}.modal-body{padding:8px 26px 26px}.modal-head h2{font-size:30px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.roll-display{text-align:center;padding:25px 0 12px}.roll-display .big-roll{font-family:'Libre Caslon Display';font-size:92px;line-height:1;color:var(--green)}.roll-display p{font-size:12px;color:var(--muted);line-height:1.8;margin-top:13px}.roll-display .chip{margin-top:13px}#toast{position:fixed;bottom:90px;left:calc(50% + 100px);transform:translate(-50%,20px);padding:12px 18px;background:#254b3e;color:white;border-radius:8px;box-shadow:var(--shadow);font-size:12px;opacity:0;transition:.2s;pointer-events:none;z-index:100;max-width:90vw}#toast.show{opacity:1;transform:translate(-50%,0)}.skip{position:fixed;top:-100px;left:15px;z-index:100;background:var(--surface);padding:12px}.skip:focus{top:15px}.mobile-menu{display:none}.desktop-only{display:inline-flex}.death-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.death-row small{font-size:10px}.money-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:16px 0}.money-grid label{text-align:center;font-size:9px;color:var(--muted)}.money-grid input{width:100%;text-align:center;padding:10px 2px;margin-top:5px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}.danger-zone{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.spell-summary-stats{display:flex;gap:20px;margin:12px 0 20px}.spell-summary-stats strong{font-family:'Libre Caslon Display';font-size:30px;display:block}.on{color:var(--green)}.bg-gold{background:#f7edda}.proficiency-help{font-size:9px;color:var(--muted);padding-bottom:9px}.focus-mode .sidebar,.focus-mode .topbar{display:none}.focus-mode .layout{grid-template-columns:1fr}.focus-mode .main-shell{grid-column:1}.focus-mode .dice-dock,.focus-mode #toast{left:50%}body.dark{--bg:#1c2822;--surface:#26342c;--ink:#e5e9dc;--muted:#9da99a;--line:#39483d;--green:#94b087;--pale:#334634;color-scheme:dark}.dark .sidebar{background:#202f25}.dark .navitem.active{background:#354c36}.dark .navitem:hover{background:#304432}.dark .btn.primary{color:#18221a}.dark .roll-btn{background:#344a35;color:#c5d8bc;border-color:#486141}.dark .inspiration{background:#3b3628;border-color:#534932}.dark .note-preview{border-color:#41513b}.dark .character-mini.active{background:#2e3b31}.dark .toggle.on{background:#ac8748}.dark .health-bar{background:#3b4937}
@media(min-width:1450px){.content-grid{grid-template-columns:minmax(0,1fr) 315px}.main{padding-left:45px;padding-right:45px}.section-split{gap:22px}}
@media(max-width:1180px){.layout{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px;padding-left:12px;padding-right:12px}.main{padding:23px 24px 110px}.topbar{padding:0 24px}.content-grid{grid-template-columns:minmax(0,1fr) 255px;gap:16px}.section-split{gap:15px}.card{padding:17px}.ability .eyebrow{font-size:7px;letter-spacing:.6px}.tabbar{gap:20px}.dice-dock,#toast{left:calc(50% + 85px)}.search-top{min-width:160px}.character-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.content-grid{grid-template-columns:1fr}.right-col{display:grid;grid-template-columns:1fr 1fr;align-items:start}.mini-stats{grid-column:2;grid-row:1}.inspiration{grid-column:2;grid-row:2}.note-preview{grid-column:2}.health-card{grid-column:1;grid-row:1/3}.banner{padding:25px 22px}.portrait{width:65px;height:65px}.character-title{padding-left:15px}.character-title h1{font-size:36px}.banner-tag{display:none}.search-top{min-width:0}.search-top .search-label{display:none}.settings-grid{grid-template-columns:1fr}}
@media(max-width:700px){.layout{display:block}.sidebar{transform:translateX(-100%);width:235px;transition:.2s;box-shadow:10px 0 50px #18331d33}.sidebar.open{transform:translateX(0)}.main-shell{width:100%}.topbar{height:61px;padding:0 17px;gap:8px}.breadcrumb{font-size:10px}.breadcrumb .hide-mobile{display:none}.mobile-menu{display:inline-flex}.main{padding:20px 16px 105px}.page-heading{margin-bottom:17px}.page-heading h2{font-size:27px}.page-heading .btn{padding:8px 10px;font-size:10px}.page-heading .row{gap:5px}.desktop-only{display:none}.top-actions{gap:7px}.search-top{border:0;padding:5px}.search-top .key{display:none}.banner{min-height:162px;padding:24px 18px}.portrait{width:56px;height:56px}.character-title h1{font-size:32px}.character-title p{font-size:9px;line-height:1.8}.character-title .eyebrow{font-size:8px}.banner-tools{position:absolute;right:10px;top:10px}.banner-tools .btn{padding:6px;font-size:0;gap:0}.tabbar{gap:22px;margin:9px 0 20px}.tab{font-size:11px}.abilities{gap:6px}.ability{padding:13px 2px 9px}.ability .eyebrow{font-size:6px;letter-spacing:.2px}.ability .mod{font-size:26px}.ability .score{font-size:9px;padding:3px 7px}.section-split{grid-template-columns:1fr 1fr;gap:10px}.section-split .card{padding:14px 11px}.card-title h2{font-size:22px}.skill-row{font-size:10px;gap:5px}.skill-row .abbr{display:none}.right-col{gap:13px}.right-col .card{padding:16px}.health-form{flex-wrap:wrap}.health-form input{width:100%}.health-form .btn{flex:1}.health-count{font-size:40px}.mini-stats{gap:4px}.mini-stat{padding:12px 1px}.mini-stat small{font-size:6px;letter-spacing:.3px}.mini-stat strong{font-size:24px}.mini-stat .icon{width:15px}.inspiration{padding:13px 12px}.inspiration strong{font-size:10px}.inspiration small{font-size:8px}.note-preview{padding:14px;grid-column:1/-1}.right-col>.card:not(.health-card){grid-column:1/-1}.dice-dock{left:50%;bottom:12px;width:calc(100% - 24px);justify-content:space-between;padding:10px 12px;gap:7px}.dice-dock .dice{height:28px;width:28px;font-size:9px}.dice-dock .dice.d20{height:33px;width:33px}.dice-dock .dice-label{display:none}.dice-dock .roll-mode{max-width:70px;padding:2px;font-size:9px}.dice-dock .divider{display:none}#toast{left:50%;bottom:85px}.journal-grid,.character-grid{grid-template-columns:1fr}.table .hide-mobile{display:none}.table th,.table td{padding:12px 6px;font-size:10px}.table .btn{font-size:10px;padding:7px}.slot-grid{grid-template-columns:repeat(2,1fr)}.action-row{gap:8px}.damage-btn{min-width:50px;font-size:10px}.roll-btn{padding:7px 9px;font-size:11px;min-width:42px}.form-grid{gap:0 10px}.modal-head{padding:20px 20px 0}.modal-body{padding:8px 20px 22px}.spell-card summary{gap:6px;flex-wrap:wrap}.spell-card .chip{font-size:8px}.spell-summary-stats{gap:17px}.footnote{font-size:9px}.focus-mode .main{padding-top:20px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white!important;color:black!important}.sidebar,.topbar,.dice-dock,.page-heading,.tabbar,.banner-tools,.btn,.icon-btn,#toast,dialog{display:none!important}.layout{display:block}.main{padding:0}.banner{background:#eff1e9!important;color:black;min-height:110px}.banner p,.banner .eyebrow{color:black}.content-grid{display:block}.right-col{display:grid;grid-template-columns:1fr 1fr}.card{break-inside:avoid;box-shadow:none;margin-bottom:14px}.main-col{gap:10px}.portrait{display:none}.journal-grid{display:block}.print-section{margin:20px 0}.health-form{display:none}.character-title{padding-left:0}}
.compare-intro{background:linear-gradient(110deg,#254b3e,#386454);color:#f4f3e8;border-radius:10px;padding:26px 30px;margin-bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.compare-intro h2{font-size:32px}.compare-intro p{color:#d0ddc8;line-height:1.8;font-size:12px;max-width:650px;margin-top:9px}.compare-intro .chip{background:#ffffff19;color:#ebe7c9}.compare-top{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.compare-build{border-top:3px solid var(--green)}.compare-build.b{border-top-color:#ae8648}.compare-build h2{font-size:29px;margin:10px 0}.compare-build .field{margin:8px 0 15px}.compare-build .chip{font-size:9px}.compare-build p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:12px}.compare-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.slider-row{margin:17px 0}.slider-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:10px}.slider-label small{font-size:10px;color:var(--green)}input[type=range]{width:100%;accent-color:var(--green);cursor:pointer}.campaign-presets{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.campaign-presets button{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:8px 12px}.campaign-presets button.active{color:var(--green);background:var(--pale);border-color:#a9b99c}.compare-layout{display:grid;grid-template-columns:minmax(0,1fr) 276px;gap:20px}.priority-list{display:flex;flex-direction:column;gap:14px;margin-top:18px}.priority-list label{display:flex;gap:9px;align-items:start;font-size:11px;line-height:1.6}.priority-list input{accent-color:var(--green);margin-top:3px}.fit-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:20px 0}.fit-card{border:1px solid #cedcc5;border-radius:8px;padding:20px;background:var(--pale)}.fit-card.b{border-color:#e3d7bf;background:#f6f0e4}.fit-card h3{font-size:11px;margin-bottom:9px}.fit-card h2{font-size:26px}.fit-card p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:12px}.fit-meter{height:5px;background:#dce5d4;border-radius:5px;margin:13px 0}.fit-meter span{height:5px;background:var(--green);border-radius:5px;display:block}.fit-card.b .fit-meter{background:#e7ddc8}.fit-card.b .fit-meter span{background:var(--gold)}.comparison-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.comparison-row{display:grid;grid-template-columns:160px 1fr 1fr;border-top:1px solid var(--line)}.comparison-row:first-child{border-top:0}.comparison-row>div{padding:17px 15px;border-left:1px solid var(--line);min-width:0;font-size:11px;line-height:1.9}.comparison-row>div:first-child{border-left:0;background:#f5f5ee;font-size:10px;font-weight:600;color:var(--muted)}.comparison-row.header>div{background:var(--pale);font-size:12px;font-weight:650;color:var(--ink)}.comparison-row.header>div:last-child{background:#f7f0e2}.comparison-row .scale{display:flex;gap:4px;margin-bottom:8px}.scale span{height:4px;width:16px;background:#e1e5d9;border-radius:2px}.scale span.fill{background:var(--green)}.scale.b span.fill{background:var(--gold)}.comparison-row .rating-label{font-size:10px;font-weight:650;margin-bottom:5px}.comparison-row p{color:var(--muted);line-height:1.8}.scenario-result{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:17px;margin:14px 0}.scenario-result h3{margin-bottom:10px}.scenario-result p{font-size:11px;line-height:1.9;color:var(--muted)}.timeline-row{border-left:1px solid #c5d0bc;padding:0 0 19px 17px;position:relative;margin-left:5px}.timeline-row::before{content:'';width:7px;height:7px;background:var(--green);border-radius:50%;position:absolute;left:-4px;top:5px}.timeline-row small{color:var(--gold);font-size:9px}.timeline-row h3{margin:5px 0}.timeline-row p{font-size:11px;line-height:1.8;color:var(--muted)}.compare-mobile-help{display:none}.assessment-note{font-size:10px;line-height:1.8;color:var(--muted);margin:15px 0}.dark .comparison-row>div:first-child{background:#243229}.dark .comparison-row.header>div:last-child,.dark .fit-card.b{background:#3b3527}.dark .fit-card.b{border-color:#554a34}
@media(max-width:1100px){.compare-layout{grid-template-columns:1fr}.compare-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:18px}.comparison-row{grid-template-columns:140px 1fr 1fr}}
@media(max-width:700px){.compare-intro{padding:22px 20px}.compare-intro h2{font-size:29px}.compare-intro>div:last-child{display:none}.compare-top{gap:10px}.compare-build{padding:15px 12px}.compare-build h2{font-size:23px}.compare-build p{font-size:10px}.compare-build .field select{font-size:10px;padding:8px 4px}.compare-controls{gap:0 14px}.fit-cards{gap:10px}.fit-card{padding:14px 12px}.fit-card h2{font-size:22px}.comparison-row{grid-template-columns:1fr 1fr}.comparison-row>div:first-child{grid-column:1/-1;border-bottom:1px solid var(--line);padding:8px 12px}.comparison-row>div{padding:12px;font-size:10px}.comparison-row.header>div:first-child{display:none}.comparison-row.header>div{font-size:11px}.comparison-row>div:nth-child(2){border-left:0}.compare-layout>aside{display:flex;flex-direction:column}.priority-list{display:grid;grid-template-columns:1fr 1fr}.compare-mobile-help{display:block}.overview-grid{display:flex;flex-direction:column;gap:15px}.overview-grid>.main-col,.overview-grid>.right-col{display:contents}.overview-grid .health-card{order:0}.overview-grid .mini-stats{order:1}.overview-grid .abilities{order:2}.overview-grid .main-col>.row{order:3}.overview-grid .main-col>.card{order:4}.overview-grid .section-split{order:5}.overview-grid .right-col>.card:not(.health-card){order:6}.overview-grid .inspiration{order:7}.overview-grid .note-preview{order:8}.overview-grid .health-form{flex-wrap:nowrap}.overview-grid .health-form input{width:70px}.overview-grid .mini-stat small{font-size:8px}}
/* General-purpose build workbench */
.workbench-builds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.workbench-builds:has(> :only-child){grid-template-columns:1fr}.compare-build h2{font-size:25px;overflow-wrap:anywhere}.compare-build.c{border-top-color:#7785a8}.build-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.build-actions .btn{font-size:10px;padding:8px 10px}.add-build-card{border:1px dashed #a9b99c;border-radius:10px;padding:26px 15px;text-align:center;background:var(--pale);color:var(--green);min-height:210px}.add-build-card>.icon{width:27px;height:27px;margin-bottom:15px}.add-build-card p{font-size:11px;line-height:1.8;color:var(--muted);margin-top:10px}.workbench-fits,.workbench-scenes{display:grid;grid-template-columns:repeat(var(--build-count),minmax(0,1fr));gap:14px;margin:20px 0}.fit-card.c{background:#eff1f7;border-color:#cdd4e5}.fit-card.c .fit-meter span{background:#7785a8}.decision-brief{border:1px solid var(--line);background:var(--pale);padding:26px;border-radius:10px;margin-top:20px}.decision-brief>h2{font-size:27px;line-height:1.3;margin:10px 0}.decision-brief>p{font-size:12px;line-height:1.8;color:var(--muted)}.brief-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:20px;margin:20px 0 5px}.brief-grid h3{font-size:12px;margin-bottom:12px}.brief-grid p{font-size:11px;line-height:1.9;color:var(--muted);margin:8px 0}.sensitivity-list{margin-top:15px}.sensitivity-list button{display:flex;width:100%;align-items:center;gap:12px;text-align:left;border-bottom:1px solid var(--line);padding:14px 0;font-size:11px}.sensitivity-list button>span{flex:1}.sensitivity-list strong{font-size:11px;max-width:55%;overflow-wrap:anywhere}.coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.coverage-grid h3{font-size:12px;margin-bottom:10px}.coverage-grid p{font-size:10px;display:flex;gap:8px;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);line-height:1.5}.coverage-grid p>span{color:var(--muted);text-align:right;flex-shrink:0}.dimension-detail{border-bottom:1px solid var(--line);padding:16px 0}.dimension-detail summary{font-size:12px;font-weight:600;cursor:pointer;line-height:1.8}.dimension-detail summary>span{float:right;font-size:10px;font-weight:400;color:var(--green)}.dimension-detail .help{margin:12px 0}.choice-impact{padding:6px 9px;background:var(--bg);border-radius:5px}.detail-scroll{overflow:auto;margin-top:15px}.detail-scroll .comparison-row>div{white-space:pre-line}.workbench-details{margin-top:20px;border-top:1px solid var(--line);padding-top:17px}.workbench-details summary{font-size:12px;cursor:pointer;margin-bottom:15px}.need-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.need-grid label{font-size:11px;display:flex;gap:8px;align-items:center}.need-grid input{accent-color:var(--green)}.class-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:20px}.class-picker button{padding:14px;text-align:left;border:1px solid var(--line);border-radius:7px}.class-picker button:hover{background:var(--pale);border-color:var(--green)}.class-picker strong{display:block;font-size:12px;color:var(--green)}.class-picker small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:7px}.editor-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;position:sticky;top:-29px;background:var(--card);padding:10px 0;z-index:1;margin:0 0 15px}.editor-tabs button{font-size:11px;padding:10px 6px;border-radius:5px;background:var(--bg);border:1px solid var(--line)}.editor-tabs .active{background:var(--green);color:white}.editor-entry{padding:16px;border:1px solid var(--line);border-radius:8px;margin:18px 0}.editor-entry h3{font-size:13px}.level-warning{font-size:10px!important;background:#f8edda;color:#765b2f!important;padding:10px;border-radius:6px}.workbench-scenes{margin-bottom:0}.workbench-scenes .scenario-result{margin:0}.dark .fit-card.c{background:#2c3446}.dark .level-warning{background:#3b3527;color:#ddc394!important}.dark .add-build-card{border-color:#516852}.compare-layout{grid-template-columns:minmax(0,1fr) 255px}
@media(min-width:1100px) and (max-width:1400px){.compare-layout{grid-template-columns:1fr}.compare-layout>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.compare-layout>aside>section{margin-top:0!important}.workbench-scenes,.workbench-fits{gap:12px}.fit-card{padding:16px}}
@media(max-width:1100px){.workbench-builds{grid-template-columns:1fr}.workbench-fits,.workbench-scenes{grid-template-columns:1fr}.compare-layout{grid-template-columns:1fr}.class-picker{grid-template-columns:1fr 1fr}.compare-build h2{font-size:27px}.add-build-card{min-height:140px}.workbench-builds{gap:14px}.brief-grid{grid-template-columns:1fr}.decision-brief{padding:20px}.dimension-detail summary>span{float:none;display:block}.coverage-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.coverage-grid,.need-grid{grid-template-columns:1fr}.editor-tabs{top:-19px;gap:4px}.editor-tabs button{font-size:9px;padding:10px 2px}.class-picker{gap:7px}.class-picker button{padding:12px}.editor-entry{padding:12px}.compare-controls{grid-template-columns:1fr}.compare-intro{padding:22px}.decision-brief>h2{font-size:25px}}
body{color:var(--ink)}.editor-tabs{background:var(--surface)}.dark .navitem{color:var(--muted)}.dark .navitem.active{color:var(--green)}.dark .note-preview p{color:var(--muted)}.dark .avatar{background:#40523e}.dark .chip.gold{background:#403623;color:#d6b678}.dark .chip.red{background:#412c29;color:#e3a298}.dark .inspiration small{color:#c5b384}
.catalog-field{min-width:0}.catalog-field input[type=search]{font-size:12px;padding:9px 12px}.catalog-field select{width:100%;min-width:0;text-overflow:ellipsis}.catalog-status,.catalog-source{display:block;font-size:10px;line-height:1.6;color:var(--muted)}.catalog-source a{color:var(--green);overflow-wrap:anywhere}.catalog-help{margin:18px 0;border-top:1px solid var(--line);padding-top:14px}.catalog-help summary{font-size:12px;cursor:pointer}.catalog-help p{margin-top:10px}#character-class-rows{margin:20px 0}.catalog-field [hidden]{display:none!important}#ch-total{font-size:12px}.editor-entry h3{font-size:15px}#character-class-rows .editor-entry{margin-bottom:14px}

@media(max-width:600px){#modal .form-grid:has(.catalog-field){grid-template-columns:1fr}#modal .catalog-field input[type=search]{font-size:13px}}

.campaign-switch{min-width:0}.campaign-switch label{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.campaign-switch select{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:10px;background:var(--surface);color:var(--ink);text-overflow:ellipsis}.sidebar>.campaign-switch{margin:0 8px 10px}.roster-toolbar{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin-bottom:22px}.roster-toolbar .campaign-switch{min-width:220px}.campaign-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-bottom:24px}.campaign-card h2{margin:12px 0}.campaign-card .btn{margin-top:16px}.campaign-card.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.campaign-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.campaign-banner h1{margin-top:10px;overflow-wrap:anywhere}.campaign-banner p{margin-top:10px;font-size:12px}.campaign-footer{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.campaign-roster{display:grid;gap:10px;margin:20px 0}.roster-choice{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:14px}.roster-choice strong,.roster-choice small{display:block}.roster-choice small{margin-top:5px;color:var(--muted)}@media(max-width:600px){.campaign-grid{grid-template-columns:1fr}.campaign-banner{align-items:start;flex-direction:column}.roster-toolbar .campaign-switch{width:100%}}

.campaign-detail>.card{min-width:0}.campaign-detail .card-header{flex-wrap:wrap;gap:12px}.campaign-detail .character-mini span{min-width:0;overflow-wrap:anywhere}.campaign-card h2{overflow-wrap:anywhere}.sidebar{overflow-y:auto}

@media(max-width:600px){.campaign-detail{grid-template-columns:minmax(0,1fr)}}
.reference-start{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:23px;background:var(--pale);border:1px solid var(--line);border-radius:10px;margin-bottom:24px}.reference-start h3{font-size:13px;margin-bottom:12px}.reference-quick{display:flex;flex-wrap:wrap;gap:7px}.reference-quick .btn{padding:7px 10px;font-size:11px}.reference-links{display:flex;flex-direction:column;gap:12px;flex-shrink:0;font-size:12px;color:var(--green)}.reference-layout{display:grid;grid-template-columns:195px minmax(0,1fr);gap:22px;align-items:start}.reference-nav{padding:18px 12px;position:sticky;top:20px}.reference-nav h3{font-size:12px;padding:0 10px 14px}.reference-nav nav{display:flex;flex-direction:column;gap:3px}.reference-nav button{display:flex;align-items:center;justify-content:space-between;padding:10px;font-size:12px;text-align:left;border-radius:5px;gap:10px}.reference-nav small{color:var(--muted);font-size:10px}.reference-nav button.active,.reference-nav button:hover{background:var(--pale);color:var(--green)}.reference-main{min-width:0}.reference-controls{padding:20px}.reference-controls .search-field{margin:0 0 18px;width:100%}.reference-controls .search-field input{width:100%;min-width:0}.reference-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reference-filters .field{margin:0}.reference-filters select{width:100%;min-width:0}.reference-toggles{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:15px;font-size:12px}.reference-toggles label{display:flex;align-items:center;gap:7px}.reference-toggles .btn{margin-left:auto}.reference-result-count{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0 12px;font-size:12px;line-height:1.6}.reference-result-count small{font-size:10px;color:var(--muted);max-width:260px;text-align:right}.reference-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reference-result{display:flex;align-items:flex-start;padding:0;min-width:0}.reference-open{flex:1;min-width:0;text-align:left;padding:20px}.reference-open h2{font-size:25px;margin:7px 0;line-height:1.15;overflow-wrap:anywhere}.reference-open p{font-size:11px;color:var(--muted);line-height:1.7;margin-bottom:12px}.reference-open .chip{font-size:10px}.reference-result>.icon-btn{margin:14px 10px 0 0;flex-shrink:0}.reference-result>.icon-btn[aria-pressed=true]{color:var(--gold);background:var(--pale)}.reference-result:hover{border-color:var(--green)}.reference-results>.empty{grid-column:1/-1}.reference-pagination{display:flex;justify-content:center;gap:14px;align-items:center;margin:24px 0;font-size:12px}.reference-pagination .disabled{opacity:.4;cursor:default}.reference-credits{border-top:1px solid var(--line);padding-top:20px}.reference-credits summary{cursor:pointer;font-size:12px}.reference-credits p{margin:15px 0}.reference-credits a,.reference-body a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.catalog-read{font-size:10px;text-decoration:underline;color:var(--green);margin-left:8px}#reference-modal{max-width:850px}#reference-modal .modal-head{gap:20px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line)}#reference-modal .modal-head h2{overflow-wrap:anywhere}#reference-modal .modal-head>.icon-btn{flex-shrink:0}#reference-modal .modal-body{padding-top:20px}.reference-article-meta{flex-wrap:wrap;gap:8px;margin-bottom:20px;font-size:12px}.reference-article-meta>.btn{margin-left:auto}.reference-help{background:var(--pale);border-radius:8px;padding:16px;margin:16px 0 22px}.reference-help h3{font-size:12px;margin-bottom:7px}.reference-help p{font-size:12px;line-height:1.8;color:var(--muted)}.reference-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:16px 0 24px}.reference-facts>div{border-bottom:1px solid var(--line);padding:10px 0;min-width:0}.reference-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:6px}.reference-facts dd{font-size:13px;line-height:1.6;overflow-wrap:anywhere}.reference-body{font-size:14px;line-height:1.85;overflow-wrap:anywhere}.reference-body p{margin:12px 0}.reference-body h3{font-size:18px;margin:24px 0 10px}.reference-body code{font-size:12px}.reference-table{max-width:100%;overflow:auto;margin:20px 0}.reference-table table{width:100%;border-collapse:collapse;font-size:12px}.reference-table th,.reference-table td{padding:9px 12px;line-height:1.6;border:1px solid var(--line);text-align:left;min-width:85px}.reference-table th{background:var(--pale)}.reference-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}.reference-related{margin-top:25px;border-top:1px solid var(--line);padding-top:20px}.reference-related h3{font-size:13px;margin-bottom:10px}.reference-related .btn{margin:4px 6px 4px 0;font-size:11px;white-space:normal;text-align:left}
@media(max-width:1150px){.reference-layout{grid-template-columns:160px minmax(0,1fr);gap:16px}.reference-results{grid-template-columns:1fr}.reference-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-start{align-items:flex-start}.reference-links{max-width:140px;line-height:1.7}}
@media(max-width:700px){.reference-start{flex-direction:column;gap:18px;padding:18px}.reference-links{max-width:none;flex-direction:row;flex-wrap:wrap;gap:16px}.reference-layout{grid-template-columns:minmax(0,1fr)}.reference-nav{position:static;padding:12px;margin:0}.reference-nav h3{display:none}.reference-nav nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.reference-nav button{padding:8px 5px;font-size:10px;gap:5px}.reference-nav small{font-size:9px}.reference-result-count{flex-direction:column;align-items:flex-start;gap:5px}.reference-result-count small{text-align:left;max-width:none}.reference-controls{padding:16px}.reference-toggles{gap:12px;font-size:11px}.reference-pagination{gap:9px}.reference-pagination .btn{padding:9px;font-size:11px}.reference-pagination>span{font-size:10px}.reference-facts{grid-template-columns:minmax(0,1fr)}#reference-modal .modal-head{padding:20px 18px 14px}#reference-modal .modal-head h2{font-size:28px}#reference-modal .modal-body{padding:16px 18px 22px}.reference-article-meta>.btn{margin-left:0}.reference-body{font-size:13px}.reference-actions>.btn{font-size:11px}.reference-open{padding:17px}.reference-nav button{white-space:normal}.reference-filters{gap:10px}.reference-filters label{font-size:10px}}
@media print{#reference-modal{display:none}}
.reference-scope{font-size:11px;line-height:1.8;color:var(--muted);margin:16px 0}.reference-pagination button:disabled{opacity:.4;cursor:default}
/* Reference workspace: the spell catalog and table essentials stay within reach. */
.reference-heading{margin-bottom:28px;align-items:center;gap:18px}.reference-heading h2{font-size:43px;letter-spacing:-.025em;line-height:1.12}.reference-heading p{font-size:13px;line-height:1.7;margin-top:8px}.reference-heading-actions{display:flex;gap:8px;flex-wrap:wrap}.reference-mobile-quick{display:none}.reference-workspace{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:26px;align-items:start}.reference-search-panel{padding:22px;border-radius:14px;box-shadow:0 6px 28px #1f3b2c05}.reference-search-panel .search-field{height:52px;width:100%;margin:0 0 19px;padding:0 15px;background:var(--bg);border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:10px}.reference-search-panel .search-field>.icon{width:21px;height:21px;flex-shrink:0;color:var(--green)}.reference-search-panel .search-field input{width:100%;min-width:0;background:transparent;border:0;padding:12px 0;font-size:13px;outline-offset:7px}.reference-primary-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.reference-primary-filters .field{margin:0;min-width:0}.reference-primary-filters label,.reference-filters label{font-size:11px;font-weight:550;color:var(--muted)}.reference-primary-filters select{width:100%;min-width:0;font-size:12px;padding:10px 9px;background:var(--surface);border-radius:7px}.reference-more{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.reference-more summary{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;font-weight:550;list-style:none}.reference-more summary::-webkit-details-marker{display:none}.reference-more summary>.icon{width:16px;height:16px;color:var(--muted)}.reference-more summary>span{margin-left:auto;display:flex}.reference-more summary>span>.icon{width:15px;height:15px;transform:rotate(90deg)}.reference-more[open] summary>span>.icon{transform:rotate(-90deg)}.reference-more .reference-filters{margin-top:20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.reference-more .reference-filters select{padding:10px;font-size:12px}.reference-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 18px}.reference-results-toolbar h3{font-family:'Libre Caslon Display',serif;font-size:29px;font-weight:400;line-height:1.15}.reference-results-toolbar p{font-size:11px;margin-top:5px;color:var(--muted)}.reference-toolbar-actions{display:flex;align-items:center;gap:17px}.reference-toolbar-actions .field{margin:0;display:flex;align-items:center;gap:8px}.reference-toolbar-actions .field>label{font-size:11px;white-space:nowrap;color:var(--muted)}.reference-toolbar-actions select{font-size:11px;max-width:90px;padding:8px;background:var(--surface);border-radius:7px}.reference-bookmarked{display:flex;align-items:center;gap:7px;cursor:pointer;font-size:11px;white-space:nowrap}.reference-bookmarked .icon{width:15px;height:15px}.reference-bookmarked input{accent-color:var(--green)}.reference-active-filters{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:10px 13px;background:var(--pale);border-radius:8px;font-size:11px;line-height:1.7}.reference-active-filters>.btn{padding:5px 0;white-space:nowrap;font-size:10px;flex-shrink:0}.filter-separator{opacity:.45;margin:0 5px}.reference-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.reference-result{position:relative;border-radius:13px;border-color:var(--line);box-shadow:none;background:var(--surface)}.reference-result:hover{border-color:#a6b6a6;box-shadow:0 4px 17px #2a443908}.reference-open{padding:22px;width:100%;display:flex;flex-direction:column}.reference-card-top{display:flex;align-items:center;gap:10px;margin-bottom:18px}.reference-symbol{width:36px;height:36px;background:var(--pale);color:var(--green);display:grid;place-items:center;border-radius:10px}.reference-symbol>.icon{width:21px;height:21px}.school-evocation{background:#f5e8df;color:#a06940}.school-illusion{background:#eceaf6;color:#7b699c}.school-enchantment{background:#f2e7ed;color:#9b6988}.school-necromancy{background:#e9e9f0;color:#74738e}.school-divination{background:#e8edf6;color:#687f9f}.school-abjuration{background:#e2eee9;color:#547f70}.school-conjuration{background:#e5ecdf;color:#74875c}.school-transmutation{background:#f1eddc;color:#9a874c}.reference-edition{font-size:10px;color:var(--muted);border:1px solid var(--line);padding:4px 7px;border-radius:5px}.reference-open h2{font-size:29px;letter-spacing:-.015em;line-height:1.13;margin:0 0 8px;padding-right:0}.reference-open .reference-card-subtitle{font-size:12px;margin:0 0 18px;color:var(--muted)}.reference-spell-facts{display:flex;flex-direction:column;gap:8px;font-size:11px;line-height:1.65;color:var(--ink)}.reference-spell-facts>span{display:flex;align-items:flex-start;gap:7px}.reference-spell-facts .icon{width:14px;height:14px;flex-shrink:0;color:var(--muted);margin-top:2px}.reference-spell-tags{display:flex;gap:6px;flex-wrap:wrap;min-height:22px;margin-top:14px}.reference-spell-tags>span{border:1px solid var(--line);border-radius:4px;font-size:9px;padding:2px 5px;color:var(--muted)}.reference-card-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:14px;margin-top:14px;font-size:10px;line-height:1.6;color:var(--muted)}.reference-card-footer>span:first-child{min-width:0}.reference-reading{display:flex;align-items:center;gap:4px;white-space:nowrap;color:var(--green);font-weight:600;flex-shrink:0}.reference-reading.source-link{color:var(--gold)}.reference-reading .icon{width:12px;height:12px}.reference-result>.reference-bookmark{position:absolute;top:20px;right:16px;margin:0;width:30px;height:30px;border-radius:7px;color:var(--muted)}.reference-result>.reference-bookmark[aria-pressed=true]{color:var(--gold);background:transparent}.reference-result>.reference-bookmark[aria-pressed=true] .icon{fill:currentColor;fill-opacity:.16}.reference-essentials{display:flex;flex-direction:column;gap:18px;min-width:0}.reference-quick-card{padding:22px 18px;border-radius:13px;box-shadow:none}.reference-quick-card .card-header{margin-bottom:18px}.reference-quick-card .card-title h2{font-size:26px}.reference-essential-link{display:flex;align-items:center;width:100%;text-align:left;gap:10px;padding:15px 3px;font-size:12px;line-height:1.5;border-top:1px solid var(--line)}.reference-essential-link:first-of-type{border-top:0}.reference-essential-link>strong{font-weight:550;flex:1}.reference-essential-link>.icon{width:19px;height:19px;flex-shrink:0;color:var(--muted)}.reference-essential-link>.icon:last-child{width:14px;height:14px}.reference-essential-link:hover{color:var(--green)}.reference-version{padding:23px 20px;border-radius:13px;border-color:var(--line)}.reference-version>h2{font-size:29px}.reference-version>p{font-size:12px;line-height:1.85;margin:12px 0;color:var(--muted)}.reference-edition-note{display:block;font-size:10px;line-height:1.7;padding:10px 0 14px;color:var(--muted)}.reference-srd-links{display:flex;flex-direction:column;gap:8px}.reference-srd-links>a{justify-content:space-between;padding:10px 12px;font-size:11px;background:var(--surface)}.reference-wiki-link{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:11px;text-decoration:none;padding:8px 5px;color:var(--muted)}.reference-wiki-link .icon{width:16px;height:16px}.reference-pagination{justify-content:space-between;margin:26px 0}.reference-pagination .reference-previous>.icon{transform:rotate(180deg)}.reference-pagination .btn{font-size:11px;padding:10px 13px}.quick-explanation>p{font-size:15px;line-height:1.9;margin:20px 0;max-width:65ch}.reference-body{max-width:75ch;margin:0 auto}.reference-article-meta .chip{border-radius:5px}.dark .reference-symbol{background:#35493c;color:#b0c6a6}.dark .school-evocation{background:#473b30;color:#d4b18b}.dark .school-illusion{background:#37394b;color:#c0b5d9}.dark .school-enchantment{background:#433541;color:#d4b0cc}.dark .school-divination{background:#303f4a;color:#b0c2db}.dark .school-abjuration{background:#304a40;color:#a4cec0}.dark .school-necromancy{background:#3a3b47;color:#bdbcd1}.dark .school-conjuration{background:#3c4934;color:#bccba5}.dark .school-transmutation{background:#49452e;color:#d3c492}.dark .reference-result:hover{border-color:#63785e}.dark .reference-version{border-color:var(--line)}
@media(min-width:1600px){.reference-workspace{grid-template-columns:minmax(0,1fr) 300px;gap:30px}.reference-results{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1200px){.reference-workspace{grid-template-columns:minmax(0,1fr) 240px;gap:18px}.reference-results{grid-template-columns:1fr}.reference-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-primary-filters>.field:first-child{grid-column:1/-1}.reference-quick-card{padding:20px 15px}.reference-essential-link{font-size:11px}.reference-quick-card .card-title h2{font-size:25px}.reference-version{padding:20px 16px}}
@media(max-width:1000px){.reference-workspace{grid-template-columns:minmax(0,1fr)}.reference-essentials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;scroll-margin-top:20px}.reference-wiki-link{grid-column:1/-1}.reference-results{grid-template-columns:repeat(2,minmax(0,1fr))}.reference-primary-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.reference-primary-filters>.field:first-child{grid-column:auto}.reference-mobile-quick{display:inline-flex}.reference-heading h2{font-size:38px}}
@media(max-width:650px){.reference-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:22px}.reference-heading h2{font-size:37px}.reference-heading p{font-size:12px;max-width:38ch}.reference-heading-actions{gap:8px;width:100%}.reference-heading-actions>.btn{font-size:11px;padding:10px 12px}.reference-search-panel{padding:17px}.reference-primary-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reference-primary-filters>.field:first-child{grid-column:1/-1}.reference-search-panel .search-field input{font-size:12px}.reference-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reference-open{padding:16px 13px}.reference-open h2{font-size:25px}.reference-symbol{width:30px;height:30px;border-radius:8px}.reference-symbol>.icon{width:17px;height:17px}.reference-card-top{gap:7px;padding-right:18px;margin-bottom:17px}.reference-edition{font-size:9px;padding:3px 4px}.reference-result>.reference-bookmark{top:16px;right:9px;width:25px;height:25px}.reference-bookmark .icon{width:16px;height:16px}.reference-card-subtitle{font-size:10px!important}.reference-spell-facts{font-size:10px;gap:8px}.reference-card-footer{flex-direction:column;align-items:flex-start;gap:8px;font-size:9px;padding-top:12px}.reference-reading{font-size:10px}.reference-toolbar-actions{gap:10px}.reference-toolbar-actions .field>label{display:none}.reference-toolbar-actions select{padding:7px 4px;font-size:10px;max-width:70px}.reference-bookmarked{font-size:10px;gap:5px}.reference-bookmarked>.icon{display:none}.reference-results-toolbar{gap:10px;margin:24px 0 16px}.reference-results-toolbar h3{font-size:26px}.reference-results-toolbar p{font-size:10px}.reference-essentials{grid-template-columns:minmax(0,1fr)}.reference-quick-card{padding:24px 21px}.reference-quick-card .card-title h2{font-size:30px}.reference-essential-link{font-size:13px;padding:18px 0}.reference-version{padding:25px 21px}.reference-version>h2{font-size:32px}.reference-version>p{font-size:13px}.reference-active-filters{gap:10px;font-size:10px}.reference-pagination{gap:8px}.reference-pagination .btn{font-size:10px;padding:10px 8px}.reference-pagination>span{white-space:nowrap;font-size:10px}.reference-credits .help{font-size:11px;line-height:1.9}}
@media(max-width:365px){.reference-results{grid-template-columns:minmax(0,1fr)}.reference-results-toolbar{flex-wrap:wrap}.reference-toolbar-actions{width:100%;justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.reference-essentials{scroll-behavior:auto}}
/* Campaign workspace */
:root{--serif:'Libre Caslon Display',Georgia,serif}
.campaign-hub-tools,.campaign-record-tools{display:flex;gap:14px;align-items:end;margin:24px 0}.campaign-hub-tools .search-field,.campaign-record-tools .search-field{flex:1;margin:0;min-width:0}.campaign-hub-tools .field,.campaign-record-tools .field{margin:0;min-width:170px}.campaign-hub-tools input,.campaign-record-tools input{min-height:46px}.campaign-card{display:flex;flex-direction:column;gap:12px;min-width:0}.campaign-card h2{font-size:29px}.campaign-card .help{margin:0}.campaign-card>.btn{align-self:start;margin-top:auto}.campaign-card-next{display:flex;align-items:start;gap:9px;font-size:12px;color:var(--muted);padding:12px 0;border-top:1px solid var(--line)}.campaign-card-next svg{flex-shrink:0;margin-top:2px}.campaign-breadcrumb{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px;margin-bottom:20px}.campaign-breadcrumb .btn svg{transform:rotate(180deg)}.campaign-title{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:28px}.campaign-title h1{font:48px/1.15 var(--serif);margin:10px 0}.campaign-title .help{margin:0}.campaign-tabs{margin-bottom:28px;gap:4px;overflow-x:auto;flex-wrap:nowrap}.campaign-tabs .tab{white-space:nowrap;flex-shrink:0;padding:14px 15px;font-size:12px}.campaign-tabs .count{font-size:10px;opacity:.65}.campaign-guidance{padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--green);border-radius:10px;color:var(--muted);line-height:1.7;font-size:13px;margin-bottom:22px}.campaign-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.campaign-stat{display:flex;flex-direction:column;gap:8px;text-align:left;padding:22px;min-width:0}.campaign-stat strong{font:32px/1.2 var(--serif);overflow-wrap:anywhere}.campaign-stat span{font-size:12px;color:var(--muted)}.campaign-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.campaign-overview-grid>.card{min-width:0}.campaign-overview-grid .card-header{flex-wrap:wrap;gap:12px}.campaign-overview-grid h3{font:25px/1.35 var(--serif);margin:12px 0 8px}.campaign-prose{white-space:pre-wrap;line-height:1.8;color:var(--muted);font-size:13px;margin:14px 0;overflow-wrap:anywhere}.campaign-overview-grid .campaign-prose{max-height:240px;overflow:auto}.campaign-summary-link{display:grid;grid-template-columns:1fr auto;gap:7px;text-align:left;padding:16px 0;border-bottom:1px solid var(--line);width:100%;min-width:0}.campaign-summary-link strong{font-size:13px;grid-column:1;overflow-wrap:anywhere}.campaign-summary-link small{grid-column:1;font-size:12px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.campaign-summary-link svg{grid-column:2;grid-row:1/3;align-self:center}.campaign-entry-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:18px}.campaign-section-heading{margin-top:10px}.campaign-section-heading p{max-width:700px;line-height:1.7}.campaign-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.campaign-entry{min-width:0}.campaign-entry h2{font-size:28px;margin:14px 0 8px;overflow-wrap:anywhere}.campaign-entry h2 button{text-align:left;font:inherit;width:100%}.campaign-entry h2 button:hover{color:var(--green)}.campaign-entry .help{font-size:12px}.campaign-excerpt{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;min-height:24px}.campaign-related{display:flex;gap:8px;flex-wrap:wrap}.campaign-related .chip{cursor:pointer;font-size:11px}.campaign-entry .is-pinned{color:var(--green);background:var(--surface)}.campaign-funds{display:flex;gap:24px;justify-content:space-between;align-items:center;border:1px solid var(--line);background:var(--surface);padding:24px;border-radius:14px}.campaign-funds>div{display:flex;flex-direction:column;gap:10px;min-width:140px}.campaign-funds strong{font:32px/1.2 var(--serif)}.campaign-funds .help{max-width:450px;margin:0}.campaign-loot-value{font-size:18px;margin:14px 0}.campaign-form-check{font-size:13px;margin:20px 0}.campaign-form-related{margin:22px 0;border-top:1px solid var(--line);padding-top:18px}.campaign-form-related summary{cursor:pointer;font-size:13px;font-weight:600;margin-bottom:14px}.campaign-form-related .roster-choice{padding:10px 0}.campaign-table-help{margin-top:22px}.campaign-footer{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}.campaign-footer>.help{margin-left:auto}.campaign-search-results{max-height:55vh;overflow:auto}.campaign-search-results .campaign-summary-link{padding:14px 0}.campaign-search-controls{display:flex;gap:12px;align-items:center;margin:0 0 22px}.campaign-search-controls .help{margin:0}.campaign-entry:focus-within{border-color:var(--green)}
@media(min-width:1600px){.campaign-record-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.campaign-tabs .tab{padding:13px 12px}.campaign-title h1{font-size:40px}.campaign-stat-grid{gap:10px}.campaign-stat{padding:17px}.campaign-title{gap:12px}.campaign-title>.btn{flex-shrink:0}}
@media(max-width:700px){.campaign-title{align-items:start;flex-direction:column}.campaign-title h1{font-size:36px}.campaign-overview-grid,.campaign-record-grid{grid-template-columns:1fr}.campaign-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-hub-tools,.campaign-record-tools{flex-wrap:wrap}.campaign-hub-tools .search-field,.campaign-record-tools .search-field{flex-basis:100%}.campaign-record-tools .field,.campaign-hub-tools .field{flex:1}.campaign-record-tools>.help{margin-left:auto}.campaign-funds{align-items:start;flex-direction:column;gap:14px}.campaign-section-heading{align-items:start;gap:16px}.campaign-footer>.help{flex-basis:100%;margin-left:0}.campaign-breadcrumb{margin-bottom:16px}.campaign-tabs{margin-left:-16px;margin-right:-16px;padding-left:16px;scroll-padding-left:16px}.campaign-entry-actions .btn{font-size:12px}.campaign-search-controls{flex-wrap:wrap}.campaign-overview-grid .card-header .btn{font-size:11px}}
.campaign-mobile-section{display:none}.campaign-form-related .roster-choice[hidden]{display:none}
@media(max-width:700px){.campaign-mobile-section{display:block;margin:0 0 24px}.campaign-mobile-section .field{margin-bottom:0}.campaign-tabs{display:none}}
/* Reference reading panel */
#reference-modal{width:min(850px,calc(100% - 32px));max-height:calc(100dvh - 48px);border-radius:20px;box-shadow:0 24px 90px #10251d55;overflow-y:auto}#reference-modal::backdrop{background:#14271f85;backdrop-filter:blur(6px)}#reference-modal .modal-head{position:sticky;top:0;z-index:2;background:var(--surface);padding:28px 30px 22px;align-items:start;border-bottom:1px solid var(--line)}#reference-modal .modal-head h2{font-size:38px;line-height:1.12;letter-spacing:-.4px;max-width:680px}#reference-modal .modal-head>.icon-btn{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;background:var(--surface);margin-top:3px}#reference-modal .modal-head>.icon-btn:hover{background:var(--pale)}#reference-modal .modal-body{padding:22px 30px 28px}.reference-article-meta{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:22px}.reference-source-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}.reference-source-meta .chip{font-size:11px;padding:5px 9px;border-radius:6px}.reference-source-name{font-size:11px;color:var(--muted);flex-basis:100%;margin-top:2px;line-height:1.6}.reference-bookmark-control{display:flex;gap:7px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;flex-shrink:0;font-size:11px;background:var(--surface)}.reference-bookmark-control:hover{background:var(--pale)}.reference-bookmark-control.is-bookmarked{background:var(--pale);color:var(--gold);border-color:var(--gold)}.reference-bookmark-control.is-bookmarked svg{fill:currentColor;stroke:currentColor}.reference-spell-intro{display:flex;align-items:center;gap:13px;margin:0 0 20px}.reference-spell-symbol{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--pale);color:var(--green);border:1px solid var(--line)}.reference-spell-symbol svg{width:23px;height:23px}.reference-spell-intro>div{display:flex;align-items:center;gap:10px;font-size:13px}.reference-spell-intro strong{font-weight:650}.reference-spell-intro>div>span{color:var(--muted);padding-left:10px;border-left:1px solid var(--line)}.reference-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0 0 24px;padding:8px 18px;background:var(--bg);border:1px solid var(--line);border-radius:12px}.reference-facts>div{padding:14px 0;display:flex;flex-direction:column;gap:7px;min-width:0}.reference-facts>div:last-child{border-bottom:0}.reference-facts dt{display:flex;align-items:center;gap:7px;text-transform:none;font-size:11px;letter-spacing:0;margin:0;color:var(--muted)}.reference-facts dt svg{width:14px;height:14px;opacity:.8}.reference-facts dd{font-size:14px;font-weight:550;line-height:1.6;margin:0;padding-left:21px;color:var(--ink)}.reference-facts .reference-fact-wide{grid-column:1/-1}.reference-help{padding:15px 17px;background:var(--pale);border:1px solid var(--line);border-radius:10px;margin:20px 0}.reference-help>div{display:flex;gap:8px;align-items:center;margin-bottom:7px}.reference-help h3{margin:0;font-size:12px}.reference-help p{font-size:12px;line-height:1.7}.reference-body{font-size:14px;line-height:1.85;max-width:75ch}.reference-source-notice{display:flex;gap:12px;border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:var(--pale);margin:18px 0}.reference-source-notice>svg{margin-top:2px;color:var(--green);width:20px;height:20px}.reference-source-notice h3{font-size:13px;font-weight:600;margin-bottom:6px}.reference-source-notice p{font-size:12px;color:var(--muted);line-height:1.7}.reference-class-note{font-size:11px;color:var(--muted);line-height:1.7;margin:16px 0}.reference-actions{gap:10px;padding-top:20px;margin-top:20px}.reference-actions>.btn{min-height:42px;padding:11px 15px;font-size:12px;white-space:normal;text-align:center}.reference-related{margin-top:22px;padding-top:18px}.reference-related h3{color:var(--muted);font-weight:550;font-size:12px}.reference-related>.btn{border:1px solid var(--line);background:var(--bg);padding:8px 10px;border-radius:7px}.reference-secondary-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.reference-secondary-actions .btn{font-size:11px;color:var(--muted)}
@media(max-width:700px){#reference-modal{width:calc(100% - 20px);max-height:calc(100dvh - 28px);border-radius:16px}#reference-modal .modal-head{padding:22px 20px 19px;gap:14px}#reference-modal .modal-head h2{font-size:32px;line-height:1.12}#reference-modal .modal-body{padding:18px 20px 24px}.reference-article-meta{gap:10px;margin-bottom:18px}.reference-bookmark-control{padding:8px}.reference-bookmark-control>span{display:none}.reference-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;padding:6px 14px}.reference-facts>div{padding:12px 0}.reference-facts dd{font-size:13px;padding-left:0}.reference-facts dt{font-size:10px;gap:5px}.reference-facts dt svg{width:12px;height:12px}.reference-spell-intro{margin-bottom:16px}.reference-actions{display:grid;grid-template-columns:1fr}.reference-actions>.btn{width:100%;font-size:12px}.reference-source-notice{padding:14px}.reference-source-name{font-size:10px}.reference-body{font-size:13px;line-height:1.9}}
@media(max-width:350px){#reference-modal .modal-head h2{font-size:29px}.reference-facts{gap:0 10px;padding:6px 12px}.reference-spell-intro>div{font-size:12px}}
/* Motion follows a player's actions; there are no idle loops. */
:root{--ease-land:cubic-bezier(.16,1,.3,1);--ease-press:cubic-bezier(.2,.8,.2,1)}
.btn,.icon-btn,.navitem,.tab,.dice,.ability,.mini-stat,.roll-btn,.damage-btn,.pip,.reference-bookmark-control{transition:background-color 180ms,border-color 180ms,color 180ms,box-shadow 180ms,transform 180ms var(--ease-press)}
button.btn,button.icon-btn,button.navitem,button.tab,button.dice,button.ability,.reference-bookmark-control{position:relative;overflow:hidden;isolation:isolate}
.btn:active,.icon-btn:active,.roll-btn:active,.damage-btn:active,.mini-stat:active{transform:scale(.96)}
.ability:active{transform:translateY(0) scale(.97)}.navitem:active,.tab:active{transform:scale(.985)}.pip:active{transform:scale(.8)}
.press-wave{position:absolute;pointer-events:none;background:currentColor;border-radius:50%;opacity:0;transform:translate(-50%,-50%) scale(0);animation:press-wave 480ms var(--ease-land);z-index:-1}
@keyframes press-wave{0%{opacity:.14;transform:translate(-50%,-50%) scale(0)}100%{opacity:0;transform:translate(-50%,-50%) scale(1)}}
@media(hover:hover){.dice:hover{transform:translateY(-3px) rotate(-5deg);filter:brightness(1.06)}.btn.primary:hover{box-shadow:0 4px 12px #254b3e24}.mini-stat:hover{transform:translateY(-2px);border-color:var(--green)}.reference-bookmark:hover .icon,.reference-bookmark-control:hover .icon{transform:rotate(12deg)}.skill-row button:hover{color:var(--green);background:var(--pale);border-radius:4px}.reference-result:hover{box-shadow:0 6px 18px #203d3210}}
.dice:active{transform:translateY(0) rotate(0) scale(.9)}
.view-arrive{animation:view-arrive 180ms var(--ease-land)}@keyframes view-arrive{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
dialog[open]{animation:dialog-arrive 220ms var(--ease-land)}dialog[open]::backdrop{animation:backdrop-arrive 180ms ease-out}
@keyframes dialog-arrive{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
details[open]>:not(summary){animation:detail-arrive 150ms ease-out}@keyframes detail-arrive{from{opacity:.3}to{opacity:1}}
.bookmark-pop .icon{animation:bookmark-pop 380ms var(--ease-land);transform-origin:center}.reference-bookmark .icon,.reference-bookmark-control .icon{transition:transform 180ms var(--ease-press)}
@keyframes bookmark-pop{0%{transform:scale(.6) rotate(-18deg)}50%{transform:scale(1.22) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
.value-changed{animation:value-changed 320ms var(--ease-land)}@keyframes value-changed{0%{transform:scale(.92);opacity:.65}55%{transform:scale(1.035)}100%{transform:scale(1);opacity:1}}
.health-changed{animation:health-change 450ms var(--ease-land)}@keyframes health-change{from{width:var(--previous-width)}to{}}
.pip-changed{animation:pip-change 320ms var(--ease-land)}@keyframes pip-change{0%{transform:scale(.65)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
.toggle-changed span{animation:toggle-change 300ms var(--ease-land)}@keyframes toggle-change{0%{scale:.8}65%{scale:1.12}100%{scale:1}}
.roll-display.roll-scene{padding:12px 0 0}.roll-character{display:block;color:var(--muted);font-size:11px;margin-bottom:14px}
.roll-stage{position:relative;display:flex;justify-content:center;align-items:center;gap:12px;min-height:180px;padding:6px 12px 12px;border:1px solid var(--line);border-radius:16px;background:radial-gradient(ellipse at 50% 0%,var(--surface),var(--pale));isolation:isolate;overflow:hidden}
.roll-die{transition:opacity 250ms ease-out;width:144px;position:relative;flex:0 0 auto}.roll-face{display:block;width:100%;height:144px;filter:drop-shadow(0 7px 8px #203d3214)}.roll-canvas{display:block;width:144px;height:144px}
.has-canvas .roll-face{display:none}.roll-die.has-canvas{animation:none;transform:none}.die-shell{fill:var(--pale);stroke:var(--green);stroke-width:1.6;stroke-linejoin:round}.die-facets{fill:none;stroke:var(--green);stroke-width:1;stroke-linejoin:round;opacity:.35}
.die-number{fill:var(--ink);font:600 26px 'DM Sans',sans-serif;paint-order:stroke;stroke:var(--pale);stroke-width:6px;stroke-linejoin:round}.die-number-small{font-size:19px}
.die-caption{display:flex;justify-content:center;align-items:center;gap:5px;color:var(--muted);font-size:10px;min-height:20px}.die-caption b{font-size:9px;font-weight:600;color:var(--green);background:var(--surface);padding:2px 6px;border-radius:4px}
.is-rolling .die-number,.is-rolling .die-caption b{visibility:hidden}.is-settled .other-die{opacity:.55}.is-settled .other-die .die-caption b{color:var(--muted);background:transparent}
.roll-progress{height:25px;display:flex;justify-content:center;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin-top:7px}.roll-skip{font-size:10px;color:var(--green);text-decoration:underline;text-underline-offset:3px;padding:4px}
.is-settled .roll-progress{visibility:hidden}.is-rolling .roll-outcome{opacity:.55}.is-rolling .roll-outcome p,.is-rolling .natural-result{visibility:hidden}.is-rolling .big-roll{color:transparent;position:relative}.is-rolling .big-roll:after{content:"—";position:absolute;inset:0;color:var(--muted);font-size:40px;display:grid;place-items:center}
.roll-outcome{display:flex;flex-direction:column;align-items:center;gap:5px}.roll-total-label{font-size:10px;color:var(--muted)}.roll-scene .big-roll{font-size:66px;display:block;min-width:110px;font-variant-numeric:tabular-nums}
.roll-scene .chip{margin-top:4px}.roll-scene p{margin-top:7px;font-size:11px}.is-settled .roll-outcome{animation:roll-reveal 240ms var(--ease-land) both}
@keyframes roll-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.natural-result{font-size:11px;color:var(--gold);background:var(--pale);border:1px solid var(--line);border-radius:20px;padding:4px 10px}.natural-twenty .big-roll{color:var(--gold)}.natural-one .natural-result{color:var(--muted)}
.roll-sparks{position:absolute;left:50%;top:85px;pointer-events:none}.roll-sparks i{position:absolute;width:3px;height:5px;background:var(--gold);border-radius:2px;opacity:0;transform-origin:2px 4px}
.is-settled .roll-sparks i{animation:roll-spark 550ms ease-out both;animation-delay:calc(var(--spark-index)*15ms)}
@keyframes roll-spark{0%{opacity:0;transform:rotate(calc(var(--spark-index)*45deg)) translateY(-45px) scale(.4)}25%{opacity:.7}100%{opacity:0;transform:rotate(calc(var(--spark-index)*45deg)) translateY(-86px) scale(.3)}}
.roll-stage.many-dice{display:grid;grid-template-columns:repeat(3,112px);gap:6px 8px;padding:10px 0}.many-dice .roll-die{width:112px}.many-dice .roll-face,.many-dice .roll-canvas{width:112px;height:112px}.extra-dice{font-size:10px;color:var(--muted);grid-column:1/-1}
.roll-context{font-size:11px;color:var(--muted);line-height:1.7;text-align:center;margin-top:13px}.roll-help{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.roll-stage{gap:4px;min-height:166px;padding:4px 4px 10px}.roll-die{width:128px}.roll-face,.roll-canvas{width:128px;height:128px}.roll-scene .big-roll{font-size:62px}.roll-stage.many-dice{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 0;padding:8px}.many-dice .roll-die{width:100%;min-width:0}.many-dice .roll-face,.many-dice .roll-canvas{width:100%;height:auto;aspect-ratio:1}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.press-wave,.roll-sparks{display:none!important}.btn:active,.dice:active,.ability:active,.navitem:active,.tab:active,.icon-btn:active,.mini-stat:active,.dice:hover,.ability:hover,.mini-stat:hover{transform:none}.is-rolling .roll-outcome,.is-rolling .die-number,.is-rolling .die-caption b{visibility:visible}.roll-progress{visibility:hidden}}
.name-input-row{display:flex;gap:8px;align-items:stretch}.name-input-row input{min-width:0;flex:1}.name-generate{flex-shrink:0}.name-options{margin-top:10px}.name-options summary{font-size:11px;color:var(--muted);cursor:pointer;width:fit-content}.name-options .form-grid{margin-top:12px}.name-options .field{margin-bottom:8px}.name-options .help{font-size:10px}.name-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.name-suggestions:empty{margin:0}.name-choice{padding:7px 10px;border:1px solid var(--line);border-radius:7px;font-size:11px;background:var(--surface);transition:background-color 180ms,border-color 180ms}.name-choice:hover,.name-choice[aria-pressed=true]{background:var(--pale);border-color:var(--green);color:var(--green)}.name-generator-status{font-size:10px;color:var(--muted);line-height:1.6;margin-top:8px}.name-generator-status:empty{display:none}.name-picked{animation:name-picked 400ms ease-out}@keyframes name-picked{from{box-shadow:0 0 0 3px #8ca97b40}to{box-shadow:0 0 0 0 #8ca97b00}}@media(max-width:420px){.name-input-row{flex-wrap:wrap}.name-input-row input{width:100%;flex-basis:100%}.name-generate{width:100%}}
/* Character creation: one decision group at a time, with a persistent draft. */
dialog.character-wizard-modal{width:min(960px,calc(100vw - 32px));max-width:960px;max-height:calc(100dvh - 32px);overflow:hidden;border-radius:22px}.character-wizard-modal .modal-head{padding:18px 26px}.character-wizard-modal .modal-head h2{font-size:25px}.character-wizard-modal .modal-body{padding:0}.wizard-layout{display:grid;grid-template-columns:230px minmax(0,1fr);height:min(690px,calc(100dvh - 106px))}.wizard-rail{padding:26px 18px 18px;background:linear-gradient(155deg,#2c5142,#19392e);color:#f3f2e6;display:flex;flex-direction:column;min-height:0;overflow:auto}.wizard-rail-emblem{width:48px;height:48px;display:grid;place-items:center;border:1px solid #d3d7b644;border-radius:14px;background:#ffffff0a;margin-bottom:18px}.wizard-rail-emblem .icon{width:31px;height:31px;stroke:#d6c997}.wizard-eyebrow{display:block;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600}.wizard-rail .wizard-eyebrow{color:#c5cbb9}.wizard-rail>h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:26px;font-weight:400;line-height:1.1;margin-top:8px;overflow-wrap:anywhere}.wizard-rail>p{font-size:11px;color:#c6cec0;line-height:1.6;margin:8px 0 20px}.wizard-rail nav{display:grid;gap:5px}.wizard-rail nav button{padding:10px;display:flex;align-items:center;gap:10px;text-align:left;border-radius:10px;color:#d3d9cd;border:1px solid transparent}.wizard-rail nav button:hover:not(:disabled){background:#ffffff0b}.wizard-rail nav button.current{color:#f4f4e6;background:#ffffff13;border-color:#c7d0b72f}.wizard-step-number{display:grid;place-items:center;width:25px;height:25px;flex-shrink:0;border:1px solid #c7d0b738;border-radius:50%;font-size:10px}.wizard-rail nav strong{display:block;font-size:12px}.wizard-rail nav small{display:block;font-size:9px;color:#b9c8b5;margin-top:2px}.wizard-rail nav .icon{display:none;width:15px;margin-left:auto;color:#b5c898}.wizard-rail nav button.complete .icon{display:block}.wizard-rail nav button.complete .wizard-step-number{background:#b5c89824}.wizard-rail nav button:disabled{opacity:.5}.wizard-rail-foot{font-size:9px;color:#becbbb;display:flex;align-items:center;gap:7px;margin-top:auto;padding:18px 8px 0;line-height:1.5}.wizard-content{overflow:auto;position:relative;padding:24px 30px 0;min-width:0;background:var(--surface)}.wizard-progress{margin-bottom:24px}.wizard-progress>span{font-size:10px;color:var(--muted)}.wizard-progress>div{height:3px;background:var(--line);border-radius:9px;margin-top:9px;overflow:hidden}.wizard-progress i{display:block;height:100%;background:var(--green);transition:width .35s ease;border-radius:9px}.wizard-section-heading{display:flex;align-items:flex-start;gap:13px;margin-bottom:26px}.wizard-section-icon{width:43px;height:43px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;color:var(--green);background:var(--pale);border:1px solid var(--line)}.wizard-section-heading .wizard-eyebrow{color:var(--muted);margin:1px 0 7px}.wizard-section-heading h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:32px;font-weight:400;line-height:1.05;outline:none}.wizard-section-heading p{font-size:11px;color:var(--muted);line-height:1.7;margin-top:9px}.wizard-panel{min-height:420px}.wizard-panel[hidden]{display:none!important}.wizard-panel .field{margin-bottom:18px}.wizard-panel textarea{min-height:86px}.wizard-panel .form-grid{gap:0 16px}.wizard-guide{display:flex;align-items:flex-start;gap:10px;background:var(--pale);border:1px solid var(--line);padding:13px;border-radius:11px;font-size:11px;line-height:1.75;color:var(--muted);margin:16px 0}.wizard-guide .icon{width:16px;height:16px;margin-top:2px}.wizard-guide span{flex:1}.wizard-restored{display:flex;align-items:center;justify-content:space-between;font-size:10px;background:var(--pale);border-radius:8px;padding:10px;margin-bottom:18px}.wizard-restored button{text-decoration:underline;font-size:10px}.wizard-footer{display:flex;align-items:center;gap:12px;justify-content:space-between;position:sticky;bottom:0;z-index:2;background:var(--surface);padding:18px 0;margin-top:24px;border-top:1px solid var(--line);box-shadow:0 -12px 20px var(--surface)}.wizard-back .icon{transform:rotate(180deg)}#wizard-save-status{font-size:9px;color:var(--muted);text-align:center;line-height:1.5}.wizard-footer .btn{min-height:42px;border-radius:9px}#wizard-error{padding:11px 13px;background:var(--pale);border:1px solid var(--red);border-radius:9px;font-size:12px;line-height:1.5;margin-bottom:16px;color:var(--red)}.wizard-ability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wizard-ability{border:1px solid var(--line);border-radius:13px;padding:13px;background:linear-gradient(150deg,var(--surface),var(--pale))}.wizard-ability>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.wizard-ability>div label{font-size:11px;font-weight:600}.wizard-ability output{font-size:12px;color:var(--green)}.wizard-ability input,.wizard-ability select{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:18px}.wizard-ability input[hidden],.wizard-ability select[hidden],.wizard-ability label[hidden]{display:none!important}.wizard-ability>label{font-size:9px;color:var(--muted);display:block;margin:10px 0 5px}.wizard-ability small{font-size:9px;color:var(--muted);display:block;margin-top:10px;line-height:1.5}.wizard-disclosure{padding:15px 0;border-bottom:1px solid var(--line)}.wizard-disclosure>summary{font-size:12px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}.wizard-disclosure>summary:before{content:'+';font-size:17px;font-weight:400;color:var(--muted)}.wizard-disclosure[open]>summary:before{content:'−'}.wizard-disclosure>summary span{font-size:9px;color:var(--muted);font-weight:400;margin-left:auto}.wizard-disclosure[open]>summary{margin-bottom:18px}.wizard-check{display:flex;align-items:center;gap:8px;font-size:11px}.wizard-save-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.wizard-save-grid label{font-size:10px;display:flex;align-items:center;gap:6px}.wizard-picks{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.wizard-picks .chip{padding:8px;cursor:pointer}.wizard-picks .icon{width:12px;height:12px}.wizard-spell-result{display:flex;gap:6px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.wizard-spell-result>div{flex:1;min-width:0}.wizard-spell-result strong{display:block;font-size:11px}.wizard-spell-result small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.wizard-spell-result .btn{font-size:10px}.wizard-character-card{display:flex;gap:17px;align-items:center;padding:23px;border-radius:15px;background:linear-gradient(135deg,#315c49,#203e33);color:#f3f2e7;margin-bottom:20px}.wizard-character-card>span{display:grid;place-items:center;width:51px;height:51px;border:1px solid #d4d6b649;border-radius:13px;flex-shrink:0;color:#dbcba2}.wizard-character-card .icon{width:33px;height:33px}.wizard-character-card h4{font-family:'Libre Caslon Display',Georgia,serif;font-size:32px;font-weight:400;margin:0;overflow-wrap:anywhere}.wizard-character-card p{font-size:11px;margin-top:8px;line-height:1.5}.wizard-character-card small{display:block;color:#c2cbb8;font-size:10px;margin-top:7px;line-height:1.5}.wizard-review-grid{display:grid;gap:0}.wizard-review-grid>div{position:relative;border-bottom:1px solid var(--line);padding:13px 38px 13px 0}.wizard-review-grid span{display:block;font-size:9px;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.6px}.wizard-review-grid strong{display:block;font-size:12px;font-weight:500;line-height:1.6}.wizard-review-grid button{position:absolute;right:0;top:20px;font-size:10px;color:var(--green);text-decoration:underline}.wizard-review-abilities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:20px 0}.wizard-review-abilities>span{display:grid;gap:5px;text-align:center;padding:12px 0;border:1px solid var(--line);border-radius:10px;background:var(--pale)}.wizard-review-abilities small{font-size:9px;color:var(--muted)}.wizard-review-abilities strong{font-size:20px;font-weight:500}.wizard-review-abilities b{font-size:10px;font-weight:400;color:var(--green)}.wizard-enter{animation:wizard-arrive .22s ease both}@keyframes wizard-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:700px){dialog.character-wizard-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:17px}.character-wizard-modal .modal-head{padding:15px 20px}.wizard-layout{height:calc(100dvh - 85px);display:flex;flex-direction:column}.wizard-rail{padding:12px 18px;overflow:visible;display:block;flex-shrink:0}.wizard-rail-emblem,.wizard-rail>.wizard-eyebrow,.wizard-rail>h3,.wizard-rail>p,.wizard-rail-foot{display:none}.wizard-rail nav{display:flex;justify-content:space-between;gap:5px}.wizard-rail nav button{padding:4px;border-radius:9px}.wizard-rail nav button>span:nth-child(2),.wizard-rail nav .icon{display:none!important}.wizard-step-number{width:28px;height:28px}.wizard-content{padding:20px 20px 0;flex:1;min-height:0}.wizard-progress{margin-bottom:21px}.wizard-section-heading{gap:11px;margin-bottom:22px}.wizard-section-heading h3{font-size:29px}.wizard-section-icon{width:38px;height:38px}.wizard-panel{min-height:0}.wizard-footer{margin-top:22px;padding:14px 0}.wizard-ability-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-save-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-character-card{padding:18px;gap:12px}.wizard-character-card h4{font-size:28px}.wizard-review-abilities{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-footer .btn{font-size:11px;padding:10px 12px}}
@media(max-width:390px){#wizard-save-status{display:none}.wizard-content{padding:18px 16px 0}.wizard-section-heading h3{font-size:27px}.wizard-panel .form-grid{grid-template-columns:1fr}.wizard-character-card>span{display:none}}
@media(prefers-reduced-motion:reduce){.wizard-enter{animation:none}.wizard-progress i{transition:none}}
/* Named steps stay compact on small screens. */
.wizard-mobile-steps{display:none}
@media(max-width:700px){.character-wizard-modal .modal-head{padding:16px 20px 12px;border-bottom:0}.character-wizard-modal .modal-head h2{font-size:23px}.wizard-layout{height:calc(100dvh - 81px)}.wizard-rail{padding:0 20px 12px;background:var(--surface);color:var(--ink);border-bottom:1px solid var(--line);position:relative;z-index:5}.wizard-rail>nav{display:none}.wizard-mobile-steps{display:block}.wizard-mobile-steps>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:7px 0 1px;gap:12px}.wizard-mobile-steps>summary>span:first-child{display:flex;align-items:center;gap:9px}.wizard-mobile-steps strong{font-size:11px;font-weight:600}.wizard-mobile-steps small{font-size:9px;color:var(--muted)}.wizard-mobile-steps>summary>span:last-child{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}.wizard-mobile-steps summary .icon{width:13px;height:13px}.wizard-mobile-steps>div{position:absolute;top:calc(100% - 5px);left:20px;right:20px;border:1px solid var(--line);border-radius:13px;padding:7px;background:var(--surface);box-shadow:0 10px 35px #0003;display:grid;gap:3px}.wizard-mobile-steps button{display:flex;align-items:center;gap:12px;text-align:left;padding:11px 12px;border-radius:8px;font-size:11px}.wizard-mobile-steps button>span{color:var(--muted);font-size:9px}.wizard-mobile-steps button.current{background:var(--pale);color:var(--green)}.wizard-mobile-steps button .icon{display:none;width:14px;height:14px;margin-left:auto}.wizard-mobile-steps button.complete .icon{display:block;color:var(--green)}.wizard-progress{margin:0 0 23px}.wizard-progress>span{display:none}.wizard-progress>div{margin:0;height:2px}.wizard-section-heading .wizard-eyebrow{display:none}.wizard-section-heading h3{font-size:29px;line-height:1.12}.wizard-section-heading .wizard-section-icon{width:36px;height:36px;border-radius:11px}.wizard-section-heading p{margin-top:8px}.wizard-content{padding-top:16px}}
/* A continuous forest surface across the complete character wizard. */
dialog.character-wizard-modal{--bg:#234737;--surface:#284c3e;--ink:#f0f1e6;--muted:#bcc8b8;--line:#9fb59a36;--green:#b6c99d;--pale:#829b6a24;background:linear-gradient(155deg,#2c5142,#19392e);color:var(--ink);color-scheme:dark;border-color:#99b09244}.character-wizard-modal .modal-head,.character-wizard-modal .wizard-rail,.character-wizard-modal .wizard-content{background:transparent}.character-wizard-modal .wizard-rail{border-right:1px solid var(--line)}.character-wizard-modal .wizard-footer{background:#204232f2;box-shadow:0 -12px 20px #204232b8;backdrop-filter:blur(12px)}.character-wizard-modal .btn.primary{background:#b6c99d;border-color:#b6c99d;color:#1b3729}.character-wizard-modal input::placeholder,.character-wizard-modal textarea::placeholder{color:#b7c5b3aa}.character-wizard-modal .wizard-ability{background:#42624a26}.character-wizard-modal .wizard-section-icon{background:#8aab6824;color:#c0d1a5}.character-wizard-modal .wizard-character-card{background:#8caf7830;border:1px solid var(--line)}.character-wizard-modal #wizard-error{color:#ffe0d1;border-color:#d5a09480;background:#61483738}.character-wizard-modal .wizard-mobile-steps>div{background:#284c3e}.character-wizard-modal .wizard-mobile-steps button.current{color:#e4edcf}.character-wizard-modal .wizard-mobile-steps button.complete .icon{color:#c3d4a5}
@media(max-width:700px){.character-wizard-modal .wizard-rail{border-right:0}}

/* Ability rolls stay beside their assignments, without leaving the wizard. */
#wizard-roll-builder[hidden]{display:none!important}.wizard-roll-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:18px 0 14px}.wizard-roll-toolbar strong{font-size:12px}.wizard-roll-toolbar p{font-size:10px;line-height:1.6;color:var(--muted);margin-top:5px}.wizard-roll-toolbar .btn{font-size:11px;white-space:nowrap}.wizard-roll-sets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.wizard-roll-set{min-width:0;border:1px solid var(--line);border-radius:12px;background:#ffffff06;padding:10px}.wizard-roll-set>div:first-child{display:flex;align-items:center;justify-content:space-between}.wizard-roll-set>div:first-child>span{font-size:9px;color:var(--muted)}.wizard-roll-set strong{font-size:24px;font-weight:500;color:#e8eecf}.wizard-roll-dice{display:flex;justify-content:center;gap:2px;margin-top:6px}.wizard-roll-dice .roll-die{width:25%;max-width:42px;flex:none;aspect-ratio:auto;display:block;transform:none!important;animation:none!important}.wizard-roll-dice .roll-face,.wizard-roll-dice .roll-canvas{width:100%;height:auto}.wizard-roll-dice .has-canvas .roll-face{display:none}.wizard-roll-dice .die-caption{display:block;font-size:8px;text-align:center;line-height:1.3;color:var(--muted)}.wizard-dropped{opacity:.4}.wizard-dropped .die-caption{text-decoration:line-through}.wizard-ability select[id^="w-rolled"]{font-size:12px;padding:12px 8px}#wizard-roll-status{margin:12px 0 18px}@media(max-width:700px){.wizard-roll-sets{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-roll-toolbar{align-items:flex-start}.wizard-roll-toolbar .btn{padding:10px;font-size:10px}}
/* Portrait studio: editable illustrations shared by the sheet, roster, and wizard. */
.character-portrait-art{display:block;width:100%;height:100%}.portrait-edit{padding:0;border:0;overflow:visible;background:transparent;cursor:pointer}.portrait-edit>.character-portrait-art{border-radius:50%;box-shadow:0 4px 15px #102d2330}.portrait-edit-badge{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#d8d5b8;background:#294d3d;border:1px solid #b4ba9166;transition:background .15s,transform .15s}.portrait-edit-badge .icon{width:12px;height:12px}.portrait-edit:hover .portrait-edit-badge{background:#41644a;transform:scale(1.08)}.portrait-edit:focus-visible{outline:2px solid #d1c398;outline-offset:5px}.character-avatar{border:0;background:transparent!important;overflow:hidden}.roster-portrait{width:76px;height:76px;position:relative;border-radius:50%;padding:0;border:0;cursor:pointer;background:transparent}.roster-portrait>span{position:absolute;bottom:0;right:0;background:#284c3d;color:#e8ebd9;border:1px solid #b4ba9166;border-radius:50%;width:22px;height:22px;display:grid;place-items:center}.roster-portrait .icon{width:11px;height:11px}.character-cover{align-items:center}.wizard-character-card>.wizard-review-portrait{background:transparent;border:0;border-radius:50%;width:64px;height:64px;overflow:hidden}.wizard-character-card>.wizard-review-portrait .character-portrait-art{width:100%;height:100%}
dialog.portrait-modal{width:min(820px,calc(100vw - 24px));max-width:820px;max-height:calc(100dvh - 24px);overflow:hidden;border-radius:20px}.portrait-modal .modal-head{padding:22px 26px 16px;border-bottom:1px solid var(--line)}.portrait-modal .modal-head h2{font-size:27px}.portrait-modal .modal-body{padding:0}.portrait-editor{display:grid;grid-template-columns:250px minmax(0,1fr);max-height:calc(100dvh - 105px);grid-template-rows:minmax(0,1fr) auto}.portrait-studio-preview{padding:32px 26px;background:linear-gradient(155deg,#315646,#1d3d31);color:#eaeede;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border-right:1px solid var(--line)}.portrait-large{width:190px;height:190px;flex-shrink:0;filter:drop-shadow(0 9px 16px #10251c33);border-radius:50%;overflow:hidden}.portrait-studio-preview h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:26px;font-weight:400;text-align:center;margin:24px 0 8px;overflow-wrap:anywhere}.portrait-studio-preview p{font-size:10px;color:#b9cab5;line-height:1.7;text-align:center}.portrait-studio-preview>.btn{margin-top:22px;font-size:10px;color:#d5dec6;border-color:#a0b18d40;white-space:nowrap}.portrait-studio-controls{padding:20px 24px 24px;overflow:auto;min-width:0;min-height:0}.portrait-starting-look{display:flex;align-items:center;gap:10px;margin-bottom:18px}.portrait-starting-look>.field{flex:1;margin:0;min-width:0}.portrait-starting-look .btn{font-size:10px;margin-top:20px;padding:10px;flex-shrink:0}.portrait-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.portrait-tabs>button{flex:1;padding:11px 3px;color:var(--muted);font-size:11px;position:relative}.portrait-tabs>button[aria-selected=true]{color:var(--ink);font-weight:600}.portrait-tabs>button[aria-selected=true]:after{content:'';height:2px;background:var(--green);position:absolute;bottom:-1px;left:7px;right:7px;border-radius:2px}.portrait-options-panel[hidden]{display:none!important}.portrait-options-panel .field{margin:0 0 16px}.portrait-options-panel .form-grid{gap:0 12px}.portrait-color-field{margin:0 0 20px}.portrait-color-field>label{display:block;font-size:11px;font-weight:500;color:var(--muted);margin-bottom:10px}.portrait-palette{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.portrait-swatch{background:var(--swatch);width:24px;height:24px;border-radius:50%;border:1px solid #73826e70;box-shadow:inset 0 0 0 2px #fff1;position:relative;cursor:pointer;flex-shrink:0}.portrait-swatch[aria-pressed=true]{outline:2px solid var(--green);outline-offset:3px}.portrait-swatch[aria-pressed=true]:after{content:'';position:absolute;inset:7px;border-radius:50%;background:#fff9;box-shadow:0 0 2px #0004}.portrait-palette input[type=color]{width:29px;height:29px;padding:2px;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;margin-left:3px}.portrait-glasses{display:flex;align-items:center;gap:8px;font-size:11px;margin:0 0 20px}.portrait-editor-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;border-top:1px solid var(--line);background:var(--surface)}.portrait-editor-actions>.help{font-size:10px;max-width:220px}.portrait-editor-actions .btn{font-size:11px;min-height:40px}.wizard-portrait-disclosure{border:1px solid var(--line);border-radius:12px;background:#ffffff05;margin:6px 0 20px}.wizard-portrait-disclosure>summary{display:flex;align-items:center;gap:12px;list-style:none;padding:13px;cursor:pointer}.wizard-portrait-disclosure>summary>span{font-size:11px;font-weight:600}.wizard-portrait-disclosure>summary>small{font-size:9px;color:var(--muted);margin-left:auto}.wizard-portrait-disclosure>summary>.icon{width:14px;height:14px}.wizard-portrait-disclosure[open]>summary{border-bottom:1px solid var(--line)}.wizard-portrait-disclosure[open]>summary>.icon{transform:rotate(180deg)}.wizard-portrait-studio{display:grid;grid-template-columns:105px minmax(0,1fr);gap:18px;padding:18px 14px}.wizard-portrait-studio .portrait-large{width:105px;height:105px;position:sticky;top:0}.wizard-portrait-studio .portrait-tabs>button{font-size:10px;padding:9px 2px}.wizard-portrait-studio .portrait-starting-look{flex-wrap:wrap;gap:7px;margin-bottom:13px}.wizard-portrait-studio .portrait-starting-look .btn{margin-top:0;padding:5px;border:0}.wizard-portrait-studio .portrait-starting-look .field{flex-basis:100%}.wizard-portrait-studio .portrait-color-field{margin-bottom:16px}.wizard-portrait-studio .portrait-palette{gap:7px}.wizard-portrait-studio .portrait-swatch{width:21px;height:21px}.wizard-portrait-studio .portrait-swatch[aria-pressed=true]:after{inset:6px}
@media(max-width:700px){.portrait-modal .modal-head{padding:17px 20px 13px}.portrait-modal .modal-head h2{font-size:25px}.portrait-editor{display:flex;flex-direction:column;max-height:calc(100dvh - 91px);overflow:auto}.portrait-studio-preview{padding:20px;display:grid;grid-template-columns:100px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:18px;text-align:left;border-right:0;border-bottom:1px solid var(--line)}.portrait-studio-preview .portrait-large{width:100px;height:100px;grid-row:1/4}.portrait-studio-preview h3{text-align:left;margin:0;font-size:25px}.portrait-studio-preview p{text-align:left;margin:5px 0;font-size:10px}.portrait-studio-preview>.btn{margin:0;padding:6px 0;justify-self:start;border:0;font-size:10px}.portrait-studio-controls{overflow:visible;padding:18px 20px;flex-shrink:0}.portrait-editor-actions{position:sticky;bottom:0;padding:14px 20px;gap:10px;flex-shrink:0;margin-top:auto;box-shadow:0 -8px 20px var(--surface)}.portrait-editor-actions>.help{display:none}.portrait-editor-actions>.row{width:100%;justify-content:space-between}.wizard-portrait-studio{grid-template-columns:1fr;padding:16px;gap:16px}.wizard-portrait-studio .portrait-large{width:110px;height:110px;position:static;justify-self:center}.wizard-portrait-studio .portrait-starting-look{flex-wrap:nowrap}.wizard-portrait-studio .portrait-starting-look .field{flex-basis:auto}.wizard-portrait-studio .portrait-starting-look .btn{margin-top:20px}.wizard-portrait-disclosure>summary{gap:6px}.wizard-portrait-disclosure>summary>small{font-size:8px}.wizard-character-card>.wizard-review-portrait{display:grid!important;width:50px;height:50px}.portrait-edit-badge{width:20px;height:20px}.portrait-edit-badge .icon{width:10px;height:10px}}
@media(prefers-reduced-motion:reduce){.portrait-edit-badge{transition:none}}
.portrait-studio-preview{background:var(--surface);color:var(--ink)}.portrait-studio-preview p{color:var(--muted)}.portrait-studio-preview>.btn{color:var(--ink);border-color:var(--line)}
/* Illustrated choices make the appearance of each option visible before selection. */
dialog.portrait-modal{--bg:#315646;--surface:#315646;--ink:#f0f1e6;--muted:#bfcebb;--line:#acbea13d;--green:#c0d0a0;--pale:#a1b28220;background:linear-gradient(155deg,#385e4d,#254b3c);color:var(--ink);color-scheme:dark;border-color:#a0b09655}.portrait-modal .modal-head,.portrait-modal .portrait-studio-preview,.portrait-modal .portrait-studio-controls{background:transparent}.portrait-modal .portrait-editor-actions{background:#2c5142f2;border-color:var(--line);backdrop-filter:blur(10px)}.portrait-modal .btn.primary{color:#213c2e;background:#c0d0a0;border-color:#c0d0a0}.portrait-modal .portrait-studio-preview p{color:var(--muted)}.portrait-modal .portrait-studio-preview>.btn{color:var(--ink)}.portrait-choice-field{padding:0;margin:0 0 23px;border:0;min-width:0}.portrait-choice-field>legend{font-size:11px;font-weight:550;color:var(--muted);padding:0;margin-bottom:10px}.portrait-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.portrait-option{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid var(--line);border-radius:11px;background:#ffffff04;padding:9px 6px 8px;cursor:pointer;transition:background .15s,border-color .15s;overflow:hidden}.portrait-option:hover{background:#ffffff0b}.portrait-option:has(input:checked){border-color:var(--green);background:#aecb8018;box-shadow:inset 0 0 0 1px var(--green)}.portrait-option:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}.portrait-option>input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.portrait-option-sample{display:block;width:58px;height:58px;max-width:100%;overflow:hidden;border-radius:8px;pointer-events:none}.portrait-option-sample .character-portrait-art{width:100%;height:100%}.portrait-option-caption{font-size:9px;line-height:1.3;text-align:center;margin-top:8px;color:var(--ink);pointer-events:none}.portrait-option-check{position:absolute;right:5px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--green);color:#284333;display:none;pointer-events:none}.portrait-option-check .icon{width:11px;height:11px;display:block;margin:1px}.portrait-option:has(input:checked) .portrait-option-check{display:block}.portrait-starting-look{align-items:flex-start}.portrait-starting-look>.btn{margin-top:0;min-height:37px}.portrait-look-menu{flex:1;min-width:0}.portrait-look-menu>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:11px;cursor:pointer}.portrait-look-menu>summary .icon{width:13px;height:13px}.portrait-look-menu[open]>summary .icon{transform:rotate(180deg)}.portrait-look-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.portrait-look-option{padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:#ffffff04;display:grid;justify-items:center;gap:7px;cursor:pointer}.portrait-look-option:hover{border-color:var(--green);background:#b0c78b16}.portrait-look-option>span{display:block;width:60px;height:60px}.portrait-look-option>small{font-size:9px;color:var(--ink)}.wizard-portrait-studio .portrait-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-portrait-studio .portrait-option-sample{width:48px;height:48px}.wizard-portrait-studio .portrait-starting-look{flex-wrap:nowrap}.wizard-portrait-studio .portrait-starting-look>.btn{padding:9px 6px;margin-top:0}.wizard-portrait-studio .portrait-option-caption{font-size:8px}.wizard-portrait-studio .portrait-choice-field{margin-bottom:19px}.wizard-portrait-studio .portrait-look-option>span{width:48px;height:48px}
@media(max-width:700px){.portrait-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.portrait-option-sample{width:55px;height:55px}.portrait-option{padding:8px 4px}.portrait-option-caption{font-size:9px}.portrait-editor-actions{box-shadow:0 -8px 20px #2c5142b8}.portrait-starting-look>.btn{padding:10px;margin-top:0}.wizard-portrait-studio .portrait-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-portrait-studio .portrait-starting-look>.btn{margin-top:0}}
@media(max-width:390px){.portrait-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portrait-look-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.portrait-option{transition:none}}
.portrait-gender-field{border:0;padding:0;margin:0 0 20px;min-width:0}.portrait-gender-field>legend{font-size:12px;font-weight:600;color:var(--ink);padding:0;margin-bottom:12px}.portrait-gender-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.portrait-gender-option{position:relative;display:grid;justify-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:10px 5px;background:#ffffff04;cursor:pointer;font-size:11px;min-width:0;transition:background .18s,border-color .18s}.portrait-gender-option>input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.portrait-gender-preview{width:48px;height:48px;pointer-events:none}.portrait-gender-preview>svg{width:100%;height:100%}.portrait-gender-option:has(input:checked){border-color:var(--green);background:#bed49b18}.portrait-gender-option:has(input:focus-visible){outline:2px solid var(--green);outline-offset:3px}.portrait-gender-option>.icon{display:none;position:absolute;right:5px;top:5px;width:12px;height:12px;color:var(--green)}.portrait-gender-option:has(input:checked)>.icon{display:block}.portrait-gender-hint{color:var(--muted);font-size:10px;line-height:1.5;margin:10px 0 0}.portrait-style-filter{display:flex;gap:6px;background:#102a2428;padding:4px;border-radius:10px;margin:0 0 12px}.portrait-style-filter>button{flex:1;min-height:36px;padding:8px;font-size:11px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}.portrait-style-filter>button[aria-pressed=true]{color:var(--ink);background:#b7cc9c20;box-shadow:0 1px 4px #10231b18}.portrait-option-sample{width:68px;height:68px}.portrait-option-caption{font-size:10px;line-height:1.4}.portrait-option{padding:10px 6px}.portrait-studio-controls .portrait-tabs{position:sticky;top:-20px;z-index:2;background:#2e5142f5;backdrop-filter:blur(12px);padding-top:8px;padding-bottom:8px}.portrait-gender-option:hover{background:#ffffff0c}.portrait-option:hover .portrait-option-sample{transform:translateY(-1px)}.portrait-option-sample{transition:transform .18s}.portrait-gender-preview svg{display:block}.wizard-portrait-studio .portrait-gender-grid{gap:6px}.wizard-portrait-studio .portrait-gender-preview{width:38px;height:38px}.wizard-portrait-studio .portrait-gender-option{font-size:9px;padding:9px 3px}.wizard-portrait-studio .portrait-gender-hint{font-size:9px}
@media(max-width:600px){.portrait-gender-option{font-size:12px;min-height:80px;padding:10px 3px}.portrait-gender-preview{width:42px;height:42px}.portrait-gender-hint{font-size:12px}.portrait-gender-field>legend{font-size:13px}.portrait-style-filter>button{min-height:44px;font-size:12px}.portrait-studio-controls .portrait-tabs{top:0}.portrait-option-caption{font-size:12px}.portrait-gender-grid{gap:6px}.portrait-option-sample{height:64px;width:64px}.wizard-portrait-studio .portrait-gender-option{font-size:11px;min-height:78px}.wizard-portrait-studio .portrait-gender-preview{width:34px;height:34px}.wizard-portrait-studio .portrait-gender-hint{font-size:11px}}
@media(prefers-reduced-motion:reduce){.portrait-gender-option,.portrait-option-sample{transition:none}.portrait-option:hover .portrait-option-sample{transform:none}}
.portrait-preview-background{width:100%;margin-top:23px}.portrait-preview-background .portrait-color-field{margin:0}.portrait-preview-background .portrait-palette{gap:8px}.portrait-preview-background>div>label{text-align:left;color:inherit;font-size:10px}.portrait-studio-preview>.btn{margin-top:20px}.wizard-portrait-preview-wrap{min-width:0;align-self:start;position:sticky;top:0}.wizard-portrait-preview-wrap>.portrait-large{position:static}.wizard-portrait-preview-wrap .portrait-preview-background{margin-top:16px}.wizard-portrait-preview-wrap .portrait-palette{gap:7px}.wizard-portrait-preview-wrap .portrait-color-field>label{font-size:9px}
@media(max-width:700px){.portrait-preview-background{grid-column:1/-1;margin-top:18px}.portrait-studio-preview>.btn{margin-top:0}.portrait-preview-background .portrait-palette{gap:9px}.wizard-portrait-preview-wrap{position:static;width:100%;display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center}.wizard-portrait-preview-wrap .portrait-preview-background{grid-column:auto;margin:0}.wizard-portrait-preview-wrap .portrait-palette{gap:8px}}

@media(max-width:700px){.portrait-studio-preview>h3{grid-column:2;grid-row:1}.portrait-studio-preview>p{grid-column:2;grid-row:2}.portrait-studio-preview>.btn{grid-column:2;grid-row:3}.portrait-studio-preview>.portrait-preview-background{grid-column:1/-1;grid-row:4}}

.player-mode-control{display:grid;grid-template-columns:18px minmax(0,1fr) 12px;column-gap:10px;padding:12px 14px;min-height:58px}.player-mode-copy{display:grid;gap:4px;min-width:0}.player-mode-label{white-space:nowrap;font-size:12px;line-height:1.3;font-weight:550}.player-mode-value{font-size:10px;line-height:1.3;color:var(--muted)}.player-mode-control>.icon:last-child{width:12px;height:12px;opacity:.6}

.dice-dock .dice-label{flex:0 0 auto;gap:8px;white-space:nowrap;padding-right:2px}.dice-dock .dice-label>.icon{width:18px;height:18px}.dice-dock .dice-label>span{font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap}
.health-edit{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-size:10px;white-space:nowrap;padding:6px 0 6px 6px}.health-edit .icon{width:12px;height:12px}.health-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:end;margin-top:20px}.health-metrics>div{display:grid;gap:9px}.health-metrics>div+div{border-left:1px solid var(--line);padding-left:18px}.health-metrics span{font-size:10px;color:var(--muted);line-height:1.4}.health-metrics strong{font-family:'Libre Caslon Display',Georgia,serif;font-size:49px;font-weight:400;line-height:1}.health-metrics>div+div strong{font-size:32px;color:var(--muted);line-height:1.1}.health-card .health-bar{margin:16px 0 7px;background:var(--pale);height:7px}.health-status{font-size:10px;color:var(--muted);line-height:1.5}.health-temporary{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:9px;margin:18px 0;padding:12px 10px;border:1px solid var(--line);border-radius:10px;background:var(--pale)}.health-temporary>.icon{width:18px;height:18px;color:var(--green)}.health-temporary strong{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:550}.health-temporary strong span{font-size:15px;font-weight:650;color:var(--green);font-variant-numeric:tabular-nums}.health-temporary p{font-size:9px;color:var(--muted);line-height:1.5;margin-top:5px}.health-temporary .btn{padding:6px 7px;font-size:9px;min-height:30px;border-color:var(--line);white-space:nowrap}.health-card .health-form{display:block;margin-top:0;border-top:1px solid var(--line);padding-top:16px}.health-action-choice{border:0;padding:0;margin:0 0 15px;min-width:0}.health-action-choice legend{font-size:11px;font-weight:550;margin-bottom:10px}.health-action-choice>div{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--line);border-radius:8px;padding:4px;background:var(--bg)}.health-action-choice label{position:relative;min-width:0;cursor:pointer}.health-action-choice input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.health-action-choice span{display:block;text-align:center;padding:8px 4px;border-radius:5px;color:var(--muted);font-size:11px;line-height:1.4}.health-action-choice input:checked+span{background:var(--surface);box-shadow:0 1px 4px #18331d14;color:var(--ink);font-weight:600}.health-action-choice input:focus-visible+span{outline:2px solid var(--green);outline-offset:1px}.health-form>label{display:block;font-size:10px;color:var(--ink);line-height:1.5;margin-bottom:8px}.health-amount-entry{position:relative}.health-card .health-form .health-amount-entry input{width:100%;padding:11px 39px 11px 12px;border-radius:8px;text-align:left;font-size:16px;min-height:44px}.health-amount-entry>span{position:absolute;right:13px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--muted);pointer-events:none}.health-preview{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin:9px 0 13px;min-height:32px}.health-card .health-form>.btn{width:100%;min-height:40px;padding:10px 12px;font-size:11px;border-radius:8px}.health-form>.btn.danger{background:#c6605310;border-color:#c6605340;color:#ac4c43}.dark .health-form>.btn.danger{background:#d7836b15;color:#efaa9a;border-color:#d7836b50}.health-form>.btn:disabled{opacity:.45;cursor:not-allowed}.health-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.health-footer>button:first-child{display:inline-flex;align-items:center;gap:5px;font-size:9px;color:var(--muted);padding:5px 0}.health-footer>button:first-child .icon{width:12px;height:12px}.health-footer>button:disabled{opacity:.5;cursor:not-allowed}.health-death{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.health-death h3{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;margin-bottom:9px}.health-death .help{margin-top:8px;font-size:10px;line-height:1.6}@media(max-width:700px){.health-card{padding:18px}.health-temporary{padding:12px}.health-form>label,.health-action-choice legend{font-size:11px}.health-temporary p,.health-preview{font-size:10px}}

.health-card .health-form .health-action-choice input{width:100%;height:100%;padding:0;border:0}

/* Preset menus keep custom values available without crowding the form. */
.preset-field{min-width:0}.preset-field select{width:100%;text-overflow:ellipsis}.preset-custom{margin-top:12px;padding-left:12px;border-left:2px solid var(--sage)}.preset-custom[hidden]{display:none}.preset-custom label{font-size:11px}.preset-help{display:block;margin-top:8px;color:var(--muted);font-size:10px;line-height:1.6}.preset-field>input[type="search"]{margin-bottom:8px}

/* One continuous green surface for every dialog, in both page themes. */
#modal,#reference-modal,dialog.character-wizard-modal,dialog.portrait-modal{--bg:#315646;--surface:#315646;--ink:#f0f1e6;--muted:#c2d0bf;--line:#acbea14d;--green:#c0d0a0;--sage:#b9caa7;--pale:#a1b28220;--red:#f0b6ac;background:linear-gradient(155deg,#385e4d,#254b3c);color:var(--ink);color-scheme:dark;border-color:#a0b09655}
#modal .modal-body,#modal .wizard-rail,#modal .wizard-content,#modal .portrait-studio-preview,#modal .portrait-studio-controls{background:transparent}
#modal .modal-head,#reference-modal .modal-head{background:linear-gradient(155deg,#385e4d,#315646)}
#modal .wizard-footer,#modal .portrait-editor-actions{background:#2c5142f2;border-color:var(--line);box-shadow:0 -12px 20px #2c5142b8;backdrop-filter:blur(12px)}
#modal .wizard-mobile-steps>div{background:#315646}
#modal .btn.primary,#reference-modal .btn.primary{background:#c0d0a0;border-color:#c0d0a0;color:#213c2e}
#modal input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),#modal select,#modal textarea,#reference-modal input,#reference-modal select{background:#203f3280;color:var(--ink);border-color:var(--line)}
#modal option,#reference-modal option{background:#315646;color:var(--ink)}
#modal .chip.gold,#reference-modal .chip.gold{background:#d9c18c1c;color:#e6d6ab;border-color:#d9c18c44}
#modal:has(.roll-history){max-width:660px;border-radius:22px}
#modal:has(.roll-history) .modal-head{padding:26px 30px 0;align-items:center}
#modal:has(.roll-history) .modal-head h2{font-size:32px;letter-spacing:-.5px}
#modal:has(.roll-history) .modal-head .icon-btn{border:1px solid var(--line);border-radius:50%;width:36px;height:36px;background:#e5edda08}
#modal:has(.roll-history) .modal-body{padding:8px 30px 24px}
.history-intro{font-size:12px;color:var(--muted);margin:0 0 23px;line-height:1.6}
.history-filter{padding:0 0 20px;border-bottom:1px solid var(--line)}
.history-filter .field{margin:0}.history-filter label{font-size:11px;margin-bottom:8px}.history-filter select{font-size:13px;border-radius:11px;min-height:44px}
.history-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;color:var(--muted);font-size:11px;padding:18px 0 4px;font-variant-numeric:tabular-nums}.history-summary>span{font-size:10px}
.history-character{margin-top:14px}.history-character+.history-character{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}
.history-character-heading{display:flex;gap:11px;align-items:center;min-width:0}.history-character-heading>div:nth-child(2){flex:1;min-width:0}.history-character-heading h3{font-family:inherit;font-size:15px;line-height:1.5;margin:0;overflow-wrap:anywhere}.history-character-heading p{font-size:10px;line-height:1.6;color:var(--muted);margin:2px 0 0}
.history-character-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid #c0d0a033;border-radius:11px;background:#c0d0a00d;color:var(--green);flex-shrink:0}.history-character-mark .icon{width:21px;height:21px}
.history-count{font-size:10px;white-space:nowrap;color:var(--green);background:#c0d0a00d;border:1px solid #c0d0a026;border-radius:20px;padding:5px 10px}
.history-date{font-size:10px;color:var(--muted);margin:20px 0 9px;letter-spacing:.2px}
.history-roll{display:flex;gap:14px;padding:15px;margin:8px 0;border:1px solid #c1d1b626;border-radius:13px;background:#183b2d33;transition:background .18s,border-color .18s}.history-roll:hover{background:#183b2d55;border-color:#c1d1b64d}
.history-total{width:54px;height:54px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#c4d4ac1f,#c4d4ac09);border:1px solid #c0d0a038;color:#e2edcd;font-size:25px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums;flex-shrink:0}
.history-roll-content{flex:1;min-width:0}.history-roll-heading{display:flex;gap:12px;justify-content:space-between;align-items:baseline}.history-roll-heading h4{font-size:13px;font-weight:600;line-height:1.5;margin:0;overflow-wrap:anywhere}.history-roll-heading time{font-size:10px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.history-roll-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px;align-items:center}.history-expression{color:var(--green);font-size:11px;font-weight:500;font-variant-numeric:tabular-nums}.history-mode{font-size:9px;padding:2px 7px;border:1px solid #c0d0a030;border-radius:5px;color:var(--muted);text-transform:capitalize}
.history-calculation{margin-top:8px}.history-calculation summary{font-size:10px;color:var(--muted);cursor:pointer;width:fit-content}.history-calculation summary:hover{color:var(--ink)}.history-calculation summary:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:2px}.history-calculation p{font-size:11px;line-height:1.8;color:var(--ink);margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.history-empty{font-size:12px;color:var(--muted);padding:30px 16px;text-align:center;border:1px dashed var(--line);border-radius:12px;margin-top:18px;line-height:1.7}
.history-storage{display:flex;justify-content:center;gap:7px;align-items:center;color:var(--muted);font-size:10px;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line)}.history-storage .icon{width:14px;height:14px}
@media(max-width:520px){#modal:has(.roll-history) .modal-head{padding:20px 18px 0}#modal:has(.roll-history) .modal-body{padding:8px 18px 22px}.history-roll{padding:12px;gap:10px}.history-total{width:43px;height:48px;font-size:23px}.history-roll-heading{align-items:flex-start;gap:7px}.history-roll-heading time{font-size:9px;padding-top:3px}.history-character-heading h3{font-size:14px}}
#reference-modal .modal-head{background:linear-gradient(155deg,#385e4d,#355b49);backdrop-filter:blur(12px)}

/* A single reference card hosts separate, accessible edition choices. */
.reference-result{flex-direction:column;align-items:stretch}
.reference-card-tools{display:flex;align-items:center;gap:12px;padding:22px 22px 0;min-width:0}
.reference-card-tools .reference-symbol{flex-shrink:0}
.reference-card-tools .reference-bookmark{position:static;margin:0 0 0 auto;width:30px;height:30px;flex-shrink:0;color:var(--muted);border-radius:7px}
.reference-card-tools .reference-bookmark[aria-pressed=true]{color:var(--gold);background:transparent}
.reference-card-tools+.reference-open{padding-top:18px}
.reference-edition-toggle{display:inline-flex;gap:3px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--bg);width:fit-content;flex-shrink:0}
.reference-edition-toggle button{padding:6px 10px;border-radius:6px;font-size:10px;line-height:1.2;font-weight:600;color:var(--muted);transition:background-color .18s,color .18s,box-shadow .18s;min-height:28px}
.reference-edition-toggle button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 5px #172f2312}
.reference-edition-toggle button:hover{color:var(--ink)}
.reference-edition-toggle button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.reference-article>.reference-edition-toggle{margin:0 0 22px;background:#21433380;border-color:var(--line)}
.reference-article>.reference-edition-toggle button{padding:8px 18px;font-size:12px}
.reference-article>.reference-edition-toggle button[aria-pressed=true]{background:#c0d0a0;color:#213c2e;box-shadow:0 2px 8px #12251c20}
@media(max-width:640px){.reference-card-tools{padding:17px 17px 0;gap:10px}.reference-card-tools+.reference-open{padding-top:16px}.reference-edition-toggle button{padding:6px 9px}}

/* Spellcasting values share one clear grid; slot groups have their own space. */
.slot-card{padding:24px;border-radius:16px}
.slot-card .card-header{margin-bottom:23px;gap:16px;align-items:center}
.slot-card .card-title{gap:11px}.slot-card .card-title>.icon{width:31px;height:31px;padding:7px;border-radius:10px;background:var(--pale);color:var(--green)}
.casting-configure{background:transparent;font-size:11px;padding:8px 11px;border-radius:8px;gap:7px}.casting-configure .icon{width:15px;height:15px}
.slot-card .spell-summary-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 25px}
.casting-stat{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left;min-width:0;padding:17px 15px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);gap:9px}
.casting-stat-label{font-size:10px;font-weight:550;line-height:1.5;color:var(--muted);white-space:nowrap}
.slot-card .casting-stat-value{font-family:'Libre Caslon Display',Georgia,serif;font-size:34px;font-weight:400;line-height:1.05;letter-spacing:-.5px;color:var(--ink);display:block}
.casting-stat-note{font-size:10px;line-height:1.6;color:var(--muted);display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:auto}.casting-stat-note .icon{width:13px;height:13px}
.casting-attack{cursor:pointer;transition:background-color .2s,border-color .2s,transform .2s}
.casting-attack:hover{background:var(--pale);border-color:var(--green);transform:translateY(-2px)}.casting-attack .casting-stat-note{color:var(--green);font-weight:550}
.casting-slots-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;padding-top:20px;border-top:1px solid var(--line)}.casting-slots-heading h3{font-size:13px;font-weight:600}.casting-slots-heading>span{font-size:10px;color:var(--muted)}
.slot-card .slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.casting-slot-group{padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg);min-width:0}
.casting-slot-label{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;font-size:12px}.casting-slot-label strong{font-weight:550}.casting-slot-label>span{font-size:14px;font-weight:600;color:var(--green);font-variant-numeric:tabular-nums}.casting-slot-label small{font-size:11px;font-weight:400;color:var(--muted)}
.casting-slot-group .pips{display:flex;flex-wrap:wrap;gap:9px;margin:0;min-height:28px}
.casting-slot-group .pip{width:28px;height:28px;flex-shrink:0;border-width:1.5px;background:transparent;border-color:var(--muted);position:relative;transition:background-color .18s,border-color .18s,transform .18s}
.casting-slot-group .pip.full{border-color:var(--green);background:var(--pale);box-shadow:none}.casting-slot-group .pip.full:after{content:"";position:absolute;border-radius:50%;inset:6px;background:var(--green)}
.casting-slot-group .pip:hover{border-color:var(--green);transform:scale(1.08)}
.casting-slot-help{margin:13px 0 0;font-size:10px;line-height:1.7;color:var(--muted)}.casting-no-slots{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.7;padding:18px;border:1px dashed var(--line);border-radius:12px}
@media(max-width:640px){.slot-card{padding:18px}.slot-card .card-header{gap:10px;margin-bottom:20px}.slot-card .card-title h2{font-size:25px}.slot-card .spell-summary-stats{gap:8px;margin-bottom:20px}.casting-stat{padding:14px 10px 12px;gap:10px}.casting-stat-label{font-size:9px;white-space:normal;min-height:27px}.slot-card .casting-stat-value{font-size:32px}.casting-stat-note{font-size:9px;min-height:29px}.casting-slot-group{padding:14px 12px}.casting-slot-group .pips{gap:7px}.casting-slot-group .pip{width:26px;height:26px}.casting-configure{font-size:10px;padding:7px 9px}.casting-configure .icon{width:13px;height:13px}}
@media(max-width:360px){.slot-card .slot-grid{grid-template-columns:minmax(0,1fr)}.casting-stat{padding:12px 8px}.slot-card .casting-stat-value{font-size:29px}.slot-card .card-title>.icon{display:none}}
@media(prefers-reduced-motion:reduce){.casting-attack:hover,.casting-slot-group .pip:hover{transform:none}}
/* Player modes: presentation changes without separate character data. */
.player-mode-options{display:grid;gap:12px;margin:20px 0}
#modal:has(.player-mode-options){width:min(920px,calc(100vw - 32px));max-width:920px}
#modal .player-mode-options{grid-template-columns:repeat(3,minmax(0,1fr))}
#modal .player-mode-option{flex-direction:column;align-items:flex-start;padding:20px;position:relative}
#modal .mode-option-title{align-items:flex-start;flex-wrap:wrap}
#modal .mode-option-title .chip{padding:3px 7px;position:absolute;right:16px;top:24px}
#modal .mode-option-body>p{min-height:62px}
@media(max-width:750px){#modal .player-mode-options{grid-template-columns:1fr}#modal .player-mode-option{flex-direction:row}#modal .mode-option-body>p{min-height:0}#modal .mode-option-title{align-items:center}}
.player-mode-option{display:flex;gap:16px;width:100%;padding:20px;text-align:left;border:1px solid var(--line);border-radius:16px;background:transparent;color:var(--ink);transition:background .18s,border-color .18s}
.player-mode-option:hover{background:var(--pale)}
.player-mode-option.selected{border-color:var(--green);background:var(--pale);box-shadow:inset 0 0 0 1px var(--green)}
.mode-option-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;background:var(--pale);border:1px solid var(--line);border-radius:12px;color:var(--green)}
.mode-option-icon svg{width:22px;height:22px}
.mode-option-body{flex:1;min-width:0}
.mode-option-title{display:flex;gap:12px;align-items:center;justify-content:space-between}
.mode-option-title>strong{font-family:'Libre Caslon Display',Georgia,serif;font-size:27px;font-weight:400}
.mode-option-title .chip{font-size:10px;gap:5px}
.mode-option-title .chip svg{width:13px;height:13px}
.mode-option-body>small{display:block;margin:4px 0 10px;color:var(--green);font-weight:600}
.mode-option-body>p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.mode-option-body ul{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px;font-size:11px;color:var(--ink)}
.mode-option-body li{padding-left:14px;position:relative}
.mode-option-body li:before{content:'•';position:absolute;left:0;color:var(--green)}
.mode-coach,.mode-session{margin:0 0 24px;border:1px solid var(--line);border-radius:18px;padding:22px;background:var(--surface)}
.mode-coach{background:var(--pale)}
.mode-coach-heading{display:flex;gap:14px;align-items:flex-start}
.mode-coach-heading>svg{width:23px;height:23px;flex-shrink:0;margin-top:3px;color:var(--green)}
.mode-coach h3{font-family:'Libre Caslon Display',Georgia,serif;font-size:24px;font-weight:400;margin:0 0 6px}
.mode-coach p{font-size:12px;line-height:1.7;color:var(--muted);margin:0}
.mode-coach-actions,.mode-tool-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.mode-coach-actions .btn,.mode-tool-actions .btn{padding:10px 14px;font-size:11px;gap:8px;white-space:nowrap}
.mode-learning{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}
.mode-learning summary{display:flex;gap:15px;justify-content:space-between;font-size:12px;font-weight:600;cursor:pointer}
.mode-learning summary:before{content:'+';color:var(--green)}
.mode-learning[open] summary:before{content:'−'}
.mode-learning summary span{margin-left:auto;color:var(--muted);font-size:10px;font-weight:400;white-space:nowrap}
.mode-learning>p{margin:14px 0}
.mode-learning>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mode-learning button:not(.btn){display:flex;align-items:center;justify-content:space-between;text-align:left;padding:12px;border-radius:9px;border:1px solid var(--line);font-size:11px;background:var(--surface)}
.mode-learning button>span{display:flex;align-items:center;gap:9px}
.mode-learning svg{width:16px;height:16px;flex-shrink:0}
.mode-learning>.btn{margin-top:12px}
.mode-session-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mode-session-heading>span{display:flex;align-items:center;gap:9px;margin-right:auto;font-size:13px}
.mode-session-heading svg{width:17px;height:17px;color:var(--green)}
.mode-session-heading .btn{padding:6px 8px;font-size:10px;gap:5px}
.mode-resource-summary{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:17px;border-top:1px solid var(--line);padding-top:15px;font-size:11px;color:var(--muted)}
.mode-resource-summary strong{font-weight:600;color:var(--ink);margin-right:4px}
.mode-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}
.mode-action-option{display:flex;flex-direction:column;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:14px;padding:20px;text-align:left;background:var(--pale);color:var(--ink)}
.mode-action-option>svg{width:22px;height:22px;color:var(--green)}
.mode-action-option>strong{font-size:14px}
.mode-action-option>span{color:var(--muted);font-size:12px;line-height:1.7}
.mode-action-option>svg:last-child{width:17px;height:17px;align-self:flex-end;margin-top:auto}
.mode-roll-state{display:flex;gap:16px;align-items:center;justify-content:space-between;font-size:12px;margin:20px 0}
.mode-roll-state select{max-width:210px}
.mode-roll-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0 25px}
.mode-roll-grid button{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:13px 15px;text-align:left;color:var(--ink)}
.mode-roll-grid button>span{flex:1;font-size:12px}
.mode-roll-grid button>strong{color:var(--green);font-size:15px}
.mode-roll-grid svg{width:17px;height:17px;color:var(--muted)}
.mode-roll-grid button:hover,.mode-action-option:hover{background:var(--pale);border-color:var(--green)}
.mode-shortcut-list{margin:20px 0}
.mode-shortcut-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}
.mode-shortcut-list dd{margin:0;font-size:10px;color:var(--muted);white-space:nowrap}
.mode-shortcut-list kbd{padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink)}
.mode-roll-details{width:100%;max-width:420px;margin:16px auto 0;text-align:center}
.mode-roll-details summary{font-size:12px;cursor:pointer;color:var(--green);padding:8px}
.mode-roll-details p{font-size:12px!important;line-height:1.7}
.mode-spell-guide summary{font-family:'Libre Caslon Display',Georgia,serif;font-size:24px;cursor:pointer}
.mode-spell-guide details>p{margin-top:15px}
.mode-wizard-help summary{justify-content:flex-start;gap:8px}
.reference-help summary{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;cursor:pointer}
.reference-help summary svg{width:19px;height:19px;flex-shrink:0}
body[data-player-mode="expert"] .expert-tools{padding:14px 18px;margin-bottom:16px}
body[data-player-mode="expert"] .mode-tool-actions{margin-top:10px}
body[data-player-mode="expert"] .main .card{padding:18px}
body[data-player-mode="expert"] .card-header{margin-bottom:15px}
body[data-player-mode="expert"] .main .card-title h2{font-size:24px}
body[data-player-mode="expert"] .skill-row{min-height:30px;padding-top:4px;padding-bottom:4px}
body[data-player-mode="expert"] .action-row{padding-top:10px;padding-bottom:10px}
body[data-player-mode="expert"] .abilities{gap:8px}
body[data-player-mode="expert"] .ability{padding-top:12px;padding-bottom:12px}
body[data-player-mode="expert"] .ability .eyebrow{font-size:9px;letter-spacing:.04em}
body[data-player-mode="expert"] .ability .mod{font-size:29px}
body[data-player-mode="expert"] .ability .score{font-size:12px}
body[data-player-mode="expert"] .main .feature-card p{font-size:12px;line-height:1.7}
body[data-player-mode="expert"] .character-wizard-modal .wizard-content{padding-top:24px}
body[data-player-mode="expert"] .wizard-section-heading{margin-bottom:24px}
body[data-player-mode="expert"] .wizard-section-heading h3{font-size:34px}
@media(max-width:650px){.mode-coach,.mode-session{padding:17px;border-radius:14px}.mode-learning>div{grid-template-columns:1fr}.mode-coach-actions .btn,.mode-tool-actions .btn{padding:10px 12px}.player-mode-option{padding:16px;gap:12px}.mode-option-icon{flex-basis:34px;height:34px;border-radius:10px}.mode-option-title>strong{font-size:24px}.mode-action-grid{grid-template-columns:1fr}.mode-action-option{gap:8px;padding:17px}.mode-session-heading>.btn{min-height:30px}.mode-resource-summary{gap:10px 14px}.mode-shortcut-list>div{font-size:11px}.mode-roll-grid button{padding:12px 10px;gap:7px}.mode-roll-grid button>span{font-size:11px}.mode-option-title{flex-wrap:wrap}}
@media(max-width:360px){.mode-roll-grid{grid-template-columns:1fr}.mode-coach-actions .btn,.mode-tool-actions .btn{flex:1}.mode-learning summary{flex-wrap:wrap}.mode-learning summary span{margin-left:0}.mode-shortcut-list>div{flex-wrap:wrap}}
@media print{.mode-coach,.mode-session{display:none!important}}

.mode-result-help{padding:12px 0;margin:10px 0;border-top:1px solid var(--line)}.mode-result-help summary{font-size:12px;color:var(--green);cursor:pointer}.mode-result-help p{margin-top:12px}

@media(max-width:750px){#modal .mode-option-title .chip{position:static;margin-left:auto}#modal .mode-option-title{gap:7px}}

/* First visit: three explicit choices, with no default selection. */
#modal.player-mode-onboarding .modal-head{padding-bottom:12px}
#modal.player-mode-onboarding .mode-welcome{margin:0;color:var(--muted)}
#modal.player-mode-onboarding .player-mode-option{background:rgba(255,255,255,.035);border-color:rgba(217,233,207,.2);padding:24px;gap:20px}
#modal.player-mode-onboarding .player-mode-option:hover{background:rgba(255,255,255,.085);border-color:var(--green)}
#modal.player-mode-onboarding .player-mode-option:focus-visible{outline:2px solid var(--green);outline-offset:3px}
#modal.player-mode-onboarding .mode-option-body>p{min-height:80px}
.mode-option-choose{display:flex;align-items:center;gap:8px;margin-top:20px;color:var(--green);font-size:12px;font-weight:600}
.mode-option-choose svg{width:15px;height:15px;margin-left:auto}
#modal.player-mode-onboarding .footnote{text-align:center;margin:22px 0 0}
@media(max-width:750px){#modal.player-mode-onboarding .player-mode-option{padding:18px;gap:14px}#modal.player-mode-onboarding .mode-option-body>p{min-height:0}#modal.player-mode-onboarding .mode-option-choose{margin-top:10px}#modal.player-mode-onboarding .mode-option-body>small{margin-bottom:6px}}
@media(max-width:600px){#modal.player-mode-onboarding .modal-head h2{font-size:30px}#modal.player-mode-onboarding .modal-body{padding-top:12px}#modal.player-mode-onboarding .player-mode-options{gap:10px;margin:16px 0}#modal.player-mode-onboarding .player-mode-option{padding:15px}#modal.player-mode-onboarding .mode-option-body>p{font-size:12px;line-height:1.5}#modal.player-mode-onboarding .footnote{margin-top:16px}}

#modal.player-mode-onboarding #player-mode-heading:focus{outline:none}
/* Background guidance shares the wizard's palette and keeps each choice self-contained. */
.catalog-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;flex-wrap:wrap}
.catalog-label-row label{margin:0}
.catalog-choose-help{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--pale);color:var(--ink);font-size:12px;font-weight:600}
.catalog-choose-help .icon{width:16px;height:16px}
.background-guide{max-width:760px;margin:auto}
.background-guide-progress{display:flex;align-items:center;gap:14px;margin:0 0 28px;color:var(--muted);font-size:12px}
.background-guide-progress>span{display:flex;align-items:center;gap:8px;white-space:nowrap}
.background-guide-progress>span>span{padding-left:4px}
.background-guide-progress>span.current{color:var(--ink);font-weight:650}
.background-guide-progress>span.complete{color:var(--green)}
.background-guide-progress .icon{width:16px;height:16px}
.background-guide-progress>i{height:1px;flex:1;background:var(--line)}
.background-guide-intro{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.background-guide-intro h3{font-family:Georgia,serif;font-size:29px;font-weight:400;line-height:1.2;margin:0 0 10px;text-wrap:pretty}
.background-guide-intro p{color:var(--muted);line-height:1.65;margin:0;font-size:14px}
.background-guide-emblem{display:grid;place-items:center;flex:0 0 56px;height:56px;border:1px solid var(--line);border-radius:16px;background:var(--pale);color:var(--green)}
.background-guide-emblem .icon{width:28px;height:28px}
.background-path-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.background-path{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;text-align:left;min-width:0;padding:20px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#ffffff09,#ffffff03);color:var(--ink)}
.background-path-art{display:grid;place-items:center;width:48px;height:48px;border:1px solid #bbccaa44;border-radius:14px;background:#bdd19e15;color:var(--green)}
.background-path-art .icon{width:25px;height:25px}
.background-path>strong{font-size:15px;line-height:1.4;font-weight:650}
.background-path>span:not(.background-path-art){color:var(--muted);font-size:12px;line-height:1.5}
.background-path>.icon{position:absolute;right:17px;top:34px;width:16px;height:16px;color:var(--muted)}
.background-path:hover{border-color:var(--green);background:#b9caa715}
.background-guide-back.btn{margin:-8px 0 20px;min-height:44px;font-size:12px;padding-left:0}
.background-suggestions{display:grid;gap:14px}
.background-suggestion{border:1px solid var(--line);border-radius:16px;padding:22px;background:linear-gradient(145deg,#ffffff09,#ffffff03)}
.background-suggestion-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.background-suggestion h4{font:400 27px/1.2 Georgia,serif;margin:0;color:var(--ink);overflow-wrap:anywhere}
.background-suggestion-heading>span{padding:4px 8px;font-size:11px;border:1px solid var(--line);border-radius:7px;color:var(--muted);flex-shrink:0}
.background-suggestion p{color:var(--muted);font-size:14px;line-height:1.65;margin:12px 0 8px}
.background-suggestion small{display:block;font-size:11px;color:var(--muted);line-height:1.5}
.background-suggestion-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
.background-suggestion-actions .btn{min-height:44px;font-size:12px;white-space:normal}
.background-guide-note{color:var(--muted);font-size:12px!important;line-height:1.7;margin:24px 0 10px}
.background-guide-dismiss.btn{min-height:44px;font-size:12px;padding-left:0}
.background-guide-empty{padding:20px;border:1px solid var(--line);border-radius:16px}
@media(max-width:700px){.background-guide-progress{margin-bottom:22px;gap:10px;font-size:11px}.background-guide-intro h3{font-size:25px}.background-path-grid{gap:10px}.background-path{padding:16px 13px;gap:9px}.background-path>strong{font-size:13px}.background-path>span:not(.background-path-art){font-size:11px}.background-path>.icon{top:32px;right:10px}.background-path-art{width:44px;height:44px}.background-suggestion{padding:18px}.background-suggestion h4{font-size:25px}.background-suggestion-actions .btn.primary{flex:1}.background-guide-intro{gap:12px}.background-guide-emblem{flex-basis:48px;height:48px}}
