@font-face {
    font-family: Rajdhani;
    src: url('assets/rajdhani-medium.ttf') format('truetype');
    font-weight: 500;
    font-display: swap
}

@font-face {
    font-family: Interface;
    src: local('Arial Narrow'), local('Liberation Sans Narrow');
    font-display: swap
}

* {
    box-sizing: border-box
}

html,
body {
    margin: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #11131c;
    color: #eeecee;
    font-family: Rajdhani, Interface, 'Arial Narrow', Arial, sans-serif
}

button,
input,
select {
    font: inherit
}

button {
    color: inherit;
    cursor: pointer;
    border: 0;
    background: none
}

button:disabled {
    opacity: .28;
    cursor: default
}

button:focus-visible,
input:focus-visible,
select:focus-visible {
    outline: 2px solid #ffb0c0;
    outline-offset: 5px
}

button {
    touch-action: manipulation
}

canvas {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block
}

#transition {
    pointer-events: none;
    z-index: 3;
    opacity: 0
}

.vignette {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse at 65% 46%, transparent 28%, #080a144a 80%, #080a14bb 120%)
}

#home {
    position: fixed;
    inset: 0
}

.menu-panel {
    position: absolute;
    inset: 0 auto 0 0;
    width: 43%;
    background: linear-gradient(100deg, #080a10f7 10%, #0c0e16ed 65%, #11121bc4);
    clip-path: polygon(0 0, 100% 0, 59% 100%, 0 100%);
    border-left: 3px solid #ff446211
}

.studio {
    position: absolute;
    top: 4.6%;
    left: 4.1%;
    display: flex;
    align-items: center;
    gap: 25px
}

.mark {
    font: bold italic 39px Arial;
    letter-spacing: -9px;
    transform: skew(-10deg);
    width: 67px
}

.mark span {
    position: relative;
    top: 8px;
    left: -3px
}

.studio-name {
    border-left: 1px solid #98959b;
    padding: 10px 0 10px 22px;
    font-size: 12px;
    letter-spacing: 3px
}

.identity {
    position: absolute;
    left: 4.3%;
    top: 16.2%;
    width: 32%
}

h1 {
    font: italic 900 clamp(38px, 5.5vw, 88px)/.87 Arial, sans-serif;
    letter-spacing: -3px;
    margin: 0;
    transform: skew(-5deg);
    text-shadow: 0 2px 1px #0008
}

h1 span {
    color: #ff7292;
    background: linear-gradient(#ffc3cd, #ff567b);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 20px #fa355b42)
}

.identity:after {
    content: '';
    position: absolute;
    top: 45%;
    left: -20%;
    width: 123%;
    height: 1px;
    background: linear-gradient(90deg, transparent, #fb3255, transparent);
    box-shadow: 0 0 10px #ff3d6c
}

.identity p {
    font-size: clamp(7px, .8vw, 13px);
    letter-spacing: 4.1px;
    margin: 17px 0;
    color: #dad4db;
    font-style: italic;
    white-space: nowrap
}

.main-menu {
    position: absolute;
    top: 38%;
    left: 4.1%;
    width: 25%;
    max-width: 365px
}

.main-menu button {
    display: flex;
    align-items: center;
    text-align: left;
    width: 100%;
    height: clamp(32px, 5.5vh, 58px);
    padding: 0 20px;
    font-size: clamp(14px, 1.5vw, 24px);
    letter-spacing: 2.1px;
    font-stretch: condensed;
    transition: color .18s, background .18s, transform .18s
}

.main-menu button span {
    display: inline-block;
    min-width: 47px;
    font-size: 24px;
    color: #ceccd2
}

.main-menu button.primary {
    background: linear-gradient(100deg, #f82e57bc, #b5214144 75%, transparent);
    border-left: 2px solid #ff879c;
    box-shadow: -6px 0 14px #ff275555;
    position: relative;
    color: #fff
}

.main-menu button.primary:before {
    content: '';
    position: absolute;
    inset: 0;
    border-block: 1px solid transparent;
    border-image: linear-gradient(90deg, #ff8eaa, transparent) 1
}

.main-menu button.primary span {
    font-size: 40px;
    color: white
}

.main-menu button:not(:disabled):hover {
    color: white;
    background: linear-gradient(90deg, #f832563a, transparent);
    transform: translateX(4px)
}

.divider {
    height: 1px;
    background: linear-gradient(90deg, #c7c2cd66, transparent);
    margin: 9px 0 10px
}

.location {
    position: absolute;
    right: 4%;
    bottom: 10%;
    text-align: right;
    min-width: 330px
}

.location button {
    display: flex;
    align-items: center;
    gap: 22px;
    width: 100%;
    padding: 14px 0 14px 22px;
    background: linear-gradient(110deg, transparent, #080a1280);
    text-align: center
}

.location strong {
    font-size: clamp(20px, 2.2vw, 35px);
    font-weight: 400;
    letter-spacing: 8px;
    font-style: italic
}

.location small {
    display: block;
    font-size: 11px;
    letter-spacing: 7px;
    margin-top: 13px
}

.slash {
    font-size: 34px;
    color: #ff4366;
    font-style: italic
}

.plus {
    font-size: 23px;
    font-weight: 200;
    color: #ff879c
}

.location-rule {
    height: 1px;
    background: linear-gradient(90deg, transparent, #d4cbd099)
}

.location p {
    font-size: 9px;
    letter-spacing: 3px;
    color: #d2c4ca
}

.location p span {
    padding: 0 15px;
    color: #ff4e72
}

footer {
    position: absolute;
    bottom: 3%;
    left: 4.3%;
    right: 4%;
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    letter-spacing: 2px;
    color: #b1aab5
}

footer i {
    display: inline-block;
    width: 4px;
    height: 4px;
    background: #ff6383;
    margin-right: 9px;
    box-shadow: 0 0 9px #ff6383
}

footer b {
    color: #ff5778;
    margin: 0 12px
}

.inspect {
    position: absolute;
    bottom: 5%;
    left: 46%;
    font-size: 10px;
    letter-spacing: 2px;
    color: #d0c1c9;
    padding: 10px
}

.inspect span {
    color: #ff6b8c;
    margin-left: 16px
}

#loading {
    position: fixed;
    inset: 0;
    z-index: 10;
    background: #0c0e15;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    transition: opacity .7s
}

.mini-mark {
    font: bold italic 55px Arial;
    color: #ff6688
}

.loader-line {
    height: 1px;
    width: 240px;
    background: linear-gradient(90deg, transparent, #ff5277, transparent);
    margin: 18px
}

#loading p {
    font-size: 13px;
    letter-spacing: 3px
}

#loading small {
    font-size: 9px;
    letter-spacing: 3px;
    color: #aaa
}

#loading.done {
    opacity: 0;
    pointer-events: none
}

dialog {
    color: #eee;
    background: linear-gradient(130deg, #151821fa, #0c0e16fa);
    border: 1px solid #8c566855;
    border-top: 2px solid #ff5378;
    width: min(640px, 90vw);
    padding: 25px 32px 32px;
    box-shadow: 0 30px 100px #000a;
    max-height: 85vh
}

dialog::backdrop {
    background: #05060bb0;
    backdrop-filter: blur(7px)
}

.dialog-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    letter-spacing: 3px;
    font-size: 9px;
    color: #bcb1bf
}

.dialog-header button {
    font-size: 28px
}

h2 {
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 4px;
    margin: 20px 0
}

dialog p {
    line-height: 1.7;
    color: #c3bdc8;
    font-size: 15px
}

dialog .eyebrow {
    color: #ff7796;
    font-size: 10px;
    letter-spacing: 3px
}

.cta {
    display: block;
    background: #db3555;
    padding: 14px 23px;
    letter-spacing: 2px;
    font-size: 12px;
    margin-top: 22px
}

.location-card {
    width: 100%;
    text-align: left;
    padding: 14px 0;
    border-bottom: 1px solid #ffffff15;
    display: flex;
    gap: 18px;
    align-items: center
}

.location-card b {
    font-size: 21px;
    color: #ff5f80;
    font-weight: 400
}

.location-card strong {
    letter-spacing: 2px;
    font-weight: 400;
    font-size: 14px
}

.location-card small {
    display: block;
    color: #9f96aa;
    font-size: 10px;
    letter-spacing: 1px;
    margin-top: 5px
}

.location-card:hover {
    background: #ffffff07
}

.settings-row {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin: 24px 0;
    color: #ccc;
    font-size: 14px
}

.settings-row select {
    background: #242631;
    border: 1px solid #776575;
    color: #eee;
    padding: 8px
}

input {
    accent-color: #ff5b7c
}

kbd {
    border: 1px solid #67606d;
    border-radius: 3px;
    padding: 3px 7px;
    color: #fff;
    font-size: 11px
}

.controls-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    color: #c5becb;
    font-size: 14px
}

#toast {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    background: #141720ed;
    border-left: 2px solid #ff6385;
    padding: 14px 25px;
    font-size: 13px;
    opacity: 0;
    pointer-events: none;
    z-index: 20;
    transition: opacity .2s
}

#toast.show {
    opacity: 1
}

#tour {
    position: fixed;
    inset: 0;
    pointer-events: none
}

#tour button {
    pointer-events: auto;
    background: #0b0e18bb;
    border: 1px solid #ffffff33;
    padding: 12px 20px;
    font-size: 11px;
    letter-spacing: 2px
}

.tour-top {
    display: flex;
    justify-content: space-between;
    padding: 30px;
    letter-spacing: 4px
}

.tour-top small {
    display: block;
    font-size: 10px;
    letter-spacing: 2px;
    color: #ff7895;
    margin-top: 10px
}

.reticle {
    position: absolute;
    left: 50%;
    top: 50%;
    color: #fff8
}

.tour-help {
    position: absolute;
    bottom: 35px;
    left: 30px;
    font-size: 10px;
    letter-spacing: 1px;
    background: #10131bb0;
    padding: 15px
}

#save {
    position: absolute;
    bottom: 30px;
    right: 30px
}

[hidden] {
    display: none !important
}

@media(max-width:700px) {
    .menu-panel {
        width: 85%;
        clip-path: polygon(0 0, 85% 0, 70% 100%, 0 100%)
    }

    .studio {
        left: 7%;
        gap: 14px
    }

    .studio-name {
        font-size: 9px;
        letter-spacing: 2px;
        padding-left: 14px
    }

    .identity {
        left: 8%;
        top: 18%;
        width: 70%
    }

    h1 {
        font-size: 57px
    }

    .identity p {
        font-size: 8px;
        letter-spacing: 2.2px
    }

    .main-menu {
        left: 7%;
        width: 58%;
        top: 38%
    }

    .main-menu button {
        height: 5.4vh;
        font-size: 17px
    }

    .location {
        right: 6%;
        bottom: 8%;
        min-width: 0;
        width: 42%
    }

    .location strong {
        font-size: 13px;
        letter-spacing: 2px
    }

    .location small {
        font-size: 7px;
        letter-spacing: 2px
    }

    .location button {
        gap: 9px;
        padding-left: 0
    }

    .location .slash {
        font-size: 20px
    }

    .location p {
        font-size: 7px;
        letter-spacing: 1px
    }

    .location .plus {
        font-size: 16px
    }

    .inspect {
        left: auto;
        right: 5%;
        bottom: 3%;
        font-size: 8px
    }

    footer .footer-right {
        display: none
    }

    footer {
        font-size: 7px
    }

    .tour-help {
        max-width: 65%;
        line-height: 2
    }

    .tour-top {
        padding: 15px;
        font-size: 12px
    }
}

@media(prefers-reduced-motion:reduce) {
    * {
        transition: none !important
    }
}

h1 span {
    text-shadow: none
}

.main-menu button {
    font-weight: 500;
    font-size: clamp(17px, 1.8vw, 26px);
    letter-spacing: 2.6px
}

.identity h1 {
    font-weight: 1000
}

.location strong {
    font-family: Rajdhani, Arial, sans-serif
}
