*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.ph-body{min-height:100vh;min-height:100dvh;font-family:Heebo,Inter,system-ui,-apple-system,sans-serif;background:url(/home_page_background.png) center center / cover no-repeat;display:flex;flex-direction:column}.ph-body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--portal-home-page-overlay);pointer-events:none}.ph-header{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:22px 48px;animation:ph-fade .5s ease both}.ph-logo-img{display:block;width:auto;height:90px}[dir=ltr] .ph-header{justify-content:flex-end}.ph-main{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:50px;padding:20px 24px 64px}.ph-welcome{text-align:center;animation:ph-fade .7s .1s ease both}.ph-welcome-title{color:var(--portal-home-heading);font-size:clamp(32px,5vw,64px);font-weight:900;letter-spacing:-.03em;line-height:1.12}.ph-welcome-sub{margin-top:12px;color:var(--portal-home-subheading);font-size:clamp(14px,1.6vw,20px);font-weight:400}.ph-cards{display:flex;width:100%;max-width:1280px;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:30px}.ph-card{position:relative;display:flex;overflow:hidden;width:370px;flex-direction:column;align-items:center;padding:52px 40px 42px;border:1px solid var(--portal-home-card-border);border-top-width:3px;border-radius:32px;outline:none;background:var(--portal-home-card-surface);box-shadow:var(--portal-home-card-shadow);color:inherit;text-align:center;text-decoration:none;backdrop-filter:blur(26px);cursor:pointer;transition:transform .65s cubic-bezier(.16,1,.3,1),box-shadow .5s ease;-webkit-backdrop-filter:blur(26px)}.ph-card:nth-child(1){animation:ph-rise .75s .08s cubic-bezier(.16,1,.3,1) both}.ph-card:nth-child(2){animation:ph-rise .75s .18s cubic-bezier(.16,1,.3,1) both}.ph-card:nth-child(3){animation:ph-rise .75s .28s cubic-bezier(.16,1,.3,1) both}.ph-card:nth-child(4){animation:ph-rise .75s .38s cubic-bezier(.16,1,.3,1) both}.ph-card:nth-child(5){animation:ph-rise .75s .46s cubic-bezier(.16,1,.3,1) both}.ph-card:focus-visible{outline:4px solid var(--portal-home-focus);outline-offset:5px}.ph-card--featured{padding-top:76px;padding-bottom:52px;border-top-width:4px;box-shadow:var(--portal-home-featured-shadow)}.ph-card:before,.ph-card:after{content:"";position:absolute;border-radius:50%;pointer-events:none;transition:transform .7s ease,opacity .5s ease}.ph-card:before{top:-75px;inset-inline-end:-70px;width:260px;height:260px;background:var(--ph-blob-primary);opacity:.1}.ph-card:after{bottom:20px;inset-inline-start:-35px;width:140px;height:140px;background:var(--ph-blob-secondary);opacity:.07}.ph-icon-wrap{position:relative;z-index:2;margin-bottom:26px}.ph-icon-wrap:before{content:"";position:absolute;top:-22px;right:-22px;bottom:-22px;left:-22px;border-radius:50%;background:var(--ph-glow);filter:blur(24px);opacity:0;pointer-events:none;transition:opacity .5s ease}.ph-icon{position:relative;z-index:1;display:flex;width:106px;height:106px;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,var(--ph-gradient-start),var(--ph-gradient-end));box-shadow:var(--portal-home-icon-shadow);transition:transform .5s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease}.ph-icon svg{width:46px;height:46px;color:#fff}.ph-name{position:relative;z-index:2;margin-bottom:11px;color:var(--ph-name);font-size:27px;font-weight:800;letter-spacing:-.025em;line-height:1.2;transition:letter-spacing .35s ease}.ph-desc{position:relative;z-index:2;flex:1;margin-bottom:30px;color:var(--portal-home-description);font-size:15.5px;font-weight:400;line-height:1.65}.ph-btn{position:relative;z-index:2;display:flex;width:100%;align-items:center;justify-content:center;gap:8px;padding:16px 26px;border-radius:16px;background:linear-gradient(135deg,var(--ph-gradient-start),var(--ph-gradient-end));box-shadow:var(--ph-button-shadow);color:#fff;font-size:16px;font-weight:700;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease}.ph-btn svg{width:15px;height:15px;flex-shrink:0}[dir=rtl] .ph-btn svg{transform:scaleX(-1)}.ph-card.is-tilted{transform:perspective(900px) translateY(-10px) rotateX(var(--ph-tilt-x)) rotateY(var(--ph-tilt-y));box-shadow:var(--portal-home-card-hover-shadow);transition:transform .08s ease,box-shadow .08s ease}.ph-card--admin{--ph-blob-primary: var(--portal-home-admin-blob);--ph-blob-secondary: var(--portal-home-admin-blob-secondary);--ph-gradient-start: var(--portal-home-admin-start);--ph-gradient-end: var(--portal-home-admin-end);--ph-glow: var(--portal-home-admin-glow);--ph-name: var(--portal-home-admin-name);--ph-button-shadow: var(--portal-home-admin-shadow);border-top-color:var(--portal-home-admin-border);background:var(--portal-home-admin-surface)}.ph-card--instr{--ph-blob-primary: var(--portal-home-instructor-blob);--ph-blob-secondary: var(--portal-home-instructor-blob-secondary);--ph-gradient-start: var(--portal-home-instructor-start);--ph-gradient-end: var(--portal-home-instructor-end);--ph-glow: var(--portal-home-instructor-glow);--ph-name: var(--portal-home-instructor-name);--ph-button-shadow: var(--portal-home-instructor-shadow);border-top-color:var(--portal-home-instructor-border);background:var(--portal-home-instructor-surface)}.ph-card--student{--ph-blob-primary: var(--portal-home-student-blob);--ph-blob-secondary: var(--portal-home-student-blob-secondary);--ph-gradient-start: var(--portal-home-student-start);--ph-gradient-end: var(--portal-home-student-end);--ph-glow: var(--portal-home-student-glow);--ph-name: var(--portal-home-student-name);--ph-button-shadow: var(--portal-home-student-shadow);border-top-color:var(--portal-home-student-border);background:var(--portal-home-student-surface)}.ph-card--system{--ph-blob-primary: var(--portal-home-system-blob);--ph-blob-secondary: var(--portal-home-system-blob-secondary);--ph-gradient-start: var(--portal-home-system-start);--ph-gradient-end: var(--portal-home-system-end);--ph-glow: var(--portal-home-system-glow);--ph-name: var(--portal-home-system-name);--ph-button-shadow: var(--portal-home-system-shadow);border-top-color:var(--portal-home-system-border);background:var(--portal-home-system-surface)}.ph-card--content{--ph-blob-primary: var(--portal-home-content-blob);--ph-blob-secondary: var(--portal-home-content-blob-secondary);--ph-gradient-start: var(--portal-home-content-start);--ph-gradient-end: var(--portal-home-content-end);--ph-glow: var(--portal-home-content-glow);--ph-name: var(--portal-home-content-name);--ph-button-shadow: var(--portal-home-content-shadow);border-top-color:var(--portal-home-content-border);background:var(--portal-home-content-surface)}@media(hover:hover)and (pointer:fine){.ph-card:hover:before{opacity:.2;transform:scale(1.18) translate(4px,-6px)}.ph-card:hover:after{opacity:.14;transform:scale(1.12) translate(-4px,5px)}.ph-card:hover .ph-icon-wrap:before{opacity:.62}.ph-card:hover .ph-icon{transform:scale(1.12) translateY(-7px)}.ph-card:hover .ph-name{letter-spacing:-.01em}.ph-card:hover .ph-btn{transform:translateY(-3px);box-shadow:var(--portal-home-button-hover-shadow)}}@keyframes ph-rise{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}@keyframes ph-fade{0%{opacity:0}to{opacity:1}}@media(max-width:1160px){.ph-card{width:316px;padding:44px 30px 36px}.ph-card--featured{padding-top:62px;padding-bottom:44px}.ph-cards{max-width:1020px;gap:20px}.ph-icon{width:92px;height:92px}.ph-icon svg{width:40px;height:40px}.ph-name{font-size:24px}}@media(max-width:820px){.ph-card{width:270px;padding:36px 22px 30px}.ph-card--featured{padding-top:52px;padding-bottom:38px}.ph-cards{gap:14px}.ph-icon{width:82px;height:82px}.ph-icon svg{width:34px;height:34px}.ph-name{font-size:21px}.ph-desc{font-size:14px}}@media(max-width:640px){.ph-header{padding:16px 20px}.ph-logo-img{height:60px}.ph-main{gap:32px;padding:16px 16px 48px}.ph-cards{flex-flow:column nowrap;align-items:center}.ph-card{width:100%;max-width:400px;padding:36px 26px 30px}.ph-card--featured{padding-top:44px;padding-bottom:36px}}@media(max-width:380px){.ph-card{padding-inline:20px;border-radius:26px}.ph-main{padding-inline:12px}.ph-welcome-title{overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){.ph-header,.ph-welcome,.ph-card{animation:none}.ph-card,.ph-card:before,.ph-card:after,.ph-icon-wrap:before,.ph-icon,.ph-name,.ph-btn{transition:none}.ph-card.is-tilted,.ph-card:hover .ph-icon,.ph-card:hover .ph-btn{transform:none}}
