@font-face{font-family:MiSans Latin;src:url(../fonts/misans-normal.woff2) format("woff2");font-weight:305;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-regular.woff2) format("woff2");font-weight:330;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-medium.woff2) format("woff2");font-weight:380;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-demibold.woff2) format("woff2");font-weight:450;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-semibold.woff2) format("woff2");font-weight:520;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-semibold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-bold.woff2) format("woff2");font-weight:630;font-style:normal;font-display:swap}@font-face{font-family:MiSans Latin;src:url(../fonts/misans-bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--dur-instant: .1s;--dur-fast: .2s;--dur-base: .35s;--dur-slow: .6s;--dur-slower: .9s;--ease: cubic-bezier(.25,.1,.25,1);--ease-in-out: cubic-bezier(.65,0,.35,1);--ease-out: cubic-bezier(.22,1,.36,1);--ease-spring: cubic-bezier(.34,1.56,.64,1);--ease-in: cubic-bezier(.55,0,1,.45)}.ng{overflow-x:clip}.ng{--bg: #ffffff;--fg: #000000;--text-2: #404040;--muted: #737373;--muted-2: #a1a1a1;--num-idle: rgba(0,0,0,.2);--line: rgba(0,0,0,.05);--line-strong: rgba(0,0,0,.1);--dark-30: rgba(0,0,0,.3);--dark-50: rgba(0,0,0,.5);--icon: var(--dark-30);--icon-hover: rgba(0,0,0,.6);--send-bg: var(--dark-50);--send-fg: #ffffff;--header-top: rgba(255,255,255,.95);--header-mid: rgba(255,255,255,.7);--btn-bg: rgba(255,255,255,.15);--btn-shadow: inset 0 -3px 10px 0 rgba(203,203,203,.4), inset 0 7px 4px 0 rgba(216,216,216,.12);--card1-bg: radial-gradient(ellipse 58% 78% at 50% 50%, #ffffff 0%, #ebe9f5 45%, #b7b4d6 100%);--card2-bg: linear-gradient(160deg, #eef0f7 0%, #dbe0ee 100%);--chip-bg: rgba(255,255,255,.82);--chip-fg: #061744;--focus: #1f6feb;--fade-tint: rgba(255,255,255,.55);--glass-bg: rgba(250,250,252,.55);--glass-edge: rgba(255,255,255,1);--glass-line: rgba(0,0,0,.09);--glass-sheen: rgba(255,255,255,.95);--glass-glyph: #3f3f46;--tint-a: rgba(247,170,214,.55);--tint-b: rgba(178,186,245,.55);--tint-c: rgba(251,200,176,.5);--card-navy: linear-gradient(160deg, #13286b 0%, #061744 70%);--navy: #061744;--burgundy: #9a0023;font-family:MiSans Latin,MiSans,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;--fw-normal: 305;--fw-regular: 330;--fw-medium: 380;--fw-demibold: 450;--fw-semibold: 520;--fw-bold: 630;--fs-display: clamp(36px, calc(20px + 3.6vw) , 72px);--lh-display: 1.08;--fs-display-sm: clamp(32px, calc(22px + 2.4vw) , 56px);--fs-menu-mobile: clamp(36px, 11vw, 44px);--lh-display-sm: 1.15;--fs-h-xl: clamp(28px, calc(25.3px + .73vw) , 36px);--lh-h-xl: 1.333;--fs-h-sm: clamp(20px, calc(18.6px + .365vw) , 24px);--lh-h-sm: 1.333;--fs-lead: clamp(17px, calc(16px + .274vw) , 20px);--lh-lead: 1.4;--fs-h-xs: clamp(16px, calc(14.6px + .365vw) , 20px);--lh-h-xs: 1.35;--fs-title: clamp(15px, calc(14px + .274vw) , 18px);--fs-body: 16px;--lh-body: 1.5;--fs-sm: 15px;--fs-xs: 13px;--fs-2xs: 12px;--lh-title: 1.333;background:var(--bg);color:var(--fg);min-height:100vh;position:relative;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ng[data-theme=dark]{--bg: #0b0b0c;--fg: #ffffff;--text-2: #d4d4d4;--muted: #a3a3a3;--muted-2: #8a8a8a;--num-idle: rgba(255,255,255,.22);--line: rgba(255,255,255,.07);--line-strong: rgba(255,255,255,.12);--dark-30: rgba(255,255,255,.4);--dark-50: rgba(255,255,255,.6);--icon: var(--dark-30);--icon-hover: rgba(255,255,255,.75);--send-bg: rgba(255,255,255,.9);--send-fg: #000000;--header-top: rgba(11,11,12,.95);--header-mid: rgba(11,11,12,.7);--btn-bg: rgba(255,255,255,.06);--btn-shadow: inset 0 -3px 10px 0 rgba(0,0,0,.55), inset 0 7px 4px 0 rgba(255,255,255,.05);--card1-bg: radial-gradient(ellipse 58% 78% at 50% 50%, #2c3260 0%, #151a38 52%, #090b1a 100%);--card2-bg: linear-gradient(160deg, #161b36 0%, #0a0d1f 100%);--chip-bg: rgba(18,22,48,.82);--chip-fg: #ffffff;--fade-tint: rgba(11,11,12,.55);--glass-bg: rgba(255,255,255,.07);--glass-edge: rgba(255,255,255,.28);--glass-line: rgba(255,255,255,.08);--glass-sheen: rgba(255,255,255,.22);--glass-glyph: rgba(255,255,255,.9);--tint-a: rgba(190,70,150,.28);--tint-b: rgba(90,100,220,.3);--tint-c: rgba(210,120,80,.22);--card-navy: linear-gradient(160deg, #0f1f55 0%, #050f2e 70%)}.ng *,.ng *:before,.ng *:after{box-sizing:border-box}.ng h1,.ng h2,.ng h3,.ng h4,.ng h5,.ng h6,.ng p{margin:0}.ng button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.ng :focus-visible{outline:2px solid var(--focus);outline-offset:3px}.ng-rails{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:25}.ng-rails:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:min(1186px,100%);border-inline:1px solid var(--line)}.ng-header{position:sticky;top:0;z-index:20}.ng-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line);transition:opacity var(--dur-base) var(--ease);pointer-events:none}.ng-header.is-scrolled:after{opacity:0}.ng-header{overflow-x:clip}.ng-header:before{content:"";position:absolute;left:-15%;width:130%;top:0;height:calc(100% + 32px);z-index:-2;pointer-events:none;background:radial-gradient(32% 140% at 14% 0%,var(--tint-a),transparent 70%),radial-gradient(36% 140% at 50% 0%,var(--tint-b),transparent 72%),radial-gradient(32% 140% at 86% 0%,var(--tint-c),transparent 70%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.6) 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.6) 55%,transparent 100%);will-change:transform;animation:tint-drift 16s var(--ease-in-out) infinite alternate}@keyframes tint-drift{0%{transform:translate(-9%) scaleX(1.04)}to{transform:translate(9%) scaleX(.96)}}.ng-header-bg{opacity:0;transition:opacity var(--dur-base) var(--ease)}.ng-header.is-scrolled .ng-header-bg{opacity:1}.ng-header-bg{position:absolute;left:0;right:0;top:0;height:calc(100% + 40px);pointer-events:none;z-index:-1}.ng-header-bg>i{position:absolute;top:0;right:0;bottom:0;left:0}.ng-header-bg>i:nth-child(1){-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent 100%);mask-image:linear-gradient(to bottom,#000 40%,transparent 100%)}.ng-header-bg>i:nth-child(2){-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(to bottom,#000 30%,transparent 75%);mask-image:linear-gradient(to bottom,#000 30%,transparent 75%)}.ng-header-bg>i:nth-child(3){-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-mask-image:linear-gradient(to bottom,#000 15%,transparent 55%);mask-image:linear-gradient(to bottom,#000 15%,transparent 55%)}.ng-header-bg>i:nth-child(1),.ng-header-bg>i:nth-child(2){display:none}.ng-header-bg>i:nth-child(4){background:linear-gradient(to bottom,var(--header-top) 0%,var(--header-mid) 45%,transparent 100%)}.ng-header-inner{position:relative}.ng-header-inner{max-width:1186px;margin:0 auto;padding:24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.ng-profile{display:flex;align-items:center;gap:24px;min-width:0}.ng-logo-box{background:transparent;color:var(--fg);width:56px;padding:4px 0;display:flex;justify-content:center;flex-shrink:0}.ng-logo-box>svg{width:43.5px;height:48px;display:block;overflow:visible;transform-origin:50% 100%}.ng-logo-box{position:relative}.logo-jaw{transform-box:fill-box;transform-origin:0% 100%}.logo-snack{position:absolute;left:0;top:0;width:22px;height:22px;opacity:0;pointer-events:none;z-index:-1}.logo-snack{color:var(--fg)}.logo-snack svg{width:100%;height:100%;display:block}.logo-crumb{position:absolute;display:block;pointer-events:none;z-index:2}.ng-vdivider{align-self:stretch;width:1px;margin:6px 0;background:var(--line-strong);flex-shrink:0}.ng-bio{width:303.5px;font-size:var(--fs-sm);line-height:19px;letter-spacing:-.015em;font-weight:var(--fw-normal);color:var(--text-2)}.ng-icons{display:flex;gap:8px;flex-shrink:0}.ng-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:64px;background:var(--btn-bg)!important;-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:var(--btn-shadow);flex-shrink:0;font-size:24px;transition:transform var(--dur-base) var(--ease-spring),background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.ng-btn svg{transition:transform var(--dur-base) var(--ease-out)}.ng .ng-btn{color:var(--icon)}@media (hover: hover){.ng .ng-btn:hover{color:var(--icon-hover)}}.ng .ng-btn:active{transform:scale(.9);transition-duration:var(--dur-instant)}.ng-ico-swap{animation:ico-swap var(--dur-base) var(--ease-spring) both}@keyframes ico-swap{0%{opacity:0;transform:rotate(-60deg) scale(.5)}to{opacity:1;transform:none}}.ng-main{max-width:1186px;margin:0 auto;padding:120px 16px 140px}.home-title{max-width:1000px;text-align:center;text-wrap:balance;font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:-.02em;font-weight:var(--fw-bold)}.home-intro{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:64px}.home-deco{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.home-title .hw{display:inline}.is-intro .home-title .hw{display:inline-block;white-space:pre;animation:hw-in var(--dur-slower) var(--ease-out) calc(.12s + var(--i) * 70ms) backwards}@keyframes hw-in{0%{opacity:0;transform:translateY(.45em);filter:blur(10px)}}.is-intro .up-stack--i>*{animation:stack-in var(--dur-slow) var(--ease-spring) backwards}.is-intro .up-stack--i>:nth-child(1){animation-delay:.85s}.is-intro .up-stack--i>:nth-child(2){animation-delay:.92s}.is-intro .up-stack--i>:nth-child(3){animation-delay:.99s}.is-intro .up-stack--i>:nth-child(4){animation-delay:1.06s}.is-intro .up-stack--i>:nth-child(5){animation-delay:1.13s}@keyframes stack-in{0%{opacity:0;translate:0 18px;scale:.5}}.is-intro .home-deco{animation:deco-in 1.6s var(--ease) .3s backwards}.ng>main>.ng-content:has(>.home-intro.is-intro){animation:none}@keyframes deco-in{0%{opacity:0}}.home-deco>span{position:absolute;display:block;border-radius:22px;opacity:.85;font-size:calc(13px * var(--s, 1));filter:blur(var(--b, 10px)) saturate(1.2);transform:rotate(var(--r, 0deg));animation:home-float var(--d, 8s) var(--ease-in-out) var(--o, 0s) infinite alternate}.home-deco .cv--app{border-radius:1.5em}@keyframes home-float{0%{transform:translateY(-10px) rotate(var(--r, 0deg))}to{transform:translateY(12px) rotate(calc(var(--r, 0deg) + 6deg))}}.ng[data-theme=dark] .home-deco>span{opacity:.7}@media (max-width: 760px){.home-deco>span{font-size:calc(9px * var(--s, 1));opacity:.5}}@media (prefers-reduced-motion: reduce){.home-deco>span,.is-intro .home-title .hw,.is-intro .up-stack--i>*,.is-intro .home-deco{animation:none}}.up-stack--i .cv--app{border-radius:1.75em;color:var(--glass-glyph);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px) saturate(190%);backdrop-filter:blur(14px) saturate(190%);box-shadow:inset 0 0 0 1px var(--glass-line),inset 0 1.5px 0 var(--glass-edge),inset 1px 0 color-mix(in srgb,var(--glass-edge) 50%,transparent),inset 0 -1px color-mix(in srgb,var(--glass-edge) 40%,transparent)}.up-stack--i .cv--app:after{display:block;content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:none;background:linear-gradient(165deg,var(--glass-sheen) 0%,transparent 42%)}.up-stack--i .cv--app svg{position:relative;z-index:1;filter:drop-shadow(0 1px 0 rgba(255,255,255,.35))}.up-stack.up-stack--i>*{border-radius:1.75em!important}.up-stack--i .cv--app:after{display:none}.up-stack.up-stack--i>*{box-shadow:none}.up-stack .cv--brand,.up-stack--i .cv--brand{background:var(--cv-bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 0 0 1px #00000014}.cv--brand svg,.up-stack--i .cv--brand svg{width:var(--lg, 50%);height:var(--lg, 50%);filter:none}.up-stack--i>*,.up-stack--tip>*{cursor:default;outline:none;transition:transform var(--dur-base) var(--ease-spring)}.up-stack--i>*:hover,.up-stack--i>*:focus-visible,.up-stack--tip>*:hover{z-index:10!important;transform:rotate(0) translateY(-10px) scale(1.12)}.up-stack--i>*:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--focus)}.stack-tip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translate(-50%,4px) scale(.96);padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;background:var(--fg);color:var(--bg);font-size:var(--fs-xs);line-height:16px;font-weight:var(--fw-semibold);opacity:0;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease-spring)}.up-stack--i>*:hover .stack-tip,.up-stack--i>*:focus-visible .stack-tip,.up-stack--tip>*:hover .stack-tip{opacity:1;transform:translate(-50%) scale(1)}@media (prefers-reduced-motion: reduce){.up-stack--tip>*{transition:none}}.up-stack.is-pick>*{cursor:pointer}.up-stack.is-pick>*:active{transform:rotate(0) translateY(-10px) scale(1.06);transition-duration:var(--dur-instant)}.home-intro .up-stack,.works-stack .up-stack{width:calc(4 * 46px + 6em * 1.15);margin:0;font-size:10px}.works-stack{display:none}.ng .home-title{margin-inline:auto}.svc{display:flex;flex-direction:column;gap:56px}.svc-title{margin:0;text-align:center;font-size:var(--fs-display-sm);line-height:var(--lh-display-sm);letter-spacing:-.02em;font-weight:var(--fw-bold)}.svc-title span{display:block}.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.svc-card{position:relative;height:330px;border-radius:24px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column;align-items:center}.svc-card h3{margin:0;padding-top:24px;font-size:var(--fs-title);line-height:var(--lh-title);font-weight:var(--fw-medium);letter-spacing:-.01em;text-align:center}.svc-vis{position:relative;flex:1;width:100%;display:flex;align-items:center;justify-content:center}.svc-vis{font-size:var(--fs-2xs)}.xsv-tile{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--bg);color:var(--fg);box-shadow:0 8px 24px -10px #00000040,inset 0 0 0 1px var(--line)}.xsv-tile svg{width:26px;height:26px}.xsv-flow{display:flex;align-items:center}.xsv-flow>i{width:22px;height:0;border-top:1.5px dashed var(--line-strong)}.xsv-flow .xsv-tile:not(.is-on){color:var(--icon)}.xsv-flow .xsv-tile.is-on{position:relative;z-index:1;transform:scale(1.12)}.xsv-flow .xsv-tile.is-on>svg.xsv-cursor{position:absolute;left:74%;top:72%;width:20px;height:20px;color:var(--fg);filter:drop-shadow(0 0 1px var(--bg)) drop-shadow(0 0 1px var(--bg)) drop-shadow(0 2px 2px rgba(0,0,0,.25))}.xsv-url{display:flex;align-items:center;gap:10px;height:56px;padding:0 8px 0 18px;border-radius:999px;background:var(--bg);box-shadow:0 6px 24px -10px #0003,inset 0 0 0 1px var(--line);color:var(--icon);font-size:var(--fs-sm)}.xsv-url>svg{width:20px;height:20px}.xsv-url span{min-width:9em;color:var(--fg);font-weight:var(--fw-medium)}.xsv-url span:after{content:"";display:inline-block;width:1px;height:1.1em;margin-left:2px;vertical-align:-.15em;background:var(--fg);animation:xsv-caret 1s steps(1) infinite}@keyframes xsv-caret{50%{opacity:0}}.xsv-url b{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--fg);color:var(--bg)}.xsv-url b svg{width:18px;height:18px}.xsv-appicon{position:relative;display:grid;place-items:center;width:92px;height:92px;border-radius:24px;background:var(--fg);color:var(--bg);box-shadow:0 14px 30px -12px #0006}.xsv-appicon svg{width:40px;height:44px}.xsv-appicon em{position:absolute;top:-8px;right:-8px;display:grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:#ff3b30;color:#fff;font-style:normal;font-size:var(--fs-xs);font-weight:var(--fw-semibold);box-shadow:0 0 0 3px var(--surface)}.xsv-bar{display:flex;gap:6px;padding:8px;border-radius:999px;background:var(--bg);box-shadow:0 6px 24px -10px #0003,inset 0 0 0 1px var(--line)}.xsv-bar span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-size:20px;color:var(--icon)}.xsv-bar span.is-on{background:var(--surface);color:var(--fg)}.xsv-apps{display:flex}.xsv-apps span{display:grid;place-items:center;width:84px;height:84px;margin-left:-18px;border-radius:22px;background:var(--bg);box-shadow:0 10px 30px -12px #0000004d,inset 0 0 0 1px var(--line);transform:rotate(-8deg)}.xsv-apps span:first-child{margin-left:0;transform:rotate(-6deg) translateY(6px)}.xsv-apps span:nth-child(2){z-index:1;transform:scale(1.1)}.xsv-apps span:last-child{transform:rotate(8deg) translateY(6px)}.xsv-apps .brand{width:40px;height:40px}.xsv-motion{display:flex;gap:10px}.xsv-motion span{display:grid;place-items:center;width:64px;height:64px;border-radius:18px;background:var(--bg);box-shadow:0 8px 24px -10px #00000040,inset 0 0 0 1px var(--line);font-size:28px;font-weight:var(--fw-bold);animation:sv-hop 1.8s var(--ease-in-out) infinite;animation-delay:calc(var(--k) * .18s)}.xsv-motion span svg{width:28px;height:28px;color:#ff3b5c}@keyframes sv-hop{0%,60%,to{transform:translateY(0)}25%{transform:translateY(-18px) rotate(-4deg)}40%{transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.xsv-motion span,.xsv-url span:after{animation:none}}@media (hover: hover){.svc-card .svc-vis>*{transition:transform var(--dur-slow) var(--ease-out)}.svc-card:hover .svc-vis>*{transform:translateY(-4px)}}@media (max-width: 1023px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.svc-vis{font-size:calc(var(--fs-2xs) * .9)}.svc{gap:32px}.svc-grid{grid-template-columns:1fr;gap:12px}.svc-card{height:280px;border-radius:20px}}.testi{display:flex;flex-direction:column;gap:56px;margin-top:clamp(24px,4vw,64px)}.testi-title{font-size:var(--fs-display-sm);line-height:var(--lh-display-sm);letter-spacing:-.02em;font-weight:var(--fw-bold)}.testi-title span{display:block}.testi-viewport{overflow:hidden;outline:none;padding-block:8px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.testi-viewport:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.testi-track{display:flex;gap:24px;width:max-content;padding-inline:12px;animation:testi-scroll calc(var(--n) * 7s) linear infinite}.testi-viewport:focus-within .testi-track{animation-play-state:paused}.testi-track{will-change:transform}@keyframes testi-scroll{to{transform:translate(calc(-50% - 12px))}}.testi-card{margin:0;flex:0 0 auto;width:340px;min-height:360px;padding:28px;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;transition:transform var(--dur-base) var(--ease-spring)}@media (hover: hover){.testi-card:hover{transform:translateY(-6px)}}.testi-card blockquote{margin:0;font-size:var(--fs-h-sm);line-height:var(--lh-h-sm);letter-spacing:-.02em;font-weight:var(--fw-semibold)}.testi-card figcaption{display:flex;align-items:center;gap:12px}.testi-who{display:flex;flex-direction:column;gap:2px;min-width:0}.testi-av{flex-shrink:0;width:44px;height:44px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,currentColor 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 18%,transparent)}.testi-av img{width:100%;height:100%;object-fit:cover;display:block}.testi-av svg{width:100%;height:100%;fill:currentColor;opacity:.45;transform:translateY(3px)}.testi-card b{font-size:var(--fs-sm);font-weight:var(--fw-semibold)}.testi-card span{font-size:var(--fs-sm);opacity:.7}.testi-who>span:first-child{font-weight:var(--fw-semibold);opacity:1}.testi-draft{margin-top:8px;align-self:flex-start;font-style:normal;font-size:var(--fs-2xs);padding:2px 8px;border-radius:999px;border:1px dashed currentColor;opacity:.6}.testi-card--light{background:var(--surface);color:var(--fg)}.testi-card--dark{background:var(--fg);color:var(--bg)}.testi-card--navy{background:#0c1b43;color:#fff}.testi-card--tint{color:#1a1a1a;background:radial-gradient(70% 60% at 15% 0%,rgba(247,170,214,.9),transparent 70%),radial-gradient(70% 60% at 90% 10%,rgba(251,200,176,.9),transparent 70%),radial-gradient(80% 70% at 50% 100%,rgba(178,186,245,.95),transparent 75%),#f4f1fb}@media (max-width: 760px){.testi{gap:32px;margin-top:24px}.testi-card{width:280px;min-height:320px;padding:24px;border-radius:20px}}@media (prefers-reduced-motion: reduce){.testi-track{animation:none}.testi-viewport{overflow-x:auto;scroll-snap-type:x mandatory}.testi-card{scroll-snap-align:center}.testi-card[aria-hidden]{display:none}}.ng-content{max-width:1024px;margin:0 auto;display:flex;flex-direction:column;gap:132px}.ng-project{display:flex;flex-direction:column;gap:12px;scroll-margin-top:120px}@media (hover: hover){.ng-project:has(~.ng-project) .ng-card,.ng-project~.ng-project .ng-card{cursor:grab}}.ng-project a,.ng-project img{-webkit-user-drag:none}html.is-card-drag,html.is-card-drag *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}@media (max-width: 760px){.ng-project{scroll-margin-top:84px}}.ng-titleset{display:flex;align-items:center;gap:9px;min-height:36px;padding:0 24px}.ng-name{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:9px}.ng-meta{width:36px;height:36px;border-radius:99px;background:#262626;color:#fff;display:grid;place-items:center;flex-shrink:0;font-size:5.2px;letter-spacing:.28em;font-weight:700;padding-left:.28em}.ng-meta{overflow:hidden}.ng-meta img,.xp-logo--img img,.cv-thumb img{width:100%;height:100%;object-fit:cover;display:block}.xp-logo--img{padding:0}.cv-thumb{overflow:hidden}.ng-project-name{font-size:var(--fs-title);line-height:var(--lh-title);letter-spacing:-.01em;font-weight:var(--fw-demibold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-kind{font-size:var(--fs-title);line-height:var(--lh-title);letter-spacing:-.021em;white-space:nowrap}.ng-kind b{font-weight:var(--fw-demibold)}.ng-kind span{font-weight:var(--fw-regular);color:var(--muted)}.ng-card{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:3.125%/4.167%;overflow:hidden;isolation:isolate;container-type:inline-size}.ng-card--phone{background:var(--card1-bg)}.ng-card--showcase{background:var(--card2-bg)}.ph{position:relative;overflow:hidden}.ph>svg,.ph>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover}.phone{position:absolute;width:23.5em;height:50em;padding:.55em;border-radius:3.7em;background:#1a1c2c;box-shadow:0 3.5em 6em -1.5em #06174480,inset 0 0 0 .2em #3d4268,inset 0 0 0 .45em #11131f}.phone-screen{position:relative;height:100%;border-radius:3.15em;overflow:hidden;background:#fff;color:var(--navy);display:flex;flex-direction:column}.island{position:absolute;top:.95em;left:50%;transform:translate(-50%);width:7.4em;height:2.1em;border-radius:2em;background:#000;z-index:3}.statusbar{position:relative;z-index:2;height:4em;padding:1.2em 2.2em 0;display:flex;justify-content:space-between;font-size:1em;font-weight:600}.statusbar.is-light{color:#fff}.sb-icons{display:flex;gap:.35em;align-items:center}.sb-icons i{width:.7em;height:.7em;border-radius:50%;background:currentColor;opacity:.9}.wordmark{font-weight:700;letter-spacing:.32em;font-size:1.15em}.c1-phone{left:50%;top:8.5%;font-size:1.02cqw;transform:translate(-50%) rotate(-3deg)}.m-hero{position:relative;height:60%;color:#fff;display:flex;flex-direction:column}.m-hero-photo{position:absolute;top:0;right:0;bottom:0;left:0}.m-hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#06174440,#0617448c 42%,#061744 96%)}.m-topbar{position:relative;display:flex;justify-content:space-between;align-items:center;padding:.6em 1.6em;font-size:1.1em}.m-topbar-icons{display:flex;gap:.8em;font-size:1.4em}.badge-wrap{position:relative;display:inline-flex}.badge-wrap b{position:absolute;top:-.35em;right:-.4em;min-width:1.05em;height:1.05em;border-radius:1em;background:var(--burgundy);font-size:.5em;display:grid;place-items:center;font-style:normal}.m-hero-copy{position:relative;margin-top:auto;padding:0 1.6em 1.7em}.m-hero-copy h3{font-size:2.3em;line-height:1.08;font-weight:600;letter-spacing:-.02em;margin-bottom:.45em}.m-hero-copy p{font-size:.98em;line-height:1.45;opacity:.85;margin-bottom:1.2em}.m-ctas{display:flex;gap:.6em}.btn-primary,.btn-ghost{font-size:.98em;font-weight:600;padding:.6em 1em;border-radius:.45em}.btn-primary{background:var(--burgundy)}.btn-ghost{box-shadow:inset 0 0 0 1px #ffffffb3}.m-services{padding:1.7em 1.6em;background:#fff;flex:1;overflow:hidden}.m-services small{font-size:.95em;color:#6b7280;display:block;margin-bottom:.35em}.m-services h4{font-size:1.65em;line-height:1.18;font-weight:600;margin-bottom:1em;letter-spacing:-.01em}.m-service-row{display:flex;gap:.8em}.m-service{flex:0 0 13.5em;border:1px solid #e3e6ef;border-radius:1em;padding:1em;display:flex;flex-direction:column;gap:.3em}.m-service-ico{width:2.4em;height:2.4em;border-radius:.7em;background:#eef0f8;display:grid;place-items:center;font-size:1.2em;margin-bottom:.2em}.m-service strong{font-size:1.1em}.m-service span:last-child{font-size:.9em;color:#6b7280;line-height:1.35}.c1-chip{position:absolute;left:17%;top:60%;font-size:1cqw;display:flex;align-items:center;gap:.9em;padding:.95em 1.2em;border-radius:1.2em;background:var(--chip-bg);color:var(--chip-fg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1.5em 3em -1em #06174459}.c1-chip-ico{width:2.8em;height:2.8em;border-radius:50%;background:var(--burgundy);color:#fff;display:grid;place-items:center;font-size:1.15em;flex-shrink:0}.c1-chip strong{display:block;font-size:1.1em}.c1-chip div>span{display:block;font-size:.95em;opacity:.7;margin:.15em 0 .5em}.c1-chip .bar{display:block;width:13em;height:.35em;border-radius:1em;background:#7f7fa040;overflow:hidden;margin:0;opacity:1}.c1-chip .bar i{display:block;height:100%;width:64%;background:var(--burgundy);border-radius:inherit}.browser{position:absolute;left:7%;top:11%;width:68em;font-size:1cqw;border-radius:1.2em;overflow:hidden;background:#fff;color:var(--navy);box-shadow:0 4em 7em -2em #06174466}.b-chrome{height:2.8em;background:#f1f2f6;display:flex;align-items:center;gap:.5em;padding:0 1.2em}.b-chrome i{width:.8em;height:.8em;border-radius:50%;background:#cfd3df}.b-url{margin:0 auto;font-size:.95em;color:#6b7280;background:#fff;padding:.3em 3em;border-radius:2em}.b-nav{display:flex;align-items:center;gap:2.4em;padding:1.4em 2.6em;font-size:1.05em}.b-nav .wordmark{margin-right:auto}.b-nav a{color:#3b4566;text-decoration:none}.b-nav .btn-primary{color:#fff}.b-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:2.6em;padding:1.6em 2.6em 3em;align-items:center}.b-hero h3{font-size:3.6em;line-height:1.02;letter-spacing:-.03em;font-weight:600;margin-bottom:.4em}.b-hero p{font-size:1.15em;line-height:1.5;color:#4b5563;margin-bottom:1.6em}.b-hero .m-ctas .btn-primary{color:#fff}.b-hero .btn-ghost{box-shadow:inset 0 0 0 1px #c7cbe0;color:var(--navy)}.b-photo{aspect-ratio:4 / 3.2;border-radius:1.2em}.b-stats{display:flex;gap:3.4em;padding:1.6em 2.6em 2.4em;border-top:1px solid #eceef4}.b-stats strong{display:block;font-size:2em;letter-spacing:-.02em}.b-stats span{font-size:.95em;color:#6b7280}.c2-phone{right:7%;top:17%;font-size:.78cqw;transform:rotate(4deg)}.t-head{background:var(--navy);color:#fff;padding:0 1.6em 1.6em;display:flex;flex-direction:column}.t-head .statusbar{margin:0 -1.6em}.t-head .wordmark{font-size:1em;opacity:.75;margin:.6em 0 1.2em}.t-head h5{font-size:2.2em;font-weight:600;letter-spacing:-.02em;margin-bottom:.7em}.t-search{display:flex;align-items:center;gap:.6em;background:#ffffff1f;border-radius:.8em;padding:.8em 1em;font-size:1em;color:#ffffffbf}.t-list{padding:1.2em 1.4em;display:flex;flex-direction:column;gap:.9em;background:#f6f7fb;flex:1}.t-row{display:flex;align-items:center;gap:.9em;background:#fff;border-radius:1em;padding:1em}.t-ico{width:2.6em;height:2.6em;border-radius:.7em;background:#eef0f8;display:grid;place-items:center;font-size:1.25em;flex-shrink:0}.t-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2em}.t-meta strong{font-size:1.05em}.t-meta strong,.t-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.t-meta span{font-size:.9em;color:#6b7280}.t-bar{display:block;height:.3em;border-radius:1em;background:#e5e7f0;margin-top:.35em;overflow:hidden}.t-bar i{display:block;height:100%;background:var(--burgundy);border-radius:inherit}.t-row em{font-style:normal;font-size:.82em;font-weight:600;color:var(--burgundy);background:#fbeef1;padding:.3em .6em;border-radius:1em;white-space:nowrap}.t-row em.is-done{color:#16794a;background:#e8f6ee}.ng-blur{position:fixed;left:0;right:0;bottom:0;height:200px;pointer-events:none;z-index:5}.ng-blur>i{position:absolute;top:0;right:0;bottom:0;left:0}.ng-blur>i:nth-child(1),.ng-blur>i:nth-child(2),.ng-blur>i:nth-child(4){display:none}.ng-blur>i:nth-child(3){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(to top,#000 25%,transparent 85%);mask-image:linear-gradient(to top,#000 25%,transparent 85%)}.ng-blur>i:nth-child(4){-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);-webkit-mask-image:linear-gradient(to top,#000 0%,transparent 35%);mask-image:linear-gradient(to top,#000 0%,transparent 35%)}.ng-blur>i:nth-child(5){background:linear-gradient(to top,var(--fade-tint) 0%,transparent 55%)}@media (prefers-reduced-motion: reduce){.ng-header:before{animation:none}}.ng-dock{position:fixed;left:50%;bottom:34px;transform:translate(-50%);z-index:10;display:flex;align-items:center;gap:6px}.ng-dock{transition:gap var(--dur-base) var(--ease-out),bottom var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease),translate var(--dur-base) var(--ease-out)}.ng-dock.is-gone{opacity:0;translate:0 24px;pointer-events:none}.dock-side{display:flex;width:48px;justify-content:center;transition:width var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease),transform var(--dur-slow) var(--ease-spring)}.ng-navbar{position:relative;height:48px;padding:0 18px;border-radius:999px;display:flex;align-items:center;gap:6px;background:var(--btn-bg);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:var(--btn-shadow);transition:height var(--dur-base) var(--ease-out),padding var(--dur-base) var(--ease-out)}.ng .ng-seg{position:relative;width:6px;height:6px;border-radius:99px;overflow:hidden;flex-shrink:0;background:var(--dark-30);transition:width var(--dur-slow) var(--ease-spring),background-color var(--dur-fast) var(--ease)}.ng .ng-seg:before{content:"";position:absolute;top:-14px;right:-3px;bottom:-14px;left:-3px}.ng .ng-seg.is-on{width:28px;background:var(--line-strong)}.ng-seg i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--icon-hover);transform-origin:left center}.ng-seg i.is-running{animation:seg-fill linear both}@keyframes seg-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (hover: hover){.ng .ng-seg:not(.is-on):hover{background:var(--icon-hover)}}.ng-dock.is-collapsed{gap:0}.ng-dock.is-collapsed .dock-side{width:0;opacity:0;transform:scale(.4);pointer-events:none}.ng-dock.is-collapsed .ng-navbar{height:22px;padding:0 9px}@media (prefers-reduced-motion: reduce){.dock-side,.ng-navbar,.ng .ng-seg{transition:none}}.ng .ng-chat{position:fixed;right:43px;bottom:34px;z-index:10;width:48px;height:48px;padding:0;border-radius:999px;overflow:hidden;border:0;background:var(--btn-bg);box-shadow:var(--btn-shadow);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);transition:width var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.ng .ng-chat:active{transform:scale(.95);transition-duration:var(--dur-instant)}@media (hover: hover){.ng .ng-chat:hover{width:144px}}.ng .ng-chat:focus-visible{width:144px}.ng-chat-text{position:absolute;left:16px;top:50%;padding-bottom:2px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;white-space:nowrap;opacity:0;transform:translate(6px,-50%);transition:opacity var(--dur-fast) var(--ease),transform var(--dur-base) var(--ease-out)}@media (hover: hover){.ng-chat:hover .ng-chat-text{opacity:1;transform:translateY(-50%);transition-delay:.1s}}.ng-chat:focus-visible .ng-chat-text{opacity:1;transform:translateY(-50%)}.ng-chat-text b{font-size:var(--fs-body);line-height:20px;letter-spacing:-.01em;font-weight:var(--fw-semibold);color:var(--text-2)}.ng-chat-text small{font-size:var(--fs-2xs);line-height:12px;letter-spacing:-.01em;font-weight:var(--fw-medium);color:var(--text-3)}.ng-chat-av{position:absolute;right:5px;top:50%;width:38px;height:38px;transform:translateY(-50%)}.ng-chat .me{position:absolute;top:0;right:0;bottom:0;left:0;width:38px;height:38px;border-radius:50%;overflow:hidden;display:block}.ng-chat .me>img{object-position:50% 50%}.ng-chat .dot{position:absolute;left:3.4px;top:27.6px;width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 1.5px var(--bg)}.ng-chat.is-away .dot{background:#111}.ng[data-theme=dark] .ng-chat.is-away .dot{background:#71717a}.ng .ng-chat.is-away{opacity:.6}@media (hover: hover){.ng .ng-chat.is-away:hover{opacity:1}}.ng .ng-chat.is-away:focus-visible{opacity:1}.ng{--chat-border: #f9f9f9}.ng[data-theme=dark]{--chat-border: rgba(255,255,255,.06)}.hc{position:absolute;bottom:calc(100% + 14px);width:340px;padding:24px;border-radius:24px;background:var(--hc-bg);-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);box-shadow:0 4px 14.15px #0000003b,inset 0 -3px 10px #cbcbcb66,inset 0 7px 4px #d8d8d81f;display:flex;flex-direction:column;gap:8px;pointer-events:none;transform:translate(-50%) translateY(6px) scale(.97);opacity:0;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease-out),left var(--dur-fast) var(--ease-out)}.hc.is-on{opacity:1;transform:translate(-50%)}.hc-title{font-size:var(--fs-sm);line-height:18px;letter-spacing:-.01em;font-weight:var(--fw-semibold);color:var(--fg)}.hc-media{position:relative;width:292px;height:194px;border-radius:12px;overflow:hidden;background:#fff}.hc-media .ng-card{position:absolute;left:50%;top:50%;width:317px;transform:translate(-50%,-50%);aspect-ratio:1024 / 626.6;border-radius:0}.ng{--hc-bg: rgba(255,255,255,.5)}.ng[data-theme=dark]{--hc-bg: rgba(30,30,34,.6)}@media (hover: none){.hc{display:none}}@media (max-width: 1023px){.ng-header-inner{padding:16px 20px}.ng-content{gap:88px}}@media (max-width: 760px){.ng-rails,.ng-bio,.ng-vdivider{display:none}.ng-header-inner{padding:12px 16px}.ng-logo-box{width:44px}.ng-logo-box>svg{width:35px;height:38px}.ng-btn{width:44px;height:44px;font-size:21px}.ng-main{padding:64px 12px 168px}.ng-content{gap:56px}.ng-titleset{padding:0 4px;flex-wrap:wrap;row-gap:2px}.ng-name{flex-basis:100%}.ng-kind{padding-left:45px}.ng-dock{bottom:20px}.ng .ng-chat{right:16px;bottom:82px}.ng-card{aspect-ratio:4 / 4.2;border-radius:20px}.c1-phone{font-size:1.85cqw;top:5%}.c1-chip{left:3%;top:66%;font-size:1.75cqw}.ng-card--showcase{aspect-ratio:4 / 4.4}.browser{left:4%;top:5%;font-size:1.35cqw}.c2-phone{right:5%;top:37%;font-size:1.22cqw}}@media (prefers-reduced-motion: reduce){.ng,.ng *{transition:none!important}}.ng-card--navy{background:var(--card-navy)}.board{position:absolute;left:6%;top:8%;width:88em;font-size:1cqw;border-radius:1.2em;overflow:hidden;background:#fff;color:var(--navy);box-shadow:0 4em 7em -2em #06174466}.dash{display:grid;grid-template-columns:15em 1fr;min-height:58em}.dash-side{background:var(--navy);color:#fff;padding:1.8em 1.2em;display:flex;flex-direction:column;gap:.3em}.dash-side .wordmark{font-size:1em;margin:0 .6em 2em}.dash-side span{display:flex;align-items:center;gap:.7em;padding:.7em .8em;border-radius:.6em;font-size:1.02em;color:#ffffffb3}.dash-side span.is-on{background:#ffffff1a;color:#fff}.dash-side svg{font-size:1.25em}.dash-main{padding:1.8em 2.2em;background:#f6f7fb;display:flex;flex-direction:column;gap:1.4em}.dash-top{display:flex;align-items:center;justify-content:space-between}.dash-top h5{font-size:1.9em;font-weight:600;letter-spacing:-.02em}.pill{display:inline-flex;align-items:center;gap:.5em;font-size:.95em;padding:.5em .9em;border-radius:2em;background:#fff;border:1px solid #e3e6ef;color:#3b4566}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1em}.kpi{background:#fff;border-radius:1em;padding:1.2em 1.3em}.kpi span{font-size:.95em;color:#6b7280}.kpi strong{display:block;font-size:2.3em;letter-spacing:-.03em;font-weight:600;margin:.15em 0 .1em}.kpi em{font-style:normal;font-size:.85em;color:#16794a}.dash-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:1em}.panel{background:#fff;border-radius:1em;padding:1.3em}.panel h6{margin:0 0 1em;font-size:1.1em;font-weight:600}.bars{display:flex;align-items:flex-end;gap:.7em;height:13em}.bars i{flex:1;border-radius:.35em .35em 0 0;background:#d6dbef}.bars i.is-hi{background:var(--burgundy)}.bars-x{display:flex;justify-content:space-between;font-size:.8em;color:#9aa1b5;margin-top:.6em}.feed{display:flex;flex-direction:column;gap:.9em}.feed div{display:flex;gap:.8em;align-items:flex-start}.feed .t-ico{width:2.3em;height:2.3em;font-size:1.05em}.feed strong{display:block;font-size:.98em}.feed small{font-size:.85em;color:#6b7280}.c4-phone{left:34%;top:7%;font-size:1cqw;transform:translate(-50%) rotate(-2deg)}.map{position:absolute;top:0;right:0;bottom:0;left:0}.map svg{width:100%;height:100%;display:block}.map-top{position:absolute;top:4.2em;left:1.4em;right:1.4em;display:flex;align-items:center;gap:.8em;z-index:2}.map-top b{width:2.6em;height:2.6em;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:1.2em;box-shadow:0 .4em 1em #06174426}.map-top span{background:#fff;padding:.6em 1em;border-radius:2em;font-weight:600;font-size:1em;box-shadow:0 .4em 1em #06174426}.sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:2em 2em 0 0;padding:1.4em 1.6em 2em;box-shadow:0 -1em 2em #0617441f}.sheet:before{content:"";display:block;width:3.6em;height:.35em;border-radius:1em;background:#dfe2ec;margin:0 auto 1.2em}.sheet small{font-size:.95em;color:#6b7280}.sheet h5{font-size:1.9em;font-weight:600;letter-spacing:-.02em;margin:.15em 0 1em}.steps{display:flex;flex-direction:column;gap:.9em}.steps div{display:flex;align-items:center;gap:.8em;font-size:1em}.steps b{width:1.9em;height:1.9em;border-radius:50%;display:grid;place-items:center;background:#eef0f8;color:#9aa1b5;font-size:.95em}.steps .is-done b{background:var(--navy);color:#fff}.steps .is-now b{background:var(--burgundy);color:#fff}.steps span{flex:1}.steps em{font-style:normal;color:#6b7280;font-size:.9em}.toast{position:absolute;font-size:1cqw;width:30em;display:flex;gap:1em;align-items:center;padding:1.1em 1.3em;border-radius:1.2em;background:#ffffff1f;color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 0 0 1px #ffffff24,0 2em 4em -1.5em #00000080}.toast>b{width:2.9em;height:2.9em;border-radius:.8em;display:grid;place-items:center;background:#fff;color:var(--navy);font-size:1.2em;flex-shrink:0}.toast strong{display:block;font-size:1.12em}.toast span{display:block;font-size:.95em;opacity:.7;margin-top:.2em}.toast-a{left:56%;top:30%}.toast-b{left:61%;top:48%}.toast-b>b{background:var(--burgundy);color:#fff}.c5-a{left:32%;top:8%;font-size:.98cqw;transform:translate(-50%) rotate(-4deg)}.c5-b{left:66%;top:13%;font-size:.98cqw;transform:translate(-50%) rotate(4deg)}.q-head{display:flex;align-items:center;gap:.8em;padding:.4em 1.6em 0;font-weight:600;font-size:1.15em}.q-head em{margin-left:auto;font-style:normal;font-size:.8em;color:#6b7280;font-weight:500}.q-prog{margin:1em 1.6em 1.4em;height:.35em;border-radius:1em;background:#e5e7f0;overflow:hidden}.q-prog i{display:block;width:33%;height:100%;background:var(--burgundy)}.q-body{padding:0 1.6em;display:flex;flex-direction:column;gap:1.1em;flex:1}.q-label{font-size:.9em;color:#6b7280;margin-bottom:.45em;display:block}.q-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:.6em}.q-modes span{border:1px solid #e3e6ef;border-radius:.9em;padding:.9em .4em;display:flex;flex-direction:column;align-items:center;gap:.35em;font-size:.92em}.q-modes svg{font-size:1.5em}.q-modes .is-on{background:var(--navy);color:#fff;border-color:var(--navy)}.q-field{display:flex;align-items:center;gap:.7em;border:1px solid #e3e6ef;border-radius:.9em;padding:.85em 1em;font-size:1em}.q-field svg{color:#9aa1b5;font-size:1.2em}.q-cta{margin:auto 1.6em 2.2em;text-align:center;background:var(--burgundy);color:#fff;font-weight:600;padding:1em;border-radius:.9em;font-size:1.05em}.q-done{flex:1;padding:3em 1.8em 2.2em;display:flex;flex-direction:column;align-items:center;text-align:center}.q-check{width:5em;height:5em;border-radius:50%;background:#fbeef1;color:var(--burgundy);display:grid;place-items:center;font-size:1.6em;margin:1em 0 1.2em}.q-done h5{font-size:1.9em;font-weight:600;letter-spacing:-.02em}.q-done p{font-size:1em;color:#6b7280;line-height:1.45;margin:.6em 0 1.6em}.q-sum{width:100%;background:#f6f7fb;border-radius:1em;padding:.4em 1.1em;text-align:left}.q-sum div{display:flex;justify-content:space-between;padding:.8em 0;font-size:.95em;border-bottom:1px solid #e8eaf2}.q-sum div:last-child{border-bottom:0}.q-sum span{color:#6b7280}.q-ghost{margin-top:auto;width:100%;padding:1em;border-radius:.9em;box-shadow:inset 0 0 0 1px #c7cbe0;font-weight:600}.ds{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:2.4em;padding:2.4em 2.6em 3em;min-height:50em}.ds h6{margin:0 0 1.2em;font-size:.95em;color:#6b7280;font-weight:500;display:flex;align-items:center;gap:.5em}.sw{display:grid;grid-template-columns:1fr 1fr;gap:.8em}.sw div{border-radius:.9em;overflow:hidden;border:1px solid #eceef4}.sw i{display:block;height:5.5em}.sw span{display:block;padding:.6em .8em;font-size:.9em}.sw small{display:block;padding:0 .8em .7em;font-size:.8em;color:#6b7280}.type-aa{font-size:8em;line-height:.9;font-weight:600;letter-spacing:-.04em;margin-bottom:.2em}.type-row{display:flex;justify-content:space-between;align-items:baseline;padding:.8em 0;border-bottom:1px solid #eceef4}.type-row span{color:#6b7280;font-size:.9em}.comp{display:flex;flex-direction:column;gap:1.1em}.comp-row{display:flex;gap:.6em;flex-wrap:wrap;align-items:center}.comp .btn-primary{color:#fff}.comp .btn-ghost{box-shadow:inset 0 0 0 1px #c7cbe0}.btn-off{font-size:.98em;font-weight:600;padding:.6em 1em;border-radius:.45em;background:#eef0f5;color:#a3a9bb}.chip{font-size:.9em;padding:.45em .9em;border-radius:2em;border:1px solid #e3e6ef;display:inline-flex;gap:.4em;align-items:center}.chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}.toggle{width:3.2em;height:1.8em;border-radius:2em;background:var(--navy);position:relative}.toggle:after{content:"";position:absolute;right:.2em;top:.2em;width:1.4em;height:1.4em;border-radius:50%;background:#fff}.toggle.is-off{background:#d6dbef}.toggle.is-off:after{right:auto;left:.2em}.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.5em;font-size:1.4em;color:var(--navy)}.icon-grid span{aspect-ratio:1;border-radius:.4em;background:#f3f4f9;display:grid;place-items:center}.icon-grid svg{font-size:.75em}@media (max-width: 760px){.board{left:5%;top:6%;font-size:1.45cqw}.c4-phone{left:36%;top:5%;font-size:1.75cqw}.c4-phone{left:31%}.toast{font-size:1.6cqw;width:22em;padding:.9em 1em}.toast-a{left:59%;top:22%}.toast-b{left:59%;top:50%}.c5-a{left:30%;top:6%;font-size:1.6cqw}.c5-b{left:74%;top:14%;font-size:1.6cqw}}.ng{--surface: #f5f5f5;--text-3: #525252}.ng[data-theme=dark]{--surface: #151517;--text-3: #a3a3a3}.pg{max-width:1186px;margin:0 auto;padding:60px 16px 160px}.pg-inner{max-width:1024px;margin:0 auto;display:flex;flex-direction:column;gap:56px}.pg-inner.pg-inner--narrow{max-width:704px}.hero-xl{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:var(--fw-bold);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual}.lead{font-size:var(--fs-lead);line-height:var(--lh-lead);letter-spacing:-.02em;color:var(--text-3);font-weight:var(--fw-medium);max-width:761px}.lead+.lead{margin-top:1em}.pg-head{display:flex;flex-direction:column;gap:24px}.works-head{display:flex;align-items:center;justify-content:center;gap:clamp(48px,7vw,112px)}.works-head{min-height:calc(100svh - 500px)}.works-head .lead{max-width:600px}.up-stack.up-stack--grid{height:auto;margin:0;font-size:16px;display:grid;grid-template-columns:repeat(3,auto);gap:18px;flex-shrink:0}.up-stack.up-stack--grid>*{position:relative;top:auto}.up-stack.up-stack--grid .cv--app{font-size:inherit}@media (max-width: 1279px){.up-stack.up-stack--grid{font-size:13px;gap:14px}}@media (max-width: 1023px){.up-stack.up-stack--grid{font-size:11px;gap:12px}}@media (max-width: 760px){.works-head{flex-direction:column;align-items:flex-start;justify-content:center;gap:32px;min-height:calc(100svh - 310px)}.works-head .up-stack--grid{display:none}.works-stack{display:block;order:-1}.works-head{gap:24px}}@media (max-width: 760px){.home-intro .up-stack,.works-stack,.up-stack--tip{zoom:.7}.home-intro .up-stack .stack-tip,.works-stack .stack-tip,.up-stack--tip .stack-tip{zoom:calc(1 / .7)}}.about-intro{display:grid;grid-template-columns:1fr 358px;gap:72px;align-items:center}.about-intro .pg-head{justify-content:center}.about-photo{border-radius:29px;width:358px;aspect-ratio:358 / 432;background:#e9e9e9}.about-photo>img,.about-photo>svg{object-position:50% 50%}.about-intro:where(.pg-inner--narrow *){grid-template-columns:1fr 240px;gap:32px}.about-photo:where(.pg-inner--narrow *){width:240px;border-radius:24px}.xp-title{font-size:var(--fs-h-xl);line-height:var(--lh-h-xl);letter-spacing:-.02em;font-weight:var(--fw-semibold);margin-bottom:clamp(20px,2.2vw,32px)!important}.xp-list{display:flex;flex-direction:column;gap:12px}.xp-logo--ico{border-radius:0;overflow:visible;font-size:8px}.xp-logo--ico .cv--app{border-radius:1.75em;color:var(--glass-glyph);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px) saturate(190%);backdrop-filter:blur(14px) saturate(190%);box-shadow:inset 0 0 0 1px var(--glass-line),inset 0 1.5px 0 var(--glass-edge)}.xp-item{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.xp-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.xp-logo{width:48px;height:48px;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:700;flex-shrink:0;overflow:hidden}.xp-logo--barsan{background:linear-gradient(270deg,#061744,#0c1b43 96%);font-size:7px;letter-spacing:.25em;padding-left:.25em}.xp-logo--w{background:linear-gradient(135deg,#ffb46b,#f0732a);font-size:22px}.xp-logo--a{background:linear-gradient(135deg,#2b2b2f,#5a5a63);font-size:22px}.xp-company{display:flex;align-items:center;gap:12px}.xp-company strong,.xp-role,.xp-date,.xp-now{font-size:var(--fs-h-xs);line-height:var(--lh-h-xs);letter-spacing:-.02em;font-weight:var(--fw-regular)}.xp-company strong{font-weight:var(--fw-semibold)}.xp-role{color:var(--text-3)}.xp-date{color:var(--muted);white-space:nowrap}.xp-now{display:flex;align-items:center;gap:6px;white-space:nowrap}.xp-now:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fg)}.xp-now--plain:before{display:none}.xp-list--plain .xp-item{min-height:48px}@media (max-width: 760px){.xp-list--plain .xp-item{grid-template-columns:minmax(0,1fr)}.xp-list--plain :is(.xp-company strong,.xp-role,.xp-date,.xp-now){grid-column:1}}.form{background:var(--surface);border-radius:64px;padding:56px;display:flex;flex-direction:column;gap:32px}.form-rows{display:flex;flex-direction:column}.f-row{display:flex;align-items:center;gap:90px;padding:24px 0;border-bottom:1px solid var(--line);min-height:76px}.f-row:first-child{padding-top:0;min-height:52px}.f-row--msg{align-items:flex-start;border-bottom:0;padding-bottom:0}.f-row label,.f-label{width:100px;min-width:100px;font-size:var(--fs-h-xs);line-height:var(--lh-h-xs);letter-spacing:-.02em;font-weight:var(--fw-regular);color:var(--text-3)}.f-row input,.f-row textarea{flex:1;min-width:0;border:0;background:transparent;outline:none;color:var(--fg);font:inherit;font-size:var(--fs-h-xs);line-height:var(--lh-h-xs);letter-spacing:-.02em;font-weight:var(--fw-semibold);padding:0}.f-row textarea{min-height:99px;resize:vertical}.f-row input::placeholder,.f-row textarea::placeholder{color:var(--muted-2);font-weight:var(--fw-regular)}.f-row:focus-within label{color:var(--fg)}.ng .f-row input:focus-visible,.ng .f-row textarea:focus-visible{outline:none}.f-to{display:flex;align-items:center;gap:6px}.f-to .f-to-mail{font-size:var(--fs-h-xs);font-weight:var(--fw-semibold);color:var(--muted);letter-spacing:-.02em}.f-to .ng-btn{margin:-10px 0}.f-error{color:#c0182f;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.f-ok{color:var(--text-3);font-size:var(--fs-sm)}.f-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.ng .send{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:64px;background:var(--send-bg)!important;color:var(--send-fg)!important;font-size:var(--fs-h-sm)!important;line-height:var(--lh-h-sm);font-weight:var(--fw-semibold)!important;letter-spacing:-.02em;box-shadow:inset 0 -3px 10px #cbcbcb66,inset 0 7px 4px #d8d8d81f;transition:transform var(--dur-fast) var(--ease)}.ng .send{transition:transform var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease)}.ng .send.is-sending{opacity:.6;pointer-events:none}.f-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.f-error a{color:inherit;text-decoration:underline;text-underline-offset:2px}.ng .send svg{transition:transform var(--dur-base) var(--ease-out)}@media (hover: hover){.ng .send:hover svg{transform:translate(2px,-2px)}.ng .send:hover{opacity:.9}}.ng .send:active{transform:scale(.96);transition-duration:var(--dur-instant)}.ng .send{transition:transform var(--dur-base) var(--ease-spring),background-color var(--dur-base) var(--ease),opacity var(--dur-fast) var(--ease),box-shadow var(--dur-base) var(--ease)}.ng .send.is-ready{background:var(--fg)!important;color:var(--bg)!important;box-shadow:0 10px 24px -10px #00000073}.ng .send[aria-disabled=true]{cursor:not-allowed}.cs-next{display:flex;flex-direction:column;align-items:center;gap:20px;padding-bottom:40px;text-align:center}.cs-next p{font-size:var(--fs-h-sm);line-height:var(--lh-h-sm);font-weight:var(--fw-semibold);letter-spacing:-.02em}@media (hover: hover){.ng .send[aria-disabled=true]:hover{opacity:1}.ng .send[aria-disabled=true]:hover svg{transform:none}}.send svg{width:24px;height:24px}.works{display:flex;flex-direction:column;gap:60px}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}.works-grid .ng-titleset{padding:0}.works-grid .ng-kind{display:none}.ng .pg.pg--works{padding-top:120px;padding-bottom:140px}.pg--works .pg-inner,.pg--works .works{gap:132px}.pg--works .works-grid{column-gap:44px;row-gap:104px}@media (min-width: 1536px){.ng .pg.pg--works{padding-top:96px}.pg--works .works-head{min-height:0}.pg--works .pg-inner{gap:104px}}@media (max-width: 1023px){.pg--works .pg-inner,.pg--works .works{gap:88px}.pg--works .works-grid{row-gap:72px}}@media (max-width: 760px){.ng .pg.pg--works{padding-top:64px;padding-bottom:168px}.pg--works .pg-inner,.pg--works .works{gap:56px}.pg--works .works-grid{row-gap:56px}}.menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:18;display:flex;align-items:center;justify-content:center;padding:120px 24px 72px;overflow-y:auto;background:var(--menu-bg);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);animation:menu-in var(--dur-fast) var(--ease) both}.ng{--menu-bg: rgba(255,255,255,.72)}.ng[data-theme=dark]{--menu-bg: rgba(11,11,12,.72)}.menu-wrap{width:min(760px,100%);display:grid;grid-template-columns:1fr 240px;gap:clamp(32px,4vw,64px);align-items:center}.menu-list{width:100%;display:flex;flex-direction:column}.menu-me{margin:0;display:flex;flex-direction:column;gap:16px;animation:link-in var(--dur-slow) var(--ease-out) .1s both}.menu-me-photo{width:100%;aspect-ratio:358 / 432;border-radius:24px;background:#e9e9e9}.menu-me-photo>img{object-position:50% 50%}.menu-me figcaption{display:flex;flex-direction:column;gap:2px}.menu-me b{font-size:var(--fs-h-sm);line-height:var(--lh-h-sm);font-weight:var(--fw-semibold);letter-spacing:-.02em}.menu-me span{font-size:var(--fs-sm);line-height:20px;color:var(--text-3);font-weight:var(--fw-medium)}@media (max-width: 760px){.menu-wrap{grid-template-columns:1fr}.menu-me{display:none}.ng .menu-list .menu-link{font-size:var(--fs-menu-mobile)!important}}.menu-list{margin:0;padding:0;--menu-gap: clamp(12px, calc(9px + .6vw) , 18px)}.menu-list li{list-style:none;padding:var(--menu-gap) 0;border-bottom:1px solid var(--line)}.menu-list li:first-child{padding-top:0}.menu-list li:last-child{padding-bottom:0;border-bottom:0}.menu-list li.menu-sound-li{border-bottom:0;padding-top:28px}.ng .menu-sound{display:inline-flex;align-items:center;gap:10px;padding:10px 16px 10px 12px;border-radius:999px;background:var(--btn-bg);box-shadow:var(--btn-shadow);color:var(--text-2);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.menu-sound svg{width:20px;height:20px}.menu-sound[aria-pressed=true]{color:var(--fg)}.ng .menu-link{display:flex;justify-content:flex-start;align-items:flex-start;gap:12px;width:100%;padding:0;text-align:left;font-size:var(--fs-display-sm)!important;line-height:var(--lh-display-sm);font-weight:var(--fw-bold)!important;color:var(--fg);animation:link-in var(--dur-base) var(--ease-out) both;transition:opacity var(--dur-fast) var(--ease)}.menu-list li:nth-child(2) .menu-link{animation-delay:.04s}.menu-list li:nth-child(3) .menu-link{animation-delay:.08s}.menu-list li:nth-child(4) .menu-link{animation-delay:.12s}.menu-list:hover .menu-link:not(:hover){opacity:.35}.menu-badge{display:grid;place-items:center;width:1.6em;height:1.6em;border-radius:50%;background:var(--fg);color:var(--bg);font-size:.365em;letter-spacing:-.02em;margin-top:.1em;flex-shrink:0}@keyframes menu-in{0%{opacity:0}to{opacity:1}}@keyframes link-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (max-width: 860px){.about-intro{grid-template-columns:1fr;gap:32px}.about-photo{order:-1;width:min(260px,100%)}.works-grid{grid-template-columns:1fr;gap:56px}.works-grid .ng-kind{display:block}}@media (max-width: 760px){.pg{padding:32px 12px 160px}.pg-inner{gap:40px}.xp-item{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:12px;row-gap:2px;align-items:start}.xp-main,.xp-company{display:contents}.xp-logo{grid-row:1 / span 3}.xp-company strong,.xp-role,.xp-date,.xp-now{grid-column:2}.xp-company strong{padding-top:2px}.xp-date,.xp-now{font-size:14px;line-height:20px}.xp-now:before{width:6px;height:6px}.form{border-radius:28px;padding:28px 20px}.f-row{flex-direction:column;align-items:stretch;gap:8px;padding:16px 0;min-height:0}.f-row:first-child{padding-top:0}}@media (prefers-reduced-motion: reduce){.menu,.menu-link,.ng-ico-swap{animation:none}}.ng{--border-light: #e5e5e5;--text-strong: #262626;--pill-light: #e5e5e5}.ng[data-theme=dark]{--border-light: rgba(255,255,255,.1);--text-strong: #e5e5e5;--pill-light: rgba(255,255,255,.1)}.cs{max-width:1186px;margin:0 auto;padding:120px 16px 160px}.cs-inner{max-width:1024px;margin:0 auto;display:flex;flex-direction:column}.cs-intro{display:flex;justify-content:center;align-items:center;gap:32px;margin-bottom:120px}.cs-icon-wrap{position:relative;width:340px;flex-shrink:0;order:2}@media (min-width: 1536px){.cs-intro{margin-inline:-65px}}.ng .cs-icon-link{position:absolute;right:-20px;bottom:-20px;z-index:1;width:72px;height:72px;font-size:40px}.cs-icon{position:relative;width:340px;aspect-ratio:1;border-radius:17%;overflow:hidden;isolation:isolate;background:linear-gradient(270deg,#061744,#0c1b43 96%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em}.cs-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;mix-blend-mode:screen;background:radial-gradient(90% 70% at 30% 115%,rgba(150,160,255,.85) 0%,rgba(90,100,200,.35) 45%,transparent 75%),radial-gradient(60% 50% at 85% -10%,rgba(255,255,255,.18),transparent 70%)}.cs-icon>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.cs-icon svg{width:22%;height:auto;transform:rotate(45deg);opacity:.95}.cs-icon b{font-size:15.5%;letter-spacing:.2em;font-weight:var(--fw-bold);padding-left:.2em;line-height:1;font-size:31px}.cs-icon small{font-size:7px;letter-spacing:.42em;padding-left:.42em;opacity:.85}.cs-copy{display:flex;flex-direction:column;gap:12px;min-width:0;max-width:calc(var(--fs-display) * var(--cs-title-em, 7.6))}.cs-title{font-size:var(--fs-display);line-height:var(--lh-display);font-weight:var(--fw-bold);letter-spacing:-.02em;overflow-wrap:break-word}.cs-summary{font-size:var(--fs-lead);line-height:var(--lh-lead);letter-spacing:-.02em;font-weight:var(--fw-medium);color:var(--text-3);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.cs-flow{display:flex;flex-direction:column;gap:24px}.cs-flow>.ng-card,.cs-hero-grow>.ng-card{aspect-ratio:1024 / 626.6;border-radius:3.223%/5.267%}.cs-block{width:100%;max-width:704px;margin:0 auto;padding-block:clamp(56px,10vw,160px);display:flex;flex-direction:column;gap:24px}.cs-h{font-size:var(--fs-h-xl);line-height:var(--lh-h-xl);letter-spacing:-.02em;font-weight:var(--fw-semibold)}.cs-body{font-size:var(--fs-h-xs);line-height:1.35;letter-spacing:-.02em;font-weight:var(--fw-medium);color:var(--text-strong)}.cs-list{margin:0;padding-left:30px}.cs-list li::marker{color:var(--muted-2)}.shot{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.cs-row-half{display:grid;grid-template-columns:1fr 1fr;gap:24px}.cs-panel{position:relative;overflow:hidden;isolation:isolate;container-type:inline-size;border-radius:32px;aspect-ratio:1024 / 728;background:var(--card1-bg)}.cs-panel--alt{background:var(--card2-bg)}.cs-panel--navy{background:var(--card-navy)}.cs-panel--half{aspect-ratio:500 / 632;border-radius:28px}.cs-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:2.6cqw}.cs-stage .phone{position:relative;flex-shrink:0}.cs-tri .phone{font-size:.78cqw}.cs-tri .phone:nth-child(1){transform:translateY(3cqw) rotate(-3deg)}.cs-tri .phone:nth-child(3){transform:translateY(3cqw) rotate(3deg)}.cs-one .phone{font-size:1.62cqw}.cs-panel--half .cs-one .phone{transform:translateY(4cqw)}.sv-hero{position:relative;height:38%;color:#fff}.sv-hero .ph{position:absolute;top:0;right:0;bottom:0;left:0}.sv-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#06174459,#061744bf)}.sv-hero .statusbar,.sv-hero .m-topbar,.sv-hero h5{position:relative;z-index:1}.sv-hero h5{position:absolute;left:1.6em;right:1.6em;bottom:1.2em;font-size:2em;line-height:1.1;font-weight:600;letter-spacing:-.02em}.sv-body{padding:1.4em 1.6em;display:flex;flex-direction:column;gap:.9em;flex:1}.sv-body p{font-size:.95em;line-height:1.45;color:#4b5563}.sv-feat{display:flex;align-items:center;gap:.7em;font-size:1em}.sv-feat b{width:1.9em;height:1.9em;border-radius:.6em;background:#eef0f8;display:grid;place-items:center;font-size:.95em;flex-shrink:0}.sv-body .btn-primary{margin-top:auto;text-align:center;color:#fff;padding:.85em;border-radius:.7em}.mn{flex:1;display:flex;flex-direction:column;background:#fff;color:var(--navy)}.mn.is-dark{background:var(--navy);color:#fff}.mn-top{display:flex;align-items:center;justify-content:space-between;padding:.6em 1.6em 1.6em;font-size:1.1em}.mn-top svg{font-size:1.4em}.mn-list{padding:0 1.6em;display:flex;flex-direction:column}.mn-list span{display:flex;align-items:center;justify-content:space-between;padding:1em 0;font-size:1.6em;font-weight:600;letter-spacing:-.02em;border-bottom:1px solid rgba(127,127,160,.2)}.mn-list svg{font-size:.7em;opacity:.5}.mn-foot{margin-top:auto;padding:1.6em;display:flex;flex-direction:column;gap:1em}.mn-foot .btn-primary{text-align:center;color:#fff;padding:.9em;border-radius:.7em}.mn-lang{display:flex;gap:.8em;font-size:.95em;opacity:.6;justify-content:center}.mn-lang b{opacity:1}.dsv{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2em;padding:.4em 2.6em 3em}.dsv-head{padding:2em 2.6em 1.6em;display:flex;justify-content:space-between;align-items:flex-end;gap:2em}.dsv-head h3{font-size:3em;line-height:1.05;letter-spacing:-.03em;font-weight:600;max-width:12em}.dsv-head p{font-size:1.1em;color:#4b5563;max-width:22em;line-height:1.5}.dsv-card{border:1px solid #e8eaf2;border-radius:1.2em;overflow:hidden;display:flex;flex-direction:column}.dsv-card .ph{height:9em}.dsv-card div:last-child{padding:1.1em;display:flex;flex-direction:column;gap:.4em}.dsv-card strong{font-size:1.25em}.dsv-card span{font-size:.95em;color:#6b7280;line-height:1.4}.dsv-card em{font-style:normal;display:inline-flex;align-items:center;gap:.3em;font-size:.95em;color:var(--burgundy);font-weight:600;margin-top:.3em}.logos{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(6,9.1cqw);gap:3.4cqw 2.6cqw}.logo-tile{aspect-ratio:1;border-radius:1.6cqw;background:#ffffffbf;box-shadow:0 .6cqw 1.6cqw #06174414;display:grid;place-items:center;color:#8a90a8}.logo-tile i{display:block;width:46%;height:18%;border-radius:1cqw;background:currentColor;opacity:.55}.logo-tile svg{width:38%;height:38%}.logo-tile.is-dark{background:#0f1b44;color:#c9cde6}.ky{border:1px solid var(--border-light);border-radius:32px;overflow:hidden}.ky-item{padding:clamp(24px,3.3vw,48px);border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:16px}.ky-item:last-child{border-bottom:0}.ky-split{display:grid;grid-template-columns:1fr 1fr;gap:24px}.ky-split>div{display:flex;flex-direction:column;gap:16px}.ky-h{font-size:var(--fs-h-sm);line-height:20px;letter-spacing:-.02em;font-weight:var(--fw-demibold)}.ky-v{font-size:var(--fs-h-xs);line-height:1.6;font-weight:var(--fw-regular);color:var(--text-strong)}.ky-chip{align-self:flex-start;background:#1e1e1e;color:#fff;border-radius:6px;padding:4px 24px;font-size:var(--fs-h-xs);line-height:32px}.ng[data-theme=dark] .ky-chip{background:#fff;color:#000}.ky-team{display:flex}.ky-team .ph{width:40px;height:40px;border-radius:50%;border:1px solid var(--bg);margin-right:-7px}.ky-team .ph>img{object-position:50% 50%}.ky-mate{position:relative;display:block;margin-right:-7px;border-radius:50%;outline:none;transition:transform var(--dur-base) var(--ease-spring)}.ky-team .ky-mate .ph{margin-right:0}.ky-mate:hover,.ky-mate:focus-visible{z-index:2;transform:translateY(-4px) scale(1.12)}.ky-mate:focus-visible .ph{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--focus)}.ky-mate .stack-tip{bottom:auto;top:calc(100% + 10px);transform:translate(-50%,-4px) scale(.96)}.ky-mate:hover .stack-tip,.ky-mate:focus-visible .stack-tip{opacity:1;transform:translate(-50%) scale(1)}@media (prefers-reduced-motion: reduce){.ky-mate{transition:none}}.cs-links{width:100%;max-width:704px;margin:0 auto;padding-block:clamp(56px,10vw,160px);display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:24px}.cs-link-card{background:var(--surface);border-radius:64px;padding:56px;display:flex;flex-direction:column;gap:32px;align-items:flex-start}.cs-link-card h3{font-size:var(--fs-h-xl);line-height:var(--lh-h-xl);letter-spacing:-.02em;font-weight:var(--fw-semibold)}.ng .cs-link-card .send{text-decoration:none;margin-top:auto}.cs-soon{margin-top:auto;display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:64px;background:var(--bg);color:var(--muted);font-size:var(--fs-h-sm);line-height:var(--lh-h-sm);font-weight:var(--fw-semibold);letter-spacing:-.02em}.cs-soon svg{width:1em;height:1em}.grow-card{transform-origin:50% 0;will-change:transform}@supports (animation-timeline: scroll()){.grow-card.is-sd{animation:grow-in linear both;animation-timeline:scroll(root block);animation-range:0px var(--grow-end, 600px)}@keyframes grow-in{0%{transform:scale(var(--grow-from, .86))}to{transform:none}}}.card-link{display:block;color:inherit;text-decoration:none;border-radius:3.2%;-webkit-tap-highlight-color:transparent}.card-link .ng-card{transition:transform var(--dur-slow) var(--ease-out)}@media (hover: hover){.card-link:hover .ng-card{transform:scale(1.006)}}.card-link:active .ng-card{transform:scale(.995);transition-duration:var(--dur-instant)}@media (max-width: 860px){.cs-intro{flex-direction:column;align-items:center;text-align:center;gap:40px}.cs-copy{max-width:none;align-items:center}.cs-icon-wrap,.cs-icon{width:180px}.cs-icon-wrap{order:0}.ng .cs-icon-link{width:48px;height:48px;font-size:28px;right:auto;left:50%;bottom:-24px;transform:translate(-50%)}.ng .cs-icon-link:active{transform:translate(-50%) scale(.9)}.cs-icon b{font-size:19px}.cs-icon small{font-size:5px}.cs-copy{padding-left:0}.cs-row-half,.cs-links{grid-template-columns:1fr}}@media (max-width: 760px){.cs{padding:64px 12px 160px}.cs-intro{margin-bottom:64px}.cs-panel{aspect-ratio:4 / 3.9;border-radius:20px}.cs-panel--half{aspect-ratio:4 / 4.6}.cs-tri .phone{font-size:1.18cqw}.cs-one .phone{font-size:1.75cqw}.cs-stage .browser,.cs-stage .board{font-size:1.45cqw}.logos{grid-template-columns:repeat(4,16cqw);gap:4cqw}.logo-tile:nth-child(n+17){display:none}.cs-link-card{border-radius:32px;padding:28px;gap:24px}}.cs-dock{position:fixed;left:50%;bottom:34px;z-index:10;display:flex;gap:6px;transform:translate(-50%)}.cs-dock{gap:0}.cs-dock .cs-up{display:flex;width:54px;padding-left:6px;overflow:visible;transition:width var(--dur-slow) var(--ease-out),padding var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-spring),opacity var(--dur-fast) var(--ease)}.cs-dock .cs-up.is-hidden{width:0;padding-left:0;transform:translateY(48px) scale(.6);opacity:0;pointer-events:none}.cs-sign{display:flex;justify-content:center;padding-top:24px}@media (max-width: 760px){.cs-dock{bottom:20px}}.up{max-width:1186px;margin:0 auto;padding:120px 24px 200px;display:grid;grid-template-columns:200px minmax(0,704px);gap:clamp(40px,8vw,120px);justify-content:center}.up{grid-template-columns:minmax(0,704px);gap:0}.up-side{display:none!important}.up-side{position:sticky;top:38vh;align-self:start;display:flex;flex-direction:column;gap:24px}.up-nav{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.ng .up-nav button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 0;font-size:var(--fs-sm);line-height:19px;letter-spacing:-.01em;font-weight:var(--fw-medium);color:var(--muted-2);transition:color var(--dur-fast) var(--ease)}.ng .up-nav button:hover{color:var(--text-2)}.ng .up-nav button[aria-current=true]{color:var(--fg)}.up-nav small{font-size:var(--fs-2xs);font-weight:var(--fw-demibold);color:var(--muted-2);font-variant-numeric:tabular-nums}.up-side hr{width:77px;margin:0;border:0;border-top:1px solid var(--line-strong)}.up-meta{display:flex;flex-direction:column;gap:10px;font-size:var(--fs-xs);line-height:16px;color:var(--muted)}.ng .up-meta button,.up-meta a{display:inline-flex;align-items:center;gap:4px;color:var(--fg);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-decoration:none;align-self:flex-start}.up-meta svg{width:13px;height:13px;transition:transform var(--dur-base) var(--ease-out)}@media (hover: hover){.ng .up-meta button:hover svg{transform:translate(1px,-1px)}}.up-main{min-width:0}.up-sec{scroll-margin-top:120px;padding-bottom:clamp(96px,12vw,180px)}.up-sec:last-child{padding-bottom:0}.up-stack{position:relative;height:76px;margin-bottom:32px}.up-stack>*{position:absolute;top:0;transform:rotate(var(--r, 0deg)) translateY(var(--y, 0px));box-shadow:0 10px 24px -8px #00000047,0 2px 4px #0000000f}.up-title{font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:-.02em;font-weight:var(--fw-bold);margin-bottom:48px!important}.up-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.up-rows li{border-bottom:1px solid var(--line)}.ng .up-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;width:100%;padding:14px 0;text-align:left;-webkit-tap-highlight-color:transparent}.up-row:before{content:"";position:absolute;top:2px;right:-12px;bottom:2px;left:-12px;border-radius:12px;background:var(--surface);opacity:0;transition:opacity var(--dur-fast) var(--ease);z-index:-1}@media (hover: hover){.up-row:hover:before{opacity:1}}.up-row[aria-expanded=true]:before{opacity:1}.up-row-title{display:flex;align-items:center;gap:10px;min-width:0;font-size:var(--fs-title);line-height:22px;letter-spacing:-.01em;font-weight:var(--fw-medium);color:var(--fg)}.up-row-title span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-new{font-style:normal;flex-shrink:0;font-size:var(--fs-2xs);line-height:18px;padding:0 7px;border-radius:99px;background:var(--fg);color:var(--bg);font-weight:var(--fw-demibold)}.up-row-meta{display:flex;align-items:center;gap:10px;font-size:15px;line-height:20px;color:var(--muted);white-space:nowrap}.up-row-meta svg{width:18px;height:18px;color:var(--dark-30);transition:transform var(--dur-base) var(--ease-out),color var(--dur-fast) var(--ease)}@media (hover: hover){.up-row:hover .up-row-meta svg{transform:translate(2px,-2px);color:var(--fg)}}.ng .up-row:active{transform:scale(.995)}.up-desc{margin-bottom:40px;display:flex;flex-direction:column;gap:18px}.ng .up-more{margin-top:16px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:var(--surface);color:var(--fg);font-size:var(--fs-sm);font-weight:var(--fw-semibold);transition:transform var(--dur-base) var(--ease-spring)}.up-more small{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-3)}.up-more svg{width:18px;height:18px;transition:transform var(--dur-base) var(--ease-out)}.up-more svg.is-up{transform:rotate(180deg)}.ng .up-more:active{transform:scale(.96);transition-duration:var(--dur-instant)}.up-rows li.is-extra{animation:up-row-in var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 30ms)}@keyframes up-row-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion: reduce){.up-rows li.is-extra{animation:none}}.up-desc p{font-size:var(--fs-body);line-height:1.6;letter-spacing:-.01em;font-weight:var(--fw-regular);color:var(--text-strong)}.up-desc strong{font-weight:var(--fw-semibold)}.cv{position:relative;flex-shrink:0;overflow:hidden;color:var(--cv-fg);background:var(--cv-bg)}.cv--book{width:5.2em;height:7.6em;border-radius:.35em .6em .6em .35em;padding:.7em .5em .6em .8em;display:flex;flex-direction:column;justify-content:space-between}.cv--book:before{content:"";position:absolute;left:0;top:0;bottom:0;width:.38em;background:linear-gradient(90deg,#00000047,#0000000f)}.cv--book:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,rgba(255,255,255,.18),transparent 40%);pointer-events:none}.cv--book b{overflow-wrap:break-word;font-size:.62em;line-height:1.05;font-weight:var(--fw-bold);letter-spacing:-.02em}.cv--book i{font-style:normal;font-size:.42em;opacity:.75;letter-spacing:.02em}.cv--book .cv-mark{position:absolute;right:.55em;top:46%;width:1.4em;height:1.4em;opacity:.9}.cv--app{width:6em;height:6em;border-radius:1.5em;display:grid;place-items:center}.cv--app svg{width:46%;height:46%}.cv--app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff1f,inset 0 -.3em .8em #0000001f}.cv--type{width:6em;height:6em;border-radius:1.5em;display:grid;place-items:center;font-size:inherit}.cv--type b{font-size:2.6em;line-height:1;letter-spacing:-.03em;font-weight:var(--fw-bold)}.up-stack .cv{font-size:10px}.up-stack .cv--app,.up-stack .cv--type{font-size:11.5px}.cv--bookimg{padding:0;background:var(--surface)}.cv--bookimg img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.cv--bookimg:before,.cv--bookimg:after{z-index:1}.cv--poster{display:block;width:5.2em;height:7.6em;border-radius:.4em;background:var(--surface)}.cv--poster img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.cv--poster:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px #ffffff1f;background:linear-gradient(115deg,rgba(255,255,255,.14),transparent 40%);pointer-events:none}.cv--site{background:#fff;color:#111}.cv--site img{width:48%;height:48%;object-fit:contain;border-radius:22%}.cv--site b{font-size:2.4em;line-height:1;font-weight:var(--fw-bold)}.cv--site:after{box-shadow:inset 0 0 0 1px #00000014}.ng[data-theme=dark] .cv--site{background:#1f1f23;color:#f2f2f2}.ng[data-theme=dark] .cv--site:after{box-shadow:inset 0 0 0 1px #ffffff14}.ng[data-theme=dark] .cv--site img.is-ink{filter:invert(1)}.cv--shot{display:block;width:100%;aspect-ratio:16 / 10;border-radius:18px;background:var(--surface)}.cv--shot img{display:block;width:100%;height:100%;object-fit:cover}.cv--shot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line);pointer-events:none}.dr-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000024;opacity:0;transition:opacity var(--dur-base) var(--ease)}.ng[data-theme=dark] .dr-back{background:#00000080}.dr-back.is-on{opacity:1}.dr{position:fixed;z-index:41;top:12px;right:12px;bottom:12px;width:min(440px,calc(100vw - 24px));background:var(--bg);border-radius:32px;overflow:hidden auto;overscroll-behavior:contain;box-shadow:0 30px 80px -20px #00000059,0 0 0 1px var(--line);transform:translate(calc(100% + 24px));transition:transform var(--dur-slow) var(--ease-out);display:flex;flex-direction:column}.dr.is-on{transform:none}.dr-in{flex:1;display:flex;flex-direction:column;padding:20px 24px 28px}.dr-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dr-top{position:sticky;top:0;z-index:2;margin:-20px -24px 8px;padding:20px 24px 12px;background:var(--bg)}.dr-top .ng-btn{width:40px;height:40px;font-size:20px}.dr-status{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-xs);line-height:16px;font-weight:var(--fw-medium);color:var(--text-2)}.dr-status i{width:8px;height:8px;border-radius:50%;background:var(--muted-2)}.dr-status.is-live i{background:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.dr-cover{margin-bottom:18px}.dr-cover .cv{font-size:15px;box-shadow:0 16px 32px -12px #00000059}.dr-cover .cv--app,.dr-cover .cv--type{font-size:14px}.dr-name{font-size:var(--fs-title);line-height:24px;letter-spacing:-.01em;font-weight:var(--fw-semibold)}.ng .dr-sub{font-size:13px;line-height:18px;color:var(--muted-2);margin-top:2px}.ng .dr-head{margin-top:24px;font-size:var(--fs-h-sm);line-height:1.2;letter-spacing:-.025em;font-weight:var(--fw-semibold);color:var(--fg)}.dr-head b{color:inherit;font-weight:inherit}.ng .dr-note{margin-top:16px;font-size:var(--fs-body);line-height:1.5;letter-spacing:-.01em;color:var(--text-3)}.dr-note b{color:var(--fg);font-weight:var(--fw-semibold)}.dr-facts{margin-top:24px;border-top:1px solid var(--line)}.dr-facts div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:18px}.dr-facts dt{color:var(--muted)}.dr-facts dd{margin:0;color:var(--fg);font-weight:var(--fw-medium);text-align:right;display:flex;gap:2px;align-items:center}.dr-facts dd svg{width:14px;height:14px}.dr-facts dd .off{color:var(--dark-30)}.ng .dr-go{margin-top:24px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--fg);color:var(--bg);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);transition:transform var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease-out)}.ng .dr-go svg{width:16px;height:16px}.ng .dr-go:hover,.ng .dr-go:focus-visible{color:var(--bg);opacity:.88}.ng .dr-go:active{transform:scale(.97);transition-duration:var(--dur-instant)}.dr-nav{position:sticky;bottom:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px 16px;background:var(--bg);box-shadow:0 -1px 0 var(--line)}.dr-nav .ng-btn{width:44px;height:44px;font-size:20px}.ng .dr-nav .ng-btn:disabled{opacity:.35;pointer-events:none}.dr-pos{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.dr-actions{margin-top:24px;display:flex;gap:10px;flex-wrap:wrap}.ng .dr-btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:99px;font-size:15px;font-weight:var(--fw-medium);letter-spacing:-.01em;text-decoration:none;transition:transform var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.ng .dr-btn svg{width:20px;height:20px}.ng .dr-btn--dark{background:var(--fg);color:var(--bg)}.ng .dr-btn--light{background:var(--surface);color:var(--fg)}.ng .dr-btn:active{transform:scale(.95);transition-duration:var(--dur-instant)}@media (hover: hover){.ng .dr-btn:hover{opacity:.85}}.dr-in>*{animation:dr-item var(--dur-slow) var(--ease-out) both}.dr-in>:nth-child(2){animation-delay:.05s}.dr-in>:nth-child(3){animation-delay:.08s}.dr-in>:nth-child(4){animation-delay:.11s}.dr-in>:nth-child(5){animation-delay:.14s}.dr-in>:nth-child(6){animation-delay:.17s}.dr-in>:nth-child(7){animation-delay:.2s}.dr-in>:nth-child(8){animation-delay:.23s}@keyframes dr-item{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (max-width: 860px){.up{grid-template-columns:minmax(0,1fr);padding:40px 16px 200px;gap:0}.up-side{display:none}.up-title{margin-bottom:32px!important}.up-row-meta .up-meta-text{display:none}.dr{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:88vh;border-radius:28px;transform:translateY(calc(100% + 16px))}}@media (prefers-reduced-motion: reduce){.dr,.dr-back{transition:none}.dr-in>*{animation:none}}.cs-play{position:relative;display:flex;width:48px;transition:width var(--dur-slow) var(--ease-out),opacity var(--dur-fast) var(--ease),transform var(--dur-slow) var(--ease-spring)}.cs-play.is-gone{width:0;opacity:0;transform:translateY(48px) scale(.6);pointer-events:none}.cs-dock:has(.cs-play.is-gone) .cs-up{padding-left:0;width:48px}@media (max-width: 760px){.cs-play{width:44px}.cs-dock:has(.cs-play.is-gone) .cs-up{width:44px}}.ng{--speed-bg: rgba(255,255,255,.88)}.ng[data-theme=dark]{--speed-bg: rgba(32,32,36,.88)}.cs-speeds{position:absolute;left:50%;bottom:100%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:8px;padding:0 8px 10px;pointer-events:none}.ng .cs-speed{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:var(--fw-semibold);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--speed-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--btn-shadow),0 6px 16px -8px #00000040;opacity:0;transform:translateY(calc(18px + var(--i) * 48px)) scale(.35);transition:transform var(--dur-base) var(--ease-in-out) calc((2 - var(--i)) * 30ms),opacity var(--dur-fast) var(--ease) calc((2 - var(--i)) * 30ms),background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);-webkit-tap-highlight-color:transparent}.ng .cs-speed.is-on{background:var(--fg);color:var(--bg)}.cs-play:hover .cs-speeds,.cs-play:focus-within .cs-speeds{pointer-events:auto}.cs-play:hover .cs-speed,.cs-play:focus-within .cs-speed{opacity:1;transform:none;transition:transform var(--dur-slow) var(--ease-spring) calc(var(--i) * 55ms),opacity var(--dur-fast) var(--ease) calc(var(--i) * 55ms),background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}@media (hover: hover){.ng .cs-speed:not(.is-on):hover{color:var(--fg);transform:scale(1.08);transition-delay:0s}}.ng .cs-speed:active{transform:scale(.88)!important;transition-duration:var(--dur-instant)!important;transition-delay:0s!important}.cs-play-badge{position:absolute;right:-2px;top:-2px;min-width:20px;height:16px;padding:0 4px;border-radius:99px;background:var(--fg);color:var(--bg);font-size:10px;line-height:16px;text-align:center;font-weight:var(--fw-semibold);pointer-events:none;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-base) var(--ease-spring)}.cs-play:hover .cs-play-badge,.cs-play:focus-within .cs-play-badge{opacity:0;transform:scale(.6)}@media (hover: none){.cs-play.is-playing .cs-speeds{pointer-events:auto}.cs-play.is-playing .cs-speed{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.ng .cs-speed,.cs-play:hover .cs-speed{transition:opacity var(--dur-fast) var(--ease);transform:none}}.social{width:100%;max-width:704px;margin:0 auto;padding-top:clamp(80px,10vw,160px);display:flex;flex-direction:column;gap:24px}.social-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:24px}.social-card{position:relative;display:flex;flex-direction:column;gap:40px;padding:48px;border-radius:48px;background:var(--surface);color:var(--fg);text-decoration:none;isolation:isolate;overflow:hidden;transition:transform var(--dur-slow) var(--ease-spring),background-color var(--dur-base) var(--ease);-webkit-tap-highlight-color:transparent}.social-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--soc-hover);opacity:0;transition:opacity var(--dur-base) var(--ease)}.soc-top{display:flex;justify-content:space-between;align-items:flex-start}.soc-ico{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:var(--bg);color:var(--fg);font-size:26px;transition:background-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease),transform var(--dur-slow) var(--ease-spring)}.soc-go{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--dark-30);transition:color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease),transform var(--dur-slow) var(--ease-spring)}.soc-text{display:flex;flex-direction:column;gap:6px}.social-card h3{font-size:var(--fs-h-xl);line-height:var(--lh-h-xl);letter-spacing:-.02em;font-weight:var(--fw-semibold)}.social-card p{font-size:15px;line-height:20px;color:var(--muted)}@media (hover: hover){.social-card:hover:before{opacity:1}.social-card:hover .soc-ico{background:var(--fg);color:var(--bg);transform:rotate(-6deg) scale(1.04)}.social-card:hover .soc-go{color:var(--bg);background:var(--fg);transform:translate(4px,-4px)}}.social-card:focus-visible .soc-go{color:var(--bg);background:var(--fg)}a.social-card:active{transform:scale(.98);transition-duration:var(--dur-instant)}.social-card.is-pending{cursor:default}.ng{--soc-hover: rgba(0,0,0,.035)}.ng[data-theme=dark]{--soc-hover: rgba(255,255,255,.04)}@media (prefers-reduced-motion: reduce){.soc-ico,.soc-go,.social-card{transition:none}}@media (min-width: 1536px){.social{padding-top:48px}}@media (max-width: 860px){.social-grid{grid-template-columns:1fr}.social-card{border-radius:28px;padding:24px;gap:20px}}.copy-wrap{position:relative;display:inline-flex}.cb{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:6;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 5px;border-radius:99px;background:var(--fg);color:var(--bg);white-space:nowrap;pointer-events:none;font-size:13px;line-height:1;font-weight:var(--fw-semibold);letter-spacing:-.01em;box-shadow:0 10px 24px -10px #00000073;opacity:0;transform:translate(-50%,8px) scale(.7);transition:opacity var(--dur-fast) var(--ease),transform var(--dur-slow) var(--ease-spring)}.cb:empty{display:none}.cb.is-on{opacity:1;transform:translate(-50%) scale(1)}.cb:after{content:"";position:absolute;left:50%;top:100%;width:8px;height:8px;background:inherit;border-radius:2px;transform:translate(-50%,-5px) rotate(45deg)}.cb svg{width:20px;height:20px;flex-shrink:0;overflow:visible}.cb circle{fill:#22c55e;transform-origin:10px 10px;animation:cb-pop var(--dur-base) var(--ease-spring) both}.cb.is-err circle{fill:#dc2626}.cb path{fill:none;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:14;animation:cb-draw var(--dur-base) .18s var(--ease-out) forwards}@keyframes cb-pop{0%{transform:scale(.3)}to{transform:scale(1)}}@keyframes cb-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.cb{transition:opacity var(--dur-fast) var(--ease);transform:translate(-50%)}.cb circle,.cb path{animation:none;stroke-dashoffset:0}}@media (max-width: 560px){.ng-dock .cb{left:auto;right:-4px;transform:translateY(8px) scale(.7);transform-origin:right bottom}.ng-dock .cb.is-on{transform:none}.ng-dock .cb:after{left:auto;right:24px;transform:translateY(-5px) rotate(45deg)}}.cb-short{display:none}@media (max-width: 560px){.cb-long{display:none}.cb-short{display:inline}}.ud{position:fixed;left:50%;bottom:34px;z-index:12;transform:translate(-50%)}.ud.is-open{z-index:30}.ng:has(.ud.is-open) .ng-chat{opacity:0;transform:scale(.8);pointer-events:none}.ng .ud-trigger{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 14px 0 16px;border-radius:999px;background:var(--btn-bg);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:var(--btn-shadow);font-size:15px;font-weight:var(--fw-medium);letter-spacing:-.01em;color:var(--fg);white-space:nowrap;transition:transform var(--dur-base) var(--ease-spring);-webkit-tap-highlight-color:transparent}.ng .ud-trigger:active{transform:scale(.96);transition-duration:var(--dur-instant)}.ng .ud-top{position:absolute;left:calc(100% + 8px);bottom:0;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:20px;color:var(--icon-hover);background:var(--btn-bg);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);box-shadow:var(--btn-shadow);opacity:0;transform:translate(-8px) scale(.8);pointer-events:none;-webkit-tap-highlight-color:transparent;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-base) var(--ease-spring)}.ng .ud-top.is-on{opacity:1;transform:none;pointer-events:auto}.ng .ud-top:active{transform:scale(.92);transition-duration:var(--dur-instant)}.ud-top svg{width:20px;height:20px}@media (hover: hover){.ng .ud-top:hover{color:var(--fg)}.ng .ud-top.is-on:hover svg{transform:translateY(-2px)}}.ud-top svg{transition:transform var(--dur-base) var(--ease-spring)}@media (prefers-reduced-motion: reduce){.ng .ud-top,.ng .ud-top.is-on{transform:none;transition:opacity var(--dur-fast) var(--ease)}}@media (max-width: 760px){.ud{transition:transform var(--dur-base) var(--ease-out)}.ud:has(.ud-top.is-on){transform:translate(calc(-50% - 28px))}}@media (max-width: 760px) and (prefers-reduced-motion: reduce){.ud{transition:none}}.ud-trigger .ud-ico{font-size:18px;color:var(--icon-hover);display:flex}.ud-trigger .ud-label{display:inline-grid}.ud-trigger .ud-label>span{grid-area:1 / 1;animation:ud-label var(--dur-base) var(--ease-out) both}@keyframes ud-label{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ud-trigger small{font-size:var(--fs-2xs);font-weight:var(--fw-demibold);color:var(--muted-2);font-variant-numeric:tabular-nums}.ud-trigger .ud-chev{font-size:18px;color:var(--icon);display:flex;transition:transform var(--dur-base) var(--ease-spring);transform:rotate(180deg)}.ud.is-open .ud-chev{transform:rotate(0)}.ud-menu{position:absolute;left:50%;bottom:calc(100% + 10px);width:284px;padding:6px;border-radius:22px;background:var(--speed-bg);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 24px 60px -18px #00000059,0 0 0 1px var(--line);transform-origin:50% 100%;transform:translate(-50%) translateY(8px) scale(.94);opacity:0;pointer-events:none;transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease)}.ud.is-open .ud-menu{transform:translate(-50%);opacity:1;pointer-events:auto;transition:transform var(--dur-slow) var(--ease-spring),opacity var(--dur-fast) var(--ease)}.ud-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.ng .ud-item{display:flex;align-items:center;gap:12px;width:100%;height:44px;padding:0 12px;border-radius:16px;text-align:left;font-size:15px;font-weight:var(--fw-medium);letter-spacing:-.01em;color:var(--text-2);transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ng .ud-item:hover,.ng .ud-item:focus-visible{background:var(--surface);color:var(--fg);outline:none}.ng .ud-item[aria-current=true]{color:var(--fg)}.ud-item .ud-i{font-size:18px;color:var(--icon-hover);display:flex}.ud-item .ud-t{flex:1}.ud-item small{font-size:var(--fs-2xs);color:var(--muted-2);font-weight:var(--fw-demibold);font-variant-numeric:tabular-nums}.ud-item .ud-check{font-size:16px;color:var(--fg);display:flex;width:16px}.ud.is-open .ud-list li{animation:ud-item var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i) * 35ms + 40ms)}@keyframes ud-item{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ud-foot{white-space:nowrap;margin:6px 6px 2px;padding:10px 6px 4px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-2xs);color:var(--muted)}.ng .ud-foot button{white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:var(--fw-semibold);color:var(--fg)}.ud-foot svg{width:13px;height:13px;transition:transform var(--dur-base) var(--ease-out)}@media (hover: hover){.ng .ud-foot button:hover svg{transform:translate(1px,-1px)}}@media (max-width: 760px){.ud{bottom:20px}}@media (prefers-reduced-motion: reduce){.ud-menu,.ud.is-open .ud-menu,.ud-chev{transition:opacity var(--dur-fast) var(--ease)}.ud.is-open .ud-list li,.ud-trigger .ud-label>span{animation:none}}@media (max-width: 1535px){.ng-rails{display:none}.ng-header-inner,.ng-main,.pg,.cs,.up,.ng-footer{max-width:none;padding-left:48px;padding-right:48px}.ng-content,.pg-inner,.cs-inner{max-width:none}.ng-blur{height:120px}.ng-dock,.cs-dock,.ud,.ng .ng-chat{bottom:20px}}@media (max-width: 1439px){.ng-header-inner,.ng-main,.pg,.cs,.up,.ng-footer{padding-left:32px;padding-right:32px}}@media (max-width: 760px){.ng-header-inner,.ng-main,.pg,.cs,.up,.ng-footer{padding-left:16px;padding-right:16px}.ng-dock,.cs-dock,.ud{bottom:12px}.ng .ng-chat{bottom:12px;transition:width var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring),translate var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease)}.ng:has(.ud-top.is-on) .ng-chat{translate:0 -62px}}@media (max-width: 760px) and (prefers-reduced-motion: reduce){.ng .ng-chat{transition:opacity var(--dur-fast) var(--ease)}}.ng>main:has(~.ng-footer-band){padding-bottom:72px!important}.cs-next{padding-bottom:0!important}@media (max-width: 760px){.ng>main:has(~.ng-footer-band){padding-bottom:56px!important}}:where(.ng-footer){max-width:1186px;margin:0 auto;padding:56px 16px 120px}.ng-footer>*{max-width:704px;margin-inline:auto}.ft-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:40px 32px;padding-bottom:clamp(48px,6vw,72px)}.ft-contact{min-width:0}.ft-brand{display:flex;flex-direction:column;gap:16px}.ft-logo{color:var(--fg);width:max-content;padding:8px;margin:-8px}.ft-logo svg{display:block;width:26px;height:28px}.ft-brand p,.ft-contact p{margin:0;max-width:320px;font-size:var(--fs-sm);line-height:20px;color:var(--text-3)}.ft-col{display:flex;flex-direction:column;gap:12px}.ft-col h3{margin:0 0 4px;font-size:var(--fs-title);line-height:var(--lh-title);font-weight:var(--fw-medium);letter-spacing:-.02em;color:var(--fg)}.ft-col a{width:max-content;font-size:var(--fs-body);line-height:22px;color:var(--text-3);text-decoration:none;transition:color var(--dur-fast) var(--ease)}.ft-col a[aria-current=page]{color:var(--fg)}@media (hover: hover){.ft-col a:hover{color:var(--fg)}}.ft-contact p{margin-bottom:8px}.ft-mail-row{display:flex;gap:10px;align-items:stretch}.ft-mail-wrap{flex:1;min-width:0;display:flex}.ng .ft-mail{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:12px;background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--text-2);font-size:var(--fs-sm);text-align:left;cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease)}.ft-mail>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-mail-ico{display:grid;color:var(--icon);font-size:18px}@media (hover: hover){.ng .ft-mail:hover{box-shadow:inset 0 0 0 1px var(--fg)}}.ng .ft-cta-btn{display:inline-flex;align-items:center;padding:0 18px;border-radius:12px;flex-shrink:0;background:var(--fg);color:var(--bg);text-decoration:none;font-size:var(--fs-sm);font-weight:var(--fw-semibold);transition:transform var(--dur-base) var(--ease-spring)}html.at-footer .ng-blur,html.past-works .ng-blur{opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease),visibility 0s linear var(--dur-base)}.ng-project{position:relative}.works-end{position:absolute;left:0;bottom:0;width:1px;height:1px;pointer-events:none}.ng .ft-cta-btn:hover,.ng .ft-cta-btn:focus-visible{color:var(--bg);opacity:.88}.ng .ft-cta-btn:active{transform:scale(.96);transition-duration:var(--dur-instant)}.ft-bottom a{text-decoration:none;transition:color var(--dur-fast) var(--ease)}.ft-bottom a[aria-current=page]{color:var(--fg)}@media (hover: hover){.ft-bottom a:hover{color:var(--fg)}}.ft-sign{display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap;flex:1;min-width:0}.ft-sign,.ng .ft-bottom a{color:color-mix(in srgb,var(--fg) 60%,transparent)}.ft-role{display:inline-grid;overflow:hidden}.ft-role>[aria-hidden]{grid-area:1 / 1;opacity:0;transform:translateY(-100%);white-space:nowrap}.ft-role>.is-in{opacity:1;transform:none;transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-base) var(--ease)}.ft-role>.is-out{opacity:0;transform:translateY(100%);transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-base) var(--ease)}.ft-role .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion: reduce){.ft-role>*{transition:none!important}}.ft-bottom{padding-top:24px;border-top:1px solid var(--line-strong);display:flex;align-items:flex-start;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-3)}@media (max-width: 760px){.ft-top{grid-template-columns:minmax(0,1fr)}:where(.ng-footer){padding-top:48px;padding-bottom:150px}}@media (hover: hover) and (pointer: fine){html{overscroll-behavior-y:none}}.pile{position:relative;isolation:isolate;height:760px;margin-top:-630px;overflow:clip;font-size:11px;pointer-events:none}.pile-t{position:absolute;left:0;bottom:0;width:60px;height:60px;border-radius:16px;display:grid;place-items:center;font-size:30px;font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:1;color:var(--fg);background:var(--glass-bg);-webkit-backdrop-filter:blur(14px) saturate(190%);backdrop-filter:blur(14px) saturate(190%);box-shadow:inset 0 0 0 1px var(--glass-line),inset 0 1.5px 0 var(--glass-edge);visibility:hidden;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;will-change:transform}.pile.is-on .pile-t{visibility:visible}.pile-t.is-drag{cursor:grabbing;z-index:5}.pile-t--icon{color:var(--glass-glyph);font-size:28px}.pile-t--heart{color:#ff3b5c;font-size:30px}.pile-t--app{background:var(--app-bg);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:inset 0 0 0 1px #00000014,0 6px 14px -8px #00000059}.pile-t--app svg{width:var(--lg, 50%);height:var(--lg, 50%);display:block;pointer-events:none}.pile-t{transition:opacity var(--dur-base) var(--ease),scale var(--dur-base) var(--ease-out)}.pile.is-on .pile-t.is-hidden{opacity:0;scale:.4;pointer-events:none}.ng .pile-t--play{background:var(--fg);color:var(--bg);font-size:26px;padding:0;border:0;box-shadow:none;z-index:2}.pile-t--play:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.pile-t--play:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:0 0 0 2px var(--fg);opacity:0;pointer-events:none;animation:pile-play-ping 2.2s var(--ease-out) infinite}.pile-t--play>svg{position:relative;z-index:1}@keyframes pile-play-ping{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(1.45)}}@media (hover: hover){.pile-t--play:hover .pile-ico--play{animation:pile-play-nudge var(--dur-slower) var(--ease-out)}.pile-t--play:hover .pile-ico--restart{animation:pile-restart var(--dur-slower) var(--ease-out)}}@keyframes pile-play-nudge{0%,to{transform:translate(0)}40%{transform:translate(3px)}70%{transform:translate(-1px)}}@keyframes pile-restart{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@media (prefers-reduced-motion: reduce){.pile-t--play:hover .pile-ico--play,.pile-t--play:hover .pile-ico--restart{animation:none}}@media (prefers-reduced-motion: reduce){.pile-t--play:after{animation:none;opacity:.35;transform:scale(1.12)}}.pile-decos{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1;pointer-events:none}.pile-deco{position:absolute;bottom:-30px;z-index:-1;font-size:calc(11px * var(--s, 1));opacity:0;filter:blur(var(--b)) saturate(1.2);pointer-events:none;transition:opacity var(--dur-slower) var(--ease)}.pile.is-on .pile-deco{opacity:.8}.ng[data-theme=dark] .pile.is-on .pile-deco{opacity:.6}.pile-deco .cv--app{border-radius:1.5em}.ng{--pile-solid: #f6f6f8}.ng[data-theme=dark]{--pile-solid: #1c1c1f}@media (max-width: 760px),(pointer: coarse){.pile-t{-webkit-backdrop-filter:none;backdrop-filter:none}.pile-t:not(.pile-t--app):not(.pile-t--play){background:var(--pile-solid)}.pile-decos{display:none}}@media (max-width: 760px){.pile-t{width:40px;height:40px;border-radius:11px;font-size:20px}.ng .pile-t--play{font-size:18px}.pile-t--icon{font-size:19px}.pile-deco{font-size:calc(8px * var(--s, 1))}}.ng-footer-band:has(.pile) .ng-footer{padding-bottom:72px}.pile{width:min(1138px,calc(100% - 96px));margin-inline:auto}.pile-decos{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}@media (max-width: 1535px){.pile{width:calc(100% - 96px)}}@media (max-width: 1439px){.pile{width:calc(100% - 64px)}}@media (max-width: 760px){.pile{width:calc(100% - 32px)}}@media (max-width: 760px){.pile{font-size:7.5px}.ng-footer-band:has(.pile) .ng-footer{padding-bottom:72px}}[data-zoom]{cursor:zoom-in;outline:none}[data-zoom]:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--focus)}html.lb-open{overflow:hidden}.lb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100}.lb-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg);cursor:zoom-out}.lb-img{position:fixed;object-fit:contain;transform-origin:0 0;user-select:none;-webkit-user-select:none}.lb-img.is-swap{animation:lb-swap var(--dur-base) var(--ease-out) both}@keyframes lb-swap{0%{opacity:0;scale:.97}}.lb-img.is-swap[data-dir=next]{animation-name:lb-swap-next}.lb-img.is-swap[data-dir=prev]{animation-name:lb-swap-prev}@keyframes lb-swap-next{0%{opacity:0;translate:32px 0}}@keyframes lb-swap-prev{0%{opacity:0;translate:-32px 0}}.lb-img,.lb-bg{touch-action:pan-y pinch-zoom}@media (prefers-reduced-motion: reduce){.lb-img.is-swap[data-dir]{animation-name:lb-swap}}.lb-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.lb-ui>*{pointer-events:auto}.lb-logo{position:absolute;left:24px;top:20px;width:35px;height:38px;color:var(--fg)}.lb-logo svg{display:block;width:100%;height:100%}.lb-count{position:absolute;left:50%;bottom:32px;translate:-50% 0;color:var(--text-3);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.lb-tabs{position:absolute;left:50%;top:32px;translate:-50% 0;display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--btn-bg);box-shadow:var(--btn-shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.ng .lb-tabs button{height:32px;padding:0 16px;border-radius:999px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2);transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ng .lb-tabs button.is-on{background:var(--fg);color:var(--bg)}@media (hover: hover){.ng .lb-tabs button:not(.is-on):hover{color:var(--fg)}}.lb.is-grid .lb-img,.lb.is-grid .lb-count{opacity:0;pointer-events:none}.lb-grid{position:absolute;top:88px;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:16px;padding:8px max(96px,calc((100% - 1200px)/2)) 48px}.ng .lb-thumb{position:relative;display:block;width:100%;height:auto;aspect-ratio:4 / 3;border-radius:16px;overflow:hidden;background:var(--surface);animation:lb-thumb-in var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--k) * 20ms);transition:transform var(--dur-base) var(--ease-spring)}.lb-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.lb-thumb span{position:absolute;left:10px;bottom:10px;min-width:24px;height:24px;padding:0 7px;display:grid;place-items:center;border-radius:999px;background:#0000008c;color:#fff;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.ng .lb-thumb.is-on{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--fg)}@media (hover: hover){.ng .lb-thumb:hover{transform:scale(1.03)}}.ng .lb-thumb:active{transform:scale(.97);transition-duration:var(--dur-instant)}@keyframes lb-thumb-in{0%{opacity:0;transform:translateY(12px)}}@media (max-width: 1100px){.lb-grid{grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:40px}}@media (max-width: 760px){.lb-grid{top:72px;right:0;bottom:0;left:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:8px 16px 32px}.ng .lb-thumb{border-radius:12px}.lb-count{display:none}}@media (prefers-reduced-motion: reduce){.ng .lb-thumb{animation:none;transition:none}}.lb .ng-btn{position:absolute}.lb-close{right:24px;top:16px}.lb-theme{right:80px;top:16px}.lb-nav{top:50%;translate:0 -50%}.lb-prev{left:24px}.lb-next{right:24px}.lb-next svg{transform:scaleX(-1)}@media (max-width: 760px){.lb-logo{left:16px;top:18px}.lb-close{right:16px;top:12px}.lb-tabs{top:16px;padding:3px}.ng .lb-tabs button{height:32px;padding:0 10px}.lb-nav{top:auto;bottom:16px;translate:none}.lb-prev{left:calc(50% - 52px)}.lb-next{right:calc(50% - 52px)}}@media (prefers-reduced-motion: reduce){.lb-img.is-swap{animation:none}}.ng{--sk-base: #ededee;--sk-hi: #f7f7f8}.ng[data-theme=dark]{--sk-base: #1b1b1e;--sk-hi: #26262a}.ng img:not(.is-loaded),.ng .ph:not(:has(>img.is-loaded,>svg)){background:var(--sk-base);animation:sk-pulse 1.2s var(--ease-in-out) infinite alternate}.ng .play-view img:not(.is-loaded){background:#ffffff0f}.ng img:not(.is-loaded){color:transparent}.ng img.is-loaded{animation:sk-in var(--dur-base) var(--ease) both}@keyframes sk-pulse{0%{opacity:1}to{opacity:.55}}@keyframes sk-in{0%{opacity:0}}@media (prefers-reduced-motion: reduce){.ng img:not(.is-loaded),.ng .ph{animation:none!important}}.cvp{max-width:560px;margin:0 auto;padding:56px 16px 160px;display:flex;flex-direction:column;gap:40px;font-size:var(--fs-sm);line-height:1.55;color:var(--fg);animation:ng-page-in var(--dur-slow) var(--ease-out) backwards}.cvp p{margin:0}.cv-k{margin:0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-2xs);font-weight:var(--fw-regular);letter-spacing:0;color:var(--text-3)}.cv-sec{display:flex;flex-direction:column;gap:10px}.cv-sec>.cv-k{margin-bottom:6px}.cv-me{display:flex;align-items:center;gap:16px}.cv-me .cv-av{width:56px;height:56px;border-radius:50%;flex-shrink:0}.cv-me h1{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1.4}.cv-me p{color:var(--text-2)}.cv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ng .cv-row{width:calc(100% + 16px);display:flex;align-items:center;gap:14px;padding:8px;margin:0 -8px;border-radius:12px;text-align:left;color:inherit;transition:background-color var(--dur-fast) var(--ease)}@media (hover: hover){.ng .cv-row:hover{background:var(--surface)}}.cv-thumb{width:40px;height:40px;border-radius:10px;flex-shrink:0;display:grid;place-items:center;background:linear-gradient(270deg,#061744,#0c1b43 96%);color:#fff;font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase}.cv-text{display:flex;flex-direction:column;min-width:0;flex:1}.cv-text b{font-weight:var(--fw-medium)}.cv-text span{color:var(--text-3)}.cv-go{width:16px;height:16px;color:var(--text-3)}.cv-kv{margin:0;display:flex;flex-direction:column;gap:8px}.cv-kv>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:baseline}.cv-kv dt{color:var(--text-3)}.cv-kv dd{margin:0}.cv-kv b{font-weight:var(--fw-medium)}.cv-box{padding:18px 20px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line-strong);display:flex;flex-direction:column;gap:8px}.cv-box p i{font-style:normal;color:var(--text-3)}.cv-acc{display:flex;flex-direction:column;gap:8px}.cv-acc-item{padding:0;gap:0}.cv-acc-h{margin:0;font:inherit}.ng .cv-acc-h button{width:100%;display:flex;align-items:center;gap:8px;padding:14px 20px;border-radius:12px;text-align:left;color:inherit}.cv-acc-h .cv-k{flex:1;color:var(--fg)}.cv-acc-h small{font-size:var(--fs-2xs);color:var(--text-3);font-variant-numeric:tabular-nums}.cv-acc-chev{width:16px;height:16px;color:var(--text-3);transition:transform var(--dur-base) var(--ease-spring)}.cv-acc-item.is-open .cv-acc-chev{transform:rotate(180deg)}@media (hover: hover){.ng .cv-acc-h button:hover .cv-acc-chev{color:var(--fg)}}.ng .cv-acc-h button:focus-visible{box-shadow:0 0 0 2px var(--focus);outline:none}.cv-acc-body{padding:0 20px 18px;animation:cv-acc-in var(--dur-base) var(--ease-out) both}@keyframes cv-acc-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.cv-acc-body{animation:none}.cv-acc-chev{transition:none}}.ng .cv-link{color:inherit;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px;font:inherit}@media (hover: hover){.ng .cv-link:hover{text-decoration-color:currentColor}}.cv-foot{color:var(--text-3);font-size:var(--fs-2xs)}@media (max-width: 560px){.cv-kv>div{grid-template-columns:1fr;gap:2px}}.cvp{animation-duration:var(--dur-base)}.ng .cv-badge{display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 6px 0 16px;border-radius:64px;background:var(--btn-bg)!important;box-shadow:var(--btn-shadow);-webkit-backdrop-filter:blur(50px);backdrop-filter:blur(50px);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-2);white-space:nowrap;transition:transform var(--dur-base) var(--ease-spring)}.cv-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px #22c55e2e;flex-shrink:0}.cv-x{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--icon);font-size:20px;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}@media (hover: hover){.ng .cv-badge:hover .cv-x{background:color-mix(in srgb,var(--fg) 8%,transparent);color:var(--fg)}}.ng .cv-badge:active{transform:scale(.96);transition-duration:var(--dur-instant)}@media (max-width: 760px){.ng .cv-badge{height:44px;padding-left:14px}.cv-x{width:32px;height:32px}}.cvm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.cvm-back{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity var(--dur-base) var(--ease)}.cvm-panel{position:relative;max-width:560px;margin:88px auto 0;height:calc(100% - 88px);overflow-y:auto;overscroll-behavior:contain;padding:20px 16px 120px;background:var(--bg);border-radius:20px 20px 0 0;box-shadow:0 -1px 0 var(--line),0 -20px 60px -20px #0000002e;display:flex;flex-direction:column;gap:24px;font-size:var(--fs-sm);line-height:1.55;opacity:0;transform:translateY(40px);transition:opacity var(--dur-base) var(--ease),transform var(--dur-slow) var(--ease-out)}.cvm.is-on .cvm-back,.cvm.is-on .cvm-panel{opacity:1;transform:none}.cvm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:sticky;top:-20px;padding:20px 0 12px;margin-top:-20px;background:var(--bg);z-index:1}.cvm-head h2{margin:0;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.cvm-head p{margin:0;color:var(--text-3)}.cvm-head .ng-btn{width:36px;height:36px;font-size:18px;flex-shrink:0}.cvm-shots{display:flex;flex-direction:column;gap:12px}.cvm-shots img{width:100%;height:auto;display:block;border-radius:14px}.cvm-card .ng-card{border-radius:16px}.cvm-imprint{display:flex;flex-direction:column;gap:32px}.cvm-imprint p{margin:0}@media (max-width: 760px){.cvm-panel{margin-top:72px;height:calc(100% - 72px)}}@media (prefers-reduced-motion: reduce){.cvm-panel{transform:none}}html.vt-theme::view-transition-old(root),html.vt-theme::view-transition-new(root){animation:none;mix-blend-mode:normal}html.vt-theme::view-transition-new(root){animation:ng-theme-reveal var(--dur-slow) var(--ease-in-out) both}html.vt-nav .cs-flow>.ng-card,html.vt-nav .cs-hero-grow>.ng-card{view-transition-name:case-hero}html:is(.vt-nav,.vt-arrived) .ng>main>*{animation:none!important}::view-transition-group(case-hero){animation-duration:var(--dur-slow);animation-timing-function:var(--ease-in-out)}::view-transition-image-pair(case-hero){overflow:hidden;border-radius:32px}@media (max-width: 760px){::view-transition-image-pair(case-hero){border-radius:20px}}html.vt-nav::view-transition-old(root){animation:ng-vt-out var(--dur-fast) var(--ease) both}html.vt-nav::view-transition-new(root){animation:ng-vt-in var(--dur-base) var(--ease-out) var(--dur-fast) both}@keyframes ng-vt-out{to{opacity:0}}@keyframes ng-vt-in{0%{opacity:0}}html.vt-nav .ng-header{view-transition-name:ng-header}::view-transition-group(ng-header),::view-transition-new(ng-header){animation:none}::view-transition-old(ng-header){display:none}::view-transition-old(case-hero),::view-transition-new(case-hero){height:100%;object-fit:cover;animation-duration:var(--dur-slow)}::view-transition-old(root),::view-transition-new(root){animation-duration:var(--dur-base)}@keyframes ng-theme-reveal{0%{clip-path:circle(0px at var(--vt-x, 90%) var(--vt-y, 40px))}to{clip-path:circle(var(--vt-r, 150vmax) at var(--vt-x, 90%) var(--vt-y, 40px))}}.ng>main>:is(.ng-content,.pg-inner,.cs-inner,.up-side,.up-main){animation:ng-page-in var(--dur-slow) var(--ease-out) backwards}@keyframes ng-page-in{0%{opacity:0;transform:translateY(-28px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}@media (prefers-reduced-motion: reduce){html.vt-theme::view-transition-new(root){animation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.ng>main>*{animation:none!important}}.play{margin-top:clamp(96px,10vw,160px)}.play-view{--o: var(--open, 1);position:relative;height:100vh;height:100dvh;min-height:600px;overflow:hidden;outline:none;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;margin-inline:calc(50% - 50vw);background:#0b0b0c;clip-path:inset(calc((1 - var(--o)) * 9%) calc((1 - var(--o)) * 7%) round calc((1 - var(--o)) * 40px))}.play-view:before{content:"";position:absolute;left:0;right:0;top:0;height:160px;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0b0b0c,#0b0b0c 45%,#0b0b0c00)}@media (max-width: 760px){.play-view:before{height:110px}}.play-view.is-dragging{cursor:grabbing}.play-view.is-full{touch-action:none}.play{position:relative}.play-edge{position:absolute;left:0;right:0;top:0;height:max(170px,24svh);z-index:2;display:none;touch-action:pan-y;pointer-events:none}.ng .play-up{position:absolute;left:50%;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:12px 20px 12px 16px;border-radius:99px;background:#fff;color:#0b0b0c;font-size:var(--fs-body);line-height:20px;font-weight:var(--fw-semibold);box-shadow:0 10px 30px -8px #0009,0 0 0 1px #fff3;opacity:0;pointer-events:none;transform:translate(-50%,-8px);transition:opacity var(--dur-fast) var(--ease),transform var(--dur-base) var(--ease-spring)}.play-up svg{width:18px;height:18px}@media (pointer: coarse){.play-edge{display:block}.play-view:before{height:max(170px,24svh)}}html.in-play .play-edge{pointer-events:auto}html.in-play .ng .play-up{opacity:1;pointer-events:auto;transform:translate(-50%)}@media (prefers-reduced-motion: reduce){.ng .play-up{transition:opacity var(--dur-fast) var(--ease)}}.play-view:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.play-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.play-tile{position:absolute}.play-item{position:absolute;margin:0;display:flex;flex-direction:column;gap:8px}.play-item img{width:100%;height:auto;display:block;object-fit:cover;background:#1a1a1c;pointer-events:none;transition:transform var(--dur-base) var(--ease-out)}@media (hover: hover){.play-view:not(.is-dragging) .play-item:hover img{transform:scale(1.03)}}.play-item figcaption{font-size:var(--fs-2xs);line-height:1.3;font-style:italic;color:#fff9}.play-view .play-item{opacity:0;transform:translateY(28px) scale(.92);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slower) var(--ease-out);transition-delay:calc(var(--d, 0) * 60ms)}.play-view.is-in .play-item{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.play-view{clip-path:none}.play-view .play-item{opacity:1;transform:none;transition:none}}.ng .pg.pg--flush{padding-bottom:0}.pg--flush .play{margin-bottom:0}@media (max-width: 760px){.play-head{flex-direction:column;gap:4px}}.ng-header:before,.ng-header-bg,.ng-header:after{transition:opacity var(--dur-base) var(--ease)}.ng-blur{transition:opacity var(--dur-base) var(--ease),visibility 0s}.ng-vdivider{transition:background-color var(--dur-base) var(--ease)}.ng-logo-box,.ng-icons .ng-btn{transition:color var(--dur-base) var(--ease),background-color var(--dur-base) var(--ease),box-shadow var(--dur-base) var(--ease),transform var(--dur-base) var(--ease-spring)}html.in-play .ng-header:before,html.in-play .ng-header-bg,html.in-play .ng-header:after,html.in-play .ng-blur{opacity:0!important}.ng-bio-stack{display:grid}.ng-bio--me{width:auto;display:flex;align-items:center;gap:12px;white-space:nowrap}.ng-bio--me img{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--surface);flex-shrink:0}.ng-bio--me p{margin:0;display:flex;flex-direction:column}.ng-bio--me b{color:var(--fg);font-weight:var(--fw-medium)}.ng-bio-stack>.ng-bio{grid-area:1 / 1;transition:opacity var(--dur-base) var(--ease),transform var(--dur-base) var(--ease-out)}.ng-bio--play{opacity:0;transform:translateY(6px);pointer-events:none;display:flex;flex-direction:column;justify-content:center;color:#fff}.ng-bio--play b{font-weight:var(--fw-semibold)}.ng-bio--play span{color:#fff9}html.in-play .ng-bio:not(.ng-bio--play){opacity:0;transform:translateY(-6px);pointer-events:none}html.in-play .ng-bio--play{opacity:1;transform:none}.ng-bio--social{display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(6px);pointer-events:none}.ng-header:is(.is-scrolled,.is-cv) .ng-bio:not(.ng-bio--social):not(.ng-bio--play){opacity:0;transform:translateY(-6px);pointer-events:none}html:not(.in-play) .ng-header:is(.is-scrolled,.is-cv) .ng-bio--social{opacity:1;transform:none;pointer-events:auto}.ng .ng-soc{display:grid;place-items:center;width:40px;height:40px;border-radius:64px;font-size:20px;color:var(--icon);background:var(--btn-bg);box-shadow:var(--btn-shadow);text-decoration:none;transition:color var(--dur-fast) var(--ease),transform var(--dur-base) var(--ease-spring)}@media (hover: hover){a.ng-soc:hover{color:var(--icon-hover);transform:translateY(-2px)}}.ng-soc.is-pending{cursor:default}.ng .ng-soc{color:color-mix(in srgb,var(--fg) 70%,transparent)}@media (hover: hover){.ng a.ng-soc:hover{color:var(--fg)}}@media (max-width: 760px){.ng-bio-stack{display:none}}html.in-play .ng-vdivider{background:#fff3}html.in-play .ng-logo-box{color:#fff}html.in-play .ng-header{--dark-30: rgba(255,255,255,.4);--icon: var(--dark-30);--icon-hover: rgba(255,255,255,.75);--btn-bg: rgba(255,255,255,.06);--btn-shadow: inset 0 -3px 10px 0 rgba(0,0,0,.55), inset 0 7px 4px 0 rgba(255,255,255,.05);--line: rgba(255,255,255,.07);--line-strong: rgba(255,255,255,.12);--fg: #ffffff;--bg: #0b0b0c}html.in-play,html.in-play body{background:#0b0b0c}html.in-play .menu{--bg: #0b0b0c;--fg: #ffffff;--line: rgba(255,255,255,.1);--text-2: #d4d4d4;--text-3: #a3a3a3;--muted: #8a8a8a;--icon: rgba(255,255,255,.4);--icon-hover: rgba(255,255,255,.75);--btn-bg: rgba(255,255,255,.06);--btn-shadow: inset 0 -3px 10px 0 rgba(0,0,0,.55), inset 0 7px 4px 0 rgba(255,255,255,.05);--menu-bg: rgba(11,11,12,.82);color:#fff}html{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.24) transparent}html:has(.ng[data-theme=dark]){scrollbar-color:rgba(255,255,255,.22) transparent;color-scheme:dark}html:has(.ng[data-theme=light]){color-scheme:light}html:has(.ng[data-theme=light]),html:has(.ng[data-theme=light]) body{background:#fff}html:has(.ng[data-theme=dark]),html:has(.ng[data-theme=dark]) body{background:#0b0b0c}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000038;border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:#00000061}html:has(.ng[data-theme=dark]) ::-webkit-scrollbar-thumb{background-color:#fff3}html:has(.ng[data-theme=dark]) ::-webkit-scrollbar-thumb:hover{background-color:#ffffff5c}.pg.nf{position:relative;min-height:calc(100svh - 104px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(32px,5vh,56px);padding-bottom:96px;text-align:center;overflow-x:clip}.nf-stage{--cell: clamp(22px, 4.2vw, 40px);--gap: clamp(3px, .5vw, 5px);--gw: calc(11 * var(--cell) + 10 * var(--gap));--gh: calc(5 * var(--cell) + 4 * var(--gap));position:relative;display:flex;justify-content:center;padding-top:calc(var(--gh) * .35)}.nfg{position:relative;z-index:1;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-template-rows:repeat(var(--rows),var(--cell));gap:var(--gap)}.nfg-slot{position:relative;border-radius:calc(var(--cell) * .26);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--fg) 14%,transparent)}.nfg-box{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--fg);box-shadow:0 4px 10px -6px #00000073}.nfg-box{animation:nfg-drop var(--dur-slower) var(--ease-in) both}@keyframes nfg-drop{0%{opacity:0;transform:translate(calc(var(--dx) * (var(--cell) + var(--gap))),calc(-1 * (var(--row) + 8) * (var(--cell) + var(--gap)))) rotate(calc(var(--dx) * 8deg))}12%{opacity:1}72%{transform:none;animation-timing-function:var(--ease-out)}86%{transform:scale(1.08,.88)}to{opacity:1;transform:none}}.nf.is-done .nfg-box{animation:nfg-hop 1.2s var(--ease-in-out) both;animation-delay:calc(var(--k) * 45ms)}@keyframes nfg-hop{0%,to{transform:none}30%{transform:translateY(-30%)}55%{transform:none}}.nf-bit{--b: calc(var(--cell) * 1.2 * var(--s, 1));--px: calc(var(--x) * var(--gw) / 2);--cg: calc(var(--cell) + var(--gap));position:absolute;z-index:2;left:calc(50% + var(--px));bottom:calc(var(--y) * var(--gh));width:var(--b);height:var(--b);margin-left:calc(var(--b) / -2);border-radius:calc(var(--b) * .3);display:grid;place-items:center;font-size:calc(var(--b) * .54);line-height:1;background:var(--tint, var(--glass-bg));box-shadow:inset 0 0 0 1px #0000000d,inset 0 1.5px #fff9,0 8px 18px -10px #0000004d;animation:nf-fall calc(var(--dur-slower) * 1.4) var(--ease) both;animation-delay:calc(.2s + var(--i) * .14s)}.nf-bit{transition:translate var(--dur-slower) var(--ease-in-out),scale var(--dur-slower) var(--ease-in-out)}.nf.is-done .nf-bit{translate:calc((var(--tc) - 5) * var(--cg) - var(--px)) calc(-1 * ((4 - var(--tr)) * var(--cg) + var(--cell) / 2 - var(--y) * var(--gh) - var(--b) / 2));scale:var(--sc);transition-delay:calc(var(--dur-slow) + var(--i) * 90ms)}.nf-ripple{position:absolute;z-index:0;width:0;height:0;pointer-events:none}.nf-ripple i{position:absolute;left:-20px;top:-20px;width:40px;height:40px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--fg) 35%,transparent);opacity:0;animation:nf-wave var(--dur-slower) var(--ease-out) both}.nf-ripple i:nth-child(2){animation-delay:.18s}.nf-ripple i:nth-child(3){animation-delay:.36s}@keyframes nf-wave{0%{opacity:.8;transform:scale(.15)}to{opacity:0;transform:scale(2.5)}}.ng[data-theme=dark] .nf-bit{background:color-mix(in srgb,var(--tint) 42%,#1b1b1f);box-shadow:inset 0 0 0 1px #ffffff14,0 8px 18px -10px #0009}@keyframes nf-fall{0%{opacity:0;transform:translateY(-110vh) rotate(calc(var(--r) * -4));animation-timing-function:var(--ease-in)}8%{opacity:1}58%{transform:translateY(0) rotate(var(--r));animation-timing-function:var(--ease-out)}72%{transform:translateY(-14%) rotate(calc(var(--r) * .6));animation-timing-function:var(--ease-in)}84%{transform:translateY(0) rotate(var(--r));animation-timing-function:var(--ease-out)}92%{transform:translateY(-4%) rotate(var(--r));animation-timing-function:var(--ease-in)}to{opacity:1;transform:translateY(0) rotate(var(--r))}}.nf-copy{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:640px;animation:nf-up var(--dur-slow) var(--ease-out) both;animation-delay:var(--dur-slow)}.nf-copy .lead{margin:0}.ng .nf-btn{height:48px;margin-top:8px;padding:0 22px}@keyframes nf-up{0%{opacity:0;transform:translateY(16px)}}@media (max-width: 760px){.pg.nf{min-height:calc(100svh - 72px);padding-bottom:72px}.nf-stage{--cell: clamp(20px, 6.6vw, 28px);padding-top:calc(var(--gh) * .45)}.nf-bit{--px: calc(clamp(-1, var(--x), 1) * (var(--gw) / 2 - 17px))}.nf-bit--wide{display:none}}@media (prefers-reduced-motion: reduce){.nfg-box,.nf.is-done .nfg-box{animation:none}.nf-bit{transition:none}.nf-bit{animation:nf-up var(--dur-slow) var(--ease) both;transform:rotate(var(--r))}.nf-copy{animation:none}}
