/* ------------------- */ /* Custom Properties */ /* ------------------- */ :root { --clr-body-bg: #08031A; --clr-body-txt: #fceaff; --clr-content-bg: #3d2163; --clr-top-btn-bg: #FFD05A; --clr-top-btn-txt: #08031A; --clr-main-heading: #ED64F5; --clr-sub-heading: #e8b86f; --clr-title-border: #d3aad5; --clr-bold-txt: #ff9933; --clr-link: #ED64F5; --clr-link-hover: #c355c9; --clr-quote-bg: #13092D; --clr-quote-border: #999999; --clr-code-bg: #241445; --clr-code-border: #82668f; --clr-dates: rgb(121, 184, 255); --clr-link-btn-bg: #873eb5; --clr-link-btn-txt: white; --clr-link-btn-hover: #241445; --clr-hero-bg: black; --clr-navbar-bg: #222; --clr-navbar-link: white; --clr-main-footer-bg: #13092D; --clr-mod-entry-bg: #241445; --ff-primary: 'Noto Sans'; --sz-paragraph-margin: 1.15em; --sz-main-padding: clamp(1rem, 5%, 4rem); } /* ------------------- */ /* CSS Reset */ /* ------------------- */ /* Box sizing rules */ *, *::before, *::after { box-sizing: border-box; } /* Prevent font size inflation */ html { -moz-text-size-adjust: none; -webkit-text-size-adjust: none; text-size-adjust: none; } /* Remove default margin in favour of better control in authored CSS */ body, h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; } /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ ul[role='list'], ol[role='list'] { list-style: none; } /* Set core body defaults */ body { min-height: 100vh; line-height: 1.5; } /* Set shorter line heights on headings and interactive elements */ h1, h2, h3, h4, button, input, label { line-height: 1.1; } /* Balance text wrapping on headings */ h1, h2, h3, h4 { text-wrap: balance; } /* A elements that don't have a class get default styles */ a:not([class]) { text-decoration-skip-ink: auto; } /* Make images easier to work with */ img, picture { max-width: 100%; display: block; } /* Inherit fonts for inputs and buttons */ input, button, textarea, select { font: inherit; } /* Make sure textareas without a rows attribute are not tiny */ textarea:not([rows]) { min-height: 10em; } /* Anything that has been anchored to should have extra scroll margin */ :target { scroll-margin-block: 5ex; } /* ------------------- */ /* STYLING BEGINS */ /* ------------------- */ /* General Styles */ html { scroll-behavior: smooth; } body { display: flex; align-items: center; flex-direction: column; font-family: var(--ff-primary), Arial, Helvetica, sans-serif; color: var(--clr-body-txt); background-color: var(--clr-body-bg); } h1 { color: var(--clr-main-heading); font-size: clamp(2rem, 1rem + 5vw, 3rem); border-bottom: 0.18rem solid var(--clr-title-border); padding-bottom: 0.3em; margin-bottom: 0.5em; } h2, h3, h4, h5, h6 { color: var(--clr-sub-heading); } h1, h2, h3 { line-height: 1.2; } h2, .h2 { font-size: clamp(1.55rem, 1rem + 3vw, 2.15rem); } h3, .h3 { font-size: clamp(1.55rem, 1rem + 3vw, 1.8rem); } h2:has(+ *[class]), .h2:has(+ *[class]), h3:has(+ *[class]), .h3:has(+ *[class]) { margin-bottom: 0.5em; } hr { border: 0.05rem solid var(--clr-title-border); } strong { color: var(--clr-bold-txt); } :focus { outline: 0.15em solid var(--clr-body-txt); } a { font-weight: 700; color: var(--clr-link); } a:hover { color: var(--clr-link-hover); } a:not([class]):focus { outline: 0.15rem solid var(--clr-link); } a:focus img { outline: 0.2em solid var(--clr-body-txt); } :not(.c-blockquote) > blockquote, .c-blockquote { padding: 1em 1.4em 1.4em; border-inline-start: 0.1em solid var(--clr-main-heading); background-color: var(--clr-quote-bg); margin-bottom: 1em; } blockquote > * + :not([class]), * + blockquote, * + .c-blockquote, .c-blockquote__attribution { margin-top: var(--sz-paragraph-margin); } button:hover { cursor: pointer; } button:focus, details:focus { outline-offset: 0.2em; } figure { margin-bottom: var(--sz-paragraph-margin); display: grid; place-content: center; justify-items: center; } figcaption { text-align: center; font-size: 0.9em; margin-top: 0.2em; } :not(pre) > code { color: var(--clr-bold-txt); padding: 0 0.15em; } pre { border: 0.07em solid var(--clr-code-border); background: var(--clr-code-bg); max-width: 90vw; overflow: auto; padding: 1rem; } pre > code { white-space: pre; } summary { cursor: pointer; } dl { display: grid; gap: 1em; grid-template-columns: auto auto; } dt { font-weight: bold; } dd { grid-column-start: 2; } /* MAIN CONTENT */ main, .content__wrapper, .content--divided { display: grid; } main, .content__wrapper { font-size: 1.2rem; } main { width: 100%; } .content__wrapper, .content--divided { gap: 1rem; } .content__wrapper { justify-self: center; } .article, .content:not(.content--divided), .content__section { padding: 1.5rem var(--sz-main-padding); } .main__header { padding: 2.5rem var(--sz-main-padding); text-align: center; display: grid; } .article, .content:not(.content--divided), .content__section { background-color: var(--clr-content-bg); } .article__info { text-align: center; display: grid; gap: 0.2em; } .content > * + .h2, .content__section > * + .h2, .article > * + .h2 { margin-top: 2em; } .content > * + :not([class]), .content__section > * + :not([class]), .article > * + :not([class]) { margin-top: var(--sz-paragraph-margin); } .sidebar--sticky { position: sticky; top: 4rem; } /* Desktop main content layout */ @media only screen and (min-width: 60rem) { .content__wrapper { padding: 0 var(--sz-main-padding); grid-template-areas: 'leftbar article rightbar'; grid-template-columns: minmax(0, 20%) minmax(0, 2.5fr) minmax(0, 20%); } .article, .content { grid-area: article; } .left-sidebar { grid-area: leftbar; } .right-sidebar { grid-area: rightbar; } } /* HEADING WRAPPER AND ANCHOR */ .heading-wrapper { display: flex; gap: 0.3em; margin-top: 1.5rem; align-items: baseline; } .heading-anchor { line-height: 1; opacity: 0.8; order: -1; text-decoration: none; } .heading-anchor:hover { text-decoration: underline; text-underline-offset: 0.1em; opacity: 1; } .heading-anchor:focus { outline: 2px solid currentColor; outline-offset: 0.15em; } .heading-anchor [hidden] { display: block; } :not(.heading-wrapper) + .heading-wrapper { margin-top: 1.7em; } /* BLOCKQUOTES With CITATIONS */ .c-blockquote__attribution { text-align: left; } .c-blockquote__attribution::before { content: "—"; margin-right: 0.3em; } /* FOOTNOTES */ .footnotes-list :target { background-color: var(--clr-quote-bg); } /* SPECIAL ELEMENTS */ .text-box { background: var(--clr-quote-bg); border: 0.1em solid var(--clr-main-heading); padding: 0.8em; margin: 0.5em 0; display: grid; gap: 1em; } .mod-entry, .mod-entry__downloads { display: grid; align-items: center; } .mod-entry { gap: 1em; background: var(--clr-mod-entry-bg); margin: 1em 0; padding: 1em; } .mod-entry__downloads { gap: 0.5em; } /* Tablet screen size */ @media only screen and (min-width: 37.5rem) { .mod-entry__downloads { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); } } /* Link button */ .link-btn { font-size: 1.3rem; text-align: center; display: inline-block; border: 0.15em solid var(--clr-link-btn-bg); border-radius: 0.6em; padding: 0.5em 1em; background: var(--clr-link-btn-bg); color: var(--clr-link-btn-txt); cursor: pointer; font-weight: 700; text-transform: uppercase; } .link-btn, .link-btn:hover, .link-btn:visited { text-decoration: none; } .link-btn:hover { cursor: pointer; background: var(--clr-link-btn-hover); transition: 0.5s; } .link-btn:focus { outline: 0.15em solid var(--clr-link-btn-txt); outline-offset: -0.25em; } /* Spoiler Accordion */ * + .spoiler-accordion { margin-top: var(--sz-paragraph-margin); } .spoiler-accordion { padding: 0.5em 0; } .spoiler-accordion__hint { font-weight: 700; } .spoiler-accordion__spoiler { padding: 0.5em 1em; } .spoiler-accordion__spoiler p + p { margin-top: 1em; } /* Web button lists */ .web-btn-wrapper { display: flex; flex-wrap: wrap; gap: 0.5rem; } /* UTILITY CLASSES */ .bold-text { font-weight: 700; } .center-el { display: grid; place-content: center; } .center-text { text-align: center; } .indent-text { padding: 1em 0 1em 2em; display: grid; gap: 1em; } .date-style { font-weight: 700; color: var(--clr-dates); } .hidden { display: none; } .item-list { display: grid; gap: 0.7em; } .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; outline: 0; outline-offset: 0; }