body.role-student{--role:var(--coral);--roled:var(--corald);--roles:var(--corals)}body.role-parent{--role:var(--yellowd);--roled:#d97706;--roles:var(--yellows)}body.role-org{--role:var(--blue);--roled:#2563eb;--roles:var(--blues)}.auth-page{background:var(--cream);flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-page:before{content:"";pointer-events:none;opacity:.5;z-index:0;background-image:linear-gradient(#1a1a2e0a 1px,#0000 1px);background-size:100% 38px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 15% 85%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 15% 85%,#0000 100%)}.auth-page:after{content:"";background:var(--coral);opacity:.08;pointer-events:none;z-index:0;width:160%;height:160px;position:fixed;top:40%;left:-30%;transform:rotate(-7deg)}body.role-parent .auth-page:after{background:var(--yellowd);opacity:.08}body.role-org .auth-page:after{background:var(--blue);opacity:.06}.auth-top{z-index:5;justify-content:space-between;align-items:center;gap:24px;padding:24px 36px;display:flex;position:relative}.auth-top .auth-brand{color:var(--ink);align-items:center;gap:10px;display:flex}.auth-top .auth-brand svg{width:36px;height:36px}.auth-top .auth-brand .wm{font-family:var(--display);letter-spacing:.01em;text-transform:uppercase;font-size:22px;font-weight:900}.auth-top .auth-brand .wm .myexam{color:var(--coral)}.auth-top .auth-back{font-family:var(--body);color:var(--inks);letter-spacing:.02em;align-items:center;gap:6px;font-size:14px;font-weight:700;display:inline-flex}.auth-top .auth-back:hover{color:var(--ink)}.auth-stage{z-index:2;perspective:1500px;flex:1;justify-content:center;align-items:center;padding:40px 24px 60px;display:flex;position:relative}.auth-card{border:1.5px solid var(--rule);background:#fff;border-radius:28px;width:100%;max-width:560px;padding:48px 48px 40px;position:relative;box-shadow:0 30px 80px #1a1a2e14}.auth-card.wide{max-width:760px;padding:54px 60px 48px}.auth-eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--coral);align-items:center;gap:10px;margin-bottom:18px;font-size:12px;font-weight:500;display:inline-flex}.auth-eyebrow:before{content:"";background:var(--coral);width:24px;height:2px}body.role-parent .auth-eyebrow{color:var(--yellowd)}body.role-parent .auth-eyebrow:before{background:var(--yellowd)}body.role-org .auth-eyebrow{color:var(--blue)}body.role-org .auth-eyebrow:before{background:var(--blue)}.auth-h{font-family:var(--display);color:var(--ink);text-transform:none;letter-spacing:-.02em;margin-bottom:14px;font-size:clamp(34px,4vw,48px);font-weight:700;line-height:1.05}body.role-parent .auth-h .accent{color:var(--yellowd)}body.role-org .auth-h .accent{color:var(--blue)}.auth-sub{color:var(--inks);letter-spacing:.01em;max-width:48ch;margin-bottom:32px;font-size:17px;line-height:1.6}.gate-choices{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;display:grid}.gate-choice{border:2px solid var(--rule);background:var(--cream);text-align:left;transition:transform .18s var(--ease-out),border-color .18s var(--ease-out),box-shadow .18s var(--ease-out),background .18s var(--ease-out);color:var(--ink);border-radius:18px;flex-direction:column;gap:8px;padding:24px;display:flex;position:relative}.gate-choice:hover{border-color:var(--ink);transform:translateY(-4px);box-shadow:0 18px 40px #1a1a2e1a}.gate-choice.primary{background:var(--ink);color:var(--chalk);border-color:var(--ink)}.gate-choice.primary:hover{background:#000}.gate-choice .ic{background:var(--coral);color:#fff;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.gate-choice .ic svg{width:24px;height:24px}.gate-choice.primary .ic{background:var(--coral)}body.role-parent .gate-choice .ic{background:var(--yellowd)}body.role-org .gate-choice .ic{background:var(--blue)}.gate-choice h3{font-family:var(--display);letter-spacing:-.015em;text-transform:none;margin-top:6px;font-size:22px;font-weight:600;line-height:1.15}.gate-choice.primary h3{color:var(--chalk)}.gate-choice p{color:var(--inks);letter-spacing:.01em;max-width:36ch;font-size:14px;line-height:1.5}.gate-choice.primary p{color:#f2f0e6c7}.gate-choice .arrow{font-family:var(--body);letter-spacing:-.005em;color:var(--coral);align-self:flex-end;margin-top:8px;font-size:14px;font-weight:700}.gate-choice.primary .arrow{color:#fff}.gate-footnote{color:var(--inkf);letter-spacing:.02em;text-align:center;margin-top:14px;font-size:13px}.gate-footnote a{color:var(--ink);border-bottom:1.5px solid var(--coral);padding-bottom:1px;font-weight:700}.gate-footnote a:hover{color:var(--coral)}.role-switch{border:1.5px solid var(--rule);background:#fff;border-radius:10px;gap:4px;margin-bottom:24px;padding:4px;display:inline-flex}.role-switch a,.role-switch button{font-family:var(--body);letter-spacing:-.005em;text-transform:none;color:var(--inks);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:600}.role-switch a.active,.role-switch button.active{background:var(--ink);color:var(--chalk)}.role-switch a:hover:not(.active),.role-switch button:hover:not(.active){color:var(--ink)}.auth-form{flex-direction:column;gap:18px;margin-top:8px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--inks);font-size:11px;font-weight:500}.field input,.field select{font-family:var(--body);letter-spacing:.01em;color:var(--ink);background:var(--cream);border:1.5px solid var(--rule);min-height:50px;transition:border-color .15s var(--ease-out),background .15s var(--ease-out);border-radius:12px;padding:14px 16px;font-size:16px;font-weight:500}.field input:focus,.field select:focus{border-color:var(--ink);background:#fff;outline:none}.field input::placeholder{color:var(--inkf)}.field .help{color:var(--inkf);letter-spacing:.01em;font-size:12px;line-height:1.4}.field-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-row .field{margin:0}.oauth-row{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;display:grid}.oauth-btn{border:1.5px solid var(--rule);font-family:var(--body);letter-spacing:.01em;color:var(--ink);min-height:50px;transition:border-color .15s var(--ease-out),background .15s var(--ease-out);background:#fff;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:14px;font-weight:700;display:inline-flex}.oauth-btn:hover{border-color:var(--ink)}.oauth-btn svg{width:18px;height:18px}.oauth-divider{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--inkf);align-items:center;gap:14px;margin-bottom:22px;font-size:11px;font-weight:500;display:flex}.oauth-divider:before,.oauth-divider:after{content:"";background:var(--rule);flex:1;height:1px}.field-check{color:var(--inks);letter-spacing:.01em;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;display:flex}.field-check input{cursor:pointer;width:18px;height:18px;accent-color:var(--coral);flex-shrink:0;margin-top:3px}.field-check a{color:var(--ink);border-bottom:1.5px solid var(--coral);padding-bottom:1px;font-weight:700}.auth-submit{background:var(--coral);color:#fff;font-family:var(--body);letter-spacing:-.005em;text-transform:none;min-height:52px;box-shadow:0 1px 0 var(--corald),0 6px 18px #ff6b4738;transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:8px;padding:15px 24px;font-size:15px;font-weight:700;display:inline-flex}.auth-msg{font-family:var(--body);letter-spacing:.01em;border:1.5px solid var(--rule);border-radius:12px;margin-bottom:18px;padding:12px 14px;font-size:14px;font-weight:700;line-height:1.5}.auth-msg.error{color:#a3331b;background:#fdece8;border-color:#f4c4b8}.auth-msg.success{background:var(--mints);color:var(--mintd);border-color:#9ee3c4}.auth-foot{color:var(--inks);text-align:center;letter-spacing:.01em;margin-top:22px;font-size:14px}.auth-foot a{color:var(--ink);border-bottom:1.5px solid var(--coral);padding-bottom:1px;font-weight:800}.role-strip{background:var(--cream);border:1.5px solid var(--rule);border-radius:14px;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;display:flex}.role-strip .ic{background:var(--corals);width:36px;height:36px;color:var(--coral);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}body.role-parent .role-strip .ic{background:var(--yellows);color:var(--yellowd)}body.role-org .role-strip .ic{background:var(--blues);color:var(--blue)}.role-strip .ic svg{width:20px;height:20px}.role-strip strong{font-family:var(--display);letter-spacing:-.005em;text-transform:none;color:var(--ink);font-size:15px;font-weight:600;display:block}.role-strip small{color:var(--inkf);letter-spacing:.02em;font-size:12px}.role-strip a{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--inks);margin-left:auto;font-size:11px;font-weight:500}.role-strip a:hover{color:var(--coral)}.auth-prop{pointer-events:none;z-index:1;position:fixed}.auth-prop.pencil{filter:drop-shadow(0 14px 22px #1a1a2e1a);width:280px;top:6%;right:-40px;transform:rotate(35deg)}.auth-prop.ball{filter:drop-shadow(0 12px 20px #1a1a2e24);width:90px;bottom:6%;left:5%}.auth-prop.chalk{width:110px;bottom:14%;right:8%;transform:rotate(-22deg)}.auth-prop.sheet{filter:drop-shadow(0 14px 22px #1a1a2e14);width:160px;top:14%;left:-30px;transform:rotate(-12deg)}.auth-main{scrollbar-width:thin;scrollbar-color:var(--rule) transparent;flex-direction:column;justify-content:center;padding:30px 44px;display:flex;position:relative;overflow-y:auto}.auth-main::-webkit-scrollbar{width:7px}.auth-main::-webkit-scrollbar-thumb{background:var(--rule);border-radius:8px}.main-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.main-top .role-chip{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--inks);background:var(--roles);border:1.5px solid color-mix(in oklab, var(--role) 35%, transparent);border-radius:999px;align-items:center;gap:8px;padding:6px 11px;font-size:11px;font-weight:500;display:inline-flex}.main-top .role-chip .ic{color:var(--role);display:flex}.main-top .role-chip .ic svg{width:14px;height:14px}.main-top .role-change{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--inkf);transition:color .15s var(--ease-out);font-size:11px;font-weight:500}.main-top .role-change:hover{color:var(--role)}.auth-card.solo{max-width:460px;padding:40px 44px 34px}.auth-card.solo .auth-main{justify-content:flex-start;padding:0;overflow:visible}.auth-card.solo .main-top .role-chip,.auth-card.solo .main-top .role-change,.auth-card.solo .login-row label,.auth-card.solo .login-row a{white-space:nowrap}.stagger{animation:rise .5s var(--ease-out) forwards}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.login-row{letter-spacing:.01em;justify-content:space-between;align-items:center;margin-top:2px;font-size:13.5px;display:flex}.login-row label{color:var(--inks);align-items:center;gap:8px;font-weight:600;display:inline-flex}.login-row label input{width:18px;height:18px;accent-color:var(--role)}.login-row a{color:var(--ink);border-bottom:1.5px solid var(--role);padding-bottom:1px;font-weight:700}.field input:focus,.field select:focus{border-color:var(--role);box-shadow:0 0 0 4px color-mix(in oklab, var(--role) 16%, transparent);background:#fff;outline:none}.field-check input{accent-color:var(--role)}.field-check a{border-bottom-color:var(--role)}.auth-submit{background:var(--role);box-shadow:0 1px 0 var(--roled),0 8px 20px color-mix(in oklab, var(--role) 32%, transparent);border-radius:12px;min-height:50px;margin-top:4px;position:relative;overflow:hidden}.auth-submit .arr{transition:transform .2s var(--ease-out);display:inline-block}.auth-submit:hover{box-shadow:0 3px 0 var(--roled),0 12px 28px color-mix(in oklab, var(--role) 40%, transparent);transform:translateY(-2px)}.auth-submit:hover .arr{transform:translate(4px)}.auth-foot a{border-bottom-color:var(--role)}.auth-foot a:hover,.auth-eyebrow{color:var(--role)}.auth-eyebrow:before{background:var(--role)}.auth-h .accent{color:var(--role)}.oauth-btn{transition:border-color .15s var(--ease-out),transform .15s var(--ease-out),box-shadow .15s var(--ease-out)}.oauth-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #1a1a2e14}.auth-form{gap:14px;margin-top:2px}.oauth-row,.oauth-divider{margin-bottom:16px}@media (max-width:720px){.auth-card,.auth-card.wide,.auth-card.solo,.reg-card{padding:32px 28px}.gate-choices,.field-row,.oauth-row{grid-template-columns:1fr}.auth-prop{display:none}.auth-main{padding:0;overflow:visible}}
