/* A focused entrance to programming, classroom learning and teaching. */
.login-page{min-height:100svh;background:#f4f7f6;color:#203c36;position:relative;overflow:hidden;padding:0 6.5%;display:flex;flex-direction:column}.login-page:before{content:"";position:absolute;width:680px;height:680px;left:-320px;top:170px;background:radial-gradient(circle,#d6e7df70,transparent 68%);pointer-events:none}.login-brand{display:flex;align-items:center;gap:12px;position:relative;padding:34px 0}.login-brand-mark{display:grid;place-items:center;width:44px;height:44px;background:#177461;color:white;border-radius:13px;font:700 20px ui-monospace,monospace;box-shadow:0 4px 10px #175e5912}.login-brand strong{display:block;font-size:20px;letter-spacing:.5px}.login-brand div>span{display:block;font-size:10px;color:#7e938a;letter-spacing:3px;margin-top:1px}.login-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);align-items:center;gap:8%;width:100%;max-width:1320px;margin:auto;position:relative;padding:30px 0 45px}.login-story{max-width:590px}.login-kicker{font-size:12px;letter-spacing:2px;color:#617c72;display:flex;align-items:center;gap:9px;margin-bottom:24px}.login-kicker>span{width:6px;height:6px;background:#20947a;border-radius:50%}.login-story h1{font-size:clamp(38px,4.3vw,64px);line-height:1.3;font-weight:750;letter-spacing:-1.5px;margin:0 0 24px;color:#193c33}.login-story h1>span{color:#17856c}.login-story-copy{color:#71867e;font-size:15px;line-height:1.95;margin-bottom:30px}.login-code{background:#163c34;border:1px solid #224e42;box-shadow:0 20px 50px #113d3415;border-radius:16px;max-width:475px;overflow:hidden;transform:rotate(-1deg)}.login-code-bar{display:flex;align-items:center;gap:6px;border-bottom:1px solid #ffffff10;padding:16px 20px;color:#93b6a7;font-size:10px}.login-code-bar i{width:7px;height:7px;border-radius:50%;background:#628b79}.login-code-bar i:nth-child(2){background:#9b9870}.login-code-bar i:nth-child(3){background:#72a48b}.login-code-bar>span{margin-left:10px;letter-spacing:1px}.login-code-bar>b{margin-left:auto;font-size:10px;font-weight:500;border:1px solid #799d8b40;padding:1px 7px;border-radius:4px}.login-code-body{padding:22px 22px 17px}.login-code-line{display:flex;gap:24px;font:13px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;color:#d1e4d9;white-space:pre}.login-code-line em{font-style:normal;color:#54786b;font-size:11px}.login-code-line b{font-weight:500;color:#d8bd85}.login-code-line strong{font-weight:500;color:#91d3bb}.login-code-result{display:flex;align-items:center;gap:9px;margin-top:20px;font-size:11px;color:#a4c6b4;border-top:1px solid #ffffff10;padding-top:13px}.login-code-result>span{background:#2d5b48;border-radius:50%;width:17px;height:17px;text-align:center;color:#b2d9be;line-height:17px}.login-features{display:flex;gap:30px;margin-top:30px;font:11px ui-monospace,monospace;color:#9aafa5}.login-features b{margin-left:7px;color:#657e72;font:500 12px system-ui,sans-serif}.login-page .login-card{max-width:440px;width:100%;margin:0 0 0 auto;padding:39px 38px 25px;border:1px solid #e0e8e3;border-radius:22px;box-shadow:0 14px 50px #1a453a08;background:#fff}.login-welcome{color:#8c9c94;font-size:11px;letter-spacing:1px;margin-bottom:10px}.login-card h2{font-size:29px;letter-spacing:-.6px;color:#213e35;margin-bottom:7px}.login-subtitle{font-size:13px;line-height:1.8;color:#82958a;margin-bottom:24px;min-height:23px}.login-entry-links{display:flex;align-items:center;gap:22px;margin:0 0 24px}.login-entry-links a{font-size:12px;color:#51776b;text-decoration:none}.login-entry-links a:hover{color:#147c67;text-decoration:underline}.login-card label{font-size:12px;color:#526c60;margin:17px 0 8px}.login-card input{background:#fafcfb;border:1px solid #e1e8e3;border-radius:9px;padding:12px 14px;height:47px;font-size:13px;transition:box-shadow .15s,border-color .15s}.login-card input::placeholder{color:#afbbb3}.login-card input:focus{outline:0;border-color:#469c83;box-shadow:0 0 0 3px #19866a10;background:white}.login-password-wrap{position:relative}.login-password-wrap input{padding-right:64px}.login-password-toggle{position:absolute;right:5px;top:5px;height:37px;padding:0 11px;background:transparent;color:#7b9386;font-size:11px;font-weight:500}.login-page .login-submit{width:100%;margin-top:25px;background:#167962;border:1px solid #167962;border-radius:9px;padding:13px 17px;display:flex;align-items:center;justify-content:center;gap:18px;font-size:13px;box-shadow:0 5px 14px #14765c15;min-height:48px;transition:background .15s,transform .15s}.login-submit:hover{background:#116650;transform:translateY(-1px)}.login-submit:disabled{opacity:.65;cursor:wait;transform:none}.login-submit>span{font-size:17px;font-weight:400}.login-error{background:#fff3f1;border:1px solid #f4dbd5;color:#a84637;padding:9px 12px;margin:15px 0 -10px;border-radius:7px;font-size:12px}.login-error[hidden]{display:none}.login-help{display:flex;gap:8px;font-size:11px;color:#96a69c;line-height:1.85;margin-top:21px}.login-help>span{padding-top:1px;color:#a4b2a9}.login-help p{margin:0}.login-card-footer{border-top:1px solid #eef2ee;margin-top:25px;padding-top:18px;text-align:center;font-size:10px;color:#a3b2a8;letter-spacing:1px}.login-card-footer>span{display:inline-block;width:4px;height:4px;background:#5c9a78;border-radius:50%;margin-right:6px;vertical-align:middle}.login-page-footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#9daf9f;padding:20px 0 25px;position:relative}.login-page a:focus-visible,.login-page button:focus-visible{outline:3px solid #95cdb9;outline-offset:3px}
@media(min-width:1600px){.login-shell{padding:50px 0 70px;gap:12%}.login-brand{max-width:1320px;width:100%;margin:auto}.login-page-footer{max-width:1320px;width:100%;margin:auto}}
@media(max-width:1000px){.login-page{padding:0 5%}.login-shell{gap:5%;grid-template-columns:minmax(0,1fr) minmax(335px,1fr)}.login-page .login-card{padding:30px 27px 22px}.login-story h1{font-size:42px}.login-features{gap:12px}.login-code-line{font-size:12px;gap:17px}}
@media(max-width:760px){.login-page{padding:0 22px}.login-brand{padding:25px 0 20px}.login-brand strong{font-size:18px}.login-brand-mark{height:39px;width:39px}.login-shell{display:block;padding:10px 0 25px;margin:0 auto;max-width:440px}.login-story{display:none}.login-page .login-card{max-width:none;padding:30px 25px 22px;margin:0;border-radius:18px}.login-welcome{font-size:11px}.login-card h2{font-size:27px}.login-page-footer{margin-top:auto;gap:12px;font-size:9px;letter-spacing:0}.login-help{font-size:11px}}
@media(prefers-reduced-motion:reduce){.login-page *{transition:none!important;transform:none!important}}
@media(min-width:761px) and (max-height:820px){.login-brand{padding:22px 0}.login-shell{padding:12px 0 18px}.login-story h1{font-size:clamp(38px,4vw,54px);margin-bottom:18px}.login-kicker{margin-bottom:18px}.login-story-copy{margin-bottom:22px}.login-code-body{padding:15px 22px 13px}.login-code-bar{padding:12px 20px}.login-code-result{margin-top:13px;padding-top:10px}.login-features{margin-top:20px}.login-page .login-card{padding:28px 34px 20px}.login-welcome{margin-bottom:7px}.login-card h2{line-height:1.35;font-size:28px}.login-subtitle{margin-bottom:18px}.login-card label{margin:14px 0 7px}.login-page .login-submit{margin-top:21px}.login-help{margin-top:17px}.login-card-footer{margin-top:19px;padding-top:15px}.login-page-footer{padding:14px 0 18px}}
@media(min-width:761px) and (max-height:820px){.login-brand{padding:18px 0}.login-shell{padding:4px 0 8px}}


