@import url('school-logo.css?v=20261007-2');
*{box-sizing:border-box}.portal-home{margin:0;background:#f5f8fe;color:#071e48;font:16px/1.5 system-ui,"Segoe UI",sans-serif}.portal-home-layout{display:grid;grid-template-columns:1fr 1fr;width:100%;min-height:100svh;margin:0}.portal-story{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:48px 48px 42px;min-height:850px;border-radius:0 36px 36px 0;background:radial-gradient(ellipse at 100% 0,#125da9,transparent 58%),linear-gradient(130deg,#02182e,#032750);color:white}.portal-story:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#01182ce0,transparent 90%)}.portal-globe{position:absolute;inset:120px -190px 40px 60px;z-index:-2;background:url(portal-globe.svg?v=20261105-spin1) center/contain no-repeat;opacity:.85;pointer-events:none}.portal-story header{display:flex;gap:20px;justify-content:space-between;align-items:center}.portal-brand{display:flex;align-items:center;gap:16px;min-width:0}.portal-brand strong{font-size:27px;line-height:1.25;overflow-wrap:anywhere;display:block}.portal-brand small{display:block;font-size:11px;letter-spacing:4px;margin-top:4px}.portal-brand-icon{display:grid;place-items:center;border-radius:50%;width:66px;height:66px;flex-shrink:0;background:#ffd638;color:#062951;font-size:44px;font-weight:900}.portal-brand-icon svg{width:40px;height:40px}.portal-tradition{font-size:11px;letter-spacing:2px;line-height:1.6;white-space:pre-line;border-left:2px solid #ffd638;padding-left:17px}.portal-story-message{margin-top:120px}.portal-eyebrow{font-size:12px;font-weight:650;letter-spacing:3px;margin:0 0 22px}.portal-story-message h1{font-size:clamp(44px,4.8vw,74px);letter-spacing:-2px;line-height:1.12;margin:0 0 28px;font-weight:800;overflow-wrap:anywhere}.portal-story-message h1 span{color:#ffda32}.portal-description{white-space:pre-line;font-size:20px;line-height:1.55;color:#dbe6f5;margin:0;max-width:450px}.portal-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:auto;padding-top:65px}.portal-benefits>div{display:flex;gap:12px;align-items:flex-start;font-size:12px;line-height:1.45;border-right:1px solid #5c94c32b;padding-right:8px}.portal-benefits>div:last-child{border:0}.portal-benefits svg{width:28px;height:28px;flex-shrink:0;color:#42adf3}.portal-signature{position:relative;width:260px;font:italic 26px/1.25 "Segoe Print",cursive;margin:46px 0 12px;transform:rotate(-5deg)}.portal-signature:after{content:"";display:block;margin:15px auto 0;background:#ffdb36;width:105px;height:3px;border-radius:50%;transform:rotate(-8deg)}.portal-home svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.portal-access{position:relative;padding:68px 44px 26px;display:flex;flex-direction:column;justify-content:center;min-width:0}.portal-help-button{position:absolute;right:36px;top:24px;background:transparent;border:1px solid #e0e9f5;border-radius:8px;padding:6px 10px;color:#153b73;font:inherit;cursor:pointer}.portal-access header{padding:0 30px}.portal-access .portal-eyebrow{color:#5189bd;margin-bottom:14px}.portal-access h2{font-size:clamp(34px,3.1vw,48px);white-space:pre-line;line-height:1.1;letter-spacing:-1.2px;margin:0 0 22px;overflow-wrap:anywhere}.portal-access header>p:last-child{color:#5c6b7f;font-size:17px;max-width:410px;margin:0 0 28px}.portal-profiles{display:grid;gap:16px}.portal-profile{--accent:#1558b9;--surface:#eaf4ff;--badge:#cfe5ff;display:flex;align-items:center;gap:20px;padding:18px;border:1px solid #d1e2f6;border-radius:20px;background:var(--surface);text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s;min-width:0}.portal-profile-teacher{--accent:#12673e;--surface:#edf8f2;--badge:#cdeedb;border-color:#d5eadd}.portal-profile-admin{--accent:#916500;--surface:#fff8ed;--badge:#ffedc8;border-color:#f0e4cf}.portal-profile:hover{transform:translateY(-2px);box-shadow:0 10px 25px #1c437b15}.portal-profile-icon{display:grid;place-items:center;width:88px;height:88px;flex-shrink:0;border-radius:19px;background:var(--badge);color:var(--accent);font-size:42px;font-weight:800}.portal-profile-icon svg{width:50px;height:50px;stroke-width:1.9}.portal-profile-copy{min-width:0;flex:1}.portal-profile-copy strong{font-size:23px;line-height:1.2;display:block;overflow-wrap:anywhere}.portal-profile-copy small{display:block;color:#566575;font-size:15px;line-height:1.5;margin-top:7px;overflow-wrap:anywhere}.portal-profile-arrow{display:grid;place-items:center;border-radius:50%;background:var(--badge);color:var(--accent);width:44px;height:44px;flex-shrink:0;font-size:27px}.portal-support{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #ccd9ea;margin-top:28px;padding-top:18px;font-size:11px;color:#203c63}.portal-support>div{display:flex;gap:12px;align-items:center}.portal-support svg{width:23px;height:26px;flex-shrink:0}.portal-support strong{font-weight:600;display:block}.portal-support small{display:block;color:#63718a}.portal-support button{padding:0;border:0;background:transparent;text-decoration:underline;color:#184f99;cursor:pointer;font:inherit}.portal-access footer{font-size:11px;color:#5f6e82;text-align:center;margin-top:30px}.portal-access footer strong{color:#223a5a;font-weight:600}.portal-access footer span{padding:0 10px}.portal-home a:focus-visible,.portal-home button:focus-visible{outline:3px solid #4b96f2;outline-offset:4px}.portal-help-dialog{border:1px solid #d5e2f5;border-radius:20px;padding:28px;width:500px;max-width:calc(100vw - 32px);color:#183656;font:16px/1.6 system-ui;box-shadow:0 20px 80px #06254d40}.portal-help-dialog::backdrop{background:#031f4b70;backdrop-filter:blur(4px)}.portal-help-dialog h2{font-size:24px;margin:8px 28px 14px 0}.portal-help-dialog p{white-space:pre-line;overflow-wrap:anywhere}.portal-help-dialog>button{position:absolute;right:14px;top:10px;border:0;background:#edf4ff;border-radius:9px;width:36px;height:36px;font-size:24px;cursor:pointer;color:#174b90}.portal-help-dialog nav{display:grid;gap:12px}.portal-help-dialog a{color:#165bb7}
@media(min-width:1600px){.portal-story{padding:60px}.portal-access{padding:80px 64px 36px}.portal-story-message{margin-top:150px}.portal-story{min-height:980px}}
@media(max-width:1100px){.portal-story{padding:32px;min-height:780px}.portal-tradition{display:none}.portal-brand strong{font-size:23px}.portal-story-message{margin-top:100px}.portal-access{padding:68px 26px 26px}.portal-access header{padding:0 12px}.portal-profile{gap:14px;padding:16px}.portal-profile-icon{width:64px;height:70px}.portal-profile-icon svg{width:38px;height:38px}.portal-profile-copy strong{font-size:20px}.portal-profile-copy small{font-size:13px}.portal-profile-arrow{width:34px;height:34px}.portal-description{font-size:18px}.portal-benefits{gap:9px}.portal-benefits>div{display:block}.portal-benefits svg{display:block;margin-bottom:8px}.portal-support{flex-wrap:wrap}}
@media(max-width:760px){.portal-home-layout{display:block}.portal-story{border-radius:0 0 28px 28px;min-height:0;padding:28px 24px}.portal-brand-icon{width:52px;height:52px;font-size:34px}.portal-brand small{font-size:9px;letter-spacing:3px}.portal-story-message{margin-top:48px}.portal-story-message h1{font-size:44px;letter-spacing:-1px}.portal-description{font-size:16px}.portal-benefits{padding-top:30px}.portal-benefits>div{font-size:11px}.portal-signature{font-size:21px;margin:28px 0 8px}.portal-globe{inset:35px -90px 0 20px}.portal-access{padding:68px 20px 26px}.portal-access header{padding:0}.portal-access h2{font-size:36px}.portal-access header>p:last-child{font-size:16px}.portal-profile{padding:16px 12px;gap:12px;border-radius:17px}.portal-profile-icon{width:60px;height:68px}.portal-profile-copy strong{font-size:18px}.portal-profile-copy small{font-size:13px}.portal-profile-arrow{width:30px;height:30px;font-size:23px}.portal-help-button{right:20px;top:20px}.portal-support{gap:18px}.portal-access footer{margin-top:26px}}
.portal-access .portal-entry-heading{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:start;gap:15px;padding:0 30px;margin:0 0 25px}.portal-entry-heading-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #d4e4f7;border-radius:14px;background:#edf5ff;color:#1764b9;box-shadow:0 5px 16px #194d8610}.portal-entry-heading-icon svg{width:25px;height:25px;stroke-width:1.8}.portal-entry-heading-copy{min-width:0}.portal-access .portal-entry-heading .portal-eyebrow{font-size:10px;letter-spacing:2.5px;margin:1px 0 6px;color:#5a8ec4}.portal-access .portal-entry-heading h2{font-size:clamp(29px,2.4vw,38px);line-height:1.12;letter-spacing:-.8px;white-space:pre-line;margin:0 0 7px}.portal-access .portal-entry-heading .portal-entry-heading-copy>p:last-child{max-width:430px;margin:0;color:#647791;font-size:15px;line-height:1.5}.portal-entry-heading+.portal-profiles{margin-top:0}@media(max-width:1100px){.portal-access .portal-entry-heading{padding:0 12px;grid-template-columns:42px minmax(0,1fr);gap:12px;margin-bottom:22px}.portal-entry-heading-icon{width:42px;height:42px;border-radius:12px}.portal-entry-heading-icon svg{width:23px;height:23px}.portal-access .portal-entry-heading h2{font-size:30px}.portal-access .portal-entry-heading .portal-entry-heading-copy>p:last-child{font-size:14px}}@media(max-width:760px){.portal-access .portal-entry-heading{padding:0;margin-bottom:21px}.portal-access .portal-entry-heading h2{font-size:29px}.portal-access .portal-entry-heading .portal-entry-heading-copy>p:last-child{font-size:14px}}
@media(prefers-reduced-motion:reduce){.portal-profile{transition:none}.portal-profile:hover{transform:none}}

.portal-profile-parent{--accent:#6946ab;--surface:#f4efff;--badge:#e6d8fa;border-color:#e4d8f3}

.portal-profile-icon{position:relative;background:linear-gradient(145deg,var(--badge),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:inset 0 1px 0 #ffffffa8,0 5px 14px #16365f06;transition:box-shadow .25s,transform .25s}
.portal-profile-icon .profile-symbol{stroke-width:1.7;overflow:visible;animation:profile-float 6s ease-in-out infinite}
.portal-profile-icon .profile-symbol-soft{fill:currentColor;fill-opacity:.1;stroke:none}
.portal-profile-teacher .profile-symbol{animation-delay:-1.5s}.portal-profile-parent .profile-symbol{animation-delay:-3s}.portal-profile-admin .profile-symbol{animation-delay:-4.5s}
.profile-symbol-main{transform-box:fill-box;transform-origin:center;transition:transform .35s}
.portal-profile-arrow{transition:transform .25s,background .25s,box-shadow .25s}
.portal-profile:is(:hover,:focus-visible) .portal-profile-icon{transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffffc9,0 8px 20px #15376212}
.portal-profile:is(:hover,:focus-visible) .portal-profile-arrow{transform:translateX(3px);box-shadow:0 3px 10px #173b6512}
.portal-profile-student:is(:hover,:focus-visible) .profile-symbol-main{transform:translateY(-1.5px) rotate(-5deg)}
.portal-profile-teacher:is(:hover,:focus-visible) .profile-symbol-main{transform:rotate(-4deg)}
.portal-profile-parent:is(:hover,:focus-visible) .profile-heart{animation:profile-heartbeat 1.2s ease-in-out infinite}
.portal-profile-admin:is(:hover,:focus-visible) .profile-gear{animation:profile-gear-turn 8s linear infinite}
@keyframes profile-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes profile-heartbeat{0%,100%{transform:scale(1)}40%{transform:scale(1.18)}60%{transform:scale(1.06)}}
@keyframes profile-gear-turn{to{transform:rotate(360deg)}}
.portal-home[data-profile-motion=off] :is(.profile-symbol,.profile-symbol-main){animation:none!important}
@media(prefers-reduced-motion:reduce){.portal-profile-icon,.portal-profile-arrow,.profile-symbol-main{transition:none!important}.portal-profile .profile-symbol,.portal-profile .profile-symbol-main{animation:none!important}.portal-profile:is(:hover,:focus-visible) :is(.portal-profile-icon,.portal-profile-arrow,.profile-symbol-main){transform:none!important}}

/* Decorative halo; its center stays fixed on the existing globe light. */
.portal-globe .portal-signal{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.portal-globe .portal-signal-ring{fill:none;stroke:#69e1ff;stroke-width:1.2;transform-box:view-box;transform-origin:595px 180px;opacity:0;animation:portal-signal-pulse 3s cubic-bezier(.2,.6,.35,1) infinite}
@keyframes portal-signal-pulse{0%{transform:scale(.65);opacity:.65}75%,100%{transform:scale(2.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.portal-globe .portal-signal-ring{animation:none;transform:none;opacity:.18}}

.school-location-trigger{position:absolute;z-index:4;display:grid;place-items:center;width:48px;height:48px;transform:translate(-50%,-50%);border:1px solid transparent;border-radius:50%;background:transparent;color:#b7f2ff;cursor:pointer;touch-action:manipulation}.school-location-trigger:hover,.school-location-trigger:focus-visible{background:#65d8ff12;border-color:#98eaff99;box-shadow:0 0 0 7px #61dcff10;outline:2px solid #a8edff;outline-offset:5px}.school-location-trigger span{position:absolute;right:48px;white-space:nowrap;background:#082c4ef0;border:1px solid #4693b780;border-radius:10px;padding:7px 11px;font:500 12px system-ui;opacity:0;pointer-events:none;transition:opacity .2s}.school-location-trigger:is(:hover,:focus-visible) span{opacity:1}.school-location-card{padding:0;width:560px;max-width:calc(100vw - 28px);max-height:90svh;border:1px solid #bfd9f2;border-radius:28px;color:#143653;background:#fff;box-shadow:0 30px 130px #00122a77;font:15px/1.55 system-ui;overflow:auto}.school-location-card::backdrop{background:#02182ec4;backdrop-filter:blur(8px)}.school-place-hero{position:relative;padding:34px 30px 27px;background:radial-gradient(ellipse at 95% 15%,#1e77b8,transparent 65%),linear-gradient(135deg,#062440,#124a7d);color:white}.school-place-hero:before{content:"";position:absolute;inset:0;border-radius:28px 28px 0 0;background:radial-gradient(circle at 92% 45%,transparent 28%,#63dcff20 28.4%,transparent 28.8%);pointer-events:none}.school-place-eyebrow{display:block;padding-right:28px;font-size:8px;letter-spacing:1.6px;color:#c4e7f4}.school-place-close{position:absolute;right:18px;top:16px;width:36px;height:36px;border:1px solid #ffffff44;border-radius:12px;background:#ffffff0e;color:white;font-size:25px;cursor:pointer}.school-place-brand{display:flex;align-items:center;gap:18px;margin:27px 0 21px}.school-place-brand img{object-fit:contain;filter:drop-shadow(0 6px 10px #0003)}.school-place-brand small{font-size:10px;letter-spacing:2px;color:#a9daef}.school-place-brand h2{font-size:28px;letter-spacing:-.5px;line-height:1.2;margin:6px 0 0;color:white}.school-place-region{display:flex;gap:8px;flex-wrap:wrap}.school-place-region span{border:1px solid #a2d9ec44;background:#ffffff0d;border-radius:30px;padding:5px 12px;font-size:11px;color:#e0f3fb}.school-place-body{padding:23px 28px 22px}.school-place-map{height:112px;border:1px solid #d9eaf0;border-radius:18px;background:linear-gradient(28deg,transparent 40%,#ffffffc9 41%,#fff 46%,transparent 47%),linear-gradient(118deg,#eaf5f7 24%,#fff 25%,#fff 28%,#eaf5f7 29%,#f1f7fa 75%);position:relative;display:flex;align-items:flex-end;padding:13px 16px;overflow:hidden}.school-place-map>span{font-size:11px;color:#48718b;position:relative}.school-place-pin{position:absolute;left:calc(50% - 19px);top:18px;border-radius:50%;width:38px;height:38px;background:#156cbb;box-shadow:0 0 0 8px #2387c518,0 8px 20px #1d609d35;display:grid;place-items:center}.school-place-pin svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.7}.school-place-address{padding:22px 0 17px}.school-place-label{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#6b8198}.school-place-address p{font-size:16px;line-height:1.65;margin:9px 0;color:#244863;white-space:pre-line}.school-place-phone{font-size:14px;color:#1567b8;text-decoration:none}.school-place-actions{display:flex;gap:10px}.school-place-actions a,.school-place-actions button{font:650 13px system-ui;min-height:46px;display:flex;align-items:center;justify-content:center;border-radius:13px;padding:12px 18px;text-decoration:none;cursor:pointer}.school-place-actions a{gap:22px;flex:1;background:linear-gradient(130deg,#1269ba,#138bba);color:white;border:1px solid #1271b4;box-shadow:0 6px 15px #0c69ae22}.school-place-actions button{background:#f5f9fd;border:1px solid #d0e0ed;color:#31556f}.school-place-feedback{font-size:12px;color:#16865a;margin:10px 0 0;min-height:18px}.school-place-source{font-size:10px;color:#798c9e;margin:5px 0 0}.school-location-card :focus-visible{outline:3px solid #3e9ce9;outline-offset:3px}@media(max-width:500px){.school-place-hero{padding:30px 22px 23px}.school-place-body{padding:20px}.school-place-brand h2{font-size:24px}.school-place-brand img{width:64px;height:64px}.school-place-actions{flex-direction:column}.school-place-eyebrow{font-size:7px;letter-spacing:1px}}@media(prefers-reduced-motion:reduce){.school-location-trigger span{transition:none}}

.school-location-card .school-place-hero{display:block}@media(max-width:760px){.school-location-trigger{position:relative;left:auto!important;top:auto!important;transform:none;width:max-content;height:auto;max-width:100%;margin:18px 0 0;padding:0;border:0}.school-location-trigger span{position:static;opacity:1;padding:9px 13px;font-size:12px;border-color:#69c8ea55;background:#ffffff0c;pointer-events:auto}.school-location-trigger span:before{content:"⌖ ";color:#87e5ff}.school-location-trigger:hover{box-shadow:none;outline:none}}

.school-place-region>span{display:inline-flex;align-items:center;gap:7px}.school-country-flag{display:block;width:22px;height:16px;flex:0 0 auto;border-radius:2px;box-shadow:0 0 0 1px #ffffff30}

.school-place-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.school-place-actions a{gap:8px}.school-place-actions a.school-place-secondary{background:#f0f6fc;border-color:#c9dfef;box-shadow:none;color:#155d99}.school-place-actions>:focus-visible{outline:3px solid #3e9ce9;outline-offset:3px}@media(max-width:380px){.school-place-actions{grid-template-columns:1fr}}
