:root{--navy-950:#0d1b2a;--navy-800:#1e3a5f;--blue-600:#2e5cab;--blue-500:#3a6bc4;--brand:#1a468c;--ice:#e6eef5;--ice-2:#f4f8fc;--ice-3:#eef4fb;--white:#fff;--gray:#9aa7b6;--ink:#33435c;--muted:#5b6b80;--maxw:1240px;--ease:cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:#33435c;background:var(--white);-webkit-font-smoothing:antialiased;font-family:Noto Sans JP Variable,system-ui,sans-serif;line-height:1.85;overflow-x:hidden}.en{font-family:Manrope Variable,Noto Sans JP Variable,sans-serif}a{color:inherit;-webkit-text-decoration:none;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--blue-600);align-items:center;gap:12px;font-family:Manrope Variable,sans-serif;font-size:12px;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--blue-600);width:28px;height:1px;display:inline-block}.eyebrow.light{color:#9db6e0}.eyebrow.light:before{background:#9db6e0}.btn{letter-spacing:.02em;transition:all .35s var(--ease);white-space:nowrap;border-radius:2px;align-items:center;gap:10px;padding:14px 28px;font-size:14px;font-weight:600;display:inline-flex}.btn .arw{transition:transform .35s var(--ease)}.btn:hover .arw{transform:translate(5px)}.btn-primary{background:var(--navy-800);color:#fff}.btn-primary:hover{background:var(--navy-950)}.btn-line{color:var(--navy-800);background:0 0;border:1px solid #1e3a5f47}.btn-line:hover{border-color:var(--blue-600);color:var(--blue-600)}header{z-index:100;width:100%;transition:background .4s var(--ease),box-shadow .4s var(--ease),padding .4s var(--ease);padding:24px 0;position:fixed;top:0;left:0}header.scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;padding:15px 0;box-shadow:0 1px #0d1b2a14}.nav{justify-content:space-between;align-items:center;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand img{width:auto;height:32px;transition:height .4s var(--ease)}.menu{align-items:center;gap:34px;display:flex}.menu a.link{color:var(--navy-800);font-size:14px;font-weight:500;transition:color .3s;position:relative}.menu a.link:hover{color:var(--blue-600)}.menu a.link:after{content:"";background:var(--blue-500);width:0;height:2px;transition:width .35s var(--ease);position:absolute;bottom:-6px;left:0}.menu a.link:hover:after{width:100%}.menu .btn-contact{background:var(--navy-800);color:#fff;border-radius:2px;align-items:center;gap:8px;padding:11px 22px;font-size:13px;font-weight:600;transition:background .3s;display:inline-flex}.menu .btn-contact:hover{background:var(--navy-950)}.hamburger{cursor:pointer;flex-direction:column;gap:5px;padding:6px;display:none}.hamburger span{background:var(--navy-800);width:26px;height:2px;transition:all .3s}.hero{min-height:100vh;color:var(--navy-950);background:radial-gradient(1100px 720px at 84% 6%,#3a6bc429,#0000 58%),linear-gradient(#fff 0%,#eef4fb 100%);align-items:center;display:flex;position:relative;overflow:hidden}.hero-grid-lines{opacity:1;background-image:linear-gradient(#1e3a5f0d 1px,#0000 1px),linear-gradient(90deg,#1e3a5f0d 1px,#0000 1px);background-size:80px 80px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 70% 0,#000 40%,#0000 82%);mask-image:radial-gradient(120% 100% at 70% 0,#000 40%,#0000 82%)}.hero .wrap{z-index:3;width:100%;position:relative}.hero-copy{max-width:560px;padding:120px 0}.hero h1{letter-spacing:.01em;color:var(--navy-950);margin:26px 0;font-size:clamp(34px,4.6vw,58px);font-weight:700;line-height:1.34}.hero h1 .accent{color:var(--blue-600)}.hero p.lead{color:var(--muted);max-width:30em;margin-bottom:40px;font-size:clamp(15px,1.15vw,17px);font-weight:400}.hero-cta{flex-wrap:wrap;gap:16px;display:flex}.hero-scroll{z-index:3;letter-spacing:.22em;color:#8695ab;text-transform:uppercase;align-items:center;gap:12px;font-family:Manrope Variable;font-size:11px;display:flex;position:absolute;bottom:34px;left:40px}.hero-scroll .bar{background:#b9c6d8;width:44px;height:1px;position:relative;overflow:hidden}.hero-scroll .bar:after{content:"";background:var(--blue-500);width:44px;height:1px;animation:scrollbar 2.4s var(--ease) infinite;position:absolute;top:0;left:-44px}@keyframes scrollbar{0%{left:-44px}60%,to{left:44px}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.hero-photo{z-index:1;width:54vw;height:100%;position:absolute;top:0;right:0;overflow:hidden}.hero-photo img{object-fit:cover;object-position:58% center;width:100%;height:100%;-webkit-mask-image:radial-gradient(130% 140% at 80% 40%,#000 40%,#00000080 72%,#0000 100%);mask-image:radial-gradient(130% 140% at 80% 40%,#000 40%,#00000080 72%,#0000 100%)}.hero-photo:after{content:"";background:linear-gradient(90deg,#eef4fb 0%,#eef4fbb8 12%,#eef4fb29 34%,#0000 54%),linear-gradient(#0000 78%,#eef4fb 99%),linear-gradient(#eef4fb 0%,#0000 13%);position:absolute;inset:0}.badge{z-index:6;border:1px solid var(--ice);background:#fff;border-radius:4px;flex-direction:column;gap:2px;padding:16px 20px;display:flex;position:absolute;box-shadow:0 20px 44px -16px #1e3a5f59}.badge .num{color:var(--navy-800);font-family:Manrope Variable;font-size:26px;font-weight:800;line-height:1}.badge .lab{color:#7a879a;letter-spacing:.04em;font-size:11px}.badge.b1{animation:6s ease-in-out infinite floatY;top:24%;right:7%}.badge.b2{animation:7.5s ease-in-out .6s infinite floatY;top:57%;right:33%}.kw-strip{background:var(--white);border-top:1px solid var(--ice);border-bottom:1px solid var(--ice);white-space:nowrap;padding:16px 0;overflow:hidden}.kw-track{letter-spacing:.22em;color:#a4b1c4;gap:56px;font-family:Manrope Variable;font-size:13px;animation:28s linear infinite marquee;display:inline-flex}.kw-track span:before{content:"◆";color:#c3d2e6;vertical-align:middle;margin-right:56px;font-size:8px}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}section.blk{padding:130px 0;position:relative}.sec-head{max-width:820px;margin-bottom:64px}.sec-head h2{letter-spacing:.01em;color:var(--navy-950);margin-top:20px;font-size:clamp(26px,3vw,40px);font-weight:700;line-height:1.45}.sec-head p{color:var(--muted);margin-top:20px;font-weight:400}.reveal{opacity:0;transition:opacity .9s var(--ease),transform .9s var(--ease);transform:translateY(34px)}.reveal.in{opacity:1;transform:none}.reveal.d1{transition-delay:80ms}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}.philo{background:var(--ice-2);overflow:hidden}.philo .grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;display:grid}.philo .big{color:var(--navy-950);font-size:clamp(24px,2.8vw,36px);font-weight:700;line-height:1.55}.philo .big .u{background:linear-gradient(#0000 62%,#3a6bc42e 62%)}.philo .body{color:#4a5a70;margin-top:24px;font-weight:400}.philo .vm{letter-spacing:.06em;color:var(--blue-600);align-items:center;gap:10px;margin-top:30px;font-family:Manrope Variable;font-size:13px;font-weight:600;display:inline-flex}.philo .vm .arw{transition:transform .35s var(--ease)}.philo .vm:hover .arw{transform:translate(5px)}.philo .side{position:relative}.philo-media{border-radius:5px;line-height:0;overflow:hidden;box-shadow:0 30px 60px -30px #0d1b2a52}.philo-media img{object-fit:cover;width:100%;height:470px;transition:transform 1.2s var(--ease)}.philo .side:hover .philo-media img{transform:scale(1.05)}.stat-card{border:1px solid var(--ice);z-index:2;background:#fff;border-radius:4px;grid-template-columns:repeat(3,1fr);gap:20px;margin:-52px 20px 0;padding:34px;display:grid;position:relative;box-shadow:0 34px 60px -30px #0d1b2a4d}.stat-card .st{flex-direction:column;gap:6px;display:flex}.stat-card .st .v{color:var(--navy-800);font-family:Manrope Variable;font-size:clamp(28px,3vw,40px);font-weight:800;line-height:1}.stat-card .st .k{color:#7a879a;letter-spacing:.02em;font-size:12px}.stat-card .st+.st{border-left:1px solid var(--ice);padding-left:20px}.svc-grid{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}.svc{border:1px solid var(--ice);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);background:#fff;border-radius:4px;padding:44px 34px 40px;position:relative;overflow:hidden}.svc:after{content:"";background:linear-gradient(90deg,var(--blue-600),var(--navy-800));width:0;height:3px;transition:width .5s var(--ease);position:absolute;top:0;left:0}.svc:hover{border-color:#0000;transform:translateY(-10px);box-shadow:0 34px 70px -34px #0d1b2a66}.svc:hover:after{width:100%}.svc .no{color:#c3d2e6;letter-spacing:.1em;font-family:Manrope Variable;font-size:15px;font-weight:800}.svc .ic{width:56px;height:56px;color:var(--blue-600);margin:22px 0 24px}.svc .ic svg{stroke:currentColor;stroke-width:1.4px;fill:none;width:100%;height:100%}.svc h3{color:var(--navy-950);margin-bottom:14px;font-size:19px;font-weight:700;line-height:1.5}.svc p{color:var(--muted);font-size:14.5px;font-weight:400}.svc .more{color:var(--blue-600);align-items:center;gap:8px;margin-top:22px;font-family:Manrope Variable;font-size:13px;font-weight:600;display:inline-flex}.svc .more .arw{transition:transform .35s var(--ease)}.svc:hover .more .arw{transform:translate(5px)}.approach{background:var(--white)}.kv{grid-template-columns:1.05fr .95fr;align-items:stretch;gap:34px;display:grid}.kv-visual{border:1px solid var(--ice);border-radius:5px;min-height:440px;position:relative;overflow:hidden}.kv-visual img{object-fit:cover;width:100%;height:100%;transition:transform 1.4s var(--ease);position:absolute;inset:0}.kv-visual:hover img{transform:scale(1.05)}.kv-visual:after{content:"";background:linear-gradient(155deg,#0d1b2a4d,#0000 42%);position:absolute;inset:0}.kv-visual .tag{z-index:2;letter-spacing:.2em;color:#fff;text-transform:uppercase;font-family:Manrope Variable;font-size:11px;position:absolute;top:22px;left:24px}.kv-panel{color:#fff;background:linear-gradient(160deg,#12243d,#0b1728);border-radius:5px;flex-direction:column;justify-content:center;padding:44px 40px;display:flex}.kv-panel .pl{letter-spacing:.2em;color:#8fb2ec;text-transform:uppercase;margin-bottom:26px;font-family:Manrope Variable;font-size:11px}.kv-panel .row{transition:padding-left .4s var(--ease);border-bottom:1px solid #ffffff1a;align-items:baseline;gap:16px;padding:20px 0;display:flex}.kv-panel .row:last-child{border-bottom:none}.kv-panel .row:hover{padding-left:10px}.kv-panel .row .w{color:#fff;min-width:130px;font-family:Manrope Variable;font-size:clamp(20px,2vw,26px);font-weight:700}.kv-panel .row .jp{color:#a9bdd8;font-size:13.5px;font-weight:400}.kv-panel .row .jp b{color:#cfe0f6;font-weight:600}.model-card{border:1px solid var(--ice);background:#fff;border-radius:5px;flex-wrap:wrap;align-items:center;gap:44px;margin-top:34px;padding:34px 40px;display:flex;box-shadow:0 30px 60px -34px #0d1b2a40}.donut{flex-shrink:0;width:150px;height:150px;position:relative}.donut svg{transform:rotate(-90deg)}.donut .ring-bg{fill:none;stroke:var(--ice);stroke-width:12px}.donut .ring-fg{fill:none;stroke:url(#g1);stroke-width:12px;stroke-linecap:round;stroke-dasharray:427;stroke-dashoffset:427px;transition:stroke-dashoffset 1.8s var(--ease)}.donut.on .ring-fg{stroke-dashoffset:0}.donut .center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut .center .b{color:var(--navy-800);font-size:28px;font-weight:700;line-height:1}.donut .center .s{letter-spacing:.18em;color:var(--blue-600);text-transform:uppercase;margin-top:4px;font-family:Manrope Variable;font-size:10px}.model-card .mc-body{flex:1;min-width:240px}.model-card .mc-body .lab{letter-spacing:.2em;color:var(--blue-600);text-transform:uppercase;font-family:Manrope Variable;font-size:11px}.model-card .mc-body h3{color:var(--navy-950);margin:10px 0 12px;font-size:20px;font-weight:700}.model-card .mc-body p{color:var(--muted);font-size:14.5px;font-weight:400}.model-card .flow{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.model-card .flow span{letter-spacing:.04em;color:var(--navy-800);border:1px solid var(--ice);background:var(--ice-2);border-radius:2px;padding:6px 12px;font-family:Manrope Variable;font-size:12px;font-weight:600}.model-card .flow i{color:#a4b1c4;align-self:center;font-style:normal}.reason{background:var(--ice-2)}.rz-grid{grid-template-columns:repeat(3,1fr);gap:30px;display:grid}.rz{border-left:1px solid var(--ice);padding:38px 30px;transition:border-color .4s}.rz:hover{border-color:var(--blue-500)}.rz .no{color:#c3d2e6;font-family:Manrope Variable;font-size:44px;font-weight:800;line-height:1}.rz h3{color:var(--navy-950);margin:16px 0 12px;font-size:18px;font-weight:700}.rz p{color:var(--muted);font-size:14.5px;font-weight:400}.company{background:#fff}.company .grid{grid-template-columns:.9fr 1.1fr;gap:70px;display:grid}.info{border-top:1px solid var(--ice);width:100%}.info .row{border-bottom:1px solid var(--ice);grid-template-columns:200px 1fr;align-items:start;gap:20px;padding:22px 6px;display:grid}.info .row dt{color:var(--navy-800);font-size:14px;font-weight:700}.info .row dt small{letter-spacing:.14em;color:var(--gray);text-transform:uppercase;margin-top:3px;font-family:Manrope Variable;font-size:10px;font-weight:600;display:block}.info .row dd{color:#3f4f66;font-size:15px;font-weight:400}.map-card{background:var(--ice-2);border:1px solid var(--ice);border-radius:4px;align-items:flex-start;gap:18px;margin-top:30px;padding:26px 28px;display:flex}.map-card .pin{color:var(--blue-600);flex-shrink:0}.map-embed{border:1px solid var(--ice);border-radius:5px;height:380px;margin-top:56px;overflow:hidden;box-shadow:0 30px 60px -34px #0d1b2a40}.map-embed iframe{border:0;width:100%;height:100%;display:block}.contact{color:#fff;text-align:center;background:radial-gradient(900px 500px at 20% 20%,#3a6bc452,#0000 60%),linear-gradient(150deg,#0d1b2a,#1e3a5f);position:relative;overflow:hidden}.contact .grid-lines{opacity:.4;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:70px 70px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80%,#000,#0000);mask-image:radial-gradient(80% 80%,#000,#0000)}.contact h2{color:#fff;margin:24px 0 20px;font-size:clamp(28px,3.4vw,46px);font-weight:700;position:relative}.contact p{color:#c6d3e6;max-width:34em;margin:0 auto 40px;font-weight:300;position:relative}.contact .mailrow{flex-direction:column;align-items:center;gap:26px;display:inline-flex;position:relative}.contact .mail{letter-spacing:.02em;color:#fff;font-family:Manrope Variable;font-size:clamp(20px,2.4vw,30px);font-weight:600}.contact .btn-white{color:var(--navy-800);background:#fff;border-radius:2px;align-items:center;gap:10px;padding:16px 40px;font-size:14px;font-weight:600;transition:background .3s;display:inline-flex}.contact .btn-white:hover{background:var(--ice)}.contact .btn-white .arw{transition:transform .35s var(--ease)}.contact .btn-white:hover .arw{transform:translate(5px)}footer{color:#7a8ba3;background:#0a1622;padding:70px 0 34px}.foot-top{border-bottom:1px solid #ffffff14;flex-wrap:wrap;justify-content:space-between;gap:40px;padding-bottom:40px;display:flex}.foot-brand img{height:34px;margin-bottom:16px}.foot-brand p{color:#69809e;max-width:26em;font-size:13px;font-weight:300}.foot-links{flex-wrap:wrap;gap:60px;display:flex}.foot-col h4{letter-spacing:.18em;color:#5b728f;text-transform:uppercase;margin-bottom:16px;font-family:Manrope Variable;font-size:11px}.foot-col a{color:#9fb0c6;margin-bottom:11px;font-size:14px;transition:color .3s;display:block}.foot-col a:hover{color:#fff}.foot-bottom{color:#54687f;letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:26px;font-family:Manrope Variable;font-size:12px;display:flex}@media (width<=960px){.wrap{padding:0 24px}.hero-photo,.badge{display:none}.hero-copy{max-width:none;padding:130px 0 90px}.philo .grid,.company .grid,.kv{grid-template-columns:1fr;gap:34px}.svc-grid,.rz-grid{grid-template-columns:1fr}section.blk{padding:90px 0}.menu{background:var(--navy-950);width:min(80vw,340px);transition:transform .45s var(--ease);flex-direction:column;justify-content:center;gap:30px;padding:60px;position:fixed;inset:0 0 0 auto;transform:translate(100%)}.menu.open{transform:none}.menu a.link{color:#fff}.menu .btn-contact{justify-content:center;width:100%}.hamburger{display:flex}.info .row{grid-template-columns:1fr;gap:6px}.hero-scroll{display:none}.model-card{gap:24px}.kv-visual{min-height:300px}}@media (width<=520px){.stat-card{grid-template-columns:1fr;gap:16px}.stat-card .st+.st{border-left:none;border-top:1px solid var(--ice);padding-top:16px;padding-left:0}.foot-top{flex-direction:column}.kv-panel .row{flex-direction:column;gap:4px}}
