Hey guys, I'm drawing a mental blank. I know I can do this, but every attempt is failing at the moment. This works as intended: <div class="skillrow"> <details> <summary><span class="assassinlabel">Shock Attack</span></summary> <input type="checkbox" class="assassincheckbox shockattack" name="attr_shockattack" value="1" /> <div class="assassinroll shockattack"> <button class="roll d6" type="roll" value="&{template:default} {{name=@{character_name} delivers a Shock Attack!}} {{Dice Roll= [[1d6]]}} {{Result= 1 Stunned Opponent’s attack, defence and evasion are all at 0. 2 Aghast Opponent’s attack and evasion are at 0; defence is half normal. 3-4 Astonished Opponent’s attack is at 0; evasion and defence at half normal. 5-6 Surprised Opponent’s attack is at 0; evasion and defence are unimpaired}}" ></button> </div> <textarea class="assassinskilltext" readonly> An Assassin who successfully moves within 3 metres of an enemy without being noticed is then able to make a shock attack. The effect of this is automatic surprise (see p. 61). Additionally, if the Assassin’s rank is higher than that of his surprised opponent, he rolls d6 and consults the Shock Attack Table: Shock Attack Table Roll Description Effect 1 Stunned Opponent’s attack, defence and evasion are all at 0 2 Aghast Opponent’s attack and evasion are at 0; defence is half normal 3-4 Astonished Opponent’s attack is at 0; evasion and defence at half normal 5-6 Surprised Opponent’s attack is at 0; evasion and defence are unimpaired Any special effect from the above table lasts for a round, after which the victim may act normally. </textarea> </details> </div> input.assassincheckbox.shockattack:checked ~ .assassinroll.shockattack { display: grid; } .assassinroll.shockattack { display: none; } Now I want to replicate the roll button and visibility conditions on another tab of the sheet. I've tried using a hidden input with the same details, ie: <input type="hidden" class="assassincheckbox shockattack" name="attr_shockattack" value="1" /> But of course this doesn't store the checked value of the original checkbox. So I tried using the value in the CSS, instead of the checked status: input.assassincheckbox.shockattack:([value="1"]) ~ .assassinroll.shockattack { display: grid; } .assassinroll.shockattack { display: none; } And that just breaks everything... Urgh! I've tried a dozen different versions of punctuation etc. I am sure I have successfully done this before, but can't for the life of me remember how.