/*

WELCOME TO STYLESHEET.ORG

This is a design system for laying out content and user interface components.

It can be added to your site by putting the following tag inside the <head> tag in your HTML page:

  <link rel="stylesheet" href="https://stylesheet.org">

You can read more here:

    About Stylesheet: https://stylesheet.org/about
    Content Tags: https://stylesheet.org/content
    Layout System: https://stylesheet.org/layout
    Widgets: https://stylesheet.org/widgets

This stylesheet implements a default look & feel, and you are encouraged to copy-paste this into
your own site and customise for your needs.

*/



/*
    RESET STYLES

    This just resets sizing and display parameters to some known values and ensures they are the same on all browsers.
*/

* { box-sizing: border-box; margin: 0; padding: 0; height: fit-content; transform: scale(1.00); }
body, html { width:100%; height:100%; }

body{ display:flex; flex-direction:column; }
main{ flex:1; }



/*

CUSTOM PARTS

*/

@font-face {
    font-family: rocksOffFont;
    src: url('theme/font.ttf');
}

@font-face {
    font-family: rocksOffFontColour;
    src: url('theme/font-colour.woff2');
}

@font-palette-values --Green {
    font-family: rocksOffFontColour;
    base-palette: 2;
}

@font-palette-values --Orange {
    font-family: rocksOffFontColour;
    base-palette: 0;
}

* {
    font-family: rocksOffFont, serif;
}
html {
    background-color: #333;
}
h2, h3, h4 {
    font-family: rocksOffFontColour, rocksOffFont, serif;
    font-palette: --Green;
}
main > header {
    background-image: url(theme/rocksoff-header.png);
    background-size: cover;
    background-position-x: center;
    height: 300px;
    padding-top: 40px;
}
h1 {
    background-image: url(theme/rocksoff-logo.png);
    background-size: cover;
    text-indent: -500px;
    width: 550px;
    height: 211px;
    overflow: hidden;
    margin: 0 auto;
}
main {
    display: flex;
    flex-direction: column;
}
main > header nav {
    top: 235px;
    position: absolute;
    width: 96%;
    left: 2%;
    border-radius: 100px;
}
main > header nav ol {
    margin: 0 auto;
    width: fit-content;
}

header nav {
    padding: 8px;
}

header nav ol { gap: 20px; }
header nav ol li a {
    padding: 4px 20px;
    background: #8df;
    color: #345;
    border: 4px solid #fff;
    font-weight:bold;
}
header nav ol li a:hover {
    box-shadow: 4px 4px 4px 1px rgba(0,0,0,0.1);
}
header nav ol li a.selected { box-shadow: 0 0 0 4px #000; }

header nav ol li:nth-child(2) a { background: #fc0; }
header nav ol li:nth-child(3) a { background: #9e6; }
header nav ol li:nth-child(4) a { background: #ebf; }

main > section {
    background-image: url(theme/bg1.png);
    background-size: cover;
    z-index: 11;
    padding-bottom: 30px;
    flex: 1;
}

main > section::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    background-image: url(theme/bg1-end.png);
    background-size: contain;
    bottom: -25px; /* Adjusts the overlap */
    height: 50px; /* Double the overlap height */
    z-index: 12; /* Ensures the strip overlaps the content below */
}

main > section:nth-child(3) {
    background-image: url(theme/bg2.png);
    z-index: 3;
    padding-top: 30px;
}

main > section:nth-child(3)::after {
    background-image: url(theme/bg2-end.png);
    z-index: 4;
}

main {
    z-index: 5;
}

main > section > padding > h2 {
    background: rgba(0,0,0,0.1);
    width: 90%;
    margin: 0 auto 10px auto;
}

main > section:nth-child(3) > padding > h2 {
    font-palette: --Orange;
}

main > section:nth-child(3) > padding > p {
    color: #fed;
}

main > section > padding > p {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

main > section:nth-child(3) article {
    border-color: #c80;
}

named#worlds {
    padding: 20px 0;
    background: rgba(0, 0, 0, 0.1);
    margin: 10px 0;
}

named#worlds img {
    width: 80px;
    height: 80px;
}

named#worlds panel {
    display: block;
    background: #fff;
    padding: 4px;
    margin: 0;
    border: 8px solid #080;
}

named#worlds panel p {
    text-align: center;
    color: #000;
}

named#worlds a {
    box-shadow: 0 0 0 0 rgba(0,0,0,0.05);
}
named#worlds a:hover {
    transform: rotate(3deg) scale(1.05);
    box-shadow: 2px 2px 2px 1px rgba(0,0,0,0.05);
}
named#worlds a.selected panel {
    border: 8px solid #000;
    transform: scale(1.05);
}

named#worlds a:nth-child(even):hover {
    transform: rotate(-3deg);
}

#editor header {
    padding-top: 10px;
    height: 110px;
    background-position-x: right;
    background-position-y: center;
    background-size: auto;
}
#editor h1 {
    width: 275px;
    height: 105px;
    margin: 0 20px;
}
#editor header > nav {
    top: 30px;
}
#editor footer {
    height: 80px;
    min-height: 80px;
    background-position-y: top;
}
#editor iframe {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    bottom: 0;
    border: 0;
}
#editor main > section {
    padding-bottom: 0;
}

#editor main > section::after {
    height: 0;
}

#instructions named#worlds{
    padding: 0;
}

p + p {
    margin-top: -25px;
}

footer {
    background-image: url(theme/rocksoff-footer.png);
    background-size: cover;
    background-position-x: center;
    height: 450px;
    min-height: 450px;
    max-height: 450px;
    z-index: 0;
    position: relative;
}

footer p {
    color: #8ac;
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
    text-align: center;
    font-size: 19px;
}

footer a {
    color: #9cf;
}
footer a:hover {
    color: #def;
}

h2 {
    font-size: 45px;
    text-align: center;
    color: #fff;
    padding: 15px 0;
}

article {
    position: relative;
    display: block;
    background: #fff;
    border: 20px solid #080;
    max-width: 1200px;
    width: 90%;
    margin: 0 auto;
}
article a {
    color: #000;
}
article h2 {
    text-align: left;
    font-size: 30px;
    padding-top: 20px;
    padding-left: 40px;
    padding-bottom: 0;
}
article p {
    font-size: 20px;
    padding-right: 20px;
    padding-left: 20px;
}

article img {
    width: 200px;
    height: 200px;
    border: 5px solid #fff;
    border-bottom: 10px solid #fff;
    transition: 0.1s;
}

article a:hover img {
    box-shadow: 4px 4px 4px 1px rgba(0,0,0,0.1);
}

article:nth-child(even) img {
    transform: rotate(-10deg);
}

article:nth-child(odd) img {
    transform: rotate(10deg);
}

/* Instruction cards (the articles in a grid) are not links: the picture always has its shadow,
   and the title is a span, kept black like the linked titles */
grid article img {
    box-shadow: 4px 4px 4px 1px rgba(0,0,0,0.1);
}
grid article h2 span {
    color: #000;
}

/* Song lyrics on the world pages: one paragraph per verse, each line ending in <br> */
named#lyrics {
    display: block;
    width: 90%;
    margin: 0 auto;
    padding-bottom: 20px;
}
named#lyrics p {
    text-align: center;
    font-size: 20px;
    line-height: 1.5;
    color: #fed;
    margin: 0 0 30px 0;
}
named#lyrics p + p {
    margin-top: 0;
}

/* Music player on the world pages */
padding > audio {
    display: block;
    width: 90%;
    max-width: 800px;
    margin: 0 auto 20px auto;
}

main > section:nth-of-type(2) article {
    border-width: 10px;
}

main > section:nth-of-type(2) article img {
    width: 100px;
    height: 100px;
}

main > section:nth-of-type(2) {
}

main > section:nth-of-type(2) h2 {
}

padding > p {
    text-align: center;
    font-size: 25px;
    color: #dfd;
    font-weight: bold;
    padding-bottom: 20px;
}

iframe
{
    border: 10px solid #080;
    margin: 0 auto;
    display: block;
}

/*
    THE PAGE THEME

    This sets the basic background colour and default font
*/
body {
    background-color: #333;
    max-width: 1400px;
    min-width: 900px;
    margin: 0 auto;
    box-shadow: 0 0 50px 10px #000;
    height: auto;
    min-height: 100%;
}
* { position:relative; }

.selected { font-weight: bold; }

a {
    transition: .1s;
    transform: scale(1.00);
}

a:hover {
    transform: scale(1.05);
}

/*
    UI CONTENT

    Described in: https://stylesheet.org/content

    Tags:
        <p> - Declares a paragraph of text
        <p> ... <a href="..."> ... </p> - A link inside a paragraph of text
        <panel> - A content panel
        <menu> - Displays a menu
        <header> - Displays page header
        <footer> - Displays page footer
        <pre> - Displays unformatted code on a page
        <ul> - Displays unordered list
        <location> - Used to display user location in article tree

*/

p a { display: inline; }

/*
  CONTENT: PANEL

  Example usage:

      <panel>
          <p>Any content</p>
      </panel>
*/

panel { display: block; }
panel panel { background-color: #9ab; color: #ff0; padding: 12px; }
panel panel panel { background-color: #9a9; color: #0ff; padding: 8px; }
panel panel panel panel { background-color: #999; color: #fff; padding: 4px; }
panel panel panel panel panel { background-color: #666; color: #fff; padding: 2px; }

/*
  CONTENT: HEADER

  Example usage:

      <header>
          <h1>Title</h1>
          <nav>
              <ol>
                  <li>Link 1</li>
                  <li>Link 2</li>
                  <li>Link 3</li>
              </ol>
          </nav>
      </header>
*/

header nav ol { list-style-type: none; display: flex; flex-direction: row; }
header nav ol li a { display: block; text-decoration: none; }
header header ol li a:hover { background: #fff; }

/* Styling */
header a:hover { transform: scale(1.03) rotate(5deg); }
header li:nth-child(2) a:hover { transform: scale(1.03) rotate(-5deg); }
header li:nth-child(4) a:hover { transform: scale(1.03) rotate(-3deg); }
header a { box-shadow: 0 0 2px 1px rgba(255, 255, 255, 0.1); }

/* Section - Level 0 */

/* Section - Level 1 */
section header { background: #7ad; }
section header nav ol { gap: 12px; }
section header nav ol li a { padding: 6px 16px; background: #47a; border-top-right-radius: 8px; }
section header nav ol li a.selected { background: #147; }

/* Section - Level 2 */
section section header { background: #8be; }
section section header nav ol { gap: 12px; }
section section header nav ol li a { padding: 4px 12px; background: #58b; border-top-right-radius: 6px; }
section section header nav ol li a.selected { background: #258; }

/* Section - Level 3 */
section section section header { background: #9cf; }
section section section header nav ol { gap: 12px; }
section section section header nav ol li a { padding: 2px 8px; background: #69c; border-top-right-radius: 4px; }
section section section header nav ol li a.selected { background: #369; }

/*
  CONTENT: FOOTER

  Example usage:

      <footer>Copyright (c)...</footer>
*/

/*
  CONTENT: PRE

  Example usage:

      <pre>code goes here</pre>
*/

pre {
    font-family: 'Courier New', 'Consolas', monospace; font-size: 13px;
    padding: 12px;
    background-color: #111;
    color: #cde;
    width: 80%;
    margin: auto;
}

/*
  CONTENT: LISTS

  Example usage:

      <ul>
          <li>Item 1</li>
          ...
      <ul>
*/

ul {
    padding-left:36px;
}
ul > li {}

/*
  CONTENT: LOCATION

  Example usage:
      <location>
          <ol>...<ol>
      </location>
*/
location {
    display: block;
}
location ol {
    list-style: none;
}
location li {
    float: left;
}
location li a {
    display: inline-block;
}
location li+li:before {
    display: inline-block;
    content: "Â»";
    padding: 0 8px;
}

/*
    WIDGET: MENU

    A menu is created by using this markup:

        <menu>
            <ol>
                <li><a href="/one">Menu Item One</a></li>
                <li><a href="/one">Menu Item Two</a>
                    <ol>
                        <li><a href="/sub/one">Sub-Menu Item One</a>
                        <li><a href="/sub/two">Sub-Menu Item Two</a>
                    </ol>
                </li>

            </ol>
        </menu>

     See https://stylesheet.org/widgets
*/
menu {
    display: block;
    background-color: #ccc;
    transition: .1s;
    transform: scale(1.00);
    border-top-right-radius: 24px;
    box-shadow: inset 0 0 15px 1px rgba(0, 0, 0,0.1);
}
menu h1,
menu h2,
menu h3,
menu h4,
menu h5 {
    background-color: #bbb;
    border-top-right-radius: 24px;
    padding: 12px;
}
menu ol { list-style-type: none; }
menu > ol { padding: 12px; }
menu ol li a:hover { background-color:#fff; border-top-right-radius: 16px; }
menu ol li a {}
menu ol ol {}
menu ol ol li { padding-left: 16px;}
menu ol ol ol li { padding-left: 32px;}
menu ol ol ol ol li { padding-left: 48px;}
menu ol ol ol ol ol li { padding-left: 64px;}
menu ol ol ol ol ol ol li { padding-left: 80px;}
menu:hover {
    transform: scale(1.01);
}
menu a {
    display:block;
    padding:8px;
}
menu a:hover {
    font-weight: bold;
}
menu a.selected {
    background-color: #eee;
    border-top-right-radius: 12px;
    box-shadow: inset 0 0 2px 2px #ccc;
}

/*
  WIDGET: BUTTON

  Example usage:

      <button>Button Text</button>

  See https://stylesheet.org/widgets
*/
.button {
    text-decoration: none;
    margin: 0 .5rem 0 0;
    border: 1px solid gainsboro;
    color: gray;
    padding: .5rem 1rem;
    box-shadow: 0 .5rem 1rem 0 rgba(0, 0, 0, .05);
    border-radius: .5rem;
    cursor: pointer;
}
.button:hover {
    border: 1px solid black;
}



/*
  WIDGET: FORM

  Example usage:

      <form method="POST">
          <input type="number" name="age"></input>
          ...
      </form>

  See https://stylesheet.org/widgets
*/

form {
    border: 4px solid #cde;
    display: grid;
    grid-template-columns: auto;
    grid-gap:8px;
    padding: 8px;
    max-width: 400px;
}

form input[type="submit"] {
    width: auto;
    min-width: none;
}

input {
    outline: none;
    border: 2px solid rgb(190, 190, 190);
    padding: 8px;
    width: 100%;
}
input:focus {
    border: 2px solid rgb(8, 156, 179);
}

select {
    outline: none;
    border: 2px solid rgb(190, 190, 190);
    padding: 8px;
    width: 100%;
}
select:focus {
    border: 2px solid rgb(8, 156, 179);
}



/*
  WIDGET: FILTER

  Example usage:

    <filter>
        <form method="get">
            <input class="button" type="submit" value="submit"></input>
        </form>
    </filter>

  See https://stylesheet.org/widgets
*/
filter form {
    border: 4px solid #cde;
    background: #def;
    display: flex;
    width: auto;
    gap: 8px;
    padding: 8px;
    max-width: none;
}

filter input[type="submit"] {
    width: auto;
    min-width: none;
}

filter input,
filter select {
    max-width: none;
    min-width: 200px;
}

/*
  WIDGET: TABLE

  Example usage:

      <table>
          <thead>
          </thead>
          <tbody>
          </tbody>
      </table>

  See https://stylesheet.org/widgets
*/

table { border-collapse: collapse; width: 100%; border: 4px solid #cde; }
thead { background: #cde; }
th { font-weight: bold; }
td, th { padding: 8px; text-align: left; }
tr { border-bottom: 1px solid #eee; }
tr:nth-child(even) { background: #f4f4f4; }
td a { padding: 2px 8px; background: #678; border-top-right-radius: 4px; color: #fff; text-decoration: none; margin-right: 8px; }
td a:hover { background: #123; }
td a:last-child { margin: 0; }


/*
  WIDGET: PAGING BAR

  Example usage:

    <paging>
        <span class='LayoutPagingBar-prev'>Prev</span>
        <a class='LayoutPagingBar-page' href='/1'>1</a>
        <span class='LayoutPagingBar-page LayoutPagingBar-selected'>2</span>
        <a class='LayoutPagingBar-page' href='/3'>3</a>
        <span class='LayoutPagingBar-next'>Next</span>
    </paging>

  See https://stylesheet.org/widgets
*/
paging { text-align: center; }
paging a,
paging span
{
    margin: 4px;
    padding: 4px 10px;
    font-size: 13px;
    font-weight: bold;
    text-decoration: none;
    color: #000;
    display: inline-block;
}
paging a
{
    background-color: #cde;
    padding: 6px 10px;
}
paging .LayoutPagingBar-prev
{
    background-color: #9ab;
    border-radius: 12px 0 0 12px;
    padding: 4px 10px;
    padding-left: 14px;
}
paging .LayoutPagingBar-next
{
    background-color: #9ab;
    border-radius: 0 12px 12px 0;
    padding: 4px 10px;
    padding-right: 14px;
}
paging a.LayoutPagingBar-selected
{
    background: #fff;
    color: #000;
}
paging span { color: #678; }
paging a:hover { background: #def; }


/*
    WIDGET: CARD

    <flex>
        <card>
            <a href="/a">
                <img src=""/>
                <h>Title A</h>
                <p>Description A</p>
            </a>
        </card>
        <card>
            <a href="/b">
                <img src=""/>
                <h>Title B</h>
                <p>Description B</p>
            </a>
        </card>
    </flex>

    See https://stylesheet.org/widgets
*/

card
{
    position: relative;
    overflow: hidden;
    width: 200px;
    text-align: center;
    border-top-right-radius: 12px;
    background-color: #ddd;
    border: 4px solid #fff;
    box-shadow: 0 0 2px 0 rgba( 51,102,153, 0.5 );
    transition: .15s;
    transform: scale(1.00);
}

card > a
{
    display: flex;
    flex-direction: column;
    place-content: flex-end;
    width: 100%;
    height: 100%;
}

card img
{
    width: 250px;
    height: 150px;
}

card:hover {
    transform: scale(1.04); /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */
}

card section
{
    padding: 8px;
    background-color: rgba(255,255,255,0.85);
}

card > a {
    text-decoration: none;
}

card h1, card h2, card h3, card h4, card h5 {
    text-decoration: underline;
}

/*
    WIDGET: ARTICLE

    <card>
        <a href="/card-click-location">
            <img src="/images/card.jpg">
        </a>
    </card>

   See https://stylesheet.org/widgets
*/

/*
    WIDGET: FEATURE

    <feature>
        <iframe src="/iframe"></iframe>
    </feature>

   See https://stylesheet.org/widgets
*/

feature > p {
    font-style: italic;
    text-align: center;
}


/*

    LAYOUT

    Content is laid out using rows, columns, grids, flexes and overlays.
    These are described here: https://stylesheet.org/layout

    Spacing between content items is handled automatically based on the current spacing depth
    which is defined as the number of nested <smaller> tags containing the layout.

    If padding is needed, then uniform padding can be placed around content using the <padding> tag.
    The size of the padding depends on the spacing depth and by default matches the spacing size at the current depth.

    The <row> tag places its immediate children side-by-side, with the current spacing between each, and no padding around the row.
    It is composable with <column> and <grid> in any combination, with the spacing automatically turning out correctly.

        <row>
            <column></column>
            <grid class="grid-2">
                <img src="...">
                <img src="...">
                <img src="...">
                <img src="...">
                <img src="...">
            </grid>
        </row>

    You can customise these with your own gap and padding values.
*/

column, panel, padding, menu, section, panel { display: grid; grid-template-columns: auto; }
main, padding, section { width: 100%; }
row, flex { display: flex; flex-direction: row; width: 100%; }
grid { display: grid; }
flex { flex-wrap: wrap; }
stretch { flex:1; display:flex; }

overlay > * { position: absolute; }

.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-5 { grid-template-columns: repeat(5, 1fr); }
.grid-6 { grid-template-columns: repeat(6, 1fr); }
.grid-7 { grid-template-columns: repeat(7, 1fr); }
.grid-8 { grid-template-columns: repeat(8, 1fr); }
.grid-9 { grid-template-columns: repeat(9, 1fr); }

.width-1 { flex: 1 }
.width-2 { flex: 2 }
.width-3 { flex: 3 }
.width-4 { flex: 4 }
.width-5 { flex: 5 }
.width-6 { flex: 6 }
.width-7 { flex: 7 }
.width-8 { flex: 8 }
.width-9 { flex: 9 }

padding,
panel,
flex,
column,
row,
grid,
padding
{ gap: 16px; grid-gap:16px; }

smaller padding,
smaller panel,
smaller flex,
smaller column,
smaller row,
smaller grid,
smaller padding
{ gap: 12px; grid-gap:12px; }

smaller smaller padding,
smaller smaller panel,
smaller smaller flex,
smaller smaller column,
smaller smaller row,
smaller smaller grid,
smaller smaller padding
{ gap: 8px; grid-gap:8px; }

smaller smaller smaller padding,
smaller smaller smaller panel,
smaller smaller smaller flex,
smaller smaller smaller column,
smaller smaller smaller row,
smaller smaller smaller grid,
smaller smaller smaller padding
{ gap: 4px; grid-gap:4px; }

smaller smaller smaller smaller padding,
smaller smaller smaller smaller panel,
smaller smaller smaller smaller flex,
smaller smaller smaller smaller column,
smaller smaller smaller smaller row,
smaller smaller smaller smaller grid,
smaller smaller smaller smaller padding
{ gap: 2px; grid-gap:2px; }

padding { padding: 16px; }
smaller padding { padding: 12px; }
smaller smaller padding { padding: 8px; }
smaller smaller smaller padding { padding: 4px; }
smaller smaller smaller smaller padding { padding: 2px; }
smaller smaller smaller smaller smaller padding { padding: 0; }

/*
    Made with https://stylesheet.org
*/
