/* top page: mobile menu + card links */
.card-link{color:inherit}
.card-link::after{content:"";position:absolute;inset:0;z-index:2}
.card{position:relative}
.menu-btn{display:none;background:none;border:0;cursor:pointer;width:48px;height:48px;padding:12px 8px;flex-direction:column;justify-content:space-between;position:relative;z-index:60}
.menu-btn span{display:block;height:1.5px;background:#1F2A44;transition:transform .4s,opacity .4s}
.menu-open .menu-btn span:nth-child(1){transform:translateY(10px) rotate(45deg)}
.menu-open .menu-btn span:nth-child(2){opacity:0}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}
.menu-open .menu-btn span{background:#fff}
.spmenu{position:fixed;inset:0;z-index:55;background:#1F2A44;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:96px 32px 40px;opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}
.menu-open .spmenu{opacity:1;visibility:visible}
.spmenu a{color:#fff;font-family:'Marcellus',serif;font-size:30px;letter-spacing:.06em;display:flex;align-items:baseline;gap:16px}
.spmenu a small{font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.2em;color:#C9CFDA}
body.menu-open{overflow:hidden}
.menu-open header{z-index:60 !important;background:transparent !important}
.menu-open header>a:first-child span{color:#fff}
/* ===== smartphone (vertical) motion ===== */
.is-v .mask[data-reveal] .ch,.is-v .ln,.is-v .lg,.is-v .rv,.is-v .rvu,.is-v .rvd,.is-v .pxbox,.is-v .px,.is-v .card,.is-v .vt{animation:none !important}
.is-v .mask[data-reveal]{overflow:clip}
.is-v .mask[data-reveal] .ch{display:inline-block;transform:translateY(115%) rotate(12deg);opacity:0;transition:transform 1.1s cubic-bezier(.2,.75,.25,1),opacity 1.1s}
.is-v .mask[data-reveal].in .ch{transform:none;opacity:1}
.is-v .ln{opacity:0;transform:translateY(34px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.is-v .ln[style*="--d: 1"]{transition-delay:.18s}.is-v .ln[style*="--d: 2"]{transition-delay:.34s}
.is-v .ln.in{opacity:1;transform:none}
.is-v .lg{transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .2s}
.is-v .lg.in{transform:none}
.is-v .rv,.is-v .pxbox,.is-v #company>div{clip-path:inset(0 0 0 100%);transition:clip-path 1.4s cubic-bezier(.75,0,.2,1)}
.is-v .rvu{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s cubic-bezier(.75,0,.2,1)}
.is-v .rvd{clip-path:inset(0 0 100% 0);transition:clip-path 1.4s cubic-bezier(.75,0,.2,1)}
.is-v #company>div:nth-child(2){clip-path:inset(0 100% 0 0);transition-delay:.15s}
.is-v #company>div:nth-child(3){transition-delay:.3s}
.is-v .rv.in,.is-v .rvu.in,.is-v .rvd.in,.is-v .pxbox.in,.is-v #company>div.in{clip-path:inset(0 0 0 0)}
.is-v .px{top:-15% !important;left:0 !important;width:100% !important;height:130% !important;will-change:transform}
.is-v .card{opacity:0;transition:opacity 1s,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.is-v .card.from-l{transform:translateX(-48px)}.is-v .card.from-r{transform:translateX(48px)}
.is-v .card.in{opacity:1;transform:none}
.is-v .vt{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s ease .2s}.is-v .vt.in{clip-path:none}
.is-v .floaty{display:block !important}
.is-v .floaty.layer{display:none !important}
.is-v .spin{transition:transform .2s linear}
@media (prefers-reduced-motion:reduce){.is-v .mask[data-reveal] .ch,.is-v .ln,.is-v .card{opacity:1;transform:none}.is-v .rv,.is-v .rvu,.is-v .rvd,.is-v .pxbox,.is-v #company>div,.is-v .vt{clip-path:none}.is-v .lg{transform:none}}
@media (max-width:900px){.nav{display:none !important}header>a[href="/contact/"]{display:none}.menu-btn{display:flex}}
