@font-face{font-family:Manrope;src:url(/fonts/manrope.woff2)format("woff2");font-weight:400 800;font-display:swap}@font-face{font-family:Noto Sans JP;src:url(/fonts/notosansjp.woff2)format("woff2");font-weight:400 800;font-display:swap}:root{color-scheme:light;--ink:#101e30;--muted:#4d6075;--navy:#081321;--pale:#f2f6fa;--line:#d8e2ed;--accent:#145e97;--sky:#85dfff;--side:clamp(20px, 5vw, 72px);--section:clamp(60px, 7vw, 104px);font-family:Manrope,Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{color:var(--ink);background:#fff;margin:0;line-height:1.8}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}h1,h2,h3{text-wrap:balance;font-weight:750;line-height:1.32}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{font:inherit;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline-offset:4px;outline:3px solid #2494d7}[hidden]{display:none!important}.skip{z-index:20;color:var(--ink);background:#fff;padding:8px 16px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip:focus{transform:none}.wrap{width:min(1240px, calc(100% - var(--side) * 2));margin-inline:auto}.center{text-align:center;margin-top:34px}.section{padding-block:var(--section)}.pale{background:var(--pale)}.dark{background:var(--navy);color:#f2f7fc}.label{letter-spacing:.18em;color:var(--accent);align-items:center;gap:.65em;font-size:.84rem;font-weight:800;display:inline-flex}.label:before{content:"";background:currentColor;width:1.2em;height:1px}.dark .label,.agent .label{color:var(--sky)}.section-heading{text-align:center;margin-bottom:clamp(25px,4vw,50px)}.section-heading h2,.about h2{letter-spacing:.015em;margin-top:10px;font-size:clamp(1.75rem,3.1vw,2.8rem)}.section-heading>p:not(.label){margin-top:16px}.site-header{z-index:5;min-height:80px;padding:16px var(--side);color:#fff;background:linear-gradient(#080f1bd1,#0000);justify-content:space-between;align-items:center;gap:25px;display:flex;position:fixed;inset:0 0 auto}.site-header.is-scrolled,.site-header:has(.menu-toggle[aria-expanded=true]){background:#081321f5;box-shadow:0 1px #ffffff26}.brand{flex-shrink:0;display:inline-block}.brand img{width:clamp(155px,15vw,202px)}.site-header nav ul{align-items:center;gap:clamp(12px,1.7vw,30px);display:flex}.site-header nav a{text-align:center;white-space:nowrap;gap:2px;line-height:1.35;display:grid}.site-header nav a:hover,.site-header nav a[aria-current] .nav-en{color:var(--sky)}.nav-en{letter-spacing:.055em;font-size:.78rem;font-weight:800}.nav-ja{font-size:.71rem;font-weight:550}.menu-toggle{color:#fff;background:#0a162aa3;border:1px solid #ffffff62;border-radius:6px;width:46px;height:44px;padding:10px;display:none}.menu-toggle span{background:currentColor;width:100%;height:1px;margin-block:5px;transition:transform .18s,opacity .18s;display:block}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(6px)rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.hero{isolation:isolate;color:#fff;background:#071524;grid-template-rows:1fr auto;align-items:center;min-height:max(710px,100svh);padding-top:92px;display:grid;position:relative}.hero-image,.hero:after{z-index:-1;pointer-events:none;position:absolute;inset:0}.hero-image img{object-fit:cover;object-position:center;width:100%;height:100%}.hero:after{content:"";z-index:-1;background:linear-gradient(90deg,#020b16a3 0%,#050d1945 50%,#0000 76%),linear-gradient(#0000 64%,#030b17b3 100%)}.hero-copy{z-index:1;margin:0 var(--side) clamp(46px, 10vh, 118px);isolation:isolate;grid-row:1;place-self:end start;position:relative}.hero-copy:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#061422ee 33%,#091729bc 76%,#0000);position:absolute;inset:-38px -72px -38px -24px;mask-image:linear-gradient(#0000,#000 25% 75%,#0000)}.hero-copy h1{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(2.55rem,4.9vw,5.3rem);font-weight:800;line-height:1}.hero-copy h1 span{color:#a2e8ff;-webkit-text-fill-color:transparent;background:linear-gradient(110deg,#9ce9ff,#b4bbff) text}.hero-copy p{letter-spacing:.065em;color:#e4efff;align-items:center;gap:.75em;margin-top:16px;font-size:clamp(1rem,1.45vw,1.35rem);font-weight:650;display:flex}.hero-copy p:before{content:"";background:#9ce9ff;flex:none;width:1.7em;height:2px}.news{backdrop-filter:blur(9px);background:#0a1a2ade;border:0;border-top:1px solid #c2deff42;border-left:1px solid #c2deff42;border-radius:7px 0 0;grid-row:2;justify-self:end;width:min(535px,49%);padding:19px 22px 21px}.news-heading{border-bottom:1px solid #ffffff34;justify-content:space-between;align-items:center;gap:10px;padding-bottom:9px;display:flex}.news-heading h2{letter-spacing:.12em;font-size:1.05rem}.news-heading a{align-items:center;gap:7px;font-size:.86rem;font-weight:700;display:inline-flex}.news-heading a .arrow{color:var(--sky)}.news li{grid-template-columns:87px minmax(0,1fr);align-items:baseline;gap:8px;margin-top:7px;font-size:.87rem;line-height:1.55;display:grid}.news time{color:#cfdef3;font-variant-numeric:tabular-nums;letter-spacing:.035em;font-size:.83em;font-weight:650}.news a:hover{color:var(--sky);text-underline-offset:.2em;text-decoration:underline}.scroll-link{letter-spacing:.13em;justify-items:center;gap:10px;font-size:.69rem;font-weight:700;display:grid;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.scroll-link .arrow{color:#bce9ff}.agent{color:#f4f9ff;background-color:#08182b;background-image:radial-gradient(at 50% -5%,#16466c 0,#101f36 52%,#0000 92%)}.agent-inner{text-align:center;max-width:820px}.agent h2{letter-spacing:.035em;margin-top:10px;font-size:clamp(2rem,4vw,3.5rem)}.agent-catch{margin-top:20px;font-size:clamp(1.08rem,2.1vw,1.55rem)}.agent-catch strong{color:#b3e5fa}.agent-description{text-align:left;color:#d6e4f2;max-width:700px;margin:14px auto 0}.actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:25px;display:flex}.arrow{flex:none;width:1.15em;height:1.15em;transition:translate .2s;display:block}a:is(:hover,:focus-visible) .arrow{translate:3px}a:is(:hover,:focus-visible) .arrow[data-arrow=up-right]{translate:2px -2px}.scroll-link:is(:hover,:focus-visible) .arrow{translate:0 3px}.button{letter-spacing:.018em;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:14px;min-height:48px;padding:10px 20px;font-size:.96rem;font-weight:750;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.button-primary{color:#112e49;background:#e6f5ff}.button-primary:hover{background:#a7dffd}.button-ghost{color:#fff;border-color:#a5c1dd8c}.button-ghost:hover{background:#ffffff21;border-color:#fff}.button-outline{color:#18496d;border-color:#82a3bd}.button-outline:hover{background:#e2f0f8}.work-codex{color:#d8edff;border-bottom:1px solid #d8edff70;align-items:center;gap:8px;margin-top:22px;padding-bottom:2px;font-size:.95rem;font-weight:700;display:inline-flex}.work-codex:hover{color:#fff}.development-grid,.about{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(25px,5vw,72px);display:grid}.development-list li{border-bottom:1px solid var(--line);grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,2vw,25px);padding-block:19px;display:grid}.development-list li:first-child{padding-top:0}.development-list li:last-child{border-bottom:0}.number{color:var(--accent);letter-spacing:-.055em;font-variant-numeric:tabular-nums;font-size:clamp(1.75rem,3.1vw,2.75rem);font-weight:800;line-height:1}.development-list .number{align-content:start;gap:7px;min-width:2ch;display:grid}.development-list .number:after{content:"";background:#72abc8;width:.6em;height:2px}.development-list h3{font-size:clamp(1.16rem,1.75vw,1.45rem)}.development-list p,.feature-row p,.about p:not(.label){color:var(--muted);margin-top:7px}.development-image{aspect-ratio:3/2;object-fit:cover;border-radius:6px;width:100%}.fastream .section-heading img{width:min(245px,65%);margin:12px auto}.fastream .section-heading>p:not(.label),.fastream .feature-row p{color:#c9dbeb}.feature-list{gap:clamp(12px,2.2vw,25px);display:grid}.feature-row{border-radius:6px;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(20px,4.5vw,66px);padding:20px clamp(18px,3vw,35px);display:grid}.feature-row h3{font-size:clamp(1.25rem,2.35vw,2rem)}.feature-row .feature-subtitle{color:#f0f6ff;margin-top:9px;font-weight:700}.feature-row img{object-fit:contain;border-radius:4px;width:100%;max-height:310px}.fastream .feature-row{background:#102134;border:1px solid #2d4259}.feature-row:nth-child(2n){grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)}.feature-row:nth-child(2n) img{grid-area:1/1}.service-list .feature-row{background:#f5f8fb;padding:0;overflow:clip}.service-list .feature-row>div{padding:clamp(18px,3.5vw,44px)}.service-list .feature-row img{object-fit:cover;border-radius:0;height:100%;min-height:225px}.text-link{min-height:44px;color:var(--accent);align-items:center;gap:11px;margin-top:12px;font-weight:750;display:inline-flex}.text-link .arrow{box-sizing:content-box;border:1px solid #a8c7de;border-radius:50%;padding:6px;transition:translate .2s,color .2s,background .2s}.text-link:is(:hover,:focus-visible) .arrow{background:var(--accent);color:#fff}.works-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.5vw,20px);display:grid}.work-card{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 14px;height:100%;padding:clamp(16px,2.1vw,28px);display:grid}.work-card:is(:hover,:focus-visible){border-color:#5593bf}.work-category{color:var(--accent);grid-column:1;font-size:.84rem;font-weight:750}.work-card h3{text-wrap:wrap;overflow-wrap:anywhere;grid-column:1;font-size:clamp(1.03rem,1.45vw,1.28rem);line-height:1.5}.work-arrow{border:1px solid var(--line);width:34px;height:34px;color:var(--accent);border-radius:50%;grid-area:1/2/3;align-self:center;place-items:center;display:grid}.work-card:is(:hover,:focus-visible) .work-arrow{background:var(--accent);border-color:var(--accent);color:#fff}.about img{border-radius:6px;width:100%;height:auto}.about p:not(.label){margin-top:13px}.contact{text-align:center;color:#fff;background:#112b43}.contact h2{font-size:clamp(1.48rem,2.9vw,2.4rem)}.site-footer{padding:52px 0 23px}.site-footer .brand img{width:44px}.footer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:30px;display:grid}.footer-heading{font-size:.95rem;font-weight:700}.footer-grid ul{color:#c3d2e3;margin-top:8px;font-size:.83rem;line-height:1.9}.site-footer a:hover{color:var(--sky);text-underline-offset:3px;text-decoration:underline}.footer-bottom{color:#c3d2e3;border-top:1px solid #31455b;justify-content:space-between;gap:12px 20px;margin-top:28px;padding-top:16px;font-size:.79rem;display:flex}.footer-bottom div{flex-wrap:wrap;gap:6px 18px;display:flex}.footer-bottom div a{align-items:center;gap:5px;display:inline-flex}.footer-bottom small{font-size:inherit;flex-shrink:0}@media (width<=1060px){.site-header{min-height:66px;padding-block:10px}.menu-toggle{display:block}.site-header nav{padding:6px var(--side) 16px;background:#081321fa;border-bottom:1px solid #4b6681;max-height:calc(100dvh - 66px);display:none;position:absolute;inset:100% 0 auto;overflow-y:auto}.menu-toggle[aria-expanded=true]+nav,.site-header nav ul{display:block}.site-header nav a{text-align:left;border-bottom:1px solid #ffffff23;grid-template-columns:103px 1fr;align-items:center;gap:8px;min-height:40px;padding:5px 4px;display:grid}.nav-ja{font-size:.85rem}.news{width:min(490px,64%)}.scroll-link{left:var(--side);transform:none}}@media (width<=760px){.development-grid,.about{grid-template-columns:1fr;gap:25px}.feature-row,.feature-row:nth-child(2n){grid-template-columns:1fr}.feature-row:nth-child(2n) img{grid-area:auto}.service-list .feature-row{gap:0}.service-list .feature-row img{min-height:0;max-height:245px}.works-list,.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.hero{min-height:max(690px,100svh);padding:68px 0 39px}.hero-image img{object-position:center 47%}.hero:after{background:linear-gradient(#05132228 15%,#020c156d 61%,#030b17de)}.hero-copy{text-align:center;place-self:center stretch;margin:0 16px}.hero-copy:before{background:linear-gradient(90deg,#0b1b2b96,#061422ed 24% 76%,#0b1b2b96);inset:-26px -16px}.hero-copy h1{letter-spacing:-.025em;white-space:normal;font-size:clamp(1.3rem,7.35vw,2.7rem)}.hero-copy p{letter-spacing:.022em;justify-content:center;gap:.55em;margin-top:10px;font-size:clamp(.8rem,3.5vw,1rem)}.hero-copy p:before{width:1.05em}.news{width:auto;margin-inline:var(--side);border:1px solid #c2deff42;border-radius:6px;justify-self:stretch;padding:12px 14px 14px}.news li{grid-template-columns:1fr;gap:1px;font-size:.83rem}.news time{font-size:.74rem}.scroll-link{align-items:center;gap:7px;display:flex;bottom:10px;left:50%;transform:translate(-50%)}.desktop-break{display:none}.works-list{grid-template-columns:1fr}.footer-bottom{flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}a:is(:hover,:focus-visible) .arrow{translate:none}}
