@import url('https://fonts.googleapis.com/css2?family=Special+Elite&family=Delicious+Handrawn&family=Freckle+Face&family=Jolly+Lodger&family=Loved+by+the+King&family=Manufacturing+Consent&family=New+Tegomin&family=Pirata+One&family=Candal&family=Yuji+Mai&display=swap'); @font-face { font-family: 'Ghastly Panic'; font-weight: 400; font-style: normal; src: local('Ghastly Panic'), url('https://fonts.cdnfonts.com/s/3399/Ghastly Panic.woff2') format('woff2'), url('https://fonts.cdnfonts.com/s/3399/Ghastly Panic.woff') format('woff'); } .ui-dialog .tab-content .charsheet .font-ghastly-panic { font-family: 'Ghastly Panic', sans-serif; font-size: 3rem; font-style: normal; font-synthesis: none; font-weight: 400; letter-spacing: 4px; line-height: 3rem; padding: 5px 3px 5px 8px; text-shadow: 0 0 0 #000, 0 0 0 #000; } .ui-dialog .tab-content .charsheet .font-jolly-lodger { font-family: "Jolly Lodger", system-ui; font-size: 2rem; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-manufacturing-consent { font-family: "Manufacturing Consent", system-ui; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-new-tegomin { font-family: "New Tegomin", serif; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-pirata-one { font-family: "Pirata One", system-ui; font-size: 1.5rem; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-special-elite { font-family: "Special Elite", system-ui; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-yuji-mai { font-family: "Yuji Mai", serif; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-loved { font-family: "Loved by the King", cursive; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-candal { font-family: "Candal", sans-serif; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet .font-freckle-face { font-family: "Freckle Face", system-ui; font-weight: 400; font-style: normal; } .ui-dialog .tab-content .charsheet *, .ui-dialog .tab-content .charsheet *::before, .ui-dialog .tab-content .charsheet *::after { box-sizing: border-box; } .ui-dialog .characterviewer { padding-inline: 4px; } .ui-dialog .tab-content .charsheet { padding: 0; } .sheet-darkmode .ui-dialog .tab-content .charsheet { background-color: #222; color: #c1c1c1; } .ui-dialog .tab-content .charsheet .wrapper { container-type: inline-size; max-width: 1280px; overflow-x: clip; position: relative; } .ui-dialog .tab-content .charsheet .wrapper .show-creature:not(:checked) ~ .show-creature { display: none; } .ui-dialog .tab-content .charsheet .show-creature:checked ~ .show-creature { display: grid; grid-template-columns: 1fr 2fr; outline: 2px solid #000; outline-offset: -2px; padding-right: 1em; width: fit-content; } .ui-dialog .tab-content .charsheet .wrapper .show-creature:checked ~ .show-pc { display: none; } /* set min/max width for show-creature */ @media (max-width: 635px) { .ui-dialog .tab-content .charsheet .wrapper:has(.show-creature:checked) { min-width: 634px; } } @media (min-width: 959px) { .ui-dialog .tab-content .charsheet .wrapper:has(.show-creature:checked) { max-width: 960px; } } /* collapse sheet for smaller viewports */ @container (max-width: 858px) { .ui-dialog .tab-content .charsheet .wrapper .show-creature:not(:checked) ~ .small-nav { grid-template-rows: 2.25em; } .ui-dialog .tab-content .charsheet .wrapper .show-pc { grid-template-columns: minmax(442px, 56%) auto; overflow-y: visible; & .col1 { & .col1-a { background-color: #eb3143; border-top: 3em solid #eb3143; min-width: 160px; } & .col1-a > section { z-index: 3; } & section.name, section.nickname, section.class { max-width: clamp(90%, 19.875vw, 16em); } & .col1-footer { margin-left: 1.5em; } & .header-left {left:-3em;} & .swiftness, .spirit, .vigor, .resilience, .honour {margin-right: -8%;} & .honour {left: -6em;} } & .col1-b { min-width: 235px; z-index: 1; & .logo {transform: scale(.93);} & .resilience::after {min-width: 17em;} } & .col2 { background-color: #fff; background-image: linear-gradient(to right, #efefef, #fff); border-top-width: 3em; min-width: 442px; padding-top: 3em; & .weapons { margin-top: -3em; & .weapons-grid { max-width: 95%; } } & .legal-gutter { position: relative; top: -3em; } } } .sheet-darkmode .ui-dialog .tab-content .charsheet .wrapper .page-view ~ .show-pc { & .col1 { & .col1-b { background-color: #222; color: #c1c1c1; } } & .col2, .legal-gutter { background-color: #222; background-image: none; color: #c1c1c1; } } /* sheet left */ .charsheet .wrapper .page-view[value="0"]:checked ~ .show-pc { & .col1 { z-index: 1; & .col1-b { background-color: #fff; box-shadow: 2px 0 1px 1px #000; } } & .col2 { border-color: transparent; box-shadow: none; margin-left: calc(100% - 442px); filter: brightness(0.25) blur(3px); outline: 1px solid #333; pointer-events: none; z-index: 0; } } /* sheet right */ .charsheet .wrapper .page-view[value="1"]:checked ~ .show-pc { & .col1 { filter: brightness(0.25) blur(3px); outline: 1px solid #333; pointer-events: none; } & .col2 { box-shadow: -5px 2px 5px 0 #000; margin-left: calc(100% - 442px); z-index: 3; } } } @container (max-width: 456px) { .ui-dialog .tab-content .charsheet .wrapper .show-pc { & .col1 { & .col1-b {box-shadow: none;} } & .col2 {box-shadow: none;} } } .ui-dialog .tab-content .charsheet .show-pc, .ui-dialog .tab-content .charsheet .show-creature { background-image: linear-gradient(to right, #efefef, #fff); display: grid; font-size: 1.2rem; grid-template-areas: "col1 col2"; grid-template-columns: 49% auto; overflow: clip; position: relative; } .sheet-darkmode .ui-dialog .tab-content .charsheet .show-pc, .sheet-darkmode .ui-dialog .tab-content .charsheet .show-creature { background-color: #363636; background-image: none; color: #c1c1c1; } .ui-dialog .tab-content .charsheet .show-pc .col2::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_header_right.webp'); background-position: 0 0; background-repeat: repeat-x; background-size: 250px 48px; content: ''; height: 4em; position: absolute; top: -3em; width: 100%; } .ui-dialog .tab-content .charsheet .show-creature::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_header_right.webp'); background-position: 0 0; background-repeat: repeat-x; background-size: 250px 78px; content: ''; height: 7em; position: absolute; top: -3em; width: 100%; } .ui-dialog .tab-content .charsheet .show-creature .col2::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_logo_small.webp'); background-repeat: no-repeat; background-size: cover; content: ''; height: 5em; left: 36%; position: absolute; top: -3em; width: 11em; } .ui-dialog .tab-content .charsheet .show-creature::after { top: 0; width: 100%; z-index: 1; } /* shown at smaller viewport size */ .charsheet .small-nav { background-color: #eb3143; display: grid; grid-template-columns: auto; grid-template-rows: 0em; overflow: clip; place-items: center; position: relative; transform-origin: top; transform: scale(1); transition: grid-template-rows .4s ease-in-out, transform .3s ease-in-out; z-index: 4; } .ui-dialog .tab-content .charsheet .wrapper .small-nav:hover, .ui-dialog .tab-content .charsheet .wrapper .small-nav:focus, .ui-dialog .tab-content .charsheet .wrapper .small-nav:focus-within { transform: scale(1.5); } .charsheet .small-nav label { align-items: center; display: inline-flex; justify-content: center; min-height: 100%; } .charsheet .small-nav label span { color: #000; font-size: 2.5rem; padding: 4px 0px 4px 4px; } .charsheet .page-view[value="0"]:checked ~ .small-nav label span::before { content: "►"; } .charsheet .page-view[value="1"]:checked ~ .small-nav label span::before { content: "◄"; } .charsheet .page-view[value="0"]:checked ~ .small-nav label:hover span { text-shadow: 2px 0 0px #FFF !important; } .charsheet .page-view[value="1"]:checked ~ .small-nav label:hover span { text-shadow: -2px 0px 0px #FFF !important; } .charsheet .page-view[value="0"] ~ .small-nav label, .charsheet .page-view[value="1"] ~ .small-nav label { display: flex; } .charsheet .page-view[value="0"]:checked ~ .small-nav label:has(input:checked), .charsheet .page-view[value="1"]:checked ~ .small-nav label:has(input:checked) { display: none; } .charsheet .col1, .charsheet .col1-a, .charsheet .col1-b, .charsheet .col2 { align-content: start; display: grid; height: 100%; position: relative; } .charsheet .col1 { align-items: self-start; display: grid; grid-area: col1; grid-template-areas: "col1-a col1-b"; grid-template-rows: 100%; filter: brightness(1) blur(0px); transition: filter 0.5s ease-in-out; z-index: 0; } .charsheet .show-creature .col1 { z-index: 2; } .charsheet .col2 { border-top: 3em solid #000; filter: brightness(1) blur(0px); grid-area: col2; margin-inline: auto; row-gap: 10px; transition: filter 0.5s ease-in-out; z-index: 0; grid-template-areas: "weapons weapons legal" "battle battle legal" "armour armour legal" "equipment equipment legal" "tenets hp-box legal" "tenets hp-box2 legal"; } .charsheet .show-creature .col2 { grid-template-areas: "weapons weapons" "battle battle" "armour hp-box"; width: 100%; z-index: 2; } .charsheet .col1-a { align-items: self-start; border-top: 3em solid #eb3143; color: #fff; grid-area: col1-a; grid-template-rows: min-content min-content min-content min-content min-content min-content 1fr min-content; padding: 0 0 0 2em; min-width: 210px; row-gap: 1em; grid-template-areas: "header-left" "name" "nickname" "class" "description" "features" "texts" "footer"; } .charsheet .show-creature .col1-a { border-top: 0; grid-template-rows: auto; padding-top: .75em; grid-template-areas: "name" "description" "features"; } .charsheet .col1-a::before { background-color: #eb3143; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_col_1.webp'); background-repeat: repeat-y; background-size: 200px 600px; content: ''; height: 100%; position: absolute; width: 100%; /* z-index: 1; */ } .charsheet .col1-a > section { z-index: 1; } .charsheet .col1-b { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_trunk.webp'); background-position: 0 -110px; background-repeat: repeat-y; background-size: 104PX 600PX; border-top: 3em solid #000; grid-area: col1-b; justify-items: center; grid-template-areas: "logo" "swiftness" "spirit" "vigor" "resilience" "honour"; } .charsheet .legal-gutter { grid-area: legal; padding-top: 1em; } .charsheet .legal-margin { font-size: .9rem; text-align: center; text-orientation: upright; white-space: nowrap; writing-mode: sideways-lr; } .charsheet .header-left { background-color: #eb3143; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_header_left.webp'); background-position: top right; background-repeat: no-repeat; grid-area: header-left; height: 5em; left: -9px; max-width: 286px; position: absolute; top: -35.5px; width: clamp(180px, 22vw, 100%); /* z-index: 1; */ } .charsheet .col1-a .section-header { color: #fff; text-shadow: 1px 1px 1px #111; } .charsheet .name {grid-area: name;} .charsheet .nickname {grid-area: nickname;} .charsheet .class {grid-area: class;} .ui-dialog .tab-content .charsheet section.name, .ui-dialog .tab-content .charsheet section.nickname, .ui-dialog .tab-content .charsheet section.class { align-items: baseline; display: inline-grid; grid-template-columns: 1.75em 1fr 1fr; justify-content: left; line-height: normal; margin-inline: auto; margin-left: 0; max-width: 24em; position: relative; width: 100%; } .ui-dialog .charsheet .col1-a .name input[type="text"], .ui-dialog .charsheet .col1-a .nickname input[type="text"], .ui-dialog .charsheet .col1-a .name input[type="text"], .ui-dialog .charsheet .col1-a .nickname input[type="text"], .ui-dialog .charsheet .col1-a .class input[type="text"] { margin-inline: 0; } .ui-dialog .charsheet .name-style { transform: scaleY(1.25); color: #fff; text-shadow: 1px 1px 1px #111; } .ui-dialog .charsheet .class-column-one { grid-row: 1/3; padding: 0; position: relative; top: 1px; } .charsheet .description { grid-area: description; width: calc(100% + 1em); z-index: 1; } .charsheet .features { grid-area: features; width: calc(100% + 1em); z-index: 1; } .ui-dialog .tab-content .charsheet .show-creature .name, .ui-dialog .tab-content .charsheet .show-creature .description, .ui-dialog .tab-content .charsheet .show-creature .features { min-width: 95%; width: calc(100% - 1em); } .ui-dialog .tab-content .charsheet .texts { grid-area: texts; margin: 1em -5em 0 -2em; max-width: 360px; min-width: 280px; z-index: 2; } .ui-dialog .charsheet .kamis-style { font-family: "Pirata One"; font-size: 1.75rem; font-weight: normal; line-height: 1.75rem; } .charsheet .texts > div:first-child { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_texts_top.webp'); background-repeat: no-repeat; background-size: 100% 9em; margin: 0; padding: 3em 1em 0 2em; position: relative; } .ui-dialog .tab-content .charsheet .texts .repcontainer[data-groupname="repeating_texts"] .repitem { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_texts_middle.webp'); background-repeat: round; background-size: 100% 100%; margin: 0; padding: .25em 1.75em .25em 1.75em; position: relative; } .ui-dialog .tab-content .charsheet .texts .repcontainer[data-groupname="repeating_texts"] + .repcontrol { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_texts_bottom.webp'); background-repeat: no-repeat; background-size: 100% 5em; height: 5em; margin: 0; padding: .5em 2em 0 2em; position: relative; } .ui-dialog .charsheet .texts-style { color: revert; display: block; font-family: 'Loved by the King'; font-size: 2.5rem; line-height: 4rem; padding: 0 2px 0 2px; text-shadow: none; } .ui-dialog .tab-content .charsheet .texts .section-notes:not(:last-child) { color: #111; } .ui-dialog .tab-content .charsheet .repcontainer[data-groupname="repeating_texts"] .repitem .flex-row { border-top: 1px solid #111; } .charsheet .col1-footer { align-self: end; display: grid; grid-area: footer; margin-bottom: 10px; margin-inline: auto; max-width: 95%; } .ui-dialog .tab-content .charsheet .col1-footer button[type="roll"]:hover { background-color: #111; color: #fff; outline: 1px solid #111; } .charsheet .credits { aspect-ratio: 3; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/mork_borg.webp'); background-repeat: no-repeat; background-size: contain; height: 50px; margin-top: 2px; } .charsheet .virtues { bottom: -4px; display: grid; grid-template-columns: auto auto; margin: auto; position: relative; right: -4em; } .ui-dialog .charsheet .virtues .virtues-box { position: absolute; top: -3em; right: -2.5em; } .ui-dialog .charsheet .virtues .virtues-box button[type="roll"] { background-color: transparent; background-image: none; border: none; box-shadow: none; position: relative; transform: rotate(30deg); z-index: 2; } .ui-dialog .charsheet .virtues-style { color: #fff; font-family: 'Freckle Face'; font-size: 2rem; font-weight: normal; line-height: 3rem; letter-spacing: 1px; text-shadow: 1px 2px 1px #000; transform: scaleY(1.75); } .ui-dialog .charsheet .die-style { font-family: 'Manufacturing Consent'; font-size: 2rem; font-weight: normal; } .ui-dialog .charsheet .swiftness { grid-area: swiftness; z-index: 1; } .ui-dialog .charsheet .swiftness > button { transform: rotate(6deg); } .ui-dialog .charsheet .swiftness .ability-base-mod::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_ability_fields_swiftness.webp'); background-repeat: no-repeat; background-size: 100% 100%; content: ''; height: 3.75em; position: absolute; top: -4px; left: -15px; width: 6em; } .charsheet .spirit {grid-area: spirit;} .charsheet .spirit > button { transform: rotate(4deg); } .ui-dialog .charsheet .spirit .ability-base-mod::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_ability_fields_spirit.webp'); background-repeat: no-repeat; background-size: 100% 100%; content: ''; height: 4.2em; position: absolute; top: -6px; left: -8px; width: 5em; } .charsheet .vigor {grid-area: vigor;} .ui-dialog .charsheet .vigor .ability-base-mod::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_ability_fields_vigor.webp'); background-repeat: no-repeat; background-size: 100% 100%; content: ''; height: 4.5em; position: absolute; top: -6px; left: -8px; width: 5em; } .charsheet .resilience {grid-area: resilience;} .charsheet .resilience > button { transform: rotate(2deg); } .ui-dialog .charsheet .resilience .ability-base-mod::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_ability_fields_resilience.webp'); background-repeat: no-repeat; background-size: 100% 100%; content: ''; height: 5em; position: absolute; top: -6px; left: -8px; width: 5em; } .charsheet .swiftness::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_red_branches_swiftness.webp'); background-repeat: no-repeat; background-size: clamp(13.75em, 18vw, 19em) 3em; content: ''; display: inline-flex; height: 3em; left: 0; margin: 1.5em 0 0 4.7em; position: absolute; width: 100%; z-index: 1; } .charsheet .spirit::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_red_branches_spirit.webp'); background-repeat: no-repeat; background-size: clamp(13.75em, 18vw, 19em) 3em; content: ''; display: inline-flex; height: 3em; left: 0; margin: -.5em 0 0 4em; position: absolute; width: 100%; z-index: 1; } .charsheet .vigor::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_red_branches_vigor.webp'); background-repeat: no-repeat; background-size: clamp(13.75em, 18vw, 19em) 3em; content: ''; display: inline-flex; height: 3em; left: 0; margin: -.5em 0 0 3.25em; position: absolute; width: 100%; z-index: 1; } .charsheet .resilience::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_dashed_line.webp'); background-size: cover; content: ''; display: inline-flex; height: 2em; left: 0; margin: 1em 0 0 4.5em; min-width: clamp(14em, calc(100% - 6vw), 15.5em); position: absolute; } .charsheet .honour { display: inline-flex; grid-area: honour; left: -5em; top: 3em; position: relative; z-index: 1; } .charsheet .honour-grid { column-gap: clamp(2px, calc(2vw - 18px), 8px); display: grid; grid-template-columns: repeat(4, 1fr); margin-inline: auto; position: relative; row-gap: clamp(16px, calc(2vw - 4px), 21px); top: 1em; } .ui-dialog .tab-content .charsheet .honour .honour-grid label { height: 18px; margin: auto; padding: 0; position: relative; width: 20px; margin-inline: 3px; } .ui-dialog .charsheet .honour-style { display: flex; font-size: 2.25rem; margin-inline: auto; position: absolute; right: -1.15em; top: 8px; transform: scaleY(1.75); width: min-content; } .ui-dialog .charsheet .honour::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_kanji.webp'); background-repeat: no-repeat; background-size: cover; content: ''; display: inline-flex; height: 34px; left: 66%; position: absolute; top: 5px; width: 25px; z-index: 1; } .ui-dialog .charsheet .honour-grid label:first-child, .ui-dialog .charsheet .honour-grid label:nth-child(10) { grid-column: 1/-1; } .ui-dialog .tab-content .charsheet .honour .honour-grid label:last-child { grid-column: span 2; margin-left: 8px; } .ui-dialog .charsheet .honour-grid label:first-child::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_1_image.webp'); background-repeat: no-repeat; background-size: cover; content: ''; height: 39px; left: clamp(21px, calc(2.5vw), 30px); position: absolute; top: -15px; width: 30px; } .ui-dialog .charsheet .honour-grid label:nth-child(10)::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_10_image.webp'); background-repeat: no-repeat; background-size: cover; content: ''; height: 38px; left: clamp(21px, calc(2.5vw), 30px); position: absolute; top: -12px; width: 32px; } .ui-dialog .charsheet .honour-grid label:nth-child(20)::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_20_image.webp'); background-repeat: no-repeat; background-size: cover; content: ''; height: 36px; left: clamp(17px, calc(2vw), 26px); position: absolute; top: -7px; width: 34px; } .sheet-darkmode .charsheet .honour-grid label:first-child::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_1_image_darkmode.webp'); } .sheet-darkmode .charsheet .honour-grid label:nth-child(10)::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_10_image_darkmode.webp'); } .sheet-darkmode .charsheet .honour-grid label:nth-child(21)::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_honour_20_image_darkmode.webp'); } .charsheet .woes { align-content: end; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_woes.webp'); background-repeat: no-repeat; background-size: cover; background-position: 0 0; bottom: -1px; color: #fff; grid-area: woes; left: 0; margin: 0 0 0 2em; min-height: 10em; padding: 0 0 .5em 1.2em; position: absolute; width: 20em; z-index: 1; } .charsheet .weapons { grid-area: weapons; z-index: 1; } .charsheet .weapons-grid { display: grid; grid-template-columns: minmax(9em, 2fr) minmax(4em, 1fr) minmax(5em, 1fr) 3em minmax(min-content, auto); grid-template-rows: 4.5em 2em 2em auto; margin-inline: auto; max-width: 95%; place-items: center; position: relative; } .charsheet .show-creature .weapons-grid { column-gap: 4px; grid-template-columns: minmax(12em, 3fr) minmax(4em, 1fr) minmax(5em, 1fr) minmax(4em, 1fr) minmax(7.5em, 1fr); grid-template-rows: auto; margin-inline: 1em; margin-top: 3em; min-width: fit-content; } .charsheet .weapons-grid .sword-image { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_sword.webp'); background-repeat: no-repeat; background-size: 95% 100%; background-position: center; height: 2.85em; left: 1em; max-width: 38em; position: relative; width: 100%; } .ui-dialog .charsheet .dueling-style { font-family: "Special Elite"; font-weight: normal; padding-top: 2px; } .charsheet .weapons-grid .column-header { display: inline-block; font-size: 1.5rem; font-variant-caps: all-petite-caps; font-weight: normal; } .ui-dialog .tab-content .charsheet .weapons-grid .repcontainer .repitem .weapon-type:not(:checked) + .show-ranged { display: none; } .ui-dialog .tab-content .charsheet .weapon-type:checked + .show-ranged { display: grid; grid-template-rows: 2rem; left: -2em; margin-top: -3px; position: relative; transform: scale(.85); transform-origin: right; } .ui-dialog .tab-content .charsheet .show-ranged label { align-content: center; display: inline-block; margin-inline: auto; padding-inline: 2px; width: min-content; } .ui-dialog .tab-content .charsheet .weapons-grid .repcontainer, .ui-dialog .tab-content .charsheet .weapons-grid .repcontainer .repitem, .ui-dialog .tab-content .charsheet .weapons-grid .repcontainer .repitem .weapons-grid-row { display: grid; grid-column: 1/-1; grid-template-columns: subgrid; } .ui-dialog .tab-content .charsheet .weapons-grid .repcontrol { grid-column: 1/-1; width: 100%; } .ui-dialog .tab-content .charsheet .weapons-grid select { font-size: 1.2rem; font-weight: normal; } .charsheet .weapons-grid button span { font-size: 1.3rem; font-weight: 700; } .ui-dialog .charsheet .weapon-notes-style { color: #c1c1c1; column-gap: 2px; display: inline-grid; grid-template-columns: repeat(6, min-content); justify-content: center; margin-inline: auto; position: absolute; top: -1.65em; width: 102%; } .ui-dialog .tab-content .charsheet .weapon-notes-style label input[type="checkbox"] { display: none; } .ui-dialog .tab-content .charsheet .weapon-notes-style label { align-items: center; display: inline-flex; height: 1.85rem; justify-content: center; z-index: 1; } .ui-dialog .tab-content .charsheet .weapon-notes-style label span { align-items: center; color: #c1c1c1; display: inline-flex; font-size: 1.2rem; font-weight: normal; white-space: nowrap; } .ui-dialog .tab-content .charsheet .show-creature-style { position: absolute; right: 4px; z-index: 3; } .ui-dialog .tab-content .charsheet .wrapper .show-creature-style input[type="checkbox"] { display: block; height: 1.2em; left: -1em; margin-inline: 2px; opacity: 0; position: absolute; top: 0; width: 8em; } .ui-dialog .tab-content .charsheet .show-creature-style label { display: inline-flex; } .ui-dialog .tab-content .charsheet .show-creature-style label span { padding-inline: 1px; } .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:checked) .pc-sheet, .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input) .pc-sheet + span, .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:not(:checked)) .creature-sheet { background-color: transparent; color: #c1c1c1; font-size: 1rem; opacity: .5; transform: scale(1); transition: transform .2s ease-in-out; } .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:not(:checked)) .pc-sheet, .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:checked) .creature-sheet { background-color: transparent; color: #fff; font-size: 1rem; opacity: 1; padding-inline: 5px; transform: scale(1.1); } .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:not(:checked)):hover .creature-sheet, .ui-dialog .tab-content .charsheet .wrapper .show-creature-style label:has(input:checked):hover .pc-sheet { background-color: transparent; color: #eb3143; opacity: 1; transform: scale(1.1); } .ui-dialog .charsheet .weapon-style { bottom: -1rem; font-family: 'Jolly Lodger'; font-size: 3rem; font-style: italic; font-weight: normal; letter-spacing: 2px; margin-inline: auto; position: relative; top: 12%; left: 18%; transform: rotate(-5deg); } .ui-dialog .charsheet .show-creature .weapon-style { left: auto; top: 0; transform: none; } .charsheet .weapon-actions { column-gap: 2px; display: flex; } .charsheet .battle { display: inline-flex; flex-wrap: wrap; grid-area: battle; line-height: 2; margin-inline: auto; max-width: 376px; padding: 0 10px 5px 10px; position: relative; text-align: center; top: -5px; z-index: 1; } .ui-dialog .charsheet .defence-style { font-family: 'New Tegomin'; font-size: 1.5rem; font-weight: 700; letter-spacing: 2px; padding: 0 0 3px 0; } .charsheet .armour { align-items: center; column-gap: 5px; display: grid; grid-area: armour; grid-template-columns: min-content minmax(15em, 20em) minmax(1em, 3em) 8em; grid-template-rows: 4em 1.2em 1.2em; padding-block: 1em; position: relative; } .charsheet .show-creature .armour { grid-template-columns: minmax(10em, min-content) minmax(10em, auto); grid-template-rows: 3em 2em 3em; margin-inline: auto; margin-left: 0; padding: 0 2em 0 0; width: 100%; justify-items: end; } .charsheet .show-creature .armour .span-2 { align-items: center; display: inline-flex; margin-inline: auto; margin-right: 0; } .charsheet .show-creature .armour-tier-grid { left: 0; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; width: 15em; } .charsheet .armour .section-notes { padding-left: 3em; white-space: nowrap; } .charsheet .show-pc .armour::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_kusarigama.webp'); background-repeat: no-repeat; background-size: 100% 17em; content: ''; display: block; height: 17em; left: 1em; max-width: 49em; position: absolute; top: -7em; width: 97%; } .sheet-darkmode .charsheet .armour::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_kusarigama_darkmode.webp'); } .ui-dialog .charsheet .armour-style { font-family: 'Pirata One'; font-size: 3rem; font-weight: normal; left: 1em; position: relative; width: min-content; } .ui-dialog .charsheet .show-creature .armour-style { left: 0; } .ui-dialog .tab-content .charsheet label:has(.damaged-style) { display: inline-flex; width: 5.5em; white-space: nowrap; z-index: 1; } .ui-dialog .tab-content .charsheet .damaged-style { font-family: 'Loved by the King'; font-size: 1.5rem; font-weight: bold; letter-spacing: 1px; line-height: 1.5rem; padding-top: 2px; } .charsheet .equipment { border: 12px solid transparent; border-top: 12px; display: grid; grid-area: equipment; grid-template-columns: minmax(5em, 1fr) minmax(10em, 3fr) min-content; grid-template-rows: 1.25em; margin: 4.5em 2% auto auto; min-height: 19em; outline: 7px solid #333; outline-offset: -8px; width: 90%; } .sheet-darkmode .charsheet .equipment { outline-color: #000; } .charsheet .equipment-notes { left: -6em; min-width: 15.75em; position: relative; text-align: right; top: -3.5em; } .ui-dialog .charsheet .equipment-style { -webkit-text-stroke-color: #000; -webkit-text-stroke-width: 1px; align-self: center; color: #fff; font-family: 'Candal'; font-size: 2.5rem; letter-spacing: .4rem; margin-left: -1rem; position: relative; right: -1rem; text-shadow: 2px 3px 0 #000; top: -1.5em; transform: scaleY(1.5); } .ui-dialog .tab-content .charsheet .ryo { background-color: #eb3143; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_ryo_background.webp'); background-repeat: no-repeat; background-size: contain; border-radius: 40%; color: #fff; height: 6.25em; left: -1.4em; outline: 1px solid #fff; outline-offset: -4px; position: relative; top: -1.5em; transform: rotateZ(7deg); width: 4em; } .ui-dialog .charsheet .ryo span, .ui-dialog .charsheet .ryo span.kanji-text { color: #fff; font-weight: normal; } .charsheet .consumables { display: flex; flex-direction: column; flex-wrap: nowrap; height: 100%; justify-content: center; margin: 2em auto auto 2px; row-gap: 10px; width: 4em; } .ui-dialog .tab-content .charsheet .consumables > label { border-radius: 50%; box-shadow: 2px 1px 2px #eb3143; height: 3.5em; min-width: 3.5em; outline: 2px solid #eb3143; outline-offset: 2px; padding-top: 4px; position: relative; } .ui-dialog .tab-content .charsheet .consumables label input.input-width-small { font-size: 1.85rem; height: auto; margin-block: -2px; max-width: 32px; min-width: auto; width: 32px; } .charsheet .tenets { grid-area: tenets; left: .5em; margin-inline: auto; position: relative; top: 2em; width: calc(100% - 1vw); } .ui-dialog .charsheet .haiku-style { font-family: 'Special Elite'; font-size: 2rem; line-height: 2rem; padding-top: 5px; } .ui-dialog .charsheet .chance-style { font-family: 'Jolly Lodger'; font-size: 2rem; font-weight: normal; letter-spacing: 1px; line-height: 2rem; padding: 2px; } .ui-dialog .tab-content .charsheet .wrapper .tenets-grid input[type="text"] { box-shadow: 0px 2px 2px -2px #000; border: none; max-width: 90%; } .charsheet .hp-box { display: grid; grid-area: hp-box; grid-template-columns: min-content min-content 1fr; grid-template-areas: "resurrection meditation hpCurrMax" "resurrection meditation hpCurrMax" "resurrection meditation seppuku"; padding-inline: 2px; } .charsheet .show-creature .hp-box { grid-template-areas: none; margin: 0 0 .5em -1em; position: relative; } .charsheet .resurrection {grid-area: resurrection;} .charsheet .meditation {grid-area: meditation;} .charsheet .hpCurrMax { display: grid; grid-area: hpCurrMax; grid-template-columns: 1fr 2px 1fr; grid-template-rows: 3.25rem 1.25rem 4.5rem auto; justify-items: center; margin: auto auto 5px auto; outline: 4px solid #eb3143; padding: 0 0 2px 0; width: 12em; } .charsheet .hpCurrMax .column-header { color: #eb3143; margin-inline: -5px; letter-spacing: 1px; } .ui-dialog .charsheet .red-background, .ui-dialog .charsheet .red-background span { background-color: #eb3143; color: #fff; overflow: hidden; display: inline-flex; margin-inline: auto; } .ui-dialog .charsheet .hit-points-style { transform: scaleY(1.5); display: inline-block; font-size: 2.25rem; font-weight: normal; font-family: 'Special Elite'; max-height: 2.25rem; overflow: hidden; margin: 3px 0 0 0; } .ui-dialog .tab-content .charsheet .infected-style { display: block; font-size: 1.65rem; letter-spacing: 3px; margin-block: 1px; } .ui-dialog .tab-content .charsheet .seppuku .infected-style { transform: scaleY(1.5); } .charsheet .hpCurrMax .red-background ~ div { margin-block: 1px; } .charsheet .seppuku { display: grid; grid-area: seppuku; grid-template-rows: 3rem; } .charsheet .seppuku label:first-child::before { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_seppuku_image.webp'); background-position-y: center; background-repeat: no-repeat; background-size: 100% 12px; content: ''; height: 21px; margin-left: -22px; position: absolute; width: 12em; z-index: 0; } .charsheet .seppuku-box { margin: auto; margin-top: 5px; max-width: 12em; outline: 1px solid #333; } .ui-dialog .tab-content .charsheet input, .ui-dialog .tab-content .charsheet select { background-color: #e6e6e6ab; color: #000; height: 1.75em; margin: 2px; padding: 0 2px 0 2px; vertical-align: middle; width: auto; z-index: 0; } .ui-dialog .tab-content .charsheet button:focus, .ui-dialog .tab-content .charsheet input:hover, .ui-dialog .tab-content .charsheet input:focus, .ui-dialog .tab-content .charsheet input[type="checkbox"]:hover, .ui-dialog .tab-content .charsheet input[type="checkbox"]:focus, .ui-dialog .tab-content .charsheet textarea:hover, .ui-dialog .tab-content .charsheet textarea:focus, .ui-dialog .tab-content .charsheet select:hover, .ui-dialog .tab-content .charsheet select:focus { background-clip : border-box; background-color: lightgoldenrodyellow; box-shadow: 0px 0px 4px #fff; color: #111; outline: 2px solid #555; } .ui-dialog .charsheet input[type="text"] { display: inline-flex; margin-inline: auto; min-width: 3em; } .ui-dialog .tab-content .charsheet textarea { background-color: #e6e6e6ab; color: #000; height: 9em; margin: auto; max-height: 32em; min-height: 3em; resize: vertical; scrollbar-width: thin; white-space: normal; } .ui-dialog .tab-content .charsheet .repcontainer .repitem { display: inline-flex; width: 100%; } .ui-dialog .tab-content .charsheet .flex-row { align-items: center; display: flex; flex: 1 1 0; flex-wrap: wrap; justify-content: space-between; } .ui-dialog .tab-content .charsheet .flex-row > * { margin-inline: 2px; margin-block: 2px; } .ui-dialog .tab-content .charsheet .flex-inline-row { align-items: center; display: inline-flex; gap: 2px; margin: auto; padding-bottom: 2px; position: relative; white-space: nowrap; z-index: 1; } .ui-dialog .tab-content .charsheet .flex-inline-row > * { margin-inline: 2px; margin-block: 2px; } .ui-dialog .tab-content .charsheet label { margin: 0; padding: 0; } .charsheet label:has(input[type="checkbox"]) span { font-family: 'Nunito', serif; padding: 0 4px 0 4px; vertical-align: middle; } .ui-dialog .tab-content .charsheet label:has(button):hover, .ui-dialog .tab-content .charsheet label:has(input[type="checkbox"]):hover, .ui-dialog .tab-content .charsheet label:has(input[type="radio"]):hover { cursor: pointer; } .ui-dialog .tab-content .charsheet input[type="radio"] { padding: inherit; } .ui-dialog .tab-content .charsheet .repitem textarea { height: 1.75em; line-height: 1.25em; max-height: 12em; min-height: 1.75em; padding: 2px 2px 0 2px; resize: vertical; } .ui-dialog .tab-content .charsheet button[type="roll"] { align-items: center; display: inline-flex; font-size: 1.2rem; font-weight: normal; justify-content: center; margin: auto; padding: 0 2px 0 2px; } .ui-dialog .tab-content .charsheet button[type="roll"]:before { content: "0"; display: inline-grid; font-family: "dicefontd20"; font-size: 1.75rem; } .ui-dialog .tab-content .charsheet button[type="roll"]:empty { display: inline-grid; font-size: 1em; font-weight: normal; margin: auto; min-width: 2em; outline: 1px solid #333; padding: 1px; } /* hides the dice image */ .ui-dialog .tab-content .charsheet button[type="roll"]:not(:empty):before { content: ''; display: none; } .ui-dialog .tab-content .charsheet input[type="checkbox"] { appearance: none; background: white; border-left: 1px solid #eb3143; box-shadow: 1px -1px 2px 1px #eb3143; border-radius: 3px; position: relative; height: 15px; width: 15px; margin: auto; outline: none; vertical-align: middle; &:checked::before { align-items: center; color: #000; content: '*'; display: flex; font-family: 'Pictos'; font-size: 20px; inset: 0; justify-content: center; position: absolute; transform: rotate(17deg); } } .ui-dialog .tab-content .charsheet input[type="radio"] { appearance: none; background: white; border-radius: 2px; position: relative; height: 10px; width: 10px; outline: none; &:checked::before { align-items: center; color: #000; content: '*'; display: flex; font-family: 'Pictos'; font-size: 12px; inset: 0; justify-content: center; position: absolute; transform: rotate(17deg); } } .ui-dialog .tab-content .charsheet select.input-width-small, .ui-dialog .tab-content .charsheet input[type="text"].input-width-small, .ui-dialog .tab-content .charsheet input[type="number"].input-width-small { text-align: center; min-width: 0; width: 3em; } .ui-dialog .tab-content .charsheet select.input-width-smallest, .ui-dialog .tab-content .charsheet input[type="text"].input-width-smallest, .ui-dialog .tab-content .charsheet input[type="number"].input-width-smallest { text-align: center; min-width: 0; width: 2em; } .ui-dialog .tab-content .charsheet .ability-input { background-clip: text; border: none; font-size: 2rem; font-weight: bold; max-width: 2em; min-width: 2em; text-align: center; z-index: 1; } .ui-dialog .tab-content .charsheet .hpCurrMax .ability-input { background-clip: inherit; } .ui-dialog .tab-content .charsheet .ability-mod { align-self: center; font-size: 1.1rem; height: 2.25em; min-width: 2.25em; padding-right: 4px; margin-left: 8px; } .ui-dialog .tab-content .charsheet input[type="text"].input-width-medium { max-width: 43%; min-width: 7em; } .ui-dialog .tab-content .charsheet .input-width-medium-stretch { max-width: 18em; min-width: 11.5em; width: 40%; } .ui-dialog .tab-content .charsheet input[type="text"].input-width-large { max-width: 15em; min-width: 10em; width: 100%; } .ui-dialog .tab-content .charsheet .width-full, .ui-dialog .tab-content .charsheet .input-width-full, .ui-dialog .tab-content .charsheet textarea.input-width-full { width: 100%; } .ui-dialog .tab-content .charsheet .vertical-text { display: flex; margin: auto; margin-top: 0; padding-block: 4px; padding-inline: 2px; text-orientation: upright; width: min-content; writing-mode: vertical-lr; } .charsheet .two-columns { display: grid; grid-template-columns: 1fr 1fr; } .charsheet .three-columns { display: grid; grid-template-columns: 1fr 1fr 1fr; } .charsheet .span-all { grid-column: 1/-1; } .charsheet .span-2 { grid-column: span 2; } .charsheet .span-3 { grid-column: span 3; } .charsheet .span-4 { grid-column: span 4; } .charsheet .span-5 { grid-column: span 5; } .charsheet .nowrap { white-space: nowrap; } .ui-dialog .tab-content .charsheet .left { text-align: left; margin-inline: auto; margin-left: 0; } .ui-dialog .tab-content .charsheet .center { align-content: center; text-align: center; } .ui-dialog .tab-content .charsheet .right { text-align: right; } .charsheet .armour-tier-grid { align-content: center; column-gap: 5px; display: grid; font-size: 1rem; grid-template-columns: 1fr 1fr 1fr 1fr; height: 3em; left: -2.5em; position: relative; width: 12em; z-index: 1; } .charsheet .woes-grid { display: grid; font-size: 1rem; gap: 3px; grid-template-columns: repeat(auto-fill, minmax(20px, 1fr)); left: -3em; top: -3em; position: relative; z-index: 1; } .ui-dialog .tab-content .charsheet .woes-style { font-family: 'Pirata One'; font-size: 3rem; font-weight: normal; left: -10px; letter-spacing: 2px; position: relative; top: -24px; } .ui-dialog .tab-content .charsheet .woes-grid label { margin: auto; padding: 0; position: relative; width: 20px; } .ui-dialog .tab-content .charsheet .armour-tier-grid label span { color: #333; display: flex; font-family: 'New Tegomin'; font-size: 1.2rem; height: 23px; padding: 1px 2px 0 0; place-content: space-evenly; position: relative; width: 26px; } .ui-dialog .tab-content .charsheet .honour-grid label span, .ui-dialog .tab-content .charsheet .woes-grid label span { color: #333; display: flex; font-family: 'New Tegomin'; font-size: 1.2rem; height: 20px; place-content: space-evenly; position: relative; width: 20px; } .ui-dialog .tab-content .charsheet .honour-grid label input, .ui-dialog .tab-content .charsheet .woes-grid label input { -webkit-appearance: none; border: 1px solid #8a8a8a; border-radius: 50%; height: 20px; margin: 0; outline: 1px solid #000; outline-offset: 1px; position: absolute; width: 20px; } .ui-dialog .tab-content .charsheet .armour-tier-grid label input { -webkit-appearance: none; border: 1px solid #8a8a8a; border-radius: 50%; height: 23px; margin: 0; outline: 1px solid #000; outline-offset: 1px; position: absolute; width: 26px; } .ui-dialog .tab-content .charsheet .honour-grid label:last-child, .ui-dialog .tab-content .charsheet .woes-grid label:last-child { transform: scale(1.5); margin: 4px; z-index: 1; } .ui-dialog .tab-content .charsheet .woes-grid label:last-child { border-radius: 50%; bottom: -20px; left: -15px; margin-inline: 6px 0; outline: 1px solid #FFF; outline-offset: 2px; } .ui-dialog .tab-content .charsheet label:has(input[type="checkbox"]:checked) span, .ui-dialog .tab-content .charsheet label:has(input[type="checkbox"]):hover span, .ui-dialog .tab-content .charsheet button[type="roll"]:hover, .ui-dialog .charsheet .virtues:hover .virtues-box button[type="roll"] { background-color: #eb3143; background-image: none; border-color: transparent; border-radius: 4px; box-shadow: none; color: #000; outline: none; text-shadow: none; } .ui-dialog .tab-content .charsheet .weapon-notes-style label:has(input[type="checkbox"]:checked) span { background-color: #eb3143; outline: none; } .ui-dialog .tab-content .charsheet .honour-grid label input[type='radio']:hover, .ui-dialog .tab-content .charsheet .woes-grid label input[type='radio']:hover, .ui-dialog .tab-content .charsheet .armour-tier-grid label input[type='checkbox']:hover { background-color: #eb3143; } .ui-dialog .tab-content .charsheet .honour-grid label input[type='radio']:hover + span, .ui-dialog .tab-content .charsheet .woes-grid label input[type='radio']:hover + span, .ui-dialog .tab-content .charsheet .armour-tier-grid label input[type='checkbox']:hover + span { border-radius: 50%; color: #fff; font-weight: normal; } .ui-dialog .tab-content .charsheet .honour-grid label input[type='radio']::before, .ui-dialog .tab-content .charsheet .woes-grid label input[type='radio']::before, .ui-dialog .tab-content .charsheet .armour-tier-grid label input[type='checkbox']::before { border-radius: 50%; content: ''; display: block; height: 100%; } .ui-dialog .tab-content .charsheet .honour-grid label input[type='radio']:checked + span, .ui-dialog .tab-content .charsheet .woes-grid label input[type='radio']:checked + span, .ui-dialog .tab-content .charsheet .armour-tier-grid label input[type='checkbox']:checked + span { background-color: #eb3143; border-radius: 50%; color: #fff; font-weight: normal; min-height: 21px; min-width: 21px; outline: 1px solid #fff; } .ui-dialog .tab-content .charsheet .armour .armour-tier-grid label input[type='checkbox']:checked + span { outline: 3px solid #000; } .sheet-darkmode .ui-dialog .tab-content .charsheet .armour .armour-tier-grid label input[type='checkbox']:checked + span { outline: 2px solid #fff; } .ui-dialog .tab-content .charsheet .honour-grid label:has(~ label input:checked) input:before, .ui-dialog .tab-content .charsheet .woes-grid label:has(~ label input:checked) input:before, .ui-dialog .tab-content .charsheet .armour-tier-grid label:has(~ label input:checked) input:before { background-color: #555; } .ui-dialog .tab-content .charsheet .armour-tier-grid label:has(~ label input:checked) input:before { height: 23px; margin-left: -2px; margin-top: -1px; outline: 2px solid #000; width: 25px; } .ui-dialog .tab-content .charsheet .honour-grid label:has(~ label input:checked) span, .ui-dialog .tab-content .charsheet .woes-grid label:has(~ label input:checked) span, .ui-dialog .tab-content .charsheet .armour-tier-grid label:has(~ label input:checked) span { border-radius: 50%; color: #cbcbcb; font-weight: normal; } .ui-dialog .tab-content .charsheet .armour-tier-grid label:has(input[type="checkbox"]):hover span { border-radius: 50%; } .charsheet .tenets-grid { display: grid; grid-template-columns: auto auto; grid-template-rows: 2rem 3rem; margin: 5px 2px 15px 2px; outline: 2px solid #333; padding: 5px; row-gap: 5px; } .sheet-darkmode .charsheet .tenets-grid { outline-color: #000; } .ui-dialog .charsheet .tenets-style { font-family: 'Proxima Nova'; letter-spacing: 10px; font-weight: normal; width: 100%; display: inline-flex; justify-content: center; } .charsheet .tenets-grid input[type="text"] { text-align: center; } .ui-dialog .tab-content .charsheet input.lost-broken { position: relative; } .ui-dialog .tab-content .charsheet label.lost-broken { display: none; } .ui-dialog .tab-content .charsheet input.lost-broken:checked + label.lost-broken { align-items: center; background-color: #eb3143; color: #fff; display: inline-flex; font-size: 1.5em; height: 100%; margin: auto; opacity: .85; padding-left: 4px; place-content: center; position: absolute; text-align: left; width: 100%; z-index: 1; } .ui-dialog .tab-content .charsheet .repitem:has(input.lost-broken:checked):hover input.lost-broken:checked { z-index: 2; } .ui-dialog .tab-content .charsheet input.lost-broken:checked:hover + .lost-broken, .ui-dialog .tab-content .charsheet input.lost-broken:checked + label.lost-broken:hover { opacity: 1; } .charsheet .broken-pc:checked ~ .broken-pc { align-content: center; background-color: #555555; display: block; min-height: 2em; min-width: 8em; outline: 2px solid #000; width: 100%; } .charsheet .warning:checked + input { background-color: #eb3143; border-radius: 0; color: #fff; outline: 3px solid #eb3143; } .ui-dialog .tab-content .charsheet .weapons .normal-view, .ui-dialog .tab-content .charsheet .weapons .dueling-view { display: none; } .charsheet .show-duel:not(:checked) ~ div[data-groupname="repeating_weapons"] .normal-view, .charsheet .show-duel:checked ~ div[data-groupname="repeating_weapons"] .dueling-view { display: block; max-width: 11em; white-space: nowrap; } /* Hide spinners in Firefox */ input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -moz-appearance: none; -webkit-appearance: none; margin: 0; } .charsheet input:hover::-webkit-outer-spin-button, .charsheet input:hover::-webkit-inner-spin-button, .charsheet input:focus::-webkit-outer-spin-button, .charsheet input:focus::-webkit-inner-spin-button { appearance: textfield; -moz-appearance: auto; /* Restore default appearance on focus */ } .charsheet select { -moz-appearance: none; -webkit-appearance: none; appearance: none; cursor: pointer; text-align: center; } /* repeating row controls */ .ui-dialog .tab-content .charsheet .repcontainer .repitem, .ui-dialog .tab-content .charsheet .repcontainer + .repcontrol { background-color: transparent; margin: auto; min-height: 1em; padding-bottom: 2px; } .ui-dialog .charsheet .repcontainer .repitem .itemcontrol { max-width: -webkit-fill-available; } .ui-dialog .tab-content .charsheet .itemcontrol button.repcontrol_del, .ui-dialog .tab-content .charsheet .itemcontrol a.repcontrol_move { border: 2px solid #111; border-radius: 3px; bottom: -.5em; display: block; height: 1.5em; padding: 0 0 1.5em 0; position: relative; width: 1.5em; z-index: 3; } .ui-dialog .tab-content .charsheet .itemcontrol button.repcontrol_del { background: red; color: #fff; outline: none; right: 5px; } .ui-dialog .tab-content .charsheet .itemcontrol a.repcontrol_move { background: #fff; color: #000; outline: none; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_add, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_del, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_move, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_edit { background: none; border: 0; box-shadow: none; font-size: 0; line-height: 1; outline: none; padding: 0; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_add:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_del:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_move:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_edit:before { background: none; background-color: #fff; border: 2px solid #222222d4; border-radius: 3px; box-shadow: none; display: block; height: 1.5em; line-height: normal; outline: none; padding: 0; width: 1.5em; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_add:hover, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_del:hover, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_move:hover, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_edit:hover { color: #fff; outline: none; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_add:hover:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_del:hover:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_move:hover:before, .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_edit:hover:before { background-color: #000; font-weight: normal; outline: none; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_add:before { content: "&"; display: block; font-family: "Pictos"; font-size: 12px; font-weight: bold; } .ui-dialog .tab-content .charsheet .repcontrol button.repcontrol_edit:before { content: "("; display: block; font-family: "Pictos"; font-size: 12px; font-weight: bold; } .ui-dialog .tab-content .charsheet .editmode + .repcontrol button.repcontrol_edit:before { content: ")"; } .charsheet .section-header, .charsheet .section-header-inline { font-family: 'Nunito', serif; font-size: 1.5rem; font-weight: bold; margin-inline: 2px; } .charsheet .column-header { font-family: 'Nunito', serif; font-weight: bold; font-size: 1.1rem; } .charsheet .swiftness, .charsheet .spirit, .charsheet .vigor, .charsheet .resilience { display: inline-block; margin-bottom: 2em; position: static; text-align: center; width: 100%; & span.section-header { font-family: 'Ghastly Panic', sans-serif; font-size: 3rem; font-synthesis: none; letter-spacing: 4px; line-height: 3rem; padding: 5px 3px 5px 8px; text-shadow: 0 0 0 #000, 0 0 0 #000; } } .charsheet .swiftness, .charsheet .spirit, .charsheet .vigor, .charsheet .resilience, .charsheet .honour { margin-inline: auto; /* inverts margin-right based on vw 888px up to 1280px */ margin-right: max(-36px, min(0px, calc(-0.0918 * 100vw + 81.55px))); } .charsheet .spirit, .charsheet .vigor { margin-left: -2em; } .charsheet .ability-base-mod { display: flex; margin: -6px auto 2px auto; max-width: 5em; position: relative; vertical-align: middle; z-index: 1; } .charsheet .section-notes { font-size: 1.2rem; font-family: 'Times New Roman', Times, serif; line-height: 1.25rem; } .charsheet .logo { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_logo.webp'); background-repeat: no-repeat; background-size: cover; display: grid; grid-area: logo; height: 218px; left: -4em; margin-bottom: -4em; margin-right: -5em; place-self: center; position: relative; top: -3em; transform-origin: top left; transform: scale(1); transition: transform .5s ease-in-out; width: 330px; z-index: 0; } .ui-dialog .charsheet .kanji-text { font-family: 'Yuji Mai'; font-size: 1.65rem; font-weight: 400; text-shadow: 1px 1px 1px #111; } /* roll template */ .sheet-rolltemplate-ronin { align-content: center; color: #111 !important; margin-bottom: 5px; margin-inline: auto; max-inline-size: 360px; min-height: 3em; } .sheet-rolltemplate-ronin .sheet-heading-row { background-color: #000; display: grid; font-family: 'Special Elite'; grid-template-columns: 1fr 1fr; min-height: 2em; padding: 5px 2px 2px 2px; position: relative; } .sheet-rolltemplate-ronin .sheet-template-body { align-content: center; background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_template_background.webp'); background-position: 0 -6px; background-repeat: no-repeat; background-size: 100%; padding-top: 2em; } .sheet-rolltemplate-ronin .sheet-template-body::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_template_background.webp'); background-position: bottom; background-repeat: no-repeat; background-size: cover; bottom: -7px; content: ''; display: block; padding-top: 20px; position: relative; } .sheet-rolltemplate-darkmode.sheet-rolltemplate-ronin .sheet-template-body, .sheet-rolltemplate-darkmode.sheet-rolltemplate-ronin .sheet-template-body::after { background-image: url('https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/Ronin/images/ronin_template_background_darkmode.webp'); color: #fff; } .sheet-rolltemplate-ronin .sheet-row { align-items: center; display: grid; grid-template-columns: 1fr 1fr; } .sheet-rolltemplate-ronin .sheet-span-all { grid-column: 1/-1; text-align: center; } .sheet-rolltemplate-ronin .sheet-key { margin-inline: auto; margin-right: 2px; } .sheet-rolltemplate-ronin .sheet-value { margin-inline: auto; margin-left: 0; } .sheet-rolltemplate-ronin .sheet-heading { font-family: 'Special Elite'; font-size: 1.2em; } .sheet-rolltemplate-ronin .sheet-subheading { font-family: 'Nunito'; } .sheet-rolltemplate-ronin .sheet-heading, .sheet-rolltemplate-ronin .sheet-subheading { align-content: center; background-color: #000; color: #fff; padding-block: 2px; padding-inline: 5px; position: relative; } .sheet-rolltemplate-ronin .sheet-duel-label { background-color: #eb3143; border-radius: 5px; box-shadow: 1px 3px 1px 1px #111; font-family: serif; font-size: 12px; padding-inline: 6px; pointer-events: none; position: absolute; right: -1px; text-orientation: upright; top: 5px; transform: rotate(7deg); writing-mode: vertical-lr; } .sheet-rolltemplate-ronin .sheet-block { display: inline-block; } .sheet-rolltemplate-ronin .sheet-block:empty { display: none; } .sheet-rolltemplate-ronin .sheet-description { background-color: #e6e6e6ab; display: block; margin: .25em 1em .5em 1em; padding: 5px 5px 10px 5px; text-align: left; white-space: normal; } .sheet-rolltemplate-darkmode.sheet-rolltemplate-ronin .sheet-description { background-color: #000000b8; } .sheet-rolltemplate-ronin .sheet-center { text-align: center; } .sheet-rolltemplate-ronin hr { background-color: #111; height: 2px; margin-block: 2px; width: 70%; } .sheet-rolltemplate-ronin .sheet-footnote { font-size: .85em; padding-inline: 5px; } .sheet-rolltemplate-ronin .sheet-success-roll, .sheet-rolltemplate-ronin .sheet-crit-roll { color: #3fb315 !important; display: inline-block; font-size: 1.25em; font-weight: bold; padding-block: 2px; vertical-align: top; width: 100%; } .sheet-rolltemplate-ronin .inlinerollresult.fullcrit { border: 2px solid #3fb315 !important; } .sheet-rolltemplate-ronin .sheet-failed-roll, .sheet-rolltemplate-ronin .sheet-fumble-roll { color: #eb3143 !important; display: inline-block; font-size: 1.25em; font-weight: bold; padding-block: 2px; vertical-align: top; width: 100%; } .sheet-rolltemplate-ronin .inlinerollresult.fullfail { border: 2px solid #eb3143 !important; } .sheet-rolltemplate-ronin span.inlinerollresult { background-color: transparent; border: 1px solid #666; cursor: help; display: inline-block; font-weight: 600; margin: 1px; min-width: 1em; padding: 0 3px 0 3px; text-align: center; } .sheet-rolltemplate-ronin span[data-i18n="versus-difficulty-rating"] + .inlinerollresult { border-color: transparent; } /* d20 dice image */ .sheet-rolltemplate-ronin .sheet-d20-roll span.inlinerollresult { border-color: transparent; display: inline-grid; height: 24px; line-height: normal; margin-inline: 0; padding: 0; position: relative; width: 24px; } .sheet-rolltemplate-ronin .sheet-d20-roll span.inlinerollresult::before { content: '0'; display: inline-grid; font-family: 'dicefontd20'; font-size: 1.85em; line-height: 1em; opacity: .85; position: absolute; } .sheet-rolltemplate-darkmode.sheet-rolltemplate-ronin .sheet-d20-roll span.inlinerollresult::before { opacity: .25; } .sheet-rolltemplate-ronin .sheet-dice-roll span.inlinerollresult { background-color: #000; border: none !important; border-radius: 2px; color: #fff; display: inline-grid; font-weight: normal; height: 24px; line-height: normal; margin-inline: 0; outline: 1px solid #333; outline-offset: -2px; padding: 0; position: relative; width: 24px; } .sheet-rolltemplate-ronin span.sheet-roll-detail { cursor: help; vertical-align: text-top; opacity: .5; } .sheet-rolltemplate-ronin span.sheet-roll-detail:hover { opacity: 1; } .sheet-rolltemplate-ronin span.sheet-roll-detail .inlinerollresult { background-color: transparent; border: none; font-size: 1rem; font-weight: normal; padding: 0 1px 0 1px; pointer-events: none; } /* hyperlinks */ .sheet-rolltemplate-ronin a { background-color: #ffffffa6; font-family: system-ui; font-weight: bold; padding: 0 4px 4px 4px; text-decoration: underline; } .sheet-rolltemplate-darkmode.sheet-rolltemplate-ronin a { background-color: #000000a6; } /* removes text and adds dice image */ .sheet-rolltemplate-ronin .sheet-roll-query a::before, .sheet-rolltemplate-ronin .sheet-roll-query a::after { bottom: -1px; color: #000; content: 'F'; font-family: 'dicefontd6'; font-size: 16px; opacity: .75; position: relative; } .sheet-rolltemplate-ronin .sheet-roll-query { display: contents; } .sheet-rolltemplate-ronin .sheet-roll-query a { text-decoration: none; } .sheet-rolltemplate-ronin .sheet-roll-query a::before { margin-right: -10px; top: -3px; } .sheet-rolltemplate-ronin .sheet-roll-query:hover a { text-decoration: none; } .sheet-rolltemplate-ronin .sheet-roll-query:hover a::before { color: #eb3143; font-size: 17px; opacity: 1; } .sheet-rolltemplate-ronin .sheet-roll-query:hover a::after { color: #eb3143; font-size: 17px; opacity: 1; top: 1px; }