/* Reference-led institute branding. DESIGN_VARIANCE=3, MOTION_INTENSITY=2, VISUAL_DENSITY=4. Native CSS, no external UI framework. */
:root{font-family:"Segoe UI",Arial,sans-serif;color:#18263b;font-synthesis:none;--blue:#1157a6;--orange:#ef7f16;--radius:24px;--icon-ink:#3e78b6}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:#c4d8ee}a{color:inherit}button,input,select{font:inherit}button,a,input,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ff9a36}button{cursor:pointer}button:disabled{opacity:.7;cursor:wait}.scene{position:fixed;inset:0;z-index:-2;background:url('campus.jpg') center 58%/cover no-repeat}.scene:after{content:"";position:absolute;inset:0}.auth-page .scene:after{background:linear-gradient(100deg,rgba(233,244,255,.94) 0%,rgba(230,242,254,.72) 42%,rgba(167,198,231,.24) 100%)}.auth-layout{max-width:1330px;margin:auto;min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr;gap:8%;padding:5vh 5vw;align-items:center}.brand-story{min-height:79vh;display:flex;flex-direction:column;align-items:flex-start}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;line-height:1.05}.brand img{width:88px;height:88px;object-fit:contain}.brand strong{display:block;color:#09549f;font-size:clamp(20px,2vw,29px);letter-spacing:-.6px;font-weight:850;white-space:nowrap}.brand b{display:block;color:#db710c;font-family:Georgia,serif;font-size:24px;line-height:1.08;margin-top:5px}.story-copy{margin-top:70px}.brand-rule{width:59px;height:3px;background:linear-gradient(to right,#ed821d 40%,#135da8 40%);display:block;margin-bottom:24px}.story-copy h1{font-size:clamp(33px,3.5vw,49px);font-weight:750;line-height:1.14;margin:0;letter-spacing:-1.2px}.story-copy em{font-style:normal;color:#1162b4}.story-copy p{font-size:16px;color:#344155;line-height:1.65;margin:16px 0;max-width:450px}.story-footer{margin-top:auto;padding-top:90px;letter-spacing:2.5px;font-size:11px;color:#31465d}.sign-card{padding:34px 38px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.87);background:rgba(244,249,255,.77);box-shadow:0 22px 65px rgba(20,62,105,.18),inset 0 1px 1px white;backdrop-filter:blur(22px);width:100%;max-width:475px}.card-brand{justify-content:center;margin:0 0 25px}.card-brand img{width:61px;height:61px}.card-brand strong{font-size:20px}.card-brand b{font-size:18px}.sign-card h2{font-size:30px;font-weight:750;text-align:center;letter-spacing:-.7px;margin:0}.card-subtitle{text-align:center;font-size:14px;color:#526174;margin:5px 0 23px}.signin-form{display:grid;gap:9px}.signin-form>label{font-size:12px;font-weight:650;margin-top:4px;color:#33475e}.signin-form>input,.signin-form>select,.password-field{width:100%;min-height:47px;border:1px solid rgba(85,118,155,.15);border-radius:15px;background:rgba(255,255,255,.87);color:#1c3049}.signin-form>input,.signin-form>select{padding:10px 14px}.signin-form input::placeholder{color:#637187;opacity:1}.password-field{display:flex;align-items:center}.password-field input{background:none;border:0;min-width:0;flex:1;padding:12px 14px;min-height:47px;border-radius:15px}.show-password{border:0;background:none;color:#33537a;font-size:12px;font-weight:650;padding:12px;min-height:44px}.form-options{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:7px 0 13px;gap:10px}.form-options a{color:#064f9f;text-decoration:none;font-weight:600}.remember{display:flex;gap:7px;align-items:center}.remember input{accent-color:var(--blue);width:16px;height:16px}.primary{display:flex;justify-content:center;align-items:center;gap:20px;min-height:48px;padding:12px 22px;text-decoration:none;border:0;border-radius:30px;background:linear-gradient(105deg,#1769bd,#104c98);color:#fff;font-weight:650;font-size:14px;box-shadow:0 6px 16px #10539b22;white-space:nowrap}.primary span{font-size:24px;line-height:16px}.secure-note{border-top:1px solid #8a9eb62f;margin-top:22px;padding-top:17px;display:flex;align-items:center;justify-content:center;gap:12px}.secure-note strong{display:block;color:#0959a5;font-size:13px}.secure-note small{display:block;color:#526174;font-size:11px;margin-top:3px}.lock-icon{font-size:30px;color:#1262b0}.form-error,.portal-error{background:#fff1f1;border:1px solid #d49b9b;color:#842626;border-radius:12px;padding:12px;font-size:13px;line-height:1.5}.form-success{background:#e5f5ec;color:#175133;padding:12px;border-radius:12px}.workspace-page{color:white;isolation:isolate}.workspace-page .scene{filter:blur(2px);transform:scale(1.025)}.workspace-page .scene:after{background:linear-gradient(180deg,rgba(19,72,126,.65),rgba(20,57,96,.65) 45%,rgba(17,39,62,.65))}.workspace-header{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:30px 5vw}.workspace-header .brand strong{color:white;font-size:24px;text-shadow:0 1px 5px #102d5033}.workspace-header .brand b{color:#ffd092;font-size:22px}.workspace-header .brand img{width:72px;height:72px}.account-menu{display:flex;align-items:center;gap:24px}.clock{display:grid;gap:5px;padding-right:24px;border-right:1px solid #ffffff66;font-size:12px}.clock strong{font-size:19px;font-weight:500}.avatar{display:grid;place-items:center;background:#edf5ff;color:#2a64a3;border-radius:50%;width:46px;height:46px;font-weight:650}.account-menu details{position:relative}.account-menu summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer}.account-menu summary::-webkit-details-marker{display:none}.menu-panel{position:absolute;right:0;top:60px;width:250px;z-index:20;background:#f7fbff;color:#1b334d;border:1px solid white;border-radius:16px;padding:17px;box-shadow:0 15px 45px #102c5066}.menu-panel strong,.menu-panel small{display:block}.menu-panel small{color:#516c85;margin:5px 0 12px}.menu-panel a{display:block;padding:10px 0;text-decoration:none;border-top:1px solid #cfdbe8;font-size:14px}.workspace-main{max-width:1160px;margin:auto;padding:18px 4vw 32px}.welcome{text-align:center;margin:8px auto 30px}.welcome>p:first-child{font-size:13px;letter-spacing:5px;margin:0 0 10px}.welcome h1{font:normal clamp(38px,5.2vw,64px)/1.08 Georgia,serif;margin:0;text-shadow:0 2px 15px #0e345233}.welcome h2{font:normal clamp(20px,2.5vw,29px)/1.3 Georgia,serif;margin:5px 0 12px}.welcome-rule{display:block;width:70px;height:2px;background:#e9c37e;margin:14px auto}.motto{font-size:11px;letter-spacing:4px;line-height:1.6;color:#e9f0fb}.portal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:21px;max-width:1040px;margin:0 auto}.portal-tile{--tile-rgb:77,147,239;--icon-ink:#3266a5;position:relative;min-height:290px;display:flex;flex-direction:column;align-items:flex-start;padding:30px 30px 24px;border-radius:27px;text-decoration:none;border:1px solid #ffffffc7;background:linear-gradient(145deg,rgba(var(--tile-rgb),.37),rgba(13,29,50,.55));backdrop-filter:blur(17px);box-shadow:inset 1px 1px 4px #ffffffb0,inset -2px -2px 13px rgba(var(--tile-rgb),.55),0 10px 35px #06264b4a;transition:transform .2s,box-shadow .2s}.portal-tile:hover{transform:translateY(-6px);box-shadow:inset 1px 1px 4px #ffffffc9,0 16px 38px #09274f70}.portal-tile.green{--tile-rgb:65,208,164;--icon-ink:#187c64}.portal-tile.violet{--tile-rgb:170,135,247;--icon-ink:#6550ae}.portal-tile.amber{--tile-rgb:241,183,100;--icon-ink:#a06d2a}.tile-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(var(--tile-rgb),.9) 45%,rgba(var(--tile-rgb),.5));border:1px solid #ffffff7a;box-shadow:0 8px 20px #0b244b4f,inset 0 1px 3px #fff6;color:white}.tile-icon svg{width:37px;height:37px}.portal-tile h3{font:600 27px Georgia,serif;margin:20px 0 7px}.portal-tile p{font-size:14px;line-height:1.5;color:#f4f8ff;margin:0 0 18px;max-width:190px}.tile-arrow{margin-top:auto;display:grid;place-items:center;min-width:46px;min-height:46px;border-radius:50%;border:1px solid #fff5;background:linear-gradient(140deg,#ffffff9c,rgba(var(--tile-rgb),.7));font-size:31px;box-shadow:0 5px 15px #183b6a55}.workspace-person{text-align:center;font-size:12px;color:#e6eef9;margin:30px 0 0}.connect-card{margin:6vh auto;max-width:500px}.connect-card h1{font-size:28px;letter-spacing:-.8px;line-height:1.2}.connect-card>p{font-size:14px;line-height:1.6}.connect-card>a{font-size:13px;color:#135c9c}.connect-card>.primary{color:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-error{max-width:1040px;margin:20px auto}.auth-page>.sign-card{margin:8vh auto}.portal-tile,.sign-card{animation:appear .45s both}@keyframes appear{from{transform:translateY(5px)}to{transform:translateY(0)}}
@media(min-width:1450px){.auth-layout{padding-top:7vh;padding-bottom:7vh}.sign-card{padding:40px 42px}.workspace-main{padding-top:4vh}.portal-tile{min-height:315px}}@media(max-width:1000px){.auth-layout{gap:5%;padding:5vh 4vw}.brand-story .brand img{width:68px;height:68px}.brand-story .brand strong{font-size:20px}.brand-story .brand b{font-size:20px}.sign-card{padding:28px}.portal-tile{padding:25px 22px}.workspace-header .brand strong{font-size:20px}.clock{display:none}.workspace-header .brand b{font-size:18px}}@media(max-width:700px){.auth-layout{display:flex;flex-direction:column;padding:28px 20px;gap:28px}.brand-story{min-height:auto;width:100%}.brand-story .brand{align-self:center}.story-copy,.story-footer{display:none}.sign-card{max-width:460px;padding:28px 26px}.card-brand{display:none}.card-subtitle{margin-bottom:20px}.workspace-header{padding:22px}.workspace-header .brand img{width:53px;height:53px}.workspace-header .brand strong{font-size:16px}.workspace-header .brand b{font-size:14px}.account-menu{gap:8px}.avatar{width:40px;height:40px}.workspace-main{padding:10px 22px 35px}.welcome{margin:12px 0 24px}.welcome>p:first-child{font-size:10px;letter-spacing:4px}.welcome h1{font-size:39px}.welcome h2{font-size:19px}.motto{font-size:9px;letter-spacing:2px}.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-tile{padding:20px 17px;min-height:260px;border-radius:22px}.tile-icon{width:53px;height:53px;border-radius:16px}.tile-icon svg{width:31px;height:31px}.portal-tile h3{font-size:23px;margin-top:17px}.portal-tile p{font-size:12px}.connect-card{max-width:calc(100% - 32px);margin:30px auto}.workspace-person{line-height:1.5}.workspace-page .scene{background-position:center}}@media(max-width:360px){.portal-grid{grid-template-columns:1fr}.portal-tile{min-height:230px}.workspace-header .brand b{display:none}.workspace-header{padding:18px 15px}.brand strong{font-size:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(prefers-reduced-transparency:reduce){.sign-card{background:#f1f7fe;backdrop-filter:none}.portal-tile{background:#204364;backdrop-filter:none}}

.lock-icon svg{display:block;width:27px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7}
/* Reference fidelity revision: luminous mountain terrace and consistent, narrow glass panels. */
.workspace-page .scene{background-image:url('workspace-scenery-v2.png');background-position:center center;filter:none;transform:none}
.workspace-page .scene:after{background:linear-gradient(180deg,rgba(10,49,101,.05),rgba(8,37,76,.025) 70%,rgba(10,32,54,.025))}
.workspace-header{padding:24px 5vw;max-width:1440px}.workspace-header .brand strong{color:#0a4b94;text-shadow:none}.workspace-header .brand b{color:#ee8b16}.workspace-header .brand img{width:78px;height:78px}
.workspace-main{max-width:1240px;padding:2px 4vw 115px}.welcome{margin:6px auto 24px}.welcome h1{font-size:clamp(40px,4.8vw,62px);font-weight:400;text-shadow:0 2px 8px #163f6a24}.welcome h2{font-size:clamp(20px,2.3vw,28px);font-weight:400;text-shadow:0 1px 7px #163f6a33}.welcome>p:first-child{font-size:13px;font-weight:500;letter-spacing:4.6px}.motto{font-size:10px;letter-spacing:4px;color:#f1f5ff;text-shadow:0 1px 4px #24456855}.welcome-rule{margin:13px auto 14px;height:2px;width:70px;background:#f5d59d}
.portal-grid{display:flex;justify-content:center;align-items:stretch;flex-wrap:wrap;gap:22px;max-width:1080px;margin:0 auto}
.portal-tile{--tile-rgb:68,146,250;flex:0 1 226px;min-height:304px;padding:30px 28px 23px;border-radius:27px;border:1px solid rgba(255,255,255,.92);background:linear-gradient(135deg,rgba(255,255,255,.28),rgba(var(--tile-rgb),.12) 32%,rgba(13,30,49,.20) 65%,rgba(var(--tile-rgb),.22));background-color:rgba(11,29,48,.13);backdrop-filter:blur(13px) saturate(1.25);box-shadow:inset 1px 1px 3px #ffffffed,inset -2px -2px 10px rgba(var(--tile-rgb),.5),inset 0 -3px 5px #ffffffc0,0 0 0 1px rgba(var(--tile-rgb),.55),0 12px 22px rgba(21,45,73,.12);-webkit-box-reflect:below 6px linear-gradient(transparent 56%,rgba(255,255,255,.35));transition:transform .18s,box-shadow .18s}
.portal-tile:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(155deg,rgba(255,255,255,.27),transparent 26%,transparent 72%,rgba(255,255,255,.18));pointer-events:none}.portal-tile:after{content:"";position:absolute;left:9px;right:9px;bottom:-5px;height:7px;border-radius:50%;background:rgba(var(--tile-rgb),.55);filter:blur(7px);pointer-events:none}.portal-tile:hover{transform:translateY(-4px);box-shadow:inset 1px 1px 5px white,inset 0 -4px 9px rgba(var(--tile-rgb),.7),0 12px 25px #24456833}
.portal-tile.green{--tile-rgb:48,224,173;--icon-ink:#248f70}.portal-tile.violet{--tile-rgb:165,128,255;--icon-ink:#6550c1}.portal-tile.amber{--tile-rgb:255,192,111;--icon-ink:#b4782c}
.tile-icon{position:relative;overflow:hidden;width:70px;height:70px;border-radius:20px;border:1px solid #ffffff91;background:linear-gradient(140deg,#ffffffa6,rgba(var(--tile-rgb),.94) 46%,rgba(var(--tile-rgb),.6));box-shadow:inset 0 1px 3px #fff9,0 7px 15px #23416935}.tile-icon:before{content:"";position:absolute;left:0;right:0;top:0;height:45%;background:linear-gradient(#ffffff35,transparent);pointer-events:none}.tile-icon svg{width:38px;height:38px;filter:drop-shadow(0 2px 1px #ffffff18)}
.portal-tile h3{font-size:25px;font-weight:600;position:relative;margin:20px 0 7px;text-shadow:0 1px 4px #0e2f5550}.portal-tile p{font-size:13px;line-height:1.5;font-weight:400;color:#fff;position:relative;margin-bottom:15px;text-shadow:0 1px 4px #0d294d66}.tile-arrow{width:48px;height:48px;min-height:48px;background:linear-gradient(135deg,#ffffffc0,rgba(var(--tile-rgb),.6));box-shadow:inset 0 1px 2px #fff6,0 5px 12px #203f6126;border-color:#ffffff66;font-size:31px;font-weight:300;position:relative}
.choice-notice{font-size:13px;line-height:1.6;margin-bottom:16px;color:#33475e}.signin-form:has(button[name=choose]){gap:14px}
@media(min-width:1450px){.workspace-main{padding-top:8px}.portal-tile{flex-basis:230px;min-height:315px}}
@media(max-width:1000px) and (min-width:701px){.portal-grid{gap:18px}.portal-tile{flex-basis:calc((100% - 54px)/4);min-width:170px;min-height:285px;padding:25px 20px 21px}.portal-tile h3{font-size:23px}.tile-icon{width:62px;height:62px}.portal-tile p{font-size:12px}.workspace-header .brand img{width:65px;height:65px}}
@media(max-width:700px){.workspace-header{padding:22px}.workspace-header .brand img{width:53px;height:53px}.workspace-main{padding:8px 22px 45px}.welcome{margin:12px auto 24px}.welcome h1{font-size:39px}.welcome h2{font-size:19px}.welcome>p:first-child{font-size:10px;letter-spacing:4px}.motto{font-size:9px;letter-spacing:2px}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.portal-tile{min-width:0;min-height:260px;padding:22px 18px;border-radius:23px;-webkit-box-reflect:unset}.portal-tile h3{font-size:23px}.portal-tile p{font-size:12px}.tile-icon{width:58px;height:58px;border-radius:17px}.workspace-page .scene{background-position:center}.tile-arrow{width:44px;height:44px;min-height:44px}}
@media(max-width:360px){.portal-grid{grid-template-columns:1fr}.portal-tile{min-height:230px}.workspace-header{padding:18px 15px}}
@media(prefers-reduced-transparency:reduce){.portal-tile{background:#274c69;backdrop-filter:none}}
.auth-page .scene{background-image:url('login-scene-v2.png');background-position:center center}.auth-page .scene:after{background:linear-gradient(95deg,rgba(236,244,252,.26),rgba(239,246,255,.12) 48%,rgba(18,55,85,.025))}.auth-page .sign-card{background:linear-gradient(135deg,rgba(246,250,255,.72),rgba(246,250,255,.43));backdrop-filter:blur(18px) saturate(1.1);box-shadow:inset 0 1px 2px #ffffffcc,0 20px 55px #244b6f27}.story-copy em span{color:#ef8017}.secure-note{border:1px solid #ffffffa1;border-radius:15px;background:#f8fbff35;padding:15px 12px;margin-top:24px}.auth-page .card-brand{margin-bottom:26px}
@media(prefers-reduced-transparency:reduce){.auth-page .sign-card{background:#f2f7fd;backdrop-filter:none}}
/* The official wordmark includes transparent margins; clip those margins in CSS without altering the brand asset. */
.brand{display:block;position:relative;width:350px;height:auto;aspect-ratio:865/236;overflow:hidden;flex-shrink:0}.brand img,.card-brand img,.workspace-header .brand img,.brand-story .brand img{display:block;position:absolute;left:0;top:-44.915%;width:100%;height:auto;max-width:none;object-fit:initial}.workspace-header .brand{width:320px}.brand-story .brand{width:355px}.card-brand{width:240px;margin:0 auto 26px}.brand span{display:none}
@media(max-width:1000px){.brand-story .brand{width:290px}.workspace-header .brand{width:280px}}
@media(max-width:700px){.brand-story .brand{width:280px}.workspace-header .brand{width:235px}.card-brand{display:none}.workspace-header{gap:10px}}
@media(max-width:360px){.workspace-header .brand{width:215px}}

@media(min-width:1001px){.portal-tile{flex-basis:242px;min-height:315px}}
@media(min-width:1450px){.portal-tile{flex-basis:253px;min-height:325px}}
/* Glass interaction: directional light and small perspective changes, never moving the form while typing. */
.portal-tile,.sign-card{--glass-x:28%;--glass-y:12%;--glass-rx:0deg;--glass-ry:0deg;--glass-lift:0px;transform:perspective(1200px) rotateX(var(--glass-rx)) rotateY(var(--glass-ry)) translateY(var(--glass-lift));transform-style:preserve-3d;transition:transform .42s cubic-bezier(.2,.75,.2,1),box-shadow .35s,border-color .3s;isolation:isolate}
.portal-tile:before{background:radial-gradient(ellipse at var(--glass-x) var(--glass-y),rgba(255,255,255,.43),transparent 48%),linear-gradient(150deg,rgba(255,255,255,.23),transparent 28%,transparent 74%,rgba(255,255,255,.12));opacity:.62;transition:opacity .35s}
.portal-tile:hover,.portal-tile:focus-visible{--glass-lift:-5px;transform:perspective(1200px) rotateX(var(--glass-rx)) rotateY(var(--glass-ry)) translateY(var(--glass-lift));border-color:white;box-shadow:inset 1px 1px 6px white,inset 0 -5px 11px rgba(var(--tile-rgb),.7),0 13px 27px rgba(29,63,99,.23)}
.portal-tile:hover:before,.portal-tile:focus-visible:before{opacity:1}.portal-tile .tile-icon,.portal-tile h3,.portal-tile p,.portal-tile .tile-arrow{transform:translateZ(9px)}
.tile-icon:after{content:"";position:absolute;inset:-50% -100%;background:linear-gradient(110deg,transparent 35%,#ffffff66 49%,transparent 63%);transform:translateX(-48%) rotate(-8deg);pointer-events:none;opacity:0}
.portal-tile:hover .tile-icon:after,.portal-tile:focus-visible .tile-icon:after{animation:glass-sheen .85s ease-out both}
.sign-card:before{content:"";position:absolute;inset:1px;border-radius:inherit;background:radial-gradient(ellipse at var(--glass-x) var(--glass-y),rgba(255,255,255,.37),transparent 58%);pointer-events:none;z-index:-1;opacity:.65;transition:opacity .35s}.sign-card:hover:before{opacity:1}
.portal-tile .tile-arrow{transition:transform .25s,box-shadow .25s}.portal-tile:hover .tile-arrow,.portal-tile:focus-visible .tile-arrow{transform:translateZ(13px) translateX(3px);box-shadow:inset 0 1px 3px #fff9,0 5px 16px rgba(var(--tile-rgb),.3)}
@keyframes glass-sheen{0%{opacity:0;transform:translateX(-45%) rotate(-8deg)}20%{opacity:1}100%{opacity:0;transform:translateX(55%) rotate(-8deg)}}
@media(prefers-reduced-motion:reduce){.portal-tile,.sign-card,.portal-tile:hover,.portal-tile:focus-visible,.portal-tile .tile-icon,.portal-tile h3,.portal-tile p,.portal-tile .tile-arrow{transform:none!important;animation:none!important;transition:none!important}.tile-icon:after{animation:none!important;display:none}}
