@font-face{font-family:Nunito;src:url('/assets/nunito-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Nunito;src:url('/assets/nunito-700.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:Nunito;src:url('/assets/nunito-800.ttf') format('truetype');font-weight:800;font-display:swap}@font-face{font-family:Nunito;src:url('/assets/nunito-900.ttf') format('truetype');font-weight:900;font-display:swap}
:root{font-family:Nunito,Arial,sans-serif;color:#510b4c;background:#fff7ee;--purple:#8308be;--muted:#75586e}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #16827d;outline-offset:4px}h1,h2,h3,p{margin:0}p{line-height:1.65}h1,h2,h3{font-weight:900;line-height:1.12}h1{font-size:clamp(32px,4.5vw,51px);letter-spacing:-1.2px}h2{font-size:26px}h3{font-size:27px}small{font-size:12px;color:var(--muted)}.wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}header{background:#fff7eef5;border-bottom:1px solid #eadddf}.header{min-height:95px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:18px;font-size:21px;font-weight:900;flex-shrink:0}.brand img{width:144px;height:auto;object-fit:contain}.brand span{padding-left:18px;border-left:1px solid #dac2d5}nav{display:flex;align-items:center;gap:25px}nav form{margin:0}.nav-link{font-size:13px;min-height:44px;display:inline-flex;align-items:center;font-weight:800;background:none;border:0;color:var(--muted);padding:8px 0;cursor:pointer}.nav-link:hover,.quiet:hover{text-decoration:underline;text-underline-offset:5px}main{flex:1;padding-block:45px 70px}.eyebrow{font-size:12px;letter-spacing:1.2px;font-weight:900;color:var(--purple);text-transform:uppercase}.page-heading{margin:15px 0 40px}.page-heading h1{margin-block:14px 18px}.page-heading>p:last-child{color:var(--muted);font-size:17px}.card{background:#fffdf9;border:1px solid #e5d3e6;border-radius:25px;overflow:hidden;box-shadow:0 14px 45px #79477906}.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:51px;padding:13px 23px;background:var(--purple);color:#fff;font-size:15px;font-weight:900;border-radius:100px;border:0;cursor:pointer;text-align:center;line-height:1.3}.button:hover{background:#66079c}.button:disabled{background:#e6d9e9;color:#735a78;cursor:not-allowed}.full{width:100%}.scene{overflow:hidden;background:#f0dff7}.scene svg{display:block;width:100%;height:auto;aspect-ratio:568/350}.auth-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:start;padding-top:25px}.auth-intro h1{margin:18px 0 22px;max-width:500px}.auth-intro>p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:480px}.auth-intro .scene{margin-top:30px;border-radius:100px 100px 25px 25px;border:7px solid #fffaf4}.auth-card{padding:35px}.auth-card h2{margin-bottom:24px}.auth-card label:not(.check){display:block;font-size:13px;font-weight:800;margin:18px 0 8px}.auth-card input:not([type=checkbox]):not([type=hidden]){display:block;width:100%;border:1px solid #d9c7d7;border-radius:11px;padding:13px 14px;background:#fff;color:#510b4c;min-height:49px;font-size:16px}.auth-card .button{margin-top:24px}.hint{font-size:12px;color:var(--muted);line-height:1.65;margin-top:14px}.hint a,.auth-switch a{color:var(--purple);font-weight:800;text-decoration:underline;text-underline-offset:4px}.check{display:flex;align-items:flex-start;gap:11px;font-size:12px;line-height:1.6;margin-top:21px}.check input{width:18px;height:18px;flex-shrink:0;accent-color:var(--purple)}.auth-switch{font-size:13px;margin-top:22px}.notice{padding:17px 19px;border-radius:13px;background:#f4eaf8;font-size:13px;line-height:1.6;color:#6d4771;margin-top:20px}.notice.error{background:#fff0e7;color:#933d19;border:1px solid #ecc9b9;margin-bottom:20px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.section-title>span{font-size:13px;color:var(--muted);font-weight:800}.courses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.course-copy{padding:28px}.course-copy h2,.course-copy h3{margin:17px 0}.course-copy>p:not(.eyebrow){font-size:15px;color:var(--muted)}.course-copy .button{margin-top:24px}.pill{display:inline-block;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:900}.paid{color:#28614f;background:#e1f2e8}.empty{padding:35px;max-width:740px}.empty h2,.empty h3{font-size:29px}.empty p{margin-top:19px;color:var(--muted);max-width:600px}.empty .button{margin-top:25px}.quiet{display:flex;width:fit-content;align-items:center;min-height:44px;font-size:13px;color:var(--purple);font-weight:800;margin-top:12px}.checkout-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:35px;align-items:start}.summary{padding:30px}.summary>p{font-size:14px;margin-top:24px}.total{display:flex;justify-content:space-between;gap:15px;align-items:center;border-top:1px solid #e8dbe5;margin-top:25px;padding-top:24px}.total strong{font-size:13px}.total b{font-size:30px;font-weight:900;white-space:nowrap}.terms{list-style:none;background:#f4eaf8;border-radius:14px;padding:18px 20px;margin:24px 0;font-size:13px;line-height:1.7}.terms li{margin-top:8px;padding-left:20px;position:relative}.terms li:before{content:'✓';position:absolute;left:0;color:#287b76;font-weight:900}.terms li:first-child{margin-top:0}footer{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid #e5d3e6;padding-block:25px 30px;color:var(--muted);font-size:11px}footer a{font-weight:800;color:var(--purple);min-height:44px;display:flex;align-items:center}.skip{position:fixed;left:20px;top:-100px;background:#fff;padding:12px;z-index:10}.skip:focus{top:10px}
@media(max-width:900px){.auth-grid{gap:35px}.auth-card{padding:28px}.checkout-grid{gap:24px}.summary{padding:24px}.total b{font-size:25px}.courses{grid-template-columns:1fr;max-width:650px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{min-height:78px;gap:12px}.brand{font-size:16px;gap:10px}.brand img{width:112px}.brand span{padding-left:10px}nav{gap:16px}.nav-link{font-size:11px}main{padding-block:27px 45px}.auth-grid,.checkout-grid{grid-template-columns:1fr;gap:26px;padding-top:5px}.auth-intro .scene{display:none}.auth-intro h1{font-size:35px;margin-block:14px 16px}.auth-intro>p:not(.eyebrow){font-size:15px}.auth-card{padding:25px 22px;border-radius:22px}.auth-card h2{font-size:25px}.page-heading{margin:9px 0 28px}.page-heading h1{font-size:35px}.page-heading>p:last-child{font-size:15px}.eyebrow{font-size:10px}.checkout-grid .summary{grid-row:1}.summary{padding:25px 22px}.summary h2{font-size:23px}.course-copy{padding:24px 22px}.course-copy h2,.course-copy h3{font-size:26px}.course-copy p:not(.eyebrow){font-size:14px}.total b{font-size:27px}.section-title h2{font-size:24px}.section-title>span{font-size:11px}.empty{padding:26px 22px}.empty h2,.empty h3{font-size:26px}.empty p{font-size:14px}.empty .button{font-size:14px}.notice{font-size:12px;padding:15px}.terms{font-size:12px;padding:18px}.pill{font-size:10px}footer{flex-direction:column;align-items:flex-start;gap:5px;font-size:10px}.card{border-radius:22px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.brand img{width:96px}.brand{font-size:15px}.nav-link{font-size:10px}nav{gap:12px}.total b{font-size:24px}.summary{padding:23px 19px}.page-heading h1{font-size:32px}.terms{padding:15px}.button{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Home v19: visual identity shared with the landing; account/payment logic unchanged. */
:root { color:#4d0084; background:#f8f7ff; --purple:#7100bc; --muted:#605077; }
html { scroll-padding-top:112px; }
body { min-height:100dvh; background:linear-gradient(115deg,#fcfaffed,#edf7ffe8),url('/assets/aurora-background.png') center top/cover no-repeat; }
h1,h2,h3 { overflow-wrap:anywhere; }
h1 { font-size:clamp(35px,4.1vw,54px); letter-spacing:-1.5px; }
h2 { font-size:28px; letter-spacing:-.5px; }
h3 { font-size:29px; letter-spacing:-.5px; }
p { line-height:1.7; }
.wrap { width:min(1240px,calc(100% - 80px)); }
a:focus-visible,button:focus-visible,input:focus-visible { outline-color:#087e96; }
header { position:sticky; top:0; z-index:5; padding-top:14px; border:0; background:linear-gradient(#f8f7ffb0,transparent); }
.header { min-height:76px; padding:10px 30px; border:1.5px solid #fff; border-radius:42px; background:#ffffffd9; box-shadow:0 8px 30px #7053aa0b; backdrop-filter:blur(18px); }
.brand { gap:22px; font-size:23px; min-height:44px; }
.brand img { width:126px; display:block; }
.brand span { padding-left:22px; border-color:#b388da; line-height:1.3; }
nav { gap:10px; }
.nav-link { justify-content:center; min-height:43px; padding:10px 17px; border:1px solid #e0d0f3; border-radius:30px; background:#ffffffbc; color:#632598; line-height:1.3; white-space:nowrap; }
.nav-link:hover { background:#f3eaff; border-color:#b88edc; text-decoration:none; }
main { min-width:0; padding-block:42px 64px; }
.eyebrow { font-size:11px; letter-spacing:1.25px; line-height:1.6; }
.page-heading { margin:4px 0 36px; padding:30px 34px; border:1px solid #fff; border-radius:28px; background:linear-gradient(115deg,#ffffffd9,#e6f7ff9c); }
.page-heading h1 { margin-block:12px 17px; }
.page-heading > p:last-child { max-width:720px; }
.card { min-width:0; background:#fffffff0; border:1.5px solid #e5d9f3; border-radius:28px; box-shadow:0 14px 38px #6547970c; }
.button { min-height:54px; max-width:100%; padding:14px 24px; border:1px solid #ffffffb3; background:linear-gradient(180deg,#9305da,#6900b1); font-size:16px; line-height:1.35; box-shadow:0 7px 18px #7100bc24; }
.button:hover:not(:disabled) { background:linear-gradient(180deg,#a01de1,#6500a9); box-shadow:0 9px 24px #7100bc30; }
.button:disabled { background:#e8e0f0; color:#6a547d; box-shadow:none; }
.scene { background:#eee5fb; }
.auth-grid { grid-template-columns:minmax(0,1.13fr) minmax(0,.87fr); gap:65px; padding-top:12px; }
.auth-intro { padding-top:22px; min-width:0; }
.auth-intro > .eyebrow { display:inline-flex; padding:7px 14px; background:#ffffffe3; border:1px solid #fff; border-radius:30px; box-shadow:0 3px 10px #8069b80b; }
.auth-intro h1 { margin:21px 0 23px; max-width:560px; }
.auth-intro h1::after { content:""; display:block; width:118px; height:7px; border-radius:70% 80% 40% 40%; background:#ffcf27; margin-top:17px; }
.auth-intro > p:not(.eyebrow) { font-size:19px; color:#513d76; max-width:490px; }
.auth-intro .scene { margin-top:32px; border-radius:27px; border:5px solid #fff; box-shadow:0 0 0 1px #d6d7f3,0 12px 32px #6942ac16,12px 10px 0 -5px #88e8f34d; }
.auth-card { position:relative; padding:34px; border-color:#fff; box-shadow:0 16px 50px #7251af16,0 0 0 1px #e0d6ef; }
.auth-card::before { content:""; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg,#9c49dc,#7754e6,#15cadf); }
.auth-card h2 { margin-bottom:23px; font-size:29px; }
.auth-card label:not(.check) { margin:19px 0 8px; color:#4f2b77; }
.auth-card input:not([type=checkbox]):not([type=hidden]) { min-width:0; min-height:52px; border-color:#d5c4e8; border-radius:13px; padding:13px 15px; background:#fefcff; color:#421370; box-shadow:inset 0 1px 2px #61448904; }
.auth-card input:not([type=checkbox]):focus { border-color:#8b53c4; background:#fff; }
.auth-card .button { margin-top:25px; }
.hint { line-height:1.75; margin-top:15px; }
.hint a,.auth-switch a { color:#6a16a8; }
.check { font-size:13px; margin-top:22px; color:#59456f; cursor:pointer; }
.check input { width:19px; height:19px; margin:2px 0 0; }
.auth-switch { font-size:14px; margin-top:20px; padding-top:17px; border-top:1px solid #e9e0f3; }
.auth-switch a { display:inline-flex; align-items:center; min-height:44px; }
.notice { border:1px solid #e4d7f3; border-radius:15px; background:#f4edfc; line-height:1.7; color:#5c3c7a; margin-top:21px; }
.notice.error { background:#fff0f0; color:#8b2840; border-color:#efc9d1; }
.section-title { margin-bottom:23px; }
.section-title > span { font-size:12px; color:#684589; background:#ede3fa; padding:8px 13px; border-radius:20px; white-space:nowrap; }
.courses { max-width:none; gap:27px; }
.course-copy { padding:30px; }
.course-copy h2,.course-copy h3 { font-size:32px; line-height:1.1; }
.course-copy .button { margin-top:25px; }
.courses > .course-card:only-child { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); grid-column:1/-1; align-items:center; }
.pill { display:inline-flex; align-items:center; border-radius:20px; padding:8px 12px; line-height:1.5; }
.paid { color:#23624f; background:#e5f5ef; border:1px solid #c8e8dc; }
.empty { grid-column:1/-1; padding:36px; max-width:780px; border-color:#e3d7f2; background:linear-gradient(130deg,#fff,#f9f4ff); }
.empty h2,.empty h3 { font-size:30px; max-width:620px; }
.quiet { color:#6a16a8; margin-top:13px; }
.checkout-grid { gap:32px; }
.summary { padding:32px; border-color:#d9c6ee; }
.summary > p { color:var(--muted); margin-top:23px; }
.total { gap:14px; border-color:#e5d9ef; margin-top:26px; }
.total b { font-size:32px; letter-spacing:-.6px; }
.terms { background:#f1eafb; border:1px solid #e9ddf5; border-radius:16px; color:#604878; }
.terms li { padding-left:22px; }
.terms li::before { color:#087e96; }
footer { border-color:#ded4ec; padding-block:23px 28px; font-size:12px; }
footer a { color:#6a16a8; }
.skip { border-radius:12px; padding:13px 17px; }
.skip:focus { top:12px; }
@media(max-width:1050px) {
  .wrap { width:calc(100% - 56px); }
  .auth-grid { gap:35px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .auth-intro h1 { font-size:44px; }
  .auth-card { padding:29px; }
  .checkout-grid { gap:24px; }
  .summary,.course-copy { padding:25px; }
  .course-copy h2,.course-copy h3 { font-size:28px; }
  .total b { font-size:28px; }
}
@media(max-width:850px) {
  .header { padding-inline:24px; min-height:73px; }
  .brand { font-size:20px; gap:17px; }
  .brand img { width:115px; }
  .brand span { padding-left:17px; }
  .auth-grid { gap:26px; }
  .auth-card { padding:25px; }
  .auth-intro { padding-top:14px; }
  .auth-intro h1 { font-size:39px; }
  .auth-intro > p:not(.eyebrow) { font-size:17px; }
  .auth-intro .scene { border-width:4px; border-radius:23px; }
  .page-heading { padding:27px; }
  .checkout-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; }
  .summary { padding:24px; }
  .total b { font-size:25px; }
  .terms { padding:16px; font-size:12px; }
  .courses > .course-card:only-child { grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); }
  .course-copy h2,.course-copy h3 { font-size:27px; }
}
@media(max-width:700px) {
  html { scroll-padding-top:98px; }
  body { background:linear-gradient(150deg,#fcfaffef,#ecf7ffed),url('/assets/aurora-background.png') center top/auto 1100px no-repeat; }
  .wrap { width:calc(100% - 40px); }
  header { padding-top:10px; }
  .header { width:calc(100% - 28px); padding:9px 18px; min-height:66px; gap:12px; border-radius:34px; }
  .brand { font-size:18px; gap:12px; }
  .brand img { width:105px; }
  .brand span { padding-left:12px; }
  nav { gap:6px; }
  .nav-link { min-height:42px; padding:8px 11px; font-size:11px; }
  main { padding-block:26px 43px; }
  .auth-grid,.checkout-grid { grid-template-columns:1fr; gap:25px; padding-top:0; }
  .auth-intro { padding-top:0; }
  .auth-intro > .eyebrow { font-size:9px; padding:6px 12px; }
  .auth-intro h1 { font-size:36px; margin-block:17px 16px; letter-spacing:-.9px; }
  .auth-intro h1::after { width:89px; height:5px; margin-top:13px; }
  .auth-intro > p:not(.eyebrow) { font-size:15px; max-width:100%; }
  .auth-card { padding:28px 23px 24px; border-radius:24px; }
  .auth-card h2 { font-size:26px; margin-bottom:21px; }
  .auth-card label:not(.check) { font-size:13px; margin-top:18px; }
  .auth-card .button { min-height:53px; }
  .auth-switch { font-size:13px; margin-top:18px; padding-top:13px; }
  .check { font-size:12px; }
  .page-heading { margin:0 0 28px; padding:24px 22px; border-radius:24px; }
  .page-heading h1 { font-size:34px; letter-spacing:-.9px; }
  .page-heading > p:last-child { font-size:15px; }
  .eyebrow { font-size:10px; letter-spacing:.9px; }
  .summary { padding:26px 23px; }
  .summary h2 { font-size:25px; }
  .total b { font-size:28px; }
  .course-copy { padding:26px 23px; }
  .course-copy h2,.course-copy h3 { font-size:28px; }
  .courses > .course-card:only-child { display:block; }
  .courses .course-copy .button { width:100%; }
  .section-title h2 { font-size:25px; }
  .section-title > span { font-size:11px; padding:7px 11px; }
  .empty { padding:28px 23px; }
  .empty h2,.empty h3 { font-size:27px; }
  .notice { padding:16px; }
  .terms { padding:18px; }
  .button { font-size:15px; padding-inline:21px; }
  footer { font-size:11px; padding-block:22px; }
}
@media(max-width:380px) {
  .wrap { width:calc(100% - 32px); }
  .header { padding-inline:13px; gap:9px; }
  .brand { font-size:15px; gap:9px; }
  .brand img { width:91px; }
  .brand span { padding-left:9px; }
  .nav-link { font-size:10px; padding-inline:9px; }
  .auth-card { padding-inline:21px; }
  .auth-intro h1 { font-size:33px; }
  .auth-card h2 { font-size:25px; }
  .page-heading h1 { font-size:31px; }
  .total b { font-size:24px; }
  .summary { padding:25px 20px; }
  .terms { padding:16px; }
  .button { font-size:14px; padding-inline:18px; }
  .course-copy h2,.course-copy h3 { font-size:26px; }
}
@media(prefers-reduced-motion:no-preference) {
  .button,.nav-link { transition:background .15s,box-shadow .15s; }
}

/* Login v20 follows the supplied classroom composition; other portal views stay v19. */
.login-page { background:linear-gradient(140deg,#faf9fd,#e8e1ee 65%,#d9cfeb); }
.login-page > header,.login-page > footer { display:none; }
.login-page main.wrap { width:100%; max-width:none; margin:0; padding:0; display:flex; }
.login-shell { display:grid; grid-template-columns:minmax(0,64.1fr) minmax(0,35.9fr); align-items:center; width:100%; min-height:100vh; min-height:100dvh; max-width:2000px; margin-inline:auto; }
.login-illustration { position:relative; min-width:0; margin:0; }
.login-illustration svg { display:block; width:100%; height:auto; aspect-ratio:1070/941; overflow:hidden; }
.login-art-home { position:absolute; left:40%; top:3.8%; width:24%; height:12%; border-radius:20px; }
.login-mobile-welcome,.login-mobile-art { display:none; }
.login-page .login-card { padding:clamp(30px,3.35vw,56px) clamp(24px,2.51vw,42px) clamp(18px,1.2vw,20px); margin:30px clamp(18px,1.8vw,30px) 30px 0; border:0; border-radius:40px; background:#fffffffa; box-shadow:0 23px 60px #583a7426; }
.login-page .login-card::before { height:10px; background:linear-gradient(90deg,#a800ec,#714cff 48%,#00d6de); }
.login-card h1 { font-size:clamp(34px,3.47vw,58px); line-height:1.1; letter-spacing:-1.3px; margin:0 0 clamp(20px,1.8vw,30px); }
.login-card h1::after { content:""; display:block; width:122px; height:8px; margin-top:8px; border-radius:90% 100% 35% 50%; background:#ffd000; transform:rotate(-.6deg); }
.login-page .login-form { margin:0; }
.login-page .login-card label:not(.check) { margin:clamp(18px,1.43vw,24px) 0 8px; font-size:clamp(14px,1.31vw,22px); line-height:1.2; color:#4d0084; font-weight:900; }
.login-page .login-card label:first-of-type { margin-top:0; }
.login-field { position:relative; }
.login-page .login-card .login-field input { width:100%; min-height:clamp(52px,4.07vw,68px); padding:13px 54px 13px 54px; border:1.5px solid #cbbbe6; border-radius:18px; background:#fff; font-size:clamp(16px,1.1vw,19px); color:#43106c; }
.login-page .login-card .login-field input:focus { border-color:#9857d2; box-shadow:0 0 0 3px #a36de91c; }
.login-field-icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); width:27px; height:27px; fill:none; stroke:#8b70b4; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; }
.password-toggle { position:absolute; right:9px; top:50%; transform:translateY(-50%); width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:0; border-radius:12px; background:transparent; color:#8566af; cursor:pointer; }
.password-toggle:hover { background:#f4edfc; }
.password-toggle svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.password-toggle .eye-closed,.password-toggle[aria-pressed=true] .eye-open { display:none; }
.password-toggle[aria-pressed=true] .eye-closed { display:block; }
.login-recovery { display:flex; justify-content:flex-end; margin-top:12px; }
.login-recovery button { min-height:44px; max-width:100%; padding:6px 0; border:0; border-radius:4px; background:none; color:#8300cb; font-size:clamp(14px,1.18vw,20px); font-weight:900; text-decoration:underline; text-underline-offset:4px; line-height:1.4; cursor:pointer; }
.login-page .login-card .login-submit { margin-top:clamp(20px,2.1vw,35px); min-height:clamp(56px,4.55vw,78px); font-size:clamp(21px,1.8vw,30px); border:0; background:linear-gradient(140deg,#9500e5,#6900bd); box-shadow:0 10px 24px #7909bb20; }
.login-register { margin-top:clamp(24px,2.4vw,40px); padding-top:12px; border-top:1px solid #ddd2ed; text-align:center; }
.login-register a { display:inline-flex; align-items:center; min-height:44px; font-size:clamp(18px,1.5vw,25px); font-weight:900; color:#7b00c5; text-decoration:underline; text-underline-offset:4px; }
.login-back { display:flex; align-items:center; justify-content:center; gap:13px; min-height:44px; margin-top:clamp(20px,2.7vw,45px); color:#715395; font-size:clamp(14px,1.08vw,18px); }
.login-back > span { font-size:24px; }
.login-back:hover { color:#6a0aaa; text-decoration:underline; text-underline-offset:4px; }
.login-card .notice.error { margin:0 0 20px; }
.login-help { width:min(460px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; padding:30px; border:1px solid #e0cfef; border-radius:26px; background:#fff; color:#4d0084; box-shadow:0 20px 70px #38175533; }
.login-help::backdrop { background:#34164d75; backdrop-filter:blur(4px); }
.login-help h2 { font-size:28px; }
.login-help p { font-size:15px; color:#615077; margin-top:18px; }
.login-help .button { margin-top:24px; }
@media(max-width:980px) {
  .login-page main.wrap { display:block; }
  .login-shell { display:flex; flex-direction:column; gap:25px; padding:25px; }
  .login-illustration { display:none; }
  .login-mobile-welcome { display:block; text-align:center; color:#57337b; }
  .login-mobile-welcome a { display:inline-flex; min-height:44px; }
  .login-mobile-welcome img { display:block; width:176px; height:auto; }
  .login-mobile-welcome .login-greeting { margin-top:10px; color:#4d0084; font-size:29px; line-height:1.2; font-weight:900; letter-spacing:-.6px; }
  .login-mobile-welcome > p:last-child { margin-top:8px; font-size:17px; }
  .login-page .login-card { width:min(540px,100%); margin:0; padding:33px 30px 24px; border-radius:32px; }
  .login-card h1 { font-size:37px; margin-bottom:26px; }
  .login-card h1::after { width:104px; height:6px; margin-top:10px; }
  .login-page .login-card label:not(.check) { font-size:17px; margin-top:22px; }
  .login-page .login-card label:first-of-type { margin-top:0; }
  .login-page .login-card .login-field input { min-height:56px; font-size:16px; }
  .login-page .login-card .login-submit { min-height:57px; margin-top:24px; font-size:23px; }
  .login-register { margin-top:27px; }
  .login-register a { font-size:21px; }
  .login-back { margin-top:24px; font-size:15px; }
  .login-mobile-art { display:block; width:min(650px,100%); margin:0; overflow:hidden; border:1px solid #fff; border-radius:27px; }
  .login-mobile-art svg { display:block; width:100%; height:auto; aspect-ratio:1070/596; overflow:hidden; }
}
@media(max-width:420px) {
  .login-shell { gap:22px; padding:20px 16px; }
  .login-mobile-welcome img { width:147px; }
  .login-mobile-welcome .login-greeting { font-size:25px; }
  .login-mobile-welcome > p:last-child { font-size:15px; }
  .login-page .login-card { padding:30px 23px 23px; border-radius:29px; }
  .login-card h1 { font-size:33px; }
  .login-page .login-card label:not(.check) { font-size:15px; }
  .login-page .login-card .login-field input { min-height:54px; border-radius:14px; padding-left:48px; }
  .login-field-icon { left:16px; width:24px; height:24px; }
  .login-page .login-card .login-submit { min-height:55px; font-size:21px; }
  .login-recovery button { font-size:14px; }
  .login-register a { font-size:20px; }
  .login-back { font-size:14px; }
  .login-help { padding:25px; }
}

/* Student home v21: real account content in the classroom dashboard structure. */
.dashboard-page { background:linear-gradient(#ffffff12,#f4f1ff55),url('/assets/dashboard/classroom-v1.webp') center top/100% auto no-repeat #f5f3ff; }
.dashboard-page > header,.dashboard-page > footer { display:none; }
.dashboard-page main.wrap { width:100%; max-width:none; margin:0; padding:0; }
.student-shell { width:min(1640px,calc(100% - 32px)); margin-inline:auto; }
.student-icon { width:26px; height:26px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.dashboard-page .student-topbar { position:sticky; top:0; z-index:6; display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:93px; margin-left:202px; padding:14px 0; border:0; background:linear-gradient(#ffffffbd,#ffffff70); backdrop-filter:blur(12px); }
.student-branding { display:flex; align-items:center; gap:23px; min-width:0; }
.student-logo { display:flex; align-items:center; min-height:44px; }
.student-logo img { display:block; width:126px; height:auto; }
.student-home-pill { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:7px 20px; border-left:1px solid #c0a1e1; border-radius:30px; background:#eee0fdcc; font-size:21px; line-height:1.3; font-weight:900; white-space:nowrap; }
.student-account { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:10px 22px; border:2px solid #7900c7; border-radius:40px; background:#ffffffd9; color:#4d0084; box-shadow:0 7px 22px #8c59c215; font-size:clamp(14px,1.2vw,20px); font-weight:900; line-height:1.3; cursor:pointer; }
.student-account:hover { background:#f4eaff; }
.student-account[hidden] { display:none; }
.student-account-fallback { position:relative; border:0; }
.student-account-fallback > summary { list-style:none; }
.student-account-fallback > summary::-webkit-details-marker { display:none; }
.student-account-fallback > div { position:absolute; right:0; top:calc(100% + 10px); width:min(300px,80vw); padding:22px; border:1px solid #dcc9ed; border-radius:22px; background:#fff; box-shadow:0 9px 30px #62448222; }
.student-account-fallback p { font-size:13px; overflow-wrap:anywhere; margin-bottom:13px; }
.account-label-short { display:none; }
.student-layout { display:grid; grid-template-columns:178px minmax(0,1fr); gap:24px; align-items:start; padding-top:16px; }
.student-sidebar { position:sticky; top:109px; padding:22px 8px; min-height:calc(100dvh - 130px); border:1px solid #fff; border-radius:29px; background:#ffffffba; box-shadow:0 8px 30px #7655a90a; backdrop-filter:blur(16px); }
.student-sidebar nav { display:flex; flex-direction:column; align-items:stretch; gap:15px; }
.student-sidebar a { display:flex; align-items:center; gap:12px; padding:13px 15px; min-height:58px; border-radius:22px; color:#5f1494; font-size:16px; font-weight:800; line-height:1.3; }
.student-sidebar a .student-icon { width:28px; height:28px; }
.student-sidebar a:hover { background:#f2e7fc; }
.student-sidebar a.is-active { background:linear-gradient(110deg,#e9cafa,#dcbef7); box-shadow:0 4px 12px #c197e526; }
.student-main { min-width:0; }
.student-grid { display:grid; grid-template-columns:minmax(0,1fr) 350px; grid-template-rows:auto auto auto auto; gap:24px; }
.student-welcome { grid-column:1; grid-row:1; min-width:0; padding:0 10px 3px; scroll-margin-top:110px; }
.student-welcome h1 { position:relative; width:fit-content; max-width:100%; font-size:clamp(35px,3.15vw,53px); letter-spacing:-1.4px; }
.student-welcome h1::after { content:""; display:block; height:7px; width:110px; margin-top:7px; border-radius:90% 100% 35% 50%; background:#ffd000; transform:rotate(-4deg); }
.student-welcome > p { font-size:clamp(19px,1.7vw,28px); color:#54217d; line-height:1.4; margin:12px 0 0 36px; }
.student-hero { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); align-items:end; min-height:335px; grid-column:1; grid-row:2; overflow:hidden; border:4px solid #fff; border-radius:34px; background:linear-gradient(110deg,#f8efff,#fff 54%,#f3ebff); box-shadow:0 10px 35px #7e55bd18; }
.student-hero-ribbon { position:absolute; top:0; left:0; z-index:2; max-width:95%; padding:13px 28px; border-radius:0 0 30px 0; background:linear-gradient(110deg,#a122ee,#7a00c0); color:#fff; font-size:clamp(21px,1.7vw,29px); line-height:1.15; font-weight:900; box-shadow:0 5px 16px #7827ba24; }
.student-hero-copy { position:relative; z-index:1; padding:75px 16px 21px 22px; min-width:0; }
.student-hero-badge { display:inline-flex; align-items:center; gap:9px; max-width:100%; padding:6px 13px; border-radius:22px; background:#ecdafa; color:#5c148e; font-size:15px; line-height:1.35; font-weight:900; }
.student-hero-badge .student-icon { width:24px; height:24px; color:#e99a00; }
.student-hero h2 { margin-top:13px; font-size:clamp(25px,2vw,34px); line-height:1.1; letter-spacing:-.6px; }
.student-hero-description { font-size:14px; line-height:1.55; color:#634a77; margin-top:12px; }
.student-hero-state { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; line-height:1.4; color:#705582; margin-top:16px; }
.student-hero-state .student-icon { width:18px; height:18px; }
.dashboard-page .student-hero-action { margin-top:18px; min-height:54px; padding:12px 23px; font-size:17px; border:2px solid #fff; box-shadow:0 0 0 2px #d9c5f3,0 7px 17px #7e35ad25; }
.student-hero-action .student-icon { width:21px; height:21px; }
.student-hero-art { align-self:stretch; display:flex; align-items:flex-end; min-width:0; margin:0; background:linear-gradient(#f9efff00,#f2e5fb80); }
.student-hero-art svg { display:block; width:100%; height:auto; aspect-ratio:546/333; overflow:hidden; }
.student-tutor { position:relative; grid-column:2; grid-row:1 / span 2; padding:28px 23px 22px; border:1.5px solid #fff; border-radius:34px; background:#ffffffed; box-shadow:0 12px 34px #7862b71d; overflow:hidden; scroll-margin-top:110px; }
.student-tutor::before { content:""; position:absolute; top:0; left:0; right:0; height:8px; background:linear-gradient(90deg,#9100e5,#3987ff,#00d3df); }
.student-tutor > h2 { display:flex; justify-content:center; align-items:center; gap:10px; font-size:33px; line-height:1.15; letter-spacing:-.7px; text-align:center; }
.student-tutor > h2 > span { color:#ffc400; font-size:33px; }
.student-pixel { display:block; width:190px; max-width:80%; height:auto; margin:17px auto 12px; object-fit:contain; }
.student-tutor-bubble { position:relative; padding:20px; border-radius:27px; background:linear-gradient(125deg,#edddff,#e3cff8); }
.student-tutor-bubble::before { content:""; position:absolute; top:-13px; left:38%; border-bottom:14px solid #edddff; border-inline:13px solid transparent; }
.student-tutor-bubble h3 { font-size:21px; line-height:1.2; letter-spacing:-.3px; }
.student-tutor-bubble p { font-size:15px; line-height:1.5; color:#5b297b; margin-top:10px; }
.student-tutor-bubble > span { display:inline-block; margin-top:13px; font-size:11px; font-weight:900; color:#69438a; background:#ffffff85; border:1px solid #ffffffc9; border-radius:20px; padding:5px 10px; }
.student-courses-section,.student-route-section { grid-column:1/-1; min-width:0; scroll-margin-top:110px; }
.student-section-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:19px; }
.student-section-heading h2 { position:relative; font-size:32px; line-height:1.15; letter-spacing:-.7px; }
.student-section-heading h2::after { content:""; display:block; width:86px; height:6px; background:#ffcf18; border-radius:80% 90% 30% 50%; margin-top:8px; transform:rotate(-2deg); }
.student-course-count { padding:7px 12px; border:1px solid #fff; border-radius:20px; color:#6f4390; background:#eadcf9; font-size:12px; font-weight:900; white-space:nowrap; }
.dashboard-page .student-course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; max-width:none; }
.dashboard-page .student-course-card { display:grid; grid-template-columns:160px minmax(0,1fr) 45px; align-items:center; gap:17px; min-width:0; min-height:157px; overflow:hidden; border:1.5px solid #fff; border-top:4px solid #ffc800; border-radius:25px; background:#ffffffed; box-shadow:0 7px 25px #7355aa13; color:#4d0084; }
a.student-course-card:hover { border-color:#c894e9; background:#fff; }
.student-course-card > img,.student-course-thumb { display:block; width:160px; height:100%; min-height:157px; max-height:220px; object-fit:cover; overflow:hidden; }
.student-course-body { min-width:0; padding-block:15px; }
.student-course-pillar { display:flex; align-items:center; gap:6px; color:#966f1b; font-size:10px; font-weight:900; line-height:1.3; }
.student-course-pillar .student-icon { width:18px; height:18px; }
.student-course-body h3 { font-size:24px; line-height:1.12; letter-spacing:-.4px; margin-top:7px; }
.student-course-body > p:not(.student-course-pillar) { color:#69477f; font-size:13px; line-height:1.45; margin-top:9px; }
.student-receipt { display:inline-flex; font-size:9px; font-weight:900; padding:5px 8px; border-radius:16px; margin-top:10px; line-height:1.4; }
.student-course-arrow { display:flex; align-items:center; justify-content:center; width:37px; height:37px; border-radius:50%; background:#edddfc; color:#7416ad; }
.student-course-arrow .student-icon { width:24px; height:24px; }
.student-course-placeholder { display:flex; align-items:center; justify-content:center; min-height:160px; height:100%; background:#eadcf8; }
.student-course-placeholder .student-icon { width:54px; height:54px; }
.student-invite { display:flex; align-items:center; gap:18px; padding:22px; border:1.5px solid #fff; border-top:4px solid #00c7df; border-radius:25px; background:linear-gradient(130deg,#fff,#f4eeff); box-shadow:0 7px 25px #7355aa0c; min-width:0; }
.student-invite > .student-icon { width:43px; height:43px; color:#9b4be3; }
.student-invite h3 { font-size:23px; line-height:1.15; }
.student-invite p { font-size:14px; line-height:1.55; color:#705780; margin-top:10px; }
.student-invite a { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:13px; font-weight:900; color:#7513b7; }
.student-invite a .student-icon { width:18px; height:18px; }
.student-empty { grid-column:1/-1; padding:28px; border:1px solid #fff; border-radius:26px; background:#ffffffdb; }
.student-empty h3 { font-size:27px; }
.student-empty p { color:#6a507d; font-size:15px; margin-top:15px; }
.student-empty .button { margin-top:22px; }
.student-payment-link { display:flex; align-items:center; width:fit-content; min-height:44px; color:#7521ab; font-size:13px; font-weight:800; margin-top:10px; }
.student-route-legend { display:inline-flex; align-items:center; gap:9px; padding:8px 14px; border:1px solid #e4d9f2; border-radius:25px; background:#ffffffb3; font-size:12px; color:#7d6392; white-space:nowrap; }
.student-route-legend i { width:14px; height:14px; border-radius:50%; border:2px solid #a89bb9; }
.student-route-description { font-size:14px; color:#6e567f; margin:-4px 0 24px; line-height:1.7; max-width:850px; }
.student-route-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px 18px; }
.student-route-node { position:relative; min-width:0; padding:22px 17px 15px; border:2px solid #d1c8df; border-radius:25px; background:#ffffffdf; box-shadow:0 4px 15px #85709f0b; }
.student-route-lock { position:absolute; top:-16px; right:17px; display:flex; align-items:center; justify-content:center; width:31px; height:31px; border-radius:50%; border:2px solid #bfb2d1; background:#fff; color:#9682aa; }
.student-route-lock .student-icon { width:17px; height:17px; }
.student-route-node > p { font-size:10px; text-transform:uppercase; letter-spacing:.65px; color:#8a6e9b; font-weight:900; }
.student-route-node h3 { font-size:16px; line-height:1.25; margin-top:6px; letter-spacing:0; }
.student-route-state { display:block; color:#897298; font-size:10px; margin-top:10px; }
.student-route-empty { display:flex; align-items:center; gap:21px; min-height:145px; padding:25px; border:1px dashed #c9b6df; border-radius:26px; background:#ffffffa6; color:#705780; font-size:15px; }
.student-route-empty > .student-icon { width:48px; height:48px; }
.student-route-empty h3 { font-size:24px; color:#684186; }
.student-route-empty p { margin-top:10px; font-size:14px; }
.dashboard-page .student-footer { position:static; display:flex; margin-top:29px; padding-block:20px; border-top:1px solid #ded2ec; background:none; font-size:11px; }
.student-account-dialog { position:fixed; inset:0; margin:auto; width:min(470px,calc(100% - 32px)); height:fit-content; max-height:calc(100dvh - 32px); overflow:auto; padding:31px; border:1px solid #e1d1f0; border-radius:29px; background:#fff; color:#4d0084; box-shadow:0 20px 70px #4b276b35; }
.student-account-dialog::backdrop { background:#3c205d70; backdrop-filter:blur(5px); }
.student-dialog-close { position:absolute; top:12px; right:12px; display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:0; border-radius:50%; background:#f4ecfc; color:#744194; font-size:26px; cursor:pointer; }
.student-account-dialog h2 { font-size:28px; margin-top:15px; padding-right:15px; }
.student-account-dialog dl { margin-top:25px; }
.student-account-dialog dt { color:#836b97; font-size:11px; font-weight:800; margin-top:20px; }
.student-account-dialog dd { margin:7px 0 0; color:#593575; font-size:16px; font-weight:800; overflow-wrap:anywhere; }
.student-account-note { font-size:13px; line-height:1.65; color:#7a618d; margin-top:25px; }
.student-account-dialog .button { margin-top:24px; }
@media(max-width:1400px) {
  .student-grid { grid-template-columns:minmax(0,1fr) 300px; gap:21px; }
  .student-tutor { padding:27px 18px 20px; }
  .student-tutor > h2 { font-size:29px; }
  .student-pixel { width:165px; }
  .student-tutor-bubble { padding:18px; }
  .student-tutor-bubble h3 { font-size:20px; }
  .student-tutor-bubble p { font-size:14px; }
  .student-hero-copy { padding-left:19px; padding-top:73px; }
  .student-hero h2 { font-size:28px; }
  .student-hero-ribbon { font-size:24px; padding:13px 23px; }
  .student-hero-description { font-size:13px; }
  .dashboard-page .student-hero-action { font-size:15px; padding-inline:18px; }
  .dashboard-page .student-course-card { grid-template-columns:120px minmax(0,1fr) 35px; gap:12px; }
  .student-course-card > img,.student-course-thumb { width:120px; }
  .student-course-body h3 { font-size:21px; }
  .student-course-arrow { width:29px; height:32px; }
}
@media(max-width:1150px) {
  .student-shell { width:calc(100% - 28px); }
  .student-layout { grid-template-columns:146px minmax(0,1fr); gap:20px; }
  .dashboard-page .student-topbar { margin-left:166px; min-height:83px; padding-block:12px; }
  .student-sidebar { top:98px; padding:17px 6px; min-height:calc(100dvh - 120px); }
  .student-sidebar a { gap:9px; padding:13px 10px; font-size:13px; }
  .student-sidebar a .student-icon { width:24px; height:24px; }
  .student-logo img { width:113px; }
  .student-branding { gap:14px; }
  .student-home-pill { font-size:17px; gap:7px; padding:7px 13px; }
  .student-account { min-height:46px; font-size:13px; gap:7px; padding:9px 14px; }
  .student-account > .student-icon { width:23px; height:23px; }
  .student-grid { grid-template-columns:minmax(0,1fr) 265px; gap:20px; }
  .student-welcome { padding-left:2px; }
  .student-welcome h1 { font-size:37px; }
  .student-welcome > p { margin-left:18px; font-size:19px; }
  .student-hero { min-height:340px; }
  .student-hero h2 { font-size:25px; }
  .student-hero-badge { font-size:12px; gap:5px; padding:6px 9px; }
  .student-hero-badge .student-icon { width:21px; height:21px; }
  .student-hero-ribbon { font-size:21px; padding:13px 18px; }
  .student-hero-state { font-size:11px; }
  .student-tutor > h2 { font-size:25px; }
  .student-tutor-bubble { padding:17px; }
  .student-tutor-bubble h3 { font-size:18px; }
  .student-pixel { width:145px; }
  .student-section-heading h2 { font-size:29px; }
  .dashboard-page .student-course-card { grid-template-columns:100px minmax(0,1fr) 27px; gap:10px; }
  .student-course-card > img,.student-course-thumb { width:100px; }
  .student-course-body h3 { font-size:19px; }
  .student-course-body > p:not(.student-course-pillar) { font-size:12px; }
  .student-course-pillar { font-size:9px; }
  .student-course-arrow { width:24px; height:30px; }
  .student-invite { padding:19px; gap:13px; }
  .student-invite > .student-icon { width:31px; height:31px; }
  .student-invite h3 { font-size:21px; }
  .student-invite p { font-size:13px; }
}
@media(max-width:1050px) {
  .student-layout { display:block; padding-top:4px; }
  .dashboard-page .student-topbar { margin-left:0; }
  .student-sidebar { position:sticky; top:83px; z-index:5; min-height:0; border-radius:25px; padding:6px; margin-bottom:23px; background:#fffffff0; }
  .student-sidebar nav { flex-direction:row; justify-content:space-between; gap:5px; }
  .student-sidebar a { flex:1; justify-content:center; gap:10px; padding:10px 12px; min-height:47px; font-size:14px; border-radius:20px; }
  .student-main { padding-inline:4px; }
  .student-grid { grid-template-columns:minmax(0,1fr) 280px; }
  .student-welcome,.student-tutor,.student-courses-section,.student-route-section { scroll-margin-top:165px; }
  .student-route-grid { gap:25px 14px; }
}
@media(max-width:900px) {
  .student-grid { grid-template-columns:1fr; gap:23px; }
  .student-welcome { grid-row:1; }
  .student-hero { grid-row:2; min-height:310px; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
  .student-hero-ribbon { font-size:25px; }
  .student-hero-copy { padding:75px 18px 23px 24px; }
  .student-hero h2 { font-size:31px; }
  .student-hero-description { font-size:15px; }
  .student-hero-badge { font-size:14px; }
  .student-hero-state { font-size:12px; }
  .student-tutor { grid-column:1; grid-row:5; display:grid; grid-template-columns:160px minmax(0,1fr); gap:15px 24px; align-items:center; padding:26px; }
  .student-tutor > h2 { grid-column:1/-1; justify-content:flex-start; font-size:30px; }
  .student-pixel { width:160px; max-width:100%; margin:0; }
  .student-tutor-bubble { padding:20px; }
  .student-tutor-bubble::before { display:none; }
  .student-tutor-bubble h3 { font-size:21px; }
  .student-tutor-bubble p { font-size:15px; }
  .student-courses-section { grid-row:3; }
  .student-route-section { grid-row:4; }
  .student-route-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .student-route-node { padding:22px 13px 15px; }
  .student-route-node h3 { font-size:14px; }
  .dashboard-page .student-course-card { grid-template-columns:110px minmax(0,1fr) 28px; }
  .student-course-card > img,.student-course-thumb { width:110px; }
}
@media(max-width:650px) {
  .dashboard-page { background:linear-gradient(#ffffff50,#f5f1ffad),url('/assets/dashboard/classroom-v1.webp') center top/auto 1000px no-repeat #f5f3ff; }
  .student-shell { width:calc(100% - 24px); }
  .dashboard-page .student-topbar { min-height:74px; gap:10px; padding:10px 2px; background:#ffffffde; }
  .student-branding { gap:10px; }
  .student-logo img { width:94px; }
  .student-home-pill { min-height:44px; font-size:13px; padding:7px 10px; gap:6px; }
  .student-home-pill .student-icon { width:19px; height:19px; }
  .student-account { min-height:44px; padding:8px 11px; font-size:12px; gap:6px; }
  .student-account > .student-icon { width:21px; height:21px; }
  .account-label-full { display:none; }
  .account-label-short { display:inline; }
  .student-sidebar { top:74px; margin-bottom:21px; padding:4px; border-radius:19px; }
  .student-sidebar nav { gap:3px; }
  .student-sidebar a { min-height:55px; flex-direction:column; gap:5px; font-size:10px; padding:7px 4px; border-radius:15px; text-align:center; }
  .student-sidebar a .student-icon { width:23px; height:23px; }
  .student-main { padding-inline:2px; }
  .student-grid { gap:23px; }
  .student-welcome,.student-tutor,.student-courses-section,.student-route-section { scroll-margin-top:160px; }
  .student-welcome h1 { font-size:34px; letter-spacing:-.9px; }
  .student-welcome h1::after { width:92px; height:6px; }
  .student-welcome > p { font-size:18px; margin-left:10px; margin-top:12px; }
  .student-hero { display:flex; flex-direction:column; align-items:stretch; min-height:0; border-radius:29px; border-width:3px; }
  .student-hero-ribbon { position:relative; width:fit-content; max-width:100%; font-size:23px; padding:14px 20px; border-radius:0 0 25px 0; }
  .student-hero-copy { padding:18px 21px 12px; }
  .student-hero h2 { font-size:31px; }
  .student-hero-description { font-size:14px; }
  .student-hero-state { margin-top:14px; }
  .dashboard-page .student-hero-action { width:100%; justify-content:space-between; min-height:52px; font-size:16px; }
  .student-hero-art { width:100%; margin-top:6px; }
  .student-hero-art svg { mask-image:none; }
  .student-section-heading { gap:10px; align-items:flex-start; margin-bottom:19px; }
  .student-section-heading h2 { font-size:27px; letter-spacing:-.6px; }
  .student-course-count { padding:7px 10px; font-size:10px; }
  .dashboard-page .student-course-grid { grid-template-columns:1fr; gap:16px; }
  .dashboard-page .student-course-card { grid-template-columns:108px minmax(0,1fr) 28px; gap:11px; min-height:152px; border-radius:22px; }
  .student-course-card > img,.student-course-thumb { width:108px; min-height:152px; }
  .student-course-body h3 { font-size:22px; }
  .student-course-body > p:not(.student-course-pillar) { font-size:12px; }
  .student-course-pillar { font-size:9px; }
  .student-receipt { font-size:8px; padding:5px 7px; }
  .student-invite { padding:23px; }
  .student-invite h3 { font-size:23px; }
  .student-invite p { font-size:14px; }
  .student-invite a { font-size:13px; }
  .student-route-section > .student-section-heading { flex-direction:column; gap:17px; }
  .student-route-legend { font-size:11px; padding:7px 12px; }
  .student-route-description { margin-top:-3px; margin-bottom:27px; font-size:13px; }
  .student-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 12px; }
  .student-route-node { padding:22px 15px 15px; border-radius:22px; }
  .student-route-node h3 { font-size:15px; }
  .student-route-lock { right:13px; }
  .student-tutor { display:block; padding:27px 22px 23px; border-radius:29px; }
  .student-tutor > h2 { justify-content:center; font-size:30px; }
  .student-pixel { width:170px; max-width:80%; margin:19px auto 15px; }
  .student-tutor-bubble { padding:21px; }
  .student-tutor-bubble::before { display:block; }
  .student-empty { padding:26px 22px; }
  .student-empty h3 { font-size:26px; }
  .student-route-empty { padding:23px; gap:16px; }
  .student-route-empty > .student-icon { width:34px; height:34px; }
  .student-route-empty h3 { font-size:22px; }
  .dashboard-page .student-footer { flex-direction:column; align-items:flex-start; gap:3px; margin-top:22px; }
  .student-account-dialog { padding:29px 24px; }
  .student-account-dialog h2 { font-size:26px; }
}
@media(max-width:360px) {
  .student-home-pill { padding:7px 8px; font-size:11px; gap:4px; }
  .student-home-pill .student-icon { width:17px; height:17px; }
  .student-logo img { width:84px; }
  .student-branding { gap:7px; }
  .student-account { font-size:10px; padding:8px 9px; gap:4px; }
  .student-account > .student-icon { width:19px; height:19px; }
  .student-welcome h1 { font-size:31px; }
  .student-welcome > p { font-size:16px; }
  .student-hero-ribbon { font-size:21px; }
  .student-hero h2 { font-size:28px; }
  .student-hero-copy { padding-inline:18px; }
  .dashboard-page .student-course-card { grid-template-columns:86px minmax(0,1fr) 25px; gap:9px; }
  .student-course-card > img,.student-course-thumb { width:86px; }
  .student-course-body h3 { font-size:19px; }
  .student-course-body > p:not(.student-course-pillar) { font-size:11px; }
  .student-course-arrow { width:24px; }
  .student-section-heading h2 { font-size:25px; }
  .student-route-node { padding-inline:12px; }
  .student-route-node h3 { font-size:14px; }
}


/* Login v22: one edge-to-edge classroom with a floating native form. */
.login-page {
  background:linear-gradient(90deg,#f6f0fa00,#efe7f5c9 58%,#efe7f5ed 78%),url('/assets/dashboard/classroom-v1.webp') center center/cover no-repeat fixed;
}
.login-page main.wrap { min-height:100svh; }
.login-page .login-shell {
  position:relative;
  isolation:isolate;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  min-height:100svh;
  max-width:none;
  padding:clamp(24px,3vh,40px) clamp(22px,2.8vw,64px);
  background:linear-gradient(90deg,transparent 45%,#f7f1fb80 76%,#eee5f57a);
}
.login-page .login-illustration {
  position:absolute;
  inset:0 auto 0 0;
  z-index:-1;
  width:71%;
  height:100%;
  overflow:hidden;
  pointer-events:none;
}
.login-page .login-illustration svg {
  width:100%;
  height:100%;
  aspect-ratio:auto;
}
.login-page .login-illustration svg a { pointer-events:auto; }
.login-page .login-card {
  flex:none;
  width:clamp(365px,32%,565px);
  margin:0;
  padding:clamp(30px,3vw,52px) clamp(25px,2.4vw,43px) 23px;
  border:1px solid #ffffffed;
  background:linear-gradient(145deg,#ffffffef,#fdfaffed);
  border-radius:36px;
  box-shadow:0 24px 72px #4b286b24,0 2px 10px #fff9;
  backdrop-filter:blur(22px);
}
.login-page .login-card h1 { font-size:clamp(36px,3.05vw,54px); }
.login-page .login-card label:not(.check) { font-size:clamp(16px,1.18vw,21px); }
.login-page .login-card .login-field input { min-height:clamp(54px,3.9vw,66px); }
.login-page .login-card .login-submit { min-height:clamp(56px,4.2vw,72px); }
.login-page .login-back { margin-top:clamp(18px,2vw,32px); }
@media(min-width:1051px) and (max-height:760px) {
  .login-page .login-shell { padding-block:22px; }
  .login-page .login-card { padding-top:28px; padding-bottom:18px; }
  .login-page .login-card h1 { font-size:36px; margin-bottom:21px; }
  .login-page .login-card label:not(.check) { margin-top:17px; }
  .login-page .login-card label:first-of-type { margin-top:0; }
  .login-page .login-card .login-submit { margin-top:18px; }
  .login-page .login-register { margin-top:22px; }
  .login-page .login-back { margin-top:14px; }
}
@media(max-width:1050px) {
  .login-page .login-shell {
    flex-direction:column;
    justify-content:flex-start;
    gap:24px;
    padding:26px 24px 0;
    background:linear-gradient(#f7f0fce6,#f5eefcd9 55%,#f0e8f8aa);
  }
  .login-page .login-illustration { display:none; }
  .login-page .login-mobile-welcome { display:block; text-align:center; }
  .login-page .login-mobile-welcome a { display:inline-flex; min-height:44px; }
  .login-page .login-mobile-welcome img { display:block; width:176px; height:auto; }
  .login-page .login-mobile-welcome .login-greeting { margin-top:10px; color:#4d0084; font-size:29px; line-height:1.2; font-weight:900; letter-spacing:-.6px; }
  .login-page .login-mobile-welcome > p:last-child { margin-top:8px; font-size:17px; }
  .login-page .login-card { width:min(540px,100%); padding:32px 30px 24px; border-radius:32px; }
  .login-page .login-card h1 { font-size:37px; }
  .login-page .login-card label:not(.check) { font-size:17px; }
  .login-page .login-mobile-art {
    display:block;
    width:calc(100% + 48px);
    flex:none;
    margin:0 -24px;
    border:0;
    border-radius:0;
    background:none;
    mask-image:linear-gradient(transparent,#000 9%,#000 88%,transparent);
  }
  .login-page .login-mobile-art svg { display:block; width:100%; height:auto; aspect-ratio:1070/596; }
}
@media(max-width:420px) {
  .login-page .login-shell { gap:22px; padding:22px 16px 0; }
  .login-page .login-mobile-welcome img { width:147px; }
  .login-page .login-mobile-welcome .login-greeting { font-size:25px; }
  .login-page .login-mobile-welcome > p:last-child { font-size:15px; }
  .login-page .login-card { padding:28px 23px 22px; border-radius:29px; }
  .login-page .login-card h1 { font-size:33px; }
  .login-page .login-card label:not(.check) { font-size:15px; }
  .login-page .login-mobile-art { width:calc(100% + 32px); margin-inline:-16px; }
}
