/* Approved penguin chauffeur. Only launcher artwork and contact spacing change. */
#ge-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(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-root {
  right: calc(10px + 10pt + env(safe-area-inset-right, 0px));
  bottom: 139px;
}
#ge-concierge.mc-mascot-ready .mc-launch-icon { display: none; }
#ge-concierge.mc-mascot-ready .mc-penguin-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-penguin-entry, .mc-penguin-character { position: relative; display: block; width: 100%; height: 100%; pointer-events: none; }
.mc-penguin-entry { display: block !important; animation: mc-penguin-enter 760ms cubic-bezier(.22,.7,.3,1) both; }
.mc-penguin-character { transform-origin: 60% 95%; animation: mc-penguin-breathe 5.8s ease-in-out 760ms infinite; }
#ge-concierge .mc-penguin-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-penguin-sleeve { clip-path:polygon(27% 60%,35% 60%,36% 78%,26% 78%); }
/* Trace the transparent gap beside the cheek; a straight cut here would move face pixels. */
.mc-penguin-arm { clip-path:polygon(0 38%,24% 38%,23.4% 46%,24.6% 48%,26% 50%,27.5% 52%,28.7% 53%,29.55% 54%,30.45% 55%,31.5% 56%,32.8% 57%,33.2% 58%,33.5% 59%,33% 63%,33% 71%,29% 76%,0 76%); transform-origin: 32% 70%; animation: mc-penguin-wave 12.5s ease-in-out 760ms infinite; }
.mc-penguin-body { clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 76%,29% 76%,33% 71%,33% 63%,33.5% 59%,33.2% 58%,32.8% 57%,31.5% 56%,30.45% 55%,29.55% 54%,28.7% 53%,27.5% 52%,26% 50%,24.6% 48%,23.4% 46%,24% 38%,0 38%); }
.mc-penguin-eye-left, .mc-penguin-eye-right { opacity: 0; animation: mc-penguin-blink 4.8s linear 760ms infinite; }
.mc-penguin-eye-left { clip-path:ellipse(6.3% 7% at 38.3% 37.2%); }
.mc-penguin-eye-right { clip-path:ellipse(6.5% 7.5% at 62.5% 41.2%); }
#ge-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;
}
#ge-concierge.mc-mascot-ready .mc-launch-text small { color: #526777; }
@media (hover: hover) and (pointer: fine) {
  #ge-concierge.mc-mascot-ready .mc-launch:is(:hover,:focus-visible) { transform: translateY(-3px); }
  #ge-concierge.mc-mascot-ready .mc-launch:is(:hover,:focus-visible) .mc-launch-text { opacity: 1; visibility: visible; }
}
#ge-concierge.mc-mascot-ready .mc-launch[aria-expanded="true"] .mc-launch-text { opacity: 0; visibility: hidden; }
#ge-concierge[data-mascot-paused="true"] .mc-penguin-entry,
#ge-concierge[data-mascot-paused="true"] .mc-penguin-character,
#ge-concierge[data-mascot-paused="true"] .mc-penguin-character img { animation-play-state: paused; }
@keyframes mc-penguin-enter { 0% { transform: translateY(120%); } 65% { transform: translateY(-8px); } 85% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes mc-penguin-breathe { 0%,100% { transform: rotate(-.25deg); } 50% { transform: rotate(.25deg) translateY(-1px); } }
@keyframes mc-penguin-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-penguin-blink { 0%,90%,96%,100% { opacity: 0; } 91%,94% { opacity: 1; } }
@media (min-width: 481px) {
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) :is(#fcp-toggle, .fcp-link) { width: 64px; height: 64px; min-width: 64px; min-height: 64px; }
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-root :is(.fcp-icon-wrap, .fcp-icon) { width: 32px; height: 32px; }
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-root .fcp-icon-wrap svg { width: 30px; height: 30px; }
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-root :is(.fcp-label, #fcp-toggle-label) { font-size: 14px; }
}
@media (max-width: 480px) {
  #ge-concierge.mc-mascot-ready .mc-launch { width: 116px; height: 116px; right: calc(4px - 10pt + env(safe-area-inset-right, 0px)); }
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-root { right: calc(4px + 8pt + env(safe-area-inset-right, 0px)); bottom: calc(123px - 5pt); }
  #ge-concierge.mc-mascot-ready .mc-launch-text { display: none; }
  #ge-concierge.mc-mascot-ready .mc-launch:is(:focus,:focus-visible) { outline: none; }
}
@media (hover: none), (pointer: coarse) {
  #ge-concierge.mc-mascot-ready .mc-launch-text { display: none; }
  #ge-concierge.mc-mascot-ready .mc-launch:is(:focus,:focus-visible) { outline: none; }
}
@media (prefers-reduced-motion: reduce) {
  #ge-concierge .mc-penguin-entry, #ge-concierge .mc-penguin-character, #ge-concierge .mc-penguin-character img { animation: none; }
  #ge-concierge.mc-mascot-ready .mc-launch, #ge-concierge.mc-mascot-ready .mc-launch-text { transition: none; transform: none; }
}

body:has(#ge-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 penguin; preserve button hover transforms. */
body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle-wrap { animation: mc-penguin-enter 760ms cubic-bezier(.22,.7,.3,1) both; }
body:has(#ge-concierge[data-mascot-paused="true"]) #fcp-toggle-wrap { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  body:has(#ge-concierge.mc-mascot-ready) #fcp-toggle-wrap { animation: none; }
}

@media (max-width: 480px) {
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle::after { display: block; font-size: 10px; bottom: 5px; }
  body:has(#ge-concierge.mc-mascot-ready:not([hidden])) #fcp-toggle .fcp-icon-wrap { transform: translateY(-6px); }
}

@media (min-width: 481px) {
  body:has(#ge-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(#ge-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(#ge-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(#ge-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. */
#ge-concierge.mc-mascot-ready .mc-penguin-caption::after { content: '領航員'; }
@media (max-width: 480px), (hover: none) and (pointer: coarse) {
  #ge-concierge.mc-mascot-ready .mc-penguin-caption::after { content: none; }
}
