*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body.welcome-page{min-height:100vh;min-height:100dvh;margin:0;overflow-x:hidden;background:#09070f;color:#f8f5ff;font-family:Catamaran,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.welcome-page a{color:inherit;text-decoration:none}
.welcome-page a:focus-visible{outline:2px solid #e1c7ff;outline-offset:6px}
.welcome-scene,.welcome-photo,.welcome-glow,.welcome-grain{position:fixed;inset:0;pointer-events:none}
.welcome-scene{z-index:0;overflow:hidden;background:radial-gradient(circle at 50% 42%,#33244c 0,#181223 34%,#08070d 72%)}
.welcome-photo{background:url(reference-media/classroom-venue-wide.jpg) center 42%/cover no-repeat;opacity:.14;filter:grayscale(1) blur(5px);transform:scale(1.08);animation:welcome-photo-in 1.7s ease-out both}
.welcome-glow{background:radial-gradient(ellipse 45% 42% at 50% 42%,#9878c347 0,#5b3e8426 42%,transparent 100%),linear-gradient(110deg,transparent 36%,#d8baff0b 50%,transparent 64%)}
.welcome-grain{opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}
.welcome-orbit{position:absolute;left:50%;top:46%;width:min(1000px,100vw);aspect-ratio:1.6;border:1px solid #c6a7ec2e;border-radius:50%;box-shadow:inset 0 0 80px #8264b51c,0 0 90px #7955b328;transform:translate(-50%,-50%) rotate(-19deg);animation:welcome-orbit-in 1.4s cubic-bezier(.2,.7,.2,1) both}
.welcome-orbit-two{width:min(790px,82vw);aspect-ratio:1.65;border-color:#dec8fb1a;transform:translate(-50%,-50%) rotate(17deg);animation-delay:.14s}
.welcome-header,.welcome-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;padding:28px clamp(22px,4.5vw,74px)}
.welcome-brand{display:flex;align-items:center;gap:11px;font:500 15px/1 Montserrat,Arial,sans-serif;letter-spacing:.1em}
.welcome-brand img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 13px #cdb1ff7a)}
.welcome-brand span span{color:#d8c5f7}
.welcome-header-note,.welcome-footer{font:500 10px/1.4 Montserrat,Arial,sans-serif;letter-spacing:.24em;color:#cdc0da}
.welcome-main{position:relative;z-index:1;min-height:calc(100dvh - 151px);display:grid;place-items:center;padding:35px 22px 70px;text-align:center}
.welcome-center{width:min(100%,950px);animation:welcome-content-in 1s .12s cubic-bezier(.2,.7,.2,1) both}
.welcome-kicker{display:flex;justify-content:center;align-items:center;gap:18px;margin:0 0 30px;color:#d7c3ee;font:500 clamp(10px,1vw,12px)/1.4 Montserrat,Arial,sans-serif;letter-spacing:.28em}
.welcome-kicker span{display:block;width:36px;height:1px;background:linear-gradient(90deg,transparent,#c7a8ed)}
.welcome-kicker span:last-child{transform:rotate(180deg)}
.welcome-emblem{width:112px;height:112px;margin:0 auto 26px;display:grid;place-items:center;border:1px solid #d9c2fc42;border-radius:50%;background:radial-gradient(circle,#8d6fb53b,#1b1329a8 63%,#ffffff08);box-shadow:0 0 58px #b589e954,inset 0 0 27px #c6a0f12e}
.welcome-emblem img{width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 0 12px #f1e5ff9a)}
.welcome-center h1{margin:0;color:#fff;font:300 clamp(39px,8.4vw,110px)/1.05 Montserrat,Arial,sans-serif;letter-spacing:.075em;text-shadow:0 0 46px #e0caff2e;white-space:nowrap}
.welcome-center h1 span{font-weight:500;color:#e5d6ff;background:linear-gradient(105deg,#fff 12%,#a88bd8 48%,#f7efff 84%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.welcome-tagline{margin:22px 0 0;color:#e2d8ef;font:500 clamp(10px,1.15vw,14px)/1.6 Montserrat,Arial,sans-serif;letter-spacing:.32em}
.welcome-description{max-width:600px;margin:39px auto 28px;color:#d1c8da;font:400 clamp(17px,1.6vw,21px)/1.55 Catamaran,Arial,sans-serif}
.welcome-enter{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:27px;min-width:244px;min-height:57px;padding:14px 18px 14px 34px;border:1px solid #d6bdf299;border-radius:16px;background:linear-gradient(135deg,#6d4e92,#352445);box-shadow:inset 0 1px 0 #ffffff55,0 13px 35px #0008,0 0 31px #a87bd13d;font:600 12px/1.2 Montserrat,Arial,sans-serif;letter-spacing:.2em;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease}
.welcome-enter:hover{transform:translateY(-4px);border-color:#f2e2ff;background:linear-gradient(135deg,#8a65b1,#4e3464);box-shadow:inset 0 1px 0 #ffffff88,0 18px 39px #0009,0 0 42px #b98ce076}
.welcome-enter:active{transform:translateY(-1px)}
.welcome-arrow{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#ffffff25;font:20px/1 Catamaran,sans-serif;transition:transform .25s ease}
.welcome-enter:hover .welcome-arrow{transform:translate(2px,-2px)}
.welcome-hint{margin:16px 0 0;color:#b6a9c7;font:400 12px/1.5 Catamaran,Arial,sans-serif;letter-spacing:.04em}
.welcome-footer{padding-top:0;padding-bottom:25px;color:#ad9cbe}
@keyframes welcome-content-in{from{opacity:0;transform:translateY(23px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes welcome-orbit-in{from{opacity:0;transform:translate(-50%,-50%) rotate(-25deg) scale(.76)}to{opacity:1;transform:translate(-50%,-50%) rotate(-19deg) scale(1)}}
@keyframes welcome-photo-in{from{opacity:0;transform:scale(1.16)}to{opacity:.14;transform:scale(1.08)}}
@media(max-width:700px){.welcome-header{padding:20px 22px}.welcome-header-note{display:none}.welcome-main{min-height:calc(100dvh - 110px);padding:20px 15px 55px}.welcome-kicker{gap:9px;letter-spacing:.13em}.welcome-kicker span{width:18px}.welcome-emblem{width:88px;height:88px;margin-bottom:27px}.welcome-emblem img{width:53px;height:53px}.welcome-center h1{font-size:clamp(31px,8.1vw,55px);letter-spacing:.025em}.welcome-tagline{letter-spacing:.16em;margin-top:18px}.welcome-description{max-width:390px;margin:32px auto 24px;font-size:17px}.welcome-footer{padding:0 22px 20px;font-size:8px;letter-spacing:.12em}}
@media(max-width:380px){.welcome-center h1{font-size:29px}.welcome-tagline{font-size:9px}}
@media(prefers-reduced-motion:reduce){.welcome-page *, .welcome-page *:before,.welcome-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
