html{scrollbar-gutter:stable}
/* V3 presentation. Content is visible without JavaScript or the Motion CDN. */
:root{--paper:#F7F5EF;--green:#215639;--accent:#38A169;--yuima-text:#2F855A;--navy:#1A365D;--kassha:#9B4A2C;--ink:#23392e;--surface:#fffefb;--line:#c6cfc4;--gutter:clamp(24px,6vw,96px);--header-height:96px}
html,body{overflow-x:visible}html{scroll-behavior:auto}body{font-size:16px;line-height:1.9}
a,button,summary,[role=button]{cursor:pointer;min-height:44px;min-width:44px}a{display:inline-block}p a,li a,td a{vertical-align:baseline}button,input,select,textarea{font:inherit}
:is(a,button,summary,[tabindex]):focus-visible,#main :focus-visible,.menu-card:focus-visible{outline:3px solid var(--green);outline-offset:5px}
main p,main li,main dd,main dt,main td,main th,.note,.reading,.eyebrow,.section-number,.section-index,.service-detail,.text-link,.hero-actions,.hero-actions .text-link,.hero-lead,.intro>.note,.intro-bottom>p,.editorial-copy>p,.editorial-copy>.note,.contact>p:not(.eyebrow),.footer-nav,.footer-contact,.footer-contact p,footer small,.footer-nav a,.viewer-hint,.sensor-buttons button,.menu-description,.menu-number,.brand-small,.menu-button{font-size:16px}
.brand-small{font-size:12px;letter-spacing:.05em}.header{height:var(--header-height);padding:16px var(--gutter);border-bottom:1px solid var(--line);background:var(--paper);backdrop-filter:none}
.brand{display:inline-flex}.menu-button{border-radius:4px;letter-spacing:.04em}.footer-nav{display:flex}.footer-contact>a{min-height:44px}
h1,h2,h3{text-wrap:balance}p{ text-wrap:pretty }main h1,main h2,main h3{color:var(--page-text,var(--green))}
.reveal>span,[data-reveal].is-revealed,.menu-ready .menu:not([hidden]) .menu-card{animation:none}
.text-link span,.menu-logo,.menu-arrow,.next-business>span:last-child{transition:none!important;transform:none!important}
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--green);z-index:100;transform:scaleX(0);transform-origin:left;pointer-events:none}
.hero{padding:calc(var(--header-height) + 52px) var(--gutter) 32px;min-height:760px;height:95svh;max-height:1040px}
.hero h1{font-size:clamp(48px,6.7vw,108px);margin-top:44px;line-height:1.22;letter-spacing:-.05em}.hero h1>.reveal{overflow:visible}
.hero-kicker,.hero-kicker span+span{font-size:16px;letter-spacing:.08em}.hero-model{top:25%;right:4%;height:48%}.hero-lead{max-width:540px}.hero-bottom{gap:40px}.hero-actions{width:260px;flex-shrink:0}.hero-actions>a:last-child{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:var(--paper);padding:12px 20px;margin-top:12px;border-radius:4px;min-height:52px}.hero-rule{font-size:12px}
.trust-proof{position:relative;z-index:5;background:var(--paper);padding:56px var(--gutter);border-block:1px solid var(--line)}.trust-grid{display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:20px}.trust-card{min-width:0;background:var(--surface);padding:28px;border:1px solid var(--line);border-top:3px solid var(--green);border-radius:4px}.trust-card h2{font:700 20px/1.5 'Noto Serif JP',serif;margin-bottom:16px}.trust-credential{display:flex;flex-direction:column;gap:20px;align-items:flex-start}.trust-credential img{width:88px;height:88px;object-fit:contain}.trust-card p+p{margin-top:16px}.trust-card dl{margin:20px 0}.trust-card dt{font-weight:700}.trust-card dd{margin:0 0 16px}.trust-card dd span,.trust-card time{display:block}.trust-card time{font-size:16px;color:#425947}
.intro{padding:80px var(--gutter);min-height:0}.intro>.note{max-width:600px}.intro-bottom{margin-top:60px;gap:48px}.intro h2{font-size:clamp(32px,4vw,56px)}
.service{margin:0 var(--gutter) 32px;padding:0 40px;min-height:650px;height:85svh;max-height:850px;border:1px solid var(--line);border-top:3px solid var(--business);border-radius:6px}.service-layout{grid-template-columns:48% 44%;column-gap:8%}.service-title h2{color:var(--business-text);font-size:clamp(48px,6vw,84px)}#yuima{--business-text:var(--green)}#yuima .service-title h2{color:var(--green)}#yuima .section-number,#yuima .reading,#yuima .service-baseline{color:var(--green)}.service-copy{max-width:520px;font-size:16px}.service-baseline{font-size:14px}
:is(.menu-card,.trust-card,.wall-card,.guide-cta-grid>div,.editorial-rows>li,.service){transition:box-shadow var(--motion-short) var(--motion-out)}
:is(.menu-card,.trust-card,.wall-card,.guide-cta-grid>div,.editorial-rows>li,.service):is(:hover,:focus-within){box-shadow:0 12px 32px #21563914}
a:active,button:active,summary:active{box-shadow:inset 0 0 0 2px currentColor}.text-link{display:flex;font-size:16px}.menu-card{display:grid;background:var(--surface)}.menu-card--yuima .menu-name{color:var(--green)}.menu-card--utility{gap:12px;padding:20px}.menu-card--business{padding:24px}
.editorial,.page-section{padding:88px var(--gutter)}.page-title{padding:calc(var(--header-height) + 64px) var(--gutter) 72px}.page-title h1{font-size:clamp(36px,5.5vw,80px)}.business-hero{padding:calc(var(--header-height) + 64px) var(--gutter) 72px;min-height:760px}.business-heading h1{font-size:clamp(56px,7.5vw,112px)}body[data-page=yuima]{--page-text:var(--green)}
.editorial-rows>li,.flow-agent>div{padding:28px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--page-accent);margin-bottom:20px;border-radius:4px}.editorial-rows{margin-top:24px}.page-contact,.contact,.guide-cta{background:#e8eee3;border-top:1px solid var(--line);padding:80px var(--gutter)}.contact-links{margin-top:32px}.contact .email{display:block}.page-contact-links .text-link,.guide-button{padding:12px 20px;background:var(--green);color:var(--paper);border:1px solid var(--green);border-radius:4px}.next-business{display:grid}.company-table th{font-size:16px}.section-index{font-size:16px}.direct-contact{padding-inline:var(--gutter)}
.guide-v2 .guide-hero h1{font-family:'Noto Serif JP',serif}.guide-v2 .guide-hero picture{border-radius:6px;overflow:hidden}.guide-v2 :is(.guide-help,.guide-lead,.wall-summary,.wall-step,.guide-note,.guide-related,.guide-notes,.guide-cta-grid p){font-size:16px}.guide-v2 .guide-badge{border-block:1px solid var(--line);padding-block:24px}.guide-cta-grid>div{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:4px}.wall-grid.is-enhanced .wall-body{transition:none}.guide-button[aria-disabled=true]{background:#e5e7df;color:var(--ink);opacity:1}
/* Calm, readable data page; original globe and its controls remain intact. */
body[data-page=ai]{background:var(--paper)}body[data-page=ai] main{--terminal-color:var(--green);background:var(--paper);color:var(--ink);font:16px/1.9 'Noto Sans JP',sans-serif;text-shadow:none;padding:calc(var(--header-height) + 48px) var(--gutter) 64px}
body[data-page=ai] #main :is(.page-title,.ai-panel,.page-section){background:transparent;color:var(--ink);padding:40px 0;border-bottom:1px solid var(--line)}
body[data-page=ai] #main :is(.page-title,.ai-panel,.page-section)::before,body[data-page=ai] #main::after,body[data-page=ai] #main :is(h1,h2,h3)::before,.ai-code{display:none}
body[data-page=ai] #main :is(h1,h2,h3){font-family:'Noto Serif JP',serif;color:var(--green);font-size:24px;line-height:1.6}body[data-page=ai] #main h1{font-size:clamp(40px,6vw,80px)}body[data-page=ai] #main :is(p,li,dt,dd,th,td,time,.eyebrow,.section-index,dd span){font-size:16px}.ai-panel dl>div{padding:12px 0;border-bottom:1px solid var(--line)}.ai-panel dt::after,.ai-panel dd::before{content:none}.ai-links a{min-height:44px}.ai-links a::before{content:none}.ai-links p{margin-left:0}.ai-faq summary{min-height:52px}.ai-faq p{max-width:880px}
body[data-page=ai] #main .threat-sample{background:#eee7d5;color:var(--ink)}body[data-page=ai] #main .threat-summary h3{color:var(--green)}body[data-page=ai] #main .threat-total{font-size:48px;color:var(--green)}body[data-page=ai] #main .threat-controls button{color:var(--green);background:var(--surface);min-height:44px}.threat-map th:last-child,.threat-map td:last-child{width:88px}.threat-stage:focus-visible{outline:3px solid var(--green)}
@media(max-width:1024px){.trust-grid{grid-template-columns:1fr 1fr}.trust-card:last-child{grid-column:1/-1}.hero-bottom{gap:24px}.hero-lead{max-width:55%}.intro-bottom{gap:32px}.menu-utilities{grid-template-columns:1fr 1fr}}
@media(max-width:768px){:root{--header-height:88px}.header{padding-inline:24px}.brand{font-size:22px}.menu-button{font-size:14px;padding-inline:14px;gap:12px}.hero{height:auto;max-height:none;min-height:0;padding-top:124px}.hero h1{width:100%;font-size:clamp(38px,9.6vw,72px);margin-top:28px}.hero-kicker{flex-wrap:wrap;gap:8px}.hero-kicker,.hero-kicker span+span{font-size:14px}.hero-model{top:auto;right:auto;height:260px;min-height:240px;flex-basis:240px}.hero-lead{max-width:100%}.hero-actions{width:100%;display:flex;align-items:stretch;gap:12px;flex-direction:column}.hero-actions>a:last-child{margin:0}.trust-proof{padding-block:36px}.trust-grid{grid-template-columns:1fr}.trust-card:last-child{grid-column:auto}.trust-card{padding:24px}.trust-credential{flex-direction:row;align-items:center}.trust-credential img{flex-shrink:0}.intro{padding-block:56px}.intro-bottom{margin-top:36px}.service{margin-bottom:24px;padding:0 24px 72px;height:auto;min-height:0;max-height:none}.service-layout{padding-top:36px}.service-model{height:280px;min-height:220px}.service-copy .text-link{max-width:none}.service-title h2{font-size:48px}.service-baseline{bottom:24px}.editorial,.page-section{padding-block:56px}.business-hero{min-height:0;padding-top:128px}.business-model{height:280px}.page-title{padding-top:136px}.editorial-rows>li{padding:24px}.contact,.page-contact,.guide-cta{padding-block:56px}.menu-utilities{grid-template-columns:1fr}.menu-card--business{padding:20px 16px}.menu-card--utility{padding:18px 16px}.menu-name{font-size:28px}.menu-description{font-size:16px}.ai-panel dl>div{grid-template-columns:1fr;gap:4px}.ai-faq p{padding-left:0}.guide-hero picture{grid-row:auto}.guide-hero h1{font-size:32px}.trust-card dd{overflow-wrap:anywhere}.footer-contact{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scroll-progress{transform:scaleX(1)!important}[data-motion-target],.motion-line{opacity:1!important;transform:none!important}}
/* Minimum reading size also applies to inherited interior-page microcopy. */
body main :is(p,li,dd,dt,td,th):not(.threat-total){font-size:max(16px,1em)}
body main .etymology,body main .line-name,body main .menu-facts dt,body main .direct-contact>a>span{font-size:16px}
body[data-page=yuima] .reading,body[data-page=yuima] .section-index{color:var(--yuima-text);background:var(--surface);width:fit-content;padding:2px 8px}

/* Reserve real logo space; the renderer fits the full rotating solid into this slot. */
.scene-stage{width:100%;height:100%;overflow:visible}
.hero,.service-model,.business-model{overflow:visible}
.hero-model{min-height:260px}
@media(max-width:768px){.hero-model{left:auto;width:100%;flex:0 0 260px}}

/* Tool names: identical lists keep the scrolling loop seamless. */
.tools-band{position:relative;z-index:5;min-width:0;max-width:100%;background:var(--paper);color:#215639}
.tools-marquee{width:100%;max-width:100%;overflow:hidden;border-block:1px solid var(--line);padding-block:32px}
.tools-track{display:flex;width:max-content;animation:tools-marquee 40s linear infinite}
.tools-list{display:flex;flex:none;align-items:center;gap:32px;list-style:none;margin:0;padding:0 32px 0 0}
.tools-list>li{display:flex;flex:none;align-items:center;padding:0;margin:0}
.tool-logo{display:inline-flex;align-items:center;height:32px;color:inherit;opacity:.75;white-space:nowrap}
.tool-logo:hover{opacity:1}
.tool-symbol{display:block;width:32px;height:32px;background:currentColor;-webkit-mask:var(--tool-icon) center/contain no-repeat;mask:var(--tool-icon) center/contain no-repeat}
.tool-wordmark{font:500 30px/32px Arial,Helvetica,sans-serif;letter-spacing:-.035em}
.tools-marquee:hover .tools-track,.tools-band.is-user-paused .tools-track{animation-play-state:paused}
.tools-controls{display:flex;justify-content:flex-end;padding:8px var(--gutter)}
.tools-pause{min-height:44px;padding:6px 16px;border:1px solid var(--line);border-radius:24px;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer}
.tools-pause[aria-pressed="true"]{background:#e7ece3}
.tools-pause:focus-visible{outline:2px solid #215639;outline-offset:2px}
body main p.tools-note{margin:0;padding:12px var(--gutter) 16px;font-size:12px;line-height:1.7;color:#215639;opacity:.65}
@keyframes tools-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
  .tools-track{animation:none;transform:none;width:100%}
  .tools-list{flex:1;min-width:0;flex-wrap:wrap;justify-content:center;gap:24px 40px;padding:0 var(--gutter)}
  .tools-list--duplicate{display:none}
  .tools-controls{display:none}
}

footer .shortcut-toggle{font:inherit;font-size:16px;color:inherit;background:transparent;border:0;padding:8px 0;min-height:44px;text-align:left}
