  :root{
    --ink:#1c1815;
    --paper:#f4efe6;
    --paper-2:#ebe3d4;
    --accent:#b4471f;      /* 朱・滝の岩肌のような赤錆 */
    --accent-soft:#d98c5f;
    --water:#3a6b6b;       /* 滝の水・深い青緑 */
    --gold:#a8853f;
    --line:#cbbfa9;
    --mute:#6f6354;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:"Zen Kaku Gothic New",sans-serif;
    line-height:1.8;
    overflow-x:hidden;
    position:relative;
  }
  /* 紙の質感 */
  body::before{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
    mix-blend-mode:multiply;opacity:.6;
  }
  .wrap{max-width:980px;margin:0 auto;padding:0 28px;position:relative;z-index:2}

  /* ===== Hero ===== */
  .hero{min-height:92vh;display:flex;flex-direction:column;justify-content:center;position:relative;padding:90px 0 60px}
  /* 背景写真の透かしレイヤー（hero.jpg があれば表示。文字を守るため強めに白を重ねる） */
  .hero-bg{
    position:absolute;inset:0;z-index:0;pointer-events:none;
    background-image:
      linear-gradient(rgba(244,239,230,.80),rgba(244,239,230,.90)),
      url('hero.jpg');
    background-size:cover;background-position:center;
    -webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%);
            mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 60%,rgba(0,0,0,0) 100%);
  }
  .hero-grid{display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center;position:relative;z-index:2}
  .hero-text{min-width:0}
  .hero-vert{
    position:absolute;top:48px;right:34px;z-index:2;
    writing-mode:vertical-rl;font-family:"Shippori Mincho",serif;
    font-size:.78rem;letter-spacing:.45em;color:var(--mute);
  }
  /* 顔写真：丸アイコン（クリックでプロフィールへ） */
  .portrait{
    position:relative;opacity:0;animation:rise 1.1s .5s forwards;justify-self:center;
    text-decoration:none;display:block;cursor:pointer;
  }
  .portrait-ring{
    width:clamp(190px,24vw,270px);height:clamp(190px,24vw,270px);
    border-radius:50%;overflow:hidden;position:relative;
    border:1px solid var(--line);
    box-shadow:0 24px 50px -22px rgba(28,24,21,.45);
    background:var(--paper-2);
    transition:transform .4s ease,box-shadow .4s ease;
  }
  .portrait:hover .portrait-ring{transform:translateY(-6px);box-shadow:0 30px 56px -20px rgba(28,24,21,.5)}
  .portrait:hover .portrait-cap{color:var(--accent)}
  .portrait-ring img{width:100%;height:100%;object-fit:cover;display:block}
  /* 写真が無いとき用のプレースホルダ */
  .portrait-ph{
    position:absolute;inset:0;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:6px;
    color:var(--mute);font-family:"Shippori Mincho",serif;text-align:center;padding:20px;
  }
  .portrait-ph .ph-ico{font-size:2.4rem;opacity:.5}
  .portrait-ph small{font-size:.72rem;line-height:1.5;letter-spacing:.05em}
  /* 装飾：朱色の弧 */
  .portrait::after{
    content:"";position:absolute;inset:-12px;border-radius:50%;
    border:1px solid var(--accent);border-right-color:transparent;border-bottom-color:transparent;
    transform:rotate(-25deg);pointer-events:none;
  }
  .portrait-cap{
    text-align:center;margin-top:18px;font-family:"Cormorant Garamond",serif;
    font-style:italic;font-size:.85rem;color:var(--mute);letter-spacing:.12em;
  }
  .eyebrow{
    font-family:"Cormorant Garamond",serif;font-style:italic;
    font-size:1.15rem;letter-spacing:.05em;color:var(--accent);
    margin-bottom:18px;opacity:0;animation:rise .9s .1s forwards;
  }
  .name-jp{
    font-family:"Shippori Mincho",serif;font-weight:800;
    font-size:clamp(3.2rem,11vw,6.4rem);line-height:1.04;
    letter-spacing:.04em;opacity:0;animation:rise 1s .25s forwards;
  }
  .name-en{
    font-family:"Cormorant Garamond",serif;font-size:1.4rem;
    letter-spacing:.42em;text-transform:uppercase;color:var(--mute);
    margin:14px 0 30px;opacity:0;animation:rise 1s .4s forwards;
  }
  .catch{
    font-family:"Shippori Mincho",serif;font-weight:500;
    font-size:clamp(1.3rem,3.6vw,2.05rem);line-height:1.7;
    max-width:18em;opacity:0;animation:rise 1s .55s forwards;
  }
  .catch .stroke{color:var(--accent);position:relative;white-space:nowrap}
  .roles{
    display:flex;flex-wrap:wrap;gap:10px 0;margin-top:38px;
    opacity:0;animation:rise 1s .7s forwards;
  }
  .roles span{
    font-family:"Shippori Mincho",serif;font-size:.95rem;
    padding:7px 20px;border:1px solid var(--line);border-radius:40px;
    margin-right:10px;background:rgba(255,255,255,.35);
  }
  @keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

  /* ===== Section base ===== */
  section{padding:78px 0;position:relative}
  .sec-head{display:flex;align-items:baseline;gap:18px;margin-bottom:42px}
  .sec-icon{align-self:center;width:30px;height:30px;flex-shrink:0;color:var(--accent)}
  .sec-icon svg{width:100%;height:100%;display:block;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
  .taki .sec-icon{color:var(--accent-soft)}
  .sec-title{font-family:"Shippori Mincho",serif;font-weight:700;font-size:clamp(1.5rem,4vw,2.1rem);letter-spacing:.06em}
  .sec-en{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--mute);font-size:1rem;margin-left:auto}
  .divider{height:1px;background:linear-gradient(90deg,var(--line),transparent);margin:0 0 0}

  /* ===== About ===== */
  .about{background:var(--paper-2)}
  .about p{font-size:1.05rem;max-width:38em;color:#3a332b}
  .about p+p{margin-top:1.2em}
  /* 収録風景イメージ（横長） */
  .studio-img{
    margin-top:42px;width:100%;height:clamp(260px,46vw,520px);
    border-radius:4px;overflow:hidden;position:relative;
    border:1px solid var(--line);background:var(--paper);
    box-shadow:0 20px 44px -24px rgba(28,24,21,.4);
  }
  .studio-img img{width:100%;height:100%;object-fit:cover;display:block}
  .studio-img .ph{
    position:absolute;inset:0;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:8px;color:var(--mute);
    font-family:"Shippori Mincho",serif;text-align:center;
    background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 12px,var(--paper-2) 12px,var(--paper-2) 24px);
  }
  .studio-img .ph .ph-ico{font-size:2rem;opacity:.45}
  .studio-img .ph small{font-size:.8rem;letter-spacing:.05em;line-height:1.6}
  .skills{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--line);margin-top:48px;border:1px solid var(--line)}
  .skill{background:var(--paper);padding:30px 26px}
  .skill h3{font-family:"Shippori Mincho",serif;font-size:1.2rem;margin-bottom:10px;color:var(--accent)}
  .skill p{font-size:.92rem;color:var(--mute);margin:0}

  /* ===== Works ===== */
  .work{
    display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:22px;
    padding:24px 0;border-top:1px solid var(--line);text-decoration:none;color:inherit;
    transition:padding-left .35s ease,background .35s ease;
  }
  .work:last-child{border-bottom:1px solid var(--line)}
  .work:hover{padding-left:18px;background:linear-gradient(90deg,rgba(180,71,31,.06),transparent)}
  .work-no{font-family:"Cormorant Garamond",serif;font-size:1.3rem;color:var(--accent-soft)}
  .work-icon{
    width:58px;height:58px;border-radius:50%;overflow:hidden;position:relative;
    border:1px solid var(--line);background:var(--paper-2);flex-shrink:0;
    transition:transform .35s ease;
  }
  .work:hover .work-icon{transform:scale(1.06)}
  .work-icon img{width:100%;height:100%;object-fit:cover;display:block}
  .work-icon .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--mute);font-family:"Cormorant Garamond",serif;font-size:.95rem}
  .work-body h3{font-family:"Shippori Mincho",serif;font-size:1.3rem;font-weight:600;letter-spacing:.03em}
  .work-body .meta{font-size:.85rem;color:var(--mute);margin-top:4px;letter-spacing:.05em}
  .work-go{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--accent);font-size:1rem;white-space:nowrap;transition:transform .35s}
  .work:hover .work-go{transform:translateX(8px)}
  .work-go::after{content:" ↗"}

  /* ===== News（お知らせ・近況） ===== */
  .news{background:var(--paper)}
  .news-list{display:flex;flex-direction:column}
  .news-item{
    display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;
    padding:30px 0;border-top:1px solid var(--line);
  }
  .news-item:last-child{border-bottom:1px solid var(--line)}
  /* 画像つきの場合は3カラム（画像・日付・本文）*/
  .news-item.has-img{grid-template-columns:auto auto 1fr}
  .news-thumb{
    width:120px;height:120px;border-radius:4px;overflow:hidden;position:relative;
    border:1px solid var(--line);background:var(--paper-2);flex-shrink:0;
  }
  .news-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .news-thumb .ph{
    position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:4px;color:var(--mute);font-family:"Shippori Mincho",serif;
    text-align:center;font-size:.7rem;padding:8px;
    background:repeating-linear-gradient(45deg,var(--paper),var(--paper) 10px,var(--paper-2) 10px,var(--paper-2) 20px);
  }
  .news-date{
    font-family:"Cormorant Garamond",serif;font-size:1.05rem;color:var(--accent);
    line-height:1.3;letter-spacing:.04em;white-space:nowrap;padding-top:2px;
  }
  .news-date .cat{
    display:block;font-family:"Shippori Mincho",serif;font-size:.72rem;
    color:var(--mute);margin-top:4px;letter-spacing:.08em;
  }
  .news-body{min-width:0}
  .news-body h3{font-family:"Shippori Mincho",serif;font-size:1.18rem;font-weight:600;letter-spacing:.03em;line-height:1.5}
  .news-body p{font-size:.92rem;color:#3a332b;margin-top:8px;line-height:1.75;max-width:40em}
  .news-body a.link{color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-soft);font-size:.88rem}
  .news-body a.link::after{content:" ↗"}
  .news-more{margin-top:34px;text-align:right}
  .news-more a{
    font-family:"Shippori Mincho",serif;font-size:.95rem;color:var(--ink);
    text-decoration:none;border:1px solid var(--line);background:rgba(255,255,255,.4);
    padding:11px 26px;border-radius:40px;transition:.3s;display:inline-block;
  }
  .news-more a:hover{background:var(--accent);color:var(--paper);transform:translateX(4px)}
  .news-more a::after{content:" →";font-family:"Cormorant Garamond",serif}

  /* 続きを読む（トップ→一覧ページへのリンク） */
  .readmore,
  .readmore:link,
  .readmore:visited{
    display:inline-block;margin-top:10px;cursor:pointer;text-decoration:none;
    font-family:"Shippori Mincho",serif;font-size:.85rem;color:var(--accent);
    padding:4px 0;letter-spacing:.04em;
    border-bottom:1px solid var(--accent-soft);transition:color .25s,border-color .25s;
  }
  .readmore:hover,
  .readmore:focus{color:var(--ink);border-color:var(--ink)}
  .readmore::after{content:" →";font-family:"Cormorant Garamond",serif}

  /* クリックで拡大できるサムネイル */
  .news-thumb img.zoomable{cursor:zoom-in}

  /* 画像ライトボックス（拡大表示） */
  .lightbox{
    position:fixed;inset:0;z-index:999;display:none;
    align-items:center;justify-content:center;padding:28px;
    background:rgba(20,17,14,.86);cursor:zoom-out;
    -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  }
  .lightbox.open{display:flex}
  .lightbox img{
    max-width:92vw;max-height:88vh;object-fit:contain;
    border-radius:4px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
    background:var(--paper);
  }
  .lightbox-close{
    position:absolute;top:22px;right:26px;width:42px;height:42px;
    border:1px solid rgba(255,255,255,.5);border-radius:50%;background:none;
    color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:.25s;
  }
  .lightbox-close:hover{background:rgba(255,255,255,.15)}
  @media(max-width:600px){
    .news-item,.news-item.has-img{grid-template-columns:1fr;gap:12px}
    /* スマホでは画像を切り取らず、縦長・横長そのままの比率で全体を表示 */
    .news-thumb{width:100%;height:auto;background:none;border:none;border-radius:0}
    .news-thumb img{
      width:100%;height:auto;object-fit:contain;
      border-radius:4px;border:1px solid var(--line);
    }
    /* 画像が無いとき用プレースホルダはスマホでも高さを確保 */
    .news-thumb .ph{position:relative;min-height:180px;border-radius:4px;border:1px solid var(--line)}
    .news-date{padding-top:0}
  }

  /* ===== Taki (滝活) ===== */
  .taki{background:var(--water);color:var(--paper);overflow:hidden;position:relative}
  /* 滝写真の背景レイヤー（taki.jpg があれば表示） */
  .taki-bg{
    position:absolute;inset:0;z-index:0;
    background-image:linear-gradient(rgba(30,55,55,.72),rgba(30,55,55,.82)),url('taki.jpg');
    background-size:cover;background-position:center;
    /* 画像が無い場合は青緑のままなので破綻しない */
  }
  .taki .wrap{position:relative;z-index:2}
  .taki::after{
    content:"瀧";position:absolute;right:-2%;bottom:-18%;z-index:1;
    font-family:"Shippori Mincho",serif;font-size:30rem;font-weight:800;
    color:rgba(255,255,255,.05);line-height:1;pointer-events:none;
  }
  .taki .sec-en{color:var(--accent-soft)}
  .taki .badge{display:inline-block;font-family:"Cormorant Garamond",serif;font-style:italic;
    border:1px solid rgba(255,255,255,.4);padding:5px 16px;border-radius:30px;font-size:.85rem;margin-bottom:22px}
  .taki h2{font-family:"Shippori Mincho",serif;font-size:clamp(1.6rem,4.5vw,2.4rem);line-height:1.6;max-width:16em;position:relative;z-index:2}
  .taki h3{font-family:"Shippori Mincho",serif;font-weight:500;font-size:clamp(1.15rem,3vw,1.6rem);line-height:1.7;max-width:22em;margin-top:6px;position:relative;z-index:2}
  .taki .small{font-size:.92rem;opacity:.75;margin-top:20px;position:relative;z-index:2}
  .taki a.yt{display:inline-block;margin-top:26px;color:var(--paper);text-decoration:none;border-bottom:1px solid var(--accent-soft);padding-bottom:3px;font-family:"Shippori Mincho",serif;position:relative;z-index:2}

  /* ===== Profile ===== */
  .profile{background:var(--paper-2);scroll-margin-top:24px}
  .profile-grid{display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:start}
  .profile-photo{
    width:clamp(120px,16vw,170px);height:clamp(120px,16vw,170px);
    border-radius:50%;overflow:hidden;border:1px solid var(--line);
    background:var(--paper);position:relative;flex-shrink:0;
    box-shadow:0 16px 36px -18px rgba(28,24,21,.4);
  }
  .profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
  .profile-photo .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--mute);font-family:"Shippori Mincho",serif;font-size:.7rem;text-align:center;padding:14px}
  .profile-body{min-width:0}
  .profile-name{font-family:"Shippori Mincho",serif;font-weight:700;font-size:1.6rem;letter-spacing:.05em}
  .profile-name span{font-size:.95rem;color:var(--mute);margin-left:12px;font-weight:400}
  .profile-body p{font-size:1.02rem;color:#3a332b;margin-top:1.1em;max-width:40em}
  .profile-cta{margin-top:1.6em;font-family:"Shippori Mincho",serif;color:var(--accent)}

  /* ===== History（おもな実績） ===== */
  .history{background:var(--paper)}
  .hist-year{display:grid;grid-template-columns:auto 1fr;gap:30px;padding:26px 0;border-top:1px solid var(--line)}
  .hist-year:last-child{border-bottom:1px solid var(--line)}
  .hist-y{font-family:"Cormorant Garamond",serif;font-size:1.9rem;color:var(--accent);line-height:1;letter-spacing:.02em}
  .hist-list{display:flex;flex-direction:column;gap:11px}
  .hist-item{font-size:.96rem;color:#3a332b;line-height:1.45}
  .hist-item .role{display:block;font-size:.8rem;color:var(--mute);margin-top:1px;font-family:"Shippori Mincho",serif}
  @media(max-width:600px){
    .hist-year{grid-template-columns:1fr;gap:10px}
    .hist-y{font-size:1.5rem}
  }

  /* ===== Contact ===== */
  .contact{text-align:center;padding:90px 0 70px}
  .contact .lead{font-family:"Shippori Mincho",serif;font-size:clamp(1.4rem,4vw,2rem);margin-bottom:40px;letter-spacing:.05em}
  .clist{display:flex;flex-direction:column;gap:2px;max-width:420px;margin:0 auto}
  .clist a{
    display:flex;justify-content:space-between;align-items:center;
    padding:18px 24px;text-decoration:none;color:var(--ink);
    border:1px solid var(--line);background:rgba(255,255,255,.4);
    font-family:"Shippori Mincho",serif;transition:.3s;
  }
  .clist a:hover{background:var(--accent);color:var(--paper);transform:translateX(4px)}
  .clist .k{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:.85rem;letter-spacing:.1em}

  footer{text-align:center;padding:40px 0;border-top:1px solid var(--line);font-family:"Cormorant Garamond",serif;font-size:.85rem;color:var(--mute);letter-spacing:.15em}

  /* reveal on scroll */
  .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}
  .reveal.in{opacity:1;transform:none}

  @media(max-width:680px){
    .hero-grid{grid-template-columns:1fr;gap:38px}
    .portrait{order:-1;justify-self:start}
    .profile-grid{grid-template-columns:1fr;gap:26px}
  }
  @media(max-width:600px){
    .hero-vert{display:none}
    .work{grid-template-columns:auto auto 1fr;gap:14px}
    .work-go{grid-column:3;justify-self:start;margin-top:6px}
    .sec-en{display:none}
  }
