/* Independent motion, navigation and the three-stage story. */
:root{--paper:#f2f2f2;--ink:#333;--brand:#cd1321;--motion-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth}body{margin:0}button{font:inherit}button:focus-visible{outline:2px solid currentColor;outline-offset:6px}a{touch-action:manipulation}body.menu-open{overflow:hidden}
.main-header{position:fixed;left:48px;top:32px;z-index:30;color:var(--ink);transition:color .35s;pointer-events:none}.main-header>*{pointer-events:auto}.brand{display:block;width:232px;height:24px;background:currentColor;mask:url('./assets/logo.svg') center/contain no-repeat;-webkit-mask:url('./assets/logo.svg') center/contain no-repeat;color:inherit}.desktop-nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:30px;font-family:'Open Sans',sans-serif;font-size:16px;line-height:22px;letter-spacing:5px;font-style:italic;font-weight:600;transition:opacity .3s,transform .3s}.desktop-nav a,.desktop-nav button{color:inherit;text-decoration:none}.desktop-nav button{border:0;padding:0;background:none;cursor:pointer;letter-spacing:inherit;font-style:inherit;line-height:inherit}.desktop-nav sup{vertical-align:super;font-size:8px;letter-spacing:0;margin-left:1px}.nav-submenu{padding:10px 0 0 15px}.nav-submenu:not([hidden]){display:flex;flex-direction:column;gap:12px}.nav-submenu a{font-size:12px;letter-spacing:2px}.desktop-nav a:hover,.desktop-nav button:hover{opacity:.55}
.menu-toggle{display:none;align-items:center;justify-content:space-between;gap:22px;cursor:pointer;border:0;background:var(--paper);color:var(--ink);padding:8px 15px;border-radius:2px;height:32px;margin-top:16px}.menu-toggle span{font:italic 13px 'Open Sans',sans-serif;letter-spacing:4px}.menu-toggle i,.menu-toggle i:before{width:25px;height:1px;background:currentColor;display:block;position:relative}.menu-toggle i:before{content:'';position:absolute;top:5px;width:17px}.main-header.is-compact .desktop-nav{display:none}.main-header.is-compact .menu-toggle{display:flex}.main-header.is-light{color:var(--paper)}
.menu-panel{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--ink);color:var(--paper);overflow-y:auto;overscroll-behavior:contain;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.menu-panel::backdrop{background:var(--brand)}.menu-panel[open]{animation:menu-wipe .75s cubic-bezier(.27,0,.51,1) both}.menu-panel.is-closing{animation:menu-wipe-out .5s cubic-bezier(.27,0,.51,1) both}.menu-inner{padding:32px 48px 60px;min-height:100%;box-sizing:border-box}.menu-close{position:absolute;top:24px;right:42px;width:48px;height:40px;background:transparent;border:0;color:inherit;cursor:pointer}.menu-close:before,.menu-close:after{content:'';position:absolute;top:20px;left:6px;width:40px;height:2px;background:currentColor;transform:rotate(32deg)}.menu-close:after{transform:rotate(-32deg)}.menu-links{display:grid;grid-template-columns:1fr 1fr;gap:40px 100px;max-width:850px;margin:70px auto 0}.menu-links>div{display:flex;flex-direction:column;gap:14px}.menu-links a{color:inherit;text-decoration:none;font:600 italic 22px/1.4 'Open Sans',sans-serif;letter-spacing:5px}.menu-links p{font:600 italic 13px/1.4 'Open Sans',sans-serif;letter-spacing:5px;opacity:.5;margin:0}.menu-links a:hover{opacity:.55}.menu-social a{font-size:14px}.menu-panel[open] .menu-links>div{animation:menu-content .65s .35s both}.menu-panel[open] .menu-links>div:nth-child(2){animation-delay:.42s}.menu-panel[open] .menu-links>div:nth-child(3){animation-delay:.49s}.menu-panel[open] .menu-links>div:nth-child(4){animation-delay:.56s}
.page-intro{display:none;position:fixed;inset:0;z-index:100;background:#f5f5f5;pointer-events:none;overflow:hidden}.page-intro.is-running{display:block}.intro-vector{height:100%;width:100%}.page-intro.is-leaving{animation:intro-out .8s cubic-bezier(.27,0,.51,1) forwards}@keyframes intro-out{to{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}@keyframes menu-wipe{from{clip-path:polygon(0 0,0 0,0 100%,0 100%)}to{clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}@keyframes menu-wipe-out{to{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}@keyframes menu-content{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.motion-ready [data-reveal]{opacity:0;transform:translateY(40px);transition:opacity .85s var(--motion-ease),transform 1.05s var(--motion-ease)}.motion-ready [data-reveal].is-visible{opacity:1;transform:none}.motion-ready [data-reveal="fade"]{transform:none}[data-vector="circles"]{height:100%;width:100%;line-height:0}[data-vector="circles"] svg{overflow:visible}
.about-story{height:500vh;width:100%;position:relative;flex:none;color:var(--paper);background:var(--brand)}.about-stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-columns:2.05fr 1fr;column-gap:20px;padding:0 48px;isolation:isolate;overflow:hidden}.about-background{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover}.about-visual{position:relative;height:100%;min-width:0;display:flex;justify-content:center;align-items:center}.about-arrows{width:75%;height:auto;max-height:86%;object-fit:contain;transition:opacity .55s,transform .9s var(--motion-ease);transform:rotate(var(--arrow-turn,0deg))}.about-vector{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .55s}.about-vector svg{overflow:visible}.about-stage[data-step="1"] .about-arrows,.about-stage[data-step="2"] .about-arrows{opacity:0;transform:scale(.9)}.about-stage[data-step="1"] [data-kind="approach"],.about-stage[data-step="2"] [data-kind="culture"]{opacity:1}.about-copy{position:relative;padding:80px 0 50px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.about-heading h2{font:600 36px/1.2 'Open Sans',sans-serif;letter-spacing:5px;margin:0}.about-heading .eyebrow{font:600 16px/1 'Open Sans',sans-serif;letter-spacing:5px;margin:32px 0 0}.about-body h3{font:700 clamp(24px,2.25vw,36px)/1.5 'Noto Sans JP',sans-serif;margin:0 0 32px}.about-body>p{font:700 clamp(15px,1.36vw,20px)/1.5 'Noto Sans JP',sans-serif;margin:36px 0 42px;letter-spacing:.02em;min-height:4.5em}.about-rule{height:1px;background:#ffffff80;position:relative}.about-rule:before{content:'';display:block;width:40px;height:4px;background:var(--paper);position:relative;top:-1px}.action-link{width:200px;min-height:48px;padding:9px 16px;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;background:var(--paper);color:var(--brand);border-radius:8px;text-decoration:none;font:700 italic 18px/1.05 'Open Sans',sans-serif;letter-spacing:5px;transition:background .25s,color .25s,transform .25s}.action-link:hover{background:var(--brand);color:var(--paper);box-shadow:inset 0 0 0 1px currentColor}.action-link>span:last-child{letter-spacing:0;font:24px/1 sans-serif;transition:transform .25s}.action-link:hover>span:last-child{transform:translateX(4px)}.about-progress{position:absolute;right:0;top:40px;display:flex;flex-direction:column;justify-content:space-between;height:170px;width:10px;margin:0;padding:0;list-style:none}.about-progress:before{content:'';position:absolute;top:5px;bottom:5px;left:4px;width:1px;border-left:1px dashed #ffffff80}.about-progress li{width:10px;height:10px;position:relative}.about-progress button{position:absolute;inset:-10px;width:30px;height:30px;padding:10px;background:none;border:0;cursor:pointer}.about-progress button:after{content:'';display:block;width:10px;height:10px;background:#ffffff55;border-radius:100%;box-sizing:border-box;transition:background .3s,box-shadow .3s}.about-progress button[aria-current]:after{background:var(--brand);box-shadow:0 0 0 3px var(--paper)}
/* Statically exported content keeps its measured responsive layout. */
.site-1o7m7z6{pointer-events:none}.site-108hu7h{text-decoration:none}.site-13bd0j1 video{pointer-events:none}a[href^="https"]{cursor:pointer}
@media(max-width:939.98px){.main-header{left:20px;top:22px;right:20px;display:flex;justify-content:space-between;align-items:flex-start}.brand{width:232px;height:24px}.desktop-nav{display:none}.menu-toggle,.main-header.is-compact .menu-toggle{display:flex;margin:0;background:none;padding:0;width:40px;height:22px;color:inherit}.menu-toggle span{display:none}.menu-toggle i,.menu-toggle i:before{width:40px;height:1.5px}.menu-toggle i:before{width:24px;top:9px}.menu-inner{padding:22px 20px 54px}.menu-close{top:12px;right:16px}.menu-links{display:flex;flex-direction:column;gap:32px;margin:38px 20px 0}.menu-links>div{gap:10px}.menu-links a{font-size:20px;line-height:1.25;letter-spacing:5px}.menu-links p{margin:0 0 4px;font-size:13px}.menu-links .menu-social{gap:16px}.menu-social a{font-size:14px}.about-stage{padding:0 20px;grid-template-columns:1fr;grid-template-rows:46% 54%;gap:0}.about-visual{grid-row:1;grid-column:1;padding-top:60px}.about-copy{grid-row:2;grid-column:1;display:block;padding:12px 0 24px}.about-arrows{width:75%;height:100%;max-height:none}.about-heading{position:absolute;top:calc(-85.2svh + 22px);left:0;pointer-events:none;display:none}.about-heading h2{font-size:24px}.about-heading .eyebrow{font-size:11px;letter-spacing:4px;margin-top:12px}.about-copy:before{content:attr(data-heading);display:block;font:600 24px/1.2 'Open Sans',sans-serif;letter-spacing:4px;margin-bottom:18px}.about-body h3{font-size:23px;line-height:1.45;margin:0 0 18px}.about-body>p{font-size:14px;line-height:1.65;margin:20px 0 24px;min-height:0}.about-rule:before{width:30px}.about-progress{top:18px;right:4px;height:82px;transform:scale(.75);transform-origin:top right}.action-link{font-size:14px;letter-spacing:4px;min-height:42px;width:190px}.about-vector{inset:30px -20px -30px}.about-background{background-position:center}.about-body .action-link{min-height:40px}}
@media(max-width:420px) and (max-height:750px){.about-stage{grid-template-rows:37% 63%}.about-body h3{font-size:20px;margin-bottom:14px}.about-body>p{font-size:13px;margin:15px 0}.about-copy:before{font-size:21px;margin-bottom:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}.motion-ready [data-reveal]{opacity:1;transform:none}.about-arrows{transform:none!important}[data-name="s-img"]{transform:none!important}}

/* Composite the source texture over the brand red, as in the reference. */
.about-stage{background:var(--brand)}.about-background{mix-blend-mode:multiply;z-index:0}.about-visual{z-index:2;pointer-events:none}.about-copy{z-index:3}.about-arrows{transform:none}.about-vector{inset:0;width:100%;height:100%;z-index:1}.about-stage[data-step="1"] .about-arrows,.about-stage[data-step="2"] .about-arrows{transform:none}

.menu-social span{font:600 italic 14px/1.25 'Open Sans',sans-serif;letter-spacing:5px}

.section-wipe{position:absolute;inset:0 0 auto;height:100svh;background:var(--brand);z-index:8;pointer-events:none;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.section-wipe.is-done{animation:section-wipe 1s cubic-bezier(.27,0,.51,1) forwards}@keyframes section-wipe{to{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}
@media(prefers-reduced-motion:reduce){.section-wipe{display:none}}

@media(max-width:939.98px){.about-heading{display:block;position:static;pointer-events:auto}.about-heading h2{font-size:24px;line-height:1.2;letter-spacing:4px;margin:0 0 18px}.about-heading h2 br{display:none}.about-heading .eyebrow{display:none}.about-copy:before{display:none}}
@media(max-width:420px) and (max-height:750px){.about-heading h2{font-size:21px;margin-bottom:14px}}
/* Measured scenes retain their source geometry; native controllers mount them. */
#navigation-root [role=button]{cursor:pointer}#navigation-root [role=button]:focus-visible{outline:2px solid currentColor;outline-offset:5px}.navigation-submenu{display:flex;flex-direction:column;gap:12px;padding:12px 0 8px 16px;font:600 italic 12px/1.5 'Open Sans',sans-serif;letter-spacing:2px}.navigation-submenu a{color:inherit;text-decoration:none}
[data-vector="circles"]{line-height:0}#about [data-scene-vector] svg{display:block}.page-intro.is-running{background:transparent}
#about{height:500vh;position:relative}#about>#vision-mission{position:sticky;top:0;height:100vh;width:100%;transition:opacity .3s}
.site-xMtR4:not(.site-v-1xpk5em){background-image:linear-gradient(135deg,#cd1321 0%,#f2f2f2 0%,#f2f2f2 100%)}
#about>#vision-mission{transition:opacity .4s cubic-bezier(.44,0,.56,1)}


@media(prefers-reduced-motion:reduce){#about>#vision-mission,.site-up90a7,.site-1e2yggp{transition:none}}

/* First paint and opening layers follow the published timeline. */
html.intro-locked,html.intro-locked body{overflow:hidden!important}
html.intro-pending #navigation-root,html.intro-pending .site-7cx3ro,html.intro-pending .site-iu8ayr,html.intro-pending .site-opr1dg{opacity:.001}
html.intro-pending .page-intro{display:block;background:rgb(245,245,245)}
.intro-backdrop{position:absolute;inset:0;z-index:1;background:rgb(245,245,245)}
.intro-vector{position:relative;z-index:3}

.page-intro.is-running{display:flex;align-items:center;justify-content:center;flex-direction:column}
@media(min-width:810px){.intro-vector{flex:none;aspect-ratio:1/1;height:auto;width:100%}}
.intro-vector{overflow:hidden;will-change:transform}
.intro-vector>svg{display:block}

/* The statement changes to paper text when the About scene enters. */


/* Native text wrappers preserve the original flex text geometry. */
[data-text-container]{outline:none;flex-direction:column;flex-shrink:0;justify-content:flex-start;display:flex}

/* The source fades both the red Service cover and its multiply image over 350ms. */
.native-service-cover{position:absolute;top:0;left:0;width:100%;height:100vh;z-index:7;pointer-events:none}
.native-service-cover .site-rFkPC{position:relative;display:flex;align-items:flex-start;justify-content:center;overflow:clip;gap:0;padding:0}
.native-service-cover .site-alurkq{flex:1 0 0px;height:100%;width:1px;position:relative;overflow:clip;mix-blend-mode:multiply;pointer-events:none;z-index:0}
@media(max-width:809.98px){.native-service-cover{display:none}}

/* The statement owns its color interpolation; avoid a second CSS transition. */
@media(prefers-reduced-motion:reduce){.site-8p68df-container,.site-8p68df-container *{transition:none!important}}

/* Header motion is owned by the navigation controller. */
@media(prefers-reduced-motion:reduce){#navigation-root,#navigation-root::before,#navigation-root::after,#navigation-root *,#navigation-root *::before,#navigation-root *::after{transition:none!important}}

/* About background opacity is animated by the scene controller. */
@media(prefers-reduced-motion:reduce){#about .site-7hagpv,#about .site-1fip0um,.native-service-cover,.native-service-cover *, .site-1o7m7z6,.site-1o7m7z6 *{transition:none!important}}

/* Scene motion is controlled by its measured JS and browser animation curves. */
@media(prefers-reduced-motion:reduce){#about *,#about *::before,#about *::after{transition:none!important}}
