@media(max-width:991px){
  html.libre-cmm-ready .vk-mobile-nav-menu-btn,
  html.libre-cmm-ready .vk-mobile-nav,
  html.libre-cmm-ready .vk-mobile-nav-overlay,
  html.libre-cmm-ready .vk-mobile-nav-menu-btn-container,
  html.libre-cmm-ready .vk-mobile-nav-menu-btn.position-right,
  html.libre-cmm-ready .mobile-fix-nav-menu-btn,
  html.libre-cmm-ready .mobile-fix-nav,
  html.libre-cmm-ready .mobile-fix-nav-overlay{display:none!important}
  .libre-cmm-root,.libre-cmm-root *{box-sizing:border-box}
  .libre-cmm-root{--libre-green:#4b7056;--libre-pale:#e8f1e5;--libre-ink:#385442;font-family:"Noto Sans JP",system-ui,sans-serif}
  .libre-cmm-root button,.libre-cmm-root a{font:inherit}
  .libre-cmm-trigger{position:fixed!important;left:max(13px,env(safe-area-inset-left))!important;right:auto!important;top:max(14px,env(safe-area-inset-top))!important;width:58px!important;height:58px!important;border:1px solid #cfddcf!important;border-radius:50%!important;background:#fcfdf8!important;color:var(--libre-ink)!important;box-shadow:0 6px 20px #243c2b2b!important;z-index:2147483002!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;padding:0!important;cursor:pointer;transition:transform .25s ease,background .25s ease}
  .libre-cmm-trigger:active{transform:scale(.9)}
  .libre-cmm-trigger-icon{width:20px;display:grid;gap:4px}
  .libre-cmm-trigger-icon i{display:block;width:20px;height:2px;background:#577b61;border-radius:8px;transition:transform .25s,opacity .25s}
  .libre-cmm-trigger-text{font-size:9px;font-weight:800;letter-spacing:.11em;line-height:1}
  .libre-cmm-root.is-open .libre-cmm-trigger-icon i:first-child{transform:translateY(6px) rotate(45deg)}
  .libre-cmm-root.is-open .libre-cmm-trigger-icon i:nth-child(2){opacity:0}
  .libre-cmm-root.is-open .libre-cmm-trigger-icon i:last-child{transform:translateY(-6px) rotate(-45deg)}
  .libre-cmm-bloom{position:absolute;left:48px;top:0;pointer-events:none;opacity:0}
  .libre-cmm-bloom span{position:absolute;color:#f1aabd;font-size:24px;text-shadow:0 2px 5px #f2d8df}
  .libre-cmm-bloom span+span{font-size:15px;color:#e6b78c;left:-34px;top:-22px}
  .libre-cmm-trigger.is-bloom .libre-cmm-bloom{animation:libre-bloom .7s ease-out both}
  .libre-cmm-trigger.is-bloom .libre-cmm-bloom span{animation:libre-flower .7s ease-out both}
  .libre-cmm-overlay{position:fixed;inset:0;z-index:2147483000;background:#24382c8a;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .38s,visibility .38s}
  .libre-cmm-panel{position:fixed!important;left:0!important;right:0!important;top:0!important;bottom:0!important;inset:0!important;z-index:2147483001!important;width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;display:block!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;background:#fffdf8!important;transform:translateX(-102%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .46s cubic-bezier(.2,.8,.2,1),opacity .38s,visibility .46s;box-shadow:none!important}
  .libre-cmm-root.is-open .libre-cmm-panel{transform:translateX(0);opacity:1;visibility:visible;pointer-events:auto}
  .libre-cmm-root.is-open .libre-cmm-overlay{opacity:1;visibility:visible;pointer-events:auto}
  body.libre-cmm-scroll-lock{overflow:hidden!important}
  .libre-cmm-shell{max-width:630px;min-height:100%;margin:0 auto;padding:calc(86px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px;color:var(--libre-ink)}
  .libre-cmm-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
  .libre-cmm-heading h2{font-size:29px!important;color:var(--libre-green)!important;margin:3px 0 2px!important;padding:0!important;border:0!important;line-height:1.35!important}
  .libre-cmm-heading h2:before,.libre-cmm-heading h2:after{content:none!important}
  .libre-cmm-eyebrow{font-size:10px;letter-spacing:.13em;font-weight:700;color:#91aa95}
  .libre-cmm-heading p{margin:0;font-size:12px;color:#849688}
  .libre-cmm-close{min-width:44px;min-height:44px;border:none;background:#e9f1e6;color:#456f50;border-radius:50%;font-size:25px;line-height:1;cursor:pointer}
  .libre-cmm-pages{position:relative;flex:1;min-width:0}
  .libre-cmm-page[hidden]{display:none!important}
  .libre-cmm-page.is-entering{animation:libre-page-in .33s ease both}
  .libre-cmm-page.is-returning{animation:libre-page-back .33s ease both}
  .libre-cmm-hint{margin:0 0 13px;color:#819b86;font-size:13px}
  .libre-cmm-list{list-style:none!important;margin:0!important;padding:0!important;display:grid;gap:11px;grid-template-columns:1fr}
  .libre-cmm-list.is-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .libre-cmm-list-item{list-style:none!important;margin:0!important;padding:0!important;min-width:0}
  .libre-cmm-card{width:100%;min-height:62px;background:#eff5ec!important;color:#42644a!important;border:1px solid #e1ebdd!important;border-radius:18px!important;display:flex!important;align-items:center;gap:11px;text-decoration:none!important;text-align:left;padding:14px 16px!important;box-shadow:0 4px 11px #456f5010;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s}
  .libre-cmm-card:hover,.libre-cmm-card:focus-visible{background:#e5efdf!important;transform:translateY(-2px);box-shadow:0 6px 15px #456f5020}
  .libre-cmm-card.is-disabled{opacity:.55;cursor:default}
  .is-grid .libre-cmm-card{min-height:119px;padding:16px 9px!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
  .libre-cmm-card-icon{width:37px;height:37px;border-radius:12px;background:#deeadb;color:#62886b;display:grid;place-items:center;font-size:22px;line-height:1}
  .libre-cmm-card-title{font-size:14px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;min-width:0}
  .libre-cmm-card-more{font-size:10px;color:#648971;font-weight:600;white-space:nowrap}
  .libre-cmm-card-more span{font-size:18px;vertical-align:-1px}
  .libre-cmm-small-flower{color:#8dac91;font-size:15px;flex:none}
  .libre-cmm-arrow{margin-left:auto;color:#76947d}
  .libre-cmm-back{border:0;background:transparent!important;padding:6px 0!important;color:#537a5c!important;font-size:14px;font-weight:700;cursor:pointer;min-height:44px;text-align:left}
  .libre-cmm-back span{font-size:19px;margin-right:8px}
  .libre-cmm-page-heading{font-size:23px!important;color:var(--libre-green)!important;margin:4px 0 15px!important;padding:0!important;border:0!important}
  .libre-cmm-page-heading:before,.libre-cmm-page-heading:after{content:none!important}
  .libre-cmm-parent-link{display:flex;justify-content:space-between;gap:8px;background:#fff5e9;color:#7a654d!important;font-size:13px;font-weight:700;text-decoration:none!important;border-radius:14px;padding:14px;margin:0 0 17px;border:1px solid #f4e8d8}
  .libre-cmm-footer{text-align:center;margin:24px 0 0;font-size:11px;color:#92a793}
  .libre-cmm-page.is-current .libre-cmm-list-item{animation:libre-card-up .42s both;animation-delay:calc(var(--libre-index) * 45ms)}
  .libre-cmm-trigger:focus-visible,.libre-cmm-close:focus-visible,.libre-cmm-root button:focus-visible,.libre-cmm-root a:focus-visible{outline:3px solid #b487ad!important;outline-offset:3px}
}
@media(min-width:992px){.libre-cmm-root{display:none!important}}
@keyframes libre-bloom{0%{opacity:0;transform:scale(.3)}25%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(5px,-17px) scale(1.2)}}
@keyframes libre-flower{0%{transform:rotate(-55deg)}100%{transform:rotate(25deg)}}
@keyframes libre-card-up{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes libre-page-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
@keyframes libre-page-back{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.libre-cmm-root *{animation:none!important;transition:none!important}}

/* Ensure custom controls stay clickable on mobile. */
@media(max-width:991px){
  #libre-cmm-root{position:static!important;isolation:auto!important}
  #libre-cmm-root .libre-cmm-trigger{pointer-events:auto!important;touch-action:manipulation}
}
/* v1.2.0: decorative motion stays separate from the clickable trigger. */
@media(max-width:991px){
  .libre-cmm-root{--libre-motion:1;--libre-float-distance:7px}
  .libre-cmm-root[data-speed="slow"]{--libre-motion:1.4}
  .libre-cmm-root[data-speed="fast"]{--libre-motion:.75}
  .libre-cmm-root[data-float="soft"]{--libre-float-distance:3px}
  .libre-cmm-root[data-float="large"]{--libre-float-distance:12px}
  .libre-cmm-root[data-idle="1"]:not(.is-open) .libre-cmm-trigger{animation:libre-idle-float calc(5.6s * var(--libre-motion)) ease-in-out infinite,libre-idle-glow calc(5.6s * var(--libre-motion)) ease-in-out infinite}
  .libre-cmm-root[data-idle="1"]:not(.is-open) .libre-cmm-trigger::after{content:"✧";position:absolute;right:-9px;top:1px;font-size:18px;color:#e8ba91;animation:libre-twinkle calc(4s * var(--libre-motion)) ease-in-out infinite;pointer-events:none}
  .libre-cmm-trigger.is-bloom .libre-cmm-bloom{animation:none;opacity:1}
  .libre-cmm-bloom{inset:0;left:0;top:0;overflow:visible;pointer-events:none}
  .libre-cmm-bloom .libre-cmm-flower{position:absolute;top:17px;left:18px;width:24px;height:24px;display:grid;place-items:center;font-size:23px;opacity:0;color:#f0aabb;text-shadow:0 1px 3px #ffffff;animation:none}
  .libre-cmm-bloom .libre-cmm-flower:nth-child(3n+2){color:#e4b77f}
  .libre-cmm-bloom .libre-cmm-flower:nth-child(3n){color:#b3cda4}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower{animation:libre-pop-flower calc(.98s * var(--libre-motion)) cubic-bezier(.18,.8,.3,1) both;animation-delay:calc(var(--petal) * 70ms * var(--libre-motion))}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+1){--x:-44px;--y:-33px;--r:-33deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+2){--x:36px;--y:-45px;--r:29deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+3){--x:53px;--y:3px;--r:46deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+4){--x:35px;--y:40px;--r:-12deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+5){--x:-36px;--y:46px;--r:65deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+6){--x:-53px;--y:5px;--r:-35deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+7){--x:0px;--y:-59px;--r:52deg}
  .libre-cmm-trigger.is-bloom .libre-cmm-flower:nth-child(8n+8){--x:0px;--y:54px;--r:-60deg}
  .libre-cmm-shell{position:relative}
  .libre-cmm-shell > :not(.libre-cmm-ambient){position:relative;z-index:1}
  .libre-cmm-ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
  .libre-cmm-ambient span{position:absolute;top:17%;right:5%;font-size:20px;color:#a9caa8;opacity:.23;animation:libre-ambient calc(6.5s * var(--libre-motion)) ease-in-out infinite}
  .libre-cmm-ambient span:nth-child(2){top:43%;left:2%;right:auto;color:#e8b9b9;animation-delay:-2s;font-size:15px}
  .libre-cmm-ambient span:nth-child(3){top:72%;right:6%;color:#d8b47f;animation-delay:-4s}
  .libre-cmm-ambient span:nth-child(4){top:91%;left:6%;right:auto;color:#c9b5df;animation-delay:-1s;font-size:14px}
  .libre-cmm-root[data-cards="0"] .libre-cmm-page.is-current .libre-cmm-list-item{animation:none!important}
  .libre-cmm-root[data-cards="1"] .libre-cmm-page.is-current .libre-cmm-list-item{animation-duration:calc(.48s * var(--libre-motion));animation-delay:calc(var(--libre-index) * 65ms * var(--libre-motion))}
}
@keyframes libre-idle-float{0%,100%{translate:0 0}50%{translate:0 calc(-1 * var(--libre-float-distance))}}
@keyframes libre-idle-glow{0%,100%{box-shadow:0 6px 20px #243c2b2b,0 0 0 0 #bed7be55}50%{box-shadow:0 10px 24px #243c2b36,0 0 0 7px #bed7be00}}
@keyframes libre-twinkle{0%,65%,100%{opacity:0;transform:scale(.5) rotate(-20deg)}78%,90%{opacity:.9;transform:scale(1.12) rotate(15deg)}}
@keyframes libre-pop-flower{0%{opacity:0;transform:translate(0,0) scale(.15) rotate(-50deg)}33%{opacity:1;transform:translate(calc(var(--x) * .8),calc(var(--y) * .8)) scale(1.25) rotate(var(--r))}63%{opacity:1;transform:translate(var(--x),var(--y)) scale(1) rotate(var(--r))}100%{opacity:0;transform:translate(calc(var(--x) * 1.15),calc(var(--y) * 1.15 - 10px)) scale(.65) rotate(75deg)}}
@keyframes libre-ambient{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-13px) rotate(13deg)}}
@media(prefers-reduced-motion:reduce){.libre-cmm-root .libre-cmm-trigger,.libre-cmm-root .libre-cmm-ambient span,.libre-cmm-root .libre-cmm-flower,.libre-cmm-root .libre-cmm-trigger::after{animation:none!important}.libre-cmm-root .libre-cmm-ambient{display:none!important}}

/* v1.2.1: fix older bloom selectors overriding the new flower animations. */
@media (max-width:991px) {
  #libre-cmm-root .libre-cmm-trigger { overflow:visible!important; }
  #libre-cmm-root .libre-cmm-trigger.is-bloom .libre-cmm-bloom { opacity:1!important; animation:none!important; overflow:visible!important; }
  #libre-cmm-root .libre-cmm-trigger.is-bloom .libre-cmm-bloom span.libre-cmm-flower {
    animation-name:libre-pop-flower!important;
    animation-duration:calc(1.3s * var(--libre-motion))!important;
    animation-timing-function:cubic-bezier(.17,.78,.28,1)!important;
    animation-delay:calc(var(--petal) * 100ms * var(--libre-motion))!important;
    animation-fill-mode:both!important;
    font-size:26px!important;
    filter:drop-shadow(0 2px 3px #a8748155);
    z-index:5;
  }
  #libre-cmm-root .libre-cmm-ambient { z-index:2; }
  #libre-cmm-root .libre-cmm-ambient span {
    opacity:.8; font-size:25px; color:#8eae96;
    text-shadow:0 2px 4px #fff,0 0 10px #fff;
    animation:libre-ambient calc(6.5s * var(--libre-motion)) ease-in-out infinite;
  }
  #libre-cmm-root .libre-cmm-ambient span:nth-child(1){top:10%;right:27%;}
  #libre-cmm-root .libre-cmm-ambient span:nth-child(2){top:34%;left:1%;color:#d89fae;}
  #libre-cmm-root .libre-cmm-ambient span:nth-child(3){top:61%;right:3%;color:#d8ac69;}
  #libre-cmm-root .libre-cmm-ambient span:nth-child(4){top:86%;left:4%;color:#bd9ec8;}
  #libre-cmm-root[data-idle="1"]:not(.is-open) .libre-cmm-trigger::after {
    content:""; width:6px; height:6px; border-radius:50%;right:-10px;top:8px;
    background:#e8b886;box-shadow:0 0 0 3px #f4d9b96a,0 0 10px 3px #f0bd8e88;
    animation:libre-twinkle calc(5s * var(--libre-motion)) ease-in-out infinite;
  }
  #libre-cmm-root[data-flowers="0"] .libre-cmm-bloom{display:none!important;}
}
@media (prefers-reduced-motion:reduce){
  #libre-cmm-root .libre-cmm-trigger.is-bloom .libre-cmm-bloom span.libre-cmm-flower{animation:none!important;opacity:0!important;}
  #libre-cmm-root .libre-cmm-ambient{display:none!important;}
}

/* v1.2.2 - reveal each card AFTER its menu page becomes visible.
   The previous animation started underneath the sliding panel. */
@media (max-width:991px) {
  #libre-cmm-root[data-cards="1"] .libre-cmm-page.is-current .libre-cmm-list-item {
    animation:none!important;
  }
  #libre-cmm-root[data-cards="1"] .libre-cmm-page.is-current:not(.is-card-revealing) .libre-cmm-list-item {
    opacity:0;
  }
  #libre-cmm-root[data-cards="1"] .libre-cmm-page.is-current.is-card-revealing .libre-cmm-list-item {
    animation-name:libre-cmm-card-entrance!important;
    animation-duration:calc(.62s * var(--libre-motion))!important;
    animation-timing-function:cubic-bezier(.2,.75,.25,1.18)!important;
    animation-delay:calc(var(--libre-index) * 105ms * var(--libre-motion))!important;
    animation-fill-mode:both!important;
  }
}
@keyframes libre-cmm-card-entrance {
  0% {opacity:0;transform:translateY(22px) scale(.91)}
  68% {opacity:1;transform:translateY(-3px) scale(1.015)}
  100% {opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion:reduce) {
  #libre-cmm-root[data-cards="1"] .libre-cmm-page.is-current .libre-cmm-list-item {
    opacity:1!important;animation:none!important;transform:none!important;
  }
}


/* v1.2.3: Pastel color palette. Visual-only overrides: animations and links unchanged. */
@media (max-width: 991px) {
  #libre-cmm-root .libre-cmm-trigger {
    background:linear-gradient(145deg,#fff3a9 0%,#ffe58a 100%)!important;
    color:#53441f!important;
    border:2px solid #e9c95a!important;
    box-shadow:0 6px 18px #93793c33,0 0 0 3px #fff6c8b8!important;
  }
  #libre-cmm-root .libre-cmm-trigger-icon i {background:#584b29!important}
  #libre-cmm-root .libre-cmm-trigger:focus-visible {outline-color:#775eb2!important}
  #libre-cmm-root .libre-cmm-panel {background:#fffdf6!important}
  #libre-cmm-root .libre-cmm-heading h2,
  #libre-cmm-root .libre-cmm-page-heading {color:#455a49!important}
  #libre-cmm-root .libre-cmm-close {background:#ffeaae!important;color:#5c4c25!important}
  #libre-cmm-root .libre-cmm-back {color:#3d5e58!important}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+1) {--lc-bg:#dff2e8;--lc-border:#b8dec8;--lc-icon:#c8e7d4;--lc-hover:#cee9d9}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+2) {--lc-bg:#ffe8e9;--lc-border:#f1c6cd;--lc-icon:#f9d0d6;--lc-hover:#fbd9df}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+3) {--lc-bg:#ebe5fa;--lc-border:#d4c7ef;--lc-icon:#ddd2f4;--lc-hover:#e0d6f5}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+4) {--lc-bg:#e1f1fb;--lc-border:#bfddee;--lc-icon:#cbe6f6;--lc-hover:#d1e9f7}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+5) {--lc-bg:#fff0c9;--lc-border:#efdba1;--lc-icon:#f9e2a8;--lc-hover:#fce5ad}
  #libre-cmm-root .libre-cmm-list-item:nth-child(6n+6) {--lc-bg:#f9e8dd;--lc-border:#eccfbd;--lc-icon:#f3d8c7;--lc-hover:#f4dccd}
  #libre-cmm-root .libre-cmm-list-item .libre-cmm-card {
    background:var(--lc-bg)!important;
    border-color:var(--lc-border)!important;
    color:#35483e!important;
    box-shadow:0 4px 13px #394d3b14;
  }
  #libre-cmm-root .libre-cmm-list-item .libre-cmm-card:hover,
  #libre-cmm-root .libre-cmm-list-item .libre-cmm-card:focus-visible {
    background:var(--lc-hover)!important;
  }
  #libre-cmm-root .libre-cmm-list-item .libre-cmm-card-icon {
    background:var(--lc-icon)!important;
    color:#415b4c!important;
  }
  #libre-cmm-root .libre-cmm-card-more,
  #libre-cmm-root .libre-cmm-arrow {color:#4b6656!important}
  #libre-cmm-root .libre-cmm-parent-link {background:#fff0cf!important;border-color:#e8d8a7!important;color:#554b32!important}
}

/* v1.2.4: mobile visual refinements only. */
@media (max-width: 991px) {
  /* Keep the site's page subtly visible, but preserve contrast for menu text. */
  #libre-cmm-root .libre-cmm-panel {
    background:rgba(255,253,246,.66)!important;
    -webkit-backdrop-filter:blur(2px);
    backdrop-filter:blur(2px);
  }
  /* Do not darken the site beneath the translucent full-screen panel. */
  #libre-cmm-root .libre-cmm-overlay { background:transparent!important; }
  /* Floating yellow action button: base shadow and idle glow are both updated. */
  #libre-cmm-root .libre-cmm-trigger {
    box-shadow:0 5px 9px rgba(99,75,35,.22),
               0 15px 29px rgba(80,61,27,.24),
               0 0 0 3px rgba(255,250,214,.8)!important;
  }
  /* Reduce tile footprint without squeezing text or touch targets. */
  #libre-cmm-root .libre-cmm-list {gap:9px}
  #libre-cmm-root .libre-cmm-card {
    min-height:52px;gap:8px;padding:10px 12px!important;border-radius:15px!important;
  }
  #libre-cmm-root .is-grid .libre-cmm-card {
    min-height:96px;padding:11px 8px!important;gap:5px;
  }
  #libre-cmm-root .libre-cmm-card-icon {
    width:32px;height:32px;font-size:19px;border-radius:10px;
  }
  #libre-cmm-root .libre-cmm-card-title {font-size:13px;line-height:1.45}
  #libre-cmm-root .libre-cmm-card-more {font-size:10px}
}
/* Match existing idle breathing shadow so it remains visibly floating. */
@keyframes libre-idle-glow {
  0%,100% {box-shadow:0 5px 9px rgba(99,75,35,.22),0 15px 29px rgba(80,61,27,.24),0 0 0 3px rgba(255,250,214,.8)}
  50% {box-shadow:0 8px 14px rgba(99,75,35,.25),0 21px 35px rgba(80,61,27,.29),0 0 0 7px rgba(255,250,214,0)}
}
