:root{--orange:#f45a23;--orange-dark:#cf3e0b;--ink:#222421;--paper:#f8f7f3;--line:#dcded6;--muted:#61635c;--font:'DM Sans','Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--orange-dark);outline-offset:6px}button{border:0}h1,h2,h3,p{margin:0}button,a,summary{touch-action:manipulation}.skip-link{position:fixed;left:12px;top:-60px;background:#fff;padding:12px;z-index:100}.skip-link:focus{top:10px}.proposal{min-height:30px;padding:7px 4.45%;display:flex;justify-content:space-between;gap:20px;background:var(--ink);color:#fff;font-size:11px;letter-spacing:.07em;line-height:1.5}.proposal span:last-child{font-size:11px;letter-spacing:.03em}.header{height:105px;padding:0 4.45%;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:rgba(248,247,243,.95);backdrop-filter:blur(18px);border-bottom:1px solid rgba(220,222,214,.75);z-index:20}.brand{font-size:41px;font-weight:700;letter-spacing:-.075em;line-height:.85;display:inline-flex;position:relative;align-items:baseline;white-space:nowrap}.brand>span{color:var(--orange)}.brand small{margin-left:20px;letter-spacing:.04em;font-size:12px;font-weight:600}.desktop-nav{display:flex;gap:34px;align-items:center;font-size:13px;font-weight:600;letter-spacing:.04em}.desktop-nav>a:not(.nav-contact){position:relative;padding:10px 0}.desktop-nav>a:not(.nav-contact)::after{content:'';position:absolute;left:0;bottom:2px;width:0;height:2px;background:var(--orange);transition:width .25s}.desktop-nav>a:hover::after{width:100%}.nav-contact{background:var(--orange);padding:18px 23px;color:#fff;display:flex;gap:30px;align-items:center;border-radius:2px;transition:background .2s}.nav-contact:hover{background:var(--orange-dark)}.small-plus{font-size:22px;line-height:14px}.menu-toggle,.mobile-nav{display:none}.hero{max-width:1600px;margin:0 auto;padding:63px 4.45% 23px;position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.hero-copy{position:relative;z-index:2;padding-top:15px}.eyebrow{font-size:12px;font-weight:600;line-height:1.6;letter-spacing:.11em;display:flex;gap:13px;align-items:center}.square{height:8px;width:8px;background:var(--orange)}.hero-kicker{font-size:16px;letter-spacing:.13em;font-weight:600;margin-top:35px}.hero h1{font-size:clamp(62px,6.5vw,94px);font-weight:800;line-height:1.26;letter-spacing:-.035em;margin:11px 0 26px}.orange{color:var(--orange)}.hero-description{font-size:15px;line-height:2.05;letter-spacing:.045em;color:#4c5048;font-weight:400}.text-link{display:inline-flex;align-items:center;gap:34px;font-size:14px;font-weight:600;margin-top:27px}.text-link>span:first-child{border-bottom:1px solid var(--ink);padding-bottom:6px}.circle-plus{border:1px solid #9fa298;width:35px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:400;transition:transform .3s,background .3s}.text-link:hover .circle-plus{background:var(--orange);border-color:var(--orange);color:#fff;transform:rotate(90deg)}.hero-visual{position:relative;align-self:stretch;min-width:0;overflow:hidden;background:#efeee8;border-radius:3px;display:flex;flex-direction:column;justify-content:space-between}.visual-top,.visual-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:23px 27px;font-size:10px;letter-spacing:.07em;font-weight:500}.connection-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;transition:transform 1s cubic-bezier(.22,1,.36,1)}.hero-visual:hover .connection-art{transform:scale(1.035) rotate(-1deg)}.visual-bottom{align-items:flex-end;padding-bottom:24px;margin-top:auto;line-height:1.5}.visual-bottom>span:nth-child(2){margin-right:auto;margin-left:18px;font-size:14px;letter-spacing:-.02em}.visual-cross{font-size:42px;font-weight:400;line-height:1}.coordinate{text-align:right}.hero-foot{grid-column:1/-1;display:flex;align-items:center;gap:20px;margin-top:37px;font-size:10px;letter-spacing:.09em;font-weight:500}.hero-foot>span:last-child{margin-left:auto}.scroll-line{height:1px;width:100px;background:#c9cbc2;position:relative;overflow:hidden}.scroll-line::before{content:'';position:absolute;left:-35px;top:0;width:35px;height:1px;background:var(--orange);animation:scroll 3s ease-in-out infinite}@keyframes scroll{to{transform:translateX(150px)}}.service-strip{background:var(--orange);color:#fff;display:flex;justify-content:space-around;gap:25px;align-items:center;padding:22px 4.45%;margin-top:33px;font-size:15px;font-weight:500;letter-spacing:.09em}.service-strip i{font-style:normal;font-size:28px;font-weight:400;line-height:1}.section-pad{padding:112px 7.2%}.section-heading{display:grid;grid-template-columns:31% 1fr;gap:20px}.section-num{font-size:11px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid #bdc1b7;border-radius:50%;letter-spacing:0}.section-heading h2,.company h2{font-size:clamp(32px,3.3vw,48px);line-height:1.65;letter-spacing:.02em;font-weight:700}.section-heading>div{display:flex;justify-content:space-between;gap:35px}.section-intro{padding-top:13px;font-size:14px;line-height:2.1;color:var(--muted);white-space:nowrap}.service-list{margin-top:54px;border-top:1px solid var(--ink)}.service-item{border-bottom:1px solid var(--line)}.service-item summary{list-style:none;display:grid;grid-template-columns:8% 41% 1fr 35px;gap:8px;align-items:center;padding:35px 0;cursor:pointer;transition:color .2s}.service-item summary::-webkit-details-marker{display:none}.service-item summary:hover{color:var(--orange-dark)}.service-index{color:var(--orange);font-size:14px;align-self:start;padding-top:5px}.service-en{font-size:11px;letter-spacing:.08em;display:block;margin-bottom:9px}.service-name h3{font-size:29px;font-weight:600;letter-spacing:.04em}.service-brief{font-size:14px;line-height:1.9;color:var(--muted)}.detail-toggle{width:34px;height:34px;border:1px solid #aeb2a6;border-radius:50%;position:relative}.detail-toggle::before,.detail-toggle::after{content:'';position:absolute;left:10px;top:16px;width:12px;height:1px;background:var(--ink)}.detail-toggle::after{transform:rotate(90deg);transition:transform .25s}.service-item[open] .detail-toggle{border-color:var(--orange);background:var(--orange)}.service-item[open] .detail-toggle::before,.service-item[open] .detail-toggle::after{background:#fff}.service-item[open] .detail-toggle::after{transform:rotate(0)}.service-content{margin-left:8.8%;padding:0 20% 38px 0;position:relative;overflow:hidden;min-height:175px}.service-content>p{max-width:615px;font-size:14px;line-height:2.05;color:#5a5e55}.service-keywords{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}.service-keywords span{font-size:12px;border:1px solid #cfd2c7;padding:6px 13px;border-radius:3px}.service-large-num{position:absolute;right:0;top:-45px;color:#e8e9e1;font-size:167px;font-weight:500;letter-spacing:-.09em;line-height:1.2;z-index:-1}.service-item{isolation:isolate}.approach{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:8%}.approach .section-num{border-color:#797e70}.approach h2{font-size:clamp(34px,3.4vw,49px);letter-spacing:.015em;line-height:1.6;margin:40px 0 24px;font-weight:600}.approach h2 span{color:#ff7545}.approach-title>p:not(.eyebrow){font-size:14px;color:#c1c5b8;line-height:2.15}.connection-diagram{display:flex;align-items:center;gap:0;margin-top:50px;width:310px;max-width:100%}.connection-diagram span{font-size:10px;letter-spacing:.08em;border:1px solid #686d60;border-radius:50%;width:98px;height:98px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.connection-diagram span:last-child{border-color:#ff7545;color:#ff7545}.connection-diagram i{height:1px;width:90px;background:linear-gradient(to right,#686d60,#ff7545);position:relative}.connection-diagram i::after{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#ff7545;left:50%;top:-3px}.approach-steps article{display:flex;align-items:flex-start;gap:28px;padding:35px 0;border-top:1px solid #4e5346}.approach-steps article:last-child{border-bottom:1px solid #4e5346}.step-number{font-size:34px;font-weight:400;letter-spacing:-.04em;color:#ff7545;line-height:1.15;min-width:44px}.step-en{font-size:11px;letter-spacing:.12em;color:#c1c5b8;margin-bottom:14px}.approach-steps h3{font-size:22px;font-weight:500;letter-spacing:.02em;margin-bottom:14px}.approach-steps h3+p{font-size:14px;line-height:1.95;color:#b9beb0}.company{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding-top:116px;padding-bottom:123px}.company h2{margin-top:32px;font-weight:600}.brand-inline{font-family:'DM Sans',sans-serif;font-size:70px;font-weight:600;letter-spacing:-.065em;line-height:1.3}.brand-inline span{color:var(--orange)}.company-intro>p:last-child{font-size:14px;line-height:2.1;color:var(--muted);margin-top:27px}.company-data{margin:50px 0 0}.company-data>div{border-bottom:1px solid var(--line);display:grid;grid-template-columns:110px 1fr;gap:20px;padding:21px 0;font-size:14px;line-height:1.85}.company-data>div:first-child{border-top:1px solid var(--ink)}.company-data dt{color:var(--muted)}.company-data dd{margin:0;font-weight:500}.contact{background:var(--orange);display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:80px;padding-bottom:84px;color:#fff;position:relative;overflow:hidden}.contact .section-num{border-color:#ffa783}.contact h2{font-size:clamp(36px,4vw,56px);font-weight:600;letter-spacing:.025em;line-height:1.55;margin:31px 0 21px}.contact p:last-child{font-size:14px;line-height:2;letter-spacing:.02em}.contact-button{width:270px;min-height:270px;border-radius:50%;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:29px;font-size:17px;font-weight:600;flex-shrink:0;transition:transform .3s,background .3s}.contact-button:hover{transform:scale(1.05);background:#fff}.contact-button-plus{font-size:43px;color:var(--orange);font-weight:400;line-height:.5}.footer{padding:58px 4.45% 25px;background:var(--paper)}.footer-main{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:56px}.footer-nav{display:flex;gap:30px;font-size:12px;font-weight:600}.footer-nav a:hover{color:var(--orange-dark)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;letter-spacing:.04em;border-top:1px solid var(--line);padding-top:24px}.footer-bottom>a{text-decoration:underline;text-underline-offset:3px;font-size:12px}.proposal-note{font-size:11px;line-height:1.8;color:#72776b;margin-top:22px}.menu-toggle{background:transparent}dialog{border:0;border-radius:4px;padding:50px;width:min(580px,calc(100% - 36px));background:var(--paper);color:var(--ink);box-shadow:0 35px 100px #0003}dialog::backdrop{background:rgba(25,28,22,.6);backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:15px;right:18px;background:none;font-size:28px;width:36px;height:36px}.dialog-close:hover{color:var(--orange-dark)}dialog h2{font-size:26px;line-height:1.5;margin:20px 0}dialog>p:not(.eyebrow){font-size:15px;line-height:2;color:var(--muted)}.dialog-contact{display:flex;flex-direction:column;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;gap:9px;margin:25px 0;font-size:14px}.dialog-contact strong{font-size:23px;font-weight:500}.dialog-back{background:var(--ink);color:white;padding:15px 22px;font-size:14px;width:100%}.dialog-back:hover{background:var(--orange-dark)}
@media(min-width:1600px){.section-pad{padding-left:calc((100vw - 1368px)/2);padding-right:calc((100vw - 1368px)/2)}}
@media(max-width:1150px){.brand small{display:none}.desktop-nav{gap:23px}.hero{padding-top:48px}.hero h1{font-size:76px}.hero-description{font-size:14px}.hero-visual{min-height:555px}.section-heading{grid-template-columns:24% 1fr}.section-heading>div{display:block}.section-intro{margin-top:15px}.service-item summary{grid-template-columns:7% 42% 1fr 35px}.service-name h3{font-size:26px}.service-brief{font-size:13px}.section-pad{padding-left:6%;padding-right:6%}.approach{gap:6%}.approach-steps h3{font-size:20px}.company-data>div{grid-template-columns:90px 1fr;gap:15px}.contact-button{width:230px;min-height:230px}}
@media(max-width:800px){html{scroll-padding-top:78px}.proposal{padding:7px 5.5%;min-height:29px}.proposal span:last-child{font-size:10px;max-width:61%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.proposal span:first-child{font-size:10px;white-space:nowrap}.header{height:78px;padding:0 5.5%}.brand{font-size:36px}.brand small{display:block;font-size:10px;margin-left:15px}.desktop-nav{display:none}.menu-toggle{display:flex;align-items:center;gap:13px;height:44px;padding:0 0 0 12px}.menu-label{font-size:11px}.menu-lines{width:21px;height:13px;position:relative;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.menu-toggle[aria-expanded=true] .menu-lines{border-color:transparent}.menu-toggle[aria-expanded=true] .menu-lines::after,.menu-toggle[aria-expanded=true] .menu-lines::before{content:'';position:absolute;top:5px;left:0;height:1px;width:21px;background:var(--ink);transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines::after{transform:rotate(-45deg)}.mobile-nav:not([hidden]){display:flex;flex-direction:column;position:absolute;left:0;right:0;top:78px;background:var(--paper);padding:16px 5.5% 25px;border-bottom:1px solid var(--line);box-shadow:0 20px 25px #0001}.mobile-nav a{padding:16px 0;border-bottom:1px solid var(--line);font-size:15px}.hero{padding:42px 5.5% 22px;grid-template-columns:1fr;gap:30px}.hero-copy{padding:0}.hero .eyebrow{font-size:10px}.hero-kicker{margin-top:29px;font-size:14px}.hero h1{font-size:70px;line-height:1.22;margin:14px 0 25px;letter-spacing:-.025em}.hero-description{font-size:14px;line-height:2.05}.text-link{font-size:13px;margin-top:24px;gap:25px}.circle-plus{width:32px;height:32px}.hero-visual{min-height:0;height:auto;aspect-ratio:1.12;max-width:none}.visual-top{font-size:9px;padding:18px 20px}.visual-bottom{padding:18px 20px}.visual-bottom>span:nth-child(2){font-size:12px}.coordinate{font-size:9px}.visual-cross{font-size:32px}.hero-foot{margin-top:0;font-size:9px;gap:15px}.scroll-line{width:65px}.service-strip{padding:19px 5.5%;gap:19px;justify-content:flex-start;overflow:hidden;margin-top:5px;font-size:10px;white-space:nowrap;letter-spacing:.06em}.service-strip i{font-size:20px}.section-pad{padding:65px 5.5%}.section-heading{display:block}.section-heading>div{margin-top:27px}.eyebrow{font-size:11px}.section-heading h2,.company h2{font-size:32px;line-height:1.65;letter-spacing:.005em}.section-intro{padding-top:0;margin-top:22px;font-size:14px}.service-list{margin-top:32px}.service-item summary{grid-template-columns:30px 1fr 31px;gap:7px;padding:28px 0}.service-index{font-size:12px}.service-en{font-size:10px;letter-spacing:.035em;margin-bottom:9px}.service-name h3{font-size:24px}.service-brief{grid-column:2;grid-row:2;font-size:13px;margin-top:8px}.detail-toggle{grid-column:3;grid-row:1;width:30px;height:30px}.detail-toggle::before,.detail-toggle::after{left:8px;top:14px}.service-content{margin-left:37px;padding:0 0 30px;min-height:0}.service-content>p{font-size:14px;line-height:2}.service-keywords{gap:6px;margin-top:20px}.service-keywords span{font-size:11px;padding:5px 9px}.service-large-num{display:none}.approach{grid-template-columns:1fr;gap:43px}.approach h2{font-size:34px;margin:28px 0 20px}.approach-title>p:not(.eyebrow){font-size:14px}.connection-diagram{margin-top:28px}.connection-diagram span{width:75px;height:75px;font-size:9px}.connection-diagram i{width:67px}.approach-steps article{padding:27px 0;gap:18px}.step-number{font-size:29px;min-width:34px}.step-en{font-size:10px;margin-bottom:11px}.approach-steps h3{font-size:19px;margin-bottom:12px}.approach-steps h3+p{font-size:13px}.company{grid-template-columns:1fr;gap:25px}.company h2{font-size:32px;margin-top:26px}.brand-inline{font-size:62px}.company-intro>p:last-child{margin-top:20px;font-size:14px}.company-data{margin-top:12px}.company-data>div{font-size:13px;grid-template-columns:81px 1fr;gap:14px;padding:19px 0}.contact{align-items:flex-start;flex-direction:column;gap:35px}.contact h2{font-size:32px;line-height:1.6;margin:28px 0 18px}.contact-button{width:100%;min-height:69px;border-radius:2px;flex-direction:row;justify-content:space-between;padding:0 25px;font-size:15px}.contact-button-plus{font-size:31px}.contact-button:hover{transform:none}.contact p:last-child{font-size:14px}.footer{padding:45px 5.5% 23px}.footer-main{flex-direction:column;align-items:flex-start;gap:37px;margin-bottom:33px}.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:19px 28px;font-size:12px}.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:19px 22px;font-size:9px;line-height:1.4}.footer-bottom>a{font-size:11px}.footer-bottom>span:last-child{width:100%;font-size:9px}.proposal-note{font-size:10px;margin-top:18px}.footer .brand small{font-size:11px}dialog{padding:40px 25px 27px}dialog h2{font-size:23px}dialog>p:not(.eyebrow){font-size:14px}.dialog-contact strong{font-size:21px}}
@media(max-width:370px){.hero h1{font-size:62px}.header .brand small{display:none}.proposal span:last-child{max-width:53%}.section-heading h2,.company h2,.contact h2{font-size:29px}.approach h2{font-size:31px}.company-data>div{grid-template-columns:72px 1fr}.service-en{font-size:9px}.hero-foot>span:last-child{display:none}.approach-steps h3{font-size:17px}.contact-button{min-height:64px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Reading text remains comfortable on phones and at browser text enlargement. */
.hero-description,.service-content>p,.section-intro,.approach-title>p:not(.eyebrow),.approach-steps h3+p,.company-intro>p:last-child,.contact p:last-child{font-size:16px}
@media(max-width:800px){.hero-description,.service-content>p,.section-intro,.approach-title>p:not(.eyebrow),.approach-steps h3+p,.company-intro>p:last-child,.contact p:last-child{font-size:16px}.hero h1{font-size:clamp(60px,17.95vw,70px)}.company-data>div{font-size:14px}.hero-visual{aspect-ratio:1.12}}

/* Brand revision: Impact wordmark, with local condensed fallbacks. */
.brand,.brand-inline{font-family:Impact,Haettenschweiler,"Arial Narrow Bold","Arial Narrow",sans-serif;font-weight:400;letter-spacing:normal;font-stretch:condensed;color:var(--orange)}
.brand small{font-family:var(--font);font-stretch:normal;color:var(--ink)}
