@charset "utf-8";

:root{
  --green:       #91cc20;
  --green-pale:  #d3eba6;
  --green-mist:  #e9f5d2;
  --ink:         #232323;
  --text:        #5c5c5c;

  --green-text:  #4a7a0a;
  --green-hover: #84bd17;
  --tint:        #f6faee;
  --line:        #dedede;
  --muted:       #8a8a8a;
  --bg:          #ffffff;
  --on-dark:       #ffffff;
  --on-dark-muted: #bdbdbd;
  --on-dark-line:  rgba(255,255,255,.18);

  --f-sans: "Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","游ゴシック Medium",YuGothic,"Yu Gothic",Meiryo,sans-serif;
  --f-bold: "Hiragino Kaku Gothic ProN","Hiragino Sans",YuGothic,"Yu Gothic",Meiryo,sans-serif;
  --f-num:  "Helvetica Neue",Helvetica,"Segoe UI",Arial,sans-serif;

  --gutter: 20px;
  --wrap: 1120px;
  --header-h: 56px;
}

*,*::before,*::after{box-sizing:border-box}
html{
  -webkit-text-size-adjust:100%;text-size-adjust:100%;
  scroll-padding-top:calc(var(--header-h) + 16px);
}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth} }
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--f-sans);font-size:16px;line-height:1.85;letter-spacing:.02em;
  line-break:strict;overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,strong,b,th,summary{font-family:var(--f-bold);font-weight:700;color:var(--ink)}
h1,h2,h3,summary{word-break:auto-phrase}
.phr > span{display:inline-block}
img{max-width:100%;height:auto}
a{color:inherit}
a:focus-visible,summary:focus-visible{outline:2px solid var(--green-text);outline-offset:3px}
[tabindex="-1"]:focus{outline:none}

.wrap{max-width:calc(var(--wrap) + var(--gutter) * 2);margin:0 auto;padding:0 var(--gutter)}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;padding:8px 14px;font-size:14px}
.skip:focus{left:8px;top:8px}

.kari,.kakunin{
  display:inline-block;margin-left:.5em;padding:0 .45em;
  font-family:var(--f-bold);font-size:11px;font-weight:700;font-style:normal;line-height:1.65;letter-spacing:.06em;
  color:#767676;background:#f1f1f1;border:1px solid #cdcdcd;border-radius:2px;
  vertical-align:.25em;white-space:nowrap;text-decoration:none;
}
.kakunin{background:#fff;border-style:dashed}
.kari--dark,.sec--dark .kari{color:#d0d0d0;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.38)}
.tbd{color:var(--muted)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--green);color:var(--ink);text-decoration:none;
  font-family:var(--f-bold);font-weight:700;line-height:1.3;letter-spacing:.06em;
  border-radius:3px;transition:background-color .15s ease;
}
.btn:hover{background:var(--green-hover)}
.btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.btn--sm{font-size:14px;padding:9px 16px}
.btn--lg{
  display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:16px;
  width:100%;max-width:420px;padding:17px 22px;text-align:left;
}
.btn--lg::after{
  content:"";grid-column:2;grid-row:1;width:10px;height:10px;margin-right:4px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);
}
.btn__main{font-size:18px}

.site-header{
  position:sticky;top:0;z-index:50;background:#fff;
  border-bottom:1px solid var(--line);transition:box-shadow .2s ease;
}
.site-header.is-scrolled{box-shadow:0 2px 14px rgba(35,35,35,.09)}
.site-header__progress{
  position:absolute;left:0;bottom:-1px;width:100%;height:3px;background:var(--green);
  transform:scaleX(0);transform-origin:left center;pointer-events:none;
}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h)}
.site-header__logo img{display:block;height:22px;width:auto}

.hero{position:relative;isolation:isolate;overflow:hidden;padding:56px 0 60px;min-height:560px;background:#1e1e1e}
.hero__grid{display:grid}
.hero__body{min-width:0;max-width:660px;position:relative}
.hero__role{margin:0 0 12px;display:flex;flex-direction:column;line-height:1.5}
.hero__role-main{font-family:var(--f-bold);font-weight:700;color:#fff;font-size:15px;letter-spacing:.06em}
.hero__role-main::before{
  content:"";display:inline-block;width:18px;height:3px;background:var(--green);margin-right:10px;vertical-align:.3em;
}
.hero__role-sub{font-size:13px;color:rgba(255,255,255,.72);padding-left:28px}
.hero__catch{
  margin:0 0 20px;font-size:clamp(24px,6.4vw,46px);line-height:1.48;letter-spacing:.03em;color:#fff;
  font-feature-settings:"palt";
}
.hero__catch > span{display:inline-block}
.hero__catch em,.answer em,.stance em{
  font-style:normal;
  background:linear-gradient(transparent 64%, var(--green-pale) 64%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
}
.hero__catch em{background:none;color:var(--green)}
.hero__catch .kari{vertical-align:.5em}
@media (prefers-reduced-motion:no-preference){
  .js .hero__catch em{color:#fff;transition:color 0s}
  .js .hero__catch em.is-drawn{color:var(--green);transition:color .9s ease .35s}
}

.hero__pay{border-top:1px solid rgba(255,255,255,.45);padding-top:10px;margin-bottom:14px}
.pay__label{margin:0;font-family:var(--f-bold);font-weight:700;font-size:13px;color:#fff;letter-spacing:.12em;line-height:1.6}
.pay__figure{margin:2px 0 0;display:flex;align-items:baseline;white-space:nowrap;color:#fff;line-height:1}
.pay__figure .num{font-family:var(--f-num);font-weight:700;font-size:clamp(46px,12.6vw,76px);letter-spacing:-.02em}
.pay__tilde{font-family:var(--f-bold);font-weight:700;font-size:clamp(22px,6vw,34px);color:var(--green);margin:0 .12em}
.pay__unit{font-family:var(--f-bold);font-weight:700;font-size:clamp(17px,4.6vw,24px);margin-left:.2em}
.pay__sub{margin:8px 0 0;font-size:14px;color:var(--ink);line-height:1.5}

.hero__facts{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:nowrap}
.hero__facts li{
  font-family:var(--f-bold);font-weight:700;color:#fff;font-size:clamp(14px,3.9vw,16px);
  white-space:nowrap;padding:0 14px;border-left:1px solid rgba(255,255,255,.3);line-height:1.5;
}
.hero__facts li:first-child{padding-left:0;border-left:0}
.hero__facts li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--green);margin-right:8px;vertical-align:.12em}

.hero__more{margin:14px 0 0;font-size:14px;line-height:1.5}
.hero__more a{
  color:#fff;text-decoration:underline;text-decoration-color:var(--green);
  text-decoration-thickness:2px;text-underline-offset:5px;
}
.hero__more a::after{
  content:"";display:inline-block;width:6px;height:6px;margin-left:10px;vertical-align:.2em;
  border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);
}
.hero__photo{position:absolute;inset:0;z-index:-1;margin:0;overflow:hidden;background:#1e1e1e}
.hero__photo::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(24,24,24,.86),rgba(24,24,24,.74));
}
.hero__img{
  position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;
  object-fit:cover;object-position:60% 40%;
}
@media (prefers-reduced-motion:no-preference){
  .js .hero__img{animation:hero-appear 1.6s ease .2s both,hero-zoom 24s ease-in-out 1.8s infinite alternate both}
  @keyframes hero-appear{from{opacity:0}to{opacity:1}}
  @keyframes hero-zoom{from{transform:scale(1)}to{transform:scale(1.12) translate(-1.5%,-1%)}}
}

.photo{display:block;width:100%;height:auto;aspect-ratio:3 / 2;object-fit:cover;background:var(--green-mist)}
.photo--wide{object-position:50% 30%}
figure{margin:0}

.sec{padding:64px 0}
.sec--mist{background:var(--green-mist)}
.sec--tint{background:var(--tint)}
.sec--dark{background:var(--ink);color:var(--on-dark-muted)}
.sec__head{margin-bottom:30px}
.sec__kicker{margin:0 0 4px;font-family:var(--f-bold);font-weight:700;font-size:13px;color:var(--green-text);letter-spacing:.14em;line-height:1.6}
.sec__title{
  margin:0;font-size:clamp(23px,5.8vw,34px);line-height:1.45;letter-spacing:.04em;
  font-feature-settings:"palt";
}
.sec__title::before{content:"";display:block;width:28px;height:3px;background:var(--green);margin-bottom:16px}
.sec__kicker + .sec__title::before{display:none}
.sec__kicker::before{content:"";display:block;width:28px;height:3px;background:var(--green);margin-bottom:16px}
.sec--dark .sec__title{color:var(--on-dark)}
.sec__lead{margin:14px 0 0;font-size:15.5px;line-height:1.85;color:var(--on-dark-muted);max-width:40em}
.sec__body{min-width:0}

.voice{
  margin:0 0 26px;padding-left:18px;border-left:2px solid var(--ink);
  font-size:clamp(17px,4.5vw,21px);line-height:1.9;color:var(--ink);
}
.answer{
  margin:0;font-family:var(--f-bold);font-weight:700;color:var(--ink);
  font-size:clamp(20px,5.3vw,30px);line-height:1.6;letter-spacing:.03em;font-feature-settings:"palt";
}
.answer__line{display:block}
@media (min-width:768px){
  .answer{container-type:inline-size}
  .answer__line{font-size:min(1em, 3.8cqw)}
}

.story{margin:0 0 36px;font-size:clamp(16px,4.2vw,18.5px);line-height:2;color:var(--ink)}
.work-intro{display:grid;gap:26px;margin:0 0 40px}
.work-intro .story{margin:0}
.stance{
  margin:22px 0 0;padding-left:16px;border-left:3px solid var(--green);
  font-family:var(--f-bold);font-weight:700;color:var(--ink);font-size:clamp(16px,4.3vw,19px);line-height:1.75;
  font-feature-settings:"palt";letter-spacing:.03em;
}
.support__photo{margin:0 0 28px}
.jobs{list-style:none;margin:0;padding:0;display:grid;border-bottom:1px solid var(--line)}
.jobs li{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:10px;align-content:start;padding:18px 0;border-top:1px solid var(--line)}
.jobs__no{font-family:var(--f-num);font-weight:300;font-size:32px;line-height:1;color:var(--green-text);letter-spacing:-.02em}
.jobs p{margin:0;font-family:var(--f-bold);font-weight:700;color:var(--ink);font-size:16px;line-height:1.7}
.callout{
  margin:28px 0 0;padding:14px 18px;background:var(--green-mist);border-left:4px solid var(--green);
  color:var(--ink);font-size:15px;line-height:1.75;
}

.flow{
  --wire:#9db47a; --step-gap:40px;
  list-style:none;margin:0;padding:0;display:grid;
}
.flow__step{position:relative;min-width:0;padding:0 0 36px 34px}
.flow__step:last-child{padding-bottom:0}
.flow__step::before{
  content:"";position:absolute;left:6px;top:34px;bottom:-6px;border-left:1.5px solid var(--wire);
}
.flow__step--ask::before{border-left-style:dashed}
.flow__step:last-child::before{content:none}
.flow__step::after{
  content:"";position:absolute;left:0;top:16px;width:13px;height:13px;border-radius:50%;
  border:1.5px solid var(--wire);background:var(--tint);box-sizing:border-box;
}
.flow__step--focus::after{border-color:var(--green)}
.flow__step--system::after{background:var(--green);border-color:var(--green)}

.flow__head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.flow__no{
  font-family:var(--f-num);font-weight:300;font-size:32px;line-height:1;letter-spacing:-.02em;color:#a7b98a;
}
.flow__name{margin:0;font-size:18px;line-height:1.4}
.flow__viz{position:relative;margin:0;display:flex;align-items:center}
.flow__viz p{margin:0}

.ask{
  position:relative;width:100%;padding:16px 18px;background:#fff;
  border:1.5px solid #c6d1b0;border-radius:18px;
  font-family:var(--f-bold);font-weight:700;color:var(--ink);font-size:15.5px;line-height:1.65;
  text-align:center;
}
.ask::after{
  content:"";position:absolute;left:26px;bottom:-7.5px;width:12px;height:12px;background:#fff;
  border-right:1.5px solid #c6d1b0;border-bottom:1.5px solid #c6d1b0;transform:rotate(45deg);
}

.flow__step--split .flow__viz,.flow__step--focus .flow__viz{height:132px}
.flow__step--system .flow__viz{height:84px}
.branch{flex:0 0 44px;width:44px;height:132px;overflow:visible}
.branch path{fill:none;stroke:var(--wire);stroke-width:1.5}
.branch circle{fill:var(--wire)}
.rows{list-style:none;margin:0;padding:0;flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.rows > *{height:44px;margin:0;display:flex;align-items:center}
.rows li{padding-left:10px;font-size:14.5px;line-height:1.3;color:var(--ink);white-space:nowrap}
.rows li::after{
  content:"";flex:1 1 auto;height:1.5px;margin-left:12px;background:var(--wire);
}

.merge{flex:0 0 32px;width:32px;height:132px;overflow:visible}
.merge path{fill:none;stroke:url(#merge-grad);stroke-width:1.5}
.merge stop:first-child{stop-color:var(--wire)}
.merge stop:last-child{stop-color:var(--green)}
.row-on{position:relative}
.row-on::before{
  content:"";flex:0 0 22px;height:9px;
  background:
    radial-gradient(circle at 4.5px 50%,var(--green) 4px,transparent 4.6px),
    linear-gradient(var(--green),var(--green)) 0 50% / 100% 3px no-repeat;
}
.row-on__text{
  position:relative;z-index:0;flex:0 1 auto;margin-left:10px;
  font-family:var(--f-bold);font-weight:700;font-size:14.5px;line-height:1.35;color:var(--ink);white-space:nowrap;
}
.row-on__text::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:38%;background:var(--green-pale);z-index:-1;
}

.row-run{position:relative;flex:1 1 auto;height:1.5px;margin-left:12px;background:var(--wire)}
.row-run--on{height:3px;margin-left:10px;background:var(--green)}
.rows li.row-mid::after{content:none}

.loop{flex:0 0 72px;width:72px;height:132px;overflow:visible;margin:-24px 0}
.loop__in,.loop__ring,.loop__arrow{fill:none;stroke:var(--green);stroke-linecap:round;stroke-linejoin:round}
.loop__in{stroke-width:3;stroke-linecap:butt}
.loop__ring{stroke-width:2.5}
.loop__arrow{stroke-width:2.5}
.loop__dot{fill:var(--ink)}
.loop__spin{transform-box:view-box;transform-origin:40px 66px}
.merge__dot{display:none;fill:var(--wire)}

@media (max-width:1023px){
  .flow__step--split .rows li::after,
  .flow__step--split .row-run,
  .flow__step--focus .row-run,
  .loop__in{display:none}
  .flow__step--focus .flow__viz{height:96px}
  .merge{height:96px}
  .merge__dot{display:inline}
}
.system{
  flex:1 1 auto;min-width:0;margin-left:12px !important;
  font-family:var(--f-bold);font-weight:700;color:var(--ink);font-size:15.5px;line-height:1.6;
}

.light{position:absolute;overflow:hidden;pointer-events:none;height:9px}
.light__bar{position:absolute;inset:0;transform:translateX(-100%)}
.light__bar::after{
  content:"";position:absolute;right:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--green);
}
.row-run > .light{left:0;right:0;top:-3.75px}
.row-run--on > .light{top:-3px}
.flow .light:not(.light--v){display:none}
.light--v{left:2.25px;top:34px;bottom:-6px;width:9px;height:auto}
.light--v .light__bar{transform:translateY(-100%)}
.light--v .light__bar::after{right:auto;top:auto;left:50%;bottom:0;margin:0 0 0 -3.5px}
.flow__step:last-child .light--v{display:none}

@media (prefers-reduced-motion:no-preference){
  .flow.is-anim .flow__step{opacity:0;transform:translateY(12px);transition:opacity .7s ease,transform .7s ease}
  .flow.is-anim.is-inview .flow__step{opacity:1;transform:none}
  .flow.is-anim .draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s ease}
  .flow.is-anim.is-inview .draw{stroke-dashoffset:0}
  .flow.is-anim .rows li::after,.flow.is-anim .row-run{
    transform:scaleX(0);transform-origin:left center;transition:transform .8s ease;
  }
  .flow.is-anim.is-inview .rows li::after,.flow.is-anim.is-inview .row-run{transform:none}
  .flow.is-anim.is-inview .flow__step--split{transition-delay:.35s}
  .flow.is-anim.is-inview .flow__step--split .draw{transition-delay:.55s}
  .flow.is-anim.is-inview .flow__step--split .rows li::after,
  .flow.is-anim.is-inview .flow__step--split .row-run{transition-delay:1s}
  .flow.is-anim.is-inview .flow__step--focus{transition-delay:.9s}
  .flow.is-anim.is-inview .flow__step--focus .draw{transition-delay:1.3s}
  .flow.is-anim.is-inview .flow__step--focus .row-run{transition-delay:1.75s}
  .flow.is-anim.is-inview .flow__step--system{transition-delay:1.7s}
  .flow.is-anim.is-inview .flow__step--system .draw{transition-delay:2.05s}

  @keyframes flow-spin{to{transform:rotate(360deg)}}
  @keyframes flow-breathe{from{opacity:1}to{opacity:.4}}
  @keyframes flow-light-short{0%{transform:translateX(-100%)}5%{transform:translateX(0)}5.01%,100%{transform:translateX(-100%)}}
  @keyframes flow-light-long{0%{transform:translateX(-100%)}12%{transform:translateX(0)}12.01%,100%{transform:translateX(-100%)}}
  @keyframes flow-light-v{0%{transform:translateY(-100%)}12%{transform:translateY(0)}12.01%,100%{transform:translateY(-100%)}}
  .flow.is-live .loop__spin{animation:flow-spin 7s linear infinite}
  .flow.is-live .row-on__text::before{animation:flow-breathe 4s ease-in-out infinite alternate}
  .flow.is-live .light--s1 .light__bar{animation:flow-light-short 6s linear infinite}
  .flow.is-live .light--s2a .light__bar{animation:flow-light-short 6s linear .3s infinite}
  .flow.is-live .flow__step--split .row-run .light__bar{animation:flow-light-long 6s linear .75s infinite}
  .flow.is-live .light--s3a .light__bar{animation:flow-light-short 6s linear 1.55s infinite}
  .flow.is-live .flow__step--focus .row-run .light__bar{animation:flow-light-long 6s linear 2.05s infinite}
  .flow.is-live .flow__step--ask .light--v .light__bar{animation:flow-light-v 6s linear infinite}
  .flow.is-live .flow__step--split .light--v .light__bar{animation:flow-light-v 6s linear .9s infinite}
  .flow.is-live .flow__step--focus .light--v .light__bar{animation:flow-light-v 6s linear 1.8s infinite}
  .flow.is-paused .loop__spin,.flow.is-paused .row-on__text::before,.flow.is-paused .light__bar{animation-play-state:paused}
}

.career{
  --wire:#9db47a;
  list-style:none;margin:0;padding:0;display:grid;gap:34px;
}
.career__lead{
  margin:0 0 30px;font-family:var(--f-bold);font-weight:700;font-size:clamp(16px,4.2vw,19px);line-height:1.85;color:var(--ink);
}
.career__lead-line{display:block}
.career__item{min-width:0;padding-top:16px;border-top:2px solid var(--ink)}
.career__role{margin:0 0 18px;font-size:21px;line-height:1.4;letter-spacing:.04em;font-feature-settings:"palt"}
.career__flow{margin:0;padding-left:28px}
.career__from,.career__to{position:relative}
.career__from{padding-bottom:28px}
.career__flow dt{font-family:var(--f-bold);font-weight:700;font-size:12px;line-height:1.6;letter-spacing:.08em;color:var(--text)}
.career__to dt{color:var(--green-text)}
.career__flow dd{margin:2px 0 0;font-size:15px;line-height:1.75;color:var(--ink)}
.career__to dd{font-family:var(--f-bold);font-weight:700;font-size:16px}
.career__mark > span{
  background:linear-gradient(transparent 62%, var(--green-pale) 62%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;
}
.career__from::before,.career__to::before{
  content:"";position:absolute;left:-28px;top:4px;width:12px;height:12px;border-radius:50%;box-sizing:border-box;
}
.career__from::before{border:1.5px solid var(--wire);background:var(--bg)}
.career__to::before{background:var(--green)}
.career__from::after{
  content:"";position:absolute;left:-22.75px;top:18px;bottom:-2px;width:1.5px;background:var(--wire);
}
.career__to::after{
  content:"";position:absolute;left:-22.75px;top:-14px;height:16px;width:1.5px;background:var(--green);
}

@media (prefers-reduced-motion:no-preference){
  .career.is-anim .career__from::after,.career.is-anim .career__to::after{
    transform:scaleY(0);transform-origin:top center;transition:transform .7s ease;
  }
  .career.is-anim .career__to{opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}
  .career.is-anim.is-inview .career__from::after,.career.is-anim.is-inview .career__to::after{transform:none}
  .career.is-anim.is-inview .career__to{opacity:1;transform:none}
  .career.is-anim.is-inview .career__from::after{transition-delay:var(--d,0s)}
  .career.is-anim.is-inview .career__to,.career.is-anim.is-inview .career__to::after{transition-delay:calc(var(--d,0s) + .55s)}
  .career__item:nth-child(2){--d:.2s}
  .career__item:nth-child(3){--d:.4s}
  .career__item:nth-child(4){--d:.6s}
  .career.is-anim .career__mark > span{
    background:linear-gradient(var(--green-pale),var(--green-pale)) no-repeat 0 100% / 0% 38%;
    transition:background-size .7s cubic-bezier(.22,.7,.2,1);
  }
  .career.is-anim.is-inview .career__mark > span{background-size:100% 38%;transition-delay:calc(var(--d,0s) + 1.05s)}
  .career.is-anim.is-inview .career__mark > span + span{transition-delay:calc(var(--d,0s) + 1.6s)}
  @keyframes career-light{0%{top:-8px;opacity:0}10%{opacity:1}45%{top:calc(100% - 7px);opacity:1}55%,100%{top:calc(100% - 7px);opacity:0}}
  @keyframes career-ping{0%,44%{box-shadow:0 0 0 0 rgba(145,204,32,.55)}75%,100%{box-shadow:0 0 0 9px rgba(145,204,32,0)}}
  .career.is-anim.is-inview .career__light::after{animation:career-light 4s linear calc(var(--d,0s) + 2.2s) infinite}
  .career.is-anim.is-inview .career__to::before{animation:career-ping 4s ease-out calc(var(--d,0s) + 2.2s) infinite}
  .career.is-paused .career__light::after,.career.is-paused .career__to::before{animation-play-state:paused}
}
.career__light{position:absolute;left:-26.5px;top:18px;bottom:-10px;width:9px;overflow:hidden;pointer-events:none;z-index:1}
.career__light::after{content:"";position:absolute;left:1px;top:-8px;width:7px;height:7px;border-radius:50%;background:var(--green);opacity:0}

.steps{margin:0;display:grid}
.steps > div{display:grid;grid-template-columns:5em minmax(0,1fr);column-gap:10px;align-items:baseline;padding:12px 0;border-top:1px solid var(--line)}
.steps dt{font-family:var(--f-bold);font-weight:700;font-size:13px;color:var(--green-text);letter-spacing:.06em;line-height:1.75}
.steps dd{margin:0;color:var(--ink);font-size:15px;line-height:1.75}
.steps--dark > div{border-top-color:var(--on-dark-line)}
.steps--dark dt{color:var(--green)}
.steps--dark dd{color:var(--on-dark)}
.steps--dark{margin-top:14px;padding:2px 16px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}
.steps--dark > div:first-child{border-top:0}
.feature__grid .steps--dark{margin-top:0}

.works__top{background:var(--ink);color:var(--on-dark-muted);padding:64px 0 56px}
.works__top .sec__head{margin-bottom:0}
.works__top .sec__title{color:var(--on-dark)}
.feature{margin-top:36px;padding-top:24px;border-top:1px solid var(--on-dark-line)}
.feature__title{margin:12px 0 16px;color:var(--on-dark);font-size:clamp(19px,5vw,24px);line-height:1.55;font-feature-settings:"palt"}
.feature__grid{display:grid;gap:30px}
.feature__lead{
  margin:-4px 0 20px;padding-left:12px;border-left:2px solid var(--green);max-width:52em;
  font-size:14.5px;line-height:1.85;color:#d2d2d2;word-break:auto-phrase;
}
.feature__note{margin:26px 0 0;font-size:13.5px;line-height:1.8;color:var(--on-dark-muted)}

.fmap{
  margin:8px 0 32px;padding:18px 14px 14px;border-radius:16px;
  background:radial-gradient(120% 120% at 0% 0%,rgba(145,204,32,.12),transparent 55%),rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.13);box-shadow:0 12px 32px rgba(0,0,0,.22);
}
.fmap__lead{
  margin:0 0 8px;font-family:var(--f-bold);font-weight:700;font-size:13px;line-height:1.6;color:var(--green);letter-spacing:.06em;text-align:center;
}
.fmap__lead::before,.fmap__lead::after{content:"";display:inline-block;width:18px;height:2px;background:var(--green);vertical-align:.3em;opacity:.7}
.fmap__lead::before{margin-right:10px}
.fmap__lead::after{margin-left:10px}
.fmap__stage{position:relative;margin:0 auto}
.fmap__defs{position:absolute;width:0;height:0;overflow:hidden}
.fmap__svg{display:block;width:100%;height:auto;overflow:visible}
.fmap__svg--wide{display:none}
.fmap__svg--tall{max-width:330px;margin:0 auto}
.fmap__svg text{text-anchor:middle;font-family:var(--f-bold)}
.fnode__tile{fill:#fff;stroke:rgba(35,35,35,.12);stroke-width:1}
.fnode__label{font-size:14px;font-weight:700;fill:var(--ink)}
.fnode__sub{font-size:10.5px;fill:#5c5c5c}
.fnode--dark .fnode__label{fill:#fff}
.fnode--dark .fnode__sub{fill:#e2f2c4}
.fnode__badge{fill:#6f8a46;transition:fill .4s}
.fnode__no{font-family:var(--f-num) !important;font-size:14px;font-weight:700;fill:#fff;transition:fill .4s}
.fnode{transform-box:fill-box;transform-origin:center;transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1);cursor:pointer}
.fmap.is-live .fnode{opacity:.38}
.fmap.is-live .fnode.is-active{opacity:1;transform:scale(1.05)}
.fnode.is-active .fnode__badge{fill:var(--green)}
.fnode.is-active .fnode__no{fill:var(--ink)}
.fmap__conn{fill:none;stroke:#5d7a3a;stroke-width:3;stroke-dasharray:8 6;transition:stroke .4s,stroke-width .4s}
.fmap__conn.is-hot{stroke:#b9e46b;stroke-width:4.5}
#fm-arr path{fill:#b9e46b}
.fmap__pkts circle{fill:#e2f7b5}
.fmap__controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:10px}
.fmap__play{
  padding:4px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);
  color:#fff;font-family:var(--f-bold);font-weight:700;font-size:12px;line-height:1.5;cursor:pointer;transition:background .2s;
}
.fmap__play:hover{background:rgba(255,255,255,.2)}
.fmap__play[hidden]{display:none}
.fmap__dots{display:flex;gap:8px}
.fmap__dot{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.3);cursor:pointer;transition:transform .25s,background .25s,box-shadow .25s}
.fmap__dot.is-on{background:var(--green);transform:scale(1.3);box-shadow:0 0 8px rgba(145,204,32,.8)}
.fmap__play:focus-visible,.fmap__dot:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.fmap__cap{
  display:flex;gap:12px;align-items:flex-start;margin-top:10px;padding:12px 14px;min-height:96px;
  border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
}
.fmap__cap[hidden]{display:none}
.fmap__num{
  flex:0 0 auto;width:40px;margin:0;font-family:var(--f-num);font-weight:700;font-size:30px;line-height:1;letter-spacing:-.02em;
  background:linear-gradient(135deg,#e2f7b5,#91cc20);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.fmap__body{flex:1 1 auto;min-width:0}
.fmap__tag{
  display:inline-block;margin:0 8px 2px 0;padding:1px 9px;border-radius:999px;vertical-align:.1em;
  background:rgba(145,204,32,.18);border:1px solid rgba(145,204,32,.5);color:#d3eba6;
  font-family:var(--f-bold);font-weight:700;font-size:11.5px;line-height:1.6;
}
.fmap__title{display:inline;margin:0;font-family:var(--f-bold);font-weight:700;font-size:15.5px;line-height:1.5;color:#fff}
.fmap__desc{margin:4px 0 0;font-size:13px;line-height:1.7;color:#d2d2d2;word-break:auto-phrase}
.fmap__body.is-fade{animation:fmap-fade .6s ease}
.fmap__list{margin:16px 0 0;padding:0 0 0 1.4em;color:#d2d2d2;font-size:14px;line-height:1.8}
.fmap__list li + li{margin-top:6px}
.fmap__list b{display:block;color:#fff}
.fmap.is-js .fmap__list{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.fmap__note{margin:10px 0 0;font-size:12px;line-height:1.7;color:#bdbdbd;text-align:center}
@media (prefers-reduced-motion:no-preference){
  .fmap__conn{animation:fmap-dash 2.2s linear infinite}
  .fnode.is-active .fnode__card{animation:fmap-pulse 1.8s ease-in-out infinite}
  @keyframes fmap-dash{to{stroke-dashoffset:-28}}
  @keyframes fmap-pulse{0%,100%{filter:drop-shadow(0 0 6px rgba(145,204,32,.4))}50%{filter:drop-shadow(0 0 14px rgba(145,204,32,.7))}}
  @keyframes fmap-fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){ .fmap__pkts{display:none} }
.cases{margin-top:48px}
.cases__title{
  margin:0 0 14px;font-family:var(--f-bold);font-weight:700;font-size:15px;line-height:1.5;letter-spacing:.08em;color:#e2e2e2;
}
.cases__title::before{content:"";display:inline-block;width:18px;height:2px;background:var(--green);margin-right:10px;vertical-align:.3em}
.cases__grid{display:grid}
.case{min-width:0;padding:20px 0 24px;border-top:1px solid var(--on-dark-line)}
.case__title{margin:8px 0 0;color:var(--on-dark);font-size:17px;line-height:1.55;font-feature-settings:"palt"}
.steps--case > div{grid-template-columns:5.2em minmax(0,1fr);padding:9px 0}
.steps--case dt{font-size:12px}
.steps--case dd{font-size:14px;line-height:1.75;color:#e2e2e2}
.cases__note{margin-top:20px}
.result{min-width:0}
.result__label{margin:0 0 6px;font-family:var(--f-bold);font-weight:700;font-size:13px;color:var(--green);letter-spacing:.06em}
.figures{display:flex;flex-wrap:nowrap;border-top:2px solid var(--green)}
.fig{flex:1 1 0;min-width:0;margin:0;padding:14px 8px 0 0;display:flex;flex-direction:column}
.fig + .fig{padding-left:14px;border-left:1px solid var(--on-dark-line)}
.fig__label{display:block;margin-bottom:4px;font-family:var(--f-bold);font-weight:700;font-size:12.5px;color:var(--on-dark-muted);line-height:1.5}
.fig__num{
  display:block;white-space:nowrap;margin-top:auto;
  font-family:var(--f-num);font-weight:700;font-size:clamp(38px,10.6vw,76px);line-height:1;
  color:var(--green);letter-spacing:-.02em;
}
.fig__num small{font-family:var(--f-bold);font-weight:700;font-size:.34em;color:var(--on-dark);margin-left:.12em;letter-spacing:0}
.figures{container-type:inline-size}
.fig__num{font-size:min(clamp(38px,10.6vw,76px), calc((100cqw - 54px) / 3 * .32))}
.fig__num small.pre{margin:0 .12em 0 0}
.steps--dark.steps--ph dd{color:#a8a8a8}
.figures--ph .fig__label{color:#8f8f8f}
.figures--ph .fig__num{color:#8a8a8a}

.work-meta{margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;line-height:1.4}
.work-dept{font-family:var(--f-bold);font-weight:700;font-size:13.5px;color:#d2d2d2;letter-spacing:.04em}
.work-meta--dark .work-dept{color:var(--on-dark)}

.works__list{background:var(--ink);color:var(--on-dark-muted);padding:0 0 64px}
.works__list > .wrap > :first-child{border-top:1px solid rgba(255,255,255,.32);padding-top:52px}
.works__cols{display:none}
.works__items{list-style:none;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.45)}
.work{
  display:grid;grid-template-columns:minmax(0,1fr);row-gap:6px;
  padding:16px 0 18px;border-bottom:1px solid var(--on-dark-line);
}
.work-what{margin:0;font-family:var(--f-bold);font-weight:700;color:var(--on-dark);font-size:16px;line-height:1.6;word-break:auto-phrase}
.work-change{margin:0;line-height:1.5;color:var(--on-dark)}
.work-change__label{display:block;font-size:12.5px;color:#a8a8a8;letter-spacing:.03em}
.work-change__val{display:block;font-family:var(--f-num);font-weight:700;font-size:17px;line-height:1.45;color:var(--on-dark);letter-spacing:0}
.work-change__val > span,.work-change__val > b{display:inline-block}
.work-change .arrow{margin:0 .4em;color:#8f8f8f;font-weight:400}
.work-change b{color:var(--green)}
.work-change b small{font-family:var(--f-bold);font-weight:700;font-size:12px;color:#a8a8a8;margin-left:.1em}
.work-change--text{font-family:var(--f-bold);font-weight:700;font-size:15px;line-height:1.6;color:var(--green);word-break:auto-phrase}
.work-change__note{display:block;margin-top:.2em;font-size:12.5px;line-height:1.6;color:#a8a8a8}
.work-change--result .work-change__val > b{display:inline}

.works-group__head{margin:0 0 14px}
.works-group__step{
  margin:0 0 4px;font-family:var(--f-num);font-weight:700;font-size:12px;letter-spacing:.18em;line-height:1.5;color:var(--green);
}
.works-group__step::before{content:"";display:inline-block;width:18px;height:2px;background:var(--green);margin-right:8px;vertical-align:.3em}
.works-group__title{margin:0;font-size:20px;line-height:1.45;color:var(--on-dark)}
.works-group__desc{margin:4px 0 0;font-size:14px;line-height:1.75;color:var(--on-dark-muted)}
.works-step{position:relative;height:64px}
.works-step::before{content:"";position:absolute;left:20px;top:12px;bottom:18px;width:1px;background:rgba(145,204,32,.55)}
.works-step::after{
  content:"";position:absolute;left:16px;bottom:18px;width:8px;height:8px;
  border-right:1.5px solid var(--green);border-bottom:1.5px solid var(--green);transform:rotate(45deg);
}
.works__note{margin:16px 0 0;font-size:12.5px;line-height:1.7;color:#a8a8a8}

.works__rest{border-top:0}
.works__rest[hidden]{display:none}
.works__toggle{
  display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;
  margin:0;padding:16px 0;background:none;border:0;border-bottom:1px solid var(--on-dark-line);border-radius:0;
  font-family:var(--f-bold);font-weight:700;font-size:15px;line-height:1.5;color:var(--on-dark);text-align:left;cursor:pointer;
}
.works__toggle[hidden]{display:none}
.works__toggle::after{
  content:"";flex:0 0 auto;width:14px;height:14px;
  background:
    linear-gradient(var(--green),var(--green)) center / 14px 2px no-repeat,
    linear-gradient(var(--green),var(--green)) center / 2px 14px no-repeat;
}
.works__toggle[aria-expanded="true"]::after{background:linear-gradient(var(--green),var(--green)) center / 14px 2px no-repeat}
.works__toggle:hover{color:var(--green)}
.works__toggle:focus-visible{outline:2px solid var(--green);outline-offset:2px}

.support{margin:0;display:grid}
.support > div{padding:18px 0 20px;border-top:1px solid var(--ink)}
.support > div:last-child{border-bottom:1px solid var(--line)}
.support dt{font-family:var(--f-bold);font-weight:700;font-size:18px;color:var(--ink);line-height:1.5;margin-bottom:6px}
.support dd{margin:0;font-size:15px;line-height:1.8;color:var(--text)}
.em-num{font-family:var(--f-num);font-weight:700;font-size:1.55em;color:var(--ink);margin:0 .12em;letter-spacing:-.01em;white-space:nowrap}

.reads{margin-top:44px}
.reads__label{margin:0 0 14px;font-family:var(--f-bold);font-weight:700;font-size:16px;line-height:1.5;color:var(--ink)}
.reads__label small{display:block;margin-top:2px;font-family:var(--f-sans);font-weight:400;font-size:12.5px;color:var(--text);letter-spacing:.04em}
.reads__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.reads__list > li{min-width:0}
.read{
  display:flex;flex-direction:column;height:100%;padding:18px 20px 16px;
  background:var(--bg);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:4px;
  color:var(--text);text-decoration:none;transition:box-shadow .2s ease,transform .2s ease;
}
.read:hover{box-shadow:0 8px 20px rgba(35,35,35,.08);transform:translateY(-2px)}
.read__tag{font-family:var(--f-bold);font-weight:700;font-size:12px;line-height:1.5;letter-spacing:.1em;color:var(--green-text)}
.read__title{display:block;margin-top:6px;font-family:var(--f-bold);font-weight:700;font-size:17px;line-height:1.6;color:var(--ink)}
.read__text{display:block;margin-top:8px;font-size:14px;line-height:1.8}
.read__more{
  display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:14px;
  font-family:var(--f-bold);font-weight:700;font-size:14px;line-height:1.5;color:var(--ink);
}
.read__more::after{
  content:"";width:7px;height:7px;border-top:2px solid var(--green);border-right:2px solid var(--green);transform:rotate(45deg);
  transition:transform .2s ease;
}
.read:hover .read__more::after{transform:translateX(3px) rotate(45deg)}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){ .read,.read__more::after{transition:none} .read:hover{transform:none} }

.spec{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.spec,.spec tbody,.spec tr,.spec th,.spec td{display:block}
.spec tr{padding:14px 0;border-bottom:1px solid var(--line)}
.spec th{font-size:12.5px;color:var(--green-text);letter-spacing:.08em;line-height:1.6;margin-bottom:4px;text-align:left}
.spec td{color:var(--ink);font-size:15px;line-height:1.8}
.spec td.tbd{color:var(--muted)}
.spec td p{margin:0}
.spec td p + p{margin-top:6px}
.spec__note{font-size:13.5px;line-height:1.75;color:var(--text)}
.spec__note-line{display:block}
.spec ul{margin:0;padding-left:1.15em}
.spec li + li{margin-top:2px}

.fit{--wire:#9db47a;display:grid;gap:44px}
.fit__col{min-width:0}
.fit h3{margin:0}
.fit ul{list-style:none;margin:0;padding:0}

.fit__col--yes h3{margin-bottom:22px;font-size:20px;line-height:1.45}
.fit__col--yes h3::before{content:"";display:inline-block;width:18px;height:3px;background:var(--green);margin-right:10px;vertical-align:.32em}
.fit__col--yes li{
  position:relative;padding:0 0 24px 30px;
  font-family:var(--f-bold);font-weight:700;font-size:17px;line-height:1.7;color:var(--ink);
}
.fit__col--yes li:last-child{padding-bottom:0}
.fit__col--yes li::before{
  content:"";position:absolute;left:0;top:.5em;width:12px;height:12px;border-radius:50%;background:var(--green);
}
.fit__col--yes li:not(:last-child)::after{
  content:"";position:absolute;left:5.25px;top:calc(.5em + 15.5px);bottom:-4px;width:1.5px;background:var(--wire);
}

.fit__col--no h3{
  margin-bottom:4px;padding-bottom:10px;border-bottom:1px solid var(--line);
  font-size:14px;line-height:1.5;color:var(--text);letter-spacing:.06em;
}
.fit__col--no li{
  position:relative;padding:10px 0 10px 20px;border-bottom:1px solid #ececec;
  font-size:14px;line-height:1.7;color:var(--text);
}
.fit__col--no li::before{
  content:"";position:absolute;left:1px;top:calc(10px + .6em);width:8px;height:8px;border-radius:50%;
  border:1.5px solid #b8b8b8;box-sizing:border-box;
}

@media (prefers-reduced-motion:no-preference){
  .fit.is-anim .fit__col--yes li{opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}
  .fit.is-anim .fit__col--yes li::after{transform:scaleY(0);transform-origin:top center;transition:transform .6s ease}
  .fit.is-anim.is-inview .fit__col--yes li{opacity:1;transform:none}
  .fit.is-anim.is-inview .fit__col--yes li::after{transform:none}
  .fit.is-anim.is-inview .fit__col--yes li:nth-child(1)::after{transition-delay:.35s}
  .fit.is-anim.is-inview .fit__col--yes li:nth-child(2){transition-delay:.45s}
  .fit.is-anim.is-inview .fit__col--yes li:nth-child(2)::after{transition-delay:.8s}
  .fit.is-anim.is-inview .fit__col--yes li:nth-child(3){transition-delay:.9s}
}

.faq{border-top:2px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:26px minmax(0,1fr) 16px;column-gap:10px;align-items:start;
  padding:17px 0;font-size:16px;line-height:1.65;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";width:14px;height:14px;margin-top:.42em;
  background:
    linear-gradient(var(--ink),var(--ink)) center / 14px 2px no-repeat,
    linear-gradient(var(--ink),var(--ink)) center / 2px 14px no-repeat;
}
.faq details[open] summary::after{background:linear-gradient(var(--ink),var(--ink)) center / 14px 2px no-repeat}
.faq__q,.faq__mark{font-family:var(--f-num);font-weight:700;font-size:20px;line-height:1.3;color:var(--green-text)}
.faq__mark{color:var(--ink)}
.faq__a{display:grid;grid-template-columns:26px minmax(0,1fr);column-gap:10px;padding:0 26px 20px 0}
.faq__a p{margin:0;color:var(--ink);font-size:15px;line-height:1.8}

.final{background:var(--ink);color:var(--on-dark);padding:68px 0 60px}
.final__grid{display:grid;gap:30px}
.final__copy{
  margin:0;color:var(--on-dark);font-size:clamp(21px,5.4vw,34px);line-height:1.6;letter-spacing:.03em;
  font-feature-settings:"palt";
}
.final__copy::before{content:"";display:block;width:28px;height:3px;background:var(--green);margin-bottom:18px}
.final__line{display:block}
.final__copy{container-type:inline-size}
.final__line{font-size:max(min(1em, 5.2cqw), 18px)}

.site-footer{background:var(--ink);color:var(--on-dark-muted);padding:36px 0 44px;border-top:1px solid var(--on-dark-line)}
.site-footer__logo{display:block;height:26px;width:auto;margin-bottom:16px}
.site-footer p{margin:0;font-size:13px;line-height:1.8}
.site-footer__name{color:var(--on-dark)}
.v0-legend{margin-top:22px !important;font-size:11.5px !important;color:#8f8f8f}

@media (min-width:768px){
  :root{--gutter:40px}
  .work-intro{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:32px;align-items:start}
  .work-intro .story{font-size:17px}
  .photo--wide{aspect-ratio:21 / 9}
  .jobs{grid-template-columns:1fr 1fr;column-gap:40px}
  .jobs li{grid-template-columns:1fr;row-gap:10px;padding:22px 0 24px}

  .cases__grid{grid-template-columns:1fr 1fr;column-gap:48px}
  .career{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px;row-gap:40px}
  .career__from dd{min-height:calc(2 * 1.75em)}

  .support{grid-template-columns:1fr 1fr;column-gap:40px}
  .reads__list{grid-template-columns:1fr 1fr;gap:16px}
  .reads__label small{display:inline;margin:0 0 0 .75em}
  .support > div:last-child{border-bottom:0}

  .spec{display:table;table-layout:fixed}
  .spec tbody{display:table-row-group}
  .spec tr{display:table-row;padding:0}
  .spec th,.spec td{display:table-cell;padding:18px 0;border-bottom:1px solid var(--line);vertical-align:top}
  .spec th{width:8em;padding-right:20px;font-size:14px;color:var(--ink);margin:0}

  .fit{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0;align-items:start}
  .fit__col--yes{padding-right:44px}
  .fit__col--no{padding:4px 0 4px 36px;border-left:1px solid var(--line)}
}

@media (min-width:1024px){
  :root{--header-h:72px}
  .site-header__logo img{height:28px}
  .btn--sm{font-size:14.5px;padding:10px 22px}

  .fmap{padding:22px 24px 16px}
  .fmap__svg--wide{display:block;max-width:880px;margin:0 auto}
  .fmap__svg--tall{display:none}
  .fmap__cap{max-width:880px;margin-left:auto;margin-right:auto;padding:12px 20px;min-height:0;align-items:center}
  .fmap__num{width:46px;font-size:32px}
  .fmap__title{font-size:16.5px}
  .fmap__desc{font-size:13.5px}

  .hero{padding:96px 0 104px;min-height:640px}
  .hero__role{margin-bottom:18px}
  .hero__catch{margin-bottom:28px}
  .hero__pay{max-width:520px}
  .hero__facts{margin-bottom:26px}
  .hero__photo::before{background:linear-gradient(90deg,rgba(24,24,24,.93) 0%,rgba(24,24,24,.80) 42%,rgba(24,24,24,.28) 100%)}

  .sec{padding:104px 0}
  .sec__grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:56px;align-items:start}
  .sec__grid .sec__title{font-size:29px}
  .sec__grid .sec__title--long{font-size:26px}
  .sec__grid > .sec__head{margin-bottom:0;position:sticky;top:calc(var(--header-h) + 32px)}
  .sec__head--stack{margin-bottom:44px}

  .flow{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--step-gap)}
  .flow__step{padding:0}
  .flow__step::before,.flow__step::after{content:none}
  .flow__head{margin-bottom:18px}
  .flow__no{font-size:44px}
  .flow__viz,.flow__step--system .flow__viz{height:132px}
  .loop{margin:0}
  .flow__step--ask .flow__viz::after{
    content:"";position:absolute;left:100%;top:65.25px;width:calc(var(--step-gap) + 3px);border-top:1.5px dashed var(--wire);
  }
  .flow__step--split .row-run,
  .flow__step--focus .row-run{margin-right:calc(var(--step-gap) * -1)}
  .flow__step--split .rows li{display:grid;grid-template-columns:7.4em minmax(0,1fr);align-items:center}
  .flow__step--focus .merge{position:absolute;left:calc(var(--step-gap) * -1);top:0;width:var(--step-gap);height:132px}
  .flow__step--focus .merge path:nth-of-type(2){display:none}
  .flow__step--focus .merge path{stroke:var(--wire)}
  .flow .light:not(.light--v){display:block}
  .light--v{display:none}
  .light--s1{left:100%;top:61.5px;width:calc(var(--step-gap) + 3px)}
  .light--s2a{left:3px;top:61.5px;width:41px}
  .light--s3a{left:0;top:50%;margin-top:-4.5px;width:22px}

  .works__top{padding:96px 0 80px}
  .feature{margin-top:48px;padding-top:32px}
  .feature__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;align-items:start}
  .cases{margin-top:64px}
  .case__title{font-size:18px}
  .works__list{padding:0 0 96px}
  .works__list > .wrap > :first-child{padding-top:64px}
  .works-group__head{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:baseline;margin-bottom:18px}
  .works-group__step{grid-row:1 / span 2;margin:0}
  .works-group__desc{grid-column:2}
  .works-step{height:72px}
  .works-step::before{left:27px}
  .works-step::after{left:23px}
  .works__cols,.work{display:grid;grid-template-columns:130px minmax(0,1fr) 280px;column-gap:24px}
  .works__cols{padding:0 0 10px;font-family:var(--f-bold);font-weight:700;font-size:12px;color:#a8a8a8;letter-spacing:.06em;line-height:1.5}
  .work{align-items:baseline;row-gap:0;padding:18px 0}

  .final{padding:96px 0 88px}
  .final__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:72px;align-items:end}
}

@media (prefers-reduced-motion:no-preference){
  @keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  .js .hero__body > *{animation:rise 1.2s cubic-bezier(.2,.7,.2,1) both}
  .js .hero__role{animation-delay:.08s}
  .js .hero__catch{animation-delay:.27s}
  .js .hero__pay{animation-delay:.48s}
  .js .hero__facts{animation-delay:.63s}
  .js .hero__body > .cta{animation-delay:.78s}
  .js .hero__more{animation-delay:.9s}

  .rv{opacity:0;transform:translateY(32px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rv-d,0s)}
  .rv.is-in{opacity:1;transform:none}
  .sec__head.rv .sec__title::before,.sec__head.rv .sec__kicker::before,.final__copy.rv::before{
    transform:scaleX(0);transform-origin:left center;transition:transform 1.05s cubic-bezier(.2,.7,.2,1) .55s;
  }
  .sec__head.rv.is-in .sec__title::before,.sec__head.rv.is-in .sec__kicker::before,.final__copy.rv.is-in::before{transform:none}
  .work-intro__photo.rv,.support__photo.rv{overflow:hidden}
  .work-intro__photo.rv img,.support__photo.rv img{transform:scale(1.08);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
  .work-intro__photo.rv.is-in img,.support__photo.rv.is-in img{transform:none}
  .case{transition:translate .3s ease}
  .case.rv{transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1),translate .3s ease;transition-delay:var(--rv-d,0s),var(--rv-d,0s),0s}
  .case:hover{translate:0 -3px}
}
