:root{color-scheme:dark;--bg:#071323;--ink:#0b1c32;--ink2:#101f35;--card:#10233c;--card2:#152b47;--hover:#1b3958;--border:#2c4665;--border2:#405879;--text:#eff5fe;--muted:#a4b7cb;--dim:#7f99b7;--blue:#74c6ff;--blue2:#3b9ee9;--ice:#d5e4f2;--purple:#acb8ff;--green:#83dabe;--red:#ff8396;--amber:#f5ce8d;--r:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:22px}body{margin:0;background:var(--bg);font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--text);min-width:320px;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--blue)}[hidden]{display:none!important}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{letter-spacing:-.04em}strong{font-weight:790}.stars{z-index:-1;position:absolute;top:0;left:0;width:100%;height:760px;pointer-events:none;background:radial-gradient(ellipse at 84% 9%,#1c4879 0,transparent 46%),radial-gradient(ellipse at 12% 36%,#152d4f 0,transparent 47%),linear-gradient(#081525,transparent)}.shell{width:min(1210px,calc(100% - 38px));margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:86px;border-bottom:1px solid #2c476073;gap:16px}.logo{display:inline-flex;align-items:center;gap:11px;font-size:22px;font-weight:950;text-decoration:none;color:white;letter-spacing:-.07em;white-space:nowrap}.logo small{font-size:12px;color:#91a8bc;letter-spacing:0;margin-left:2px}.logo-blue{color:var(--blue)}.logo-icon{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid #526c8c;border-radius:13px;background:linear-gradient(140deg,#1d4566,#122139);font-size:26px;box-shadow:inset 0 0 16px #5c95be22}.sparkle{font-size:15px;position:absolute;top:-7px;right:-7px;color:var(--ice)}.header-right{display:flex;align-items:center;gap:22px;font-size:12px;font-weight:700;color:var(--muted)}.header-link{text-decoration:none;border:1px solid #44627e;border-radius:10px;padding:9px 15px}.header-link:hover{background:#203c5b}.privacy-note{color:#c3d5e9}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:20px;padding:59px 18px 56px;align-items:center}.eyebrow,.kicker{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}.small-star{font-size:15px;color:var(--ice);padding-right:5px}.hero h1{font-size:clamp(38px,5vw,67px);letter-spacing:-.07em;line-height:1.075;margin:17px 0 21px;font-weight:920}.hero h1 span{color:var(--blue)}.hero-copy>p{max-width:660px;color:#ccdced;font-size:16px;line-height:1.73;margin-bottom:12px}.hero-copy>p strong{color:white}.hero-foot{display:flex;align-items:center;flex-wrap:wrap;gap:17px;margin-top:27px}.hero-foot>span{color:#9fb2c5;font-size:12px}.primary-link{padding:12px 18px;background:#79caff;color:#09192c;border-radius:11px;text-decoration:none;font-weight:900;display:inline-flex;gap:17px;align-items:center;box-shadow:0 8px 32px #285a8048}.primary-link:hover,.btn.primary:hover{filter:brightness(1.09)}.hero-emblem{height:320px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.moon-ring{position:relative;width:290px;height:290px;border-radius:50%;display:grid;place-items:center;border:1px solid #638eb5a1;background:radial-gradient(circle at 44% 43%,#224266c9,#11203a 65%,#0d1b32 74%);box-shadow:0 0 80px #368ed82a,inset 0 0 55px #3a94d52d}.moon-ring:before,.moon-ring:after{content:"";position:absolute;border:1px dashed #6b93b75e;border-radius:50%;inset:14px;transform:rotate(-15deg)}.moon-ring:after{inset:31px;border-style:solid;border-color:#456c945c}.moon-ring-two{position:relative;display:flex;align-items:center;justify-content:center;width:220px;height:220px;border-radius:50%;z-index:1}.wizard-goat{font-size:117px;display:block;filter:drop-shadow(0 9px 14px #05142e);transform:scaleX(-1)}.wizard-hat{position:absolute;font-size:38px;left:35px;top:26px;color:#c9e8ff;text-shadow:0 0 20px #80dcff}.floating-die{position:absolute;right:4px;top:29px;width:55px;height:55px;display:grid;place-items:center;clip-path:polygon(50% 0%,96% 26%,96% 74%,50% 100%,4% 74%,4% 26%);background:#76c5fc;color:#06203c;font-size:18px;font-weight:950;transform:rotate(20deg)}.orbit-star{position:absolute;color:#d4edff;text-shadow:0 0 20px #88c7f9}.s1{font-size:35px;left:8px;top:40px}.s2{font-size:20px;right:5px;bottom:63px}.s3{font-size:22px;right:40px;top:9px}.emblem-caption{position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#9cbada;font-size:10px;font-weight:950;letter-spacing:.2em}.workbench{padding:27px 0 28px;border-top:1px solid #284762}.workbench-top{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:0 0 25px}.workbench h2{font-size:clamp(26px,3.3vw,39px);margin:8px 0 0}.local-caption{font-size:12px;color:var(--muted);white-space:nowrap}.tabs-wrap{overflow-x:auto;border-bottom:1px solid var(--border2);scrollbar-color:#52799b #10243b}.tabs{display:flex;gap:5px;min-width:max-content}.tab{position:relative;display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;border-bottom:0;background:#101f35;color:#a7bfd4;padding:15px 22px 16px;border-radius:13px 13px 0 0;font-size:14px;font-weight:850;white-space:nowrap}.tab:hover{background:#1a3551;color:white}.tab.active{background:linear-gradient(180deg,#183a60,#15314e);color:#f5f9ff;border-color:#416e99;box-shadow:inset 0 3px 0 var(--blue)}.tab-prefix{font-size:10px;border:1px solid #496a8a;background:#0a223c;border-radius:6px;padding:2px 5px;color:#a0cbed}.default-star{color:var(--amber);font-size:11px}.edition-year{font-size:10px;color:var(--muted)}.dm-tab{margin-left:3px}.system-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 18px;background:#11233a;border:1px solid #2c4969;border-top:0;border-radius:0 0 12px 12px;color:#cadbec}.system-banner>div{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.system-banner strong{color:white}.system-banner #system-caption{color:var(--muted);font-size:12px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #80d8bb70}.saved-badge{font-size:11px;color:#9ab4c9}.quicklinks{display:flex;flex-wrap:wrap;gap:9px;padding:21px 0 6px}.quicklinks a{color:#bad1e6;text-decoration:none;background:#0f2137;border:1px solid #2e4966;padding:7px 12px;border-radius:100px;font-size:12px;font-weight:750}.quicklinks a:hover{background:#213c59}.tool-section{padding:42px 0 18px;scroll-margin-top:25px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading h3{font-size:clamp(27px,3.1vw,36px);line-height:1.15;margin:6px 0 7px}.section-heading p{font-size:13px;color:var(--muted);max-width:660px;margin:0}.section-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #426382;background:#172e49;padding:9px 14px;color:white;font-weight:800;font-size:13px;border-radius:10px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{background:#274969}.btn.primary{background:#75c7fa;color:#08213a;border-color:#75c7fa}.btn.secondary{background:#204268;border-color:#4e7aa4}.btn.secondary:hover{background:#2a5482}.btn.subtle{background:transparent;border-color:#3d5775;color:#bad0e3}.btn.subtle:hover{background:#1a324d}.btn.dangerous{color:#ffc2c9;border-color:#9b4959;background:#4c2637}.btn.dangerous:hover{background:#653349}.btn:disabled{opacity:.35;cursor:not-allowed}.tool-tip{margin-top:12px;color:#90a9c1;font-size:12px;line-height:1.6}.dice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.die-card{background:linear-gradient(154deg,#152c48,#101f36);border:1px solid #385473;border-radius:14px;padding:17px;min-width:0;box-shadow:0 8px 20px #020b188c}.die-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.die-name{font-size:26px;font-weight:950;letter-spacing:-.06em;line-height:1}.die-glyph{display:grid;place-items:center;font-size:13px;font-weight:950;width:37px;height:37px;color:var(--die-color);border:1px solid var(--die-color);background:#06172e;border-radius:9px;transform:rotate(12deg)}.die-inputs{display:flex;gap:7px;align-items:flex-end}.die-inputs label{font-size:10px;color:var(--muted);font-weight:800;letter-spacing:.05em;text-transform:uppercase;display:flex;flex-direction:column;gap:5px;min-width:0}.die-inputs input{width:76px;height:37px}.die-inputs button{flex:1;min-width:57px;border:0;border-radius:8px;background:var(--die-color);color:#0b1a2d;font-weight:900;height:37px}.die-inputs button:hover{filter:brightness(1.12)}.die-result{display:flex;align-items:center;gap:10px;min-height:45px;margin-top:9px}.die-total{font-size:28px;font-weight:950;letter-spacing:-.05em;color:#f8fbff;white-space:nowrap}.die-status{font-size:11px;color:#819bb7}.die-rolls{display:flex;gap:5px;flex-wrap:wrap;max-height:87px;overflow:auto}.single-result{border:1px solid #4d7394;background:#1d3d5d;padding:1px 6px;font-size:11px;border-radius:5px;font-weight:800}.die-equation{font-size:11px;min-height:17px;color:#a5c5db;margin-top:7px}.hp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.hp-card,.resource-box,.combat-card,.combat-log-container{background:linear-gradient(150deg,#142a45,#101f35);border:1px solid #34506f;border-radius:var(--r);padding:19px;min-width:0}.card-title{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:14px}.card-title strong{font-size:14px}.icon-button{border:1px solid #365573;background:#10243d;border-radius:9px;color:#b8d2e6;padding:5px 9px;min-height:29px}.icon-button:hover{background:#29435c}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field label,.field-label{font-size:10px;text-transform:uppercase;color:#a7bfd5;letter-spacing:.1em;font-weight:850}.field>input,.field>select,.field>textarea,.fields-inline input,.num-field{width:100%;height:39px;background:#081b30;border:1px solid #43617f;border-radius:8px;color:#f0f7ff;padding:7px 9px;min-width:0}.field>textarea{height:auto;resize:vertical}.fields-inline{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.hp-name{width:100%;border:1px solid #42627e;background:#091d32;color:#fff;border-radius:9px;padding:10px;font-weight:800}.hp-numbers{display:flex;justify-content:space-between;align-items:center;margin-top:13px;font-size:12px;color:var(--muted)}.hp-numbers strong{color:white;font-size:17px}.hp-track{height:13px;position:relative;overflow:hidden;background:#2e3c52;border:1px solid #47617c;border-radius:100px;margin-top:8px}.hp-fill{height:100%;width:0;background:linear-gradient(90deg,#4a9f89,#8ae6c8);border-radius:100px;transition:width .2s}.hp-fill.low{background:linear-gradient(90deg,#cf516d,#ff94a6)}.hp-fill.mid{background:linear-gradient(90deg,#d6a04d,#f4d18b)}.hp-temp-mark{position:absolute;right:3px;top:-1px;color:#f6f1bb;font-size:10px}.hp-actions{display:flex;align-items:end;gap:8px;margin-top:15px;flex-wrap:wrap}.hp-actions .field{width:92px}.hp-actions button{flex:1}.segmented{display:inline-flex;gap:4px;background:#08182b;border:1px solid #3a5976;border-radius:12px;padding:4px;white-space:nowrap}.segmented button{border:0;border-radius:9px;padding:8px 13px;background:transparent;color:#a6c3dc;font-size:12px;font-weight:800}.segmented button[aria-pressed=true]{background:#256095;color:white;box-shadow:0 0 0 1px #68b7e6}.resource-box{padding:21px}.resource-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap}.resource-top .field{min-width:130px}.resource-top>p{color:var(--muted);max-width:550px;font-size:12px;margin:0}.pool-head{display:flex;align-items:flex-end;gap:21px;flex-wrap:wrap;margin-bottom:14px}.pool-counter{font-size:46px;font-weight:950;line-height:1;color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.05em}.pool-counter small{color:#92aec7;font-size:21px}.pool-label{font-size:10px;font-weight:850;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:6px}.pool-meter{height:13px;background:#263b52;border-radius:99px;overflow:hidden;margin:18px 0 13px;border:1px solid #405d7c}.pool-meter>span{display:block;height:100%;background:linear-gradient(90deg,#3a8bd0,#a5d6ff);border-radius:99px;transition:width .15s}.resource-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:13px}.resource-buttons button{flex:0 0 auto}.cast-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px;margin-top:17px}.cast-button{padding:10px 4px;background:#0d2845;border:1px solid #486a8a;border-radius:9px;color:#f2f8ff;font-weight:800;text-align:center;font-size:13px}.cast-button span{display:block;color:#a4c1dd;font-weight:650;font-size:10px}.cast-button:hover{background:#2e5579}.cast-button:disabled{opacity:.3}.slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:16px}.slot-card{background:#0c2036;border:1px solid #3d5875;padding:13px;border-radius:12px;text-align:center}.slot-card h4{font-size:13px;margin:0 0 6px}.slot-number{font-size:24px;font-weight:900;color:#bddfff}.slot-number small{font-size:13px;color:#89a4bc}.slot-edit{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px 0}.slot-edit input{width:65px;height:33px;text-align:center}.slot-ops{display:flex;gap:5px}.slot-ops button{flex:1;border:1px solid #4e6e8e;background:#234c71;color:white;border-radius:7px;height:32px}.slot-ops button:disabled{opacity:.3}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:17px 0;border:1px solid #354f6e;border-radius:12px;overflow:hidden}.summary-stat{padding:16px;background:#102841;min-width:0;border-right:1px solid #354f6e}.summary-stat:last-child{border:0}.summary-stat small{display:block;font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;color:#a6bfd4}.summary-stat strong{display:block;font-size:27px;font-weight:950;letter-spacing:-.045em}.summary-stat strong.negative{color:var(--red)}.summary-stat strong.positive{color:var(--green)}.ability-table-wrap{overflow-x:auto}.ability-table{width:100%;border-collapse:collapse;min-width:710px}.ability-table th{text-align:left;text-transform:uppercase;font-size:10px;letter-spacing:.08em;color:#b0c6d8;padding:11px 9px;background:#1b3957}.ability-table td{padding:9px;border-top:1px solid #294660;font-size:13px}.ability-table tr:nth-child(even) td{background:#fff1}.ability-table td strong{color:#dceeff}.ability-table input{max-width:78px;height:37px;text-align:center}.ability-table .final-score{font-weight:900;font-size:17px;color:var(--green)}.ability-table .cost{font-weight:800}.ability-config{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.ability-config .field{min-width:145px}.ability-config .field.wide{flex:1;min-width:220px}.ability-config .field.small{min-width:120px}.pointbuy-message{font-size:12px;color:var(--muted);margin:13px 0 0}.pointbuy-message.warning{color:var(--amber)}.boost-grid{display:grid;grid-template-columns:110px repeat(6,minmax(0,1fr));gap:1px;background:#344d68;border:1px solid #344d68;border-radius:12px;overflow:hidden;margin-top:15px}.boost-cell{background:#112942;padding:10px;text-align:center}.boost-cell.heading{background:#1a3958;font-weight:900;color:#bddeee;font-size:11px}.boost-cell.side{text-align:left;font-size:12px;font-weight:800;display:flex;align-items:center}.boost-cell input{width:19px;height:19px;accent-color:#76c7fd;cursor:pointer}.boost-cell input:disabled{opacity:.4;cursor:not-allowed}.boost-score{font-size:19px;font-weight:900;color:#a7e5c8}.boost-note{font-size:12px;color:var(--muted);margin-top:16px}.calc-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.calc-controls .field{min-width:125px}.calc-controls .field.wide{flex:1;min-width:210px}.calculator-output{margin-top:19px}.breakdown{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:12px}.breakdown-cell{background:#0d253f;border:1px solid #3b5672;border-radius:10px;padding:12px;text-align:center}.breakdown-cell small{display:block;color:#9db4c8;font-size:11px}.breakdown-cell strong{display:block;font-size:21px;font-weight:900}.breakdown-cell .mini{font-size:10px;color:#80d8c4}.calc-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px}.calc-foot p{margin:0;color:var(--muted);font-size:12px;max-width:750px}.slot-conversion{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:16px}.slot-conversion .field{padding:10px;border:1px solid #304e6c;background:#0e243d;border-radius:11px}.slot-conversion .field label{font-size:10px}.slot-conversion .field input{margin-top:5px}.dm-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#10253e;border:1px solid #365775;border-radius:13px;padding:12px;margin-bottom:12px}.round-display{display:flex;align-items:center;gap:10px;margin-right:auto}.round-display>span:first-child{font-size:10px;font-weight:900;color:var(--muted)}.round-display strong{font-size:26px}.round-display>span:last-child{font-size:12px;color:#c7dcf1;min-width:130px}.combat-list{display:flex;flex-direction:column;gap:10px}.combat-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;border-left:5px solid #579bdf;padding:13px}.combat-card.npc{border-left-color:#ec647c}.combat-card.turn-active{box-shadow:0 0 0 1px #8ed3ff,inset 0 0 0 1px #8ed3ff,0 0 30px #20547b47}.drag-handle{align-self:center;cursor:grab;touch-action:none;user-select:none;color:#93b1ca;font-size:24px;border:0;background:none;padding:4px}.drag-handle:active{cursor:grabbing}.combat-main{min-width:0}.combat-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.combat-type{border-radius:8px;font-size:11px;font-weight:950;padding:6px 9px;background:#173f69;border:1px solid #487eae;color:#b8e0ff}.combat-type.npc{background:#522536;border-color:#a94e60;color:#ffc3cc}.combat-name{min-width:140px;flex:1;border:1px solid #43627f;background:#071e34;color:white;border-radius:9px;padding:8px 10px;font-weight:850}.turn-flag{font-size:10px;padding:5px 9px;color:#a5f0de;background:#173f3c;border-radius:15px;font-weight:800}.combat-ops{display:flex;gap:5px}.combat-ops button{padding:5px 9px}.combat-stats{display:grid;grid-template-columns:65px 70px 70px 70px 70px minmax(130px,1fr);gap:9px;margin:11px 0}.combat-stats .field input{height:34px;padding:6px}.combat-hp-line{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px;margin:7px 0}.combat-hp-line .hp-track{margin:0;flex:1;height:11px}.combat-attacks{border-top:1px solid #37516c;margin-top:12px;padding-top:12px}.attacks-header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.attacks-header strong{font-size:12px;color:#e5c2c9}.attack-row{display:flex;align-items:end;gap:7px;margin-bottom:7px;flex-wrap:wrap}.attack-row .field{flex:1;min-width:96px}.attack-row .field.attack-name{flex:1.2}.attack-row .field.attack-bonus{flex:0 0 70px}.attack-row button{height:35px}.combat-log-container{margin-top:15px}.log-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.log-title strong{font-size:13px}.text-button{border:none;background:none;color:var(--blue);font-size:12px}.combat-log{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;color:#b7cee1;font-size:12px}.combat-log-entry{padding:8px 10px;background:#0c2036;border-left:3px solid #4e94cd;border-radius:6px}.empty-state{border:1px dashed #3b5d7e;border-radius:12px;padding:25px;text-align:center;color:#94aac0}.footer{display:grid;grid-template-columns:1fr 1.2fr;gap:45px;border-top:1px solid #2c4763;padding:42px 7px 65px;color:#90a9c1;font-size:12px;margin-top:50px}.footer-brand{font-size:17px;font-weight:950;color:#d7eeff;text-decoration:none}.footer p{margin:10px 0 0;max-width:590px}.footer-right p{margin:0 0 12px}.footer-right strong{color:#d7e6f5}
@media(max-width:1000px){.hero{grid-template-columns:minmax(0,1.45fr) minmax(200px,.55fr);padding-inline:0}.hero-emblem{height:255px}.moon-ring{width:235px;height:235px}.wizard-goat{font-size:93px}.moon-ring-two{width:190px;height:190px}.floating-die{width:44px;height:44px}.tab{padding:14px 15px}.cast-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.combat-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.combat-stats .field:last-child{grid-column:span 2}}
@media(max-width:700px){.shell{width:calc(100% - 24px)}.site-header{min-height:68px}.header-right{gap:8px}.privacy-note{display:none}.hero{grid-template-columns:1fr;padding:37px 5px 37px}.hero h1{font-size:43px}.hero-copy>p{font-size:14px;line-height:1.65}.hero-emblem{display:none}.workbench-top{align-items:start}.local-caption{display:none}.workbench h2{font-size:27px}.section-heading{align-items:start;flex-direction:column;gap:13px}.tool-section{padding-top:34px}.dice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.die-card{padding:12px}.die-inputs{flex-wrap:wrap}.die-inputs label{flex:1;min-width:62px}.die-inputs label input{width:100%}.die-inputs button{flex:1 0 100%}.hp-grid{grid-template-columns:1fr}.resource-box{padding:14px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-stat:nth-child(2){border-right:0}.summary-stat:nth-child(-n+2){border-bottom:1px solid #354f6e}.breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}.slot-conversion{grid-template-columns:repeat(3,minmax(0,1fr))}.boost-grid{grid-template-columns:75px repeat(6,minmax(45px,1fr));overflow-x:auto}.boost-cell{padding:8px 4px}.footer{grid-template-columns:1fr;gap:20px}.combat-card{grid-template-columns:14px minmax(0,1fr);gap:8px;padding:10px}.drag-handle{font-size:20px;padding:0}.combat-name{min-width:130px}.combat-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.combat-stats .field:last-child{grid-column:span 1}.system-banner{align-items:start;flex-direction:column;gap:3px;padding:11px}.system-banner>div{gap:8px}.system-banner #system-caption{display:block}.saved-badge{padding-left:16px}}
@media(max-width:400px){.hero h1{font-size:36px}.die-inputs input{height:34px}.die-name{font-size:22px}.slot-conversion{grid-template-columns:repeat(2,minmax(0,1fr))}.breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.combat-stats{gap:6px}.hero-foot>span{font-size:11px}}


/* V2: actual Goat Wizard artwork, compact inline dice and per-character HP + spells */
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.07fr);gap:34px;padding-top:45px;padding-bottom:45px}
.hero h1{font-size:clamp(37px,4.3vw,62px)}
.hero-art{margin:0;min-width:0;position:relative;border:1px solid #527ba3;border-radius:17px;overflow:hidden;box-shadow:0 25px 55px #010a1cc0,0 0 40px #376a9528;background:#0a1931}
.hero-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.hero-art:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 30px #0713236b}
.dice-list{border:1px solid #345b7c;background:#0f2239;border-radius:14px;overflow-x:auto;box-shadow:0 10px 25px #030d1a77}
.dice-head,.dice-row{display:grid;grid-template-columns:minmax(66px,.8fr) minmax(62px,.75fr) minmax(84px,.85fr) minmax(70px,.85fr) minmax(82px,1.1fr);column-gap:14px;align-items:center;min-width:350px;padding:9px 18px}
.dice-head{background:#173754;color:#a9c9e5;font-size:10px;text-transform:uppercase;font-weight:900;letter-spacing:.12em}
.dice-row{border-top:1px solid #294661;background:#10243b;min-height:58px}
.dice-row:nth-child(odd){background:#122b45}
.dice-row:hover{background:#1c3e5c}
.dice-label{font-size:20px;letter-spacing:-.055em;color:var(--die-color);font-weight:950}
.dice-row input{width:100%;max-width:115px;background:#071a2e;color:#edf6ff;border:1px solid #426280;border-radius:8px;min-height:35px;padding:4px 8px;text-align:center}
.dice-roll-button{background:#28547f;border:1px solid #6798c2;border-radius:8px;min-height:35px;color:#f0f8ff;font-size:12px;font-weight:900}
.dice-roll-button:hover{background:#3475ac}
.dice-result{font-size:23px;line-height:1.1;font-weight:950;letter-spacing:-.035em;color:#b9e5ff;cursor:help;white-space:nowrap}
.dice-flash{animation:dice-pulse .36s ease-out}
@keyframes dice-pulse{0%{color:#fff;transform:scale(1.12)}100%{color:#b9e5ff;transform:scale(1)}}
.character-list{display:flex;flex-direction:column;gap:18px}
.character-tracker{background:linear-gradient(150deg,#172f4d,#0e2139);border:1px solid #456b92;border-radius:16px;overflow:hidden;box-shadow:0 12px 27px #0109167a}
.character-topline{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid #345776;background:#173758}
.character-mark{color:#9ddaff;font-size:22px}
.character-topline .hp-name{max-width:470px;min-width:0;width:100%;font-size:18px;font-weight:850;border-color:#527da1}
.character-topline .icon-button{margin-left:auto;white-space:nowrap}
.character-tracker-body{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.character-health,.character-magic{padding:19px 20px 21px;min-width:0}
.character-health{border-right:1px solid #355675}
.tracker-section-title{font-size:13px;font-weight:950;color:#c7e6ff;letter-spacing:.04em;margin:0 0 16px}
.character-health .fields-inline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.character-health .fields-inline .field{min-width:0}
.character-health .fields-inline input{min-width:0;width:100%}
.character-health .hp-numbers{margin-top:21px}
.character-health .hp-actions{display:flex;align-items:end;gap:8px;margin-top:18px;flex-wrap:wrap}
.character-health .hp-actions .field{max-width:95px;min-width:76px}
.character-health .hp-actions .btn{padding-inline:10px}
.character-magic .spell-mode{margin:-3px 0 17px;display:inline-flex}
.character-magic .segmented button{padding:7px 14px;font-size:12px}
.spell-pool-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:9px}
.spell-pool-summary .pool-label{font-size:10px;font-weight:850;color:#aec8e3;letter-spacing:.08em}
.spell-pool-summary strong{font-size:27px;font-weight:950;color:#b3e4ff;line-height:1}
.spell-pool-summary strong span{font-size:15px;color:#86a9c8}
.spell-pool-summary button{margin-left:auto}
.character-magic .pool-meter{margin:9px 0 14px}
.magic-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:end}
.magic-fields label{font-size:11px;color:#b6cee0;font-weight:800;flex:1;min-width:85px}
.magic-fields input{display:block;background:#081c30;border:1px solid #456989;color:white;border-radius:7px;width:100%;height:35px;padding:5px 8px;margin-top:3px}
.magic-fields button{min-width:46px;padding-inline:9px}
.spell-hint{font-weight:850;text-transform:uppercase;font-size:10px;letter-spacing:.08em;color:#9db5cf;margin-top:17px;margin-bottom:7px}
.compact-cast-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px}
.compact-cast-grid button{border:1px solid #47779c;background:#174369;color:#f5faff;border-radius:7px;font-size:14px;font-weight:900;min-width:0;padding:7px 1px}
.compact-cast-grid button small{display:block;color:#b1d2ed;font-size:9px;line-height:1.5;font-weight:700}
.compact-cast-grid button:hover{background:#27628b}
.compact-cast-grid button:disabled{opacity:.3;cursor:not-allowed}
.small-resource-note{font-size:11px;color:#9fb8cb;margin:13px 0 0;line-height:1.5}
.slot-topline{display:flex;justify-content:space-between;align-items:center;color:#a9c5de;font-size:12px;margin-bottom:10px;gap:6px}
.compact-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.compact-slot{border:1px solid #3d5a79;background:#0c243c;border-radius:8px;text-align:center;padding:8px 4px;min-width:0}
.compact-slot label{display:flex;flex-direction:column;align-items:center;color:#8fcdf5;font-size:12px;font-weight:900;gap:4px}
.compact-slot input{min-width:0;width:min(100%,52px);height:29px;text-align:center;background:#08192a;border:1px solid #3e5f7d;border-radius:6px;color:white;font-size:13px}
.compact-slot strong{display:block;margin:7px 0;font-size:20px;line-height:1}
.compact-slot strong small{font-size:11px;color:#95b3c9}
.compact-slot>div{display:flex;justify-content:center;gap:4px}
.compact-slot>div button{width:30px;height:27px;border:1px solid #4a789e;border-radius:5px;background:#244d70;color:white}
.compact-slot>div button:disabled{opacity:.3}
.calculator-target{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#122f4b;border:1px solid #41688a;border-radius:11px;margin-bottom:19px;padding:11px 14px}
.calculator-target label{font-size:12px;font-weight:900;color:#c4e4fa}
.calculator-target select{width:auto;max-width:280px;min-width:165px}
.calculator-target span{color:#a7bacb;font-size:11px}
@media(max-width:1000px){.hero{gap:20px}.character-tracker-body{grid-template-columns:1fr}.character-health{border-right:0;border-bottom:1px solid #345776}.compact-cast-grid{grid-template-columns:repeat(9,minmax(0,1fr))}}
@media(max-width:700px){.hero{grid-template-columns:1fr;padding-top:26px;gap:20px}.hero-art{display:block;max-width:600px}.dice-head,.dice-row{grid-template-columns:53px 59px 73px 66px minmax(70px,1fr);gap:7px;min-width:350px;padding:9px 10px}.dice-label{font-size:17px}.dice-row input{padding:4px}.character-health,.character-magic{padding:14px}.character-topline{padding:11px 13px}.character-topline .hp-name{font-size:16px}.compact-cast-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.compact-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:400px){.character-health .hp-actions .btn{padding:8px;font-size:11px}.spell-pool-summary strong{font-size:23px}}


/* V3: deliberately small dice footprint: two short lists in one shared box. */
#dice-tool{padding-top:21px}
#dice-tool .section-heading{margin-bottom:9px}
#dice-tool .section-heading p{margin-bottom:0}
#dice-tool .tool-tip{margin-top:6px}
.dice-list{overflow:hidden}
.dice-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.dice-column{min-width:0}
.dice-column+.dice-column{border-left:1px solid #396083}
.dice-head,.dice-row{grid-template-columns:46px minmax(0,51px) minmax(0,60px) minmax(0,65px) minmax(50px,1fr);gap:5px;min-width:0;padding:3px 9px}
.dice-head{height:25px;font-size:9px;letter-spacing:.04em}
.dice-row{min-height:34px;height:34px}
.dice-label{font-size:15px;letter-spacing:0}
.dice-row input{max-width:none;width:100%;min-width:0;min-height:26px;height:26px;padding:1px 4px;border-radius:5px;font-size:12px}
.dice-roll-button{min-height:26px;height:26px;padding:1px 4px;font-size:11px;border-radius:5px}
.dice-result{font-size:16px}
#dm-dice-tool .section-heading{margin-bottom:9px}
@media(max-width:860px){.dice-columns{grid-template-columns:1fr}.dice-column+.dice-column{border-left:0;border-top:1px solid #396083}.dice-column+.dice-column .dice-head{display:none}}
@media(max-width:700px){.dice-head,.dice-row{grid-template-columns:45px 48px 56px 62px minmax(44px,1fr);gap:5px;min-width:0;padding:3px 8px}.dice-head{height:25px}.dice-row{height:34px;min-height:34px}.dice-row input{min-height:26px;height:26px;padding:1px 3px}.dice-label{font-size:15px}}
@media(max-width:350px){.dice-head,.dice-row{grid-template-columns:42px 42px 52px 56px minmax(36px,1fr);gap:4px;padding-left:5px;padding-right:5px}.dice-result{font-size:14px}}

.build-version{color:#8fb2d0;font-size:10px;margin-left:6px;font-weight:700}


/* V4: show multiple dice without enlarging unrolled rows; rules-accurate nonlethal HP. */
.dice-breakdown{display:block;padding:2px 10px 5px 10px;border-top:1px solid #2c4e6b;background:#0a1d31;color:#b5dcf6;font:11px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;max-height:82px;overflow-y:auto}
.dice-breakdown[hidden]{display:none}
.dice-breakdown::selection{background:#5296ce}
.health-condition{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:11px;padding:6px 9px;border:1px solid #906e35;background:#382d1f;border-radius:7px;color:#f5dcaa;font-size:11px;font-weight:850}
.health-condition[hidden]{display:none}
.health-condition.condition-down{background:#3a2430;border-color:#92536a;color:#ffb8c4}
.wake-button{border:1px solid #7499b8;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:800;color:#d3ecff;background:#214361;white-space:nowrap}
.nonlethal-tools{display:flex;gap:7px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}
.nonlethal-tools>label{font-size:10px;font-weight:850;color:#b5cee5;min-width:91px;max-width:114px;flex:1}
.nonlethal-tools input{display:block;width:100%;height:30px;margin-top:3px;padding:3px 7px;border:1px solid #456989;border-radius:6px;background:#0a2035;color:#fff}
.nonlethal-tools .btn{font-size:11px;padding:6px 8px;min-height:30px}
.nonlethal-tools small{font-size:10px;color:#a8bfd3;line-height:1.35;flex:1;min-width:155px}
.hp-rule-hint{margin:5px 0 0;color:#8facbf;font-size:10px;line-height:1.3}
@media(max-width:400px){.nonlethal-tools .btn{font-size:10px;padding:5px 6px}.nonlethal-tools label{min-width:70px}}

/* Bug reporting v5: compact header link and keyboard-accessible Tally dialog */
.bug-link{color:#d9eaff;border-color:#4f7ca0;background:#132c47;white-space:nowrap}
.bug-link:hover{background:#24496b;color:#fff}
.bug-report-dialog{box-sizing:border-box;width:min(680px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:0;overflow:hidden;border:1px solid #5b8db0;border-radius:16px;background:#12233c;color:#eaf4ff;box-shadow:0 26px 110px #000c;}
.bug-report-dialog::backdrop{background:#031021d6;backdrop-filter:blur(3px)}
.bug-report-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid #355a79}
.bug-report-top h2{margin:0;font-size:21px}
.bug-report-top p{color:#b4cbe0;margin:2px 0 0;font-size:12px}
.bug-report-close{border:1px solid #527595;border-radius:10px;min-width:36px;min-height:36px;background:#183755;color:#fff;font-size:16px;cursor:pointer}
.bug-report-close:hover{background:#295172}
.bug-report-dialog iframe{display:block;border:0;width:100%;height:min(72dvh,690px);background:#fff}
.bug-report-fallback{margin:0;padding:10px 16px;background:#142e4b;font-size:12px;color:#a9c3d7;text-align:center}
.footer-bug-link{display:inline-flex;text-decoration:none;border-radius:9px;padding:8px 12px;border:1px solid #476f91;font-size:12px;font-weight:800}
@media(max-width:700px){.header-right{gap:7px}.header-link{padding:7px 8px;font-size:11px}.bug-report-top{padding:10px}.bug-report-dialog iframe{height:calc(100dvh - 155px);min-height:280px}}
@media(max-width:390px){.site-header .logo{font-size:19px}.site-header .logo-icon{width:35px;height:35px;font-size:21px}.header-right a[href="#workbench"]{display:none}}

/* v6: optional tips on Ko-fi. External link only; no Stripe JS or payment details on D20 Goat. */
.feed-link{border-color:#74aacc;background:linear-gradient(135deg,#225477,#1a3e60);color:#f4faff;white-space:nowrap}
.feed-link:hover{background:linear-gradient(135deg,#327ba7,#245779);color:white}
.feed-hero-link{display:inline-flex;align-items:center;gap:5px;padding:10px 13px;border:1px solid #6295b9;background:#153250;border-radius:10px;color:#d9eeff;text-decoration:none;font-weight:820;font-size:13px}
.feed-hero-link:hover{background:#254f71;color:white}
.footer-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.feed-caption{font-size:12px;color:#9fb9ce}
@media(max-width:1120px){.site-header .privacy-note{display:none}.header-right{gap:8px}}
@media(max-width:760px){.site-header .tool-link{display:none}.site-header{gap:10px}}
@media(max-width:600px){.site-header{flex-wrap:wrap;padding:12px 0}.header-right{width:100%;justify-content:space-between;gap:9px}.header-right .header-link{flex:1;text-align:center;padding:8px 10px;font-size:12px}.hero-foot{gap:10px}.hero-foot>span{width:100%}}
@media(max-width:360px){.header-right .header-link{font-size:11px;padding:8px 6px}.feed-hero-link{font-size:12px}}
