/* D&D class themes. Same token contract as the other card styles. */

/* ---------- Barbarian: Rage of the Wild North ---------- */

[data-card-style="barbarian"] {
    --card-surface: #371c15;
    --card-surface-image:
        radial-gradient(ellipse at 88% 2%, rgba(140, 24, 18, 0.4), transparent 42%),
        radial-gradient(ellipse at 4% 100%, rgba(112, 18, 14, 0.55), transparent 46%),
        radial-gradient(ellipse at 22% 24%, rgba(158, 104, 66, 0.16), transparent 46%),
        var(--fibres),
        var(--grain);
    --card-surface-blend: normal, multiply, screen, multiply, overlay;
    --card-ink: #f4e7d5;
    --card-ink-soft: #d9b696;
    --card-ink-faint: #c9a37e;
    --card-accent: #e9584a;
    --card-accent-soft: rgba(233, 88, 74, 0.18);
    --card-rule: rgba(233, 88, 74, 0.5);
    --card-edge-width: 1mm;
    --card-edge-colour: #7a1d13;
    --card-radius: 0;
    --card-frame-inset: 3mm;
    --card-frame-width: 0.9mm;
    --card-frame-colour: rgba(122, 29, 19, 0.6);
    --card-title-font: "Uncial Antiqua", "Cinzel", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.05em;
    --card-label-spacing: 0.18em;
    --card-inner-shadow: inset 0 0 9mm rgba(10, 4, 3, 0.72);
    --card-decoration:
        linear-gradient(135deg, rgba(17, 8, 5, 0.95) 0 3.4mm, transparent 3.4mm),
        linear-gradient(225deg, rgba(17, 8, 5, 0.95) 0 2.2mm, transparent 2.2mm),
        linear-gradient(45deg, rgba(17, 8, 5, 0.95) 0 2.6mm, transparent 2.6mm),
        linear-gradient(315deg, rgba(17, 8, 5, 0.95) 0 4.2mm, transparent 4.2mm),
        repeating-linear-gradient(45deg, rgba(15, 7, 4, 0.8) 0 0.8mm, transparent 0.8mm 1.9mm, rgba(15, 7, 4, 0.5) 1.9mm 2.4mm, transparent 2.4mm 3.6mm),
        repeating-linear-gradient(135deg, rgba(15, 7, 4, 0.9) 0 1.2mm, transparent 1.2mm 2.4mm, rgba(15, 7, 4, 0.6) 2.4mm 3mm, transparent 3mm 4.4mm),
        linear-gradient(to top, rgba(13, 6, 4, 0.85), transparent);
    --card-decoration-position: top left, top right, bottom left, bottom right, left top, left bottom, left bottom;
    --card-decoration-size: 7mm 7mm, 5mm 5mm, 6mm 6mm, 8mm 8mm, 100% 1.6mm, 100% 3mm, 100% 10mm;
}

[data-card-style="barbarian"] .print-card-header,
[data-card-style="barbarian"] .sheet-title-block {
    padding: 1mm 1.6mm 1.4mm;
    background: linear-gradient(180deg, rgba(16, 7, 5, 0.92), rgba(16, 7, 5, 0.4));
    border-bottom: 0.9mm solid var(--card-accent);
    border-image: repeating-linear-gradient(90deg, #e9584a 0 3.2mm, #b23425 3.2mm 4.1mm, #e9584a 4.1mm 5.6mm, #9a2a1d 5.6mm 6.2mm) 1;
}

/* ---------- Bard: wine velvet, gold leaf and a centred playbill ---------- */

[data-card-style="bard"] {
    --card-surface: #2e1434;
    --card-surface-image:
        radial-gradient(ellipse at 50% -4%, rgba(238, 196, 116, 0.13), transparent 56%),
        repeating-linear-gradient(
            90deg,
            rgba(112, 40, 96, 0.18) 0 1.4mm,
            transparent 1.4mm 4.6mm
        ),
        radial-gradient(ellipse at 50% 112%, rgba(18, 5, 24, 0.6), transparent 58%),
        var(--grain);
    --card-surface-blend: screen, screen, multiply, overlay;
    --card-ink: #f7e9d6;
    --card-ink-soft: #d8bda9;
    --card-ink-faint: #c2a2b0;
    --card-accent: #e6bb63;
    --card-accent-soft: rgba(230, 187, 99, 0.15);
    --card-rule: rgba(230, 187, 99, 0.42);
    --card-edge-width: 0.7mm;
    --card-edge-colour: #c99a45;
    --card-radius: 1.5mm;
    --card-frame-inset: 2.8mm;
    --card-frame-width: 0.22mm;
    --card-frame-colour: rgba(230, 187, 99, 0.45);
    --card-title-font: "Cormorant Unicase", "EB Garamond", Georgia, serif;
    --card-title-weight: 700;
    --card-title-transform: none;
    --card-title-spacing: 0.05em;
    --card-label-spacing: 0.18em;
    --card-inner-shadow: inset 0 0 8mm rgba(18, 4, 24, 0.62);
    --card-decoration:
        radial-gradient(
            circle 4mm at 0 0,
            transparent 0 1.3mm,
            rgba(230, 187, 99, 0.6) 1.3mm 1.5mm,
            transparent 1.5mm 2.46mm,
            rgba(230, 187, 99, 0.85) 2.46mm 2.7mm,
            transparent 2.7mm
        ),
        radial-gradient(
            circle 4mm at 100% 0,
            transparent 0 1.3mm,
            rgba(230, 187, 99, 0.6) 1.3mm 1.5mm,
            transparent 1.5mm 2.46mm,
            rgba(230, 187, 99, 0.85) 2.46mm 2.7mm,
            transparent 2.7mm
        ),
        radial-gradient(
            circle 4mm at 0 100%,
            transparent 0 1.3mm,
            rgba(230, 187, 99, 0.6) 1.3mm 1.5mm,
            transparent 1.5mm 2.46mm,
            rgba(230, 187, 99, 0.85) 2.46mm 2.7mm,
            transparent 2.7mm
        ),
        radial-gradient(
            circle 4mm at 100% 100%,
            transparent 0 1.3mm,
            rgba(230, 187, 99, 0.6) 1.3mm 1.5mm,
            transparent 1.5mm 2.46mm,
            rgba(230, 187, 99, 0.85) 2.46mm 2.7mm,
            transparent 2.7mm
        );
    --card-decoration-position:
        2.8mm 2.8mm,
        calc(100% - 2.8mm) 2.8mm,
        2.8mm calc(100% - 2.8mm),
        calc(100% - 2.8mm) calc(100% - 2.8mm);
    --card-decoration-size: 5mm 5mm, 5mm 5mm, 5mm 5mm, 5mm 5mm;
}

[data-card-style="bard"] .print-card-header,
[data-card-style="bard"] .sheet-title-block {
    padding: 0.9mm 1.6mm 1.3mm;
    text-align: center;
    background: linear-gradient(180deg, rgba(230, 187, 99, 0.16), rgba(230, 187, 99, 0.02));
    border-bottom: 0.55mm double var(--card-accent);
}

/* ---------- Cleric: temple silver ---------- */

[data-card-style="cleric"] {
    --card-surface: #e9ebf0;
    --card-surface-image:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0) 46%),
        radial-gradient(ellipse at 50% 116%, rgba(148, 170, 198, 0.26), transparent 60%),
        var(--grain);
    --card-surface-blend: screen, multiply, soft-light;
    --card-ink: #1e2733;
    --card-ink-soft: #435269;
    --card-ink-faint: #57687f;
    --card-accent: #43628b;
    --card-accent-soft: rgba(67, 98, 139, 0.13);
    --card-rule: rgba(67, 98, 139, 0.38);
    --card-edge-width: 0.5mm;
    --card-edge-colour: #93a8c2;
    --card-radius: 0;
    --card-frame-inset: 2.8mm;
    --card-frame-width: 0.2mm;
    --card-frame-colour: rgba(67, 98, 139, 0.34);
    --card-title-font: "Cinzel", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.14em;
    --card-label-spacing: 0.16em;
    --card-inner-shadow: inset 0 0 6mm rgba(108, 132, 164, 0.2);
    --card-decoration:
        linear-gradient(rgba(67, 98, 139, 0.55), rgba(67, 98, 139, 0.55)),
        linear-gradient(rgba(67, 98, 139, 0.55), rgba(67, 98, 139, 0.55)),
        linear-gradient(rgba(67, 98, 139, 0.34), rgba(67, 98, 139, 0.34)),
        linear-gradient(rgba(67, 98, 139, 0.34), rgba(67, 98, 139, 0.34)),
        linear-gradient(rgba(67, 98, 139, 0.55), rgba(67, 98, 139, 0.55)),
        linear-gradient(rgba(67, 98, 139, 0.55), rgba(67, 98, 139, 0.55)),
        radial-gradient(ellipse at 50% 0%, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0) 70%);
    --card-decoration-position:
        3.3mm 6.4mm,
        calc(100% - 5.3mm) 6.4mm,
        4.2mm 7mm,
        calc(100% - 4.42mm) 7mm,
        3.3mm calc(100% - 6.7mm),
        calc(100% - 5.3mm) calc(100% - 6.7mm),
        50% 0;
    --card-decoration-size:
        2mm 0.3mm,
        2mm 0.3mm,
        0.22mm calc(100% - 14mm),
        0.22mm calc(100% - 14mm),
        2mm 0.3mm,
        2mm 0.3mm,
        100% 20mm;
}

[data-card-style="cleric"] .print-card-header,
[data-card-style="cleric"] .sheet-title-block {
    padding: 1mm 1.4mm 1.2mm;
    text-align: center;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.75), rgba(154, 176, 204, 0.18));
    border-top: 0.2mm solid var(--card-rule);
    border-bottom: 0.2mm solid var(--card-rule);
    box-shadow: 0 0.7mm 0 -0.2mm rgba(67, 98, 139, 0.3);
}

/* Druid — autumn grove */

[data-card-style="druid"] {
    --card-surface: #e8d2a4;
    --card-surface-image:
        repeating-radial-gradient(
            circle at 0% 100%,
            rgba(124, 86, 40, 0.12) 0 0.3mm,
            transparent 0.3mm 3mm
        ),
        radial-gradient(ellipse at 94% 2%, rgba(206, 138, 44, 0.24), transparent 46%),
        radial-gradient(ellipse at 2% 98%, rgba(104, 124, 54, 0.28), transparent 44%),
        var(--grain);
    --card-surface-blend: multiply, multiply, multiply, overlay;
    --card-ink: #2a1e10;
    --card-ink-soft: #503a18;
    --card-ink-faint: #6a5024;
    --card-accent: #4a6124;
    --card-accent-soft: rgba(74, 97, 36, 0.15);
    --card-rule: rgba(90, 68, 32, 0.45);
    --card-edge-width: 0.8mm;
    --card-edge-colour: #7a5526;
    --card-radius: 5.5mm;
    --card-frame-inset: 2.8mm;
    --card-frame-width: 0.22mm;
    --card-frame-colour: rgba(74, 97, 36, 0.5);
    --card-title-font: "IM Fell English", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: none;
    --card-title-spacing: 0.03em;
    --card-label-spacing: 0.13em;
    --card-inner-shadow: inset 0 0 7mm rgba(96, 64, 28, 0.3);
    --card-decoration:
        repeating-radial-gradient(circle at 0% 100%, rgba(112, 76, 34, 0.34) 0 0.26mm, transparent 0.26mm 1.5mm);
    --card-decoration-position: 0 100%;
    --card-decoration-size: 15mm 15mm;
}

[data-card-style="druid"] .print-card-header,
[data-card-style="druid"] .sheet-title-block {
    padding: 0.9mm 1.6mm 1.2mm;
    background: linear-gradient(180deg, rgba(206, 148, 52, 0.2), rgba(206, 148, 52, 0));
    border-bottom: 0.3mm solid rgba(74, 97, 36, 0.55);
    border-radius: 2.8mm 2.8mm 1.4mm 1.4mm;
}

/* Fighter — tempered steel plate banded in crimson */
[data-card-style="fighter"] {
    --card-surface: #c9d0d6;
    --card-surface-image:
        linear-gradient(180deg, rgba(255, 255, 255, 0.32) 0, rgba(255, 255, 255, 0) 22mm),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.16) 0 0.3mm, rgba(34, 42, 50, 0.10) 0.3mm 0.75mm),
        linear-gradient(102deg, rgba(255, 255, 255, 0.34) 0 16%, rgba(88, 100, 112, 0.16) 38%, rgba(255, 255, 255, 0.30) 58%, rgba(88, 100, 112, 0.18) 78%, rgba(255, 255, 255, 0.22) 100%),
        var(--grain),
        linear-gradient(180deg, #d8dde1 0%, #cbd1d7 62%, #bfc6cc 100%);
    --card-surface-blend: normal, overlay, soft-light, soft-light, normal;
    --card-ink: #16191d;
    --card-ink-soft: #2b3238;
    --card-ink-faint: #40474e;
    --card-accent: #8b1721;
    --card-accent-soft: rgba(139, 23, 33, 0.13);
    --card-rule: rgba(42, 50, 58, 0.5);
    --card-edge-width: 1mm;
    --card-edge-colour: #232930;
    --card-radius: 0;
    --card-frame-inset: 2.4mm;
    --card-frame-width: 0.4mm;
    --card-frame-colour: rgba(139, 23, 33, 0.8);
    --card-title-font: "Cinzel", Georgia, serif;
    --card-title-weight: 700;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.16em;
    --card-label-spacing: 0.2em;
    --card-inner-shadow: inset 0 0 5mm rgba(26, 32, 38, 0.22);
    --card-decoration:
        linear-gradient(180deg, rgba(0, 0, 0, 0) 0 calc(100% - 2.2mm), rgba(28, 34, 40, 0.9) calc(100% - 2.2mm) calc(100% - 1.85mm), rgba(139, 23, 33, 0.95) calc(100% - 1.85mm) 100%),
        linear-gradient(90deg, rgba(36, 44, 52, 0.32) 0 0.4mm, rgba(36, 44, 52, 0.08) 0.4mm 1.4mm, rgba(36, 44, 52, 0) 1.4mm calc(100% - 1.4mm), rgba(36, 44, 52, 0.08) calc(100% - 1.4mm) calc(100% - 0.4mm), rgba(36, 44, 52, 0.32) calc(100% - 0.4mm) 100%);
    --card-decoration-position: center center, center center;
    --card-decoration-size: 100% 100%, 100% 100%;
}

[data-card-style="fighter"] .print-card-header,
[data-card-style="fighter"] .sheet-title-block {
    --card-accent: #f5efec;
    --card-ink: #f2ebe8;
    --card-ink-soft: #e6d8d6;
    --card-ink-faint: #d8c3c3;
    --card-rule: rgba(255, 255, 255, 0.35);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0 40%, rgba(0, 0, 0, 0.14) 40% 100%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.05) 0 0.3mm, rgba(0, 0, 0, 0.05) 0.3mm 0.6mm),
        linear-gradient(180deg, #8d1822 0%, #6f1119 100%);
    color: #f2ebe8;
    border-top: 0.5mm solid #2a3037;
    border-bottom: 0.9mm solid #2a3037;
    box-shadow: inset 0 0 2mm rgba(0, 0, 0, 0.35);
    padding-block: 1.5mm;
}

/* Monk — jade ink on rice-paper ivory */

[data-card-style="monk"] {
    --card-surface: #f2efe1;
    --card-surface-image:
        linear-gradient(180deg, rgba(255, 253, 244, 0.75), rgba(255, 253, 244, 0) 46%),
        var(--fibres);
    --card-surface-blend: screen, overlay;
    --card-ink: #232520;
    --card-ink-soft: #4d574f;
    --card-ink-faint: #5f6a60;
    --card-accent: #206b5d;
    --card-accent-soft: rgba(32, 107, 93, 0.08);
    --card-rule: rgba(32, 107, 93, 0.28);
    --card-edge-width: 0.2mm;
    --card-edge-colour: rgba(32, 107, 93, 0.3);
    --card-radius: 0;
    --card-frame-inset: 2.8mm;
    --card-frame-width: 0mm;
    --card-frame-colour: transparent;
    --card-title-font: "EB Garamond", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.16em;
    --card-label-spacing: 0.2em;
    --card-inner-shadow: inset 0 0 10mm rgba(120, 112, 88, 0.08);
    --card-decoration:
        radial-gradient(
            ellipse 22mm 16mm at 100% 100%,
            rgba(32, 107, 93, 0.42),
            rgba(32, 107, 93, 0.12) 46%,
            transparent 76%
        );
    --card-decoration-position: bottom right;
    --card-decoration-size: 26mm 20mm;
}

[data-card-style="monk"] .print-card-header,
[data-card-style="monk"] .sheet-title-block {
    padding-bottom: 2.4mm;
    border-bottom: none;
    background-image: linear-gradient(
        90deg,
        rgba(32, 107, 93, 0.9) 0 46%,
        rgba(32, 107, 93, 0.5) 74%,
        rgba(32, 107, 93, 0) 100%
    );
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 100% 0.3mm;
}

/* Paladin — Oath of Devotion */
[data-card-style="paladin"] {
    --card-surface: #f6f1e4;
    --card-surface-image:
        linear-gradient(160deg, rgba(255, 253, 246, 0.85) 0%, rgba(240, 232, 214, 0.4) 55%, rgba(224, 212, 186, 0.55) 100%),
        repeating-linear-gradient(90deg, rgba(26, 58, 122, 0.05) 0 0.35mm, rgba(26, 58, 122, 0) 0.35mm 2.4mm),
        radial-gradient(circle at 50% 34%, rgba(198, 162, 74, 0.16) 0 14mm, rgba(198, 162, 74, 0) 26mm),
        var(--grain);
    --card-surface-blend: normal, multiply, multiply, multiply;
    --card-ink: #1b2230;
    --card-ink-soft: #3d4459;
    --card-ink-faint: #5d5233;
    --card-accent: #1a3a7a;
    --card-accent-soft: rgba(26, 58, 122, 0.12);
    --card-rule: rgba(26, 58, 122, 0.42);
    --card-edge-width: 1.1mm;
    --card-edge-colour: #14306a;
    --card-radius: 0.8mm;
    --card-frame-inset: 2.6mm;
    --card-frame-width: 0.4mm;
    --card-frame-colour: #b08a37;
    --card-title-font: "Cinzel", Georgia, serif;
    --card-title-weight: 700;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.16em;
    --card-label-spacing: 0.13em;
    --card-inner-shadow: inset 0 0 4mm rgba(26, 58, 122, 0.14);
    --card-decoration:
        linear-gradient(180deg, rgba(176, 138, 55, 0.9) 0 0.3mm, rgba(176, 138, 55, 0) 0.3mm),
        linear-gradient(0deg, rgba(176, 138, 55, 0.9) 0 0.3mm, rgba(176, 138, 55, 0) 0.3mm),
        conic-gradient(from 45deg at 100% 0%, rgba(26, 58, 122, 0.5) 0 90deg, rgba(26, 58, 122, 0) 90deg),
        conic-gradient(from 135deg at 0% 0%, rgba(26, 58, 122, 0.5) 0 90deg, rgba(26, 58, 122, 0) 90deg),
        linear-gradient(90deg, rgba(176, 138, 55, 0) 0, rgba(176, 138, 55, 0.55) 45%, rgba(176, 138, 55, 0.55) 55%, rgba(176, 138, 55, 0) 100%);
    --card-decoration-position: 0 0, 0 100%, 100% 0, 0 0, 50% 100%;
    --card-decoration-size: 100% 0.3mm, 100% 0.3mm, 5mm 5mm, 5mm 5mm, 70% 0.5mm;
}

[data-card-style="paladin"] .print-card-header,
[data-card-style="paladin"] .sheet-title-block {
    background:
        linear-gradient(180deg, #24468c 0%, #1a3a7a 62%, #142c5e 100%),
        linear-gradient(90deg, rgba(198, 162, 74, 0.25) 0 0.5mm, rgba(198, 162, 74, 0) 0.5mm 3mm);
    color: #f8f4e8;
    border-top: 0.5mm solid #c6a24a;
    border-bottom: 0.5mm solid #c6a24a;
    box-shadow: inset 0 0.9mm 0 rgba(246, 236, 206, 0.35), inset 0 -0.9mm 0 rgba(9, 20, 46, 0.45);
    padding: 1.8mm 2.4mm;
    text-align: center;
    text-shadow: 0 0.2mm 0 rgba(9, 20, 46, 0.6);
}

/* Ranger — forest green field, worn leather edge, waxed-thread stitching */

[data-card-style="ranger"] {
    --card-surface: #202d20;
    --card-surface-image:
        radial-gradient(ellipse at 20% -8%, rgba(150, 176, 116, 0.3), transparent 58%),
        radial-gradient(ellipse at 92% 108%, rgba(126, 88, 46, 0.34), transparent 50%),
        var(--fibres),
        var(--grain);
    --card-surface-blend: screen, screen, overlay, overlay;
    --card-ink: #ecdfc6;
    --card-ink-soft: #c9bb9c;
    --card-ink-faint: #afae92;
    --card-accent: #c69a60;
    --card-accent-soft: rgba(198, 154, 96, 0.15);
    --card-rule: rgba(198, 154, 96, 0.38);
    --card-edge-width: 1.1mm;
    --card-edge-colour: #6b4a2a;
    --card-radius: 1.6mm;
    --card-frame-inset: 2.9mm;
    --card-frame-width: 0.15mm;
    --card-frame-colour: rgba(198, 154, 96, 0.24);
    --card-title-font: "IM Fell English", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.06em;
    --card-label-spacing: 0.13em;
    --card-inner-shadow: inset 0 0 7mm rgba(10, 18, 10, 0.55);
    --card-decoration:
        repeating-linear-gradient(90deg, rgba(216, 196, 152, 0.62) 0 1.3mm, transparent 1.3mm 2.6mm),
        repeating-linear-gradient(90deg, rgba(216, 196, 152, 0.62) 0 1.3mm, transparent 1.3mm 2.6mm),
        repeating-linear-gradient(180deg, rgba(216, 196, 152, 0.62) 0 1.3mm, transparent 1.3mm 2.6mm),
        repeating-linear-gradient(180deg, rgba(216, 196, 152, 0.62) 0 1.3mm, transparent 1.3mm 2.6mm);
    --card-decoration-position:
        3.2mm 1.5mm,
        3.2mm calc(100% - 1.5mm),
        1.5mm 3.2mm,
        calc(100% - 1.5mm) 3.2mm;
    --card-decoration-size:
        calc(100% - 6.4mm) 0.3mm,
        calc(100% - 6.4mm) 0.3mm,
        0.3mm calc(100% - 6.4mm),
        0.3mm calc(100% - 6.4mm);
}

[data-card-style="ranger"] .print-card-header,
[data-card-style="ranger"] .sheet-title-block {
    padding: 0.8mm 1.4mm 1.1mm;
    background: linear-gradient(180deg, rgba(107, 74, 42, 0.45), rgba(107, 74, 42, 0.08));
    border-bottom: 0.3mm dashed rgba(216, 196, 152, 0.7);
}

/* 21. Rogue — Shadowclad */

[data-card-style="rogue"] {
    --card-surface: #1e2120;
    --card-surface-image:
        linear-gradient(
            118deg,
            rgba(0, 0, 0, 0.46) 0 28%,
            rgba(0, 0, 0, 0.42) 28% 45%,
            rgba(0, 0, 0, 0.14) 45.5% 61%,
            transparent 61.5%
        ),
        radial-gradient(ellipse 60% 48% at 86% 4%, rgba(146, 164, 148, 0.1), transparent 62%),
        var(--grain);
    --card-surface-blend: multiply, screen, overlay;
    --card-ink: #e8ece9;
    --card-ink-soft: #c2cbc4;
    --card-ink-faint: #97a09a;
    --card-accent: #a3e04a;
    --card-accent-soft: rgba(163, 224, 74, 0.12);
    --card-rule: rgba(163, 224, 74, 0.32);
    --card-edge-width: 0.35mm;
    --card-edge-colour: #2b3524;
    --card-radius: 0;
    --card-frame-inset: 2.6mm;
    --card-frame-width: 0.15mm;
    --card-frame-colour: rgba(163, 224, 74, 0.26);
    --card-title-font: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;
    --card-title-weight: 700;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.14em;
    --card-label-spacing: 0.2em;
    --card-inner-shadow: inset 0 0 9mm rgba(4, 8, 5, 0.72);
    --card-decoration:
        linear-gradient(225deg, transparent 0 4.6mm, var(--card-accent) 4.6mm 4.78mm, transparent 4.78mm),
        linear-gradient(
            135deg,
            transparent 0 3.6mm,
            rgba(163, 224, 74, 0.55) 3.6mm 3.76mm,
            transparent 3.76mm 5.1mm,
            rgba(163, 224, 74, 0.38) 5.1mm 5.26mm,
            transparent 5.26mm 6.6mm,
            rgba(163, 224, 74, 0.24) 6.6mm 6.76mm,
            transparent 6.76mm
        ),
        radial-gradient(ellipse 46% 30% at 2% 100%, rgba(163, 224, 74, 0.1), transparent 68%);
    --card-decoration-position: top right, bottom left, 0 0;
    --card-decoration-size: 9mm 9mm, 9mm 9mm, 100% 100%;
}

[data-card-style="rogue"] .print-card-header,
[data-card-style="rogue"] .sheet-title-block {
    padding: 0.8mm 1.4mm 1mm 2mm;
    background: linear-gradient(100deg, rgba(163, 224, 74, 0.1), transparent 62%);
    border-left: 0.5mm solid var(--card-accent);
    border-bottom: 0.15mm solid var(--card-rule);
}

/* ---------- Sorcerer: Wild Surge ---------- */

[data-card-style="sorcerer"] {
    --card-surface: #1d0a19;
    --card-surface-image:
        radial-gradient(circle 8mm at 102% -4%, rgba(255, 150, 208, 0.9), rgba(255, 62, 162, 0.52) 60%, transparent 100%),
        radial-gradient(circle 20mm at 102% -4%, rgba(255, 62, 162, 0.5), rgba(255, 62, 162, 0.12) 54%, transparent 86%),
        radial-gradient(circle 34mm at 102% -4%, transparent 26%, rgba(255, 116, 36, 0.28) 42%, rgba(255, 116, 36, 0.09) 64%, transparent 86%),
        radial-gradient(ellipse 26% 13% at 52% 1%, rgba(255, 96, 186, 0.2), transparent 72%),
        repeating-conic-gradient(
            from 176deg at 102% -4%,
            rgba(255, 186, 120, 0.07) 0deg 1deg,
            transparent 1deg 7.4deg,
            rgba(255, 96, 180, 0.05) 7.4deg 8.7deg,
            transparent 8.7deg 20deg
        ),
        var(--grain);
    --card-surface-blend: screen, screen, screen, screen, screen, overlay;
    --card-ink: #ffeaf3;
    --card-ink-soft: #f2b7d4;
    --card-ink-faint: #d79bbf;
    --card-accent: #ff66b2;
    --card-accent-soft: rgba(255, 102, 178, 0.16);
    --card-rule: rgba(255, 126, 74, 0.46);
    --card-edge-width: 0.5mm;
    --card-edge-colour: #a81f6b;
    --card-radius: 0;
    --card-frame-inset: 2.5mm;
    --card-frame-width: 0.22mm;
    --card-frame-colour: rgba(255, 122, 40, 0.42);
    --card-title-font: "IM Fell English", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.11em;
    --card-label-spacing: 0.2em;
    --card-inner-shadow: inset 0 0 6mm rgba(16, 4, 20, 0.28);
    --card-decoration:
        radial-gradient(circle 5mm at 100% 0%, rgba(255, 236, 200, 0.6), rgba(255, 96, 168, 0.3) 46%, transparent 76%),
        linear-gradient(270deg, rgba(255, 128, 48, 0.85), rgba(255, 88, 170, 0.35) 40%, transparent),
        linear-gradient(180deg, rgba(255, 88, 170, 0.85), rgba(255, 128, 48, 0.3) 42%, transparent);
    --card-decoration-position: top right, 100% 1.2mm, calc(100% - 1.2mm) 0;
    --card-decoration-size: 10mm 10mm, 30mm 0.3mm, 0.3mm 34mm;
}

[data-card-style="sorcerer"] .print-card-header,
[data-card-style="sorcerer"] .sheet-title-block {
    padding-bottom: 1.2mm;
    border-bottom: none;
    background: linear-gradient(90deg, rgba(255, 102, 178, 0.95), rgba(255, 132, 48, 0.95)) 0 100% / 100% 0.5mm no-repeat;
}

/* Warlock's Pact */

[data-card-style="warlock"] {
    --card-surface: #100c17;
    --card-surface-image:
        radial-gradient(ellipse 30mm 14mm at 92% 0%, rgba(126, 74, 172, 0.40), transparent 72%),
        radial-gradient(ellipse 20mm 26mm at 0% 62%, rgba(86, 44, 126, 0.36), transparent 74%),
        radial-gradient(ellipse 34mm 15mm at 50% 104%, rgba(147, 229, 138, 0.22), transparent 70%),
        var(--grain);
    --card-surface-blend: screen, screen, screen, overlay;
    --card-ink: #e3f2e2;
    --card-ink-soft: #b3ccb8;
    --card-ink-faint: #8aa494;
    --card-accent: #93e58a;
    --card-accent-soft: rgba(147, 229, 138, 0.13);
    --card-rule: rgba(147, 229, 138, 0.38);
    --card-edge-width: 0.7mm;
    --card-edge-colour: #452c63;
    --card-radius: 0;
    --card-frame-inset: 2.6mm;
    --card-frame-width: 0.22mm;
    --card-frame-colour: rgba(147, 229, 138, 0.34);
    --card-title-font: "IM Fell English", Georgia, serif;
    --card-title-weight: 400;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.14em;
    --card-label-spacing: 0.18em;
    --card-inner-shadow: inset 0 0 8mm rgba(6, 3, 12, 0.62);
    --card-decoration:
        radial-gradient(ellipse 0.6mm 1.8mm at 50% calc(100% - 5.4mm), rgba(6, 3, 12, 0.95), transparent 74%),
        radial-gradient(ellipse 3.2mm 1.3mm at 50% calc(100% - 5.4mm), rgba(214, 255, 208, 0.4), transparent 66%),
        radial-gradient(ellipse 12mm 2.8mm at 50% calc(100% - 5.4mm), transparent 0 60%, rgba(147, 229, 138, 0.72) 60% 70%, transparent 70%),
        radial-gradient(ellipse 12mm 2.8mm at 50% calc(100% - 5.4mm), rgba(147, 229, 138, 0.3), transparent 74%),
        radial-gradient(ellipse 30mm 12mm at 50% calc(100% - 4mm), rgba(147, 229, 138, 0.13), transparent 74%),
        radial-gradient(ellipse 26mm 4mm at 50% calc(100% + 0.8mm), rgba(126, 74, 172, 0.32), transparent 74%);
}

[data-card-style="warlock"] .print-card-header,
[data-card-style="warlock"] .sheet-title-block {
    padding: 0.9mm 1.4mm 1.1mm;
    background: linear-gradient(180deg, rgba(104, 58, 150, 0.5), rgba(16, 12, 23, 0.08));
    border-bottom: 0.25mm solid var(--card-accent);
    box-shadow: 0 0.85mm 0 -0.55mm rgba(147, 229, 138, 0.3);
}

/* ---------- Wizard's Star Plate ---------- */

[data-card-style="wizard"] {
    --card-surface: #0f1a33;
    --card-surface-image:
        radial-gradient(circle at 4.2mm 4.2mm, rgba(230, 240, 255, 0.95) 0 0.15mm, rgba(230, 240, 255, 0.36) 0.15mm 0.34mm, transparent 0.38mm),
        radial-gradient(circle at calc(100% - 4.2mm) 4.2mm, rgba(230, 240, 255, 0.95) 0 0.15mm, rgba(230, 240, 255, 0.36) 0.15mm 0.34mm, transparent 0.38mm),
        radial-gradient(circle at 4.2mm calc(100% - 4.2mm), rgba(230, 240, 255, 0.95) 0 0.15mm, rgba(230, 240, 255, 0.36) 0.15mm 0.34mm, transparent 0.38mm),
        radial-gradient(circle at calc(100% - 4.2mm) calc(100% - 4.2mm), rgba(230, 240, 255, 0.95) 0 0.15mm, rgba(230, 240, 255, 0.36) 0.15mm 0.34mm, transparent 0.38mm),
        radial-gradient(circle at 4.2mm 50%, rgba(230, 240, 255, 0.8) 0 0.13mm, rgba(230, 240, 255, 0.3) 0.13mm 0.3mm, transparent 0.34mm),
        radial-gradient(circle at calc(100% - 4.2mm) 50%, rgba(230, 240, 255, 0.8) 0 0.13mm, rgba(230, 240, 255, 0.3) 0.13mm 0.3mm, transparent 0.34mm),
        repeating-linear-gradient(45deg, rgba(188, 206, 240, 0.1) 0 0.1mm, transparent 0.1mm 3.2mm),
        repeating-linear-gradient(-45deg, rgba(188, 206, 240, 0.1) 0 0.1mm, transparent 0.1mm 3.2mm),
        var(--grain);
    --card-surface-blend: normal, normal, normal, normal, normal, normal, screen, screen, overlay;
    --card-ink: #e9eefa;
    --card-ink-soft: #bcc9e2;
    --card-ink-faint: #8fa0c0;
    --card-accent: #c6d2e6;
    --card-accent-soft: rgba(198, 210, 230, 0.14);
    --card-rule: rgba(198, 210, 230, 0.5);
    --card-edge-width: 0.35mm;
    --card-edge-colour: #93a6c8;
    --card-frame-inset: 2.8mm;
    --card-frame-width: 0.15mm;
    --card-frame-colour: rgba(198, 210, 230, 0.55);
    --card-title-font: "Cinzel", Georgia, serif;
    --card-title-weight: 700;
    --card-title-transform: uppercase;
    --card-title-spacing: 0.14em;
    --card-label-spacing: 0.18em;
    --card-inner-shadow: inset 0 0 7mm rgba(5, 9, 22, 0.6);
    --card-decoration:
        linear-gradient(180deg, rgba(4, 8, 20, 0.42), rgba(4, 8, 20, 0) 18%),
        linear-gradient(0deg, rgba(4, 8, 20, 0.3), rgba(4, 8, 20, 0) 12%);
}

[data-card-style="wizard"] .print-card-header,
[data-card-style="wizard"] .sheet-title-block {
    padding-top: 0.9mm;
    padding-bottom: 1.1mm;
    border-top: 0.15mm solid var(--card-rule);
    border-bottom: 0.6mm double var(--card-rule);
}
