From f4c6f54ea035eee1f2a532140a6bb244bb0989ff Mon Sep 17 00:00:00 2001 From: NyloCreate Date: Fri, 27 Mar 2026 22:31:50 +0100 Subject: [PATCH] Add reaver.css --- reaver/reaver.css | 1326 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1326 insertions(+) create mode 100644 reaver/reaver.css diff --git a/reaver/reaver.css b/reaver/reaver.css new file mode 100644 index 0000000000..7bfdd1526d --- /dev/null +++ b/reaver/reaver.css @@ -0,0 +1,1326 @@ +.charsheet { + --ink: #111; + --paper: #efefef; + --line: #1b1b1b; + --bar: #000; + --bar-text: #f5f5f5; + --border: 2px solid var(--line); + --font-body: Georgia, "Times New Roman", serif; + --font-display: Georgia, "Times New Roman", serif; + --equipment-blue: #214f9a; + background: var(--paper); + min-width: 0; +} + +.charsheet .reaver-sheet, +.charsheet .reaver-sheet * { box-sizing: border-box; } + +.charsheet .reaver-sheet { + font-family: var(--font-body); + color: var(--ink); + background: var(--paper); + padding: 8px; + position: relative; + width: 920px; + max-width: 920px; + zoom: 0.82; + transform-origin: top left; +} + +.charsheet input[type="text"], +.charsheet input[type="number"], +.charsheet textarea { + min-width: 0; + width: 100%; + border: none; + border-bottom: 1px solid #444; + background: transparent; + box-shadow: none; + border-radius: 0; + padding: 2px 3px; + margin: 0; + font-family: var(--font-body); + font-size: 18px; + color: var(--ink); +} + +.charsheet textarea { + border: 1px solid #444; + resize: vertical; + min-height: 30px; +} + +.charsheet input[type="checkbox"] { opacity: 0; position: absolute; } +.charsheet input[type="hidden"] { display: none; } +.charsheet .sr-only { position: absolute; left: -9999px; } + +.charsheet .reaver-tab-toggle { position: absolute; opacity: 0; pointer-events: none; } +.charsheet .reaver-tab-label { + display: inline-block; + cursor: pointer; + padding: 5px 10px; + margin: 0 5px 8px 0; + border: var(--border); + background: #ddd; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + font-size: 12px; +} +.charsheet .reaver-tab-1:checked ~ .reaver-tab-label-1, +.charsheet .reaver-tab-2:checked ~ .reaver-tab-label-2, +.charsheet .reaver-tab-3:checked ~ .reaver-tab-label-3 { background: #000; color: #fff; } + +.charsheet .reaver-pages .reaver-page { display: none; } +.charsheet .reaver-tab-1:checked ~ .reaver-pages .reaver-page-1, +.charsheet .reaver-tab-2:checked ~ .reaver-pages .reaver-page-2, +.charsheet .reaver-tab-3:checked ~ .reaver-pages .reaver-page-3 { display: block; } + +.charsheet .section-title, +.charsheet .mini-section-title, +.charsheet .spells-known-banner { + background: var(--bar); + color: var(--bar-text); + text-align: center; + text-transform: uppercase; + letter-spacing: 4px; + font-family: var(--font-display); + border: var(--border); +} +.charsheet .section-title { font-size: 24px; line-height: 1; padding: 5px 8px; margin: 8px 0 0; } +.charsheet .section-title.spaced { letter-spacing: 7px; } +.charsheet .section-title.tight { font-size: 19px; letter-spacing: 4px; } +.charsheet .section-title .subtitle, +.charsheet .mini-subtitle { font-size: 12px; letter-spacing: 2px; font-style: italic; text-transform: none; } +.charsheet .small-gap { margin-top: 18px; } +.charsheet .mini-section-title { font-size: 16px; padding: 4px 8px; letter-spacing: 2px; } +.charsheet .spells-known-banner { font-size: 26px; padding: 3px 8px; flex: 1; } + +.charsheet .top-header { + display: grid; + grid-template-columns: 2fr 1.1fr; + gap: 12px; + align-items: start; +} +.charsheet .identity-grid { + display: grid; + grid-template-columns: 1fr 1fr 0.8fr; + gap: 18px 24px; + padding: 14px 4px 0; + align-items: start; +} +.charsheet .identity-grid > label, +.charsheet .identity-grid > .identity-extra { + min-width: 0; +} +.charsheet .identity-grid label, +.charsheet .detail-pairs label, +.charsheet .spell-meta-grid label, +.charsheet .spells-header-row label, +.charsheet .career-block, +.charsheet .slot-split label, +.charsheet .wealth-grid label, +.charsheet .double-hex-area > div, +.charsheet .focus-grid label, +.charsheet .shadow-row label { + font-variant: small-caps; + font-size: 14px; +} + +.charsheet .identity-extra { display: none; } +.charsheet input[name="attr_show_faith"][value="1"] ~ .identity-faith { display: block; } +.charsheet input[name="attr_show_tradition"][value="1"] ~ .identity-tradition { display: block; } + +.charsheet .logo-portrait { display: grid; gap: 0; align-content: start; } +.charsheet .reaver-logo { + text-align: center; + font-size: 66px; + line-height: 0.9; + font-weight: 900; + letter-spacing: 1px; + color: #ffe900; + text-shadow: -3px -3px 0 #000, 3px -3px 0 #000, -3px 3px 0 #000, 3px 3px 0 #000; +} +.charsheet .portrait-box { + border: 4px solid #000; + border-top-left-radius: 45% 12%; + border-top-right-radius: 45% 12%; + min-height: 360px; + margin-top: -2px; + position: relative; + overflow: hidden; + display: block; + background: #f2f2f2; +} +.charsheet .portrait-preview { + position: absolute; + inset: 0; + background-size: cover; + background-position: center; +} +.charsheet .portrait-disclaimer { + position: absolute; + inset: 16px; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + pointer-events: none; +} +.charsheet .portrait-disclaimer-inner { + max-width: 88%; + background: rgba(255,255,255,0.72); + border: 2px solid rgba(0,0,0,0.18); + padding: 16px 14px; + box-shadow: 0 2px 10px rgba(0,0,0,0.08); +} +.charsheet .portrait-disclaimer-title { + font-family: var(--font-display); + font-size: 28px; + font-variant: small-caps; + font-weight: 700; + letter-spacing: 2px; + margin-bottom: 8px; + color: #000; +} +.charsheet .portrait-disclaimer-text { + font-size: 17px; + line-height: 1.35; + color: #1d1d1d; +} + +.charsheet .attributes-grid, +.charsheet .feat-grid, +.charsheet .rules-grid { + display: grid; + grid-template-columns: repeat(6, 1fr); + border-left: var(--border); + border-right: var(--border); +} +.charsheet .attr-block, +.charsheet .feat-col, +.charsheet .rules-grid > div { + border-right: 1px solid #444; + text-align: center; + padding: 6px 4px; +} +.charsheet .attr-block:last-child, +.charsheet .feat-col:last-child, +.charsheet .rules-grid > div:last-child { border-right: none; } +.charsheet .attr-name { font-size: 19px; font-variant: small-caps; line-height: 1; } +.charsheet .attr-name span { display: block; font-size: 12px; } +.charsheet .hex-row { display: flex; justify-content: center; gap: 6px; margin: 6px 0 3px; } +.charsheet .mini-label-row { display: flex; justify-content: center; gap: 12px; font-size: 11px; text-transform: uppercase; letter-spacing: 2px; } + +.charsheet .feat-grid { border-bottom: var(--border); } +.charsheet .feat-col { padding-top: 10px; font-size: 13px; font-style: italic; } +.charsheet .feat-col > input { margin-bottom: 8px; } +.charsheet .feat-check { position: relative; display: inline-block; width: 28px; height: 28px; margin: 2px 0 8px; } +.charsheet .feat-check span { display: block; width: 100%; height: 100%; border: 1px solid #444; background: #f8f8f8; } +.charsheet .feat-check input:checked + span::after { content: "✓"; position: absolute; inset: 0; text-align: center; line-height: 28px; font-size: 20px; } + +.charsheet .rules-grid { border-bottom: var(--border); } +.charsheet .rules-grid > div { min-height: 78px; font-size: 16px; line-height: 1.25; } + +.charsheet .middle-band { + display: grid; + grid-template-columns: 1.32fr 120px 0.72fr; + gap: 8px; + margin-top: 8px; + align-items: start; +} + +.charsheet .resource-panel { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + border: var(--border); + border-bottom: none; +} +.charsheet .resource-section { + border-bottom: 1px solid #444; + min-width: 0; +} +.charsheet .resource-title { + background: #000; + color: #fff; + text-align: center; + font-size: 22px; + font-variant: small-caps; + padding: 6px 4px; + letter-spacing: 2px; +} +.charsheet .resource-grid { + display: grid; + grid-template-columns: 1fr 1fr; +} +.charsheet .vitality-grid { + grid-template-columns: 90px 1fr 1fr; +} +.charsheet .resource-grid label, +.charsheet .resource-small { + display: grid; + grid-template-rows: auto 1fr; + text-align: center; + padding: 8px 6px; + font-size: 12px; + letter-spacing: 2px; + text-transform: uppercase; + border-right: 1px solid #444; + min-width: 0; +} +.charsheet .resource-grid label:last-child, +.charsheet .vitality-grid label:last-child, +.charsheet .vitality-grid .resource-small:last-child { + border-right: none; +} +.charsheet .resource-grid input, +.charsheet .resource-small input { + margin-top: 8px; + width: 100%; + text-align: center; + font-size: 20px; +} +.charsheet .shadow-panel-inner { + display: grid; + grid-template-columns: 82px 1fr; + gap: 10px; + padding: 8px; + align-items: start; +} +.charsheet .shadow-number-wrap { + display: grid; + place-items: center; +} +.charsheet .shadow-rules { + font-size: 13px; + line-height: 1.15; + font-style: italic; + word-break: break-word; +} +.charsheet .circle-input, .charsheet .small-circle { + border: var(--border); + border-radius: 50%; + width: 52px; + height: 52px; + text-align: center; +} +.charsheet .circle-input { + width: 58px; + height: 58px; + min-width: 58px; + min-height: 58px; + border: 1px solid #444 !important; + line-height: 58px; +} + +.charsheet .defense-dr-wrap { + border: var(--border); + border-top: none; + display: grid; + grid-template-columns: 42px 1fr; + grid-template-rows: auto auto; + align-items: stretch; +} +.charsheet .side-label { + background: #000; + color: #fff; + writing-mode: vertical-rl; + transform: rotate(180deg); + text-align: center; + font-variant: small-caps; + letter-spacing: 2px; + font-size: 22px; + padding: 8px 4px; + border-right: 1px solid #444; +} +.charsheet .defense-side { + grid-column: 1; + grid-row: 1; +} +.charsheet .defense-box { + grid-column: 2; + grid-row: 1; + border-bottom: 1px solid #444; + padding: 8px; + min-width: 0; +} +.charsheet .dr-side { + grid-column: 1; + grid-row: 2; +} +.charsheet .dr-box { + grid-column: 2; + grid-row: 2; + padding: 8px; + min-width: 0; +} +.charsheet .top-small-fields, +.charsheet .shield-line, +.charsheet .penalty-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + align-items: start; + min-width: 0; +} +.charsheet .mods-and-hex, +.charsheet .mods-and-circle { + display: grid; + grid-template-columns: minmax(0, 1.2fr) minmax(110px, 0.8fr); + gap: 12px; + margin-top: 8px; + align-items: start; + min-width: 0; +} +.charsheet .mods-and-hex textarea { + min-height: 110px; +} +.charsheet .defense-box label, +.charsheet .dr-box label { + min-width: 0; + display: block; +} +.charsheet .big-hex-label, .charsheet .big-circle-label { display: grid; justify-items: center; align-items: center; } +.charsheet .big-hex { + width: 92px; + height: 76px; + border: var(--border); + background: transparent; + clip-path: polygon(25% 6%, 75% 6%, 100% 50%, 75% 94%, 25% 94%, 0 50%); +} +.charsheet .big-circle { width: 78px; height: 78px; border: var(--border); border-radius: 50%; } +.charsheet .caption { text-align: center; font-size: 15px; font-variant: small-caps; letter-spacing: 3px; margin-top: 8px; } +.charsheet .caption span { display: block; font-size: 14px; letter-spacing: 1px; font-style: italic; text-transform: none; } + +.charsheet .die-chain-column { + border-left: var(--border); + border-right: var(--border); + display: grid; + grid-template-columns: 22px 1fr; + min-height: 590px; + background: linear-gradient(180deg, #ececec 0%, #e3e3e3 100%); +} +.charsheet .die-chain-title.vertical { + writing-mode: vertical-rl; + transform: rotate(180deg); + text-align: center; + font-size: 20px; + font-weight: 700; + letter-spacing: 4px; + font-variant: small-caps; + align-self: stretch; + padding: 8px 0; + color: #222; +} +.charsheet .die-chain-display { + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + padding: 12px 6px; + gap: 4px; +} +.charsheet .die-step { + width: 74px; + min-height: 34px; + display: flex; + align-items: center; + justify-content: center; + font-family: var(--font-display); + font-size: 18px; + font-weight: 700; + letter-spacing: 1px; + border: 2px solid #222; + background: #faf7f0; + color: #111; + box-shadow: 0 1px 0 rgba(0,0,0,0.08); + position: relative; +} +.charsheet .die-arrow { + font-size: 22px; + line-height: 1; + color: #555; + font-weight: 700; +} +.charsheet .die-d20, +.charsheet .die-d16, +.charsheet .die-d14, +.charsheet .die-d12 { border-radius: 999px; } +.charsheet .die-d10, +.charsheet .die-d8, +.charsheet .die-d5 { + transform: rotate(45deg); + width: 52px; + height: 52px; + min-height: 52px; + padding: 0; +} +.charsheet .die-d6 { border-radius: 0; } +.charsheet .die-d4 { + clip-path: polygon(50% 4%, 96% 96%, 4% 96%); + border: none; + background: #faf7f0; + position: relative; + width: 74px; + min-height: 56px; + font-size: 18px; +} +.charsheet .die-d4::before { + content: ""; + position: absolute; + inset: 0; + border: 2px solid #222; + clip-path: polygon(50% 4%, 96% 96%, 4% 96%); + pointer-events: none; +} +.charsheet .die-d20 { background: #efe3ff; } +.charsheet .die-d16 { background: #e6e6ff; } +.charsheet .die-d14 { background: #e4f0ff; } +.charsheet .die-d12 { background: #e2f7f2; } +.charsheet .die-d10 { background: #e7f7dd; } +.charsheet .die-d8 { background: #fff2cc; } +.charsheet .die-d6 { background: #ffe4bf; } +.charsheet .die-d5 { background: #ffd9cc; } +.charsheet .die-d4 { background: #ffd6e7; } + +.charsheet .right-notes .detail-pairs { + display: grid; + grid-template-columns: 1fr 1.2fr; + gap: 8px 14px; + margin-top: 6px; +} +.charsheet .full-width-label { display: block; margin-top: 10px; font-variant: small-caps; font-size: 18px; } +.charsheet .full-width-label textarea { min-height: 150px; } +.charsheet .lined-area.short { min-height: 118px; } + +.charsheet .attack-panel { + margin-top: 10px; + border: var(--border); + display: grid; + grid-template-columns: 42px minmax(0, 1fr); +} +.charsheet .attacks-side { min-height: 300px; } +.charsheet .attack-top { + display: grid; + grid-template-columns: minmax(0,1.2fr) minmax(220px,0.95fr) minmax(0,1.2fr); + gap: 8px; + padding: 6px; + align-items: start; +} +.charsheet .attack-stat { text-align: center; } +.charsheet .attack-title { font-size: 24px; font-variant: small-caps; line-height: 1; letter-spacing: 1px; } +.charsheet .attack-title.small { font-size: 18px; } +.charsheet .attack-sub { font-size: 12px; font-style: italic; line-height: 1.08; } +.charsheet .attack-entry-row { + display: grid; + grid-template-columns: 78px 86px; + justify-content: center; + gap: 8px; + margin-top: 6px; +} +.charsheet .attack-entry-row select { + width: 72px; + height: 32px; + border: 1px solid #444; +} +.charsheet .attack-panel .big-hex { + width: 86px; + height: 72px; + justify-self: center; +} +.charsheet .bonus-block + .bonus-block { margin-top: 8px; } +.charsheet .bonus-row { + display: grid; + grid-template-columns: 64px 42px; + justify-content: center; + gap: 6px; + align-items: center; + margin-top: 4px; +} +.charsheet .bonus-row input[type="number"] { + width: 64px; + text-align: center; + border: 1px solid #444; + background: transparent; + appearance: textfield; +} +.charsheet .small-circle { + display: inline-block; + width: 42px; + height: 42px; + min-width: 42px; + min-height: 42px; +} +.charsheet .attack-table { + display: grid; + grid-template-columns: minmax(0,1.6fr) minmax(70px,0.5fr) minmax(80px,0.7fr) minmax(70px,0.45fr) minmax(60px,0.45fr) minmax(0,1.3fr); + border-top: 1px solid #444; +} +.charsheet .attack-table > * { + border-right: 1px solid #444; + padding: 4px; + min-height: 34px; + min-width: 0; +} +.charsheet .weapon-row .weapon-cell { + display: grid; + grid-template-columns: 52px 1fr; + gap: 6px; + align-items: center; + min-width: 0; +} + +.charsheet .weapon-roll-btn { + width: 60px; + min-width: 60px; + height: 32px; + border: 1px solid #444; + background: #111; + color: #fff; + font-family: var(--font-display); + font-size: 12px; + font-weight: 700; + letter-spacing: 0px; + text-transform: uppercase; + cursor: pointer; + padding: 0; + margin: 0; + box-shadow: none; +} + +.charsheet button[type=roll].weapon-roll-btn::before { + content: ""; + display: none; +} + +.charsheet .weapon-roll-btn:hover { + background: #222; +} + +.charsheet .weapon-row select { + width: 100%; + min-height: 30px; + border: 1px solid #444; + background: rgba(255,255,255,0.75); + text-align: center; + text-align-last: center; +} + +.charsheet .weapon-row input[type="text"] { + width: 100%; +} + +.charsheet .attack-table.weapon-row > div { + display: flex; + align-items: center; +} +.charsheet .attack-table > *:last-child { border-right: none; } +.charsheet .attack-table.header { font-variant: small-caps; font-size: 16px; text-align: center; } +.charsheet .attack-table input { border: none; width: 100%; } + +.charsheet .page2-layout .section-title { margin-bottom: 8px; } +.charsheet .career-block { position: relative; padding-left: 40px; margin-top: 8px; } +.charsheet .career-level { position: absolute; left: 0; top: 6px; writing-mode: vertical-rl; transform: rotate(180deg); font-style: italic; font-size: 18px; } +.charsheet .career-select-label { + display: block; + margin-bottom: 6px; + font-variant: small-caps; + font-size: 15px; +} +.charsheet .career-select-label select { + margin-top: 4px; + border: 1px solid #444; + background: rgba(255,255,255,0.65); + min-height: 34px; +} +.charsheet .career-block textarea { + min-height: 170px; + border: 1px solid #444; + background: rgba(255,255,255,0.5); + padding: 8px; + white-space: pre-line; +} + +.charsheet .page2-bottom { + display: grid; + grid-template-columns: 1fr 180px; + gap: 0; + align-items: stretch; + margin-top: 14px; +} +.charsheet .equipment-area-wrap .section-title { margin-top: 0; } + +.charsheet .equipment-columns { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 0; + border-left: var(--border); + border-right: var(--border); + border-bottom: var(--border); +} +.charsheet .equipment-col { + display: grid; + grid-template-rows: auto 1fr auto; + border-right: 1px solid #444; + min-width: 0; +} +.charsheet .equipment-col:last-child { + border-right: none; +} +.charsheet .equipment-col-title { + background: #102f5f; + color: #fff; + text-align: center; + font-size: 16px; + letter-spacing: 2px; + text-transform: uppercase; + padding: 6px 4px; + border-bottom: 1px solid #444; +} +.charsheet .equipment-area { + min-height: 320px; + border: none; + border-right: none; +} +.charsheet .equipment-blue { + color: var(--equipment-blue); + font-size: 17px; + line-height: 1.45; + font-weight: 600; + padding: 10px; +} +.charsheet .equipment-blue::placeholder { + color: #4d71a8; +} +.charsheet .equipment-weight-label { + display: grid; + grid-template-columns: auto 1fr; + align-items: center; + gap: 8px; + padding: 8px 10px; + border-top: 1px solid #444; + font-size: 14px; + font-variant: small-caps; + background: rgba(16,47,95,0.06); +} +.charsheet .equipment-weight-label input { + border: 1px solid #444; + background: rgba(255,255,255,0.7); + text-align: center; + font-size: 16px; + min-height: 32px; +} + +.charsheet .encumbrance-wealth { border-left: var(--border); } +.charsheet .encumbrance-status { + position: relative; +} +.charsheet .slot-split { display: grid; grid-template-columns: 1fr 1fr; text-align: center; padding: 8px 4px; } +.charsheet .slot-split label { + display: grid; + gap: 4px; +} +.charsheet .slot-split input { + text-align: center; + min-height: 32px; +} +.charsheet .used-slots input { + font-weight: 700; +} +.charsheet .encumbrance-warning { + display: none; + margin: 0 8px 8px; + padding: 6px 8px; + border: 2px solid #9d1111; + color: #9d1111; + background: rgba(157,17,17,0.08); + text-align: center; + font-size: 13px; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; +} +.charsheet input[name="attr_encumbrance_over"][value="1"] ~ .slot-split .used-slots input, +.charsheet input[name="attr_encumbrance_over"][value="1"] ~ .slot-split label:first-child input { + color: #9d1111; + border-bottom: 2px solid #9d1111; + background: rgba(157,17,17,0.06); +} +.charsheet input[name="attr_encumbrance_over"][value="1"] ~ .encumbrance-warning { + display: block; +} +.charsheet .wealth-title { margin-top: 6px; } +.charsheet .wealth-grid { display: grid; gap: 8px; padding: 8px 6px; } +.charsheet .wealth-grid label { display: grid; grid-template-columns: 28px 1fr; align-items: center; } + +.charsheet .spell-top { + display: grid; + grid-template-columns: 0.8fr 2fr; + border-left: var(--border); + border-right: var(--border); + border-bottom: var(--border); +} +.charsheet .sorcery-panel { border-right: var(--border); padding: 8px; } +.charsheet .panel-title { font-size: 32px; font-variant: small-caps; text-align: center; } +.charsheet .double-hex-area { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; } +.charsheet .double-hex-area .big-shape-field { margin: 0 auto 4px; } +.charsheet .small-caption { display: block; text-align: center; font-size: 11px; font-variant: small-caps; letter-spacing: 2px; } +.charsheet .focus-title, .charsheet .die-chain-small-title { text-align: center; font-size: 24px; font-variant: small-caps; margin-top: 10px; } +.charsheet .focus-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; } +.charsheet .focus-grid select { border: 1px solid #444; min-height: 56px; } + +.charsheet .small-die-chain-display { + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + flex-wrap: wrap; + margin-top: 10px; +} +.charsheet .mini-die { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 38px; + height: 24px; + padding: 0 6px; + border: 1px solid #333; + font-family: var(--font-display); + font-size: 12px; + font-weight: 700; + color: #111; + background: #faf7f0; + position: relative; +} +.charsheet .mini-arrow { + font-size: 12px; + color: #666; + font-weight: 700; +} +.charsheet .mini-d20, +.charsheet .mini-d16, +.charsheet .mini-d14, +.charsheet .mini-d12 { border-radius: 999px; } +.charsheet .mini-d10, +.charsheet .mini-d8, +.charsheet .mini-d5 { + transform: rotate(45deg); + width: 24px; + min-width: 24px; + height: 24px; + padding: 0; +} +.charsheet .mini-d6 { border-radius: 0; } +.charsheet .mini-d4 { + clip-path: polygon(50% 6%, 96% 96%, 4% 96%); + border: none; + position: relative; + min-width: 30px; + height: 24px; + font-size: 10px; +} +.charsheet .mini-d4::before { + content: ""; + position: absolute; + inset: 0; + border: 1px solid #333; + clip-path: polygon(50% 6%, 96% 96%, 4% 96%); + pointer-events: none; +} +.charsheet .mini-d20 { background: #efe3ff; } +.charsheet .mini-d16 { background: #e6e6ff; } +.charsheet .mini-d14 { background: #e4f0ff; } +.charsheet .mini-d12 { background: #e2f7f2; } +.charsheet .mini-d10 { background: #e7f7dd; } +.charsheet .mini-d8 { background: #fff2cc; } +.charsheet .mini-d6 { background: #ffe4bf; } +.charsheet .mini-d5 { background: #ffd9cc; } +.charsheet .mini-d4 { background: #ffd6e7; } + +.charsheet .shadow-corruption-panel { padding: 6px; overflow: hidden; } +.charsheet .shadow-corruption-panel .panel-title { + font-size: 24px; + line-height: 1.05; + margin-bottom: 4px; +} +.charsheet .shadow-row-fixed { + display: grid; + grid-template-columns: minmax(0,1fr) minmax(0,1fr); + gap: 8px 10px; + align-items: center; +} +.charsheet .presence-current-fixed { + min-width: 0; + display: grid; + grid-template-columns: 86px 64px; + gap: 6px; +} +.charsheet .presence-stack-label { + font-variant: small-caps; + font-weight: 700; + font-size: 13px; + line-height: 1; + color: #555; +} +.charsheet .hex-select-wrap { + position: relative; + width: 64px; + height: 54px; +} +.charsheet .hex-select-wrap .big-hex { + width: 64px; + height: 52px; + position: absolute; + top: 0; + left: 0; +} +.charsheet .hex-select-wrap select { + position: absolute; + left: 10px; + top: 14px; + width: 44px; + border: none; + background: transparent; + font-size: 13px; + font-weight: 700; +} +.charsheet .shadow-current-fixed { + min-width: 0; + display: grid; + grid-template-columns: auto 34px 34px; + gap: 6px; + justify-content: start; + align-items: center; +} +.charsheet .shadow-label-fixed, +.charsheet .cr-area-fixed .cr-label { + font-size: 12px; + line-height: 1; + font-variant: small-caps; + font-weight: 700; + color: #333; +} +.charsheet .shadow-current-fixed .small-circle { + width: 34px; + height: 34px; + min-width: 34px; + min-height: 34px; +} +.charsheet .shadow-current-fixed input, +.charsheet .cr-field input { + width: 100%; + border: none; + border-bottom: 1px solid #444; + background: transparent; + text-align: center; + padding: 2px 0; + appearance: textfield; +} +.charsheet .cr-area-fixed { + grid-column: 1 / -1; + display: grid; + grid-template-columns: auto 46px 46px; + gap: 6px; + align-items: start; + justify-content: center; + margin-top: 2px; +} +.charsheet .cr-field { + display: grid; + grid-template-rows: 46px auto; + align-items: end; +} +.charsheet .cr-field input { + width: 46px; + min-height: 46px; + font-size: 15px; + padding: 1px 2px; + border: 1px solid #444; +} +.charsheet .cr-field .small-caption { + display: block; + text-align: center; + margin-top: 3px; + font-size: 9px; + line-height: 1; + letter-spacing: 1px; +} +.charsheet .stigma-block { + display: block; + margin-top: 8px; + font-size: 17px; + font-variant: small-caps; +} +.charsheet .stigma-block textarea { + min-height: 96px; + border-top: 1px solid #666; + border-left: none; + border-right: none; + border-bottom: none; +} + +.charsheet .spells-header-row { + display: grid; + grid-template-columns: 1.1fr 1.5fr 0.9fr; + align-items: stretch; + margin-top: 10px; + gap: 0; +} +.charsheet .spells-header-row > label { + display: grid; + grid-template-columns: auto 1fr; + align-items: center; + gap: 6px; + background: #000; + color: #fff; + border: var(--border); + padding: 0 8px; + font-size: 18px; + letter-spacing: 1px; +} +.charsheet .spells-header-row > label input { background: #efefef; border: none; min-height: 32px; } + +.charsheet .spell-blocks { display: grid; gap: 10px; margin-top: 8px; } +.charsheet .spell-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } +.charsheet .main-spell-box, .charsheet .variant-box { border: var(--border); padding: 6px; } +.charsheet .main-spell-box { min-height: 340px; } +.charsheet .variant-stack { display: grid; gap: 10px; } +.charsheet .variant-box { min-height: 165px; } + +.charsheet .spell-roll-header { + display: grid; + grid-template-columns: 56px 1fr; + gap: 8px; + align-items: start; + margin-bottom: 4px; +} + +.charsheet .spell-roll-btn { + width: 56px; + min-width: 56px; + height: 34px; + border: 1px solid #444; + background: #111; + color: #fff; + font-family: var(--font-display); + font-size: 12px; + font-weight: 700; + text-transform: uppercase; + cursor: pointer; + padding: 0; + margin: 0; + box-shadow: none; +} + +.charsheet button[type=roll].spell-roll-btn::before { + content: ""; + display: none; +} + +.charsheet .spell-roll-btn:hover { + background: #222; +} + +.charsheet .spell-name-label { display: block; font-size: 18px; font-weight: 700; text-transform: uppercase; } +.charsheet .spell-name-label input { margin-top: 2px; } + +.charsheet .spell-meta-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px 12px; + margin-top: 4px; +} +.charsheet .spell-meta-grid label { font-size: 15px; font-style: italic; } +.charsheet .spell-meta-grid textarea { min-height: 72px; } +.charsheet .spell-meta-grid > label:last-child { grid-column: span 2; } +.charsheet .main-spell-box > label:last-child textarea { min-height: 220px; } +.charsheet .variant-meta { grid-template-columns: repeat(3, 1fr); } +.charsheet .variant-meta > label:nth-child(4) { grid-column: span 2; } +.charsheet .variant-meta textarea { min-height: 58px; } + +.charsheet select { + min-width: 0; + width: 100%; + border: none; + border-bottom: 1px solid #444; + background: transparent; + box-shadow: none; + border-radius: 0; + padding: 2px 3px; + margin: 0; + font-family: var(--font-body); + font-size: 13px; + color: var(--ink); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + text-align: center; + text-align-last: center; +} +.charsheet select[name*="die"], +.charsheet select[name*="Die"] { + border: 1px solid #444; + background: rgba(255,255,255,0.65); + min-height: 32px; +} + +.charsheet .attr-roll { + width: 100%; + border: none; + background: transparent; + box-shadow: none; + margin: 0; + padding: 0; + cursor: pointer; +} +.charsheet button[type=roll].attr-roll::before { content: ""; display: none; } +.charsheet .attr-roll:hover { color: #000; text-shadow: 0 0 1px rgba(0,0,0,.25); } + +.charsheet .hex-row select { + width: 54px; + height: 42px; + border: var(--border); + text-align: center; + padding: 0 4px; +} + +.charsheet .big-shape-field { display: grid; place-items: center; } +.charsheet .shape-select, +.charsheet .shape-number { + width: 64px; + max-width: 75%; + text-align: center; + margin: 0; + font-size: 18px; + font-weight: 700; + line-height: 1.1; + background: #f4f4f4; + border: 1px solid #444; + color: #111; +} +.charsheet .shape-select { height: 30px; padding: 2px 4px; } +.charsheet .shape-number { height: 32px; padding: 2px 4px; } + +.charsheet .more-spells-section { margin-top: 10px; } +.charsheet .more-spells-banner { + background: #000; + color: #fff; + border: var(--border); + border-bottom: none; + text-align: center; + font-size: 18px; + letter-spacing: 2px; + text-transform: uppercase; + padding: 4px 8px; +} +.charsheet .repeating_more_spells { border: var(--border); padding: 8px; margin: 0; } +.charsheet .repeating_more_spells .repcontainer { display: grid; gap: 10px; } +.charsheet .repeating_more_spells .repitem { border-top: 1px solid #444; padding-top: 10px; } +.charsheet .repeating_more_spells .repitem:first-child { border-top: none; padding-top: 0; } +.charsheet .repeating_more_spells .repeating-spell-row { margin-top: 0; } +.charsheet .repeating_more_spells .repcontrol { + display: flex; + justify-content: flex-end; + margin-top: 8px; +} +.charsheet .repeating_more_spells .repcontrol_add { + border: var(--border); + background: #000; + color: #fff; + font-size: 0; + padding: 4px 10px; + min-height: 30px; +} +.charsheet .repeating_more_spells .repcontrol_add::before { display: none; } +.charsheet .repeating_more_spells .repcontrol_add::after { content: "More Spells"; font-size: 14px; } +.charsheet .repeating_more_spells .repcontrol_edit, +.charsheet .repeating_more_spells .repcontrol_del { + display: none !important; +} + +.charsheet .sheet-value { display: block; } +.charsheet .sheet-value.multiline { white-space: pre-line; } + +.charsheet .class-abilities-sheet { + border: var(--border); + border-top: none; + padding: 14px 16px 18px; + background: #f7f4ee; + margin-bottom: 10px; +} +.charsheet .class-abilities-header { + text-align: center; + font-family: var(--font-display); + font-size: 34px; + font-weight: 700; + line-height: 1; + margin: 4px 0 18px; + color: #000; +} +.charsheet .class-abilities-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px 24px; + align-items: start; +} +.charsheet .ability-block { + display: grid; + gap: 6px; + margin: 0; + padding-bottom: 6px; + break-inside: avoid; +} +.charsheet .ability-name-label, +.charsheet .ability-body-label { + display: grid; + gap: 4px; + min-width: 0; +} +.charsheet .ability-name-label { + font-family: var(--font-display); + font-variant: small-caps; + text-transform: uppercase; + font-weight: 700; + font-size: 14px; + letter-spacing: 1px; + color: #8b1e1e; +} +.charsheet .ability-body-label { + font-family: var(--font-body); + font-variant: small-caps; + font-size: 13px; + color: #333; +} +.charsheet .ability-name-label input[type="text"] { + border: 1px solid #444; + background: rgba(255,255,255,0.72); + min-height: 34px; + padding: 5px 6px; + font-family: var(--font-display); + font-size: 18px; + font-weight: 700; + line-height: 1.1; + color: #8b1e1e; + text-transform: none; +} +.charsheet .ability-body-label textarea { + border: 1px solid #444; + background: rgba(255,255,255,0.72); + min-height: 132px; + padding: 8px; + font-family: var(--font-body); + font-size: 15px; + line-height: 1.35; + color: #111; + resize: vertical; +} + + +/* rollable die-chain buttons */ +.charsheet .die-roll, +.charsheet .mini-die-roll { + cursor: pointer; + box-shadow: none; + outline: none; + border: 0; + padding: 0; + margin: 0; + appearance: none; + -webkit-appearance: none; + background-clip: padding-box; + position: relative; +} + +.charsheet button[type=roll].die-roll::before, +.charsheet button[type=roll].mini-die-roll::before { + content: ""; + display: none; +} + +.charsheet .die-roll:hover, +.charsheet .mini-die-roll:hover { + filter: brightness(0.98); + box-shadow: 0 0 0 1px rgba(0,0,0,0.16); +} + +.charsheet .die-roll:focus, +.charsheet .mini-die-roll:focus { + box-shadow: 0 0 0 2px rgba(33,79,154,0.22); +} + +.charsheet .die-roll.die-d20, +.charsheet .die-roll.die-d16, +.charsheet .die-roll.die-d14, +.charsheet .die-roll.die-d12, +.charsheet .die-roll.die-d6, +.charsheet .die-roll.die-d4, +.charsheet .mini-die-roll.mini-d20, +.charsheet .mini-die-roll.mini-d16, +.charsheet .mini-die-roll.mini-d14, +.charsheet .mini-die-roll.mini-d12, +.charsheet .mini-die-roll.mini-d6, +.charsheet .mini-die-roll.mini-d4 { + color: #111; + text-indent: 0; +} + +.charsheet .die-roll.die-d10, +.charsheet .die-roll.die-d8, +.charsheet .die-roll.die-d5, +.charsheet .mini-die-roll.mini-d10, +.charsheet .mini-die-roll.mini-d8, +.charsheet .mini-die-roll.mini-d5 { + color: transparent !important; + font-size: 0 !important; + line-height: 0 !important; + text-indent: -9999px; + overflow: visible; +} + +.charsheet .die-roll.die-d10::after, +.charsheet .die-roll.die-d8::after, +.charsheet .die-roll.die-d5::after, +.charsheet .mini-die-roll.mini-d10::after, +.charsheet .mini-die-roll.mini-d8::after, +.charsheet .mini-die-roll.mini-d5::after { + position: absolute; + inset: 0; + display: flex; + align-items: center; + justify-content: center; + pointer-events: none; + z-index: 3; + color: #111; + font-family: var(--font-display); + font-weight: 700; + text-indent: 0; + white-space: nowrap; +} + +.charsheet .die-roll.die-d10::after { content: "d10"; font-size: 18px; transform: rotate(-45deg); } +.charsheet .die-roll.die-d8::after { content: "d8"; font-size: 18px; transform: rotate(-45deg); } +.charsheet .die-roll.die-d5::after { content: "d5"; font-size: 18px; transform: rotate(-45deg); } + +.charsheet .mini-die-roll.mini-d10::after { content: "d10"; font-size: 10px; transform: rotate(-45deg); } +.charsheet .mini-die-roll.mini-d8::after { content: "d8"; font-size: 10px; transform: rotate(-45deg); } +.charsheet .mini-die-roll.mini-d5::after { content: "d5"; font-size: 10px; transform: rotate(-45deg); } + +.charsheet .die-roll.die-d4 { + font-size: 18px; + line-height: 1; +} + +.charsheet .mini-die-roll.mini-d4 { + font-size: 10px; + line-height: 1; +} + +@media (max-width: 1200px) { + .charsheet { overflow-x: auto; } +} + +.charsheet .extra-abilities-sheet { + display: block; + margin-top: 10px; +}