/* One-time entrances, quiet reactions, and a message-led vision demo. */
.mascot-play{position:relative;display:block;width:100%;max-width:475px;padding:0;border:0;background:transparent;cursor:pointer;z-index:1;-webkit-tap-highlight-color:transparent;color:var(--blue);font:inherit}
.mascot-play .hero-mascot{display:block;width:100%;height:510px;object-fit:contain;margin:auto}
.mascot-play:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:8px}
.mascot-tap-hint{position:absolute;bottom:-18px;z-index:2;left:50%;transform:translateX(-50%);white-space:nowrap;border:1px solid #c6d5ed;background:#fff;padding:7px 14px;border-radius:30px;font-size:12px;box-shadow:0 3px 9px #1027460d}
.mascot-message{z-index:3;pointer-events:none;min-height:66px}
.mascot-play.is-playing .hero-mascot{animation:mascot-reply .55s ease both}
@keyframes mascot-reply{0%{transform:scale(.97) rotate(-3deg)}55%{transform:scale(1.035) rotate(2deg)}100%{transform:none}}
@media(max-width:900px){.mascot-play .hero-mascot{height:420px}.mascot-tap-hint{font-size:11px;padding:6px 10px}}
@media(max-width:600px){.mascot-play{width:100%;max-width:330px}.mascot-play .hero-mascot{height:295px;max-width:93%}.mascot-tap-hint{bottom:-15px}.mascot-message{min-height:54px}}
.reveal-ready{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready.is-visible{opacity:1;transform:none}
.brand-line .punctuation{display:inline-block;transform-origin:50% 90%}
.brand-line .is-visible .punctuation{animation:point-pop .65s .3s both}
.mascot-arrived{animation:mascot-hello .85s ease-out both}
.hero-mascot,.planning-mascot img,.vision-host img,.contact-mascot img{transform-origin:50% 95%;transition:transform .35s ease}
@media(hover:hover){.hero-mascot:hover,.planning-mascot img:hover,.vision-host img:hover,.contact-mascot img:hover{transform:rotate(-3deg) translateY(-4px)}.button:hover span[aria-hidden]{transform:translate(3px,-3px)}}
.button span[aria-hidden]{display:inline-block;transition:transform .25s ease}
.vision-demo{border:1px solid #6580a5;background:#0b1b31;margin-bottom:35px;overflow:hidden}
.demo-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid #ffffff25;color:#c2d4ec;font-size:12px}
.demo-pause{border:1px solid #8ba1bd;background:transparent;color:white;padding:7px 10px;font:inherit;cursor:pointer;white-space:nowrap}
.demo-screen{padding:28px 24px 30px;min-height:220px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(#ffffff12 1px,transparent 1px);background-size:6px 6px}
.demo-kicker{color:#ffb373!important;font-size:14px!important;margin:0 0 15px!important}
.demo-message{font-size:clamp(24px,2.6vw,38px)!important;line-height:1.5!important;letter-spacing:-.035em;font-weight:800;color:white!important;margin:0!important}
.demo-detail{color:#c4d4e9!important;font-size:14px!important;margin:14px 0 0!important}
.demo-screen.message-enter{animation:message-in .55s ease both}
.demo-steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff30}
.demo-steps button{font:inherit;font-size:14px;min-height:48px;color:#c4d4e9;border:0;border-right:1px solid #ffffff25;background:transparent;cursor:pointer;transition:background .25s,color .25s}
.demo-steps button:last-child{border-right:0}.demo-steps button[aria-pressed=true]{background:#f38127;color:#102746;font-weight:700}
.demo-steps button:focus-visible,.demo-pause:focus-visible{outline:3px solid white;outline-offset:-4px}
@keyframes point-pop{0%{transform:scale(.3);opacity:0}65%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}
@keyframes mascot-hello{0%{transform:translateY(12px) rotate(-3deg)}55%{transform:translateY(-5px) rotate(1deg)}100%{transform:none}}
@keyframes message-in{from{opacity:.2;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:600px){.demo-top{padding:12px;gap:8px}.demo-top>span{font-size:11px}.demo-screen{padding:25px 18px;min-height:205px}.demo-message{font-size:27px!important}.demo-detail{font-size:13px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.reveal-ready{opacity:1;transform:none;transition:none}*,*:before,*:after{animation:none!important;transition:none!important}}
