@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700&family=Zen+Old+Mincho:wght@400;500;600;700;900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap');





:root{
  --ink:#2b1825;        /* deep plum-black - hero bg & primary text */
  --ink-2:#f7eef3;      /* soft pink-tinted bg / alt sections */
  --ink-3:#f0dde8;      /* deeper pink - footer / contact */
  --card:#fffbfd;       /* card surface on cream */
  --paper:#33222e;      /* body text on light bg */
  --paper-on-dark:#f7e9f1; /* text on dark hero */
  --paper-dim:#8a7488;
  --muted:#bda0b3;
  --brass:#85145e;      /* PSE plum/magenta accent */
  --brass-dim:#eba9c9;  /* PSE soft pink */
  --cream:#fdf8fb;      /* page background */
  --hair:rgba(43,24,37,.09);
  --max:1080px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--cream);
  color:var(--paper);
  font-family:"Shippori Mincho",serif;
  font-weight:400;
  line-height:2.1;
  letter-spacing:.04em;
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--brass-dim);color:var(--ink)}

/* ---------- utility ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
.eyebrow{
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-weight:500;font-size:.72rem;letter-spacing:.42em;
  color:var(--brass);text-transform:uppercase;
  display:flex;align-items:center;gap:18px;
}
.eyebrow::after{content:"";height:1px;width:56px;background:var(--brass-dim);opacity:.6}
.eyebrow .jp{color:var(--paper-dim);letter-spacing:.3em;font-weight:400}
h2{
  font-weight:600;font-size:clamp(1.55rem,3.4vw,2.15rem);
  letter-spacing:.1em;line-height:1.8;margin:26px 0 0;
}
.lead{color:var(--paper-dim);margin-top:18px;max-width:40em}
.h2-tight{font-size:clamp(1.25rem,2.6vw,1.7rem);letter-spacing:.06em;white-space:nowrap}
.notice{
  margin-top:24px;max-width:42em;font-size:.82rem;color:var(--muted);
  line-height:2.1;padding-left:18px;border-left:2px solid var(--brass-dim);
}
p{margin-top:1.35em}
em{font-style:normal;color:var(--brass)}
strong{font-weight:600;color:var(--paper)}
a:focus-visible{outline:1.5px solid var(--brass);outline-offset:4px}

/* ---------- nav ---------- */
nav{
  position:fixed;inset:0 0 auto 0;z-index:50;
  background:#ffffff;
  border-bottom:1px solid var(--hair);
}
.nav-in{
  max-width:var(--max);margin:0 auto;padding:0 28px;
  height:64px;display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{
  font-weight:600;font-size:.92rem;letter-spacing:.18em;color:var(--paper);
  text-decoration:none;display:flex;align-items:center;gap:14px;white-space:nowrap;
}
.brand small{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;
  font-size:.58rem;letter-spacing:.28em;color:var(--brass);
}
.logo-img{height:28px;width:auto;display:block}
.brand-text{font-size:.92rem}
@media(max-width:560px){.brand-text{display:none}}
.nav-links{display:flex;gap:26px;list-style:none}
.nav-links a{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;
  font-size:.76rem;letter-spacing:.16em;color:var(--paper-dim);
  text-decoration:none;transition:color .3s;white-space:nowrap;
}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--brass)}
@media(max-width:900px){.nav-links{display:none}.brand small{display:none}}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;overflow:hidden;
  background:#3a1240;color:#ffffff;
}
#emergence{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.hero-veil{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 90% 70% at 70% 40%,transparent 30%,#3a1240 95%),
    linear-gradient(to bottom,rgba(43,18,53,.25),#3a1240 96%);
}
.hero-in{
  position:relative;z-index:2;
  max-width:var(--max);margin:0 auto;padding:130px 28px 90px;
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:48px;
}
.hero-copy{max-width:560px}
.hero-tag{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.7rem;letter-spacing:.46em;color:rgba(255,255,255,.65);
}
.hero h1{
  margin-top:30px;font-weight:600;color:#ffffff;
  font-size:clamp(1.6rem,4vw,2.5rem);
  letter-spacing:.12em;line-height:2;
  text-shadow:0 0 28px rgba(255,255,255,.45),0 0 60px rgba(235,169,201,.3);
}
.hero h1 .turn{display:block}
.hero p{color:rgba(255,255,255,.78);margin-top:28px;font-size:.95rem;max-width:32em}
.hero-vertical{
  writing-mode:vertical-rl;
  font-weight:500;font-size:clamp(.85rem,1.4vw,1rem);
  letter-spacing:.55em;line-height:2.6;
  color:rgba(255,255,255,.85);
  border-left:1px solid rgba(255,255,255,.18);
  padding-left:34px;height:400px;flex:none;
}
.hero-vertical em{color:#f4c9de;text-shadow:0 0 18px rgba(244,201,222,.6)}
@media(max-width:860px){
  .hero-vertical{display:none}
  .hero-in{padding-top:115px}
}
.scroll-cue{
  position:absolute;bottom:34px;left:50%;transform:translateX(-50%);z-index:2;
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.62rem;
  letter-spacing:.4em;color:rgba(255,255,255,.55);
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.scroll-cue::after{
  content:"";width:1px;height:46px;
  background:linear-gradient(var(--brass),transparent);
  animation:drop 2.6s ease-in-out infinite;
}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- sections ---------- */
section{padding:130px 0}
section.alt{background:var(--ink-2)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1s ease}
.reveal.on{opacity:1;transform:none}

/* statement band */
.statement{
  background:var(--ink-3);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  padding:110px 0;text-align:center;
}
.statement blockquote{
  font-size:clamp(1.1rem,2.5vw,1.55rem);
  letter-spacing:.14em;line-height:2.4;font-weight:500;
}
.statement cite{
  display:block;margin-top:34px;font-style:normal;
  font-family:"Zen Kaku Gothic New",sans-serif;
  font-size:.7rem;letter-spacing:.34em;color:var(--muted);
}

/* split */
.split{display:grid;grid-template-columns:300px 1fr;gap:70px;align-items:start}
.split .sticky{position:sticky;top:110px}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:30px}.split .sticky{position:static}}

/* role cards */
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:56px}
.role{background:var(--card);padding:46px 42px}
section.alt .role{background:var(--card)}
.role h3{
  font-size:1.05rem;font-weight:600;letter-spacing:.16em;
  display:flex;align-items:baseline;gap:16px;
}
.role h3 .no{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:300;
  font-size:.7rem;letter-spacing:.3em;color:var(--brass);
}
.role p{font-size:.9rem;color:var(--paper-dim);line-height:2.15}
@media(max-width:760px){.role-grid{grid-template-columns:1fr}}

/* service cards (tax) */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:60px}
.svc{background:var(--card);padding:50px 44px;position:relative}
.svc .kanji-mark{
  position:absolute;top:30px;right:34px;
  font-size:2.2rem;font-weight:500;color:rgba(193,105,60,.13);
  letter-spacing:.05em;line-height:1;
}
.svc h3{font-size:1.1rem;font-weight:600;letter-spacing:.18em}
.svc .sub{
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.64rem;
  letter-spacing:.3em;color:var(--brass);display:block;margin-top:6px;
}
.svc p{font-size:.88rem;color:var(--paper-dim);line-height:2.1}
.svc ul{list-style:none;margin-top:18px}
.svc li{
  font-size:.86rem;color:var(--paper-dim);padding:9px 0 9px 24px;
  border-bottom:1px solid rgba(233,227,212,.07);position:relative;
}
.svc li::before{
  content:"";position:absolute;left:2px;top:1.15em;
  width:6px;height:6px;background:var(--brass-dim);transform:rotate(45deg);
}
@media(max-width:760px){.svc-grid{grid-template-columns:1fr}}

/* responsibility contrast */
.contrast{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:56px}
.contrast>div{padding:44px 40px;background:var(--card)}
.contrast .neg h4{color:var(--muted)}
.contrast .pos{background:linear-gradient(135deg,rgba(193,105,60,.10),transparent 60%),var(--card)}
.contrast h4{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.72rem;letter-spacing:.34em;color:var(--brass);
}
.contrast .big{font-size:1.25rem;font-weight:600;letter-spacing:.12em;margin-top:18px}
.contrast p{font-size:.88rem;color:var(--paper-dim);line-height:2.1}
@media(max-width:760px){.contrast{grid-template-columns:1fr}}

/* mentoring questions */
.questions{margin-top:64px;border-top:1px solid var(--hair)}
.q{
  display:grid;grid-template-columns:150px 1fr;gap:40px;
  padding:46px 0;border-bottom:1px solid var(--hair);
}
.q .kanji{
  font-size:2.2rem;font-weight:500;color:var(--brass);
  line-height:1.4;letter-spacing:.08em;
}
.q h3{font-size:1.1rem;font-weight:600;letter-spacing:.14em;line-height:1.9}
.q p{font-size:.9rem;color:var(--paper-dim);margin-top:14px;line-height:2.15;max-width:44em}
@media(max-width:700px){.q{grid-template-columns:1fr;gap:14px}.q .kanji{font-size:1.7rem}}

/* academic fields */
.fields{margin-top:60px;display:flex;flex-wrap:wrap;gap:12px}
.fields span{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;
  font-size:.74rem;letter-spacing:.18em;color:var(--paper-dim);
  border:1px solid var(--hair);padding:9px 20px;border-radius:100px;
  transition:border-color .4s,color .4s;
}
.fields span:hover{border-color:var(--brass-dim);color:var(--brass)}

/* ladder (4-step relationship depth) */
.ladder{margin-top:64px;display:flex;flex-direction:column;border:1px solid var(--hair)}
.rung{
  display:grid;grid-template-columns:90px 1fr 230px;gap:36px;
  padding:40px 44px;background:var(--card);
  border-bottom:1px solid var(--hair);position:relative;
}
.rung:last-child{border-bottom:none}
.rung.deep{background:var(--ink-2)}
.rung .num{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:300;
  font-size:2.4rem;color:var(--brass-dim);line-height:1;letter-spacing:0;
}
.rung .body h3{font-size:1.05rem;font-weight:600;letter-spacing:.14em;line-height:1.9}
.rung .body .sub{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.64rem;letter-spacing:.3em;color:var(--brass);display:block;margin-bottom:8px;
}
.rung .body p{font-size:.88rem;color:var(--paper-dim);line-height:2.1;margin-top:10px}
.rung .meta{
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.74rem;
  letter-spacing:.12em;color:var(--muted);line-height:2.3;
  border-left:1px solid var(--hair);padding-left:28px;
}
.rung .meta strong{
  display:block;color:var(--paper);font-weight:600;font-size:.8rem;
  letter-spacing:.1em;margin-bottom:6px;
}
@media(max-width:820px){
  .rung{grid-template-columns:1fr;gap:14px}
  .rung .meta{border-left:none;padding-left:0;border-top:1px solid var(--hair);padding-top:16px}
  .rung .num{font-size:1.6rem}
}

/* flow */
.flow{margin-top:70px;display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch}
.flow-node{border:1px solid var(--hair);padding:46px 40px;background:var(--card)}
.flow-node.major{border-color:var(--brass-dim)}
.flow-node h3{font-size:1.15rem;font-weight:600;letter-spacing:.16em}
.flow-node .sub{
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.66rem;
  letter-spacing:.32em;color:var(--brass);margin-top:6px;display:block;
}
.flow-node p{font-size:.88rem;color:var(--paper-dim);line-height:2.1}
.flow-arrow{
  display:flex;align-items:center;justify-content:center;padding:0 26px;color:var(--brass);
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.7rem;letter-spacing:.2em;
  flex-direction:column;gap:8px;
}
.flow-arrow svg{width:34px;height:14px}
.flow-note{
  margin-top:26px;font-size:.84rem;color:var(--muted);line-height:2.1;
  border-left:2px solid var(--brass-dim);padding-left:22px;
}
@media(max-width:820px){
  .flow{grid-template-columns:1fr}
  .flow-arrow{padding:22px 0;transform:rotate(90deg);height:60px}
}

/* boundaries */
.bounds{margin-top:60px;border:1px solid var(--hair)}
.bounds>div{padding:42px 40px;background:var(--card)}
.bounds h4{font-size:.95rem;font-weight:600;letter-spacing:.18em;display:flex;gap:14px;align-items:baseline}
.bounds h4::before{content:"";width:7px;height:7px;background:var(--brass);flex:none;transform:rotate(45deg)}
.bounds p{font-size:.88rem;color:var(--paper-dim);line-height:2.1}
.bounds .pse-btn{
  display:inline-flex;align-items:center;gap:12px;margin-top:26px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.78rem;letter-spacing:.28em;color:var(--brass);
  border:1px solid var(--brass-dim);padding:14px 30px;text-decoration:none;
  transition:background .35s,color .35s;
}
.bounds .pse-btn:hover,.bounds .pse-btn:focus-visible{background:var(--brass);color:var(--cream)}
.bounds .pse-btn svg{width:14px;height:14px}

/* profile */
.profile{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:60px;align-items:start}
.profile h3{font-size:1.3rem;font-weight:600;letter-spacing:.2em}
.profile .titles{margin-top:24px;list-style:none}
.profile .titles li{
  font-size:.88rem;color:var(--paper-dim);padding:10px 0;
  border-bottom:1px solid rgba(233,227,212,.07);letter-spacing:.06em;
}
.profile .voice{
  border-left:2px solid var(--brass-dim);padding-left:26px;
}
.profile .voice h4{
  font-size:1rem;font-weight:600;letter-spacing:.12em;line-height:1.9;color:var(--brass);
}
.profile .voice p{font-size:.88rem;color:var(--paper-dim);line-height:2.15}
@media(max-width:820px){.profile{grid-template-columns:1fr;gap:44px}}

.office-info{
  margin-top:80px;display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--hair);border:1px solid var(--hair);
}
.office-info>div{background:var(--card);padding:44px 40px}
.office-info h4{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.7rem;letter-spacing:.36em;color:var(--brass);
}
.office-info p{font-size:.92rem;line-height:2.2;margin-top:16px}
.office-info .tel{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:300;
  font-size:1.5rem;letter-spacing:.12em;color:var(--paper);margin-top:8px;
}
.office-info a{color:var(--paper);text-decoration:none}
.office-info small{color:var(--muted);font-size:.78rem;display:block;margin-top:6px;letter-spacing:.08em}
@media(max-width:760px){.office-info{grid-template-columns:1fr}}

/* clients */
.client-grid{margin-top:60px;display:flex;flex-direction:column;gap:1px;background:var(--hair);border:1px solid var(--hair)}
.client{
  background:var(--card);padding:46px 44px;
  display:grid;grid-template-columns:220px 1fr;gap:40px;align-items:start;
}
.client .name{
  font-size:1.05rem;font-weight:600;letter-spacing:.14em;line-height:1.9;
}
.client .name small{
  display:block;margin-top:8px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.66rem;letter-spacing:.3em;color:var(--brass);
}
.client .name a{
  display:inline-block;margin-top:18px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.72rem;
  letter-spacing:.18em;color:var(--paper-dim);text-decoration:none;
  border-bottom:1px solid var(--brass-dim);padding-bottom:3px;transition:color .3s,border-color .3s;
}
.client .name a:hover{color:var(--brass);border-color:var(--brass)}
.client p{font-size:.9rem;color:var(--paper-dim);line-height:2.15;margin-top:0}
@media(max-width:760px){.client{grid-template-columns:1fr;gap:18px}}

/* contact */
.contact{
  background:var(--ink-3);
  border-top:1px solid var(--hair);
  padding:130px 0;text-align:center;
}
.contact h2{margin-top:26px}
.contact p{color:var(--paper-dim);max-width:36em;margin:24px auto 0}
.btn{
  display:inline-block;margin-top:48px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.82rem;letter-spacing:.34em;color:var(--brass);
  border:1px solid var(--brass-dim);padding:20px 64px 20px 70px;
  text-decoration:none;transition:background .4s,color .4s;
}
.btn:hover,.btn:focus-visible{background:var(--brass);color:var(--cream)}
.contact .eyebrow{justify-content:center}
.contact .eyebrow::after{display:none}
.contact .eyebrow::before{content:"";height:1px;width:56px;background:var(--brass-dim);opacity:.6}

/* footer */
footer{background:var(--ink-3);border-top:1px solid var(--hair);padding:90px 0 60px}
.foot-grid{display:flex;justify-content:space-between;gap:50px;flex-wrap:wrap}
.foot-brand{font-weight:600;letter-spacing:.22em;font-size:1.05rem}
.foot-brand .logo-img{height:34px;margin-bottom:18px}
.foot-brand-name{font-weight:600;letter-spacing:.22em;font-size:1.05rem}
.foot-brand small{
  display:block;margin-top:10px;
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;
  font-size:.64rem;letter-spacing:.32em;color:var(--brass);
}
.foot-brand address{
  font-style:normal;margin-top:22px;font-size:.82rem;color:var(--muted);
  line-height:2;letter-spacing:.06em;
}
.foot-cols{display:flex;gap:70px;flex-wrap:wrap}
.foot-cols h5{
  font-family:"Zen Kaku Gothic New",sans-serif;font-weight:500;
  font-size:.64rem;letter-spacing:.34em;color:var(--brass);margin-bottom:18px;
}
.foot-links{list-style:none;display:flex;flex-direction:column;gap:13px}
.foot-links a{
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.78rem;
  letter-spacing:.18em;color:var(--paper-dim);text-decoration:none;transition:color .3s;
}
.foot-links a:hover{color:var(--brass)}
.foot-note{
  margin-top:70px;padding-top:30px;border-top:1px solid var(--hair);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-family:"Zen Kaku Gothic New",sans-serif;font-size:.66rem;
  letter-spacing:.22em;color:var(--muted);
}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .scroll-cue::after{animation:none}
  html{scroll-behavior:auto}
}
/* ===== Hero font fix ===== */

.hero h1,
.hero h1 .turn {
  font-family: "Zen Old Mincho", "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  line-height: 2 !important;
}

.hero p {
  font-family: "Shippori Mincho", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif !important;
  font-weight: 400 !important;
  letter-spacing: .06em !important;
  line-height: 2.2 !important;
}

.hero-tag {
  font-family: "Zen Kaku Gothic New", "Yu Gothic", "YuGothic", sans-serif !important;
  font-weight: 500 !important;
}