/* Public welcome and sign-in: soft paper, floating colour and tactile cards. */
.portal-body{margin:0;min-height:100vh;color:#263047;background:#f8f6f1;font-family:Inter,"Segoe UI",sans-serif;overflow-x:hidden;position:relative}
.portal-body *{box-sizing:border-box}.portal-body a{text-decoration:none}.portal-body svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.portal-header,.portal-main,.portal-footer{position:relative;z-index:1}.portal-header{max-width:1240px;margin:auto;padding:30px 44px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.portal-brand{display:flex;align-items:center;gap:13px;color:#263047}.portal-brand img{width:45px;height:56px;object-fit:contain}.portal-brand>span{font-size:24px;font-weight:800;letter-spacing:-1px}.portal-brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:4px;color:#7d8290}.portal-login{display:flex;align-items:center;gap:9px;font-size:13px;color:#666d7c;padding:10px 15px;border:1px solid #dcdde1;border-radius:30px;transition:background .25s,transform .25s}.portal-login svg{width:16px;height:16px}.portal-login:hover{background:#fff;transform:translateY(-2px)}
.portal-main{max-width:1060px;margin:24px auto 55px;padding:0 32px}.portal-hero{text-align:center;padding:18px 0 32px}.portal-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:2.5px;color:#a75d56;margin-bottom:22px}.portal-hero h1,.portal-intro h1{font-size:clamp(42px,5.8vw,70px);line-height:1.06;font-weight:800;letter-spacing:-3.6px;margin:0 0 22px}.portal-body em{color:#c04847;font-style:normal}.portal-hero p,.portal-intro>p{font-size:16px;line-height:1.8;color:#757a86;margin:0}.portal-choices{display:grid;grid-template-columns:1fr 1fr;gap:24px;perspective:1000px}.request-tile{position:relative;overflow:hidden;border-radius:27px;padding:31px 34px;display:flex;flex-direction:column;color:#263047;min-height:324px;border:1px solid #ffffffb0;box-shadow:0 12px 35px #28304c07;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}.request-tile:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-75px;top:65px;border:25px solid #ffffff35;pointer-events:none;transition:transform .6s}.request-tile:hover{transform:translateY(-7px) rotate(-.5deg);box-shadow:0 24px 45px #28304c12}.request-tile:hover:after{transform:scale(1.3)}.tile-ris{background:linear-gradient(135deg,#f5e5df,#f0d1c8)}.tile-convocation{background:linear-gradient(135deg,#e7ecf8,#dce4f4)}.tile-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.portal-icon{display:inline-flex;width:56px;height:56px;border-radius:18px;background:#ffffffb0;align-items:center;justify-content:center;color:#b54742;box-shadow:0 5px 15px #29324805}.portal-icon svg{width:29px;height:29px}.tile-convocation .portal-icon{color:#5a6f9f}.tile-tag{font-size:9px;font-weight:800;letter-spacing:1.5px;opacity:.55}.request-tile h2{font-size:30px;line-height:1.17;letter-spacing:-1.2px;margin:25px 0 13px}.request-tile p{color:#6c6d77;line-height:1.7;font-size:13px;margin:0 0 20px}.tile-cta{font-size:12px;font-weight:750;display:flex;align-items:center;justify-content:space-between;margin-top:auto}.tile-cta b{border-radius:50%;width:35px;height:35px;background:#ffffff90;font-size:22px;display:flex;justify-content:center;align-items:center}.portal-caption{text-align:center;color:#8b8e98;font-size:11px;margin-top:25px}.portal-footer{max-width:1152px;margin:auto;padding:20px 30px 28px;border-top:1px solid #2630470c;display:flex;justify-content:space-between;gap:20px;color:#9395a0;font-size:10px;letter-spacing:.3px}
.portal-orb{position:fixed;pointer-events:none;filter:blur(65px);opacity:.5;border-radius:50%;animation:portal-float 16s ease-in-out infinite alternate}.orb-one{width:380px;height:380px;background:#eccac4;top:5%;left:-210px}.orb-two{width:420px;height:420px;background:#d6def1;bottom:-120px;right:-200px;animation-delay:-8s}.portal-hero,.portal-intro,.portal-form,.request-tile{animation:portal-enter .75s cubic-bezier(.2,.7,.2,1) both}.tile-convocation{animation-delay:.12s}.portal-body a:focus-visible,.portal-body button:focus-visible{outline:3px solid #9e4246;outline-offset:5px}
.portal-form{border:1px solid #fff;background:#ffffffd9;border-radius:28px;padding:38px;box-shadow:0 20px 65px #26304708}.portal-form h1{font-size:34px;letter-spacing:-1.5px;line-height:1.2;margin:15px 0}.portal-form h2{font-size:28px;letter-spacing:-1px;line-height:1.2;margin:22px 0 12px}.portal-form>p{color:#808390;line-height:1.7;font-size:14px;margin-bottom:25px}.portal-form .stack-form{display:grid;gap:18px}.portal-form label{display:grid;gap:8px;color:#50596a;font-size:12px;font-weight:600}.portal-form input,.portal-form textarea,.portal-form select{width:100%;border:1px solid #e1e4ea;border-radius:11px;background:#fbfbfd;font:inherit;color:#263047;padding:13px 14px;transition:border-color .25s,box-shadow .25s}.portal-form input:focus,.portal-form textarea:focus,.portal-form select:focus{outline:none;border-color:#bd6d69;box-shadow:0 0 0 4px #bd6d6910}.portal-form select[multiple]{padding:8px;font-size:12px}.portal-form option{padding:7px}.portal-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-form .btn.primary{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px;background:#b94646;color:#fff;border:0;border-radius:12px;box-shadow:0 7px 18px #b9464620;transition:transform .25s,box-shadow .25s;font-size:13px;cursor:pointer}.portal-form .btn:hover{transform:translateY(-2px);box-shadow:0 10px 23px #b9464630}.portal-back{display:block;color:#818695;font-size:12px;margin:5px 0 27px}.portal-form small,.portal-form .small-copy{font-size:11px;color:#9498a1;line-height:1.65;font-weight:400}.request-form{max-width:700px;margin:0 auto}.request-form .portal-kicker{margin:0}.portal-honey{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.portal-success{max-width:570px;margin:70px auto;text-align:center}.portal-success .portal-icon{background:#e4f0e9;color:#4f8a6b}.portal-login-layout{display:grid;grid-template-columns:1fr 430px;gap:70px;align-items:center;min-height:570px}.portal-stickers{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.portal-stickers span{padding:9px 13px;border-radius:30px;background:#fff9;font-size:11px;color:#8d7774;transform:rotate(-4deg)}.portal-stickers span:nth-child(2){background:#e4e9f5;color:#66738e;transform:rotate(5deg)}.login-modern .portal-back{margin:24px 0 0;text-align:center}
.portal-school-picker{border:1px solid #e5e6eb;border-radius:14px;padding:16px;margin:0;min-width:0;display:grid;gap:12px}.portal-school-picker legend{font-size:12px;font-weight:600;padding:0 7px}.portal-school-picker>p{font-size:11px;color:#858995;margin:0}.portal-schools{max-height:240px;overflow:auto}.portal-form .portal-school{display:flex;align-items:center;gap:10px;padding:10px 5px;border-top:1px solid #f0f0f4;font-size:11px;line-height:1.5}.portal-form .portal-school input{width:17px;height:17px;flex-shrink:0;accent-color:#b94646}.portal-school small{display:block}.portal-school[hidden]{display:none!important}
@keyframes portal-float{to{transform:translate(55px,60px) scale(1.15)}}@keyframes portal-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:720px){.portal-header{padding:22px}.portal-main{padding:0 20px;margin-top:15px}.portal-brand>span{font-size:21px}.portal-hero{padding:20px 0 28px}.portal-hero h1,.portal-intro h1{letter-spacing:-2px}.portal-kicker{font-size:8px;letter-spacing:1.7px}.portal-hero p{font-size:13px}.portal-choices{grid-template-columns:1fr;gap:16px}.request-tile{padding:25px;min-height:290px}.request-tile h2{font-size:28px;margin-top:20px}.portal-form{padding:26px 22px;border-radius:22px}.portal-form h1{font-size:28px}.portal-form .field-row{grid-template-columns:1fr}.portal-login-layout{grid-template-columns:1fr;gap:30px;min-height:0}.portal-intro{text-align:center}.portal-intro h1{font-size:44px}.portal-intro>p{font-size:13px}.portal-stickers{justify-content:center;margin-top:18px}.portal-login-layout .portal-kicker{margin-top:20px}.portal-footer{font-size:9px}.portal-success{margin:40px 0}}
@media(prefers-reduced-motion:reduce){.portal-body *,.portal-body *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.portal-login-layout{grid-template-columns:minmax(0,430px);justify-content:center;gap:0}.login-modern{width:100%}.login-modern>.portal-icon{margin-bottom:12px}
