:root{--ink:#16353f;--mist:#e7f2f1;--teal:#176a73;--line:#bdcecb;--p:0;--shift:24px;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;color:var(--ink);background:#fff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;line-height:1.9}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;display:block}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #a56604;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.1rem,3.7vw,3.6rem);line-height:1.5;letter-spacing:.025em;word-break:normal;overflow-wrap:anywhere}h2{font-size:clamp(1.6rem,2.7vw,2.5rem);line-height:1.6}h3{line-height:1.65;font-size:1.15rem}header{height:88px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:32px;position:relative;z-index:5;background:white;border-bottom:1px solid #ecf0ee}.logo img{width:118px;height:54px;object-fit:contain}header nav{display:flex;gap:25px;align-items:center;font-size:.83rem;font-weight:700}header nav a{text-decoration:none}header nav a:last-child{border:1px solid;padding:10px 20px;border-radius:4px}#menu{display:none}#mobile-nav:not([hidden]){display:grid;padding:20px;gap:16px;background:var(--mist)}.skip{position:absolute;top:-100px;left:20px;background:white;z-index:20;padding:10px}.skip:focus{top:10px}.wrap{width:min(1180px,89%);margin-inline:auto}.eyebrow{display:block;font-size:.75rem;letter-spacing:.14em;font-weight:800;color:var(--teal);margin-bottom:22px}.scroll-story{height:220svh;background:var(--mist)}.sticky{position:sticky;top:0;min-height:100svh;display:flex;align-items:center}.hero-inner{width:min(1340px,89%);margin:0 auto;display:grid;grid-template-columns: .95fr 1.2fr;gap:36px;padding:45px 0}.hero-copy p{max-width:35em;font-size:.96rem;line-height:2}.button{display:inline-block;padding:15px 27px;background:var(--ink);color:white;text-decoration:none;font-weight:700;border:1px solid var(--ink);border-radius:4px}.button:hover{background:var(--teal)}.motion-controls{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:24px;align-items:center;font-size:.8rem}.motion-controls button{background:transparent;border:1px solid #8ba5a4;border-radius:3px;padding:6px 12px}.scene{align-self:center;min-width:0}.landscape{position:relative;aspect-ratio:700/430;width:100%}.layer,.route{position:absolute;inset:0;width:100%;height:100%}.community,.collaboration,.region{opacity:1}.route{pointer-events:none}.route path{fill:none;stroke:var(--teal);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p))}.dx-label{position:absolute;right:7%;top:12%;font-size:.75rem;background:white;padding:5px 12px;border:1px solid #91b8b6;border-radius:5px;opacity:var(--p)}.scene-caption{display:flex;justify-content:space-between;gap:8px;font-size:.7rem;font-weight:700;margin:22px 0 12px}.scene-caption span{opacity:.45}.scene-caption span.active{opacity:1}.progress{height:2px;background:#c4d8d5}.progress i{display:block;background:var(--teal);height:100%;width:calc(var(--p)*100%)}.narrative{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:65px 0}.number{color:var(--teal);font-size:.8rem;letter-spacing:.12em;display:block;margin-bottom:18px}.narrative p{font-size:.85rem}.team-photo img{width:100%;max-height:570px;object-fit:cover}.team-photo figcaption{font-size:.8rem;margin-top:12px}.section{padding-top:96px;padding-bottom:96px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 38px}.service-grid article{padding:32px 0;border-top:1px solid var(--line)}.service-grid p{font-size:.9rem}.tint{background:var(--mist)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:45px 0}.metrics strong{display:block;font-size:4rem;line-height:1.4;font-weight:500;letter-spacing:-.05em}.metrics strong small{font-size:1rem;letter-spacing:0;margin-left:10px}.metrics span,.note{font-size:.75rem}.text-link{display:inline-block;margin-top:24px;font-weight:bold}.brand-list article{display:grid;grid-template-columns:45px 1fr auto;gap:25px;padding:30px 0;border-top:1px solid var(--line)}.brand-list h3{font-size:1.4rem;margin-bottom:8px}.brand-list p{margin-bottom:8px}.brand-list a{align-self:center;font-size:.85rem}.message{padding:90px 8%;background:#faf7f0;margin-bottom:90px}.message h2,.message p{font-family:'Klee One','Hiragino Mincho ProN','Yu Mincho',serif}.message p{line-height:2.4;font-size:1.03rem}.signature{text-align:right}.contact-band{background:var(--ink);color:white;padding:75px 8%;position:relative}.contact-band .eyebrow{color:#b1d6d3}.contact-band .button{background:white;color:var(--ink)}footer{padding:65px 5.5%;background:#f2f6f4}footer strong{font-size:2rem;letter-spacing:.09em}footer nav{display:flex;gap:20px;flex-wrap:wrap;font-size:.85rem}footer small{font-size:.7rem}.page-heading{padding-top:85px;padding-bottom:30px;max-width:1180px}.page-heading h1{max-width:1000px}.company{display:grid;grid-template-columns:200px 1fr;margin:45px 0 75px}.company dt,.company dd{margin:0;padding:22px 0;border-bottom:1px solid var(--line)}#business{scroll-margin-top:35px}.flow .scroll-story{height:auto}.flow .sticky{position:relative;min-height:0}.flow .hero-inner{padding:65px 0}.form{max-width:760px}.form label{display:block;margin:22px 0 8px}.form input:not([type=checkbox]),.form select,.form textarea{display:block;width:100%;padding:12px;border:1px solid #819a9c;border-radius:3px;background:#fff}.form fieldset{border:1px solid var(--line);margin:25px 0}.form fieldset label{margin:8px 0}.form button{margin:25px 0}.form .notice{padding:20px;background:var(--mist)}.case-images{display:grid;grid-template-columns:1fr 1fr;gap:20px}.case-images img{width:100%;height:300px;object-fit:cover}.chart{width:100%;height:auto}.prose{max-width:900px}.prose h2{margin-top:60px}.prose h3{margin-top:32px}
@media(max-width:1050px){header nav{display:none}#menu{display:block;border:1px solid var(--line);background:white;padding:6px 13px}.hero-inner{grid-template-columns:1fr 1.1fr;gap:20px}h1{font-size:2.4rem}.scene-caption{font-size:.6rem}}
@media(max-width:700px){:root{--shift:12px}header{height:72px}.logo img{width:96px;height:44px}h1{font-size:2rem;line-height:1.55}h2{font-size:1.55rem}.scroll-story{height:auto}.sticky{position:relative;min-height:0}.hero-inner,.flow .hero-inner{grid-template-columns:1fr;padding:40px 0 36px;gap:32px}.eyebrow{font-size:.65rem;margin-bottom:18px}.hero-copy p{font-size:.88rem}.button{padding:12px 19px;font-size:.9rem}.scene-caption{font-size:.6rem;gap:4px}.motion-controls{margin-top:20px;font-size:.75rem}.narrative{grid-template-columns:1fr 1fr;gap:20px;padding:45px 0}.narrative h3{font-size:1rem}.narrative p{font-size:.78rem}.service-grid{grid-template-columns:1fr}.section{padding-top:60px;padding-bottom:60px}.metrics{grid-template-columns:1fr;gap:22px}.metrics article{border-top:1px solid var(--line);padding-top:20px}.metrics p{margin-bottom:4px}.metrics strong{font-size:3.5rem}.brand-list article{grid-template-columns:24px 1fr;gap:15px}.brand-list a{grid-column:2}.brand-list h3{font-size:1.18rem}.brand-list p{font-size:.85rem}.message{padding:45px 6%;margin-bottom:50px}.message p{font-size:.91rem}.contact-band{padding:50px 6%}.company{grid-template-columns:100px 1fr;font-size:.83rem}.page-heading{padding-top:48px}.case-images{grid-template-columns:1fr}.case-images img{height:auto}footer nav{display:grid;grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.route path{stroke-dashoffset:0}.dx-label{opacity:1}}

header{height:auto;min-height:88px;padding-block:12px}.large-text header nav{display:none}.large-text #menu{display:block}.large-text .hero-inner{grid-template-columns:1fr}.large-text .scene{max-width:800px;width:100%;margin:auto}.large-text .narrative,.large-text .service-grid{grid-template-columns:1fr 1fr}.large-text .metrics{grid-template-columns:1fr}.large-text .brand-list article{grid-template-columns:40px 1fr}.large-text .brand-list a{grid-column:2}@media(max-width:700px){header{min-height:72px}.large-text .narrative,.large-text .service-grid{grid-template-columns:1fr}.large-text .eyebrow{overflow-wrap:anywhere}}
