.spells-wrap,.spell-page{--paper: #f4ecd8;--paper-edge: #b3ae9a;--paper-edge-soft: #c2bda9;--ribbon-bg: #9c9884;--ribbon-text: #f4ecd8;--ink: #2a1f15;--ink-soft: #4a3a28;--callout-bg: #e6dccb}:root:not(.light) .spells-wrap,:root:not(.light) .spell-page{--paper: #2d2620;--paper-edge: #6a5840;--paper-edge-soft: #4a3e2d;--ribbon-bg: #5a4a36;--ribbon-text: #f0e2c2;--ink: #f0e2c2;--ink-soft: #c8b890;--callout-bg: #3a3128}.spell-card-restricted{--paper: #e6dbcb;--paper-edge: #a09078;--paper-edge-soft: #c0b29c;--ribbon-bg: #998878;--ribbon-text: #f4ecd8}:root:not(.light) .spell-card-restricted{--paper: #3a2f22;--paper-edge: #8a6e3e;--paper-edge-soft: #5e4a2e;--ribbon-bg: #74592a;--ribbon-text: #f5e0a8}.spells-wrap{margin-top:1rem}.spells-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}#spells-search{width:100%;padding:.55rem .9rem;font-family:var(--font-condensed);font-size:1rem;background:var(--paper, #f4ecd8);border:1px solid var(--paper-edge, #b3ae9a);border-radius:4px;color:var(--ink, #2a1f15)}#spells-search::placeholder{color:var(--ink-soft, #4a3a28);opacity:.65}#spells-search:focus{outline:none;border-color:var(--ink-soft, #4a3a28);box-shadow:inset 0 0 0 1px var(--paper-edge, #b3ae9a)}.spells-filters{display:flex;flex-direction:column;gap:.5rem}.filter-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.filter-label{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft, #4a3a28);margin-right:.3rem}.chip{background:var(--paper, #f4ecd8);border:1px solid var(--paper-edge, #b3ae9a);color:var(--ink, #2a1f15);padding:.25rem .65rem;border-radius:4px;font-family:var(--font-display);font-weight:800;font-style:italic;font-size:.85rem;font-variant:small-caps;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:background .15s,color .15s,border-color .15s}.chip:hover{background:var(--paper-edge-soft, #c2bda9)}.chip-active{background:var(--ribbon-bg, #9c9884);color:var(--ribbon-text, #f4ecd8);border-color:var(--ribbon-bg, #9c9884)}.chip-active:hover{background:var(--ribbon-bg, #9c9884)}.chip-count{font-size:.7rem;font-style:normal;font-variant:normal;letter-spacing:0;opacity:.75}.spells-stats{display:flex;align-items:center;gap:.75rem;font-family:var(--font-display);font-weight:800;font-style:italic;font-size:.85rem;color:var(--ink-soft, #4a3a28)}.spells-sections{display:flex;flex-direction:column;gap:2rem}.spells-section-header{display:flex;align-items:baseline;justify-content:center;gap:1rem;margin:0 0 .5rem}.spells-section-title{font-family:var(--font-display);font-weight:800;font-size:2.5rem;margin:0;padding:0;border:none;color:var(--heading);letter-spacing:.01em}.print-btn-section{align-self:center}.spells-grid{column-count:2;column-gap:1rem}@media(max-width:720px){.spells-grid{column-count:1}}.spells-section.hidden{display:none}.spells-empty{padding:2rem;text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:8px}.spell-card{--concave: 8px;display:block;position:relative;padding-top:.85rem;margin:.5rem 0 .6rem;color:var(--ink, #2a1f15);font-family:var(--font-condensed);text-decoration:none;break-inside:avoid;page-break-inside:avoid;transition:transform .15s ease,filter .15s ease}.spells-grid .spell-card{cursor:pointer}.spell-card:hover,.spell-card:focus,.spell-card:focus-visible{text-decoration:none}.spell-card-paper{position:relative;z-index:1;border:none;border-radius:0;padding:1rem 1rem .95rem;transition:transform .15s ease;background:radial-gradient(circle at top left,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) top left / 50% 50% no-repeat,radial-gradient(circle at top right,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) top right / 50% 50% no-repeat,radial-gradient(circle at bottom left,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) bottom left / 50% 50% no-repeat,radial-gradient(circle at bottom right,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) bottom right / 50% 50% no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 0 / 100% 1px no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 100% / 100% 1px no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 0 / 1px 100% no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 100% 0 / 1px 100% no-repeat,var(--paper, #f4ecd8);-webkit-mask:radial-gradient(circle var(--concave) at 0 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 0 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px));mask:radial-gradient(circle var(--concave) at 0 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 0 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px));-webkit-mask-composite:source-in;mask-composite:intersect}.spells-grid .spell-card:hover{transform:translateY(-1px);filter:drop-shadow(0 4px 10px rgba(0,0,0,.22))}.spell-card.hidden{display:none}.spell-ribbon{position:relative;z-index:0;background:var(--ribbon-bg, #d8c89a);border-radius:6px 6px 0 0;color:var(--ribbon-text, #5a4630);font-family:var(--font-display);font-weight:800;font-style:italic;font-size:1.125rem;font-variant:small-caps;letter-spacing:-.025em;padding:0rem .55rem;margin-left:1.5rem;line-height:1.2;white-space:nowrap}.spell-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--paper-edge-soft, #c2bda9);padding-bottom:.35rem;margin-bottom:.45rem}.spell-name{font-family:var(--font-display);font-weight:800;font-style:italic;font-size:1.5rem;line-height:1.1;color:var(--ink, #2a1f15);font-variant:small-caps;letter-spacing:-.02em;margin-bottom:0}.spell-actions{font-family:var(--font-display);font-weight:800;font-style:italic;font-variant:small-caps;font-variant-numeric:lining-nums;font-size:1.175rem;line-height:1.1;letter-spacing:-.02em;color:var(--ink, #2a1f15);white-space:nowrap;flex-shrink:0}.spell-body{font-family:var(--font-condensed);font-size:1rem;line-height:1.1;color:var(--ink-soft, #4a3a28)}.spell-body p{margin:0 0 .5rem}.spell-body p:last-child{margin-bottom:0}.spell-body strong{font-family:var(--font-display);font-weight:800;font-size:1.1rem;font-style:italic;font-variant:small-caps;letter-spacing:-.025rem;color:var(--ink, #2a1f15)}.spell-body em{font-style:italic;color:var(--ink-soft, #4a3a28)}.spell-body a{color:var(--ink, #2a1f15);text-decoration:underline;text-decoration-color:#5a463080;text-underline-offset:2px}.spell-body a:hover{text-decoration-color:var(--ink, #2a1f15)}.spell-body ul{margin:.35rem 0;padding-left:0}.spell-body ol{list-style:none;margin:.35rem 0;padding-left:0;counter-reset:spell-list}.spell-body li{margin-left:.75em}.spell-body ol>li{counter-increment:spell-list}.spell-body ol>li:before{content:counter(spell-list) ". ";color:var(--ink-soft, #4a3a28)}.spell-callouts{--concave: 6px;position:relative;z-index:2;margin:-.875rem 1.5rem 0;display:flex;flex-direction:column;gap:.4rem}.spell-callouts .callout{padding:.5rem .85rem;color:var(--ink-soft, #4a3a28);font-style:italic;font-size:1.125em;line-height:1.1;background:radial-gradient(circle at top left,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) top left / 50% 50% no-repeat,radial-gradient(circle at top right,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) top right / 50% 50% no-repeat,radial-gradient(circle at bottom left,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) bottom left / 50% 50% no-repeat,radial-gradient(circle at bottom right,transparent calc(var(--concave) - .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + .5px),var(--paper-edge, #b3ae9a) calc(var(--concave) + 1.5px),transparent calc(var(--concave) + 1.5px)) bottom right / 50% 50% no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 0 / 100% 1px no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 100% / 100% 1px no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 0 0 / 1px 100% no-repeat,linear-gradient(var(--paper-edge, #b3ae9a),var(--paper-edge, #b3ae9a)) 100% 0 / 1px 100% no-repeat,var(--callout-bg, #e6dccb);-webkit-mask:radial-gradient(circle var(--concave) at 0 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 0 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px));mask:radial-gradient(circle var(--concave) at 0 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 0,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 0 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px)),radial-gradient(circle var(--concave) at 100% 100%,transparent calc(var(--concave) - .5px),#000 calc(var(--concave) + .5px));-webkit-mask-composite:source-in;mask-composite:intersect}.spell-callouts .callout-title{display:none}.spell-callouts .callout-content>p{margin:0;font-style:italic}.spell-callouts .callout-content>p+p{margin-top:.35rem}.spell-callouts .callout-content>p>strong{font-weight:700}.spell-page{max-width:560px;margin:0 auto;position:relative}.spell-back{display:inline-block;margin-bottom:1rem;color:var(--text-muted);text-decoration:none}.spell-back:hover{color:var(--heading)}.spell-page-meta{margin-top:.9rem;font-size:.9rem;color:var(--text-muted)}.spell-page-en{font-style:italic}.spell-siblings{margin-top:1.5rem}.spell-siblings-title{font-size:1.1rem;margin-bottom:.5rem}.spell-siblings ul{list-style:none;padding:0;margin:0;columns:2}@media(max-width:480px){.spell-siblings ul{columns:1}}.spell-siblings li{margin-bottom:.25rem}
