/* Shared navigation and the company's detail pages. */
:root{
  --logo-backdrop:#a0d8ef;
  /* A warm, dense black inspired by Binrojiguro for neutral typography. */
  --qs-binrojiguro:#252220;
  --ink:var(--qs-binrojiguro);
  --muted:var(--qs-binrojiguro);
  color:var(--qs-binrojiguro);
  --qs-ai:#165e83;
  --qs-ai-dark:#104662;
  --qs-ginshu:#c73e3a;
  --qs-yamabuki:#ffb11b;
  --qs-ai-tint:#eef4f7;
  --qs-warm-tint:#fff8eb;
}
.reviewbar{display:none}
body{background:#fff}
/* The logo layer owns the transition; do not add a second browser crossfade. */
@view-transition{navigation:none}
/* Pastel backgrounds inspired by sora, shiraai, anzu and tamago. */
html[data-logo-tone="sora"]{--logo-backdrop:#a0d8ef}
html[data-logo-tone="shiraai"]{--logo-backdrop:#c1e4e9}
html[data-logo-tone="anzu"]{--logo-backdrop:#f7b977}
html[data-logo-tone="tamago"]{--logo-backdrop:#fcd575}
html[data-page-arrival]::before{content:"";position:fixed;inset:0;z-index:121;background:var(--logo-backdrop) url('assets/company-logo.svg') center/88px auto no-repeat;pointer-events:auto}
html[data-home-opening]::before{content:"";position:fixed;inset:0;z-index:121;background:var(--logo-backdrop);pointer-events:auto}
.site{max-width:none;--site-header-height:96px}
.detail-page .site{min-height:100svh;display:flex;flex-direction:column}
.detail-page main{flex:1}
.detail-hero{scroll-margin-top:calc(var(--site-header-height) + 16px)}
.page-transition{position:fixed;inset:0;z-index:120;background:var(--logo-backdrop);opacity:0;transition:opacity .7s ease-in-out}
.page-transition.transition-visible{opacity:1}
.page-transition .intro-logo{position:absolute;left:50%;top:50%;width:88px;transform:translate(-50%,-50%)}
.page-transition .page-transition-skip{position:absolute;bottom:28px;right:32px;border:0;background:#ffffffb0;color:#252220;padding:12px;font-size:12px;border-radius:24px}
.page-transition .logo-fill{animation:none;opacity:0}
.page-transition .logo-outline{animation:none;opacity:1}
.page-transition .logo-outline path{animation:none;stroke-dashoffset:1000}
.page-transition.transition-drawing .logo-outline path{animation:precise-logo-trace 1.25s cubic-bezier(.4,0,.3,1) both}
.page-transition.transition-drawing .logo-outline .outline-part-1{animation-delay:.4s;animation-duration:1.15s}
.page-transition.transition-drawing .logo-outline .outline-part-2{animation-delay:.65s;animation-duration:1.2s}
.page-transition.transition-drawing .logo-fill{animation:logo-color-reveal .4s 1.75s ease both}
.page-transition.transition-drawing .logo-outline{animation:logo-outline-finish .3s 1.85s ease both}
.page-transition.transition-ready .logo-fill{animation:none;opacity:1}
.page-transition.transition-ready .logo-outline{animation:none;opacity:0}
.page-transition.transition-ready .logo-outline path{animation:none}
.intro-logo .logo-outline path{stroke:#252220}
.opening{opacity:0;transition:opacity .7s ease-in-out}
.opening.opening-visible{opacity:1}
.opening.opening-initial{opacity:1;transition:none}
/* Home only: the rocket is drawn once, flies, then yields to the company mark. */
.opening #intro-rocket{position:absolute;left:50%;top:46%;width:min(122px,24vw);transform:translate(-50%,-50%);z-index:3;opacity:1;transform-origin:center;will-change:transform,width}
.opening #intro-rocket svg{display:block;width:100%;height:auto;overflow:visible}
.opening .rocket-fill{opacity:0;animation:none}
.opening .rocket-outline>*{fill:none;stroke:#00081a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:1000;vector-effect:non-scaling-stroke;animation:none}
.opening .rocket-outline>.rocket-red{stroke:#e60012}
.opening.opening-drawing .rocket-outline>*{animation:precise-logo-trace .9s ease both}
.opening.opening-drawing .rocket-outline>:first-child{animation-duration:1.5s}
.opening.opening-drawing .rocket-outline>:nth-child(2){animation-delay:.16s}
.opening.opening-drawing .rocket-outline>:nth-child(3){animation-delay:.32s}
.opening.opening-drawing .rocket-outline>:nth-child(4){animation-delay:.48s}
.opening.opening-drawing .rocket-outline>:nth-child(5){animation-delay:.64s}
.opening.opening-drawing .rocket-fill{animation:logo-color-reveal .45s 1.75s ease both}
.opening.opening-drawing .rocket-outline{animation:logo-outline-finish .3s 2.05s ease both}
.opening.opening-ready .rocket-fill{animation:none;opacity:1}
.opening.opening-ready .rocket-outline{animation:none;opacity:0}
.opening.opening-ready .rocket-outline>*{animation:none}
.opening .intro-logo{opacity:0}
.opening .intro-logo .logo-fill{animation:none;opacity:1}
.opening .intro-logo .logo-outline{display:none;animation:none}
.opening .intro-logo svg{width:100%;height:100%;object-fit:contain}
.opening.rocket-arriving #intro-rocket{opacity:0;transition:opacity .65s .05s ease}
.opening.rocket-arriving .intro-logo{opacity:1;transition:opacity .65s .05s ease}
.intro-active.intro-arrived .header #header-logo{opacity:1}
.opening.departing.landed .intro-space{transition:opacity .85s ease}
.opening .intro-wordmark{animation:none;opacity:0}
.opening .intro-wordmark{top:calc(46% + 112px)}
.opening.opening-drawing .intro-wordmark{animation:word-in .7s .65s both}
.opening.opening-ready .intro-wordmark{animation:none;opacity:0;transition:opacity .35s}
@media(max-width:600px){.opening .intro-wordmark{top:calc(46% + 100px)}}
.opening .intro-space{background:var(--logo-backdrop)}
.opening .intro-wordmark,.opening .intro-wordmark small{color:#252220}
.opening .comet-trail{display:block}
.opening #comet-color stop:first-child{stop-color:#d9b97a}
.opening #comet-color stop:nth-child(2){stop-color:#d9b97a}
.opening #comet-color stop:last-child{stop-color:#e60012}
.opening #skip-opening{color:#252220;background:#ffffffb0;border-color:#25222040}
.detail-page main:focus{outline:none}
/* Section anchors receive focus after navigation, but are not controls. */
.detail-page .detail-section:focus{outline:none}
@media(prefers-reduced-motion:reduce){.page-transition,html[data-page-arrival]::before,html[data-home-opening]::before{display:none}}
.header{width:100%;margin:0;flex-shrink:0;gap:30px}
.header .brand{flex-shrink:0}
.header .brand:focus-visible{text-decoration:none;outline:2px solid var(--qs-ai);outline-offset:6px;border-radius:3px}
.site main[tabindex="-1"]:focus{outline:none}
.brand>span{font-weight:600}
.side-home[hidden]{display:none}
.side-home{--rail-color:#165e83;--rail-ink:#fff;position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:34;display:flex;flex-direction:column;align-items:center;gap:14px;width:40px;padding:14px 5px;border:1px solid var(--rail-color);border-radius:24px;background:var(--rail-color);color:var(--rail-ink);box-shadow:0 4px 16px #1046620a;transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}
.side-home[data-rail-theme="konjyo"]{--rail-color:#113285}
.side-home[data-rail-theme="aotake"]{--rail-color:#00896c;--rail-ink:#00081a}
.side-home[data-rail-theme="yamabuki"]{--rail-color:#ffb11b;--rail-ink:#00081a}
.side-home[data-rail-theme="ginsyu"]{--rail-color:#c73e3a}
.side-home[data-rail-theme="ruri"]{--rail-color:#005caf}
.side-home[data-rail-theme="fuji"]{--rail-color:#8b81c3;--rail-ink:#00081a}
.side-home[data-rail-theme="matsuba"]{--rail-color:#42602d}
.side-home[data-rail-theme="sumi"]{--rail-color:#1c1c1c}
.side-home-wordmark{writing-mode:vertical-rl;text-orientation:sideways;white-space:nowrap;font-size:12px;font-weight:600;line-height:1;letter-spacing:.1em}
.side-home-wordmark .amp{color:inherit}
.side-home-label{font-size:7px;font-weight:600;line-height:1.4;letter-spacing:0;font-variant-numeric:tabular-nums;white-space:nowrap}
.side-home img{display:block;flex-shrink:0;transform:rotate(90deg);background:#fff;border-radius:50%;padding:2px}
.side-home:is(:focus-visible,:active){background:var(--qs-yamabuki);border-color:var(--qs-yamabuki);color:var(--qs-binrojiguro);outline:2px solid var(--qs-ai-dark);outline-offset:3px}
.side-home:is(:focus-visible,:active) .amp{color:inherit}
.has-side-home .scroll-position{left:0;right:0;top:0;transform:none;width:100%;height:2px;display:block;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:none}
.has-side-home .scroll-position .reading-progress{inset:0;width:100%;height:2px;clip-path:none;background:#d8e6ed}
.has-side-home .reading-progress>span{transform-origin:left;transform:scaleX(var(--reading-ratio,0))!important}
.has-side-home .position-links,.has-side-home .reading-percent{display:none}
@media(hover:hover) and (pointer:fine){
  .side-home:hover{background:var(--qs-yamabuki);border-color:var(--qs-yamabuki);color:var(--qs-binrojiguro);box-shadow:0 0 0 3px #165e8333}
  .side-home:hover .amp{color:inherit}
}
@media(max-width:1000px),(max-height:419px){.side-home{display:none}}
@media(prefers-reduced-motion:reduce){.side-home{transition:none}}
@media print{.side-home{display:none}}
.header-center{display:flex;margin-left:auto;gap:26px;align-items:center}
.header-center a{font-size:12px;white-space:nowrap}
.header-center a[aria-current=page]{color:#24748f;text-decoration:underline;text-underline-offset:8px}
.header-actions{flex-shrink:0;gap:0}
.header .menu-toggle{display:none}
.site-menu{inset:0 0 0 auto;width:min(460px,100%);height:100dvh;max-height:100dvh;padding:28px;background:#fff;overflow-y:auto;overscroll-behavior:contain}
.site-menu::backdrop{background:#122e4266;backdrop-filter:blur(4px)}
.site-menu .menu-grid{display:block;margin:28px 0 0}
.site-menu .menu-grid nav a{font-size:16px;padding:17px 0;gap:20px}
.site-menu .menu-grid nav a[aria-current=page]{color:#24748f}
.site-menu .menu-note{font-size:12px;line-height:1.9;color:#607a88;margin-top:30px}
html.menu-is-open{overflow:hidden}
.skip-link{position:fixed;left:16px;top:12px;z-index:150;background:#fff;padding:14px 20px;border:1px solid #24748f;transform:translateY(-160%)}
.skip-link:focus{transform:none}
.site-footer{padding:64px 6.5% 24px;background:var(--qs-ai-dark);color:#fff;border-top:1px solid #ffffff30}
.footer-inner{max-width:1180px;margin:auto;display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(40px,6cqw,90px)}
.footer-inner .brand{font-size:19px;letter-spacing:0}
.footer-inner .brand img{background:#fff;padding:4px;border-radius:50%;width:46px;height:46px}
.footer-identity,.footer-navigation{min-width:0}
.footer-inner .brand,.footer-inner .brand small{color:#fff}
.footer-inner .brand .amp{color:var(--qs-yamabuki)}
.footer-statement{font-size:clamp(28px,3.3cqw,44px);line-height:1.65;font-weight:600;letter-spacing:.025em;margin:38px 0 0}
.footer-statement>span{color:var(--qs-yamabuki)}
.footer-message{font-size:13px;line-height:1.9;margin-top:18px;color:#d5e5ed}
.footer-email{display:inline-block;margin-top:28px;font-size:13px;text-decoration:underline;text-underline-offset:6px;overflow-wrap:anywhere;max-width:100%}
.footer-next h2,.footer-links h2{font-size:11px;font-weight:500;color:#d5e5ed;letter-spacing:.08em;margin:0 0 16px}
.footer-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.site-footer .footer-action{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border:1px solid #ffffff55;border-radius:999px;background:transparent;color:#fff;min-width:0}
.footer-action-copy{display:flex;flex-direction:column;gap:10px;min-width:0}
.footer-action-copy small{font-size:10px;line-height:1.7}
.footer-action-copy>span{font-size:22px;line-height:1.4;letter-spacing:.02em}
.footer-action>.ui-arrow{font-size:24px}
.site-footer .footer-action-contact{background:#fff;color:var(--qs-binrojiguro);border-color:#fff}
.footer-link-groups{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:38px}
.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:13px}
.footer-links h2{margin-bottom:10px}
.footer-links a{display:inline-block;padding:9px 12px;margin-left:-12px;border-radius:999px;line-height:1.5;transition:background-color .3s ease,color .3s ease}
.footer-links a:is(:focus-visible,:active){background:var(--qs-yamabuki);color:var(--qs-binrojiguro);text-decoration:none}
.footer-links a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--qs-yamabuki);text-underline-offset:6px}
.footer-end{max-width:1180px;margin:48px auto 0;padding-top:24px;border-top:1px solid #ffffff30;font-size:10px;color:#d5e5ed;display:flex;justify-content:space-between;gap:24px}
.footer-end details{max-width:550px;line-height:1.8}
.footer-end summary{cursor:pointer}
.footer-end details p{margin-top:12px}
@media(hover:hover) and (pointer:fine){
  .footer-links a:hover{background:var(--qs-yamabuki);color:var(--qs-binrojiguro);text-decoration:none}
  .footer-email:hover{color:var(--qs-yamabuki)}
}
@media(prefers-reduced-motion:reduce){.footer-links a{transition:none}}
@container(max-width:430px){
  .footer-actions{grid-template-columns:1fr}
  .site-footer .footer-inner .brand{font-size:14px}
}
.page-link{display:inline-flex;align-items:center;gap:26px;font-size:14px;color:#216b89;border-bottom:1px solid #a4c8d8;padding:10px 0;line-height:1.7}
.section>.page-link{margin-top:32px}
.organizations>.page-link{color:#eef6fa;border-color:#7294a5}
/* The whole link turns Yamabuki; the arrow keeps a subtle darker circle. */
.ui-arrow{position:relative;isolation:isolate}
.ui-arrow::before{content:"";position:absolute;left:50%;top:50%;width:clamp(28px,1.8em,40px);aspect-ratio:1;border-radius:50%;background:currentColor;opacity:0;transform:translate(-50%,-50%) scale(.6);transition:opacity .35s ease,transform .35s cubic-bezier(.22,.61,.36,1);pointer-events:none;z-index:-1}
:is(a,button):is(:focus-visible,:active) .ui-arrow::before{opacity:.2;transform:translate(-50%,-50%) scale(1)}
:is(a,button):is(:focus-visible,:active) .ui-arrow{color:var(--qs-binrojiguro)}
.contact-link{transition:background-color .35s ease,border-color .35s ease,color .35s ease}
.primary-button{transition:background-color .35s ease,color .35s ease}
@media(hover:hover) and (pointer:fine){
  :is(a,button):hover .ui-arrow::before{opacity:.2;transform:translate(-50%,-50%) scale(1)}
  :is(a,button):hover .ui-arrow{color:var(--qs-binrojiguro)}
}
@media(prefers-reduced-motion:reduce){
  .ui-arrow::before,:is(.care-secondary,.page-link,.contact-link,.primary-button){transition:none}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.detail-page{background:#fff;color:#19384b}
.detail-page .site{background:#fff;box-shadow:none}
.detail-page main{padding-bottom:0}
.detail-page .header{background:#fff}
.detail-page .reviewbar{letter-spacing:.07em}
.detail-page .reviewbar b{margin-left:12px}
.detail-wrap{max-width:1180px;width:87%;margin:0 auto}
.breadcrumbs{display:flex;align-items:center;gap:12px;font-size:11px;color:#6e8592;padding:24px 0;flex-wrap:wrap}
.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}
.detail-hero{padding:44px 0 68px;border-bottom:1px solid #d8e6ed;display:grid;grid-template-columns:1.18fr .82fr;gap:70px;align-items:end}
.detail-kicker{font-size:11px;letter-spacing:.18em;color:#427990;margin:0 0 22px;font-weight:600}
.detail-hero h1{font-size:clamp(30px,3.1cqw,48px);letter-spacing:.02em;line-height:1.5;font-weight:700}
.detail-hero h1 em{font-style:normal;color:#24748f}
.detail-hero .intro{font-size:15px;line-height:2.1;color:var(--qs-binrojiguro);max-width:36em}
.detail-hero .intro p+p{margin-top:14px}
.page-index{display:flex;flex-wrap:wrap;gap:12px 28px;padding:22px 0;border-bottom:1px solid #d8e6ed;font-size:12px;color:#4b6d7f}
.page-index a{display:inline-flex;align-items:center;gap:20px;padding:12px 22px;min-height:48px}
.page-index .ui-arrow-turn-down{width:1em;height:1em}
.page-index a:is(:focus-visible,:active) .ui-arrow-turn-down{transform:rotate(90deg)}
@media(hover:hover) and (pointer:fine){
  .page-index a:hover .ui-arrow-turn-down{transform:rotate(90deg)}
}
@media(prefers-reduced-motion:reduce){
  .page-index .ui-arrow-turn-down{transition:none}
}
.detail-section{padding:78px 0;border-bottom:1px solid #dde8ed;scroll-margin-top:110px}
.detail-section:last-child{border-bottom:0}
.detail-section h2{font-size:clamp(25px,2.3cqw,34px);line-height:1.6;letter-spacing:.015em}
.detail-section h3{font-size:19px;line-height:1.6;font-weight:600}
.detail-section p,.detail-section li,.detail-section dd{font-size:14px;line-height:2;color:var(--qs-binrojiguro)}
.detail-section p+p{margin-top:18px}
.detail-section .detail-kicker{font-size:11px;margin-bottom:18px;color:#427990}
.detail-section .lead{font-size:16px;max-width:42em;margin-top:24px}
.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;margin-bottom:40px}
.section-heading>p{padding-top:6px}
.feature-row{display:grid;grid-template-columns:64px minmax(180px,.8fr) minmax(0,1.2fr);gap:28px;border-top:1px solid #dce7ed;padding:32px 0}
.feature-row:last-child{padding-bottom:0}
.feature-number{font-size:13px;color:#5f8fa5;letter-spacing:.1em;padding-top:5px}
.feature-row p{margin-top:0}
.feature-row ul{padding-left:1.2em;margin:12px 0 0}
.product-visual{padding:38px;background:#f1f7fa;border-radius:4px;margin:38px 0 0}
.product-visual img{width:100%;border:1px solid #d1e2ea;border-radius:3px}
.product-visual button{display:block;border:0;padding:0;background:transparent;width:100%;cursor:zoom-in}
.product-visual figcaption{font-size:11px;line-height:1.8;color:#658292;margin-top:16px}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.two-column h3{margin-bottom:18px}
.usage-panel{border-top:2px solid #8bb7c9;padding-top:24px}
.usage-panel p+ul{padding-left:1.2em;margin-top:18px}
.detail-note{border-left:3px solid #a8c8d6;padding:18px 22px;background:#f5f9fb;margin-top:32px}
.detail-note h3{font-size:16px;margin-bottom:8px}
.detail-table{width:100%;border-collapse:collapse;text-align:left;margin-top:36px}
.detail-table th,.detail-table td{font-size:14px;line-height:1.9;padding:22px 20px;border-bottom:1px solid #dce7ed;vertical-align:top}
.detail-table th{font-weight:600;width:26%;background:#f5f9fb;color:#294c61}
.detail-table td{color:var(--qs-binrojiguro)}
.process-list{list-style:none;margin:36px 0 0;padding:0;counter-reset:step}
.process-list li{counter-increment:step;position:relative;padding:28px 0 28px 72px;border-top:1px solid #dce7ed}
.process-list li:before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:27px;color:#6d9bb0;font-size:22px;font-weight:300}
.process-list h3{margin-bottom:8px}
.founder-detail{display:grid;grid-template-columns:160px 1fr;gap:42px;margin-top:38px;align-items:center}
.founder-detail img{width:160px;height:160px;object-fit:cover;object-position:50% 28%;border-radius:50%}
.founder-detail h3{font-size:23px;margin:6px 0 14px}
.founder-detail .founder-caption{font-size:11px;letter-spacing:.1em}
.company-facts{display:grid;grid-template-columns:170px 1fr;margin:36px 0 0}
.company-facts dt,.company-facts dd{border-top:1px solid #dce7ed;padding:22px 0;margin:0}
.company-facts dt{font-size:13px;color:#668294}
.company-businesses{list-style:none;margin:0;padding:0}
.company-businesses li+li{margin-top:8px}
.company-details dd,.company-facts dd{min-width:0;overflow-wrap:anywhere}
.company-email{color:var(--qs-binrojiguro);text-decoration:underline;text-underline-offset:4px}
.career-status{margin-top:36px;padding:32px;border:1px solid #d8e6ec;border-radius:4px;max-width:800px}
.career-status .status-label{display:inline-block;font-size:11px;letter-spacing:.07em;color:#4e7d92;background:#edf5f8;padding:5px 12px;margin-bottom:18px}
.career-status h3{margin-bottom:14px}
.detail-faq details{border-top:1px solid #dce7ed}
.detail-faq details:last-child{border-bottom:1px solid #dce7ed}
.detail-faq summary{font-size:15px;line-height:1.8;font-weight:600;list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:25px;padding:24px 0}
.detail-faq summary::-webkit-details-marker{display:none}
.detail-faq details>p{padding:0 38px 24px 0;max-width:65em}
/* Native accordions: one consistent plus/minus control on every page. */
:is(.challenge-list,.faq-list,.detail-faq) details{transition:background-color .25s ease,border-color .25s ease}
:is(.challenge-list,.faq-list,.detail-faq) details[open]{background:var(--qs-warm-tint);border-top-color:var(--qs-yamabuki)}
:is(.challenge-list,.faq-list,.detail-faq) summary{align-items:center;padding:20px;transition:background-color .25s ease;gap:18px}
:is(.challenge-list,.faq-list,.detail-faq) summary::after{content:none}
:is(.challenge-list,.faq-list,.detail-faq) details summary .accordion-icon{position:relative;display:block;width:38px;height:38px;flex:0 0 38px;margin-left:auto;border-radius:50%;background:var(--qs-ai-tint);color:var(--qs-binrojiguro);font-size:0;transform:none;transition:background-color .25s ease}
:is(.challenge-list,.faq-list,.detail-faq) details summary .accordion-icon::before,
:is(.challenge-list,.faq-list,.detail-faq) details summary .accordion-icon::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:currentColor;border-radius:2px;transform:translate(-50%,-50%);transition:transform .25s ease,opacity .25s ease}
:is(.challenge-list,.faq-list,.detail-faq) details summary .accordion-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
:is(.challenge-list,.faq-list,.detail-faq) details[open] summary .accordion-icon::after{transform:translate(-50%,-50%) rotate(0);opacity:0}
:is(.challenge-list,.faq-list,.detail-faq) details[open] summary .accordion-icon,
:is(.challenge-list,.faq-list,.detail-faq) summary:is(:focus-visible,:active) .accordion-icon{background:var(--qs-yamabuki)}
:is(.challenge-list,.faq-list,.detail-faq) summary:focus-visible{outline:2px solid var(--qs-ai);outline-offset:-3px;text-decoration:none;background:var(--qs-warm-tint)}
:is(.challenge-list,.faq-list,.detail-faq) details>p{padding:0 20px 24px;max-width:65em}
.challenge-list details>p{padding-left:54px}
:is(.challenge-list,.faq-list,.detail-faq) details[open]>p{animation:accordion-answer-in .25s ease-out}
@keyframes accordion-answer-in{from{opacity:0}to{opacity:1}}
@media(hover:hover) and (pointer:fine){
  :is(.challenge-list,.faq-list,.detail-faq) summary:hover{background:var(--qs-warm-tint)}
  :is(.challenge-list,.faq-list,.detail-faq) summary:hover .accordion-icon{background:var(--qs-yamabuki)}
}
@media(prefers-reduced-motion:reduce){
  :is(.challenge-list,.faq-list,.detail-faq) details,:is(.challenge-list,.faq-list,.detail-faq) summary,
  :is(.challenge-list,.faq-list,.detail-faq) .accordion-icon,
  :is(.challenge-list,.faq-list,.detail-faq) .accordion-icon::before,
  :is(.challenge-list,.faq-list,.detail-faq) .accordion-icon::after{transition:none!important}
  :is(.challenge-list,.faq-list,.detail-faq) details[open]>p{animation:none}
}
.detail-cta{background:#f3f8fa;margin-top:0;padding:64px 6.5%}
.detail-cta-inner{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:40px}
.detail-cta h2{font-size:clamp(24px,2.5cqw,34px);line-height:1.6}
.detail-cta p{margin-top:14px;font-size:14px;line-height:1.9;color:#527184}
.detail-cta .primary-button{flex-shrink:0;text-align:center}
.email-cta{flex-shrink:0}
.contact-email{display:block;width:fit-content;max-width:100%;margin:18px 0 0;color:inherit;font-size:14px;text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}
.contact-section .contact-email{margin-inline:auto}
.detail-cta .email-help,.contact-section>p.email-help{font-size:12px;line-height:1.8;margin:10px 0 0;color:#fff}
.email-cta .primary-button{white-space:nowrap}
.detail-related{display:flex;flex-wrap:wrap;gap:24px;margin-top:28px}
.detail-page .image-dialog{width:min(1000px,92vw)}
@container(max-width:1120px){
  .header{gap:20px}
  .header-center{display:none}
  .header-actions{margin-left:auto;gap:18px}
  .header .menu-toggle{display:flex}
  .detail-hero{gap:38px}
  .section-heading{gap:36px}
}
@container(max-width:700px){
  .header{gap:12px}
  .header-actions{gap:10px}
  .detail-wrap{width:86%}
  .detail-hero{grid-template-columns:1fr;gap:26px;padding:24px 0 38px}
  .detail-hero h1{font-size:31px}
  .detail-hero .intro{font-size:14px}
  .detail-kicker{font-size:10px;margin-bottom:16px}
  .page-index{gap:8px 20px;font-size:11px}
  .detail-section{padding:45px 0;scroll-margin-top:80px}
  .section-heading,.two-column{grid-template-columns:1fr;gap:24px}
  .section-heading{margin-bottom:28px}
  .feature-row{grid-template-columns:30px 1fr;gap:12px 18px;padding:26px 0}
  .feature-row>div:last-child{grid-column:2}
  .feature-row h3{font-size:18px}
  .product-visual{padding:14px;margin-top:26px}
  .detail-section .lead{font-size:14px}
  .detail-table th,.detail-table td{padding:16px 10px;font-size:12px}
  .detail-table th{width:29%}
  .process-list li{padding-left:48px}
  .founder-detail{grid-template-columns:80px 1fr;gap:20px;align-items:start}
  .founder-detail img{width:80px;height:80px}
  .founder-detail h3{font-size:21px}
  .company-facts{grid-template-columns:95px 1fr}
  .company-facts dd{font-size:13px}
  .career-status{padding:24px}
  .detail-cta{padding:42px 7%}
  .detail-cta-inner{display:block}
  .detail-cta .primary-button{margin-top:26px;font-size:13px}
  .site-footer{padding:42px 7% 24px}
  .footer-inner{grid-template-columns:1fr;gap:32px}
  .footer-inner .brand{font-size:16px;gap:10px}
  .footer-inner .brand img{width:38px;height:38px}
  .footer-statement{margin-top:26px;font-size:30px}
  .site-footer .footer-action{padding:20px 18px;gap:14px}
  .footer-action-copy>span{font-size:20px}
  .footer-action>.ui-arrow{font-size:20px}
  .footer-link-groups{gap:22px;margin-top:30px}
  .footer-end{display:block;margin-top:30px}
  .footer-end details{margin-top:20px}
  .detail-page .reviewbar{padding:7px 12px}
  .detail-page .reviewbar b{display:none}
}

/* Fit the first screen to the actual browser viewport, without cropping text. */
.hero.healthcare-hero{min-height:calc(100svh - var(--site-header-height));display:flex;flex-direction:column;padding-top:clamp(18px,3svh,32px)}
.healthcare-hero-grid{width:100%;flex:1;margin:0 auto;align-items:center}
.care-hero-bottom{width:100%;flex-shrink:0;padding-block:clamp(12px,2svh,25px)}
.care-hero-art.living-care-art{max-width:min(520px,max(220px,calc(100svh - var(--site-header-height) - 170px)))}
.detail-hero{padding-top:clamp(24px,5svh,44px);padding-bottom:clamp(36px,7svh,68px)}
@media(min-width:701px) and (max-height:760px){
  .header{padding-top:16px;padding-bottom:16px}
  .healthcare-hero h1{font-size:clamp(30px,min(3.45cqw,5.8svh),44px);line-height:1.35}
  .healthcare-hero .eyebrow{margin-bottom:16px}
  .healthcare-hero .hero-description{margin-top:18px}
  .healthcare-hero .hero-copy{padding-top:4px;padding-bottom:16px}
  .care-actions{margin-top:18px}
  .care-actions .primary-button{padding-top:14px;padding-bottom:14px}
  .care-availability{margin-top:12px}
  .care-hero-bottom{margin-top:12px;padding-top:12px;padding-bottom:12px}
  .care-hero-art.living-care-art{max-width:min(480px,max(220px,calc(100svh - var(--site-header-height) - 140px)))}
}
@container(max-width:700px){
  .hero.healthcare-hero{min-height:0;padding-top:26px}
  .healthcare-hero-grid{display:grid;flex:none;align-items:start}
  .care-hero-art.living-care-art{max-width:520px}
  .detail-hero{padding-top:24px;padding-bottom:38px}
}

/* Neutral text uses a dense black; size and weight provide hierarchy.
   Accent and reversed text on dark surfaces are defined below. */
.header,.header-center,.header .brand small,.site-menu,.menu-head button,
.site-menu .menu-note,.detail-page,
.healthcare-hero .hero-description,.care-availability,.care-hero-bottom>p,.care-scroll,
.body-copy,.body-copy .purpose-sign,.product-intro,.product-intro p,
.section-index span,.section-sub,.device-gallery figcaption,.asset-note,
.challenge-list details p,.learning-heading>p,.learning-points p,
.answer-example figcaption,.feature-line span,.org-heading p,.org-features p,
.facility-grid p:not(.eyebrow),.track-record,.track-record strong,.track-record small,
.trust-intro>p,.trust-grid p,.steps-grid p,
.company-copy>p:not(.founder-name),.company-refined .company-copy>p,
.founder-name>span,.founder-name small,.founder-role,.founder-bio,
.company dt,.company dd,.faq details p,.preview-disclosure,
.breadcrumbs,.detail-hero .intro,.page-index,
.detail-section p,.detail-section li,.detail-section dd,
.product-visual figcaption,.detail-table th,.detail-table td,.company-facts dt{
  color:var(--qs-binrojiguro);
}
.footer-message,.footer-next h2,.footer-links h2,.footer-end{color:#fff}

/* Japanese traditional colors: white space, Ai, Ginshu, and Yamabuki. */
.purpose,.learning,.steps{background:#fff}
.healthcare-hero h1 em,.detail-hero h1 em{color:var(--qs-ginshu)}
.healthcare-hero .eyebrow,.eyebrow,.eyebrow.light,
.detail-kicker,.detail-section .detail-kicker{color:var(--qs-ginshu)}
.product-name,.hero-description strong{color:var(--qs-binrojiguro)}
.section-index,.feature-number,.process-list li:before,
.steps-grid article>span,.learning-points li>span,
.challenge-list summary>span,.trust-grid article>span{color:var(--qs-ginshu)}
.section-index:before{background:var(--qs-yamabuki)}
.steps-grid article,.usage-panel{border-top-color:var(--qs-yamabuki)}
.detail-note{border-left-color:var(--qs-yamabuki);background:var(--qs-warm-tint)}
.career-status .status-label{color:var(--qs-binrojiguro);background:var(--qs-warm-tint)}
.primary-button{background:var(--qs-binrojiguro);color:#fff;box-shadow:none}
.primary-button:is(:focus-visible,:active){background:var(--qs-yamabuki);color:var(--qs-binrojiguro)}
.contact-link,.contact-link span,.care-secondary,.care-purpose-link,
.page-link,.detail-faq summary:after{color:var(--qs-binrojiguro)}
.contact-link{border-color:var(--qs-binrojiguro)}
.contact-link:is(:focus-visible,:active){background:var(--qs-yamabuki);color:var(--qs-binrojiguro);border-color:var(--qs-yamabuki)}
.header-center a[aria-current=page],.site-menu .menu-grid nav a[aria-current=page]{color:var(--qs-ginshu)}
.header-center a[aria-current=page]{text-decoration-color:var(--qs-ginshu)}
.skip-link{border-color:var(--qs-binrojiguro)}
.product-visual,.detail-table th{background:var(--qs-ai-tint)}

/* Ai provides a distinct chapter for organizational learning. */
.organizations{background:var(--qs-ai);color:#fff}
.organizations .section-index,.organizations .org-features article>span{color:#fff}
.organizations .org-features article>span{text-decoration:underline;text-decoration-color:var(--qs-yamabuki);text-underline-offset:7px}
.organizations .facility-grid .eyebrow{color:var(--qs-yamabuki)}
.organizations .section-index span,.organizations .org-heading p,
.organizations .org-features p,.organizations .facility-grid p:not(.eyebrow),
.organizations .track-record,.organizations .track-record strong,
.organizations .track-record small{color:#fff}
.organizations .org-features article{border-top-color:#ffffff50}
.organizations .facility-grid article{background:var(--qs-ai-dark);border-color:#ffffff40}
.organizations .facility-grid a{color:#fff}
.organizations>.page-link{color:#fff;border-color:transparent}

/* Ginshu marks the invitation to talk; detail pages close with Ai. */
.contact-section{background:var(--qs-ginshu);color:#fff}
.contact-section .eyebrow.light,.contact-section>p:not(.eyebrow),
.contact-section .under-link{color:#fff}
.detail-cta{background:var(--qs-ai);color:#fff}
.detail-cta p{color:#fff}
.contact-section .primary-button,.detail-cta .primary-button{background:#fff;color:var(--qs-binrojiguro)}
.contact-section .primary-button:is(:focus-visible,:active),
.detail-cta .primary-button:is(:focus-visible,:active){background:var(--qs-yamabuki);color:var(--qs-binrojiguro)}
@media(hover:hover) and (pointer:fine){
  .primary-button:hover,.contact-section .primary-button:hover,.detail-cta .primary-button:hover,
  .contact-link:hover{background:var(--qs-yamabuki);color:var(--qs-binrojiguro);border-color:var(--qs-yamabuki)}
}

/* News and case studies share the site's editorial rhythm. */
.editorial-heading{display:flex;align-items:baseline;justify-content:space-between;gap:28px}
.editorial-heading .page-link{flex-shrink:0}
.editorial-list{list-style:none;padding:0;margin:32px 0 0;border-top:1px solid var(--line)}
.editorial-list li{border-bottom:1px solid var(--line)}
.editorial-item{display:grid;grid-template-columns:180px minmax(0,1fr) 28px;gap:32px;align-items:start;padding:28px 0}
.editorial-item h3{font-size:18px;line-height:1.75;overflow-wrap:anywhere}
.editorial-item p{font-size:13px;line-height:1.9;color:var(--qs-binrojiguro);margin-top:10px;overflow-wrap:anywhere}
.editorial-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12px;color:var(--qs-binrojiguro);line-height:1.8}
.editorial-category{font-size:10px;padding:2px 8px;background:var(--qs-warm-tint);color:var(--qs-binrojiguro)}
.editorial-item>.ui-arrow{color:var(--qs-binrojiguro);font-size:23px;justify-self:end}
.editorial-item:is(:hover,:focus-visible) h3{color:var(--qs-ginshu);text-decoration:underline;text-underline-offset:5px}
.editorial-empty{padding:28px 0;margin-top:28px;border-top:1px solid var(--line);font-size:14px;line-height:1.9;color:var(--qs-binrojiguro)}
.home-cases{background:var(--qs-warm-tint)}
.adoption-stats{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:780px;margin-top:42px}
.adoption-stats>div{border-left:3px solid var(--qs-yamabuki);padding-left:28px}
.adoption-stats p{font-size:14px;color:var(--qs-binrojiguro)}
.adoption-stats strong{font-size:clamp(48px,5cqw,72px);line-height:1.3;font-weight:500;color:var(--qs-binrojiguro)}
.adoption-stats strong span{font-size:15px;margin-left:14px}
.editorial-source{font-size:11px!important;color:var(--qs-binrojiguro);margin-top:20px}
.editorial-body{max-width:760px;overflow-wrap:anywhere}
.editorial-body p{margin-top:24px;line-height:2.15}
.editorial-body img{max-width:100%;height:auto;margin-block:24px}
.editorial-body h2,.editorial-body h3,.editorial-body h4{margin:36px 0 18px}
.editorial-body ul,.editorial-body ol{padding-left:1.5em;margin-block:24px}
.editorial-body a{color:var(--qs-binrojiguro);text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.editorial-body a:hover{color:var(--qs-ginshu)}
.editorial-body blockquote{margin:24px 0;padding:12px 24px;border-left:3px solid var(--qs-yamabuki)}
.editorial-body pre{overflow:auto;padding:20px;background:var(--qs-ai-tint)}
.editorial-body table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;margin-block:24px}
.editorial-body th,.editorial-body td{padding:12px;border:1px solid var(--line)}
.editorial-body figure{margin:24px 0}
.editorial-back{padding:30px 0 60px}
.editorial-item .case-organization{color:var(--qs-binrojiguro);margin:0 0 8px;font-weight:600}
.client-brands{margin-top:40px}
.client-brands h3{font-size:16px;margin-bottom:20px}
.client-brands ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:20px;list-style:none;margin:0;padding:0}
.client-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:160px;padding:24px;background:#fff;border:1px solid var(--line);text-align:center}
.client-brand img{width:100%;max-width:200px;height:80px;object-fit:contain}
.client-brand span{font-size:14px;line-height:1.8;color:var(--qs-binrojiguro);overflow-wrap:anywhere;max-width:100%}
.client-brand.name-only span{font-size:18px;font-weight:600}
.detail-hero h1,.detail-hero .intro{overflow-wrap:anywhere}
/* Reserve pill padding at rest so hover never shifts neighbouring links. */
:is(.page-link,.care-secondary,.care-purpose-link,.care-scroll,.facility-grid a,.under-link){display:inline-flex;align-items:center;gap:22px;max-width:100%;padding:14px 22px;border-bottom-color:transparent;background-image:none}
.care-secondary .ui-arrow,.care-purpose-link .ui-arrow{margin-left:0}
.contact-section .under-link{display:flex;width:fit-content;margin-inline:auto}
.site-menu .menu-grid nav a{padding-inline:20px}
:is(a,button):has(>.ui-arrow){border-radius:999px;transition:background-color .35s ease,color .35s ease,border-color .35s ease}
.editorial-item:has(>.ui-arrow){border-radius:24px;padding-inline:22px}
:is(.site,.site-menu,.opening,.page-transition) :is(a,button):has(>.ui-arrow):is(:focus-visible,:active){background-color:var(--qs-yamabuki);color:var(--qs-binrojiguro);border-color:transparent;text-decoration:none}
.editorial-item:is(:focus-visible,:active) h3,.editorial-item:is(:focus-visible,:active) p{color:var(--qs-binrojiguro);text-decoration:none}
@media(hover:hover) and (pointer:fine){
  :is(.site,.site-menu,.opening,.page-transition) :is(a,button):has(>.ui-arrow):hover{background-color:var(--qs-yamabuki);color:var(--qs-binrojiguro);border-color:transparent;text-decoration:none}
  .editorial-item:hover h3,.editorial-item:hover p{color:var(--qs-binrojiguro);text-decoration:none}
}
@media(prefers-reduced-motion:reduce){
  :is(a,button):has(>.ui-arrow){transition:none}
}
@container(min-width:1121px) and (max-width:1450px){
  .header-center{gap:16px}
  .header-center a{font-size:11px}
  .header{gap:22px}
}
@container(max-width:700px){
  .editorial-heading{display:block}
  .editorial-heading .page-link{margin-top:18px;font-size:12px}
  .editorial-item{grid-template-columns:minmax(0,1fr) 24px;gap:12px 16px;padding:22px 0}
  .editorial-item>.editorial-meta{grid-column:1/-1}
  .editorial-item h3{font-size:16px}
  .adoption-stats{gap:20px}
  .adoption-stats>div{padding-left:16px}
  .adoption-stats p{font-size:12px}
}
