/* Mobile menu — slide-in drawer shared by every page (built by assets/mmenu.js) */
/* Off-screen reveal animations must not widen the page, or the fixed drawer lands off-screen on phones */
html,body{overflow-x:clip;}
body .hamb{width:44px;height:44px;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(15,23,42,.08);transition:transform .2s,box-shadow .2s;}
body .hamb:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(47,107,254,.18);}
body .hamb span,body .hamb::before,body .hamb::after{left:12px;right:12px;height:2px;border-radius:2px;background:var(--ink,#0b1324);transition:all .3s ease;}
body .hamb span{top:21px;right:16px;} body .hamb::before{top:15px;} body .hamb::after{top:27px;right:19px;}

body .mmenu{display:block;position:fixed;inset:0;z-index:1500;background:transparent;pointer-events:none;visibility:hidden;transition:visibility 0s .4s;}
body .mmenu.open{pointer-events:auto;visibility:visible;transition:none;}
.mm-backdrop{position:absolute;inset:0;background:rgba(8,13,26,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s ease;}
.mmenu.open .mm-backdrop{opacity:1;}
.mm-panel{position:absolute;top:0;right:0;bottom:0;width:min(88vw,380px);background:#fff;display:flex;flex-direction:column;box-shadow:-24px 0 60px rgba(8,13,26,.25);transform:translateX(100%);transition:transform .42s cubic-bezier(.22,1,.36,1);border-radius:24px 0 0 24px;overflow:hidden;}
.mmenu.open .mm-panel{transform:none;}

.mm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 14px;border-bottom:1px solid #eef1f6;}
.mm-brand{display:flex;align-items:center;gap:10px;color:var(--ink,#0b1324);}
.mm-brand img{width:40px;height:40px;object-fit:contain;}
.mm-brand b{display:block;color:var(--ink,#0b1324);font-family:"Fraunces",serif;font-size:.95rem;letter-spacing:.3px;line-height:1.1;}
.mm-brand small{display:block;font-size:.62rem;font-weight:700;letter-spacing:1.4px;color:#6b7a90;}
body .mmenu .mmenu-close{position:static;width:40px;height:40px;flex:none;border-radius:12px;border:none;background:#f1f4f9;color:var(--ink,#0b1324);font-size:1.4rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s,transform .2s;}
body .mmenu .mmenu-close:hover{background:#e4e9f2;transform:rotate(90deg);}

.mm-nav{flex:1;overflow-y:auto;padding:10px 12px;}
.mm-label{font-size:.66rem;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#94a0b4;padding:10px 10px 6px;}
body .mmenu .mm-nav a{display:flex;align-items:center;gap:14px;padding:11px 10px;margin:2px 0;border-radius:14px;font-family:"Mulish",sans-serif;font-size:1rem;font-weight:700;color:var(--ink,#0b1324);text-decoration:none;
  opacity:0;transform:translateX(18px);animation:none;transition:background .2s,color .2s;}
.mmenu.open .mm-nav a{animation:mmIn .45s cubic-bezier(.22,1,.36,1) forwards;animation-delay:calc(.06s + var(--i,0)*.04s);}
@keyframes mmIn{to{opacity:1;transform:none;}}
.mm-nav a .ic{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;background:#eef3ff;color:var(--blue,#2f6bfe);font-size:.92rem;transition:background .2s,color .2s;}
.mm-nav a .ar{margin-left:auto;font-size:.75rem;color:#b6c0d0;transition:transform .2s,color .2s;}
body .mmenu .mm-nav a:hover,body .mmenu .mm-nav a.active{background:#f4f7ff;color:var(--blue,#2f6bfe);}
.mm-nav a:hover .ic,.mm-nav a.active .ic{background:var(--blue,#2f6bfe);color:#fff;}
.mm-nav a:hover .ar,.mm-nav a.active .ar{transform:translateX(3px);color:var(--blue,#2f6bfe);}

.mm-foot{padding:14px 18px calc(18px + env(safe-area-inset-bottom));border-top:1px solid #eef1f6;background:#fafbfd;}
body .mmenu .mm-apply{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px;border-radius:14px;background:linear-gradient(135deg,var(--blue,#2f6bfe),#1d4ed8);color:#fff;font-weight:800;font-size:1rem;text-decoration:none;box-shadow:0 12px 26px rgba(47,107,254,.35);margin:0;opacity:1;transform:none;animation:none;font-family:"Mulish",sans-serif;}
.mm-meta{display:flex;justify-content:center;gap:8px;margin-top:12px;font-size:.78rem;color:#6b7a90;text-align:center;}
.mm-meta b{color:var(--ink,#0b1324);}

@media (prefers-reduced-motion: reduce){.mm-panel,.mm-backdrop{transition:none;}.mmenu.open .mm-nav a{animation:none;opacity:1;transform:none;}}
