/* Reading-first layout. Existing artwork, content and interactions are preserved. */
html{scroll-padding-top:100px}
body{font-size:16px;line-height:1.8}
body :is(h1,h2,h3,h4){line-height:1.45;letter-spacing:0;overflow-wrap:anywhere}
body a:focus-visible,body button:focus-visible{outline:3px solid #d69608;outline-offset:4px}
body [id]{scroll-margin-top:100px}
.home-page{--home-content:1120px;--home-reading:720px;--home-section-y:44px;background:#f2f5f8}
.home-page main{overflow:clip}
.home-page main>section{width:calc(100% - 48px);max-width:1160px;margin:24px auto;padding:36px!important;border:1px solid #dce3eb;border-radius:12px;box-shadow:none}
.home-page main>section:nth-of-type(even){border-top:3px solid #cedaea}
.home-page .hero-home{min-height:0;grid-template-columns:minmax(0,1.55fr) minmax(200px,.65fr);gap:32px;padding:40px 36px!important;background:#fff}
.home-page .hero-home .motto-main{font-size:clamp(28px,3.4vw,44px)!important;line-height:1.4!important;letter-spacing:0!important;margin:12px 0!important}
.home-page .motto-main .motto-lang{gap:6px;line-height:1.4}
.home-page .motto-main strong{white-space:normal!important;word-break:normal}
.home-page .hero-description{font-size:16px!important;line-height:1.85;max-width:42em;margin-top:16px}
.home-page .hero-submessage{font-size:18px!important;letter-spacing:.04em!important;margin-top:12px!important;padding-left:0}
.home-page .hero-submessage:before{content:none}
.home-page .hero-home-visual{margin:0;animation:none}
.home-page .logo-stage{width:min(100%,270px);border-radius:16px;transform:none;box-shadow:none;border:1px solid #e0e7ef}
.home-page .logo-stage span{font-size:22px}.home-page .logo-stage strong{font-size:28px}
.home-page .hero-buttons{gap:10px;margin-top:20px;flex-wrap:wrap}
.home-page .scroll-indicator{display:none}
.home-page .hero-home-copy>.eyebrow{font-size:12px!important;margin-bottom:10px}
.home-page :is(.section-head,.official-cm-head){display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 20px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #cdd8e5}
.home-page :is(.section-head h2,.official-cm-head h2,.lead-main h2,.mc-copy h2,.home-character-copy h2,.home-history-section h2,.company-teaser h2){font-size:clamp(23px,2.5vw,30px)!important;line-height:1.5!important;letter-spacing:0!important;margin:0}
.home-page :is(.section-head p,.official-cm-head>p){font-size:12px!important;letter-spacing:.1em}
.home-page :is(.now-card h3,.work-copy h3,.business-card h3,.official-link-card h3,.group-link-card h3){font-size:20px!important;line-height:1.5;margin:8px 0 12px}
.home-page :is(.now-card p,.work-copy p,.business-card>p:last-of-type,.lead-main p,.official-link-card p,.group-link-card p){font-size:16px!important;line-height:1.85;max-width:none}
.home-page :is(.business-cards,.now-grid){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.home-page :is(.business-card,.now-card){min-height:0!important;padding:22px!important;border-radius:8px;box-shadow:none}
.home-page .business-card{display:flex;flex-direction:column}
.home-page .business-card a{margin-top:auto;padding-top:16px;font-size:14px}
.home-page .business-card .card-kicker{margin-top:12px}
.home-page .business-card.archive-card{grid-column:auto}
.home-page .now-section:before{display:none}
.home-page .works-grid{gap:20px}.home-page .work-visual{height:190px}.home-page .work-copy{padding:22px}
.home-page :is(.lead-section,.minecraft-promo,.company-teaser){gap:28px}
.home-page .lead-section{grid-template-columns:180px minmax(0,1fr)}
.home-page .news-section{background:white}
.home-page .news-rows a{padding:17px 8px;grid-template-columns:105px 100px minmax(0,1fr) auto;gap:14px}
.home-page .news-rows time{font-size:14px}.home-page .news-rows strong{font-size:16px}
.home-page .news-rows span{font-size:13px}.home-page .news-rows strong span{display:inline;background:transparent;padding:0;font-size:inherit;color:inherit}
.home-page .lab-shell{padding:28px;gap:28px;border-radius:10px}.home-page .lab-title h2{font-size:48px!important}.home-page .lab-copy h3{font-size:24px}
.home-page .home-character-inner{gap:28px}.home-page .home-character-copy h2 strong{font-size:36px}
.home-page .home-character-visual{min-height:250px}.home-page .home-character-visual img{max-height:280px;width:auto;max-width:100%;object-fit:contain}
.home-page .numbers-grid article{padding:22px}.home-page .numbers-grid strong{font-size:36px!important}
.home-page .home-guide-nav{position:relative;top:auto;max-width:1160px;width:calc(100% - 48px);margin:0 auto;background:white;border:1px solid #dce3eb;border-radius:10px}
.home-page .home-guide-nav__inner{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:0;padding:10px 16px;overflow:visible}
.home-page .home-guide-nav a{font-size:14px;padding:10px 16px;border-right:1px solid #e0e6ee}
.home-page .home-guide-nav__label{font-size:12px;margin-right:12px}
.home-page .gran-inline-guide{margin-top:18px}.gran-inline-guide__bubble{font-size:14px!important;line-height:1.6!important;max-width:220px!important}
.gran-extra-row{margin-top:14px}
/* Shared inner-page rhythm and boundaries. */
.subhero{padding:36px max(24px,calc((100% - 1088px)/2))}.subhero h1{font-size:36px!important;line-height:1.4}
.company-page{max-width:1160px;padding:40px 24px}
.company-intro h2{font-size:28px!important;line-height:1.5}.company-lead{font-size:17px}
.company-block{padding:30px!important;margin:24px 0;border:1px solid #dce3eb;border-radius:10px;background:#fff}
.company-block h2{font-size:26px!important;margin:0 0 22px;line-height:1.5}
.company-block .eyebrow{font-size:12px}.info-table{margin:30px 0}.info-table>div{padding:14px 12px}.info-table>div:nth-child(even){background:#f4f7fa}
.motto-display{padding:28px!important}.motto-primary>.motto-lang>span{font-size:26px!important;line-height:1.5}.motto-primary>.motto-lang>strong{font-size:34px!important;line-height:1.5;white-space:normal}.motto-meaning{margin-top:28px}
.executive-grid small{font-size:14px}.executive-grid h4{font-size:18px}.executive-group-head small{font-size:12px}
.special-hero,.portfolio-hero,.migration-deep-hero{padding-top:40px!important;padding-bottom:40px!important;min-height:0!important}
.special-hero h1,.portfolio-hero h1,.migration-deep-hero h1{font-size:clamp(28px,3.8vw,42px)!important;line-height:1.4!important;letter-spacing:0!important}
.special-content{max-width:1100px;padding-top:36px;padding-bottom:36px}.special-grid{margin-top:28px;gap:20px}.special-intro h2{font-size:28px}
.special-grid article,.deep-section{padding:24px;border:1px solid #dce3eb;border-radius:10px;margin-bottom:20px;background:white}
.deep-section h2,.deep-proposal h2{font-size:24px!important}.deep-section p{font-size:16px;line-height:1.9}
.deep-content{max-width:1160px}.deep-main{min-width:0}.deep-toc{border:1px solid #dce3eb;border-radius:8px}
.character-hero{min-height:0;padding-top:36px;padding-bottom:36px}.character-hero h1{font-size:52px}.character-section-head h2{font-size:28px}
.archive-main h1{font-size:clamp(28px,3.5vw,40px)}.archive-main h2{font-size:24px}.archive-intro{font-size:17px}
.pill{font-size:14px!important;min-height:44px;line-height:1.5}
@media(max-width:1000px){
 .home-page :is(.business-cards,.now-grid){grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-page .hero-home{grid-template-columns:minmax(0,1fr) 220px}
 .home-page .lead-section{grid-template-columns:1fr;gap:16px}
}
@media(max-width:700px){
 html{scroll-padding-top:80px}
 .home-page main>section{width:calc(100% - 24px);margin:16px auto;padding:24px 18px!important;border-radius:10px}
 .home-page .hero-home{grid-template-columns:1fr;gap:22px}
 .home-page .hero-home .motto-main{font-size:28px!important;line-height:1.5!important}
 .home-page .hero-home-visual{justify-items:center}.home-page .logo-stage{width:180px}.home-page .logo-stage span{font-size:16px}.home-page .logo-stage strong{font-size:20px}
 .home-page .hero-submessage{font-size:16px!important}.home-page .hero-buttons{flex-direction:column}
 .home-page :is(.business-cards,.now-grid,.works-grid,.official-links-grid,.group-links-grid){grid-template-columns:1fr}
 .home-page :is(.section-head,.official-cm-head){display:block;padding-bottom:12px;margin-bottom:18px}
 .home-page .section-head p{margin-bottom:6px}
 .home-page :is(.section-head h2,.lead-main h2,.mc-copy h2,.home-character-copy h2){font-size:24px!important}
 .home-page .home-guide-nav{width:calc(100% - 24px)}.home-page .home-guide-nav__inner{padding:8px}.home-page .home-guide-nav a{padding:10px;font-size:14px}
 .home-page .news-rows a{grid-template-columns:90px minmax(0,1fr);gap:6px 10px}.home-page .news-rows a>strong{grid-column:1/-1}.home-page .news-rows a>span{display:block}.home-page .news-rows strong span:not([hidden]){display:inline}
 .home-page .lab-shell{padding:20px}.home-page .company-teaser{grid-template-columns:1fr}
 .company-page{padding:24px 14px}.company-block{padding:22px 18px!important}.company-intro h2{font-size:24px!important}
 .subhero{padding:30px 20px}.subhero h1{font-size:30px!important}
 .motto-primary>.motto-lang>strong{font-size:26px!important}.motto-display{padding:20px!important}
 .executive-group-head{gap:10px;padding:16px}.executive-grid article{padding:16px}
 .special-hero,.portfolio-hero,.migration-deep-hero{padding:30px 20px!important}.special-hero h1,.portfolio-hero h1,.migration-deep-hero h1{font-size:28px!important}
 .deep-section{padding:20px}.deep-section h2{font-size:22px!important}
 .gran-inline-guide__bubble{max-width:180px!important}.home-page .home-character-visual{min-height:230px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gran-extra,.hero-home-visual{animation:none!important}}
