@charset "UTF-8";

:root{
  --white:#ffffff;
  --soft:#fafaf7;
  --ink:#1c1c1c;
  --ink2:#5f5f5a;
  --muted:#8a8982;
  --line:#dadad5;
  
  --wood:#9a7959;
  --beige:#d9c9b4;
  --green:#65705c;

  --wrap:1120px;
  --hd:72px;

  --serif:"Noto Serif JP","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
  --sans:"Noto Sans JP","Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN",sans-serif;
  --en:"Inter","Helvetica Neue",Arial,sans-serif;

  --ease:cubic-bezier(.16,.7,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--hd);-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--white);color:var(--ink);
  font-family:var(--sans);font-size:15px;font-weight:400;line-height:2.05;
  letter-spacing:.03em;
  word-break:auto-phrase;line-break:strict;overflow-wrap:anywhere;
  -webkit-font-smoothing:antialiased;
}
body.is-locked{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
ul,ol,dl,dd{margin:0;padding:0}
li{list-style:none}
h1,h2,h3,h4,p,figure,blockquote{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:1px solid var(--ink);outline-offset:3px}

.wrap{width:min(90vw,var(--wrap));margin-inline:auto}
.nb{white-space:nowrap}
.sp{display:none}
.pc{display:inline}
.skip{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;margin:0;clip:auto;z-index:999;background:var(--white);border:1px solid var(--ink);padding:10px 16px}

.h3{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(19px,2.2vw,26px);line-height:1.7;letter-spacing:.06em;
  text-wrap:balance;
}
.h3__ruby{display:block;font-family:var(--sans);font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.2em;margin-top:9px}
.h4{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(17px,1.9vw,20px);line-height:1.7;letter-spacing:.07em;
}
.p{font-size:15px;font-weight:400;line-height:2.1;color:var(--ink2);text-wrap:pretty}
.p + .p{margin-top:30px}
.p--lead{font-family:var(--serif);font-size:16.5px;font-weight:400;color:var(--ink);line-height:2.1;letter-spacing:.05em}
.p--sm{font-size:14px;line-height:2}

.secno{
  display:flex;align-items:center;gap:14px;
  font-family:var(--en);font-size:10px;font-weight:400;letter-spacing:.26em;color:var(--muted);
}
.secno::after{content:"";display:block;width:clamp(28px,4vw,54px);height:1px;background:var(--line)}
.secname{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,4.2vw,52px);line-height:1.38;letter-spacing:.16em;
  margin:20px 0 0;color:var(--ink);font-feature-settings:"palt";
}
.secmsg{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(18px,2.1vw,26px);line-height:1.82;letter-spacing:.08em;
  margin-top:28px;color:var(--ink);text-wrap:balance;font-feature-settings:"palt";
}
.sec__lead{
  margin-top:26px;font-family:var(--sans);font-size:14.5px;line-height:2.1;
  color:var(--ink2);text-wrap:pretty;
}

.btn{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:54px;padding:0 36px;border-radius:0;
  background:transparent;color:var(--ink);border:1px solid var(--ink);
  font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.14em;line-height:1.5;
  text-decoration:none;box-shadow:none;
  transition:background .7s var(--ease),color .7s var(--ease),border-color .7s var(--ease);
}
.btn:hover{background:var(--ink);color:var(--white)}
.btn:hover .btn__sub{color:rgba(255,255,255,.7)}
.btn--lg{min-height:58px;padding:0 42px;font-size:12.5px}
.btn--ghost{border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover .btn__sub{color:var(--muted)}
.btn__sub{
  font-family:var(--en);font-size:10px;font-weight:400;letter-spacing:.12em;
  color:var(--muted);margin-top:4px;transition:color .7s var(--ease);
}

.link{
  display:inline-flex;align-items:center;gap:14px;margin-top:26px;
  font-family:var(--sans);font-size:11.5px;font-weight:400;letter-spacing:.16em;
  color:var(--ink);text-decoration:none;
  padding-bottom:8px;border-bottom:1px solid var(--ink);
  transition:opacity .6s var(--ease);
}
.link::after{content:"→";font-family:var(--en);font-size:11px}
.link:hover{opacity:.6}

.hd{
  position:fixed;inset:0 0 auto;z-index:60;background:transparent;
  border-bottom:1px solid transparent;
  transition:background .8s var(--ease),border-color .8s var(--ease);
}
.hd.is-solid{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom-color:var(--line)}
.hd__inner{width:min(94vw,1320px);margin-inline:auto;display:flex;align-items:center;gap:26px;height:var(--hd)}
.hd__logo{text-decoration:none;display:flex;align-items:baseline;gap:14px;margin-right:auto;transition:opacity .6s var(--ease)}
.hd__logo:hover{opacity:.6}
.hd__logo-ja{font-family:var(--serif);font-size:15px;font-weight:500;letter-spacing:.14em;white-space:nowrap;color:var(--ink)}
.hd__logo-en{font-family:var(--en);font-size:9px;font-weight:400;letter-spacing:.26em;color:var(--muted);white-space:nowrap}
.hd__nav{display:flex;gap:32px}
.hd__nav a{
  font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.1em;
  text-decoration:none;color:var(--ink);transition:opacity .6s var(--ease);
}
.hd__nav a:hover{opacity:.5}

.burger{display:none;width:34px;height:22px;position:relative;flex:none}
.burger span{
  position:absolute;left:0;right:0;height:1px;background:var(--ink);
  transition:transform .6s var(--ease),opacity .4s var(--ease);
}
.burger span:nth-child(1){top:2px}
.burger span:nth-child(2){top:10px}
.burger span:nth-child(3){top:18px}
.burger.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger.is-open span:nth-child(2){opacity:0}
.burger.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:55;background:var(--white);
  padding:calc(var(--hd) + 34px) 0 40px;
  display:flex;flex-direction:column;justify-content:center;gap:40px;
  opacity:0;visibility:hidden;transition:opacity .7s var(--ease),visibility .7s var(--ease);
}
.drawer.is-open{opacity:1;visibility:visible}
.drawer__nav{display:flex;flex-direction:column;width:min(100% - 44px,var(--wrap));margin-inline:auto}
.drawer__nav a{
  display:flex;align-items:baseline;gap:18px;padding:19px 2px;
  border-bottom:1px solid var(--line);text-decoration:none;
  font-family:var(--serif);font-size:19px;font-weight:400;letter-spacing:.14em;
}
.drawer__nav a:first-child{border-top:1px solid var(--line)}
.drawer__nav i{font-family:var(--en);font-style:normal;font-size:10px;letter-spacing:.2em;color:var(--muted)}
.drawer__data{width:min(100% - 44px,var(--wrap));margin-inline:auto}
.drawer__data > div{padding:11px 0;border-bottom:1px solid var(--line)}
.drawer__data dt{font-family:var(--en);font-size:9.5px;letter-spacing:.2em;color:var(--muted)}
.drawer__data dd{font-size:14px;margin-top:4px}
.drawer__data a{text-decoration:none}

.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#0e1a20}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__photo{
  width:100%;height:100%;object-fit:cover;object-position:52% 50%;
  opacity:0;transform:scale(1.07);
  transition:opacity 1.8s ease,transform 2.6s var(--ease);
}
body.is-ready .hero__photo{opacity:1;transform:scale(1)}
.hero__shade{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to bottom,rgba(255,255,255,.58) 0%,rgba(255,255,255,.16) 9%,rgba(255,255,255,0) 18%),
    linear-gradient(100deg,rgba(16,28,36,.36) 0%,rgba(16,28,36,.22) 30%,rgba(16,28,36,.06) 56%,rgba(16,28,36,0) 76%);
}

.hero__title{
  position:absolute;top:50%;left:clamp(20px,11vw,208px);transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-family:var(--serif);font-weight:400;color:#fff;
  font-size:clamp(20px,2.1vw,31px);letter-spacing:.14em;line-height:2;
  text-shadow:0 1px 24px rgba(8,18,24,.6),0 1px 6px rgba(8,18,24,.45);
  font-feature-settings:"palt";
}
.hero__title span{
  display:block;
  opacity:0;transform:translateX(20px);
  transition:opacity 1.2s var(--ease),transform 1.2s var(--ease);
}
body.is-ready .hero__title span{opacity:1;transform:none}
body.is-ready .hero__title span:nth-child(1){transition-delay:.40s}
body.is-ready .hero__title span:nth-child(2){transition-delay:.55s}
body.is-ready .hero__title span:nth-child(3){transition-delay:.70s}
body.is-ready .hero__title span:nth-child(4){transition-delay:.85s}

.hero__en{
  position:absolute;top:50%;right:clamp(56px,13vw,224px);transform:translateY(-50%);
  writing-mode:vertical-rl;height:clamp(190px,40vh,340px);
  font-family:var(--serif);font-style:italic;font-size:11px;font-weight:400;
  letter-spacing:.22em;line-height:2.6;color:rgba(255,255,255,.66);
  opacity:0;transition:opacity 1.6s var(--ease) 1.1s;
}
body.is-ready .hero__en{opacity:1}

.hero__scroll{
  position:absolute;left:clamp(20px,4vw,56px);bottom:34px;
  display:flex;align-items:center;gap:18px;
  font-family:var(--en);font-size:9.5px;font-weight:400;letter-spacing:.28em;color:rgba(255,255,255,.86);
  opacity:0;transition:opacity 1.4s var(--ease) 1.3s;
}
.hero__scroll i{display:block;width:1px;height:58px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;inset:0;background:#fff;animation:scrollline 2.6s var(--ease) infinite}
@keyframes scrollline{0%{transform:translateY(-100%)}55%,100%{transform:translateY(100%)}}

.hero__meta{
  position:absolute;right:clamp(20px,4vw,56px);bottom:32px;
  display:flex;flex-direction:column;align-items:flex-end;gap:7px;
  font-family:var(--en);font-size:9.5px;font-weight:400;letter-spacing:.26em;color:rgba(255,255,255,.86);
  opacity:0;transition:opacity 1.4s var(--ease) 1.4s;
}
body.is-ready .hero__scroll,body.is-ready .hero__meta{opacity:1}

.sec{padding:140px 0}
.sec--tint{background:var(--soft)}
.sec__head{margin-bottom:64px;max-width:800px}

.ph{display:block;overflow:hidden;position:relative}
.ph img{
  width:100%;display:block;
  clip-path:inset(0 0 100% 0);transform:scale(1.08);
  transition:clip-path 1.5s var(--ease),transform 2s var(--ease);
}
.reveal.is-in .ph img,.reveal .is-in .ph img{clip-path:inset(0 0 0 0);transform:scale(1)}
.ph--sub img{transition-delay:.18s}

.ph img{will-change:clip-path,transform}
.reveal.is-in .ph:hover img{transform:scale(1.03)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal .stg > *,.reveal.stg > *{
  opacity:0;transform:translateY(15px);
  transition:opacity .95s var(--ease),transform .95s var(--ease);
}
.reveal.is-in .stg > *,.reveal.is-in.stg > *{opacity:1;transform:none}
.reveal.is-in .stg > *:nth-child(1),.reveal.is-in.stg > *:nth-child(1){transition-delay:.05s}
.reveal.is-in .stg > *:nth-child(2),.reveal.is-in.stg > *:nth-child(2){transition-delay:.13s}
.reveal.is-in .stg > *:nth-child(3),.reveal.is-in.stg > *:nth-child(3){transition-delay:.21s}
.reveal.is-in .stg > *:nth-child(4),.reveal.is-in.stg > *:nth-child(4){transition-delay:.29s}
.reveal.is-in .stg > *:nth-child(5),.reveal.is-in.stg > *:nth-child(5){transition-delay:.37s}
.reveal.is-in .stg > *:nth-child(6),.reveal.is-in.stg > *:nth-child(6){transition-delay:.45s}
.reveal.is-in .stg > *:nth-child(7),.reveal.is-in.stg > *:nth-child(7){transition-delay:.52s}
.reveal.is-in .stg > *:nth-child(8),.reveal.is-in.stg > *:nth-child(8){transition-delay:.58s}
.reveal.is-in .stg > *:nth-child(9),.reveal.is-in.stg > *:nth-child(9){transition-delay:.64s}
.reveal.is-in .stg > *:nth-child(10),.reveal.is-in.stg > *:nth-child(10){transition-delay:.70s}
.reveal.is-in .stg > *:nth-child(11),.reveal.is-in.stg > *:nth-child(11){transition-delay:.75s}
.reveal.is-in .stg > *:nth-child(n+12),.reveal.is-in.stg > *:nth-child(n+12){transition-delay:.80s}

.phil{display:grid;grid-template-columns:1fr 420px;gap:70px;align-items:start}
.phil__team figcaption{padding:26px 0 0}
.phil__team .ph img{aspect-ratio:3/2;object-fit:cover}
.phil__k{font-family:var(--en);font-size:10px;letter-spacing:.2em;color:var(--muted);font-weight:400}
.phil__h{font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.8;letter-spacing:.06em;margin:12px 0 14px}

.biz{display:flex;flex-direction:column;gap:120px}
.biz__row{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:70px;align-items:center}
.biz__row--rev .biz__media{order:2}
.biz__media{display:flex;flex-direction:column;gap:18px}
.biz__media .ph img{aspect-ratio:16/10;object-fit:cover}
.biz__media--pair .ph--sub{width:70%;margin-left:auto}
.biz__row--rev .biz__media--pair .ph--sub{margin-left:0;margin-right:auto}
.biz__media--pair .ph--sub img{aspect-ratio:16/7}
.biz__body{min-width:0}
.biz__tag{font-size:13px;color:var(--ink2);letter-spacing:.06em}
.biz__no{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1;color:var(--muted);margin:20px 0 14px;letter-spacing:.1em}
.spec{margin-top:34px;border-top:1px solid var(--line)}
.spec > div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:22px;padding:18px 0;border-bottom:1px solid var(--line)}
.spec dt{font-family:var(--en);font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:400;padding-top:6px}
.spec dd{font-size:14px;line-height:2;color:var(--ink2);min-width:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips span{
  font-family:var(--sans);font-size:11.5px;font-weight:400;letter-spacing:.06em;color:var(--ink2);
  padding:5px 13px;border:1px solid var(--line);border-radius:0;background:transparent;
}
.chips em{font-size:12.5px;font-style:normal;color:var(--muted)}
.chips--plain{margin-top:22px}
.chips--plain span{color:var(--ink)}

.biz__next{
  display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:22px;align-items:baseline;
  padding:34px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.biz__next-no{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1;color:var(--muted);letter-spacing:.1em}
.biz__next-h{font-family:var(--serif);font-size:clamp(17px,1.9vw,20px);font-weight:500;line-height:1.7;letter-spacing:.08em;color:var(--ink)}
.biz__next-t{font-family:var(--sans);font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--muted);white-space:nowrap}

.fields{display:flex;flex-direction:column;gap:96px}
.field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
.field--rev .field__hero{order:2}
.field__hero .ph img{height:clamp(280px,42vw,460px);object-fit:cover}
.field__badge{
  display:flex;align-items:baseline;gap:14px;padding:18px 0 0;color:var(--muted);
  font-family:var(--en);font-size:10px;letter-spacing:.2em;font-weight:400;text-transform:uppercase;
}
.field__badge span{font-family:var(--serif);font-style:normal;font-size:14px;letter-spacing:.14em;font-weight:500;color:var(--ink);text-transform:none}
.field__body{min-width:0}
.field__title{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.field__logo{width:88px;height:auto;flex:none;mix-blend-mode:multiply;opacity:.9}
.field__data{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin:30px 0 32px;border-top:1px solid var(--line)}
.field__data > div{padding:14px 0;border-bottom:1px solid var(--line)}
.field__data dt{font-family:var(--en);font-size:10px;letter-spacing:.16em;color:var(--muted);font-weight:400}
.field__data dd{font-size:14px;margin-top:5px;color:var(--ink)}
.field__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.field__thumbs .ph img{aspect-ratio:4/3;object-fit:cover}

.pipeline{display:flex;align-items:center;gap:28px}
.pipeline__side{flex:1;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:6px;letter-spacing:.04em}
.pipeline__side b{font-family:var(--serif);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:.12em}
.pipeline__side--r{text-align:right;align-items:flex-end}
.pipeline__line{display:flex;align-items:center;gap:12px}
.pipeline__line::before{content:"";width:5px;height:5px;border:1px solid var(--line);transform:rotate(45deg);order:2}
.pipeline__line i{display:block;width:clamp(24px,7vw,100px);height:1px;background:var(--line)}
.pipeline__line i:first-of-type{order:1}
.pipeline__line i:last-of-type{order:3}

.hist{border-top:1px solid var(--line)}
.hist li{
  display:grid;grid-template-columns:104px 112px minmax(0,1fr);gap:26px;align-items:baseline;
  padding:20px 0;border-bottom:1px solid var(--line);
}
.hist__y{font-family:var(--serif);font-size:18px;font-weight:400;letter-spacing:.06em;color:var(--ink)}
.hist__t{font-family:var(--sans);font-size:10.5px;font-weight:400;letter-spacing:.12em;color:var(--muted)}
.hist li p{font-size:14px;line-height:2;color:var(--ink2);min-width:0}

.sum{
  display:grid;grid-template-columns:repeat(4,1fr);margin:96px 0 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.sum li{border-left:1px solid var(--line);padding:40px 22px;text-align:center}
.sum li:first-child{border-left:0}
.sum__n{
  display:block;font-family:var(--serif);font-size:44px;line-height:1;font-weight:400;
  color:var(--ink);letter-spacing:.04em;font-variant-numeric:tabular-nums;
}
.sum__n--w{font-size:25px;line-height:1.75}
.sum__t{display:block;margin-top:16px;font-size:11.5px;color:var(--muted);letter-spacing:.08em}

.block{margin-top:104px}
.block__h{
  display:flex;align-items:center;gap:16px;
  font-family:var(--serif);font-weight:500;font-size:clamp(18px,2vw,22px);letter-spacing:.1em;
  padding-bottom:20px;border-bottom:1px solid var(--ink);margin-bottom:28px;
}
.block__h::before{content:"";display:block;width:22px;height:1px;background:var(--ink);flex:none}
.block__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.block__grid > li{grid-column:span 2}
.block__grid > li:nth-child(4),.block__grid > li:nth-child(5){grid-column:span 3}
.block__grid--3 > li,.block__grid--3 > li:nth-child(4),.block__grid--3 > li:nth-child(5){grid-column:span 2}
.card{
  border:1px solid var(--line);background:var(--white);padding:32px 28px 34px;
  display:flex;flex-direction:column;
  transition:border-color .7s var(--ease);
}
.card:hover{border-color:var(--ink)}
.card__no{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1;color:var(--muted);letter-spacing:.08em}
.card__name{font-family:var(--serif);font-size:17px;font-weight:500;letter-spacing:.08em;line-height:1.7;margin-top:20px}
.card__year{font-family:var(--en);font-size:10px;font-weight:400;letter-spacing:.18em;color:var(--muted);margin-top:9px}
.card__body{font-size:13.5px;line-height:2;color:var(--ink2);margin-top:18px}
.card .chips{margin-top:18px}

.founder{display:grid;grid-template-columns:320px minmax(0,1fr);gap:60px;align-items:start;margin-bottom:96px}
.founder__media .ph img{aspect-ratio:1/1;object-fit:cover}
.founder__name{font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:.12em;margin-bottom:28px}

.info{border-top:1px solid var(--line)}
.info > div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:28px;padding:20px 0;border-bottom:1px solid var(--line)}
.info dt{font-size:12.5px;font-weight:400;letter-spacing:.12em;color:var(--muted)}
.info dd{font-size:14.5px;line-height:2;min-width:0;color:var(--ink)}

.contact{position:relative;background:#0f1c25;color:#fff;padding:150px 0;overflow:hidden}
.contact__bg{position:absolute;inset:0;overflow:hidden}
.contact__bg img{
  width:100%;height:100%;object-fit:cover;object-position:50% 46%;
  filter:blur(6px) saturate(.9);transform:scale(1.1);
}
.contact__veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,20,28,.74) 0%,rgba(10,20,28,.6) 42%,rgba(10,20,28,.8) 100%);
}
.contact__inner{position:relative;z-index:1}

.contact .secno{color:rgba(255,255,255,.74)}
.contact .secno::after{background:rgba(255,255,255,.34)}
.contact .secname,.contact .secmsg{color:#fff;text-shadow:0 1px 26px rgba(6,14,20,.45)}
.contact .sec__lead{color:rgba(255,255,255,.86)}

.contact__box{
  border-top:1px solid rgba(255,255,255,.28);border-bottom:1px solid rgba(255,255,255,.28);
  padding:54px 0;margin-bottom:110px;
}
.contact__note{font-family:var(--serif);font-size:15px;line-height:2.1;letter-spacing:.05em;color:rgba(255,255,255,.88)}
.contact__actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:34px}

.contact .btn{border-color:rgba(255,255,255,.74);color:#fff}
.contact .btn:hover{background:#fff;color:var(--ink);border-color:#fff}
.contact .btn__sub{color:rgba(255,255,255,.68)}
.contact .btn:hover .btn__sub{color:var(--ink2)}
.contact .btn--ghost{border-color:rgba(255,255,255,.4);color:#fff}
.contact .btn--ghost:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.8)}
.contact .btn--ghost:hover .btn__sub{color:rgba(255,255,255,.8)}

.co__k{
  font-family:var(--serif);font-size:15px;font-weight:500;letter-spacing:.16em;color:#fff;
  margin-bottom:34px;
}
.co__cards{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.co__card{border-top:1px solid rgba(255,255,255,.28);padding:32px 0 0}
.contact .co__card .h4{color:#fff}
.co__h{font-family:var(--serif);font-size:14px;font-weight:500;letter-spacing:.08em;color:rgba(255,255,255,.78);margin:14px 0 16px}
.contact .co__card .p{color:rgba(255,255,255,.82)}
.contact .link{color:#fff;border-bottom-color:rgba(255,255,255,.7)}

.link__ex{
  font-family:var(--en);font-size:9px;font-weight:400;letter-spacing:.16em;color:var(--muted);
  border:1px solid var(--line);padding:2px 6px;
}
.contact .link__ex{color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.4)}

.ft{background:var(--white);padding:96px 0 0;border-top:1px solid var(--line)}
.ft__inner{display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:56px;padding-bottom:72px}
.ft__logo{width:140px;mix-blend-mode:multiply;margin-bottom:20px}
.ft__ja{font-family:var(--serif);font-size:15px;font-weight:500;letter-spacing:.16em;color:var(--ink)}
.ft__tag{font-family:var(--serif);font-size:13px;line-height:2.1;letter-spacing:.05em;color:var(--ink2);margin-top:18px}
.ft__data > div{padding:11px 0;border-bottom:1px solid var(--line)}
.ft__data dt{font-family:var(--en);font-size:9.5px;letter-spacing:.2em;color:var(--muted);font-weight:400}
.ft__data dd{font-size:13.5px;margin-top:5px}
.ft__data a{text-decoration:none;transition:opacity .6s var(--ease)}
.ft__data a:hover{opacity:.55}
.ft__navk{font-family:var(--en);font-size:9.5px;letter-spacing:.2em;color:var(--muted);font-weight:400;margin-bottom:16px}
.ft__nav{display:flex;flex-direction:column;gap:12px}
.ft__nav a{font-size:13px;text-decoration:none;letter-spacing:.06em;transition:opacity .6s var(--ease)}
.ft__nav a:hover{opacity:.55}
.ft__copy{
  display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:center;
  border-top:1px solid var(--line);padding:26px 20px 32px;
  font-family:var(--en);font-size:10px;letter-spacing:.14em;color:var(--muted);
}

body.is-instant .hero__photo,
body.is-instant .hero__title span,
body.is-instant .hero__en,
body.is-instant .hero__scroll,
body.is-instant .hero__meta{transition:none;opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal .stg > *,.reveal.stg > *{opacity:1;transform:none;transition:none}
  .ph img{clip-path:none;transform:none;transition:none}
  .hero__photo,.hero__title span,.hero__en,.hero__scroll,.hero__meta{opacity:1;transform:none;transition:none}
  .hero__scroll i::after{animation:none}
  .btn,.link,.hd,.hd__logo,.hd__nav a,.ft__nav a,.ft__data a,.card,.burger span,.drawer{transition:none}
  .reveal.is-in .ph:hover img{transform:none}
}

@media (max-width:1000px){
  .phil{grid-template-columns:1fr;gap:50px}
  .phil__team{max-width:580px}
  .biz__row,.biz__row--rev{grid-template-columns:1fr;gap:38px}
  .biz__row--rev .biz__media{order:0}
  .field,.field--rev{grid-template-columns:1fr;gap:34px}
  .field--rev .field__hero{order:0}
  .field__hero .ph img{height:clamp(240px,46vw,380px)}
  .block__grid,.block__grid--3{grid-template-columns:repeat(4,1fr)}
  .block__grid > li,.block__grid--3 > li{grid-column:span 2}
  .block__grid > li:nth-child(5){grid-column:span 4}
  .block__grid--3 > li:nth-child(3){grid-column:span 4}
  .founder{grid-template-columns:240px minmax(0,1fr);gap:40px}
  .co__cards{gap:40px}
  .ft__inner{grid-template-columns:1fr 1fr;gap:44px}
  .ft__nav{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:10px 28px}
}

@media (max-width:860px){
  :root{--hd:60px}
  .sp{display:inline}
  .pc{display:none}
  br.sp{display:block}
  .wrap{width:min(100% - 44px,var(--wrap))}
  .hd__inner{width:min(100% - 44px,1320px);height:var(--hd);gap:14px}
  .hd__nav{display:none}
  .burger{display:block}
  .hd__logo{flex-direction:column;align-items:flex-start;gap:4px}
  .hd__logo-ja{font-size:14px;letter-spacing:.1em}
  .hd__logo-en{font-size:8px;letter-spacing:.2em}

  
  .hero{height:100svh;min-height:500px}
  
  .hero__photo{object-position:76% 50%}
  .hero__shade{
    background:
      linear-gradient(to bottom,rgba(255,255,255,.6) 0%,rgba(255,255,255,.1) 12%,rgba(255,255,255,0) 22%),
      linear-gradient(to top,rgba(10,20,26,.78) 0%,rgba(10,20,26,.5) 26%,rgba(10,20,26,.12) 52%,rgba(10,20,26,0) 74%);
  }
  .hero__title{
    writing-mode:horizontal-tb;
    top:auto;bottom:104px;left:22px;right:22px;transform:none;
    font-size:clamp(23px,7vw,33px);letter-spacing:.08em;line-height:1.74;
  }
  .hero__title span{transform:translateY(16px)}
  body.is-ready .hero__title span{transform:none}
  .hero__en{display:none}
  .hero__scroll{display:none}
  .hero__meta{
    left:22px;right:22px;bottom:44px;
    flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:6px 18px;
    font-size:8.5px;letter-spacing:.2em;
  }

  .sec{padding:88px 0}
  .contact{padding:88px 0}
  .sec__head{margin-bottom:44px}
  .secname{font-size:clamp(27px,8.4vw,36px);letter-spacing:.12em;margin-top:16px}
  .secmsg{font-size:clamp(17px,5vw,21px);margin-top:22px}
  .sec__lead{margin-top:22px}

  .biz{gap:84px}
  .biz__media--pair .ph--sub{width:80%}
  .biz__next{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .biz__next-t{justify-self:start}
  .spec > div{grid-template-columns:1fr;gap:8px;padding:16px 0}
  .spec dt{padding-top:0}

  .fields{gap:72px}
  .field__title{flex-wrap:wrap;gap:14px}
  .field__logo{width:74px}
  .field__data{grid-template-columns:1fr;gap:0}
  .field__thumbs{grid-template-columns:repeat(2,1fr);gap:10px}
  .pipeline{flex-direction:column;gap:18px;text-align:center}
  .pipeline__side,.pipeline__side--r{align-items:center;text-align:center}
  .pipeline__line i{width:40px}

  .hist li{grid-template-columns:82px 1fr;gap:8px 18px;padding:17px 0}
  .hist__t{grid-column:2;justify-self:start}
  .hist li p{grid-column:1/-1}
  .sum{grid-template-columns:1fr 1fr;margin-top:64px}
  .sum li{padding:28px 14px}
  .sum li:nth-child(odd){border-left:0}
  .sum li:nth-child(n+3){border-top:1px solid var(--line)}
  .sum__n{font-size:34px}
  .sum__n--w{font-size:21px}

  .block{margin-top:72px}
  .block__grid,.block__grid--3{grid-template-columns:1fr;gap:12px}
  .block__grid > li,.block__grid > li:nth-child(4),.block__grid > li:nth-child(5),
  .block__grid--3 > li,.block__grid--3 > li:nth-child(3){grid-column:auto}
  .card{padding:26px 22px 28px}

  .founder{grid-template-columns:1fr;gap:30px;margin-bottom:64px}
  .founder__media{max-width:240px}
  .info > div{grid-template-columns:1fr;gap:6px;padding:16px 0}

  .contact__box{padding:38px 0;margin-bottom:76px}
  .contact__actions{flex-direction:column}
  .contact__actions .btn{width:100%}
  .co__cards{grid-template-columns:1fr;gap:40px}
  .co__card{padding:28px 0 0}

  .ft{padding:72px 0 0}
  .ft__inner{grid-template-columns:1fr;gap:38px;padding-bottom:48px}
  .ft__copy{flex-direction:column;gap:8px;text-align:center}
}

@media (max-width:420px){
  .wrap{width:min(100% - 40px,var(--wrap))}
  .hd__inner{width:min(100% - 40px,1320px)}
  .hero__title{left:20px;right:20px;bottom:98px}
  .hero__meta{left:20px;right:20px}
  .field__thumbs{grid-template-columns:1fr 1fr}
}

.ilw{margin:0;max-width:720px}
.ilw img{display:block;width:100%;height:auto}
.ilw figcaption{
  margin-top:16px;font-size:12.5px;line-height:1.95;
  letter-spacing:.06em;color:var(--muted);
}

.ilf{margin:0}
.ilf__k{
  font-family:var(--en);font-size:10px;font-weight:400;letter-spacing:.2em;
  color:var(--muted);margin:0 0 28px;
}
.ilf__list{display:grid;gap:34px 30px;margin:0;padding:0;list-style:none}
.ilf__list--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ilf__list--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ilf__list > li{min-width:0}

.ilf__pic{display:flex;align-items:flex-end;width:96px;height:96px;margin:0 0 14px}
.ilf__pic img{display:block;width:100%;height:auto;max-height:100%;object-fit:contain;object-position:bottom}
.ilf__no{font-family:var(--en);font-size:10px;font-weight:400;letter-spacing:.2em;color:var(--muted)}
.ilf__h{
  font-family:var(--serif);font-size:14px;font-weight:500;line-height:1.7;
  letter-spacing:.06em;color:var(--ink);margin:8px 0 8px;
}
.ilf__d{font-size:12px;line-height:1.9;color:var(--ink2)}

.biz .ilf{margin-top:-66px}

.ilf__pic--beach{
  background-image:linear-gradient(to right,
    rgba(255,255,255,0) 0%, rgba(255,255,255,.93) 17%,
    rgba(255,255,255,.93) 83%, rgba(255,255,255,0) 100%);
  background-size:100% 42%;
  background-position:0 100%;
  background-repeat:no-repeat;
}

.ilsum{display:block;width:40px;height:40px;margin:0 auto 14px;opacity:.9}
.ilsum img{display:block;width:100%;height:100%}

#philosophy .ilw{margin-bottom:72px}
#company .ilw{margin-bottom:78px}
.field__body .ilw{max-width:340px;margin:24px 0 28px}

.field__body .ilw img[src$="il-12-avillage.jpg"]{aspect-ratio:700/380;object-fit:cover;object-position:50% 80%}
.field__body .ilw img[src$="il-13-ogawa.jpg"]{aspect-ratio:700/460;object-fit:cover;object-position:50% 64%}

.contact .ilf{margin-bottom:60px}
.contact .ilf__k,.contact .ilf__no{color:rgba(255,255,255,.6)}
.contact .ilf__h{color:#fff}
.contact .ilf__d{color:rgba(255,255,255,.74)}

@media (max-width:1000px){
  .ilf__list{gap:30px 24px}
  .ilf__pic{width:84px;height:84px}
}
@media (max-width:860px){
  .biz .ilf{margin-top:-46px}
  .ilw{max-width:none}
  .ilf__list--4,.ilf__list--3{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}
  .ilf__pic{width:76px;height:76px;margin-bottom:10px}
  .ilf__h{font-size:13.5px;margin:7px 0}
  .ilf__d{font-size:11.5px;line-height:1.85}
  .ilw figcaption{margin-top:13px;font-size:12px}
  .field__body .ilw{max-width:300px}
  .ilsum{width:34px;height:34px;margin-bottom:12px}
}
@media (max-width:420px){
  .ilf__list--4,.ilf__list--3{gap:26px 14px}
  .ilf__pic{width:64px;height:64px}
  .ilf__d{font-size:11px}
  .ilsum{width:30px;height:30px}
}

