@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600&family=Outfit:wght@400;500;600&display=swap');
:root{--ink:#171638;--paper:#f4f7f8;--line:#d3dade;--violet:#20aee5;--sun:#f6a600;--muted:#5f6972}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",sans-serif}
.mobile-break{display:none}
a{color:inherit;text-decoration:none}
img{display:block;width:100%}
.site-header{height:88px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:20;color:var(--ink);background:rgba(244,247,248,.97);border-bottom:1px solid rgba(23,22,56,.1)}
.light-header{position:absolute;width:100%}
.logo{display:block;width:178px;height:49px;background:url("logo.png") center/contain no-repeat;font-size:0}
.logo i,.logo b{display:none}
.light-header .logo{filter:none}
nav{display:flex;align-items:center;gap:34px;font-size:13px}
nav a{position:relative}
nav a:not(.pill):after{content:"";height:1px;position:absolute;bottom:-8px;left:0;right:100%;background:currentColor;transition:.25s}
nav a:hover:after,nav a.active:after{right:0}
.pill{border:1px solid;padding:12px 20px;border-radius:99px}
.pill:hover{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.menu{display:none}
.home-hero{height:100svh;min-height:700px;position:relative;color:#fff;overflow:hidden}
.home-hero>img{height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,13,.91),rgba(7,9,14,.5) 48%,rgba(7,9,14,.08)),linear-gradient(0deg,rgba(5,7,11,.35),transparent 60%)}
.hero-copy{position:absolute;left:9vw;top:50%;transform:translateY(-45%)}
.tag,.sectag{font:500 11px "Outfit";letter-spacing:.21em}
.hero-copy h1{font-size:clamp(54px,7vw,104px);font-weight:500;line-height:1.12;margin:24px 0 30px}
.hero-copy h1 span{color:#ffc228}
.hero-copy>p:not(.tag){font-size:14px;color:rgba(255,255,255,.72);line-height:2}
.round-link{display:inline-flex;min-width:230px;justify-content:space-between;align-items:center;border:1px solid rgba(255,255,255,.55);border-radius:99px;margin-top:25px;padding:17px 22px;font-size:13px;transition:.25s}
.round-link:hover{background:#fff;color:#11131a;transform:translateY(-2px)}
.scroll{position:absolute;right:5vw;bottom:38px;font:500 9px "Outfit";letter-spacing:.2em;display:flex;align-items:center;gap:15px}
.scroll i{width:65px;height:1px;background:#fff}
.section{padding:130px 9vw}
.sectag{display:flex;align-items:center;gap:16px;color:#777b84;margin:0 0 72px}
.sectag span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;font-size:9px}
.sectag span{border-color:var(--sun);color:#b87700}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.two h2,.section-title h2,.home-about-copy h2,.story h2,.values>h2{font-size:clamp(39px,5vw,70px);font-weight:500;line-height:1.35;margin:0}
.lead,.body-copy{padding-top:28px;color:var(--muted);font-size:15px;line-height:2.15}
.startup-promise{background:#e9f4f7}
.promise-lead{display:grid;grid-template-columns:.45fr 1.1fr .75fr;gap:5vw;align-items:start}
.promise-lead>p:first-child,.origin article>p:first-child,.identity-grid article>p,.case-no,.case-head>p{font:500 10px "Outfit";letter-spacing:.17em;color:#168fbd}
.promise-lead h2{font-size:clamp(36px,4.3vw,62px);font-weight:500;line-height:1.4;margin:0}
.promise-lead>p:last-child{margin:0;color:var(--muted);font-size:14px;line-height:2.1}
.promise-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:80px;border-top:1px solid #bfd5dc}
.promise-grid article{padding:35px 35px 0 0;border-right:1px solid #bfd5dc}
.promise-grid article+article{padding-left:35px}
.promise-grid article:last-child{border-right:0}
.promise-grid b{font:500 10px "Outfit";color:#cf8300}
.promise-grid h3{font-size:25px;font-weight:500;margin:28px 0 12px}
.promise-grid p{color:var(--muted);font-size:13px;line-height:1.9}
.text-link{display:flex;justify-content:space-between;max-width:300px;margin-top:38px;padding-bottom:12px;border-bottom:1px solid var(--ink);color:var(--ink);font-size:13px}
.dark{background:#171638;color:#fff}
.dark .sectag{color:#999ca4}
.dark .sectag span{border-color:#454850}
.home-services{padding-bottom:145px}
.section-title{display:grid;grid-template-columns:1fr 1fr;align-items:end}
.section-title .sectag{grid-column:1/-1}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:75px}
.service-tile{position:relative;overflow:hidden;background:#22252d;min-height:560px;color:#fff;isolation:isolate}
.service-tile.featured{outline:1px solid #35bde9;outline-offset:-1px}
.service-tile img{height:100%;object-fit:cover;opacity:.68;transition:.65s}
.service-tile:hover img{transform:scale(1.035);opacity:.84}
.service-tile>span{position:absolute;z-index:3;top:22px;left:22px;font:500 10px "Outfit";color:#fff}
.service-tile>div{position:absolute;z-index:3;bottom:0;left:0;right:0;padding:100px 25px 28px;background:linear-gradient(transparent,rgba(5,7,12,.97))}
.service-tile small{font:500 9px "Outfit";letter-spacing:.16em;color:#b4b2ba}
.service-tile h3{font-size:20px;font-weight:500;margin:11px 35px 0 0}
.service-tile b{position:absolute;right:26px;bottom:29px}
.border{margin-top:55px}
.case-teaser{background:#fff}
.case-teaser-grid{display:grid;grid-template-columns:1fr 1fr;gap:10vw}
.case-teaser h2{font-size:clamp(36px,4.5vw,62px);font-weight:500;line-height:1.45;margin:25px 0 0}
.case-teaser-grid>div:last-child>p{color:var(--muted);font-size:14px;line-height:2.1;margin:0 0 22px}
.home-about{display:grid;grid-template-columns:1.25fr .75fr;gap:8vw;align-items:center}
.image-window{height:650px;overflow:hidden}
.image-window img{height:100%;object-fit:cover}
.home-about-copy p:not(.sectag){color:var(--muted);line-height:2.1;font-size:14px}
.cta{background:linear-gradient(135deg,#159dd7,#20b6e8 58%,#f6a600);color:#fff;padding:130px 9vw;text-align:center}
.cta h2{font-size:clamp(40px,5vw,70px);font-weight:500;margin:24px 0 15px}
.cta .round-link{min-width:260px}
.page-head{padding:120px 9vw 105px;display:grid;grid-template-columns:1fr auto;align-items:end}
.page-head .tag{grid-column:1/-1;color:var(--violet);margin-bottom:45px}
.page-head h1{font-size:clamp(55px,7vw,100px);font-weight:500;line-height:1.2;margin:0}
.page-head>p:last-child{color:var(--muted);font-size:14px;line-height:2}
.page-visual{margin:0 5vw;height:70vh;min-height:520px;overflow:hidden}
.page-visual img{height:100%;object-fit:cover}
.story{padding-top:145px}
.body-copy p{margin:0 0 28px}
.origin{background:#e9f4f7}
.origin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#bfd5dc}
.origin article{position:relative;background:#e9f4f7;padding:60px 6vw 70px 0}
.origin article+article{padding-left:6vw;padding-right:0}
.origin article h2{font-size:clamp(34px,4vw,54px);font-weight:500;line-height:1.45;margin:25px 0 30px}
.origin article>p:not(:first-child){color:var(--muted);font-size:14px;line-height:2.1}
.moon-mark{display:flex;align-items:end;height:85px;margin:25px 0 -5px}
.moon-mark i{display:block;width:70px;height:70px;border-radius:50%;background:#21afe2;opacity:.9}
.moon-mark i+ i{width:82px;height:82px;margin-left:-24px;margin-bottom:22px;background:#ffad00;mix-blend-mode:multiply}
.values>h2{margin-bottom:65px}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3b3e45}
.value-grid article{padding:48px 40px 30px 0;border-right:1px solid #3b3e45}
.value-grid article+article{padding-left:40px}
.value-grid article:last-child{border-right:0}
.value-grid b{color:var(--violet);font:500 12px "Outfit"}
.value-grid h3{font-size:28px;font-weight:500;margin:50px 0 15px}
.value-grid p{color:#a7a9ae;line-height:1.9;font-size:13px}
.service-detail{padding:125px 9vw;display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:center;border-top:1px solid var(--line)}
.service-detail.reverse .detail-image{order:2}
.detail-image{height:560px;overflow:hidden}
.detail-image img{height:100%;object-fit:cover}
.detail-copy>p:first-child{color:var(--violet);font:500 10px "Outfit";letter-spacing:.16em}
.detail-copy h2{font-size:clamp(28px,3.3vw,46px);line-height:1.5;font-weight:500;margin:28px 0}
.detail-copy>p:not(:first-child){color:var(--muted);line-height:2;font-size:14px}
.detail-copy ul{list-style:none;padding:0;margin:35px 0 0;border-top:1px solid var(--line)}
.detail-copy li{padding:16px 5px;border-bottom:1px solid var(--line);font-size:13px}
.detail-copy li:before{content:"—";margin-right:15px;color:var(--violet)}
.scope-note{display:block;margin-top:14px;color:#7b858d;font-size:10px;line-height:1.7}
.method-note{margin-top:22px;padding:0;color:#687078!important;font-size:12px!important;line-height:1.9!important}
.method-note b{display:block;margin-bottom:3px;color:var(--ink);font-weight:500}
.case-study{padding-top:120px;padding-bottom:120px}
.case-head{display:grid;grid-template-columns:.55fr 1.45fr;gap:5vw;align-items:start;margin-bottom:75px}
.case-head h2{font-size:clamp(38px,4.7vw,66px);font-weight:500;line-height:1.4;margin:0}
.case-columns{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #414452}
.case-columns article{padding:42px 40px 10px 0;border-right:1px solid #414452}
.case-columns article+article{padding-left:40px}
.case-columns article:last-child{border-right:0}
.case-columns b{font:500 10px "Outfit";letter-spacing:.12em;color:#34bde9}
.case-columns h3{font-size:21px;font-weight:500;line-height:1.6;margin:28px 0 15px}
.case-columns p{color:#a9abb3;font-size:13px;line-height:2}
.case-note{margin:45px 0 0;color:#777b85;font-size:10px}
.process .two{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:6vw;align-items:start}
.process .two h2{font-size:clamp(38px,3.7vw,52px);line-height:1.5;max-width:13em}
.process-intro{max-width:38em;padding-top:12px;color:var(--muted);font-size:15px;line-height:2.1}
.process-list{list-style:none;margin:75px 0 0;padding:0;border-top:1px solid var(--line)}
.process-list li{display:grid;grid-template-columns:100px 1fr;padding:28px 0;border-bottom:1px solid var(--line)}
.process-list li>b{font:500 11px "Outfit";color:#168fbd;padding-top:5px}
.process-list h3{font-size:22px;font-weight:500;margin:0 0 8px}
.process-list p{color:var(--muted);font-size:13px;margin:0}
.company-main h2{font:500 clamp(48px,6vw,85px) "Outfit";line-height:1.1}
.identity{padding-top:115px;padding-bottom:120px}
.identity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#414452}
.identity-grid article{background:#171638;padding:45px 35px 55px}
.identity-grid h2{font-size:clamp(24px,2.2vw,32px);font-weight:500;line-height:1.65;margin:35px 0 0}
.representative{background:#fff}
.representative-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}
.message-en{font:400 clamp(35px,4.5vw,60px) "Outfit";line-height:1.15;color:#aebbc0;margin:0 0 50px}
.representative-grid h2{font-size:clamp(40px,5vw,68px);font-weight:500;line-height:1.4;margin:0}
.message-body>p{color:var(--muted);font-size:15px;line-height:2.2;margin:0 0 26px}
.message-body .signature{margin-top:55px;color:var(--ink);font-size:12px;line-height:2}
.signature b{font-size:22px;font-weight:500;margin-right:10px}
.signature small{color:var(--muted)}
.profile{margin:0}
.profile>div{display:grid;grid-template-columns:120px 1fr;padding:24px 0;border-top:1px solid var(--line)}
.profile>div:last-child{border-bottom:1px solid var(--line)}
.profile dt{color:var(--muted);font-size:12px}
.profile dd{margin:0;font-size:14px;line-height:2}
.address-band{padding:100px 9vw;background:linear-gradient(120deg,#159fd8,#21b4e5 65%,#f6a600);color:#fff;display:flex;justify-content:space-between;align-items:end}
.address-band>div>p{font:500 10px "Outfit";letter-spacing:.18em}
.address-band h2{font:500 clamp(45px,6vw,80px) "Outfit";margin:20px 0 0}
.address-band>p{font-size:14px;line-height:2}
.contact-page{background:#171638;color:#fff}
.contact-main{padding:130px 9vw 110px;min-height:720px}
.contact-main .tag{color:#42c5ef}
.contact-main h1{font-size:clamp(55px,8vw,110px);font-weight:500;line-height:1.15;margin:30px 0}
.contact-main>p:not(.tag){color:#b2b4ba;font-size:14px;line-height:2}
.mail-button{display:grid;grid-template-columns:90px 1fr auto;align-items:center;max-width:800px;margin-top:65px;padding:25px 0;border-top:1px solid #555861;border-bottom:1px solid #555861}
.mail-button small{font:500 9px "Outfit";letter-spacing:.15em}
.mail-button span{font:400 clamp(22px,3vw,38px) "Outfit"}
.mail-button b{font-size:24px}
.notice{display:block;margin-top:14px;color:#7f8289}
.contact-help{margin:0 9vw 110px;padding:45px;background:#22252d;display:grid;grid-template-columns:1fr 2fr}
.contact-help>p{color:#ffc228;font-size:12px}
.contact-help ul{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px;color:#c4c5c8;font-size:13px}
.contact-form-section{padding:104px 9vw;background:var(--paper);color:var(--ink)}
.contact-form-head{display:grid;grid-template-columns:.55fr 1.45fr;gap:6vw;align-items:start;margin-bottom:72px}
.contact-form-head>.tag{margin:12px 0 0;color:#168fbd}
.contact-form-head h2{margin:0;font:500 clamp(38px,4.3vw,62px)/1.45 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.03em}
.contact-form-head>div>p{max-width:42em;margin:28px 0 0;color:var(--muted);font-size:14px;line-height:2}
.contact-form{max-width:980px;margin-left:auto}
.form-field{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start;padding:28px 0;border-top:1px solid var(--line)}
.form-field:last-of-type{border-bottom:1px solid var(--line)}
.form-field label{padding-top:12px;font-size:14px;font-weight:500}
.form-field label span{display:inline-block;margin-left:10px;color:#168fbd;font:500 9px "Outfit";letter-spacing:.1em}
.form-field input,.form-field textarea{width:100%;border:1px solid #c8c8c4;border-radius:0;background:#fff;padding:14px 16px;color:var(--ink);font:inherit;line-height:1.7;transition:border-color .2s,box-shadow .2s}
.form-field textarea{resize:vertical;min-height:190px}
.form-field input:focus,.form-field textarea:focus{outline:0;border-color:#28b4e4;box-shadow:0 0 0 3px rgba(40,180,228,.14)}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-privacy{margin:22px 0;color:var(--muted);font-size:12px;line-height:1.8}
.form-submit{display:flex;width:min(100%,360px);justify-content:space-between;align-items:center;margin-left:auto;padding:18px 22px;border:0;background:var(--ink);color:#fff;font:500 14px "Noto Sans JP",sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.form-submit:hover{background:#28aedd;transform:translateY(-2px)}
.form-status{display:none;max-width:980px;margin:0 0 28px auto;padding:16px 18px;font-size:14px;line-height:1.8}
.form-status.is-visible{display:block}
.form-status.is-success{background:#e2f5ec;color:#175d42;border-left:4px solid #2c9b70}
.form-status.is-error{background:#fff0e8;color:#8a3f20;border-left:4px solid #db7548}
.next{padding:80px 9vw;display:flex;align-items:center;justify-content:space-between;background:#eeede8}
.next p{font:500 10px "Outfit";letter-spacing:.18em}
.next a{font-size:clamp(24px,3vw,40px)}
footer{padding:65px 5vw 30px;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:30px;align-items:end;background:#e9f4f7;color:var(--ink);border-top:1px solid #d1e5eb}
footer>div{display:flex;flex-direction:column;gap:10px;font-size:11px;color:#465b65}
footer p{font-size:11px;color:#60757e;line-height:1.8;margin:0}
footer>small{color:#78909a;font-size:9px}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}
.reveal.show{opacity:1;transform:none}

@media(max-width:900px){body.menu-open{overflow:hidden}
.site-header{height:70px;padding:0 20px}
.light-header{position:absolute}
.site-header .logo{position:relative;z-index:22;width:150px;height:41px}
.menu{display:block;position:relative;z-index:22;width:42px;height:42px;border:0;background:none;color:inherit}
.menu span{position:absolute;left:8px;width:26px;height:1px;background:currentColor;transition:.25s}
.menu span:first-child{top:16px}
.menu span:last-child{top:25px}
.menu.open span:first-child{transform:translateY(4.5px) rotate(45deg)}
.menu.open span:last-child{transform:translateY(-4.5px) rotate(-45deg)}
nav{position:fixed;z-index:21;top:0;right:0;bottom:0;left:0;width:100vw;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;padding:115px 24px 40px;background:linear-gradient(145deg,#f4f7f8,#e7f4f8);color:var(--ink);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .25s,visibility .25s,transform .25s;font-size:18px;overflow-y:auto}
nav.open{opacity:1;visibility:visible;transform:none}
nav a{padding:20px 4px;border-bottom:1px solid #cbdde3}
nav a:not(.pill):after{display:none}
nav .pill{margin-top:24px;padding:17px 20px;text-align:center;background:var(--violet);border-color:var(--violet);color:#fff}
.menu.open{color:var(--ink)}
.home-hero{min-height:680px}
.home-hero>img{object-position:66% center}
.hero-overlay{background:linear-gradient(90deg,rgba(6,8,13,.86),rgba(7,9,14,.25)),linear-gradient(0deg,rgba(5,7,11,.5),transparent 70%)}
.hero-copy{left:24px;right:20px}
.hero-copy h1{font-size:48px}
.hero-copy>p:not(.tag){font-size:12px}
.scroll{display:none}
.section{padding:90px 24px}
.sectag{margin-bottom:48px}
.two,.section-title,.home-about,.page-head,.service-detail,.contact-help{grid-template-columns:1fr}
.two{gap:40px}
.two h2,.section-title h2,.home-about-copy h2,.story h2,.values>h2{font-size:38px}
.lead,.body-copy{padding-top:0}
.promise-lead,.case-teaser-grid,.origin-grid,.case-head,.representative-grid{grid-template-columns:1fr}
.promise-lead{gap:30px}
.promise-lead h2{font-size:36px}
.promise-grid{grid-template-columns:1fr;margin-top:55px}
.promise-grid article,.promise-grid article+article{padding:30px 0;border-right:0;border-bottom:1px solid #bfd5dc}
.case-teaser-grid{gap:40px}
.case-teaser h2{font-size:36px}
.service-grid{grid-template-columns:1fr;margin-top:45px}
.service-tile{min-height:440px}
.home-about{gap:50px}
.image-window{height:400px}
.cta{padding:95px 24px}
.page-head{padding:95px 24px 70px;gap:35px}
.page-head .tag{margin-bottom:10px}
.page-head h1{font-size:48px}
.page-visual{margin:0;height:58vh;min-height:420px}
.value-grid{grid-template-columns:1fr}
.value-grid article,.value-grid article+article{padding:35px 0;border-right:0;border-bottom:1px solid #3b3e45}
.value-grid h3{margin:25px 0 10px}
.origin-grid{gap:1px}
.origin article,.origin article+article{padding:45px 0}
.origin article h2{font-size:35px}
.service-detail{padding:80px 24px;gap:40px}
.service-detail.reverse .detail-image{order:0}
.detail-image{height:340px}
.detail-copy h2{font-size:28px}
.case-head{gap:25px;margin-bottom:50px}
.case-head h2{font-size:36px}
.case-columns,.identity-grid{grid-template-columns:1fr}
.case-columns article,.case-columns article+article{padding:32px 0;border-right:0;border-bottom:1px solid #414452}
.process-list li{grid-template-columns:55px 1fr}
.company-main h2{font-size:55px}
.identity-grid article{padding:35px 25px}
.representative-grid{gap:55px}
.message-en{font-size:37px;margin-bottom:30px}
.representative-grid h2{font-size:42px}
.profile>div{grid-template-columns:90px 1fr}
.address-band{padding:75px 24px;display:block}
.address-band>p{margin-top:35px}
.contact-main{padding:90px 24px 75px;min-height:0}
.contact-main h1{font-size:49px}
.mail-button{grid-template-columns:1fr auto;gap:10px}
.mail-button small{grid-column:1/-1}
.mail-button span{font-size:23px}
.contact-help{margin:0 24px 80px;padding:28px}
  .contact-help ul{grid-template-columns:1fr;padding-left:18px}
  .contact-form-section{padding:70px 22px}
  .contact-form-head{grid-template-columns:1fr;gap:20px;margin-bottom:42px}
  .contact-form-head h2{font-size:clamp(31px,8.8vw,39px);line-height:1.55}
  .contact-form-head>div>p{margin-top:20px}
  .contact-form{margin:0}
  .form-field{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .form-field label{padding-top:0}
  .form-submit{width:100%;margin:0}
.next{padding:58px 24px}
.next a{font-size:22px}
footer{grid-template-columns:1fr;padding:50px 24px 28px}
footer>div{margin:20px 0}
}

/* LUNAiy editorial design system */
:root{--ink:#12152f;--paper:#f7f5ef;--line:#d8d6cd;--violet:#28b4e4;--sun:#f5a900;--muted:#60656d}
body{background:var(--paper);letter-spacing:.015em}
h1,h2,h3{text-wrap:balance;word-break:auto-phrase}
.site-header{height:82px;padding:0 4.5vw;background:rgba(247,245,239,.97);border-color:#dedbd2}
.light-header{background:rgba(247,245,239,.97)}
.logo{width:166px;height:46px}
nav{gap:40px;font:500 12px "Outfit","Noto Sans JP",sans-serif;letter-spacing:.08em}
.pill{padding:12px 22px;border-color:#9b9ba3}
.section{padding:145px 7vw}
.sectag{margin-bottom:82px;color:#777b82}
.sectag span{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.home-hero{min-height:760px;background:var(--ink)}
.home-hero>img{filter:saturate(.72) contrast(1.05);transform:scale(1.01)}
.home-hero:after{content:"";position:absolute;z-index:1;right:-6vw;top:15%;width:28vw;height:28vw;border:1px solid rgba(255,180,0,.48);border-radius:50%;box-shadow:0 0 80px rgba(255,170,0,.1);pointer-events:none}
.hero-overlay{background:linear-gradient(90deg,rgba(8,10,29,.94) 0%,rgba(8,10,29,.68) 46%,rgba(8,10,29,.2) 75%),linear-gradient(0deg,rgba(8,10,29,.55),transparent 60%)}
.hero-copy{left:7vw;top:54%;z-index:2}
.hero-copy h1,.page-head h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.035em}
.hero-copy h1{font-size:clamp(68px,8.4vw,126px);line-height:1.04;margin:28px 0 34px}
.hero-copy h1 span{color:#ffc02e;font-style:italic}
.hero-copy .tag{color:#77d7f4}
.round-link{min-width:245px;padding:16px 22px;border-radius:2px}
.scroll{bottom:30px;right:4.5vw}
.intro{background:var(--paper);padding-top:170px;padding-bottom:170px}
.intro .two{grid-template-columns:.9fr 1.1fr;gap:12vw}
.intro h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(50px,6vw,84px);line-height:1.35;letter-spacing:-.035em}
.lead{max-width:560px;padding-top:45px}
.text-link{max-width:330px;border-color:#94949a}
.startup-promise{position:relative;overflow:hidden;background:var(--ink);color:#fff}
.startup-promise:after{content:"";position:absolute;right:-145px;bottom:-265px;width:360px;height:360px;border-radius:50%;background:#f5a900;opacity:.22;pointer-events:none}
.startup-promise .sectag{color:#78d7f4}
.promise-lead{position:relative;z-index:1;grid-template-columns:.35fr 1.15fr .7fr}
.promise-lead>p:first-child{color:#68d2f2}
.promise-lead h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(42px,5vw,72px);letter-spacing:-.03em}
.promise-lead>p:last-child{color:#b6bac4}
.promise-grid{position:relative;z-index:1;border-color:#3d4056}
.promise-grid article{border-color:#3d4056}
.promise-grid h3{font-size:28px}
.promise-grid p{color:#aeb1bc}
.home-services{background:var(--paper);color:var(--ink);padding-top:95px}
.home-services .sectag{color:#777b82}
.home-services .section-title h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(52px,6vw,86px);letter-spacing:-.035em}
.home-services .service-overview{align-self:end;justify-self:end;max-width:35em;margin:0 0 8px;padding-left:4vw}
.home-services .service-intro{margin:0;color:#656973;font-size:14px;line-height:2;text-align:left}
.home-services .service-title-link{max-width:270px;margin-top:28px;border-color:#8b8b91}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,360px);gap:18px;margin-top:75px}
.service-tile{min-height:0;background:#11152f}
.service-tile.featured{grid-row:auto;outline:0}
.service-tile img{opacity:.76}
.service-tile.featured div,.service-tile>div{padding:120px 32px 30px}
.service-tile h3,.service-tile.featured h3{max-width:90%;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(24px,2.3vw,32px);line-height:1.5;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.85)}
.home-services .round-link{color:var(--ink);border-color:#8b8b91}
.case-teaser{position:relative;background:#29b2e1;color:#07152b;overflow:hidden}
.case-teaser:before{content:"CASE";position:absolute;right:-.03em;bottom:-.22em;color:rgba(255,255,255,.16);font:600 22vw "Outfit";letter-spacing:-.06em}
.case-teaser .sectag,.case-teaser .case-no{color:#07354b}
.case-teaser .sectag span{background:#ffc02e}
.case-teaser h2{position:relative;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(46px,5vw,72px);letter-spacing:-.03em}
.case-teaser-grid>div:last-child{position:relative}
.case-teaser-grid>div:last-child>p{color:#123b4d;font-weight:500}
.home-about{background:#f0ede4;grid-template-columns:1.15fr .85fr;padding-top:160px;padding-bottom:160px}
.image-window{height:720px;box-shadow:28px 28px 0 #28b4e4}
.home-about-copy{padding-left:2vw}
.home-about-copy h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(45px,5vw,70px);letter-spacing:-.03em}
.cta{position:relative;overflow:hidden;background:var(--ink);padding:150px 9vw}
.cta:before,.cta:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.cta:before{width:360px;height:360px;left:-90px;top:-160px;background:#28b4e4;opacity:.72}
.cta:after{width:230px;height:230px;right:4vw;bottom:-100px;background:#f5a900;opacity:.94}
.cta>*{position:relative;z-index:1}
.cta h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(48px,6vw,84px);letter-spacing:-.035em}
.page-head{position:relative;min-height:540px;padding:145px 7vw 95px;background:var(--ink);color:#fff;overflow:hidden}
.page-head:after{content:"";position:absolute;right:-8vw;top:-12vw;width:38vw;height:38vw;border:1px solid rgba(255,187,31,.5);border-radius:50%;box-shadow:0 0 100px rgba(255,169,0,.08)}
.page-head .tag{color:#62d0f2}
.page-head h1{position:relative;z-index:1;font-size:clamp(64px,8vw,112px)}
.page-head>p:last-child{position:relative;z-index:1;color:#b7bbc4}
.page-visual{margin:0;height:680px}
.page-visual img{filter:saturate(.78)}
.story{padding-top:170px;padding-bottom:170px}
.story h2,.origin article h2,.representative-grid h2,.company-main h2,.process h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.03em}
.origin{background:#eaf5f7}
.origin-grid{background:#badce6}
.origin article{background:#eaf5f7}
.values{background:var(--ink)}
.service-detail{padding:145px 7vw;gap:9vw}
.detail-image{height:620px;box-shadow:-20px 20px 0 #29b2e1}
.service-detail.reverse .detail-image{box-shadow:20px 20px 0 #f5a900}
.detail-copy h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(34px,3.6vw,52px);letter-spacing:-.025em}
.case-study,.identity{background:var(--ink)}
.process{background:#f0ede4}
.process-list li{padding:34px 0}
.identity-grid article{background:var(--ink)}
.representative{padding-top:165px;padding-bottom:165px}
.address-band{background:#29b2e1;color:#07152b}
.contact-page,.contact-main{background:var(--ink)}
.contact-main{position:relative;overflow:hidden}
.contact-main:after{content:"";position:absolute;right:-80px;top:100px;width:420px;height:420px;border-radius:50%;background:#f5a900;opacity:.9}
.contact-main>*{position:relative;z-index:1}
.mail-button{border-color:#52566a}
.contact-help{background:#20243e}
footer{background:#eaf5f7;border-color:#cce2e8}
.scroll-progress{position:fixed;z-index:100;left:0;top:0;width:0;height:3px;background:linear-gradient(90deg,#28b4e4,#f5a900);pointer-events:none;transition:width .08s linear}
.service-tile:after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(420px circle at var(--glow-x,50%) var(--glow-y,50%),rgba(40,180,228,.28),transparent 55%);opacity:0;transition:opacity .35s;pointer-events:none}
.service-tile:hover:after{opacity:1}
.service-tile img{will-change:transform}
.home-hero>img{will-change:transform}
.reveal{transition-delay:var(--reveal-delay,0ms)}
.js-ready .round-link b,.js-ready .text-link b,.js-ready .service-tile b{display:inline-block;transition:transform .25s ease}
.js-ready .round-link:hover b,.js-ready .text-link:hover b,.js-ready .service-tile:hover b{transform:translate(4px,-4px)}
.js-ready .home-services .service-title-link:hover b{transform:translateX(5px)}
.js-ready .service-grid .service-tile{opacity:1;transform:none;clip-path:inset(0 0 0 0);overflow:hidden}
.js-ready .service-grid .service-tile:before{content:"";position:absolute;z-index:5;inset:0;background:linear-gradient(135deg,#151936,#25b5e6);transform:translateX(0);transition:transform .95s cubic-bezier(.77,0,.18,1);pointer-events:none}
.js-ready .service-grid .service-tile:nth-child(2):before{background:linear-gradient(135deg,#f6a900,#ffca3b)}
.js-ready .service-grid .service-tile:nth-child(3):before{background:linear-gradient(135deg,#181b38,#283054)}
.js-ready .service-grid .service-tile:nth-child(4):before{background:linear-gradient(135deg,#21a9d1,#f6a900)}
.js-ready .service-grid .service-tile.show:before{transform:translateX(102%)}
.js-ready .service-grid .service-tile img{transform:scale(1.1);transition:transform 1.35s cubic-bezier(.2,.7,.2,1),opacity .5s}
.js-ready .service-grid .service-tile.show img{transform:scale(1)}
.js-ready .service-grid .service-tile.show:hover img{transform:scale(1.045)}
.js-ready .service-grid .service-tile>span,.js-ready .service-grid .service-tile>div{opacity:0;transform:translateY(18px);transition:opacity .55s ease .52s,transform .55s ease .52s}
.js-ready .service-grid .service-tile.show>span,.js-ready .service-grid .service-tile.show>div{opacity:1;transform:none}
.site-header{transition:height .3s ease,box-shadow .3s ease,background .3s ease}
.site-header.is-scrolled{position:fixed;top:0;left:0;width:100%;height:68px;background:rgba(247,245,239,.98);box-shadow:0 12px 35px rgba(18,21,47,.09)}
.site-header.is-scrolled .logo{width:145px;height:40px}
.js-ready .motion-heading{opacity:1;transform:none;clip-path:none}
.js-ready .motion-heading.heading-in{animation:heading-rise .9s cubic-bezier(.2,.7,.2,1) both}
.js-ready section h2.motion-heading:after{content:"";display:block;width:min(90px,20vw);height:2px;margin-top:22px;background:linear-gradient(90deg,#28b4e4,#f5a900);transform:scaleX(0);transform-origin:left;transition:transform .7s ease .45s}
.js-ready section h2.motion-heading.heading-in:after{transform:scaleX(1)}
.js-ready .motion-label:after{content:"";display:block;flex:1;height:1px;margin-left:8px;background:currentColor;opacity:.32;transform:scaleX(0);transform-origin:left;transition:transform .8s ease .25s}
.js-ready .motion-label.label-in:after{transform:scaleX(1)}
.js-ready .motion-label span{transition:transform .65s cubic-bezier(.2,.8,.2,1),background .4s}
.js-ready .motion-label.label-in span{transform:rotate(360deg)}
.js-ready .motion-media{clip-path:none}
.js-ready .motion-media img{transform:scale(1);transition:transform 1.35s cubic-bezier(.2,.7,.2,1)}
.js-ready .motion-media.media-in{animation:media-open 1s cubic-bezier(.77,0,.18,1) both}
.js-ready .motion-media.media-in img{animation:media-settle 1.35s cubic-bezier(.2,.7,.2,1) both}
@keyframes heading-rise{from{opacity:.15;transform:translateY(34px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes media-open{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}
@keyframes media-settle{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes first-view-title{from{opacity:0;transform:translate3d(0,38px,0);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0)}}
@keyframes first-view-copy{from{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* Scroll-linked motion: scrolling upward follows the same timeline backward. */
.js-ready .scroll-reveal.reveal{opacity:var(--scroll-opacity,1);transform:translate3d(0,var(--scroll-y,0),0);transition:none}
.js-ready .scroll-heading{opacity:1;transform:translate3d(var(--scroll-x,0),var(--scroll-y,0),0) rotate(var(--heading-tilt,0deg));clip-path:inset(var(--heading-clip-top,0) var(--heading-clip-right,0) var(--heading-clip-bottom,0) var(--heading-clip-left,0));animation:none;transition:none;will-change:transform,clip-path}
.js-ready section h2.scroll-heading:after{transform:scaleX(var(--scroll-line-scale,1));transition:none}
.js-ready section h2.scroll-heading[data-heading-variant="2"]:after{transform-origin:right}
.js-ready .scroll-label:after{transform:scaleX(var(--scroll-line-scale,1));transition:none}
.js-ready .scroll-label span{transform:rotate(var(--scroll-rotate,0deg));transition:none}
.js-ready .scroll-media{clip-path:inset(0 0 var(--scroll-clip,0) 0);animation:none;transition:none}
.js-ready .scroll-media img{transform:scale(var(--scroll-scale,1));animation:none;transition:none}
.js-ready .service-grid .service-tile.scroll-reveal:before{transform:translateX(var(--scroll-cover,102%));transition:none}
.js-ready .service-grid .service-tile.scroll-reveal>span,.js-ready .service-grid .service-tile.scroll-reveal>div{opacity:var(--scroll-opacity,1);transform:translate3d(0,var(--scroll-y,0),0);transition:none}

/* The first headline is already inside the viewport, so give it an entrance. */
.js-ready .hero-copy h1.scroll-heading,.js-ready .page-head h1.scroll-heading,.js-ready .contact-main h1.scroll-heading{animation:first-view-title .95s cubic-bezier(.2,.75,.2,1) backwards}
.js-ready .hero-copy .tag,.js-ready .page-head .tag,.js-ready .contact-main .tag{animation:first-view-copy .65s ease-out .12s backwards}
.js-ready .hero-copy>p:not(.tag),.js-ready .page-head>p:last-child,.js-ready .contact-main>p:not(.tag){animation:first-view-copy .75s ease-out .28s backwards}
.js-ready .hero-copy .round-link{animation:first-view-copy .75s ease-out .42s backwards}
body{transition:opacity .28s ease,transform .28s ease}
body.page-leaving{opacity:0;transform:translateY(-10px)}

@media(max-width:900px){
  .section{padding:95px 24px}
  .intro .two,.promise-lead,.home-about,.representative-grid{grid-template-columns:minmax(0,1fr);gap:45px}
  .process .two{grid-template-columns:minmax(0,1fr);gap:25px}
  .promise-grid,.case-columns,.identity-grid{grid-template-columns:minmax(0,1fr)}
  .home-hero{min-height:700px}
  .home-hero:after{width:65vw;height:65vw;right:-30vw;top:18%}
  .hero-copy{left:24px;top:52%}
  .hero-copy h1{font-size:52px;line-height:1.13}
  .hero-copy>p:not(.tag){max-width:88%;line-height:1.8}
  .intro{padding-top:110px;padding-bottom:110px}
  .intro h2{font-size:clamp(36px,10.5vw,46px);line-height:1.45}
  .startup-promise:after{width:220px;height:220px;right:-120px;bottom:-155px;opacity:.18}
  .promise-lead h2{font-size:clamp(34px,9.5vw,42px);line-height:1.5}
  .startup-promise{padding-bottom:72px}
  .home-services{padding-top:72px}
  .home-services .section-title h2{font-size:clamp(38px,10.5vw,48px);line-height:1.45}
  .home-services .service-overview{justify-self:start;margin:20px 0 0;padding-left:0}
  .home-services .service-intro{font-size:13px}
  .home-services .service-title-link{margin-top:22px}
  .service-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:14px}
  .service-tile,.service-tile.featured{grid-row:auto;min-height:410px}
  .service-tile.featured div,.service-tile>div{padding:110px 24px 26px}
  .service-tile.featured h3,.service-tile h3{font-size:27px}
  .case-teaser h2{font-size:clamp(34px,9.5vw,42px);line-height:1.5}
  .home-about{padding-top:110px;padding-bottom:110px}
  .image-window{height:430px;box-shadow:12px 12px 0 #28b4e4}
  .home-about-copy{padding:15px 0 0}
  .home-about-copy h2,.story h2,.values>h2,.origin article h2,.representative-grid h2,.process h2{font-size:clamp(34px,9.5vw,42px);line-height:1.5}
  .cta{padding:110px 24px}
  .cta:before{width:220px;height:220px}
  .cta:after{width:150px;height:150px}
  .cta h2{font-size:clamp(36px,10vw,44px);line-height:1.5}
  .page-head{min-height:430px;padding:115px 24px 70px}
  .page-head:after{width:75vw;height:75vw;right:-35vw;top:-10vw}
  .page-head h1{font-size:52px}
  .page-visual{height:480px;min-height:0}
  .detail-image{height:360px;box-shadow:-10px 10px 0 #29b2e1}
  .company-main h2{font-size:clamp(42px,12vw,54px)}
  .service-detail.reverse .detail-image{box-shadow:10px 10px 0 #f5a900}
  .contact-main:after{width:220px;height:220px;right:-120px;top:160px}
}

/* Use the full width for the four-step workflow on desktop. */
@media(min-width:901px){
  .process-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}
  .process-list li{display:block;min-height:190px;padding:34px 32px 38px;border-right:1px solid var(--line);border-bottom:0}
  .process-list li:first-child{padding-left:0}
  .process-list li:last-child{padding-right:0;border-right:0}
  .process-list li>b{display:block;padding:0}
  .process-list h3{margin:42px 0 12px;font-size:clamp(20px,1.7vw,25px)}
  .process-list p{max-width:18em;line-height:1.85}
}

a:focus-visible,button:focus-visible{outline:3px solid var(--sun);outline-offset:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.service-tile img,.round-link{transition:none}.js-ready .service-grid .service-tile:before{display:none}.js-ready .service-grid .service-tile img{transform:none}.js-ready .service-grid .service-tile>span,.js-ready .service-grid .service-tile>div{opacity:1;transform:none;transition:none}.js-ready .motion-heading,.js-ready .motion-media{opacity:1;transform:none;clip-path:none;transition:none}.js-ready .motion-media img{transform:none;transition:none}.js-ready .motion-label:after{transform:none}.js-ready .motion-label span{transform:none}body{transition:none}body.page-leaving{opacity:1;transform:none}}

/* Type and spacing audit */
.section{padding-top:104px;padding-bottom:104px}
.sectag{margin-bottom:52px}
.two>*,.section-title>*,.detail-copy,.representative-grid>*,.promise-lead>*{min-width:0}
h1,h2,h3{max-width:100%;line-break:strict}
p,dd,li{overflow-wrap:break-word}
.hero-copy h1{font-size:clamp(62px,7.5vw,112px)}
.intro{padding-top:110px;padding-bottom:110px}
.intro h2{font-size:clamp(46px,5.2vw,72px)}
.promise-lead h2{font-size:clamp(40px,4.4vw,62px)}
.startup-promise{padding-bottom:82px}
.home-services{padding-top:78px;padding-bottom:105px}
.home-services .sectag{margin-bottom:48px}
.home-services .sectag span{border:0;box-shadow:none}
.home-services .section-title h2{font-size:clamp(46px,5.3vw,74px)}
.case-teaser h2{font-size:clamp(42px,4.5vw,64px)}
.home-about{padding-top:108px;padding-bottom:108px}
.home-about-copy h2{font-size:clamp(40px,4.4vw,62px)}
.cta{padding-top:100px;padding-bottom:100px}
.cta h2{font-size:clamp(44px,5.2vw,72px)}

/* Keep key messages on deliberate, readable lines on desktop. */
.intentional-lines>span{display:block;white-space:nowrap}
.intro .two{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:7vw}
.case-teaser-grid{grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:6vw}
.case-teaser h2{font-size:clamp(40px,4.1vw,58px);line-height:1.5}

@media(max-width:900px){
  .intro .two,.case-teaser-grid{grid-template-columns:1fr}
  .intentional-lines>span{white-space:normal}
}
.page-head{min-height:490px;padding-top:125px;padding-bottom:80px}
.page-head h1{font-size:clamp(58px,7vw,96px)}
.page-head>p:last-child{max-width:34em;font-size:clamp(16px,1.25vw,19px);font-weight:500;line-height:1.95;letter-spacing:.035em;color:#d0d3da}
.story,.representative{padding-top:108px;padding-bottom:108px}
.origin article h2{font-size:clamp(32px,3.4vw,48px)}
.service-detail{padding-top:96px;padding-bottom:96px}
.detail-copy h2{font-size:clamp(32px,3.2vw,46px);max-width:14em}
.detail-copy>p:not(:first-child){max-width:42em}
.case-head h2{font-size:clamp(38px,4.2vw,58px)}
.case-columns h3{font-size:20px}
.identity-grid h2{font-size:clamp(22px,1.9vw,29px)}
.representative-grid h2{font-size:clamp(38px,4.2vw,58px)}
.message-body{max-width:720px}
.company-main h2{font-size:clamp(46px,5.2vw,72px)}
.address-band h2{font-size:clamp(42px,5vw,68px)}
.contact-main h1{font-size:clamp(54px,7.2vw,96px)}
.contact-main>p:not(.tag){max-width:48em;font-size:clamp(16px,1.2vw,18px);line-height:1.95;color:#c7cad2}
.story .two{grid-template-columns:minmax(410px,.9fr) minmax(0,1.1fr);gap:7vw}
.story .two h2{font-size:clamp(34px,3.3vw,46px);line-height:1.55;white-space:nowrap}
.next{padding:44px 7vw;min-height:0}
.next p{margin:0}
.next a{font-size:clamp(20px,2.2vw,30px);line-height:1.4}

@media(max-width:900px){
  .section{padding:64px 22px}
  .sectag{margin-bottom:34px}
  .home-hero{min-height:660px}
  .hero-copy{left:22px;right:22px}
  .hero-copy h1{font-size:clamp(43px,12vw,54px);line-height:1.2}
  .hero-copy>p:not(.tag){font-size:12px;max-width:100%}
  .round-link{min-width:210px}
  .intro,.home-services,.home-about{padding-top:70px;padding-bottom:70px}
  .intro h2,.home-services .section-title h2{font-size:clamp(34px,9.6vw,42px);line-height:1.5}
  .lead{padding-top:0}
  .promise-lead h2,.case-teaser h2,.home-about-copy h2,.story h2,.values>h2,.origin article h2,.representative-grid h2,.process h2{font-size:clamp(31px,8.8vw,39px);line-height:1.55}
  .story .two h2{font-size:clamp(30px,8.3vw,35px);white-space:nowrap}
  .process .two h2{font-size:clamp(31px,8.8vw,39px);line-height:1.55;max-width:none}
  .process-intro{padding-top:0;font-size:14px}
  .promise-grid{margin-top:45px}
  .promise-grid h3{font-size:23px}
  .service-grid{margin-top:48px}
  .service-tile,.service-tile.featured{min-height:380px}
  .service-tile.featured h3,.service-tile h3{font-size:clamp(22px,6.5vw,27px);line-height:1.55;max-width:90%}
  .case-teaser-grid{gap:32px}
  .image-window{height:390px}
  .cta{padding:70px 22px}
  .cta h2{font-size:clamp(32px,9.4vw,41px);line-height:1.55}
  .page-head{min-height:390px;padding:100px 22px 58px;gap:24px}
  .page-head h1{font-size:clamp(43px,12vw,52px);line-height:1.35}
  .page-head>p:last-child{font-size:15px;line-height:1.9}
  .page-visual{height:420px}
  .story,.representative{padding-top:70px;padding-bottom:70px}
  .origin article,.origin article+article{padding-top:38px;padding-bottom:38px}
  .service-detail{padding:60px 22px;gap:30px}
  .detail-image{height:320px}
  .detail-copy h2{font-size:clamp(28px,8vw,34px);line-height:1.55;max-width:none}
  .case-head h2{font-size:clamp(31px,8.8vw,38px);line-height:1.55}
  .case-columns h3{font-size:19px}
  .identity-grid h2{font-size:25px;line-height:1.6}
  .representative-grid{gap:40px}
  .company-main h2{font-size:clamp(39px,11vw,48px)}
  .profile>div{grid-template-columns:82px minmax(0,1fr);gap:10px}
  .address-band h2{font-size:clamp(36px,10vw,44px)}
  .contact-main{padding:82px 22px 68px}
  .contact-main h1{font-size:clamp(42px,11.5vw,50px);line-height:1.4}
  .contact-main>p:not(.tag){font-size:15px;line-height:1.9}
  .mail-button span{font-size:clamp(17px,5vw,22px);overflow-wrap:anywhere}
  .contact-help{margin-left:22px;margin-right:22px}
  .next{padding:48px 22px;gap:20px}
  .next a{font-size:20px;text-align:right}
  .story .two{grid-template-columns:minmax(0,1fr);gap:32px}
  .story .two h2{font-size:clamp(29px,8vw,34px);white-space:nowrap}
  .next{padding:34px 22px}
  .next a{font-size:18px}
}

/* Final compact next-page navigation override. */
.next{min-height:0;padding:24px 7vw;gap:24px}
.next p,.next a{margin:0;font:500 12px/1.5 "Outfit","Noto Sans JP",sans-serif;letter-spacing:.14em}
.next a{display:inline-flex;align-items:center;gap:12px;text-align:right}
.next a b{display:inline-block;font:400 17px/1 "Outfit",sans-serif;transition:transform .25s ease}
.next a:hover b{transform:translateX(5px)}

@media(max-width:900px){
  .next{padding:20px 22px}
  .next p,.next a{font-size:11px}
}

@media(prefers-reduced-motion:reduce){
  .js-ready .hero-copy h1.scroll-heading,.js-ready .page-head h1.scroll-heading,.js-ready .contact-main h1.scroll-heading,.js-ready .hero-copy .tag,.js-ready .page-head .tag,.js-ready .contact-main .tag,.js-ready .hero-copy>p:not(.tag),.js-ready .page-head>p:last-child,.js-ready .contact-main>p:not(.tag),.js-ready .hero-copy .round-link{animation:none}
}

/* Case study, FAQ and privacy policy. */
.case-columns.case-columns-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.case-summary{display:grid;grid-template-columns:.45fr 1.55fr;gap:5vw;margin-top:58px;padding:30px 0;border-top:1px solid #414452;border-bottom:1px solid #414452}
.case-summary p{margin:0;color:#34bde9;font:500 10px "Outfit";letter-spacing:.16em}
.case-summary strong{max-width:42em;color:#fff;font-size:17px;font-weight:500;line-height:2}
.case-study-secondary{margin-top:90px;padding-top:72px;border-top:1px solid #414452}
.case-study-secondary>.case-head{margin-bottom:50px}

.faq{background:#eaf5f7}
.faq-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:9vw;align-items:start}
.faq-layout>div:first-child{position:sticky;top:110px}
.faq-layout h2{margin:0;font:500 clamp(38px,4.3vw,60px)/1.5 "Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.03em}
.faq-layout>div:first-child>p{max-width:32em;margin:30px 0 0;color:var(--muted);font-size:14px;line-height:2}
.faq-list{border-top:1px solid #bcd7df}
.faq-list details{border-bottom:1px solid #bcd7df}
.faq-list summary{position:relative;padding:27px 54px 27px 0;cursor:pointer;list-style:none;font-size:16px;font-weight:500;line-height:1.7}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"＋";position:absolute;right:4px;top:27px;color:#168fbd;font:400 21px/1 "Noto Sans JP";transition:transform .25s}
.faq-list details[open] summary:after{transform:rotate(45deg)}
.faq-list details p{max-width:47em;margin:0;padding:0 48px 28px 0;color:var(--muted);font-size:14px;line-height:2}

.privacy-head h1{font-size:clamp(50px,6.5vw,90px)}
.privacy-content{max-width:1260px;margin:0 auto}
.privacy-intro{display:grid;grid-template-columns:1.4fr .6fr;gap:8vw;margin-bottom:70px}
.privacy-intro>p:first-child{max-width:48em;margin:0;color:var(--muted);font-size:15px;line-height:2.15}
.privacy-date{margin:0;text-align:right;color:#7a7f84;font-size:12px}
.privacy-list{border-top:1px solid var(--line)}
.privacy-list article{display:grid;grid-template-columns:90px minmax(0,1fr);gap:30px;padding:38px 0;border-bottom:1px solid var(--line)}
.privacy-list article>b{padding-top:7px;color:#168fbd;font:500 11px "Outfit"}
.privacy-list h2{margin:0 0 16px;font-size:22px;font-weight:500;line-height:1.6}
.privacy-list p{max-width:54em;margin:0;color:var(--muted);font-size:14px;line-height:2}
.privacy-list a,.form-privacy a{text-decoration:underline;text-underline-offset:4px}

@media(max-width:900px){
  .case-columns.case-columns-four{grid-template-columns:1fr}
  .case-summary{grid-template-columns:1fr;gap:18px;margin-top:38px}
  .case-summary strong{font-size:15px}
  .case-study-secondary{margin-top:65px;padding-top:52px}
  .case-study-secondary>.case-head{margin-bottom:38px}
  .faq-layout{grid-template-columns:1fr;gap:42px}
  .faq-layout>div:first-child{position:static}
  .faq-layout h2{font-size:clamp(31px,8.8vw,39px)}
  .faq-list summary{padding:23px 42px 23px 0;font-size:15px}
  .faq-list summary:after{top:23px}
  .faq-list details p{padding-right:10px}
  .privacy-head h1{font-size:clamp(40px,10vw,50px)}
  .privacy-intro{grid-template-columns:1fr;gap:20px;margin-bottom:45px}
  .privacy-date{text-align:left}
  .privacy-list article{grid-template-columns:42px minmax(0,1fr);gap:12px;padding:30px 0}
  .privacy-list h2{font-size:19px}
}

/* Mobile heading line-break control. */
@media(max-width:900px){
  .mobile-break{display:block}
  main h1,main h2{word-break:keep-all;overflow-wrap:normal}
  .page-head h1{font-size:clamp(34px,9.3vw,40px);line-height:1.45}
  .privacy-head h1{font-size:clamp(33px,9vw,39px)}
  .contact-main h1{font-size:clamp(34px,9.4vw,41px);line-height:1.45}
  .promise-lead h2{font-size:clamp(26px,7.2vw,31px);line-height:1.65}
  .case-teaser h2{font-size:clamp(28px,7.8vw,33px);line-height:1.65}
  .cta h2{font-size:clamp(27px,7.5vw,32px);line-height:1.65}
  .contact-form-head h2{font-size:clamp(28px,7.8vw,34px);line-height:1.65}
  .intentional-lines>span{white-space:nowrap}
}

/* Balanced footer layout. */
footer{grid-template-columns:minmax(200px,1.15fr) minmax(300px,.95fr) minmax(280px,1fr);grid-template-areas:"brand links address" "copy copy copy";gap:56px 8vw;align-items:start;padding:64px 7vw 26px;background:#eaf5f7}
footer>.logo{grid-area:brand;width:180px;height:50px;margin-top:24px}
footer>div{grid-area:links;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:13px 30px;margin:0;font-size:12px;line-height:1.6}
footer>div:before{content:"NAVIGATION";grid-column:1/-1;margin-bottom:8px;color:#168fbd;font:500 9px "Outfit";letter-spacing:.18em}
footer>div a{width:max-content;max-width:100%}
footer>p{grid-area:address;padding-top:0;font-size:12px;line-height:1.9}
footer>p:before{content:"OFFICE";display:block;margin-bottom:18px;color:#168fbd;font:500 9px "Outfit";letter-spacing:.18em}
footer>small{grid-area:copy;display:block;padding-top:20px;border-top:1px solid #c5dce3;text-align:right;font-size:10px;letter-spacing:.06em}

@media(max-width:900px){
  footer{grid-template-columns:1fr;grid-template-areas:"brand" "links" "address" "copy";gap:36px;padding:46px 22px 24px}
  footer>.logo{width:166px;height:46px;margin:0}
  footer>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0;font-size:11px}
  footer>p{font-size:11px}
  footer>small{text-align:left}
}

/* Homepage service overview: keep the four businesses visually even. */
.home-services .section-title{
  grid-template-columns:minmax(0,.95fr) minmax(360px,.75fr);
  column-gap:8vw;
}
.home-services .service-overview{
  width:100%;
  max-width:40em;
  justify-self:stretch;
  margin:0 0 10px;
  padding-left:0;
}
.home-services .service-title-link{max-width:360px}
.home-services .service-grid{
  grid-template-rows:repeat(2,clamp(330px,25vw,360px));
  gap:20px;
  margin-top:58px;
}

@media(max-width:900px){
  .home-services .section-title{grid-template-columns:minmax(0,1fr);column-gap:0}
  .home-services .service-overview{margin-top:20px;margin-bottom:0}
  .home-services .service-grid{
    grid-template-rows:none;
    grid-auto-rows:350px;
    gap:16px;
    margin-top:40px;
  }
  .home-services .service-tile,.home-services .service-tile.featured{min-height:0}
}

@media(max-width:480px){
  .home-services .service-grid{grid-auto-rows:340px}
}
