.play-features .feature-view-tabs{display:flex;justify-content:space-between;gap:12px;margin:-38px 0 17px;flex:none}
.feature-view-tabs .ribbon-title{margin:0;min-width:0;flex:1;padding:5px 12px;cursor:pointer;color:inherit;opacity:.65;font-family:Eveleth,sans-serif}
.feature-view-tabs .ribbon-title[aria-selected="true"]{opacity:1;color:var(--gold,#dfc17b);border-bottom-color:currentColor}
.feature-view-tabs .ribbon-title:focus-visible{outline:2px solid var(--cyan,#81d5e7);outline-offset:-3px}
.play-features>.feature-layout[hidden]{display:none!important}
.play-features>.assassin-active{justify-content:flex-start;gap:18px;overflow-y:auto;min-height:0}
.assassin-effect{border-bottom:1px solid var(--sheet-line,#526071);padding-bottom:14px}
.assassin-effect-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.assassin-effect-heading h3{margin:0;font-size:.86rem;color:var(--gold,#dfc17b)}
.assassin-actions{display:flex;gap:4px;flex:none}
.assassin-control{width:36px;height:36px;padding:7px;flex:none;min-width:36px}
.assassin-control[aria-pressed="true"]{color:var(--gold,#dfc17b);background:color-mix(in srgb,currentColor 12%,transparent);border-color:currentColor}
.assassin-hint{font-size:.8rem;margin:6px 0;line-height:1.45}
.assassin-rule-note{opacity:.8}.assassin-effect>small{font-size:.72rem;line-height:1.4}
.assassin-count{font-family:Overpass,sans-serif;font-size:1rem;margin-left:6px}
.poison-tokens{display:flex;flex-wrap:wrap;align-items:center;gap:3px;min-height:44px;margin:7px 0}
.poison-tokens .assassin-control{color:var(--gold,#dfc17b);border-color:transparent;background:transparent;width:32px;min-width:32px;padding:5px}
.poison-tokens .assassin-control .icon{fill:color-mix(in srgb,currentColor 18%,transparent)}
.poison-tokens button:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
.poison-overflow{padding:4px 7px;font-size:.8rem;min-height:36px}
.known-poisons{margin-top:12px}.known-poisons summary{cursor:pointer;font-size:.85rem}
.poison-description{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--sheet-line,#526071);font-size:.8rem;line-height:1.4}
.poison-description:last-child{border-bottom:0}.poison-description strong{font-weight:600}.poison-description span{opacity:.85}
.assassin-undo{display:flex;justify-content:flex-end}.assassin-undo button{display:flex;gap:6px;align-items:center}
.hope-feature .assassin-control{margin-left:8px;vertical-align:middle;color:#58b991}
.hope-feature:has(.assassin-control){position:relative;padding-right:48px;min-height:44px}
.hope-feature .assassin-control{position:absolute;right:0;top:0;margin:0}
html[data-theme="blue"] .assassin-control[aria-pressed="true"]{color:#e2c16c;background:#d8b76620;border-color:#d8b766}
html[data-theme="blue"] .hope-feature .assassin-control{color:#73d4a1}
.assassin-control:hover::after,.assassin-control:focus-visible::after{white-space:normal;width:max-content;max-width:220px;text-align:left}
.poison-tokens .assassin-control:hover::after,.poison-tokens .assassin-control:focus-visible::after{right:auto;left:0}
.crest-evasion[tabindex]{cursor:help}
@media(max-width:760px){.assassin-control,.poison-tokens .assassin-control{width:44px;min-width:44px;height:44px}.play-features>.assassin-active{max-height:420px}}
@media print{.feature-view-tabs,.assassin-undo,.hope-feature .assassin-control{display:none!important}.play-features>.feature-layout[hidden]{display:flex!important}.play-features>.assassin-active{overflow:visible;max-height:none}.assassin-control{border:0}.play-features .feature-layout{margin-top:0}}
/* Poison is a single vivid counter; gold controls record physical dice too. */
.poison-counter{display:flex;align-items:center;justify-content:center;gap:18px;margin:12px 0}
.character-sheet .poison-counter>button{color:#e3bc61;background:transparent;border:0;font-size:1.8rem;width:44px;height:52px;padding:0}
.character-sheet .poison-counter>.poison-drop{position:relative;width:50px;height:64px;color:#69df82;opacity:1}
.poison-drop .icon{width:50px;height:64px;fill:#218e48;stroke:#79e99c;filter:drop-shadow(0 0 5px #40cd6025)}
.poison-drop .assassin-count{position:absolute;inset:27px 0 auto;margin:0;text-align:center;color:#effff2;font-size:1.1rem;font-weight:700;line-height:1.2}
.assassin-actions [data-assassin="prepare"] .icon{width:25px;height:25px}
.character-sheet .hope-cost{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;margin:0 9px;vertical-align:middle;background:#bb9330;color:#fff4c8;border:1px solid #ebcd76;transform:rotate(45deg);border-radius:2px}
.hope-cost>span{transform:rotate(-45deg);font-size:.85rem;font-weight:700}
.inline-rest-controls{display:flex;gap:7px;margin-left:auto}.inline-rest-controls button{font-size:.8rem;padding:7px 12px}
.inline-rest-panel{padding:12px 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}.inline-rest-panel[hidden]{display:none}
.inline-rest-moves{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}.inline-rest-moves label{min-width:190px;max-width:280px;flex:1;font-size:.78rem}.inline-rest-moves select{margin-top:5px;font-size:.85rem}.inline-rest-panel small{font-size:.75rem}
@media(max-width:600px){.inline-rest-controls{margin-left:0}.inline-rest-moves label{max-width:none;min-width:100%}}
html[data-theme="blue"] .character-sheet .poison-counter>button:not(.poison-drop),html[data-theme="paper"] .character-sheet .poison-counter>button:not(.poison-drop){color:#e3bc61}
html[data-theme="blue"] .character-sheet .hope-cost{background:#bb9330;color:#fff4c8;border-color:#ebcd76}
/* Hope feature: actual tracker diamond geometry, scaled down; unbounded wrapping. */
.hope-feature .hope-ability-trigger{display:flex;align-items:center;gap:9px;width:100%;min-height:36px;text-align:left;padding:4px 0!important;border:0;background:transparent!important;box-shadow:none;font:inherit;color:#d6b96e}
html[data-theme="blue"] .character-sheet .hope-ability-trigger{color:#e3c577}
.hope-ability-trigger .hope-ability-diamond{display:block;flex:none;width:13px;height:13px;margin:3px 5px;border:2px solid #d7ae50;transform:rotate(45deg);background:transparent;border-radius:0}
.hope-ability-trigger[aria-pressed="true"] .hope-ability-diamond{background:#e5be61;box-shadow:inset 0 0 0 2px var(--sheet-paper,#202835)}
.hope-ability-description{display:block;padding-left:27px;white-space:normal;overflow-wrap:anywhere;line-height:1.65}
.hope-section .hope-feature:has(.hope-ability-trigger){padding:0;margin-top:8px;min-width:0;height:auto;max-height:none;overflow:visible}
@media(pointer:coarse){.hope-feature .hope-ability-trigger{min-height:44px}}
.hope-feature .hope-ability-trigger{font-size:1.25em;font-weight:600;text-decoration:underline;text-decoration-color:#d6b96e80;text-decoration-thickness:1px;text-underline-offset:4px;text-shadow:0 0 9px #e3c57735}
.hope-feature .hope-ability-trigger .hope-ability-diamond{filter:drop-shadow(0 0 3px #e3c57765)}
.hope-feature .hope-ability-trigger:hover:not(:disabled),.hope-feature .hope-ability-trigger:focus-visible{color:#ffe3a1;text-decoration-color:currentColor;text-shadow:0 0 10px #e3c57770}
.hope-feature .hope-ability-trigger:disabled{text-shadow:none;text-decoration-color:transparent}
.hope-feature .hope-ability-trigger:disabled .hope-ability-diamond{filter:none}
/* Recessed metal threshold plate, with balanced space above and below. */
.vitals .threshold-recess{margin:12px 0 4px;padding:9px 7px 6px;border:3px solid transparent;border-radius:7px;background:linear-gradient(160deg,#121924,#202936) padding-box,linear-gradient(145deg,#76808d 0%,#414b59 22%,#151c27 55%,#737d89 100%) border-box;box-shadow:0 1px 0 #ffffff18,inset 0 3px 5px #0009,inset 0 -1px 1px #aeb9c229;min-width:0}
.vitals .threshold-recess .threshold-track>div{background:transparent;clip-path:none;padding:7px 3px}
.vitals .threshold-recess .threshold-number{padding:0 6px;border-color:#7d87934d}
.vitals .threshold-recess .threshold-help{margin:3px 0 0!important;font-size:.68rem!important}
html[data-theme="paper"] .vitals .threshold-recess{background:linear-gradient(160deg,#d0cdc7,#ece8df) padding-box,linear-gradient(145deg,#faf6ed,#a8a49e 30%,#777773 65%,#eee9e0) border-box;box-shadow:0 1px 0 #fff9,inset 0 2px 5px #34343755,inset 0 -1px 1px #fff9}
html[data-theme="paper"] .threshold-recess .threshold-track{color:#343342}
html[data-theme="paper"] .threshold-recess .threshold-track small{color:#565564}
@media print{.vitals .threshold-recess{background:none!important;box-shadow:none;border:1px solid #777}}
/* Three depths: metal frame, severity plates, inset threshold values. */
html[data-theme="blue"] .vitals .threshold-recess .threshold-track>div{background:linear-gradient(160deg,#343f50,#242e3d);border:1px solid #66718266;border-bottom-color:#111822;border-radius:3px;box-shadow:inset 0 1px 0 #becbd323,0 2px 2px #0005;padding:7px 3px}
.vitals .threshold-recess .threshold-track{gap:3px}
html[data-theme="blue"] .vitals .threshold-recess .threshold-number{background:#101722;border:1px solid #090f18;border-bottom-color:#627080;border-radius:3px;box-shadow:inset 0 2px 4px #000b,0 1px 0 #b8c5cf15;color:#f0e4c5;padding:0 5px;line-height:36px}
html[data-theme="paper"] .vitals .threshold-recess .threshold-track>div{background:linear-gradient(160deg,#f2eee5,#d9d5cc);border:1px solid #aaa69d;border-radius:3px;box-shadow:inset 0 1px 0 #fff9,0 2px 2px #0002;padding:7px 3px}
html[data-theme="paper"] .vitals .threshold-recess .threshold-number{background:#c5c2bb;border:1px solid #8d8b85;border-bottom-color:#f8f2e8;border-radius:3px;box-shadow:inset 0 2px 3px #0003;padding:0 5px;line-height:36px}
/* Uniform outer rim; retain the recessed interior and tiered plates. */
html[data-theme="blue"] .vitals .threshold-recess{border-color:#596573;background:linear-gradient(160deg,#121924,#202936) padding-box;box-shadow:inset 0 3px 5px #0009,inset 0 -1px 1px #aeb9c229}
html[data-theme="paper"] .vitals .threshold-recess{border-color:#96948e;background:linear-gradient(160deg,#d0cdc7,#ece8df) padding-box;box-shadow:inset 0 2px 5px #34343755,inset 0 -1px 1px #fff9}
html[data-theme="blue"] .assassin-limited .assassin-control[aria-pressed="true"]{color:#73d4a1;border-color:#73d4a166;background:#73d4a112}
.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:82px;min-height:36px;padding:6px 9px;font-size:.78rem;background:transparent;border:1px solid #d2b36850;color:#e3c577;flex:none}
.ability-charge-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid currentColor;background:currentColor;flex:none}
.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge.is-used{color:#a6aeb9;border-color:#77818f55}
.ability-charge.is-used .ability-charge-dot{background:transparent}
.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge:hover:not(:disabled){background:#d2b36812}
@media(pointer:coarse){.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge{min-height:44px}}
/* Keep title typography from inheriting feature-group heading margins. */
.play-features .assassin-effect-heading{display:flex;align-items:center;gap:10px}
.play-features .assassin-effect-heading>h3{margin:0!important;padding:0;line-height:1.35;flex:1;min-width:0}
.play-features .assassin-effect-heading>button,.play-features .assassin-effect-heading>.assassin-actions{margin:0;align-self:center}
.inline-rest-controls{flex-wrap:wrap}
.bard-die-choice,.bard-campaign{display:block;font-size:.76rem;margin-top:8px}.bard-die-choice select,.bard-campaign select{width:100%;font-size:.8rem;padding:7px;margin-top:4px}.bard-physical{display:flex;gap:8px;margin-top:8px}.bard-physical input{width:85px;min-width:0;font-size:.9rem}.bard-physical button{flex:none}

/* Shared recharge notation: one shape and icon for every reset boundary. */
.recharge-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid #a68b50;border-radius:4px;padding:3px 6px;color:#d8b65e;font-size:.78rem;font-weight:600;line-height:1.2;vertical-align:middle;cursor:help}
.recharge-badge svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
.recharge-badge:focus-visible{outline:2px solid #d8b65e;outline-offset:2px}
.assassin-limited .recharge-badge+button{margin-left:8px}
.rally-die-token{color:#efd17d!important;border-color:#b89b52!important;background:#d8b65e18!important;box-shadow:0 0 8px #d8b65e20}
.rally-die-token:hover{background:#d8b65e32!important;box-shadow:0 0 10px #d8b65e48}
.rally-die-token svg{width:25px;height:25px}

.rally-die-token{display:inline-flex;align-items:center;justify-content:center;padding:0}
.rally-die-token svg{display:block;flex:none;width:22px;height:22px;margin:0}
.bard-solo-note{display:block;margin-top:8px;color:var(--muted,#aeb8c8)}
.bard-eloquent{margin:8px 0 10px}
.bard-eloquent summary{font-size:.8rem;color:var(--muted,#aeb8c8);cursor:pointer}

.icon-dice-tray .dice-picker{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.dice-choice{text-align:center;color:#b8c9e4}.dice-choice.hope,.rolled-die.hope{color:#e4be63}.dice-choice.fear,.rolled-die.fear{color:#b693e0}
.icon-dice-tray .pick-die{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;padding:8px 3px;background:transparent;border:1px solid transparent;color:inherit}
.icon-dice-tray svg{width:48px;height:48px;overflow:visible}.icon-dice-tray polygon{fill:currentColor;fill-opacity:.08;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.icon-dice-tray text{fill:currentColor;text-anchor:middle;font:bold 14px Overpass,sans-serif}
.icon-dice-tray .pick-die:hover,.icon-dice-tray .pick-die.selected{border-color:currentColor;background:#aabbee10}.dice-caption{text-transform:capitalize;font-size:.75rem;margin-top:4px}.dice-count{position:absolute;top:0;right:0;border-radius:50%;background:#d8b65e;color:#171a29;min-width:19px;font-weight:600;font-size:.75rem}
.icon-dice-tray .remove-die{min-width:44px;min-height:44px;padding:2px;background:transparent;border:0;color:inherit;font-size:1.2rem}.remove-die:disabled{opacity:.15}
.dice-pool-bar{display:flex;align-items:center;gap:10px;border-block:1px solid #566073;padding:10px 0;margin:12px 0}.dice-pool{flex:1;font-size:.85rem;color:#d8b65e;overflow-wrap:anywhere}.dice-pool-bar button{min-width:44px;min-height:44px}
.dice-tray-footer{display:flex;align-items:end;justify-content:space-between;gap:15px}.dice-tray-footer label{display:flex;align-items:center;gap:12px}.dice-tray-footer input{width:85px}.dice-tray-footer button{min-width:110px}
.dice-tray-result:empty{display:none}.dice-tray-result{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid #566073}.rolled-dice{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:100%}.rolled-die{color:#b8c9e4}.dice-total{font-size:2rem;color:#d8b65e}
@media(max-width:560px){.icon-dice-tray .dice-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.icon-dice-tray .dice-picker{gap:5px}.dice-tray-footer label{gap:6px}}

/* Shaded polyhedral artwork adapted from Daggerbrain (MIT). */
#modal:has(.icon-dice-tray){background:linear-gradient(135deg,#151d2cf5,#17182bea),url('/citadel.png') center/cover;border-color:#7e879a;box-shadow:0 20px 80px #0009,inset 0 1px #c5d2e533}
#modal:has(.icon-dice-tray) .modal-header{background:linear-gradient(90deg,#152433aa,#18213955);border-bottom-color:#bd9d5355}
.icon-dice-tray .dice-picker{padding:15px 7px 4px;border-radius:10px;background:linear-gradient(180deg,#11172277,#0b101aab);box-shadow:inset 0 2px 12px #0007,0 1px #b3c3df26}
.dimensional-die{position:relative;display:inline-flex;width:54px;height:58px;align-items:center;justify-content:center;filter:drop-shadow(2px 5px 3px #0008);transition:transform .16s}
.dimensional-die img{width:100%;height:100%;object-fit:contain}
.die-face-label{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font:bold 13px Overpass,sans-serif;color:#fff4d7;text-shadow:0 1px 2px #000,1px 0 2px #000}
.pick-die:hover .dimensional-die{transform:translateY(-3px) rotate(-4deg)}
.icon-dice-tray .pick-die.selected{background:#d8b65e10;border-color:#d8b65e77;box-shadow:inset 0 0 15px #d8b65e0a}
.icon-dice-tray .dice-tray-result{background:#0e142455;border-radius:8px;padding:16px 10px;border-top-color:#d8b65e55}
@media(prefers-reduced-motion:reduce){.dimensional-die{transition:none}.pick-die:hover .dimensional-die{transform:none}}

#modal:has(.icon-dice-tray){max-width:640px}
#modal:has(.icon-dice-tray) .modal-body{padding:16px 20px}
.icon-dice-tray .dice-picker{padding:6px 3px 0;gap:3px}
.icon-dice-tray .pick-die{padding:3px 1px}
.gemstone-die{width:52px;height:52px;background-image:url('/dice-art/gemstone-dice.png');background-size:400% 200%;background-position:var(--die-x) var(--die-y);background-repeat:no-repeat;filter:drop-shadow(0 3px 3px #0008)}
.icon-dice-tray .remove-die{min-height:28px;height:28px;font-size:1rem}
.icon-dice-tray .dice-caption{margin-top:0}
.icon-dice-tray .dice-pool-bar{padding:5px 0;margin:8px 0}
.icon-dice-tray .dice-tray-result{margin-top:10px;padding:8px}
.rolled-die{display:flex;flex-direction:column;align-items:center}.rolled-value{font-weight:600;color:#dfc17b;font-size:.85rem}
@media(max-width:560px){.icon-dice-tray .remove-die{min-height:44px}.gemstone-die{width:48px;height:48px}}

#animated-dice-stage{position:relative;width:100%;height:220px;overflow:hidden}#animated-dice-stage canvas{width:100%;height:100%;display:block}.rolling-status{font-size:.8rem;color:#d8b65e}
.assassin-effect-heading{align-items:flex-start}.assassin-effect-heading h3{margin-top:0!important}
.play-features .assassin-effect-heading{align-items:flex-start}.play-features .assassin-effect-heading>button,.play-features .assassin-effect-heading>.assassin-actions{align-self:flex-start}

/* Compact felt table with a warm timber rail. */
#animated-dice-stage{height:240px;border:9px solid #49372a;border-radius:14px;background:radial-gradient(ellipse at 45% 40%,#35555255,transparent 72%),repeating-linear-gradient(32deg,#ffffff03 0 1px,transparent 1px 3px),repeating-linear-gradient(122deg,#0000000b 0 1px,transparent 1px 3px),#182f32;box-shadow:inset 0 0 0 1px #b6975555,inset 0 5px 22px #000a,0 0 0 1px #8c6a45,0 3px 10px #0007}
.gemstone-die{filter:contrast(.8) saturate(.78) brightness(1.08) blur(.18px) drop-shadow(0 0 3px #66c5f344) drop-shadow(0 3px 2px #0008)}
.hope .gemstone-die{filter:contrast(.8) saturate(.78) brightness(1.08) blur(.18px) drop-shadow(0 0 3px #efbd5c66)}
.fear .gemstone-die{filter:contrast(.8) saturate(.78) brightness(1.08) blur(.18px) drop-shadow(0 0 3px #ba80e566)}
@media(max-width:560px){#animated-dice-stage{height:220px;border-width:7px}}

.dice-table-host{margin-top:10px}.icon-dice-tray .dice-tray-result,.icon-dice-tray .dice-tray-result:empty{display:flex;height:86px;min-height:86px;overflow:auto;align-content:center;box-sizing:border-box;margin-top:6px;padding:6px;gap:6px}.icon-dice-tray .dice-pool{max-height:40px;overflow:auto}
#animated-dice-stage{height:220px}.icon-dice-tray .dice-tray-result,.icon-dice-tray .dice-tray-result:empty{height:64px;min-height:64px}.icon-dice-tray .dice-total{font-size:1.6rem}

/* Picker material uses the same palette as the physics dice. */
.gemstone-die,.hope .gemstone-die,.fear .gemstone-die{filter:drop-shadow(0 2px 2px #0009) drop-shadow(0 0 2px color-mix(in srgb,var(--die-color) 35%,transparent))}
.gemstone-die:after{content:"";position:absolute;inset:0;background:var(--die-color);opacity:.78;mask-image:url('/dice-art/gemstone-dice.png');mask-size:400% 200%;mask-position:var(--die-x) var(--die-y);mask-repeat:no-repeat;pointer-events:none}

.model-die{width:52px;height:52px;filter:drop-shadow(0 3px 2px #0008)}.model-die img{width:100%;height:100%}.hope .model-die{filter:drop-shadow(0 2px 3px #e4b94e25)}.fear .model-die{filter:drop-shadow(0 2px 3px #8052b425)}

/* Limited-use text flows independently of the adjacent charge control. */
.play-features .assassin-limited{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:12px;align-content:start}
.play-features .assassin-limited>.assassin-effect-heading{display:contents}
.play-features .assassin-limited>.assassin-effect-heading>h3{grid-column:1;grid-row:1}
.play-features .assassin-limited>.assassin-effect-heading>.ability-charge{grid-column:2;grid-row:1 / span 20;align-self:start}
.play-features .assassin-limited>:not(.assassin-effect-heading){grid-column:1;min-width:0;justify-self:start}
.play-features .assassin-limited>.assassin-hint{margin:4px 0 6px}
.play-features .assassin-limited>.bard-eloquent{margin:4px 0 8px;width:100%}
.play-features .assassin-limited>.known-poisons .poison-description{overflow-wrap:anywhere}

.recharge-badge{box-sizing:border-box;height:24px;padding:0 7px;gap:5px;align-items:center;white-space:nowrap;line-height:1}
.recharge-badge svg{display:block;width:14px;height:14px;margin:0;align-self:center}
.recharge-badge .recharge-label{display:block;font:inherit;line-height:14px;margin:0;padding:0;transform:translateY(1px)}

/* Consistent thin blue-gray edging on the four primary title strips. */
@media screen{
html[data-theme] :is(.vitals>.ribbon-title,.feature-view-tabs>.ribbon-title,.weapon-summary>.ribbon-title,.experiences-section>.ribbon-title){isolation:isolate;opacity:1;border:1px solid transparent;background:#b8c7d6;color:#d8dce5;box-shadow:none}
html[data-theme] :is(.vitals>.ribbon-title,.feature-view-tabs>.ribbon-title,.weapon-summary>.ribbon-title,.experiences-section>.ribbon-title)::before{content:"";position:absolute;inset:0;z-index:-1;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%);background:#202633;box-shadow:inset 0 1px 0 #ffffff12,inset 0 -1px 2px #0005}
html[data-theme] .play-features .feature-view-tabs .ribbon-title{color:#d8dce5;border-color:transparent;background:#b8c7d6}
html[data-theme] .feature-view-tabs .ribbon-title[aria-selected="false"]::before{background:#171e2a;box-shadow:inset 0 2px 4px #0008}
html[data-theme] .feature-view-tabs .ribbon-title[aria-selected="true"]::before{background:#2b3340}
html[data-theme="paper"] :is(.vitals>.ribbon-title,.feature-view-tabs>.ribbon-title,.weapon-summary>.ribbon-title,.experiences-section>.ribbon-title){color:#3f3947;background:#b0a28b}
html[data-theme="paper"] :is(.vitals>.ribbon-title,.feature-view-tabs>.ribbon-title,.weapon-summary>.ribbon-title,.experiences-section>.ribbon-title)::before{background:#ede7db}
html[data-theme="paper"] .feature-view-tabs .ribbon-title[aria-selected="false"]::before{background:#d9d0c1}
.play-features .feature-view-tabs .ribbon-title:hover{filter:brightness(1.08)}
}

/* Class resources reuse the sheet track language outside the Hope ability. */
.class-resource-track{margin-top:12px;padding-top:10px;border-top:1px solid #78849c66}
.class-resource-track .resource{margin:0}.class-resource-track .pips{display:flex;gap:9px;flex-wrap:wrap}
.class-resource-track .pip{width:24px;height:24px;border-radius:50%;border:1px solid #b8c7d6;background:#171e2a}
.class-resource-track .pip.on{background:#b8c7d6;box-shadow:inset 0 0 0 4px #202633}
.play-features .brawler-actions{display:flex;flex-wrap:wrap;gap:5px;padding:0;border:0;background:none;min-width:0;max-width:86px}
.brawler-actions:empty{display:none}.brawler-actions .icon-action{width:36px;height:36px;min-width:36px;padding:6px}
.brawler-actions .hope-ability-diamond{width:13px;height:13px;margin:0}
.brawler-trait{max-width:100%;font-size:.78rem}.brawler-trait select{width:100%;margin-top:4px}
.brawler-stance-list .assassin-effect-heading{gap:10px}.brawler-stance-list .assassin-actions{flex-shrink:0}

.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge.brawler-actions{display:flex;flex-wrap:nowrap;gap:5px;padding:0;border:0;background:none;min-width:0;min-height:0;max-width:none}
.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge.brawler-actions:empty{display:none}

.brawler-actions .hope-ability-diamond{display:block;flex:none;border:2px solid #d7ae50;transform:rotate(45deg);background:transparent;border-radius:0}

/* Stance descriptions share the title column, independently of control height. */
.brawler-stance-list .assassin-effect{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:12px;align-content:start}
.brawler-stance-list .assassin-effect-heading{display:contents}
.brawler-stance-list .assassin-effect-heading>h3{grid-column:1;grid-row:1;margin:0!important;line-height:1.35}
.brawler-stance-list .assassin-actions{grid-column:2;grid-row:1 / span 2;align-self:start}
.brawler-stance-list .assassin-hint{grid-column:1;grid-row:2;min-width:0;margin:4px 0 0;overflow-wrap:anywhere}
/* Fill the existing experience panel instead of trapping entries in a two-row window. */
.sheet-tracks>.experiences-section{justify-content:flex-start;min-height:0}
.experiences-section .experience-list{flex:1 1 0;min-height:92px;height:0;max-height:none}
@media(max-width:760px){.experiences-section .experience-list{flex:0 1 auto;height:auto;max-height:270px}}

/* Long character names must not widen the sheet on phones. */
.sheet-calling{min-width:0}.sheet-calling h1{overflow-wrap:anywhere}

/* The Dread raster already contains its white sigil; silhouette filters turn its background into a solid square. */
img[src$="/domains/dread.png"]{filter:none!important}

.character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge.refocus-die{width:40px;min-width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center}.refocus-die svg{width:22px;height:22px;margin:0;flex:none}.character-sheet .refocus-die.is-ready{color:#efd17d;border-color:#b89b52;background:#d8b65e18;box-shadow:0 0 8px #d8b65e20}.character-sheet .refocus-die.is-used{color:#a6aeb9;border-color:#77818f55;background:#77818f12;box-shadow:none}

/* Used ability charges stay neutral, including pressed icon controls. */
html[data-theme] .character-sheet :is(.assassin-limited,.ranger-effect) .ability-charge.is-used{color:#a6aeb9;border-color:#77818f55;background:#77818f12;box-shadow:none}

/* Bard: one song group, independent uses, and a stable home for the held die. */
.play-features .bard-songs>.assassin-effect{border:0;margin:0;padding:0 0 12px}
.play-features .bard-songs>.assassin-effect:last-of-type{padding-bottom:6px}
.play-features .bard-rally>.bard-rally-footer{grid-column:1 / -1;display:flex;align-items:end;justify-content:space-between;width:100%;margin-top:4px;min-height:44px}
.bard-rally-footer .rally-die-token{width:44px;height:44px;flex:none}
.bard-rally-footer .rally-die-token:disabled{visibility:hidden}
.rally-held .rally-usage{margin:4px 0 0}

.play-features .bard-rally>.rally-usage{grid-column:1 / -1}

/* Shared availability presentation across all Active feature sources. */
html[data-theme] .character-sheet .ability-charge.availability-control{width:44px;min-width:44px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}
html[data-theme] .character-sheet .ability-charge:is(.availability-control,.effect-state).is-ready{color:#9dc5aa;border-color:#8fbc9d66;background:#8fbc9d0d}
html[data-theme] .character-sheet .ability-charge.effect-state.is-active{color:#9dc5aa;border-color:#8fbc9d66;background:#8fbc9d0d;font-size:14px;font-weight:600;width:76px;min-width:76px;justify-content:center}
html[data-theme] .character-sheet .ability-charge:is(.availability-control,.effect-state).is-used{color:#8995a5;border-color:#77818f55;background:#77818f12}
html[data-theme] .character-sheet .ability-charge:is(.availability-control,.effect-state).is-used .ability-charge-dot{background:transparent}
/* Ready dots must retain their geometry even in older inline-button adapters. */
.character-sheet .ability-charge-dot{display:inline-block;box-sizing:border-box;min-width:12px;min-height:12px;vertical-align:middle}
/* Assassin: text and action occupy independent columns. */
#assassin-active{gap:0!important}
#assassin-active>section{display:grid;grid-template-columns:minmax(0,1fr) 76px;column-gap:12px;row-gap:5px;align-content:start;margin:0;padding:16px 0!important}
#assassin-active>section:first-child{padding-top:0!important}
#assassin-active>section:last-child{border-bottom:0}
#assassin-active>section>.assassin-effect-heading{display:contents}
#assassin-active>section>.assassin-effect-heading>h3{grid-column:1;grid-row:1;line-height:1.35;margin:0!important}
#assassin-active>section>.assassin-effect-heading>:is(button,.assassin-actions){grid-column:2;grid-row:1/span 4;justify-self:end;align-self:start}
#assassin-active>section>:not(.assassin-effect-heading){grid-column:1;min-width:0;margin:0;justify-self:start}
#assassin-active>section>.assassin-hint{line-height:1.5}
#assassin-active>section>small{line-height:1.5}
#assassin-active>section>.recharge-badge{margin-top:2px}
#assassin-active>section:has(.poison-counter){grid-template-columns:minmax(0,1fr) max-content}
html[data-theme] .character-sheet .ability-charge[data-assassin="mark"][data-control-mold="resource"].is-ready{width:76px;min-width:76px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:#efd38a;border-color:#b89b5266;background:#b89b5212;box-shadow:none}
html[data-theme="paper"] .character-sheet .ability-charge[data-assassin="mark"][data-control-mold="resource"].is-ready{color:#80601e;border-color:#a68b50;background:#eee4ce}

/* One divider rhythm for every class/subclass feature panel. */
.character-sheet .play-features{--feature-divider-inset:8px}
.character-sheet .play-features>:is(#assassin-active,.feature-layout){row-gap:0!important}
.character-sheet .play-features>:is(#assassin-active,.feature-layout)>section{margin-top:0!important;margin-bottom:0!important;padding-top:var(--feature-divider-inset)!important;padding-bottom:12px!important}
.character-sheet .play-features>:is(#assassin-active,.feature-layout)>section:first-child{padding-top:0!important}
.character-sheet .play-features>.feature-layout>section h3{margin-top:0!important}

/* Panels must include their scrolling inset inside the shared column width. */
.character-sheet .play-features,.character-sheet .play-features>.feature-layout{min-width:0;max-width:100%;box-sizing:border-box}
.character-sheet .ranger-active>section{min-width:0;max-width:100%;box-sizing:border-box}
.character-sheet .ranger-summary,.character-sheet .ranger-experiences{min-width:0;max-width:100%}
.character-sheet .crest-evasion.has-conditional-evasion b{top:22%}
.character-sheet .crest-evasion .conditional-evasion{position:absolute;top:49%;left:4%;width:92%;text-align:center;font:8px/1.05 Overpass,sans-serif;color:inherit;pointer-events:none}
@media(max-width:1150px){.character-sheet .crest-evasion.has-conditional-evasion b{top:20%;font-size:22px}.character-sheet .crest-evasion .conditional-evasion{top:51%;font-size:7.5px}}

html[data-theme="blue"] .character-sheet .crest-evasion .conditional-evasion{color:#dfc17b}
html[data-theme="paper"] .character-sheet .crest-evasion .conditional-evasion{color:#80601e}
.character-sheet .ancestry-effect select.ancestry-target{width:84px;max-width:84px;height:30px;min-height:30px;padding:3px 6px;margin-top:6px;font:12px/1.2 Overpass,sans-serif;border-radius:5px}
