:root{
  --paper:#f3f6f4;
  --white:#fff;
  --ink:#0e2230;
  --ink-soft:#4a5d6a;
  --bp:#0d3b5c;
  --bp-mid:#1b5f8a;
  --bp-line:#9fc3da;
  --line:#d3dde0;
  --safety:#f0641e;
  --safety-soft:#fde5d7;
  --maxw:1100px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;font-weight:900;line-height:1.4}

.demo{background:var(--bp);color:#dbe8f1;font-size:12px;text-align:center;padding:8px 12px;line-height:1.6}

/* header */
header{position:sticky;top:0;z-index:40;background:rgba(243,246,244,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.logo{display:flex;flex-direction:column;line-height:1.25;text-decoration:none}
.logo b{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;font-size:19px;letter-spacing:.06em}
.logo small{font-size:10px;letter-spacing:.2em;color:var(--ink-soft)}
nav.main{display:flex;gap:22px;font-size:14px}
nav.main a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
nav.main a:hover,nav.main a[aria-current="page"]{border-color:var(--safety)}
.tel-btn{font-weight:700;font-size:14px;background:var(--safety);color:#fff;text-decoration:none;padding:10px 16px;border-radius:4px;white-space:nowrap}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;font-size:13px;font-weight:700;border:2px solid var(--ink);border-radius:4px;padding:6px 12px}
.mnav summary::-webkit-details-marker{display:none}
.mnav-list{position:absolute;right:0;top:44px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 28px -12px rgba(14,34,48,.4);padding:8px;min-width:210px;display:flex;flex-direction:column;z-index:60}
.mnav-list a{padding:12px 14px;text-decoration:none;border-bottom:1px solid var(--line)}
.mnav-list a:last-child{border-bottom:none}

/* blueprint hero */
.hero{
  position:relative;overflow:hidden;color:#fff;padding:56px 0 64px;
  background:
    linear-gradient(rgba(159,195,218,.13) 1px,transparent 1px) 0 0/32px 32px,
    linear-gradient(90deg,rgba(159,195,218,.13) 1px,transparent 1px) 0 0/32px 32px,
    var(--bp);
}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:center}
.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--bp-line);margin-bottom:16px}
.hero h1{font-size:clamp(32px,4.8vw,58px);line-height:1.35;letter-spacing:.02em}
.hero h1 em{font-style:normal;color:var(--safety)}
.hero p.lead{margin-top:22px;font-size:17px;color:#d7e6f1;max-width:32em}
.hero-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:700;padding:14px 24px;border-radius:4px;background:var(--safety);color:#fff;font-size:16px;border:2px solid var(--safety);cursor:pointer;font-family:inherit;transition:transform .15s}
.btn:hover{transform:translateY(-2px)}
.btn.ghost{background:transparent;border-color:#fff;color:#fff}
.btn.dark{background:var(--ink);border-color:var(--ink)}
.hero-note{margin-top:16px;font-size:13px;color:var(--bp-line)}

.bp svg{width:100%;height:auto;display:block}
.bp .ln{fill:none;stroke:var(--bp-line);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.3s var(--d,0s) cubic-bezier(.5,.1,.3,1) forwards}
.bp .dim{fill:none;stroke:#6f9db9;stroke-width:1.2;stroke-dasharray:4 4}
.bp text{font-family:"IBM Plex Mono",monospace;font-size:11px;fill:#8fb5cd}
@keyframes draw{to{stroke-dashoffset:0}}
.part{cursor:pointer}
.part .ln{transition:stroke .2s,stroke-width .2s}
.part:hover .ln{stroke:#fff}
.part.on .ln{stroke:var(--safety);stroke-width:3.2}
.part:focus-visible{outline:none}
.part:focus-visible .ln{stroke:#fff;stroke-width:3.4}
.hit{fill:transparent}
.hero h1 .l2{display:block;white-space:nowrap}

/* sections */
section{padding:84px 0}
.sec-h{margin-bottom:34px}
.sec-h .tag{display:inline-block;font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;color:var(--bp-mid);border:1px solid var(--bp-line);padding:2px 10px;margin-bottom:10px}
.sec-h h2{font-size:clamp(26px,3.8vw,38px)}
.sec-h p{margin-top:10px;color:var(--ink-soft);max-width:38em}
.alt{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.deep{background:var(--bp);color:#fff}
.deep .sec-h .tag{color:var(--bp-line);border-color:#3f6b8a}
.deep .sec-h p{color:#c9dbe8}

/* parts picker */
.picker{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:start}
.picker .bp{background:var(--bp);padding:18px;border-radius:6px;background-image:linear-gradient(rgba(159,195,218,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(159,195,218,.13) 1px,transparent 1px);background-size:32px 32px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.chip{appearance:none;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--safety);border-color:var(--safety);color:#fff}
.chip:focus-visible{outline:3px solid var(--bp-mid);outline-offset:2px}
.pp{display:none;background:#fff;border:1px solid var(--line);border-top:4px solid var(--safety);padding:22px 24px}
.pp.on{display:block;animation:fadeup .35s ease}
@keyframes fadeup{from{opacity:0;transform:translateY(8px)}}
.pp h3{font-size:22px;margin-bottom:10px}
.pp ul{list-style:none}
.pp li{padding:7px 0 7px 22px;border-bottom:1px dashed var(--line);position:relative;font-size:15px}
.pp li::before{content:"";position:absolute;left:2px;top:17px;width:10px;height:2px;background:var(--safety)}
.pp .more{display:inline-block;margin-top:14px;font-weight:700;color:var(--bp-mid)}

/* strengths */
.str-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.str{background:#fff;border:1px solid var(--line);padding:26px 26px 24px;position:relative}
.str .no{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--bp-mid);letter-spacing:.12em}
.str h3{font-size:22px;margin:6px 0 8px}
.str p{font-size:15px;color:var(--ink-soft)}
.str::after{content:"";position:absolute;left:0;top:0;width:5px;height:100%;background:var(--bp-mid)}

/* flow timeline */
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:3px solid var(--bp)}
.steps li{counter-increment:s;padding:20px 16px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;background:#fff;font-size:15px;font-weight:500}
.steps li:nth-child(4n){border-right:none}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--safety);font-weight:700;margin-bottom:6px}
.steps small{display:block;font-weight:400;font-size:12.5px;color:var(--ink-soft);line-height:1.7;margin-top:4px}

/* notice box */
.notice{display:grid;grid-template-columns:auto 1fr;gap:18px;background:var(--safety-soft);border:2px solid var(--safety);padding:22px 24px;max-width:900px}
.notice .ic{font-family:"IBM Plex Mono",monospace;font-weight:700;background:var(--safety);color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px}
.notice h3{font-size:19px;margin-bottom:4px}
.notice p{font-size:15px}

/* news */
.news{list-style:none;max-width:860px}
.news li{display:grid;grid-template-columns:7.5em 1fr;gap:16px;padding:18px 4px;border-bottom:1px solid var(--line)}
.news time{font-family:"IBM Plex Mono",monospace;color:var(--bp-mid);font-size:14px;padding-top:2px}
.news p{font-size:15px}

/* photo frames */
.frame{position:relative;aspect-ratio:4/3;background:
  linear-gradient(rgba(27,95,138,.08) 1px,transparent 1px) 0 0/20px 20px,
  linear-gradient(90deg,rgba(27,95,138,.08) 1px,transparent 1px) 0 0/20px 20px,#eef3f5;
  border:1px dashed #8fb0c4;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink-soft);font-size:13px;padding:12px}
.frame::before,.frame::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--bp-mid);border-style:solid}
.frame::before{left:-1px;top:-1px;border-width:2px 0 0 2px}
.frame::after{right:-1px;bottom:-1px;border-width:0 2px 2px 0}
.works{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.work{background:#fff;border:1px solid var(--line);padding:14px 14px 20px}
.work h3{font-size:19px;margin:14px 0 6px}
.work p{font-size:14px;color:var(--ink-soft)}
.work .meta{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--bp-mid);letter-spacing:.1em}

/* service groups */
.svc{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.svc-card{background:#fff;border:1px solid var(--line);padding:24px 26px;border-top:4px solid var(--bp-mid)}
.svc-card h3{font-size:20px;margin-bottom:10px}
.svc-card ul{list-style:none}
.svc-card li{padding:6px 0 6px 20px;position:relative;font-size:15px;border-bottom:1px dashed var(--line)}
.svc-card li::before{content:"";position:absolute;left:2px;top:16px;width:9px;height:9px;border:2px solid var(--safety);border-radius:50%}

/* faq */
.faq details{border-bottom:1px solid var(--line);background:#fff}
.faq summary{list-style:none;cursor:pointer;display:flex;gap:14px;align-items:baseline;padding:18px 16px;font-weight:700}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:"IBM Plex Mono",monospace;color:var(--safety);font-weight:700}
.faq summary::after{content:"+";margin-left:auto;font-size:22px;color:var(--ink-soft);line-height:1}
.faq details[open] summary::after{content:"−"}
.faq summary:focus-visible{outline:3px solid var(--bp-mid);outline-offset:-3px}
.faq .a{padding:0 16px 20px 44px;color:var(--ink-soft);font-size:15px}
.faq{max-width:860px;border-top:1px solid var(--line)}

/* company */
dl.co{display:grid;grid-template-columns:9em 1fr;max-width:860px;border-top:1px solid var(--line);background:#fff}
dl.co dt,dl.co dd{padding:16px 18px;border-bottom:1px solid var(--line)}
dl.co dt{font-weight:700;background:#f0f4f4}
.area{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:6px}
.area section{padding:0}
.area h3{font-size:18px;border-bottom:3px solid var(--safety);display:inline-block;margin-bottom:10px}
.area p{font-size:14.5px;color:var(--ink-soft)}
.todo{margin-top:24px;border:2px dashed #b5c4cc;padding:16px 20px;font-size:14px;color:var(--ink-soft);background:repeating-linear-gradient(135deg,#f7f9f8 0,#f7f9f8 10px,#eef2f3 10px,#eef2f3 20px);max-width:860px}
.todo b{color:var(--ink)}

/* page head */
.pagehead{position:relative;color:#fff;padding:42px 0 40px;
  background:linear-gradient(rgba(159,195,218,.13) 1px,transparent 1px) 0 0/32px 32px,linear-gradient(90deg,rgba(159,195,218,.13) 1px,transparent 1px) 0 0/32px 32px,var(--bp)}
.pagehead .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.crumbs{font-size:12px;color:var(--bp-line);letter-spacing:.08em;margin-bottom:12px}
.crumbs a{text-decoration:none;border-bottom:1px solid #3f6b8a}
.pagehead h1{font-size:clamp(30px,4.6vw,48px)}
.pagehead p.ph-lead{margin-top:10px;color:#cfe0ec;max-width:34em}
.titleblock{border:1px solid #6f9db9;font-family:"IBM Plex Mono",monospace;font-size:11px;color:#a9c8dc;min-width:210px}
.titleblock div{display:flex;justify-content:space-between;gap:14px;padding:5px 10px;border-bottom:1px solid #3f6b8a}
.titleblock div:last-child{border-bottom:none}
.titleblock b{color:#fff;font-weight:500}

/* cta */
.cta{background:var(--ink);color:#fff;padding:56px 0}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta h2{font-size:clamp(22px,3vw,30px)}
.cta p{color:#b9cad6;margin-top:6px;font-size:14px}
.cta .num{display:block;font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:clamp(26px,4vw,38px);color:#fff;text-decoration:none;margin-top:4px}

/* form */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:18px 22px;max-width:820px}
.cform label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}
.cform .full{grid-column:1/-1}
.cform input,.cform select,.cform textarea{font:inherit;font-weight:400;padding:12px 14px;border:1px solid #b5c4cc;border-radius:4px;background:#fff;color:var(--ink)}
.cform input:focus-visible,.cform select:focus-visible,.cform textarea:focus-visible{outline:3px solid var(--bp-mid);outline-offset:1px}
.form-note{max-width:760px;margin-bottom:22px;font-size:14px;color:var(--ink-soft);border-left:4px solid var(--safety);padding:6px 0 6px 14px}
.form-result{margin-top:12px;font-size:14px;color:var(--safety);font-weight:700}

footer{background:#091b28;color:#9fb4c3;font-size:12px;padding:30px 0;text-align:center}
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;margin-bottom:14px;font-size:13px}
.foot-nav a{color:#d3e0ea}

.rv{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}

@view-transition{navigation:auto}
::view-transition-old(root){animation:pgOut .3s ease both}
::view-transition-new(root){animation:pgIn .5s cubic-bezier(.3,.7,.3,1) both}
@keyframes pgOut{to{opacity:0;transform:translateY(-10px)}}
@keyframes pgIn{from{opacity:0;transform:translateY(16px)}}

@media (max-width:900px){
  nav.main{display:none}
  .mnav{display:block}
  .hero{padding:40px 0 48px}
  .hero-grid,.picker{grid-template-columns:1fr}
  section{padding:58px 0}
  .str-grid,.svc{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .steps li:nth-child(4n){border-right:1px solid var(--line)}
  .steps li:nth-child(2n){border-right:none}
  .works{grid-template-columns:1fr}
  .area{grid-template-columns:1fr}
  .news li{grid-template-columns:1fr;gap:4px}
  .cform{grid-template-columns:1fr}
  dl.co{grid-template-columns:7em 1fr}
  .titleblock{display:none}
}
@media (max-width:560px){
  .hd{gap:8px}
  .tel-btn{padding:9px 11px;font-size:13px}
  .tel-btn .long{display:none}
  .logo b{font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bp .ln{stroke-dashoffset:0;animation:none}
  .rv{opacity:1;transform:none;transition:none}
  .pp.on{animation:none}
  ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* ===== round 2 ===== */
.finder{background:#fff;border:1px solid var(--line);border-top:4px solid var(--safety);padding:22px 24px;margin-bottom:28px;max-width:860px}
.finder label{display:block;font-weight:700;margin-bottom:8px}
.finder input{width:100%;font:inherit;padding:13px 16px;border:2px solid #b5c4cc;border-radius:4px;background:var(--paper)}
.finder input:focus-visible{outline:3px solid var(--bp-mid);outline-offset:1px}
.qchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.qchips button{appearance:none;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;font-weight:700;padding:7px 14px;border-radius:999px;cursor:pointer}
.qchips button:hover{border-color:var(--safety)}
#qres{margin-top:12px;font-size:14px;color:var(--bp-mid);font-weight:700;min-height:1.6em}
.svc-card.off{display:none}
.svc-card li.off{display:none}

.diagram{background:#0d3b5c;border:1px solid #0d3b5c;padding:6px}
.diagram svg{width:100%;height:100%}
.diagram text{font-family:"Noto Sans JP",sans-serif;font-size:13px;fill:#cfe0ec;font-weight:700}
.diagram .st{fill:none;stroke:#9fc3da;stroke-width:3;stroke-linecap:round}
.diagram .water{fill:none;stroke:var(--safety);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 8;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-72}}
.diagram .src{fill:var(--safety)}
.diagram .out{fill:none;stroke:var(--safety);stroke-width:3}
.diagram .l-base{fill:#1b4d6e;stroke:#9fc3da;stroke-width:2}
.diagram .hatch{stroke:#4d7a99;stroke-width:2;fill:none}
.diagram .l-sheet{fill:#e9f1f6;stroke:#9fc3da;stroke-width:2}
.diagram .l-ure{fill:var(--safety);opacity:.92}
.diagram .l-vent{fill:#9fc3da}
.diagram .l-cap{fill:#cfe0ec}
.diagram .vap{fill:none;stroke:#fff;stroke-width:2.4;stroke-dasharray:3 7;stroke-linecap:round;animation:flow 1.4s linear infinite}
.work .frame.diagram{border-style:solid}

.gantt{max-width:900px;border-top:3px solid var(--bp);background:#fff;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.g-row{display:grid;grid-template-columns:15em 1fr;border-bottom:1px solid var(--line);align-items:center}
.g-lab{padding:14px 16px;font-weight:500;font-size:15px}
.g-lab i{font-style:normal;font-family:"IBM Plex Mono",monospace;font-weight:700;color:var(--safety);margin-right:10px;font-size:13px}
.g-track{position:relative;height:100%;min-height:50px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),#eef2f3 calc(10% - 1px),#eef2f3 10%)}
.g-bar{position:absolute;left:var(--l);top:15px;height:20px;width:0;background:var(--bp-mid);border-radius:2px;transition:width .9s cubic-bezier(.3,.7,.3,1);transition-delay:calc(var(--i) * .12s)}
.gantt.in .g-bar{width:var(--w)}
.g-row:nth-child(odd) .g-bar{background:var(--bp)}
.g-note{padding:12px 16px;font-size:13px;color:var(--ink-soft)}
@media (max-width:900px){.g-row{grid-template-columns:1fr}.g-lab{padding:12px 14px 2px}.g-track{min-height:34px}.g-bar{top:7px}}
@media (prefers-reduced-motion:reduce){.diagram .water,.diagram .vap{animation:none}.g-bar{transition:none;width:var(--w)}}
.mnav summary{white-space:nowrap}
.logo b{white-space:nowrap}
@media (max-width:420px){
  .logo small{display:none}
  .logo b{font-size:15px}
  .hd{gap:6px}
  .tel-btn{padding:9px 9px;font-size:12.5px}
  .mnav summary{padding:6px 9px;font-size:12px}
}

/* ===== round 3: contrast + motion ===== */
:root{--safety-d:#c2410c}
.tel-btn,.btn{background:var(--safety-d);border-color:var(--safety-d)}
.btn.ghost{background:transparent;border-color:#fff}
.btn.dark{background:var(--ink);border-color:var(--ink)}
.steps li::before,.g-lab i,.faq summary::before,.form-result{color:var(--safety-d)}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:left;transform:scaleX(0);background:var(--safety);z-index:80}

.ticker{overflow:hidden;background:var(--ink);color:#cfe0ec;border-top:1px solid #1d3a50;border-bottom:1px solid #1d3a50}
.ticker-track{display:flex;width:max-content;animation:tick 46s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker span{white-space:nowrap;padding:13px 26px;font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:14px;letter-spacing:.08em}
.ticker span::before{content:"◆";color:var(--safety);margin-right:26px;font-size:10px;vertical-align:2px}
@keyframes tick{to{transform:translateX(-50%)}}

.hero .bp{position:relative}
.hero .bp::after{content:"";position:absolute;top:2%;bottom:2%;left:0;width:3px;background:linear-gradient(transparent,var(--safety),transparent);box-shadow:0 0 18px 4px rgba(240,100,30,.45);opacity:0;animation:scan 8s ease-in-out 3.2s infinite;pointer-events:none}
@keyframes scan{0%{left:0;opacity:0}6%{opacity:.9}48%{left:100%;opacity:.9}56%{left:100%;opacity:0}100%{left:100%;opacity:0}}
.hero{will-change:background-position}

.part.on{animation:glow 1.8s ease-in-out infinite}
@keyframes glow{50%{filter:drop-shadow(0 0 7px rgba(240,100,30,.95))}}
.pp.on li{animation:liIn .45s both}
.pp.on li:nth-child(1){animation-delay:.05s}.pp.on li:nth-child(2){animation-delay:.12s}.pp.on li:nth-child(3){animation-delay:.19s}.pp.on li:nth-child(4){animation-delay:.26s}.pp.on li:nth-child(5){animation-delay:.33s}.pp.on li:nth-child(6){animation-delay:.4s}
@keyframes liIn{from{opacity:0;transform:translateX(-10px)}}
.chip{transition:transform .15s,background .2s}
.chip:hover{transform:translateY(-2px)}

.sec-h h2::after{content:"";display:block;width:0;height:4px;background:var(--safety);margin-top:12px;transition:width .8s .15s cubic-bezier(.3,.7,.3,1)}
.sec-h.in h2::after{width:64px}
.sec-h .tag{opacity:0;transform:translateX(-10px);transition:opacity .5s,transform .5s}
.sec-h.in .tag{opacity:1;transform:none}

.str-grid:not(.in) .str,.steps:not(.in) li{opacity:0}
.str-grid.in .str,.steps.in li{animation:liIn .6s both}
.str-grid.in .str:nth-child(2){animation-delay:.1s}.str-grid.in .str:nth-child(3){animation-delay:.2s}.str-grid.in .str:nth-child(4){animation-delay:.3s}
.steps.in li:nth-child(2){animation-delay:.08s}.steps.in li:nth-child(3){animation-delay:.16s}.steps.in li:nth-child(4){animation-delay:.24s}.steps.in li:nth-child(5){animation-delay:.32s}.steps.in li:nth-child(6){animation-delay:.4s}.steps.in li:nth-child(7){animation-delay:.48s}.steps.in li:nth-child(8){animation-delay:.56s}
.str::after{transform-origin:top;transform:scaleY(0);transition:transform .7s .3s}
.str-grid.in .str::after{transform:none}

.work,.svc-card,.str{transition:transform .25s,box-shadow .25s}
.work:hover,.svc-card:hover{transform:translateY(-4px);box-shadow:0 16px 26px -16px rgba(14,34,48,.45)}
.work:hover .diagram .water{animation-duration:.7s}

@media (prefers-reduced-motion:reduce){
  .ticker-track,.hero .bp::after,.part.on{animation:none}
  .pp.on li,.str-grid.in .str,.steps.in li{animation:none}
  .str-grid:not(.in) .str,.steps:not(.in) li{opacity:1}
  .sec-h h2::after{width:64px;transition:none}
  .sec-h .tag{opacity:1;transform:none;transition:none}
  .str::after{transform:none;transition:none}
}
.tel-btn .short{display:none}
@media (max-width:420px){
  .tel-btn .long,.tel-btn .tn{display:none}
  .tel-btn .short{display:inline}
}
dl.co dd{overflow-wrap:anywhere}
