html {
    color: #45374e;
    font-size: 1em;
    line-height: 1.4;
    background: #ece6f1;
    font-family: 'Libre Baskerville', serif;
}

body {
    position: relative;
    min-height: 100vh;
    min-width: 100vw;
    padding-bottom: 15em;
    overflow: hidden scroll;

    align-content: center;
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}


div {
    display: block;
}

h1,
h2,
h3,
h4,
h5 {
    text-align: center;
    font-family: 'PASTI', sans-serif;
}

#fpicon,
#fpgame {
    background: url(../img/fpicon.png);

    width: 20vw;
    height: 22vw;
    background-repeat: no-repeat;
    background-position: bottom;
    background-size: contain;

    display: inline-block;
}

#fpicon {
    background-image: url('/img/fpicon.png');
}

#fpgame {
    background-image: url('/img/fpgame.png');
}

/* HEADER */
header {
    margin: 2vw auto;
    width: 90vw;
    max-width: 80rem;
    background: linear-gradient(#684F8C, #C497E0, #E5D8F2);
    align-self: center;
    display: grid;
    grid-template-columns: 10fr 9fr 9fr;
    grid-template-rows: 1fr 1fr auto;
    gap: 15px;
    grid-template-areas:
        "logo trailer trailer"
        "logo trailer trailer"
        "logo button1 button2";

}

header img {
    grid-area: logo;
    margin: auto auto 0 0;
    width: 100%;
    height: auto;
    vertical-align: bottom;
}

header .trailer {
    grid-area: trailer;
    aspect-ratio: 16 / 9;
}

header .storebutton {
    display: block;
}

@media only screen and (max-width: 40rem) {
    header {
        justify-items: center;
        row-gap: 0.625em;

    grid-template-columns: auto;
    grid-template-rows: auto;
    gap: 15px;
    grid-template-areas:
        "logo"
        "trailer"
        "button1"
        "button2";

    }

    header #fpgame,
    header h1,
    header h3 {
        grid-row: auto;
        grid-column: auto;
        align-self: auto;
    }

    header h1,
    header h3 {
        text-align: center;
    }
}

/* END HEADER */
footer {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    margin: 10pt auto 0 auto;
    padding: 2em 5em;
    background: #cec4d4;
    font-size: 10pt;

    box-shadow: #796d82 0 -2pt 3pt;
}

footer>.button {
    width: 10em;
    height: 5em;
    text-decoration: underline;
    color: #030303;
}

footer>.full {
    width: 100%;
}

footer>span {
    flex-grow: 1;
}

footer .address {
    flex: 1 1 30%;
    text-align: left;
}

footer .compnum {
    flex: 1 1 60%;
    text-align: right;
}

@media only screen and (max-width: 40rem) {
    footer {
        padding: 1em;
        display: block;
    }

    footer>span {
        display: block;
        text-align: center !important;
        margin-bottom: 5pt;
    }
}

/* END FOOT */

.maincontent {
    display: block;
    align-self: center;
    overflow: hidden;
    max-width: 60em;
    margin: 0 auto;
}

section {
    margin: 0 auto;
}

.button {
    color: #030303;
    padding: 0.7em;
    font-family: 'PASTI', sans-serif;
}

h1 {
    font-size: 3rem;
}

h2 {
    font-size: 2.4rem;
    border-bottom: 0.1em solid #45374e;
    margin: 1em 3em 0 3em;
}

h3 {
    font-size: 1.8rem;
    margin: 0;
}


/**/

.storelogo {
    display: inline-block;
    width: 100%;
    height: 5em;

    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    margin: 0 0.5em;
}


.storelogo.steamvr {
    background-image: url('/img/steamvr_logo.svg');
}

.storelogo.metavr {
    background-image: url('/img/Meta_Quest_logo.svg');
}

.storebutton {
    text-align: center;
    text-decoration: none;
    color: #C497E0;
}

.storebutton span {
    display: block;
    margin: 0 auto;
}

.storebutton .button {
    height: 1.5rem;
    padding: 0;
    margin: 0;
    vertical-align: middle;
    line-height: 1.5rem;
    font-size: 1.2em;
}

.storebutton:hover .button {
    font-size: 2rem;
    text-shadow: #cec4d4 0 0 0.1em;
}

/* FEATURES */

#sudoku {}

/* --- Base Feature Block Styles --- */
.feat {
    display: grid;
    gap: 15px;
    margin-bottom: 2em;

    /* Default: Single-column layout for mobile */
    grid-template-columns: 1fr;
    grid-template-areas:
        "header"
        "img"
        "text";
}

.banner {
    width: 100%;
}

/* --- Element Placement --- */
.feat h3 {
    grid-area: header;
}

.feat .text {
    grid-area: text;
}

.feat img {
    grid-area: img;
    width: 100%;
    height: 100%;
    background: #0003;
    /* Ensures image fills space without distortion */
    object-fit: cover; 
    aspect-ratio: 4/1; /* A more common panoramic ratio */
}

.feat.leftimg img,
.feat.rightimg img {
    aspect-ratio: 1/1;
}


/* --- DESKTOP: Multi-Column Layouts --- */
@media (min-width: 35rem) {

    .feat.leftimg {
        grid-template-columns: 1fr 2fr; /* Image | Text */
        /* Header takes needed height, text fills the rest */
        grid-template-rows: auto 1fr; 
        grid-template-areas:
            "img header"
            "img text";
    }

    .feat.rightimg {
        grid-template-columns: 2fr 1fr; /* Text | Image */
        grid-template-rows: auto 1fr;
        grid-template-areas:
            "header img"
            "text   img";
    }
}

/* ROADMAP */
#roadmap {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

.roadmap-stage {
    margin: 0.5em;
    box-shadow: #45374e 0.5em 0.5em 0.4em 0.4em;
}

.roadmap-stage li {
    list-style: none;
    padding: 0 0 0 0.4em;
    margin: 0.6em 0;
    border-left: #45374e solid 0.2em;
}

@media (max-width: 35rem) {
    #roadmap {
        grid-template-columns: 1fr;
    }
}

/* ENGINE */

#engine {}


/* FINAL CALL TO ACTION */

#final-cta {
    display: grid;
    max-width: 40em;
    grid-template-columns: 1fr 1fr;
    gap: 2em;
    padding: 1em;

}


/* PRIVACY */

#privacy,
#eula {
    max-width: 50em;
    line-height: 1.5em;
    text-align: justify;
}

#privacy h1,
#privacy h2,
#privacy h3,
#eula h1,
#eula h2,
#eula h3 {
    margin: 1em auto 0.2em auto;
}

#eula ol {
    list-style: lower-alpha;
}

#eula li {
    margin-bottom: 0.5em;
}

/* PRESS KIT */

.press-container {
}
.press-sidebar {
    flex: 1 1 300px;
    min-width: 250px;
    float: left;
    padding: 2em;
}

.press-sidebar .logo {
    width: 10em;
    display: block;;
}

.press-container section {
    display: block;
}

.fact-sheet-item {
    margin-bottom: 15px;
}
.fact-sheet-item strong {
    display: block;
    color: #684F8C;
    font-family: 'PASTI', sans-serif;
    margin-bottom: 5px;
}
.gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    margin: 20px 0;
}
.gallery-grid img {
    width: 100%;
    height: auto;
    border-radius: 4px;
}
/* Roadmap list styling */
.roadmap-list {
    list-style-type: none;
    padding: 0;
}
.roadmap-list li {
    margin-bottom: 8px;
    padding-left: 15px;
    border-left: 3px solid #684F8C;
}


/* PEOPLE */
#people {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 2.5em 1em;
    max-width: 60em;
    margin: 0 auto;
}

#people h2 {
    font-size: 2.2em;
    margin-bottom: 2em;
    padding-bottom: 0.25em;
    border-bottom: 1pt solid #000;
}

#people .team {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 3em 2em;
    width: 100%;
}

#people .member {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75em;
    flex: 1;
    min-width: 180px;
}

#people .member .portrait {
    order: 2;
    width: 140px;
    height: 140px;
    object-fit: cover;
    border-radius: 50%;
    border: .2em solid #796d82;
}

#people .member .name {
    order: 1;
    font-size: 1.2em;
    font-weight: 600;
    white-space: nowrap;
}

#people .member .job {
    order: 3;
    font-size: 1em;
    color: #555;
}

@media only screen and (max-width: 34em) {
    #people .team {
        flex-direction: column;
        align-items: center;
        gap: 2.5em;
    }

    #people .member {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "photo  name"
            "photo  job";
        column-gap: 1.25em;
        row-gap: 0.5em;
        align-items: center;
        width: 100%;
        max-width: 320px;
        min-width: 0;
    }

    #people .member .portrait,
    #people .member .name,
    #people .member .job {
        order: 0;
    }

    #people .member .portrait {
        grid-area: photo;
        width: 70px;
        height: 70px;
    }

    #people .member .name {
        grid-area: name;
        text-align: left;
        margin-bottom: 0.5em;
    }

    #people .member .job {
        grid-area: job;
        text-align: left;
    }
}

#engine {
    width: 30em;
    text-align: center;
}
/********/

/**/

.hidden {
    display: none !important;
    opacity: 0 !important;
}


/* ==========================================================================
   Media Queries
   ========================================================================== */

@media (hover: hover) {
    .series .hover {
        display: none;
    }
}

@media only screen and (max-width: 40rem) {

    .left,
    .right {
        float: none;
        display: inline-block;
    }

    .inout {
        width: auto;
        display: block;
        max-width: fit-content;
        margin: 2em auto;
    }

    .vmid h2 {
        font-size: 4.9vw;
    }

    .vmid .wordline {
        font-size: 4vw;
    }

    .hidemobile {
        display: none;
    }

    .team {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

}


@media print,
(-o-min-device-pixel-ratio: 5/4),
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 120dpi) {}


/* ==========================================================================
   Print styles
   ========================================================================== */

@media print {

    *,
    *:before,
    *:after {
        background: transparent !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }

    a,
    a:visited {
        text-decoration: underline;
    }

    a[href]:after {
        content: " (" attr(href) ")";
    }

    abbr[title]:after {
        content: " (" attr(title) ")";
    }

    h2,
    h3 {
        page-break-after: avoid;
    }
}