:root {
    --bg-color: #2f3e46;
    --fg-color-1: #cad2c5;
    --fg-color-2: #84a98c;
    --hilite: #ef476f;
}

* {
    margin: 0em;
    padding: 0em;
}

body {
    background-color: var(--bg-color);
}

#main-content {
    max-width: 80rem;
    margin-left: auto;
    margin-right: auto;
}

#mapdiv {
    width: 50%;
    position: relative;
}

#map {
    width: 100%;
    height: auto;
    position: absolute;
}

#topbubbles {
    width: 100%;
    position: relative;
}

#lines path {
    fill: none;
    stroke: var(--fg-color-1);
    stroke-width: 0.38;
}

#solids path {
    fill: var(--fg-color-2);
    stroke: none;
}

#route {
    fill: none;
    stroke: var(--hilite);
    stroke-width: 1.5;
}

.bridge {
    width: 3.75%;
    height: 0;
    position: relative;
}

.one-to-one {
    width: 100%;
    height: 0;
    padding-top: 100%;
    position: relative;
}

.topbubble {
    position: absolute;
    border-radius: 50%;
    font-family: 'Roboto Condensed', sans-serif;
    text-align: center;
    line-height: 1.35;
    font-size: 1.5vw;
    font-weight: 700;
}

@media (min-width: 1280px) {
    .topbubble { font-size: 1.25rem; }
}

.bubble-inside {
    height: 100%;
    width: 100%;
    background-color: var(--fg-color-1);
    margin-left: 12.5%;
    margin-top: 12.5%;
    color: var(--bg-color);
}

.bubble-border {
    height: 125%;
    width: 125%;
    background-color: var(--hilite);
}

.tooltip {
    width: 50%;
    height: 100vh;
    background-color: var(--bg-color);
    position: fixed;
    top: 0;
    left: 50%;
    display: none;
    padding-top: 2%;
}

.tooltip img {
    width: 90%;
    height: auto;
    display: block;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 1280px) {
    .tooltip {
        width: 640px;
        padding-top: 26px;
    }
}

.bridge-caption {
    width: 90%;
    margin-left: auto;
    margin-right: auto;
    padding-top: 2%;
}

.bridge-name {
    font-size: 2rem;
    font-family: 'Great Vibes', cursive;
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
    color: var(--fg-color-1);
}

.bridge-desc {
    font-size: 1rem;
    font-family: 'Lora', serif;
    font-weight: 500;
    color: var(--fg-color-1);
}

.bridge:hover .topbubble { background-color: var(--hilite); }
.bridge:hover .tooltip { display: block; }

#intro {
    position: absolute;
    left: 52.5%;
    width: 45%;
    padding-top: 2%;
    font-family: 'Lora', serif;
    color: var(--fg-color-1);
    font-size: 1rem;
}

#intro a { color: var(--fg-color-2); }
#intro a:hover { color: var(--hilite); }
#intro p { margin-bottom: 0.5rem; }

#instructions {
    font-style: italic;
    font-size: 1.5rem;
    color: var(--fg-color-2);
}

#beware {
    font-family: 'Great Vibes', cursive;
    font-size: 3rem;
    color: var(--hilite);
    text-align: center;
    margin-top: 1rem;
}

@media (min-width: 1280px) {
    #intro {
        width: 576px;
        padding-top: 26px;
    }
}

@media (max-width: 640px) {
    
    #intro {
        position: static;
        width: 90%;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 1.5rem;
        padding-top: 1rem;
    }
    
    #beware { font-size: 2.5rem; }
    #instructions { font-size: 1.25rem; }
    #mapdiv { width: 100%; }
    .topbubble { font-size: 3vw; }
    
    .tooltip {
        width: 100%;
        height: auto;
        left: 0;
        z-index: 10;
        padding-top: 5%;
        background-color: transparent;
    }
    
    .bridge-caption {
        background-color: var(--bg-color);
        padding-bottom: 1rem;
        padding-left: 2.5%;
        padding-right: 2.5%;
        width: 85%;
        border-bottom: 3px solid var(--fg-color-2);
    }
    
    .bridge-name {
        font-size: 1.5rem;
        margin-top: 0.25rem;
        margin-bottom: 0.25rem;
    }
    
    .bridge-desc { font-size: 0.875rem ; }
    
}

#bubble-1 > div { top: 330%; left: 330%; }
#bubble-2 > div { top: 1200%; left: 1267%; }
#bubble-3 > div { top: 1890%; left: 1140%; }
#bubble-4 > div { top: 1770%; left: 790%; }
#bubble-5 > div { top: 3470%; left: 1070%; }
#bubble-6 > div { top: 4990%; left: 880%; }
#bubble-7 > div { top: 5240%; left: 1870%; }
#bubble-8 > div { top: 6240%; left: 1735%; }
#bubble-9 > div { top: 6900%; left: 2075%; }
#bubble-10 > div { top: 6740%; left: 1705%; }
#bubble-11 > div { top: 5970%; left: 655%; }
#bubble-12 > div { top: 6970%; left: 270%; }
#bubble-13 > div { top: 7060%; left: 530%; }
#bubble-14 > div { top: 6955%; left: 647%; }
#bubble-15 > div { top: 7010%; left: 760%; }
#bubble-16 > div { top: 7130%; left: 990%; }
#bubble-17 > div { top: 7280%; left: 1110%; }
#bubble-18 > div { top: 7450%; left: 1090%; }
#bubble-19 > div { top: 7690%; left: 1030%; }
#bubble-20 > div { top: 8010%; left: 250%; }
#bubble-21 > div { top: 9610%; left: 425%; }
#bubble-22 > div { top: 10125%; left: 395%; }
#bubble-23 > div { top: 10045%; left: 585%; }
#bubble-24 > div { top: 10395%; left: 980%; }
#bubble-25 > div { top: 9870%; left: 1270%; }
#bubble-26 > div { top: 9470%; left: 1495%; }
#bubble-27 > div { top: 9025%; left: 1880%; }
#bubble-28 > div { top: 9435%; left: 2160%; }
#bubble-29 > div { top: 10025%; left: 2110%; }
#bubble-30 > div { top: 9840%; left: 1895%; }
#bubble-31 > div { top: 10080%; left: 1850%; }
