/* ===== @font-face (deduped) ===== */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/20434458-721e-49d0-80e4-b9543ea0c9c1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/4e74d2b2-55bc-4e0b-8e00-0c3463b22777.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/02df0c82-038d-4f18-ad23-58f9ca943a58.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/d5c75411-c1a5-4f2f-96b5-d9faa908d580.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/ea42eaa9-dac1-45a8-a38b-6ecd15195fcc.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/8de4d255-e6f6-4f05-a014-1c1d414ec3a9.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/cef2576b-ca0b-4d70-b47b-c47a7497161b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/20434458-721e-49d0-80e4-b9543ea0c9c1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/4e74d2b2-55bc-4e0b-8e00-0c3463b22777.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/02df0c82-038d-4f18-ad23-58f9ca943a58.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/d5c75411-c1a5-4f2f-96b5-d9faa908d580.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/ea42eaa9-dac1-45a8-a38b-6ecd15195fcc.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/8de4d255-e6f6-4f05-a014-1c1d414ec3a9.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/cef2576b-ca0b-4d70-b47b-c47a7497161b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/20434458-721e-49d0-80e4-b9543ea0c9c1.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/4e74d2b2-55bc-4e0b-8e00-0c3463b22777.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/02df0c82-038d-4f18-ad23-58f9ca943a58.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/d5c75411-c1a5-4f2f-96b5-d9faa908d580.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/ea42eaa9-dac1-45a8-a38b-6ecd15195fcc.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/8de4d255-e6f6-4f05-a014-1c1d414ec3a9.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/cef2576b-ca0b-4d70-b47b-c47a7497161b.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/92afe52e-7824-4bd6-839c-326cabbe8ee8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/1d312fb6-62b9-42ea-9b46-6c23f52d2056.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/0622d210-e9fd-4b62-8d5f-03257874c5c0.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/115870d4-fde5-49de-9a1e-c084cd8675fe.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/c4ddc25a-b089-4a26-8088-c5347a29eafa.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fe400c7f-8944-4eee-9233-9f4891cff527.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/91a109eb-1183-40e1-a8a0-a6dfeed80e39.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/0bea3d27-1679-4ca6-b811-a6e28c02a4fd.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* server-rendered login error banner (injected via {{ERROR}}) */
.card .error{color:#e74a3b;font-size:13.5px;line-height:1.5;margin:2px 0 16px;text-align:left}
.card .error svg{vertical-align:-2px;margin-right:6px}
/* === forgot-password page === */
/* === forgot-username page === */
/* === my-apps / home page === */
.apps{display:flex;flex-direction:column;margin-top:4px}
.app{display:flex;align-items:center;gap:14px;padding:13px 4px;border-bottom:1px solid var(--line);transition:padding .35s var(--ease)}
.app:last-child{border-bottom:0}
.app:hover{padding-left:10px}
.app-ic{width:44px;height:44px;border-radius:13px;flex:none;display:flex;align-items:center;justify-content:center}
.app-ic svg{width:21px;height:21px}
.app-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.app-info b{font-family:'Sora',sans-serif;font-weight:600;font-size:15px;color:var(--navy);transition:color .3s}
.app:hover .app-info b{color:var(--blue)}
.app-st{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--mut)}
.app-st i{width:7px;height:7px;border-radius:50%;background:#B9C4D2;flex:none}
.app-st.on{color:var(--green)}
.app-st.on i{background:var(--green);box-shadow:0 0 0 0 rgba(25,190,119,.5);animation:sbeat 2.2s infinite}
@keyframes sbeat{0%{box-shadow:0 0 0 0 rgba(25,190,119,.45)}70%{box-shadow:0 0 0 6px rgba(25,190,119,0)}100%{box-shadow:0 0 0 0 rgba(25,190,119,0)}}
.app-act{font-family:'Sora',sans-serif;font-weight:600;font-size:13px;color:var(--blue);display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:100px;box-shadow:0 0 0 1px var(--line-2) inset;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s}
.app:hover .app-act{background:linear-gradient(120deg,var(--blue),var(--cyan));color:#fff;box-shadow:none}
.app-act .arr{transition:transform .35s var(--ease)}
.app:hover .app-act .arr{transform:translateX(3px)}
.allout{text-align:center;margin-top:18px}
.allout a{font-size:13px;font-weight:500;color:var(--mut);transition:color .25s}
.allout a:hover{color:var(--coral)}
.user-chip{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;color:rgba(255,255,255,.7)}
.user-chip .av{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Sora',sans-serif;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--blue),var(--cyan))}
/* === MFA verify === */
#otp{text-align:center;letter-spacing:.5em;font-weight:600}
.resend-row{margin-top:14px;text-align:center}
.linklike{background:none;border:0;color:var(--blue);font:inherit;font-size:13.5px;cursor:pointer;text-decoration:underline}
.linklike:hover{color:var(--cyan)}
/* === set-password === */
.setmsg{padding:10px 14px;border-radius:10px;font-size:13.5px;line-height:1.45;margin:0 0 16px}
.setmsg.error{background:rgba(231,74,59,.12);border:1px solid #e74a3b;color:#e74a3b}
.setmsg.success{background:rgba(25,190,119,.13);border:1px solid #19be77;color:#0E8A57}
/* Hide the reCAPTCHA v3 badge (v3 shows it by default). Allowed by Google's terms because each
   reCAPTCHA page displays the "protected by reCAPTCHA / Privacy Policy / Terms of Service" notice. */
.grecaptcha-badge { visibility: hidden !important; }
/* The design hides the 2nd .fine line on short screens (@media max-height:840px), but the login
   legal-consent line (Master Subscription Agreement + Privacy Policy) must always be visible. */
.fine + .fine { display: block !important; }
/* === set-new-password page === */
/* password strength meter */
.pw-meter{display:flex;gap:6px;margin-top:9px}
.pw-meter i{height:4px;flex:1;border-radius:2px;background:rgba(2,18,43,.1);transition:background .35s var(--ease)}
.pw-hint{font-size:11.5px;color:var(--mut);line-height:1.55;margin-top:7px;transition:color .3s}
/* === verification / MFA page === */
:root{
  --bg:#FFFFFF;--bg-2:#F2F8FD;--navy:#02122B;--navy-2:#0A2342;
  --blue:#075DA8;--cyan:#00A1DF;--txt:#02122B;--mut:#4E6076;
  --line:rgba(2,18,43,.09);--line-2:rgba(2,18,43,.16);--line-light:rgba(255,255,255,.14);
  --glow:rgba(0,161,223,.35);--violet:#7B5CFA;--coral:#FF6F5B;--amber:#FFAA2B;--green:#19BE77;
  --r-lg:24px;--r-md:16px;--ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
body{color:#fff;font-family:'Inter',system-ui,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;background:#061E3A}
::selection{background:var(--cyan);color:#fff}
h1,h2,h3,h4{font-family:'Sora',sans-serif;font-weight:600;line-height:1.12;letter-spacing:-.02em;color:var(--navy)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.eyebrow{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:'Sora',sans-serif;font-weight:600;font-size:15px;padding:15px 28px;border-radius:100px;cursor:pointer;border:0;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .3s;overflow:hidden;white-space:nowrap}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-pri{background:linear-gradient(120deg,var(--blue),var(--cyan));color:#fff;box-shadow:0 10px 30px -10px var(--glow)}
.btn-pri:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px var(--glow)}
.btn-pri::before{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .8s var(--ease);pointer-events:none}
.btn-pri:hover::before{left:130%}
/* ===================== shell ===================== */
.auth{display:flex;flex-direction:column;min-height:100vh}
.top{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:clamp(14px,3vh,36px) 64px 0 60px}
.top .right{display:flex;align-items:center;gap:14px;font-size:13.5px;color:rgba(255,255,255,.6)}
.top .tlink{font-family:'Sora',sans-serif;font-weight:600;color:#fff;padding:9px 18px;border-radius:100px;background:rgba(255,255,255,.08);box-shadow:0 0 0 1px var(--line-light) inset;transition:background .3s,transform .3s var(--ease)}
.top .tlink:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
.main{flex:1;min-height:0;display:grid;grid-template-columns:1.35fr 1fr;align-content:stretch;align-items:stretch}
/* ---------- left brand panel (bleeds into body — no card) ---------- */
.brand{position:relative;display:flex;flex-direction:column;padding:clamp(4px,2.5vh,24px) 64px clamp(16px,3vh,28px) 60px;color:#fff;min-height:0}
.brand-grid{position:absolute;inset:0;z-index:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:54px 54px;-webkit-mask-image:radial-gradient(ellipse 80% 75% at 50% 42%,#000 35%,transparent 78%);mask-image:radial-gradient(ellipse 80% 75% at 50% 42%,#000 35%,transparent 78%)}
.brand>*{position:relative;z-index:2}
.brand .logo-img,.top .logo-img{height:50px;width:auto}
/* three.js particle wave — spans the whole viewport behind everything */
#bg3d{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;display:block}
/* what's-new updates module — image on top, text below */
.upd{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:clamp(18px,3.5vh,34px);margin:0;max-width:1000px;align-self:center;width:100%;padding-top:0}
.upd-stage{position:relative;align-self:center;width:min(100%,max(340px,calc((100vh - 500px)*1.55)))}
.upd-frame{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0E2C53,#0A2342);box-shadow:0 0 0 1px var(--line-light) inset}
/* pop-out cards around the frame */
.pop{position:absolute;z-index:3;background:#fff;border-radius:14px;box-shadow:0 24px 50px -18px rgba(0,0,0,.65);display:flex;align-items:center;gap:10px;padding:12px 16px;color:var(--navy);opacity:0;transform:translateY(16px) scale(.92)}
.pop.in{animation:popIn .7s var(--ease) forwards, popFloat 6s ease-in-out 1s infinite}
@keyframes popIn{from{opacity:0;transform:translateY(16px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes popFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.pop .pic{width:34px;height:34px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center}
.pop .pic svg{width:17px;height:17px}
.pop b{display:block;font-family:'Sora',sans-serif;font-size:12.5px;font-weight:600;line-height:1.25;color:var(--navy)}
.pop span{display:block;font-size:11px;color:var(--mut);line-height:1.3}
.pop.p1{top:-20px;right:-26px;animation-delay:.25s}
.pop.p1.in{animation-delay:.25s,1.25s}
.pop.p2{bottom:34px;left:-30px;animation-delay:.55s}
.pop.p2.in{animation-delay:.55s,1.8s}
.pop.p3{bottom:-18px;right:8%;animation-delay:.85s}
.pop.p3.in{animation-delay:.85s,2.3s}
.upd-frame::before{content:"";position:absolute;inset:-30% -10% 30%;z-index:-1;border-radius:50%;filter:blur(60px);background:radial-gradient(ellipse at 30% 40%,rgba(0,161,223,.4),transparent 60%)}
.upd-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:rgba(255,255,255,.04);border-bottom:1px solid var(--line-light)}
.upd-bar i{width:11px;height:11px;border-radius:50%;display:block}
.upd-bar .url{margin-left:12px;height:18px;flex:1;max-width:230px;border-radius:6px;background:rgba(255,255,255,.07);box-shadow:0 0 0 1px rgba(255,255,255,.06) inset}
.upd-shot{position:relative;aspect-ratio:16/10;overflow:hidden}
.upd-shot::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(160deg,rgba(255,255,255,.12),transparent 36%);pointer-events:none}
.upd-shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;opacity:0;transition:opacity .6s var(--ease)}
.upd-shot img.show{opacity:1;animation:kenburns 14s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.06) translate(-1.5%,-1%)}}
/* cooper overlay (slide-specific) */
.coop{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .5s var(--ease)}
.coop.show{opacity:1}
.coop .ring{position:absolute;width:120px;height:120px;border-radius:50%;border:1.5px solid rgba(0,161,223,.5);animation:coopRing 2.6s ease-out infinite}
.coop .ring.r2{animation-delay:1.3s}
@keyframes coopRing{from{transform:scale(.7);opacity:.9}to{transform:scale(2.1);opacity:0}}
.coop .mark{width:92px;height:92px;border-radius:26px;background:#fff;box-shadow:0 24px 60px -18px rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;animation:coopBob 4s ease-in-out infinite}
.coop .mark img,.coop .mark svg{width:56px;height:56px;display:block}
@keyframes coopBob{0%,100%{transform:translateY(-4px)}50%{transform:translateY(4px)}}
.upd-body{display:flex;flex-direction:column}
.upd-eyebrow{font-family:'Space Mono',monospace;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8FD6F4;margin-bottom:14px}
.upd-title{color:#fff;font-size:clamp(28px,2.6vw,40px);line-height:1.08;letter-spacing:-.025em;margin-bottom:14px}
.upd-text{color:rgba(255,255,255,.74);font-size:16px;line-height:1.65;max-width:46ch;margin-bottom:28px}
.upd-fade{transition:opacity .35s var(--ease),transform .35s var(--ease)}
.upd-fade.out{opacity:0;transform:translateY(8px)}
.upd-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;font-family:'Sora',sans-serif;font-weight:600;font-size:14.5px;color:var(--navy);background:#fff;padding:13px 26px;border-radius:100px;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.upd-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(0,0,0,.6)}
.upd-btn .arr{transition:transform .35s var(--ease)}
.upd-btn:hover .arr{transform:translateX(4px)}
.upd-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto}
.upd-nav .dots{display:flex;gap:8px}
.upd-nav .dots button{border:0;padding:0;cursor:pointer;width:22px;height:22px;border-radius:11px;background:transparent;display:flex;align-items:center;justify-content:center;transition:width .35s var(--ease)}
.upd-nav .dots button::after{content:"";width:8px;height:8px;border-radius:4px;background:rgba(255,255,255,.35);transition:.35s var(--ease)}
.upd-nav .dots button.on{width:36px}
.upd-nav .dots button.on::after{width:100%;background:#fff}
.upd-nav .arrows{display:flex;gap:10px}
.upd-nav .arrows button{width:44px;height:44px;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;
  background:rgba(255,255,255,.1);box-shadow:0 0 0 1px var(--line-light) inset;transition:background .3s,transform .3s var(--ease)}
.upd-nav .arrows button:hover{background:rgba(255,255,255,.2);transform:translateY(-2px)}
/* ---------- right form panel ---------- */
.panel{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-start;padding:clamp(4px,2.5vh,24px) 64px 40px;min-height:0}
.form-wrap{display:flex;flex-direction:column;align-items:center;padding-top:0}
.card{width:100%;max-width:472px;margin:0;background:#fff;border-radius:24px;padding:clamp(18px,2.5vh,24px) 40px;box-shadow:0 40px 90px -40px rgba(0,0,0,.6)}
.card .eyebrow{color:var(--blue);margin-bottom:14px}
.card .eyebrow::before{content:"";width:24px;height:1px;background:var(--cyan);display:inline-block}
.card h1{font-size:clamp(26px,2.4vw,32px);margin-bottom:8px}
.card .sub{color:var(--mut);font-size:15px;margin-bottom:28px}
/* fields */
.field{position:relative;display:flex;flex-direction:column;margin-bottom:16px}
.field label{font-family:'Sora',sans-serif;font-size:12.5px;font-weight:600;color:var(--navy-2);margin-bottom:7px}
.field-wrap{position:relative;display:flex;align-items:center}
.field-wrap .lead{position:absolute;left:14px;color:#9AA7B5;display:flex;pointer-events:none}
.field input{width:100%;font-family:'Inter',sans-serif;font-size:14.5px;color:var(--navy);background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:13px 14px 13px 42px;transition:border-color .3s,box-shadow .3s,background .3s}
.field input::placeholder{color:#9AA7B5}
.field input:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(0,161,223,.16)}
.field-wrap:focus-within .lead{color:var(--blue)}
.field.err input{border-color:var(--coral);box-shadow:0 0 0 3px rgba(255,111,91,.14)}
.field .msg{display:none}
#loginForm .field .msg{display:block;font-size:11.5px;color:var(--coral);margin-top:6px;height:0;opacity:0;overflow:hidden;transition:opacity .25s,height .25s}
#loginForm .field.err .msg{height:16px;opacity:1}
.peek{position:absolute;right:8px;background:none;border:0;cursor:pointer;color:#9AA7B5;padding:8px;border-radius:8px;display:flex;transition:color .25s,background .25s}
.peek:hover{color:var(--blue);background:rgba(0,161,223,.08)}
.forgot-row{display:flex;align-items:center;justify-content:space-between;margin:14px 0 24px}
.forgot-row a{font-size:13px;font-weight:500;color:var(--blue);transition:color .25s}
.forgot-row a:hover{color:var(--cyan)}
.opt-row{display:flex;align-items:center;justify-content:space-between;margin:4px 0 0}
.check{display:inline-flex;align-items:center;gap:9px;cursor:pointer;font-size:13.5px;color:var(--mut);user-select:none}
.check input{position:absolute;opacity:0;width:0;height:0}
.check .box{width:19px;height:19px;border-radius:6px;background:var(--bg-2);box-shadow:0 0 0 1px var(--line-2) inset;display:flex;align-items:center;justify-content:center;transition:background .25s,box-shadow .25s}
.check .box svg{width:12px;height:12px;color:#fff;opacity:0;transform:scale(.5);transition:opacity .2s,transform .25s var(--ease)}
.check input:checked+.box{background:linear-gradient(120deg,var(--blue),var(--cyan));box-shadow:none}
.check input:checked+.box svg{opacity:1;transform:scale(1)}
.check input:focus-visible+.box{box-shadow:0 0 0 3px rgba(0,161,223,.25)}
.submit{width:100%;margin-top:2px}
.fine{font-size:11.5px;color:var(--mut);line-height:1.6;margin-top:18px;text-align:center}
.fine a{color:var(--blue);font-weight:500}
.panel-foot{display:flex;align-items:center;justify-content:flex-end;gap:16px;font-size:12px;color:rgba(255,255,255,.5);margin-top:8px}
.panel-foot .links{display:flex;gap:20px}
.panel-foot a:hover{color:#fff}
.help-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:12px 14px;border-radius:12px;background:var(--bg-2);font-size:13px;color:var(--mut)}
.help-btn{font-family:'Sora',sans-serif;font-weight:600;font-size:13px;color:var(--blue);padding:8px 16px;border-radius:100px;box-shadow:0 0 0 1px var(--line-2) inset;white-space:nowrap;transition:background .3s,color .3s,box-shadow .3s}
.help-btn:hover{background:linear-gradient(120deg,var(--blue),var(--cyan));color:#fff;box-shadow:none}
.alt-row{margin-top:16px;text-align:center;font-size:13.5px;color:var(--mut)}
.alt-row a{color:var(--blue);font-weight:600;font-family:'Sora',sans-serif;transition:color .25s}
.alt-row a:hover{color:var(--cyan)}
/* ===== light mode ===== */
body.light{color:var(--txt);background:
  radial-gradient(ellipse 70% 55% at 100% 0%,rgba(0,161,223,.10),transparent 60%),
  radial-gradient(ellipse 60% 50% at 0% 100%,rgba(7,93,168,.07),transparent 60%),
  linear-gradient(180deg,#FDFEFF 0%,#F5F7FB 100%)}
body.light #bg3d{opacity:.22;filter:invert(1) hue-rotate(195deg) saturate(1.4)}
body.light .top .right{color:var(--mut)}
body.light .top .tlink,body.light .theme-btn{color:var(--navy);background:#fff;box-shadow:0 0 0 1px var(--line-2) inset}
body.light .top .tlink:hover,body.light .theme-btn:hover{background:var(--bg-2)}
body.light .upd-eyebrow{color:var(--blue)}
body.light .upd-title{color:var(--navy)}
body.light .upd-text{color:var(--mut)}
body.light .upd-btn{background:var(--navy);color:#fff}
body.light .upd-btn:hover{box-shadow:0 16px 34px -14px rgba(2,18,43,.45)}
body.light .upd-nav .dots button::after{background:rgba(2,18,43,.22)}
body.light .upd-nav .dots button.on::after{background:var(--navy)}
body.light .upd-nav .arrows button{color:var(--navy);background:#fff;box-shadow:0 0 0 1px var(--line-2) inset}
body.light .upd-nav .arrows button:hover{background:var(--bg-2)}
body.light .card{box-shadow:0 0 0 1px var(--line) inset,0 30px 70px -40px rgba(2,18,43,.3)}
body.light .pop{box-shadow:0 0 0 1px var(--line) inset,0 20px 44px -20px rgba(2,18,43,.4)}
body.light .user-chip{color:var(--mut)}
.theme-btn{width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(255,255,255,.08);box-shadow:0 0 0 1px var(--line-light) inset;transition:background .3s,transform .3s var(--ease)}
.theme-btn:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}
.theme-btn svg{width:18px;height:18px}
/* segmented code input */
.code-row{display:flex;gap:10px}
.code-box{width:52px;height:58px;flex:1;min-width:0;text-align:center;font-family:'Sora',sans-serif;font-size:22px;font-weight:600;color:var(--navy);background:var(--bg-2);border:1px solid var(--line);border-radius:12px;transition:border-color .3s,box-shadow .3s,background .3s}
/* Beat the generic `.field input` rule (0,1,1) which otherwise forces a 42px left padding meant for
   the icon text-fields, clipping the single digit out of view in these narrow OTP boxes. */
.field .code-box{padding:0;font-size:22px;font-family:'Sora',sans-serif}
.code-box:focus{outline:none;border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(0,161,223,.16)}
.code-box.filled{border-color:var(--line-2);background:#fff}
.field.err .code-box{border-color:var(--coral);box-shadow:0 0 0 3px rgba(255,111,91,.14)}
@media(max-height:940px){.code-box{height:52px;font-size:20px}}
/* shake on error */
@keyframes shake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.shake{animation:shake .4s}
/* a11y: visible focus + reduced motion */
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #99CFFF;outline-offset:2px}
input:focus-visible{outline:2px solid #99CFFF;outline-offset:1px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
/* compact vertical rhythm on shorter screens so nothing scrolls */
@media(max-height:940px){
  .card h1{font-size:24px}
  .card .sub{margin-bottom:18px}
  .field{margin-bottom:12px}
  .field input{padding:11px 14px 11px 42px}
  .forgot-row{margin:10px 0 16px}
  .fine{margin-top:10px}
  .upd-title{margin-bottom:10px}
  .upd-text{margin-bottom:20px}
}
@media(max-height:840px){
  .fine+.fine{display:none}
  .fine{font-size:10.5px;margin-top:8px}
  .btn{padding:13px 24px}
  .upd-text{font-size:14.5px}
  .upd-btn{padding:11px 22px;font-size:13.5px}
}
@media(max-height:600px){
  .auth{height:auto;min-height:100vh}
  .brand,.panel{overflow:visible}
}
/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
@media(max-width:1280px){
  .pop.p1{right:-10px}
  .pop.p2{left:-12px}
}
@media(max-width:1080px){
  .main{grid-template-columns:1fr}
  .brand{display:none}
  .panel{padding:26px 30px 34px}
  .top{padding:20px 30px 0}
}
@media(max-width:520px){
  .panel{padding:22px 20px 30px}
  .card{margin:18px 0;padding:30px 22px 28px}
}
