:root{--color-primary:#42bdca;--color-primary-dark:#3a8c98;--color-primary-pale:#eef8f9;--color-border:#d6eef1;--color-text:#333;--color-text-sub:#666;--color-line:#06c755;--color-white:#fff;--font-base:"Lato", "Noto Sans JP", sans-serif;--font-en:"Lato", sans-serif;--container:1000px;--gutter:24px;--topbar-height:22px;--header-height:86px;--radius:8px;--section-space:120px;--mesh-circle:min(28vw, 380px);--mesh-gradient:radial-gradient(circle var(--mesh-circle) at 0% 0%, #fff2c4b3, transparent), radial-gradient(circle var(--mesh-circle) at 100% 100%, #ffe2eab3, transparent)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-height) + var(--header-height))}body{font-family:var(--font-base);letter-spacing:.05em;color:var(--color-text);background:var(--color-white);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.9}h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.icon{display:block}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:var(--gutter);top:var(--gutter);z-index:100;background:var(--color-white);padding:8px 16px}.container{max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--section-space)}.section--pale{background:var(--color-primary-pale)}.logo{font-family:var(--font-en);letter-spacing:.04em;font-weight:700}.section-title__en{font-family:var(--font-en);letter-spacing:.02em;color:var(--color-primary);font-size:76px;font-weight:400;line-height:1.1}.section-title__en--white{color:var(--color-white)}.section-title__ja{color:var(--color-primary-dark);margin-top:8px;font-weight:700}.button{text-align:center;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:14px;padding:14px 32px;font-size:15px;font-weight:700;line-height:1.5;transition:opacity .2s;display:inline-flex}.button:hover{opacity:.8}.button__arrow{font-weight:400}.button--primary{background:var(--color-primary);color:var(--color-white)}.button--dark{background:var(--color-primary-dark);color:var(--color-white);padding-inline:56px}.button--outline{border-color:var(--color-primary);background:var(--color-white);color:var(--color-primary)}.button--white{background:var(--color-white);color:var(--color-primary)}.button--line{background:var(--color-line);color:var(--color-white)}.button--small{padding:10px 26px;font-size:14px}.button--wide{width:100%;max-width:280px}.tag{background:var(--color-primary-pale);color:var(--color-primary-dark);border-radius:999px;padding:1px 16px;font-size:12px;display:inline-block}.tag--square{border-radius:4px;padding:2px 10px}.tag-list{flex-wrap:wrap;gap:8px;display:flex}.breadcrumb{color:var(--color-primary-dark);flex-wrap:wrap;gap:0 12px;margin-bottom:24px;font-size:12px;display:flex}.breadcrumb li+li:before{content:"／";margin-right:12px}.prose{max-width:760px;color:var(--color-text-sub);margin-inline:auto;line-height:2.1}.prose>*+*{margin-top:1.6em}.prose h2,.prose h3{border-left:4px solid var(--color-primary);color:var(--color-primary-dark);margin-top:64px;padding-left:14px;font-size:22px;line-height:1.5}.prose img{border-radius:var(--radius);margin-inline:auto}.prose a{color:var(--color-primary);text-decoration:underline}.topbar{z-index:51;background:var(--color-primary);color:var(--color-white);font-size:11px;line-height:var(--topbar-height);white-space:nowrap;position:sticky;top:0}.topbar__text{text-overflow:ellipsis;overflow:hidden}.topbar__short{display:none}.header{top:var(--topbar-height);z-index:50;background:0 0;transition:background-color .4s,box-shadow .4s;position:sticky}.header.is-scrolled,.header:has(.gnav.is-open){background:var(--color-white);box-shadow:0 2px 12px #0000000a}.header__inner{height:var(--header-height);justify-content:space-between;align-items:center;display:flex}.header__logo{color:var(--color-primary);font-size:26px}.header__toggle{display:none}.gnav,.gnav__list{align-items:center;gap:32px;display:flex}.gnav__link{font-family:var(--font-en);color:var(--color-primary-dark);font-size:15px;font-weight:700}.gnav__link:hover{color:var(--color-primary)}.gnav__actions{gap:14px;display:flex}.footer{background:var(--color-primary);color:var(--color-white);padding-block:36px 30px}.footer__inner{justify-content:space-between;align-items:center;display:flex}.footer__logo{font-size:22px}.footer__nav{font-family:var(--font-en);align-items:center;gap:28px;font-size:15px;font-weight:700;display:flex}.footer__bottom{opacity:.85;gap:32px;margin-top:18px;font-size:12px;display:flex}.contact-band{color:var(--color-white);background:url(/images/contact-bg.jpg) 50%/cover no-repeat;padding-block:110px;position:relative}.contact-band:before{content:"";background:#42bdcac7;position:absolute;inset:0}.contact-band__inner{justify-content:space-between;align-items:center;gap:32px;display:flex;position:relative}.contact-band__sub{margin-top:16px;font-size:20px;font-weight:700}.contact-band__lead{opacity:.9;margin-top:8px;font-size:17px}.contact-band__actions{flex-direction:column;gap:22px;width:280px;display:flex}.contact-band__other{font-size:12px;text-decoration:underline}.hero{padding-block:96px 120px;position:relative}.hero__inner{grid-template-columns:1fr 1.25fr;align-items:center;gap:24px;display:grid}.hero__title{letter-spacing:.08em;color:var(--color-primary-dark);font-size:32px;line-height:1.7}.hero__lead{color:var(--color-text-sub);margin-top:28px;line-height:2.1}.hero__actions{flex-direction:column;gap:14px;width:266px;margin-top:44px;display:flex}.work-list{grid-template-columns:repeat(2,1fr);gap:72px 64px;margin-top:72px;display:grid}.work-card__thumb{aspect-ratio:16/10;border-radius:6px;overflow:hidden}.work-card__thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.work-card__link:hover .work-card__thumb img{transform:scale(1.03)}.work-card__title{color:var(--color-primary-dark);margin-block:20px 8px;font-size:19px}.section__more{text-align:center;margin-top:72px}.service-list{grid-template-columns:repeat(3,1fr);gap:32px;margin-top:64px;display:grid}.service-card{border-radius:var(--radius);background:var(--color-white);padding:40px 32px}.service-card__title{color:var(--color-primary-dark);font-size:20px}.service-card__text{color:var(--color-text-sub);margin-block:20px 24px;line-height:2}.about{grid-template-columns:320px 1fr;align-items:start;gap:80px;margin-top:64px;display:grid}.about__image{border-radius:var(--radius)}.about__name{color:var(--color-primary-dark);font-size:22px}.about__role{color:var(--color-primary-dark);margin-top:4px;font-size:13px}.about__text{max-width:440px;color:var(--color-text-sub);margin-top:28px;line-height:2.2}.about__tool-title{color:var(--color-primary-dark);margin-block:36px 10px;font-size:13px;font-weight:700}.faq{border-top:1px solid var(--color-border);margin-top:56px}.faq__item{border-bottom:1px solid var(--color-primary)}.faq__question{color:var(--color-primary-dark);cursor:pointer;align-items:center;gap:20px;padding:22px 4px;font-weight:500;list-style:none;display:flex}.faq__question::-webkit-details-marker{display:none}.faq__question:after{content:"+";color:var(--color-primary);margin-left:auto;font-size:22px;font-weight:300}.faq__item[open] .faq__question:after{content:"−"}.faq__mark{font-family:var(--font-en);color:var(--color-primary);font-size:20px;font-weight:700}.faq__answer{color:var(--color-text-sub);gap:20px;padding:0 4px 24px;display:flex}.faq__answer a{color:var(--color-primary);text-decoration:underline}.faq__answer p+p{margin-top:8px}.page{padding-block:96px var(--section-space)}.page__lead{color:var(--color-text-sub);margin-top:48px;line-height:2.1}.page__actions{flex-wrap:wrap;gap:16px;margin-top:32px;display:flex}.work-detail__kind{color:var(--color-primary);margin-top:28px;font-size:14px}.work-detail__title{color:var(--color-primary-dark);margin-top:4px;font-size:44px;line-height:1.4}.work-detail__cover{margin-block:48px}.work-detail__cover img{border-radius:var(--radius);width:100%}.work-detail__back{text-align:center;margin-top:96px}.spec{border-top:1px solid var(--color-border);margin-bottom:72px}.spec__row{border-bottom:1px solid var(--color-border);grid-template-columns:180px 1fr;gap:24px;padding:22px 8px;display:grid}.spec__term{color:var(--color-primary-dark);font-weight:700}.spec__desc{color:var(--color-text-sub)}.spec__desc a{color:var(--color-primary)}.section-title__en--small{font-size:40px}.has-animation [data-animate]{opacity:0;transition:opacity 1.2s ease-in-out,translate 1.2s ease-in-out;transition-delay:var(--animate-delay,0s);translate:0 20px}.has-animation [data-animate].is-visible{opacity:1;translate:none}[data-animate-delay="1"]{--animate-delay:.1s}[data-animate-delay="2"]{--animate-delay:.2s}[data-animate-delay="3"]{--animate-delay:.3s}[data-animate-delay="4"]{--animate-delay:.45s}.opening{z-index:1000;background:var(--mesh-gradient), var(--color-white);pointer-events:none;place-items:center;animation:.9s ease-in-out 2.1s forwards opening-out;display:grid;position:fixed;inset:0}.opening__logo{color:var(--color-primary);opacity:0;font-size:clamp(36px,5vw,56px);animation:1.2s ease-in-out .2s forwards opening-logo}@keyframes opening-logo{0%{opacity:0;translate:0 12px}to{opacity:1;translate:none}}@keyframes opening-out{to{opacity:0;visibility:hidden}}.has-opening .hero [data-animate]{--animate-delay:2.4s}.has-opening .hero [data-animate][data-animate-delay="2"]{--animate-delay:2.6s}.scroll-sign{right:max(var(--gutter), calc((100% - var(--container)) / 2 - 40px));font-family:var(--font-en);letter-spacing:.2em;color:var(--color-primary);writing-mode:vertical-rl;flex-direction:column;align-items:center;gap:12px;font-size:11px;display:flex;position:absolute;bottom:0}.scroll-sign:after{content:"";background:linear-gradient(var(--color-primary) 50%, transparent 50%) 0 0 / 1px 200%;width:1px;height:80px;animation:2s ease-in-out infinite scroll-line}@keyframes scroll-line{0%{background-position:0 100%}to{background-position:0 -100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.has-animation [data-animate]{opacity:1;transition:none;translate:none}.opening{display:none}.scroll-sign:after{animation:none}}@media (width<=960px){.header__toggle{cursor:pointer;background:0 0;border:0;width:32px;height:22px;padding:0;display:block;position:relative}.header__toggle:before,.header__toggle:after,.header__toggle-bar{content:"";background:var(--color-primary);width:100%;height:2px;position:absolute;left:0}.header__toggle:before{top:0}.header__toggle-bar{top:10px}.header__toggle:after{bottom:0}.gnav{inset:calc(var(--topbar-height) + var(--header-height)) 0 auto;padding:32px var(--gutter) 40px;background:var(--color-white);flex-direction:column;align-items:flex-start;gap:24px;display:none;position:fixed;box-shadow:0 8px 16px #0000000f}.gnav.is-open{display:flex}.gnav__list{flex-direction:column;align-items:flex-start;gap:20px}.gnav__actions{flex-direction:column;width:100%}.gnav__actions .button{width:100%}.hero__inner,.about{grid-template-columns:1fr}.about__image{max-width:320px}.service-list{grid-template-columns:1fr}}@media (width<=640px){:root{--header-height:64px;--section-space:80px}.header__logo{font-size:22px}.topbar__long{display:none}.topbar__short{display:inline}.section-title__en{font-size:52px}.hero{padding-block:56px 80px}.hero__title{font-size:24px}.work-list{grid-template-columns:1fr;gap:48px}.contact-band__inner,.footer__inner{flex-direction:column;align-items:flex-start}.contact-band__actions{width:100%}.footer__nav{flex-wrap:wrap;gap:16px}.footer__bottom{flex-direction:column;gap:4px}.spec__row{grid-template-columns:1fr;gap:4px}.work-detail__title{font-size:30px}}.prose--wide{max-width:none;margin-top:56px}
