@media screen and (max-width: 768px) {

    /* Reset fixed widths */
    #header {
        width: 100%;
        height: auto;
        padding: 16px 0 0;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* Center logo */
    h1 {
        float: none;
        margin: 16px auto 0;
        width: auto;
        height: auto;
        text-align: center;
    }

    h1 img {
        max-width: 160px;
        height: auto;
    }

    /* Login button - centered below logo */
    a#loginBtn {
        float: none;
        margin: 16px auto 0;
        display: block;
        text-align: center;
        width: 102px;
    }

    /* Login form - inline instead of absolute dropdown */
    #login {
        position: relative;
        top: auto;
        right: auto;
        width: 90%;
        max-width: 280px;
        margin: 12px auto 0;
        background-size: contain;
        background: rgba(13, 25, 41, 0.95);
        border: 1px solid #2D343C;
        border-radius: 4px;
        height: auto;
        padding: 16px;
    }

    #loginForm {
        height: auto;
        width: 100%;
        margin: 0;
        overflow: visible;
    }

    #loginForm .black-border {
        width: 100%;
    }

    #loginForm .black-border input {
        width: calc(100% - 14px);
        min-height: 36px;
        font-size: 14px;
    }

    #resendLink #formSubmit,
    #pwLostForm #formSubmit,
    #loginForm #loginSubmit {
        background: #501313 none;
        width: 100%;
        margin: 12px 0;
        height: 40px;
        line-height: 40px;
        font-size: 16px;
        border: none;
        border-radius: 4px;
        cursor: pointer;
        color: #fff;
        font-weight: bold;
        text-shadow: none;
    }

    #loginForm a {
        display: block;
        text-align: center;
        padding: 4px 0;
    }

    #TermsAndConditionsAcceptWithLogin {
        font-size: 11px;
        text-align: center;
        color: #848484;
    }

    /* Content area - full width */
    #content {
        width: 100%;
        padding: 0 16px;
        box-sizing: border-box;
    }

    /* Hide desktop-only content */
    #contentWrap,
    #contentFooter,
    #parallax,
    #push,
    #fancybox-tmp,
    #fancybox-loading,
    #fancybox-overlay,
    #fancybox-wrap {
        display: none !important;
    }

    /* Background - keep it simple */
    #start {
        background-size: cover;
        background-position: center top;
        min-height: 100vh;
        margin-bottom: 0;
    }

    /* Register form - full width, centered */
    #subscribe {
        float: none;
        display: block;
        width: 100%;
        max-width: 320px;
        margin: 24px auto 32px;
    }

    #subscribeForm {
        width: 100%;
        border-radius: 4px;
        box-sizing: border-box;
    }

    #subscribeForm h2 {
        text-align: center;
        padding: 8px 10px;
        font-size: 15px;
    }

    #subscribeForm .input-wrap {
        height: auto;
        padding: 6px 12px;
        background-image: none;
        background-color: #22303f;
        border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    }

    #subscribeForm .input-wrap.first {
        height: auto;
    }

    #subscribeForm label {
        width: auto;
        margin: 2px 0;
        display: block;
    }

    #subscribeForm .black-border {
        width: 100%;
    }

    #subscribeForm .black-border input,
    #subscribeForm .black-border select {
        width: calc(100% - 14px);
        min-height: 36px;
        font-size: 14px;
    }

    /* Universe selector */
    .server_table {
        width: 100% !important;
        margin-left: 0;
    }

    #uni_selection {
        width: calc(100% - 4px);
        left: 0;
    }

    .server-row {
        width: 100%;
    }

    /* Password strength meter */
    #securePwd {
        margin-left: 0;
        width: 100%;
        padding: 0 12px;
        box-sizing: border-box;
    }

    #securePwd .securePwdBarBox {
        width: calc(100% - 24px);
    }

    #securePwd p {
        width: 100%;
    }

    /* Submit area */
    #submitWrap {
        padding: 10px 12px 16px;
    }

    #submitWrap label {
        width: auto;
    }

    #submitWrap label span {
        font-size: 11px;
        line-height: 1.4;
    }

    #regSubmit,
    input#regSubmit {
        width: 100% !important;
        max-width: 100%;
        padding: 0;
        margin: 8px auto;
        font-size: 18px;
        height: 48px;
        line-height: 48px;
        background-color: #1a5c1a;
        background-image: none;
        border: none;
        border-radius: 4px;
        cursor: pointer;
        box-sizing: border-box;
    }

    /* Checkbox alignment */
    #stayLoggedIn,
    #agb {
        margin: 4px 8px 12px 0;
    }

    /* Validation popups - fit on mobile */
    .formError {
        position: relative !important;
        padding: 0;
        margin: 4px 0;
    }

    .formError .formErrorContent {
        width: auto;
        max-width: 100%;
    }

    .formError .formErrorArrow {
        display: none;
    }

    body .passwordLoginformError,
    body .usernameLoginformError {
        margin-left: 0;
    }

    /* Login dropdown select */
    #loginForm .black-border select {
        width: 100%;
        min-height: 36px;
        font-size: 14px;
    }

    /* Invite text tooltip */
    .inviteText {
        display: none;
    }
}

/* Smaller phones */
@media screen and (max-width: 380px) {

    h1 img {
        max-width: 120px;
    }

    #subscribe {
        max-width: 100%;
        margin-left: 8px;
        margin-right: 8px;
    }

    #login {
        max-width: 100%;
        width: calc(100% - 32px);
    }

    #content {
        padding: 0 8px;
    }
}
