  :root {
    --bg: #fbfaf7;
    --surface: #ffffff;
    --ink: #111111;
    --ink-sub: #3a3a3a;
    --ink-dim: #6a6a6a;
    --line: #e6e3dc;
    --gold: #946d2e;
    --accent: #7a5a2c;
    --serif-jp: "Shippori Mincho", "游明朝", "Yu Mincho", serif;
    --serif-en: "Cormorant Garamond", "Times New Roman", serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;font-size:17px}
  body{background:var(--bg);color:var(--ink);font-family:var(--serif-jp);font-weight:400;line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none;transition:color .3s}
  a:hover{color:var(--gold)}
  img{max-width:100%;display:block}

  header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(251,250,247,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:1.1rem 3rem;display:flex;justify-content:space-between;align-items:center}
  .brand{font-family:var(--serif-en);font-size:1.1rem;letter-spacing:.3em;color:var(--ink)}
  .brand span{color:var(--gold)}
  .header-right{display:flex;align-items:center;gap:2rem}
  .header-nav ul{display:flex;gap:2.2rem;list-style:none}
  .header-nav a{font-size:.78rem;letter-spacing:.22em;color:var(--ink-sub);text-transform:uppercase}

  /* Hamburger button */
  .menu-btn{width:36px;height:30px;position:relative;cursor:pointer;background:transparent;border:none;padding:0;z-index:120;display:block}
  .menu-btn span{position:absolute;left:4px;right:4px;height:1px;background:var(--ink);transition:all .35s cubic-bezier(.65,.05,.36,1)}
  .menu-btn span:nth-child(1){top:9px}
  .menu-btn span:nth-child(2){top:15px;width:18px;left:auto;right:4px}
  .menu-btn span:nth-child(3){top:21px}
  .menu-btn:hover span{background:var(--gold)}
  .menu-btn:hover span:nth-child(2){width:28px}
  .menu-btn.is-open span{background:var(--ink)}
  .menu-btn.is-open span:nth-child(1){top:15px;transform:rotate(45deg)}
  .menu-btn.is-open span:nth-child(2){opacity:0}
  .menu-btn.is-open span:nth-child(3){top:15px;transform:rotate(-45deg)}

  /* Fullscreen overlay menu */
  .menu-overlay{position:fixed;inset:0;background:rgba(251,250,247,.98);backdrop-filter:blur(8px);z-index:110;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s;display:flex;align-items:center;justify-content:center;padding:2rem}
  .menu-close{position:absolute;top:1.5rem;right:2rem;width:46px;height:46px;background:transparent;border:1px solid var(--gold);color:var(--gold);font-size:1.5rem;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--serif-en);transition:all .3s;z-index:121}
  .menu-close:hover{background:var(--gold);color:#fff;transform:rotate(90deg)}
  .menu-overlay.is-open{opacity:1;visibility:visible}
  .menu-overlay nav{text-align:center}
  .menu-overlay ul{list-style:none;padding:0;margin:0}
  .menu-overlay li{margin:1.3rem 0;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
  .menu-overlay.is-open li{opacity:1;transform:none}
  .menu-overlay.is-open li:nth-child(1){transition-delay:.15s}
  .menu-overlay.is-open li:nth-child(2){transition-delay:.22s}
  .menu-overlay.is-open li:nth-child(3){transition-delay:.29s}
  .menu-overlay.is-open li:nth-child(4){transition-delay:.36s}
  .menu-overlay.is-open li:nth-child(5){transition-delay:.43s}
  .menu-overlay.is-open li:nth-child(6){transition-delay:.50s}
  .menu-overlay.is-open li:nth-child(7){transition-delay:.57s}
  .menu-overlay a{display:inline-block;font-family:var(--serif-jp);font-size:1.5rem;letter-spacing:.3em;color:var(--ink);position:relative;padding:.3rem .5rem}
  .menu-overlay a .en{display:block;font-family:var(--serif-en);font-size:.7rem;letter-spacing:.45em;color:var(--gold);margin-bottom:.4rem;text-transform:uppercase;font-weight:400}
  .menu-overlay a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:1px;background:var(--gold);transition:left .35s,right .35s}
  .menu-overlay a:hover::after{left:.5rem;right:.5rem}
  @media(max-width:860px){.menu-overlay a{font-size:1.2rem;letter-spacing:.25em}.menu-overlay li{margin:1rem 0}}

  .hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:6rem 0 4rem;background-image:linear-gradient(rgba(251,250,247,.94),rgba(251,250,247,.97)),url("hero-bg.jpg");background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat;border-bottom:1px solid var(--line)}
  .hero-inner{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:4rem;max-width:1200px;width:100%;margin:0 auto;padding:0 3rem}
  .hero-inner .hero-text{grid-column:1;grid-row:1}
  .hero-inner .hero-photo{grid-column:2;grid-row:1}
  .hero-text .en{font-family:var(--serif-en);font-size:.95rem;letter-spacing:.5em;color:var(--gold);margin-bottom:1.5rem}
  .hero-text h1{font-weight:500;font-size:clamp(2rem,4vw,3rem);line-height:1.5;letter-spacing:.12em;margin-bottom:1rem;text-shadow:0 1px 2px rgba(255,255,255,.75)}
  .hero-text h1 .alias{display:block;font-size:.5em;color:var(--gold);font-weight:400;letter-spacing:.3em;margin-top:.8rem}
  .hero-text .lead{font-size:1rem;color:var(--ink-sub);margin:2rem 0 2.5rem;max-width:32rem;text-shadow:0 1px 2px rgba(255,255,255,.65)}
  .hero-text .lead+.lead{margin-top:-1.2rem}
  .hero-text .tag{display:inline-block;padding:.4rem 1.2rem;border:1px solid var(--gold);color:var(--gold);font-size:.78rem;letter-spacing:.2em;margin-right:.5rem;margin-bottom:.5rem}
  .hero-photo{aspect-ratio:3/4;background-image:linear-gradient(135deg,rgba(165,133,73,.08),rgba(26,26,26,.12)),url("profile.jpg");background-size:cover;background-position:62% center;background-repeat:no-repeat;border-radius:2px;box-shadow:0 20px 60px -20px rgba(26,26,26,.25)}

  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin:0;max-width:none;padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .stat{background:var(--surface);padding:1.6rem 1rem;text-align:center}
  .stat .num{font-family:var(--serif-en);font-size:2.2rem;color:var(--gold);letter-spacing:.1em;line-height:1}
  .stat .num small{font-size:.55em;color:var(--ink-sub);letter-spacing:.2em;margin-left:.3rem}
  .stat .num.dual{font-size:1.7rem;line-height:1.15}
  .stat .num.dual .seg{display:inline-block;margin:0 .25rem}
  .stat .num.dual .cat{font-size:.5em;color:var(--ink-sub);letter-spacing:.1em;margin-right:.2rem;font-family:var(--serif-jp);vertical-align:middle}
  @media(max-width:860px){.stat .num.dual{font-size:1.25rem}.stat .num.dual .cat{font-size:.55em}}
  .stat .label{font-size:.78rem;color:var(--ink-sub);letter-spacing:.2em;margin-top:.6rem;line-height:1.5}

  section{padding:6rem 2rem;max-width:1100px;margin:0 auto}
  .section-head{text-align:center;margin-bottom:4rem}
  .section-head .en{font-family:var(--serif-en);font-size:.85rem;letter-spacing:.5em;color:var(--gold);text-transform:uppercase;display:block;margin-bottom:.8rem}
  .section-head h2{font-weight:500;font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:.25em}
  .section-head h2::after{content:"";display:block;width:40px;height:1px;background:var(--gold);margin:1.2rem auto 0}

  #message{position:relative;max-width:none;margin:0;padding:5rem 2rem;background-image:linear-gradient(rgba(251,250,247,.78),rgba(251,250,247,.88)),url("message-bg.webp");background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  #message .section-head{margin-bottom:2.4rem}
  #message .section-head h2{text-shadow:0 1px 2px rgba(255,255,255,.6)}
  .message-body{max-width:700px;margin:0 auto;text-align:center;background:rgba(255,255,255,.55);backdrop-filter:blur(2px);padding:2rem 2rem;border-radius:2px}
  .message-body p{margin-bottom:1rem;color:var(--ink);font-size:1rem;line-height:1.85}
  .signature{margin-top:1.8rem;font-family:var(--serif-en);color:var(--gold);letter-spacing:.2em;font-size:.95rem}
  @media (max-width:860px){#message{background-attachment:scroll;padding:2.8rem 1.2rem}#message .section-head{margin-bottom:1.6rem}.message-body{padding:1.4rem 1.1rem}.message-body p{font-size:.88rem;margin-bottom:.7rem;line-height:1.85}.signature{margin-top:1.2rem;font-size:.85rem}}

  .news-list{max-width:780px;margin:0 auto;list-style:none}
  .news-list li{border-bottom:1px solid var(--line)}
  .news-list a{display:grid;grid-template-columns:90px 80px 1fr;gap:1.2rem;padding:1rem 0;align-items:baseline;color:inherit;transition:opacity .3s}
  .news-list a:hover{opacity:.7}
  .news-list a:hover .title{color:var(--gold)}
  .news-list .date{font-family:var(--serif-en);color:var(--ink-dim);font-size:.85rem;letter-spacing:.15em}
  .news-list .cat{font-size:.66rem;letter-spacing:.25em;color:var(--gold);border:1px solid var(--gold);padding:.15rem .6rem;text-align:center}
  .news-list .title{color:var(--ink);font-size:.97rem;line-height:1.7;transition:color .3s}
  #news{padding-top:4rem;padding-bottom:4rem}
  #news .section-head{margin-bottom:2.4rem}

  .books{background:var(--surface);max-width:none;padding:4rem 2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .books .section-head{margin-bottom:2.5rem}
  .books-inner{max-width:900px;margin:0 auto}
  .book-feature{display:grid;grid-template-columns:1fr 1.5fr;gap:2.4rem;align-items:center}
  .book-cover-large{box-shadow:0 20px 50px -15px rgba(0,0,0,.5);border-radius:2px;overflow:hidden;display:block;transition:transform .35s,box-shadow .35s}
  a.book-cover-large{cursor:pointer}
  a.book-cover-large:hover{transform:translateY(-3px);box-shadow:0 26px 60px -15px rgba(0,0,0,.55)}
  .book-cover-large img{width:100%;height:auto;display:block}
  .book-info .meta{font-family:var(--serif-en);font-size:.78rem;color:var(--ink-dim);letter-spacing:.2em;margin-bottom:.7rem}
  .book-info .badge{display:inline-block;padding:.25rem .8rem;background:var(--gold);color:#fff;font-size:.72rem;letter-spacing:.2em;margin-bottom:.7rem}
  .book-info h3{font-weight:500;font-size:1.25rem;letter-spacing:.08em;line-height:1.6;margin-bottom:1rem}
  .book-info p{color:var(--ink-sub);font-size:.95rem;margin-bottom:.8rem;line-height:1.85}
  .book-info dl{font-size:.88rem;margin:1rem 0;display:grid;grid-template-columns:4.5rem 1fr;gap:.25rem .9rem;color:var(--ink-sub)}
  .book-info dt{color:var(--gold);font-family:var(--serif-en);letter-spacing:.15em;font-size:.74rem;padding-top:.25rem}
  .book-info .link{display:inline-block;margin-top:.4rem;font-family:var(--serif-en);font-size:.8rem;letter-spacing:.3em;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:.2rem}

  /* YouTube section overrides */
  #youtube .book-feature{grid-template-columns:1fr;gap:1.8rem;align-items:stretch}
  #youtube .book-cover-large{max-width:none;border-radius:6px;box-shadow:0 18px 50px -18px rgba(0,0,0,.35);display:block;transition:transform .35s,box-shadow .35s;cursor:pointer}
  #youtube .book-cover-large:hover{transform:translateY(-3px);box-shadow:0 24px 60px -18px rgba(0,0,0,.45)}
  #youtube .book-cover-large img{width:100%;height:auto;display:block;background:#000;border-radius:6px}
  #youtube .book-info{text-align:center;max-width:680px;margin:0 auto}
  #youtube .book-info .meta,#youtube .book-info .badge{margin-left:auto;margin-right:auto}
  @media(max-width:860px){
    #youtube .book-feature{gap:1.1rem}
    #youtube .book-info{text-align:center}
  }

  #media{position:relative;max-width:none;margin:0;padding:5rem 2rem;background-image:linear-gradient(rgba(251,250,247,.78),rgba(251,250,247,.88)),url("media-bg.jpg");background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  #media .section-head{margin-bottom:2.4rem}
  .media-list{max-width:820px;margin:0 auto;list-style:none;background:rgba(255,255,255,.6);backdrop-filter:blur(2px);padding:1rem 1.6rem;border-radius:2px}
  .media-list li{border-bottom:1px solid var(--line);position:relative;color:var(--ink-sub);font-size:.95rem;line-height:1.7}
  .media-list li:last-child{border-bottom:none}
  .media-list li::before{content:"";position:absolute;left:0;top:1.15rem;width:8px;height:1px;background:var(--gold);transition:width .3s,background .3s}
  .media-list li:hover::before{width:14px;background:var(--accent)}
  .media-list li a{display:block;padding:.7rem 2rem .7rem 1.3rem;color:inherit;position:relative;transition:color .3s,background .3s}
  .media-list li a:hover{color:var(--ink);background:rgba(165,133,73,.06)}
  .media-list li a::after{content:"→";position:absolute;right:.5rem;top:50%;transform:translateY(-50%);color:var(--gold);opacity:0;transition:opacity .3s,right .3s;font-family:var(--serif-en)}
  .media-list li a:hover::after{opacity:1;right:.2rem}
  .media-list .date{font-family:var(--serif-en);color:var(--ink-dim);font-size:.82rem;margin-right:.8rem;letter-spacing:.15em}
  @media (max-width:860px){#media{background-attachment:scroll;padding:2.8rem 1.2rem}#media .section-head{margin-bottom:1.6rem}.media-list{padding:.6rem .9rem;font-size:.85rem}.media-list li{font-size:.85rem;line-height:1.65}.media-list li a{padding:.6rem 1.6rem .6rem 1.1rem}.media-list .date{font-size:.74rem;margin-right:.6rem}.media-list li::before{top:.95rem;width:6px}}

  /* Lightbox */
  .lightbox{position:fixed;inset:0;background:rgba(15,15,15,.92);display:none;align-items:center;justify-content:center;z-index:200;padding:2rem;cursor:zoom-out;opacity:0;transition:opacity .3s}
  .lightbox.is-open{display:flex;opacity:1}
  .lightbox-figure{max-width:min(1100px,96vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:default;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}
  .lightbox-figure::-webkit-scrollbar{width:8px}
  .lightbox-figure::-webkit-scrollbar-track{background:transparent}
  .lightbox-figure::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:4px}
  .lightbox-figure::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.5)}
  .lightbox-figure img{width:100%;max-width:100%;height:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);border-radius:2px;background:transparent;flex-shrink:0}
  .lightbox-figure iframe{width:min(1100px,96vw);height:80vh;border:none;background:#fff;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);border-radius:2px}
  .lightbox-pdf{width:min(900px,94vw);max-height:80vh;overflow-y:auto;background:#fff;border-radius:2px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);padding:.6rem;display:flex;flex-direction:column;gap:.5rem;-webkit-overflow-scrolling:touch}
  .lightbox-pdf canvas{max-width:100%;height:auto;display:block;margin:0 auto}
  .lightbox-pdf .pdf-loading{padding:3rem 1rem;text-align:center;color:var(--ink-dim);font-family:var(--serif-jp);font-size:.9rem;letter-spacing:.1em}
  .lightbox-pdf .pdf-error{padding:2rem 1.5rem;text-align:center;color:#a14242;font-family:var(--serif-jp);font-size:.88rem;line-height:1.7}
  .lightbox-figure .pdf-fallback{margin-top:.4rem;font-family:var(--serif-en);font-size:.78rem;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:.15rem}
  .lightbox-figure .pdf-fallback:hover{color:#fff;border-color:#fff}
  .lightbox-caption{font-family:var(--serif-jp);color:rgba(255,255,255,.85);font-size:.9rem;letter-spacing:.15em;line-height:1.7;text-align:center;max-width:42rem}
  .lightbox-caption .src{display:block;font-family:var(--serif-en);font-size:.78rem;color:var(--gold);letter-spacing:.3em;margin-top:.5rem;text-transform:uppercase}
  .lightbox-close{position:absolute;top:1.2rem;right:1.4rem;width:42px;height:42px;border:1px solid rgba(255,255,255,.5);background:transparent;color:#fff;font-family:var(--serif-en);font-size:1.4rem;line-height:1;cursor:pointer;border-radius:50%;transition:all .3s;display:flex;align-items:center;justify-content:center}
  .lightbox-close:hover{background:var(--gold);border-color:var(--gold)}
  .media-list li a.has-image::after{content:"⛶";font-family:var(--serif-en);font-size:.95rem}

  .parallax{position:relative;max-width:none;margin:0;padding:10rem 2rem;text-align:center;color:#fff;background-image:linear-gradient(rgba(20,23,28,.55),rgba(20,23,28,.65)),url("bg.avif");background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat}
  .parallax .en{font-family:var(--serif-en);font-size:.9rem;letter-spacing:.6em;color:var(--gold);margin-bottom:1.5rem;text-transform:uppercase}
  .parallax .quote{font-family:var(--serif-jp);font-weight:500;font-size:clamp(1.3rem,2.6vw,2rem);line-height:2;letter-spacing:.2em;max-width:32em;margin:0 auto}
  .parallax .quote::before,.parallax .quote::after{content:"";display:block;width:40px;height:1px;background:var(--gold);margin:1.8rem auto}
  .parallax cite{display:block;margin-top:2.5rem;font-family:var(--serif-en);font-size:.85rem;letter-spacing:.3em;color:rgba(255,255,255,.7);font-style:normal}
  @media (max-width:860px){.parallax{background-attachment:scroll;padding:5rem 1.2rem}}

  /* SP parallax: clip-path + fixed pseudo-element trick.
     iOS Safari ignores background-attachment:fixed, so we layer a fixed
     pseudo-element clipped to each section. The bg appears to stay still
     while the section scrolls past, giving real parallax on mobile too. */
  @media (max-width:860px){
    .hero, #message, #media, .parallax{
      background-image:none;
      position:relative;
      clip-path:inset(0);
      isolation:isolate;
    }
    .hero::before, #message::before, #media::before, .parallax::before{
      content:"";
      position:fixed;
      inset:0;
      background-size:cover;
      background-position:center;
      background-repeat:no-repeat;
      z-index:-1;
    }
    .hero::before{
      background-image:linear-gradient(rgba(251,250,247,.94),rgba(251,250,247,.97)),url("hero-bg.jpg");
    }
    #message::before{
      background-image:linear-gradient(rgba(251,250,247,.78),rgba(251,250,247,.88)),url("message-bg.webp");
    }
    #media::before{
      background-image:linear-gradient(rgba(251,250,247,.78),rgba(251,250,247,.88)),url("media-bg.jpg");
    }
    .parallax::before{
      background-image:linear-gradient(rgba(20,23,28,.55),rgba(20,23,28,.65)),url("bg.avif");
    }
  }

  .profile{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start}
  .profile-photo{aspect-ratio:4/5;background-image:url("profile-new.jpg");background-size:cover;background-position:center 30%;background-repeat:no-repeat;border-radius:2px;box-shadow:0 15px 40px -15px rgba(0,0,0,.2)}
  .profile-text h3{font-family:var(--serif-en);font-size:.82rem;letter-spacing:.4em;color:var(--gold);margin-bottom:.7rem;text-transform:uppercase}
  .profile-text h4{font-weight:500;font-size:1.3rem;letter-spacing:.1em;margin-bottom:1.2rem;line-height:1.6}
  .profile-text h4 .name-en{display:block;font-family:var(--serif-en);font-size:.7em;color:var(--gold);letter-spacing:.3em;margin-bottom:.3rem;font-weight:400}
  .profile-text p{color:var(--ink-sub);font-size:.95rem;margin-bottom:.85rem;line-height:1.85}
  .bio-list{margin-top:1.4rem;list-style:none;border-top:1px solid var(--line)}
  .bio-list li{display:grid;grid-template-columns:70px 1fr;gap:.8rem;padding:.65rem 0;border-bottom:1px solid var(--line);font-size:.9rem;line-height:1.6}
  .bio-list .year{font-family:var(--serif-en);color:var(--gold);letter-spacing:.15em}
  .bio-list .event{color:var(--ink-sub)}
  #profile{padding-top:4rem;padding-bottom:4rem}
  #profile .section-head{margin-bottom:2.4rem}

  .act-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}
  .act{flex:0 1 calc((100% - 2rem) / 3);max-width:calc((100% - 2rem) / 3);min-width:0;box-sizing:border-box}
  .act{padding:1.3rem 1.2rem;background:var(--surface);border:1px solid var(--line);transition:transform .4s,border-color .4s;text-align:center;border-radius:2px}
  .act:hover{transform:translateY(-3px);border-color:var(--gold)}
  .act .num{font-family:var(--serif-en);letter-spacing:.3em;color:var(--gold);font-size:.82rem;margin-bottom:.6rem}
  .act h3{font-weight:500;font-size:1rem;letter-spacing:.1em;margin-bottom:.6rem;line-height:1.5}
  .act p{color:var(--ink-sub);font-size:.86rem;line-height:1.75}
  #activities{padding-top:3rem;padding-bottom:3rem}
  #activities .section-head{margin-bottom:1.8rem}

  .sns{background:var(--surface);max-width:none;padding:4rem 2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .sns .section-head{margin-bottom:2.4rem}
  .sns-inner{max-width:960px;margin:0 auto}
  .sns-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
  .sns-card{padding:1.4rem 1.1rem;border:1px solid var(--line);text-align:center;transition:all .3s;border-radius:2px;background:var(--bg);display:block}
  .sns-card:hover{border-color:var(--gold);transform:translateY(-3px)}
  .sns-card .icon{display:flex;align-items:center;justify-content:center;height:36px;margin-bottom:.6rem;color:var(--gold);transition:color .3s}
  .sns-card .icon svg{width:28px;height:28px}
  .sns-card:hover .icon{color:var(--accent)}
  .sns-card .label{font-family:var(--serif-en);font-size:.74rem;letter-spacing:.25em;color:var(--gold);margin-bottom:.5rem;text-transform:uppercase}
  .sns-card .handle{font-size:.88rem;color:var(--ink);margin-bottom:.3rem;line-height:1.5}
  .sns-card .desc{font-size:.76rem;color:var(--ink-dim);letter-spacing:.08em}

  .contact{text-align:center;padding-top:4rem;padding-bottom:4rem}
  .contact .section-head{margin-bottom:2.4rem}
  .contact p{color:var(--ink-sub);margin-bottom:.8rem;font-size:.95rem}
  .contact .info{margin:1.4rem 0 1.8rem;font-size:.86rem;color:var(--ink-sub);letter-spacing:.08em;line-height:1.7}
  .contact .info div{margin-bottom:.3rem}
  .contact .info .k{color:var(--gold);font-family:var(--serif-en);letter-spacing:.2em;font-size:.72rem;margin-right:.7rem}
  .btn{display:inline-block;padding:.85rem 2.6rem;border:1px solid var(--gold);color:var(--gold);font-family:var(--serif-en);font-size:.8rem;letter-spacing:.32em;text-transform:uppercase;transition:all .4s}
  .btn:hover{background:var(--gold);color:#fff}

  footer{border-top:1px solid var(--line);padding:3rem 2rem;text-align:center;font-size:.78rem;letter-spacing:.2em;color:var(--ink-dim);background:var(--surface)}
  footer .brand{font-size:1rem;margin-bottom:1rem}

  /* Reveal-on-scroll fade-in */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0s),transform 1s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0s);will-change:opacity,transform}
  .reveal.is-visible{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}



  @media(max-width:860px){
    .section-head .en{font-size:.7rem;letter-spacing:.4em;margin-bottom:.45rem}
    .section-head h2{font-size:1.15rem;letter-spacing:.18em}
    .section-head h2::after{width:28px;margin:.65rem auto 0}
    header{padding:.9rem 1rem}
    .header-right{gap:1rem}
    .header-nav{display:none}
    .hero{display:block;padding:6rem 0 2.5rem;min-height:auto;background-attachment:scroll}
    .hero-inner{display:block;padding:0 1.1rem;max-width:none}
    .hero-inner::after{content:"";display:block;clear:both}
    .hero-inner .hero-text,.hero-inner .hero-photo{grid-column:auto;grid-row:auto}
    .hero-photo{float:right;width:46%;max-width:none;margin:.4rem 0 .9rem 1.1rem;aspect-ratio:3/4;shape-outside:inset(0)}
    .hero-text .en{font-size:.72rem;letter-spacing:.35em;margin-bottom:.9rem}
    .hero-text h1{font-size:1.5rem;letter-spacing:.08em;line-height:1.5}
    .hero-text h1 .alias{font-size:.55em;letter-spacing:.25em;margin-top:.5rem}
    .hero-text .lead{font-size:.86rem;line-height:1.9;margin:1rem 0;letter-spacing:.02em;max-width:none}
    .hero-text .lead+.lead{margin-top:-.4rem}
    .hero-text .tag{font-size:.62rem;letter-spacing:.15em;padding:.3rem .8rem;margin-right:.3rem;margin-bottom:.4rem}
    section{padding:4rem 1.2rem}
    .stats{grid-template-columns:repeat(2,1fr)}
    .stat{padding:.85rem .7rem}
    .stat .num{font-size:1.7rem}
    .stat .label{font-size:.62rem;letter-spacing:.16em;margin-top:.3rem;line-height:1.4}
    .profile{display:block}
    .profile::after{content:"";display:block;clear:both}
    #profile{padding-top:2.6rem;padding-bottom:2.8rem}
    #profile .section-head{margin-bottom:1.6rem}
    .profile-photo{float:left;width:44%;max-width:none;margin:.3rem 1.1rem 1rem 0;aspect-ratio:4/5;shape-outside:inset(0)}
    .profile-text h3{font-size:.72rem;letter-spacing:.32em;margin-bottom:.45rem}
    .profile-text h4{font-size:1.05rem;letter-spacing:.08em;margin-bottom:.95rem;line-height:1.55}
    .profile-text h4 .name-en{font-size:.68em;margin-bottom:.2rem}
    .profile-text p{font-size:.83rem;margin-bottom:.7rem;line-height:1.85}
    .bio-list{margin-top:1rem}
    .bio-list li{grid-template-columns:54px 1fr;gap:.55rem;padding:.5rem 0;font-size:.78rem;line-height:1.55}
    .books{padding:2.4rem 1.1rem 2.6rem}
    .books .section-head{margin-bottom:1.6rem}
    .book-feature{grid-template-columns:38% 1fr;gap:1rem;align-items:start}
    .book-cover-large{max-width:none;margin:0;align-self:start}
    .book-info .meta{font-size:.62rem;margin-bottom:.35rem;letter-spacing:.15em}
    .book-info .badge{font-size:.58rem;padding:.15rem .55rem;margin-bottom:.45rem;letter-spacing:.15em}
    .book-info h3{font-size:.92rem;margin-bottom:.55rem;line-height:1.5;letter-spacing:.04em}
    .book-info p{font-size:.78rem;line-height:1.75;margin-bottom:.55rem}
    .book-info dl{font-size:.72rem;margin:.55rem 0;grid-template-columns:3.2rem 1fr;gap:.15rem .5rem}
    .book-info dt{font-size:.62rem;padding-top:.15rem}
    .book-info .link{font-size:.68rem;margin-top:.25rem;letter-spacing:.22em}
    #activities{padding-top:2rem;padding-bottom:2.2rem}
    #activities .section-head{margin-bottom:1.2rem}
    .act-grid{gap:.65rem}
    .act{flex-basis:100%;max-width:none;padding:1rem .9rem}
    .act .num{font-size:.7rem;letter-spacing:.25em;margin-bottom:.35rem}
    .act h3{font-size:.88rem;letter-spacing:.08em;margin-bottom:.4rem;line-height:1.45}
    .act p{font-size:.76rem;line-height:1.7}
    .sns{padding:2.6rem 1.1rem 2.8rem}
    .sns .section-head{margin-bottom:1.6rem}
    .sns-grid{gap:.7rem;grid-template-columns:repeat(2,1fr)}
    .sns-card{padding:1rem .7rem}
    .sns-card .icon{height:30px;margin-bottom:.4rem}
    .sns-card .icon svg{width:24px;height:24px}
    .sns-card .label{font-size:.62rem;letter-spacing:.22em;margin-bottom:.3rem}
    .sns-card .handle{font-size:.74rem;margin-bottom:.18rem;line-height:1.45}
    .sns-card .desc{font-size:.62rem}
    .contact{padding-top:2.6rem;padding-bottom:2.8rem}
    .contact .section-head{margin-bottom:1.6rem}
    .contact p{font-size:.84rem;margin-bottom:.6rem}
    .contact .info{margin:1rem 0 1.4rem;font-size:.74rem;line-height:1.75}
    .contact .info .k{font-size:.62rem;letter-spacing:.16em;margin-right:.5rem}
    .btn{padding:.7rem 2rem;font-size:.72rem;letter-spacing:.26em}
    #news{padding-top:2.6rem;padding-bottom:2.8rem}
    #news .section-head{margin-bottom:1.8rem}
    .news-list a{grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.2rem .7rem;padding:.75rem 0;align-items:center}
    .news-list .date{grid-row:1;grid-column:1;font-size:.78rem}
    .news-list .cat{grid-row:1;grid-column:2;justify-self:start;font-size:.6rem;padding:.1rem .55rem;letter-spacing:.18em}
    .news-list .title{grid-row:2;grid-column:1/-1;font-size:.88rem;line-height:1.55;margin-top:.15rem}
  }
