/* ══════════════════════════════════════
   SECTION: FULLBLEED BASE
══════════════════════════════════════ */
.fullbleed {
  position:relative;
  width:100%; min-height:100vh;
  overflow:hidden;
  display:flex; align-items:center;
}
.fb-photo {
  position:absolute; inset:0;
  background:center/cover no-repeat;
  will-change:transform;
  transform:translateZ(0);
}
.fb-ov {
  position:absolute; inset:0;
  background:linear-gradient(
    135deg,
    rgba(15,14,12,.65) 0%,
    rgba(15,14,12,.3) 50%,
    rgba(15,14,12,.6) 100%
  );
}

/* ══════════════════════════════════════
   HERO
══════════════════════════════════════ */
#hero {
  position:relative; width:100%; height:100vh; overflow:hidden;
}
#hero .fb-photo {
  background-image:url('../pics/hero-main.jpg');
  filter:brightness(.9) saturate(.92);
}
#hero .fb-ov {
  background:linear-gradient(
    to bottom,
    rgba(15,14,12,.2) 0%,
    rgba(15,14,12,.05) 40%,
    rgba(15,14,12,.5) 100%
  );
}
.hero-logo {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  z-index:10;
}
.hero-logo img {
  height:clamp(210px,32vh,400px);
  width:auto; object-fit:contain;
  filter:invert(1) drop-shadow(0 2px 24px rgba(0,0,0,.3));
}
.hero-foot {
  position:absolute; bottom:8%;
  left:50%; transform:translateX(-50%);
  text-align:center; z-index:11;
}
.hero-en {
  font-family:'Libre Baskerville',serif;
  font-style:italic; font-size:clamp(1.7rem,2.8vw,2.35rem);
  letter-spacing:.55em; color:rgba(255,255,255,.9);
  margin-bottom:.8rem;
}
.hero-tag {
  font-size:clamp(.82rem,1.35vw,1.15rem); letter-spacing:.42em;
  color:rgba(255,255,255,.62);
}
.scroll-hint {
  position:absolute; bottom:2.2rem; right:3rem;
  display:flex; flex-direction:column; align-items:center; gap:.6rem;
  z-index:12;
}
.scroll-hint span { font-size:.48rem; letter-spacing:.6em; color:rgba(184,151,90,.55); }
.scroll-bar {
  width:1px; height:48px;
  background:linear-gradient(to bottom,var(--gold),transparent);
}

/* ══════════════════════════════════════
   ICHIGO — 一期一會
══════════════════════════════════════ */
#ichigo {
  position:relative; width:100%; min-height:100vh;
  background:#ede4d0; overflow:hidden; display:block; /* 覆蓋原本的 flex */
}
#ichigo .bg {
  position:absolute; inset:0;
  background:url('../assets/金箔背景.png') right center/cover no-repeat;
  opacity:.28;
}
#ichigo .seigaiha {
  position:absolute; inset:0; pointer-events:none; opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='32'%3E%3Cellipse cx='28' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='0' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='56' cy='32' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='14' cy='16' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3Cellipse cx='42' cy='16' rx='28' ry='16' fill='none' stroke='%23704214' stroke-width='0.9'/%3E%3C/svg%3E");
}
#ichigo .kinpaku{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(ellipse 4px 2px at 7% 18%,rgba(184,148,60,.32) 0%,transparent 100%),
    radial-gradient(ellipse 3px 3px at 14% 64%,rgba(184,148,60,.24) 0%,transparent 100%),
    radial-gradient(ellipse 2px 4px at 22% 38%,rgba(184,148,60,.28) 0%,transparent 100%),
    radial-gradient(ellipse 5px 2px at 30% 82%,rgba(184,148,60,.2) 0%,transparent 100%),
    radial-gradient(ellipse 3px 3px at 5% 90%,rgba(184,148,60,.25) 0%,transparent 100%),
    radial-gradient(ellipse 2px 2px at 38% 12%,rgba(184,148,60,.18) 0%,transparent 100%),
    radial-gradient(ellipse 4px 2px at 10% 46%,rgba(184,148,60,.22) 0%,transparent 100%),
    radial-gradient(ellipse 3px 4px at 18% 97%,rgba(184,148,60,.15) 0%,transparent 100%);
}
#ichigo .halo{
  position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(
    ellipse 52% 82% at 20% 50%,
    rgba(237,228,208,.8) 0%,
    rgba(237,228,208,.55) 28%,
    rgba(237,228,208,.22) 55%,
    transparent 75%
  );
}
#ichigo .text-area{
  position:relative;z-index:2;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:5.5rem 6rem; min-height:100vh; width:min(1100px, calc(100% - 12rem)); gap:1.8rem;
  margin:0 auto;
  text-align:left;
  transform:translateY(40px);
}
#ichigo .col-title{
  writing-mode:horizontal-tb; text-orientation:mixed; font-family:'Zen Old Mincho',serif;
  font-weight:400; line-height:1.25; color:#1c1208; flex-shrink:0; word-break:keep-all;
  padding-top:0; font-size:36px; letter-spacing:.24em;
  text-align:left;
  transform:translateY(-24px);
}
#ichigo .vline{
  flex-shrink:0;width:1px; align-self:stretch;margin:3rem 2rem;
  background:linear-gradient(to bottom, transparent 5%, rgba(168,130,60,.45) 25%, rgba(168,130,60,.45) 75%, transparent 95%);
}
#ichigo .col-body{ display:block; flex-shrink:0; }
#ichigo .para{
  writing-mode:horizontal-tb; text-orientation:mixed; font-family:'Noto Serif TC','Noto Serif JP',serif;
  line-height:2.25; color:#3a2c18; font-weight:300; word-break:normal; overflow-wrap:normal;
  max-height:none; font-size:16px; letter-spacing:.08em; margin-bottom:1.2rem;
}
#ichigo .col-logo{
  display:flex;flex-direction:column; align-items:center;justify-content:center;
  padding-left:2.2rem; border-left:1px solid rgba(112,66,20,.2); margin-left:2rem; flex-shrink:0; min-height:55vh;
}
#ichigo .col-logo img{ display:block;width:auto;object-fit:contain; height: 164px; filter: none; transform:translate3d(-526px, 377px, 0); }
#ichigo .col-logo .en{
  writing-mode:vertical-rl; font-family:'Libre Baskerville',serif; font-style:italic;
  font-size:.66rem;letter-spacing:.22em; color:#7a5a2a;opacity:.65;margin-top:.9rem;
}

/* ══════════════════════════════════════
   ABOUT
══════════════════════════════════════ */
#about {
  min-height:100vh; position:relative;
  display:flex; align-items:stretch;
  overflow:hidden;
}
.about-photo-side {
  position:absolute; inset:0;
  background:url('../pics/DSC01687.jpg') center/cover no-repeat;
  filter:brightness(.78) saturate(.9);
  z-index:0;
  will-change:transform;
  transform:translateZ(0);
}
.about-text-side { display:none; }
.sec-label-sm {
  font-size:.52rem; letter-spacing:.7em; color:var(--gold);
  writing-mode:vertical-rl; display:block;
  border-right:1px solid rgba(184,151,90,.35);
  padding-right:1.2rem;
}
.about-h {
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:200; letter-spacing:.4em; line-height:1.4;
  color:#fff;
  font-family:'Zen Old Mincho',serif;
  writing-mode:vertical-rl;
  text-orientation:upright;
}
.about-h em { color:var(--gold); font-style:normal; }
.about-p {
  font-size:.9rem; line-height:2.1; letter-spacing:.2em;
  color:rgba(255,255,255,.65); font-weight:300;
  writing-mode:vertical-rl;
  text-orientation:upright;
  word-break:keep-all;
  overflow-wrap:normal;
}
.about-p em { font-style:normal; color:var(--gold); }

/* ══════════════════════════════════════
   SHOKUNIN
══════════════════════════════════════ */
#shokunin {
  background:#0f0e0c;
  position:relative;
}
.washi-layer {
  position:absolute; inset:0;
  z-index:2;
  pointer-events:none;
  background-image: url('https://www.transparenttextures.com/patterns/washi.png');
  opacity: 0.35;
}
.shokunin-person.mochizuki .washi-layer {
  -webkit-mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 45%);
  mask-image: linear-gradient(to left, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 45%);
}
.shokunin-person.doi .washi-layer {
  -webkit-mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 45%);
  mask-image: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 35%, rgba(0,0,0,0) 45%);
}

.shokunin-person {
  position:relative; min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden;
}
.shokunin-person.mochizuki .person-photo {
  position:absolute; inset:0;
  width:65%;
  background:url('../pics/2026_0126_月之雄1053.jpg') center top/cover no-repeat;
  filter:brightness(.88) saturate(.92);
  clip-path:polygon(0 0, 100% 0, 82% 100%, 0 100%);
  will-change:transform;
  transform:translateZ(0);
}
.shokunin-person.mochizuki .person-text {
  margin-left:auto;
  width:46%; padding:6rem 6rem 6rem 1rem;
  position:relative; z-index:3;
}
.shokunin-person.doi .person-photo {
  position:absolute; inset:0;
  left:auto; right:0;
  width:65%;
  background:url('../pics/chef-doi.jpg') center top/cover no-repeat;
  filter:brightness(.88) saturate(.92);
  clip-path:polygon(18% 0, 100% 0, 100% 100%, 0% 100%);
  will-change:transform;
  transform:translateZ(0);
}
.shokunin-person.doi .person-text {
  width:46%; padding:6rem 2rem 6rem 6rem;
  position:relative; z-index:3;
}
.shokunin-person.mochizuki::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to left, rgba(15,14,12,.95) 35%, rgba(15,14,12,.5) 52%, rgba(15,14,12,.1) 68%, transparent 80%);
}
.shokunin-person.doi::before {
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(to right, rgba(15,14,12,.95) 35%, rgba(15,14,12,.5) 52%, rgba(15,14,12,.1) 68%, transparent 80%);
}
.person-text { position:relative; z-index:3; }
.person-role { font-size:.72rem; letter-spacing:.18em; color:var(--gold); margin-bottom:1.2rem; line-height:2; }
.person-name {
  font-size:clamp(2.5rem,4.5vw,4rem);
  font-weight:200; letter-spacing:.45em; color:#fff;
  font-family:'Zen Old Mincho',serif;
  margin-bottom:.6rem; line-height:1.2;
}
.person-name-en { font-size:.6rem; letter-spacing:.4em; color:rgba(255,255,255,.35); margin-bottom:2rem; display:block; }
.person-divider { width:40px; height:1px; background:var(--gold); opacity:.5; margin-bottom:2rem; }
.person-bio {
  font-size:.95rem; line-height:2.45; letter-spacing:.07em;
  color:rgba(255,255,255,.55); font-weight:300;
  max-width:360px;
}
/* ══════════════════════════════════════
   PHILOSOPHY
══════════════════════════════════════ */
#philosophy { background:#0f0e0c; }
.ph-header {
  text-align:center; padding:6rem 2rem 4rem;
  position:relative; z-index:1;
}
.ph-header-label {
  font-size:.52rem; letter-spacing:1em; color:var(--gold);
  margin-bottom:1rem; display:block;
}
.ph-header-title {
  font-size:clamp(1.4rem,2.5vw,2rem);
  font-weight:200; letter-spacing:.8em; color:#fff;
  font-family:'Zen Old Mincho',serif;
}
.ph-panel {
  position:relative; min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden;
}
.ph-bg {
  position:absolute; inset:0;
  background:center/cover no-repeat;
  filter:brightness(.75) saturate(1.05);
  will-change:transform;
  transform:translateZ(0);
}
.ph-panel-ov {
  position:absolute; inset:0;
  background:rgba(10,9,8,.15);
}
.ph-content {
  position:relative; z-index:2;
  width:100%; padding:0 6rem;
  display:flex; flex-direction:column;
}
.ph-panel:nth-child(2) .ph-content { align-items:flex-start; }
.ph-panel:nth-child(3) .ph-content { align-items:center; text-align:center; }
.ph-panel:nth-child(4) .ph-content { align-items:flex-end; text-align:right; }

.ph-num { font-size:.5rem; letter-spacing:.8em; color:var(--gold); margin-bottom:1.5rem; opacity:.7; }
.ph-ttl {
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:200; letter-spacing:.65em; color:#fff;
  font-family:'Zen Old Mincho',serif; margin-bottom:.6rem;
  line-height:1.3;
}
.ph-furi {
  display:block; font-size:.3em; letter-spacing:.2em;
  color:var(--gold); margin-bottom:.5rem;
  font-family:'Noto Serif JP',serif; font-weight:300;
}
.ph-sub { font-size:.5rem; letter-spacing:.7em; color:rgba(184,151,90,.7); margin-bottom:2rem; }
.ph-body {
  font-size:.92rem; line-height:3.1; color:rgba(255,255,255,.62);
  letter-spacing:.14em; font-weight:300; max-width:440px;
  margin-bottom:3rem;
}
.ph-thumbs {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:.6rem; width:clamp(260px,32vw,480px);
}
.ph-panel:nth-child(4) .ph-thumbs { margin-left:auto; }
.ph-thumb {
  aspect-ratio:1/1;
  background:center/cover no-repeat;
  filter:brightness(.85) saturate(.85);
  will-change:transform;
  transform:translateZ(0);
}

/* Panel Backgrounds */
.ph-panel.p1 .ph-bg  { background-image:url('../pics/2026_0126_月之雄2317.jpg'); }
.ph-panel.p1 .ph-thumb:nth-child(1) { background-image:url('../pics/2026_0126_月之雄2327.jpg'); }
.ph-panel.p1 .ph-thumb:nth-child(2) { background-image:url('../pics/2026_0126_月之雄2323.jpg'); }
.ph-panel.p1 .ph-thumb:nth-child(3) { background-image:url('../pics/2026_0126_月之雄2325.jpg'); }

.ph-panel.p2 .ph-bg  { background-image:url('../pics/dashi-main.jpg'); }
.ph-panel.p2 .ph-panel-ov {
  background:
    linear-gradient(90deg, rgba(10,9,8,.12) 0%, rgba(10,9,8,.32) 52%, rgba(10,9,8,.52) 100%),
    radial-gradient(circle at 74% 50%, rgba(0,0,0,.34) 0%, rgba(0,0,0,.18) 32%, transparent 62%);
}

/* p2 特殊版型：左圖右文（橫式） */
.ph-panel.p2 .ph-content {
  flex-direction:row; align-items:center;
  justify-content:flex-start;
  text-align:start; padding:0 4rem; gap:5vw;
}
.p2-photo { flex:0 0 42%; max-width:520px; }
.p2-photo img {
  width:100%; height:66vh; object-fit:cover; display:block;
  box-shadow:0 8px 48px rgba(0,0,0,.65);
}
.p2-text {
  flex:1; display:flex; flex-direction:column;
  justify-content:center; align-items:flex-start;
  gap:1.4rem; max-width:560px; max-height:none; overflow:visible;
  text-shadow:0 2px 16px rgba(0,0,0,.62);
}
.p2-title-wrap, .p2-body-wrap {
  writing-mode:horizontal-tb; text-orientation:mixed;
}
.p2-title-wrap { order:1; }
.p2-body-wrap { order:2; }
.p2-title-wrap .ph-num {
  font-size:.5rem; letter-spacing:.35em;
  color:var(--gold); opacity:.7;
  display:block; margin-bottom:.9rem;
}
.p2-title-wrap .ph-ttl {
  font-size:32px;
  font-weight:200; letter-spacing:.28em;
  color:#fff; font-family:'Zen Old Mincho',serif; line-height:1.3;
}
.p2-title-wrap .ph-furi {
  display:block; font-size:.3em; letter-spacing:.2em;
  color:var(--gold); margin-bottom:.5rem;
  font-family:'Noto Serif JP',serif; font-weight:300;
}
.p2-body-wrap .ph-sub {
  font-size:.48rem; letter-spacing:.24em;
  color:rgba(184,151,90,.7); display:block; margin-bottom:1.2rem;
}
.p2-body-wrap .ph-body {
  font-size:.9rem; line-height:2.25;
  color:rgba(255,255,255,.6);
  letter-spacing:.08em; font-weight:300;
}
.p2-body-wrap .ph-body.ph-body-large { font-size:16px; }

.ph-panel.p3 .ph-bg  { background-image:url('../pics/2026_0126_月之雄5448.jpg'); }

/* p3 特殊版型：左圖 + 跨界料理圖 + 右側橫式文字 */
.ph-panel.p3 {
  flex-direction:row; align-items:stretch; min-height:100vh;
  background:#0a0807;
}
.p3-left {
  position:relative; flex:0 0 50%;
  display:flex; align-items:center; overflow:hidden;
  z-index:1;
}
.p3-left-photo {
  position:absolute; inset:0;
  background:url('../pics/IMG_2855.jpg') no-repeat;
  background-size:cover;
  background-position:center 44%;
  /* zoom into glass-window interior — chef + flame stay; wooden beam
     above and cup shelf below crop out */
  transform:scale(1.12); transform-origin:center center;
  filter:brightness(.65) saturate(1.1);
}
.p3-left-ov {
  position:absolute; inset:0;
  background:linear-gradient(
    to right,
    rgba(90,45,8,.5),
    rgba(90,45,8,.36) 58%,
    rgba(10,8,7,.72) 100%
  );
}
.p3-left-content {
  position:relative; z-index:2;
  display:flex; flex-direction:row;
  align-items:center; justify-content:flex-end;
  gap:0; padding:0 3.5rem;
  height:72vh; width:100%;
}
.p3-body-col {
  writing-mode:vertical-rl; text-orientation:mixed;
  flex:1; display:flex; flex-direction:column; gap:1.5rem;
}
.p3-body-col .ph-num {
  font-size:.5rem; letter-spacing:.8em; color:var(--gold); opacity:.7;
}
.p3-body-col .ph-sub {
  font-size:.48rem; letter-spacing:.7em; color:rgba(184,151,90,.7);
}
.p3-body-col .ph-body {
  font-size:.9rem; line-height:2.5; letter-spacing:.12em;
  color:rgba(255,255,255,.62); font-weight:300;
}
.p3-divider {
  width:1px; height:55%; align-self:center; flex-shrink:0;
  background:rgba(184,151,90,.28); margin:0 2rem;
}
.p3-title-col {
  writing-mode:vertical-rl; text-orientation:mixed;
  display:flex; flex-direction:column; align-items:center;
  flex-shrink:0;
}
.p3-title-col .ph-ttl {
  font-size:clamp(2.2rem,4.2vw,3.6rem);
  font-weight:200; letter-spacing:.65em; color:#fff;
  font-family:'Zen Old Mincho',serif; line-height:1.3;
}
.p3-title-col .ph-furi {
  display:block; font-size:.3em; letter-spacing:.2em;
  color:var(--gold); margin-bottom:.5rem;
  font-family:'Noto Serif JP',serif; font-weight:300;
}
/* RIGHT side: deep sumi radial + white 菱 (hishi) gold-line pattern + floating dish */
.p3-right {
  flex:1; position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  gap:2rem; padding:6rem 5vw;
  background:
    radial-gradient(ellipse 80% 70% at 22% 58%, rgba(35,25,15,.82), rgba(10,8,7,.72) 48%, transparent 72%),
    radial-gradient(ellipse at 72% 32%, #15110e 0%, #090807 68%, #07060a 100%);
  z-index:1;
}
.p3-pattern {
  position:absolute; inset:0; pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='0.7'%3E%3Cpolygon points='24,2 46,24 24,46 2,24'/%3E%3Cpolygon points='24,12 36,24 24,36 12,24'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:54px 54px;
  opacity:.34;
  -webkit-mask-image:
    linear-gradient(to right, rgba(0,0,0,.55), rgba(0,0,0,1) 34%),
    radial-gradient(ellipse 48% 46% at 20% 62%, transparent 0%, rgba(0,0,0,.25) 48%, rgba(0,0,0,1) 82%);
          mask-image:
    linear-gradient(to right, rgba(0,0,0,.55), rgba(0,0,0,1) 34%),
    radial-gradient(ellipse 48% 46% at 20% 62%, transparent 0%, rgba(0,0,0,.25) 48%, rgba(0,0,0,1) 82%);
}
.p3-right-photo {
  position:relative;
  width:min(100%, 300px);
  aspect-ratio:4/3;
  background:url('../pics/IMG_2762.jpg') center/cover no-repeat;
  box-shadow:none;
  z-index:4;
}
.p3-copy {
  position:relative;
  z-index:5;
  width:min(100%, 500px);
  height:auto;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}
.p3-copy p {
  writing-mode:horizontal-tb;
  text-orientation:mixed;
  max-width:100%;
  max-height:none;
  margin:0;
  font-size:16px;
  line-height:2.25;
  letter-spacing:.08em;
  color:rgba(255,255,255,.72);
  font-weight:300;
  text-shadow:0 2px 20px rgba(0,0,0,.86);
}
.p3-copy p::before {
  content:"";
  display:block;
  width:48px;
  height:1px;
  margin:0 0 1.3rem;
  background:rgba(184,151,90,.55);
}

/* ══════════════════════════════════════
   SPACE
══════════════════════════════════════ */
#space {
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:flex-end; overflow:hidden;
}
#space .fb-photo {
  background-image:url('../pics/DSC01770.jpg');
  filter:brightness(.72) saturate(.8);
}
#space .fb-ov {
  background:linear-gradient(to top, rgba(15,14,12,.75) 0%, rgba(15,14,12,.2) 45%, transparent 65% );
}
.space-content {
  position:relative; z-index:2;
  width:100%; padding:5rem 6rem;
  display:flex; justify-content:space-between; align-items:flex-end;
}
.space-label-sm { font-size:.52rem; letter-spacing:.9em; color:var(--gold); margin-bottom:1.2rem; display:block; }
.space-h {
  font-size:clamp(1.6rem,3.2vw,2.8rem);
  font-weight:200; letter-spacing:.55em; color:#fff;
  font-family:'Zen Old Mincho',serif; line-height:2;
}
.space-stats { display:flex; gap:3.5rem; }
.stat-n {
  font-size:1.8rem; font-weight:200; color:var(--gold);
  letter-spacing:.15em; line-height:1; margin-bottom:.4rem;
  font-family:'Zen Old Mincho',serif;
}
.stat-l { font-size:.52rem; letter-spacing:.5em; color:rgba(255,255,255,.45); }

/* ══════════════════════════════════════
   CONTACT
══════════════════════════════════════ */
#contact {
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:center; overflow:hidden;
  background:var(--sumi);
}
#contact .fb-photo {
  background-image:url('../pics/DSC01743.jpg');
  filter:brightness(.2) saturate(.4);
}
#contact .fb-ov { background:rgba(15,14,12,.6); }
.contact-inner {
  position:relative; z-index:2;
  width:100%; max-width:1100px; margin:0 auto;
  padding:0 6rem;
  display:grid; grid-template-columns:1fr 340px; gap:8rem; align-items:center;
}
.contact-ttl-vert {
  writing-mode:horizontal-tb;
  text-orientation:mixed;
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:200; letter-spacing:.28em;
  color:#fff; font-family:'Zen Old Mincho',serif;
  margin-bottom:3rem;
}
.contact-sub {
  font-size:.9rem; letter-spacing:.16em; line-height:2.55;
  color:rgba(255,255,255,.55); font-weight:300; margin-bottom:3rem;
}
.c-row {
  display:flex; align-items:baseline; gap:2rem;
  padding:1.2rem 0; border-bottom:1px solid rgba(255,255,255,.08);
}
.c-row:first-child { border-top:1px solid rgba(255,255,255,.08); }
.c-key { font-size:.5rem; letter-spacing:.7em; color:var(--gold); width:72px; flex-shrink:0; }
.c-val { font-size:.9rem; letter-spacing:.14em; color:rgba(255,255,255,.8); line-height:2; font-weight:300; }
.c-val a { color:inherit; text-decoration:none; transition:color .25s; }
.c-val a:hover { color:var(--gold); }

.btn-circle {
  width:160px; height:160px; border-radius:50%;
  border:1.5px solid rgba(184,151,90,.6);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-decoration:none; color:#fff;
  position:relative; overflow:hidden;
  transition:color var(--t);
}
.btn-circle::before {
  content:''; position:absolute; inset:0; border-radius:50%;
  background:var(--gold); transform:scale(0);
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.btn-circle:hover::before { transform:scale(1); }
.btn-circle span { position:relative; z-index:1; }
.btn-circle .bcj { font-size:1.55rem; letter-spacing:.28em; padding-left:.28em; font-family:'Zen Old Mincho',serif; }
.btn-circle .bce { font-size:.5rem; letter-spacing:.5em; opacity:.7; }
.contact-note { font-size:.72rem; letter-spacing:.16em; color:rgba(255,255,255,.4); text-align:center; line-height:2.4; }


/* ══════════════════════════════════════
   ANIMATIONS (contact btn only)
══════════════════════════════════════ */

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media(max-width:900px){
  #ichigo .text-area { transform: translate(20px, 50px); padding: 3rem 1rem; }
  #about { flex-direction:column; }
  .about-text-side { width:100%; padding:5rem 2rem; position: relative; left: 0; transform: none; }
  .about-photo-side { display:none; }
  .shokunin-person.mochizuki .person-text, .shokunin-person.doi .person-text { width:100%; padding:4rem 2rem; }
  .shokunin-person.mochizuki .person-photo, .shokunin-person.doi .person-photo { clip-path:none; width:100%; filter:brightness(.4); }
  .washi-layer { -webkit-mask-image: none !important; mask-image: none !important; opacity: 0.15; }
  .ph-panel { min-height:80vh; }
  .ph-content { padding:0 2rem; }
  .space-content { flex-direction:column; align-items:flex-start; gap:2rem; padding:3rem 2rem; }
  .contact-inner { grid-template-columns:1fr; gap:3rem; padding:0 2rem; }
  .contact-ttl-vert { writing-mode:horizontal-tb; }
}


/* FAST PERFORMANCE OVERRIDES
   Experimental copy: reduce paint/compositing cost without changing core content. */
html { scroll-behavior:auto !important; }
nav.scrolled,
.map-overlay,
.carousel-btn,
.info-table,
#menu-b.seasonal-hero-stack .mb-course-card {
  backdrop-filter:none !important;
}
.fb-photo,
.about-photo-side,
.person-photo,
.ph-bg,
.ph-thumb,
.p3-left-photo,
.p3-right-photo,
#hero .hero-bg,
.fpc-photo,
.g-img,
.carousel-slide,
.mb-hero-img,
.db-card img,
.sake-visual img,
.info-deco img,
.map-wrap iframe {
  filter:none !important;
  will-change:auto !important;
}
.map-wrap:hover iframe { filter:none !important; }
.washi-layer {
  display:block !important;
  opacity:.16 !important;
  background-size:260px 260px !important;
  mix-blend-mode:screen;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.shokunin-person.mochizuki .washi-layer {
  left:42% !important;
  background:
    linear-gradient(to left, rgba(255,255,255,.18), rgba(255,255,255,.08) 55%, transparent),
    url('https://www.transparenttextures.com/patterns/washi.png') repeat !important;
}
.shokunin-person.doi .washi-layer {
  right:42% !important;
  background:
    linear-gradient(to right, rgba(255,255,255,.18), rgba(255,255,255,.08) 55%, transparent),
    url('https://www.transparenttextures.com/patterns/washi.png') repeat !important;
}
.p3-pattern {
  display:block !important;
  opacity:.22 !important;
  mix-blend-mode:screen;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.p3-pattern::after {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse 55% 52% at 38% 58%, rgba(10,8,7,.85) 0%, rgba(10,8,7,.45) 42%, transparent 78%);
}
.shokunin-person.mochizuki .person-photo,
.shokunin-person.doi .person-photo { clip-path:none !important; }
*, *::before, *::after {
  transition-duration:.18s !important;
  animation-duration:.18s !important;
}

/* MOBILE RWD OVERRIDES
   Keep the desktop art direction intact; only reshape the large-photo layout below tablet widths. */
@media(max-width:900px){
  html { font-size:15px; }
  body { min-width:0; }
  .fullbleed,
  #hero,
  #ichigo,
  #about,
  .shokunin-person,
  .ph-panel,
  .ph-panel.p3,
  #space,
  #contact {
    min-height:100svh;
  }
  #hero { height:100svh; }
  #hero .fb-photo { background-position:50% center; }
  .hero-logo img { height:min(42svh, 240px); max-width:70vw; }
  .hero-foot {
    left:50%; right:auto; bottom:7.5rem;
    width:min(86vw, 420px);
  }
  .hero-en { font-size:1.65rem; letter-spacing:.26em; padding-left:.26em; }
  .hero-tag { font-size:.76rem; letter-spacing:.2em; line-height:2; }
  .scroll-hint { right:1.2rem; bottom:1.4rem; }

  #ichigo { min-height:auto; padding:5.2rem 0 4.5rem; }
  #ichigo .bg { background-position:center; opacity:.2; }
  #ichigo .halo { background:linear-gradient(to right, rgba(237,228,208,.9), rgba(237,228,208,.58)); }
  #ichigo .text-area {
    width:100%; min-height:0; margin:0; padding:0 1.4rem;
    display:block; transform:none !important;
  }
  #ichigo .col-title,
  #ichigo .para,
  #ichigo .col-logo .en {
    writing-mode:horizontal-tb;
    text-orientation:mixed;
    word-break:normal;
  }
  #ichigo .col-title {
    font-size:2rem; letter-spacing:.2em; line-height:1.7;
    padding:0; margin-bottom:1.8rem;
    transform:none !important;
  }
  #ichigo .col-body { display:block; transform:none !important; }
  #ichigo .para {
    max-height:none; font-size:1rem; line-height:2.15; letter-spacing:.06em;
    margin-bottom:1.2rem;
  }
  #ichigo .vline { width:42px; height:1px; margin:2rem 0; }
  #ichigo .col-logo {
    min-height:0; margin:2rem 0 0; padding:1.8rem 0 0;
    border-left:0; border-top:1px solid rgba(112,66,20,.18);
    align-items:flex-start;
  }
  #ichigo .col-logo img { height:92px; transform:none !important; }

  #about { display:block; min-height:78svh; }
  .about-photo-side {
    display:block; inset:0; background-position:50% center;
  }

  .shokunin-person { display:flex; align-items:flex-end; padding-top:34svh; }
  .shokunin-person.mochizuki .person-photo,
  .shokunin-person.doi .person-photo {
    display:block; width:100%; height:100%; background-position:center top;
    opacity:1;
  }
  .shokunin-person.mochizuki .washi-layer,
  .shokunin-person.doi .washi-layer {
    opacity:.06 !important;
  }
  .shokunin-person.mochizuki::before,
  .shokunin-person.doi::before {
    background:linear-gradient(to bottom, transparent 0%, rgba(15,14,12,.08) 46%, rgba(15,14,12,.72) 76%, rgba(15,14,12,.94) 100%);
  }
  .shokunin-person.mochizuki .person-text,
  .shokunin-person.doi .person-text {
    width:100%; padding:0 1.5rem 4.2rem; transform:none !important;
  }
  .person-role { font-size:.68rem; letter-spacing:.12em; line-height:1.9; }
  .person-name { font-size:2.25rem; letter-spacing:.22em; }
  .person-bio { max-width:none; font-size:.96rem; line-height:2.05; color:rgba(255,255,255,.72); }

  .ph-header { padding:5rem 1.4rem 2.5rem; }
  .ph-header-label,
  .ph-header-title { letter-spacing:.32em; padding-left:.32em; }
  .ph-content,
  .ph-panel.p2 .ph-content {
    padding:4.5rem 1.4rem;
    transform:none !important;
    align-items:flex-start !important;
    text-align:left !important;
  }
  .ph-ttl { font-size:2.15rem; letter-spacing:.22em; }
  .ph-sub { letter-spacing:.28em; line-height:1.8; }
  .ph-body { max-width:none; font-size:.96rem; line-height:2.18; letter-spacing:.07em; margin-bottom:2rem; }
  .ph-thumbs { width:100%; gap:.45rem; }
  .ph-panel.p2 .ph-content { flex-direction:column; gap:2rem; }
  .p2-photo { width:100%; max-width:none; flex:auto; }
  .p2-photo img { height:auto; aspect-ratio:4/3; object-fit:cover; }
  .p2-text {
    display:block; max-height:none; overflow:visible; width:100%;
  }
  .p2-title-wrap,
  .p2-body-wrap,
  .p3-body-col,
  .p3-title-col {
    writing-mode:horizontal-tb;
    text-orientation:mixed;
  }
  .p2-title-wrap { margin-bottom:1.5rem; }
  .p2-body-wrap .ph-body,
  .p3-body-col .ph-body { font-size:.96rem !important; line-height:2.18; }
  .ph-panel.p3 {
    display:block;
    min-height:auto;
    overflow:hidden;
    background:#090807;
  }
  .p3-left {
    min-height:58svh;
    padding:0;
    display:block;
    overflow:hidden;
  }
  .p3-left-photo {
    background-position:30% 58%;
    transform:scale(1.5);
    filter:brightness(.58) saturate(1.08) blur(1px);
  }
  .p3-left-ov {
    background:
      radial-gradient(ellipse 76% 54% at 28% 45%, rgba(154,78,16,.18), transparent 72%),
      linear-gradient(to bottom, rgba(10,8,7,.72) 0%, rgba(10,8,7,.24) 16%, rgba(10,8,7,.46) 50%, rgba(10,8,7,1) 88%, rgba(10,8,7,1) 100%),
      linear-gradient(to right, rgba(95,48,12,.52), rgba(8,7,6,.48));
  }
  .p3-left-content { display:none; }
  .p3-divider { width:42px; height:1px; margin:1.5rem 0; }
  .p3-right {
    min-height:auto;
    margin-top:-7.5rem;
    padding:10.5rem 0 4.8rem;
    overflow:visible;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.6rem;
    background:
      linear-gradient(to bottom, rgba(9,8,7,0) 0%, rgba(9,8,7,.92) 9rem, rgba(9,8,7,1) 15rem),
      radial-gradient(ellipse 92% 48% at 50% 0%, rgba(96,55,20,.26), transparent 68%),
      radial-gradient(ellipse at 50% 42%, #15110e 0%, #090807 72%, #07060a 100%);
  }
  .p3-pattern {
    opacity:.28;
    -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,1) 18%, rgba(0,0,0,1));
            mask-image:linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,1) 18%, rgba(0,0,0,1));
  }
  .p3-right-photo {
    position:relative;
    left:auto;
    right:auto;
    bottom:auto;
    top:auto;
    width:min(86vw, 520px);
    height:auto;
    aspect-ratio:4/3;
    transform:none;
    z-index:6;
    box-shadow:
      0 0 0 1px rgba(184,151,90,.1),
      0 14px 32px rgba(0,0,0,.24);
    filter:brightness(.86) saturate(.82) contrast(.95);
  }
  .p3-copy {
    position:relative;
    right:auto;
    top:auto;
    transform:none;
    width:100%;
    max-width:none;
    height:auto;
    padding:0 1.45rem;
  }
  .p3-copy p {
    writing-mode:horizontal-tb;
    max-height:none;
    font-size:.92rem;
    line-height:2.18;
    letter-spacing:.08em;
    color:rgba(255,255,255,.76);
  }
  .p3-copy p::before {
    display:block;
    width:42px;
    height:1px;
    margin:0 0 1.2rem;
  }

  .space-content { padding:4.5rem 1.4rem; }
  .space-h { font-size:1.8rem; letter-spacing:.2em; line-height:1.8; }
  .space-stats { width:100%; gap:0; justify-content:space-between; }
  .stat-l { letter-spacing:.22em; }

  .contact-inner { padding:5rem 1.4rem; gap:2.5rem; }
  .contact-sub { line-height:2.2; margin-bottom:2rem; }
  .c-row { display:block; padding:1rem 0; }
  .c-key { display:block; width:auto; margin-bottom:.35rem; }
  .c-val { display:block; font-size:.95rem; letter-spacing:.08em; }
  .btn-circle { width:138px; height:138px; }
}

body[data-lang="en"] .hero-en,
body[data-lang="en"] .hero-tag,
body[data-lang="en"] #ichigo .col-title,
body[data-lang="en"] .about-h,
body[data-lang="en"] .person-name,
body[data-lang="en"] .ph-header-title,
body[data-lang="en"] .ph-ttl,
body[data-lang="en"] .space-h,
body[data-lang="en"] .contact-ttl-vert,
body[data-lang="en"] .btn-circle .bcj {
  letter-spacing: .08em;
  padding-left: 0;
}

body[data-lang="en"] .sec-label-sm,
body[data-lang="en"] .person-role,
body[data-lang="en"] .person-name-en,
body[data-lang="en"] .ph-num,
body[data-lang="en"] .ph-sub,
body[data-lang="en"] .space-label-sm,
body[data-lang="en"] .stat-l,
body[data-lang="en"] .c-key,
body[data-lang="en"] .btn-circle .bce {
  letter-spacing: .12em;
}

@media(max-width:560px){
  .hero-en { font-size:1.55rem; }
  .hero-tag { font-size:.74rem; }
  .person-name { font-size:2rem; }
  .ph-ttl { font-size:1.85rem; }
  .space-stats { flex-direction:column; gap:1.4rem; }
}
