/* Blue, navy and silver: the Komatsu Densetsu identity. */
:root{--ink:#12254a;--paper:#fff;--yellow:#087bbf;--gold:#69c8f2;--line:#dce3eb;--muted:#566479;--brand-blue:#087cbe;--brand-navy:#25357b;--silver:#bfcad5}
body{background:#fff;color:var(--ink)}
h1,h2,.promises h3,.principles h3,.works-pending h3,.intro-bar>span,.philosophy-copy .philosophy-conclusion{font-family:'Noto Sans JP',sans-serif;font-weight:700;letter-spacing:-.035em}
h2{line-height:1.6}.header{border-bottom:1px solid #e4eaf1}.header nav{font-weight:500}.header:after{background:linear-gradient(90deg,#12a9dc,#28347a)}.header nav>a:not(.nav-contact):after{background:#087cbe}.nav-contact{background:#25357b;padding:15px 22px}.header nav>a:focus-visible,button:focus-visible,a:focus-visible{outline-color:#0a95d0}.section-label{border-top-color:#dce3eb}.section-label>span:first-child{color:#087cbe;font-weight:500;letter-spacing:.13em}.section-label>span:first-child:after{background:linear-gradient(90deg,#009bd7,#c7d6e3);height:1px;width:52px}
.hero{isolation:isolate;background:#f3f6fa;color:#14284b;height:calc(100svh - 96px);min-height:720px;max-height:900px;--hero-offset:0px}
.hero-image{right:0;top:0;width:53%;height:100%;object-position:42% center;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%);animation:brand-photo-entry 1.4s cubic-bezier(.22,1,.36,1) both;transform:translateY(var(--hero-offset)) scale(1.035)}
.hero-shade{z-index:0;background:linear-gradient(90deg,#f3f6fa 0%,#f3f6fa 43%,#f3f6fa00 66%),linear-gradient(0deg,#e8eef480,transparent 28%);pointer-events:none}
.hero-top{z-index:2;left:6%;right:4%;color:#34486b;font-size:12px;letter-spacing:.12em}.hero-top span:last-child{color:white;text-shadow:0 1px 6px #11264a}
.hero-copy{z-index:2;left:7%;top:20%;width:55%;max-width:760px}.hero-copy h1{font-size:clamp(48px,5.35vw,82px);line-height:1.5;font-weight:800;letter-spacing:-.065em;margin:24px 0 30px}.hero-copy h1>span{display:block;white-space:nowrap}.hero-copy h1 em{background:linear-gradient(115deg,#00a7d7,#006fae 55%,#293779);background-clip:text;-webkit-background-clip:text;color:transparent}
.hero-copy>.eyebrow{color:#35638a;font-size:15px;letter-spacing:.16em}.hero-copy .mini-line{width:44px;background:#0092c8}.hero-description{font-size:16px;line-height:2.1;color:#455a76;letter-spacing:.02em}.round-link{font-weight:600;font-size:14px;border-color:#087cbe;position:relative;padding:14px 0;min-width:205px;margin-top:30px}.round-link:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:#25357b;transform:scaleX(0);transform-origin:left;transition:transform .4s}.round-link:hover:after{transform:scaleX(1)}
.hero-bottom{z-index:2;left:4%;right:4%;bottom:25px;color:#294365}.hero-bottom>span:first-child{font-size:12px}.hero-bottom small{font-size:11px}.scroll-link{font-size:12px;letter-spacing:.1em}.scroll-link:before{content:'';height:34px;width:1px;background:linear-gradient(#0787c7,#b4c1d4);animation:scroll-cue 2.4s ease-in-out infinite;transform-origin:top}.hero-index{color:#fff;text-shadow:0 1px 6px #11264a;font-size:12px}.hero-controls{display:flex;align-items:center;gap:18px}.motion-toggle{font-size:12px;padding:9px 12px;border:1px solid #aebdcc;background:#ffffffed;color:#233b60;min-height:40px;line-height:1.5}.motion-toggle:hover{background:#fff;border-color:#087cbe}
.energy-tracks{position:absolute;z-index:1;left:39%;top:-10%;width:14%;height:120%;transform:skewX(-13deg);pointer-events:none;overflow:hidden}.energy-tracks i{position:absolute;left:12%;top:0;width:1px;height:100%;background:#71b8d52b}.energy-tracks i:nth-child(2){left:44%}.energy-tracks i:nth-child(3){left:88%;background:#c0cbd849}.energy-tracks i:after{content:'';position:absolute;top:-25%;width:100%;height:22%;background:linear-gradient(transparent,#008fc9,transparent);animation:energy-flow 6s linear infinite}.energy-tracks i:nth-child(2):after{animation-delay:-2s}.energy-tracks i:nth-child(3):after{animation-delay:-4s}
.intro-bar{background:white;color:#14284b;border-bottom:1px solid var(--line);padding:30px 7%}.intro-bar>span{font-size:19px;letter-spacing:-.02em}.intro-bar div{color:#53667f}.intro-bar a{transition:color .25s}.intro-bar a:hover{color:#0787c7}
.section{padding-top:100px;padding-bottom:100px}.about-main{grid-template-columns:1.05fr 1fr;gap:7%}.about h2{font-size:clamp(30px,3.2vw,48px);letter-spacing:-.05em}.accent-underline{box-shadow:none;color:#087cbe}.about-copy p{color:#485b73}.facts{border-top:1px solid var(--line);padding-top:38px}.facts strong{color:#263879}.facts .fact-ja{color:#14284b}.facts .fact-last{color:#476685}
.field{background:#10264a;min-height:600px}.field-photo{position:relative}.field-photo:after{content:'';position:absolute;inset:0;border-right:5px solid #1c9bd0;pointer-events:none}.field-statement h2{font-size:clamp(38px,4.3vw,62px);font-weight:700;letter-spacing:-.04em}.field-statement .eyebrow{color:#74cdf0}.field-number{color:#a8c2dd}.field-photo img{transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.business{background:#f5f8fc}.service{transition:background .35s}.service h3{font-size:26px;letter-spacing:-.035em}.service-number{color:#0986c4}.service-toggle{border-color:#b5cadb;border-radius:0;background:white;color:#0c72ad}.service[open] .service-toggle{background:#087cbe;border-color:#087cbe;color:white}.service summary small{color:#5a7896}.service-body{max-width:900px}.service-body p{color:#455a73}
.works{background:#14294c}.works .section-label,.philosophy .section-label{border-color:#8facce40}.works .section-label>span:first-child,.philosophy .section-label>span:first-child{color:#76d0ef}.works-pending{background:#ffffff05;border-color:#a5bbd733;padding:48px}.works-pending:before{height:2px;background:linear-gradient(90deg,#12a4db,#c3cfdb55,transparent)}.pending-badge{color:#89d9f3;border-color:#6db4d780;font-size:14px;padding:7px 18px}.pending-meta{color:#a7bed7}.works-pending h3{font-size:32px;font-weight:500}.pending-grid{background:repeating-linear-gradient(0deg,transparent 0 39px,#61bce9 40px),repeating-linear-gradient(90deg,transparent 0 39px,#a6c4da 40px);opacity:.1}
.message{background:#fff}.signature>span{color:#087cbe}.signature strong{letter-spacing:.12em}.message h2{font-size:clamp(32px,3.2vw,48px)}
.philosophy{background:#0c1e3a}.philosophy:before{width:70%;height:100%;background:radial-gradient(ellipse at top right,#12659666,transparent 60%)}.philosophy:after{content:'';position:absolute;right:9%;top:100px;width:1px;height:85%;background:linear-gradient(transparent,#92b7d333,transparent);transform:rotate(18deg);pointer-events:none}.philosophy h2{font-size:clamp(38px,4.5vw,68px);font-weight:600;letter-spacing:-.05em;line-height:1.7}.philosophy h2 span{color:#73d0ef}.philosophy-copy .philosophy-conclusion{font-size:25px;font-weight:600;letter-spacing:-.02em}.promises{position:relative;z-index:1}.promises article{transition:background .4s}.promises article>span,.principles .eyebrow,.principle-list article>span{color:#7bd4f0}.promises h3{font-size:clamp(22px,2.35vw,34px);font-weight:500;letter-spacing:-.045em}.principles h3{font-weight:600}.principle-list h4{font-size:22px;font-weight:500}.principle-list article{transition:border-color .4s}.principle-list article:hover{border-color:#52bbe5}
.company{background:#f5f8fc}.company h2{font-size:clamp(28px,2.9vw,42px)}.company-table>div{padding:23px 0}.technical-group h3{border-color:#0a91c8}.technical-grid strong{color:#087cbe}.technical-grid>div{position:relative}.recruit-button{color:white;background:#087cbe;min-height:58px;transition:background .3s,transform .3s}.recruit-button:hover{color:white;background:#25357b}.recruit-content>.eyebrow{color:#8cddf2}.recruit:after{background:linear-gradient(90deg,#10274bef,#122d53b3 50%,#122d5350)}.recruit-content h2{font-size:clamp(34px,3.8vw,54px);font-weight:600;letter-spacing:-.04em}.recruit-word{letter-spacing:-.02em;font-weight:500}
.contact{background:linear-gradient(115deg,#007fae,#006da9 38%,#263b7b);position:relative;overflow:hidden}.contact .section-label>span:first-child{color:#fff}.contact .section-label>span:first-child:after{background:#bde9f4}.contact h2{font-weight:500}.contact-english{font-weight:500;letter-spacing:.005em}.contact-circle{background:#fff;color:#173360;border-color:#fff;min-height:80px;position:relative;box-shadow:0 12px 35px #09295520}.contact-circle:before{content:'LINE';background:#06a646;color:#fff;font-family:Arial,sans-serif;font-size:11px;font-weight:700;padding:5px 7px;margin-right:13px;border-radius:4px}.contact-circle:hover{background:#e8f7fc;color:#173360}.contact-circle span{font-size:16px;font-weight:500}.contact-note{color:#e0eff9}.footer{background:#0c1c37}.footer .brand{background:#fff}.footer p{color:#d0ddeb}
@keyframes energy-flow{from{transform:translateY(0)}to{transform:translateY(700%)}}
@keyframes scroll-cue{0%,100%{transform:scaleY(.6);opacity:.5}50%{transform:scaleY(1);opacity:1}}
@keyframes brand-photo-entry{from{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%,82% 100%)}to{opacity:1;clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}}
@media(hover:hover) and (pointer:fine){.service:hover{background:#ffffffb3}.promises article:hover{background:#63c2ec08}.field-photo:hover img{transform:scale(1.035)}}
@media(max-width:1100px) and (min-width:801px){.hero-copy{left:6%;width:58%}.hero-copy h1{font-size:5.4vw}.hero-bottom>span:first-child{display:none}.hero-controls{margin-left:auto}.about h2{font-size:31px}}
@media(max-width:800px){
 .section{padding:64px 20px}.section-label{margin-bottom:32px}.section-label>span:first-child{font-size:15px}.section-label>span:first-child:after{width:28px;margin-inline:10px}
 .hero{display:flex;min-height:0;height:auto;max-height:none;padding:22px 20px 24px;gap:20px;background:#f3f6fa}.hero-image{top:62px;width:100%;height:320px;object-position:43% 38%;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);transform:none;animation:mobile-photo-entry 1.3s ease-out both}.hero-shade{background:linear-gradient(0deg,#f3f6fa 0%,#f3f6fa 47%,#f3f6fa00 62%);z-index:1}.hero-top{position:relative;inset:auto;font-size:10px;letter-spacing:.04em;min-height:35px}.hero-top span:last-child{color:#506a87;text-shadow:none;max-width:128px}.hero-copy{position:relative;inset:auto;width:100%;max-width:none;padding:248px 0 12px}.hero-copy>.eyebrow{font-size:12px;letter-spacing:.12em;gap:12px}.hero-copy .mini-line{width:27px}.hero-copy h1{font-size:clamp(32px,8.7vw,49px);line-height:1.6;margin:20px 0 22px;letter-spacing:-.045em}.hero-description{font-size:15px;letter-spacing:0;line-height:2}.round-link{margin-top:22px;min-width:190px;font-size:14px}.hero-bottom{position:relative;inset:auto;flex-wrap:nowrap;gap:12px}.hero-index{display:none}.hero-controls{margin-left:auto}.scroll-link{font-size:11px;gap:9px}.scroll-link:before{height:27px}.motion-toggle{font-size:12px;padding:9px 11px}.energy-tracks{left:65%;width:32%;height:380px;top:50px;z-index:1;opacity:.6}
 .intro-bar{padding:27px 20px}.intro-bar>span{font-size:17px}.intro-bar div{font-size:13px;margin-top:14px;gap:4px 8px}.intro-bar div>span{display:none}.intro-bar a{display:block;flex-basis:100%;padding:2px 0}
 .about-main{grid-template-columns:1fr;gap:30px}.about h2{font-size:clamp(25px,7.3vw,36px);letter-spacing:-.045em}.facts{padding-top:28px}.field{min-height:0}.field-photo:after{border-right:0;border-bottom:3px solid #1c9bd0}.field-statement h2{font-size:35px}.field-statement .eyebrow{font-size:12px}.field-statement{padding:44px 20px}.service h3{font-size:clamp(17px,4.8vw,22px)}.service summary{grid-template-columns:24px minmax(0,1fr) 36px;gap:10px}.service summary small{font-size:12px}.service-body{font-size:16px}.works-pending{padding:30px 22px}.works-pending h3{font-size:26px}.pending-meta{gap:14px;font-size:13px}.pending-badge{padding:5px 10px;font-size:14px}.message h2{font-size:30px}
 .philosophy h2{font-size:clamp(27px,7.5vw,39px);letter-spacing:-.045em;line-height:1.7}.philosophy-copy .philosophy-conclusion{font-size:clamp(21px,5.7vw,27px);letter-spacing:-.03em}.philosophy .section-label{margin-bottom:40px}.philosophy-copy p{font-size:17px}.promises h3{font-size:clamp(25px,7vw,34px);font-weight:500;line-height:1.75}.promises p{font-size:15px}.principle-list h4{font-size:20px}.company h2{font-size:clamp(25px,6.8vw,34px)}.recruit-content h2{font-size:clamp(24px,6.4vw,34px);line-height:1.8}.contact-circle{min-height:64px}.contact h2{font-size:clamp(24px,6.4vw,31px)}.contact-english{font-size:clamp(58px,18vw,88px)}
}
@keyframes mobile-photo-entry{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
html.motion-paused{scroll-behavior:auto}html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation-play-state:paused!important;transition:none!important}html.motion-paused .hero-image{transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-image{transform:none!important}.energy-tracks i:after{display:none}}
html.motion-paused .hero-image,html.motion-paused .hero-copy>*{animation:none!important}
