* {
    box-sizing:border-box;
}
html,
body
{
    margin:0;
    width:100%;
    height:100%;
    overflow:hidden;
    background:#f5f5f5;
    font-family:
        Inter,
        "Segoe UI",
        Arial,
        sans-serif;
    color:#151515;
}
#world-image
{
    position:absolute;
    left:50%;
    top:50%;
    transform:
        translate(-50%,-50%);
    width:25%;
    overflow:hidden;
}
#world-map
{
    width:100%;
    height:auto;
    display:block;
}
.hotspot
{
    position:absolute;
    width:35px;
    height:35px;
    border-radius:50%;
    background:red;
    cursor:pointer;
    transform:
        translate(-50%,-50%);
    box-shadow:
        0 0 20px red;
    animation:
        pulse 2s infinite;
}
.hotspot:hover
{
    transform:
        translate(-50%,-50%)
        scale(1.3);
}
@keyframes pulse
{
    0%
    {
        opacity:.7;
    }
    50%
    {
        opacity:1;
    }
    100%
    {
        opacity:.7;
    }
}
#godot-container
{
    position:absolute;
    inset:0;
    z-index:10;
    background:#000;
}
#godot-canvas
{
    width:100%;
    height:100%;
    display:block;
}
#menu
{
    position:absolute;
    top:30px;
    right:30px;
    z-index:20;
}
#open-3d
{
    width:auto;
    height:auto;
    padding:12px 25px;
    border-radius:30px;
    border:none;
    background:#151515;
    color:white;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
}
#player
{
    position:absolute;
    left:30px;
    right:30px;
    bottom:25px;
    height:90px;
    display:flex;
    align-items:center;
    padding:0 25px;
    gap:25px;
    border-radius:0px;
    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.96),
            rgba(235,235,238,.96)
        );
    backdrop-filter:
        blur(25px);
    border:
        1px solid
        rgba(0,0,0,.08);
    box-shadow:
        0 25px 80px
        rgba(0,0,0,.18);
    z-index:100;
}
#song-info
{
    width:260px;
}
#title
{
    font-size:16px;
    font-weight:700;
    color:#151515;
}
#artist
{
    color:#777;
    margin-top:5px;
    font-size:13px;
}
#controls
{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:8px;
}
#buttons
{
    display:flex;
    gap:18px;
}
button
{
    width:38px;
    height:38px;
    border-radius:50%;
    border:none;
    background:none;
    color:#151515;
    font-size:18px;
    cursor:pointer;
}
button:hover
{
    background:
        rgba(0,0,0,.08);
}
#play
{
    width:48px;
    height:48px;
    background:#151515;
    color:white;
}
input[type="range"]
{
    appearance:none;
    height:4px;
    background:
        rgba(0,0,0,.18);
    border-radius:10px;
    cursor:pointer;
}
input[type="range"]::-webkit-slider-thumb
{
    appearance:none;
    width:14px;
    height:14px;
    border-radius:50%;
    background:#151515;
}
input[type="range"]::-moz-range-thumb
{
    width:14px;
    height:14px;
    border:none;
    border-radius:50%;
    background:#151515;
}
#volume
{
    width:120px;
}
#volume-box
{
    display:flex;
    align-items:center;
    gap:10px;
    color:#151515;
}
#time-box
{
    width:80%;
    display:flex;
    align-items:center;
    gap:10px;
    font-size:12px;
    color:#777;
}
#current-time,
#duration
{
    min-width:34px;
}
#duration
{
    text-align:right;
}
#progress
{
    flex:1;
}
@media(max-width:700px)
{
    #world-image
    {
        width:60%;
    }
    #player
    {
        left:12px;
        right:12px;
        bottom:12px;
        padding:0 15px;
        gap:12px;
    }
    #song-info
    {
        width:120px;
    }
    #volume-box
    {
        display:none;
    }
    #time-box
    {
        width:100%;
    }
}

