@font-face{font-family:Geist;font-weight:400;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/geist@latest/latin-400-normal.woff2) format("woff2")}@font-face{font-family:Geist;font-weight:500;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/geist@latest/latin-500-normal.woff2) format("woff2")}@font-face{font-family:Geist;font-weight:600;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/geist@latest/latin-600-normal.woff2) format("woff2")}@font-face{font-family:Geist;font-weight:700;font-display:swap;src:url(https://cdn.jsdelivr.net/fontsource/fonts/geist@latest/latin-700-normal.woff2) format("woff2")}:root{--bg: #06060a;--fg: #f5f5fa;--muted: #9aa0b4;--glass: rgba(18, 18, 28, .55);--border: rgba(255, 255, 255, .12);--soft: rgba(255, 255, 255, .05);--soft-strong: rgba(255, 255, 255, .1);--modal-grad: linear-gradient(160deg, rgba(22,22,34,.97), rgba(10,10,18,.98));--surface: #0b0b12;--surface-bar: #14141f;--text-2: #c2c6d6;--modal-bot: #0c0c16}[data-theme=light]{--bg: #e9ebf1;--fg: #15161c;--muted: #5a6170;--glass: rgba(255, 255, 255, .65);--border: rgba(0, 0, 0, .12);--soft: rgba(0, 0, 0, .04);--soft-strong: rgba(0, 0, 0, .08);--modal-grad: linear-gradient(160deg, #ffffff, #eef1f7);--surface: #eef1f7;--surface-bar: #e4e7f0;--text-2: #3c4250;--modal-bot: #f3f5f9}[data-theme=light] .brand .dot:before{background:#4a5160;box-shadow:0 0 14px #4a516080}*{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid #6ea8ff;outline-offset:2px;border-radius:6px}[data-theme=light] :focus-visible{outline-color:#2563eb}html,body,#root{width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--bg);color:var(--fg);font-family:Geist,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.app{position:fixed;top:0;right:0;bottom:0;left:0;touch-action:none}.scene{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.scene:active{cursor:grabbing}.ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,4vw,40px);z-index:5}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.brand{display:flex;flex-direction:column;gap:2px}.brand .dot{display:inline-flex;align-items:center;gap:8px;font-weight:700;letter-spacing:.5px;font-size:clamp(15px,2.5vw,19px)}.brand .dot:before{content:"";width:9px;height:9px;border-radius:50%;background:#cdd4e2;box-shadow:0 0 14px #cdd4e2b3}.brand small{color:var(--muted);font-size:clamp(11px,1.8vw,13px)}.topright{display:flex;align-items:center;gap:10px;pointer-events:auto}.iconbtn{width:34px;height:34px;border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:15px;line-height:1;background:var(--glass);border:1px solid var(--border);color:var(--muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:.15s}.iconbtn:hover{color:var(--fg);background:var(--soft-strong)}.iconbtn.on{color:var(--fg);border-color:#ffffff59}.iconbtn.lang{font-size:11px;font-weight:700;letter-spacing:.5px}.counter{pointer-events:auto;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;color:var(--muted);background:var(--glass);border:1px solid var(--border);padding:6px 12px;border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.bottom{display:flex;flex-direction:column;align-items:center;gap:16px}.hint{display:flex;align-items:center;gap:10px;font-size:clamp(12px,2vw,14px);color:var(--muted);background:var(--glass);border:1px solid var(--border);padding:9px 16px;border-radius:999px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:floaty 3s ease-in-out infinite;transition:opacity .5s,transform .5s}.hint.gone{opacity:0;transform:translateY(10px);pointer-events:none}.hint .swipe{width:22px;height:12px;border:1.5px solid var(--muted);border-radius:8px;position:relative}.hint .swipe:after{content:"";position:absolute;top:50%;left:3px;width:4px;height:4px;border-radius:50%;background:var(--muted);transform:translateY(-50%);animation:swipe 1.8s ease-in-out infinite}@keyframes swipe{0%,to{left:3px}50%{left:13px}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.navbar{pointer-events:auto;display:flex;align-items:center;gap:6px;max-width:min(92vw,760px);background:var(--glass);border:1px solid var(--border);border-radius:999px;padding:5px;-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 12px 40px #00000059,inset 0 1px #ffffff14}.arrow{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--soft);border:1px solid transparent;color:var(--fg);font-size:22px;line-height:1;transition:transform .15s,background .15s,color .15s}.arrow:hover{background:var(--soft-strong)}.arrow:active{transform:scale(.88)}.menu{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;padding:2px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}.menu::-webkit-scrollbar{display:none}.chip{flex:none;display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;cursor:pointer;white-space:nowrap;font-size:13px;font-weight:500;color:var(--muted);background:transparent;border:1px solid transparent;transition:color .2s,background .2s,box-shadow .2s}.chip:hover{color:var(--fg);background:var(--soft)}.chip.proj{color:var(--fg)}.chip.active{color:var(--fg);font-weight:600;background-color:var(--soft-strong);border-color:color-mix(in srgb,var(--chip-accent) 55%,transparent);box-shadow:0 0 18px -5px color-mix(in srgb,var(--chip-accent) 60%,transparent)}.chip .cdot{width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px var(--chip-accent);transition:transform .2s}.chip.active .cdot{transform:scale(1.25)}@media (max-width: 600px){.navbar{gap:3px;padding:4px;max-width:94vw}.arrow{width:34px;height:34px;font-size:20px}.chip{padding:7px 12px;font-size:12.5px;gap:6px}}.ui.dim{opacity:0;transition:opacity .3s}.modal-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;background:#02020699;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;place-items:center;padding:clamp(14px,3vw,40px);pointer-events:auto}.modal{position:relative;width:min(1080px,100%);max-height:92vh;background:var(--modal-grad);border:1px solid var(--border);border-radius:22px;box-shadow:0 40px 120px #0009,0 0 0 1px #ffffff08;overflow:hidden;display:grid;grid-template-columns:1fr}.modal.split{grid-template-columns:minmax(320px,.85fr) 1.15fr;grid-template-rows:minmax(0,1fr)}.modal:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:22px;padding:1px;background:linear-gradient(160deg,var(--accent),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;pointer-events:none}.modal-info{position:relative;overflow-y:auto;overflow-x:hidden;padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:16px;min-width:0;min-height:0;max-height:90vh;word-break:break-word;scrollbar-width:thin;scrollbar-color:var(--soft-strong) transparent}.modal-info::-webkit-scrollbar{width:6px}.modal-info::-webkit-scrollbar-track{background:transparent}.modal-info::-webkit-scrollbar-thumb{background:var(--soft-strong);border-radius:999px}.modal-info::-webkit-scrollbar-thumb:hover{background:var(--border)}.modal-info .glow{position:absolute;inset:-30% 0 auto 0;height:260px;filter:blur(70px);opacity:.45;pointer-events:none}.modal-info .badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}.modal-info .badge .bdot{width:8px;height:8px;border-radius:9px;box-shadow:0 0 10px currentColor}.modal-info h2{font-size:clamp(28px,5vw,46px);line-height:1.02;letter-spacing:-.5px}.modal-info .tagline{color:var(--fg);font-size:clamp(15px,2.6vw,19px);font-weight:500}.modal-info .desc{color:var(--text-2);line-height:1.7;font-size:clamp(14px,2.4vw,16px)}.modal-info .meta{display:flex;flex-wrap:wrap;gap:8px}.modal-info .meta span{font-size:12px;color:var(--muted);padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--soft)}.metrics{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0}.metric{flex:1;min-width:90px;display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;background:var(--soft);border:1px solid var(--border)}.metric .mv{font-size:clamp(20px,3.5vw,26px);font-weight:800;line-height:1}.metric .ml{font-size:11.5px;color:var(--muted)}.casestudy{display:flex;flex-direction:column;gap:16px}.cs{display:flex;flex-direction:column;gap:5px}.cs-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px}.cs p{color:var(--text-2);line-height:1.65;font-size:clamp(14px,2.3vw,15.5px)}.media-head{padding:13px 16px;border-bottom:1px solid var(--border);background:var(--surface-bar);font-size:13px;color:var(--muted)}.gallery{position:relative;flex:1;min-height:320px;background:var(--surface);display:grid;place-items:center;overflow:hidden}.gallery .gimg{width:100%;height:100%;object-fit:cover}.garr{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:22px;color:var(--fg);background:#00000073;border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.garr.left{left:12px}.garr.right{right:12px}.garr:hover{background:#000000b3}.gdots{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:7px;z-index:2}.gdots span{width:7px;height:7px;border-radius:50%;background:#fff6;cursor:pointer}.gdots span.on{background:#fff;width:18px;border-radius:999px}.modal-info .feat{list-style:none;display:flex;flex-direction:column;gap:10px}.modal-info .feat li{display:flex;align-items:center;gap:10px;color:var(--fg);font-size:15px}.modal-info .feat .chk{font-weight:800;font-size:18px}.modal-info .tags{display:flex;flex-wrap:wrap;gap:8px}.modal-info .tags span{font-size:12px;padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:var(--soft)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;position:sticky;bottom:0;padding:12px 0 2px;background:linear-gradient(to top,var(--modal-bot) 70%,transparent)}.btn{flex:1;min-width:130px;text-align:center;padding:14px 20px;border-radius:12px;font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;border:1px solid var(--border);transition:transform .15s,filter .15s}.btn:active{transform:scale(.97)}.btn.primary{color:#06060a;border:none}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{color:var(--fg);background:var(--soft)}.modal-demo{display:flex;flex-direction:column;background:var(--surface);min-height:320px;min-width:0}.browser-bar{display:flex;align-items:center;gap:7px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-bar)}.browser-bar span{width:11px;height:11px;border-radius:50%;background:#3a3a4a}.browser-bar span:nth-child(1){background:#ff5f57}.browser-bar span:nth-child(2){background:#febc2e}.browser-bar span:nth-child(3){background:#28c840}.browser-bar em{margin-left:10px;font-style:normal;font-size:13px;color:#8b90a3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-fallback{position:relative;flex:1;min-height:340px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:28px;background:radial-gradient(90% 80% at 50% 0%,color-mix(in srgb,var(--a) 20%,var(--surface)),var(--surface))}.demo-fallback .df-glow{position:absolute;width:360px;height:360px;border-radius:50%;background:var(--a);filter:blur(100px);opacity:.28;pointer-events:none;top:-120px;left:-80px;animation:drift 9s ease-in-out infinite}.demo-fallback .df-glow2{background:var(--a2);top:auto;left:auto;bottom:-120px;right:-80px;opacity:.22;animation-duration:11s;animation-direction:reverse}@keyframes drift{0%,to{transform:translate(0)}50%{transform:translate(40px,30px)}}.df-phone{position:relative;width:190px;height:210px;border-radius:22px;padding:12px;background:linear-gradient(160deg,#ffffff17,#ffffff05);border:1px solid rgba(255,255,255,.14);box-shadow:0 26px 60px #0000008c,inset 0 1px #ffffff1f;overflow:hidden;animation:floaty 4s ease-in-out infinite}.df-phone .df-shot{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.df-screen{position:relative;height:100%;display:flex;flex-direction:column;gap:9px}.df-badge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;font-weight:800;color:#06060a;background:linear-gradient(135deg,var(--a),var(--a2));box-shadow:0 8px 24px color-mix(in srgb,var(--a) 45%,transparent)}.df-bar{border-radius:6px;background:linear-gradient(90deg,var(--a),var(--a2));opacity:.85}.df-bar-lg{height:14px;width:80%}.df-bar-md{height:9px;width:55%;background:#ffffff2e}.df-cards{display:flex;gap:8px;margin-top:2px}.df-card{flex:1;height:46px;border-radius:10px;background:#ffffff12;border:1px solid rgba(255,255,255,.08);position:relative;overflow:hidden}.df-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:translate(-100%);animation:shimmer 2.4s infinite}.df-card:nth-child(2):after{animation-delay:.4s}.df-card:nth-child(3):after{animation-delay:.8s}@keyframes shimmer{to{transform:translate(100%)}}.df-bar-sm{height:8px;width:40%;background:#ffffff24;margin-top:auto}.demo-fallback .df-title{position:relative;font-size:19px;font-weight:700;margin-top:4px}.demo-fallback .df-sub{position:relative;color:var(--muted);font-size:13px;max-width:300px;line-height:1.5}.demo-fallback .df-btn{position:relative;flex:none;min-width:200px;margin-top:6px}.demo-frame{position:relative;flex:1;background:var(--surface)}.demo-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.demo-frame .loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;gap:10px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-close{position:absolute;top:14px;right:14px;z-index:3;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:#0006;border:1px solid var(--border);color:var(--fg);font-size:22px;line-height:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-close:hover{background:#ffffff26}.contact-links{display:flex;flex-direction:column;gap:12px}.contact-links a{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-radius:12px;text-decoration:none;color:var(--fg);border:1px solid var(--border);background:var(--soft);transition:.15s}.contact-links a:hover{background:#ffffff12;transform:translate(4px)}.contact-links a span.arrow{color:var(--muted)}@media (max-width: 820px){.modal.split{grid-template-columns:1fr;grid-template-rows:minmax(0,1.1fr) minmax(0,.9fr)}.modal{max-height:92vh}.modal-demo{min-height:40vh;order:2}.modal-info{order:1;max-height:none}.actions{position:static;background:none;padding-top:12px}.metric{min-width:0;padding:10px}.metric .mv{font-size:15px}.metric .ml{font-size:10.5px}}.boot{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:var(--bg);transition:opacity .6s}.boot.hide{opacity:0;pointer-events:none}.boot .ring{width:54px;height:54px;border-radius:50%;border:3px solid rgba(255,255,255,.1);border-top-color:#cdd4e2;animation:spin .9s linear infinite}.boot-bar{width:160px;height:3px;border-radius:999px;background:#ffffff1a;overflow:hidden}.boot-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8aa0c0,#cdd4e2);transition:width .3s ease}
