/* Motion layer for the preview: reveal on scroll, parallax, header, marquee */
html{scroll-behavior:smooth}
.rv{animation:none!important}
html.js .rv{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
html.js .rv.on{opacity:1;transform:none}
html.js .m-img{transform:scale(1.04);filter:saturate(.85);transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter 1.6s}
html.js .m-img.on{transform:scale(1);filter:none}
header{transition:box-shadow .3s,background .3s}
header > div{transition:height .3s}
header.scrolled{box-shadow:0 6px 24px rgba(19,33,60,.08)}
header.scrolled > div{height:62px!important}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -10px}}
.bob{animation:bob 6s ease-in-out infinite}
.bob2{animation:bob 7.5s ease-in-out -2s infinite}
@keyframes drift{0%,100%{rotate:0deg}50%{rotate:2.5deg}}
.drift{animation:drift 10s ease-in-out infinite;transform-origin:50% 0}
.lift .photo{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.lift:hover .photo{transform:scale(1.03)}
@media (prefers-reduced-motion: reduce){html.js .rv,html.js .m-img{opacity:1;transform:none;filter:none;transition:none}.bob,.bob2,.drift,.mq-track{animation:none}}
/* Mobile menu drawer */
.mnav{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;background:rgba(255,255,255,.98);backdrop-filter:blur(12px);padding:20px 24px 40px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;font-family:'Plus Jakarta Sans','Noto Sans JP','Noto Sans KR',system-ui,sans-serif;color:#13213c}
.mnav.open{opacity:1;visibility:visible}
.mnav-top{display:flex;justify-content:flex-end;height:52px;align-items:center}
.mnav-x{width:42px;height:42px;border:none;border-radius:999px;background:#13213c;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.mnav-links{display:flex;flex-direction:column;margin-top:24px}
.mnav-links a{display:block;padding:18px 0;font-size:22px;font-weight:700;text-decoration:none;color:inherit;border-bottom:1px solid #e6e3dc;transform:translateY(12px);opacity:0;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s}
.mnav.open .mnav-links a{transform:none;opacity:1}
.mnav-cta{margin-top:auto;display:flex;flex-direction:column;gap:16px}
html.lock{overflow:hidden}
.form-err{margin:0;font-size:14px;color:#b3261e}
