/* Inter の @font-face は削除（ファイル同梱なし・未使用）。本文フォントは下部 --font-body を参照 */
:root{--paper:#f5f5f3;--ink:#191a18;--muted:#686b65;--line:#d5d7d1;--page:min(88%,1440px);--gutter:clamp(20px,2.5vw,40px);--space:clamp(80px,9vw,144px);--ease:cubic-bezier(.22,1,.36,1);--mono:'SFMono-Regular',Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body,ui-sans-serif,system-ui,sans-serif);-webkit-font-smoothing:antialiased;font-kerning:normal}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #7c8973;outline-offset:6px}::selection{background:#d1dac9}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}p{font-size:16px;line-height:1.95}img{display:block;max-width:100%}header{width:var(--page);margin:auto;height:96px;display:flex;align-items:center;justify-content:space-between;gap:24px}.logo{font-size:28px;letter-spacing:-1.8px;font-weight:700;line-height:1}.header-label{font-family:var(--mono);font-size:12px;letter-spacing:.08em;line-height:1.6}
/* The headline is one composition; the photograph is its own wide plane. */
.hero{width:var(--page);margin:0 auto;padding:44px 0 0;position:relative}.hero-copy{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:start;padding:0 0 56px}.hero h1{display:contents}.hero-metric{grid-column:1/7;grid-row:1/3;display:flex;align-items:baseline;gap:18px;font-size:clamp(160px,23.4vw,365px);font-weight:700;letter-spacing:-.095em;line-height:.91;white-space:nowrap;padding-bottom:5px}.hero-unit{font-size:.18em;letter-spacing:-.065em;font-weight:400}.hero-message{grid-column:7/13;grid-row:1;font-size:clamp(28px,3vw,48px);font-weight:700;letter-spacing:-.045em;line-height:1.55;align-self:start;padding-top:18px}.hero-copy>p{grid-column:7/13;grid-row:2;font-size:16px;line-height:1.85;max-width:430px;color:#555951;margin-top:30px}.hero-photo{height:clamp(320px,38vw,560px);overflow:hidden;position:relative;background:#deded9}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 56%;animation:photo-in 2.6s var(--ease) both,breathing 28s ease-in-out 2.6s infinite alternate}.photo-caption{display:flex;justify-content:space-between;gap:24px;padding:16px 0 40px;font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--muted)}
.section{width:var(--page);margin:0 auto;padding:var(--space) 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);border-top:1px solid var(--line)}.section-label{grid-column:1/4;min-width:0;font-size:clamp(27px,2.8vw,44px);font-weight:700;line-height:1.5;letter-spacing:-.04em}.label-index{display:block;font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.05em;line-height:1.6;color:var(--muted);margin-bottom:22px}.section-body{grid-column:4/13;min-width:0}.section h2:not(.section-label){font-size:clamp(30px,3.5vw,54px);line-height:1.55;letter-spacing:-.04em;margin-bottom:56px}.note{font-size:12px;line-height:1.85;color:var(--muted);margin-top:32px}
/* A single inverted section establishes the evidence as a distinct chapter. */
.performance{width:100%;padding:80px max(6%,calc((100% - 1440px)/2));background:var(--ink);color:var(--paper);border:0;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:64px;--line:#41433e;--muted:#b4b8ae}.performance .section-label{grid-column:1/-1;display:flex;flex-direction:row-reverse;align-items:baseline;justify-content:space-between;gap:24px;font-size:40px}.performance .label-index{margin:0}.performance .section-body{grid-column:1/-1}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter)}.stat{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--line);padding-top:24px}.stat-kicker{font-size:12px;line-height:1.75;color:var(--muted);min-height:42px;margin-bottom:20px}.stat-value{display:flex;align-items:baseline;gap:5px;font-size:clamp(50px,6.6vw,100px);font-weight:400;letter-spacing:-.065em;white-space:nowrap;line-height:1.1;font-variant-numeric:tabular-nums}.stat-value small,.stat-unit{font-size:22px;font-weight:400;letter-spacing:-.04em}.stat-desc{font-size:14px;line-height:1.85;margin-top:24px;color:#e3e5dd;flex:1}.performance .note{margin-top:48px;max-width:920px}
.services{border-top:0}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);margin-top:64px}.service{border-top:1px solid var(--ink);padding-top:24px;display:flex;flex-direction:column;min-width:0}.micro{font-family:var(--mono);font-size:12px;letter-spacing:.07em;line-height:1.6;color:var(--muted)}.service h3{font-size:clamp(22px,2vw,30px);letter-spacing:-.04em;line-height:1.6;margin:28px 0 24px}.service p{font-size:16px;line-height:1.95;color:#4d5149}.service .spec{font-size:12px;line-height:1.9;color:var(--muted);margin-top:auto;padding-top:24px}.match-table{margin-top:64px}.table-head,.match-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);padding:24px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.85}.table-head{font-size:12px;color:var(--muted);padding-top:0;padding-bottom:16px;border-color:var(--ink)}.match-row strong{font-weight:700}.match-row>span{color:#555a50}.materials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter);font-size:12px;line-height:1.9;margin-top:28px;color:var(--muted)}.materials strong{color:var(--ink)}
.nature{height:clamp(220px,24vw,360px);overflow:hidden;position:relative}.nature img{width:100%;height:125%;object-fit:cover;position:absolute;top:-12.5%;will-change:transform}.story{width:var(--page);margin:0 auto;padding:var(--space) 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:start}.story-image{grid-column:1/6;aspect-ratio:4/5;overflow:hidden;position:sticky;top:40px}.story-image img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}.story-image:hover img{transform:scale(1.035)}.story-copy{grid-column:7/13;min-width:0}.story h2{font-size:clamp(25px,2.55vw,39px);line-height:1.65;letter-spacing:-.05em;margin:0 0 40px}.story p{font-size:16px;line-height:1.95;color:#4d5149;margin-bottom:24px}.story-foot{border-top:1px solid var(--line);padding-top:24px;margin-top:36px;font-size:12px;line-height:2;color:var(--muted)}.story-kicker{margin-bottom:24px}
.team-intro{font-size:clamp(18px,1.6vw,23px);line-height:1.95;letter-spacing:-.02em;max-width:830px}.people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);margin-top:48px}.person{border-top:1px solid var(--line);padding-top:24px;min-width:0;display:flex;flex-direction:column;gap:24px;font-size:24px;font-weight:700;letter-spacing:-.04em}.person-index{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}.person small{display:block;font-size:12px;font-weight:400;letter-spacing:0;line-height:1.8;color:var(--muted);margin-top:12px}.flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--gutter)}.step{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:16px;border-top:1px solid var(--line);padding:28px 0;position:relative}.step:last-child{grid-column:1/-1;border-bottom:1px solid var(--line)}.step-num{font-size:30px;font-weight:400;line-height:1.2;letter-spacing:-.055em;color:var(--muted)}.step-name{font-size:16px;line-height:1.85}.step-name br{display:none}.faq-list{border-top:1px solid var(--ink)}details{border-bottom:1px solid var(--line)}summary{font-size:18px;line-height:1.8;list-style:none;cursor:pointer;padding:27px 45px 27px 0;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:0;top:23px;font-size:26px;font-weight:400;transition:transform .3s}details[open] summary:after{transform:rotate(45deg)}details p{font-size:16px;line-height:1.95;max-width:680px;padding-right:32px;margin:0 0 30px;color:var(--muted)}details[open] p{animation:enter .45s var(--ease)}
.contact{background:#e9eae5;padding:80px 0 0}.contact-inner{width:var(--page);margin:auto;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}.contact-inner>div{grid-column:1/6}.contact form{grid-column:7/13;min-width:0}.contact h2{font-size:clamp(30px,3vw,46px);line-height:1.55;letter-spacing:-.045em;margin-bottom:24px}.contact p{font-size:12px;line-height:1.85;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px var(--gutter)}.field{display:block;min-width:0}.field-label{display:block;font-size:14px;color:#555a50;margin-bottom:12px;line-height:1.7}input,textarea{width:100%;min-width:0;height:52px;border:0;border-bottom:1px solid #b8bdb1;border-radius:0;background:transparent;font-size:16px;color:var(--ink);padding:12px 0}input::placeholder,textarea::placeholder{color:#74796e}textarea{resize:vertical;min-height:52px}.form-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;min-height:54px;padding:16px 24px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:14px;cursor:pointer;transition:background .3s}.button:hover{background:#40443b}.button span{transition:transform .3s}.button:hover span{transform:translate(3px,-3px)}.form-note{font-size:12px;line-height:1.8;color:var(--muted)}.form-status{font-size:14px;line-height:1.8;margin-top:20px}footer{width:var(--page);margin:96px auto 0;padding:28px 0 32px;border-top:1px solid #bcc1b5;display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px;font-size:12px;line-height:1.8;color:var(--muted)}.footer-brand{font-size:clamp(32px,6vw,96px);font-weight:700;line-height:1;letter-spacing:-.075em;color:var(--ink)}
/* Motion stays slow and subordinate to the typography. */
.intro-in{animation:enter 1.25s var(--ease) both}.delay1{animation-delay:.12s}.delay2{animation-delay:.25s}.reveal{opacity:1;transform:none}.motion .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--delay,0s)}.motion .reveal.is-visible{opacity:1;transform:none}.progress{height:2px;width:0;position:fixed;top:0;left:0;background:#8d9981;z-index:30;pointer-events:none}
@keyframes enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes photo-in{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes breathing{from{transform:scale(1)}to{transform:scale(1.035)}}
@media(max-width:1000px){:root{--gutter:24px;--space:88px}header{height:84px}.hero{padding-top:32px}.hero-metric{font-size:23vw;gap:12px}.hero-message{font-size:3.35vw;padding-top:0}.hero-copy>p{font-size:14px;margin-top:24px}.hero-copy>p br{display:none}.section-label{grid-column:1/4;font-size:28px}.section-body{grid-column:4/13}.stats{gap:24px}.stat-value{font-size:6.5vw}.stat-value small,.stat-unit{font-size:18px}.performance{padding-top:64px;padding-bottom:64px;row-gap:48px}.performance .section-label{font-size:36px}.section h2:not(.section-label){font-size:34px}.service-grid{grid-template-columns:1fr;gap:40px;margin-top:48px}.service h3{font-size:26px}.service .spec{padding-top:24px}.story-image{grid-column:1/6}.story-copy{grid-column:6/13}.story h2{font-size:27px}.contact-inner>div{grid-column:1/6}.contact form{grid-column:6/13}.contact h2{font-size:30px}}
@media(max-width:700px){:root{--page:88%;--gutter:20px;--space:72px}header{height:76px}.logo{font-size:25px}.header-label{font-size:12px;letter-spacing:.02em}.hero{padding-top:24px}.hero-copy{grid-template-columns:1fr;row-gap:0;padding-bottom:36px}.hero-metric{grid-column:1;grid-row:1;font-size:clamp(130px,41vw,265px);letter-spacing:-.09em;line-height:.96;gap:14px;padding:0}.hero-unit{font-size:.23em;letter-spacing:-.06em}.hero-message{grid-column:1;grid-row:2;font-size:clamp(27px,7.5vw,46px);letter-spacing:-.045em;line-height:1.6;margin-top:32px;padding:0}.hero-copy>p{grid-column:1;grid-row:3;font-size:16px;line-height:1.9;margin-top:24px;max-width:100%}.hero-photo{height:auto;aspect-ratio:1.08}.photo-caption{font-size:12px;padding:14px 0 32px;gap:20px}.photo-caption span:last-child{max-width:50%;text-align:right}.section{grid-template-columns:1fr;padding:64px 0;row-gap:40px}.section-label{grid-column:1;display:flex;flex-direction:row-reverse;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:30px;line-height:1.4}.label-index{font-size:12px;letter-spacing:0;line-height:1.7;margin:0}.section-body{grid-column:1}.section h2:not(.section-label){font-size:clamp(27px,7.1vw,37px);line-height:1.6;letter-spacing:-.04em;margin-bottom:36px}.performance{grid-template-columns:1fr;row-gap:36px;padding:48px 6% 52px}.performance .section-label{font-size:30px}.performance .section-body{grid-column:1}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px}.stat{padding-top:18px}.stat-kicker{font-size:12px;min-height:42px;margin-bottom:12px}.stat-value{font-size:clamp(43px,12vw,72px);gap:3px}.stat-value small,.stat-unit{font-size:17px}.stat-desc{font-size:14px;line-height:1.85;margin-top:18px}.performance .note{font-size:12px;line-height:1.9;margin-top:32px}.service-grid{margin-top:44px;gap:36px}.service{padding-top:20px}.service h3{font-size:26px;line-height:1.55;margin:20px 0}.service p{font-size:16px;line-height:1.95}.service .spec{font-size:12px;padding-top:24px}.match-table{margin-top:48px}.table-head{gap:20px;padding-bottom:14px}.table-head span:last-child{text-align:right}.match-row{grid-template-columns:1fr;gap:12px;font-size:14px;padding:24px 0}.materials{grid-template-columns:1fr;gap:12px;font-size:12px;margin-top:24px}.note{margin-top:28px}.nature{height:200px}.story{grid-template-columns:1fr;padding:64px 0;row-gap:36px}.story-image{grid-column:1;position:relative;top:0;width:84%;aspect-ratio:4/5;max-height:480px}.story-copy{grid-column:1}.story h2{font-size:clamp(25px,6.35vw,34px);line-height:1.65;margin-bottom:28px}.story p{font-size:16px;line-height:1.95;margin-bottom:24px}.story-kicker{margin-bottom:20px}.story-foot{margin-top:28px;padding-top:24px;font-size:12px}.team-intro{font-size:18px;line-height:1.9}.team-intro br{display:none}.people{gap:16px;margin-top:36px}.person{font-size:22px;gap:24px;padding-top:20px}.person small{font-size:12px}.flow{grid-template-columns:1fr}.step{grid-template-columns:44px minmax(0,1fr);padding:21px 0;gap:20px}.step-num{font-size:28px}.step-name{font-size:16px}.step:last-child{grid-column:1}.faq-list{border-color:var(--line)}summary{font-size:16px;padding:24px 36px 24px 0;line-height:1.85}summary:after{top:20px;font-size:24px}details p{font-size:16px;line-height:1.95;padding-right:20px;margin-bottom:28px}.contact{padding-top:48px}.contact-inner{grid-template-columns:1fr;row-gap:40px}.contact-inner>div,.contact form{grid-column:1}.contact h2{font-size:32px;margin-bottom:20px;line-height:1.55}.form-grid{gap:28px 20px}.field:nth-child(3),.field:last-child{grid-column:1/-1}.field-label{font-size:14px;margin-bottom:6px}input,textarea{font-size:16px}textarea{height:80px}.form-bottom{margin-top:32px;gap:20px}footer{margin-top:64px;padding:24px 0 32px;grid-template-columns:1fr;gap:40px}.footer-brand{grid-row:1;font-size:clamp(60px,20vw,120px)}footer>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}.nature img{transform:none!important}}

/* Display the supplied artwork without altering the mark or wordmark. */
.logo{display:block;width:148px;flex-shrink:0}
.brand-image{display:block;position:relative;width:100%;aspect-ratio:230 / 59;overflow:hidden;mix-blend-mode:multiply}
.brand-image img{position:absolute;max-width:none;width:159.130435%;height:auto;left:-18.26087%;top:-133.898305%}
.footer-brand{display:block;width:132px;max-width:100%}
@media(max-width:700px){.logo{width:132px}.footer-brand{width:120px}}
@media(max-width:360px){.logo{width:120px}header{gap:16px}}

/* Corporate-reference logo scale; phrase-aware story heading. */
.logo{width:104px}
.story-headline>span{display:block}
.story-headline .phrase{display:inline-block}
footer{grid-template-columns:1fr}
@media(max-width:700px){.logo{width:76px}footer{gap:0}}

/* Corporate footer, matched to the supplied reference. */
.contact{padding-bottom:72px}
.corporate-footer{display:block;width:100%;margin:0;padding:64px 0 80px;border:0;background:#111;color:#939393;font-size:16px;line-height:1.6}
.corporate-footer-inner{width:var(--page);margin:0 auto}
.footer-social{display:flex;align-items:center;gap:22px;padding-bottom:28px}
.footer-social a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;transition:color .2s}
.footer-social svg{display:block;width:28px;height:28px}
.footer-social a:first-child{margin-left:-7px}
.footer-legal{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;border-top:1px solid #b9b9b9;padding-top:32px}
.footer-policies{display:flex;flex-direction:column;align-items:flex-start}
.footer-policies a{font-size:16px;line-height:1.65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:color .2s}
.footer-copyright{font-size:16px;line-height:1.65;white-space:nowrap}
.corporate-footer a:hover{color:#fff}
.corporate-footer a:focus-visible{outline-color:#fff}
@media(max-width:700px){
.contact{padding-bottom:56px}
.corporate-footer{padding:40px 0 48px}
.footer-social{gap:16px;padding-bottom:24px}
.footer-social svg{width:26px;height:26px}
.footer-legal{grid-template-columns:1fr;gap:32px;padding-top:24px}
.footer-policies a{font-size:14px;line-height:2}
.footer-copyright{font-size:14px;white-space:normal}
}

/* Corporate typography: spiber.inc Japanese rules, inspected 2026-09-13. */
@font-face{font-family:SpiberCorporate;src:url('/_next/static/media/Spiber-65Regular.c1e7b420.woff') format('woff'),url('fonts/Spiber-65Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
:root{--corp-body-size:16px;--corp-body-leading:24px;--corp-small-size:11px;--corp-small-leading:16.5px}
.hero-copy>p,.service p,.story p,.team-intro,details p,.stat-desc,.step-name,.match-row,.form-status{font-size:var(--corp-body-size);line-height:var(--corp-body-leading)}
.hero-copy>p,.service p,.story p,.team-intro,details p{font-family:SpiberCorporate,'YuGothic','Yu Gothic','Hiragino Kaku Gothic ProN',sans-serif;font-weight:400;font-feature-settings:'palt'}
.note,.performance .note,.service .spec,.story-foot,.materials,.stat-kicker,.person small,.contact p,.form-note,.micro,.label-index,.header-label,.photo-caption,.table-head{font-size:var(--corp-small-size);line-height:var(--corp-small-leading)}
.service h3{font-size:24px;line-height:36px}
.section h2:not(.section-label),.story h2,.contact h2{font-size:32px;line-height:1.2;font-weight:700}
@media(min-width:768px){.section h2:not(.section-label),.story h2,.contact h2{font-size:48px;line-height:1.2}}
/* Screenshot footer: 24px icons, 11px type, and a single compact legal row. */
.corporate-footer{padding:28px 0 40px;font-family:SpiberCorporate,Arial,sans-serif;color:rgba(224,221,219,.4);font-size:11px;line-height:16.5px}
.corporate-footer-inner{width:calc(100% - 38px);max-width:1440px}
.footer-social{gap:12px;padding-bottom:16px}
.footer-social a{position:relative;width:20px;height:20px}
.footer-social a:before{content:'';position:absolute;inset:-8px}
.footer-social a:first-child{margin-left:0}
.footer-social svg{width:20px;height:20px}
.footer-legal{display:flex;justify-content:space-between;align-items:flex-end;gap:6px;padding-top:21px;border-color:#c9c8ca}
.footer-policies{flex-shrink:0}
.footer-policies a{font-size:11px;line-height:16.5px;font-weight:400;text-underline-offset:2px}
.footer-copyright{font-size:11px;line-height:16.5px;font-weight:400;white-space:nowrap}
@media(min-width:768px){.corporate-footer-inner{width:var(--page)}.corporate-footer{padding-top:34px}.footer-legal{padding-top:33px;gap:24px}}
@media(max-width:359px){.footer-policies{flex-basis:51%;flex-shrink:1}.footer-copyright{white-space:normal;flex-basis:45%;text-align:right}}

/* Contact form review and accessible input state. */
#contact-form [hidden]{display:none!important}.form-consent{display:flex;gap:12px;align-items:flex-start;margin-top:28px;font-size:16px;line-height:24px}.form-consent input{width:18px;height:18px;flex:0 0 18px;margin:3px 0;accent-color:#151713}.form-consent a{text-decoration:underline;text-underline-offset:3px}#form-review h3{font-size:24px;margin-bottom:24px}#form-review dl{margin:0 0 24px}#form-review dt{font-size:11px;color:var(--muted);margin-top:20px}#form-review dd{margin:6px 0 0;font-size:16px;line-height:24px;white-space:pre-wrap;overflow-wrap:anywhere}#form-edit{background:transparent;border:0;border-bottom:1px solid currentColor;padding:8px 0;cursor:pointer;font-size:16px}.field textarea{min-height:120px;resize:vertical}

/* Explain technologies alongside strain-development metrics. */
.performance-context{font-size:24px;line-height:1.5;font-weight:700;margin-bottom:40px}.stat-tech{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:16px;line-height:24px;overflow-wrap:anywhere}.stat-tech span{display:block;font-size:11px;line-height:16.5px;color:var(--muted);margin-bottom:8px}.service .license-note{font-size:16px;line-height:24px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}

.process-support{margin-top:40px;padding-top:32px;border-top:1px solid var(--line)}.process-support h3{font-size:24px;line-height:36px;font-weight:700;margin-bottom:16px}.process-support p{font-size:16px;line-height:24px;font-family:SpiberCorporate,"YuGothic","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}@media(max-width:767px){.process-support{margin-top:28px;padding-top:24px}.process-support p br{display:none}}
/* Desktop hero: reveal more of the lower production floor. */
@media(min-width:701px){.hero-photo img{object-position:50% 80%}}

.contact-inner>.contact-action{grid-column:7/13;align-self:center}.contact-action .button{width:100%;max-width:400px;justify-content:space-between;min-height:64px}.contact .contact-action p{font-size:11px;line-height:16.5px;margin-top:16px}@media(max-width:700px){.contact-inner>.contact-action{grid-column:1}.contact-action .button{max-width:none}}

/* Approved KV A: corporate fonts and spacing, original plant photograph. */
@font-face{font-family:SpiberCorporate;src:url('/_next/static/media/Spiber-95Bold.f95836d6.woff') format('woff'),url('fonts/Spiber-95Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
/* YuCorporate（fonts/yu-corporate.woff）は実体が無いため YuGoPr6N に置き換え済み */
body{font-family:SpiberCorporate,YuCorporate,'Yu Gothic',sans-serif}
.hero-copy>p,.service p,.story p,.team-intro,details p,.process-support p{font-family:SpiberCorporate,YuCorporate,'Yu Gothic',sans-serif}
header{width:100%;max-width:1300px;height:62.5px;padding:0 15px;background:#fff}
.logo{width:100px}.logo>img{width:100%;height:auto}
.header-label{font-family:SpiberCorporate,sans-serif;font-size:11px;letter-spacing:1.1px}
body{background:#fff}
.hero{width:100%;padding:0}
.hero-copy{max-width:1300px;height:350px;margin:auto;padding:0 15px;display:block}
.hero-metric{position:absolute;left:15px;top:24px;display:block;font-family:SpiberCorporate,sans-serif;font-size:330px;line-height:1;font-weight:700;letter-spacing:-.04em;padding:0}
.hero-unit{font-size:64px;font-weight:400;letter-spacing:-.035em;margin-left:0}
.hero-message{position:absolute;left:55%;top:75px;font-family:SpiberCorporate,YuCorporate,'Yu Gothic',sans-serif;font-size:60px;line-height:1.1;font-weight:500;letter-spacing:0;padding:0;font-feature-settings:'palt'}
.hero-copy>p{position:absolute;left:55%;top:235px;margin:0;font-size:16px;line-height:24px;color:#121212}
.hero-photo{height:500px;margin:0 15px;border-radius:15px}
.hero-photo img{object-position:50% 80%}
.photo-caption{max-width:1300px;margin:auto;padding-left:15px;padding-right:15px}
@media(min-width:1536px){header,.hero-copy{padding-left:0;padding-right:0}.hero-metric{left:0}.photo-caption{padding-left:0;padding-right:0}}
@media(min-width:701px) and (max-width:1100px){.hero-copy{height:clamp(280px,30vw,350px)}.hero-metric{font-size:29vw;top:28px}.hero-unit{font-size:5.2vw}.hero-message{font-size:4.4vw;top:64px}.hero-copy>p{top:calc(64px + 9.7vw + 28px)}.hero-photo{height:44vw;min-height:340px}}
@media(max-width:700px){header{height:59px}.logo{width:75.2px}.header-label{font-size:11px;letter-spacing:.04em}.hero-copy{height:auto;padding:24px 15px 36px;display:flex;flex-direction:column}.hero h1{display:contents}.hero-metric{position:static;font-size:clamp(130px,41vw,265px);line-height:1;letter-spacing:-.04em;white-space:nowrap;margin-left:-11px;}.hero-unit{font-size:.23em;margin-left:0}.hero-message{position:static;font-size:40px;line-height:1.1;margin-top:28px;letter-spacing:0}.hero-copy>p{position:static;margin-top:24px;font-size:16px;line-height:24px}.hero-copy>p br{display:initial}.hero-photo{height:auto;aspect-ratio:1.08;margin:0 15px}.hero-photo img{object-position:50% 56%}.photo-caption{font-size:11px;padding-left:15px;padding-right:15px}}

@media(min-width:701px){.hero-unit{margin-left:10px}}

/* ===== Footer: spiber.inc コーポレートフッター準拠（2026-09-22 服部） ===== */
.corporate-footer{padding:64px 0 30px;background:#111;color:rgba(224,221,219,.45);font-family:SpiberCorporate,Arial,sans-serif}
.corporate-footer-inner{display:block;width:var(--page);max-width:1440px;margin:0 auto}
/* サイトマップ行 */
.footer-top{display:flex;align-items:flex-start;gap:40px;padding-bottom:64px}
.footer-logo{display:block;width:96px;flex:0 0 96px}
.footer-logo img{display:block;width:100%;height:auto}
.footer-nav{margin-left:auto;display:grid;grid-template-columns:repeat(5,auto);gap:0 52px}
.footer-col{display:flex;flex-direction:column;gap:14px}
.footer-col a{font-size:11px;line-height:16.5px;letter-spacing:.12em;text-decoration:none;color:rgba(224,221,219,.45);transition:color .2s}
.footer-col a.lv1{color:#fff}
.footer-col a.wrap{max-width:13em}
.footer-col a:hover{color:#fff}
.footer-lang{display:flex;align-items:center;gap:8px;font-size:11px;line-height:16.5px;letter-spacing:.12em;white-space:nowrap;flex:0 0 auto}
.footer-lang a{color:rgba(224,221,219,.45);text-decoration:none;transition:color .2s}
.footer-lang a.is-current,.footer-lang a:hover{color:#fff}
.footer-lang span{color:rgba(224,221,219,.3)}
/* 区切り線 */
.footer-legal-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px 34px;padding-top:26px;border-top:1px solid rgba(224,221,219,.45)}
.footer-copyright{margin:0;white-space:nowrap;font-size:11px;line-height:16.5px;font-weight:400}
.footer-policies{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 34px;border:0;padding:0}
.footer-policies a,.footer-cookie-settings{font-size:11px;line-height:16.5px;font-weight:400;color:inherit;text-decoration:none;white-space:nowrap;transition:color .2s}
.footer-cookie-settings{background:none;border:0;padding:0;margin:0;font-family:inherit;cursor:pointer}
.footer-policies a:hover,.footer-cookie-settings:hover{color:#fff}
.footer-social{margin-left:auto;padding:0;gap:18px;flex-shrink:0}
.footer-social a{width:20px;height:20px}
.footer-social svg{width:20px;height:20px}
@media(max-width:1200px){.footer-nav{gap:0 32px}.footer-col a{letter-spacing:.08em}}
@media(max-width:900px){
 .corporate-footer{padding:44px 0 28px}
 .footer-top{flex-wrap:wrap;gap:32px;padding-bottom:36px}
 .footer-nav{margin-left:0;flex-basis:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
 .footer-lang{flex-basis:100%}
 .footer-social{margin-left:0}
}

/* ===== 日本語の行分割（2026-09-22）：文節で折り返し、禁則を厳格に ===== */
:root{--jp-break:auto-phrase}
body{line-break:strict;overflow-wrap:break-word}
p,li,dd,dt,summary,h1,h2,h3,h4,
.hero-copy>p,.service p,.service .spec,.story p,.story-foot,.team-intro,
details summary,details p,.stat-desc,.stat-kicker,.step-name,.match-row strong,.match-row span,
.contact p,.form-note,.note,.performance-context,.process-support p,.materials span{
  word-break:auto-phrase;line-break:strict
}
/* 英数字や単位（50 g/L、1–10 L、BSL-1）は途中で折り返さない */
.stat-value,.big,.step .v,.hero-metric{word-break:keep-all}
/* フォーカスリングがFAQの本文に重ならないように */


/* ===== 2026-09-22 微調整 ===== */
/* 伴走体制の上の罫線を外す */
.process-support{border-top:0;padding-top:0;margin-top:56px}
@media(max-width:700px){.process-support{margin-top:40px;padding-top:0}}
/* フッター：英語ナビは文節折り返しの対象外、外部リンクの矢印は行頭に落とさない */
.footer-col a,.footer-lang a,.footer-policies a,.footer-cookie-settings{word-break:normal}
.footer-col a.wrap{max-width:15.5em}
/* ヒーローの 50 g/L：数字のカウントアップ */
.hero-metric .count{font-variant-numeric:tabular-nums}
/* 折り返させたくない語句 */
.nb{white-space:nowrap}


/* ===== 罫線を左から引くアニメーション（2026-09-22）=====
   .service / .section-label / .scale などの濃い罫線を、表示時に左→右へ描く。 */
.motion .service{border-top-color:transparent;position:relative}
.motion .service:before{
  content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;
  background:var(--ink);transform:scaleX(0);transform-origin:left center;
  transition:transform 1.1s cubic-bezier(.22,.61,.36,1);transition-delay:var(--delay,0s)
}
.motion .service.is-visible:before{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){
  .motion .service{border-top-color:var(--ink)}
  .motion .service:before{display:none}
}

/* ===== 日本語の折り返し（2026-09-22 rev3・最終）=====
   本文の日本語には文節の切れ目に <wbr> を静的に入れてあるため、
   単語の途中では折り返さない。JSに依存せず全ブラウザで同じ結果になる。 */
.hero-copy p,.hero-message,.service p,.service .spec,.service .license-note,.story p,.story-foot,
.team-intro,.process-support p,details summary,details p,.stat-desc,.stat-kicker,.stat-tech,
.match-row strong,.match-row span,.note,.performance-context,.contact p,.form-note,
.materials span,.step-name,.flyer-download a,.section h2,.story h2,.contact h2{
  word-break:keep-all;overflow-wrap:break-word;line-break:strict
}

/* FAQ：フォーカスリングを行の内側に収め、本文に重ならないようにする */
summary:focus-visible{outline:2px solid #7c8973;outline-offset:-3px;border-radius:2px}
details{scroll-margin-top:24px}

/* FAQ：フォーカスリングは質問テキストだけを囲む（行全体を囲まない） */
summary:focus-visible{outline:none}
summary .q{display:inline-block}
summary:focus-visible .q{outline:2px solid #7c8973;outline-offset:4px;border-radius:2px}
/* FAQ本文：折り返しを減らすため列幅いっぱいまで使う */
details p{max-width:none;padding-right:0}
@media(max-width:700px){details p{padding-right:0}}


/* 数字・単位・英字だけの要素は欧文フォントを優先 */
.stat-value,.hero-metric,.hero-unit,.step-num,.label-index,.micro,.header-label,.footer-col a,.footer-lang,.footer-policies a,.footer-copyright{
  font-family:SpiberCorporate,Arial,var(--jp)
}

/* ===== 和文フォント：spiber.inc コーポレートと同一の指定に統一（2026-09-22 実機で確認）=====
   コーポレート実測値：
     font-family: Spiber, "A+EqpB-游ゴシック体 Pr6N M", 游ゴシック, YuGothic, YuGoPr6N,
                  ui-sans-serif, system-ui, sans-serif
     本文 16px / line-height 24px / font-weight 400 / letter-spacing normal / font-feature-settings "palt"
     見出し（h3等）は letter-spacing -0.02em
   欧文は Spiber（自社Webフォント）、和文は端末の游ゴシック体 Pr6N → 游ゴシック の順で拾う。
   コーポレートは和文Webフォント YuGoPr6N（L300/M400/R500/D600/B700）も自社配信しているので、
   本番では同じフォントCSSを読み込めば完全に一致する。 */
@font-face{font-family:Spiber;src:url('/_next/static/media/Spiber-65Regular.c1e7b420.woff') format('woff'),url('fonts/Spiber-65Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Spiber;src:url('/_next/static/media/Spiber-75Medium.cde7ee3b.woff') format('woff'),url('fonts/Spiber-75Medium.woff') format('woff');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Spiber;src:url('/_next/static/media/Spiber-95Bold.f95836d6.woff') format('woff'),url('fonts/Spiber-95Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
:root{
  --jp:"A+EqpB-游ゴシック体 Pr6N M","游ゴシック体 Pr6N M","游ゴシック体",游ゴシック,YuGothic,YuGoPr6N,YuGothicStd-R,"Yu Gothic Medium","Yu Gothic",sans-serif;
  --font-body:Spiber,SpiberCorporate,var(--jp),ui-sans-serif,system-ui,sans-serif;
}
body,
.hero-copy>p,.hero-message,.service p,.service .spec,.service .license-note,.story p,.story-foot,
.team-intro,.process-support p,details summary,details p,.stat-desc,.stat-kicker,.stat-tech,
.match-row strong,.match-row span,.note,.performance-context,.contact p,.form-note,
.materials span,.step-name,.flyer-download a,.section h2,.story h2,.contact h2,
.section-label,.service h3,.process-support h3,button,input,textarea,
.footer-col a,.footer-lang,.footer-policies a,.footer-cookie-settings,.footer-copyright{
  font-family:var(--font-body)
}
body{font-feature-settings:"palt";letter-spacing:normal}
.service h3,.section h2,.story h2,.contact h2{letter-spacing:-.02em}

/* ===== 和文Webフォント：コーポレート本体と同じファイルを参照（2026-09-22）=====
   spiber.inc 本体が配信している 游ゴシック Pr6N（YuGoPr6N）を絶対パスで読み込む。
   LPは spiber.inc 配下に置かれるため、ドメインルートからの絶対パスで同一ファイルを共有できる。
   ※ /_next/static/media/ のファイル名はビルドごとのハッシュを含む。コーポレートを再デプロイすると
     ハッシュが変わり読み込めなくなるため、その際は下の5行を最新の値に差し替えること
     （確認方法：spiber.inc を開いて DevTools → Network → Font、または CSS 内の "YuGoPr6N" を検索）。
     読み込めなくなっても端末の游ゴシックにフォールバックするため、表示が壊れることはない。 */
@font-face{font-family:YuGoPr6N;src:url('/_next/static/media/YuGoPr6N-L.a3f92086.otf') format('opentype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:YuGoPr6N;src:url('/_next/static/media/YuGoPr6N-M.255b7ac7.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:YuGoPr6N;src:url('/_next/static/media/YuGoPr6N-R.7130f4f2.otf') format('opentype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:YuGoPr6N;src:url('/_next/static/media/YuGoPr6N-D.7cf45813.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:YuGoPr6N;src:url('/_next/static/media/YuGoPr6N-B.1d566b97.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:YuGothicStd-R;src:url('/_next/static/media/yu-gothic-regular.91393b45.ttf') format('opentype');font-weight:700;font-style:normal;font-display:swap}

/* ===== スマホで横スクロールが出る問題の修正（2026-09-22）=====
   原因：フッターのポリシー列が flex アイテムとして最小幅(min-width:auto)を持ち、
   nowrap のリンクが1行に並んだ幅（約780px）のまま縮まなかった。 */
.footer-legal-row{flex-wrap:wrap;min-width:0}
.footer-policies{min-width:0;flex:1 1 auto}
@media(max-width:900px){
  .footer-legal-row{align-items:flex-start;gap:14px 20px}
  .footer-copyright{flex:0 0 100%}
  .footer-policies{flex:0 0 100%;gap:10px 20px}
  .footer-social{flex:0 0 100%;margin-left:0}
  .footer-policies a,.footer-cookie-settings{white-space:normal}
}
/* 念のための保険：どの要素も画面幅を超えない */
html,body{max-width:100%;overflow-x:clip}
img,svg,video,table{max-width:100%}

/* =====================================================================
   抜け感パッチ（2026-09-27 服部）
   構造・文言・スクリプトには一切触れていません。余白・行間・字間・
   罫線の濃さだけを調整しています。差し替えはこのCSS1枚で完了します。
   ===================================================================== */

:root{
  /* 罫線を薄く。ページ上に35本ある罫が一段沈みます */
  --line:#e2e3dd;
  /* 二次情報の黒を少し抜く */
  --muted:#767973;
  /* 和文の行送り。24px（＝1.5倍）はラテン用の値で、和文には詰まりすぎ */
  --corp-body-leading:31px;
  --corp-small-leading:19px;
  /* セクション間の余白を広げる */
  --space:clamp(96px,10.5vw,176px);
}

/* --- 和文の行送りを開ける（1.5 → 1.95前後）--- */
.hero-copy>p,
.service p,
.service .license-note,
.process-support p,
.match-row,
.stat-desc,
.story p,
details p,
.form-consent,
.contact p{ line-height:1.95 }
.service h3,
.process-support h3{ line-height:1.6 }
.performance-context{ line-height:1.75 }

/* --- 見出しの字間をコーポレートに合わせて緩める（-4〜5% → -2%）--- */
h1,h2,h3,
.section h2:not(.section-label),
.story h2,
.contact h2,
.hero-message{ letter-spacing:-.02em }
.section h2:not(.section-label),
.story h2,
.contact h2{ line-height:1.72 }

/* --- 見出しの下に息を入れる --- */
.section h2:not(.section-label){ margin-bottom:clamp(36px,3.6vw,56px) }
.story h2{ margin-bottom:clamp(28px,3vw,44px) }

/* --- 要素どうしの間隔 --- */
.service-grid{ margin-top:clamp(56px,6vw,88px);gap:clamp(36px,4vw,64px) }
.service{ padding-top:32px }
.service h3{ margin:22px 0 }
.match-table{ margin-top:clamp(48px,5vw,76px) }
.match-row{ padding-block:28px }
.stats{ gap:clamp(28px,3.4vw,52px) }
.stat{ padding-top:24px }
.stat-desc{ margin-top:22px }
.stat-tech{ margin-top:28px;padding-top:22px }
.note,.performance .note{ margin-top:clamp(30px,3.2vw,44px) }
.flow .step{ padding-block:26px }
.process-support{ margin-top:clamp(44px,4.6vw,64px);padding-top:0 }
.faq-list summary{ padding-block:30px }
.faq-list details p{ margin-bottom:34px }
.story-foot{ margin-top:clamp(30px,3.2vw,44px);padding-top:28px }
.contact-inner{ row-gap:clamp(36px,4vw,56px) }

/* --- 写真まわりを少し引く --- */
.photo-caption{ padding-block:18px 40px }
.nature{ height:clamp(240px,26vw,400px) }

/* --- フッターの直前に余白 --- */
.corporate-footer{ margin-top:clamp(56px,6vw,96px) }

@media(max-width:700px){
  :root{ --space:84px }
  .section h2:not(.section-label){ margin-bottom:32px;line-height:1.75 }
  .service-grid{ margin-top:48px;gap:44px }
  .faq-list summary{ padding-block:26px }
}

/* ---------------------------------------------------------------
   実施例グラフ（FGF-2 / IFN-γ）2026-09-27 追加
   .performance の note の下に入ります
   --------------------------------------------------------------- */
.cases{margin-top:clamp(48px,5vw,76px);padding-top:clamp(32px,3.4vw,48px);border-top:1px solid;border-top-color:color-mix(in srgb,currentColor 26%,transparent)}
.cases-title{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:0 0 clamp(24px,2.6vw,36px)}
.case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,4vw,64px)}
.case{margin:0}
.case figcaption{display:flex;flex-direction:column;gap:5px;margin-bottom:clamp(18px,2vw,26px)}
.case-name{font-size:17px;font-weight:700;line-height:1.5}
.case-range{font-size:13px;line-height:1.85;color:var(--muted)}
.case-range b{font-weight:700;color:inherit}
.case svg{display:block;width:100%;height:auto;font-family:var(--font-body);
  font-feature-settings:"palt";font-variant-numeric:tabular-nums}
.cases .note{margin-top:clamp(26px,2.8vw,38px)}
@media(max-width:700px){
  .case-grid{grid-template-columns:1fr;gap:40px}
  .cases{margin-top:40px;padding-top:28px}
}

/* 実施例グラフのアクセント
   セージ＝Spiberが設計した配列（＝Spiberの手が入った結果）。
   ベンチマークと目盛り・注記は無彩色のまま。 */

/* ---------------------------------------------------------------
   実施例グラフを白いシートにして黒帯の上に置く（2026-09-27）
   セクションは黒帯のまま。グラフだけ白地＋黒の棒にして、
   チラシ／B案と同じ見え方に揃えます。
   --------------------------------------------------------------- */
.cases{
  background:var(--paper);
  color:var(--ink);
  --line:#e2e3dd;
  --muted:#767973;
  --case-bar:var(--ink);
  border-top:0;
  padding:clamp(28px,3.2vw,44px);
  margin-top:clamp(40px,4.4vw,64px)
}
.cases-title{color:var(--muted)}
@media(max-width:700px){
  .cases{padding:24px 20px;margin-top:36px}
}

/* ===== 言語切替（JA / EN）ヘッダー右端。コーポレートの「JA ▾」と同じ振る舞い（中文なし） 2026-09-30 ===== */
header{position:relative;z-index:20}
.header-right{display:flex;align-items:center;gap:28px}
.lang-switch{position:relative}
.lang-toggle{display:inline-flex;align-items:center;gap:8px;background:none;border:0;margin:0;padding:10px 0;cursor:pointer;font-family:SpiberCorporate,sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;line-height:1;color:var(--ink)}
.lang-toggle svg{width:9px;height:6px;flex:0 0 9px;transition:transform .2s}
.lang-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.lang-menu{position:absolute;right:-20px;top:calc(100% + 6px);min-width:150px;margin:0;padding:20px 24px;list-style:none;background:var(--paper);box-shadow:0 10px 28px rgba(25,26,24,.10);display:flex;flex-direction:column;gap:18px}
.lang-menu[hidden]{display:none}
.lang-menu a{display:block;font-family:SpiberCorporate,YuCorporate,'Yu Gothic',sans-serif;font-size:13px;font-weight:700;letter-spacing:.14em;line-height:1.2;white-space:nowrap;color:var(--ink);transition:opacity .2s}
.lang-menu a:hover{opacity:.55}
.lang-menu a[aria-current="true"]{color:var(--muted)}
@media(max-width:700px){.header-right{gap:18px}.lang-toggle{font-size:11px}.lang-menu{right:0}}

/* ===== 本文下の3ポイント（JA / EN共通・2026-10-01） ===== */
.story-points{list-style:none;margin:clamp(30px,3.2vw,44px) 0 0;padding:0;border-top:1px solid var(--ink)}
.story-points li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);font-size:18px;line-height:1.6;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.story-points .sp-num{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.05em;color:var(--muted)}
@media(max-width:700px){.story-points li{grid-template-columns:36px minmax(0,1fr);padding:16px 0;font-size:16px}}
