@font-face{font-family:"Inter";src:url(fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--bg:#c7c9c7;--ink:#1e1e1e;--lime:#defc36;--m:6.944vw}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Inter",Arial,sans-serif;font-optical-sizing:auto;font-size:1vw;line-height:1em;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
::selection{background:var(--lime);color:var(--ink)}
@media (min-width:1201px){::-webkit-scrollbar{width:.5vw;background:var(--ink)}::-webkit-scrollbar-thumb{background:#f9f9f9}}
.c{margin-left:var(--m);margin-right:var(--m);position:relative;display:block}
/* type */
.t120,.t110,.t96,.t60,.t42,.s28,.t18{font-family:"Inter",Arial,sans-serif;font-weight:400;color:var(--ink);margin:0}
.t120{font-size:7em;line-height:7.52vw;letter-spacing:-.035em;font-variation-settings:"opsz" 32}
.t110{font-size:4.5vw;line-height:120%;letter-spacing:-.03em;font-variation-settings:"opsz" 32}
.t96{font-size:5.6em;line-height:6.53vw;letter-spacing:-.032em;font-variation-settings:"opsz" 32}
.t60{font-size:3.52em;line-height:113%;letter-spacing:-.022em;font-variation-settings:"opsz" 32}
.t42{font-size:2.44em;line-height:129%;letter-spacing:-.018em;font-variation-settings:"opsz" 28}
.s28{font-size:1.64em;line-height:129%;letter-spacing:-.006em}
.t18{font-size:1.05em;line-height:133%}
.ctr{text-align:center}.white{color:#fff}.grey{color:var(--bg)}
/* split text */
.w,.ch{display:inline-block}
.wm{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.js [data-words],.js [data-chars]{opacity:0}
.js [data-words].split,.js [data-chars].split{opacity:1}
[data-words] .w{transform:translateY(100%);opacity:0;transition:transform .75s cubic-bezier(.22,.61,.36,1),opacity .75s cubic-bezier(.22,.61,.36,1)}
[data-words].in .w{transform:none;opacity:1}
[data-chars] .ch{opacity:0;transition:opacity .2s cubic-bezier(.25,.46,.45,.94)}
[data-chars].in .ch{opacity:1}
.js [data-fade]{opacity:0;transform:translate3d(0,5vw,0)}
.js [data-fade].in{opacity:1;transform:none;transition:opacity .75s linear,transform 1s cubic-bezier(.075,.82,.165,1)}
/* line */
.line{border-top:.1vw solid var(--ink);width:0;height:0}
.js .line.in,.no-js .line{width:100%;transition:width .75s cubic-bezier(.895,.03,.685,.22)}
html:not(.js) .line{width:100%}
.line.mob{display:none}
/* link hover line */
.lw{display:flex;flex-direction:column;align-items:flex-start;overflow:hidden}
.lw a{display:block}
.lh{display:block;width:0;border-top:2px solid currentColor;margin-top:0;transition:width .5s cubic-bezier(.39,.575,.565,1)}
.lw:has(a:hover) .lh{width:100%;transition:width .2s cubic-bezier(.47,0,.745,.715)}
.lw .grey+.lh{color:var(--bg)}
/* button */
.btn{position:relative;display:inline-flex;justify-content:center;align-items:center;overflow:hidden;background:var(--lime);border-radius:10vw;padding:.694vw 3.472vw;cursor:pointer;will-change:transform;isolation:isolate}
.btn-t{position:relative;z-index:5;color:var(--ink);font-size:1.64em;line-height:2.08vw;letter-spacing:.005em;transition:color .45s cubic-bezier(.39,.575,.565,1)}
.btn-bg{position:absolute;left:0;right:0;top:100%;height:110%;background:var(--ink);transform:translateY(0);transition:transform .45s cubic-bezier(.39,.575,.565,1)}
@media (hover:hover){.btn:hover .btn-bg{transform:translateY(-100%);transition:transform .35s cubic-bezier(.39,.575,.565,1)}
.btn:hover .btn-t{color:var(--bg);transition:color .2s cubic-bezier(.39,.575,.565,1) .15s}}
.btn:focus-visible,.lw a:focus-visible,.case:focus-visible,.tile:focus-visible,.ac-head:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:150;pointer-events:none;will-change:transform;contain:layout style size;transition:opacity .3s}
.cursor::before{content:"";position:absolute;top:-1.389vw;left:-1.389vw;width:2.778vw;height:2.778vw;border-radius:50%;background:var(--lime);transform:scale(0);transition:transform .3s ease-in-out,opacity .1s}
.cursor.vis::before{transform:scale(.37)}
.cursor.vis.act::before{transform:scale(.23);transition-duration:.2s}
.cursor.ptr::before{transform:scale(.15)}
.cursor.txt::before{transform:scale(2.6)}
.cursor.txt.act::before{transform:scale(2.1)}
.cursor-t{position:absolute;top:-2.894vw;left:-2.894vw;width:5.787vw;height:5.787vw;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:1.05em;letter-spacing:-.01em;opacity:0;transform:scale(0) rotate(10deg);transition:opacity .4s,transform .3s}
.cursor.txt .cursor-t{opacity:1;transform:scale(1)}
@media (hover:none),(max-width:480px){.cursor{display:none}}
@media (hover:hover) and (min-width:481px){.case,.fx-screen{cursor:none}}
/* wordmark */
.mark{position:fixed;z-index:1003;left:3.7035vw;top:3.571vw;width:92.593vw;transform-origin:0 0;will-change:transform;display:block;color:var(--ink)}
.mark-t{display:inline-block;white-space:nowrap;font-weight:500;letter-spacing:-.055em;line-height:.78;font-size:13.1vw;font-variation-settings:"opsz" 32;padding-top:.06em}
.js .mark{opacity:0}
.js .mark.on{opacity:1;transition:opacity 2s ease}
.first-sp{height:31.151vw}
/* nav */
.nav{position:fixed;z-index:998;top:2.894vw;right:var(--m);display:flex;gap:3.241vw;opacity:0;pointer-events:none}
.nav.on{pointer-events:auto}
.nav .lw{transform:translateY(5vw)}
.nav.load .lw{transform:none;transition:transform 1.25s cubic-bezier(.39,.575,.565,1)}
.burger{position:fixed;z-index:1001;top:3.3vw;right:var(--m);width:3.47vw;height:.868vw;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;opacity:0;transform:translateY(-20vw);pointer-events:none}
.burger.on{pointer-events:auto}
.burger::before{content:"";position:absolute;inset:-14px -12px}
.burger span{display:block;border-top:.277vw solid var(--ink);width:100%;transition:width .3s ease}
.burger .bs{width:60%}
@media (hover:hover){.burger:hover .bs{width:100%}}
/* menu */
.menu{position:fixed;z-index:1002;left:0;top:-100vh;width:100vw;height:100vh;background:var(--lime);transform:translateY(0);transition:transform .6s cubic-bezier(.645,.045,.355,1);visibility:hidden}
.menu.open{transform:translateY(100vh);visibility:visible}
.menu.anim{visibility:visible}
.menu-close{position:absolute;top:2.778vw;right:var(--m);width:2.025vw;height:2.025vw;color:var(--ink)}
.menu-close svg{width:100%;height:100%}
.menu-inner{position:absolute;left:var(--m);right:var(--m);bottom:6vh;top:0;display:flex;align-items:flex-end}
.menu-side{display:flex;align-items:flex-end;gap:9.549vw;margin-bottom:1vh}
.menu-contact{display:flex;flex-direction:column;gap:2.514vw}
.menu-soc{display:flex;flex-direction:column;gap:.25vw}
.menu-big{margin-left:auto;width:42vw;display:flex;flex-direction:column;gap:.3vw}
.menu .lw .lh{color:var(--ink)}
/* intro */
.intro{margin-top:11.574vw}
.intro-title{width:64vw}
.points{display:flex;margin-top:4.63vw}
.p1{width:12vw}.p2{width:9vw;margin-left:4.456vw}.p3{width:14vw;margin-left:4.456vw}
.clock{font-variant-numeric:tabular-nums}
/* hero */
.hero{margin-top:3vw;overflow:hidden}
.hero-img{width:100%;height:56.424vw;overflow:hidden;background:#b9bbb9}
.hero-in,.case-in,.fx-img{width:100%;height:100%;background-size:cover;background-position:50%;background-repeat:no-repeat;will-change:transform}
/* statement */
.statement{margin-top:5.556vw;padding-bottom:9.028vw}
.statement-t{width:64.294vw;margin-bottom:3.704vw}
/* services */
.svc-wrap{display:flex;justify-content:space-between;margin-top:2.778vw;position:relative}
.svc-left{width:27vw;height:32vw;position:sticky;top:10vw}
.svc-right{width:49.769vw}
.card{margin-bottom:5.903vw}
.card-title{display:flex;align-items:flex-start;margin-top:3.762vw}
.card-title.first{margin-top:0}
.card-num{width:2.7vw;margin-right:4.919vw;padding-top:.4vw;flex:none}
.card-body{margin:2.199vw 0 3.935vw 7.6vw}
.card-btn{margin-left:7.6vw}
/* change */
.change{display:flex;flex-direction:column;align-items:center;margin-top:15.972vw;margin-bottom:17.824vw}
.change-t{margin-bottom:4.63vw;display:flex;justify-content:center}
.change-p{margin-bottom:5.324vw}
/* process */
.proc-wrap{display:flex;justify-content:space-between;align-items:flex-start;margin-top:1.505vw;padding-bottom:17.361vw}
.proc-left{width:40vw}
.proc-right{width:42.477vw;margin-top:-1.4vw}
.acc{border-bottom:.1vw solid var(--ink)}
.ac-head{width:100%;display:flex;justify-content:space-between;align-items:center;border-top:.1vw solid var(--ink);padding:2.141vw 0;text-align:left}
.ac-l{display:flex;align-items:center}
.ac-n{margin-right:3.472vw}
.ac-ic{width:1.678vw;height:1.678vw;flex:none;transition:transform .7s ease-in-out;color:var(--ink)}
.ac.open .ac-ic{transform:rotate(135deg)}
.ac-panel{height:0;overflow:hidden;transition:height .6s ease-in-out}
.ac-text{font-size:1.64em;line-height:128%;letter-spacing:.0015em;padding-left:7.176vw;margin-bottom:2.315vw}
/* work */
.work{padding-bottom:17.824vw}
.work-t{text-align:center;display:flex;justify-content:center;margin-top:2.894vw;margin-bottom:5.2vw}
.case-row{display:flex;justify-content:space-between;align-items:flex-start}
.case-row+.case-row{margin-top:7.407vw}
.case{display:flex;flex-direction:column;gap:.926vw}
.case-img{overflow:hidden;background:#b9bbb9}
.case-img.big{width:42.477vw;height:40.278vw}
.case-img.small{width:27.894vw;height:19.444vw}
.case-in{transform:scale(1);transition:transform .5s cubic-bezier(.39,.575,.565,1)}
@media (hover:hover){.case:hover .case-in{transform:scale(1.25);transition:transform .75s cubic-bezier(.39,.575,.565,1)}}
.case-t{display:flex;flex-direction:column}
.case-k{font-size:.672em;line-height:1.4;opacity:.6;letter-spacing:0}
.work-btn{display:flex;justify-content:center;margin-top:7.407vw}
/* features */
.features{margin-bottom:17.361vw;position:relative}
.fx.sticky{position:sticky;top:0}
.fx-screen{display:block;position:relative;width:100%;height:100vh;height:100lvh;overflow:hidden}
.fx-img{position:absolute;inset:0}
.fx-shade{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.fx-top{position:absolute;z-index:1;top:10vw;left:var(--m)}
.fx-bottom{position:absolute;z-index:1;bottom:5vw;left:var(--m)}
.fx-desc{width:36.343vw;margin:.579vw 0 3.704vw}
.fx-cta{display:inline-block;border-bottom:2px solid transparent;transition:border-color .3s}
@media (hover:hover){.fx-screen:hover .fx-cta{border-color:#fff}}
.fx-btn{display:flex;justify-content:center;margin-top:5.787vw}
/* series */
.series{margin-bottom:9.491vw}
.series-wrap{display:flex;position:relative;margin:3.472vw 0 5.208vw}
.series-t{width:40vw}
.series-d{width:36.2vw;position:absolute;top:1vw;left:50vw}
.marq{width:100vw;margin-left:calc(-1 * var(--m));overflow:hidden}
.marq-row{overflow:hidden}
.marq-row.r2{margin-top:2.894vw}
.marq-track{display:flex;width:max-content;animation:mq 36.9s linear infinite}
.r2 .marq-track{animation-direction:reverse}
@keyframes mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.tile{flex:none;width:20.66vw;height:20.66vw;margin-right:8.391vw;border:.1vw solid var(--ink);border-radius:1.2vw;display:flex;flex-direction:column;justify-content:space-between;padding:1.6vw;transition:background-color .4s ease}
.tile-n{font-size:9.2vw;line-height:.8;letter-spacing:-.06em;font-weight:400;font-variation-settings:"opsz" 32}
.tile-d{font-size:1.05em;line-height:1.3;opacity:.7}
@media (hover:hover){.tile:hover{background:var(--lime)}}
@media (prefers-reduced-motion:reduce){.marq-track{animation-duration:120s}}
/* closing + badge */
.closing{margin-bottom:11.806vw}
.badge-s{display:flex;justify-content:center;margin-bottom:11.227vw}
.badge{position:relative;display:flex;justify-content:center;align-items:center;width:20.66vw;height:20.66vw;border-radius:50%;background:var(--lime)}
.badge-ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 10s linear infinite}
.badge-ring text{font-family:"Inter",Arial,sans-serif;font-size:14.2px;letter-spacing:.2em;fill:var(--ink);font-weight:500}
.badge-arrow{width:5.787vw;height:5.787vw;transition:transform .4s cubic-bezier(.22,.61,.36,1)}
@media (hover:hover){.badge:hover .badge-arrow{transform:rotate(45deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
/* hello */
.hello{display:flex;flex-direction:column;align-items:center;margin-bottom:17.361vw}
.hello-t{width:57.06vw;margin-bottom:2.604vw;display:flex;justify-content:center}
.hello-f{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;width:56vw;gap:0 1.6vw}
.inp{width:25.637vw;height:4vw;background:transparent;border:0;border-bottom:.1vw solid var(--ink);border-radius:0;text-align:center;color:var(--ink);font-family:inherit;font-size:1.64em;line-height:1.2em;outline:none;-webkit-appearance:none;appearance:none}
.inp::placeholder{color:var(--ink);opacity:.55}
.inp:focus{border-bottom-color:var(--ink);background:rgba(222,252,54,.18)}
.btn-f{margin-top:3.472vw;flex-basis:auto}
.hello-f .btn{flex:none}
.hello-f::after{content:"";flex-basis:100%;order:2;height:0}
.hello-f .btn{order:3}
/* footer */
.foot{background:var(--ink);color:var(--bg);overflow:hidden}
.foot-in{padding-top:5.208vw;padding-bottom:2.662vw}
.foot-c{position:relative;display:flex;flex-direction:column;gap:1vw}
.foot-c .t60{white-space:nowrap}
.foot-btn{position:absolute;top:-3.46vw;right:4.63vw;width:11.574vw;height:11.574vw;border-radius:50%;background:var(--lime);display:flex;justify-content:center;align-items:center;transform:rotate(6.76deg);transition:transform .25s ease-out}
@media (hover:hover){.foot-btn:hover{transform:rotate(0);transition:transform .25s ease-in}}
.foot-links{display:flex;justify-content:space-between;align-items:flex-start;margin-top:5.6vw}
.foot-id{width:15vw;display:flex;flex-direction:column;gap:1.2vw}
.foot-cols{display:flex}
.foot-col{display:flex;flex-direction:column;gap:.5vw;margin-left:6.944vw}
.foot-labels{display:flex;justify-content:space-between;margin-top:4.63vw}
.foot .lh{color:var(--bg)}
/* <=991 */
@media (max-width:991px){
 .t96{font-size:7.64em;line-height:8vw}.t60{font-size:4.52em;line-height:110%}.t42{font-size:2.93em}.s28,.btn-t,.ac-text{font-size:2.14em}.t18{font-size:2.2em;line-height:3vw}
 .intro-title{width:86vw}.statement-t{width:86vw}
 .p1{width:23vw}.p2{width:21vw}.p3{width:29vw}
 .svc-right{width:53.5vw}.card-num{width:4vw}.card-body,.card-btn{margin-left:8.5vw}
 .btn{padding:1.4vw 4vw}.btn-t{line-height:3vw}
 .burger{width:4vw;height:1.2vw}.burger span{border-top-width:.35vw}
 .nav{display:none}
 .fx-desc{width:50vw}.fx-top{top:12vw}
 .foot-col{margin-left:10vw}.foot-id{width:20vw}
}
/* <=479 */
@media (max-width:479px){
 :root{--m:5.128vw}
 .t120{font-size:15.38em;line-height:18.15vw}.t110{font-size:12.5em;line-height:118%}.t96{font-size:10.25em;line-height:12.05vw}
 .t60{font-size:7.17em;line-height:9.23vw}.t42{font-size:4.7em;line-height:7.12vw}.s28,.ac-text{font-size:4.61em;line-height:133%}.t18{font-size:3.07em;line-height:165%}
 .m40{font-size:10.25em;line-height:12vw}.m24{font-size:6.15em;line-height:8vw}
 .ctr-m{text-align:center}
 .mark{left:5.128vw;top:9.487vw;width:89.744vw}
 .mark-t{font-size:12.7vw}
 .first-sp{height:24vw}
 .intro{margin-top:76.923vw}
 .intro-title{width:100%}
 .points{margin-top:16.667vw}
 .p1{width:25.641vw}.p2{width:30vw;margin-left:2vw}.p3{width:34vw;margin-left:5vw}
 .hero{margin-top:25vw}.hero-img{height:128.205vw}
 .statement{margin-top:24.359vw;padding-bottom:51.282vw}.statement-t{width:100%;margin-bottom:10.256vw}
 .btn{padding:2.564vw 10.256vw}.btn-t{font-size:4.61em;line-height:6.15vw}
 .burger{top:10.256vw;width:12.821vw;height:4vw}.burger span{border-top-width:1vw}
 .line{border-top-width:.509vw}
 .line.mob{display:block}
 .svc-wrap{flex-direction:column;margin-top:8.974vw}
 .svc-left{width:100%;height:auto;position:relative;top:0;margin-bottom:24.359vw}
 .svc-right{width:100%;margin-top:11.538vw}
 .card{margin-bottom:19.231vw}
 .card-title{flex-direction:column;gap:5.128vw;margin-top:11.538vw}
 .card-num{width:30vw;padding-top:0}
 .card-body{margin:3.846vw 0 10.256vw 0}.card-btn{margin-left:0}
 .change{margin-top:50vw;margin-bottom:51.282vw}.change-t{margin-bottom:14.103vw}.change-p{margin-bottom:19.231vw}
 .proc-wrap{flex-direction:column;margin-top:8.974vw;padding-bottom:51.282vw}
 .proc-left,.proc-right{width:100%}.proc-right{margin-top:24.359vw}
 .acc{border-bottom-width:.509vw}
 .ac-head{border-top-width:.509vw;padding:11.538vw 0}
 .ac-n{margin-right:7.692vw;font-size:inherit}
 .ac-l .t42{font-size:4.7em}
 .ac-l .ac-n{font-size:4.61em}
 .ac-ic{width:6.41vw;height:6.41vw}
 .ac-text{padding-left:0;margin-bottom:11.538vw}
 .work{padding-bottom:53.846vw}
 .work-t{margin-top:8.462vw;margin-bottom:12vw}
 .case-row{flex-direction:column;gap:25.641vw}
 .case-row+.case-row{margin-top:25.641vw}
 .case{width:100%;gap:5.128vw}
 .case-img.big,.case-img.small{width:100%;height:80.256vw}
 .case-k{font-size:.6em}
 .work-btn{margin-top:17.949vw}
 .features{margin-bottom:53.846vw}
 .fx-top{top:25vw}.fx-bottom{bottom:20vw;right:var(--m)}
 .fx-desc{width:100%;margin:2vw 0 12vw}
 .fx .sm{font-size:4.1em}
 .fx-btn{margin-top:19.231vw}
 .series{margin-bottom:51.282vw}
 .series-wrap{flex-direction:column;margin:8.974vw 0 11.538vw}
 .series-t{width:100%}.series-d{position:static;width:100%;margin-top:7.692vw}
 .marq{width:100vw}
 .marq-row.r2{margin-top:7.692vw}
 .marq-track{animation-duration:23.3s}
 .tile{width:37.179vw;height:37.179vw;margin-right:15.385vw;border-width:.3vw;border-radius:3vw;padding:3.2vw}
 .tile-n{font-size:16.5vw}.tile-d{font-size:2.9vw}
 .closing{margin-bottom:25.641vw}
 .badge-s{margin-bottom:25.641vw}.badge{width:51.282vw;height:51.282vw}.badge-arrow{width:14.359vw;height:14.359vw}
 .hello{margin-top:25.641vw;margin-bottom:38.462vw}.hello-t{width:96%;margin-bottom:10.256vw}
 .hello-f{width:100%;gap:4vw 0}
 .inp{width:100%;height:13vw;font-size:5.4em;line-height:7.17vw;border-bottom-width:.4vw}
 .btn-f{margin-top:8vw}.btn-f{padding:4.872vw 15.385vw}
 .foot-in{padding-top:23.077vw;padding-bottom:5.128vw}
 .foot-c{gap:3vw;margin-bottom:5.128vw}
 .foot-c .t60{font-size:8.6em;line-height:11.5vw}
 .foot-btn{display:none}
 .foot-links{flex-wrap:wrap;justify-content:flex-start;margin-top:15vw}
 .foot-id{width:100%;margin-bottom:15vw;gap:4vw}
 .foot-cols{width:100%;justify-content:space-between}
 .foot-col{margin-left:0;gap:2vw}
 .foot-labels{margin-top:12.821vw;align-items:center}
 .menu-close{top:10.256vw;right:7.692vw;width:8.974vw;height:8.974vw}
 .menu-inner{flex-direction:column-reverse;align-items:flex-start;justify-content:flex-end;bottom:auto;top:30vw;height:calc(100% - 36vw)}
 .menu-big{margin-left:0;width:100%;gap:1vw}
 .menu-side{margin-top:auto;width:100%;justify-content:space-between;gap:4vw}
 .menu-contact{gap:5.128vw}
 .menu-soc{gap:1.282vw}
}
@media (prefers-reduced-motion:reduce){.js [data-fade],.js [data-words] .w,.js [data-chars] .ch{transition:none!important}}

.topbar{position:fixed;z-index:997;left:0;top:0;width:100%;height:6.6vw;background:linear-gradient(180deg,var(--bg) 0%,var(--bg) 74%,rgba(199,201,199,0) 100%);opacity:0;pointer-events:none}
.mark,.burger span{transition:color .35s ease,border-color .35s ease}
.mark.dark{color:var(--bg)}
.burger.dark span{border-color:var(--bg)}
.mark.on.dark{transition:color .35s ease,opacity 2s ease}
@media (max-width:479px){.topbar{height:20.5vw;background:linear-gradient(180deg,var(--bg) 0%,var(--bg) 84%,rgba(199,201,199,0) 100%)}}
