/* Decorative home/login figures only; existing app motion stays untouched. */
.route-characters{display:flex;align-items:flex-end;position:absolute;z-index:3;width:166px;aspect-ratio:1.35;right:3px;bottom:162px;pointer-events:none;isolation:isolate;animation:characters-arrive 1s cubic-bezier(.2,.8,.2,1) both;filter:drop-shadow(0 9px 12px #101b4b25)}.route-character{width:54%;height:auto;overflow:visible;flex-shrink:0}.character-gold{margin-right:-8%;rotate:-8deg}.character-teal{rotate:7deg}.character-body{transform-box:fill-box;transform-origin:center bottom;animation:character-float 5.6s ease-in-out infinite}.character-teal .character-body{animation-delay:-2.3s}.character-shadow{fill:#101b4b;opacity:.12;transform-origin:center;animation:character-shadow 5.6s ease-in-out infinite}.character-brow,.character-smile,.character-hand,.character-foot{fill:none;stroke:#101b4b;stroke-width:5;stroke-linecap:round}.character-teal .character-hand,.character-teal .character-foot{stroke:#101b4b}.character-hand{transform-box:fill-box;transform-origin:left bottom;animation:character-wave 7s ease-in-out infinite}.character-teal .character-hand{animation-delay:-3s}.character-eyes{transform-box:fill-box;transform-origin:center;animation:character-blink 7.5s infinite}.character-teal .character-eyes{animation-delay:-1.4s}.character-pupils{transform:translate(var(--look-x,0px),var(--look-y,0px));transition:transform .25s ease-out}.character-spark{position:absolute;color:#f6d673;font-size:24px;line-height:1;animation:character-twinkle 4s ease-in-out infinite}.spark-one{top:-5px;left:18px}.spark-two{bottom:15px;right:-6px;font-size:18px;animation-delay:-2s}.auth-art:has(>.route-characters){position:relative}.auth-art>.route-characters{bottom:80px;right:35px;width:155px}.route-characters.is-private .character-eyes{animation:none;scale:1 .15;transition:scale .35s}.character-transition{position:fixed;inset:0;z-index:10000;background:#e7e7e7f5;backdrop-filter:blur(10px);display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,visibility .35s ease}.character-transition.is-active{opacity:1;visibility:visible;pointer-events:auto}.character-transition-inner{text-align:center;animation:characters-arrive .5s ease both}.character-transition .route-characters{position:relative;inset:auto;width:200px;margin:auto;filter:none}.character-transition p{font:650 14px/1.7 Manrope,sans-serif;color:#101b4b;margin:20px 0 0;letter-spacing:.3px}.character-transition .character-body{animation:character-travel .65s ease-in-out infinite alternate}.character-transition .character-teal .character-body{animation-delay:-.3s}.character-login-arrival .route-characters{animation:characters-arrive .85s cubic-bezier(.2,.8,.2,1) both}
@keyframes characters-arrive{from{opacity:0;translate:0 20px;scale:.88}to{opacity:1;translate:0 0;scale:1}}@keyframes character-float{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -5px;rotate:2deg}}@keyframes character-shadow{0%,100%{opacity:.14;scale:1}50%{opacity:.08;scale:.85}}@keyframes character-blink{0%,43%,47%,100%{scale:1 1}45%{scale:1 .08}}@keyframes character-wave{0%,12%,100%{rotate:0deg}3%,9%{rotate:-15deg}6%{rotate:9deg}}@keyframes character-twinkle{0%,100%{opacity:.45;scale:.75;rotate:-8deg}50%{opacity:1;scale:1;rotate:9deg}}@keyframes character-travel{from{translate:0 0;rotate:-3deg}to{translate:0 -10px;rotate:3deg}}
@media(max-width:900px){.route-characters{width:138px;bottom:164px;right:0}.auth-art>.route-characters{width:110px;right:25px;bottom:65px}}@media(max-width:680px){.hero-visual>.route-characters{width:105px;right:3px;bottom:144px}.auth-art>.route-characters{width:77px;right:16px;bottom:18px}.character-spark{font-size:18px}.spark-two{font-size:15px}}@media(prefers-reduced-motion:reduce){.route-characters,.route-characters *,.character-transition *{animation:none!important;transition:none!important}.character-transition{display:none!important}.character-pupils{transform:none}.route-characters.is-private .character-eyes{scale:1 .15}}
.hero-visual>.route-characters{bottom:auto;top:43px;left:-17px;right:auto}@media(max-width:680px){.hero-visual>.route-characters{top:0;left:-6px;right:auto;bottom:auto;width:90px}}
@view-transition{navigation:auto}.auth-art .character-teal rect{stroke:#a3a8b2;stroke-width:1.5}@media(max-width:680px){.auth-art>.route-characters{top:20px;bottom:auto;right:12px;width:68px}}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}
/* Larger home-page figures, without moving the existing content or login form. */
.hero-visual>.route-characters{width:220px;top:24px;left:-17px}.character-transition .route-characters{width:245px}@media(max-width:900px){.hero-visual>.route-characters{width:180px;top:18px}}@media(max-width:680px){.hero-visual>.route-characters{width:135px;top:-8px;left:-7px}}
/* Shared ERP greeting: figures replace the header tag without adding a content row. */
.erp-character-greeting{position:relative;display:block;flex-shrink:0;width:78px;height:48px;padding:0;background:none;border:0}.erp-character-greeting>.route-characters{position:absolute;inset:auto 0 0;width:78px;aspect-ratio:1.5;animation-duration:.7s;filter:none}.erp-character-greeting .character-spark{font-size:13px}.erp-character-greeting .spark-two{font-size:13px;right:0;bottom:8px}.erp-character-greeting .spark-one{left:8px;top:0}.erp-screen-reader,.erp-welcome-notice{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;padding:0!important;margin:-1px!important;border:0!important}.erp-welcome-notice button{display:none}@media(max-width:680px){.erp-character-greeting{width:62px;height:44px}.erp-character-greeting>.route-characters{width:62px;bottom:1px}.erp-character-greeting .spark-one{left:5px}.erp-character-greeting .spark-two{right:-1px}}

/* Original rounded characters, recolored for the current palette. */
.character-gold .character-hair{fill:#101B4B}.character-teal .character-hair{fill:#F6D673}.character-teal .character-brow{stroke:#A3A8B2}.character-teal .character-smile{stroke:#F6D673}
