@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;600;700;800&family=Newsreader:opsz,wght@6..72,500&display=swap');
:root{--ink:#07131b;--deep:#0b1c26;--line:#365461;--acid:#b9ff6a;--paper:#f1f5ef;--muted:#9eafb5;--orange:#ff8e61}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Manrope,Arial}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:9;background:#fff;padding:.6rem}.portal-head{min-height:76px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cbd5d0}.brand{display:flex;gap:.65rem;align-items:center;text-decoration:none;color:inherit}.mark{display:grid;place-items:center;background:var(--ink);color:var(--acid);width:31px;height:31px;font-size:1.1rem;font-weight:800}.brand b{display:block;letter-spacing:.13em;font-size:1rem}.brand small{display:block;font:10px 'DM Mono';letter-spacing:.1em;color:#50636b}.portal-head nav{display:flex;align-items:center;gap:1.3rem;font-size:.78rem;font-weight:800}.portal-head nav a{text-decoration:none}.portal-head button{border:0;background:none;font:inherit;font-weight:800;cursor:pointer}.portal-menu{display:none}.portal-wrap{max-width:1250px;margin:auto;padding:clamp(2rem,5vw,5rem) 5vw}.eyebrow{font:11px 'DM Mono';letter-spacing:.12em;color:#59706e}.portal-wrap h1{font-size:clamp(2.4rem,5vw,5rem);letter-spacing:-.06em;line-height:.95;margin:.7rem 0}.portal-wrap h2{font-size:1.1rem;letter-spacing:.02em}.course-title{color:#28414a;font-size:1rem;font-weight:800}.progress-row{display:flex;justify-content:space-between;align-items:end;margin:2.5rem 0 1rem}.progress-num{font:4rem/.8 Newsreader;color:var(--deep)}.progress{height:8px;background:#d2ddd6}.progress span{display:block;height:100%;background:var(--acid);outline:1px solid #5e8455}.grid{display:grid;grid-template-columns:1.35fr .65fr;gap:2rem;margin-top:3rem}.panel{background:white;border:1px solid #bdccc6;padding:1.5rem}.panel.dark{background:var(--deep);color:var(--paper);border:0}.panel.dark p{color:#c0d0ca}.module-list{list-style:none;margin:0;padding:0}.module-list li{border-top:1px solid #d8e0dc;padding:1rem 0;display:flex;gap:1rem;align-items:center}.module-list li:first-child{border-top:0}.module-list b{font:11px 'DM Mono';color:#57706e;min-width:24px}.state{margin-left:auto;font:10px 'DM Mono';letter-spacing:.08em;color:#55756a}.state.current{color:#d05b30}.state.complete{color:#2f7e43}.lab-list{list-style:none;padding:0;margin:0}.lab-list li{padding:.8rem 0;border-top:1px solid #3b5760;font-size:.86rem}.lesson{max-width:850px}.lesson h1{font-size:clamp(2.4rem,5vw,4.5rem)}.lesson-content{font-size:1.05rem;max-width:720px}.objectives{background:#dce9d2;padding:1.3rem;margin:2rem 0}.button{display:inline-flex;gap:.6rem;align-items:center;border:0;background:var(--ink);color:var(--acid);padding:.85rem 1rem;font:800 .8rem Manrope;cursor:pointer;text-decoration:none}.tutor{position:fixed;right:1.5rem;bottom:1.5rem;background:var(--acid);color:var(--ink);border:0;padding:.85rem 1rem;font:800 .78rem Manrope;box-shadow:6px 6px 0 var(--ink);cursor:pointer}.callout{border-left:4px solid var(--orange);padding:1rem;background:#fff1eb}.login-body{min-height:100vh;display:grid;place-items:center;background:var(--deep);padding:1.5rem}.login-card{background:var(--paper);width:min(100%,520px);padding:clamp(2rem,6vw,4rem)}.login-card h1{font-size:clamp(2.5rem,5vw,4rem);line-height:.92;letter-spacing:-.06em}.login-card label{display:block;margin:1rem 0;font-size:.83rem;font-weight:800}.login-card input{display:block;width:100%;padding:.8rem;border:1px solid #8a9b96;background:#fff;font:inherit;margin-top:.35rem}.login-card button{background:var(--ink);color:var(--acid);border:0;padding:.85rem 1rem;font-weight:800;margin-top:.7rem}@media(max-width:760px){.portal-head nav{display:none;position:absolute;top:76px;left:0;right:0;padding:1rem 5vw;background:var(--paper);flex-direction:column;align-items:stretch;border-bottom:1px solid #cbd5d0}.portal-head nav.open{display:flex}.portal-menu{display:block!important}.grid{grid-template-columns:1fr}.progress-row{margin-top:1.8rem}}
