* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
html,
body {
  margin: 0;
  min-height: 100%;
  overflow-x: hidden;
}

body {
  color: #f7f4ee;
  font-family: "Cinzel", serif;

  background:
    radial-gradient(
      ellipse at 20% 40%,
      rgba(255,255,255,.06),
      transparent 28%
    ),
    linear-gradient(
      120deg,
      #050505 0%,
      #111 48%,
      #050505 100%
    );

  background-attachment: fixed;
}

/* Opening sequence */
body.opening-active{overflow:hidden}.opening-sequence{position:fixed;z-index:20000;inset:0;overflow:hidden;background:#08090a;opacity:1;pointer-events:auto;transition:opacity .48s cubic-bezier(.4,0,.2,1)}.opening-sequence.is-ending{opacity:0;pointer-events:none}.opening-fog{position:absolute;inset:0;width:100%;height:100%;will-change:opacity}.opening-light{position:absolute;left:18%;top:-24%;width:64%;height:90%;opacity:0;pointer-events:none;background:linear-gradient(180deg,rgba(231,232,226,.11),rgba(201,204,198,.035) 42%,transparent 82%);clip-path:polygon(36% 0,64% 0,90% 100%,10% 100%);filter:blur(42px);mix-blend-mode:screen;will-change:opacity,transform}.opening-active .menu-trigger,.opening-active .page-rail,.opening-active .fixed-copy{opacity:0!important}.opening-active .hero-logo,.opening-active .hero-title .word,.opening-active .hero-copy{opacity:0}.opening-active .hero-brand{transform:scale(.64);will-change:filter,opacity,transform}.opening-ready .hero{filter:contrast(1.06)}
@media(max-width:768px){.opening-light{left:5%;width:90%;filter:blur(28px)}}
@media(prefers-reduced-motion:reduce){.opening-sequence{display:none}.opening-active .hero-logo,.opening-active .hero-title .word,.opening-active .hero-copy{opacity:1}}

/* 各セクションは背景を持たせない */
.hero,
.mission-section,
.dummy-section,
#service,
#work,
#contact {
  background: transparent;
}

/* メニュー固定 */
.fixed-nav {
  position: fixed;
  top: 34px;
  left: 0;
  width: 100%;
  padding: 0 56px;

  display: flex;
  justify-content: space-between;

  z-index: 9999;
  pointer-events: auto;
}

.fixed-nav a {
  color: #f7f4ee;
  text-decoration: none;

  font-family: "Cinzel", serif;
  font-size: 17px;
  letter-spacing: .16em;

  text-shadow: 0 0 16px rgba(255,255,255,.25);
  opacity: .95;

  transition: opacity .3s ease;
}

.fixed-nav a:hover {
  opacity: .45;
}

/* 左下固定 */
.fixed-name {
  position: fixed;
  left: 56px;
  bottom: 92px;
  z-index: 9999;

  padding-left: 22px;
  border-left: 1px solid rgba(247,244,238,.55);

  font-family: "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: .2em;

  color: rgba(247,244,238,.78);
}

.fixed-copy {
  position: fixed;
  left: 56px;
  bottom: 34px;
  z-index: 9999;

  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  color: rgba(247,244,238,.6);
}
/* HERO */
.hero {
  position: relative;
  height: 100vh;
  overflow: hidden;

  display: flex;
  align-items: center;
  justify-content: center;
}



.hero-brand {
  position: relative;
  z-index: 5;
  text-align: center;
}

.hero-logo {
  width: 95px;
  margin-bottom: 24px;
  filter:
    brightness(0) invert(1)
    drop-shadow(0 0 18px rgba(255,255,255,.3));
}

.hero-title {
  display: flex;
  justify-content: center;
  gap: .42em;

  font-size: clamp(40px, 4.4vw, 84px);
  font-weight: 400;
  letter-spacing: .08em;

  color: #f7f4ee;
  text-shadow:
    0 0 10px rgba(255,255,255,.28),
    0 0 30px rgba(255,255,255,.12);
}


.hero-title span {
  display: inline-block;
}

.hero-copy {
  margin-top: 52px;
  font-size: 16px;
  line-height: 2.2;
  letter-spacing: .52em;
  color: rgba(247,244,238,.62);
}
.hero-title{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:1em;
}

.hero-title .word{
  display:flex;
  gap:.42em;
}
@media (max-width:768px){

.hero-title{

    flex-direction:column;
    gap:.35em;

}

.hero-title .word{

    justify-content:center;

}

}

/* MISSION */
.mission-section {
  position: relative;
  min-height: 100vh;
  padding: 92px 6% 96px;
  overflow: hidden;
}

.mission-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 40px;
  align-items: center;

  font-size: 18px;
  letter-spacing: .08em;
  color: rgba(247,244,238,.82);
}

.mission-head span {
  height: 1px;
  background: rgba(247,244,238,.25);
}

.mission-content{
    max-width: 1500px;
    margin: 140px auto 0;
    padding: 0 60px;   /* ←追加 */

    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:6vw;
    align-items:center;
}

.mission-label {
  font-size: 12px;
  letter-spacing: .28em;
  color: rgba(247,244,238,.45);
  margin-bottom: 28px;
}

.mission-text h2{

    font-family:"Noto Serif JP", serif;

    font-size:clamp(34px,3vw,54px);

    line-height:1.65;

    font-weight:400;

    letter-spacing:.08em;

    margin-bottom:54px;

}

.mission-copy {
  font-family: "Noto Serif JP", serif;
  max-width: 580px;
  font-size: 15px;
  line-height: 2.35;
  letter-spacing: .08em;
  color: rgba(247,244,238,.7);
  margin-top: 22px;
}

.mission-visual{
    position: relative;
    height: 580px;
    overflow: hidden;
    border-radius: 4px;
}

.mission-visual img{
    width:100%;
    height:100%;
    object-fit:cover;

    filter:
        grayscale(.15)
        brightness(.72)
        contrast(1.08);
}

.mission-visual::after {
  content: "";
  position: absolute;
  inset: 0;

  background:
    linear-gradient(to bottom, rgba(0,0,0,.05), rgba(0,0,0,.5)),
    linear-gradient(to right, rgba(0,0,0,.45), transparent 42%);
}


.mission-number {
  position: absolute;
  right: 6%;
  bottom: 46px;
  font-size: 13px;
  color: rgba(247,244,238,.5);
}
@media (max-width:768px){

  .mission-section{
    min-height:auto;
    padding:100px 24px 120px;
  }

  .mission-head{
    grid-template-columns:auto 1fr auto;
    gap:18px;
    font-size:13px;
  }

  .mission-content{
    display:flex;
    flex-direction:column;
    gap:56px;

    margin-top:70px;
    padding:0;
  }

  .mission-text{
    max-width:none;
    margin:0;
  }

  .mission-text h2{
    font-size:34px;
    line-height:1.6;
    letter-spacing:.08em;
    margin-bottom:38px;
  }

  .mission-copy{
    font-size:13px;
    line-height:2.2;
    letter-spacing:.08em;
  }

  .mission-visual{
    width:100%;
    height:360px;
    min-height:auto;
  }

  .mission-visual img{
    width:100%;
    height:100%;
    object-fit:cover;
  }

}
/* 仮セクション */
.dummy-section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dummy-section h2 {
  font-size: 8vw;
  letter-spacing: .12em;
  color: rgba(247,244,238,.12);
}

/* SP */
@media (max-width: 768px) {
  .fixed-nav {
    padding: 0 20px;
    top: 20px;
  }

  .fixed-nav a {
    font-size: 11px;
    letter-spacing: .1em;
  }

  .fixed-name {
    left: 24px;
    bottom: 74px;
    font-size: 12px;
  }

  .fixed-copy {
    left: 24px;
    bottom: 28px;
    font-size: 11px;
  }

  .hero::before {
    width: 145vw;
    height: 145vw;
    left: -92vw;
    top: 4vh;
  }

  .hero::after {
    width: 60vw;
    right: -4vw;
  }

  .hero-title {
    flex-wrap: wrap;
    max-width: 82vw;
    margin: 0 auto;
    font-size: 34px;
    line-height: 1.4;
  }

  .hero-logo {
    width: 54px;
  }

  .hero-copy {
    margin-top: 36px;
    font-size: 11px;
    letter-spacing: .32em;
  }

  .mission-section {
    padding: 90px 20px;
  }

  .mission-head {
    gap: 18px;
    font-size: 13px;
  }

  .mission-content {
    grid-template-columns: 1fr;
    gap: 42px;
    margin-top: 70px;
  }

  .mission-text h2 {
    font-size: 32px;
  }

  .mission-copy {
    font-size: 13px;
    line-height: 2.1;
  }

  .mission-visual {
    height: 360px;
    min-height: auto;
  }
}

.values-section{
  position:relative;
  min-height:120vh;
  padding:180px 7% 200px;
  color:#f7f4ee;
  overflow:hidden;
}



.values-head{
  max-width:920px;
  margin:0 auto 100px;
  text-align:center;
  position:relative;
  z-index:2;
}

.values-head h2{
  font-family:"Cinzel", serif;
  font-size:clamp(48px,6vw,96px);
  font-weight:400;
  letter-spacing:.12em;
  
}

.values-lead{
  margin-top:38px;
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  line-height:2.4;
  letter-spacing:.14em;
  color:rgba(247,244,238,.68);
}

.values-grid{
  position:relative;
  z-index:2;
  max-width:1320px;
  margin:0 auto;

  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;

}

.value-card{
  position:relative;
  min-height:520px;
  padding:70px 34px 54px;

  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.value-card:last-child{
  border-right:none;
}

.value-card::before{
  content:"";
  position:absolute;
  inset:20px;
  border:1px solid rgba(247,244,238,.05);
  opacity:0;
  transform:scale(.96);
  transition:.6s ease;
}

.value-card:hover::before{
  opacity:1;
  transform:scale(1);
}

.value-icon{
  width:118px;
  height:118px;
  margin-bottom:64px;

   fill:none;
  stroke:#f7f4ee;
  stroke-width:1.2;
  stroke-linecap:round;
  stroke-linejoin:round;

  transition:.5s;

  filter:
    drop-shadow(0 0 3px rgba(255,255,255,.25))
    drop-shadow(0 0 8px rgba(255,255,255,.18))
    drop-shadow(0 0 18px rgba(255,255,255,.12));
}

.value-icon path,
.value-icon circle{
  stroke-dasharray:300;
  stroke-dashoffset:300;
}

.value-card h3{
  font-family:"Cinzel", serif;
  font-size:clamp(24px,2.4vw,36px);
  font-weight:400;
  letter-spacing:.1em;
  margin-bottom:30px;
}

.value-card span{
  display:block;
  width:56px;
  height:1px;
  margin-bottom:34px;
  background:rgba(247,244,238,.45);
  transform:scaleX(0);
  transform-origin:center;
}

.value-card p{
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  line-height:2.2;
  letter-spacing:.12em;
  color:rgba(247,244,238,.76);
  margin-top:auto;
}

.value-card small{
  margin-top:56px;
  font-family:"Cinzel", serif;
  font-size:15px;
  letter-spacing:.24em;
  color:rgba(247,244,238,.35);
}

/* 交互に少しだけ高さをずらす */
.value-card:nth-child(even){
  transform:translateY(70px);
}

.values-grid::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-70px;
  height:1px;
}

/* SP */
@media(max-width:768px){
  .values-section{
    min-height:auto;
    padding:120px 24px;
  }

  .values-section::before{
    writing-mode:vertical-rl;
    text-orientation:upright;
    font-size:22vw;
    top:120px;
    right:-8%;
    left:auto;
    transform:none;
  }

  .values-head{
    text-align:left;
    margin-bottom:80px;
  }

  .values-head h2{
    font-size:42px;
  }

  .values-lead{
    font-size:13px;
    line-height:2.1;
  }

  .values-grid{
    grid-template-columns:1fr;
    border:none;
    gap:22px;
  }

  .value-card{
    min-height:auto;
    padding:46px 28px;
    border:1px solid rgba(247,244,238,.14);
  }

  .value-card:nth-child(even){
    transform:none;
  }

  .value-icon{
    width:86px;
    height:86px;
    margin-bottom:36px;
  }

  .value-card p{
    margin-top:0;
  }
}

/* =========================
   TSURU SERVICE
========================= */

.tsuru-service {
  position: relative;
 
  color: #f7f4ee;
}

.tsuru-service-sticky {
  position: relative;
  height: 100vh;
  overflow: hidden;

  display: flex;
  align-items: center;

  padding: 0 6% 0 4%;
}

.tsuru-service-head {
  position: absolute;
  top: 90px;
  left: 4%;
  right: 6%;

  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 40px;

  font-family: "Cinzel", serif;
  font-size: 17px;
  letter-spacing: .08em;
  color: rgba(247,244,238,.78);
}

.tsuru-service-head span {
  height: 1px;
  background: rgba(247,244,238,.24);
}

.tsuru-service-layout {
  width: 100%;

  display: grid;
  grid-template-columns: 240px 1fr;
  align-items: center;
  gap: 7vw;
}

.tsuru-service-nav {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.tsuru-service-tab {
  background: none;
  border: none;
  padding: 0;

  text-align: left;
  cursor: pointer;

  font-family: "Cinzel", serif;
  font-size: 21px;
  letter-spacing: .08em;

  color: rgba(247,244,238,.34);
  transition:
    color .5s ease,
    transform .5s ease,
    text-shadow .5s ease;
}

.tsuru-service-tab span {
  display: inline-block;
  width: 40px;

  font-size: 12px;
  color: rgba(247,244,238,.36);
}

.tsuru-service-tab.active {
  color: #f7f4ee;
  transform: translateX(12px);
  text-shadow: 0 0 18px rgba(255,255,255,.28);
}

.tsuru-service-content {
   display:grid;
    grid-template-columns:180px 1fr;
    gap:80px;   /* ← ここを増やす */
}

.tsuru-service-visual {
  position: relative;

  width: 210px;
  height: 210px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-bottom: 42px;
}
.tsuru-service-orbit {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(247,244,238,.12);
  border-radius: 50%;
}

.tsuru-service-orbit span {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(247,244,238,.08);
}

.tsuru-service-orbit span:nth-child(1) {
  inset: 28px;
}

.tsuru-service-orbit span:nth-child(2) {
  inset: 58px;
}

.tsuru-service-orbit::after {
  content: "";
  position: absolute;
  right: 34px;
  top: 48px;

  width: 7px;
  height: 7px;
  border-radius: 50%;

  background: #f7f4ee;
  box-shadow: 0 0 22px rgba(255,255,255,.75);
}

#tsuru-service-icon {
  width: 118px;
  height: 118px;

  fill: none;
  stroke: #f7f4ee;
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-linejoin: round;

  filter: drop-shadow(0 0 16px rgba(255,255,255,.24));
}

#tsuru-service-icon path,
#tsuru-service-icon circle,
#tsuru-service-icon rect {
  fill: none;
  stroke: #f7f4ee;
  stroke-width: 1.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tsuru-service-detail {
  width:100%;
    max-width:none;

    padding-left:40px;
  border-left: 1px solid rgba(247,244,238,.18);
}

.tsuru-service-count {
  font-family: "Cinzel", serif;
  font-size: 13px;
  letter-spacing: .22em;
  color: rgba(247,244,238,.42);
  margin-bottom: 14px;
}

.tsuru-service-en {
  font-family: "Cinzel", serif;
  font-size: 13px;
  letter-spacing: .26em;
  color: rgba(247,244,238,.46);
  margin-bottom: 18px;
}

.tsuru-service-detail h2 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(42px, 5vw, 76px);
  line-height: 1.25;
  font-weight: 400;
  letter-spacing: .1em;
  margin-bottom: 26px;
}

#tsuru-service-text {
  font-family: "Noto Serif JP", serif;
  max-width: 700px;
  font-size: 15px;
  line-height: 2.25;
  letter-spacing: .1em;
  color: rgba(247,244,238,.74);
}

.tsuru-service-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.tsuru-service-tags span {
  font-family: "Cinzel", serif;
  font-size: 11px;
  letter-spacing: .12em;

  padding: 9px 14px;
  border: 1px solid rgba(247,244,238,.22);
  border-radius: 999px;

  color: rgba(247,244,238,.65);
}

/* SP */
@media(max-width: 768px) {
  .tsuru-service {
    height: auto;
  }

  .tsuru-service-sticky {
    height: auto;
    display: block;
    padding: 100px 24px;
  }

  .tsuru-service-head {
    position: relative;
    top: auto;
    left: auto;
    right: auto;

    gap: 18px;
    font-size: 13px;
    margin-bottom: 70px;
  }

  .tsuru-service-layout {
    display: block;
  }

  .tsuru-service-nav {
    margin-bottom: 64px;
    gap: 18px;
  }

  .tsuru-service-tab {
    font-size: 18px;
  }

  .tsuru-service-content {
    max-width: none;
    display: block;
  }

  .tsuru-service-visual {
    width: 125px;
    height: 125px;
    margin: 0 auto 0px;
  }

  #tsuru-service-icon {
    width: 86px;
    height: 86px;
  }

  .tsuru-service-detail {
    padding-left: 0;
    border-left: none;
  }

  .tsuru-service-detail h2 {
    font-size: 36px;
  }

  #tsuru-service-text {
    font-size: 14px;
    line-height: 2.1;
  }
}

.work-board{
  position:relative;
  padding:140px 4% 160px;
  color:#f7f4ee;
  overflow:hidden;
}

.work-board-head{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:40px;
  align-items:center;
  margin-bottom:70px;

  font-family:"Cinzel", serif;
  font-size:17px;
  letter-spacing:.08em;
  color:rgba(247,244,238,.78);
}

.work-board-head span{
  height:1px;
  background:rgba(247,244,238,.24);
}

.work-pattern{
  max-width:1480px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.work-row{
  display:grid;
  gap:10px;
}

.row-2{
  grid-template-columns:repeat(2, 1fr);
}

.row-3{
  grid-template-columns:repeat(3, 1fr);
}

.work-block{
  position:relative;
  height:360px;
  overflow:hidden;
  cursor:pointer;

  border:1px solid rgba(247,244,238,.08);
  background:rgba(255,255,255,.035);

  opacity:0;
  transform:translateY(60px);
}

.row-2 .work-block{
  height:430px;
}

.work-block img,
.work-block video{
  position:absolute;
  inset:0;

  width:100%;
  height:100%;
  object-fit:cover;

  filter:grayscale(.15) brightness(.72);
  transform:scale(1.04);

  transition:
    opacity .45s ease,
    transform 1s ease,
    filter 1s ease;
}

.work-block img{
  opacity:1;
  z-index:1;
}

.work-block video{
  opacity:0;
  z-index:1;
}

/* 動画があるカードだけ、ホバーで画像を消す */
.work-block.has-video:hover img,.work-block.has-video.is-playing img{
  opacity:0;
}

.work-block.has-video:hover video,.work-block.has-video.is-playing video{
  opacity:1;
}

/* 動画がないカードは画像のまま */
.work-block:hover img,
.work-block:hover video{
  transform:scale(1.08);
  filter:grayscale(0) brightness(.65);
}
.work-block::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.92) 0%,
    rgba(0,0,0,.52) 40%,
    transparent 78%
  );
}

.work-block-info{
  position:absolute;
  left:28px;
  right:28px;
  bottom:26px;
  z-index:2;
}

.work-block-info span{
  display:block;
  margin-bottom:10px;
  font-family:"Cinzel", serif;
  font-size:11px;
  letter-spacing:.18em;
  color:rgba(247,244,238,.6);
}

.work-block-info h3{
  font-family:"Noto Serif JP", serif;
  font-size:clamp(22px,2.4vw,40px);
  font-weight:400;
  letter-spacing:.08em;
}

/* 差し込み詳細 */
.inline-work-detail{
  height:360px;
  overflow:hidden;

  padding:36px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(247,244,238,.14);
  backdrop-filter:blur(12px);

  opacity:0;
  transform:translateY(24px);
}

.row-2 .inline-work-detail{
  height:430px;
}

.inline-work-detail-inner{
  height:100%;
  overflow-y:auto;
  padding-right:10px;
}

.inline-work-detail .close-inline-work{
  border:none;
  background:none;
  color:rgba(247,244,238,.65);
  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.16em;
  cursor:pointer;
  margin-bottom:28px;
}

.inline-work-detail img{
  width:100%;
  max-height:190px;
  object-fit:contain;
  display:block;
  margin-bottom:28px;
}

.inline-work-tag{
  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(247,244,238,.5);
  margin-bottom:14px;
}

.inline-work-title{
  font-family:"Noto Serif JP", serif;
  font-size:clamp(28px,3vw,46px);
  font-weight:400;
  line-height:1.25;
  margin-bottom:22px;
}

.inline-work-description,
.inline-work-client{
  font-family:"Noto Serif JP", serif;
  font-size:14px;
  line-height:2;
  letter-spacing:.08em;
  color:rgba(247,244,238,.72);
  margin-top:18px;
}

.inline-work-link{
  display:inline-block;
  margin-top:28px;

  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.16em;
  color:#f7f4ee;
  text-decoration:none;
  border-bottom:1px solid rgba(247,244,238,.42);
  padding-bottom:6px;
}

.inline-work-link[href=""]{
  display:none;
}

.work-block.selected{
  outline:1px solid rgba(247,244,238,.5);
}

@media(max-width:768px){
  .work-board{
    padding:100px 20px;
  }

  .work-board-head{
    gap:18px;
    font-size:13px;
    margin-bottom:54px;
  }

  .row-2,
  .row-3{
    grid-template-columns:1fr;
  }

  .work-block,
  .row-2 .work-block,
  .inline-work-detail,
  .row-2 .inline-work-detail{
    height:320px;
  }
}

.work-modal-v2{
  position:fixed;
  inset:0;
  z-index:9999;

  display:flex;
  align-items:center;
  justify-content:center;

  visibility:hidden;
  pointer-events:none;
}

.work-modal-v2.active{
  visibility:visible;
  pointer-events:auto;
}

.work-modal-bg{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(16px);
  opacity:0;
}

.work-modal-v2-inner{
  position:relative;
  z-index:2;

  width:min(1180px,90vw);
  max-height:86vh;

  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:48px;

  padding:44px;
  background:rgba(247,244,238,.075);
  border:1px solid rgba(247,244,238,.16);

  opacity:0;
  transform:translateY(60px) scale(.96);
}

.work-modal-v2-image img{
  width:100%;
  max-height:74vh;
  object-fit:contain;
  display:block;
}

.work-modal-v2-text{
  align-self:end;
  color:#f7f4ee;
}

#work-modal-v2-tag{
  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(247,244,238,.52);
  margin-bottom:18px;
}

#work-modal-v2-title{
  font-family:"Noto Serif JP", serif;
  font-size:clamp(34px,4vw,60px);
  font-weight:400;
  line-height:1.25;
  letter-spacing:.08em;
  margin-bottom:24px;
}
#work-modal-v2-image,
#work-modal-v2-video{
  width:100%;
  max-height:74vh;
  object-fit:contain;
  display:block;
}

#work-modal-v2-video{
  display:none;
  background:#000;
}

#work-modal-v2-client,
#work-modal-v2-description{
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  line-height:2.1;
  letter-spacing:.08em;
  color:rgba(247,244,238,.72);
  margin-top:18px;
}

#work-modal-v2-link{
  display:inline-block;
  margin-top:34px;

  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.16em;
  color:#f7f4ee;
  text-decoration:none;

  border-bottom:1px solid rgba(247,244,238,.42);
  padding-bottom:6px;
}

#work-modal-v2-link[href="#"]{
  display:none;
}

/* かっこいい閉じるボタン */
.work-modal-close-v2{
  position:absolute;
  top:22px;
  right:24px;

  width:78px;
  height:78px;
  border-radius:50%;

  border:1px solid rgba(247,244,238,.22);
  background:rgba(255,255,255,.035);
  color:#f7f4ee;

  cursor:pointer;
  z-index:5;

  display:flex;
  align-items:center;
  justify-content:center;

  transition:
    transform .45s ease,
    background .45s ease,
    border-color .45s ease;
}

.work-modal-close-v2 span{
  position:absolute;
  width:24px;
  height:1px;
  background:#f7f4ee;
  transition:transform .45s ease;
}

.work-modal-close-v2 span:nth-child(1){
  transform:rotate(45deg);
}

.work-modal-close-v2 span:nth-child(2){
  transform:rotate(-45deg);
}

.work-modal-close-v2 em{
  position:absolute;
  bottom:-24px;
  font-family:"Cinzel", serif;
  font-size:10px;
  letter-spacing:.18em;
  font-style:normal;
  color:rgba(247,244,238,.55);
}

.work-modal-close-v2:hover{
  transform:rotate(90deg) scale(1.04);
  background:rgba(255,255,255,.08);
  border-color:rgba(247,244,238,.5);
}

@media(max-width:768px){
  .work-modal-v2-inner{
    grid-template-columns:1fr;
    width:92vw;
    max-height:88vh;
    overflow-y:auto;
    padding:28px;
    gap:28px;
  }

  .work-modal-close-v2{
    width:56px;
    height:56px;
    top:14px;
    right:14px;
  }
}

.founder-section{
  position:relative;
  min-height:100vh;
  padding:140px 6% 80px;
  color:#f7f4ee;
  overflow:hidden;
}

.founder-bg-text{
  position:absolute;
  top:6%;
  left:50%;
  transform:translateX(-50%);

  font-family:"Cinzel", serif;
  font-size:15vw;
  letter-spacing:.08em;
  color:rgba(255,255,255,.035);
  pointer-events:none;
  white-space:nowrap;
}

.founder-inner{
  position:relative;
  z-index:2;

  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:7vw;
  align-items:center;

  max-width:1360px;
  margin:0 auto;
}

.founder-visual{
  position:relative;
}

.founder-visual img{
  width:100%;
  max-height:760px;
  object-fit:cover;
  filter:grayscale(.2) brightness(.75);
}

.founder-visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    to top,
    rgba(0,0,0,.55),
    transparent 45%
  );
  pointer-events:none;
}

.founder-sign{
  position:absolute;
  left:8%;
  bottom:8%;
  z-index:2;

  font-family:"Cinzel", serif;
  font-size:clamp(24px,3vw,44px);
  font-style:italic;
  letter-spacing:.08em;
  color:rgba(222,196,145,.9);
}

.founder-content{
  max-width:680px;
}

.founder-label{
  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.22em;
  color:rgba(247,244,238,.55);
  margin-bottom:24px;
}

.founder-content h2{
  font-family:"Cinzel", serif;
  font-size:clamp(48px,6vw,86px);
  line-height:1.08;
  font-weight:400;
  letter-spacing:.08em;
  text-shadow: 0 0 10px rgba(255, 255, 255, .28), 0 0 30px rgba(255, 255, 255, .12);
}

.founder-ja-name{
  font-family:"Noto Serif JP", serif;
  margin-top:18px;
  font-size:16px;
  letter-spacing:.22em;
  color:rgba(247,244,238,.65);
}

.founder-line{
  width:100%;
  height:1px;
  background:rgba(247,244,238,.25);
  margin:36px 0;
}

.founder-block{
  margin-top:34px;
}

.founder-block h3{
  font-family:"Cinzel", serif;
  font-size:17px;
  letter-spacing:.28em;
  font-weight:400;
  margin-bottom:20px;
}

.founder-block p{
  font-family:"Noto Serif JP", serif;
  font-size:14px;
  line-height:2.25;
  letter-spacing:.08em;
  color:rgba(247,244,238,.72);
  margin-top:16px;
}

.founder-contact{
  position:relative;
  z-index:2;

  max-width:1360px;
  margin:90px auto 0;
  padding:34px 0;

  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid rgba(247,244,238,.18);
  border-bottom:1px solid rgba(247,244,238,.18);
}

.contact-card{
  padding:8px 38px;
  border-right:1px solid rgba(247,244,238,.16);
}

.contact-card:last-child{
  border-right:none;
}

.contact-card span{
  display:block;
  font-family:"Cinzel", serif;
  font-size:12px;
  letter-spacing:.2em;
  color:rgba(247,244,238,.5);
  margin-bottom:12px;
}

.contact-card a,
.contact-card p{
  font-family:"Noto Serif JP", serif;
  font-size:14px;
  line-height:1.8;
  color:#f7f4ee;
  text-decoration:none;
}

.contact-card a:hover{
  opacity:.6;
}

.founder-message{
  position:relative;
  z-index:2;
  text-align:center;
  margin-top:80px;
}

.founder-message h3{
  font-family:"Cinzel", serif;
  font-size:clamp(34px,4vw,58px);
  font-weight:400;
  letter-spacing:.12em;
  color:rgba(222,196,145,.95);
}

.founder-message p{
  margin-top:20px;
  font-family:"Noto Serif JP", serif;
  font-size:15px;
  letter-spacing:.16em;
  color:rgba(247,244,238,.72);
}

@media(max-width:768px){
  .founder-section{
    padding:100px 24px 70px;
  }

  .founder-bg-text{
    writing-mode:vertical-rl;
    text-orientation:upright;
    font-size:22vw;
    right:-5%;
    left:auto;
    top:8%;
    transform:none;
  }

  .founder-inner{
    grid-template-columns:1fr;
    gap:50px;
  }

  .founder-visual img{
    max-height:520px;
  }

  .founder-content h2{
    font-size:42px;
  }

  .founder-block p{
    font-size:13px;
    line-height:2.1;
  }

  .founder-contact{
    grid-template-columns:1fr;
    gap:0;
    margin-top:70px;
  }

  .contact-card{
    padding:24px 0;
    border-right:none;
    border-bottom:1px solid rgba(247,244,238,.16);
  }

  .contact-card:last-child{
    border-bottom:none;
  }

  .founder-message h3{
    font-size:32px;
  }
}

.site-footer{

    position:relative;

    padding:180px 8% 70px;

    text-align:center;

    border-top:1px solid rgba(255,255,255,.08);

    overflow:hidden;

}

/* 背景ロゴ */

.site-footer::before{


    position:absolute;

    left:50%;
    top:45%;

    transform:translate(-50%,-50%);

    font-family:"Cinzel",serif;

    font-size:18vw;

    letter-spacing:.15em;

    color:rgba(255,255,255,.02);

    pointer-events:none;

}

.footer-logo{

    position:relative;

    z-index:2;

}

.footer-logo img{

    width:58px;

    margin-bottom:26px;

    filter:brightness(0) invert(1);

}

.footer-logo h2{

    font-family:"Cinzel",serif;

    font-size:44px;

    letter-spacing:.18em;

    font-weight:400;

    color:#f7f4ee;

    text-shadow:
    0 0 10px rgba(255,255,255,.28),
    0 0 30px rgba(255,255,255,.12);

}

.footer-logo p{

    margin-top:30px;

    font-size:13px;

    line-height:2.2;

    letter-spacing:.55em;

    color:rgba(247,244,238,.55);

}

.footer-nav{

    display:flex;

    justify-content:center;

    gap:70px;

    margin:90px 0;

}

.footer-nav a{

    color:rgba(247,244,238,.6);

    text-decoration:none;

    font-family:"Cinzel",serif;

    letter-spacing:.14em;

    transition:.4s;

}

.footer-nav a:hover{

    color:#fff;

    text-shadow:
    0 0 10px rgba(255,255,255,.28),
    0 0 30px rgba(255,255,255,.12);

}

.footer-contact{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:40px;

    flex-wrap:wrap;

    font-family:"Noto Serif JP",serif;

    color:rgba(247,244,238,.62);

}

.footer-contact a{

    color:inherit;

    text-decoration:none;

    transition:.35s;

}

.footer-contact a:hover{

    color:#fff;

}

.footer-bottom{

    margin-top:90px;

    padding-top:28px;

    border-top:1px solid rgba(255,255,255,.08);

    font-size:11px;

    letter-spacing:.25em;

    color:rgba(247,244,238,.35);

}

/* =========================
   FOOTER SP
========================= */

@media (max-width:768px){

.site-footer{

    padding:100px 24px 50px;

}

.site-footer::before{

    font-size:30vw;
    top:18%;
    letter-spacing:.08em;

}

.footer-logo img{

    width:48px;
    margin-bottom:18px;

}

.footer-logo h2{

    font-size:30px;
    line-height:1.4;
    letter-spacing:.12em;

}

.footer-logo p{

    margin-top:22px;

    font-size:11px;
    line-height:2;
    letter-spacing:.28em;

}

.footer-nav{

    flex-direction:column;
    gap:22px;

    margin:70px 0 0;

}

.footer-nav a{

    font-size:15px;
    letter-spacing:.12em;

}

.footer-contact{

    margin-top:60px;

    flex-direction:column;
    gap:18px;

}

.footer-contact p,
.footer-contact a{

    font-size:13px;

}

.footer-bottom{

    margin-top:60px;
    padding-top:20px;

    font-size:10px;
    letter-spacing:.18em;

}

}

/* =========================
   BRAND CONTENT / PROCESS
========================= */
.section-kicker{display:flex;align-items:center;gap:24px;font-family:"Cinzel",serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase}.section-kicker span{height:1px;background:currentColor;flex:1;opacity:.35}.section-kicker.light{color:#eee}
.eyebrow{font-family:"Cinzel",serif;font-size:11px;letter-spacing:.2em;color:#777}
.challenges-section{padding:120px 6vw 150px;background:#f2f0eb;color:#171714}
.challenges-intro{display:grid;grid-template-columns:1fr 1.7fr;gap:8vw;margin:100px 0 90px}.challenges-intro .eyebrow{padding-top:14px}.challenges-intro h2{font-family:"Noto Serif JP",serif;font-weight:400;font-size:clamp(34px,4.2vw,66px);line-height:1.65;letter-spacing:.08em;margin:0 0 35px}.challenges-intro>p:last-child{grid-column:2;max-width:720px;font-size:15px;line-height:2.2;letter-spacing:.08em;color:#555;margin-top:-35px}
.challenge-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c7c3ba}.challenge-list article{position:relative;padding:38px 32px 20px 0;border-right:1px solid #c7c3ba;min-height:240px}.challenge-list article+article{padding-left:32px}.challenge-list article:last-child{border-right:0}.challenge-list span{font-family:"Cinzel",serif;font-size:11px;color:#888}.challenge-list h3{font-family:"Noto Serif JP",serif;font-weight:400;font-size:23px;letter-spacing:.08em;margin:44px 0 20px}.challenge-list p{font-size:13px;line-height:2;color:#666;max-width:310px}
.process-section{color:#eee;padding:120px 6vw 160px}.process-heading{margin:100px 0 90px}.process-heading p{font-family:"Cinzel",serif;font-size:11px;letter-spacing:.2em;color:#8d8d88}.process-heading h2{font-family:"Noto Serif JP",serif;font-size:clamp(42px,6vw,88px);font-weight:300;letter-spacing:.12em;margin:25px 0}.process-list{list-style:none;margin:0;padding:0;border-top:1px solid #3c3c38}.process-list li{display:grid;grid-template-columns:9vw 1fr;padding:38px 0;border-bottom:1px solid #3c3c38;transition:padding .45s ease,background .45s ease}.process-list li:hover{padding-left:24px;background:#181816}.process-list li>span{font-family:"Cinzel",serif;color:#777;font-size:12px}.process-list li div{display:grid;grid-template-columns:160px 240px 1fr;align-items:baseline;gap:30px}.process-list small{font-family:"Cinzel",serif;letter-spacing:.16em;color:#a7a79f}.process-list h3{font-family:"Noto Serif JP",serif;font-size:25px;font-weight:400;letter-spacing:.18em;margin:0}.process-list p{max-width:540px;color:#aaa;font-size:13px;line-height:2;margin:0}
.faq-section{padding:130px 6vw;background:#f2f0eb;color:#171714}.faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:10vw;margin-top:90px}.faq-layout h2{font-family:"Noto Serif JP",serif;font-size:clamp(34px,4vw,58px);font-weight:400;letter-spacing:.1em}.faq-list details{border-top:1px solid #bbb7ae;padding:28px 0}.faq-list details:last-child{border-bottom:1px solid #bbb7ae}.faq-list summary{list-style:none;cursor:pointer;font-family:"Noto Serif JP",serif;font-size:16px;letter-spacing:.06em;display:flex;justify-content:space-between;gap:30px}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-family:sans-serif;font-weight:200;font-size:22px;transition:transform .3s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{max-width:670px;color:#686862;font-size:13px;line-height:2.1;margin:24px 40px 0 0}
.brand-cta{padding:145px 6vw 0;text-align:center;background:#e4e1da;color:#171714}.brand-cta>p{font-family:"Cinzel",serif;font-size:11px;letter-spacing:.24em}.brand-cta h2{font-family:"Noto Serif JP",serif;font-size:clamp(32px,4.5vw,65px);font-weight:300;line-height:1.65;letter-spacing:.09em;margin:34px auto 58px}.brand-cta>a{display:inline-flex;align-items:center;justify-content:space-between;gap:70px;min-width:360px;padding:18px 0;color:#171714;text-decoration:none;border-bottom:1px solid rgba(23,23,20,.55);font-size:13px;letter-spacing:.1em}.brand-cta>a i{font-size:20px;font-style:normal;transition:transform .3s}.brand-cta>a:hover i{transform:translate(5px,-5px)}
.case-layer{position:fixed;inset:0;z-index:10000;background:#f2f0eb;visibility:hidden;opacity:0;transform:translateY(100%);transition:transform .9s cubic-bezier(.76,0,.24,1),opacity .45s,visibility 0s .9s}.case-layer.active{visibility:visible;opacity:1;transform:translateY(0);transition:transform .9s cubic-bezier(.76,0,.24,1),opacity .45s}.case-layer iframe{border:0;width:100%;height:100%;opacity:0;transition:opacity .6s}.case-layer.loaded iframe{opacity:1}.case-layer-loader{position:absolute;inset:0;display:grid;place-content:center;gap:18px;text-align:center;transition:opacity .35s}.case-layer.loaded .case-layer-loader{opacity:0;pointer-events:none}.case-layer-loader span{width:42px;height:1px;background:#111;animation:case-load 1.1s infinite ease-in-out}.case-layer-loader p{font-family:"Cinzel",serif;font-size:9px;letter-spacing:.2em}.case-layer-close{position:absolute;z-index:2;top:24px;right:28px;width:70px;height:70px;border:0;border-radius:50%;background:#111;color:#fff;cursor:pointer}.case-layer-close span{position:absolute;top:34px;left:23px;width:24px;height:1px;background:#fff}.case-layer-close span:first-child{transform:rotate(45deg)}.case-layer-close span:nth-child(2){transform:rotate(-45deg)}.case-layer-close em{position:absolute;left:0;right:0;bottom:-20px;color:#111;font:9px "Cinzel",serif;letter-spacing:.14em}@keyframes case-load{50%{transform:scaleX(.25);opacity:.3}}
.work-block[role="link"]{cursor:pointer}
.row-3{grid-template-columns:repeat(2,1fr)}
body.case-open{overflow:hidden}
body.menu-open{overflow:hidden}
.fixed-copy,.menu-trigger{mix-blend-mode:difference;color:#fff}
.fixed-nav{display:none}
.menu-trigger{position:fixed;z-index:10002;top:25px;right:34px;width:92px;height:48px;padding:0;border:0;background:none;color:#fff;cursor:pointer;font:11px "Cinzel",serif;letter-spacing:.15em}.menu-trigger-label{position:absolute;left:0;top:17px}.menu-trigger i{position:absolute;right:0;width:28px;height:1px;background:currentColor;transition:transform .45s cubic-bezier(.76,0,.24,1),top .45s}.menu-trigger i:nth-of-type(1){top:18px}.menu-trigger i:nth-of-type(2){top:28px}.menu-trigger.active{mix-blend-mode:normal}.menu-trigger.active i:nth-of-type(1){top:23px;transform:rotate(45deg)}.menu-trigger.active i:nth-of-type(2){top:23px;transform:rotate(-45deg)}
.site-menu{position:fixed;z-index:10001;inset:0;overflow:hidden;background:radial-gradient(circle at 18% 20%,rgba(255,255,255,.07),transparent 30%),radial-gradient(circle at 82% 78%,rgba(190,186,176,.055),transparent 27%),linear-gradient(135deg,#080807 0%,#161613 48%,#090908 100%);color:#f2f0eb;visibility:hidden;opacity:0;clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.76,0,.24,1),opacity .5s,visibility 0s .9s;padding:35px 6vw 45px}.site-menu.active{visibility:visible;opacity:1;clip-path:inset(0);transition:clip-path .9s cubic-bezier(.76,0,.24,1),opacity .5s}.site-menu::before{content:"TSURU";position:absolute;z-index:0;right:-.04em;bottom:-.16em;color:rgba(242,240,235,.035);font:300 clamp(150px,29vw,470px)/.8 "Cinzel",serif;letter-spacing:-.06em;white-space:nowrap;pointer-events:none;transform:translate3d(1.5%,1.5%,0)}.site-menu::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5vw - 1px),rgba(255,255,255,.025) 12.5vw),linear-gradient(115deg,transparent 20%,rgba(255,255,255,.025) 47%,transparent 67%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,.25));opacity:.8}.site-menu.active::before{animation:menu-lustre 16s ease-in-out infinite alternate}.site-menu-meta,.site-menu-links{position:relative;z-index:2}.site-menu-meta{display:flex;justify-content:space-between;padding:0 120px 20px 0;border-bottom:1px solid rgba(242,240,235,.14);font:9px "Cinzel",serif;letter-spacing:.2em;color:#9d9b94}.site-menu-links{width:min(880px,78vw);margin-top:6vh;border-top:0}.site-menu-links a{position:relative;display:block;color:inherit;text-decoration:none;border-bottom:1px solid rgba(242,240,235,.14);padding:16px 48px 16px 0;transition:color .5s,transform .5s,border-color .5s}.site-menu-links a::after{content:"";position:absolute;right:0;top:50%;width:22px;height:1px;background:#d4d0c7;transform:scaleX(.28);transform-origin:right;opacity:.55;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .55s}.site-menu-links a:hover{color:#d4d0c7;transform:translateX(10px);border-color:rgba(242,240,235,.28)}.site-menu-links a:hover::after{transform:scaleX(1);opacity:1}.site-menu-links span{font:300 clamp(27px,4.4vw,58px)/1 "Cinzel",serif;letter-spacing:.08em;text-shadow:0 0 24px rgba(255,255,255,.035)}
@keyframes menu-lustre{from{transform:translate3d(1.5%,1.5%,0)}to{transform:translate3d(-.5%,-.5%,0)}}
.studies-index-link{display:flex;justify-content:space-between;align-items:center;max-width:1480px;margin:70px auto 0;padding:22px 0;color:#f7f4ee;text-decoration:none;border-top:1px solid rgba(255,255,255,.3);font:11px "Cinzel",serif;letter-spacing:.18em}.studies-index-link i{font-size:22px;font-style:normal;transition:transform .35s}.studies-index-link:hover i{transform:translate(6px,-6px)}
.cta-contact-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;margin:130px -6vw 0;text-align:left;border-top:1px solid rgba(23,23,20,.24)}.cta-contact-grid>div{min-height:145px;padding:32px 3vw;border-right:1px solid rgba(23,23,20,.24)}.cta-contact-grid>div:last-child{border-right:0}.cta-contact-grid small{display:block;font:9px "Cinzel",serif;letter-spacing:.18em;opacity:.65;margin-bottom:28px}.cta-contact-grid a,.cta-contact-grid p{color:#171714;text-decoration:none;font:300 13px "Noto Sans JP",sans-serif;letter-spacing:.05em;margin:0;overflow-wrap:anywhere}.cta-contact-grid a{display:inline;border-bottom:1px solid transparent;transition:border-color .3s}.cta-contact-grid a:hover{border-color:#171714}
.motion-reveal{will-change:transform,opacity}
@media(max-width:768px){.challenges-section,.process-section,.faq-section{padding:85px 24px}.challenges-intro{display:block;margin:65px 0}.challenges-intro h2{font-size:29px;margin:25px 0}.challenges-intro>p:last-child{margin:0}.challenge-list{grid-template-columns:1fr}.challenge-list article,.challenge-list article+article{border-right:0;border-bottom:1px solid #c7c3ba;padding:30px 0;min-height:0}.challenge-list h3{margin:25px 0 12px}.process-heading{margin:70px 0 50px}.process-list li{grid-template-columns:45px 1fr}.process-list li div{display:block}.process-list h3{margin:10px 0 15px}.faq-layout{display:block;margin-top:60px}.faq-layout>div:first-child{margin-bottom:55px}.brand-cta{padding:95px 24px}.brand-cta a{min-width:0;width:100%;gap:20px}.case-layer-close{top:14px;right:14px;width:56px;height:56px}.case-layer-close span{top:28px;left:17px}}
@media(max-width:768px){.menu-trigger{top:14px;right:18px}.site-menu{padding:25px 24px}.site-menu::before{right:-.08em;bottom:.02em;font-size:34vw;writing-mode:vertical-rl}.site-menu::after{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25vw - 1px),rgba(255,255,255,.025) 25vw),linear-gradient(135deg,transparent 25%,rgba(255,255,255,.025) 52%,transparent 72%)}.site-menu-meta{padding-bottom:18px}.site-menu-meta span:last-child{display:none}.site-menu-links{width:100%;margin-top:10vh}.site-menu-links a{grid-template-columns:45px 1fr;padding:18px 38px 18px 0}.site-menu-links a:hover{transform:translateX(5px)}.site-menu-links span{font-size:29px}.cta-contact-grid{grid-template-columns:1fr;margin:90px -24px 0}.cta-contact-grid>div{min-height:0;padding:28px 24px;border-right:0;border-bottom:1px solid rgba(255,255,255,.28)}.cta-contact-grid a{display:inline;width:auto;min-width:0;padding:0}.brand-cta{padding-bottom:0}.brand-cta>a{width:100%;min-width:0}.studies-index-link{margin-top:45px}}
@media(prefers-reduced-motion:reduce){.site-menu.active::before{animation:none}.site-menu,.site-menu.active{transition-duration:.01ms}}

/* Simplified interaction system */
html{overflow-x:clip}.fixed-name{display:none!important}
.process-list{border-top:1px solid #3c3c38}
.process-item{border-bottom:1px solid #3c3c38;transition:background .35s ease}
.process-item button{width:100%;display:grid;grid-template-columns:180px 1fr 40px;align-items:center;gap:24px;padding:30px 0;border:0;background:none;color:inherit;text-align:left;cursor:pointer}
.process-item button small{font:11px "Cinzel",serif;letter-spacing:.16em;color:#9c9c95}.process-item button h3{font:400 25px "Noto Serif JP",serif;letter-spacing:.18em;margin:0}.process-item button span{justify-self:end;font:200 23px sans-serif;transition:transform .35s ease}.process-detail{max-height:0;overflow:hidden;opacity:0;transition:max-height .55s cubic-bezier(.16,1,.3,1),opacity .35s}.process-detail p{max-width:720px;margin:0 0 0 204px;color:#aaa;font-size:13px;line-height:2}.process-detail small{display:block;margin:18px 0 0 204px;padding-bottom:30px;color:#777;font:9px "Cinzel",serif;letter-spacing:.16em}.process-item.active{background:rgba(255,255,255,.025)}.process-item.active .process-detail{max-height:220px;opacity:1}.process-item.active button span{transform:rotate(45deg)}
.tsuru-service{height:auto}.tsuru-service-sticky{height:auto;min-height:760px;overflow:visible;padding-top:150px;padding-bottom:120px}.tsuru-service-head{top:70px}.tsuru-service-tab{font-size:19px}.tsuru-service-tab span,.tsuru-service-count{display:none}.tsuru-service-tab.active{transform:translateX(8px);text-shadow:none}.tsuru-service-visual{width:170px;height:170px}.tsuru-service-orbit{opacity:.45}.tsuru-service-orbit::after{display:none}#tsuru-service-icon{width:90px;height:90px;filter:none}.tsuru-service-content{grid-template-columns:170px 1fr;gap:55px}.tsuru-service-detail{padding-left:34px}.tsuru-service-detail h2{font-size:clamp(40px,4.5vw,66px)}
@media(max-width:768px){.process-item button{grid-template-columns:1fr 40px;gap:12px}.process-item button small{grid-column:1}.process-item button h3{grid-column:1}.process-item button span{grid-column:2;grid-row:1/3}.process-detail p,.process-detail small{margin-left:0}.tsuru-service-sticky{min-height:0;padding:100px 24px}.tsuru-service-content{display:block}.tsuru-service-visual{display:none}.site-menu-links a{display:block}.cta-contact-grid>div{border-color:rgba(23,23,20,.24)}}

/* Stable document scroll */
html,body{overflow-x:clip}
body{width:100%;overflow-y:visible}
.hero{contain:paint}

/* Restored quiet process list */
.process-list-static article{display:grid;grid-template-columns:180px 240px 1fr;align-items:baseline;gap:30px;padding:38px 0;border-bottom:1px solid #3c3c38}
.process-list-static small{font:11px "Cinzel",serif;letter-spacing:.16em;color:#9c9c95}.process-list-static h3{font:400 25px "Noto Serif JP",serif;letter-spacing:.18em;margin:0}.process-list-static p{max-width:540px;color:#aaa;font-size:13px;line-height:2;margin:0}

/* Long-form services without scroll pinning */
.services-scroll{position:relative;display:grid;grid-template-columns:minmax(300px,38vw) 1fr;gap:5vw;padding:150px 6vw 100px;color:#f7f4ee}
.services-sticky-intro{position:sticky;top:90px;align-self:start;height:calc(100vh - 130px);display:flex;flex-direction:column;padding-right:3vw}
.services-sticky-intro>p:first-child{font:11px "Cinzel",serif;letter-spacing:.22em;color:#8d8d88}.services-sticky-intro h2{font:400 clamp(38px,4.4vw,68px)/1.55 "Noto Serif JP",serif;letter-spacing:.08em;margin:34px 0}.services-intro-copy{max-width:440px;color:#999;font-size:13px;line-height:2}.services-progress{margin-top:auto;display:flex;flex-direction:column;border-top:1px solid #383834}.services-progress a{position:relative;color:#666;text-decoration:none;font:12px "Cinzel",serif;letter-spacing:.14em;padding:14px 0;border-bottom:1px solid #383834;transition:color .35s,padding .35s}.services-progress a::after{content:"";position:absolute;right:0;top:50%;width:0;height:1px;background:#eee;transition:width .35s}.services-progress a.active{color:#eee;padding-left:12px}.services-progress a.active::after{width:30px}
.services-panels{border-top:1px solid #383834}.service-panel{min-height:92vh;display:flex;flex-direction:column;justify-content:center;padding:110px 3vw 110px 0;border-bottom:1px solid #383834;scroll-margin-top:40px}.service-panel-en{font:11px "Cinzel",serif;letter-spacing:.24em;color:#888}.service-panel h3{font:400 clamp(52px,7vw,104px)/1.15 "Noto Serif JP",serif;letter-spacing:.08em;margin:28px 0 55px}.service-panel-lead{font:400 clamp(24px,2.5vw,38px)/1.75 "Noto Serif JP",serif;letter-spacing:.08em;margin:0 0 38px}.service-panel>p:not(.service-panel-en):not(.service-panel-lead){max-width:760px;color:#aaa;font-size:14px;line-height:2.25;letter-spacing:.06em}.service-panel-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}.service-panel-tags span{padding:9px 14px;border:1px solid #44443f;border-radius:999px;color:#aaa;font:10px "Cinzel",serif;letter-spacing:.12em}
@media(max-width:768px){html,body{overflow-x:hidden}.process-list-static article{display:block;padding:30px 0}.process-list-static h3{margin:12px 0 16px}.services-scroll{display:block;padding:100px 24px 60px}.services-sticky-intro{position:relative;top:auto;height:auto;padding:0}.services-progress{display:none}.services-intro-copy{margin-bottom:70px}.service-panel{min-height:auto;padding:100px 0}.service-panel h3{font-size:48px;margin-bottom:38px}.service-panel-lead{font-size:23px}}

/* Visibility, service refinement and FAQ accordion */
.work-block{opacity:1;transform:none}
.services-scroll{grid-template-columns:minmax(260px,30vw) 1fr;gap:6vw;background:#090909;transition:background-color 1s cubic-bezier(.2,.7,.2,1)}
.services-sticky-intro h2{font-size:clamp(34px,3.7vw,56px)}
.services-intro-copy{max-width:360px;font-size:12px}
.service-panel{padding-right:1vw}
.service-panel h3{font-size:clamp(46px,5.8vw,82px);margin-bottom:46px}
.service-panel-lead{font-size:clamp(21px,2.1vw,31px);margin-bottom:32px}
.service-panel>p:not(.service-panel-en):not(.service-panel-lead){max-width:680px;font-size:13px;line-height:2.2}
.service-actions{display:grid;grid-template-columns:130px 1fr;gap:24px;max-width:680px;margin-top:38px;padding:24px 0;border-top:1px solid #454540;border-bottom:1px solid #454540}.service-actions>p{margin:0;color:#d0cec8;font:11px "Noto Sans JP",sans-serif;letter-spacing:.08em}.service-actions ul{list-style:none;margin:0;padding:0}.service-actions li{position:relative;padding-left:18px;color:#aaa;font-size:12px;line-height:1.9}.service-actions li::before{content:"—";position:absolute;left:0;color:#666}.service-panel-tags{margin-top:28px}
.faq-item{border-top:1px solid #bbb7ae}.faq-item:last-child{border-bottom:1px solid #bbb7ae}.faq-item button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:28px 0;border:0;background:none;color:#171714;text-align:left;cursor:pointer;font:400 16px "Noto Serif JP",serif;letter-spacing:.06em}.faq-item button i{font:200 22px sans-serif;font-style:normal;transition:transform .45s cubic-bezier(.16,1,.3,1)}.faq-item.open button i{transform:rotate(45deg)}.faq-answer{height:0;overflow:hidden;opacity:0;transition:height .55s cubic-bezier(.16,1,.3,1),opacity .35s ease}.faq-answer p{max-width:670px;color:#686862;font-size:13px;line-height:2.1;margin:0 40px 0 0;padding:0 0 28px}.faq-item.open .faq-answer{opacity:1}
@media(max-width:768px){.services-scroll{display:block}.service-panel h3{font-size:44px}.service-panel-lead{font-size:21px}.service-actions{display:block}.service-actions>p{margin-bottom:14px}.faq-item button{font-size:14px;line-height:1.8}.faq-answer p{margin-right:0}}

/* Service theme imagery */
.service-panel{position:relative;isolation:isolate;overflow:hidden;padding-left:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px)}
.service-panel::before,.service-panel::after{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none}.service-panel::before{background-position:center;background-size:cover;filter:grayscale(1);opacity:.3;transform:scale(1.025);transition:opacity .8s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}.service-panel::after{z-index:-1;background:linear-gradient(90deg,rgba(8,8,8,.93) 0%,rgba(8,8,8,.78) 56%,rgba(8,8,8,.48) 100%)}.service-panel.is-current::before{opacity:.43;transform:scale(1)}
#strategy::before{background-image:url("images/service-theme/theme-strategy.webp")}#consulting::before{background-image:url("images/service-theme/theme-consul.webp")}#technology::before{background-image:url("images/service-theme/theme-tech.webp")}#design::before{background-image:url("images/service-theme/theme-design.webp")}

/* Monochrome contact */
.brand-cta{background:#171714;color:#fff}.brand-cta>p,.brand-cta h2{color:#fff}.brand-cta>a{color:#fff;border-color:rgba(255,255,255,.62)}.cta-contact-grid{border-color:rgba(255,255,255,.25)}.cta-contact-grid>div{border-color:rgba(255,255,255,.25)}.cta-contact-grid a,.cta-contact-grid p{color:#fff}.cta-contact-grid a:hover{border-color:#fff}

/* Mobile rhythm: visual cards and horizontal chapters */
@media(max-width:768px){
  .mission-section,.challenges-section,.process-section,.values-section,.work-board,.founder-section,.faq-section{padding-top:82px;padding-bottom:92px}
  .section-kicker{gap:16px}.challenges-intro{margin:54px 0 45px}.challenges-intro h2{line-height:1.55}.challenges-intro>p:last-child{font-size:13px;line-height:2}
  .challenge-list{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 16px;scrollbar-width:none}.challenge-list::-webkit-scrollbar{display:none}.challenge-list article,.challenge-list article+article{flex:0 0 82vw;scroll-snap-align:start;min-height:260px;padding:28px 24px;border:1px solid #d0ccc3;background:#e9e6df}.challenge-list h3{font-size:21px;margin-top:42px}
  .process-heading{margin-bottom:42px}.process-heading h2{font-size:38px;line-height:1.5}.process-list-static{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 18px;border:0;scrollbar-width:none}.process-list-static::-webkit-scrollbar{display:none}.process-list-static article{flex:0 0 82vw;scroll-snap-align:start;min-height:280px;padding:30px 24px;border:1px solid #3d3d39;background:#151513}.process-list-static h3{font-size:24px;margin-top:48px}.process-list-static p{line-height:2}
  .values-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px;padding:0 24px 18px;scrollbar-width:none}.values-grid::-webkit-scrollbar{display:none}.value-card{flex:0 0 78vw;scroll-snap-align:start;min-height:380px;padding:42px 30px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}
  .services-scroll{padding:92px 0 50px}.services-sticky-intro{padding:0 24px}.services-sticky-intro h2{font-size:36px}.services-intro-copy{margin-bottom:55px}.services-panels{border:0}.service-panel{min-height:82vh;margin:0 12px 18px;padding:88px 24px 72px;border:1px solid #353532;border-radius:2px}.service-panel::before{opacity:.42}.service-panel::after{background:linear-gradient(180deg,rgba(7,7,7,.38) 0%,rgba(7,7,7,.88) 54%,rgba(7,7,7,.97) 100%)}.service-panel-en{margin-top:auto}.service-panel h3{margin:22px 0 32px}.service-panel-tags{gap:7px}.service-panel-tags span{font-size:9px;padding:8px 10px}
  .work-board{padding-left:12px;padding-right:12px}.work-board-head{padding:0 12px}.work-block,.row-2 .work-block{height:70vw}.studies-index-link{margin-left:12px;margin-right:12px}
  .founder-inner{gap:55px}.founder-visual{margin:0 -24px}.founder-visual img{width:100%;height:70vw;object-fit:cover}.founder-block{padding-top:26px;border-top:1px solid rgba(255,255,255,.16)}
  .faq-layout>div:first-child{margin-bottom:38px}.faq-item button{padding:24px 0}.brand-cta{padding-top:95px}.brand-cta h2{font-size:29px}.cta-contact-grid>div{border-color:rgba(255,255,255,.25)}
}

/* Fog transition shared by the top page and Knowledge. */
.knowledge-page-wipe{position:fixed;z-index:100000;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 20% 55%,rgba(225,225,218,.24),transparent 42%),radial-gradient(ellipse at 78% 32%,rgba(135,135,128,.2),transparent 44%),linear-gradient(135deg,rgba(7,7,7,.96),rgba(35,35,32,.94) 55%,rgba(7,7,7,.97));opacity:0;transform:scale(1.08);filter:blur(18px);transition:opacity .88s ease,transform 1.25s cubic-bezier(.16,1,.3,1),filter 1.15s ease}
.knowledge-page-wipe::before{content:"";position:absolute;inset:-25%;background:radial-gradient(ellipse at 24% 50%,rgba(238,237,231,.18),transparent 28%),radial-gradient(ellipse at 67% 62%,rgba(203,202,195,.14),transparent 31%),radial-gradient(ellipse at 51% 17%,rgba(255,255,255,.09),transparent 25%);filter:blur(42px);animation:knowledge-fog-drift 3.2s ease-in-out infinite alternate}
.knowledge-page-wipe.active{opacity:1;transform:scale(1);filter:blur(0)}
.knowledge-page-wipe.leave:not(.active){opacity:0;transform:scale(1.1);filter:blur(22px)}

/* Final flowing veil: soft transparent edges instead of a hard wall. */
.knowledge-page-wipe{inset:-5vh -18vw;width:auto;height:110vh;background:radial-gradient(ellipse at 72% 30%,rgba(255,255,255,.07),transparent 32%),repeating-linear-gradient(112deg,rgba(255,255,255,.016) 0,rgba(255,255,255,.016) 1px,transparent 1px,transparent 6px),linear-gradient(100deg,rgba(7,7,7,0),#0b0b0a 13%,#292927 48%,#0b0b0a 87%,rgba(7,7,7,0));opacity:1;filter:none;transform:translateX(118%) skewX(-2deg) scale(1.02);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 12%,#000 88%,transparent 100%);transition:transform 1.08s cubic-bezier(.76,0,.24,1)}
.knowledge-page-wipe::before{inset:-10%;background:radial-gradient(ellipse at 28% 45%,rgba(235,234,228,.1),transparent 24%),radial-gradient(ellipse at 68% 58%,rgba(190,190,184,.07),transparent 27%);filter:blur(30px);animation:knowledge-veil-drift 2.4s ease-in-out infinite alternate}
.knowledge-page-wipe.enter.active,.knowledge-page-wipe.leave.active{opacity:1;filter:none;transform:translateX(0) skewX(-2deg) scale(1.02)}
.knowledge-page-wipe.leave:not(.active){opacity:1;filter:none;transform:translateX(-118%) skewX(-2deg) scale(1.02)}
@keyframes knowledge-veil-drift{from{transform:translate3d(-2%,1%,0)}to{transform:translate3d(3%,-1%,0)}}

/* Simple presentation-like page slide; no coloured transition panel. */
.knowledge-page-wipe{display:none!important}
body.knowledge-page-exit{pointer-events:none;animation:knowledge-page-exit .48s cubic-bezier(.55,.06,.68,.19) both}
body.knowledge-page-arrival{animation:knowledge-page-arrival .58s cubic-bezier(.16,1,.3,1) both}
@keyframes knowledge-page-exit{to{opacity:0;transform:translate3d(-36px,0,0)}}
@keyframes knowledge-page-arrival{from{opacity:0;transform:translate3d(36px,0,0)}to{opacity:1;transform:none}}

/* Final transition: consistent restrained slideshow on every route. */
.knowledge-page-wipe{inset:0;width:auto;height:auto;background:linear-gradient(135deg,#090909,#242422 54%,#0a0a09);opacity:1;filter:none;transform:translateX(102%);-webkit-mask-image:none;mask-image:none;transition:transform .86s cubic-bezier(.76,0,.24,1)}
.knowledge-page-wipe::before{display:none}
.knowledge-page-wipe.enter.active,.knowledge-page-wipe.leave.active{transform:translateX(0)}
.knowledge-page-wipe.leave:not(.active){opacity:1;filter:none;transform:translateX(-102%)}
@keyframes knowledge-fog-drift{from{transform:translate3d(-3%,1%,0) scale(1)}to{transform:translate3d(4%,-2%,0) scale(1.08)}}

/* Render the Knowledge backdrop as markup so WordPress always resolves it. */
.knowledge-section#knowledge{isolation:isolate;background:#0a0a09!important}
.knowledge-stage-bg{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;pointer-events:none}
.knowledge-stage-copy,.knowledge-section#knowledge .knowledge-panel{position:relative;z-index:1}
@media(max-width:768px){.knowledge-stage-bg{height:650px;object-position:62% top}}

/* Knowledge placement, edge treatment and motion */
.knowledge-section#knowledge{padding-right:0!important}
.knowledge-section#knowledge::before{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,#090909 0%,transparent 10%,transparent 84%,#090909 100%)}
.knowledge-stage-bg{height:auto;min-height:680px;max-height:900px;object-fit:cover;filter:brightness(.9)}
.knowledge-section#knowledge .knowledge-panel{width:calc(100% + 0px);margin-right:0;padding-right:3.4vw;box-shadow:-28px 26px 90px rgba(0,0,0,.22)}
.knowledge-entry figure{height:auto;aspect-ratio:4/3}
.knowledge-view-all{align-self:center;justify-self:start;width:min(210px,100%);font-size:12px;line-height:1.8;letter-spacing:.22em}
.knowledge-view-all>i{margin-top:22px}.knowledge-view-all>i b{top:-16px;font-size:24px}
.knowledge-reveal{opacity:0;transform:translateY(38px);filter:blur(5px);transition:opacity 1.15s cubic-bezier(.16,1,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1),filter 1.05s ease;transition-delay:var(--reveal-delay,0ms)}
.knowledge-reveal.is-visible{opacity:1;transform:none;filter:none}
.knowledge-page-wipe{position:fixed;z-index:100000;inset:0;background:#efede9;pointer-events:none;transform:translateX(102%);transition:transform .85s cubic-bezier(.76,0,.24,1)}
.knowledge-page-wipe.enter.active{transform:translateX(0)}.knowledge-page-wipe.leave{transform:translateX(0)}.knowledge-page-wipe.leave:not(.active){transform:translateX(-102%)}
@media(max-width:768px){.knowledge-section#knowledge{padding-right:0!important;padding-left:14px!important}.knowledge-stage-bg{height:620px;min-height:0;object-fit:cover}.knowledge-section#knowledge .knowledge-panel{padding-right:24px}.knowledge-view-all{font-size:12px;width:190px}}

/* Roomier editorial cards and CTA below the intro copy */
.knowledge-panel{grid-template-columns:minmax(285px,.82fr) minmax(0,3.18fr);gap:5vw;min-height:455px;padding-left:5vw}
.knowledge-intro{min-width:0}.knowledge-intro .knowledge-view-all{display:block;width:220px;margin-top:38px;font-size:13px;line-height:1.75}.knowledge-intro>b{margin-top:auto}
.knowledge-articles{gap:28px}.knowledge-entry figure{aspect-ratio:16/10}.knowledge-entry h3{font-size:clamp(14px,1.12vw,18px);line-height:1.8}.knowledge-entry time{margin-top:3px}
.knowledge-page-wipe{background:radial-gradient(circle at 75% 35%,rgba(255,255,255,.055),transparent 34%),repeating-linear-gradient(115deg,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 5px),linear-gradient(135deg,#080808,#232321 52%,#0b0b0a)}
@media(max-width:1100px){.knowledge-panel{grid-template-columns:240px minmax(0,1fr)}.knowledge-view-all{grid-column:auto;justify-self:auto}.knowledge-articles{gap:16px}}
@media(max-width:768px){.knowledge-panel{display:block;padding-left:24px}.knowledge-intro .knowledge-view-all{margin:35px 0 55px}.knowledge-intro>b{display:none}.knowledge-articles{display:block}.knowledge-entry figure{aspect-ratio:16/10}}

/* Stable two-column panel: intro + article grid */
.knowledge-section#knowledge{padding-bottom:110px!important}
#knowledge .knowledge-panel{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:clamp(42px,5vw,86px);align-items:start;min-height:0;padding:64px 4vw 72px 5vw}
#knowledge .knowledge-intro{display:flex;min-width:0;min-height:350px}
#knowledge .knowledge-intro .knowledge-view-all{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:38px;padding:18px 20px;border:1px solid #a7a39c;font-size:12px;background:rgba(255,255,255,.28);transition:background .45s,border-color .45s,transform .45s}
#knowledge .knowledge-intro .knowledge-view-all>i{width:56px;margin:0 0 0 18px}
#knowledge .knowledge-intro .knowledge-view-all:hover{background:#171714;color:#f0eee9;border-color:#171714;transform:translateX(5px)}
#knowledge .knowledge-intro>b{margin-top:auto}
#knowledge .knowledge-articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,34px);width:100%;min-width:0}
#knowledge .knowledge-entry{width:auto;min-width:0}#knowledge .knowledge-entry figure{width:100%;aspect-ratio:16/10}
@media(max-width:1050px){#knowledge .knowledge-panel{grid-template-columns:240px minmax(0,1fr);gap:34px;padding-left:4vw}#knowledge .knowledge-articles{grid-template-columns:repeat(2,minmax(0,1fr))}#knowledge .knowledge-entry:last-child{grid-column:1/-1;width:calc(50% - 9px)}}
@media(max-width:780px){.knowledge-section#knowledge{padding-bottom:65px!important}#knowledge .knowledge-panel{display:block;padding:48px 24px 62px}#knowledge .knowledge-intro{min-height:0}#knowledge .knowledge-intro>b{display:none}#knowledge .knowledge-articles{grid-template-columns:1fr;margin-top:15px}#knowledge .knowledge-entry:last-child{grid-column:auto;width:auto}}

#knowledge .knowledge-panel{margin-bottom:65px}
@media(max-width:780px){#knowledge .knowledge-panel{margin-bottom:35px}}

/* Service heading line control */
.services-sticky-intro h2{font-size:clamp(30px,3vw,46px)}.services-sticky-intro h2 span{display:block;white-space:nowrap}.service-panel h3{text-shadow:0 0 10px rgba(255,255,255,.28),0 0 30px rgba(255,255,255,.12)}
@media(max-width:768px){.services-sticky-intro h2{font-size:32px}}

/* Branding Challenges geometric depth */
.challenges-section{position:relative;isolation:isolate;overflow:hidden}.challenges-geometry{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none;opacity:.76}.challenges-section::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(242,240,235,.68)}
@media(max-width:768px){.challenges-geometry{opacity:.56}.challenges-section::after{background:rgba(242,240,235,.76)}}

/* Desktop service intro remains in-flow; JS gives it a soft scroll follow */
@media(min-width:769px){.services-sticky-intro{position:relative;top:auto;height:calc(100vh - 130px);min-height:0;padding-top:0;padding-bottom:0}}

/* Unified close position */
@media(min-width:769px){.services-scroll{align-items:start}}
.case-layer-close{left:28px;right:auto}.case-layer-close em{color:#111}
@media(max-width:768px){.case-layer-close{left:14px;right:auto}}

/* Full-section service background crossfade */
.services-scroll{isolation:isolate;background:#090909}.services-background{position:absolute;inset:0;z-index:-2;pointer-events:none}.services-background-sticky{position:sticky;top:0;height:100vh;overflow:hidden;background:#090909}.service-bg{position:absolute;inset:-2%;background-position:center;background-size:cover;filter:grayscale(1);opacity:0;transform:scale(1.04);transition:opacity 1.15s cubic-bezier(.2,.7,.2,1),transform 1.8s cubic-bezier(.2,.7,.2,1)}.service-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,6,6,.9),rgba(6,6,6,.74) 48%,rgba(6,6,6,.65))}.service-bg.active{opacity:.72;transform:scale(1)}.service-bg[data-service-bg="strategy"]{background-image:url("images/service-theme/theme-strategy.webp")}.service-bg[data-service-bg="consulting"]{background-image:url("images/service-theme/theme-consul.webp")}.service-bg[data-service-bg="technology"]{background-image:url("images/service-theme/theme-tech.webp")}.service-bg[data-service-bg="design"]{background-image:url("images/service-theme/theme-design.webp")}
.services-sticky-intro,.services-panels{position:relative;z-index:1}.service-panel{isolation:auto;overflow:visible;background:rgba(8,8,8,.18)}.service-panel::before,.service-panel::after{display:none}.service-panel:nth-child(even){background:rgba(255,255,255,.025)}

/* Alternative mobile structures for Process and Values */
@media(max-width:768px){
  .process-list-static{display:block;margin:0;padding:0 0 0 28px;overflow:visible;border-left:1px solid #4a4a46}.process-list-static article{position:relative;display:grid;grid-template-columns:1fr auto;gap:8px;min-height:0;margin:0;padding:30px 0 34px 22px;border:0;border-bottom:1px solid #343431;background:transparent}.process-list-static article::before{content:"";position:absolute;left:-33px;top:35px;width:9px;height:9px;border-radius:50%;background:#111;border:1px solid #aaa}.process-list-static small{grid-column:1;color:#777}.process-list-static h3{grid-column:1;margin:14px 0 8px;font-size:23px}.process-list-static p{grid-column:1/3;margin:0;color:#aaa;font-size:12px;line-height:1.9}.process-list-static article:last-child{border-bottom:0}
  .values-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;overflow:visible}.value-card{min-width:0;min-height:250px;padding:26px 18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035)}.value-icon{width:52px;height:52px;margin-bottom:34px}.value-card h3{font-size:16px;letter-spacing:.04em}.value-card p{font-size:12px;line-height:1.8}.value-card span{margin:14px 0}
  .services-scroll{background:#090909!important}.services-background{display:none}.service-panel{margin:0 12px 18px;background:transparent;backdrop-filter:none}.service-panel:nth-child(even){background:rgba(255,255,255,.018)}
}

/* Minimal menu trigger */
.menu-trigger{width:42px;right:36px}.menu-trigger-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.menu-trigger i{width:38px}.menu-trigger i:nth-of-type(1){top:19px}.menu-trigger i:nth-of-type(2){top:27px}

/* In-page position rail */
.page-rail{position:fixed;z-index:500;right:34px;top:50%;display:flex;align-items:stretch;gap:17px;opacity:0;visibility:hidden;transform:translateY(-46%);transition:opacity .55s ease,transform .55s cubic-bezier(.16,1,.3,1),visibility 0s .55s;color:#fff;mix-blend-mode:difference}.page-rail.visible{opacity:1;visibility:visible;transform:translateY(-50%);transition:opacity .55s ease,transform .55s cubic-bezier(.16,1,.3,1)}.page-rail-line{position:relative;width:1px;background:rgba(255,255,255,.28)}.page-rail-line i{position:absolute;top:0;left:0;width:1px;height:12.5%;background:#fff;transform:translateY(0);transition:transform .65s cubic-bezier(.16,1,.3,1)}.page-rail-links{display:flex;flex-direction:column;justify-content:space-between;gap:13px}.page-rail a{position:relative;color:rgba(255,255,255,.48);text-decoration:none;font:8px "Cinzel",serif;letter-spacing:.2em;transition:color .4s,transform .4s}.page-rail a::before{content:"";position:absolute;left:-18px;top:50%;width:5px;height:1px;background:currentColor;opacity:0;transition:opacity .35s}.page-rail a:hover,.page-rail a.active{color:#fff;transform:translateX(-4px)}.page-rail a.active::before{opacity:1}

/* Process / Values gateways */
.chapter-gateway{--chapter-image:none;position:relative;isolation:isolate;min-height:120vh;display:flex;align-items:center;overflow:hidden;background:#111;color:#fff}.chapter-parallax{position:absolute;z-index:-2;inset:-12%;background-image:linear-gradient(90deg,rgba(5,5,5,.88) 0%,rgba(5,5,5,.5) 55%,rgba(5,5,5,.32)),var(--chapter-image);background-position:center;background-size:cover;filter:grayscale(1) brightness(.72);transform:scale(1.06)}.chapter-gateway::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.16),transparent 45%,rgba(0,0,0,.3))}.chapter-link{position:relative;display:grid;place-items:center;width:min(660px,46vw);aspect-ratio:1;margin-left:5vw;color:#fff;text-decoration:none}.chapter-orbit,.chapter-orbit::before,.chapter-orbit::after,.chapter-orbit i{position:absolute;inset:0;border-radius:50%;pointer-events:none}.chapter-orbit::before,.chapter-orbit::after{content:"";border:1px solid rgba(255,255,255,.72);transition:transform 1s cubic-bezier(.16,1,.3,1),opacity .7s}.chapter-orbit::after{inset:5.5%;border-color:rgba(255,255,255,.18);transform:scale(.88);opacity:0}.chapter-orbit i:first-child{border-top:1px solid #fff;transform:rotate(-32deg);animation:chapter-ring 13s linear infinite}.chapter-orbit i:last-child{inset:12%;border-right:1px solid rgba(255,255,255,.32);transform:rotate(44deg);animation:chapter-ring-reverse 17s linear infinite}.chapter-link:hover .chapter-orbit::before{transform:scale(.96)}.chapter-link:hover .chapter-orbit::after{transform:scale(1);opacity:1}.chapter-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;width:58%;margin-left:-5%;text-shadow:0 2px 24px rgba(0,0,0,.45)}.chapter-content small{display:flex;align-items:center;gap:24px;width:100%;font:9px "Cinzel",serif;letter-spacing:.24em}.chapter-content small::after{content:"";width:86px;height:1px;background:rgba(255,255,255,.55)}.chapter-content strong{margin:42px 0 35px;font:300 clamp(62px,7vw,112px)/.95 "Cinzel",serif;letter-spacing:-.03em}.chapter-content em{font:400 clamp(18px,1.7vw,27px) "Noto Serif JP",serif;font-style:normal;letter-spacing:.12em}.chapter-copy{margin-top:30px;color:rgba(255,255,255,.73);font-size:12px;line-height:2;letter-spacing:.08em}.chapter-view{display:flex;justify-content:space-between;width:100%;margin-top:60px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.62);font:10px "Cinzel",serif;letter-spacing:.18em}.chapter-view b{font-size:17px;font-weight:300;transition:transform .45s}.chapter-link:hover .chapter-view b{transform:translateX(8px)}.chapter-values{justify-content:flex-end}.chapter-values .chapter-link{margin:0 7vw 0 0}.chapter-values .chapter-parallax{background-image:linear-gradient(270deg,rgba(5,5,5,.86) 0%,rgba(5,5,5,.42) 58%,rgba(5,5,5,.3)),var(--chapter-image)}
@keyframes chapter-ring{to{transform:rotate(328deg)}}@keyframes chapter-ring-reverse{to{transform:rotate(-316deg)}}

@media(max-width:768px){.menu-trigger{right:18px;width:38px}.page-rail{display:none}.chapter-gateway{min-height:92svh;padding:80px 0}.chapter-parallax{inset:-8%;background-image:linear-gradient(180deg,rgba(5,5,5,.48),rgba(5,5,5,.84)),var(--chapter-image)}.chapter-link,.chapter-values .chapter-link{width:88vw;aspect-ratio:1;margin:0 auto}.chapter-content{width:60%;margin-left:-2%}.chapter-content strong{margin:28px 0;font-size:13vw}.chapter-content em{font-size:16px;line-height:1.7}.chapter-copy{display:none}.chapter-view{margin-top:38px}.chapter-orbit i{animation-duration:20s}}
@media(prefers-reduced-motion:reduce){.chapter-orbit i{animation:none}.chapter-parallax{transform:none!important}}

/* Mission image dissolves into the page */
.mission-section{isolation:isolate;background:#080808;color:#f4f1ea;min-height:100vh}.mission-section::before{content:"";position:absolute;z-index:-2;inset:0;background-image:linear-gradient(90deg,#080808 0%,rgba(8,8,8,.96) 20%,rgba(8,8,8,.56) 48%,rgba(8,8,8,.14) 78%),linear-gradient(180deg,rgba(8,8,8,.18) 0%,transparent 44%,#080808 100%),url("images/tsuru-photo.png");background-position:center,center,right center;background-size:cover,cover,cover;background-repeat:no-repeat;filter:grayscale(1)}.mission-section::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 72% 42%,transparent 0%,rgba(8,8,8,.12) 38%,rgba(8,8,8,.5) 100%)}.mission-content{grid-template-columns:1fr;margin-top:16vh;padding-left:7vw}.mission-text{max-width:620px}.mission-visual{display:none}.mission-head{position:relative;z-index:1}.mission-text h2{font-size:clamp(38px,4vw,64px)}

/* Minimal Branding Challenges portal */
.challenges-section{min-height:108vh;display:flex;align-items:center;padding:13vh 5vw;background:#efede7}.challenges-geometry{z-index:-2}.challenges-section::after{z-index:-1;background:rgba(239,237,231,.58)}.challenges-gateway{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;width:min(1380px,100%);min-height:62vh;margin:auto;padding:5vw 6vw;border:1px solid rgba(23,23,20,.5);border-radius:4px;color:#171714;text-decoration:none;overflow:hidden;transition:background .6s,color .6s}.challenges-gateway::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,rgba(255,255,255,.5),transparent 58%);opacity:.7;transition:opacity .6s}.challenges-gateway:hover{background:rgba(17,17,15,.94);color:#f0ede6}.challenges-gateway:hover::before{opacity:0}.challenges-gateway-copy{display:flex;flex-direction:column;align-items:flex-start}.challenges-gateway small{font:9px "Cinzel",serif;letter-spacing:.24em}.challenges-gateway strong{margin:5vh 0 4vh;font:300 clamp(48px,7vw,108px)/.93 "Cinzel",serif;letter-spacing:-.03em}.challenges-gateway em{font:400 16px "Noto Serif JP",serif;font-style:normal;letter-spacing:.12em}.challenges-gateway-view{display:flex;justify-content:space-between;width:min(320px,100%);padding-bottom:12px;border-bottom:1px solid currentColor;font:10px "Cinzel",serif;letter-spacing:.18em}.challenges-gateway-view b{font-size:18px;font-weight:300;transition:transform .45s}.challenges-gateway:hover .challenges-gateway-view b{transform:translateX(8px)}

/* Process opens like a case study */
.chapter-layer{position:fixed;inset:0;z-index:10000;background:#111;visibility:hidden;opacity:0;transform:translateY(100%);transition:transform .9s cubic-bezier(.76,0,.24,1),opacity .45s,visibility 0s .9s}.chapter-layer.active{visibility:visible;opacity:1;transform:translateY(0);transition:transform .9s cubic-bezier(.76,0,.24,1),opacity .45s}.chapter-layer iframe{width:100%;height:100%;border:0;opacity:0;transition:opacity .6s}.chapter-layer.loaded iframe{opacity:1}.chapter-layer-loader{position:absolute;inset:0;display:grid;place-content:center;gap:18px;text-align:center;color:#eee;transition:opacity .35s}.chapter-layer.loaded .chapter-layer-loader{opacity:0;pointer-events:none}.chapter-layer-loader span{width:42px;height:1px;background:#eee;animation:case-load 1.1s infinite ease-in-out}.chapter-layer-loader p{font:9px "Cinzel",serif;letter-spacing:.22em}.chapter-layer-close{position:absolute;z-index:2;top:24px;left:28px;width:70px;height:70px;border:0;border-radius:50%;background:#111;color:#fff;cursor:pointer}.chapter-layer-close span{position:absolute;top:34px;left:23px;width:24px;height:1px;background:#fff}.chapter-layer-close span:first-child{transform:rotate(45deg)}.chapter-layer-close span:nth-child(2){transform:rotate(-45deg)}.chapter-layer-close em{position:absolute;left:0;right:0;bottom:-20px;color:#111;font:9px "Cinzel",serif;font-style:normal;letter-spacing:.14em}body.chapter-open{overflow:hidden}

@media(max-width:768px){.mission-section{min-height:92svh;padding:80px 24px 100px}.mission-section::before{background-image:linear-gradient(180deg,rgba(8,8,8,.28),rgba(8,8,8,.72) 58%,#080808 100%),linear-gradient(90deg,rgba(8,8,8,.72),rgba(8,8,8,.12)),url("images/tsuru-photo.png");background-size:cover,cover,auto 70%;background-position:center,center,72% 10%}.mission-content{margin-top:28vh;padding:0}.mission-text h2{font-size:34px}.mission-copy{color:rgba(247,244,238,.78)}.challenges-section{min-height:90svh;padding:70px 18px}.challenges-gateway{min-height:68svh;padding:42px 28px}.challenges-gateway strong{margin:8vh 0 4vh;font-size:15vw}.challenges-gateway em{font-size:14px;line-height:1.8}.chapter-layer-close{top:14px;left:14px;width:56px;height:56px}.chapter-layer-close span{top:28px;left:17px}}

/* Seamless dark scene: Mission → Challenges → Process */
.mission-section::after{background:linear-gradient(180deg,transparent 52%,rgba(8,8,8,.58) 76%,#080808 100%);filter:none;transform:none;animation:none}.challenges-section,.chapter-process{background:#080808;color:#eee}.challenges-section::before,.chapter-process::before{display:none}.challenges-section::after,.chapter-process::after{background:transparent}.challenges-geometry{opacity:.46}.challenges-gateway{min-height:58vh;border-color:rgba(255,255,255,.3);color:#eee;background:transparent;backdrop-filter:none}.challenges-gateway::before{background:transparent}.challenges-gateway:hover{background:rgba(255,255,255,.045);color:#fff}.challenges-gateway strong{margin-top:7vh}.chapter-process .chapter-parallax{inset:0;background:#080808;filter:none;transform:none!important}.chapter-process .chapter-link{z-index:1}
@media(max-width:768px){.challenges-gateway strong{font-size:14vw}.challenges-geometry{opacity:.36}.chapter-process .chapter-parallax{inset:0}}

/* Challenges is a compact continuation of Mission */
.mission-challenge-link{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;width:min(430px,calc(100% - 26vw));margin:50px 0 0 13vw;padding:18px 0;border-top:1px solid rgba(255,255,255,.32);border-bottom:1px solid rgba(255,255,255,.32);color:#eee;text-decoration:none;transition:border-color .45s,color .45s}.mission-challenge-link>span{display:flex;align-items:baseline;gap:22px}.mission-challenge-link small{font:8px "Cinzel",serif;letter-spacing:.22em;color:#8e8d87}.mission-challenge-link strong{font:400 13px "Noto Serif JP",serif;letter-spacing:.08em}.mission-challenge-link>b{font-size:18px;font-weight:300;transition:transform .45s cubic-bezier(.16,1,.3,1)}.mission-challenge-link:hover{border-color:rgba(255,255,255,.72);color:#fff}.mission-challenge-link:hover>b{transform:translateX(7px)}

/* Geometry now belongs to the Process scene */
.chapter-process{isolation:isolate}.chapter-process .chapter-parallax{display:none}.chapter-process .challenges-geometry{z-index:0;opacity:.42}.chapter-process .chapter-link{position:relative;z-index:1}
@media(max-width:768px){.mission-challenge-link{width:100%;margin:42px 0 0;padding:17px 0}.mission-challenge-link>span{display:block}.mission-challenge-link small{display:block;margin-bottom:9px}.mission-challenge-link strong{font-size:12px}.chapter-process .challenges-geometry{opacity:.32}}

/* More visible Mission challenge portal */
.mission-challenge-link{isolation:isolate;width:min(620px,calc(100% - 26vw));min-height:176px;margin-top:72px;padding:36px 34px;border:0;background:rgba(8,8,8,.2);overflow:hidden}.mission-challenge-link::before{content:"";position:absolute;z-index:-1;inset:0;border:1px solid rgba(255,255,255,.34);border-radius:2px;transition:border-color .5s,background .5s}.mission-challenge-link::after{content:"";position:absolute;z-index:-1;top:0;left:-36%;width:34%;height:1px;background:linear-gradient(90deg,transparent,#fff,transparent);box-shadow:0 0 14px rgba(255,255,255,.45);animation:challenge-trace 6.5s cubic-bezier(.55,0,.25,1) infinite}.mission-challenge-link>span{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.mission-challenge-link small{font-size:9px;color:#aaa8a1}.mission-challenge-link strong{font-size:clamp(18px,1.5vw,23px);line-height:1.7}.mission-challenge-link>b{display:grid;place-items:center;flex:0 0 auto;width:58px;height:58px;border:1px solid rgba(255,255,255,.46);border-radius:50%;font-size:20px}.mission-challenge-link:hover::before{border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.035)}.mission-challenge-link:hover>b{transform:translateX(5px) rotate(-8deg)}
@keyframes challenge-trace{0%{left:-36%;top:0}42%{left:102%;top:0}43%{left:auto;right:0;top:0;width:1px;height:0}68%{left:auto;right:0;top:0;width:1px;height:100%}69%{top:auto;right:0;bottom:0;width:0;height:1px}100%{top:auto;right:100%;bottom:0;width:34%;height:1px}}
@media(max-width:768px){.mission-challenge-link{width:100%;min-height:152px;margin:52px 0 0;padding:28px 24px}.mission-challenge-link strong{font-size:17px}.mission-challenge-link>b{width:48px;height:48px}}
@media(prefers-reduced-motion:reduce){.mission-challenge-link::after{animation:none}}

/* Keep chapter close control legible over changing imagery */
.chapter-layer-close{background:#fff!important;color:#000!important;mix-blend-mode:difference}.chapter-layer-close span{background:#000!important}.chapter-layer-close em{color:#fff!important}

/* Founder contact map */
.contact-map-section{position:relative;isolation:isolate;min-height:800px;padding:100px 6vw;overflow:hidden;background:#080909;color:#eee}.contact-map-section::before{content:"";position:absolute;z-index:1;top:0;left:6vw;right:6vw;height:1px;background:rgba(255,255,255,.38)}.contact-map-bg{position:absolute;z-index:-2;inset:0;background:url("images/kawagoe-contact-map.png") center/cover no-repeat;filter:grayscale(1)}.contact-map-section::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#080909 0%,rgba(8,9,9,.98) 24%,rgba(8,9,9,.72) 43%,rgba(8,9,9,.12) 76%,rgba(8,9,9,.32) 100%),linear-gradient(180deg,#080909 0%,transparent 18%,transparent 78%,#080909 100%)}.contact-map-list{position:relative;z-index:2;width:min(590px,44vw);margin-top:120px}.contact-map-list>a,.contact-map-list>div{display:grid;grid-template-columns:94px 1fr;align-items:center;gap:30px;min-height:145px;border-bottom:1px solid rgba(255,255,255,.1);color:#eee;text-decoration:none}.contact-map-list>a:last-of-type{border-bottom:1px solid rgba(255,255,255,.1)}.contact-map-icon{display:grid;place-items:center;width:72px;height:72px;border:1px solid rgba(255,255,255,.55);border-radius:50%;transition:border-color .4s,background .4s,transform .5s}.contact-map-icon svg{width:34px;height:34px;fill:none;stroke:#aaa;stroke-width:1.2}.contact-map-list small{display:block;margin-bottom:18px;font:10px "Cinzel",serif;letter-spacing:.28em}.contact-map-list strong{display:block;color:#92928f;font:300 13px "Noto Sans JP",sans-serif;letter-spacing:.09em}.contact-map-list>a:hover .contact-map-icon{transform:rotate(-8deg) scale(1.06);border-color:#fff;background:rgba(255,255,255,.06)}.contact-map-list>a:hover strong{color:#ddd}.contact-map-pin{position:absolute;z-index:2;left:68%;top:50%;width:60px;height:170px;transform:translate(-50%,-35%)}.contact-map-pin svg{position:absolute;top:0;left:6px;width:48px;height:64px;fill:#eee}.contact-map-pin svg circle{fill:#080909}.contact-map-pin i{position:absolute;top:58px;left:29px;width:1px;height:112px;background:linear-gradient(#eee,transparent);box-shadow:0 0 10px #fff}.contact-map-pin::after{content:"";position:absolute;left:23px;bottom:0;width:13px;height:5px;border-radius:50%;background:#fff;filter:blur(4px);box-shadow:0 0 22px #fff}.contact-map-section.is-visible .contact-map-pin{animation:map-pin-arrive 1.2s cubic-bezier(.16,1,.3,1) both}.contact-map-section.is-visible .contact-map-bg{animation:map-reveal 1.6s ease both}@keyframes map-pin-arrive{from{opacity:0;transform:translate(-50%,-70%)}to{opacity:1;transform:translate(-50%,-35%)}}@keyframes map-reveal{from{opacity:.2;transform:scale(1.04)}to{opacity:1;transform:none}}
@media(max-width:768px){.contact-map-section{min-height:760px;padding:75px 24px}.contact-map-section::before{left:24px;right:24px}.contact-map-bg{background-position:63% center;opacity:.58}.contact-map-section::after{background:linear-gradient(180deg,#080909 0%,rgba(8,9,9,.8) 50%,rgba(8,9,9,.25) 80%,#080909 100%)}.contact-map-list{width:100%;margin-top:50px}.contact-map-list>a,.contact-map-list>div{grid-template-columns:72px 1fr;gap:18px;min-height:120px}.contact-map-icon{width:58px;height:58px}.contact-map-list strong{font-size:11px;letter-spacing:.03em;overflow-wrap:anywhere}.contact-map-pin{left:68%;top:73%;transform:translate(-50%,-35%) scale(.8)}}

.contact-map-bg{background-image:url("images/kawagoe-contact-map.webp")}

/* WebGL title accents */
.title-fx-canvas{position:fixed;z-index:40;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:difference}.rich-title{position:relative;isolation:isolate;will-change:transform,opacity,filter,clip-path}

/* Quiet typographic opening */
body.luxury-opening-active{overflow:hidden}.luxury-opening{position:fixed;z-index:20000;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 44%,#101110 0%,#080908 44%,#040504 100%);color:#f1eee7;opacity:1;transition:opacity .55s cubic-bezier(.4,0,.2,1);pointer-events:auto}.luxury-opening::before{content:"";position:absolute;left:12%;right:12%;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);transform:scaleX(.2);opacity:0;animation:opening-horizon 2.7s .5s cubic-bezier(.16,1,.3,1) forwards}.luxury-opening::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 15%,rgba(0,0,0,.26) 72%,rgba(0,0,0,.58) 100%)}.luxury-opening.is-ending{opacity:0;pointer-events:none}.luxury-opening-brand{position:relative;z-index:1;text-align:center}.luxury-opening-brand img{width:95px;margin-bottom:24px;opacity:0}.luxury-opening-title{display:flex;justify-content:center;align-items:center;gap:1em;margin:0;font:400 clamp(40px,4.4vw,84px)/1 "Cinzel",serif;letter-spacing:.08em}.opening-word{display:flex;gap:.42em}.luxury-opening-title i{display:inline-block;opacity:0;font-style:normal}.luxury-opening-copy{margin-top:52px;opacity:0;color:rgba(247,244,238,.62);font:400 16px/2.2 "Cinzel",serif;letter-spacing:.52em}.luxury-opening-active .menu-trigger,.luxury-opening-active .page-rail,.luxury-opening-active .fixed-copy{opacity:0!important}@keyframes opening-horizon{45%{opacity:1}100%{opacity:.35;transform:scaleX(1)}}
@media(max-width:768px){.luxury-opening-title{flex-direction:column;gap:.35em;font-size:34px}.luxury-opening-brand img{width:54px}.luxury-opening-copy{margin-top:36px;font-size:11px;letter-spacing:.32em}}
@media(prefers-reduced-motion:reduce){.luxury-opening{display:none}}

/* Compact Process portal */
.chapter-process{min-height:94vh;padding:70px 0}.chapter-process .chapter-link{width:min(520px,38vw);margin-left:8vw}.chapter-process .chapter-content{width:60%;margin-left:-3%}.chapter-process .chapter-content strong{margin:30px 0 25px;font-size:clamp(48px,5.4vw,82px)}.chapter-process .chapter-content em{font-size:clamp(15px,1.35vw,21px)}.chapter-process .chapter-copy{margin-top:22px;font-size:11px}.chapter-process .chapter-view{margin-top:38px}
@media(max-width:768px){.chapter-process{min-height:78svh;padding:58px 0}.chapter-process .chapter-link{width:78vw;margin:0 auto}.chapter-process .chapter-content{width:62%;margin-left:-2%}.chapter-process .chapter-content strong{margin:22px 0 19px;font-size:11vw}.chapter-process .chapter-content em{font-size:14px}.chapter-process .chapter-view{margin-top:28px}}

.services-page-progress{position:fixed;z-index:80;top:50%;right:30px;display:flex;flex-direction:column;align-items:center;gap:15px;opacity:0;visibility:hidden;transform:translate(14px,-50%);transition:opacity .4s,visibility .4s,transform .5s;color:#777;pointer-events:none}.services-page-progress.visible{opacity:1;visibility:visible;transform:translate(0,-50%)}.services-page-progress>span{font:8px "Cinzel",serif;letter-spacing:.22em;writing-mode:vertical-rl}.services-page-progress>div{position:relative;width:1px;height:150px;background:rgba(255,255,255,.16);overflow:hidden}.services-page-progress>div i{position:absolute;inset:0;width:1px;background:#eee;transform:scaleY(0);transform-origin:top;box-shadow:0 0 8px rgba(255,255,255,.55)}.services-page-progress>b{min-width:24px;color:#aaa;font:300 8px "Cinzel",serif;letter-spacing:.12em;text-align:center}.services-page-progress>b::after{content:"%"}body.services-progress-active .page-rail{opacity:0!important;pointer-events:none}@media(max-width:700px){.services-page-progress{right:10px}.services-page-progress>span{display:none}.services-page-progress>div{height:96px}.services-page-progress>b{font-size:7px}}

/* KNOWLEDGE — ideas tested through prototypes */
.knowledge-section{position:relative;z-index:1;padding:150px 5.5vw 170px;overflow:hidden;background:#080808;color:#eee}.knowledge-section::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 67% 18%,rgba(255,255,255,.045),transparent 32%),linear-gradient(180deg,#080808,#0b0b0a 58%,#080808)}.knowledge-heading{max-width:700px;margin:0 0 90px 6vw}.knowledge-heading>div{display:flex;align-items:center;gap:20px}.knowledge-heading>div small{font:9px "Cinzel",serif;letter-spacing:.25em;color:#85847f}.knowledge-heading>div i{display:block;width:34px;height:1px;background:#777}.knowledge-heading h2{margin:27px 0 10px;font:300 clamp(35px,4vw,62px)/1.15 "Cinzel",serif;letter-spacing:.04em}.knowledge-heading>p{margin:0 0 25px;font:300 18px "Noto Serif JP",serif;letter-spacing:.12em}.knowledge-heading>span{display:block;color:#888;font:300 12px/2.2 "Noto Sans JP",sans-serif;letter-spacing:.06em}.knowledge-list{max-width:1380px;margin:auto}.knowledge-card{position:relative;display:grid;grid-template-columns:minmax(270px,.42fr) minmax(0,1fr);height:390px;border:1px solid rgba(255,255,255,.13);background:#0a0a09;overflow:hidden;transition:height .8s cubic-bezier(.16,1,.3,1),grid-template-columns .8s cubic-bezier(.16,1,.3,1),border-color .5s,box-shadow .6s}.knowledge-card:hover{grid-template-columns:minmax(300px,.34fr) minmax(0,1fr);height:540px;border-color:rgba(255,255,255,.4);box-shadow:0 35px 90px rgba(0,0,0,.5)}.knowledge-card-copy{position:relative;z-index:2;padding:45px 4vw}.knowledge-card-copy>small{font:11px "Cinzel",serif;letter-spacing:.18em;color:#aaa}.knowledge-card-copy>small::after{content:"";display:block;width:28px;height:1px;margin-top:14px;background:#777}.knowledge-card h3{margin:30px 0 24px;font:300 clamp(22px,2.2vw,34px)/1.35 "Cinzel",serif;letter-spacing:.18em}.knowledge-card-copy>p{max-width:390px;margin:0;color:#898985;font:300 11px/2.1 "Noto Sans JP",sans-serif;letter-spacing:.05em}.knowledge-card-copy>span{position:absolute;left:4vw;bottom:40px;font:9px "Cinzel",serif;letter-spacing:.16em;color:#aaa}.knowledge-card-copy>span i{display:inline-block;margin-left:18px;font-style:normal;transition:transform .4s}.knowledge-card:hover .knowledge-card-copy>span i{transform:translateX(8px)}.knowledge-media{position:relative;min-width:0;overflow:hidden;background:#10100e}.knowledge-media video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.62);transform:scale(1.025);transition:filter .8s,transform 1.4s cubic-bezier(.16,1,.3,1)}.knowledge-card:hover video,.knowledge-card.previewing video{filter:grayscale(.25) brightness(.8);transform:scale(1)}.knowledge-media-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.5),transparent 30%),linear-gradient(180deg,transparent 65%,rgba(0,0,0,.35));pointer-events:none}.knowledge-media>small{position:absolute;right:24px;bottom:20px;font:8px "Cinzel",serif;letter-spacing:.18em;color:#aaa}.knowledge-media>b{position:absolute;top:22px;right:24px;font:300 8px "Cinzel",serif;letter-spacing:.17em;color:#999;transition:opacity .4s}.knowledge-card:hover .knowledge-media>b,.knowledge-card.previewing .knowledge-media>b{opacity:0}.knowledge-note{max-width:1380px;margin:38px auto 0;text-align:right;color:#555;font:8px "Cinzel",serif;letter-spacing:.2em}
@media(max-width:768px){.knowledge-section{padding:100px 18px 115px}.knowledge-heading{margin:0 6px 60px}.knowledge-heading h2{font-size:10vw}.knowledge-heading>p{font-size:15px}.knowledge-heading>span br{display:none}.knowledge-card{display:flex;flex-direction:column;height:auto;min-height:670px}.knowledge-card:hover{height:auto}.knowledge-card-copy{min-height:310px;padding:32px 26px}.knowledge-card h3{font-size:25px}.knowledge-card-copy>p{font-size:11px}.knowledge-card-copy>span{left:26px;bottom:28px}.knowledge-media{flex:1;min-height:330px;order:-1}.knowledge-media video{filter:grayscale(.2) brightness(.78)}.knowledge-media>b{display:none}.knowledge-note{text-align:left;line-height:1.8}}

/* KNOWLEDGE full-bleed moving background */
.knowledge-card{display:block;height:430px}.knowledge-card:hover{height:570px}.knowledge-media{position:absolute;z-index:0;inset:0}.knowledge-media video{position:absolute;inset:0;width:100%;height:100%;object-position:center center}.knowledge-media-shade{background:linear-gradient(90deg,#080808 0%,rgba(8,8,8,.99) 18%,rgba(8,8,8,.9) 35%,rgba(8,8,8,.55) 50%,rgba(8,8,8,.1) 72%),linear-gradient(180deg,rgba(0,0,0,.12),transparent 62%,rgba(0,0,0,.5))}.knowledge-card-copy{position:absolute;z-index:2;inset:0 auto 0 0;width:min(500px,42%);padding:45px 4vw;background:linear-gradient(90deg,rgba(8,8,8,.82),transparent)}.knowledge-media>small,.knowledge-media>b{z-index:3}.knowledge-card-copy>p{color:#aaa}
@media(max-width:768px){.knowledge-card{display:block;height:660px;min-height:0}.knowledge-card:hover{height:660px}.knowledge-media{min-height:0;order:initial}.knowledge-media video{object-position:58% center}.knowledge-media-shade{background:linear-gradient(180deg,rgba(8,8,8,.25) 0%,rgba(8,8,8,.55) 42%,rgba(8,8,8,.98) 68%,#080808 100%),linear-gradient(90deg,rgba(8,8,8,.6),transparent)}.knowledge-card-copy{inset:auto 0 0;width:100%;min-height:365px;padding:34px 26px;background:linear-gradient(180deg,transparent,#080808 20%)}.knowledge-card-copy>span{left:26px;bottom:28px}.knowledge-media>small{top:22px;right:18px;bottom:auto}}

.knowledge-section{padding-top:125px}.knowledge-card,.knowledge-card:hover{height:470px}.knowledge-media video{object-position:right center}.knowledge-card-copy{display:flex;flex-direction:column;justify-content:center}.knowledge-card h3{margin-top:0}.knowledge-card-copy>span{bottom:42px}
@media(max-width:768px){.knowledge-section{padding-top:85px}.knowledge-card,.knowledge-card:hover{height:620px}.knowledge-media video{object-position:right center}.knowledge-card-copy{display:block;justify-content:initial;min-height:330px}.knowledge-card h3{margin-top:0}}

/* Keep the preview contained on the right, not as a full-card background */
.knowledge-card,.knowledge-card:hover{display:grid;grid-template-columns:minmax(330px,38%) minmax(0,62%);height:470px}.knowledge-card-copy{position:relative;inset:auto;width:auto;height:100%;padding:45px 4vw;background:#090909}.knowledge-media{position:relative;inset:auto;width:100%;height:100%;background:#050505}.knowledge-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:right center;transform:none}.knowledge-card:hover video,.knowledge-card.previewing video{transform:none}.knowledge-media-shade{background:linear-gradient(90deg,rgba(8,8,8,.4),transparent 13%),linear-gradient(180deg,rgba(0,0,0,.08),transparent 70%,rgba(0,0,0,.28))}
@media(max-width:768px){.knowledge-card,.knowledge-card:hover{display:flex;flex-direction:column;height:auto;min-height:610px}.knowledge-media{order:-1;flex:0 0 auto;height:auto;min-height:0;aspect-ratio:16/9}.knowledge-media video{object-fit:contain;object-position:right center}.knowledge-card-copy{width:100%;height:auto;min-height:310px;padding:34px 26px}.knowledge-media-shade{background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.4))}}

.knowledge-detail-link{position:absolute;z-index:5;inset:0}

.knowledge-section{padding-top:12px;padding-bottom:12px}.knowledge-note{margin-top:10px;margin-bottom:0}@media(max-width:768px){.knowledge-section{padding-top:10px;padding-bottom:10px}.knowledge-note{margin-top:8px}}

/* Knowledge journal still-image treatment */
.knowledge-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:grayscale(.3) brightness(.74);transition:filter .8s,transform 1.4s cubic-bezier(.16,1,.3,1)}
.knowledge-card:hover .knowledge-media>img{filter:grayscale(0) brightness(.84);transform:scale(1.025)}
.knowledge-note{display:block;color:#aaa;text-align:right;text-decoration:none;font:8px "Cinzel",serif;letter-spacing:.2em}

/* Top page / Knowledge editorial panel */
.knowledge-section#knowledge{position:relative;z-index:3;padding:0 6.8vw 96px!important;background:#111;color:#171714;overflow:visible}
.knowledge-panel{position:relative;display:grid;grid-template-columns:minmax(250px,1.05fr) minmax(620px,2.8fr) minmax(145px,.72fr);align-items:center;gap:4.2vw;width:100%;min-height:390px;padding:58px 4.3vw 56px;background-color:#efede9;background-image:radial-gradient(circle at 16% 18%,rgba(255,255,255,.6),transparent 30%),repeating-linear-gradient(90deg,rgba(40,35,30,.012) 0,rgba(40,35,30,.012) 1px,transparent 1px,transparent 4px);box-shadow:0 30px 90px rgba(0,0,0,.26)}
.knowledge-intro{align-self:stretch;display:flex;flex-direction:column;padding:7px 0 0}
.knowledge-intro p{display:flex;align-items:center;gap:20px;margin:0 0 31px;font:400 10px "Cinzel",serif;letter-spacing:.25em}
.knowledge-intro p i{display:block;width:42px;height:1px;background:#777}
.knowledge-intro h2{margin:0 0 29px;font:300 clamp(18px,1.55vw,25px)/1.7 "Noto Serif JP",serif;letter-spacing:.1em;white-space:nowrap}
.knowledge-intro>div{font:300 11px/1.85 "Noto Sans JP",sans-serif;letter-spacing:.045em}
.knowledge-intro>b{display:block;width:72%;height:1px;margin-top:auto;background:#777;transform:rotate(-19deg);transform-origin:left center}
.knowledge-articles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;align-self:start}
.knowledge-entry{position:relative;display:block;min-width:0;color:#171714;text-decoration:none}
.knowledge-entry figure{height:173px;margin:0 0 14px;overflow:hidden;background:#111}
.knowledge-entry img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.75);transition:transform .8s cubic-bezier(.16,1,.3,1),filter .5s}
.knowledge-entry:hover img{transform:scale(1.045);filter:grayscale(.35) brightness(.86)}
.knowledge-entry time{display:block;margin:0 9px 12px;font:400 7px "Cinzel",serif;letter-spacing:.13em}
.knowledge-entry h3{min-height:57px;margin:0 9px 14px;font:300 clamp(13px,1.02vw,16px)/1.75 "Noto Serif JP",serif;letter-spacing:.055em}
.knowledge-entry small{display:block;margin-left:9px;font:400 7px "Cinzel",serif;letter-spacing:.17em}
.knowledge-entry>i{display:block;width:20px;height:1px;margin:12px 0 0 9px;background:#777;transition:width .35s}
.knowledge-entry:hover>i{width:42px}
.knowledge-view-all{align-self:center;display:block;padding:10px 0;color:#171714;text-decoration:none;font:400 9px/2 "Cinzel",serif;letter-spacing:.18em}
.knowledge-view-all>i{position:relative;display:block;width:100%;height:1px;margin-top:16px;background:#777;font-style:normal}
.knowledge-view-all>i b{position:absolute;right:-1px;top:-13px;font:300 18px sans-serif;transition:transform .4s}
.knowledge-view-all:hover>i b{transform:translateX(8px)}
@media(max-width:1100px){.knowledge-panel{grid-template-columns:220px minmax(0,1fr);gap:35px}.knowledge-view-all{grid-column:2;justify-self:end;width:170px}.knowledge-entry figure{height:145px}}
@media(max-width:768px){.knowledge-section#knowledge{padding:0 14px 55px!important}.knowledge-panel{display:block;min-height:0;padding:48px 24px}.knowledge-intro{min-height:265px}.knowledge-intro p{margin-bottom:28px}.knowledge-intro h2{font-size:22px;white-space:normal}.knowledge-intro>div{font-size:11px}.knowledge-intro>b{width:125px;margin:55px 0 30px}.knowledge-articles{display:block}.knowledge-entry{margin-bottom:46px}.knowledge-entry figure{height:auto;aspect-ratio:1.42}.knowledge-entry h3{min-height:0;font-size:17px}.knowledge-view-all{width:100%;margin-top:20px}}

/* Mission / Knowledge composition from the approved full-page direction */
@media(min-width:769px){
  .mission-content{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(470px,1.1fr);align-items:end;gap:6vw;width:100%;margin-top:12vh;padding:0 7vw 8vh}
  .mission-text{max-width:620px}
  .mission-content>.mission-challenge-link{align-self:end;width:100%;max-width:620px;min-height:176px;margin:0 0 -4vh;padding:36px 34px;background:rgba(6,6,6,.28);backdrop-filter:blur(2px)}
  .mission-content>.mission-visual{display:none}
}
.knowledge-section#knowledge{min-height:900px;padding:155px 6.8vw 0!important;background-color:#0a0a09;background-image:linear-gradient(180deg,rgba(5,5,5,.06) 0%,rgba(5,5,5,.08) 55%,#0a0a09 100%),url("images/knowledge/knowledge-stage.png");background-size:cover;background-position:center top;background-repeat:no-repeat}
.knowledge-stage-copy{position:relative;z-index:1;margin-left:3.3vw;color:#f1efea}
.knowledge-stage-copy h2{margin:0;font:300 clamp(28px,3.2vw,50px)/1.7 "Noto Serif JP",serif;letter-spacing:.12em;text-shadow:0 3px 24px rgba(0,0,0,.45)}
.knowledge-stage-copy p{margin:28px 0 0;font:300 11px "Noto Sans JP",sans-serif;letter-spacing:.08em;color:#d0cdc6}
.knowledge-section#knowledge .knowledge-panel{margin-top:125px}
@media(max-width:768px){
  .mission-content>.mission-challenge-link{width:100%;margin:45px 0 0}
  .knowledge-section#knowledge{min-height:0;padding:100px 14px 55px!important;background-position:62% top;background-size:auto 650px}
  .knowledge-stage-copy{margin:0 16px 90px}
  .knowledge-stage-copy h2{font-size:29px;line-height:1.75}
  .knowledge-stage-copy p{max-width:260px;font-size:10px;line-height:1.9}
  .knowledge-section#knowledge .knowledge-panel{margin-top:0}
}

/* Final transition override: soft mist rather than a lateral panel. */
.knowledge-page-wipe{position:fixed;z-index:100000;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 20% 55%,rgba(225,225,218,.24),transparent 42%),radial-gradient(ellipse at 78% 32%,rgba(135,135,128,.2),transparent 44%),linear-gradient(135deg,rgba(7,7,7,.96),rgba(35,35,32,.94) 55%,rgba(7,7,7,.97));opacity:0;transform:scale(1.08);filter:blur(18px);transition:opacity .88s ease,transform 1.25s cubic-bezier(.16,1,.3,1),filter 1.15s ease}
.knowledge-page-wipe::before{content:"";position:absolute;inset:-25%;background:radial-gradient(ellipse at 24% 50%,rgba(238,237,231,.18),transparent 28%),radial-gradient(ellipse at 67% 62%,rgba(203,202,195,.14),transparent 31%),radial-gradient(ellipse at 51% 17%,rgba(255,255,255,.09),transparent 25%);filter:blur(42px);animation:knowledge-fog-drift 3.2s ease-in-out infinite alternate}
.knowledge-page-wipe.enter.active,.knowledge-page-wipe.active{opacity:1;transform:scale(1);filter:blur(0)}
.knowledge-page-wipe.leave:not(.active){opacity:0;transform:scale(1.1);filter:blur(22px)}
