:root{color-scheme:light;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:#fcfcfd;color:#252930;--chrome-base:#222834;--chrome-surface:radial-gradient(ellipse at 8% 0%,#86bdc81c,transparent 58%),radial-gradient(ellipse at 93% 100%,#bd91b523,transparent 55%),linear-gradient(115deg,#303442,#292e3b 52%,#333344)}
html:lang(ja){font-family:Meiryo,"メイリオ",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden}
.identity{position:relative;width:100%;height:100%;isolation:isolate;background:#fcfcfd}
.identity-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .9s cubic-bezier(.22,.61,.36,1)}
.home-view{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#aeb6c454 transparent;scroll-padding:96px 0 150px;outline:none}
.home-view[hidden]{display:none}
.home-hero{position:relative;height:100%;min-height:480px}
.home-news-cue{position:absolute;left:50%;bottom:calc(126px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 16px;text-align:center;border:0;background:none;color:#65738a;font:inherit;font-size:11px;letter-spacing:.12em;cursor:pointer}
.home-news-cue svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.home-news-cue:focus-visible,.news-copy a:focus-visible{outline:2px solid #8ea9c5;outline-offset:5px;border-radius:3px}
.home-news{max-width:736px;min-height:100svh;margin:0 auto;padding:96px 28px calc(160px + env(safe-area-inset-bottom,0px));color:#596271}
.home-news h2{margin:0 0 34px;color:#515a68;font-size:38px;font-weight:450;letter-spacing:-.04em;line-height:1.2;outline:none}
.news-list{list-style:none;margin:0;padding:0}
.news-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:17px;padding:27px 0}
.news-item:first-child{padding-top:0}
.news-item+.news-item{border-top:1px solid #74829921}
.news-icon{padding-top:3px;color:#6b7f97}
.news-icon .ui-icon{width:23px;height:23px;stroke-width:1.15}
.news-copy time{display:block;margin-bottom:9px;color:#6c788d;font-size:11px;font-weight:400;letter-spacing:.04em;line-height:1.5}
.news-copy h3{margin:0;font-size:18px;font-weight:500;letter-spacing:-.012em;line-height:1.55;text-wrap:pretty}
.news-copy a{color:#4e5867;text-decoration:none;text-underline-offset:5px}
.news-copy a:hover{text-decoration:underline;text-decoration-color:#a2afc0}
.news-copy p{margin:11px 0 0;color:#6a7484;font-size:13px;line-height:1.8;text-wrap:pretty}
.home-news:lang(ja){line-break:strict;word-break:normal;overflow-wrap:break-word}
.home-news:lang(ja) h3{letter-spacing:.01em}
@media(min-width:768px){.home-news{padding-top:104px}.home-news h2{font-size:46px}.news-item{grid-template-columns:32px minmax(0,1fr);gap:24px;padding:32px 0}.news-copy h3{font-size:21px}.news-copy p{font-size:14px}.home-news-cue{bottom:136px}}
@media(max-width:350px){.home-news{padding-right:22px;padding-left:22px}.news-item{grid-template-columns:24px minmax(0,1fr);gap:13px}.news-copy h3{font-size:17px}}
[data-renderer="webgl"] .identity-canvas{opacity:1}
.fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:clamp(14px,2.5vh,28px);opacity:0;visibility:hidden;background:radial-gradient(ellipse at 13% 24%,#bfdbfa 0,transparent 55%),radial-gradient(ellipse at 86% 79%,#e3c5ed 0,transparent 52%),radial-gradient(ellipse at 51% 95%,#f5e7c7 0,transparent 45%),#fcfcfd}
.fallback-mark{width:auto;height:min(29.5vh,42vw,344.5px)}
.fallback-name{width:min(41vw,390px);height:auto}
.fallback-mark,.fallback-name{filter:brightness(0);opacity:.83}
[data-page="home"] .fallback-mark,[data-page="home"] .fallback-name{transform:translateY(calc(-1 * var(--home-scroll,0px)))}
[data-renderer="fallback"] .fallback{opacity:1;visibility:visible}
[data-composition="mark"] .fallback-name{display:none}
[data-renderer="webgl"] .fallback{opacity:0;visibility:hidden}
/* The Home identity is repeated in white behind every interior page.
   SVG viewBox padding is compensated so its ink matches the first-view scale. */
.site-watermark{--mark-height:min(24vh,34.436797976vw,280px);--name-width:min(41vw,390px);position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(14px,2.65vh,28px);opacity:.38;pointer-events:none;user-select:none}
.watermark-mark{position:relative;width:calc(var(--mark-height)*.9582884615);height:var(--mark-height);flex-shrink:0}
.watermark-name{position:relative;width:var(--name-width);height:calc(var(--name-width)*.049356693);flex-shrink:0}
.site-watermark img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:auto;max-width:none;filter:brightness(0) invert(1)}
.watermark-mark img{width:calc(var(--mark-height)*1.2307692308)}
.watermark-name img{width:calc(var(--name-width)*1.0106684021)}
[data-page="home"] .site-watermark{display:none}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.ui-icon{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.site-header{position:fixed;z-index:3;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) 7px max(20px,env(safe-area-inset-left,0px));background-color:var(--chrome-base);background-image:var(--chrome-surface);box-shadow:0 1px 0 #ffffff12;pointer-events:none}
.site-header>*{pointer-events:auto}
.home-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 4px;color:#fff;font-size:12px;font-weight:500;letter-spacing:.015em;text-decoration:none}
.home-link .ui-icon{width:16px;height:16px;stroke-width:1.45}
.language-switch{display:flex;align-items:center;flex-shrink:0;gap:3px;font-size:11px;color:#fff}
.language-switch button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:0 4px;border:0;background:none;font:inherit;color:#ffffffbf;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .18s ease}
.language-pointer{display:block;width:6px;font-size:6px;opacity:0}
.language-switch button[aria-pressed="true"]{color:#fff}
.language-switch button[aria-pressed="true"] .language-pointer{opacity:1}
.language-divider{padding:0 2px;color:#ffffff70}
.global-nav{position:fixed;z-index:3;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;width:calc(100% - 24px);max-width:580px;padding:5px;border:1px solid #ffffff29;border-radius:22px;background-color:var(--chrome-base);background-image:var(--chrome-surface);box-shadow:0 8px 28px #20253521,inset 0 1px 0 #ffffff12;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.global-link{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:7px;min-width:0;min-height:75px;padding:9px 2px 7px;border-radius:16px;color:#fff;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:color .18s ease,background .18s ease}
.global-link .ui-icon{width:22px;height:22px}
.nav-label{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:28px;font-size:10px;line-height:1.35;font-weight:500;letter-spacing:.005em;white-space:nowrap}
.global-link[aria-current="page"]{color:#fff;background:#ffffff1c;box-shadow:inset 0 0 0 1px #ffffff14}
.global-link:active{background:#ffffff24}
.home-link:focus-visible,.language-switch button:focus-visible,.global-link:focus-visible{outline:2px solid #d5d9ed;outline-offset:3px}
.section-view{position:absolute;inset:0;display:block;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#aeb6c454 transparent;padding:calc(88px + env(safe-area-inset-top,0px)) 28px calc(144px + env(safe-area-inset-bottom,0px));scroll-padding:90px 0 140px;text-align:left;color:#596271}
.section-view[hidden]{display:none}
.section-heading{display:grid;grid-template-columns:minmax(0,1fr) 108px;align-items:center;gap:20px;max-width:680px;min-height:108px;margin:0 auto 34px}
.section-heading h1{margin:0;font-size:42px;font-weight:450;line-height:1.14;letter-spacing:-.045em;color:#515a68;outline:none}
.section-art{width:108px;height:108px;pointer-events:none}
.section-art svg{display:block;width:100%;height:100%;overflow:visible}
.section-art:is([data-kind="research"],[data-kind="company"],[data-kind="products"],[data-kind="contact"]) .section-static-icon,.section-art:not([data-kind="research"]) .research-orbit,.section-art:not([data-kind="company"]) .company-structure,.section-art:not([data-kind="products"]) .product-exchange,.section-art:not([data-kind="contact"]) .contact-envelope{display:none}
.section-static-icon{stroke:#98a6be;stroke-width:.43;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.orbit-track{fill:none;stroke:#a2acc0;stroke-width:.7;vector-effect:non-scaling-stroke;stroke-linecap:round}
.orbit-back{opacity:.32}
.orbit-front{opacity:.62}
.orbit-tail{fill:none;stroke-width:.75;vector-effect:non-scaling-stroke;stroke-linecap:round}
.orbit-particle{fill:#fff}
:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-view{overflow-x:hidden}
:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-heading{position:relative;display:flex;align-items:flex-start;min-height:120px;margin-bottom:36px;padding-top:24px;padding-bottom:6px}
:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-heading h1{position:relative;z-index:1}
:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-art{position:absolute;width:324px;height:324px;right:-128px;top:-132px}
.section-art[data-kind="research"] .research-orbit{overflow:visible}
[data-page]:not([data-page="home"]) .fallback-mark,[data-page]:not([data-page="home"]) .fallback-name{visibility:hidden}
.research-content[hidden]{display:none}
.research-content{max-width:680px;margin:0 auto;font-size:15px;line-height:1.85;letter-spacing:.005em;text-wrap:pretty}
.research-content p{margin:0 0 20px}
.research-eyebrow{margin:0 0 20px;font-size:10px;line-height:1.4;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#788396}
.content-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:25px;font-weight:500;letter-spacing:.2em}
.content-divider::before,.content-divider::after{content:'';display:block;width:42px;height:1px;background:#929eb452}
.research-content .research-lead{margin-bottom:24px;font-size:22px;line-height:1.48;letter-spacing:-.025em;font-weight:450;color:#4e5867}
.research-details{margin-top:50px}
.research-details-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #74829926;padding-top:24px}
.research-details-heading .research-eyebrow{margin:0}
.research-range{font-size:10px;line-height:1.4;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:#919aab}
.research-content .research-intro{margin:17px 0 28px;font-size:14px;line-height:1.7;color:#6b7483}
.research-fields{list-style:none;margin:0;padding:0}
.research-fields li{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:15px;padding:28px 0;border-top:1px solid #74829926}
.field-number{padding-top:4px;font-size:11px;line-height:1.5;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.07em;color:#8a93ad}
.field-copy h3{margin:0;font-size:19px;line-height:1.4;font-weight:500;letter-spacing:-.018em;color:#505a6b}
.research-content .field-purpose{margin:8px 0 15px;font-size:12px;line-height:1.5;font-weight:500;color:#81839d}
.field-copy p:last-child{margin-bottom:0}
.research-fields li:last-child{padding-bottom:0}
:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) body::after{content:'';position:fixed;z-index:2;inset:auto 0 0;height:calc(130px + env(safe-area-inset-bottom,0px));background:linear-gradient(#fcfcfd00,#fcfcfde8 48%,#fcfcfd);pointer-events:none}
@media(min-width:768px){.section-view{padding-top:116px;padding-bottom:160px}.section-heading{grid-template-columns:minmax(0,1fr) 148px;gap:32px;min-height:148px;margin-bottom:40px}.section-heading h1{font-size:50px}.section-art{width:148px;height:148px}.research-content{font-size:16px;line-height:1.85}.research-content .research-lead{font-size:28px;line-height:1.5}.research-fields li{grid-template-columns:32px minmax(0,1fr);column-gap:24px;padding:32px 0}.field-copy h3{font-size:21px}.research-details{margin-top:60px}}
@media(min-width:768px){:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-heading{min-height:130px;margin-bottom:38px;padding-top:14px}:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-art{width:444px;height:444px;right:calc(-65px - max(0px,(100vw - 680px)/2));top:-196px}}
@media(max-width:350px){.section-view{padding-left:22px;padding-right:22px}.section-heading{grid-template-columns:minmax(0,1fr) 84px;min-height:96px;gap:16px}.section-heading h1{font-size:36px}.section-art{width:84px;height:84px}.research-content{font-size:14px}.research-content .research-lead{font-size:20px}.research-fields li{column-gap:11px;grid-template-columns:20px minmax(0,1fr)}.field-copy h3{font-size:18px}}
@media(max-width:350px){:is([data-page="research"],[data-page="company"],[data-page="products"],[data-page="contact"]) .section-art{right:-158px}}
@media(hover:hover){.home-link:hover,.language-switch button:hover{color:#fff}.global-link:hover{background:#ffffff26;color:#fff}}
@media(min-width:768px){.site-header{padding:calc(20px + env(safe-area-inset-top,0px)) 32px 7px}.home-link{font-size:13px}.language-switch{font-size:12px}.global-nav{bottom:24px}.nav-label{flex-direction:row;gap:3px;font-size:11px;min-height:20px}.global-link{min-height:70px}}
@media(max-width:350px){.site-header{padding-right:14px;padding-left:14px}.global-nav{width:calc(100% - 16px);gap:0;padding:4px}.nav-label{font-size:9px}}
@media(prefers-reduced-motion:reduce){.home-link,.language-switch button,.global-link{transition:none}}
@media(prefers-reduced-motion:reduce){.identity-canvas,.fallback{transition:none}}

/* Company uses the same framing as Research, with a quiet architectural motif. */
[data-page="company"] .section-heading h1{max-width:220px}
.company-edge,.company-seam,.company-glint{fill:none;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.company-edge{stroke:#9aa9c1;stroke-width:.7;opacity:.64}
.company-edge-back{opacity:.42}
.company-seam{stroke:#a7b4c9;stroke-width:.55;opacity:.3}
.company-glint{stroke:url(#company-light);stroke-width:1;stroke-dasharray:7 93;opacity:.9;animation:company-light-travel 8s linear infinite}
.company-prism{animation:company-suspend 10s ease-in-out infinite}
.company-prism-back{animation-delay:-5s}
.company-prism-back .company-glint{animation-delay:-2s}
.company-prism-left{animation-delay:-2.5s}
.company-prism-left .company-glint{animation-delay:-5.3s}
.company-prism-center{animation-delay:-.8s}
.company-prism-center .company-glint{animation-delay:-.7s}
html[data-motion="paused"] .company-prism,html[data-motion="paused"] .company-glint{animation-play-state:paused}
@keyframes company-suspend{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes company-light-travel{to{stroke-dashoffset:-100}}
.company-facts{margin:0}
.company-fact{padding:25px 0 28px;border-top:1px solid #74829926}
.company-fact:not(.company-business-domain){padding:12px 0 14px;border-top:0}
.company-fact dt{margin:0 0 10px;font-size:10px;line-height:1.5;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:#7a8598}
.company-fact dd{margin:0;font-size:20px;line-height:1.5;font-weight:450;letter-spacing:-.015em;color:#505a6b;overflow-wrap:anywhere}
.company-legal-name{display:block;margin-top:9px;font-size:12px;font-weight:400;line-height:1.7;letter-spacing:0;color:#788396}
.company-fact:not(.company-business-domain) dt{margin-bottom:5px}
.company-fact:not(.company-business-domain) dd{line-height:1.4}
.company-fact:not(.company-business-domain) .company-legal-name{margin-top:4px;line-height:1.5}
.company-business-list{margin:0;padding:0;list-style:none;font-size:15px;line-height:1.85;font-weight:400;letter-spacing:.005em;color:#596271}
.company-business-list li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:15px;padding:20px 0;border-top:1px solid #7482991c}
.company-business-list li:first-child{padding-top:0;border-top:0}
.company-business-list li:last-child{padding-bottom:0}
.company-business-list li p{margin:0}
@media(min-width:768px){.company-business-list{font-size:16px}.company-business-list li{gap:16px}}
@media(max-width:350px){.company-business-list{font-size:14px}.company-business-list li{grid-template-columns:20px minmax(0,1fr);gap:11px}}

@media(min-width:768px){[data-page="company"] .section-heading h1{max-width:none}.company-fact{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;padding:28px 0}.company-fact dt{padding-top:7px;margin:0}.company-fact dd{font-size:21px}}
@media(max-width:350px){[data-page="company"] .section-heading h1{max-width:190px}.company-fact dd{font-size:18px}.company-legal-name{font-size:11px}}
@media(prefers-reduced-motion:reduce){.company-prism,.company-glint{animation:none}}

/* Translucent people share the accepted Research particle hues. */
.company-people-lane{animation:company-suspend 10s ease-in-out -2.5s infinite}
.company-person{pointer-events:none}
.person-limb{fill:none;stroke:currentColor;stroke-width:.69;stroke-linecap:round;stroke-linejoin:round;opacity:.74}
.person-back{opacity:.34;stroke-width:.58}
.person-head,.person-body{stroke:currentColor;stroke-width:.28;stroke-linejoin:round}
html[data-motion="paused"] .company-people-lane{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.company-people-lane{animation:none}}

/* The exchange stays within the visible left side of the shared cropped artwork. */
[data-page="products"] .section-heading h1{font-size:38px;max-width:240px}
[data-page="products"] .heading-line{display:block}
.product-box-line{fill:none;stroke:url(#product-box-edge);stroke-width:.72;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.product-exchange{pointer-events:none}
@media(max-width:350px){[data-page="products"] .section-heading h1{font-size:32px;max-width:210px}}
@media(min-width:768px){[data-page="products"] .section-heading h1{font-size:50px;max-width:none}[data-page="products"] .heading-line{display:inline}}

/* Contact keeps the shared glass motif, with colour appearing only on the jump. */
.contact-envelope{pointer-events:none}
[data-page="contact"] .section-heading h1{font-size:38px;max-width:210px}
@media(max-width:350px){[data-page="contact"] .section-heading h1{font-size:32px;max-width:185px}[data-page="contact"] .section-art{right:-122px}}
@media(min-width:768px){[data-page="contact"] .section-heading h1{font-size:50px;max-width:none}}

/* Products and services follow the same quiet editorial rhythm as Research. */
.portfolio-entry{padding:30px 0 34px;border-top:1px solid #74829926}
.portfolio-entry:first-child{padding-top:8px;border-top:0}
.portfolio-meta{display:flex;flex-wrap:wrap;gap:7px 14px;align-items:baseline;margin-bottom:12px;font-size:10px;line-height:1.6;letter-spacing:.025em;color:#7a8598}
.portfolio-meta>span:first-child{letter-spacing:.08em;text-transform:uppercase}
.portfolio-status{color:#8c7c9c}
.portfolio-entry h3{margin:0 0 7px;font-size:29px;font-weight:450;line-height:1.25;letter-spacing:-.035em;color:#505a6b}
.products-content .portfolio-lead{margin:0 0 16px;font-size:17px;line-height:1.5;letter-spacing:-.015em;color:#5f6a7e}
.portfolio-entry p:last-child{margin-bottom:0}
.portfolio-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;color:#547396;text-decoration:none;border-bottom:1px solid #829dbc55;font-size:13px;font-weight:500;letter-spacing:.01em}
.portfolio-link span{font-size:16px}
.portfolio-link:hover{color:#344f70;border-bottom-color:#547396}
.portfolio-link:focus-visible{outline:2px solid #8ea9c5;outline-offset:5px;border-radius:2px}
.portfolio-services{margin-top:54px}
.portfolio-service-list{margin-top:30px}
.portfolio-service-list .field-copy p{margin:12px 0 0}
@media(min-width:768px){.portfolio-entry{padding:36px 0 40px}.portfolio-entry h3{font-size:34px}.products-content .portfolio-lead{font-size:19px}.portfolio-meta{font-size:11px}.portfolio-services{margin-top:66px}}
@media(max-width:350px){.portfolio-entry h3{font-size:27px}.products-content .portfolio-lead{font-size:16px}.portfolio-meta{gap:5px 10px}}

.portfolio-service-list .field-copy .service-examples{font-size:12px;line-height:1.8;color:#7a8598;letter-spacing:0}
.service-approach{margin-top:32px;padding-top:26px;border-top:1px solid #74829926}
.service-approach p:last-child{margin-bottom:0}

/* Finishing pass: let the content carry the emphasis within the Opal setting. */
.research-eyebrow,.research-range,.company-fact dt,.company-legal-name{color:#66738a}
.field-number,.research-content .field-purpose{color:#6c7890}
.portfolio-meta{color:#646f82;font-size:11px}
.portfolio-status{color:#776583}
.portfolio-service-list .field-copy .service-examples{color:#68758b}
.portfolio-jump{display:flex;align-items:center;gap:15px;margin:0 0 28px;font-size:12px;color:#a2adbe}
.portfolio-jump button{display:inline-flex;align-items:center;gap:9px;min-height:44px;margin:0;padding:0 1px;border:0;background:none;color:#576f8c;font:inherit;cursor:pointer;text-underline-offset:6px}
.portfolio-jump button:hover{text-decoration:underline;text-decoration-color:#97afc8}
.portfolio-jump button:focus-visible,.service-contact-link:focus-visible{outline:2px solid #8ea9c5;outline-offset:4px;border-radius:3px}
.portfolio-jump button span{font-size:14px;color:#7d95af}
.service-contact-link{margin-top:1px}
.products-content [tabindex="-1"]{outline:none}
.research-content:lang(ja),.contact-content:lang(ja){line-height:1.95;letter-spacing:.015em;line-break:strict;word-break:normal;overflow-wrap:break-word}
html:lang(ja) .section-heading h1{line-height:1.35;letter-spacing:.015em}
html:lang(ja):is([data-page="contact"],[data-page="products"]) .section-heading h1{max-width:none}
.research-content:lang(ja) .research-lead{font-size:21px;line-height:1.65;letter-spacing:.015em}
.research-content:lang(ja) .portfolio-lead{font-size:16px;line-height:1.7;letter-spacing:.01em}
.research-content:lang(ja) .field-copy h3{font-size:18px;line-height:1.6;letter-spacing:.015em}
.research-content:lang(ja) .company-business-list{line-height:1.95}
@media(min-width:768px){.research-content:lang(ja) .research-lead{font-size:25px}.research-content:lang(ja) .portfolio-lead{font-size:18px}.research-content:lang(ja) .field-copy h3{font-size:20px}}

/* Contact: introduction above the form, with clear delivery feedback. */
.contact-content{max-width:680px;margin:0 auto;color:#596271;font-size:15px;line-height:1.7}
.contact-content[hidden],.contact-content [hidden]{display:none}
.contact-compose{display:block}
.contact-intro{margin-bottom:28px}
.contact-intro h2{margin:0 0 10px;max-width:520px;color:#4e5867;font-size:23px;line-height:1.4;letter-spacing:-.026em;font-weight:450;text-wrap:pretty}
.contact-intro p{margin:0;font-size:13px;line-height:1.7;color:#66758a;text-wrap:pretty}
.contact-intro:lang(ja) h2{max-width:none;line-height:1.6;letter-spacing:.015em;text-wrap:wrap}
.contact-intro:lang(ja) p{line-height:1.85;letter-spacing:.015em;text-wrap:wrap}
.contact-phrase{display:inline-block;max-width:100%;vertical-align:top}
.contact-form{display:grid;gap:21px}
.contact-field{min-width:0}
.contact-field label{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:9px;font-size:12px;line-height:1.5;font-weight:500;color:#606b7d;letter-spacing:.01em}
.contact-field-hint{font-size:10px;font-weight:400;letter-spacing:.015em;color:#6c788d}
.contact-field input,.contact-field textarea{display:block;width:100%;margin:0;padding:14px 16px;border:1px solid #aeb8ca6b;border-radius:13px;background:linear-gradient(125deg,#ffffff70,#ffffff38);box-shadow:inset 0 1px 0 #ffffffa6;outline:0;color:#404b5e;font:inherit;font-size:16px;line-height:1.55;letter-spacing:.005em;transition:border-color .2s,box-shadow .2s,background .2s;-webkit-appearance:none;appearance:none;scroll-margin-top:110px;scroll-margin-bottom:135px}
.contact-field input{height:53px}
.contact-field textarea{min-height:128px;resize:vertical;max-height:420px}
.contact-field input:hover,.contact-field textarea:hover{border-color:#97aac580}
.contact-field input:focus,.contact-field textarea:focus{border-color:#7e9ec5;background:#ffffff82;box-shadow:0 0 0 3px #bdd7f02e,0 0 26px #d0e4f433,inset 0 1px 0 #ffffff}
.contact-field :is(input,textarea)[aria-invalid="true"]{border-color:#b4869b;box-shadow:0 0 0 2px #dfb6c41c}
.contact-field .contact-error{margin:7px 0 0;font-size:12px;line-height:1.5;color:#8f5066}
.contact-actions{margin-top:3px}
.contact-send{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:54px;padding:14px 19px;border:1px solid #69768a69;border-radius:14px;background-color:var(--chrome-base);background-image:var(--chrome-surface);color:#fff;font:inherit;font-size:13px;font-weight:500;letter-spacing:.02em;box-shadow:0 6px 20px #30394c12,inset 0 1px 0 #ffffff20;cursor:pointer;transition:box-shadow .2s,transform .2s}
.contact-send:hover{box-shadow:0 8px 24px #30394c26,inset 0 1px 0 #ffffff30}
.contact-send:active{transform:translateY(1px)}
.contact-send:focus-visible,.contact-again:focus-visible{outline:2px solid #7e9ec5;outline-offset:4px}
.contact-send:disabled{cursor:wait}
.contact-send-icon{width:20px;height:20px;stroke-width:1.25;transition:opacity .2s,transform .3s}
.contact-send-pearl{position:absolute;right:23px;width:8px;height:8px;border-radius:50%;opacity:0;background:radial-gradient(circle at 30% 25%,#fff,#b2d4f0 45%,#d1b8dc);box-shadow:0 0 14px #e3ecffa0}
.contact-form[data-state="sending"] .contact-send-icon{opacity:0;transform:translateX(10px) rotate(-12deg)}
.contact-form[data-state="sending"] .contact-send-pearl{animation:contact-submit-pearl 1.2s ease-in-out infinite}
.contact-note{margin:11px 0 0;font-size:10px;line-height:1.65;letter-spacing:.005em;color:#6c788d}
.contact-complete{position:relative;min-height:330px;padding:36px 0 24px;text-align:center;animation:contact-complete-in .55s ease both}
.contact-complete-light{position:relative;width:74px;height:74px;margin:0 auto 24px;border-radius:50%;background:radial-gradient(circle,#ffffffa8,#d9e5f333 60%,transparent 72%)}
.contact-complete-light svg{width:100%;height:100%;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.contact-complete-light circle{stroke:#a5b8d2;fill:#ffffff35}
.contact-complete-light path{stroke:#7297bd;stroke-width:1.35;stroke-dasharray:38;stroke-dashoffset:0;animation:contact-check-in .6s ease both}
.contact-complete-light span{position:absolute;width:6px;height:6px;top:35px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#a3c4e2);box-shadow:0 0 12px #c2d9f082;animation:contact-complete-pearl .8s ease-out both}
.contact-complete-light span:first-of-type{left:-13px;--pearl-x:-8px;--pearl-y:-8px}
.contact-complete-light span:last-of-type{right:-13px;--pearl-x:8px;--pearl-y:-4px;background:radial-gradient(circle at 30% 25%,#fff,#d0acc8);animation-delay:.07s}
.contact-complete h2{margin:0 0 10px;font-size:32px;font-weight:450;line-height:1.3;letter-spacing:-.035em;color:#505a6b;outline:none}
.contact-complete-title{margin:0 0 13px;font-size:15px;color:#6e7a8f}
.contact-complete .contact-note{max-width:290px;margin:0 auto}
.contact-again{display:inline-block;min-height:44px;margin-top:26px;padding:10px 0;border:0;border-bottom:1px solid #8eabc35e;background:none;color:#5b7896;font:inherit;font-size:12px;cursor:pointer}
@keyframes contact-submit-pearl{0%{opacity:0;transform:translateX(-10px) scale(.6)}35%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translateX(12px) scale(.8)}}
@keyframes contact-complete-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes contact-check-in{from{stroke-dashoffset:38}to{stroke-dashoffset:0}}
@keyframes contact-complete-pearl{0%{opacity:0;transform:translate(0,8px)}40%{opacity:1;transform:translate(var(--pearl-x),var(--pearl-y))}100%{opacity:.55;transform:translate(0,0)}}
@media(min-width:768px){.contact-intro h2{font-size:28px}.contact-intro p{font-size:15px}.contact-intro{margin-bottom:34px}.contact-form{grid-template-columns:1fr 1fr;gap:25px 24px}.contact-field:nth-child(3),.contact-actions{grid-column:1/-1}.contact-field textarea{min-height:158px}.contact-send{width:230px}.contact-note{font-size:11px}.contact-complete{padding-top:42px}.contact-complete h2{font-size:38px}}
@media(max-width:350px){.contact-intro h2{font-size:21px}.contact-form{gap:18px}.contact-field input,.contact-field textarea{padding:13px 14px}.contact-complete h2{font-size:28px}}
@media(max-width:767px){[data-page="contact"] .section-heading{min-height:108px;margin-bottom:26px}.contact-intro{margin-bottom:24px}.contact-form{gap:16px}.contact-field input{height:50px}.contact-field textarea{min-height:110px}}
@media(min-width:768px){[data-page="contact"] .section-heading{min-height:84px;margin-bottom:14px;padding-bottom:0}.contact-intro{margin:0 0 16px;padding:0}.contact-intro h2{font-size:26px}.contact-intro p{font-size:14px;line-height:1.8}.contact-form{gap:14px}.contact-field input{height:50px}.contact-field textarea{min-height:104px}.contact-field-hint{font-size:9px}.contact-field label{gap:8px}.contact-send{width:100%}.contact-note{font-size:10px}.contact-complete{padding-top:32px}}
@media(prefers-reduced-motion:reduce){.contact-field input,.contact-field textarea,.contact-send,.contact-send-icon{transition:none}.contact-complete,.contact-complete-light path,.contact-complete-light span,.contact-form[data-state="sending"] .contact-send-pearl{animation:none}.contact-form[data-state="sending"] .contact-send-pearl{opacity:1}}


/* Portfolio imagery: shared Opal light, with each product's own visual language. */
.portfolio-visual{position:relative;isolation:isolate;margin:22px 0 25px;overflow:hidden;border-radius:18px;background:linear-gradient(132deg,#ffffff70,#e9eef850 48%,#f2e5f560);box-shadow:inset 0 0 0 1px #ffffffa3;aspect-ratio:1.8}
.portfolio-visual img{display:block;max-width:100%}
.visual-quotaecho{background:radial-gradient(ellipse at 24% 60%,#c3deef65,transparent 52%),linear-gradient(125deg,#f7fbffb0,#e9eaf26b 65%,#eddef360)}
.quotaecho-orbit{position:absolute;width:58%;aspect-ratio:1;left:0;top:3%;border:1px solid #a8bcd230;border-radius:50%;transform:rotate(-24deg) scaleY(.6)}
.quotaecho-orbit::after{content:'';position:absolute;inset:16%;border:1px solid #ffffffa6;border-radius:50%}
.quotaecho-app-icon{position:absolute;width:19%;height:auto;left:16%;top:34%;border-radius:23%;filter:drop-shadow(0 10px 11px #55678424)}
.quotaecho-app-screen{position:absolute;width:47%;height:auto;right:10%;top:11%;border:1px solid #d3dce56b;border-radius:11px;box-shadow:0 12px 26px #5a6f8d24;transform:rotate(-3deg);transform-origin:50% 100%}
.visual-sensegap{display:grid;place-items:center;background:radial-gradient(ellipse at 60% 20%,#f7dfe65c,transparent 65%),linear-gradient(140deg,#f8f9fe70,#dfeaf960)}
.sensegap-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:84%;align-items:center}
.sensegap-pair img{width:100%;height:auto;border:4px solid #ffffffe0;border-radius:12px;box-shadow:0 10px 20px #48597323}
.sensegap-pair img:first-child{transform:rotate(-5deg) translateY(3px)}
.sensegap-pair img:last-child{transform:rotate(5deg) translateY(-3px)}
.sensegap-pearl{position:absolute;left:calc(50% - 7px);top:calc(50% - 7px);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 28%,white 12%,#c7def6 40%,#d8c5ef 75%);box-shadow:0 0 0 5px #ffffff4a,0 0 22px #fff}
.visual-reactionlift{aspect-ratio:auto;overflow:visible;background:none;box-shadow:none;border-radius:0}
.visual-reactionlift>img{width:100%;height:auto;border-radius:15px;box-shadow:0 9px 30px #77819f10}
.visual-reactionlift figcaption{margin-top:7px;text-align:right;font-size:9px;line-height:1.4;letter-spacing:.07em;color:#6f7c92}
.visual-mge{background:radial-gradient(ellipse at 48% 70%,#d8dcef5c,transparent 67%),linear-gradient(145deg,#ffffff40,#e8f1f552);aspect-ratio:2}
.visual-mge img{width:100%;height:100%;object-fit:contain}
.service-visual{margin:13px 0 8px;width:100%;aspect-ratio:2;position:relative}
.service-visual::before{content:'';position:absolute;inset:25% 5% 0;background:radial-gradient(ellipse,#e3e5f363,transparent 68%);z-index:-1}
.service-visual img{display:block;width:100%;height:100%;object-fit:contain}
@media(min-width:768px){.portfolio-visual{aspect-ratio:2.55;margin:25px 0 29px;border-radius:22px}.quotaecho-app-icon{width:14%;left:22%;top:28%}.quotaecho-app-screen{width:31%;right:20%;top:10%}.quotaecho-orbit{width:43%;left:7%;top:-8%}.sensegap-pair{width:65%;gap:20px}.sensegap-pair img{border-width:5px;border-radius:16px}.visual-reactionlift{aspect-ratio:auto}.visual-reactionlift>img{border-radius:18px}.service-visual{max-width:490px;margin:15px auto 14px;aspect-ratio:2.2}.visual-mge img{width:80%;margin:auto}.visual-reactionlift figcaption{font-size:10px}}
@media(max-width:350px){.portfolio-visual{margin-top:18px;margin-bottom:22px;border-radius:14px}.sensegap-pair{gap:8px}.sensegap-pair img{border-width:3px;border-radius:9px}.quotaecho-app-screen{border-radius:8px}.visual-reactionlift{border-radius:0}.service-visual{margin-left:-15px;width:calc(100% + 15px)}}

.contact-honey{display:none!important}
.contact-privacy{margin-top:8px;font-size:10px;line-height:1.8;color:#6c788d}
.contact-privacy summary{cursor:pointer;width:fit-content}
.contact-privacy p{margin:8px 0}
.contact-privacy a{color:#506d8c;text-underline-offset:3px}
.contact-status{margin:12px 0 0;padding:12px 14px;border:1px solid #b4869b66;border-radius:10px;background:#fff8;color:#81445a;font-size:12px;line-height:1.8}
.contact-privacy :is(a,summary):focus-visible{outline:2px solid #7e9ec5;outline-offset:4px}

/* Japanese text uses natural prose flow and explicit boundaries for short copy. */
.ja-phrase{display:inline-block;max-inline-size:100%;vertical-align:top}
[data-ja-phrases]{text-wrap:wrap}
html:lang(ja) .home-news h2{letter-spacing:.015em;line-height:1.35}
html:lang(ja) :is(.research-eyebrow,.content-divider,.company-fact dt){letter-spacing:.06em}
html:lang(ja) .company-fact dd{letter-spacing:.01em;overflow-wrap:break-word}
html:lang(ja) .company-legal-name{letter-spacing:0}
html:lang(ja) .portfolio-meta>span{white-space:nowrap;text-transform:none;letter-spacing:.025em}
html:lang(ja) .news-copy time{white-space:nowrap}
html:lang(ja) .contact-complete h2{font-size:clamp(24px,7.2vw,38px);line-height:1.5;letter-spacing:.01em}

/* Mobile pages share one content column, including numbered sections and news. */
@media(max-width:767px){
  :root{--mobile-content-gutter:28px}
  .section-view,.home-news{padding-left:max(var(--mobile-content-gutter),env(safe-area-inset-left,0px));padding-right:max(var(--mobile-content-gutter),env(safe-area-inset-right,0px))}
  .section-heading,.research-content,.contact-content{width:100%;max-width:none}
  .research-content,.contact-content,.home-news{text-wrap:wrap}
  .research-content p,.contact-content p:not(.sr-only),.news-copy p{width:100%;max-width:none;text-wrap:wrap}
  .research-fields li,.company-business-list li{display:block}
  .research-fields .field-number,.company-business-list .field-number{display:block;padding-top:0;margin-bottom:9px}
  .field-copy{width:100%;min-width:0}
  .service-visual{width:100%;max-width:none;margin-left:0;margin-right:0}
  .portfolio-visual{width:100%}
  .news-item{grid-template-columns:23px minmax(0,1fr);column-gap:11px;row-gap:10px}
  .news-icon{padding-top:0}
  .news-copy{display:contents}
  .news-copy time{grid-column:2;align-self:center;margin:0}
  .news-copy h3,.news-copy p{grid-column:1/-1;width:100%;margin:0;text-wrap:wrap}
  .contact-complete .contact-note{max-width:none}
}
@media(max-width:350px){:root{--mobile-content-gutter:22px}}
