{{!-- Ring accent bar --}}
{{!-- Header: portrait + actor + ring badge --}}
{{!-- Context: skill (rank) → difficulty --}}
{{#if skill.name}}
{{skill.name}}
{{#if skill.rank}}{{localize (concat 'chiaroscuro.skill_ranks.' skill.rank)}}{{/if}}
→
{{/if}}
{{localize (concat 'chiaroscuro.difficulties.' difficulty.id)}}
{{!-- Formula: ring val [× multiplier] = nbDice d6 --}}
{{ring.value}}d6
{{#if useAspectPoint}}
{{#if useAssistance}}× 3{{else}}× 2{{/if}}
{{#ifCond aspectType '==' 'solar'}}☀{{else}}☽{{/ifCond}}{{#if useAssistance}} ⚑{{/if}}
{{else}}{{#if useAssistance}}
× 2 ⚑
{{/if}}{{/if}}
{{#if skill.bonus}}+{{skill.bonus}}{{/if}}
{{#if modifier}}{{#ifCond modifier '>' 0}}+{{/ifCond}}{{modifier}}{{/if}}
= {{nbDice}}d6
{{!-- Dice pool (raw, only shown if parangon adjusted) --}}
{{#if wasAdjusted}}
{{localize 'chiaroscuro.dice.raw_dice'}}
{{#each rawResults}}
{{this}}
{{/each}}
{{localize 'chiaroscuro.dice.adjusted_dice'}}
{{/if}}
{{!-- Dice pool (adjusted / main) --}}
{{#each adjustedResults}}
{{this}}
{{#if (lookup ../diceAdjustedFlags @index)}}{{/if}}
{{/each}}
{{!-- Breakdown: sum [+bonus] [±mod] = total / diff --}}
{{rawSum}}
{{#if skill.bonus}}
+{{skill.bonus}}
{{/if}}
{{#if modifier}}
{{#ifCond modifier '>' 0}}+{{/ifCond}}{{modifier}}
{{/if}}
=
{{total}}
/
{{difficulty.value}}
{{!-- Result banner --}}
{{#if success}}{{else}}{{/if}}
{{#if success}}{{localize 'chiaroscuro.dice.success'}}{{else}}{{localize 'chiaroscuro.dice.failure'}}{{/if}}
{{#if success}}{{#if bonus}}
+{{bonus}} {{localize 'chiaroscuro.dice.bonus_successes'}}
{{/if}}{{else}}{{#if missBy}}
−{{missBy}} {{localize 'chiaroscuro.dice.miss_by'}}
{{/if}}{{/if}}