@charset "UTF-8";
:root{--ink:#152e45;--muted:#63717a;--blue:#1669ab;--cyan:#75c5d3;--paper:#f7f8f5;--line:#d9dfdf;--orange:#c47b49;--font:"Yu Gothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #1688c7;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:700;letter-spacing:.025em;line-height:1.5}p{overflow-wrap:anywhere}img{max-width:100%;height:auto;display:block}svg{display:block;width:100%;height:auto}a,button{transition:color .2s,background .2s,transform .2s}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.review-banner{height:30px;background:#eaf0f1;color:#506472;text-align:center;font:10px/30px Arial,sans-serif;letter-spacing:.14em}.review-banner span{font:10px var(--font);letter-spacing:.04em;margin-left:16px}.header{height:104px;display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4%;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:20}.brand{display:inline-flex;flex-shrink:0}.brand img{width:174px;object-fit:contain}nav{display:flex;align-items:center;gap:34px}nav a{font-size:12px;font-weight:700;white-space:nowrap}nav a:hover{color:var(--blue)}nav .nav-contact{background:var(--ink);color:white;padding:12px 24px;min-width:118px;display:flex;justify-content:space-between;gap:20px}nav .nav-contact:hover{background:var(--blue);color:white}.menu-button{display:none}.hero{position:relative;display:grid;grid-template-columns:1fr 1.06fr;gap:32px;padding-top:52px;padding-bottom:0}.eyebrow,.section-label,.small-label{font-family:Arial,var(--font);font-size:11px;letter-spacing:.14em;font-weight:600}.hero .eyebrow{display:flex;align-items:center;gap:10px}.tiny-cross{color:var(--orange);font-size:20px;line-height:1}.hero h1{font-size:clamp(42px,4.45vw,68px);line-height:1.47;letter-spacing:.025em;margin-top:24px;position:relative;z-index:1}.underlined{display:inline-block;position:relative}.underlined:after{content:"";position:absolute;bottom:7px;left:0;right:5px;height:9px;background:#aed8e2;z-index:-1}.hero-tagline{font-size:22px;font-weight:700;margin-top:23px}.hero-description{font-size:13px;line-height:2.05;color:#50606a;margin-top:18px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;font-size:12px;font-weight:700;padding:16px 25px;min-height:54px}.primary{margin-top:28px;background:var(--ink);color:white}.primary:hover{background:var(--blue);transform:translateY(-2px)}.button span{font-size:20px;font-weight:400;line-height:1}.hero-visual{background:#e9eeee;min-width:0;position:relative;margin-top:2px;display:flex;flex-direction:column;align-self:stretch;overflow:hidden}.visual-top{display:flex;align-items:center;justify-content:space-between;padding:24px 25px 0;font:9px Arial,sans-serif;letter-spacing:.14em;color:#607579}.live-dot{width:6px;height:6px;background:var(--blue);border-radius:50%}.hero-visual img{width:100%;height:auto;flex:1;object-fit:contain;min-height:400px}.hero-visual figcaption{padding:0 24px 20px;display:flex;justify-content:space-between;font:8px Arial,sans-serif;letter-spacing:.12em;color:#607579}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;padding:27px 0 24px;border-bottom:1px solid var(--line);font:9px Arial,sans-serif;letter-spacing:.14em;color:var(--muted);margin-top:16px}.hero-bottom a{display:flex;align-items:center;gap:16px}.hero-bottom a span{font-size:17px}.section{padding-top:110px;padding-bottom:110px}.section-label{display:flex;gap:14px;align-items:center;margin-bottom:28px;color:#516472}.section-index{font-size:10px;color:var(--blue);border:1px solid #bfd1d7;padding:0px 5px;letter-spacing:.04em;line-height:18px}h2{font-size:clamp(25px,2.6vw,38px);letter-spacing:.03em;line-height:1.65}.intro{padding-bottom:100px}.intro-body{display:grid;grid-template-columns:1fr 1fr;gap:8%}.intro-body h2{font-size:36px;line-height:1.8}.intro-text{font-size:14px;line-height:2.25;max-width:520px}.intro-text p+p{margin-top:18px}.intro-sign{font-size:13px;padding-top:15px}.intro-sign strong{font-size:14px}.services{background:#edf1ef}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:60px}.section-heading .section-label{margin-bottom:20px}.section-heading>p{color:var(--muted);font-size:13px;line-height:2.1;padding-bottom:7px}.service-row{display:grid;grid-template-columns:90px 1fr 280px;gap:42px;padding:43px 0;border-top:1px solid #cbd5d4;align-items:start}.service-row:last-child{border-bottom:1px solid #cbd5d4}.service-number{font:24px/1.2 Arial,sans-serif;color:var(--blue);padding-top:7px}.service-number span{display:block;font-size:8px;letter-spacing:.12em;margin-top:10px;color:var(--muted)}.service-main h3{font-size:25px}.service-lead{font-size:14px;font-weight:700;margin:9px 0 15px}.service-main>p:not(.service-lead){font-size:13px;line-height:2.1;color:#53646d;max-width:580px}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:22px}.tags span{font-size:10px;background:#fff9;padding:3px 11px;border:1px solid #d1dcd9}details{max-width:580px;font-size:12px;margin-top:22px}summary{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;list-style:none;padding:10px 0;color:var(--blue);border-bottom:1px solid #cbd5d4;font-weight:600}summary::-webkit-details-marker{display:none}summary span{font-size:18px;font-weight:400;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details>div{font-size:12px;line-height:2.1;padding-top:15px;color:#53646d}.service-art{width:100%;margin-top:16px;align-self:center;min-height:190px;color:#527780}.workflow{display:flex;align-items:center;justify-content:center;position:relative;gap:11px}.workflow>span{font:8px/1.6 Arial,sans-serif;max-width:48px;text-align:center;letter-spacing:.06em}.workflow b{border:1px solid #7f9ea6;display:flex;flex-direction:column;align-items:center;justify-content:center;width:94px;height:94px;border-radius:50%;font:28px Arial,sans-serif;flex-shrink:0;background:#e5eeeb}.workflow b span{font:7px Arial,sans-serif;letter-spacing:.06em;margin-top:7px}.workflow i{height:1px;background:#7f9ea6;width:22px}.flow-line{position:absolute;left:30px;right:30px;bottom:24px;border:1px solid #b1c5c6;height:24px;border-top:0}.flow-line:before{content:"↗";position:absolute;top:-17px;left:-5px}.terminal{background:#152f40;color:#c3d9da;border-radius:3px;padding:0 26px 24px;box-shadow:14px 14px 0 #dce5e1;transform:rotate(-2deg);min-height:200px}.terminal-bar{height:36px;display:flex;align-items:center;gap:5px;border-bottom:1px solid #395161;margin-bottom:18px}.terminal-bar i{width:4px;height:4px;border-radius:50%;background:#73919e}.terminal code{font-size:13px;line-height:2;font-family:Consolas,monospace}.terminal code em{font-style:normal;color:#86c5c9}.terminal code span{color:#d8aa7e;font-size:11px}.mini-object{text-align:center}.mini-object svg{max-height:190px}.mini-object span{font:8px Arial,sans-serif;letter-spacing:.12em}.projects .section-heading{margin-bottom:47px}.project-layout{display:grid;grid-template-columns:300px 1fr;gap:65px}.project-selector{padding-top:16px}.small-label{font-size:9px;color:var(--muted)}[role=tablist]{margin-top:24px}[role=tab]{display:flex;align-items:center;gap:16px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);padding:22px 5px;background:transparent;color:#77828a;font-weight:700;font-size:16px;cursor:pointer}[role=tab] span:first-child{font:10px Arial,sans-serif;letter-spacing:.04em}[role=tab] .project-arrow{margin-left:auto;font-size:19px;font-weight:400;opacity:0}[role=tab][aria-selected=true]{color:var(--ink);border-bottom-color:var(--blue)}[role=tab][aria-selected=true] .project-arrow{opacity:1;color:var(--blue)}[role=tab]:hover{color:var(--blue)}.theme-note{font-size:10px;color:#6b7c85;margin-top:31px;line-height:1.9}.project-panel{min-width:0}.project-picture{background:#132d3b;position:relative;overflow:hidden}.project-picture svg{aspect-ratio:700/330;object-fit:contain}.picture-caption{display:block;font:8px Arial,sans-serif;color:#a7c1c8;letter-spacing:.16em;padding:0 28px 20px}.project-drawing{display:none}.project-picture[data-active=rc] .drawing-rc,.project-picture[data-active=device] .drawing-device,.project-picture[data-active=print] .drawing-print{display:block}.project-description{padding-top:30px;min-height:244px}.project-description .eyebrow{font-size:9px;color:var(--blue)}.project-description h3{font-size:22px;margin-top:10px}.project-description>p:not(.eyebrow){font-size:13px;color:#5b6b74;line-height:2.1;margin-top:14px;max-width:700px}.text-link{display:inline-flex;align-items:center;gap:40px;font-size:12px;font-weight:600;border-bottom:1px solid #aebec6;padding:13px 0 7px;margin-top:10px}.text-link:hover{color:var(--blue)}.text-link span{font-size:18px}.process{background:#e8efed}.process .section-heading{margin-bottom:45px}.process h2{font-size:30px}.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:44px;padding:0;margin:0}.steps li{position:relative;border-top:1px solid #aebfbd;padding-top:23px}.steps li:not(:last-child):after{content:"→";position:absolute;top:33px;right:-29px;font-size:22px;font-family:Arial;color:#7f999d}.steps li>span{font:9px Arial,sans-serif;letter-spacing:.12em;color:#5b7882}.steps h3{font-size:21px;margin-top:17px}.steps p{font-size:13px;line-height:2.1;margin-top:12px;color:#5c6c72;max-width:320px}.company{display:grid;grid-template-columns:1fr 1fr;gap:80px}.company-message{font-size:13px;color:#5c6c72;line-height:2.2;margin-top:26px}.company-table{margin:0}.company-table>div{display:grid;grid-template-columns:115px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:2}.company-table>div:first-child{border-top:1px solid var(--line)}.company-table dt{color:#647783}.company-table dd{margin:0}.company-table a:hover{color:var(--blue);text-decoration:underline}.contact{background:var(--ink);color:#f8faf7;position:relative;overflow:hidden}.contact:after{content:"+";position:absolute;right:3%;bottom:-170px;color:#ffffff04;font:650px/.9 Arial,sans-serif;pointer-events:none}.contact-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;padding-block:86px}.contact .eyebrow{font-size:10px;color:#b1d1dd;margin-bottom:24px}.contact h2{font-size:43px;line-height:1.65}.contact p:not(.eyebrow){font-size:12px;line-height:2.2;color:#c2ced3;margin-top:20px}.contact-action{padding-left:55px}.contact-mail{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #8095a3;font-size:21px;font-weight:600;padding:24px 0}.contact-mail span{font-size:31px;font-weight:400}.contact-mail:hover{color:#9dd5e9}.mail-address{display:inline-block;font:15px Arial,sans-serif;letter-spacing:.04em;margin-top:22px}.contact-action p{font-size:10px!important;margin-top:8px!important}.footer{display:flex;gap:25px;align-items:center;position:relative;padding-block:38px}.footer .brand img{width:133px}.footer>p{font-size:10px;color:#6c7c84}.footer small{font:9px Arial,sans-serif;letter-spacing:.05em;color:#6c7c84;margin-left:auto}.back-top{width:32px;height:32px;border:1px solid var(--line);display:grid;place-items:center;margin-left:12px;font:18px Arial,sans-serif}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip:focus{top:10px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
@media(min-width:1550px){.hero h1{font-size:68px}.hero-visual img{max-height:580px}}
@media(max-width:1150px){.wrap{width:calc(100% - 72px)}nav{gap:22px}.header{height:90px}.brand img{width:153px}.hero{gap:22px;padding-top:40px}.hero h1{font-size:46px}.hero-tagline{font-size:20px}.hero-visual img{min-height:400px}.service-row{grid-template-columns:65px 1fr 220px;gap:25px}.project-layout{grid-template-columns:250px 1fr;gap:40px}.contact-action{padding-left:20px}.section-heading>p{font-size:12px}.section-heading{gap:25px}.footer{gap:15px}}
@media(max-width:900px){.header{height:80px;padding-inline:32px}.menu-button{display:flex;flex-direction:column;justify-content:center;gap:7px;width:44px;height:44px;padding:10px;background:transparent;border:1px solid #ccd7d8;color:var(--ink)}.menu-button>span:not(.sr-only){height:1px;background:currentColor;width:100%;transition:transform .2s}.menu-button[aria-expanded=true]>span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded=true]>span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:22px 32px 32px;border-bottom:1px solid #ccd7d8;flex-direction:column;align-items:stretch;gap:0}nav.is-open{display:flex}nav a{padding:16px 0;border-bottom:1px solid var(--line)}nav .nav-contact{margin-top:15px}.hero h1{font-size:39px}.hero-tagline{font-size:17px}.hero-description{font-size:12px}.hero-visual img{min-height:360px}.visual-top{font-size:7px;padding:20px 17px 0}.hero-visual figcaption{padding:0 17px 17px;font-size:6px}.hero-bottom{font-size:7px}.intro-body h2{font-size:29px}.intro-text{font-size:13px}.section{padding-block:80px}.section-heading{display:block;margin-bottom:42px}.section-heading>p{margin-top:20px}.service-row{grid-template-columns:55px 1fr 175px;gap:22px}.service-main h3{font-size:21px}.service-art{min-height:140px}.workflow{gap:5px}.workflow b{width:65px;height:65px;font-size:22px}.workflow b span{font-size:5px}.workflow i{width:10px}.workflow>span{font-size:6px}.flow-line{bottom:10px}.terminal{padding-inline:15px;box-shadow:7px 7px 0 #dce5e1}.terminal code{font-size:10px}.terminal code span{font-size:8px}.project-layout{grid-template-columns:210px 1fr;gap:30px}[role=tab]{font-size:14px;gap:9px}.project-description h3{font-size:20px}.project-description{min-height:270px}.company{gap:40px}.company-table>div{grid-template-columns:80px 1fr;gap:10px}.company-message br{display:none}.contact h2{font-size:34px}.contact-inner{gap:25px}.contact-action{padding-left:0}.contact-mail{font-size:19px}.footer>p{display:none}}
@media(max-width:650px){html{scroll-padding-top:88px}.wrap{width:calc(100% - 40px)}.review-banner{font-size:8px;height:25px;line-height:25px;letter-spacing:.06em}.review-banner span{font-size:8px;margin-left:9px}.header{height:72px;padding-inline:20px}.brand img{width:143px}nav{top:72px;padding-inline:20px}.hero{display:flex;flex-direction:column;padding-top:32px;gap:0}.hero .eyebrow{font-size:9px}.hero h1{font-size:43px;margin-top:19px;line-height:1.42}.underlined:after{height:7px;bottom:5px}.hero-tagline{font-size:20px;margin-top:20px}.hero-description{font-size:12px;line-height:2}.primary{margin-top:23px;padding:14px 23px;font-size:11px}.hero-visual{margin-top:34px;min-height:0}.hero-visual img{min-height:0;height:auto;max-height:420px;object-fit:contain}.visual-top{padding:18px 20px 0;font-size:8px}.hero-visual figcaption{font-size:7px;padding-inline:20px}.hero-bottom{margin-top:0;padding-top:20px;padding-bottom:19px;gap:15px;font-size:7px;line-height:1.6}.hero-bottom>span{max-width:180px}.hero-bottom a{font-size:7px;gap:9px;flex-shrink:0}.section{padding-block:64px}.section-label{font-size:10px;margin-bottom:24px;gap:11px}.intro-body{display:block}.intro-body h2{font-size:29px;line-height:1.7}.intro-text{margin-top:24px;line-height:2.1;font-size:13px}.intro-text p+p{margin-top:15px}.intro-sign{padding-top:8px}.intro-sign strong{font-size:13px}h2{font-size:26px}.section-heading{margin-bottom:34px}.section-heading>p{font-size:12px;margin-top:19px;line-height:2}.section-heading>p br{display:none}.service-row{grid-template-columns:35px 1fr;gap:16px;padding-block:29px}.service-number{font-size:21px;padding-top:5px}.service-number span{font-size:6px;letter-spacing:0;writing-mode:vertical-rl;margin-top:14px}.service-main h3{font-size:20px}.service-lead{font-size:12px;margin-block:8px 13px}.service-main>p:not(.service-lead){font-size:12px;line-height:2.1}.tags{gap:5px;margin-top:17px}.tags span{font-size:9px;padding:2px 7px}details{font-size:11px;margin-top:12px}details>div{font-size:11px}.service-art{display:none}.project-layout{display:block}.project-selector{padding:0}.small-label{font-size:8px}[role=tablist]{display:flex;margin-top:14px;gap:12px}[role=tab]{padding:15px 0;font-size:10px;gap:5px;line-height:1.6;justify-content:center}[role=tab] span:first-child{font-size:8px}[role=tab] .project-arrow{display:none}.theme-note{font-size:9px;margin-top:14px}.theme-note br{display:none}.project-panel{margin-top:24px}.picture-caption{font-size:7px;padding:0 20px 17px}.project-description{min-height:265px;padding-top:25px}.project-description h3{font-size:20px}.project-description>p:not(.eyebrow){font-size:12px}.project-description .eyebrow{font-size:8px}.text-link{font-size:11px}.process h2{font-size:25px}.steps{display:block}.steps li{padding:20px 0 24px;display:grid;grid-template-columns:68px 1fr;column-gap:15px}.steps li>span{font-size:8px;padding-top:10px}.steps h3{font-size:19px;margin-top:0}.steps p{grid-column:2;font-size:12px;margin-top:8px;line-height:2}.steps li:not(:last-child):after{display:none}.steps li:last-child{padding-bottom:0}.company{display:block}.company-table{margin-top:35px}.company-table>div{grid-template-columns:90px 1fr;font-size:12px;padding-block:16px}.company-message{font-size:12px;margin-top:20px}.contact-inner{display:block;padding-block:60px}.contact .eyebrow{font-size:9px;margin-bottom:20px}.contact h2{font-size:32px}.contact p:not(.eyebrow){font-size:12px;margin-top:19px}.contact p br{display:none}.contact-action{margin-top:28px}.contact-mail{padding:16px 0;font-size:19px}.mail-address{font-size:14px;margin-top:17px}.footer{flex-wrap:wrap;padding-block:28px;gap:19px}.footer .brand img{width:121px}.footer small{font-size:8px;margin-left:0}.back-top{margin-left:auto;width:28px;height:28px}.contact:after{font-size:450px;bottom:-130px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
