﻿@charset "utf-8"; 
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@200..800&family=Zen+Kaku+Gothic+New:wght@400; 500; 700&display=swap'); 
:root{--bg:#f4f4f4; --bg-soft:#ececec; --ink:#121316; --line:#d0d0d0; --white:#fff; --black:#070709; --accent:#F76464; --header-h:82px}
*,::after,::before{box-sizing:border-box}
html{font-size:62.5%; scroll-behavior:smooth}
body{margin:0; color:var(--ink); font-family:"Zen Kaku Gothic New",sans-serif; font-size:1.5rem; font-weight: 500; line-height:1.8; letter-spacing:.02em; overflow-x:hidden}
a{color:inherit; text-decoration:none}
img,video{max-width:100%; height:auto}
ol,ul{margin:0; padding:0; list-style:none}
figure,h1,h2,h3,h4,p{margin:0}
i{ font-style: normal;}
.sp { display: none;}

#container{background: url(../img/bg.svg) top 24px center no-repeat; overflow:clip}
.inner{position: relative; width:min(1000px,calc(100% - 56px)); margin-inline:auto}
.section{position:relative; padding:clamp(68px,8vw,112px) 0}
.section--dark{padding-right: 8%; color:#fff}
.section--dark::before{content: ''; position: absolute; top: 0; right: calc(50% - 500px); width: 100vw; height: 100%; background:#000; z-index: -1;}
.section--gray{ padding-left: 8%; color: #FFF;}
.section--gray::before{content: ''; position: absolute; top: 0; left: calc(50% - 500px); width: 100vw; height: 100%; background:#3b3b3b; z-index: -1;}
.section--darkest{background:#17191d; color:#fff}

.section-title{margin-bottom:clamp(24px,4vw,40px); text-align: center;}
.section-title h1, .section-title h2{font-family: "Plus Jakarta Sans", sans-serif; font-size:clamp(3.1rem, 4.2vw, 7rem); line-height:1.15; font-weight:700; letter-spacing:.01em}
.section-title p{margin-top:8px; font-size:2rem; font-weight:700;}
.section-title--light p{color:#c9c9c9}
.site-header{position:fixed; inset:0 0 auto; z-index:1000; height:var(--header-h); border-bottom:1px solid transparent; transition:background-color .35s ease,border-color .35s ease,backdrop-filter .35s ease}
.site-header.is-scrolled{background:rgba(255,255,255,.92); border-color:rgba(20,20,20,.08); backdrop-filter:blur(6px)}
.site-header__inner{height:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding: 0 20px}
.site-logo img{width:min(190px,34vw)}
.global-nav{display:flex; align-items:center; gap:clamp(14px,2vw,24px)}
.global-nav>a:not(.btn){position:relative; font-family: "Plus Jakarta Sans", "Zen Kaku Gothic New", sans-serif; font-size:1.4rem; font-weight:700}
.global-nav>a:not(.btn)::after{content:""; position:absolute; left:0; bottom:-6px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s ease}
.menu-toggle{display:none; margin-left:auto; border:0; background:0 0; color:var(--ink); cursor:pointer; align-items:center; gap:6px}
.menu-toggle span:not(.menu-toggle__label){display:block; width:32px; height:2px; background:currentColor; border-radius:2px; transition:transform .3s ease,opacity .3s ease}
.menu-toggle__label{width:auto; height:auto; background:0 0; font-family: "Plus Jakarta Sans", sans-serif; font-size:1rem; letter-spacing:.12em}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.btn{position:relative; display:inline-flex; align-items:center; justify-content:center; border:1px solid #111; border-radius:999px; padding:.85em 1.55em; overflow:hidden; font-family: "Plus Jakarta Sans", sans-serif; font-size:1.24rem; font-weight:700; line-height:1; letter-spacing:.08em; text-transform:uppercase; isolation:isolate; transition:transform .24s ease,box-shadow .24s ease}
.btn::before{content:""; position:absolute; inset:0; background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.5),rgba(255,255,255,0)); transform:translateX(-136%); transition:transform .55s ease}
.btn--fill{color:#fff; background:#0b0b0d; border-color:#0b0b0d}
.btn--sm{font-size:1.4rem;}
.btn--submit{width: 100%; max-width: 246px; margin: 24px auto 0; background: #FFF; font-size:1.9rem; color: #000;}

.invertion .menu-toggle span:not(.menu-toggle__label){ background:#FFF;}
@media (min-width:861px){
.invertion .global-nav>a { color: #FFF;}
.invertion .btn--fill{color:#000 !important; background:#FFF; border-color:#0b0b0d}
}

.hero{display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100svh; padding:0;}
.hero__inner {  margin: 0 -10%; text-align: center; mix-blend-mode: multiply}
.hero__title-video{pointer-events:none;}
.hero__title-video video{width:100%;}
.hero__lead{ position: absolute; bottom: 16vw; left: 0; display: block; width: 100%; text-align: center; font-size:clamp(2.1rem, 3.2vw, 3.5rem); font-weight:700; line-height:1.32; letter-spacing:.03em}
.hero__text { position: absolute; top: 50%; left: 4%; transform-origin: left bottom; transform: rotate(90deg) translateX(-50%); font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.1rem; font-weight: 700; font-style: normal;}
.scrollarrow { position: absolute; bottom: 10%; right: 4%; text-align: center; z-index: 100;}
.scrollarrow i { font-family: "Plus Jakarta Sans", sans-serif; font-size: 1rem; font-weight: 700; font-style: normal;}
.scrollarrow span { position: absolute; top: -40px; left: calc(50% - 6px); display: block; width: 12px; height: 32px; background: url("../img/scroll.svg") center no-repeat; animation: scrollarrow 3s ease-in infinite;}
@keyframes scrollarrow { 0% { top: -40px; opacity: 0;} 20% { top: -32px; opacity: 1;} 80% { top: -32px; opacity: 1;} 100% { top: -24px; opacity: 0;}}
.hero__image { max-width: 219px;}

.about .inner{width:min(840px,calc(100% - 56px))}
.about__grid{display:grid; gap:14px}
.about__grid p{font-size:clamp(1.36rem, 1.48vw, 1.52rem); line-height:1.9}

.strength{padding-top:clamp(72px,8vw,108px); padding-bottom:clamp(74px,8.5vw,116px); background: #000; color: #FFF;}
.strength .section-title {display: flex; align-items: flex-end;}

.reason .section-title p { font-size: clamp(2rem,3.2vw,3.2rem); font-weight: 900; letter-spacing: 0; color: #000;}
.reason__grid{display:grid; grid-template-columns: 62% 1fr; gap: 30px; align-items:center}
.reason__grid figure { text-align: center;}
.circle {display: grid; grid-template-columns: repeat(2,1fr); gap: 0.4em; padding: 1em 0; text-align: center;}
.circle li {padding: 0.4em; border:1px solid #BABABA; border-radius: 40px;}

.profile{padding-top:clamp(64px,7vw,100px); margin-top:clamp(68px,8vw,112px); padding-bottom:clamp(64px,7vw,100px)}
.profile .section-title { display: flex; flex-direction: column-reverse; text-align: left;}
.profile-card{display:grid; grid-template-columns: 48% 1fr; gap:24px 56px; align-items: flex-start;}
.profile-card__media figure{ margin-right: calc(100% - 50vw);}
.profile-card--alt{grid-template-columns: 1fr 58%;}
.profile-card--alt .profile-card__media { order: -1;}
.profile-card--alt .profile-card__media figure{margin-left: calc(100% - 50vw);margin-right: auto;}
.profile-card__body p{color: #A5A5A5; font-weight: 400;}
.profile-card__body p+p{margin-top:11px}
.profile-card__credit{margin-top: 1em; font-family: "Plus Jakarta Sans", sans-serif; font-weight: 400; font-style: normal;}
.profile-card__en{margin-top: 2em; padding-top: 2em; border-top: 1px solid #B5B5B5; font-family: "Plus Jakarta Sans", sans-serif; font-size: 1.3rem; font-weight: 300; font-style: normal;}

.service{ margin-top:clamp(-68px,-8vw,-112px); padding-top:clamp(136px,16vw,224px); padding-bottom: 0; background:#FBFBFB;}
.service__grid{display:grid; grid-template-columns:1fr 50%; gap:clamp(24px,4vw,54px)}
.service__left h3 {margin-bottom:clamp(40px,6vw,80px);font-size:clamp(2.1rem, 4.2vw, 5rem); font-weight:700; line-height: 1.2;}
.service__image{margin-left:calc(100% - 50vw);}
.service__right {padding-bottom: clamp(68px,8vw,112px);}
.service-list{margin-top:24px; display:grid; gap:7px}
.service-list li{border:1px solid #bcbcbc; background: #FFF; padding:8px 11px;}

.model{background:url(../img/bg2.svg) left 56vw top -24vw no-repeat;}
.model .section-title {text-align: left;}
.model-headline{margin-bottom:10px; font-size:2rem; font-weight:700}
.model-cards{margin-top: 40px;}
.model-cards .model-structure{ margin: 40px 0; background:#FBFBFB; border-radius: 10px; padding:24px}
.model-cards .model-strength{ display: flex; align-items: center; gap: 16px}
.model-cards .model-strength ul{ flex: 1; display: flex; gap: 8px; list-style: none;}
.model-cards .model-strength li{ flex: 1; display: flex; justify-content: center; align-items: center; padding: 0.5em; text-align: center; border: 1px solid #000000; border-radius: 5px; line-height: 1.3;}
.model-cards h3{margin-bottom:16px; font-size:1.8rem;}
.model-cards ul { margin-left: 1.5em; list-style: disc;}
.model-definition-grid{ border-collapse: collapse;}
.model-definition-grid th { text-align: left; vertical-align: top;}
.model-definition-grid th, .model-definition-grid td { padding: 1em; border: 1px solid #222222; font-weight: 400;}
.model-note-small{margin-top:8px; font-weight: 400;}
.model-structure__head{ position: relative; padding: 0.5em; text-align: center; background: #FFF; border: 1px solid #222; border-radius: 5px; margin-bottom:8px}
.model-structure__head::after { content: ''; position: absolute; top: calc(50% - 4px); left: 100%; width: 25px; height: 7px; background: url(../img/flow.svg) center no-repeat;}
.model-structure__box { padding: 1em; background: #EEEEEE;}
.model-columns{margin-top:14px; display:grid; grid-template-columns:1fr 1fr auto; gap:35px}
.model-column.sec2 .model-structure__head { background: #000; color: #FFF;}
.model-column.sec2 .model-structure__box { background: #313131; color: #FFF;}
.model-column.sec3 {align-self: start; padding: 1em; background: #FFF; border: 1px solid #222; border-radius: 5px;}
.model-note{margin-top:40px; font-size: clamp(1.6rem,2vw,2rem); font-weight: 700;}

.ai{background:#FBFBFB}
.ai .section-title {text-align: left;}
.ai__lead { margin-bottom: 24px;}
.ai__head { margin-bottom: 16px; font-size: 1.8rem;}
.ai-cards{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px}
.ai-cards article{border:1px solid #26272a; background:#09090b; color:#fff; padding:1em}
.ai-cards h4{display: flex; align-items: center; gap: 8px; margin-bottom:6px; font-size:1.6rem; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid #FFF;}
.ai-cards h4 i{ font-size:2rem;}
.ai-cards p{font-size:1.2rem; line-height:1.56; color:#e0e0e0}
.ai-columns{margin-top:40px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px}
.ai-columns h4{ font-size:1.8rem; font-weight: 700;}
.ai-columns ul{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.ai-columns li{ padding: 0.5em; text-align: center; background: #FFF; border: 1px solid #222; border-radius: 5px;}
.ai-note{margin-top:40px; font-size: clamp(1.6rem,2vw,2rem); font-weight: 700;}

.global .section-title {text-align: left;}
.global__grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,4.2vw,52px); align-items:start}
.global-card{border:1px solid #5d5f63; border-radius:10px;  padding:24px}
.global-card h3{margin-bottom:8px; font-family: "Plus Jakarta Sans", sans-serif; font-size:1.82rem}
.global ul{display:grid; gap:6px}
.global li{position:relative; padding-left:16px;}
.global li::before{content:"•"; position:absolute; left:4px; top:0;}

.contact{padding-bottom:clamp(84px,9vw,116px)}
.contact .section-title {text-align: left;}
.contact__bg{position:absolute; inset:0; background:linear-gradient(125deg,rgba(2,3,5,.86),rgba(2,3,5,.76)),url("../img/contact-bg.jpg") center/cover no-repeat}
.contact__grid{position:relative; z-index:2; display:grid; grid-template-columns:1fr minmax(320px,480px); gap:clamp(24px,4vw,56px); color:#fff}
.contact-form{ display:grid; gap:16px}
.form-row--split{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.contact-form label{display:grid; gap:8px}
.required{display:inline-flex; margin-right:6px; padding:1px 5px; border-radius:2px; background:var(--accent); color:#fff; font-size:1.2rem; letter-spacing:.08em; line-height:1.4}
.contact-form input,.contact-form select,.contact-form textarea{width:100%; border:1px solid #676767; border-radius:5px; background:#fff; color:#121212; padding:10px 11px; font-size:1.35rem; line-height:1.45; font-family:inherit}
.contact-form textarea{resize:vertical; min-height:126px}
.form-check{display:flex; gap:8px; align-items:flex-start}
.form-check input{width:16px; height:16px; margin-top:3px}

.site-footer{padding:24px;}
.site-footer__inner{display:grid; grid-template-columns: 1fr auto; gap:24px}
.site-footer__links{display:flex; flex-wrap:wrap; gap:6px 14px}
.site-footer__links a{font-family: "Plus Jakarta Sans", sans-serif; font-size:1.4rem; font-weight: 700;}
.site-footer__company{grid-column: 2 / 3; grid-row: 1 / 4; display:grid; grid-template-columns: auto 1fr;}
.site-footer__company div{display:flex; flex-wrap:wrap; gap:8px 0}
.site-footer__company dd{ text-align: left; margin: 0;}
.site-footer__company dt{ text-align: right; margin-right: 1em; padding-right: 1em; border-right: 1px solid #B2B2B2;}
.site-footer__copy{width:100%; font-size:1.1rem; color:#747474; line-height:1.35}
.reveal{opacity:0; transform:translateY(30px); transition:opacity .9s cubic-bezier(.22, .61, .36, 1),transform .9s cubic-bezier(.22, .61, .36, 1)}
.reveal.is-visible{opacity:1; transform:translateY(0)}
[data-delay="120"]{transition-delay:0.12s}
[data-delay="240"]{transition-delay:0.24s}
[data-delay="460"]{transition-delay:0.46s}


@media (hover:hover) and (pointer:fine){
	.global-nav>a:not(.btn):hover::after{transform:scaleX(1)}
	.btn:hover{transform:translateY(-3px); box-shadow:0 10px 22px rgba(11,11,11,.24)}
	.btn:hover::before{transform:translateX(132%)}
}


@media (max-width:1080px){
	.section--dark{padding-right: 0;}
	.section--dark::before{right: 0;}
	.section--gray{ padding-left: 0;}
	.section--gray::before{left:0;}
	.global__grid,.reason__grid,.service__grid{grid-template-columns:1fr;}
	.profile-card,.profile-card--alt{grid-template-columns:1fr}
	.profile[aria-labelledby="profile-ueda-title"]{ margin-top:0}
	.profile-card__media figure{ margin: 0 !important;}
	.service{ margin-top:0; padding-top:clamp(136px,16vw,224px); padding-bottom: 0;}
	.service__image{margin-left:0; text-align: center;}
	.service__right { padding-bottom: 0;}
	.model-cards .model-strength{ display: block; text-align: center;}
	.model-cards .model-strength ul{ flex-direction: column;}
	.model-cards .model-strength li br { display: none;}
	.model-structure__head::after { display: none;}
	.model-column { position: relative;}
	.model-column:not(.sec3)::after { content: ''; position: absolute; top: 100%; left: 50%; transform: rotate(90deg) translateX(9px); width: 25px; height: 7px; background: url(../img/flow.svg) center no-repeat;}
	.ai-cards,.model-cards,.strength-board{grid-template-columns:repeat(2,minmax(0,1fr))}
	.ai-columns,.model-columns{grid-template-columns:1fr}
	.scroll-view{display:none}
	.hero__image{max-width: initial; text-align: center;}
}
@media (max-width:860px){
	:root{--header-h:68px}
	.inner{width:min(1110px,calc(100% - 34px))}
	.menu-toggle{display:inline-flex; flex-direction:column; justify-content:center}
	.global-nav{position:fixed; right:16px; top:calc(var(--header-h) + 10px); border:1px solid rgba(16,16,16,.1); border-radius:12px; background:rgba(255,255,255,.97); backdrop-filter:blur(8px); box-shadow:0 16px 34px rgba(10,10,10,.18); padding:24px; display:grid; gap:10px; justify-items:start; opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .3s ease,transform .3s ease}
	.global-nav.is-open{opacity:1; transform:translateY(0); pointer-events:auto}
	.global-nav>a:not(.btn) {font-size: 1.8rem;}
	.global-nav .btn{margin-top:2px}
	.strength-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
	.strength-tabs li:nth-child(odd){border-left:0}
	.strength-tabs li:nth-child(n+3){border-top:1px solid #242424}
	.contact__grid{grid-template-columns:1fr}
	.site-footer__inner{display: flex; align-items:center; flex-direction:column; text-align: center;}
}
@media (max-width:640px){
	body{font-size:1.45rem}
	.section{padding:62px 0}
	.hero{padding-top:calc(var(--header-h) + 44px); padding-bottom:68px}
	.hero__title-video{inset:10% 10% 16% 10%}
	.hero__lead{font-size:clamp(2rem, 6.6vw, 2.8rem)}
	.hero__sub{font-size:clamp(1.35rem, 4.2vw, 1.72rem)}
	.about .inner{width:min(840px,calc(100% - 34px))}
	.circle{ grid-template-columns: 1fr;}
	.ai-cards,.model-cards,.strength-board{grid-template-columns:1fr}
	.form-row--split{grid-template-columns:1fr}
	.sp { display: block;}
}
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,::after,::before{animation:none!important; transition:none!important}
	.reveal{opacity:1; transform:none}
}
