@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,900;1,900&display=swap'); h1, h2, h3, h4, h5, h6 { font-family: 'Montserrat', sans-serif; } h2 { text-transform: uppercase; background-color: #333; color: #fff; font-weight: 900; text-align: center; margin-bottom: 5px; } h6 { text-transform: uppercase; font-size: 0.8rem; } input[type="checkbox"].readonly { pointer-events: none; } .characterviewer label { font-family: 'Montserrat', sans-serif; text-transform: uppercase; color: #333; font-weight: 700; margin-bottom: 0px; padding: 0px; font-size: 12px; line-height: 14px; } .characterviewer .custom-label { font-family: 'Montserrat', sans-serif; text-transform: uppercase; background: transparent; color: #333; font-weight: 700; margin-left: 3px; margin-bottom: 0px; padding: 0px; font-size: 12px; line-height: 14px; box-sizing: content-box; max-width: 120px; } .charsheet button[type="roll"].label, .charsheet button[type="roll"].label:focus, .charsheet button[type="roll"].label:hover { font-family: 'Montserrat', sans-serif; text-transform: uppercase; color: #333; font-weight: 700; margin-bottom: 0px; padding: 0px; font-size: 12px; line-height: 14px; border-style: none; border-radius: 0px; text-shadow: none !important; box-shadow: none !important; background-image: none; background-color: transparent; } .charsheet button[type="roll"].label::before { content: " "; } .charsheet button[type="roll"].dice-roll { border-style: none; border-radius: 10px; text-shadow: none !important; box-shadow: none !important; background-image: none; background: transparent; padding: 0px; margin-right: 0px; } input.dot[value="0"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "J"; } input.dot[value="1"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "A"; } input.dot[value="2"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "B"; } input.dot[value="3"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "C"; } input.dot[value="4"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "D"; } input.dot[value="5"] ~ button.dice-roll::before { font-family: dicefontd10; font-size: 2.6rem; content: "E"; } input[type="text"], .input-display { width: 100%; border-style: solid; border-width: 0px 0px 1px 0px; border-color: #333; background-color: rgba(255, 255, 255, 0.6); padding: 4px; border-radius: 3px; } input[type="number"] { border-style: solid; border-width: 0px 0px 1px 0px; border-color: #333; background-color: rgba(255, 255, 255, 0.6); text-align: center; } textarea { margin-bottom: 0px; box-sizing: border-box; background-color: rgba(255,255,255,0.6); } .wrapper { background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/water.jpg?raw=true'); background-repeat: no-repeat; background-position: center center; background-size: cover; padding: 10px; display: grid; grid-template-rows: auto; grid-template-columns: 2fr 1fr 1fr 2fr; grid-template-areas: "logo logo header-general header-general" "skills skills skills skills" "attributes attributes attributes attributes" "paths paths aspirations aspirations" "connections connections trademarks trademarks" "quips quips quips quip-cards" "tropes favored-stunts favored-stunts cinematic-cards" "health footer-general footer-general footer-general"; row-gap: 10px; column-gap: 10px; align-items: start; } .logo { grid-area: logo; filter: drop-shadow(10px 10px 2px rgba(50,73,66,0.6)); align-self: center; justify-self: left; } .header-general { grid-area: header-general; display: grid; grid-template-rows: auto; grid-template-columns: 150px 1fr; row-gap: 3px; column-gap: 3px; align-items: center; } .header-general label { text-align: right; } .skills { grid-area: skills; } .skill-list { display: grid; grid-template-rows: auto; grid-template-columns: 1fr 1fr; column-gap: 10px; } .skill-list .left > div, .skill-list .right > div { display: flex; align-items: center; margin-bottom: 3px; } .skill-list .left .check, .skill-list .right .check { min-width: 13px; min-height: 13px; margin: 0px; } .skill-list .left .label, .skill-list .right .label { width: auto; margin: 0px 0px 0px 3px; } .skill-list .left .value, .skill-list .right .value { flex-grow: 1; margin: 0px 0px 0px 3px; } .skill-list .left .dots, .skill-list .right .dots { width: 120px; margin: 0px 0px 0px 3px; } .char-attributes { grid-area: attributes; } .char-attributes > div { display: grid; grid-template-rows: auto; grid-template-columns: 80px 1fr 1fr 1fr 1fr 1fr 1fr 1fr; column-gap: 3px; margin-bottom: 3px; align-items: center; grid-template-areas: "approach-header . . . . . . ." "force-check force-label intellect-label intellect-dots might-label might-dots presence-label presence-dots" "finesse-check finesse-label cunning-label cunning-dots dexterity-label dexterity-dots manipulation-label manipulation-dots" "resilience-check resilience-label resolve-label resolve-dots stamina-label stamina-dots composure-label composure-dots"; row-gap: 3px; column-gap: 3px; } .approach-header { text-align: center; grid-area: approach-header; } .char-attributes .check { justify-self: center; } .char-attributes label { text-align: right; } .force-check { grid-area: force-check; } .force-label { grid-area: force-label; } .intellect-label { grid-area: intellect-label; } .intellect-dots { grid-area: intellect-dots; } .might-label { grid-area: might-label; } .might-dots { grid-area: might-dots; } .presence-label { grid-area: presence-label; } .presence-dots { grid-area: presence-dots; } .finesse-check { grid-area: finesse-check; } .finesse-label { grid-area: finesse-label; } .cunning-label { grid-area: cunning-label; } .cunning-dots { grid-area: cunning-dots; } .dexterity-label { grid-area: dexterity-label; } .dexterity-dots { grid-area: dexterity-dots; } .manipulation-label { grid-area: manipulation-label; } .manipulation-dots { grid-area: manipulation-dots; } .resilience-check { grid-area: resilience-check; } .resilience-label { grid-area: resilience-label; } .resolve-label { grid-area: resolve-label; } .resolve-dots { grid-area: resolve-dots; } .stamina-label { grid-area: stamina-label; } .stamina-dots { grid-area: stamina-dots; } .composure-label { grid-area: composure-label; } .composure-dots { grid-area: composure-dots; } .paths { grid-area: paths; } .paths > div { display: flex; align-items: center; margin-bottom: 3px; } .paths > div .label { width: auto; margin: 0px 0px 0px 3px; } .paths > div .value { width: auto; flex-grow: 2; margin: 0px 0px 0px 3px; } .paths > div .dots { width: 120px; margin: 0px 0px 0px 3px; } .aspirations { grid-area: aspirations; } .aspirations > div { display: flex; align-items: center; margin-bottom: 3px; } .aspirations > div .label { width: auto; margin: 0px 0px 0px 3px; } .aspirations > div .value { width: auto; flex-grow: 2; margin: 0px 0px 0px 3px; } .connections { grid-area: connections; } .trademarks { grid-area: trademarks; } .quips { grid-area: quips; } .tropes { grid-area: tropes; } .quip-cards { grid-area: quip-cards; justify-self: center; } .cinematic-cards { grid-area: cinematic-cards; justify-self: center; } .favored-stunts { grid-area: favored-stunts; } .health { grid-area: health; } .health > div { display: grid; grid-template-rows: auto; grid-template-columns: 13px 1fr 70px 1fr; column-gap: 2px; align-items: center; padding: 1px; } .health > div:nth-child(odd) { background-color: rgba(255,255,255,0.6); } .health > div p { font-size: 8px; font-weight: 600; margin-bottom: 0px; } .footer-general { grid-area: footer-general; } /* Repeating and Expanding sections */ .repcontainer[data-groupname="repeating_connections"] .repitem, .repcontainer[data-groupname="repeating_trademarks"] .repitem, .repcontainer[data-groupname="repeating_quips"] .repitem, .repcontainer[data-groupname="repeating_tropes"] .repitem, .repcontainer[data-groupname="repeating_favoredstunts"] .repitem, .repcontainer[data-groupname="repeating_relationships"] .repitem, .repcontainer[data-groupname="repeating_equipment"] .repitem, .repcontainer[data-groupname="repeating_notes"] .repitem { display: grid; grid-template-rows: auto; grid-template-columns: auto 52px; grid-template-areas: ". ." "expandable expandable"; row-gap: 5px; column-gap: 3px; } .repcontainer[data-groupname="repeating_connections"] .repitem .expandable, .repcontainer[data-groupname="repeating_trademarks"] .repitem .expandable, .repcontainer[data-groupname="repeating_quips"] .repitem .expandable, .repcontainer[data-groupname="repeating_tropes"] .repitem .expandable, .repcontainer[data-groupname="repeating_favoredstunts"] .repitem .expandable, .repcontainer[data-groupname="repeating_relationships"] .repitem .expandable, .repcontainer[data-groupname="repeating_equipment"] .repitem .expandable, .repcontainer[data-groupname="repeating_notes"] .repitem .expandable { grid-area: expandable; } /* Style the dots */ .dots { display: flex; align-items: center; } /* Configure the button styling. This example makes it look like a radio. */ button.dot { padding: 0; border: solid 1px #a8a8a8; cursor: pointer; width: 14px; height: 14px; border-radius: 50%; display: flex; justify-content: center; align-items: center; } button.dot > span { width: 6px; height: 6px; border-radius: 50%; background: buttontext; } button.zero-dot > span { width: auto; height: auto; background: none; } /* Hide the "checked" section of the radio if the hidden attribute value is greater than the button value */ input.dot[value="0"] ~ button.gt-0 > span.checked { display: none; } input.dot[value="1"] ~ button.gt-1 > span.checked { display: none; } input.dot[value="2"] ~ button.gt-2 > span.checked { display: none; } input.dot[value="3"] ~ button.gt-3 > span.checked { display: none; } input.dot[value="4"] ~ button.gt-4 > span.checked { display: none; } /* Tabbed content */ .footer-general { display: grid; grid-template-rows: auto; grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-areas: "general-button relationships-button equipment-button notes-button" "general-tab general-tab general-tab general-tab" "relationships-tab relationships-tab relationships-tab relationships-tab" "equipment-tab equipment-tab equipment-tab equipment-tab" "notes-tab notes-tab notes-tab notes-tab"; column-gap: 5px; } .general-button { grid-area: general-button; } .relationships-button { grid-area: relationships-button; } .equipment-button { grid-area: equipment-button; } .notes-button { grid-area: notes-button; } .tab-general { grid-area: general-tab; } .tab-relationships { grid-area: relationships-tab; } .tab-equipment { grid-area: equipment-tab; } .tab-notes { grid-area: notes-tab; } .footer-general button.footer-tab-button { font-family: 'Montserrat', sans-serif; text-transform: uppercase; background-color: #333; color: #fff; font-weight: 600; padding: 6px 18px; margin-bottom: 5px; font-size: 14px; line-height: 16px; border-style: none; border-radius: 6px; text-shadow: none !important; box-shadow: none !important; background-image: none; } .tab-general, .tab-relationships, .tab-equipment, .tab-notes { display: none; } .tabstoggle[value="general"] ~ button[name="act_general"], .tabstoggle[value="relationships"] ~ button[name="act_relationships"], .tabstoggle[value="equipment"] ~ button[name="act_equipment"], .tabstoggle[value="notes"] ~ button[name="act_notes"] { background: #555; } .tabstoggle[value="relationships"] ~ div.tab-relationships, .tabstoggle[value="equipment"] ~ div.tab-equipment, .tabstoggle[value="notes"] ~ div.tab-notes { display: block; min-height: 120px; } .tabstoggle[value="general"] ~ div.tab-general { display: grid; grid-template-rows: auto; grid-template-columns: 1fr 1fr; } .tab-general .right > div { display: flex; align-items: center; margin-bottom: 5px; } .tab-general > div .label { text-align: right; margin-right: 3px; } .tab-general .left { display: grid; grid-template-rows: auto; grid-template-columns: 1fr 1fr; column-gap: 5px; align-items: center; justify-items: left; } button.quipdeck, button.quipdeck:focus, button.quipdeck:hover { font-family: 'Montserrat', sans-serif; text-transform: uppercase; background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/octopus200x300.png?raw=true'); background-position: center; background-size: contain; background-repeat: no-repeat; color: #fff; font-weight: 600; padding: 6px 18px; margin-bottom: 5px; font-size: 1.4rem !important; line-height: 20px; border-style: none; border-radius: 8px; text-shadow: #003 0 0 15px !important; box-shadow: none !important; width: 100px; height: 150px; } button.quipdeck::before { content: " " !important; } button.cinematicdeck, button.cinematicdeck:focus, button.cinematicdeck:hover { font-family: 'Montserrat', sans-serif; text-transform: uppercase; background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/deep-sea-diver.png?raw=true'); background-position: center; background-size: contain; background-repeat: no-repeat; color: #fff; font-weight: 600; padding: 6px 18px; margin-bottom: 5px; font-size: 1.4rem !important; line-height: 20px; border-style: none; border-radius: 8px; text-shadow: #003 0 0 15px !important; box-shadow: none !important; width: 100px; height: 150px; } button.cinematicdeck::before { content: " " !important; } /* Collapsible sections */ input.toggle-more + button { font-family: 'Montserrat', sans-serif; text-transform: uppercase; color: #fff; font-weight: 700; margin-bottom: 0px; padding: 2px 6px; font-size: 12px; font-weight: 400; line-height: 14px; border-style: none; border-radius: 6px; text-shadow: none !important; box-shadow: none !important; background-image: none; background-color: #333; } input.toggle-more[value="0"] + button + div.expandable { display: none; } input.toggle-more[value="1"] + button > span.more, input.toggle-more[value="0"] + button > span.less { display: none; } /* Roll template styling */ .sheet-rolltemplate-skillroll .sheet-outer, .sheet-rolltemplate-path .sheet-outer, .sheet-rolltemplate-custompath .sheet-outer, .sheet-rolltemplate-drawquip .sheet-outer, .sheet-rolltemplate-drawcinematic .sheet-outer { background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/water.jpg?raw=true'); background-repeat: no-repeat; background-position: center center; background-size: cover; padding: 10px; } .sheet-rolltemplate-skillroll .sheet-inner, .sheet-rolltemplate-path .sheet-inner, .sheet-rolltemplate-custompath .sheet-inner, .sheet-rolltemplate-drawcinematic .sheet-inner { background-color: rgba(255,255,255,0.7); padding: 10px 5px; } .sheet-rolltemplate-skillroll .sheet-results, .sheet-rolltemplate-path .sheet-results, .sheet-rolltemplate-custompath .sheet-results { display: grid; grid-template-rows: auto; grid-template-columns: 1fr 1fr; } .sheet-rolltemplate-skillroll .sheet-inner p:last-child, .sheet-rolltemplate-path .sheet-inner p:last-child, .sheet-rolltemplate-custompath .sheet-inner p:last-child { margin-bottom: 0px; } .sheet-rolltemplate-skillroll .sheet-outer .sheet-header, .sheet-rolltemplate-path .sheet-outer .sheet-header, .sheet-rolltemplate-custompath .sheet-outer .sheet-header, .sheet-rolltemplate-drawquip .sheet-outer .sheet-header, .sheet-rolltemplate-drawcinematic .sheet-outer .sheet-header { background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/clapperboard.png?raw=true'); background-size: contain; background-position: center; background-repeat: no-repeat; height: 220px; padding: 3px 25px; margin-bottom: 10px; display: grid; grid-template-rows: 9fr 10fr; grid-template-columns: 1fr; grid-template-areas: "." "header"; align-items: center; } .sheet-rolltemplate-skillroll .sheet-outer .sheet-header h4, .sheet-rolltemplate-path .sheet-outer .sheet-header h4, .sheet-rolltemplate-custompath .sheet-outer .sheet-header h4, .sheet-rolltemplate-drawquip .sheet-outer .sheet-header h4, .sheet-rolltemplate-drawcinematic .sheet-outer .sheet-header h4 { font-family: 'Montserrat', sans-serif; text-transform: uppercase; color: #fff; font-size: 1.2rem; font-weight: 600; line-height: 2.4rem; grid-area: header; } .sheet-rolltemplate-drawquip .sheet-inner { background: url('https://github.com/LongShadowGames/roll20-character-sheets/blob/they-came-from-beneath-the-sea/TheyCameFromBeneathTheSea/images/notepaper.png?raw=true'); background-size: contain; width: 200px; height: 286px; padding: 5px; display: grid; grid-template-rows: 2fr 1fr; grid-template-columns: 1fr; align-items: center; justify-items: center; } .sheet-rolltemplate-drawquip .sheet-inner h3, .sheet-rolltemplate-drawquip .sheet-inner h4 { text-align: center; font-weight: 400; } .sheet-rolltemplate-drawquip .sheet-inner h3 { margin: 20px; } .sheet-rolltemplate-drawquip .sheet-inner h4 { margin: 20px; color: #555; } .sheet-rolltemplate-drawcinematic .sheet-inner h3, .sheet-rolltemplate-drawcinematic .sheet-inner h4, .sheet-rolltemplate-drawcinematic .sheet-inner p { text-align: center; } .sheet-rolltemplate-drawcinematic .sheet-inner hr { border-color: #333; margin: 5px 0px; } /* Responsive CSS */ @media only screen and (max-width: 480px) { .wrapper { grid-template-columns: 1fr 1fr; grid-template-areas: "logo logo" "header-general header-general" "skills skills" "attributes attributes" "paths paths" "aspirations aspirations" "connections connections" "trademarks trademarks" "quips quips" "tropes tropes" "favored-stunts favored-stunts" "health health" "footer-general footer-general" "quip-cards cinematic-cards"; } .logo img { max-width: 90%; } .skill-list { grid-template-columns: auto; } .char-attributes > div { grid-template-columns: 80px 1fr 1fr 1fr; grid-template-areas: "approach-header . . ." "force-check force-label intellect-label intellect-dots" ". . might-label might-dots" ". . presence-label presence-dots" "finesse-check finesse-label cunning-label cunning-dots" ". . dexterity-label dexterity-dots" ". . manipulation-label manipulation-dots" "resilience-check resilience-label resolve-label resolve-dots" ". . stamina-label stamina-dots" ". . composure-label composure-dots"; } .footer-general { grid-template-columns: 1fr 1fr; grid-template-areas: "general-button relationships-button" "equipment-button notes-button" "general-tab general-tab" "relationships-tab relationships-tab" "equipment-tab equipment-tab" "notes-tab notes-tab"; } .tabstoggle[value="general"] ~ div.tab-general { display: grid; grid-template-rows: auto; grid-template-columns: 1fr; } .tab-general .left { display: grid; grid-template-rows: auto; grid-template-columns: 1fr; column-gap: 0px; row-gap: 5px; } }