:root{
  color-scheme:light;   /* ダークモードでも紙色のまま表示する宣言 */
  --paper:#FFFFFF;      /* 真っ白 */
  --card:#FFFFFF;       /* 版画・動画の白 */
  --azur:#2B5FD6;       /* 空の青 */
  --azur-deep:#1C46B0;  /* 空の上のほうの青 */
  --ink:#221E19;        /* 墨色 */
  --stone:#D9D3C5;      /* 石段の影のグレー */
  --stone-deep:#8F897B; /* 濃いグレー(注釈用) */
  --display:"Jost", "Futura", "Avenir Next", sans-serif;   /* 欧文の顔 */
  --sans:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --air:clamp(80px,8vw,190px);  /* 縦の余白。動画の上下とセクション間で共通 */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;background:var(--paper)}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.9;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
/* 紙色の下敷き(ビューアがbodyの背景を暗く上書きしても紙色を保つ) */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:var(--paper);
}
/* 紙の質感(全体にうっすら) */
body::after{
  content:"";position:fixed;inset:0;z-index:90;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity:.05;mix-blend-mode:multiply;
}
::selection{background:var(--azur);color:#fff}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--azur);outline-offset:3px;border-radius:4px}
img,video{display:block;max-width:100%;height:auto}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- アーチ(このサイトの印) ---- */
.arch{
  display:inline-block;
  width:.58em;height:.72em;
  background:linear-gradient(180deg,var(--azur-deep),var(--azur));
  border-radius:999px 999px 0 0;
  vertical-align:baseline;
  margin:0 .015em;
}

/* ---- ナビ ---- */
.nav{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px clamp(20px,4vw,44px);
  position:relative;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-bottom:1px solid var(--stone);
}
.brand{display:block;color:var(--ink)}
.stamp{
  height:32px;width:auto;aspect-ratio:2631 / 612;display:block;
  background:currentColor;
  -webkit-mask:url("retour-lettering.png") center/contain no-repeat;
          mask:url("retour-lettering.png") center/contain no-repeat;
  transition:background-color .25s;
}
.brand:hover .stamp,.brand:hover .footer-stamp{color:var(--azur)}
.nav-links{display:flex;gap:clamp(18px,3.5vw,36px);list-style:none}
.nav-links a{
  position:relative;font-size:15px;font-weight:500;letter-spacing:.06em;
  padding:4px 2px;transition:color .25s;
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  background:var(--azur);border-radius:2px;
  transform:scaleX(0);transform-origin:left;transition:transform .25s;
}
.nav-links a:hover{color:var(--azur)}
.nav-links a.active{color:var(--azur)}
.nav-links a.active::after{transform:scaleX(1)}

/* スマホのメニューボタン(羽) */
.menu-btn{
  display:none;width:48px;height:48px;padding:0;margin-right:-7px;
  align-items:center;justify-content:center;
  border:0;background:none;
  color:var(--ink);cursor:pointer;
}
.menu-btn .feather{
  display:block;width:34px;height:27px;background:currentColor;
  -webkit-mask:url("feather.png") center/contain no-repeat;
          mask:url("feather.png") center/contain no-repeat;
  transition:transform .35s ease;
}
.menu-btn:hover{color:var(--azur)}
.menu-btn[aria-expanded="true"]{color:var(--azur)}
.menu-btn[aria-expanded="true"] .feather{transform:rotate(-14deg) translateY(-1px)}
.nav-links a:hover::after{transform:scaleX(1)}

/* ---- ヒーロー ---- */
.hero{padding:var(--air) 16px 0}
.hero-stage{
  position:relative;max-width:1160px;margin:0 auto;
  padding:0 clamp(0px,2vw,12px);
}
.frame{position:relative}
.frame video{width:100%;height:auto}


/* ---- セクション共通 ---- */
.section{max-width:1000px;margin:0 auto;padding:var(--air) 24px 0}   /* ヒーローの上と同じ余白 = イナが中央に来る */
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:clamp(26px,4vw,56px)}
.eyebrow .arch{width:.62em;height:.76em}
.eyebrow-label{font-family:var(--display);font-weight:300;font-size:16px;letter-spacing:.22em}
.eyebrow .rule{flex:1;border-top:1px solid var(--stone)}
h2{font-weight:700;font-size:clamp(26px,3.6vw,40px);line-height:1.5;letter-spacing:.03em}

/* gallery */
.gallery{
  --gap:clamp(24px,4.4vw,88px);
  max-width:1800px;margin:0 auto;
  padding:var(--air) clamp(16px,3vw,40px) 0;
}
.gallery ul{column-count:4;column-gap:var(--gap);list-style:none}
.gallery li{
  break-inside:avoid;-webkit-column-break-inside:avoid;
  margin:0 0 calc(var(--gap) * 1.15);
  overflow:hidden;border:1px solid var(--stone);border-radius:8px;background:var(--card);
}
.gallery img{width:100%;height:auto;display:block;transition:transform .6s ease}
.gallery li:hover img{transform:scale(1.03)}

/* about */
.about-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(28px,5vw,64px);align-items:start}
.about-mark{line-height:0;margin:0}
.about-mark .mark{
  width:100%;max-width:330px;aspect-ratio:2631 / 612;height:auto;display:block;
  color:var(--ink);background:currentColor;
  -webkit-mask:url("retour-lettering.png") center/contain no-repeat;
          mask:url("retour-lettering.png") center/contain no-repeat;
}
.about-grid p{margin-bottom:1.2em;font-size:15.5px}
.about-grid p:last-of-type{margin-bottom:0}

/* about → profile への導線ボタン(workの「つづきは、これから。」に近い佇まい) */
.profile-cta{
  display:inline-flex;align-items:center;gap:10px;
  margin-top:26px;
  border:1.5px dashed var(--stone-deep);border-radius:999px;
  padding:11px 24px;
  color:var(--stone-deep);font-size:14px;letter-spacing:.08em;
  transition:border-color .25s,color .25s;
}
.profile-cta .arch{width:.6em;height:.72em;background:var(--stone-deep);opacity:.5;transition:opacity .25s,background .25s}
.profile-cta:hover{border-color:var(--azur);color:var(--azur)}
.profile-cta:hover .arch{background:var(--azur);opacity:1}

/* work */
.work-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(26px,4.5vw,52px);align-items:center}
.shot{
  background:var(--card);border:1px solid var(--stone);border-radius:18px;
  overflow:hidden;box-shadow:0 22px 50px -30px rgba(34,30,25,.25);
}
.work-title{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.work-title h3{font-family:var(--display);font-weight:300;font-size:clamp(34px,5vw,52px);line-height:1.1;letter-spacing:.06em}
.tag{
  background:var(--azur);color:#fff;border-radius:999px;
  font-size:12px;font-weight:700;letter-spacing:.1em;
  padding:4px 12px;transform:translateY(-4px);
}
.work-copy p{margin-top:16px;font-size:15.5px}
.work-copy .sub{font-size:13.5px;color:var(--stone-deep);margin-top:10px}
.more{
  margin-top:clamp(28px,4vw,40px);
  border:1.5px dashed var(--stone-deep);border-radius:16px;
  padding:22px;text-align:center;
  color:var(--stone-deep);font-size:14px;letter-spacing:.08em;
}
.more .arch{width:.6em;height:.72em;background:var(--stone-deep);opacity:.5;margin-left:8px;transition:opacity .25s,background .25s}
.more:hover .arch{background:var(--azur);opacity:1}

/* contact */
.contact{text-align:center}
.contact .eyebrow{justify-content:center}
.contact .eyebrow .rule{flex:0 1 90px}
.mail{
  display:inline-block;margin:clamp(20px,3.5vw,32px) auto 0;
  font-family:var(--display);font-weight:300;font-size:clamp(17px,2.4vw,26px);letter-spacing:.06em;
  line-height:1.4;padding:.12em .4em;border-radius:8px;
  overflow-wrap:anywhere;
  background:linear-gradient(var(--azur),var(--azur)) no-repeat left bottom / 100% 2px;
  transition:background-size .3s ease,color .3s ease;
}
.mail:hover{background-size:100% 100%;color:#fff}

/* profile ページ */
.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.profile-photo{overflow:hidden;border:1px solid var(--stone);border-radius:8px;background:var(--card)}
.profile-photo img{width:100%;height:auto;display:block}
.profile-copy p{margin-top:16px;font-size:15.5px}
.profile-subhead{
  font-weight:700;font-size:14px;letter-spacing:.12em;
  margin-top:clamp(24px,3.5vw,32px);padding-top:20px;border-top:1px solid var(--stone);
}
.profile-env{list-style:none;margin-top:14px;font-size:14px;line-height:1.9}
.profile-env strong{font-weight:700;margin-right:.6em}
.profile-social{display:flex;gap:14px;margin-top:clamp(24px,3.5vw,32px)}
.profile-social a{
  width:38px;height:38px;border:1px solid var(--stone);border-radius:999px;
  display:flex;align-items:center;justify-content:center;color:var(--ink);
  transition:color .25s,border-color .25s;
}
.profile-social a:hover{color:var(--azur);border-color:var(--azur)}
.profile-social svg{width:17px;height:17px}

/* footer */
.footer{
  margin-top:calc(var(--air) * 1.15);
  border-top:1px solid var(--stone);
  padding:44px clamp(20px,4vw,44px) 48px;
  display:flex;flex-direction:column;align-items:center;gap:18px;
  font-size:13px;color:var(--stone-deep);letter-spacing:.04em;
}
.footer-stamp{position:relative;height:60px;width:auto;aspect-ratio:640 / 170;display:block}
.footer-stamp-frame{position:absolute;inset:0;width:100%;height:100%;color:inherit}
.footer-stamp-lettering{
  position:absolute;left:11.09375%;top:14.70588%;width:78.125%;height:70.58824%;
  background:currentColor;
  -webkit-mask:url("retour-lettering.png") center/contain no-repeat;
          mask:url("retour-lettering.png") center/contain no-repeat;
}

/* ---- 動き ---- */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
[data-reveal].in{opacity:1;transform:none}
.rise{opacity:0;animation:rise .8s ease forwards}
.hero-stage.rise{animation-delay:.12s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise{animation:none;opacity:1}
  [data-reveal]{opacity:1;transform:none;transition:none}
}

/* ---- モバイル ---- */
@media (max-width:1240px){
  .gallery ul{column-count:3}
}
@media (max-width:820px){
  .gallery ul{column-count:2}
}
@media (max-width:720px){
  .about-grid,.work-grid,.profile-grid{grid-template-columns:1fr}
  .stamp{height:28px}
  .about-mark .mark{max-width:165px}
  .footer-stamp{height:40px}
  .profile-photo{max-width:260px}
  /* イナイナを画面の中央に置く(ヘッダーを除いた1画面ぶんの高さで上下中央) */
  .hero{
    min-height:calc(100vh - 58px);
    min-height:calc(100svh - 58px);
    display:flex;flex-direction:column;justify-content:center;
    padding-top:28px;padding-bottom:28px;
    overflow:hidden;          /* はみ出した白い余白を隠す */
  }
  /* 動画を画面幅より大きく引き伸ばして、イナイナを大きく見せる。
     背景が純白なので左右がはみ出しても継ぎ目は見えない */
  .hero-stage{width:145%;margin-left:-22.5%}
  .menu-btn{display:flex}
  .nav-links{
    position:absolute;top:100%;right:0;left:0;
    flex-direction:column;align-items:flex-end;gap:0;
    padding:0 clamp(20px,4vw,44px);
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid transparent;
    max-height:0;overflow:hidden;
    transition:max-height .35s ease,padding .35s ease,border-color .35s ease;
  }
  .nav.open .nav-links{
    max-height:260px;padding:6px clamp(20px,4vw,44px) 18px;
    border-bottom-color:var(--stone);
  }
  .nav-links a{display:block;padding:13px 0;font-size:17px;letter-spacing:.12em}
  .nav-links a::after{display:none}
}
