:root{--gx-bg: #ffffff;--gx-bg-soft: #f3f6fc;--gx-ink: #12151a;--gx-navy: #0047a4;--gx-sky: #4a98ff;--gx-line: rgba(0, 71, 164, .12);--gx-line-strong: rgba(0, 71, 164, .22);--gx-mute: #5a6372;--gx-ease: cubic-bezier(.22, 1, .36, 1);--nav-h: 4.75rem;--nav-offset: 5.5rem;--gx-max: 76rem;--section-py: clamp(4rem, 7vw, 5.5rem);--section-px: clamp(1.2rem, 4vw, 2.2rem);--font-display: "Space Grotesk", sans-serif;--font-heading: "Caveat", cursive;--font-body: "IBM Plex Sans JP", "Hiragino Sans", sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--gx-bg);overflow-x:clip}body{font-family:var(--font-body);color:var(--gx-ink);background:var(--gx-bg);line-height:1.6;letter-spacing:.01em;font-size:.9375rem;-webkit-font-smoothing:antialiased}body.is-loading{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.display{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.05}.mesh{position:fixed;inset:0;z-index:0;pointer-events:none}.mesh canvas{width:100%;height:100%;display:block}.site{position:relative;z-index:1}.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:space-between;min-height:var(--nav-h);padding:.55rem 2.2rem;background:color-mix(in srgb,var(--gx-bg) 94%,transparent);border-bottom:1px solid var(--gx-line)}.nav__logo{display:block;width:min(128px,36vw);flex-shrink:0}.nav__logo img{width:100%;height:auto}.nav-transit{position:fixed;inset:0;z-index:36;pointer-events:none}.nav-transit__veil{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff6b,#f5f7fb2e 45%,#ffffff14);opacity:0}.nav-transit__bar{position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--gx-navy),var(--gx-sky));transform:scaleX(0);transform-origin:left center;opacity:0}.nav__links{position:fixed;top:0;right:0;z-index:41;height:var(--nav-h);display:flex;gap:1.45rem;align-items:center;padding:0 2.2rem}.nav__links a{position:relative;display:inline-flex;padding-bottom:.28rem;font-family:var(--font-display);font-size:.72rem;font-weight:600;letter-spacing:.1em;color:var(--gx-navy)}.nav__mask{display:block;overflow:hidden;height:1.2em;line-height:1.2}.nav__mask>span{display:block;position:relative;transition:transform .55s var(--gx-ease)}.nav__mask>span:after{content:attr(data-text);position:absolute;left:0;top:100%;color:var(--gx-sky)}.nav__links a:before{content:"";position:absolute;left:50%;bottom:0;width:100%;height:1.5px;background:linear-gradient(90deg,var(--gx-navy),var(--gx-sky));transform:translate(-50%) scaleX(0);transform-origin:center;transition:transform .5s var(--gx-ease)}.nav__links a:hover .nav__mask>span,.nav__links a.is-current .nav__mask>span{transform:translateY(-100%)}.nav__links a:hover:before,.nav__links a.is-current:before{transform:translate(-50%) scaleX(1)}.nav__cta,.nav__panel-cta{color:var(--gx-navy)}.nav__panel-head,.nav__panel-no,.nav__panel-text,.nav__panel-cta-label{display:none}.nav__panel-list{display:flex;align-items:center;gap:1.45rem}.nav__menu{display:none}@media(min-width:861px){.nav__panel-head,.nav__panel-no,.nav__panel-text,.nav__panel-cta-label{display:none}.nav__panel-list a .nav__mask,.nav__panel-cta .nav__mask{display:block}.nav__panel-cta{display:inline-flex;margin:0;padding-bottom:.28rem;border:0;border-radius:0;background:none;box-shadow:none}}.hero,.section{scroll-margin-top:var(--nav-offset)}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:8rem 2.2rem 4.5rem}.hero--cover{display:grid;grid-template-columns:1fr;padding:0;overflow:hidden}.hero--cover>*{grid-area:1 / 1}.hero__visual{margin:0;overflow:hidden}.hero--cover .hero__visual{border-radius:0}.hero__visual img{width:100%;height:min(68vh,560px);object-fit:cover}@media(min-width:861px){.hero--cover .hero__visual img{height:100svh;min-height:100%;object-position:right center}}.hero__text{position:relative;z-index:1;align-self:center;width:min(42rem,calc(100% - 4.4rem));margin:var(--nav-offset) 2.2rem 4.5rem;padding:2.2rem 2rem 2.4rem;background:linear-gradient(105deg,#ffffffe6,#ffffffb8 55%,#ffffff47)}.hero__sub{margin:.8rem 0 0;color:var(--gx-mute);max-width:32rem}.hero__br{display:none}.hero__label{font-family:var(--font-display);font-size:.72rem;letter-spacing:.28em;color:var(--gx-sky);margin:0 0 1.2rem}.hero__title{margin:0;font-size:clamp(1.7rem,4.6vw,4.2rem);color:var(--gx-navy);max-width:none;text-transform:none}.hero__title span{display:block;white-space:nowrap}.hero__copy{margin:1.8rem 0 0;font-size:clamp(1rem,2vw,1.35rem);color:var(--gx-ink)}.hero__line{width:min(42vw,320px);height:1px;background:var(--gx-navy);margin:2.4rem 0 0;transform-origin:left center}.section{padding:var(--section-py) var(--section-px);position:relative}.section__inner{max-width:var(--gx-max);margin:0 auto}.section--soft{background:radial-gradient(ellipse 80% 60% at 0% 0%,rgba(74,152,255,.07),transparent 55%),radial-gradient(ellipse 70% 50% at 100% 100%,rgba(0,71,164,.05),transparent 50%),var(--gx-bg-soft)}.section__head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:1px solid var(--gx-line-strong)}.section__tag{margin:0 0 .5rem;font-family:var(--font-display);font-size:.68rem;font-weight:600;letter-spacing:.14em;color:var(--gx-sky)}.section__en{font-family:var(--font-heading);font-size:clamp(2.35rem,5.5vw,3.85rem);font-weight:500;letter-spacing:.01em;color:var(--gx-navy);margin:0;line-height:1}.section__no{font-family:var(--font-display);font-size:.65rem;font-weight:600;letter-spacing:.16em;color:var(--gx-mute);white-space:nowrap}.about-copy{display:grid;gap:1.5rem}.about-words{display:grid;gap:.85rem}.about-word{display:grid;grid-template-columns:auto 1fr;gap:1rem 1.25rem;align-items:start;padding:1.15rem 1.2rem;border:1px solid var(--gx-line);border-radius:10px;background:color-mix(in srgb,var(--gx-bg) 88%,transparent);transition:border-color .35s var(--gx-ease),box-shadow .35s var(--gx-ease)}.about-word:hover{border-color:color-mix(in srgb,var(--gx-sky) 45%,var(--gx-line));box-shadow:0 8px 28px #0047a40f}.about-word__head{display:flex;flex-direction:column;gap:.35rem}.about-word__index{font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.12em;color:var(--gx-sky)}.about-word strong{font-family:var(--font-display);font-size:clamp(1.35rem,2.5vw,1.85rem);font-weight:700;color:var(--gx-navy);letter-spacing:-.02em;line-height:1}.about-word__body p{margin:0;color:var(--gx-mute);font-size:.875rem;line-height:1.55}.about-word__body p+p{margin-top:.35rem}.about-lead{font-size:clamp(1.05rem,2vw,1.35rem);font-weight:500;line-height:1.55;max-width:28em;margin:0;color:var(--gx-ink)}.about-lead em{font-style:normal;font-family:var(--font-display);font-weight:700;color:var(--gx-navy);letter-spacing:-.01em}.lead{margin:0 0 1.75rem;color:var(--gx-mute);max-width:36rem;font-size:.9375rem;line-height:1.55}.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.5rem,3vw,2.5rem);align-items:center}.split--rev{grid-template-columns:.95fr 1.05fr}.frame{margin:0;overflow:hidden;border-radius:12px;position:relative}.frame--accent:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff59;background:linear-gradient(135deg,rgba(74,152,255,.12),transparent 45%)}.frame img{width:100%;height:min(46vh,380px);object-fit:cover}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-bottom:1.5rem}.card{position:relative;background:var(--gx-bg);border:1px solid var(--gx-line);border-radius:12px;overflow:hidden;transition:transform .35s var(--gx-ease),box-shadow .35s var(--gx-ease),border-color .35s var(--gx-ease)}.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--gx-sky) 35%,var(--gx-line));box-shadow:0 14px 36px #0047a41a}.card__index{position:absolute;top:.75rem;left:.75rem;z-index:2;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.1em;color:#fff;background:#0047a4b8;backdrop-filter:blur(6px);padding:.28rem .45rem;border-radius:4px}.card img{width:100%;height:168px;object-fit:cover}.card__body{padding:1rem 1.1rem 1.15rem}.card h3{margin:.25rem 0 .4rem;font-size:1rem;font-weight:600;line-height:1.35;color:var(--gx-navy)}.card p{margin:0;color:var(--gx-mute);font-size:.8125rem;line-height:1.5}.contact-band{display:grid;grid-template-columns:1.05fr .95fr;gap:0;padding:0;align-items:stretch;overflow:hidden;border-radius:14px;margin:0 var(--section-px) var(--section-py);max-width:calc(var(--gx-max) + var(--section-px) * 2);margin-left:auto;margin-right:auto;border:1px solid var(--gx-line);box-shadow:0 20px 50px #0047a414}.contact-band__media{margin:0;position:relative}.contact-band__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 40%,rgba(243,246,252,.92) 100%);pointer-events:none}.contact-band__media img{width:100%;height:100%;min-height:260px;object-fit:cover}.contact-band__body{padding:clamp(2rem,4vw,2.75rem) clamp(1.5rem,3vw,2.5rem);display:flex;flex-direction:column;justify-content:center;gap:.75rem;background:var(--gx-bg-soft)}.contact-band__title{margin:0;font-size:clamp(1.45rem,2.8vw,2.1rem);color:var(--gx-navy);letter-spacing:-.02em}.contact-band__body>p:not(.service__kicker){margin:0;color:var(--gx-mute);font-size:.875rem;line-height:1.55;max-width:24rem}.service{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.service__media{overflow:hidden;border-radius:2px}.service__media img{width:100%;height:min(62vh,520px);object-fit:cover}.service__kicker{font-family:var(--font-display);letter-spacing:.14em;font-size:.65rem;font-weight:600;color:var(--gx-sky);margin:0}.service h3{margin:.6rem 0 1rem;font-size:clamp(2rem,4vw,3.4rem);color:var(--gx-navy)}.service p{margin:0 0 1.4rem;color:var(--gx-mute);max-width:34rem}.works-list{list-style:none;margin:0;padding:0;border:1px solid var(--gx-line);border-radius:10px;overflow:hidden;background:var(--gx-bg)}.works-list li{display:grid;gap:.15rem;padding:.85rem 1rem;border-top:1px solid var(--gx-line);transition:background .25s var(--gx-ease)}.works-list li:first-child{border-top:0}.works-list li:hover{background:color-mix(in srgb,var(--gx-bg-soft) 70%,transparent)}.works-list span{display:block;color:var(--gx-navy);font-size:.9375rem;font-weight:500;line-height:1.35}.works-list small{display:block;color:var(--gx-mute);font-size:.78rem;line-height:1.45}.works-list--tight{margin-top:0}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--gx-line);border-radius:10px;overflow:hidden;background:var(--gx-bg)}.fact{padding:1rem 1.1rem;border-top:1px solid var(--gx-line);background:var(--gx-bg)}.fact:nth-child(odd){border-right:1px solid var(--gx-line)}.fact dt{font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.12em;color:var(--gx-sky);margin:0 0 .35rem}.fact dd{margin:0;font-size:.9375rem;font-weight:500;line-height:1.45;color:var(--gx-navy)}.fact--full{grid-column:1 / -1}.fact dd a{color:inherit;text-decoration:none}.fact dd a:hover{color:var(--gx-sky)}.contact-cta{display:flex;flex-direction:column;gap:1.5rem}.contact-cta p{margin:0;max-width:28rem;color:var(--gx-mute)}.btn{display:inline-flex;align-items:center;width:fit-content;font-family:var(--font-display);letter-spacing:.08em;font-size:.75rem;font-weight:600;padding:.85rem 1.35rem;background:linear-gradient(135deg,var(--gx-navy),color-mix(in srgb,var(--gx-navy) 80%,var(--gx-sky)));color:#fff;border:0;border-radius:8px;cursor:pointer;transition:transform .25s var(--gx-ease),box-shadow .25s var(--gx-ease)}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #0047a438}.btn--ghost{background:transparent;color:var(--gx-navy);border:1px solid var(--gx-navy)}.footer{padding:2.5rem var(--section-px) 2rem;border-top:1px solid var(--gx-line-strong);display:grid;gap:1.1rem;background:linear-gradient(180deg,var(--gx-bg) 0%,var(--gx-bg-soft) 100%)}.footer__brand{width:min(220px,60vw)}.footer__meta{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;flex-wrap:wrap;color:var(--gx-mute);font-size:.82rem}.footer__meta p{margin:0}.footer__meta a{color:var(--gx-navy)}.footer__copy{margin:0;color:var(--gx-mute);font-size:.82rem;text-align:center}.footer__br{display:none}.page{padding:calc(var(--nav-offset) + 2rem) var(--section-px) 4rem;min-height:100svh;max-width:var(--gx-max);margin:0 auto}.page h1{margin:0 0 1.25rem;font-size:clamp(1.75rem,4vw,2.75rem);color:var(--gx-navy);letter-spacing:-.02em}.page--contact{max-width:42rem}.page--contact .page__lead{margin:0 0 1.6rem;color:var(--gx-mute);line-height:1.65}.page--contact .page__visual{margin:0 0 2.2rem}.page--contact .form{max-width:none;width:100%}.page--contact .form-hcaptcha{text-align:center}.page--contact .form-hcaptcha .h-captcha{display:inline-block;min-height:78px;vertical-align:top}.page--contact .form-hcaptcha__notice{text-align:center}.page--contact .form .btn{justify-self:center}.form{display:grid;gap:1.6rem;max-width:40rem}.field{display:grid;gap:.45rem}.field label{font-size:.82rem;color:var(--gx-navy)}.req{color:var(--gx-sky);margin-left:.35rem;font-size:.72rem}.field input,.field select,.field textarea{border:0;border-bottom:1px solid var(--gx-navy);background:transparent;padding:.7rem 0;color:var(--gx-ink);border-radius:0;outline:none}.field textarea{min-height:10rem;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--gx-sky)}.hp{position:absolute;left:-9999px;opacity:0}.form-hcaptcha{margin:.35rem 0 1.25rem}.form-hcaptcha__notice{margin:.65rem 0 0;font-size:.78rem;line-height:1.6;color:var(--gx-mute)}.form-hcaptcha__notice a{color:var(--gx-navy);text-decoration:underline}.cursor,.cursor__ring{display:none}.loader{position:fixed;inset:0;z-index:90;background:var(--gx-bg);display:grid;place-items:center}.loader img{width:min(280px,70vw)}.privacy{max-width:42rem;color:var(--gx-mute)}.privacy__date{margin:.5rem 0 0;font-size:.82rem;color:var(--gx-mute)}.privacy h2{color:var(--gx-navy);font-size:1.05rem;margin:2rem 0 .6rem}@media(max-width:860px){:root{--nav-h: 3.5rem;--nav-offset: 4rem}html{overflow-anchor:none}.mesh{display:none}.nav{z-index:70;min-height:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:.3rem;padding-left:max(1.2rem,env(safe-area-inset-left));padding-right:max(1.2rem,env(safe-area-inset-right))}body.is-menu .nav{background:transparent;border-bottom-color:transparent}.nav__logo{width:min(112px,34vw)}.nav__menu{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;background:none;cursor:pointer;z-index:72}.nav__menu-bars{position:relative;display:block;width:22px;height:14px}.nav__menu-bars span{position:absolute;left:0;width:100%;height:1.5px;background:var(--gx-navy);border-radius:1px;transition:transform .38s var(--gx-ease),top .38s var(--gx-ease),opacity .25s var(--gx-ease)}.nav__menu-bars span:nth-child(1){top:0}.nav__menu-bars span:nth-child(2){top:6.25px}.nav__menu-bars span:nth-child(3){top:12.5px}.nav__menu.is-open .nav__menu-bars span:nth-child(1){top:6.25px;transform:rotate(45deg)}.nav__menu.is-open .nav__menu-bars span:nth-child(2){opacity:0}.nav__menu.is-open .nav__menu-bars span:nth-child(3){top:6.25px;transform:rotate(-45deg)}.nav__links{position:fixed;inset:0;z-index:60;width:100%;height:100dvh;display:flex;flex-direction:column;gap:0;padding:calc(var(--nav-h) + .35rem) max(1.35rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.35rem,env(safe-area-inset-left));background:radial-gradient(ellipse 90% 60% at 100% 0%,rgba(74,152,255,.12),transparent 55%),radial-gradient(ellipse 70% 50% at 0% 100%,rgba(0,71,164,.06),transparent 50%),var(--gx-bg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s var(--gx-ease),visibility .35s}body.is-menu{overflow:hidden}body.is-menu .nav__links{opacity:1;visibility:visible;pointer-events:auto}.nav__panel-head{display:block;flex-shrink:0;width:100%;margin:0 0 1rem;padding-bottom:.85rem;border-bottom:1px solid var(--gx-line-strong)}.nav__panel-kicker{margin:0 0 .3rem;font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.16em;color:var(--gx-sky)}.nav__panel-title{margin:0;font-family:var(--font-heading);font-size:clamp(2rem,8vw,2.6rem);font-weight:500;line-height:1;color:var(--gx-navy)}.nav__links .nav__panel-list{display:flex;flex-direction:column;align-items:stretch;align-self:center;flex-shrink:0;gap:0;width:min(15rem,68vw);max-width:100%;margin:0}.nav__panel-list a{position:relative;display:grid;grid-template-columns:2.25rem 1fr;align-items:center;gap:.65rem;min-height:52px;padding:.35rem 0;border-bottom:1px solid var(--gx-line);font-size:inherit;letter-spacing:inherit}.nav__panel-list a:before{display:none}.nav__panel-no{display:block;font-family:var(--font-display);font-size:.62rem;font-weight:600;letter-spacing:.1em;color:var(--gx-sky)}.nav__panel-text{display:block;font-family:var(--font-heading);font-size:clamp(1.65rem,6.5vw,2rem);font-weight:500;line-height:1;letter-spacing:.01em;color:var(--gx-navy)}.nav__panel-list a.is-current .nav__panel-text{color:var(--gx-sky)}.nav__panel-list a .nav__mask{display:none}.nav__panel-cta{display:flex;justify-content:center;align-items:center;flex-shrink:0;width:100%;margin-top:auto;padding:.95rem 1.25rem;min-height:52px;border:0;border-radius:10px;background:linear-gradient(135deg,var(--gx-navy),color-mix(in srgb,var(--gx-navy) 75%,var(--gx-sky)));box-shadow:0 10px 28px #0047a429}.nav__panel-cta:before{display:none}.nav__panel-cta-label{display:block;font-family:var(--font-heading);font-size:1.55rem;font-weight:500;line-height:1;color:#fff}.nav__panel-cta .nav__mask,.nav__mask{display:none}.hero:not(.hero--cover){min-height:auto;padding-top:calc(var(--nav-offset) + 1.6rem);padding-bottom:3rem}.hero.hero--cover{position:relative;display:block;min-height:0;margin:0;padding:var(--nav-h) 0 0;overflow:hidden}.hero.hero--cover .hero__visual{position:relative;width:100%;max-width:100%;margin:0;border-radius:0}.hero.hero--cover .hero__text{position:absolute;top:calc(var(--nav-h) + 1.15rem);bottom:auto;left:max(1.2rem,env(safe-area-inset-left));right:max(1.2rem,env(safe-area-inset-right));z-index:1;width:auto;max-width:none;margin:0;padding:0;background:none}.hero.hero--cover .hero__label{font-size:.58rem;margin-bottom:.7rem}.hero.hero--cover .hero__title{font-size:clamp(1.05rem,5vw,1.35rem)}.hero.hero--cover .hero__br{display:block}.hero.hero--cover .hero__copy{margin-top:.7rem;margin-bottom:0;font-size:.82rem;line-height:1.35}.hero.hero--cover .hero__sub{margin-top:.12rem;font-size:.72rem;line-height:1.4}.hero.hero--cover .hero__line{margin-top:1.1rem;width:min(36vw,160px)}.hero:not(.hero--cover) .hero__visual img,.frame img{height:min(38vh,240px)}.hero.hero--cover .hero__visual img{display:block;width:100%;max-width:100%;height:min(38vh,240px);object-fit:cover;object-position:right center}.section{padding-top:clamp(3rem,8vw,4rem);padding-bottom:clamp(3rem,8vw,4rem)}.section__head{margin-bottom:1.5rem;align-items:flex-start;flex-direction:column;gap:.75rem}.section__en{font-size:clamp(2rem,8vw,2.65rem)}.about-word{grid-template-columns:1fr;gap:.65rem}.about-word__head{flex-direction:row;align-items:baseline;gap:.65rem}.card img{height:152px}.contact-band{margin:0 max(1.2rem,env(safe-area-inset-left)) clamp(3rem,8vw,4rem);grid-template-columns:1fr}.contact-band__media:after{background:linear-gradient(180deg,transparent 50%,rgba(243,246,252,.95) 100%)}.contact-band__body{padding:1.75rem 1.25rem 2rem}.fact:nth-child(odd){border-right:0}.page{padding-top:calc(var(--nav-offset) + 2rem);padding-bottom:3.2rem}.footer{gap:.85rem;padding-bottom:1.8rem;justify-items:center}.footer__brand{justify-self:center}.footer__br{display:block}.footer__meta{flex-direction:column;align-items:center;gap:.3rem;text-align:center}.field input,.field select,.field textarea{font-size:16px;min-height:44px}.btn{min-height:48px}.service,.about-word,.facts,.split,.split--rev,.cards,.contact-band{grid-template-columns:1fr}.section,.page,.footer{padding-left:max(1.2rem,env(safe-area-inset-left));padding-right:max(1.2rem,env(safe-area-inset-right))}}@media(pointer:coarse){.cursor,.cursor__ring{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
