/* SoulCraft v10 Preview — About only. Other panels retain v9.4.1 rules. */
body.is-about-mode { overflow: hidden; }

body.is-about-mode .content-frame,
body.is-about-mode .content-frame.fx-about,
body.is-about-mode .content-frame.fx-archive,
body.is-about-mode .content-frame.fx-journal {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  min-width: 0 !important;
  min-height: 0 !important;
  transform: none !important;
  overflow: hidden !important;
  background: #fff !important;
  z-index: 10;
}

body.is-about-mode .content-panel.about-panel {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 100% !important;
  padding: 0 !important;
  overflow: hidden !important;
}

body.is-about-mode .content-frame.show-content .about-panel.is-active {
  animation: aboutPageIn 600ms ease both !important;
}

@keyframes aboutPageIn { from { opacity: 0; } to { opacity: 1; } }

.about-left {
  position: absolute;
  z-index: 3;
  top: clamp(30px, 4.1vh, 62px);
  left: clamp(54px, 8.55vw, 132px);
  width: clamp(500px, 38vw, 650px);
  color: #111;
  font-family: ui-monospace,"SFMono-Regular","SF Mono",Menlo,Monaco,Consolas,"Courier New",monospace;
  font-size: clamp(8.5px, .58vw, 11px);
  line-height: 1.22;
  letter-spacing: .018em;
}

body.is-about-mode .about-panel .content-kicker {
  margin: 0 0 clamp(24px, 2.9vh, 42px) !important;
  font-size: clamp(8px, .56vw, 10px) !important;
  line-height: 1 !important;
  letter-spacing: .03em !important;
  font-weight: 600;
}

body.is-about-mode .about-panel h1 {
  margin: 0 0 6px !important;
  font-size: clamp(16px, 1.15vw, 20px) !important;
  line-height: 1 !important;
  letter-spacing: .025em !important;
  font-weight: 400 !important;
}

body.is-about-mode .about-panel p { margin: 0; }
body.is-about-mode .about-panel .about-lead {
  font-size: clamp(8.5px, .60vw, 11px) !important;
  line-height: 1.1 !important;
  margin-bottom: clamp(16px, 1.75vh, 24px) !important;
}

.about-intro p { margin-bottom: clamp(10px, 1.22vh, 17px) !important; }
.about-photo { margin: clamp(10px, 1.4vh, 20px) 0 clamp(17px, 2vh, 28px); width: clamp(286px, 18.8vw, 362px); }
.about-photo img { display: block; width: 100%; aspect-ratio: 2.04 / 1; object-fit: cover; object-position: center; background: #080808; }

.about-background { width: clamp(530px, 39vw, 675px); }
.about-background h2,
.about-practice h2 {
  margin: 0 0 6px;
  font-size: clamp(11px, .79vw, 14px);
  line-height: 1;
  letter-spacing: .04em;
  font-weight: 400;
}
.about-background p { margin-bottom: clamp(7px, .77vh, 11px) !important; }
.about-practice { margin-top: clamp(15px, 1.7vh, 24px); }
.about-practice p { line-height: 1.28 !important; }

.about-art {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 38.5vw;
  overflow: hidden;
  pointer-events: auto;
}
.about-art::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.92) 5%,rgba(255,255,255,.18) 20%,rgba(255,255,255,0) 36%);
}
#aboutNetworkCanvas { display: block; width: 100%; height: 100%; }

body.is-about-mode .fixed-index-menu { z-index: 40; }
body.is-about-mode .site-copyright { z-index: 40; }

@media (max-height: 850px) and (min-width: 900px) {
  .about-left { top: 3.3vh; font-size: 8.2px; line-height: 1.14; }
  body.is-about-mode .about-panel .content-kicker { margin-bottom: 22px !important; }
  .about-intro p { margin-bottom: 8px !important; }
  .about-photo { width: 290px; margin: 9px 0 15px; }
  .about-background p { margin-bottom: 5px !important; }
  .about-practice { margin-top: 11px; }
}

@media (max-width: 860px) {
  body.is-about-mode { overflow-y: auto; }
  body.is-about-mode .content-frame { overflow-y: auto !important; }
  body.is-about-mode .content-panel.about-panel { min-height: 1200px !important; overflow: visible !important; }
  .about-left { left: 8vw; top: 45px; width: 84vw; font-size: 9px; }
  .about-background { width: 84vw; }
  .about-art { left: 46%; opacity: .45; }
  .about-photo { width: min(62vw, 340px); }
}

/* v10 Preview r4 — enlarge the left editorial column without intruding on the generative field. */
@media (min-width: 1100px) and (min-height: 860px) {
  .about-left {
    top: clamp(22px, 2.4vh, 34px);
    left: clamp(66px, 4.35vw, 82px);
    width: clamp(570px, 38.5vw, 650px);
    font-size: clamp(9.4px, .66vw, 10.8px);
    line-height: 1.16;
    letter-spacing: .012em;
  }

  body.is-about-mode .about-panel .content-kicker {
    margin-bottom: clamp(25px, 2.8vh, 33px) !important;
    font-size: clamp(9.5px, .66vw, 10.8px) !important;
  }

  body.is-about-mode .about-panel h1 {
    margin-bottom: 8px !important;
    font-size: clamp(24px, 1.75vw, 29px) !important;
  }

  body.is-about-mode .about-panel .about-lead {
    font-size: clamp(11px, .78vw, 13px) !important;
    line-height: 1.2 !important;
    margin-bottom: clamp(18px, 2vh, 23px) !important;
  }

  .about-intro {
    font-size: clamp(11px, .76vw, 12.5px);
    line-height: 1.18;
  }

  .about-intro p {
    margin-bottom: clamp(14px, 1.45vh, 17px) !important;
  }

  .about-photo {
    width: clamp(430px, 30.4vw, 490px);
    margin: clamp(13px, 1.35vh, 17px) 0 clamp(17px, 1.8vh, 22px);
  }

  .about-background {
    width: clamp(550px, 38vw, 630px);
  }

  .about-background h2,
  .about-practice h2 {
    margin-bottom: 7px;
    font-size: clamp(14px, .96vw, 16px);
  }

  .about-background p {
    margin-bottom: clamp(6px, .65vh, 8px) !important;
  }

  .about-practice {
    margin-top: clamp(14px, 1.45vh, 18px);
  }

  .about-practice p {
    line-height: 1.18 !important;
  }

  .about-art {
    left: 43.5vw;
  }

  .about-art::before {
    background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.94) 4%,rgba(255,255,255,.2) 16%,rgba(255,255,255,0) 31%);
  }
}

@media (min-width: 1100px) and (min-height: 860px) and (max-height: 980px) {
  .about-left {
    top: 24px;
    font-size: 9.2px;
    line-height: 1.1;
  }

  body.is-about-mode .about-panel .content-kicker { margin-bottom: 22px !important; }
  body.is-about-mode .about-panel h1 { font-size: 23px !important; }
  body.is-about-mode .about-panel .about-lead { margin-bottom: 14px !important; }
  .about-intro { font-size: 10.5px; line-height: 1.1; }
  .about-intro p { margin-bottom: 10px !important; }
  .about-photo { width: 410px; margin: 10px 0 14px; }
  .about-background h2, .about-practice h2 { font-size: 13px; }
  .about-background p { margin-bottom: 4px !important; }
  .about-practice { margin-top: 10px; }
}


/* About language switch — matches the Contact v2 control. */
.about-language-control {
  display: flex;
  align-items: baseline;
  gap: .62em;
  margin: 0 0 clamp(16px, 1.75vh, 24px);
  font-size: clamp(8px, .56vw, 10px);
  line-height: 1;
  letter-spacing: .05em;
}

.about-language-label {
  color: rgba(17, 17, 17, .52);
  font-size: .82em;
  letter-spacing: .12em;
}

.about-language-separator {
  color: rgba(17, 17, 17, .32);
}

.about-language-toggle {
  appearance: none;
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 0 0 4px;
  border: 0;
  background: transparent;
  color: #111;
  font: inherit;
  font-size: 1em;
  line-height: 1;
  letter-spacing: .045em;
  cursor: pointer;
}

.about-language-toggle::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: currentColor;
  transform-origin: left center;
  transition: transform 180ms ease, opacity 180ms ease;
  opacity: .72;
}

.about-language-toggle:hover::after,
.about-language-toggle:focus-visible::after {
  transform: scaleX(.58);
  opacity: 1;
}

.about-language-toggle:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

body.is-about-mode .about-panel [data-about-lang][hidden] {
  display: none !important;
}

body.is-about-mode .about-panel .about-lang-ja {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif;
  letter-spacing: .035em;
}

body.is-about-mode .about-panel .about-intro.about-lang-ja,
body.is-about-mode .about-panel .about-background.about-lang-ja {
  line-height: 1.42;
}

@media (min-width: 1100px) and (min-height: 860px) {
  .about-language-control {
    margin-bottom: clamp(14px, 1.5vh, 18px);
    font-size: clamp(9px, .62vw, 10px);
  }

  body.is-about-mode .about-panel .about-intro.about-lang-ja,
  body.is-about-mode .about-panel .about-background.about-lang-ja {
    font-size: clamp(10px, .70vw, 11.4px);
    line-height: 1.35;
  }
}

@media (min-width: 1100px) and (min-height: 860px) and (max-height: 980px) {
  .about-language-control { margin-bottom: 10px; }
  body.is-about-mode .about-panel .about-intro.about-lang-ja,
  body.is-about-mode .about-panel .about-background.about-lang-ja {
    font-size: 9.7px;
    line-height: 1.24;
  }
}

/* r7 — About editorial two-column layout: image left, background/practice right. */
@media (min-width: 861px) {
  body.is-about-mode .about-left {
    top: clamp(118px, 13.2vh, 146px) !important;
    left: clamp(150px, 13.7vw, 220px) !important;
    width: clamp(720px, 55vw, 880px) !important;
    display: grid !important;
    grid-template-columns: clamp(300px, 21vw, 390px) minmax(360px, 1fr);
    grid-template-rows: auto auto auto auto;
    column-gap: clamp(28px, 3vw, 52px);
    align-items: start;
    font-size: clamp(8.5px, .58vw, 10px) !important;
    line-height: 1.14 !important;
  }

  body.is-about-mode .about-panel .content-kicker {
    display: none !important;
  }

  body.is-about-mode .about-panel h1,
  body.is-about-mode .about-panel .about-lead,
  body.is-about-mode .about-language-control,
  body.is-about-mode .about-intro {
    grid-column: 1 / -1;
  }

  body.is-about-mode .about-panel h1 {
    margin: 0 0 7px !important;
    font-size: clamp(20px, 1.45vw, 25px) !important;
  }

  body.is-about-mode .about-panel .about-lead {
    margin-bottom: 16px !important;
  }

  body.is-about-mode .about-language-control {
    margin-bottom: 16px !important;
  }

  body.is-about-mode .about-intro {
    max-width: 560px;
    margin-bottom: 14px;
    font-size: clamp(8.7px, .6vw, 10.2px) !important;
    line-height: 1.15 !important;
  }

  body.is-about-mode .about-intro p {
    margin-bottom: 8px !important;
  }

  body.is-about-mode .about-photo {
    grid-column: 1;
    grid-row: 5;
    width: 100% !important;
    margin: 0 !important;
  }

  body.is-about-mode .about-background {
    grid-column: 2;
    grid-row: 5;
    width: 100% !important;
    margin: 0 !important;
  }

  body.is-about-mode .about-practice {
    grid-column: 2;
    grid-row: 6;
    margin: 12px 0 0 !important;
  }

  body.is-about-mode .about-background h2,
  body.is-about-mode .about-practice h2 {
    margin-bottom: 7px !important;
    font-size: clamp(12px, .82vw, 14px) !important;
  }

  body.is-about-mode .about-background p {
    margin-bottom: 5px !important;
  }

  body.is-about-mode .about-practice p {
    line-height: 1.18 !important;
  }

  body.is-about-mode .about-practice-row {
    display: flex;
    align-items: baseline;
    flex-wrap: nowrap;
    gap: clamp(10px, 1.05vw, 17px);
    width: max-content;
    max-width: none;
    white-space: nowrap;
    font-size: clamp(7.6px, .52vw, 9px);
    line-height: 1 !important;
    letter-spacing: 0;
  }

  body.is-about-mode .about-practice-row span {
    display: inline-block;
  }

  body.is-about-mode .about-art {
    left: 49vw !important;
    opacity: .72;
  }

  body.is-about-mode .about-art::before {
    background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.97) 9%,rgba(255,255,255,.45) 24%,rgba(255,255,255,0) 42%) !important;
  }
}

@media (min-width: 861px) and (max-height: 850px) {
  body.is-about-mode .about-left {
    top: 92px !important;
    grid-template-columns: 280px minmax(330px, 1fr);
    width: min(760px, 64vw) !important;
    font-size: 8.1px !important;
  }
  body.is-about-mode .about-intro { margin-bottom: 10px; }
  body.is-about-mode .about-background p { margin-bottom: 3px !important; }
  body.is-about-mode .about-practice { margin-top: 8px !important; }
  body.is-about-mode .about-practice-row {
    gap: 9px;
    font-size: 7.4px;
  }
}

/* Experience r2 — one-screen editorial grid.
   Background shares the first text baseline; the image spans the complete
   editorial measure below Current Practice. */
@media (min-width: 861px) {
  body.is-about-mode .about-left {
    top: clamp(92px, 10.4vh, 116px) !important;
    left: clamp(150px, 13.7vw, 220px) !important;
    width: clamp(760px, 57vw, 920px) !important;
    grid-template-columns: minmax(300px, .92fr) minmax(390px, 1.08fr) !important;
    grid-template-rows: auto auto auto auto auto auto !important;
    column-gap: clamp(34px, 3.2vw, 54px) !important;
    row-gap: 0 !important;
  }

  body.is-about-mode .about-panel h1 {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
  }

  body.is-about-mode .about-panel .about-lead {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
  }

  body.is-about-mode .about-language-control {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
  }

  body.is-about-mode .about-intro {
    grid-column: 1 !important;
    grid-row: 4 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.is-about-mode .about-background {
    grid-column: 2 !important;
    grid-row: 4 !important;
    align-self: start !important;
    margin: 0 !important;
  }

  body.is-about-mode .about-practice {
    grid-column: 2 !important;
    grid-row: 5 !important;
    align-self: start !important;
    margin: 8px 0 0 !important;
  }

  body.is-about-mode .about-photo {
    grid-column: 1 / -1 !important;
    grid-row: 6 !important;
    width: 100% !important;
    height: clamp(112px, 15vh, 158px) !important;
    margin: 8px 0 0 !important;
    overflow: hidden !important;
  }

  body.is-about-mode .about-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 42% !important;
  }
}

@media (min-width: 861px) and (max-height: 850px) {
  body.is-about-mode .about-left {
    top: 82px !important;
    width: min(820px, 62vw) !important;
  }
  body.is-about-mode .about-photo {
    height: 108px !important;
    margin-top: 5px !important;
  }
  body.is-about-mode .about-practice { margin-top: 5px !important; }
}

/* About one-page preview r1 — requested vertical editorial sequence.
   Intro → Background → Current Practice → image. */
@media (min-width: 861px) {
  body.is-about-mode .about-left {
    top: clamp(62px, 7.2vh, 82px) !important;
    left: clamp(150px, 13.7vw, 220px) !important;
    width: clamp(650px, 52vw, 780px) !important;
    max-height: calc(100vh - 168px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
    font-size: clamp(7.6px, .51vw, 8.8px) !important;
    line-height: 1.08 !important;
  }

  body.is-about-mode .about-panel h1 {
    margin: 0 0 4px !important;
    font-size: clamp(18px, 1.3vw, 22px) !important;
  }

  body.is-about-mode .about-panel .about-lead {
    margin: 0 0 9px !important;
  }

  body.is-about-mode .about-language-control {
    margin: 0 0 10px !important;
  }

  body.is-about-mode .about-intro {
    order: 1;
    width: clamp(330px, 29vw, 430px) !important;
    max-width: none !important;
    margin: 0 !important;
    font-size: clamp(7.8px, .53vw, 9px) !important;
    line-height: 1.08 !important;
  }

  body.is-about-mode .about-intro p {
    margin: 0 0 6px !important;
  }

  body.is-about-mode .about-background {
    order: 2;
    width: 100% !important;
    margin: 5px 0 0 !important;
    font-size: clamp(7.5px, .50vw, 8.6px) !important;
    line-height: 1.04 !important;
  }

  body.is-about-mode .about-background h2,
  body.is-about-mode .about-practice h2 {
    margin: 0 0 4px !important;
    font-size: clamp(11px, .76vw, 13px) !important;
  }

  body.is-about-mode .about-background p {
    margin: 0 0 3px !important;
  }

  body.is-about-mode .about-practice {
    order: 3;
    width: 100% !important;
    margin: 6px 0 0 !important;
  }

  body.is-about-mode .about-practice-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    width: 100% !important;
    max-width: none !important;
    gap: 10px !important;
    margin: 0 !important;
    white-space: nowrap !important;
    font-size: clamp(7.3px, .49vw, 8.5px) !important;
    line-height: 1 !important;
  }

  body.is-about-mode .about-photo {
    order: 4;
    width: 100% !important;
    height: clamp(154px, 19vh, 198px) !important;
    margin: 7px 0 0 !important;
    overflow: hidden !important;
  }

  body.is-about-mode .about-photo img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 43% !important;
  }
}

@media (min-width: 861px) and (max-height: 850px) {
  body.is-about-mode .about-left {
    top: 52px !important;
    width: min(690px, 55vw) !important;
    font-size: 7.2px !important;
  }
  body.is-about-mode .about-intro {
    width: 360px !important;
    font-size: 7.4px !important;
  }
  body.is-about-mode .about-background {
    font-size: 7px !important;
    line-height: 1.01 !important;
  }
  body.is-about-mode .about-background p { margin-bottom: 2px !important; }
  body.is-about-mode .about-practice { margin-top: 4px !important; }
  body.is-about-mode .about-photo {
    height: 150px !important;
    margin-top: 5px !important;
  }
}
