*,:after,:before{box-sizing:border-box;margin:0;padding:0}[role=button],a,button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}body,html{height:100%;width:100%;overflow:hidden}body{font-family:Inter,sans-serif;background:#fffdff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--mr-splash-bg:#fffdff;--mr-login-bg:#fdfafd;--mr-white:#ffffff;--mr-accent:#cf0042;--mr-accent-dark:#a8003a;--mr-text:#1a1a1a;--mr-text-secondary:#6b7280;--mr-text-muted:#9ca3af;--mr-border:#e5e7eb;--mr-input-bg:#f4f2f4;--mr-input-border:#e0dce0;--mr-input-focus:#cf0042;--mr-error:#cf0042}#moru-app{position:fixed;inset:0;align-items:center;justify-content:center}#moru-app,.mr-frame{width:100%;height:100%;display:flex;background:var(--mr-splash-bg)}.mr-frame{position:relative;max-width:430px;max-height:100dvh;box-shadow:0 0 60px rgba(0,0,0,.08)}.mr-frame,.mr-screen{overflow:hidden;flex-direction:column}.mr-screen{position:absolute;inset:0;opacity:0;pointer-events:none;transform:translateX(40px);transition:opacity .32s ease,transform .32s ease;display:flex}.mr-screen.active{opacity:1;pointer-events:all;transform:translateX(0)}.mr-splash{position:absolute;inset:0;background:var(--mr-splash-bg);flex-direction:column;z-index:50;overflow:hidden}.mr-splash,.mr-splash-logo-wrap{display:flex;align-items:center;justify-content:center}.mr-splash-logo{width:200px;height:auto;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;animation:mr-splash-zoom 3.6s cubic-bezier(.22,.61,.36,1) forwards;transform-origin:center center}@keyframes mr-splash-zoom{0%{transform:scale(.35);opacity:.6}30%{opacity:1}to{transform:scale(1);opacity:1}}.mr-loading-overlay{position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:40}.mr-loading-card,.mr-loading-overlay{display:flex;align-items:center;justify-content:center}.mr-loading-card{width:72px;height:72px;background:#ffffff;border-radius:50%;box-shadow:0 8px 32px rgba(0,0,0,.18)}.mr-loading-spinner{width:36px;height:36px;border:3px solid #f5dde4;border-top:3px solid var(--mr-accent);border-radius:50%;animation:mr-spin .85s linear infinite}@keyframes mr-spin{to{transform:rotate(1turn)}}.mr-login-screen{height:100%;background:var(--mr-login-bg);display:flex;flex-direction:column;overflow:hidden;position:relative}.mr-login-body{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.mr-login-topbar{padding:52px 20px 0;min-height:52px;flex-shrink:0}.mr-back-btn,.mr-login-topbar{display:flex;align-items:center}.mr-back-btn{background:none;border:none;cursor:pointer;color:var(--mr-text);width:36px;height:36px;justify-content:center;border-radius:50%;transition:background .15s;padding:0;margin-left:-4px}.mr-back-btn:hover{background:rgba(207,0,66,.06)}.mr-login-logo-area{display:flex;align-items:center;justify-content:center;padding:16px 20px 0;flex-shrink:0}.mr-login-logo{width:120px;height:auto;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.mr-login-header{padding:24px 24px 0;flex-shrink:0}.mr-login-title{font-size:28px;font-weight:800;color:var(--mr-text);letter-spacing:-.4px;margin-bottom:4px;line-height:1.2}.mr-login-subtitle{font-size:14px;color:var(--mr-text-secondary);line-height:1.5}.mr-login-form{padding:28px 24px 0;gap:14px;flex-shrink:0}.mr-field-group,.mr-login-form{display:flex;flex-direction:column}.mr-input-row{display:flex;align-items:center;background:var(--mr-input-bg);border:1.5px solid var(--mr-input-border);border-radius:12px;overflow:hidden;transition:border-color .18s,box-shadow .18s}.mr-input-row:focus-within{border-color:var(--mr-input-focus);box-shadow:0 0 0 3px rgba(207,0,66,.08)}.mr-input-row--error{border-color:var(--mr-error);box-shadow:0 0 0 3px rgba(207,0,66,.08)}.mr-input-prefix{padding:0 12px 0 16px;font-weight:500;white-space:nowrap;flex-shrink:0;border-right:1.5px solid var(--mr-input-border);display:flex;align-items:center}.mr-input,.mr-input-prefix{font-size:15px;color:var(--mr-text);height:54px}.mr-input{flex:1 1;padding:0 14px;background:transparent;border:none;outline:none;font-family:inherit;caret-color:var(--mr-accent)}.mr-input::placeholder{color:var(--mr-text-muted)}.mr-eye-btn{background:none;border:none;cursor:pointer;width:44px;height:54px;display:flex;align-items:center;justify-content:center;color:var(--mr-text-muted);flex-shrink:0;transition:color .15s}.mr-eye-btn:hover{color:var(--mr-text-secondary)}.mr-field-error{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--mr-error);margin-top:5px;padding-left:2px}.mr-forgot-row{display:flex;justify-content:flex-end;padding:8px 24px 16px;flex-shrink:0}.mr-forgot-btn{background:none;border:none;cursor:pointer;font-size:13px;color:var(--mr-accent);font-family:inherit;padding:0;font-weight:500}.mr-login-btn-wrap{flex-shrink:0;padding:16px 20px max(24px,env(safe-area-inset-bottom,24px));background:var(--mr-login-bg);display:flex;flex-direction:column;align-items:center;gap:14px;transform:translateY(0)}.mr-signin-btn{width:100%;height:54px;background:var(--mr-accent);color:#ffffff;border:none;border-radius:14px;font-size:14px;font-weight:700;letter-spacing:.8px;font-family:inherit;cursor:pointer;transition:background .18s,box-shadow .18s;box-shadow:0 4px 16px rgba(207,0,66,.28)}.mr-signin-btn:hover{background:var(--mr-accent-dark)}.mr-signin-btn:active{transform:scale(.98)}.mr-signup-text{font-size:13px;color:var(--mr-text-muted);text-align:center}.mr-signup-link{background:none;border:none;cursor:pointer;font-size:13px;color:var(--mr-accent);font-family:inherit;font-weight:600;padding:0}.mr-otp-screen{height:100%;background:var(--mr-login-bg);display:flex;flex-direction:column;overflow:hidden;position:relative}.mr-otp-topbar{padding:52px 20px 0}.mr-otp-logo-area,.mr-otp-topbar{display:flex;align-items:center;flex-shrink:0}.mr-otp-logo-area{justify-content:center;padding:14px 20px 0}.mr-otp-logo{width:100px;height:auto;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.mr-otp-content{flex:1 1;padding:28px 24px 0;display:flex;flex-direction:column;overflow:visible}.mr-otp-title{font-size:26px;font-weight:800;color:var(--mr-text);margin-bottom:6px;letter-spacing:-.3px;line-height:1.2}.mr-otp-subtitle{font-size:14px;color:var(--mr-text-secondary);line-height:1.55;margin-bottom:28px}.mr-otp-subtitle strong{color:var(--mr-text);font-weight:600}.mr-otp-label{font-size:13px;font-weight:600;color:var(--mr-text-secondary);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.mr-otp-input-row{display:flex;align-items:center;background:var(--mr-input-bg);border:1.5px solid var(--mr-input-border);border-radius:12px;overflow:hidden;transition:border-color .18s,box-shadow .18s;margin-bottom:8px}.mr-otp-input-row:focus-within{border-color:var(--mr-accent);box-shadow:0 0 0 3px rgba(207,0,66,.08)}.mr-otp-input-row--error{border-color:var(--mr-error);box-shadow:0 0 0 3px rgba(207,0,66,.08)}.mr-otp-input{flex:1 1;height:54px;padding:0 16px;background:transparent;border:none;outline:none;font-size:22px;font-family:Courier New,Courier,monospace;font-weight:600;color:var(--mr-text);caret-color:var(--mr-accent);letter-spacing:6px}.mr-otp-input::placeholder{color:var(--mr-text-muted);font-size:15px;font-family:Inter,sans-serif;letter-spacing:0;font-weight:400}.mr-otp-error{color:var(--mr-error);min-height:20px;margin-top:4px;font-weight:500}.mr-otp-error,.mr-otp-timer{display:flex;align-items:center;gap:6px;font-size:13px}.mr-otp-timer{color:var(--mr-text-secondary);margin-top:12px}.mr-otp-timer-val{font-weight:600;color:var(--mr-text)}.mr-otp-timer-val--urgent{color:var(--mr-error)}.mr-otp-resend{background:none;border:none;cursor:pointer;font-size:14px;color:var(--mr-accent);font-family:inherit;font-weight:600;padding:4px 0;margin-top:10px;width:-moz-fit-content;width:fit-content}.mr-otp-resend:disabled{color:var(--mr-text-muted);cursor:default}.mr-otp-spacer{flex:1 1;min-height:0}.mr-otp-bottom{padding:0 20px 28px;flex-shrink:0}.mr-verify-btn{width:100%;height:54px;background:#e0dce0;color:#9ca3af;border:none;border-radius:14px;font-size:14px;font-weight:700;letter-spacing:.8px;font-family:inherit;cursor:pointer;transition:background .18s,color .18s,transform .1s,box-shadow .18s}.mr-verify-btn--ready{background:var(--mr-accent);color:#ffffff;box-shadow:0 4px 16px rgba(207,0,66,.28);cursor:pointer}.mr-verify-btn--ready:hover{background:var(--mr-accent-dark)}.mr-verify-btn--ready:active{transform:scale(.98)}