/* Wizzy Tools: a presentation layer over the native 5etools UI. */
:root {
  --wizzy-ink: #322642;
  --wizzy-muted: #6d617b;
  --wizzy-purple: #76519a;
  --wizzy-purple-dark: #51316e;
  --wizzy-lavender: #eee6f5;
  --wizzy-paper: #faf8fc;
  --wizzy-line: #ded3e6;
  --wizzy-green: #426b50;
  --wizzy-green-pale: #e8f0e7;
}
/* Campaign reference edition: no list authoring, exports or alternate views. */
#sublistcontainer, #btn-book, #btn-show-table, #btn-list-settings,
#btn-comparemode, #btn-readmode, #btn-link-export, #btn-sidebar-settings,
#tabs-right, .ve-fltr__mini-view, #btngroup-manager,
[name="manage-content"], [name="manage-prerelease"], [name="manage-brew"],
[title="Toggle Class Feature Options/Variants"] { display:none !important; }
[hidden] { display:none !important; }
#subclasstabs button[aria-pressed="true"], body .ve-btn-default[class*="cls__btn-sc--active"],
body .ve-btn-default.cls__btn-cf--active { background:#644185 !important;color:#fff !important;border-color:#51316e !important;box-shadow:inset 0 -3px #b7d595; }
#subclasstabs button[aria-pressed="true"]::before { content:"";display:inline-block;width:6px;height:6px;background:#d1e7bc;border-radius:50%;margin-right:7px; }
.wizzy-filter-toggle { white-space:nowrap; }
.wizzy-filter-summary { display:flex;flex-wrap:wrap;gap:4px;max-height:110px;overflow:auto;padding:5px 0;flex:0 0 auto; }
.wizzy-filter-chip { font:11px "Segoe UI",sans-serif;border:1px solid #aa91c1;border-radius:4px;background:#eee4f7;color:#51316e;padding:3px 6px;cursor:pointer; }
.wizzy-filter-chip[data-state="no"] { border-color:#be7c8b;background:#f8e5e9;color:#8b314a; }
.wizzy-filter-dialog { display:flex;flex-direction:column;min-height:0;height:100%;width:100%;font:13px/1.5 "Segoe UI",sans-serif;color:#322642;background:#faf8fc; }
.wizzy-filter-header { display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 5px;flex:0 0 auto; }
.wizzy-filter-header h2 { font:700 23px Georgia,serif;color:#51316e;margin:0; }
.wizzy-filter-search { flex:1;min-width:160px;max-width:350px; }
.wizzy-filter-logic { display:flex;align-items:center;gap:7px;font-size:12px;font-weight:400;margin:0; }
.wizzy-filter-logic select { width:auto;border-color:#cbb9d8;background:#fff;color:#51316e; }
.wizzy-filter-help { color:#6d617b;margin:0 5px 8px;font-size:12px;flex:0 0 auto; }
.wizzy-filter-scroller { flex:1;min-height:0;overflow:auto;padding:0 5px; }
.wizzy-filter-section { padding:9px 0;border-top:1px solid #ded3e6; }
.wizzy-filter-section-controls { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-bottom:5px; }
.wizzy-filter-section-controls:has(>[hidden]:only-child) { display:none; }
.wizzy-native-filter+.wizzy-native-filter { margin-top:10px; }
.wizzy-filter-dialog .ve-fltr__pill[data-state="yes"] { background:#76519a;color:#fff;border-color:#51316e; }
.wizzy-filter-dialog .ve-fltr__pill[data-state="no"] { background:#a24c64;color:#fff;border-color:#82374c; }
.wizzy-filter-footer { display:flex;justify-content:center;gap:12px;padding:9px 0;border-top:1px solid #ded3e6;flex:0 0 auto; }
.wizzy-filter-dialog button:focus-visible,.wizzy-filter-chip:focus-visible { outline:2px solid #76519a;outline-offset:2px; }
@media(max-width:650px){.wizzy-filter-header{gap:7px}.wizzy-filter-search{max-width:none}.wizzy-filter-dialog .ve-fltr__h{gap:6px}.wizzy-filter-section-controls{justify-content:flex-start}}
.wizzy-pointbuy { max-width:680px;margin:32px auto;padding:28px;background:#fff;border:1px solid #ded3e6;border-radius:12px;font:16px/1.6 "Segoe UI",sans-serif; }
.wizzy-pointbuy h1 { font:700 34px Georgia,serif;color:#51316e; }
.wizzy-score-row { display:grid;grid-template-columns:minmax(120px,1fr) 80px 80px 50px;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #eee6f5; }
.wizzy-score-row label { font-weight:600; }
.wizzy-score-row select { padding:8px;border:1px solid #cbb9d8;border-radius:6px;color:#322642;background:#faf8fc;font:inherit; }
.wizzy-score-row span { text-align:center; }
.wizzy-score-head { font-size:12px;color:#6d617b; }
.wizzy-score-head span:first-child { text-align:left; }
#pointbuy-status { padding:12px 15px;background:#e8f0e7;color:#34533d;border-radius:8px;font-weight:600; }
#pointbuy-reset { margin-top:20px;padding:8px 14px;cursor:pointer; }
.wizzy-score-note { margin-top:24px;font-size:13px;color:#6d617b; }
@media(max-width:600px){.wizzy-pointbuy{margin:18px 12px;padding:20px}.wizzy-score-row{grid-template-columns:minmax(90px,1fr) 60px 55px 30px;gap:8px}.wizzy-filter-panel{max-height:250px}}
html, body { background: var(--wizzy-paper) !important; color: var(--wizzy-ink) !important; }
body { margin: 0; }
.page__header, #navigation, .overlay-noise, [class*="cancer__wrp"], #btngroup-manager { display: none !important; }
/* The curated edition has no external content-import controls. */
[name="manage-content"], [name="manage-prerelease"], [name="manage-brew"] { display: none !important; }
.wizzy-shell, .wizzy-home, .wizzy-page-intro { font-family: "Segoe UI", system-ui, sans-serif; }
.wizzy-shell { flex: 0 0 auto; position: relative; z-index: 50; background: #fffdfd; border-bottom: 1px solid var(--wizzy-line); }
.wizzy-top { max-width: 1360px; margin: 0 auto; padding: 19px 32px 16px; display: flex; align-items: center; gap: 28px; }
.wizzy-brand { display: flex; align-items: center; gap: 13px; text-decoration: none !important; color: var(--wizzy-ink) !important; flex: 0 0 auto; }
.wizzy-mark { display: inline-flex; position: relative; width: 45px; height: 46px; align-items: flex-end; justify-content: center; color: var(--wizzy-purple-dark); font: italic bold 43px/1 Georgia, serif; }
.wizzy-mark .fa-hat-wizard { position: absolute; color: var(--wizzy-green); font-size: 21px; top: -7px; left: 5px; transform: rotate(-19deg); }
.wizzy-brand-name { display: block; font: bold 24px/1.12 Georgia, "Times New Roman", serif; letter-spacing: -.6px; }
.wizzy-brand-small { display: block; margin-top: 4px; font-size: 10px; font-weight: 600; letter-spacing: 1.8px; text-transform: uppercase; color: var(--wizzy-muted); }
.wizzy-head-spacer { flex: 1; }
.wizzy-top-search { display: flex; align-items: center; width: 270px; background: var(--wizzy-paper); border: 1px solid var(--wizzy-line); border-radius: 8px; }
.wizzy-top-search input { width: 100%; min-width: 0; border: 0; background: transparent; padding: 10px 12px; font-size: 13px; color: var(--wizzy-ink); outline: 0; }
.wizzy-top-search button { border: 0; background: transparent; color: var(--wizzy-purple); padding: 9px 13px; cursor: pointer; }
.wizzy-top-search:focus-within { outline: 2px solid var(--wizzy-purple); outline-offset: 2px; }
.wizzy-edition { padding: 7px 11px; border: 1px solid #d7e2d3; border-radius: 20px; color: var(--wizzy-green); background: #f1f6ef; font-size: 11px; white-space: nowrap; }
.wizzy-nav-wrap { border-top: 1px solid #f2edf5; }
.wizzy-nav { max-width: 1360px; margin: 0 auto; display: flex; align-items: center; padding: 0 28px; gap: 7px; overflow-x: auto; scrollbar-width: thin; }
.wizzy-nav a { display: block; color: var(--wizzy-muted); text-decoration: none !important; font-size: 13px; line-height: 1.3; font-weight: 600; padding: 13px 12px 12px; white-space: nowrap; border-bottom: 3px solid transparent; }
.wizzy-nav a:hover, .wizzy-nav a[aria-current="page"] { color: var(--wizzy-purple-dark); background: #f6f0fa; border-color: var(--wizzy-purple); }
.wizzy-nav .wizzy-nav-book { margin-left: auto; color: var(--wizzy-green); }
.wizzy-page-intro { max-width: 1600px; margin: 0 auto; width: 100%; padding: 18px 28px 10px; flex: 0 0 auto; }
.wizzy-page-intro h1 { font: bold 28px/1.2 Georgia, serif; color: var(--wizzy-purple-dark); margin: 0 0 3px; }
.wizzy-page-intro p { margin: 0; color: var(--wizzy-muted); font-size: 12px; }
.wizzy-class-note { margin-top: 13px; padding: 12px 15px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px 19px; border: 1px solid #d6e1d2; border-radius: 8px; background: var(--wizzy-green-pale); font-size: 12px; }
.wizzy-class-note-title { color: #34533d; font-weight: 700; }
.wizzy-class-note a { color: #3c5c44 !important; font-weight: 600; text-underline-offset: 3px; }
.wizzy-class-note-detail { color: #576b56; }
.wizzy-home { max-width: 1264px; margin: 0 auto; padding: 34px 32px 26px; }
.wizzy-hero { display: grid; grid-template-columns: 1fr 340px; min-height: 385px; gap: 36px; align-items: center; padding: 24px 0 38px; }
.wizzy-kicker { font-size: 11px; letter-spacing: 2.1px; color: var(--wizzy-green); font-weight: 700; text-transform: uppercase; margin: 0 0 16px; }
.wizzy-hero h1 { font: normal 59px/1.02 Georgia, "Times New Roman", serif; letter-spacing: -2.6px; color: var(--wizzy-ink); margin: 0 0 19px; }
.wizzy-hero h1 em { color: var(--wizzy-purple); font-weight: normal; }
.wizzy-lede { font-size: 16px; line-height: 1.75; max-width: 555px; margin: 0 0 24px; color: var(--wizzy-muted); }
.wizzy-hero-search { display: flex; max-width: 535px; align-items: center; border: 1px solid #cbb9da; border-radius: 9px; background: white; box-shadow: 0 4px 14px #6645810a; padding: 6px; }
.wizzy-hero-search:focus-within { outline: 2px solid var(--wizzy-purple); outline-offset: 2px; }
.wizzy-hero-search > .fa-magnifying-glass { color: #9982aa; margin: 0 10px 0 12px; }
.wizzy-hero-search input { font: 14px "Segoe UI", sans-serif; min-width: 0; width: 100%; padding: 11px 2px; outline: 0; border: 0; color: var(--wizzy-ink); }
.wizzy-hero-search button { font: 600 13px "Segoe UI", sans-serif; border: 0; background: var(--wizzy-purple-dark); color: white; padding: 12px 18px; border-radius: 6px; cursor: pointer; }
.wizzy-hero-search button:hover { background: #704a92; }
.wizzy-search-examples { margin-top: 10px; font-size: 12px; color: var(--wizzy-muted); }
.wizzy-search-examples a { color: var(--wizzy-purple-dark); text-decoration-color: #c5acd7; text-underline-offset: 3px; margin-left: 6px; }
.wizzy-hero-art { position: relative; display: flex; justify-content: center; align-items: center; height: 360px; }
.wizzy-hero-art::before { content: ""; position: absolute; inset: 9px 0 0; border-radius: 52% 48% 46% 54%; background: #e8deef; transform: rotate(-8deg); }
.wizzy-hero-art::after { content: ""; position: absolute; inset: 0 17px 12px 18px; border: 1px solid #c5b4d2; border-radius: 50%; transform: rotate(12deg); pointer-events: none; }
.wizzy-cover-link { z-index: 1; display: block; transform: rotate(3deg); box-shadow: 4px 14px 25px #3c245938; border-radius: 4px; overflow: hidden; transition: transform 160ms ease; }
.wizzy-cover-link:hover { transform: rotate(0deg) translateY(-3px); }
.wizzy-cover { display: block; width: 242px; height: auto; }
.wizzy-motif { position: absolute; z-index: 2; width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid #d7c8e3; border-radius: 50%; background: #fffafd; color: var(--wizzy-purple); box-shadow: 0 3px 9px #43265808; font-size: 18px; }
.wizzy-motif--time { top: 0; left: 27px; }
.wizzy-motif--butterfly { bottom: 13px; right: 13px; color: var(--wizzy-green); }
.wizzy-motif--hawk { top: 52px; right: 0; color: var(--wizzy-green); }
.wizzy-section-heading { display: flex; gap: 20px; align-items: baseline; justify-content: space-between; margin: 0 0 17px; }
.wizzy-section-heading h2 { font: bold 25px/1.25 Georgia, serif; letter-spacing: -.5px; margin: 0; }
.wizzy-section-heading p { color: var(--wizzy-muted); font-size: 12px; margin: 0; }
.wizzy-catalog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.wizzy-card { display: grid; grid-template-columns: 45px 1fr 15px; gap: 13px; align-items: center; min-height: 104px; padding: 20px 19px; border: 1px solid var(--wizzy-line); border-radius: 10px; background: #fffefd; color: var(--wizzy-ink) !important; text-decoration: none !important; transition: border-color 120ms, background 120ms, transform 120ms; }
.wizzy-card:hover { background: #f3eef8; border-color: #b49bc7; transform: translateY(-2px); }
.wizzy-card-icon { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 11px; background: var(--wizzy-lavender); color: var(--wizzy-purple); font-size: 22px; }
.wizzy-card:nth-child(2n) .wizzy-card-icon { background: var(--wizzy-green-pale); color: var(--wizzy-green); }
.wizzy-card h3 { font: bold 17px Georgia, serif; margin: 0 0 6px; }
.wizzy-card p { font-size: 12px; margin: 0; color: var(--wizzy-muted); line-height: 1.45; }
.wizzy-card-arrow { color: #ae98be; font-size: 18px; }
.wizzy-quicklinks { display: flex; flex-wrap: wrap; gap: 10px 23px; margin: 18px 0 33px; padding: 0 3px; }
.wizzy-quicklinks a { color: var(--wizzy-purple-dark); font-size: 12px; text-decoration: none; }
.wizzy-quicklinks a:hover { text-decoration: underline; text-underline-offset: 3px; }
.wizzy-quicklinks .fal { color: #9274a8; margin-right: 7px; }
.wizzy-library { padding: 24px 27px; border: 1px solid #d6e1d2; border-radius: 12px; background: #edf3e9; display: grid; grid-template-columns: 1fr 1.4fr; gap: 28px; align-items: center; }
.wizzy-library .wizzy-kicker { margin-bottom: 7px; font-size: 10px; }
.wizzy-library h2 { font: bold 24px/1.2 Georgia, serif; color: #34533d; margin: 0 0 9px; }
.wizzy-library p { color: #5c705b; font-size: 12px; line-height: 1.65; margin: 0; }
.wizzy-chapters { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.wizzy-chapters a { padding: 13px 14px; border: 1px solid #d1ddcc; border-radius: 7px; background: #fbfdf9; color: #3c5c44; font-size: 13px; font-weight: 600; text-decoration: none !important; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.wizzy-chapters a:hover { background: white; border-color: #87a77e; }
.wizzy-home-footer { padding: 23px 1px 0; font-size: 11px; color: #8a7d94; display: flex; justify-content: space-between; gap: 20px; }
.wizzy-home-footer a { color: #766184; }
.wizzy-shell a:focus-visible, .wizzy-home a:focus-visible, .wizzy-shell button:focus-visible, .wizzy-home button:focus-visible { outline: 3px solid #9170aa; outline-offset: 3px; }
/* Keep 5etools' dense browsing layout, with a coherent readable palette. */
body:not(.wizzy-home-page) a { color: var(--wizzy-purple-dark); }
body .ve-btn-primary { background: var(--wizzy-purple-dark); border-color: var(--wizzy-purple-dark); color: #fff; }
body .ve-btn-primary:hover { background: #704a92; border-color: #704a92; }
body .ve-btn-default { background-color: #f8f4fb; border-color: #d3c6de; color: var(--wizzy-ink); }
body .ve-btn-default:hover { background-color: #e9def1; }
body .ve-btn-default.active, body .ve-btn-default.ve-active { background: #d9c4e9; color: #42285b; border-color: #ad8cc5; }
body .ve-form-control { border-color: #d8cce2; background-color: #fffefd; color: var(--wizzy-ink); }
body .ve-form-control:focus { border-color: #9674b1; box-shadow: 0 0 0 2px #e8dcef; }
body .ve-lst__row:hover { background-color: #eee7f4; }
body .ve-lst__row.list-multi-selected, body .ve-lst__row.list-selected { background-color: #e1d1ed; }
body .stats { background-color: #fffefd; }
body .stats th, body .stats .stats-name { color: var(--wizzy-purple-dark); }
body .stats .stats__th-name { background: #eee5f5; }
body .stats .rd__h--0, body .stats .rd__h--1, body .stats .rd__h--2 { color: var(--wizzy-purple-dark); }
body .stats .rd__b--3, body .stats .rd__b--2 { border-color: #cdb8dd; }
body .fltr__mini-pill { border-color: #d4c6dd; }
body .container { max-width: 1600px; }
@media (min-width: 1200px) { body:not(.wizzy-home-page) .container { width: calc(100% - 48px); } }
@media (max-width: 1000px) {
  .wizzy-hero { grid-template-columns: 1fr 260px; gap: 25px; }
  .wizzy-hero h1 { font-size: 49px; }
  .wizzy-hero-art { height: 310px; }
  .wizzy-cover { width: 209px; }
  .wizzy-catalog { grid-template-columns: repeat(2, 1fr); }
  .wizzy-library { grid-template-columns: 1fr; gap: 19px; }
  .wizzy-top { gap: 15px; }
  .wizzy-edition { display: none; }
  .wizzy-nav { gap: 0; padding: 0 15px; }
  .wizzy-nav a { padding-inline: 10px; }
}
@media (max-width: 650px) {
  .wizzy-top { padding: 17px 18px 13px; gap: 11px; }
  .wizzy-brand-name { font-size: 22px; }
  .wizzy-brand-small { font-size: 8px; letter-spacing: 1.2px; }
  .wizzy-top-search { width: 38px; border: 0; background: transparent; }
  .wizzy-top-search input { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); }
  .wizzy-top-search:focus-within { width: 165px; }
  .wizzy-top-search:focus-within input { position: static; width: 100%; height: auto; clip: auto; padding: 8px; }
  .wizzy-top-search button { padding: 10px; }
  .wizzy-home { padding: 22px 18px; }
  .wizzy-hero { grid-template-columns: 1fr; padding: 10px 0 25px; gap: 20px; min-height: 0; }
  .wizzy-hero h1 { font-size: 45px; letter-spacing: -1.5px; }
  .wizzy-lede { font-size: 14px; margin-bottom: 20px; }
  .wizzy-hero-art { display: none; }
  .wizzy-section-heading { display: block; }
  .wizzy-section-heading h2 { font-size: 23px; }
  .wizzy-section-heading p { margin-top: 6px; }
  .wizzy-catalog { gap: 9px; }
  .wizzy-card { grid-template-columns: 1fr; gap: 10px; padding: 16px 14px; align-content: start; }
  .wizzy-card h3 { font-size: 17px; }
  .wizzy-card-arrow { display: none; }
  .wizzy-card-icon { width: 35px; height: 35px; font-size: 18px; }
  .wizzy-quicklinks { gap: 14px 19px; }
  .wizzy-library { padding: 21px 18px; }
  .wizzy-chapters a { font-size: 12px; padding: 11px; }
  .wizzy-home-footer { display: block; line-height: 1.8; }
  .wizzy-home-footer span { display: block; }
  .wizzy-page-intro { padding: 15px 14px 10px; }
}
@media (prefers-reduced-motion: reduce) { .wizzy-home * { transition: none !important; } }
@media print { .wizzy-shell, .wizzy-page-intro, .wizzy-home-footer { display: none !important; } body { background: white !important; } }


/* Match connective controls to included (purple) and excluded (red) tags. */
body .ve-btn-default.ve-fltr__h-btn-logic--blue { background:#76519a;border-color:#51316e;color:#fff; }
body .ve-btn-default.ve-fltr__h-btn-logic--blue:hover { background:#644185;border-color:#51316e;color:#fff; }
body .ve-btn-default.ve-fltr__h-btn-logic--red { background:#a24c64;border-color:#82374c;color:#fff; }
body .ve-btn-default.ve-fltr__h-btn-logic--red:hover { background:#82374c;border-color:#6b293d;color:#fff; }


/* Comfortable default filter size, with a desktop resize handle and fixed actions. */
body .ve-ui-modal__inner.wizzy-filter-window {
  width:min(1050px,84vw);height:min(680px,70vh);max-width:98vw;max-height:96vh;
  min-width:min(480px,96vw);min-height:min(340px,90vh);
  resize:both;overflow:hidden;box-sizing:border-box;margin:2vh 1vw;
}
.wizzy-filter-window .wizzy-filter-window-content { flex:1;min-height:0;overflow:hidden; }
.wizzy-filter-window .wizzy-filter-dialog { flex:1;min-height:0; }
.wizzy-filter-window .wizzy-filter-footer { padding-right:22px; }
@media(pointer:coarse){body .ve-ui-modal__inner.wizzy-filter-window{resize:none}}


/* Colorful character emblems */
body .wizzy-shell .wizzy-mark,body .wizzy-shell .wizzy-mark img{width:50px;height:50px;flex-basis:50px;object-fit:contain;}




























/* Sage Advice amendments */
body .wizzy-sage-advice,body .wizzy-sage-advice p,body .wizzy-sage-advice li,body .wizzy-sage-advice .ve-rd__h,body .wizzy-sage-advice a{color:#0f766e!important;}
.wizzy-sage-key{color:#0f766e!important;}
