/* Approved turtle captain. Only launcher artwork and contact spacing change. */
#mle-concierge.mc-mascot-ready .mc-launch {
  right: calc(10px - 10pt + env(safe-area-inset-right, 0px));
  bottom: calc(-5px - 10pt);
  display: block; width: 132px; height: 132px; min-width: 0; min-height: 0;
  padding: 0; border: 0; border-radius: 18px; background: transparent; box-shadow: none; overflow: visible;
  -webkit-tap-highlight-color: transparent;
}
body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-root {
  right: calc(10px + 10pt + env(safe-area-inset-right, 0px));
  bottom: 139px;
}
#mle-concierge.mc-mascot-ready .mc-launch-icon { display: none; }
#mle-concierge.mc-mascot-ready .mc-turtle-caption {
  display: block !important; position: absolute; bottom: 24px; left: 56%; transform: translateX(-50%);
  padding: 2px 10px; border: 0; border-radius: 20px;
  background: rgb(22 60 99 / 90%); color: #fff; font-size: 11px; font-weight: 700; line-height: 1.5;
  white-space: nowrap; pointer-events: none;
}
.mc-turtle-entry, .mc-turtle-character { position: relative; display: block; width: 100%; height: 100%; pointer-events: none; }
.mc-turtle-entry { display: block !important; animation: mc-turtle-enter 760ms cubic-bezier(.22,.7,.3,1) both; }
.mc-turtle-character { transform-origin: 60% 95%; animation: mc-turtle-breathe 5.8s ease-in-out 760ms infinite; }
#mle-concierge .mc-turtle-character img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; pointer-events: none; user-select: none; }
.mc-turtle-sleeve { clip-path: polygon(25% 59%,31% 58%,34% 64%,31% 77%,25% 76%); }
.mc-turtle-arm { clip-path: polygon(0 43%,21% 43%,28% 57%,31% 59%,31% 70%,29% 74%,20% 74%,0 66%); transform-origin: 29% 65%; animation: mc-turtle-wave 12s ease-in-out 760ms infinite; }
.mc-turtle-body { clip-path: polygon(0 0,100% 0,100% 100%,0 100%,0 75%,25.5% 75%,29.1% 72%,30.6% 65%,29.9% 60%,28% 57%,27% 43%,0 43%); }
.mc-turtle-eye-left, .mc-turtle-eye-right { opacity: 0; animation: mc-turtle-blink 4.8s linear 760ms infinite; }
.mc-turtle-eye-left { clip-path: ellipse(5.1% 7.2% at 39% 30.5%); }
.mc-turtle-eye-right { clip-path: ellipse(6.5% 7% at 60.7% 35.5%); }
#mle-concierge.mc-mascot-ready .mc-launch-text {
  position: absolute; right: calc(100% + 4px); bottom: 44px; width: 202px; max-width: none;
  padding: 12px 15px; border: 1px solid #dee8ed; border-radius: 12px; background: #fff; color: #163c63;
  box-shadow: 0 4px 18px #132a3814; opacity: 0; visibility: hidden; pointer-events: none;
  white-space: normal; transition: opacity .2s, visibility .2s;
}
#mle-concierge.mc-mascot-ready .mc-launch-text small { color: #526777; }
@media (hover: hover) and (pointer: fine) {
  #mle-concierge.mc-mascot-ready .mc-launch:is(:hover,:focus-visible) { transform: translateY(-3px); }
  #mle-concierge.mc-mascot-ready .mc-launch:is(:hover,:focus-visible) .mc-launch-text { opacity: 1; visibility: visible; }
}
#mle-concierge.mc-mascot-ready .mc-launch[aria-expanded="true"] .mc-launch-text { opacity: 0; visibility: hidden; }
#mle-concierge[data-mascot-paused="true"] .mc-turtle-entry,
#mle-concierge[data-mascot-paused="true"] .mc-turtle-character,
#mle-concierge[data-mascot-paused="true"] .mc-turtle-character img { animation-play-state: paused; }
@keyframes mc-turtle-enter { 0% { transform: translateY(120%); } 65% { transform: translateY(-8px); } 85% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes mc-turtle-breathe { 0%,100% { transform: rotate(-.25deg); } 50% { transform: rotate(.25deg) translateY(-1px); } }
@keyframes mc-turtle-wave { 0%,20%,100% { transform: rotate(0); } 4% { transform: rotate(4deg); } 8% { transform: rotate(-4deg); } 12% { transform: rotate(4deg); } 16% { transform: rotate(-2deg); } }
@keyframes mc-turtle-blink { 0%,90%,96%,100% { opacity: 0; } 91%,94% { opacity: 1; } }
@media (min-width: 481px) {
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) :is(#fcp-toggle, .fcp-link) { width: 64px; height: 64px; min-width: 64px; min-height: 64px; }
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-root :is(.fcp-icon-wrap, .fcp-icon) { width: 32px; height: 32px; }
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-root .fcp-icon-wrap svg { width: 30px; height: 30px; }
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-root :is(.fcp-label, #fcp-toggle-label) { font-size: 14px; }
}
@media (max-width: 480px) {
  #mle-concierge.mc-mascot-ready .mc-launch { width: 116px; height: 116px; right: calc(4px - 10pt + env(safe-area-inset-right, 0px)); }
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-root { right: calc(4px + 8pt + env(safe-area-inset-right, 0px)); bottom: calc(123px - 5pt); }
  #mle-concierge.mc-mascot-ready .mc-launch-text { display: none; }
  #mle-concierge.mc-mascot-ready .mc-launch:is(:focus,:focus-visible) { outline: none; }
}
@media (hover: none), (pointer: coarse) {
  #mle-concierge.mc-mascot-ready .mc-launch-text { display: none; }
  #mle-concierge.mc-mascot-ready .mc-launch:is(:focus,:focus-visible) { outline: none; }
}
@media (prefers-reduced-motion: reduce) {
  #mle-concierge .mc-turtle-entry, #mle-concierge .mc-turtle-character, #mle-concierge .mc-turtle-character img { animation: none; }
  #mle-concierge.mc-mascot-ready .mc-launch, #mle-concierge.mc-mascot-ready .mc-launch-text { transition: none; transform: none; }
}

body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle::after {
  content: "LINE"; position: absolute; bottom: 7px; left: 50%; transform: translateX(-50%);
  padding: 0; border: 0; background: transparent; color: #fff;
  font: 700 11px/1.2 sans-serif; white-space: nowrap; pointer-events: none;
}

/* Reveal the contact control alongside the turtle; preserve button hover transforms. */
body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle-wrap { animation: mc-turtle-enter 760ms cubic-bezier(.22,.7,.3,1) both; }
body:has(#mle-concierge[data-mascot-paused="true"]) #fcp-toggle-wrap { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  body:has(#mle-concierge.mc-mascot-ready) #fcp-toggle-wrap { animation: none; }
}

@media (max-width: 480px) {
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle::after { display: block; font-size: 10px; bottom: 5px; }
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle .fcp-icon-wrap { transform: translateY(-6px); }
}

@media (min-width: 481px) {
  body:has(#mle-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle .fcp-icon-wrap { transform: translateY(-7px); }
}

/* Human consultation: translucent navy and a person silhouette; the native close icon still morphs. */
body:has(#mle-concierge.mc-mascot-ready:not([hidden])) button#fcp-toggle { --fcp-color: #163c63; background-color: rgb(22 60 99 / 82%); color: #fff; opacity: 1; }
body:has(#mle-concierge.mc-mascot-ready:not([hidden])) button#fcp-toggle .fcp-icon-menu { background-color: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='6' r='4'/%3E%3Cpath d='M3 22v-3c0-4.4 4-7 9-7s9 2.6 9 7v3Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='6' r='4'/%3E%3Cpath d='M3 22v-3c0-4.4 4-7 9-7s9 2.6 9 7v3Z'/%3E%3C/svg%3E") center / contain no-repeat; }
body:has(#mle-concierge.mc-mascot-ready:not([hidden])) button#fcp-toggle .fcp-icon-menu svg { visibility: hidden; }

/* Desktop uses the full name; phone captions stay compact, including touch landscape. */
#mle-concierge.mc-mascot-ready .mc-turtle-caption::after { content: '領航員'; }
@media (max-width: 480px), (hover: none) and (pointer: coarse) {
  #mle-concierge.mc-mascot-ready .mc-turtle-caption::after { content: none; }
}
