@font-face{font-family:Bricolage;src:url(fonts/bricolage.ttf) format("truetype");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:Jakarta;src:url(fonts/jakarta.ttf) format("truetype");font-weight:200 800;font-display:swap}
:root{--royal:#2440d8;--blue:#2f6bff;--sky:#2fa8ff;--coral:#ff5a5f;--orange:#ff8a3d;--sun:#ffd23f;--mint:#19d3a8;--violet:#7c4dff;--pink:#ff4f78;--ink:#0d1b52;--mute:#5a6a9a;--line:#dfe8ff;--bg:#f4f8ff;--r:32px;--sh:0 24px 60px -20px rgba(36,64,216,.28);--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto}
body{font-family:Jakarta,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3,h4{font-family:Bricolage,Jakarta,sans-serif;letter-spacing:-.025em;line-height:1.04;font-weight:800}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.fill{fill:currentColor;stroke:none}
/* colour mesh background */
.mesh{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(circle at 0 0,#e8f1ff,transparent 55%),radial-gradient(circle at 100% 100%,#fff0e6,transparent 55%),var(--bg)}
.bl{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;will-change:transform}
.b1{width:48vw;height:48vw;background:#8fc4ff;top:-14vw;right:-10vw;animation:fl 20s ease-in-out infinite}
.b2{width:36vw;height:36vw;background:#ffb08a;bottom:-12vw;left:-8vw;animation:fl 24s ease-in-out infinite reverse;opacity:.5}
.b3{width:26vw;height:26vw;background:#ffe27a;top:38%;left:-6vw;animation:fl 28s ease-in-out infinite;opacity:.45}
.b4{width:30vw;height:30vw;background:#7ff0d0;top:55%;right:-8vw;animation:fl 26s ease-in-out infinite reverse;opacity:.4}
.b5{width:24vw;height:24vw;background:#b9a6ff;top:12%;left:36vw;animation:fl 30s ease-in-out infinite;opacity:.35}
@keyframes fl{50%{transform:translate(4vw,5vw) scale(1.12)}}
/* nav */
.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:50;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:9px 9px 9px 16px;border-radius:999px;background:rgba(255,255,255,.7);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 40px -10px rgba(36,64,216,.25);width:min(1160px,calc(100% - 24px));transition:transform .5s var(--ease)}
.nav.hide{transform:translate(-50%,-130%)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 19px Bricolage;letter-spacing:-.02em}
.links{display:flex;gap:26px;font-size:14px;font-weight:600}
.links a{text-decoration:none;color:var(--mute);position:relative;transition:color .2s}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--coral),var(--sun));transform:scaleX(0);transition:transform .3s}
.links a:hover{color:var(--royal)}.links a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border-radius:999px;background:linear-gradient(120deg,var(--royal),var(--blue) 60%,var(--sky));color:#fff;text-decoration:none;font-weight:700;font-size:16px;box-shadow:0 14px 34px -10px rgba(36,64,216,.6);transition:box-shadow .3s,translate .3s var(--ease),filter .3s;position:relative;white-space:nowrap}
.btn:hover{translate:0 -3px;box-shadow:0 22px 44px -10px rgba(36,64,216,.7);filter:saturate(1.15)}
.btn-sm{padding:11px 20px;font-size:14px}
.btn-lg{padding:12px 12px 12px 28px;font-size:17px;gap:12px}
.btn .arr{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sun);color:var(--ink);transition:transform .4s var(--ease)}
.btn:hover .arr{transform:rotate(-45deg)}
.btn.ghost{background:rgba(255,255,255,.7);color:var(--royal);box-shadow:inset 0 0 0 2px rgba(36,64,216,.18);backdrop-filter:blur(8px)}
.btn.ghost:hover{box-shadow:inset 0 0 0 2px var(--royal)}
.pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid #fff;box-shadow:0 6px 20px -8px rgba(36,64,216,.25);font-size:13px;font-weight:700;color:var(--royal);letter-spacing:.02em;align-self:flex-start;width:fit-content}
.pill i{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--sun));box-shadow:0 0 0 4px rgba(255,138,61,.2)}
.pill.light{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35);color:#fff;backdrop-filter:blur(8px)}
/* hero */
.hero{min-height:100vh;display:grid;grid-template-columns:1.08fr 1fr;align-items:center;gap:50px;padding:120px max(24px,calc((100vw - 1240px)/2)) 70px;position:relative}
.hero h1{font-size:clamp(42px,5.5vw,86px);margin:22px 0 0;font-stretch:90%}
.grad,.grad .w>span{background:linear-gradient(95deg,var(--royal),var(--sky) 45%,var(--mint),var(--sky) 80%,var(--royal));background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gslide 6s linear infinite}
@keyframes gslide{to{background-position:-250% 0}}
.ul{position:relative;display:inline-block}
.ul svg{position:absolute;left:0;bottom:-.16em;width:100%;height:.22em;overflow:visible}
.ul path{fill:none;stroke:var(--coral);stroke-width:5;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:0}
.lead{font-size:19px;color:var(--mute);margin:28px 0 36px;max-width:540px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.collage{position:relative;width:100%;max-width:640px;aspect-ratio:1/1.12;justify-self:end}
.ph{position:absolute;overflow:hidden;box-shadow:0 30px 60px -24px rgba(13,27,82,.55);border:6px solid #fff;background:#cfe0ff}
.ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.ph-a{left:0;top:13%;width:46%;height:66%;border-radius:200px 200px 32px 32px}
.ph-b{right:0;top:0;width:50%;height:35%;border-radius:32px 32px 32px 110px}
.ph-c{right:0;bottom:3%;width:50%;height:57%;border-radius:32px 32px 150px 32px}
.shape{position:absolute;z-index:-1}
.s-sun{width:34%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffe98a,var(--sun) 60%,#ffb02e);left:-8%;top:-2%;animation:fl 14s ease-in-out infinite}
.s-ring{width:30%;aspect-ratio:1;border-radius:50%;border:16px solid var(--coral);opacity:.9;right:-7%;bottom:-6%;animation:fl 16s ease-in-out infinite reverse}
.s-mint{width:24%;aspect-ratio:1;border-radius:34% 66% 60% 40%/50% 40% 60% 50%;background:linear-gradient(135deg,var(--mint),#7ff0d0);left:30%;bottom:-3%;animation:morph 9s ease-in-out infinite}
@keyframes morph{50%{border-radius:60% 40% 30% 70%/60% 50% 50% 40%;transform:rotate(30deg)}}
.badge{position:absolute;z-index:3;display:flex;align-items:center;gap:10px;padding:8px 18px 8px 8px;border-radius:999px;background:rgba(255,255,255,.72);backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);border:1.5px solid rgba(255,255,255,.95);box-shadow:0 18px 40px -14px rgba(13,27,82,.4);font:700 15px Jakarta;white-space:nowrap}
.badge i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--c1),var(--c2));color:#fff}
.badge i .ic{width:18px;height:18px}
.bg-1{left:38%;top:7%}.bg-2{left:-4%;top:70%}.bg-3{right:-3%;top:41%}.bg-4{left:33%;bottom:9%}
.sticker{position:absolute;width:112px;height:112px;left:-2%;bottom:-2%;z-index:4;animation:spin 18s linear infinite;filter:drop-shadow(0 12px 20px rgba(255,138,61,.4))}
.sticker text{font:800 11.5px Jakarta;letter-spacing:.16em;fill:var(--ink)}
@keyframes spin{to{transform:rotate(360deg)}}
/* sections */
.section{padding:96px max(24px,calc((100vw - 1240px)/2));position:relative}
.head{display:flex;flex-direction:column;gap:18px;margin-bottom:56px}
.head.center{align-items:center;text-align:center}.head.center .pill{align-self:center}
h2{font-size:clamp(34px,4.4vw,64px);max-width:860px;font-stretch:92%}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .02em .1em;margin-bottom:-.1em}
.split .w>span{display:inline-block}
/* route */
.route{padding-top:30px}
.route-card{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:30px;border-radius:44px;padding:56px 56px 56px 60px;color:#fff;position:relative;overflow:hidden;background:radial-gradient(circle at 85% 100%,rgba(255,106,90,.55),transparent 45%),radial-gradient(circle at 0 0,rgba(47,168,255,.8),transparent 55%),linear-gradient(135deg,#1b2fb0,#2440d8 55%,#2f6bff);box-shadow:0 40px 80px -30px rgba(36,64,216,.6)}
.route-text{display:flex;flex-direction:column;gap:20px;position:relative;z-index:2}
.route-text h2{font-size:clamp(30px,3.4vw,50px)}
.route-text>p{color:#dbe8ff;font-size:17px;max-width:420px}
.legend{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.legend li{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);font-weight:700;font-size:14px}
.legend i{width:10px;height:10px;border-radius:50%}
.legend .to{background:#fff;color:var(--royal)}
.map-box{position:relative;aspect-ratio:740/560}
.map{width:100%;height:100%;overflow:hidden;display:block}
.map .dots{stroke:rgba(255,255,255,.62);stroke-width:5.5;stroke-linecap:round;fill:none}
.map .route-l{stroke-width:3.4}
.map .p{fill:#fff}
.map .pulse{transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}
@keyframes pulse{from{transform:scale(.5);opacity:.8}to{transform:scale(3);opacity:0}}
.lbl{position:absolute;display:flex;align-items:center;gap:8px;padding:6px 13px 6px 9px;border-radius:999px;background:rgba(255,255,255,.95);color:var(--ink);font:800 14px Jakarta;box-shadow:0 10px 24px -8px rgba(0,0,0,.35);white-space:nowrap;transform:translate(var(--tx),var(--ty))}
.lbl::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px rgba(13,27,82,.1)}
.lbl.dest{background:#ffd23f}.lbl.dest::before{background:#ff5a5f}
/* why */
.why-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.why{grid-column:span 6;border-radius:var(--r);padding:36px;color:#fff;position:relative;overflow:hidden;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end;transition:translate .5s var(--ease),box-shadow .5s;box-shadow:var(--sh)}
.why:nth-child(1),.why:nth-child(4){grid-column:span 5}.why:nth-child(2),.why:nth-child(3){grid-column:span 7}
.why:hover{translate:0 -8px}
.c-royal{background:radial-gradient(circle at 100% 0,#4cc3ff,transparent 60%),linear-gradient(140deg,#1b2fb0,#2f6bff)}
.c-coral{background:radial-gradient(circle at 100% 0,#ffd23f,transparent 55%),linear-gradient(140deg,#ff4f78,#ff8a3d)}
.c-mint{background:radial-gradient(circle at 100% 0,#c6fff0,transparent 55%),linear-gradient(140deg,#0aa88f,#19d3a8)}
.c-sun{background:radial-gradient(circle at 100% 0,#fff3b0,transparent 55%),linear-gradient(140deg,#ffb000,#ffd23f);color:var(--ink)}
.why-ico{position:absolute;top:30px;left:34px;width:64px;height:64px;border-radius:20px;background:rgba(255,255,255,.25);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);display:grid;place-items:center}
.why-ico .ic{width:32px;height:32px}
.c-sun .why-ico{background:rgba(255,255,255,.55)}
.why h3{font-size:clamp(24px,2.3vw,32px);margin-bottom:12px;max-width:440px;position:relative}
.why p{opacity:.92;max-width:460px;position:relative;font-size:16px}
.deco{position:absolute;right:-30px;top:-30px;width:230px;height:230px;fill:none;stroke:currentColor;stroke-width:.6;opacity:.2;transform:rotate(12deg);transition:transform .8s var(--ease)}
.why:hover .deco,.svc:hover .deco{transform:rotate(-4deg) scale(1.12)}
/* tabs */
.tabs{position:relative;display:inline-flex;margin-top:14px;padding:6px;border-radius:999px;background:rgba(255,255,255,.8);border:1px solid #fff;box-shadow:0 10px 30px -12px rgba(36,64,216,.3);align-self:flex-start}
.tab{position:relative;z-index:1;border:0;background:none;font:700 15px Jakarta;color:var(--mute);padding:13px 28px;border-radius:999px;cursor:pointer;transition:color .3s}
.tab.on{color:#fff}
.tab-ind{position:absolute;top:6px;bottom:6px;left:6px;border-radius:999px;background:linear-gradient(120deg,var(--royal),var(--sky));box-shadow:0 8px 20px -6px rgba(36,64,216,.6);transition:all .5s cubic-bezier(.7,0,.2,1)}
/* universities */
.uni-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:18px;perspective:1200px}
.uni-grid[hidden]{display:none}
.u-big{grid-column:span 2;grid-row:span 2}.u-wide{grid-column:span 2}.u-full{grid-column:span 4}
.uni{position:relative;border-radius:30px;overflow:hidden;background:#cfe0ff;outline:none;box-shadow:0 24px 50px -22px rgba(13,27,82,.55);transform-style:preserve-3d;will-change:transform;isolation:isolate}
.uni img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:filter .6s}
.uni::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,var(--g1) 0%,color-mix(in srgb,var(--g1) 55%,transparent) 28%,transparent 62%);opacity:.92;transition:opacity .5s}
.uni::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(135deg,var(--g1),var(--g2));mix-blend-mode:soft-light;opacity:.55;transition:opacity .5s}
.uni:hover::after,.uni:focus-visible::after{opacity:.95}
.uni:hover::before{opacity:1}
.glare{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.35),transparent 45%);opacity:0;transition:opacity .3s}
.uni:hover .glare{opacity:1}
.city-chip{position:absolute;z-index:3;top:16px;left:16px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);font:800 12px Jakarta;letter-spacing:.04em;color:var(--ink)}
.uni-info{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;color:#fff;z-index:3;transform:translateZ(40px)}
.uni h4{font-size:clamp(19px,1.7vw,24px);font-weight:800;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.u-big h4{font-size:clamp(26px,2.8vw,40px);max-width:420px}
.uni ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s var(--ease),opacity .4s,margin .4s}
.uni li{font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.22);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.35)}
.uni:hover ul,.uni:focus-visible ul{max-height:120px;opacity:1;margin-top:12px}
/* steps */
.tl{position:relative;max-width:1000px;margin:0 auto}
.tl-line{position:absolute;left:50%;top:30px;bottom:30px;width:6px;margin-left:-3px;border-radius:6px;background:var(--line);overflow:hidden}
.tl-fg{height:100%;background:linear-gradient(180deg,#2f5bff,#1fb1ff 20%,#0fb59a 40%,#ffb000 60%,#ff7a3d 80%,#ff4f78);transform-origin:top;transform:scaleY(0)}
.tl ol{list-style:none;display:grid;gap:34px}
.step{display:grid;grid-template-columns:1fr 100px 1fr;align-items:center}
.step .scard{grid-column:1;grid-row:1;text-align:left}
.step .node{grid-column:2;grid-row:1}
.step:nth-child(even) .scard{grid-column:3;text-align:left}
.scard{position:relative;overflow:hidden;background:#fff;border-radius:28px;padding:28px 32px;box-shadow:0 20px 50px -24px rgba(36,64,216,.4);border:1px solid #fff;transition:translate .5s var(--ease)}
.scard::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--a),var(--b))}
.scard:hover{translate:0 -6px}
.scard h3{font-size:clamp(20px,2vw,26px);margin-bottom:10px;position:relative}
.scard p{color:var(--mute);position:relative}
.big-n{position:absolute;right:18px;bottom:-14px;top:auto;font:800 88px Bricolage;line-height:1;background:linear-gradient(180deg,var(--a),transparent);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.3}
.step:nth-child(even) .big-n{right:20px}
.step:nth-child(odd) .big-n{left:auto;right:18px}
.node{justify-self:center;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--a),var(--b));border:6px solid var(--bg);box-shadow:0 14px 30px -8px var(--a);position:relative;z-index:1;transition:transform .6s cubic-bezier(.3,1.7,.5,1),filter .5s}
.node .ic{width:30px;height:30px}
.step:not(.active) .node{filter:grayscale(1) opacity(.55);transform:scale(.82)}
.step.active .node{transform:scale(1)}
/* docs */
.docs-card{display:grid;grid-template-columns:.85fr 1.15fr;gap:0;border-radius:44px;overflow:hidden;background:#fff;box-shadow:0 40px 90px -36px rgba(36,64,216,.55);border:1px solid #fff}
.docs-side{padding:56px;color:#fff;display:flex;flex-direction:column;gap:20px;position:relative;overflow:hidden;background:radial-gradient(circle at 0 100%,rgba(255,79,120,.55),transparent 55%),radial-gradient(circle at 100% 0,rgba(25,211,168,.5),transparent 50%),linear-gradient(150deg,#1b2fb0,#2f6bff)}
.docs-side h2{font-size:clamp(34px,3.8vw,54px)}
.docs-side>p:not(.pill):not(.done-msg){color:#dbe8ff;max-width:340px}
.ring{position:relative;width:170px;height:170px;margin-top:10px}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:11}.r-bg{stroke:rgba(255,255,255,.22)}
.r-fg{stroke:url(#rg);stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .7s cubic-bezier(.3,1.4,.5,1)}
.ring-txt{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;font:700 20px Bricolage;color:#cfe0ff}
.ring-txt b{font-size:48px;color:#fff}
.ring-txt small{font:700 11px Jakarta;text-transform:uppercase;letter-spacing:.16em}
.done-msg{opacity:0;transform:translateY(10px);transition:all .6s;font-size:16px;min-height:1px}
.done-msg.show{opacity:1;transform:none}
.done-msg a{color:var(--sun);font-weight:700}
.checklist{list-style:none;display:grid;gap:12px;padding:40px;align-content:center}
.checklist label{display:flex;align-items:center;gap:16px;padding:16px 18px;background:color-mix(in srgb,var(--c) 6%,#fff);border:2px solid color-mix(in srgb,var(--c) 16%,#fff);border-radius:20px;cursor:pointer;transition:border-color .3s,background .4s,transform .3s var(--ease),box-shadow .3s}
.checklist label:hover{border-color:var(--c);transform:translateX(6px)}
.checklist label:active{transform:scale(.98)}
.checklist input{position:absolute;opacity:0;pointer-events:none}
.box{flex:none;width:32px;height:32px;border-radius:11px;border:2.5px solid color-mix(in srgb,var(--c) 45%,#fff);background:#fff;display:grid;place-items:center;transition:all .4s cubic-bezier(.3,1.7,.5,1);color:#fff}
.box .ic{width:20px;height:20px;stroke-width:3.2;stroke-dasharray:26;stroke-dashoffset:26;transition:stroke-dashoffset .4s .12s}
.checklist input:checked+.box{background:var(--c);border-color:var(--c);transform:scale(1.18) rotate(-8deg);box-shadow:0 8px 18px -4px var(--c)}
.checklist input:checked+.box .ic{stroke-dashoffset:0}
.checklist input:focus-visible+.box{outline:3px solid var(--sky);outline-offset:3px}
.checklist li:has(input:checked) label{background:color-mix(in srgb,var(--c) 14%,#fff);border-color:var(--c)}
.t{font-weight:700;flex:1;transition:color .3s;font-size:16px}.t i{color:var(--mute);font-weight:500}
.checklist input:checked~.t{color:var(--mute);text-decoration:line-through;text-decoration-color:var(--c);text-decoration-thickness:2px}
.tag{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);transition:transform .4s cubic-bezier(.3,1.7,.5,1)}
.tag .ic{width:20px;height:20px}
.checklist input:checked~.tag{transform:rotate(14deg) scale(1.1);background:var(--c);color:#fff}
.spark{position:fixed;width:9px;height:9px;border-radius:50%;pointer-events:none;z-index:99}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:98}
/* services */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,auto);gap:18px}
.svc{position:relative;overflow:hidden;border-radius:var(--r);padding:30px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;transition:translate .5s var(--ease);box-shadow:var(--sh)}
.svc:hover{translate:0 -8px}
.svc h3{font-size:clamp(21px,1.9vw,26px);margin-bottom:8px;position:relative}.svc p{opacity:.92;position:relative;font-size:15px}
.svc-ico{position:absolute;top:26px;left:28px;width:56px;height:56px;border-radius:18px;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.55);display:grid;place-items:center}
.svc-ico .ic{width:28px;height:28px}
.t-big{grid-column:span 2;grid-row:span 2;background:radial-gradient(circle at 100% 0,#4cc3ff,transparent 60%),radial-gradient(circle at 0 100%,#7c4dff,transparent 55%),linear-gradient(140deg,#1b2fb0,#2f6bff)}
.t-big h3{font-size:clamp(28px,3vw,42px);max-width:420px}.t-big p{font-size:17px;max-width:420px}
.t-big .svc-ico{width:72px;height:72px;border-radius:24px}.t-big .svc-ico .ic{width:36px;height:36px}
.t-coral{background:linear-gradient(140deg,#ff4f78,#ff8a3d)}
.t-mint{background:linear-gradient(140deg,#0aa88f,#19d3a8)}
.t-sun{background:linear-gradient(140deg,#ffb000,#ffd23f);color:var(--ink)}
.t-sun .svc-ico{background:rgba(255,255,255,.55)}
.t-violet{background:linear-gradient(140deg,#6a3df0,#2fa8ff)}
.t-big .deco{width:340px;height:340px;right:-50px;top:-40px}
/* contact */
.contact{padding:40px max(16px,calc((100vw - 1320px)/2)) 50px}
.contact-card{position:relative;overflow:hidden;border-radius:56px;padding:130px 32px;text-align:center;color:#fff;background:radial-gradient(circle at 12% 0,#2fd3ff,transparent 45%),radial-gradient(circle at 95% 15%,#ff6a5a,transparent 42%),radial-gradient(circle at 70% 110%,#ffd23f,transparent 45%),radial-gradient(circle at 0 100%,#19d3a8,transparent 40%),linear-gradient(135deg,#1b2fb0,#2f6bff);box-shadow:0 50px 100px -40px rgba(36,64,216,.7)}
.orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.9;animation:fl 12s ease-in-out infinite}
.o1{width:120px;height:120px;background:linear-gradient(135deg,#ffd23f,#ff8a3d);left:7%;top:14%}
.o2{width:70px;height:70px;border:12px solid #19d3a8;right:10%;top:62%;animation-duration:15s}
.o3{width:46px;height:46px;background:#fff;right:20%;top:16%;opacity:.55;animation-duration:10s}
.o4{width:90px;height:90px;border:10px solid #ff5a5f;left:14%;bottom:10%;animation-duration:17s}
.trail{position:absolute;inset:0;width:100%;height:100%}
.trail path{stroke:rgba(255,255,255,.7);stroke-width:2.4;stroke-dasharray:6 12}
.paperplane{position:absolute;left:0;top:0;width:46px;height:46px;filter:drop-shadow(0 8px 12px rgba(0,0,0,.25))}
.huge{font-size:clamp(60px,12vw,190px);max-width:none;margin:22px auto 0;line-height:.95}
.c-lead{font-size:20px;color:#e6f0ff;margin:26px 0 44px;position:relative}
.pill.c{align-self:auto;margin:0 auto}
.contact .btn{position:relative}
.btn.white{background:#fff;color:var(--royal);font-size:22px;padding:14px 14px 14px 18px;gap:16px;box-shadow:0 24px 50px -14px rgba(13,27,82,.6)}
.btn.white .tg-ic{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#2fd3ff,#2f6bff);color:#fff}
.btn.white .arr{width:54px;height:54px}
.foot{padding:50px max(24px,calc((100vw - 1240px)/2)) 56px;display:grid;gap:12px;color:var(--mute)}
.foot .small{font-size:13px}.foot .small a{color:var(--royal);font-weight:700}
/* responsive */
@media (max-width:1050px){.hero{grid-template-columns:1fr;padding-top:110px;gap:40px}.collage{justify-self:center}.links{display:none}.route-card{grid-template-columns:1fr;padding:44px 28px}.uni-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:230px}.u-full,.u-wide{grid-column:span 2}.bento{grid-template-columns:repeat(2,1fr)}.docs-card{grid-template-columns:1fr}}
@media (max-width:700px){
.section{padding:76px 18px}.hero{padding:104px 18px 50px}.hero h1{font-size:clamp(38px,11.5vw,54px)}.lead{font-size:17px}.btn-lg{width:100%;justify-content:space-between}.cta-row .ghost{width:100%;justify-content:center}
.collage{aspect-ratio:1/1.18;margin-top:6px}.badge{font-size:12px;padding:6px 12px 6px 6px;gap:7px}.badge i{width:28px;height:28px}.badge i .ic{width:15px;height:15px}.sticker{width:84px;height:84px}.ph{border-width:4px}
.bg-1{left:30%;top:8%}.bg-2{left:2%;top:74%}.bg-3{right:0}.bg-4{left:30%;bottom:8%}
.route{padding-top:10px}.route-card{border-radius:32px;padding:34px 18px 26px}.lbl{font-size:12.5px;padding:5px 10px 5px 8px}
.why-grid{grid-template-columns:1fr}.why,.why:nth-child(n){grid-column:auto;min-height:260px;padding:28px}.why-ico{left:26px;top:26px}
.uni-grid{grid-template-columns:1fr;grid-auto-rows:240px}.u-big,.u-wide,.u-full{grid-column:auto;grid-row:auto}.u-big{grid-row:span 1}.uni ul{max-height:120px;opacity:1;margin-top:10px}
.tl-line{left:34px;margin-left:-3px}.step{grid-template-columns:68px 1fr;gap:6px}.step .node{grid-column:1;width:64px;height:64px}.step .scard,.step:nth-child(even) .scard{grid-column:2;text-align:left;padding:22px 20px}.step .big-n,.step:nth-child(odd) .big-n{left:auto;right:14px;font-size:64px}
.docs-side{padding:36px 24px}.checklist{padding:20px 14px}.checklist label{padding:13px 12px;gap:12px}.t{font-size:15px}.tag{display:none}
.bento{grid-template-columns:1fr}.t-big,.svc{grid-column:auto;grid-row:auto;min-height:240px}.svc{padding:26px}.t-big .deco{width:240px;height:240px}
.contact-card{padding:90px 18px;border-radius:34px}.btn.white{font-size:17px;padding:10px 10px 10px 12px;gap:10px;white-space:normal;text-align:left}.btn.white .tg-ic,.btn.white .arr{width:44px;height:44px}.huge{font-size:clamp(54px,17vw,90px)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}}

html,body{overflow-x:clip}
.hero{overflow-x:clip}
@media (max-width:700px){.t-big{min-height:330px!important}.t-big h3{font-size:28px}}

/* ---- v2.1: hero intro without flashes / jitter ---- */
.ph{will-change:transform;backface-visibility:hidden;translate:var(--mx,0) var(--my,0)}
.ph img{transform:none;will-change:transform;backface-visibility:hidden}
.js:not(.ready) .hero-text,.js:not(.ready) .collage{visibility:hidden}
.ph img{display:block}

/* ---- WhatsApp ---- */
.btn.wa{background:linear-gradient(120deg,#0e9f49,#22c55e 60%,#3be37f);box-shadow:0 14px 34px -10px rgba(14,159,73,.65)}
.btn.wa:hover{box-shadow:0 22px 44px -10px rgba(14,159,73,.75)}
.btn.wa .ic{width:1.35em;height:1.35em}
.btn-lg.wa .arr{background:#fff;color:#0e9f49}
.nav-cta{display:flex;gap:8px;align-items:center}
.btn.ghost .ic{color:#229ed9}
.btn.white .wa-ic{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#25d366,#0e9f49);color:#fff}
.btn.white .wa-ic .ic{width:30px;height:30px}
.c-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative}
.btn.white.sm{font-size:16px;padding:8px 20px 8px 8px;gap:10px}
.btn.white.sm .wa-ic,.btn.white.sm .tg-ic{width:38px;height:38px}
.btn.white.sm .wa-ic .ic{width:22px;height:22px}

/* ---- stories ---- */
.story-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:34px 28px;align-items:center}
.pol{position:relative;display:block;text-align:left;font:inherit;color:inherit;cursor:zoom-in;border:0;background:#fff;padding:14px 14px 0;border-radius:22px;box-shadow:0 30px 60px -26px rgba(13,27,82,.5),0 0 0 1px rgba(36,64,216,.06);rotate:var(--rot,0deg);transition:rotate .5s var(--ease),translate .5s var(--ease),box-shadow .5s}
.pol:hover,.pol:focus-visible{rotate:0deg;translate:0 -8px;box-shadow:0 40px 70px -24px rgba(13,27,82,.6),0 0 0 3px var(--sky);outline:none}
.pol-img{display:block;overflow:hidden;border-radius:12px;background:#dfe8ff}
.pol-img img{display:block;width:100%;height:auto}
.pol-cap{display:block;padding:14px 6px 18px}
.pol-cap b{display:block;font:800 20px Bricolage;letter-spacing:-.02em;line-height:1.15}
.pol-cap small{display:block;margin-top:4px;font-size:13.5px;color:var(--mute);line-height:1.4}
.tape{position:absolute;left:50%;top:-13px;width:96px;height:26px;margin-left:-48px;border-radius:4px;background:rgba(255,210,63,.85);rotate:-3deg;box-shadow:0 4px 10px -4px rgba(13,27,82,.3)}
.p-v2 .tape{background:rgba(255,106,90,.8);rotate:4deg}.p-a .tape{background:rgba(25,211,168,.8)}.p-b .tape{background:rgba(124,77,255,.7);rotate:5deg}
.chip{position:absolute;right:-10px;top:26px;padding:6px 14px;border-radius:999px;font:800 12px Jakarta;color:#fff;letter-spacing:.03em;box-shadow:0 10px 20px -8px rgba(13,27,82,.5);rotate:4deg}
.c-mint{background:linear-gradient(135deg,#0aa88f,#19d3a8)}.c-sun{background:linear-gradient(135deg,#ffb000,#ff8a3d)}.c-coral{background:linear-gradient(135deg,#ff4f78,#ff8a3d)}.c-violet{background:linear-gradient(135deg,#6a3df0,#2fa8ff)}
.p-v1{grid-column:1/7;--rot:-1.6deg}.p-v2{grid-column:7/13;--rot:1.4deg}
.p-a{grid-column:1/5;--rot:1.8deg;max-width:330px;justify-self:center}
.story-cta{grid-column:5/9;border-radius:var(--r);padding:38px 34px;color:#fff;display:flex;flex-direction:column;gap:16px;background:radial-gradient(circle at 100% 0,#ffd23f,transparent 50%),radial-gradient(circle at 0 100%,#7c4dff,transparent 55%),linear-gradient(140deg,#1b2fb0,#2f6bff);box-shadow:var(--sh)}
.story-cta h3{font-size:clamp(26px,2.5vw,34px)}
.story-cta>p:not(.pill){color:#e3edff;font-size:16px}
.story-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.p-b{grid-column:9/13;--rot:-2deg;max-width:330px;justify-self:center}
.privacy{margin-top:34px;text-align:center;font-size:13px;color:var(--mute)}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(9,18,60,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .3s}
.lb[hidden]{display:none}.lb.on{opacity:1}
.lb figure{max-width:min(94vw,820px);max-height:92vh;display:flex;flex-direction:column;gap:12px;align-items:center;transform:scale(.94);transition:transform .4s var(--ease)}
.lb.on figure{transform:none}
.lb img{max-width:100%;max-height:80vh;width:auto;height:auto;border-radius:14px;border:8px solid #fff;background:#fff;box-shadow:0 40px 80px -20px rgba(0,0,0,.6)}
.lb figcaption{color:#fff;font-weight:600;text-align:center;font-size:15px;max-width:620px}
.lb-x{position:absolute;right:20px;top:20px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer}
.lb-x .ic{width:22px;height:22px}
@media (max-width:1050px){
.p-v1,.p-v2{grid-column:1/-1;max-width:640px;justify-self:center;width:100%}
.p-a{grid-column:1/7;max-width:none}.p-b{grid-column:7/13;max-width:none}
.story-cta{grid-column:1/-1;order:5}
.tg-s{display:none}
}
@media (max-width:700px){
.story-grid{gap:30px 14px}
.pol{padding:9px 9px 0;border-radius:18px}.pol-cap{padding:10px 4px 14px}.pol-cap b{font-size:15px}.pol-cap small{font-size:11.5px}
.p-v1,.p-v2{max-width:none}
.chip{right:-4px;top:16px;font-size:10.5px;padding:5px 10px}
.story-cta{padding:30px 22px}
.nav-cta .tg-s{display:none}
.cta-row .tg-b{flex:1;justify-content:center}.cta-row .ghost{width:auto}
.cta-row .ghost:last-child{width:100%}
.c-btns{flex-direction:column;align-items:stretch;padding:0 4px}
.btn.white .wa-ic{width:44px;height:44px}.btn.white .wa-ic .ic{width:24px;height:24px}
.btn.white.sm .wa-ic,.btn.white.sm .tg-ic{width:38px;height:38px}
.btn.white.sm{width:auto;flex:1;justify-content:center;font-size:15px}
}
.links{gap:20px;white-space:nowrap}.links a{white-space:nowrap}
.nav{max-width:calc(100vw - 24px)}
@media (max-width:1280px){.tg-s{display:none}}

/* ================= v2.2 mobile polish ================= */
.btn .arr,.btn.white .arr,.btn.white .wa-ic,.btn.white .tg-ic,.svc-ico,.why-ico,.node,.tag,.box,.badge i{flex:none}
.paperplane{flex:none;pointer-events:none;z-index:1}
.trail{pointer-events:none}
@media (max-width:700px){
/* nav */
.nav{gap:8px;padding:6px 6px 6px 12px;top:10px}
.brand{min-height:44px;font-size:17px;white-space:nowrap}.brand img{width:34px;height:34px}
.btn-sm{min-height:44px;padding:10px 18px;font-size:15px}
.nav-cta .btn{white-space:nowrap}
/* hero collage: every badge/sticker gets its own slot */
.collage{aspect-ratio:1/1.25;max-width:460px;margin-inline:auto}
.ph-a{top:11%;height:58%}.ph-b{height:31%}.ph-c{bottom:9%;height:53%}
.badge{font-size:13px;padding:5px 12px 5px 5px}
.bg-1{left:auto;right:3%;top:31.5%}
.bg-2{left:2%;top:63%;right:auto}
.bg-3{right:2%;top:2%;left:auto}
.bg-4{left:auto;right:2%;bottom:1%}
.sticker{width:84px;height:84px;left:3%;bottom:0}
.s-ring{right:-4%;bottom:-3%;width:26%;border-width:12px}
.s-mint{left:36%;bottom:-2%}
/* pills / small text */
.pill{font-size:14px}
.privacy,.foot .small,.foot .small a{font-size:14px}
.ring-txt small{font-size:12px}
/* why / services cards: reserve room for the icon so it never touches the heading */
.why,.why:nth-child(n){padding:104px 24px 26px;min-height:0}
.svc,.t-big{padding-top:100px}
.svc h3{font-size:22px}.t-big h3{font-size:28px}
.svc p{font-size:15px}
/* universities */
.city-chip{font-size:13px}
.uni li{font-size:13px}
/* steps: number badge moves to the top-right corner, heading leaves room for it */
.step .scard .big-n,.step:nth-child(odd) .scard .big-n,.step:nth-child(even) .scard .big-n{font-size:38px;top:16px;right:16px;bottom:auto;left:auto;opacity:.5}
.scard h3{padding-right:46px}
.scard p{font-size:15px}
/* route labels */
.lbl{font-size:13px}
.lbl[data-c="Saint Petersburg"]{transform:translate(0,calc(-100% - 12px))!important}
.legend li{font-size:14px}
/* footer / inline links get 44px hit areas without changing the layout */
.foot .brand{min-height:44px}
.foot .small a,.done-msg a{display:inline-block;padding:13px 5px;margin:-13px -3px}
.tab{min-height:44px}
.checklist label{min-height:56px}
/* contact */
.contact-card{padding:84px 18px 150px}
.huge{margin-top:18px}
.c-lead{font-size:18px;margin:20px 0 32px}
.o1{width:64px;height:64px;left:5%;top:5%}.o3{top:8%;right:9%}.o2,.o4{display:none}
.btn.white{font-size:18px}
.trail path{stroke:rgba(255,255,255,.55)}
.paperplane{width:40px;height:40px}
}
@media (max-width:520px){
.story-grid{grid-template-columns:1fr;gap:34px}
.p-v1,.p-v2,.p-a,.p-b{grid-column:1/-1;max-width:none}
.p-a,.p-b{max-width:310px}.p-a{justify-self:start}.p-b{justify-self:end}
.pol-cap b{font-size:18px}.pol-cap small{font-size:14px}
.chip{font-size:12px}
.p-v1 .pol-cap small,.p-v2 .pol-cap small{font-size:14px}
}
@media (min-width:521px) and (max-width:700px){.pol-cap small{font-size:13px}.chip{font-size:12px}}
@media (max-width:360px){
.hero h1{font-size:36px}
.brand span{font-size:16px}.btn-sm{padding:10px 14px;font-size:14px}.brand img{width:30px;height:30px}
.badge{font-size:12.5px}
.huge{font-size:50px}
.section{padding:64px 14px}
}
@media (max-width:700px){
.uni-grid{grid-auto-rows:auto}
.uni{display:flex;flex-direction:column;justify-content:flex-end;min-height:250px;padding-top:62px}
.uni-info{position:relative;transform:none;padding:0 22px 22px}
.uni h4,.u-big h4{font-size:22px}
}
@media (max-width:360px){
.sticker{width:68px;height:68px}.bg-2{top:58%}
}
@media (max-width:700px){.lbl[data-c="Delhi"]{transform:translate(calc(-100% - 12px),-50%)!important}}
@media (max-width:360px){.nav{padding:5px 5px 5px 10px;gap:6px}.brand{gap:7px}.brand span{font-size:15px}.btn-sm{padding:10px 12px;gap:6px}}
/* tablet + phone landscape (<=1050): same collision fixes, desktop untouched */
@media (max-width:1050px){
.brand{min-height:44px}.btn-sm{min-height:44px}
.why,.why:nth-child(n){padding-top:104px}
.svc,.t-big{padding-top:100px}
.step .scard .big-n,.step:nth-child(odd) .scard .big-n,.step:nth-child(even) .scard .big-n{font-size:38px;top:16px;right:16px;bottom:auto;left:auto;opacity:.5}
.scard h3{padding-right:46px}
.uni-grid{grid-auto-rows:auto}
.uni{display:flex;flex-direction:column;justify-content:flex-end;min-height:230px;padding-top:62px}
.uni-info{position:relative;transform:none;padding:0 22px 22px}
.pill,.privacy,.foot .small,.foot .small a{font-size:14px}
.foot .small a,.done-msg a{display:inline-block;padding:13px 5px;margin:-13px -3px}
.tab{min-height:44px}
}
@media (max-width:1050px) and (hover:none){.uni ul{max-height:140px;opacity:1;margin-top:10px}}
@media (min-width:701px) and (max-width:1050px){.uni li{font-size:13px}.ring-txt small{font-size:12px}.pol-cap small{font-size:14px}}
