/* add all special styles used for displaying the rules */
/* .rules: used for all elements loading rules (rules at main site, rules ingame, popup with rules extract
   #rules: div with complete rules used at main site
   #rulesPage: ingame rules page display
   #panelRules: ingame rules sidepanel display
   #popup.rules: popup with rules extract only */


/* add special fonts if wanted */

/* add styles for headers h1-h5 if needed*/

/* cover picture only in main rules */
#rules .cover {    width: 60%;    margin-left: 20%;}
#panelRules .cover {    display: none;}

.rules .content ul {list-style-type: none;}

/* flex style for responsive display */
.rules .flex { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5em; }
@media (max-width: 768px) {
    .rules .flex.mobile { flex-direction: column; /* columns below each other */  }
}
#panelRules .flex.mobile { flex-direction: column; }
.rules .flex .column {    flex: 1; }
.rules .flex .column.wide {    flex: 2; }


/* example variable flex structure putting flexboxes half their wide on wide screen full rules
.rules  .flex.appendix .flexbox { flex: 2 2 23%;  padding:0.5em; padding-right: 1em;}
.rules  .flex.appendix .flexbox img { height:5em; float: left; margin-right: 1em; }
@media (max-width: 1024px) {
    .rules .flex.appendix .flexbox { flex: 2 2 48%; }
}
#panelRules .flex.appendix .flexbox { flex: 2 2 48%; }
*/


/* Examples */
.rules .example { font-style: italic; } /* put your example style here */
#panelRules .example { display: none; } /* examples should not be shown in sidebar */

@font-face {
    font-family:FloorsRulesBody;
    src:url("fonts/FiraSansCondensed-Regular.ttf") format("truetype");
    font-style:normal;
    font-weight:400;
    font-display:swap}

@font-face {
    font-family:FloorsRulesHeading;
    src:url("fonts/Slackey-Regular.ttf") format("truetype");
    font-style:normal;
    font-weight:400;
    font-display:swap}

.floors-rules {
    --ff-ink:#251d16;
    --ff-paper:#f8ebd2;
    box-sizing:border-box;
    width:100%;
    max-width:1020px;
    margin:0 auto;
    padding:clamp(18px,4.5vw,48px);
    color:var(--ff-ink);
    background:var(--ff-paper) url("images/rules/paper-texture.webp") top left/512px 512px repeat;
    font:18px/1.45 FloorsRulesBody,"Arial Narrow",sans-serif;
    overflow-wrap:break-word}

.floors-rules * {
    box-sizing:border-box}

.floors-rules header {
    display:flex;
    align-items:baseline;
    gap:18px;
    border-bottom:2px solid #8e9a67;
    margin:0 0 18px;
    padding-bottom:12px}

.floors-rules h1 {
    font:clamp(23px,4vw,36px)/1.2 FloorsRulesHeading,sans-serif;
    color:#3d5d26;
    margin:0}

.floors-rules header p {
    margin:0;
    font-size:16px}

.floors-rules h2 {
    font:clamp(17px,2.4vw,22px)/1.4 FloorsRulesHeading,sans-serif;
    color:#fff181;
    text-shadow:-1px -1px #17180a,1px -1px #17180a,-1px 1px #17180a,1px 1px #17180a;
    background:url("images/rules/section-bar.webp") center/100% 100% no-repeat;
    padding:5px 13px;
    margin:28px -4px 12px;
    scroll-margin-top:16px}

.floors-rules h3 {
    display:table;
    font:17px/1.4 FloorsRulesBody,sans-serif;
    font-weight:bold;
    color:#fff5dc;
    background:#925442 url("images/rules/subsection-bar.webp") center/100% 100% no-repeat;
    border-radius:10px;
    padding:3px 12px;
    margin:22px 0 9px}

.floors-rules p {
    margin:10px 0}
.floors-rules ul,.floors-rules ol {
    padding-left:1.4em;
    margin:10px 0}
.floors-rules li {
    margin:5px 0}
.floors-rules a {
    color:#345420;
    text-decoration:underline;
    text-underline-offset:3px}

.floors-rules .ff-rule-contents {
    margin:16px 0;
    border-bottom:1px solid #a7a17d;
    padding-bottom:10px}

.floors-rules summary {
    cursor:pointer;
    font-weight:bold;
    color:#405e2b}

.floors-rules nav {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px 16px;
    font-size:16px;
    padding:12px 0}

.floors-rules .ff-rule-important {
    background:#b7655540;
    border-radius:10px;
    padding:9px 13px;
    margin:14px 0}

.floors-rules figure {
    margin:20px 0}
.floors-rules figure img {
    display:block;
    max-width:100%;
    height:auto;
    margin:auto}

.floors-rules figcaption {
    font-size:16px;
    line-height:1.4;
    margin-top:8px}

.floors-rules .ff-rule-example {
    break-inside:avoid}

.floors-rules .ff-rule-setup {
    max-width:800px;
    margin:22px auto}
.floors-rules .ff-rule-setup img {
    width:100%}

.floors-rules .ff-rule-setup figcaption {
    text-align:center}

.floors-rules .ff-rule-figures {
    margin:18px auto;
    max-width:850px}
.floors-rules .ff-rule-figures img {
    width:100%}

.floors-rules .ff-rule-materials {
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin:20px 0}

.floors-rules .ff-rule-materials figure {
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:4px;
    margin:0;
    text-align:center}

.floors-rules .ff-rule-materials img {
    width:72px;
    height:80px;
    object-fit:contain;
    margin:0;
    max-width:calc(50% - 2px)}

.floors-rules .ff-rule-materials img:only-of-type {
    max-width:100%}

.floors-rules .ff-rule-materials figcaption {
    width:100%;
    font-size:15px}

.floors-rules .ff-rule-deck {
    display:flex;
    justify-content:space-around;
    gap:12px;
    flex-wrap:wrap;
    margin:20px 0}

.floors-rules .ff-rule-deck figure {
    margin:0;
    text-align:center}
.floors-rules .ff-rule-deck img {
    width:78px;
    height:100px;
    object-fit:contain}

.floors-rules .ff-rule-examples .ff-rule-example {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:center;
    gap:24px;
    padding:16px 0;
    border-bottom:1px solid #b4aa87}

.floors-rules .ff-rule-examples img {
    width:auto;
    max-height:280px;
    min-width:0;
    image-rendering:auto}

.floors-rules .ff-rule-examples figcaption {
    margin:0}
.floors-rules .ff-rule-examples figcaption strong {
    display:block;
    color:#8a2e1d;
    margin-bottom:5px}

.floors-rules .ff-rule-monster-example {
    display:flow-root;
    background:#efe0bd70;
    padding:16px;
    border:1px solid #b4aa87}

.floors-rules .ff-rule-monster-example img {
    float:right;
    width:42%;
    max-width:300px;
    margin:0 0 10px 22px}
.floors-rules .ff-rule-monster-example figcaption {
    margin:0}

.floors-rules .ff-rule-monster-example strong {
    display:block;
    font-size:18px;
    color:#405e2b;
    margin:0 0 8px}

.floors-rules .ff-rule-elements {
    display:flex;
    align-items:start;
    justify-content:space-around;
    gap:12px;
    flex-wrap:wrap;
    margin:20px 0}

.floors-rules .ff-rule-elements figure {
    margin:0;
    max-width:150px;
    text-align:center}

.floors-rules .ff-rule-samples {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:5px;
    height:90px}

.floors-rules .ff-rule-samples img {
    display:block;
    width:65px;
    height:80px;
    object-fit:contain;
    max-width:calc(50% - 3px);
    margin:0}

.floors-rules .ff-rule-samples img:only-child {
    max-width:100%}

.floors-rules .ff-rule-table-icons {
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    margin-top:8px}

.floors-rules .ff-rule-table-icons img {
    width:44px;
    height:44px;
    object-fit:contain;
    margin:0}

.floors-rules .ff-table {
    width:100%;
    margin:18px 0}

.floors-rules table {
    border-collapse:collapse;
    width:100%;
    table-layout:fixed;
    font-size:16px;
    line-height:1.35}

.floors-rules th,.floors-rules td {
    border:1px solid #6d6048;
    padding:9px 7px;
    text-align:left;
    vertical-align:top}

.floors-rules th {
    background:#5b4c35;
    color:#fff5da;
    font-weight:bold}
.floors-rules td {
    background:#f9edd3a8}
.floors-rules tr:nth-child(even) td {
    background:#e4d1aa99}

.floors-rules .ff-portal-art {
    transform:rotate(calc(var(--ff-portal-base) + var(--ff-portal-turn,0deg)))}

.floors-rules .ff-portal-skulls {
    --ff-portal-base:143deg}
.floors-rules .ff-portal-spiral {
    --ff-portal-base:-90deg}

@media(max-width:650px) {
    .floors-rules {
    font-size:17px;
    padding:18px}
.floors-rules header {
    display:block}
.floors-rules header p {
    margin-top:7px}
.floors-rules nav {
    grid-template-columns:1fr}
.floors-rules .ff-rule-materials {
    grid-template-columns:repeat(3,minmax(0,1fr))}
.floors-rules .ff-rule-examples .ff-rule-example {
    grid-template-columns:1fr;
    gap:10px}
.floors-rules .ff-rule-monster-example img {
    float:none;
    width:auto;
    max-width:100%;
    margin:0 auto 14px}
.floors-rules table,.floors-rules tbody,.floors-rules tr,.floors-rules th,.floors-rules td {
    display:block;
    width:100%}
.floors-rules tr {
    margin-bottom:16px}
.floors-rules tr:first-child {
    display:none}
.floors-rules td::before {
    content:attr(data-label);
    display:block;
    font-weight:bold;
    color:#705335;
    margin-bottom:3px}
}

#panelRules .floors-rules {
    font-size:17px;
    padding:18px}

#panelRules .floors-rules header {
    display:block}
#panelRules .floors-rules nav {
    grid-template-columns:1fr}

#panelRules .floors-rules .ff-rule-materials {
    grid-template-columns:repeat(3,minmax(0,1fr))}

#panelRules .floors-rules .ff-rule-examples .ff-rule-example {
    grid-template-columns:1fr;
    gap:10px}

#panelRules .floors-rules .ff-rule-monster-example img {
    float:none;
    width:auto;
    max-width:100%;
    margin:0 auto 14px}

#panelRules .floors-rules table,#panelRules .floors-rules tbody,#panelRules .floors-rules tr,#panelRules .floors-rules th,#panelRules .floors-rules td {
    display:block;
    width:100%}

#panelRules .floors-rules tr {
    margin-bottom:16px}
#panelRules .floors-rules tr:first-child {
    display:none}

#panelRules .floors-rules td::before {
    content:attr(data-label);
    display:block;
    font-weight:bold;
    color:#705335;
    margin-bottom:3px}

@media print {
    .floors-rules {
    max-width:none;
    padding:0;
    background:#fff;
    font-size:12pt}
.floors-rules .ff-rule-contents {
    display:none}
.floors-rules h2 {
    break-after:avoid}
.floors-rules .ff-rule-example {
    break-inside:avoid}
}


.floors-rules .ff-rule-subsection>h2 {
    display:table;
    max-width:100%;
    font:700 20px/1.35 FloorsRulesBody,sans-serif;
    color:#fff5dc;
    text-shadow:none;
    background-image:url("images/rules/subsection-bar.webp");
    padding:4px 12px}


#panelRules .floors-rules .noSidebar,
#panelRules .floors-rules .example {
    display: none;
}
.floors-rules .deviation {
    border-left: 4px solid #b23e32;
    padding-left: 12px;
    background: #b23e3210;
}
.floors-rules nav .column {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
