:root {
    --gf-bg:           var(--gf-green);
    --gf-bg-dark:      var(--gf-dark-green);
    --gf-border:       var(--gf-cyan);
    --gf-text-bright:  var(--gf-light-yellow);
    --gf-text:         var(--gf-white);

    --gf-hue-green:    147.82;
    --gf-green:        #273;   /* oklch( 50.29% 0.130  146.74) */
    --gf-dark-green:   #051;   /* oklch( 39.06% 0.124  144.81) */
    --gf-felt:         #146a2c;/* oklch( 46.08% 0.1238 147.82) */
    --gf-cyan:         #cfc;   /* oklch( 95.17% 0.086  144.87) */
    --gf-light-yellow: #ff8;   /* oklch( 97.60% 0.142  108.76) */
    --gf-yellow:       #ff0;   /* oklch( 96.80% 0.211  109.77) */
    --gf-orange:       #f80;   /* oklch( 74.42% 0.181   56.46) */
    --gf-white:        white;  /* oklch(100.00% 0.000    0.00) */
}

body {
    background:var(--gf-felt) url("/greenfelt-tile.jpg");
    color:var(--gf-text);
    font-family: Verdana, Arial, Helvetica, sans-serif;
    margin:0px;
}
@media screen and (min-resolution: 2dppx), only screen and (-webkit-min-device-pixel-ratio: 2) {
    body {
        background-size: 256px 256px;
    }
}

* {
    box-sizing: border-box;
}

body img {
    border:none;
}
#title {
    color: var(--gf-text-bright);
    margin-left: 8px;
    font-size: x-large;
}

body table, body table td {
    border:none;
    border-collapse: collapse;
}


.gamelist ul {
    list-style-type: none;
    padding:0px;
    margin: 0px;
}

.gamelist li {
    display:block;
    float:left;
    clear:none;
    padding:0px 0px 0px 40px;
}

.gamesublist li {
    display:block;
    clear:both;
    padding:0px;
}

.gamelist {
        font-size:130%;
    float:left;
    padding:0px;
    width:70%;
}

#content {
    margin:8px;
}

.ancillary {
    clear:right;
    float:right;
    width:20%;
}
.ancillary, .highscore, .rss  {
    font-size:x-medium;
    background:var(--gf-bg);
    color:var(--gf-border);
    border:1px solid var(--gf-border);
    padding:10px;
    margin:10px 0px 5px 0px;
}
.highscore tr:nth-child(odd) {
    background:#207030;
}

.ancillary td, .ancillary th, .highscore td, .highscore th {
    color:var(--gf-border);
    vertical-align:top;
    border:none;
}

.highscore .sort-moves   th.moves:before,
.highscore .sort-elapsed th.time:after,
.highscore .sort-moves   th.time a:hover:after,
.highscore .sort-elapsed th.moves a:hover:before {
    content:"▾";
}

.highscore th.time a:after,
.highscore th.moves a:before {
    width: 2ex;
    content: "";
}

.highscore th.moves a,
.highscore th.time a {
    /* helps the ▼ not wrap as much */
    display: inline-block;
    min-width: 5em;
}

.highscore td.name {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 10em;
}

.highscore td.date {
    white-space: nowrap;
}

.ancillary h3, .highscore h3 {
    margin:5px 0px 0px 0px;
}

.key-equiv-list dt {
    float:left;
    width:45%;
    clear:both;
    font-weight:bold;
    margin:5px 0px 5px 0px;
}
.key-equiv-list dt:after {
    content: ":";
    display:inline;
}
.key-equiv-list dd {
    float:left;
    width:45%;
    clear:none;
    font-weight:bold;
    margin:5px 0px 5px 0px;
    padding:3px;
    border:1px solid #162;
}
.key-equiv-list {
    display: table;
}

#instructions .key-equiv-list dt {
    width: 8em;
}


.intervaltabs {
    border-spacing: 0;
    width: 100%;
}
.intervaltabs td, .scoreheader {
    border-bottom: 1px solid var(--gf-border);
}
.intervaltabs td, .scoreheader {
    text-align:center;
}
.intervaltabs .selected, .intervaltabs .selected a {
    background:var(--gf-border);
    color:var(--gf-dark-green);
}
.scoreheader {
    font-weight:bold;
    font-size:large;
    padding:2px;
}

#activate, .pile-game { position:relative; } /* needed for #paused to be centered correctly */

#activate {
    -webkit-touch-callout: none;
      -webkit-user-select: none;
       -khtml-user-select: none;
         -moz-user-select: none;
          -ms-user-select: none;
              user-select: none;
}

#paused {
    font-weight:bold;
    font-size:large;
    padding:1em;
    z-index:1000;
}

A         { text-decoration: none; }
A:hover   { text-decoration: underline; }
A:link    { color:var(--gf-yellow); }
A:visited { color:var(--gf-orange); }

#debug {
    border:1px solid blue;
    background:#406dad;
    display:none;
    margin:8px;
}

#copyright {
    display: none;
    font-size:x-small;
    border:1px solid var(--gf-border);
    background:var(--gf-bg);
    padding:10px;
    margin:8px;
}

#control_panel {
    display: inline-block;
    border:1px solid var(--gf-border);
    border-radius: .5em;
    background:var(--gf-bg);
    padding:10px;
    margin:5px 0px 5px 0px;
}

#control_panel input, #control_panel select, #control_panel {
    margin:3px;
    font-size:10px;
}

#instructions .license {
    padding:10px 0px 0px 0px;
    margin:0px;
    border:none;
    border-top:1px solid var(--gf-border);
}
#instructions {
    display:none;
    font-size:small;
    border:1px solid var(--gf-border);
    background:var(--gf-bg);
    padding:10px;
    margin:5px 0px 5px 0px;
}

#blurb {
    display:none;
}

.titlebar, .titlebar td {
    color:var(--gf-dark-green);
}
.hiscore th {
    background:var(--gf-border);
    color:var(--gf-dark-green);
    font-weight:bold;
}
.hiscore th a {
    text-decoration: underline;
    color: rgb(215, 115, 0); /* a:visited -> HSL(lightness -10%) */
}
.lastscore td {
    font-weight:bold;
    padding:5px 3px 5px 3px;
}
.banned .name {
}
.myscore, .myscore td, .lastscore td {
    color:var(--gf-text);
}
.myscore td {
    background:rgb(24,98,40);
}
.lastscore td {
    background:rgb(20,70,31);
}
.myscore td a:link,    .lastscore td a:link    { color:rgb(255,252,133); } /* a:link    -> HSL(saturation -50%) */
.myscore td a:visited, .lastscore td a:visited { color:rgb(245,191,132); } /* a:visited -> HSL(saturation -50%) */

.highscore td, .highscore th {
    text-align: left;
}
.highscore .score, .highscore .moves, .highscore .place {
    text-align: right;
}
.highscore .score, .highscore .moves {
    padding-right: 2em;
}
.highscore .place {
    padding-right: 1.4ex;
}
.highscore .time {
    text-align: right;
}
.zeros {
    opacity: 30%;
}
.scoregroup {
    display: inline-block;
    vertical-align: top;
    min-width: 375px;
    border: 1px solid var(--gf-border);
    background:var(--gf-bg);
    padding:0px 0px 5px 0px;
    margin:5px;
    font-size:small;
}
.scoregroup h1, .scoregroup h2 {
    background:var(--gf-border);
    color:var(--gf-dark-green);
    font-weight:bold;
    display:block;
    font-size:large;
    top: -0px;
    left: -0px;
    margin:0px;
}
.scoregroup h2 {
    background:var(--gf-bg);
    color:var(--gf-border);
    display:block;
    font-size:small;
    top: 0px;
    left: 0px;
    margin:5px;
}
.scoregroup p {
    margin:0px 20px 0px 20px;
}
.scoregroup td {
    border:none;
    font-size:small;
}
.scoregroup .highscore td {
    font-size:x-small;
}
.scoregroup th {
    background:var(--gf-border);
    color:var(--gf-dark-green);
    font-weight:bold;
}
.scoregroup .overall, .scoregroup .overall h2 {
    font-weight:bold;
    font-size:medium;
    color:var(--gf-text-bright);
}

.discontinuous td:first-child {
    border-top: 4px dotted var(--gf-border);
}

hr { display:none; }

nav.menubar {
    display: flex;
    border-bottom:2px solid var(--gf-border);
    border-left:none;
    border-right:none;
    padding:0px 0px 0px 0px;
    margin:0px 0px 0px 0px;
    left:0px;
    width:100%;
    height:52px; /* 50px + 2px border since we're box-sizing:border-box */
    clear:both;
    background:var(--gf-bg-dark);
    background-image: linear-gradient(#2b9741,var(--gf-bg) 60%,#1d672c);
    overflow: hidden;
    overflow: clip;
    line-height:50px;
}

.menubar #logo {
    margin-left:1rm;
    margin-right:1rm;
    width: 130px;
}

.menubar #logo img, .menubar a#logo {
    height: 50px;
}

.menubar {
    box-shadow: 0 5px 18px rgba(0,0,0,.7);
}

.menubar h2 {
    font-weight:normal;
    padding:0px 0px 0px 0px;
    margin:0px 0px 0px 0px;
    clear:none;
    float:none;
    display:inline;
}

.menubar li.menu {
    display: inline-block;
}

.menu > h2, .menu.no-sub-menu {
    padding: 0 5px;
}

.menubar li, .menubar h2, .menubar a, input.login{
    font-size: 95%;
}

.menubar .menubody {
    display:none;
    border:2px solid var(--gf-border);
    border-top:none;
    -moz-border-radius:0px 0px 5px 5px;
    -webkit-border-bottom-left-radius:5px;
    -webkit-border-bottom-right-radius:5px;
    background:var(--gf-bg-dark);
    padding:0px 0px 0px 0px;
    margin:0px 0px 0px 0px;
    position:absolute;
    width:auto;
    z-index:20000; /* menu should cover high score table */
}

.menubar .menubody a {
    text-decoration:none;
    color:inherit;
}

.menubar .menubody ul {
    padding:0;
    margin:0;
}

.menubar .game_section:hover {
    background:var(--gf-bg-dark);
    color:var(--gf-border);
}

.menubar .game_section h2 {
    display:block;
    color:var(--gf-text);
    border-bottom:1px solid #60a268; /* rgba(192,240,192,.5) */
    font-weight:bold;
    font-size:110%;
    padding:5px;
}

.menubar .menuitems .game_section {
    display:block;
    float:left;
    clear:none;
    padding:0;
    margin:0;
}

.menubar .menuitems li, .menubar .game_section ul li {
    display:block;
    width:auto;
    float:none;
}

.menubar .menuitems li > a { /* direct descentant otherwise solitaire link inside games gets extra padding */
    padding: 5px;
}

.menubar .login-error {
    float: right;
}

#login .disabled {
    color: #909090;
}
input.login {
    margin-right: 2em;
    margin-top: 13px;
}

.login-error {
    padding-right: 15px;
    color: #FF4D4D; /* hsl(0, 100%, 65%); */
    font-weight: bold;
}

.rss {
    position:absolute;
    top:18px;
    right:-0px;
    width:20em;
}
.rss h3 {
    margin:0px;
    padding:0px;
}
.rss ul {
    list-style-type: none;
    padding:0px;
    margin:0px;
}
.rss ul {
    padding:0px 0px 0px 10px;
}

/* align cards after their radio button circle or checkbox */
#card_sizes .menu-item .card, .menu-item.card-back .card, #card_themes .menu-item .card {
    margin-left: 21px;
}

#card_backs.disabled {
    opacity: 50%;
}

a.button:active:not(.disabled) {
    background-color:var(--gf-border);
    color:var(--gf-dark-green);

    border:1px solid hsl(132, 56%, 25%);
    border-top:1px solid var(--gf-dark-green);
    border-left:1px solid var(--gf-dark-green);
    top: 1px;
    padding:4px 8px 4px 10px;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
}

a.button, a.button:visited, a.disabled.button, a.disabled.button:visited {
        background: #222 url(/button-alpha-gradient.png) repeat-x;
        background-image: -moz-linear-gradient(top, rgba(255,255,255,.3), rgba(128,128,128,0), rgba(0,0,0,.3));
        background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.3)), color-stop(.5, rgba(128,128,128,0)), to(rgba(0,0,0,.3)));
        display: inline-block;
        color: hsl(132, 56%, 90%);

        margin:4px 2px;
        padding: 5px 10px;

        font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
        font-weight:bold;
        font-size:100%;
        line-height:130%;

        text-decoration: none;
        text-align: center;
             border-radius: 5px;
        -moz-border-radius: 5px;
     -webkit-border-radius: 5px;
             box-shadow: 0 1px 3px rgba(0,0,0,.6);
        -moz-box-shadow: 0 1px 3px rgba(0,0,0,.6);
     -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.6);
        text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
        position: relative;
        cursor: pointer;

    -webkit-touch-callout: none;
      -webkit-user-select: none;
       -khtml-user-select: none;
         -moz-user-select: none;
          -ms-user-select: none;
              user-select: none;
    touch-action: none;
}

a.button:hover {
    background-color: hsl(132, 56%, 25%);
    color: #fff;
}
a.button, a.button:visited {
    background-color: hsl(132, 56%, 20%);
}

a.disabled.button {
    color:#999;
    background-color: hsl(132, 30%, 30%);

    border:1px solid var(--gf-dark-green);
    border-top:1px solid #999;
    border-left:1px solid #999;
    padding:4px 9px;
}

.button.accent {
    background-color: hsl(32, 80%, 50%);
    color: hsl(132,56%,15%);
}
.button.accent:hover {
    background-color: hsl(32, 80%, 60%);
    color: hsl(132,56%,20%);
}
.disabled.button.accent {
    background-color: hsl(32, 80%, 30%);
    color: hsl(132,16%,70%);
}

#pause.button  {
    width: 9em;
}

#undo.button  {
    width: 8em;
}
#redo.button  {
    width: 8em;
}

.alertbox {
    padding: 0;
    border-radius: 10px;
    border-top-left-radius: 12px;  /* gracefully hide ourselves so .titlebar defines the radius */
    border-top-right-radius: 12px;
    box-shadow: rgba(0,0,0,0.6) 0 0 30px 10px;
    background-color: var(--gf-bg);
}

@media screen and (min-aspect-ratio: 8/7) and (max-height: 640px) { /* mobile, wide-mobile: ipad, ipad mini */
    .alert-centerer {
        font-size: 2.6vh;
    }
}

@media screen and (max-aspect-ratio: 8/7) and (max-width: 640px){ /* mobile, thin-mobile: iphone */
    .alert-centerer {
        font-size: 2.3vw;
    }
    .alertbox.login-dialog input, .alertbox.create-dialog input { /* input sizes don't inherit font-size by default */
        font-size: inherit;
        margin-right: 5rem;
    }

    .login-dialog, .create-dialog {
        font-size: 4vw;
    }
}

.alert-centerer {
    z-index: 10000;
    max-width: 95%;
    max-height: 95%;
}

.alert-centerer:has(.alertbox.login-dialog), .alert-centerer:has(.alertbox.create-dialog) {
    z-index: 30000; /* higher than the hamburger menu */
}

.alertbox .titlebar {
    min-height: 40px;
    line-height: 40px;
    background-color: #81d391; /* From mike's original png */
    border-top-left-radius: 10px;
    border-top-right-radius:10px;
    border-bottom: none;
    padding: 5px 10px;
}

.alertbox .titlebar .goaway {
    vertical-align: middle;
}

.alertbox .titlebar .goaway.mac { float:  left; }
.alertbox .titlebar .goaway.pc  { float: right; }

.alertbox .titlebar .title {
    color:var(--gf-dark-green);
    font-weight: bold;
    font-size: 1.2em;
    text-shadow: rgba(0,0,0,.4) 0px 2px 5px;
    text-align: center;
    vertical-align: middle;
}
.alertbox .titlebar p { margin:0 }

.alertbox  .alert {
    margin: 10px;
}

.login-dialog input[type=submit], .login-dialog input[type=button], .create-dialog #ok, .create-dialog #cancel {
    margin: 1rem 1rem .5rem 0;
}

.login-dialog table input {
    margin-right: 10em;
}

.highscore table {
    width: 100%;
    border-spacing: 2px;
    border-collapse: collapse;
}

.lookatme {
    color: cyan;
    font-weight: bold;
    -moz-text-decoration-line: underline;
    -moz-text-decoration-style: wavy;
    -moz-text-decoration-color: red;
    /* None of this crap works, sadly: */
    -webkit-text-decoration-line: underline;
    -webkit-text-decoration-style: wavy;
    -webkit-text-decoration-color: red;
    text-decoration-line: underline;
    text-decoration-style: wavy;
    text-decoration-color: red;
}

#welcome {
    position: relative;
    font-size: initial;
}

/* Used on faq and in game rules: */
.cardrun-score {
   margin: 1em 0;
}
.cardrun-score th, .cardrun-score td {
   text-align: right;
   width: 10ex;
   padding: 0 1ex;
}
.cardrun-score th {
   border-bottom: 1px solid var(--gf-border);
}

.badge {
    display: inline-block;
    min-width: 10px;
    padding-inline: 7px;
    font-size: 12px;
    font-weight: bold;
    line-height: 1;
    color: var(--gf-text);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    background-color: #999;
    border-radius: 10px;
}
.badge, .rss-entry, .rss-date {
    padding-block: 3px;
}

#rss-menu .badge-space {
    display: inline-block;
    width: 2.3em;
}

#rss-menu.seen .badge {
    display:none;
}

#rss-menu .badge {
    background-color: var(--gf-orange);
}

/* in the rss menu, move the 5px padding into the <a>'s children (<spans>) so that: a. the spacing matches the other menus, b. the badge doesn't look fat */
#rss-menu .menuitems li > a {
    padding: 0;
}
#rss-menu .menu-item a > span {
    padding-block: 5px;
}
#rss-menu .game_section .badge {
    padding-block: 3px;
    font-size: inherit;
}

#rss-menu .game_section {
    float: none;
}

.menu-item a {
    width: 100%;
    display: inline-block;
}
.rss-date {
    display: inline-block;
    margin: 0 1em;
}
.rss-date, #rss-menu.seen .rss-title, .rss-entry .badge {
    margin-right: 1em;
}

/* Hack to make the "New" badge go away when the link has been visited */
#rss-menu a:visited .new {
    background-color: transparent;
    color: transparent;
}
#rss-menu .menu-item:hover a:visited .new {
    background-color: var(--gf-border);
    color: var(--gf-border);
}

/* both of these are backwards compat for things that don't support overflow:clip (like chrome!) */
.rss-title { overflow: hidden; }
.rss-entry span { vertical-align: middle; }

.rss-title {
    display: inline-block;
    width: 21.3em /*calc(25em - 3.7em), ie .badge->width */;
    max-width: 25em;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: clip;
}
#rss-menu.seen .rss-title {
    width: 100%;
}
#rss-menu .menu-item .badge {
    width: 3.7em;
}

.hidden, #menu-deck-back.hidden, #user-menu.hidden, #card_themes .hidden, .menubar li ul.hidden  /* these needs extra specificity :-(*/ {
    display: none;
}


/* Width Range     Classes visible
 * 0     -> 410px  .mobile .thin-mobile
 * 411px -> 640px  .mobile .thin-mobile
 * 641px -> 980px  .mobile .wide-mobile
 * 981px -> ∞px    .desktop
 * Classes can stack so "desktop wide-mobile" will show up on 641px -> ∞px
 */

@media screen and (min-width: 981px) { /* desktop */
    .mobile:not(.desktop), .wide-mobile:not(.desktop), .thin-mobile {
        display: none !important;
    }
}

@media screen and (min-width: 641px) and (max-width: 980px) { /* mobile, wide-mobile: ipad, ipad mini */
    .desktop:not(.wide-mobile), .thin-mobile {
        display: none !important;
    }
}

@media screen and (min-width:  0px) and (max-width: 640px) { /* mobile, thin-mobile: iphone */
    .wide-mobile, .desktop:not(.mobile) {
        display: none !important;
    }
}


.menu.selected {
    background:var(--gf-border);
    color:var(--gf-dark-green);
}

.menu.selected > .menubody {
    display: block;
    position: absolute;
    top: 50px;
}

.menubar li ul {
    display:block;
    color:var(--gf-border);
    line-height: normal;
}

.menubar .menu-item.selected {
    background: hsl(120, 50%, 35%); /*#cfc => hsl(120, 100%, 90%)*/
    border-radius: 10px;
}

.frontpage.gamelist .menu-item:hover {
    background:inherit;
    color:inherit;
}


#login.logged-out      ~ ul.menus #user-menu,                                                #login.logged-out   ~ ul.menus #login-authenticating,
                                              #login.logged-in       ~ ul.menus #login-menu, #login.logged-in    ~ ul.menus #login-authenticating,
#login.creating        ~ ul.menus #user-menu, #login.creating        ~ ul.menus #login-menu, #login.creating     ~ ul.menus #login-authenticating,
#login.login-dialog    ~ ul.menus #user-menu, #login.login-dialog    ~ ul.menus #login-menu, #login.login-dialog ~ ul.menus #login-authenticating,
#login.authenticating  ~ ul.menus #user-menu, #login.authenticating  ~ ul.menus #login-menu
{
    display:none;
}

#login.logged-out #login-authenticating {
    display: none;
}

#stats {
    display: flex;
    order: 5;
}

#stats #pending {
    display:none;
    padding-inline: 10px;
}

#stats.pending #pending, #stats.sending #spinner {
    display: inline-block;
}

#stats #spinner {
    display: none;
    padding-right: 10px;
    margin-left: -10px; /* undo padding-right on #stats #pending */
}

.restored-message {
    position: absolute;
    display: flex;
    top: 0;
    left: 0;
    z-index: 1000;
    height: 100%;
    width: 100%;
    align-items: center;
    justify-content: center;
    pointer-events: none; /* let clicks/touches "pass through" as if it weren't there */
    font-size: 12vw;
    color: black;
    text-shadow: var(--gf-text-bright) 0px 0px 10px;
    animation: 3s 1s forwards cubic-bezier(.25,.46,.45,.94) restored-message-size,
               3s 1s forwards cubic-bezier(.22,.61,.36,1)   restored-message-opacity;
}
@keyframes restored-message-size {
    to { font-size: 6vw; }
}
@keyframes restored-message-opacity {
    to { opacity: 0; }
}

@media screen and (min-width: 981px) { /* desktop */
    .menubar li.menu:not(.no-sub-menu):hover, .menubar .highlight, .menu.selected, .menu-item:hover, .menu-item.selected:hover {
        background:var(--gf-border);
        color:var(--gf-dark-green);
    }
    .menubar ul.menus {
        flex-grow: 2;
        margin:0px;
        padding:0px;
        height:50px;
    }
    .menu:hover > .menubody, .menubody:hover {
        display: block;
        position: absolute;
        top: 50px;
    }
    .menu > h2:not(.no-sub-menu)::after {
        content: " ▾";
    }

    #unwelcome {
        display: inline-block;
        position: relative;
    }

    #unwelcome img {
        height: 1.25em;
        width: 1.25em;
        vertical-align: middle;
        display: inline-block;
    }

    #welcome {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        background: var(--gf-bg-dark);
        box-shadow: 0 -5px 18px rgba(0,0,0,.7);
        padding: .125em 8px;
        line-height: 1;
        z-index: 1000; /* over the game, under alert boxes and menus */
    }

    #user-menu, #login-menu, #login-authenticating {
        float: right;
    }

    #user-menu .menubody {
        right: 0;
        width: 15em;
    }

    .highscore table td, .highscore table th { /* Give us more spacing on desktop */
        padding: .125em .75em;
    }
}

@media screen and (max-width: 980px) { /* mobile, wide-mobile: ipad, ipad mini */
    nav.menubar div.mobile.hamburger {
        border-right: 1px solid var(--gf-bg);
        font-size: xx-large;
        padding: 0 10px;
        height: 100%;
        width: 50px;
        margin: -4px 0; /* yuck, why can't I center this normally?? */
    }
    nav h1.title {
        display:inline-block;
        color: var(--gf-text-bright); /* keep this?? */
        margin: 0px;
        vertical-align: top;
    }
    div.mobile.hamburger.menu .menubody {
        width: 100%;
    }
    .hamburger.selected h2::after {
        content: "✕"; /* × */
    }
    .hamburger h2::after {
        content: "☰";
    }
    .hamburger h2 {
        vertical-align: top;
    }
    .menubar .logo-title {
        display: flex;
        flex-wrap: wrap; /* Autohide the <h1> */
        flex-grow: 2;
    }
    .menubar ul.menus {
        /* This is just a dupe of .menubody */
        display:none;
        border:2px solid var(--gf-border);
        border-top:none;
        -moz-border-radius:0px 0px 5px 5px;
        -webkit-border-bottom-left-radius:5px;
        -webkit-border-bottom-right-radius:5px;
        background:var(--gf-bg-dark);
        padding:0px 0px 0px 0px;
        margin:0px 0px 0px 0px;
        position:absolute;
        width:auto;
        z-index:20000;

        /* These are the differences */
        width: 100%;
        height: auto;
        font-size: initial;
        top:50px;
    }
    .menubar ul.menus, .menubar ul.menuitems {
        line-height: 3;       /* Nice big targets */
    }

    .hamburger.selected ~ ul.menus {
        display: block;
    }
    .menubar ul li.menu {
        display: block;
    }
    div.hamburger.selected ~ ul.menus .menu:not(.no-sub-menu)::after {
        content: "⟩";
        float: right;
        margin-right: 1em;
    }
    .menubar li, .menubar h2, .menubar a, input.login{
        font-size: 100%;
    }

    .menubody .menu-back::before {
        content: "〈";
        padding-right: 1em;
    }
    .menubody .menu-back {
        display: block;
        padding: 5px;
        padding-top: 15px;
        height: 100%;
        color: var(--gf-border);
    }

    .menubody {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
    }
    .menu.selected > .menubody {
        top: 0px;
    }

    #logged-in-user:before {
        content: "Logged in as ";
    }

    #rss-menu .menuitems .game_section {
        float: none;
    }
    #rss-menu .menu-item .rss-title {
        width: calc(100% - 13em);
    }
    #rss-menu.seen .menu-item .rss-title {
        width: calc(100% - 13em + 3.7em /*badge width, see above*/);
    }
}

@media screen and (max-width: 410px) { /* mobile, thin-mobile: really small iphones */
    .menubar #logo {
        margin-right: .5em;
    }
}
