
:root{--blue:#0079c8;--deep:#004c94;--sky:#eaf7ff;--ink:#0d1a28;--muted:#65758a;--line:#d9e7f1;--white:#fff;--black:#050505;--max:1120px;--shadow:0 22px 70px rgba(0,69,130,.18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;background:#fff;overflow-x:hidden}a{text-decoration:none;color:inherit}img{display:block;max-width:100%}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:10px;top:10px;background:#fff;z-index:999;padding:8px}.loader{position:fixed;inset:0;background:#fff;z-index:999;display:grid;place-items:center;gap:10px;color:var(--blue);letter-spacing:.18em;transition:.6s}.loader span{width:140px;height:3px;background:var(--blue);animation:load 1s ease-in-out infinite alternate}.loader.hide{opacity:0;visibility:hidden}.scroll-progress{position:absolute;top:0;left:0;height:4px;background:var(--blue);width:0}.site-header{position:fixed;top:0;left:0;right:0;z-index:80;background:rgba(255,255,255,.9);backdrop-filter:blur(10px)}.header-inner{height:88px;display:flex;align-items:center}.brand{width:210px;margin-left:38px}.brand img{width:150px}.global-nav{display:flex;margin-left:auto;height:100%}.nav-link{min-width:126px;display:grid;place-items:center;text-align:center;color:var(--deep);font-size:13px;font-weight:700;border-left:1px solid rgba(0,121,200,.08)}.nav-link span{display:block;font-size:11px;color:var(--blue);letter-spacing:.12em}.nav-link:hover,.nav-link.active{background:#f1f9ff}.recruit-pill{height:88px;width:126px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:700}.menu-button{display:none}.hero{height:720px;position:relative;overflow:hidden;background:#000}.hero-slides{position:absolute;inset:0;transform:translateY(var(--py,0px))}.hero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.2s}.hero-slide.is-active{opacity:1}.hero-slide img{width:100%;height:110%;object-fit:cover;filter:saturate(.9) contrast(1.05)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,39,77,.58),rgba(0,0,0,.1))}.hero-copy{position:absolute;z-index:3;left:8%;bottom:105px;color:#fff}.hero-copy p{letter-spacing:.16em;font-size:13px}.hero-copy h1{font-size:clamp(34px,5vw,68px);line-height:1.35;margin:.2em 0;text-shadow:0 3px 18px rgba(0,0,0,.45)}.hero-copy span{font-size:18px}.hero-dots{position:absolute;z-index:4;bottom:42px;left:50%;display:flex;gap:10px;transform:translateX(-50%)}.hero-dots button{width:42px;height:3px;border:0;background:rgba(255,255,255,.6)}.hero-dots .is-active{background:#fff}.round-links{position:absolute;z-index:5;right:34px;top:120px;display:grid;gap:18px}.round-links a{width:124px;height:124px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;text-align:center;font-weight:700;box-shadow:var(--shadow);transition:.3s}.round-links a:hover{transform:translateY(-5px) scale(1.03);background:var(--deep)}.movie-badge{width:235px;margin:18px auto 80px;background:#090909;color:#fff;border-radius:8px;padding:13px 22px;display:flex;gap:20px;align-items:center;justify-content:center;font-size:22px}.movie-badge b::first-letter{color:var(--blue)}.movie-badge span{background:#666;border-radius:4px;font-size:14px;padding:4px 14px}.news{display:grid;grid-template-columns:32% 1fr;gap:70px;width:min(var(--max),calc(100% - 42px));margin:0 auto 170px}.news-title{display:grid;align-items:center;border-right:1px dotted var(--blue)}.news-title h2{font-size:22px;font-weight:400;color:var(--blue)}.news-list a{display:grid;grid-template-columns:130px 1fr;gap:20px;margin-bottom:20px;color:var(--blue);font-size:15px}.message{min-height:620px;background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.72)),url('../images/hero-bridge.jpg') center/cover fixed;display:grid;align-items:center}.message>div{width:min(var(--max),calc(100% - 42px));margin:auto}.en,.section-head p,.page-hero p{color:var(--blue);font-size:14px;letter-spacing:.18em;font-weight:700}.message h2,.section-head h2{font-size:clamp(32px,4vw,56px);line-height:1.35;font-weight:500}.message p{max-width:680px;line-height:2}.more{display:inline-flex;align-items:center;margin-top:24px;background:var(--blue);color:#fff;border-radius:999px;padding:12px 34px;font-weight:700}.technology{padding:110px 0;background:#fff}.section-head{width:min(var(--max),calc(100% - 42px));margin:0 auto 40px}.tech-list{display:grid;gap:40px}.tech-card{width:min(var(--max),calc(100% - 42px));margin:auto;display:grid;grid-template-columns:1fr 1fr;background:#f7fbff;box-shadow:var(--shadow);overflow:hidden}.tech-card:nth-child(even){direction:rtl}.tech-card:nth-child(even)>*{direction:ltr}.tech-card img{width:100%;height:340px;object-fit:cover;transition:.5s}.tech-card:hover img{transform:scale(1.04)}.tech-card div{padding:46px}.tech-card b{color:var(--blue);font-size:13px}.tech-card h3{font-size:32px}.works{padding:110px 0;background:linear-gradient(rgba(0,69,130,.65),rgba(0,69,130,.75)),url('../images/hero-tunnel.jpg') center/cover fixed;color:#fff}.works .section-head p,.works .section-head h2{color:#fff}.works-grid{width:min(var(--max),calc(100% - 42px));margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.works-grid a{height:220px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);font-size:32px;font-weight:700;transition:.3s;background:rgba(255,255,255,.08)}.works-grid a:hover{background:#fff;color:var(--blue);transform:translateY(-6px)}.gallery-preview,.voices,.sub-section{padding:110px 0}.gallery-grid{width:min(var(--max),calc(100% - 42px));margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-grid.full{grid-template-columns:repeat(3,1fr)}.gallery-grid figure{margin:0;position:relative;overflow:hidden;box-shadow:var(--shadow);background:#000}.gallery-grid img{width:100%;height:300px;object-fit:cover;transition:.45s}.gallery-grid figcaption{position:absolute;left:20px;bottom:20px;background:rgba(0,121,200,.92);color:#fff;padding:10px 18px}.gallery-grid figure:hover img{transform:scale(1.07)}.voice-carousel{width:min(760px,calc(100% - 42px));margin:auto;position:relative;height:190px;overflow:hidden}.voice-carousel article{position:absolute;inset:0;background:#f5fbff;border-left:5px solid var(--blue);padding:32px;line-height:1.8;opacity:0;transform:translateX(34px);animation:voiceFade 15s ease-in-out infinite}.voice-carousel article:nth-child(2){animation-delay:5s}.voice-carousel article:nth-child(3){animation-delay:10s}.voice-carousel b{display:block;color:var(--blue);margin-top:16px}.blue-statement{height:460px;background:var(--blue);color:#fff;display:grid;place-items:center}.blue-statement p{font-size:clamp(26px,4vw,48px);letter-spacing:.08em}.site-footer{background:#000;color:#fff}.footer-black{padding:70px 0}.footer-grid{width:min(var(--max),calc(100% - 42px));margin:auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.footer-white{background:#fff;color:#111;padding:30px 8%;display:flex;align-items:center;gap:38px}.footer-white img{width:130px}.fixed-reserve,.page-top{position:fixed;right:20px;z-index:70;border:0}.fixed-reserve{bottom:92px;width:78px;height:78px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;text-align:center;font-weight:700}.page-top{bottom:20px;background:var(--blue);color:#fff;width:54px;height:46px;font-size:28px}.page-hero{height:430px;color:#fff;background:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/hero-rail.jpg') center/cover;display:grid;place-items:end start;padding:0 8% 80px}.page-hero.tech{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/gallery-rail-yard.jpg')}.page-hero.works-hero{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/hero-tunnel.jpg')}.page-hero.gallery-hero{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/gallery-bridge-2.jpg')}.page-hero.recruit-hero{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/hero-bridge.jpg')}.page-hero.company-hero{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/gallery-train.jpg')}.page-hero.contact-hero{background-image:linear-gradient(rgba(0,69,130,.55),rgba(0,0,0,.18)),url('../images/gallery-tunnel-2.jpg')}.page-hero h1{font-size:clamp(36px,5vw,72px);margin:0}.sub-inner{width:min(var(--max),calc(100% - 42px));margin:auto}.sub-inner h2{font-size:42px}.sub-inner p{line-height:2}.solution-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}.solution-grid article{background:#f5fbff;border-top:4px solid var(--blue);padding:26px;font-weight:700}.contact-box{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:30px}.contact-box a{font-size:34px;color:var(--blue);font-weight:800}.contact-box iframe{width:100%;height:260px;border:0}@keyframes load{to{transform:scaleX(.25);opacity:.5}}@keyframes voiceFade{0%{opacity:0;transform:translateX(34px)}8%,28%{opacity:1;transform:none}36%,100%{opacity:0;transform:translateX(-34px)}}.reveal{opacity:1;transform:translateY(18px);transition:.7s}.reveal.in{transform:none}@media(max-width:1000px){.header-inner{height:auto;min-height:76px;flex-wrap:wrap}.brand{margin-left:20px}.menu-button{display:block;margin-left:auto;margin-right:16px;background:var(--blue);color:#fff;border:0;padding:10px 14px}.global-nav{display:none;order:5;width:100%;background:#fff;grid-template-columns:1fr}.global-nav.open{display:grid}.nav-link{min-width:0;padding:14px}.recruit-pill{display:none}.round-links{display:none}.news,.tech-card,.works-grid,.gallery-grid,.gallery-grid.full,.footer-grid,.footer-white,.solution-grid,.contact-box{grid-template-columns:1fr}.news-title{border:0}.hero{height:650px}.hero-copy{left:24px;right:24px}.voice-carousel{overflow:auto}.blue-statement{height:280px}.footer-white{display:grid}}@media(max-width:560px){.hero-copy h1{font-size:32px}.hero{height:600px}.section-head h2,.message h2{font-size:32px}.tech-card div{padding:28px}.gallery-grid img{height:230px}.voice-carousel article{min-width:300px}}
