.majik-launch{position:fixed;right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));z-index:80;border:1px solid #08221f;border-radius:2rem;padding:.85rem 1.1rem;background:#c9f568;color:#08221f;font-weight:800;box-shadow:0 4px 18px #08221f30;cursor:pointer}
.majik-drawer{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;width:min(460px,100%);height:100dvh;max-height:100dvh;max-width:100%;padding:1.25rem 1.25rem max(1.25rem,env(safe-area-inset-bottom));border:0;background:#fffdf6;color:#08221f;overflow:auto;box-shadow:-8px 0 35px #08221f30}
.majik-drawer::backdrop{background:#08221f66}.majik-drawer header{display:flex;justify-content:space-between;gap:1rem;align-items:start}.majik-drawer h2{font-size:1.5rem;margin:.25rem 0}.majik-drawer header button{font-size:1.6rem;min-width:44px;min-height:44px}.majik-drawer button,.majik-drawer a{touch-action:manipulation}.majik-drawer input{box-sizing:border-box;width:100%;margin:.4rem 0}.majik-intro,.majik-drawer footer small{font-size:.85rem;line-height:1.5}.majik-cards{display:grid;gap:.6rem}.majik-card{border:1px solid #b7cbc6;border-left:5px solid #426c84;padding:.75rem;border-radius:10px;background:#f0f6f6}.majik-card h3{font-size:1rem;margin:0 0 .25rem}.majik-card p{font-size:.9rem;margin:0}.majik-card--success{border-left-color:#20734f;background:#eef8f0}.majik-card--warning{border-left-color:#996000;background:#fff4d8}.majik-card--danger{border-left-color:#ae3044;background:#fff0f2}.majik-card meter{width:100%;margin-top:.5rem}.majik-message{border-bottom:1px solid #ced8cf;padding:.8rem 0;overflow-wrap:anywhere;white-space:pre-line}.majik-message a{display:block;margin:.5rem 0}.majik-followups{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0}.majik-followups button,.majik-drawer footer button{padding:.6rem;border:1px solid #557a70;border-radius:8px;background:#fffdf6;color:#08221f;min-height:44px}.majik-drawer footer{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.majik-drawer footer small{flex-basis:100%}.majik-drawer :focus-visible,.majik-launch:focus-visible{outline:3px solid #305b9f;outline-offset:3px}.majik-drawer [hidden]{display:none!important}

[data-majik-selected][hidden]{display:none!important}
.majik-card--danger meter::-webkit-meter-optimum-value{background:#ae3044}.majik-card--warning meter::-webkit-meter-optimum-value{background:#996000}
.majik-drawer header{position:sticky;top:-1.25rem;z-index:1;background:#fffdf6;padding:.5rem 0}

.majik-launch{display:flex;align-items:center;gap:.6rem;padding:.2rem 1rem .2rem .45rem}.majik-launch img,.majik-portrait{display:block;width:40px;height:62px;object-fit:contain;flex-shrink:0}.majik-drawer header{gap:.6rem;align-items:center}.majik-drawer header>div{flex:1;min-width:0}
@media(max-width:480px){.majik-drawer{width:100%;}.majik-drawer h2{font-size:1.2rem}.majik-launch{right:.75rem}}

/* State poses stay decorative: live status text communicates request progress. */
.majik-portrait{width:60px;height:92px}.majik-launch img{width:44px;height:68px}
[data-majik-root] img{transform-origin:50% 85%}
[data-character-state="idle"] img{animation:majik-float 4s ease-in-out infinite}
[data-character-state="greeting"] img{animation:majik-wave .9s ease-in-out}
[data-character-state="thinking"] img{animation:majik-listen 1.8s ease-in-out infinite}
[data-character-state="guiding"] img{animation:majik-present .35s ease-out}
@keyframes majik-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes majik-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-3deg)}40%,80%{transform:rotate(3deg)}}
@keyframes majik-listen{0%,100%{transform:rotate(0)}50%{transform:rotate(-1.5deg)}}
@keyframes majik-present{from{transform:translateY(3px);opacity:.75}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){[data-majik-root] img{animation:none!important;transition:none!important;transform:none!important}}
/* Full uncropped character, no avatar circle, card or pill. */
.majik-launch{width:118px;min-height:192px;display:flex;flex-direction:column;gap:2px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:#08221f;line-height:1.15;z-index:80}
.majik-launch:hover,.majik-launch:focus{background:transparent;box-shadow:none}
.majik-launch img{width:108px;height:166px;object-fit:contain;filter:drop-shadow(0 3px 3px #08221f25);pointer-events:none}
.majik-launch span{font-size:14px;font-weight:800;text-shadow:0 1px 3px #fffdf6,0 -1px 3px #fffdf6,1px 0 3px #fffdf6,-1px 0 3px #fffdf6;pointer-events:none}
[data-roaming="paused"][data-character-state="idle"] .majik-launch img{animation-play-state:paused}
@media(max-width:480px){.majik-launch{width:96px;min-height:158px}.majik-launch img{width:88px;height:135px}.majik-launch span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.majik-launch{transition:none!important}}

@media(min-width:900px){.majik-on .wrap{margin-right:140px;max-width:calc(100% - 156px)}}
[data-roaming="docked"] .majik-launch{margin:1rem 1rem 1rem auto}
/* Canonical poses provide the gesture; no flashing or rotating thinking loop. */
[data-majik-root] img{animation:none!important}
[data-character-state="thinking"] img{filter:drop-shadow(0 0 7px #37d7e8) drop-shadow(0 0 3px #dbb45e)}
[data-facing="left"][data-character-state="walking"] .majik-launch img{transform:scaleX(-1)}
.majik-launch .majik-bubble{position:absolute;bottom:100%;right:0;width:180px;max-width:calc(100vw - 32px);padding:10px;border:1px solid #cfb567;border-radius:12px;background:#fffdf6;color:#08221f;font-size:13px;line-height:1.4;text-shadow:none;box-sizing:border-box}
[data-bubble-side="right"] .majik-bubble{right:auto;left:0}
[data-bubble-below="true"] .majik-bubble{bottom:auto;top:100%}
.majik-bubble:after{content:'';position:absolute;bottom:-7px;right:30px;width:12px;height:12px;transform:rotate(45deg);background:#fffdf6;border-right:1px solid #cfb567;border-bottom:1px solid #cfb567}
[data-entrance="running"] .majik-bubble,[data-entrance="fade"] .majik-bubble,[data-roaming="moving"] .majik-bubble{visibility:hidden}
[data-entrance="running"] .majik-launch{pointer-events:none;filter:drop-shadow(-24px 0 7px #2ae0ee90) drop-shadow(-48px 0 12px #dcb65670)}
[data-entrance="running"] .majik-launch:before{content:'';position:absolute;inset:25% 5%;border-radius:50%;background:linear-gradient(90deg,transparent,#27ddec90,#e9bd60);filter:blur(12px);transform:scaleX(2.5);z-index:-1}
.majik-speech-inline{border-left:3px solid #cfb567;padding:.5rem .75rem;background:#f0f6f6}
.majik-drawer header [data-majik-pause]{font-size:.75rem;max-width:90px;padding:6px;line-height:1.3}
[data-motion-paused="true"] .majik-launch{transition:none!important}
@media(prefers-reduced-motion:reduce){[data-entrance="running"] .majik-launch:before{display:none}}
@media(max-width:480px){.majik-drawer header{display:grid;grid-template-columns:60px 1fr 44px;gap:6px 10px}.majik-drawer header>img{grid-row:1 / 3}.majik-drawer header>div{grid-column:2 / 4}.majik-drawer header [data-majik-pause]{grid-column:2;max-width:none;justify-self:end}.majik-drawer header [data-majik-close]{grid-column:3}}

/* Keep phone access stable, including while the keyboard changes viewport height. */
@media(max-width:768px){
 .majik-launch{width:72px;min-height:112px;touch-action:manipulation}
 .majik-launch img{width:64px;height:98px}
 .majik-launch .majik-bubble{right:0;left:auto;top:auto;bottom:100%;width:168px;max-width:calc(100vw - 32px)}
 .majik-drawer{width:100%;max-width:100vw;overflow-x:hidden;overflow-wrap:anywhere}
 [data-entrance="running"] .majik-launch{pointer-events:auto}
}
