* {
    touch-action: pan-x pan-y;
    box-sizing: border-box;
}
html, body {
    height:100%;
    overflow:hidden;
}

main {
    height:calc(100dvh - var(--title-bar-height));
    margin-top:var(--title-bar-height);
    overflow:scroll;
    position:relative;
    z-index:101;
    -webkit-overflow-scrolling:touch;
}
.button {
    user-select:none;
}
.button.disabled{
    pointer-events:none;
    opacity:0.3;
}
a.button {
    display:inline-block;
}
p {
    font-family:var(--font-body), sans-serif;
    font-size:var(--p-size);
}

h1 {
    font-family:var(--font-h1), sans-serif;
    font-size:var(--h1-size);
    font-weight:400;
}
h2 {
    font-family:var(--font-body), sans-serif;
    font-size:var(--h2-size);
    line-height:150%;
}
.pad {
    display:block;
    width:100%;
}
.pad.p-4 {
    height:4px;
}
.pad.p-8 {
    height:8px;
}
.pad.p-16 {
    height:16px;
}
.pad.p-32 {
    height:32px;
}

.title-bar {
    height:var(--title-bar-height);
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    text-align:center;
    border-bottom: 1px solid var(--theme-gray-2);
}



.modal {
    pointer-events:none;
    transition: transform var(--modal-open-time) ease-out, opacity var(--modal-open-time) ease-out;
    color:var(--theme-dark);
    position:fixed;
    height:auto;
    width:100%;
    height:100%;
    z-index:100;
    top:0;
}

.modal.active {
    pointer-events:all;
}


.modal .modal-title h2 {
    font-size:var(--h2-size);
    font-family:var(--font-accent);
}
.modal .screen {
    position:absolute;
    width:100%;
    height:100%;
    top:0;
    left:0;
    opacity:0;
    background:rgba(0,0,0,0.4);
    transition: opacity var(--modal-open-time) ease-out;
}
.modal.active .screen {
    opacity:1;
}
.modal .inner {
    position:relative;
    z-index:5;
    background:var(--theme-light);
    max-height: calc(100dvh - 90px);
    overflow: scroll;
    padding-bottom:32px;
}
.modal .gutters {
    padding:0 32px;
}
.modal.from-bottom .inner {
    transition:transform var(--modal-open-time) ease-out;
    opacity: 1;
    left:0;
    width: 100%;
    border-top-right-radius: var(--modal-radius);
    border-top-left-radius: var(--modal-radius);
    position: absolute;
    bottom: 0;
    transform:translateY(101%);
}
.modal.active.from-bottom .inner {
    transform:translateY(0);
}
.modal .button {
    width:100%;
    display:block;
}
.modal .modal-title {
    padding-bottom:32px;
    padding-top:32px;
    display:flex;
    justify-content: space-between;
    align-items: center;
    position: sticky;
    top: 0;
    background: var(--theme-light);
}
/* Give it a huge touch area for easy tapping */
.modal .close-modal {
    padding: 28px;
    margin: -28px;
}







.std-list {
    display:none;
    width:100vw;
}

.std-list.active {
    display:flex;
    flex-direction:column;
}
.list-container {
    position:relative;
    overflow:hidden;
}
.std-list.behind {
    top:0;
    left:0;
    position:absolute;
}
.std-list .list-item {
    border-bottom: 1px solid var(--theme-gray-2);
    min-height: 128px;
    max-height: 200px;
    display: flex;
    text-decoration: none;
    position:relative;
    height: calc(calc((100.0vh - var(--tab-bar-height) - var(--title-bar-height)) / 4.0));
}
.std-list .list-item .list-image {
    width: calc(50% - 32px);
    height: 100%;
    background: var(--theme-gray-2);
}
.std-list .list-item .list-image img {
    object-fit:cover;
    height:100%;
    width:100%;
}
.std-list .list-item .list-text {
    width: calc(50% + 32px);
    padding: 32px;
    flex-direction: column;
    display: flex;
    justify-content:center;
}

.std-list .list-item .right-chevron {
    position: absolute;
    top: 0;
    right: 26px;
    bottom: 0;
    margin: auto;
    height: 26px;
    width: auto;
}





