:root{--scene-x:0deg;--scene-y:0deg;--light-x:47%;--light-y:35%}.neon-hero{position:relative;padding:130px 0 22px!important;min-height:0!important;background:radial-gradient(ellipse at 82% 30%,#142c60 0,transparent 51%),#080f22;isolation:isolate;overflow:hidden}.neon-layout{display:grid;grid-template-columns:.93fr 1.07fr;gap:0;align-items:center;position:relative;min-height:480px}.neon-hero .hero-copy{z-index:4;position:relative;max-width:535px;padding:5px 0 38px}.neon-hero .eyebrow{font-size:11px;color:#c4d5ed;background:#10203b;border-color:#2d4262;margin-bottom:27px}.neon-hero h1{font-size:clamp(45px,5.5vw,78px)!important;line-height:1.04!important;letter-spacing:-.055em;max-width:600px;margin:0 0 24px;color:#f6f8ff}.neon-hero h1 span{color:#91b5ff;display:inline}.neon-hero .hero-lead{font-size:16px;line-height:1.8;color:#b4c4dd;max-width:440px;margin:0 0 29px}.neon-hero .hero-actions{gap:12px;display:flex;flex-wrap:wrap;margin:0}.neon-hero .hero-actions .btn{padding:14px 20px;font-size:13px;border-radius:12px}.neon-hero .btn-primary{background:#2d68ff;box-shadow:0 6px 26px #2460e83b;color:white}.neon-hero .btn-ghost{color:#e4edff;border-color:#354969;background:#10203966}.hero-footnote{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.025em;color:#8299bd;margin-top:27px}.hero-footnote i{width:3px;height:3px;border-radius:50%;background:#5278ba}.separation-oval{position:absolute;left:28%;top:15%;width:40%;height:77%;border-radius:50%;background:radial-gradient(ellipse,#030915d9 0,#0309158c 40%,transparent 71%);z-index:2;pointer-events:none;transform:rotate(-18deg)}.cursor-veil{position:absolute;inset:0;background:radial-gradient(circle 190px at var(--light-x) var(--light-y),#020611d9,#03081777 45%,transparent 80%);pointer-events:none;z-index:3;opacity:0;transition:opacity .25s}.neon-hero:hover .cursor-veil{opacity:1}.neon-scene{height:470px;position:relative;perspective:1100px;isolation:isolate;z-index:3;touch-action:pan-y}.scene-world{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--scene-x)) rotateY(var(--scene-y));transition:transform .12s ease-out}.scene-halo{position:absolute;inset:0 -10%;background:radial-gradient(ellipse at 65% 50%,#217cff24,transparent 65%)}.light-column{position:absolute;top:-75px;bottom:50px;width:270px;left:46%;clip-path:polygon(36% 0,64% 0,100% 100%,0 100%);background:linear-gradient(#82b8ff00 0,#5899ff0b 15%,#3885ff1a 70%,#80bfff40 100%);opacity:.8}.light-line{position:absolute;height:82%;width:1px;top:-20px;background:linear-gradient(transparent,#75acff55,#85baff00);box-shadow:0 0 18px #76acff55}.line-a{left:60%;transform:rotate(-10deg)}.line-b{left:76%;transform:rotate(9deg)}.logo-sculpture{position:absolute;left:48%;top:18%;width:205px;height:205px;transform:translateZ(-35px) rotateX(8deg) rotateY(-19deg) rotateZ(3deg);transform-style:preserve-3d;filter:drop-shadow(0 20px 25px #0009)}.logo-sculpture img{width:100%;height:100%;border-radius:25%;position:absolute;inset:0;transform:translateZ(14px);box-shadow:inset 0 0 0 1px #bddfff,0 0 35px #73abff27;object-fit:contain}.logo-depth{position:absolute;inset:5px -9px -9px 7px;background:linear-gradient(110deg,#0b2560,#4f9af8);border-radius:25%;transform:translateZ(-10px);box-shadow:9px 10px 0 #0e326e,10px 11px 0 1px #66aeff77}.letter{position:absolute;transform-style:preserve-3d;line-height:1;font-family:'Noto Sans KR','Malgun Gothic',sans-serif;font-weight:900;color:#4b91ff;text-shadow:1px 1px #3687ff,2px 3px #1c63cc,3px 5px #164a9a,5px 8px #103a7f,7px 11px #0e2a5c,10px 15px 16px #0007;user-select:none}.letter span{display:block;background:linear-gradient(135deg,#e1f1ff,#80baff 25%,#367cf0 70%,#9dccff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.letter-han{font-size:134px;left:11%;top:28%;transform:translateZ(70px) rotateZ(-13deg) rotateY(-15deg)}.letter-geul{font-size:120px;left:47%;top:54%;transform:translateZ(92px) rotateZ(13deg) rotateY(15deg)}.letter-ga{font-size:60px;left:80%;top:5%;transform:translateZ(10px) rotateZ(13deg)}.letter-na{font-size:55px;left:18%;top:72%;transform:translateZ(50px) rotateZ(-14deg)}.letter-m{font-size:41px;left:85%;top:69%;transform:translateZ(30px) rotateZ(17deg)}.neon-plinth{position:absolute;bottom:19px;width:87%;height:80px;left:12%;z-index:-1}.plinth-top{position:absolute;inset:0 0 7px;border-radius:50%;background:radial-gradient(ellipse,#31548c88 5%,#122442 56%,#0a1837 68%);border:1px solid #688fc766;box-shadow:inset 0 -2px 2px #8ad2ff88,0 3px 0 #0a1730,0 7px 0 #0a1730,0 9px 0 #2d7af8,0 11px 11px #3a9cff77}.plinth-lip{position:absolute;left:4%;right:4%;bottom:4px;height:32px;border-radius:50%;border-bottom:2px solid #b4ddff;box-shadow:0 7px 22px #1874ff77}.plinth-glow{position:absolute;inset:40px -16% -25px;background:radial-gradient(ellipse,#187dff4d,transparent 68%);z-index:-1}.scene-caption{position:absolute;bottom:-20px;left:33%;font-size:9px;letter-spacing:.2em;color:#8ab7f8;display:flex;gap:9px;align-items:center}.scene-caption>span{width:4px;height:4px;background:#7dc4ff;box-shadow:0 0 14px #78bbff;border-radius:50%}.neon-hero~.courses-section{padding-top:30px}.stacked .course-card{opacity:1!important}.stacked .course-card .course-symbol.sinhala-symbol,.stacked .course-card:not(.featured) .course-symbol.sinhala-symbol,.course-title-fm{color:#fff!important;-webkit-text-fill-color:#fff!important;text-shadow:0 2px 8px #00246388}.stacked .course-banner{background:linear-gradient(125deg,#0b2b67,#2059c8 65%,#4d7bdc)}
@media(min-width:1450px){.neon-layout{min-height:490px}.neon-hero{padding-top:125px!important}.neon-scene{height:480px}}
@media(max-width:850px){.neon-hero{padding-top:108px!important}.neon-layout{grid-template-columns:1fr 1fr;min-height:400px}.neon-hero h1{font-size:48px!important}.neon-hero .hero-lead{font-size:14px}.neon-scene{height:390px;transform:scale(.83);transform-origin:25% center;width:115%}.neon-hero .hero-copy{padding-bottom:20px}.separation-oval{left:20%;width:60%}.hero-footnote{font-size:10px;gap:8px}}
@media(max-width:600px){.neon-layout{display:flex;flex-direction:column;gap:0}.neon-hero{padding-top:110px!important;padding-bottom:15px!important}.neon-hero .hero-copy{padding:0;max-width:none;width:100%;z-index:4}.neon-hero h1{font-size:49px!important;margin-bottom:17px}.neon-hero .eyebrow{margin-bottom:22px;font-size:9px}.neon-hero .hero-lead{max-width:360px;line-height:1.7;font-size:14px;margin-bottom:22px}.neon-scene{height:320px;width:460px;max-width:123%;transform:scale(.83);transform-origin:50% center;margin:-4px 0 -30px}.logo-sculpture{width:166px;height:166px;top:16%;left:49%}.letter-han{font-size:112px;top:27%}.letter-geul{font-size:93px;top:51%}.letter-ga{font-size:42px;top:3%}.letter-na{font-size:43px}.letter-m{font-size:33px}.neon-plinth{bottom:6px}.scene-caption{bottom:-30px;font-size:8px;left:27%}.separation-oval{left:0;top:28%;height:50%;width:100%}.hero-footnote{margin-top:18px}.cursor-veil{display:none}.neon-hero .hero-actions .btn{font-size:12px;padding:12px 16px}.neon-hero~.courses-section{padding-top:20px}}
@media(prefers-reduced-motion:reduce){.scene-world{transition:none;transform:none!important}.cursor-veil{display:none}}

/* Centred copy and actions beneath both columns. */
.neon-hero .hero-copy{text-align:center;justify-self:center;padding:15px 14px}.neon-hero .hero-lead{margin:0 auto 24px}.neon-hero .eyebrow{justify-content:center}.hero-bottom{position:relative;z-index:5;padding-top:28px;padding-bottom:25px;text-align:center}.hero-bottom .hero-actions,.hero-bottom .hero-footnote{justify-content:center}.hero-bottom .hero-footnote{margin-top:19px}.neon-scene{justify-self:center;width:100%}.cursor-veil{background:radial-gradient(ellipse 330px 290px at var(--light-x) var(--light-y),#020611df,#03081788 48%,transparent 80%)}.scene-world{transition:none;transform:translate3d(var(--drift-x,0px),var(--drift-y,0px),0) rotateX(var(--scene-x)) rotateY(var(--scene-y))}.scene-halo{transform:translate(var(--halo-x,0px),var(--halo-y,0px))}.neon-hero .hero-actions .btn{min-height:48px;display:inline-flex;align-items:center;gap:10px}
.campus-stats{gap:18px!important;border:0!important;padding:48px 20px!important}.campus-stats>div{position:relative;flex:1;max-width:290px;min-width:190px!important;border:1px solid #739cff35;background:linear-gradient(145deg,#152b5088,#0a152a);border-radius:22px;padding:30px 24px!important;box-shadow:inset 0 1px #c4d9ff12,0 12px 30px #0002;overflow:hidden}.campus-stats>div:before{content:'';position:absolute;top:0;left:28%;width:44%;height:2px;background:#73a5ff;box-shadow:0 0 23px #3b80ff}.campus-stats strong{font-size:clamp(48px,5vw,72px)!important;font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:#a1c2ff!important;line-height:1.15;margin-bottom:12px}.campus-stats span{font-size:14px;color:#c1d2ef!important}.campus-stats small{display:none}
@media(max-width:600px){.hero-bottom{padding-top:15px}.neon-hero .hero-copy{padding:0 5px}.neon-hero .hero-lead{margin-left:auto;margin-right:auto}.neon-scene{margin-bottom:-15px}.campus-stats{gap:12px!important;padding:25px 16px!important}.campus-stats>div{min-width:125px!important;padding:22px 12px!important}.campus-stats>div:last-of-type{max-width:100%}.campus-stats span{font-size:12px}}

/* Stacked hero: centred sculpture, then the copy, then the shared actions. */
.neon-hero{padding-top:100px!important;background:radial-gradient(ellipse at 50% 22%,#142c60 0,transparent 56%),#080f22}
.neon-layout{display:flex;flex-direction:column;align-items:center;min-height:0!important;gap:0}
.neon-layout .neon-scene{order:0;width:min(640px,100%);max-width:100%;height:350px;transform:none;margin:0 auto}
.neon-layout .hero-copy{order:1;max-width:800px;width:100%;padding:38px 16px 0;text-align:center}
.neon-hero .hero-copy h1{max-width:800px;margin:0 auto 18px;font-size:clamp(42px,4.5vw,64px)!important}
.neon-hero .hero-lead{max-width:640px;margin:0 auto;line-height:1.7}
.neon-hero .eyebrow{margin-bottom:18px}
.neon-hero .hero-bottom{padding-top:25px;padding-bottom:22px}
.neon-scene .neon-plinth{width:90%;left:5%}
.neon-layout .logo-sculpture{top:10%}
.neon-layout .letter-geul{top:62%;font-size:110px}
.neon-scene .scene-caption{left:50%;transform:translateX(-50%);white-space:nowrap;bottom:-20px}
.separation-oval{left:10%;top:15%;width:80%;height:70%;transform:none;opacity:.45}
@media(max-width:600px){.neon-hero{padding-top:90px!important}.neon-layout .neon-scene{width:100%;height:290px}.neon-layout .hero-copy{padding:34px 0 0}.neon-hero .hero-copy h1{font-size:43px!important}.neon-hero .hero-lead{max-width:390px;font-size:14px}.neon-scene .logo-sculpture{width:145px;height:145px;left:45%;top:10%}.neon-scene .letter-han{font-size:95px;left:7%}.neon-scene .letter-geul{font-size:86px;left:46%;top:53%}.neon-scene .letter-na{font-size:38px}.neon-scene .letter-ga{font-size:42px;left:78%}.neon-scene .letter-m{font-size:30px;left:82%}.neon-scene .neon-plinth{bottom:7px;height:63px}.neon-hero .hero-bottom{padding-top:22px}}

/* The letters use real, bevelled geometry. CSS letters remain the no-WebGL fallback. */
.hero-letter-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
.mesh-ready .neon-scene .letter{visibility:hidden}
.neon-layout .neon-scene{width:min(980px,100%);height:450px}
.neon-layout .logo-sculpture{width:240px;height:240px;left:45%;top:10%}
.neon-layout .hero-copy{max-width:1180px;padding-top:32px}
.neon-hero .hero-copy h1{max-width:1180px;font-size:clamp(48px,5.6vw,80px)!important;line-height:1.08!important}
.neon-scene .neon-plinth{width:88%;left:6%;height:88px;bottom:12px}
.neon-scene .light-column{left:45%;width:310px;bottom:50px}
.neon-hero .hero-bottom{padding-top:24px}
@media(min-width:1000px){.neon-hero h1 br{display:none}.neon-hero h1{white-space:nowrap}}
@media(min-width:1600px){.neon-layout .neon-scene{width:min(1080px,100%);height:480px}.neon-layout .logo-sculpture{width:255px;height:255px}}
@media(max-width:700px){.neon-layout .neon-scene{height:330px}.neon-layout .logo-sculpture{width:175px;height:175px;left:44%;top:11%}.neon-hero .hero-copy h1{font-size:52px!important}.neon-scene .neon-plinth{height:65px;bottom:9px}.neon-scene .light-column{width:210px}}
@media(max-width:450px){.neon-layout .neon-scene{height:290px}.neon-layout .logo-sculpture{width:145px;height:145px;left:44%;top:12%}.neon-hero .hero-copy h1{font-size:43px!important}.neon-scene .scene-caption{font-size:7px;letter-spacing:.16em}.neon-layout .hero-copy{padding-top:32px}.neon-scene .neon-plinth{height:58px}}

/* One continuous hero: the scene is behind the readable foreground copy. */
.neon-hero .cursor-veil{display:none!important}.neon-hero{padding-top:105px!important;min-height:760px!important}.neon-layout{position:relative;min-height:570px!important;justify-content:flex-end}.neon-layout .neon-scene{position:absolute;inset:-15px -5% auto;width:110%;max-width:none;height:570px;z-index:1;margin:0;overflow:visible}.neon-layout .hero-copy{position:relative;z-index:4;padding:340px 12px 0;max-width:1180px}.neon-layout .hero-copy:before{content:"";position:absolute;inset:285px -60px -150px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#050d1b00,#050d1be8 25%,#050d1bf5 75%,#050d1b00);border-radius:30px}.neon-layout .logo-sculpture{top:3%;width:240px;height:240px}.neon-scene .scene-caption{bottom:185px;z-index:3}.neon-scene .neon-plinth{bottom:65px}.neon-hero .hero-bottom{padding-top:25px;padding-bottom:24px}.neon-hero .hero-copy h1{margin-bottom:22px}.separation-oval{display:none}.neon-hero .hero-lead{max-width:740px}
@media(min-width:1600px){.neon-layout .neon-scene{height:590px}.neon-layout .logo-sculpture{width:255px;height:255px}}
@media(max-width:700px){.neon-hero{padding-top:90px!important;min-height:0!important}.neon-layout{min-height:0!important}.neon-layout .neon-scene{inset:0 -6% auto;width:112%;height:355px}.neon-layout .hero-copy{padding-top:310px}.neon-layout .hero-copy:before{inset:260px -30px -150px}.neon-layout .logo-sculpture{width:165px;height:165px;top:5%;left:44%}.neon-scene .neon-plinth{bottom:40px}.neon-scene .scene-caption{display:none}.neon-hero .hero-bottom{padding-bottom:15px}}
@media(prefers-reduced-motion:reduce){.neon-layout .neon-scene .letter-geul{top:46%}.neon-layout .neon-scene .letter-na{top:64%}}
.neon-hero .scene-caption{display:none}

/* Extend the hero artwork and reading fade to both viewport edges. */
.neon-layout .neon-scene{left:50%;right:auto;width:100vw;max-width:none;transform:translateX(-50%)}
.neon-layout .hero-copy:before{left:50%;right:auto;width:100vw;transform:translateX(-50%);border-radius:0}

/* Fill the visible screen; retain scrolling when a short screen needs more room. */
.neon-hero{min-height:100vh!important;min-height:100svh!important;display:flex;flex-direction:column;justify-content:center}
.neon-layout{min-height:0!important;flex-shrink:0}
.neon-layout .hero-copy{padding-top:clamp(190px,calc(100svh - 500px),500px)}
.neon-layout .neon-scene{height:clamp(340px,calc(100svh - 280px),780px)}
.neon-hero .hero-bottom{flex-shrink:0}
@media(max-width:700px){.neon-layout .hero-copy{padding-top:clamp(230px,calc(100svh - 490px),390px)}.neon-layout .neon-scene{height:clamp(290px,calc(100svh - 430px),450px)}}

/* Supplied Isi Davasa legacy font; Unicode text retained for assistive technology. */
@font-face{font-family:CampusIsiDavasa;src:url('/assets/fonts/isidavasa.ttf') format('truetype');font-weight:400;font-style:normal;font-display:block}
.neon-hero .hero-copy h1.isi-hero{font-family:CampusIsiDavasa,sans-serif;font-weight:400;font-synthesis:none;letter-spacing:0;font-size:clamp(58px,8.2vw,120px)!important;line-height:1.08!important;white-space:normal;text-wrap:balance;margin:0 0 10px}
.neon-hero .hero-copy .eyebrow{margin-bottom:12px}.isi-hero .isi-first,.isi-hero .isi-second{margin-top:0}
.isi-hero .isi-first{color:#edf3ff}.isi-hero .isi-second{color:#93b5ff}.isi-hero .hero-unicode{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){.neon-hero .hero-copy h1.isi-hero{font-size:clamp(48px,13vw,72px)!important;line-height:1.05!important}.isi-hero .isi-first,.isi-hero .isi-second{display:block}}

/* Approved neon-blue heading glow (no reflected text). */
.isi-hero .isi-first{text-shadow:0 0 5px #60b0ff55,0 0 18px #257aff66,0 0 38px #165eff3d}
.isi-hero .isi-second{text-shadow:0 0 7px #5da7ff80,0 0 22px #277dff75,0 0 42px #165eff45}
@media(max-width:700px){.isi-hero .isi-first,.isi-hero .isi-second{text-shadow:0 0 5px #57a5ff66,0 0 17px #247cff66,0 0 30px #165eff33}}

/* Approved hero badge spacing and Android download action. */
.neon-hero .hero-copy .eyebrow{position:relative;top:16px}
.hero-app-download .hc-icon{width:20px;height:20px;margin:0}
@media(max-width:700px){.neon-hero .hero-copy .eyebrow{top:8px}}
