:root { --ip-red: #8b1116; --ip-red-deep: #7a0f13; --ip-ink: #2a2a2e; --ip-muted: #6b6b73; --ip-line: #e4e4ea; --ip-field-bg: #fbfbfc; } html, body { min-height: 100%; overflow-x: hidden; } body { margin: 0; background: #fff; font-family: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; -webkit-font-smoothing: antialiased; } html, body, #main-wrapper, .page-wrapper, .body-wrapper, .body-wrapper > .container-fluid { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; } .body-wrapper > .container-fluid { padding-left: 0 !important; padding-right: 0 !important; } .ip-shell { display: flex; flex-direction: column; width: 100%; min-height: 100vh; min-height: 100svh; min-height: 100dvh; box-sizing: border-box; } .ip-aside { position: relative; flex: 0 0 auto; min-height: 40vh; overflow: hidden; background-color: var(--ip-red-deep); } .ip-aside__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center right; user-select: none; pointer-events: none; } .ip-aside__overlay { position: relative; z-index: 1; height: 100%; min-height: inherit; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; padding: calc(clamp(32px, 8vw, 56px) + env(safe-area-inset-top, 0px)) clamp(20px, 6vw, 40px) clamp(24px, 6vw, 40px); } .ip-aside__logo { width: clamp(96px, 22vw, 128px); height: auto; margin: 0 0 clamp(20px, 4vw, 40px); filter: brightness(0) invert(1); } .ip-aside__title { margin: 0; color: #fff; font-size: clamp(30px, 8vw, 52px); line-height: 1.06; font-weight: 800; letter-spacing: -0.02em; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22); } .ip-aside__sub { margin: clamp(14px, 3vw, 22px) 0 0; max-width: 30ch; color: rgba(255, 255, 255, 0.88); font-size: clamp(14px, 3.6vw, 17px); line-height: 1.5; font-weight: 400; text-shadow: 0 1px 6px rgba(0, 0, 0, 0.22); } .ip-main { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; background: #fff; padding: clamp(28px, 7vw, 56px) clamp(20px, 6vw, 48px) calc(clamp(28px, 7vw, 56px) + env(safe-area-inset-bottom, 0px)); box-sizing: border-box; } .ip-form-wrap { width: 100%; max-width: 420px; } .ip-title { margin: 0 0 clamp(22px, 4vw, 34px); color: var(--ip-red); font-size: clamp(28px, 6vw, 36px); font-weight: 800; letter-spacing: -0.01em; } .ip-form { display: block; } .ip-alert { margin: 0 0 18px; padding: 12px 14px; border-radius: 12px; background: #fdecec; border: 1px solid #f3b9b9; color: #8a1414; font-size: 14px; font-weight: 500; } .ip-field { margin: 0 0 18px; } .ip-label { display: block; margin: 0 0 8px; color: var(--ip-ink); font-size: 15px; font-weight: 600; } .ip-input-wrap { position: relative; } .ip-input { width: 100%; height: 56px; box-sizing: border-box; padding: 0 18px; border: 1px solid var(--ip-line); border-radius: 14px; background: var(--ip-field-bg); color: var(--ip-ink); font-family: inherit; font-size: 16px; line-height: 1.2; transition: border-color 0.15s ease, box-shadow 0.15s ease; } .ip-input::placeholder { color: #b3b3bb; } .ip-input:focus { outline: none; border-color: var(--ip-red); box-shadow: 0 0 0 3px rgba(139, 17, 22, 0.12); background: #fff; } .ip-input-wrap:has(.ip-toggle) .ip-input { padding-right: 52px; } .ip-toggle { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--ip-red); cursor: pointer; -webkit-tap-highlight-color: transparent; } .ip-toggle svg { width: 22px; height: 22px; } .ip-toggle:focus-visible { outline: 2px solid var(--ip-red); outline-offset: 2px; } .ip-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; margin: 10px 0 0; border: 0; border-radius: 14px; background: var(--ip-red); color: #fff; font-family: inherit; font-size: 15px; font-weight: 700; letter-spacing: 0.06em; text-decoration: none; cursor: pointer; transition: background-color 0.15s ease; -webkit-tap-highlight-color: transparent; } .ip-btn:hover { background: var(--ip-red-deep); } .ip-btn:focus-visible { outline: 2px solid var(--ip-red); outline-offset: 3px; } .ip-btn--ghost { margin-top: 0; background: #fff; border: 1.5px solid var(--ip-red); color: var(--ip-red); } .ip-btn--ghost:hover { background: rgba(139, 17, 22, 0.06); } .ip-forgot { display: block; margin: 20px 0 0; text-align: center; color: var(--ip-ink); font-size: 15px; font-weight: 700; text-decoration: none; } .ip-forgot:hover { color: var(--ip-red); } .ip-divider { display: flex; align-items: center; gap: 14px; margin: clamp(24px, 5vw, 40px) 0; color: var(--ip-muted); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; } .ip-divider::before, .ip-divider::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--ip-line); } @media (min-width: 992px) { .ip-shell { flex-direction: row; } .ip-aside { flex: 1 1 50%; min-height: 100vh; min-height: 100dvh; } .ip-aside__overlay { justify-content: center; padding-left: clamp(48px, 5vw, 88px); padding-right: clamp(40px, 4vw, 64px); } .ip-main { flex: 1 1 50%; } .ip-form-wrap { max-width: 440px; } } @media (min-width: 1400px) { .ip-aside__overlay { padding-left: clamp(72px, 6vw, 120px); } .ip-form-wrap { max-width: 460px; } } .ip-onboard { display: none; } @media (max-width: 991.98px) { .ip-onboard { position: relative; display: flex; flex-direction: column; justify-content: flex-end; width: 100%; min-height: 100vh; min-height: 100svh; min-height: 100dvh; overflow: hidden; background: var(--ip-red-deep); } .ip-shell { display: none; } .ip-onboard__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; } .ip-onboard__veil { position: absolute; inset: 0; background: rgba(0, 0, 0, .2); } .ip-onboard__content { position: relative; z-index: 1; width: 100%; max-width: 430px; margin: 0 auto; box-sizing: border-box; padding: 0 16px calc(34px + env(safe-area-inset-bottom, 0px)); } .ip-onboard__title { margin: 0 0 30px; padding-left: 16px; max-width: 15ch; color: #fff; font-size: 24px; line-height: 34px; font-weight: 700; letter-spacing: -.01em; } .ip-onboard__cta { display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; padding: 16px; border-radius: 999px; background: #fff; color: #871312; font-size: 16px; line-height: 22px; font-weight: 600; text-decoration: none; } .ip-onboard__cta:active { background: #f2f2f2; } } @media (min-width: 992px) { .ip-aside__art { object-position: center top; } .ip-aside::after { content: ""; position: absolute; inset: 0; z-index: 0; background: rgba(0, 0, 0, .22); pointer-events: none; } }