:root{
  --o:#F4511E; --k:#000; --k2:#0B0B0B; --w:#fff; --ink:#1A1A1A; --g:#EFEFEF; --mut:#8A8A8A; --line:rgba(255,255,255,.22);
  --fd:"Oswald","Noto Sans JP",sans-serif; --fj:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --pad:clamp(16px,1.7vw,28px); --r:10px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--w);color:var(--ink);font-family:var(--fj);font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,p,ul,dl,dd{margin:0}
ul{padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--o);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--k);color:var(--w);padding:8px 14px;z-index:99}
.skip:focus{left:8px;top:8px}
.wrap{padding-inline:var(--pad);max-width:1920px;margin-inline:auto}

/* type */
.h{font-family:var(--fj);font-weight:900;line-height:1.28;letter-spacing:-.01em;font-size:1.5rem;transform:scaleX(.86);transform-origin:left center;width:116.2%;font-feature-settings:"palt"}
.h--c{text-align:center;transform-origin:center;margin-left:-8.1%}
.h--l{font-size:clamp(1.7rem,3.3vw,3.1rem)}
.h--xl{font-size:clamp(1.75rem,4.1vw,3.9rem);line-height:1.3}
.lab{display:flex;align-items:center;gap:14px;font-family:var(--fd);font-size:.72rem;letter-spacing:.08em;font-weight:500;white-space:nowrap}
.lab::before,.lab::after{content:"";width:40px;height:1px;background:currentColor;opacity:.7}

/* button */
.btn{display:inline-flex;align-items:center;gap:10px;background:#1c1c1c;color:var(--w);font-weight:500;font-size:.82rem;letter-spacing:.04em;padding:7px 8px 7px 13px;border-radius:3px;line-height:1.4;white-space:nowrap;transition:background .25s,color .25s}
.btn .ar{width:20px;height:20px;background:var(--w);border-radius:2px;display:grid;place-items:center;transition:transform .25s}
.btn .ar svg{width:9px;height:9px;fill:#1c1c1c}
.btn:hover{background:var(--o)}
.btn:hover .ar{transform:translateX(2px)}
.btn--o{background:var(--o)}
.btn--o .ar svg{fill:var(--o)}
.btn--o:hover{background:var(--w);color:var(--k)}
.btn--o:hover .ar{background:var(--o)}
.btn--o:hover .ar svg{fill:var(--w)}
.btn--g{background:#232323}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:20px var(--pad);color:#fff;pointer-events:none;transition:color .25s}
.nav.is-dark{color:#111}
.nav.is-open{color:#fff}
.nav>*{pointer-events:auto}
.nav__logo{display:block;line-height:0;margin-left:-4px}
.nav__logo img{height:30px;width:auto}
.nav__r{display:flex;align-items:center;gap:22px}
.lang{display:flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:600;font-size:.92rem;letter-spacing:.08em;line-height:1}
.lang a{opacity:.55;padding:6px 0;transition:opacity .2s}
.lang a[lang^="zh"]{font-family:var(--fj);font-weight:700;font-size:.82rem;letter-spacing:.06em}
.lang a:hover,.lang a[aria-current]{opacity:1}
.lang a[aria-current]{border-bottom:2px solid currentColor}
.lang i{font-style:normal;opacity:.4}
.nav__btn{width:44px;height:44px;display:grid;place-content:center;gap:6px}
.nav__btn span{display:block;width:32px;height:2px;background:currentColor;transition:transform .3s}
.nav__btn[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.nav__btn[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:50;background:var(--o);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:96px var(--pad) 28px;overflow:auto}
.menu[hidden]{display:none}
.menu li a{display:flex;align-items:baseline;gap:18px;padding:.5vh 0;border-bottom:1px solid rgba(255,255,255,.35)}
.menu li small{font-family:var(--fd);font-size:.8rem;width:2em}
.menu li span{font-weight:900;font-size:clamp(1.6rem,5.4vh,3.2rem);line-height:1.5;letter-spacing:-.01em}
.menu li em{font-family:var(--fd);font-style:normal;text-transform:uppercase;font-size:.8rem;letter-spacing:.1em;margin-left:auto;opacity:.85}
.menu li a:hover span{color:#000}
.menu__f{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline;margin-top:24px;font-size:.85rem}
.menu .lang{margin-top:18px;font-size:1.05rem}
.menu__f a{font-family:var(--fd);font-size:1.6rem;font-weight:600}

/* hero */
.hero{position:relative;height:100svh;min-height:600px;background:var(--o);color:#fff;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--pad) 40px}
.hero__bg,.hero__bg img{position:absolute;inset:0;width:100%;height:100%}
.hero__bg img{object-fit:cover;object-position:70% 30%;opacity:0;transform:scale(1.06);transition:opacity 1.1s,transform 6s ease-out}
.hero__bg img.on{opacity:1;transform:none}
.hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(214,52,8,.72),rgba(244,81,30,.18) 55%,transparent),linear-gradient(0deg,rgba(120,24,0,.55),transparent 45%);mix-blend-mode:multiply}
.hero__word{position:absolute;left:calc(var(--pad) + .5vw);top:23svh;font-family:var(--fd);font-weight:700;font-size:min(20.5vw,44svh);line-height:.9;letter-spacing:-.035em;text-transform:uppercase;white-space:nowrap}
.hero__word span{display:inline-block;animation:up .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--n)*45ms)}
@keyframes up{from{transform:translateY(60%);opacity:0}}
.hero__b{position:relative;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.hero__h{font-weight:900;font-size:clamp(1.25rem,2.35vw,2.3rem);line-height:1.45;letter-spacing:-.01em;transform:scaleX(.86);transform-origin:left bottom;margin-bottom:22px;font-feature-settings:"palt";text-shadow:0 1px 18px rgba(120,24,0,.35)}
.hero__th{position:relative;width:clamp(120px,17.5vw,250px);aspect-ratio:16/10;border:2px solid var(--o);border-radius:6px;overflow:hidden;padding:5px;background:rgba(244,81,30,.25);flex:none}
.hero__th img{width:100%;height:100%;object-fit:cover;border-radius:3px}
.hero__th i{position:absolute;left:5px;right:5px;bottom:-1px;height:3px;background:#fff;transform-origin:left;animation:bar 5.5s linear infinite}
@keyframes bar{from{transform:scaleX(0)}}

/* marquee */
.mq{overflow:hidden;white-space:nowrap}
.mq__t{display:inline-flex;align-items:center;animation:mq 40s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}
.mq--g{background:var(--g);color:#2a2a2a;padding:26px 0;margin-top:22px}
.mq--g span{font-weight:900;font-size:1.45rem;letter-spacing:-.01em;padding:0 30px;transform:scaleX(.9)}
.mq--g b{font-size:.9rem}
.mq--o{background:var(--o);color:#fff;padding:18px 0 22px}
.mq--o span,.mq--o b{font-family:var(--fd);font-weight:700;font-size:clamp(3.4rem,8.4vw,7.6rem);line-height:1;padding:0 .16em}
.mq--o span:nth-of-type(even){font-family:var(--fj);font-weight:900;font-size:clamp(2.9rem,7.2vw,6.5rem);transform:scaleX(.86)}
.mq--o .mq__t{animation-duration:30s}

/* about */
.about{position:relative;min-height:min(100vh,860px);display:grid;place-items:center;padding:150px var(--pad);overflow:hidden}
.about__c{position:relative;z-index:2;display:grid;justify-items:center;gap:26px;max-width:980px;width:100%;mix-blend-mode:multiply}
.about__p{position:absolute;width:clamp(120px,15vw,225px);aspect-ratio:4/5;object-fit:cover;border-radius:8px;will-change:transform}
.about__p.p1{left:13%;top:7%;--rt:16deg}.about__p.p2{right:13%;top:7%;--rt:-17deg}
.about__p.p3{left:13%;bottom:7%;--rt:-14deg}.about__p.p4{right:13%;bottom:7%;--rt:17deg}
.about__p{transform:translateY(var(--ty,0)) rotate(var(--rt))}

/* sections */
.sec{padding:clamp(80px,10vw,150px) 0;position:relative}
.sec--k{background:var(--k);color:#fff}
.sec--k2{background:var(--k2);color:#fff}
.sec--slant{clip-path:polygon(0 clamp(40px,7vw,120px),100% 0,100% 100%,0 100%);margin-top:calc(-1*clamp(40px,7vw,120px));padding-top:calc(clamp(80px,10vw,150px) + clamp(40px,7vw,120px))}
.hd3{display:grid;grid-template-columns:1fr 1.2fr .8fr;align-items:end;gap:24px;margin-bottom:44px}
.hd3 .lab{align-self:start;margin-top:12px}
.hd3 .btn{justify-self:end}
.hd3 .h{width:auto;max-width:116%}
.hdl{display:grid;gap:16px;margin-bottom:50px}
.hdc{display:grid;justify-items:center;gap:20px;margin-bottom:70px}

/* accordion */
.acc{display:grid;gap:14px}
.acc__i,.faq__i{border:1px solid var(--line);border-radius:var(--r)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px}
summary::-webkit-details-marker{display:none}
.acc__i summary{padding:28px}
.acc__i summary span{font-weight:900;font-size:clamp(1.15rem,1.75vw,1.6rem);transform:scaleX(.88);transform-origin:left;letter-spacing:-.01em}
.pm{flex:none;width:46px;height:46px;border-radius:50%;background:var(--o);position:relative;transition:background .25s,transform .35s}
.pm::before,.pm::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:#fff;transform:translate(-50%,-50%)}
.pm::after{transform:translate(-50%,-50%) rotate(90deg)}
details[open]>summary .pm{background:#1b1b1b;border:1px solid var(--line);transform:rotate(45deg)}
.acc__b{display:grid;grid-template-columns:1fr minmax(180px,300px) 1fr;gap:clamp(20px,5vw,80px);align-items:end;padding:0 28px 30px}
.acc__b p{color:#8f8f8f;max-width:23em;font-size:.95rem}
.acc__b img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.acc__b ul{align-self:start;display:grid;gap:6px;font-size:.95rem}
.acc__b li{display:flex;gap:10px;align-items:center}
.acc__b li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--o)}

/* business stack */
.pjs{display:grid;gap:28px;max-width:1160px;margin-inline:auto}
.pj{position:sticky;top:calc(84px + var(--i)*22px);height:min(74vh,680px);min-height:440px;border-radius:14px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;justify-content:center;box-shadow:0 -10px 30px rgba(0,0,0,.12)}
.pj img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pj::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.78),rgba(0,0,0,.12) 55%,transparent)}
.pj__t{position:relative;z-index:1;text-align:center;padding:0 24px 34px;display:grid;justify-items:center;gap:8px;max-width:760px}
.pj__t .h{font-size:clamp(1.6rem,3.1vw,2.7rem);width:auto;margin-left:0}
.pj__s{font-family:var(--fd);font-size:.9rem;letter-spacing:.08em;opacity:.9}
.pj__d{font-size:.9rem;line-height:1.75;opacity:.92;margin-top:4px}
.pj__d small{display:block;font-size:.78rem;opacity:.8;margin-top:4px}

/* capability stack */
.caps{display:grid;gap:26px;max-width:1240px;margin-inline:auto}
.cap{position:sticky;top:calc(84px + var(--i)*24px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,40px);background:var(--k);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:min(62vh,520px)}
.cap img{width:100%;height:100%;min-height:260px;object-fit:cover;border-radius:6px;position:absolute;inset:0}
.cap::before{content:"";grid-column:1;min-height:260px}
.cap{position:sticky}
.cap>img{position:absolute;inset:10px auto 10px 10px;width:calc(50% - 10px - clamp(9px,1.5vw,20px));height:calc(100% - 20px)}
.cap__r{grid-column:2;display:flex;flex-direction:column;justify-content:space-between;padding:22px 26px 22px 0;gap:22px}
.cap__n{display:flex;justify-content:space-between;font-family:var(--fd);font-size:.95rem;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cap__r .h{font-size:clamp(1.3rem,2.1vw,1.9rem)}
.cap__r div{display:grid;gap:16px;justify-items:start}
.cap__r div p{color:#9a9a9a;font-size:.88rem;max-width:30em}

/* use cases */
.uses{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.use img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;margin-bottom:16px}
.use:nth-child(2){margin-top:14px}.use:nth-child(3){margin-top:28px}
.use:nth-child(2) img{aspect-ratio:1/.92}.use:nth-child(3) img{aspect-ratio:1/.7}
.use__m{font-family:var(--fd);color:var(--o);font-size:.78rem;letter-spacing:.06em}
.use .h{font-size:clamp(1.05rem,1.55vw,1.4rem);margin-top:4px;line-height:1.45}

/* faq */
.faq{display:grid;grid-template-columns:minmax(220px,.42fr) 1fr;gap:clamp(24px,8vw,130px);align-items:start}
.faq__l{display:grid;gap:26px;justify-items:start}
.faq__l img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px}
.faq__r{display:grid;gap:10px}
.faq__i summary{padding:16px 16px 16px 22px}
.faq__i summary span{font-weight:900;font-size:1.02rem;transform:scaleX(.9);transform-origin:left}
.faq__i .pm{width:30px;height:30px}
.faq__i .pm::before,.faq__i .pm::after{width:11px}
.faq__i[open]>summary .pm{background:var(--o);border:0;transform:none}
.faq__i[open]>summary .pm::after{opacity:0}
.faq__i p{padding:0 60px 20px 22px;color:#a5a5a5;font-size:.9rem;margin-top:-4px}

/* company */
.co{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,60px);align-items:stretch}
.spec>div{display:grid;grid-template-columns:8.5em 1fr;gap:16px;padding:16px 0;border-bottom:1px solid #dcdcdc}
.spec>div:first-child{border-top:1px solid var(--ink)}
.spec dt{font-weight:900;font-size:.9rem}
.spec dd{font-size:.95rem}
.spec a{border-bottom:1px solid var(--o)}
.map{border-radius:var(--r);overflow:hidden;min-height:420px;background:var(--g)}
.map iframe{width:100%;height:100%;min-height:420px;border:0;display:block;filter:grayscale(.9) contrast(1.05)}


/* footer */
.ft{background:var(--k2);color:#fff;padding-top:64px}
.ft__top{display:grid;grid-template-columns:1.6fr .7fr .9fr;gap:40px}
.ft__logo{line-height:0;margin-left:-4px}
.ft__logo img{height:34px;width:auto}
.ft__d{color:#9a9a9a;font-size:.82rem;max-width:34em;margin:14px 0 22px}
.ft__tel{display:flex;gap:8px;flex-wrap:wrap}
.ft__num{background:var(--o);font-family:var(--fd);font-size:1.05rem;letter-spacing:.06em;padding:8px 60px 8px 12px;border-radius:3px}
.ft__go{background:#fff;color:#000;font-weight:700;font-size:.78rem;padding:8px 22px;border-radius:3px;display:grid;place-items:center}
.ft__go:hover{background:var(--o);color:#fff}
.ft__l li>*{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.ft__l svg{width:16px;height:10px;transition:transform .25s}
.ft__l a:hover{color:var(--o)}.ft__l a:hover svg{transform:translateX(4px)}
.ft__l--i li>*{color:#c9c9c9;font-size:.8rem;line-height:1.7}
.ft__n{margin-top:56px;padding-top:22px;border-top:1px solid var(--line);display:grid;gap:4px;color:#8a8a8a;font-size:.74rem}
.ft__c{display:flex;justify-content:space-between;padding-block:22px 30px;font-size:.74rem;color:#bdbdbd;letter-spacing:.04em}
.ft__c a:hover{color:var(--o)}

/* reveal */
.js [data-r]{opacity:0;transform:translateY(26px);transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1)}
.js [data-r].in{opacity:1;transform:none}

@media (max-width:860px){
  .hero{padding-bottom:22px}
  .hero__word{top:22svh;font-size:min(23vw,30svh)}
  .hero__bg img{object-position:62% 30%}
  .hero__b{flex-direction:column;align-items:center;text-align:center}
  .hero__h{transform-origin:center bottom}
  .mq--g span{font-size:1.15rem;padding:0 18px}
  .about{padding:60px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:26px 60px;min-height:0}
  .about__p{position:static;width:100%;transform:none!important}
  .about__c{grid-column:1/-1;grid-row:2}
  .hd3{grid-template-columns:1fr;justify-items:center;text-align:center;gap:16px}
  .hd3 .lab{margin:0}.hd3 .btn{justify-self:center}
  .hd3 .h{transform-origin:center;text-align:center}
  .acc__i summary{padding:20px 16px}
  .pm{width:38px;height:38px}
  .acc__b{grid-template-columns:1fr;padding:0 16px 18px;gap:16px}
  .acc__b img{aspect-ratio:1/1;order:2}.acc__b ul{order:3}
  .pjs{gap:14px}
  .pj{position:relative;top:auto;height:auto;min-height:330px}
  .cap{position:relative;top:auto;grid-template-columns:1fr;min-height:0;gap:0}
  .cap::before{display:none}
  .cap>img{position:static;width:100%;height:auto;aspect-ratio:16/11}
  .cap__r{grid-column:1;padding:16px 12px 14px;gap:12px}
  .uses{grid-template-columns:1fr;gap:30px}
  .use:nth-child(n){margin-top:0}.use:nth-child(n) img{aspect-ratio:16/10}
  .faq{grid-template-columns:1fr}
  .faq__l img{aspect-ratio:16/11}
  .faq__i p{padding-right:22px}
  .co{grid-template-columns:1fr}
  .spec>div{grid-template-columns:6.2em 1fr}
  .map,.map iframe{min-height:320px}
  .ft__top{grid-template-columns:1fr 1fr;gap:30px 20px}
  .ft__a{grid-column:1/-1}
  .ft__c{flex-direction:column;align-items:center;gap:8px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js [data-r]{opacity:1;transform:none}
}

/* slimmer marquees */
.mq--g{padding:10px 0;line-height:1.5}
.mq--g .mq__t{animation-duration:110s}
.mq--g span{font-size:1.1rem;padding:0 22px}
.mq--g b{font-size:.7rem}
.mq--o{padding:5px 0 6px;line-height:1}
.mq--o .mq__t{animation-duration:90s}
.mq--o span,.mq--o b{font-size:clamp(.95rem,1.55vw,1.4rem);padding:0 .5em}
.mq--o span:nth-of-type(even){font-size:clamp(.85rem,1.35vw,1.2rem)}
@media (max-width:860px){.mq--g{padding:9px 0}.mq--g span{font-size:.95rem;padding:0 14px}.mq--o{padding:3px 0 4px}.mq--o span,.mq--o b{font-size:.8rem}.mq--o span:nth-of-type(even){font-size:.72rem}}

/* about: photos are tossed in from the corners, copy rises after them */
.about.is-anim .about__p,.about.is-anim .about__c>*{opacity:0}
.about.is-in .about__p{animation:abToss 1s cubic-bezier(.2,.85,.25,1.12) both;animation-delay:calc(var(--i)*110ms)}
.about.is-in .about__c>*{animation:abRise .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(480ms + var(--i)*110ms)}
.about__p.p1{--i:0;--fx:-60vw;--fy:-40vh}.about__p.p2{--i:1;--fx:60vw;--fy:-40vh}
.about__p.p4{--i:2;--fx:60vw;--fy:40vh}.about__p.p3{--i:3;--fx:-60vw;--fy:40vh}
.about__c>:nth-child(1){--i:0}.about__c>:nth-child(2){--i:1}.about__c>:nth-child(3){--i:2}
@keyframes abToss{from{opacity:0;translate:var(--fx) var(--fy);rotate:calc(var(--rt)*-2.5);scale:1.25}35%{opacity:1}to{opacity:1;translate:0 0;rotate:0deg;scale:1}}
@keyframes abRise{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
@media (max-width:860px){.about__p.p1,.about__p.p3{--fx:-40vw;--fy:0px}.about__p.p2,.about__p.p4{--fx:40vw;--fy:0px}}

/* centred headings inside centring grids: no offset needed */
.hdc .h--c,.about__c .h--c{width:auto;margin-left:0}

@media (max-width:860px){.nav__logo img{height:28px}.nav__r{gap:14px}.ft__logo img{height:32px}}

/* Simplified Chinese page */
:root:lang(zh-Hans){--fd:"Oswald","Noto Sans SC",sans-serif;--fj:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}
:lang(zh-Hans) [lang="ja"]{font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans SC",sans-serif}
.pj__more{display:inline-flex;align-items:center;gap:10px;margin-top:10px;padding:9px 20px;border-radius:99px;background:var(--o);color:#fff;font-size:.86rem;font-weight:700;transition:background .25s,color .25s}
.pj__more svg{width:16px}
.pj__more:hover{background:#fff;color:#000}
