  .ja-lockup{display:flex;flex-direction:column;gap:18px;}
  .ja-logo{display:flex;align-items:center;gap:16px;}
  .ja-logo .jamark{display:inline-flex;align-items:center;gap:7px;}
  .ja-logo .jamark .ja{font-family:var(--sans);font-style:italic;font-weight:700;font-size:clamp(40px,4.4vw,58px);letter-spacing:-.03em;color:#2f8a3e;line-height:.9;}
  .ja-logo .jamark .leaf{width:clamp(22px,2.4vw,30px);height:clamp(22px,2.4vw,30px);background:#7cb342;border-radius:60% 0 60% 0;transform:rotate(8deg);}
  .ja-logo .ja-jp{font-size:clamp(34px,3.8vw,48px);font-weight:600;letter-spacing:.08em;color:var(--ink);}
  .ja-lockup .sm{font-size:18px;letter-spacing:.14em;color:var(--ink-2);}

  /* ---- feature: magazine + device ---- */
  .feature{display:grid;grid-template-columns:1fr 1.25fr;gap:32px;margin-top:64px;align-items:stretch;}
  .feature .mag{height:clamp(300px,34vw,440px);}
  .feature .device{height:clamp(300px,34vw,440px);}

  /* ---- media trio (logo / video / spread) ---- */
.mtrio{display:grid;grid-template-columns:1fr 1.5fr 1.3fr;gap:24px;margin-top:24px;}
  .mtrio .ph-box{height:clamp(200px,20vw,320px);}

 .video-trigger{border:none;padding:0;cursor:pointer;font:inherit;}
  .video-trigger .play{transition:transform .4s cubic-bezier(.2,.7,.2,1), background .3s;}
  .video-trigger:hover .play{transform:translate(-50%,-50%) scale(1.08);background:rgba(171,74,52,.85);}
  /* video modal */
  .vmodal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:32px;opacity:0;visibility:hidden;transition:opacity .4s ease, visibility .4s;}
  .vmodal.open{opacity:1;visibility:visible;}
  .vmodal-backdrop{position:absolute;inset:0;background:rgba(20,18,15,.82);backdrop-filter:blur(4px);}
  .vmodal-dialog{position:relative;z-index:2;width:min(1040px,100%);}
  .vmodal-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;box-shadow:0 30px 80px rgba(0,0,0,.5);transform:translateY(14px);transition:transform .45s cubic-bezier(.2,.7,.2,1);}
  .vmodal.open .vmodal-frame{transform:none;}
  .vmodal-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
  .vmodal-close{position:absolute;top:-46px;right:0;width:40px;height:40px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;font-size:16px;line-height:1;cursor:pointer;border-radius:50%;transition:.3s;}
  .vmodal-close:hover{background:#fff;color:var(--ink);}

  .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90px;height:90px;border-radius:50%;border:1.5px solid #fff;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.12);backdrop-filter:blur(2px);}
  .play::after{content:"";border-left:25px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent;margin-left:4px;}
  .video-trigger{font:inherit;color:inherit;border:none;padding:0;margin:0;width:100%;cursor:pointer;text-align:left;-webkit-appearance:none;appearance:none;}
  .video-trigger .play{transition:transform .45s cubic-bezier(.2,.7,.2,1), background .35s;}
  .video-trigger:hover .play{transform:translate(-50%,-50%) scale(1.08);background:rgba(171,74,52,.5);}
  .video-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
  /* video modal */
  .vmodal{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:clamp(20px,5vw,72px);opacity:0;visibility:hidden;transition:opacity .45s ease, visibility .45s;}
  .vmodal.open{opacity:1;visibility:visible;}
  .vmodal .backdrop{position:absolute;inset:0;background:rgba(18,22,20,.82);backdrop-filter:blur(6px);}
  .vmodal .dialog{position:relative;width:min(1100px,100%);}
  .vmodal .frame{position:relative;width:100%;aspect-ratio:16/9;background:#000;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.5);transform:translateY(16px) scale(.98);transition:transform .5s cubic-bezier(.2,.7,.2,1);}
  .vmodal.open .frame{transform:none;}
  .vmodal .frame video,.vmodal .frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
  .vmodal .ph-movie{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:repeating-linear-gradient(135deg,#1b1f1d 0 2px,#15110f 2px 26px);color:rgba(255,255,255,.6);font-family:var(--sans);}
  .vmodal .ph-movie .pm-en{font-size:11px;letter-spacing:.32em;text-transform:uppercase;}
  .vmodal .ph-movie .pm-jp{font-size:12px;letter-spacing:.14em;color:rgba(255,255,255,.45);}
  .vmodal .vclose{position:absolute;top:-14px;right:-6px;transform:translateY(-100%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s,transform .3s;}
  .vmodal .vclose:hover{background:rgba(255,255,255,.14);transform:translateY(-100%) rotate(90deg);}
  @media (max-width:600px){.vmodal .vclose{top:-10px;right:0;}}

  /* ---- closing band (full-bleed photo background) ---- */
  .closing{position:relative;overflow:hidden;background:var(--paper-2);min-height:clamp(440px,56vh,660px);display:flex;align-items:center;}
  .closing .bg-photo{position:absolute;inset:0;width:100%;height:100%;}
  .closing .bg-photo .ph-label{top:auto;left:auto;right:20px;bottom:16px;transform:none;}
  .closing::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(95deg, rgba(244,240,232,.94) 0%, rgba(244,240,232,.82) 28%, rgba(244,240,232,.42) 52%, rgba(244,240,232,.08) 74%, rgba(244,240,232,0) 100%);}
  .closing .inner{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;padding:clamp(70px,12vh,140px) var(--pad);}
  .closing .inner > .reveal{max-width:540px;}
  .closing h2{font-size:clamp(1.8rem,3.3vw,2.9rem);font-weight:600;line-height:1.6;letter-spacing:.04em;margin:0 0 28px;}
  .closing h2 .em{color:var(--accent);}
  .closing p{font-size:.98rem;line-height:2.2;color:var(--ink-2);margin:0;max-width:40ch;}

  /* ---- prev / next ---- */
  .pager{border-top:1px solid var(--line);}
  .pager .inner{max-width:var(--maxw);margin:0 auto;padding:40px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px;}
  .pager a{display:flex;flex-direction:column;gap:6px;}
  .pager a .k{font-family:var(--sans);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:10px;}
  .pager a .ttl{font-size:1.05rem;font-weight:600;letter-spacing:.04em;color:var(--ink);transition:color .3s;}
  .pager a.next{align-items:flex-end;text-align:right;}
  .pager a:hover .ttl{color:var(--accent);}
  .pager a .arr{transition:transform .4s cubic-bezier(.2,.7,.2,1);display:inline-block;}
  .pager a.prev:hover .arr{transform:translateX(-7px);}
  .pager a.next:hover .arr{transform:translateX(7px);}

  /* =========================================================
     FOOTER
  ========================================================= */
  footer{border-top:1px solid var(--line);padding:80px 0 40px;}
  .foot-top{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;margin-bottom:56px;}
  .foot-logo{height:96px;width:auto;display:block;margin-bottom:18px;}
  .foot-logo .st2{fill:var(--accent);}
  .foot-logo .st0{fill:var(--paper);}
  .foot-logo .st1{fill:var(--ink);}
  .foot-brand .tag{font-family:var(--sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);line-height:2;}
  .foot-col h5{font-family:var(--sans);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);margin:0 0 22px;}
  .foot-col a,.foot-col p{display:block;font-size:.92rem;color:var(--ink-2);margin:0 0 13px;}
  .foot-col a{transition:color .3s;width:fit-content;}
  .foot-col a:hover{color:var(--accent);}
  .foot-bottom{max-width:var(--maxw);margin:0 auto;padding:28px var(--pad) 0;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line-soft);flex-wrap:wrap;}
  .foot-bottom .cp{font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);}
  .foot-bottom .links{display:flex;gap:26px;}
  .foot-bottom .links a{font-family:var(--sans);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);transition:color .3s;}
  .foot-bottom .links a:hover{color:var(--accent);}

  /* ---- back to top ---- */
  #toTop{position:fixed;right:var(--pad);bottom:36px;z-index:130;width:60px;height:60px;display:block;cursor:pointer;border:none;background:none;padding:0;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1), visibility .5s;}
  body.scrolled #toTop{opacity:1;visibility:visible;transform:none;}
  #toTop svg{width:100%;height:100%;display:block;transition:transform .45s cubic-bezier(.2,.7,.2,1);}
  #toTop:hover svg{transform:translateY(-5px);}
  #toTop .st0{fill:var(--ink);transition:fill .4s;}
  #toTop .st1{fill:none;stroke:var(--paper);stroke-width:6;stroke-linecap:square;stroke-linejoin:miter;}
  #toTop:hover .st0{fill:var(--accent);}

  /* =========================================================
     REVEAL
  ========================================================= */
  .reveal{opacity:1;transform:none;}
  html.anim .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
  html.anim .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion: reduce){
    html.anim .reveal{opacity:1;transform:none;transition:none;}
    .p-scroll .ln::after{animation:none;}
    html{scroll-behavior:auto;}
  }

  /* =========================================================
     RESPONSIVE
  ========================================================= */
  @media (max-width:900px){
    :root{--pad:24px;--header-h:64px;}
    .navlinks,.nav-dot{display:none;}
    .burger{display:block;}
    .site-logo .brand-logo{height:46px;}
    .intro,.split,.split.flip,.feature{grid-template-columns:1fr;gap:40px;}
    .closing::after{background:linear-gradient(105deg, rgba(244,240,232,.95) 0%, rgba(244,240,232,.86) 42%, rgba(244,240,232,.5) 72%, rgba(244,240,232,.2) 100%);}
    .split.flip .txt{order:0;}
    .trio,.mtrio{grid-template-columns:1fr;gap:18px;}
    .pager .inner{flex-direction:column;align-items:stretch;gap:24px;}
    .pager a.next{align-items:flex-start;text-align:left;}
    .foot-top{grid-template-columns:1fr 1fr;gap:36px;}
    .foot-brand{grid-column:1 / -1;}
    #toTop{width:50px;height:50px;bottom:24px;right:24px;}
  }
