/* Landing page only: keep teaching and student workspaces independent. */
body.portal-landing{margin:0;background:#f5f8fc;color:#20314b;font-family:Arial,sans-serif;line-height:1.6}.portal-landing *{box-sizing:border-box}.portal-landing>header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e1e8f0}.landing-nav{position:static;inset:auto;max-width:1240px;min-height:105px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}.portal-landing .brand img{display:block;width:205px;height:93px;object-fit:contain;max-height:none}.landing-nav>.brand{padding:0;flex-shrink:0}.landing-nav>div{display:flex;gap:26px}.portal-landing a{color:#153d70}.landing-nav a:not(.brand){font-weight:700;font-size:14px;text-decoration:none}.portal-landing a:hover{text-decoration:underline}.portal-landing a:focus-visible{outline:3px solid #b46e13;outline-offset:5px;border-radius:4px}.landing-main{max-width:1180px;margin:auto;padding:0 28px 48px}.landing-welcome{text-align:center;padding:36px 12px 28px}.portal-landing .landing-eyebrow{color:#3569a2;font-size:14px;font-weight:800;letter-spacing:1.8px;margin:0 0 14px}.landing-eyebrow span{color:#a9690c;font-size:18px;margin-right:6px}.portal-landing .landing-welcome h1{font-size:clamp(36px,5vw,56px);font-weight:750;line-height:1.12;letter-spacing:-1.8px;margin:0;color:#173c6b}.landing-welcome h1 span{color:#376ba8}.portal-landing .landing-welcome>p:not(.landing-eyebrow){color:#53647a;font-size:20px;max-width:720px;margin:16px auto}.landing-tags{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.landing-tags span{font-size:15px;color:#46617e;border:1px solid #dce6f1;border-radius:30px;padding:5px 12px;background:#fff}.landing-logins{display:grid;grid-template-columns:1.08fr 1fr;gap:22px}.landing-login{background:#fff;border:1px solid #dce5ef;border-radius:22px;padding:30px;display:flex;flex-direction:column;box-shadow:0 8px 26px #173c6b06}.landing-student{border-color:#a8c7eb;background:linear-gradient(145deg,#edf5ff 0%,#fff 70%);box-shadow:0 10px 30px #244f7c0b}.landing-card-top{display:flex;align-items:center;justify-content:space-between;gap:18px}.landing-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;font-size:29px}.student-icon{background:#dcecff}.teacher-icon{background:#f0e8ff}.landing-card-label{color:#53647a;font-size:14px;font-weight:800;letter-spacing:1.3px}.portal-landing .landing-login h2{font-size:30px;line-height:1.25;letter-spacing:-.6px;margin:18px 0 10px;color:#173c6b}.portal-landing .landing-login>p{font-size:18px;color:#53647a;margin:0;max-width:460px}.landing-checks{list-style:none;padding:0;margin:18px 0 22px;font-size:17px;color:#364b66;display:grid;gap:10px}.landing-checks li{padding-left:23px;position:relative}.landing-checks li:before{content:'✓';color:#296b61;font-weight:800;position:absolute;left:0}.portal-landing .landing-button{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:18px;background:#153d70;color:#fff;border:1px solid #153d70;padding:14px 18px;border-radius:10px;text-decoration:none;font-weight:700;min-height:52px;margin-top:auto}.portal-landing .landing-button:hover{background:#214e85;text-decoration:none}.portal-landing .landing-button-secondary{background:#fff;color:#153d70;border-color:#bacce0}.portal-landing .landing-button-secondary:hover{background:#f1f6fc}.landing-login small{display:block;font-size:15px;text-align:center;color:#5c6b7d;margin-top:12px}.landing-parent{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #dce5ef;background:#fff;border-radius:14px;padding:20px 24px;margin-top:20px}.landing-parent>div{display:flex;align-items:center;gap:16px}.parent-icon{font-size:26px;flex-shrink:0}.landing-parent strong{font-size:18px}.portal-landing .landing-parent p{margin:2px 0 0;font-size:16px;color:#53647a}.landing-parent>a{font-size:17px;font-weight:700;white-space:nowrap;padding:8px 0;min-height:40px}.landing-how{padding:42px 0 28px}.portal-landing .landing-how h2{font-size:32px;letter-spacing:-.7px;color:#203b5e;margin:0 0 28px}.landing-how ol{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;padding:0;margin:0}.landing-how li{display:flex;align-items:flex-start;gap:13px}.landing-step{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#e2edfa;color:#1c4c82;font-weight:800;display:grid;place-items:center}.portal-landing .landing-how h3{font-size:20px;font-weight:700;font-family:Arial,sans-serif;color:#203b5e;margin:3px 0 7px}.portal-landing .landing-how li p{font-size:17px;color:#53647a;margin:0}.landing-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid #dce5ef;padding:30px 0}.landing-benefits>div{display:grid;grid-template-columns:28px 1fr;gap:3px 10px}.landing-benefits span{grid-row:1/3;font-size:23px}.landing-benefits strong{font-size:18px}.portal-landing .landing-benefits p{font-size:16px;color:#53647a;margin:0}.landing-help{scroll-margin-top:24px;background:#eaf1fa;border:1px solid #dbe6f3;border-radius:16px;padding:26px;display:flex;align-items:center;gap:40px;justify-content:space-between}.portal-landing .landing-help h2{font-size:22px;margin:0 0 7px;color:#203b5e}.portal-landing .landing-help p{max-width:630px;margin:0;color:#4c6079;font-size:17px}.landing-help>a{font-size:17px;font-weight:700;flex-shrink:0;max-width:240px}.landing-footer{max-width:1120px;margin:0 auto;padding:0 28px 28px;display:flex;gap:18px;justify-content:space-between;font-size:15px;color:#607085}.landing-footer a{color:#4c6079}@media(max-width:1120px){.landing-nav{padding-inline:34px}.portal-landing .brand img{width:178px}}@media(max-width:850px){.landing-nav{min-height:90px;padding-inline:28px}.portal-landing .brand img{height:80px}}@media(max-width:720px){.landing-nav{padding:0 22px;gap:14px}.landing-nav>div{gap:10px;flex-direction:column;align-items:flex-end}.landing-nav a:not(.brand){font-size:12px}.landing-main{padding:0 20px 32px}.landing-welcome{padding:28px 0 24px}.portal-landing .landing-welcome h1{letter-spacing:-1px}.portal-landing .landing-welcome>p:not(.landing-eyebrow){font-size:18px}.landing-logins{grid-template-columns:1fr;gap:16px}.landing-login{padding:25px;border-radius:18px}.portal-landing .landing-login h2{font-size:28px}.landing-parent{align-items:flex-start;flex-direction:column;gap:10px;padding:20px}.landing-parent>a{margin-left:42px}.landing-how{padding:32px 0 26px}.landing-how ol{grid-template-columns:1fr;gap:24px}.portal-landing .landing-how h2{font-size:28px}.landing-benefits{grid-template-columns:1fr;gap:22px}.landing-help{flex-direction:column;align-items:flex-start;gap:18px;padding:22px}.landing-help>a{flex-shrink:1}.landing-footer{flex-direction:column;gap:7px;padding:0 20px 24px}}@media(prefers-reduced-motion:reduce){.portal-landing *{scroll-behavior:auto}}
/* One keyboard link per card; its hit area covers the card without JS. */
.landing-login,.landing-parent{position:relative}.landing-login .landing-button::after,.landing-parent>a::after{content:"";position:absolute;inset:0;border-radius:inherit}.landing-login:focus-within,.landing-parent:focus-within{outline:3px solid #b46e13;outline-offset:4px}.landing-login:hover{border-color:#6c98cb}.landing-continue[hidden]{display:none}.landing-continue{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 26px;background:#e4f1ed;border:1px solid #b4d7c9;border-radius:16px;margin-bottom:22px}.landing-continue strong{font-size:21px;color:#234e42}.landing-continue p{font-size:17px;margin:4px 0 0;color:#385d52}#portal-continue-links{display:flex;flex-wrap:wrap;gap:10px}.landing-help-options{display:block}.landing-help-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.landing-help-grid details{background:#fff;border:1px solid #d2dfef;border-radius:10px;padding:16px 18px}.landing-help-grid summary{font-size:18px;font-weight:700;color:#153d70;cursor:pointer;min-height:32px}.portal-landing .landing-help-grid details p{margin:12px 0 0}.landing-help-grid a{text-decoration:underline}.landing-help-grid summary:focus-visible{outline:3px solid #b46e13;outline-offset:4px}@media(max-width:720px){.landing-continue{flex-direction:column;align-items:stretch;padding:22px}.landing-help-grid{grid-template-columns:1fr}#portal-continue-links{display:grid}.landing-continue .landing-button{white-space:normal}}

@media(max-width:380px){.portal-landing .brand img{width:140px}.landing-nav{gap:10px}}
