/* Entry scenes share the application's motion tokens and theme-aware logo. */
.entry-polish{background:radial-gradient(ellipse at 17% 12%,var(--brand-soft),transparent 54%),var(--bg)}
.entry-polish .onboarding-frame{width:min(1160px,100%);gap:24px;grid-template-rows:minmax(min-content,1fr) auto}.entry-polish .onboarding-frame>[data-slider]{align-self:center}
.entry-polish .onboarding-card{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:500px;gap:clamp(30px,5vw,72px);padding:clamp(30px,4.5vw,64px);border:1px solid var(--line);border-radius:30px;background:var(--surface);box-shadow:0 24px 70px #102b5410;overflow:hidden}
.entry-polish .onboarding-visual{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;min-height:350px;background:none}
.entry-polish .entry-halo{position:absolute;inset:0 -8%;background:radial-gradient(ellipse,var(--brand-soft),transparent 68%);z-index:-1}
.entry-polish .entry-orbit{position:absolute;width:310px;height:310px;border:1px solid var(--line);border-radius:50%;z-index:-1;opacity:.7}
.entry-polish .entry-orbit-one{transform:rotate(-20deg) scaleY(.78)}
.entry-polish .entry-orbit-two{transform:rotate(28deg) scaleY(.9);width:360px;height:360px;opacity:.4}
.entry-polish .entry-mascot{position:relative;display:block;width:clamp(160px,17vw,230px);height:clamp(160px,17vw,230px);border-radius:26%;overflow:hidden;box-shadow:0 20px 48px #07327422}
.entry-polish .entry-mascot img{width:100%;height:100%;object-fit:cover}
.entry-polish .onboarding-art{position:absolute;right:0;top:15%;width:62px;height:62px;border:1px solid var(--line);border-radius:18px;display:grid;place-items:center;background:var(--surface);color:var(--brand);box-shadow:0 12px 24px #102b5414;transform:rotate(7deg)}
.entry-polish .onboarding-art svg{width:27px;height:27px}
.entry-polish .secondary-art{right:auto;left:0;top:auto;bottom:18%;width:46px;height:46px;border-radius:14px;transform:rotate(-8deg);color:var(--green)}
.entry-polish .secondary-art svg{width:20px;height:20px}
.entry-polish .entry-caption{position:static;color:var(--text);font-size:13px;font-weight:700;padding:9px 15px;border:1px solid var(--line);border-radius:99px;background:var(--surface)}
.entry-polish .onboarding-step{display:block;font-size:10px;font-weight:800;letter-spacing:.14em;color:var(--brand);margin-bottom:16px}
.entry-polish .onboarding-copy h1,.entry-polish .welcome-frame h1,.entry-polish .matching-state h1{font-size:clamp(30px,3.25vw,46px);line-height:1.13;letter-spacing:-.045em;margin-bottom:18px}
.entry-polish .onboarding-copy>p,.entry-polish .welcome-frame>p,.entry-polish .matching-state>p{font-size:15px;line-height:1.75;max-width:440px}
.entry-polish .onboarding-copy{min-width:0}
.entry-polish .onboarding-benefits{list-style:none;display:grid;gap:11px;padding:0;margin:24px 0 16px;color:var(--text);font-size:12px;font-weight:550}
.entry-polish .onboarding-benefits li{display:flex;align-items:center;gap:10px;animation:entry-text-reveal 340ms var(--ux-ease) both}
.entry-polish .onboarding-benefits li:nth-child(2){animation-delay:65ms}
.entry-polish .onboarding-benefits svg{width:16px;height:16px;color:var(--brand);flex:none}
.entry-polish .onboarding-dots{display:flex;gap:0;margin:14px 0 22px;align-items:center}
.entry-polish .onboarding-dots button,.entry-polish .onboarding-dots button.active{display:grid;place-items:center;width:46px;height:28px;padding:0;border:0;border-radius:99px;background:none;flex:none;transition:none}
.entry-polish .onboarding-dots span{display:block;width:15px;height:5px;border-radius:99px;background:var(--line);transition:width var(--ux-duration) var(--ux-spring),background var(--ux-duration)}
.entry-polish .onboarding-dots button.active span{width:36px;background:var(--brand)}
.entry-polish .onboarding-dots button.done span{background:var(--brand);opacity:.4}
.entry-polish .onboarding-actions{display:flex;gap:12px;justify-content:flex-start}
.entry-polish .onboarding-actions .btn{min-height:48px;min-width:120px;margin:0;justify-content:center}
.entry-polish .btn{transition:transform var(--ux-duration) var(--ux-spring),box-shadow var(--ux-duration),background var(--ux-duration)}
.entry-polish .btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 8px 20px #2459ca20}
.entry-polish .btn:not(:disabled):active{transform:scale(.98);box-shadow:none}
.entry-polish button:focus-visible{outline:3px solid var(--brand);outline-offset:4px}
.entry-polish h1:focus{outline:none}
.entry-polish .onboarding-copy,.entry-polish .onboarding-visual{animation:entry-forward 340ms var(--ux-ease) both}
.entry-polish .onboarding-visual{animation-delay:35ms}
.entry-polish [data-direction="back"] :is(.onboarding-copy,.onboarding-visual){animation-name:entry-back}
.entry-polish .onboarding-copy>h1{animation:entry-text-reveal 340ms 30ms var(--ux-ease) both}
.entry-polish .onboarding-copy>p{animation:entry-text-reveal 340ms 60ms var(--ux-ease) both}
@keyframes entry-forward{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes entry-back{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}
@keyframes entry-text-reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.entry-polish .welcome-frame,.entry-polish .matching-state{position:relative;width:min(660px,100%);min-height:0;gap:0;padding:46px 48px 38px;border-radius:30px;background:var(--surface);box-shadow:0 24px 70px #102b5410;animation:ux-reveal 340ms var(--ux-ease) both;overflow:hidden}
.entry-polish .entry-welcome-visual,.entry-polish .entry-matching-visual,.entry-polish .entry-result-portrait{position:relative;margin:0 0 28px;display:grid;place-items:center;isolation:isolate}
.entry-polish :is(.entry-welcome-visual,.entry-result-portrait) .entry-mascot{width:132px;height:132px;border-radius:30px}
.entry-polish .entry-welcome-halo{position:absolute;inset:-40%;z-index:-1;background:radial-gradient(circle,var(--brand-soft),transparent 70%)}
.entry-polish .entry-badge{position:absolute;right:-10px;bottom:-7px;width:42px;height:42px;border:4px solid var(--surface);border-radius:15px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}
.entry-polish .entry-badge svg{width:20px;height:20px}
.entry-polish .welcome-frame .btn{margin:26px 0 18px;min-height:50px;min-width:240px}
.entry-polish :is(.welcome-frame,.matching-state)>small{font-size:11px;line-height:1.7;color:var(--muted);max-width:400px}
.entry-polish .matching-state{padding-top:38px;min-height:475px;justify-content:center}
.entry-polish .matching-state h1{font-size:clamp(28px,2.8vw,34px);margin-bottom:10px;max-width:440px}
.entry-polish .entry-matching-visual{width:220px;height:220px;margin-bottom:16px}
.entry-polish .entry-matching-visual .entry-mascot{width:122px;height:122px;border-radius:30px;animation:entry-brand-breathe 3.2s var(--ux-ease) infinite}
.entry-polish .matching-glow{position:absolute;inset:-5%;background:radial-gradient(circle,var(--brand-soft),transparent 68%);z-index:-1;animation:entry-glow 3s var(--ux-ease) infinite}
.entry-polish .matching-ring{position:absolute;border-radius:50%;pointer-events:none}
.entry-polish .outer-ring{inset:4%;border:1px solid var(--line);border-top-color:var(--brand);border-right-color:var(--brand);animation:entry-orbit-turn 4s linear infinite}
.entry-polish .inner-ring{inset:13%;border:1px dashed var(--line);border-bottom-color:var(--brand);animation:entry-orbit-turn 7s linear infinite reverse}
.entry-polish .matching-orbit-point{position:absolute;inset:4%;border-radius:50%;animation:entry-orbit-turn 4s linear infinite}
.entry-polish .matching-orbit-point::before{content:'';position:absolute;top:-3px;left:50%;width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.entry-polish .matching-stage{width:100%;min-height:25px;margin:4px 0 18px;font-size:14px;font-weight:650;line-height:25px;color:var(--text)}
.entry-polish .matching-stage>span{display:block;animation:entry-text-reveal 240ms var(--ux-ease) both}
.entry-polish .matching-progress{position:relative;height:3px;margin:0 0 18px;width:min(280px,100%);overflow:hidden;background:var(--soft);border-radius:99px}
.entry-polish .matching-progress span{width:65%;height:100%;display:block;transform:translateX(-110%);background:linear-gradient(90deg,transparent,var(--brand),transparent);animation:entry-progress-flow 1.7s var(--ux-ease) infinite}
.entry-polish .matching-state>p{font-size:12px;line-height:1.7;min-height:21px;max-width:420px;margin:0 0 7px}
.entry-polish .onboarding-error{margin-top:14px;font-size:12px;line-height:1.6;text-align:left;color:var(--red);padding:10px 12px;border-radius:10px;background:var(--soft)}
.entry-polish .onboarding-error[hidden]{display:none}
.entry-polish .entry-result-portrait>img{width:132px;height:132px;border-radius:32px;object-fit:cover}
.entry-complete .entry-badge{background:var(--green);color:white;animation:entry-check-reveal 260ms 90ms var(--ux-spring) both}
.entry-complete .entry-result-portrait{animation:ux-reveal 340ms var(--ux-spring) both}
.route-loading-brand>.route-logo{position:relative;width:48px;height:48px;flex:none;display:block;overflow:hidden;border-radius:14px;background:none;animation:ux-reveal var(--ux-duration) var(--ux-ease) both}
.route-logo img{width:100%;height:100%;object-fit:cover}
.screen-view:not(.is-loading){animation:ux-reveal var(--ux-duration) var(--ux-ease) both}
.login-initialization .matrix-grid{animation:matrix-drift 5s linear infinite;opacity:.24}
.login-initialization .initialization-core{animation:ux-reveal 340ms var(--ux-ease) both}
.login-initialization .initialization-logo{animation:entry-brand-breathe 2.5s var(--ux-ease) infinite;box-shadow:0 18px 60px #145fd329}
.login-initialization .initialization-core h1{font-size:clamp(28px,3vw,42px)}
::view-transition-old(root){animation:entry-exit 110ms var(--ux-ease) both}
::view-transition-new(root){animation:ux-reveal var(--ux-duration) var(--ux-ease) both;mix-blend-mode:normal}
@keyframes entry-brand-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.025)}}
@keyframes entry-glow{0%,100%{opacity:.65;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
@keyframes entry-orbit-turn{to{transform:rotate(360deg)}}
@keyframes entry-progress-flow{to{transform:translateX(265%)}}
@keyframes entry-check-reveal{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes entry-exit{to{opacity:0;transform:scale(.995)}}
@media(max-width:1400px){.entry-polish{padding:24px}.entry-polish .onboarding-card{min-height:450px;padding:36px 46px}.entry-polish .onboarding-visual{min-height:320px}.entry-polish .onboarding-frame{gap:18px}.entry-polish .onboarding-footnote{margin:0}.entry-polish .entry-orbit-two{width:320px;height:320px}.entry-polish .entry-orbit-one{width:280px;height:280px}}
@media(max-height:800px) and (min-width:801px){.entry-polish{padding-block:22px}.entry-polish .welcome-frame,.entry-polish .matching-state{padding-block:28px;max-width:640px}.entry-polish .entry-matching-visual{width:190px;height:190px;margin-bottom:14px}.entry-polish .matching-state{min-height:440px}}
@media(max-width:800px){.entry-polish{padding:20px}.entry-polish .onboarding-card{grid-template-columns:1fr;min-height:0;gap:24px;padding:28px}.entry-polish .onboarding-visual{min-height:225px;gap:12px}.entry-polish .entry-mascot{width:150px;height:150px}.entry-polish .onboarding-art{width:46px;height:46px;right:12%;top:8%;border-radius:14px}.entry-polish .secondary-art{right:auto;left:12%;top:auto;bottom:20%;width:38px;height:38px}.entry-polish .entry-orbit-one{width:230px;height:230px}.entry-polish .entry-orbit-two{width:270px;height:270px}.entry-polish .onboarding-copy h1{font-size:30px}.entry-polish .welcome-frame,.entry-polish .matching-state{padding:30px 24px}.entry-polish .onboarding-copy>p{font-size:14px}.entry-polish .matching-state h1{font-size:28px}.entry-polish .matching-state{min-height:475px}.entry-polish .entry-matching-visual{width:200px;height:200px}}
@media(max-width:480px){.entry-polish .onboarding-card{padding:24px 20px}.entry-polish .onboarding-copy h1{font-size:28px}.entry-polish .onboarding-benefits{font-size:11px}.entry-polish .onboarding-actions .btn{min-width:0;flex:1}.entry-polish .entry-caption{font-size:11px}.entry-polish .welcome-frame .btn{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){.entry-polish *,.route-loading-brand>.route-logo,.login-initialization *,.login-initialization::after,.screen-view{animation:none!important;transition:none!important}.entry-polish .matching-progress span{transform:none;width:100%;background:var(--brand);opacity:.5}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
:root[data-economy="on"] .entry-polish *,:root[data-economy="on"] .login-initialization *,:root[data-economy="on"] .login-initialization::after,:root[data-economy="on"] .route-logo{animation:none!important;transition:none!important}
:root[data-economy="on"] .entry-polish .matching-progress span{transform:none;width:100%;background:var(--brand);opacity:.5}
/* The canonical logo stack has a compact global size; these contexts are larger. */
.entry-polish .entry-mascot.akil-logo-stack{width:clamp(160px,17vw,230px)!important;height:clamp(160px,17vw,230px)!important;flex:0 0 auto!important;border-radius:26%!important;background:transparent!important}
.entry-polish :is(.entry-welcome-visual,.entry-result-portrait) .entry-mascot.akil-logo-stack{width:132px!important;height:132px!important;border-radius:30px!important}
.entry-polish .entry-matching-visual .entry-mascot.akil-logo-stack{width:122px!important;height:122px!important;border-radius:30px!important}
.entry-polish .onboarding-visual:before,.entry-polish .onboarding-visual:after{display:none}
.route-loading-brand>.route-logo.akil-logo-stack{width:48px!important;height:48px!important;flex:0 0 48px!important;background:transparent!important}
.login-initialization .initialization-logo.akil-logo-stack{width:120px!important;height:120px!important;flex:0 0 120px!important;border-radius:30px!important;background:transparent!important}
@media(max-width:800px){.entry-polish .onboarding-visual .entry-mascot.akil-logo-stack{width:150px!important;height:150px!important}}
:root[data-economy="on"] .route-skeleton i,:root[data-economy="on"] .student-dashboard-loading *{animation:none!important}
