.auth-page{--auth-blue: #1d6bff;--auth-blue-dark: #0b4fd4;--auth-blue-light: #4d9bff;--auth-text: #1a1a2e;--auth-muted: #6b7280;--auth-border: #e5e7eb;--auth-card-radius: 24px;--auth-card-shadow: 0 20px 60px rgba(0, 20, 80, .25);position:relative;width:100%;min-height:100vh;margin:0;overflow-x:hidden;background-color:#0a1628;background-image:var(--auth-bg-mobile);background-size:100% 100%;background-position:center top;background-repeat:no-repeat;background-attachment:fixed;color:#fff;font-family:Nunito,Hiragino Sans,Hiragino Kaku Gothic ProN,Meiryo,sans-serif}html:has(.auth-page),html:has(.auth-page) body{width:100%;max-width:100%;min-height:100%;overflow-x:hidden}@media (min-width: 768px){.auth-page{background-image:var(--auth-bg-tablet)}}@media (min-width: 768px) and (orientation: landscape),(min-width: 1200px){.auth-page{background-image:var(--auth-bg-desktop);background-position:center center}}.auth-page__branding{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.auth-page__inner{position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;box-sizing:border-box}@media (max-width: 767.98px){.auth-page__inner{justify-content:flex-start;padding:var(--auth-card-padding-top) 12px 12px}}@media (min-width: 768px){.auth-page__inner{padding-left:24px;padding-right:24px}}.auth-hero{position:absolute;top:clamp(18px,4vh,56px);left:clamp(20px,4vw,72px);max-width:min(42vw,560px);text-align:left;color:#fff}.auth-hero__tagline{margin:0 0 4px;font-size:clamp(.72rem,1vw,.95rem);font-family:Noto Sans JP,sans-serif;font-weight:500;letter-spacing:.08em;text-shadow:0 2px 8px rgba(0,20,80,.55)}.auth-hero__brand{margin:0 0 8px;font-family:Poppins,sans-serif;font-size:clamp(2rem,4vw,4.25rem);font-weight:700;letter-spacing:-.045em;line-height:.98;text-shadow:0 3px 16px rgba(0,20,90,.55)}.auth-hero__subtitle{margin:0;font-size:clamp(.72rem,1vw,.95rem);font-family:Noto Sans JP,sans-serif;font-weight:500;line-height:1.5;text-shadow:0 2px 8px rgba(0,20,80,.65)}@media (max-width: 767.98px){.auth-hero{top:16px;left:20px;max-width:70vw}.auth-hero__tagline{font-size:.65rem}.auth-hero__brand{margin-bottom:5px;font-size:clamp(1.8rem,9vw,2.35rem)}.auth-hero__subtitle{font-size:.65rem}}.auth-card-wrap{flex-shrink:0;width:100%;max-width:480px}.auth-card-wrap--wide{max-width:640px}@media (min-width: 768px){.auth-card-wrap--wide{max-width:720px}}.auth-card{background:#fff;border-radius:var(--auth-card-radius);box-shadow:var(--auth-card-shadow);padding:28px 24px 24px;color:var(--auth-text);font-family:Nunito,sans-serif}@media (min-width: 768px){.auth-card{padding:32px 32px 28px}}@media (max-width: 767.98px){.auth-card{padding:20px 16px 16px;border-radius:20px}.auth-card__top{margin-bottom:12px}.auth-card__icon{width:36px;height:36px;font-size:1rem}.auth-card__title{padding-top:7px}.auth-tabs{margin-bottom:14px}.auth-tabs__btn{padding:8px 12px}.auth-field{margin-bottom:10px}.auth-field__label{margin-bottom:4px}.auth-field__input,.auth-field__select{padding-top:9px;padding-bottom:9px}.auth-check{margin-bottom:12px}.auth-card__actions{gap:8px;margin-top:4px}.auth-btn{padding:10px 20px}.auth-link{padding:4px 0}}.auth-card__top{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px}.auth-card__icon{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#2478f2,#0042b8);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.125rem;box-shadow:0 6px 16px #0042b86b}.auth-card__title{font-size:1.0625rem;font-weight:700;line-height:1.4;margin:0;padding-top:10px;color:var(--auth-text)}.auth-step{display:flex;align-items:center;gap:10px;margin-bottom:24px;flex-wrap:wrap}.auth-step__badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:0 14px;border-radius:999px;font-family:Nunito,Arial,sans-serif;font-size:.75rem;font-weight:800;line-height:1;letter-spacing:0;color:#fff;background:linear-gradient(90deg,#2478f2,#0042b8);text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}.auth-step__label{font-size:.8125rem;color:var(--auth-muted)}.auth-step__dots{display:flex;align-items:center;gap:6px;margin-left:auto}.auth-step__dot{width:8px;height:8px;border-radius:50%;background:#d1d5db}.auth-step__dot.is-active{background:linear-gradient(135deg,var(--auth-blue-light),var(--auth-blue-dark));box-shadow:0 0 6px #1d6bff80}.auth-section__heading{font-size:1rem;font-weight:700;margin-bottom:8px;color:var(--auth-text)}.auth-section__description{font-size:.8125rem;line-height:1.65;color:var(--auth-muted);margin-bottom:20px}.auth-field{margin-bottom:16px}.auth-field__label{display:block;font-size:.8125rem;font-weight:600;color:var(--auth-text);margin-bottom:6px}.auth-field__input-wrap{position:relative}.auth-field__icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:1rem;pointer-events:none}.auth-field__input,.auth-field__select{width:100%;padding:12px 14px 12px 42px;border:1px solid var(--auth-border);border-radius:12px;font-size:.9375rem;color:var(--auth-text);background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.auth-field__input--no-icon{padding-left:14px}.auth-field__select{padding-left:14px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}@media (max-width: 767.98px){.auth-field__input,.auth-field__select{font-size:16px}}.auth-field__input:focus,.auth-field__select:focus{outline:none;border-color:var(--auth-blue);box-shadow:0 0 0 3px #1d6bff26}.auth-field__input.is-invalid,.auth-field__select.is-invalid{border-color:#dc3545}.auth-field__error{display:block;font-size:.8125rem;color:#dc3545;margin-top:4px}.auth-field__plain{font-size:.9375rem;font-weight:600;color:var(--auth-text);margin:0;padding:12px 0}.auth-check{display:flex;align-items:center;gap:8px;margin-bottom:20px}.auth-check__input{width:16px;height:16px;accent-color:var(--auth-blue)}.auth-check__label{font-size:.8125rem;color:var(--auth-muted);margin:0}.auth-radio-group{display:flex;gap:20px;padding:8px 0}.auth-radio{display:flex;align-items:center;gap:6px;font-size:.875rem;cursor:pointer}.auth-radio input{accent-color:var(--auth-blue)}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;border:none;border-radius:999px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:opacity .2s ease,transform .15s ease;text-decoration:none}.auth-btn:hover{opacity:.92;transform:translateY(-1px)}.auth-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.auth-btn--primary{color:#fff;background:linear-gradient(90deg,var(--auth-blue-light),var(--auth-blue-dark));box-shadow:0 6px 20px #1d6bff59}.auth-btn--secondary{color:var(--auth-text);background:#f3f4f6;border:1px solid var(--auth-border);box-shadow:none}.auth-btn--outline{width:auto;padding:10px 20px;color:var(--auth-blue);background:#fff;border:1px solid var(--auth-blue);box-shadow:none}.auth-card__actions{display:flex;flex-direction:column;gap:12px;margin-top:8px}.auth-card__actions--row{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px}.auth-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:.875rem;font-weight:600;color:var(--auth-blue);text-decoration:none;padding:8px 0}.auth-link:hover{color:var(--auth-blue-dark);text-decoration:underline}.auth-link--muted{color:var(--auth-muted);font-weight:500}.auth-tabs{display:flex;gap:0;margin-bottom:24px;border:1px solid var(--auth-border);border-radius:999px;overflow:hidden;padding:3px;background:#f3f4f6}.auth-tabs__btn{flex:1;padding:10px 16px;border:none;border-radius:999px;font-size:.875rem;font-weight:600;color:var(--auth-muted);background:transparent;cursor:pointer;transition:all .2s ease}.auth-tabs__btn.active{color:#fff;background:linear-gradient(90deg,var(--auth-blue-light),var(--auth-blue-dark));box-shadow:0 2px 8px #1d6bff4d}.auth-alert{padding:12px 16px;border-radius:12px;font-size:.8125rem;line-height:1.6;margin-bottom:20px}.auth-alert--light{background:#f9fafb;border:1px solid var(--auth-border);color:var(--auth-muted)}.auth-alert--success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.auth-divider{border:none;border-top:1px solid var(--auth-border);margin:24px 0}.auth-recipient{font-size:.8125rem;color:var(--auth-muted);margin-top:8px}.auth-recipient strong{color:var(--auth-text)}.auth-features{position:absolute;left:clamp(20px,4vw,72px);bottom:clamp(24px,5vh,60px);display:grid;gap:18px;width:280px;color:#fff}.auth-features--mobile,.auth-page__mobile-footer{display:none}.auth-feature{display:flex;align-items:center;gap:12px}.auth-feature__icon{flex-shrink:0;width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:#fff;background:linear-gradient(135deg,#2478f2f5,#0042b8f5);box-shadow:0 0 18px #3a9fffad}.auth-feature__body{min-width:0}.auth-feature__title{margin:0 0 2px;font-family:Noto Sans JP,sans-serif;font-size:.875rem;font-weight:700;letter-spacing:.035em;line-height:1.3;text-shadow:0 2px 8px rgba(0,20,80,.65)}.auth-feature__lines{margin:0;font-family:Noto Sans JP,sans-serif;font-size:.6875rem;font-weight:400;line-height:1.45;opacity:.92;text-shadow:0 2px 8px rgba(0,20,80,.65)}.auth-page__footer{position:absolute;right:clamp(20px,4vw,72px);bottom:16px;margin:0;font-size:.625rem;opacity:.78;color:#fff}@media (min-width: 768px) and (orientation: portrait){.auth-features--background{right:32px;bottom:72px;left:32px;grid-template-columns:repeat(3,1fr);gap:18px;width:auto}}@media (max-width: 767.98px){.auth-features--background,.auth-page__footer{display:none}.auth-features--mobile{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;margin:22px auto 0;color:#fff}.auth-features--mobile .auth-feature{gap:6px;min-width:0;padding:4px 0}.auth-features--mobile .auth-feature__icon{width:34px;height:34px;font-size:.9rem}.auth-features--mobile .auth-feature__title{font-size:.625rem;letter-spacing:0;white-space:nowrap}.auth-features--mobile .auth-feature__lines{font-size:.46875rem;line-height:1.35}.auth-page__mobile-footer{display:block;margin:12px auto 4px;color:#fff;font-size:.5625rem;opacity:.78;text-align:center}}@media (orientation: landscape) and (max-height: 700px){.auth-features--background{display:none}.auth-page__footer{bottom:8px}}.login-form{transition:opacity .25s ease}.auth-form-grid{display:grid;gap:0}@media (min-width: 576px){.auth-form-grid--2col{grid-template-columns:1fr 1fr;gap:0 16px}}
