/* Intro lettering: softer Japanese strokes and a sculpted Roman wordmark. */
@font-face{font-family:'Intro JP';src:url('/assets/intro-jp-omoi.ttf') format('truetype');font-style:normal;font-weight:500;font-display:block}
@font-face{font-family:'Intro Latin';src:url('/assets/intro-latin.ttf') format('truetype');font-style:normal;font-weight:400;font-display:block}
.loader-brand{gap:.32em;letter-spacing:.015em;color:#55748b}
.loader-brand>.loader-phrase{font-family:'Intro JP','Noto Sans JP',sans-serif;font-weight:500;font-size:.68em;letter-spacing:.02em;line-height:1.6}
.loader-brand>.loader-name{font-family:'Intro Latin',Georgia,serif;font-weight:400;font-size:1.17em;letter-spacing:.035em;line-height:1.2}
.loader-name .loader-glyph{font-weight:400}.loader-phrase .loader-glyph{font-weight:500}
/* Mission becomes one held statement, with colour moving through native scroll. */
.mission-scene{position:relative;height:max(120svh,850px);background:linear-gradient(180deg,#e8e1f1 0%,#dcebf5 48%,#e1ebdc 100%);isolation:isolate}
.mission-hold{position:sticky;top:0;min-height:min(100svh,850px);display:flex;align-items:center;justify-content:center;padding:65px 10%;box-sizing:border-box}
.mission-content{width:100%;max-width:740px;color:#344f60}
.mission-label{text-align:center;font:500 12px/1.7 Inter,sans-serif;letter-spacing:.12em}
.mission-label>span{display:block;font-family:var(--font);font-size:11px;letter-spacing:.06em;margin-top:8px;font-weight:400}
.mission-content h2{font-size:clamp(34px,4vw,54px);line-height:1.5;font-weight:500;letter-spacing:.025em;text-align:center;margin:30px 0 0}
.mission-rule{height:1px;width:58px;background:#8ba5b4;margin:30px auto;transform-origin:center}
.mission-body{max-width:650px;margin:auto;font-size:15px;line-height:2;letter-spacing:.02em}
.mission-body p+p{margin-top:20px}.mission-body>p:first-child{font-size:17px;font-weight:500;text-align:center;margin-bottom:26px}
@supports(animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.mission-rule{animation:mission-rule-enter linear both;animation-timeline:view();animation-range:entry 0% cover 40%}}}
@keyframes mission-rule-enter{from{transform:scaleX(.1);opacity:.3}to{transform:scaleX(1);opacity:1}}
/* Shorter work openings, keeping every approved word and every full image. */
.page-works .detail-heading{padding-top:135px;padding-bottom:42px}
.page-works .detail-heading .back-link{margin-bottom:26px}
.page-works .detail-heading h1{font-size:34px;line-height:1.5;margin-top:18px;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.page-works .detail-heading .detail-lead{font-size:18px;line-height:1.75;letter-spacing:.015em;margin-top:18px}
.page-works .detail-cover{margin-top:38px}.page-works .detail-cover img{height:auto;max-height:none;object-fit:contain}
.approved-work-copy{font-size:14px;line-height:2;letter-spacing:.01em}.approved-work-copy p+p{margin-top:20px}
.approved-work-subheading{font-size:17px;line-height:1.65;letter-spacing:.015em;margin:28px 0 12px}
.approved-work .detail-gallery img[src$="kidou-brand-logo.svg"]{width:100%;height:auto;max-height:450px;aspect-ratio:2.1;object-fit:contain;padding:40px 12%;background:#f0f5f6}
.service-title-unit{display:inline-block;white-space:nowrap}.service-case>img{object-fit:contain;background:#edf3f5}
.services-page{padding-top:22px}
.initiatives-opening{padding-top:140px;padding-bottom:45px}
.initiative-opening-copy{margin-top:32px}
.initiative-opening-copy h1{font-size:32px;line-height:1.6;letter-spacing:.035em}
.initiative-opening-en{margin-top:18px}
/* The image-led deck and news treatment also applies to desktop. */
.home-document .home-news-photo{background:var(--lavender)}
.home-path-keyword,.news-title-unit{display:inline-block;white-space:nowrap}
@media(min-width:701px){
 .home-paths{padding:24px 10% 46px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 7%}
 .home-path,.home-path:nth-child(n){background:transparent;padding:29px 0;border-top:1px solid #c4d2d9;border-bottom:0;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:12px 24px;align-items:start}
 .home-path>div{grid-column:1;grid-row:1}.home-path>div>span{display:block;padding-left:11px;border-left:3px solid #c7d9bd;font-size:10px;letter-spacing:.08em;line-height:1.6}
 .home-path:nth-child(2)>div>span{border-color:#bfd8eb}.home-path:nth-child(3)>div>span{border-color:#d3c5e3}
 .home-path h2{font-size:25px;line-height:1.55;letter-spacing:.01em;margin-top:12px}.home-path>p{grid-column:1;grid-row:2;font-size:13px;line-height:1.9;margin:0}.home-path>b{grid-column:2;grid-row:1/3;align-self:center;font-size:29px}.home-path:after{left:0;right:0}
 .home-path:nth-child(3){grid-column:1/-1;grid-template-columns:180px minmax(0,1fr) minmax(0,1fr) 28px;gap:25px;align-items:center;border-bottom:1px solid #c4d2d9;padding-block:28px}
 .home-path-cover{display:block;width:180px;height:110px;object-fit:contain;background:#e8e1f1;grid-column:1;grid-row:1/3}
 .home-path:nth-child(3)>div{grid-column:2;grid-row:1/3}.home-path:nth-child(3)>p{grid-column:3;grid-row:1/3}.home-path:nth-child(3)>b{grid-column:4;grid-row:1/3}
 .path-meta,.path-desc{display:block}
 .home-news{padding:38px 10% 55px;display:grid;grid-template-columns:23% minmax(0,1fr);gap:8%;align-items:start}
 .home-news .eyebrow{display:flex;flex-direction:column;gap:9px;font-size:10px;letter-spacing:.08em}.home-news .news-heading-ja{display:block;font-size:27px;line-height:1.4;letter-spacing:.025em;color:var(--ink)}
 .home-news-all{font-size:12px;margin-top:21px;min-height:36px;line-height:2}
 .home-news-item{display:grid;grid-template-columns:140px minmax(0,1fr) 25px;gap:8px 25px;padding-top:0;align-items:start}
 .home-news-photo{display:block;width:140px;height:110px;object-fit:contain;background:#fff;grid-column:1;grid-row:1/3}
 .home-news-item time{grid-column:2;grid-row:1;font-size:11px;line-height:1.6}.home-news-item h2{grid-column:2;grid-row:2;font-size:17px;line-height:1.8;letter-spacing:.01em;text-wrap:pretty}.home-news-item>b{grid-column:3;grid-row:1/3;align-self:center;font-size:28px}
 .home-news-item:not(:has(img)){grid-template-columns:minmax(0,1fr) 25px}.home-news-item:not(:has(img)) time,.home-news-item:not(:has(img)) h2{grid-column:1}.home-news-item:not(:has(img))>b{grid-column:2}
}
@media(min-width:701px) and (max-width:1050px){
 .home-paths{padding-inline:8%;gap:0 6%}.home-path h2{font-size:22px}.home-path:nth-child(3){grid-template-columns:135px minmax(0,1fr) 25px;gap:10px 25px}.home-path-cover{width:135px;height:100px}.home-path:nth-child(3)>div{grid-column:2;grid-row:1}.home-path:nth-child(3)>p{grid-column:2;grid-row:2;font-size:12px}.home-path:nth-child(3)>b{grid-column:3}
 .home-news{padding-inline:8%;grid-template-columns:1fr;gap:25px}.home-news>div{display:flex;justify-content:space-between;align-items:center}.home-news-all{margin-top:0}.home-news-item{grid-template-columns:120px minmax(0,1fr) 25px}.home-news-photo{width:120px}
}
@media(max-width:700px){
 .home-news-photo{object-fit:contain}
 .loader-brand{gap:12px;font-size:32px;padding:24px;align-items:center}
 .loader-brand>.loader-phrase{font-size:clamp(20px,5.8vw,25px);line-height:1.6;letter-spacing:.01em}
 .loader-brand>.loader-name{font-size:clamp(35px,10vw,44px);line-height:1.2;letter-spacing:.045em}
 .mission-scene{height:max(120svh,770px)}
 .mission-hold{min-height:max(94svh,620px);padding:45px 7%}
 .mission-label{font-size:10px;line-height:1.6;letter-spacing:.1em}.mission-label>span{font-size:10px;margin-top:6px}
 .mission-content h2{font-size:clamp(29px,8.4vw,36px);line-height:1.55;letter-spacing:.01em;margin-top:25px}
 .mission-rule{width:40px;margin:24px auto}
 .mission-body{font-size:13px;line-height:1.95;letter-spacing:0;max-width:390px}
 .mission-body>p:first-child{font-size:14px;line-height:1.9;text-align:left;margin-bottom:18px}.mission-body p+p{margin-top:17px}
 .page-works .detail-heading{padding:105px 7% 23px}
 .page-works .detail-heading .back-link{font-size:9px;line-height:1.5;padding:0;margin:0 0 16px;min-height:24px}
 .page-works .detail-heading .detail-kicker{font-size:9px;line-height:1.6;gap:14px;justify-content:space-between;letter-spacing:0}
 .page-works .detail-heading .detail-kicker>span{white-space:nowrap;flex-shrink:0}
 .page-works .detail-heading h1{font-size:24px;line-height:1.45;letter-spacing:0;margin-top:11px;overflow-wrap:normal;word-break:normal;text-wrap:balance}
 .page-works .detail-heading .detail-lead{font-size:13px;line-height:1.8;letter-spacing:0;margin-top:12px;text-wrap:pretty}
 .page-works .detail-heading .detail-lead br{display:none}
 .page-works .detail-cover{width:86%;margin:24px 7% 0}.page-works .detail-cover img{width:100%;height:auto;max-height:none;object-fit:contain}
 .work-section-nav{padding:17px 7% 0;margin-top:12px;gap:10px 18px;font-size:10px}
 .approved-work-section{padding:27px 7% 30px;display:block}
 .approved-section-label{font-size:17px;line-height:1.4;letter-spacing:.025em;margin-bottom:17px}
 .approved-work-copy{font-size:13px;line-height:1.9;letter-spacing:0}
 .approved-work-copy p+p{margin-top:17px}.approved-work-subheading{font-size:15px;line-height:1.6;margin:22px 0 9px;letter-spacing:0}
 .approved-work-copy .approved-work-subheading:first-child{margin-top:0}.approved-work-subheading+p{margin-top:0}
 .approved-work .project-facts{margin-top:0}.approved-work .project-facts>div{grid-template-columns:68px minmax(0,1fr);gap:13px;padding:12px 0}
 .approved-outline .project-facts dt{font-size:10px;line-height:1.8}.approved-outline .project-facts dd{font-size:12px;line-height:1.85;overflow-wrap:anywhere}
 .approved-work .detail-gallery{width:86%;margin:12px 7% 24px}.approved-work .detail-gallery img{width:100%;height:auto;max-height:none;object-fit:contain}
 .approved-work .detail-gallery img[src$="kidou-brand-logo.svg"]{aspect-ratio:1.65;max-height:none;padding:23px 10%;background:#edf3f5}
 .approved-work .story-navigation{padding:16px 7% 40px;margin-top:18px;gap:24px}.story-navigation .plain-link{font-size:11px;min-height:38px}.next-story{padding-block:20px}.next-story h2{font-size:16px;line-height:1.7;margin-top:10px}
 /* One services taxonomy, directly after a compact opening. */
 .services-page{padding-top:0}.service-chapter{padding:28px 7% 31px}
 .service-chapter-main>span{font-size:9px;line-height:1.6}.service-chapter-main h2{font-size:clamp(20px,5.7vw,24px);line-height:1.55;letter-spacing:0;margin-top:10px;text-wrap:balance}
 .service-audience{font-size:11px;line-height:1.8;margin-top:13px}.service-chapter-main>.reading-text{font-size:13px;line-height:1.9;margin-top:16px}
 .service-more{margin-top:15px}.service-cases{margin-top:21px}
 .service-chapter .plain-link{margin-top:19px}
 /* The title is always readable; the old empty animated title slot is removed. */
 .initiatives-opening{padding:108px 7% 24px}
 .initiatives-opening>.eyebrow{font-size:9px;line-height:1.5;letter-spacing:.055em}
 .initiative-opening-copy{display:block;margin-top:19px}
 .initiative-opening-copy h1{font-size:26px;line-height:1.5;letter-spacing:.02em}
 .initiative-opening-en{font-size:11px;line-height:1.65;letter-spacing:.015em;margin-top:12px}
 .initiative-opening-copy .reading-text{font-size:13px;line-height:1.85;letter-spacing:0;margin-top:20px}
 .initiative-opening-copy .reading-text p+p{margin-top:15px}
 .initiative-opening-copy .reading-text br{display:none}
 .initiative-panorama{padding:0 7% 24px}.initiative-panorama img{height:auto;aspect-ratio:auto;object-fit:contain}.initiative-panorama figcaption{font-size:9px;line-height:1.7;margin-top:9px}
 .initiative-connection-intro{padding:28px 7% 20px}.initiative-connection-intro h2{font-size:23px;line-height:1.6;margin-top:18px}.initiative-connection-intro .reading-text{font-size:13px;line-height:1.85;margin-top:17px}
}
@media(max-width:370px){.page-works .detail-heading h1{font-size:22px}.page-works .detail-heading .detail-lead{font-size:12.5px}.mission-content h2{font-size:29px}.mission-body{font-size:12.5px}.initiative-opening-copy h1{font-size:24px}}
.motion-off .mission-scene{height:auto}.motion-off .mission-hold{position:relative;min-height:0;padding-block:65px}.motion-off .mission-rule{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.mission-scene{height:auto}.mission-hold{position:relative;min-height:0;padding-block:65px}.mission-rule{animation:none!important;transform:none!important}}

.footer-legal{display:block;font-size:11px;line-height:1.8;letter-spacing:.01em;margin-bottom:7px;overflow-wrap:anywhere}.company-context{margin-top:28px}@media(max-width:700px){.footer-legal{font-size:10px;max-width:30em}.company-context{margin-top:20px}}
