.card-visual{background:#fafafc}.card-visual,.feature-visual{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.feature-visual{background:var(--bg-alt);border-radius:var(--radius-card)}.project-visual{aspect-ratio:16/9;background:#fafafc;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.card:hover .mock,.project:hover .mock{transform:scale(1.03)}.mock{background:#fff;border-radius:14px;box-shadow:0 12px 36px rgba(0,0,0,.09);overflow:hidden;transition:transform .5s var(--ease)}.mock b,.mock i{display:block}.mock-dash{width:76%;aspect-ratio:16/10;display:grid;grid-template-columns:23% 1fr}.mock-dash .side{background:#f5f5f7;padding:10px 8px;display:flex;flex-direction:column;gap:8px}.mock-dash .logo-dot{width:10px;height:10px;border-radius:3px;background:var(--accent);margin-bottom:4px}.mock-dash .nav-row{height:6px;border-radius:3px;background:#e1e1e6}.mock-dash .nav-row.on{background:color-mix(in srgb,var(--accent) 30%,#fff)}.mock-dash .main{padding:10px;display:flex;flex-direction:column;gap:9px;min-height:0}.mock-dash .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mock-dash .kpi{background:#f5f5f7;border-radius:7px;padding:7px;display:flex;flex-direction:column;gap:5px}.mock-dash .kpi b{height:8px;width:55%;border-radius:4px;background:#c4c4cc}.mock-dash .kpi i{height:5px;width:80%;border-radius:3px;background:#e1e1e6}.mock-dash .chart{flex:1 1;display:flex;align-items:flex-end;gap:5%;padding:6px 6px 0;position:relative;min-height:0}.vbar{flex:1 1;border-radius:3px 3px 0 0;background:#e1e1e6;height:var(--h,50%);transform-origin:bottom}.vbar.hl{background:var(--accent)}.chart-line{position:absolute;inset:0 6px;width:calc(100% - 12px);height:100%;color:var(--accent);pointer-events:none}.chart-line polyline{stroke-dasharray:100;stroke-dashoffset:0}.mock-dash.dark{background:#141417;border:1px solid rgba(255,255,255,.09);box-shadow:0 40px 90px rgba(0,0,0,.55)}.mock-dash.dark .side{background:#1c1c21}.mock-dash.dark .nav-row{background:#2b2b32}.mock-dash.dark .nav-row.on{background:color-mix(in srgb,var(--accent) 55%,#1c1c21)}.mock-dash.dark .kpi{background:#1c1c21}.mock-dash.dark .kpi b{background:#3a3a42}.mock-dash.dark .kpi i,.mock-dash.dark .vbar{background:#2b2b32}.mock-dash.dark .vbar.hl{background:var(--accent)}.mock-browser{width:80%;aspect-ratio:16/10;display:flex;flex-direction:column}.mock-browser .bbar{height:13%;background:#ededf1;display:flex;align-items:center;gap:5px;padding:0 10px;flex-shrink:0}.mock-browser .bbar i{width:7px;height:7px;border-radius:50%;background:#c9c9d0}.mock-browser .url{flex:0 1 45%;height:8px;border-radius:999px;background:#fff;margin-left:8px}.kanban{flex:1 1;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px;min-height:0}.kcol{background:#f5f5f7;border-radius:8px;padding:7px;display:flex;flex-direction:column;gap:6px;min-height:0}.kcol .khead{height:6px;width:50%;border-radius:3px;background:#cfcfd6;margin-bottom:2px;flex-shrink:0}.kcard{background:#fff;border-radius:6px;padding:6px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 3px rgba(0,0,0,.07)}.kcard i{height:5px;border-radius:3px;background:#e1e1e6}.kcard i.w60{width:60%}.kcard .ktag{width:32%;height:5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 40%,#fff)}.mock-phone{width:34%;aspect-ratio:9/18;border-radius:20px;padding:11px 9px;display:flex;flex-direction:column;gap:8px}.feature-visual .mock-phone,.project-visual .mock-phone{width:26%}.mock-phone .notch{width:36%;height:5px;border-radius:999px;background:#e1e1e6;align-self:center;flex-shrink:0}.mock-phone .mp-head{height:8px;width:55%;border-radius:4px;background:#c4c4cc}.mock-phone .mp-search{height:14px;border-radius:7px;background:#f0f0f3;flex-shrink:0}.mp-row{display:flex;gap:7px;align-items:center}.mp-row .av{width:15px;height:15px;border-radius:50%;background:#e1e1e6;flex-shrink:0}.mp-row .ln{flex:1 1;display:flex;flex-direction:column;gap:3px}.mp-row .ln i{height:5px;border-radius:3px;background:#ededf1}.mp-row .ln i:last-child{width:65%}.mp-tab{margin-top:auto;height:18px;border-radius:9px;background:#f5f5f7;display:flex;align-items:center;justify-content:space-around;flex-shrink:0}.mp-tab i{width:8px;height:8px;border-radius:3px;background:#d2d2d7}.mp-row .tick,.mp-tab i.on{background:var(--accent)}.mp-row .tick{width:14px;height:14px;border-radius:5px;flex-shrink:0;position:relative}.mp-row .tick:after{content:"";position:absolute;left:4.5px;top:2.5px;width:3px;height:6px;border-right:1.8px solid #fff;border-bottom:1.8px solid #fff;transform:rotate(45deg)}.mp-row .tick.off{background:#ededf1}.mp-row .tick.off:after{border-color:#c4c4cc}.mock-cal{width:72%;aspect-ratio:16/11;padding:11px;display:flex;flex-direction:column;gap:9px}.mock-cal .mc-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.mock-cal .mc-head b{height:8px;width:32%;border-radius:4px;background:#c4c4cc}.mock-cal .mc-head i{width:18%;height:10px;border-radius:999px;background:color-mix(in srgb,var(--accent) 16%,#fff)}.mc-grid{flex:1 1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:4px;min-height:0}.mc-cell{background:#f7f7f9;border-radius:4px;position:relative}.mc-ev{position:absolute;left:12%;right:12%;top:55%;height:5px;border-radius:2px;background:color-mix(in srgb,var(--accent) 40%,#fff)}.mc-ev.hl{background:var(--accent)}.mock-table{width:78%;aspect-ratio:16/10;padding:11px;display:flex;flex-direction:column;gap:7px}.mt-head{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;margin-bottom:2px}.mt-head b{height:8px;width:30%;border-radius:4px;background:#c4c4cc}.mt-head i{width:16%;height:11px;border-radius:999px;background:var(--accent)}.mt-row{display:grid;grid-template-columns:2.2fr 1fr 1fr auto;gap:10px;align-items:center;background:#f7f7f9;border-radius:6px;padding:8px 9px;flex:1 1}.mt-row i{height:5px;border-radius:3px;background:#dcdce1}.mt-row .pill{width:34px;height:8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 35%,#fff)}.mt-row .pill.dim{background:#e1e1e6}@property --p{syntax:"<number>";initial-value:0;inherits:false}.mock-report{width:74%;aspect-ratio:16/10;padding:14px;display:grid;grid-template-columns:1fr 1.1fr;gap:12px;align-items:center}.donut-wrap{display:flex;align-items:center;justify-content:center}.donut{width:78%;aspect-ratio:1;border-radius:50%;--p:68;background:conic-gradient(var(--accent) calc(var(--p) * 1%),#ececf0 0);-webkit-mask:radial-gradient(circle,transparent 54%,#000 55%);mask:radial-gradient(circle,transparent 54%,#000 55%)}.legend{display:flex;flex-direction:column;gap:9px}.legend .lg{display:flex;align-items:center;gap:7px}.legend .dot{width:8px;height:8px;border-radius:3px;background:#e1e1e6;flex-shrink:0}.legend .dot.hl{background:var(--accent)}.legend i{flex:1 1;height:5px;border-radius:3px;background:#ededf1}.legend b{width:18%;height:7px;border-radius:3px;background:#c4c4cc}.mock-res{width:78%;aspect-ratio:16/10;padding:13px;display:flex;flex-direction:column;gap:10px;justify-content:center}.res-head{height:8px;width:34%;border-radius:4px;background:#c4c4cc;margin-bottom:2px}.res-row{display:flex;align-items:center;gap:9px}.res-row .av{width:16px;height:16px;border-radius:50%;background:#e1e1e6;flex-shrink:0}.res-row .track{flex:1 1;height:11px;border-radius:999px;background:#f0f0f3;overflow:hidden}.res-row .track i{height:100%;width:var(--w,50%);border-radius:999px;background:color-mix(in srgb,var(--accent) var(--o,100%),#fff);transform-origin:left}.mock-collab{width:82%;aspect-ratio:16/10;position:relative}.mock-collab .note{position:absolute;width:23%;aspect-ratio:1/.82;border-radius:9px;background:#f0f0f3;padding:7px;display:flex;flex-direction:column;gap:4px}.mock-collab .note i{height:4px;border-radius:2px;background:#d8d8de}.mock-collab .note i:last-child{width:60%}.mock-collab .note.hl{background:color-mix(in srgb,var(--accent) 12%,#fff)}.mock-collab .note.hl i{background:color-mix(in srgb,var(--accent) 35%,#fff)}.mock-collab .wire{position:absolute;height:2px;background:#e6e6eb}.cursor{position:absolute;width:0;height:0;border-left:11px solid var(--accent);border-bottom:11px solid transparent;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.cursor .tag{position:absolute;left:8px;top:8px;width:34px;height:12px;border-radius:999px;background:var(--accent)}.cursor.c2{border-left-color:#1d1d1f}.cursor.c2 .tag{background:#1d1d1f}.hero-bg-grid{inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 0);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 30%,transparent 75%)}.hero-bg-grid,.hero-glow{position:absolute;z-index:0;pointer-events:none}.hero-glow{width:56vw;height:40vw;left:50%;top:38%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 55%,transparent),transparent 65%);filter:blur(70px);opacity:.4}.hero-mock-wrap{width:min(820px,100%);margin-top:clamp(36px,5vw,64px);perspective:1400px}.hero-mock-wrap .mock-dash{width:100%;transform:rotateX(7deg)}@keyframes growBar{to{transform:scaleY(1)}}@keyframes growTrack{to{transform:scaleX(1)}}@keyframes popIn{to{opacity:1;transform:none}}@keyframes drawLine{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}@keyframes sweep{0%{--p:0}}@keyframes heroFloat{0%,to{transform:rotateX(7deg) translateY(0)}50%{transform:rotateX(6deg) translateY(-9px)}}@keyframes glowPulse{0%,to{opacity:.34}50%{opacity:.5}}@keyframes evPulse{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(1.12);opacity:.8}}@keyframes cardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes drift1{0%,to{left:16%;top:64%}35%{left:58%;top:26%}70%{left:38%;top:70%}}@keyframes drift2{0%,to{left:72%;top:24%}40%{left:30%;top:40%}75%{left:64%;top:66%}}@media (prefers-reduced-motion:no-preference){.reveal .vbar{transform:scaleY(0)}.reveal .res-row .track i{transform:scaleX(0)}.reveal .kcard,.reveal .legend .lg,.reveal .mp-row,.reveal .mt-row{opacity:0;transform:translateY(8px)}.reveal .chart-line polyline{stroke-dashoffset:100}.reveal .donut{--p:0}.reveal.in .vbar{animation:growBar .7s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 90ms + .25s)}.reveal.in .res-row .track i{animation:growTrack .8s var(--ease) forwards;animation-delay:calc(var(--i, 0) * .12s + .2s)}.reveal.in .kcard,.reveal.in .legend .lg,.reveal.in .mp-row,.reveal.in .mt-row{animation:popIn .5s var(--ease) forwards;animation-delay:calc(var(--i, 0) * .11s + .2s)}.reveal.in .chart-line polyline{animation:drawLine 1.4s var(--ease) forwards .5s}.reveal.in .donut{animation:sweep 1.3s var(--ease) forwards .3s}.hero-mock-wrap .mock-dash{animation:heroFloat 7s ease-in-out infinite}.hero-glow{animation:glowPulse 6s ease-in-out infinite}.mc-ev.hl{animation:evPulse 2.6s ease-in-out infinite}.kcard.floaty{animation:popIn .5s var(--ease) forwards calc(var(--i, 0) * .11s + .2s),cardFloat 4s ease-in-out infinite 1.2s}.cursor.c1{animation:drift1 11s ease-in-out infinite}.cursor.c2{animation:drift2 13s ease-in-out infinite}.btn svg,.card-link svg{transition:transform .25s var(--ease)}.btn:hover svg,.card:hover .card-link svg{transform:translateX(3px)}}.mock-site{width:80%;aspect-ratio:16/10;display:flex;flex-direction:column}.mock-site .bbar{height:13%;background:#ededf1;display:flex;align-items:center;gap:5px;padding:0 10px;flex-shrink:0}.mock-site .bbar i{width:7px;height:7px;border-radius:50%;background:#c9c9d0}.mock-site .bbar .url{flex:0 1 45%;height:8px;border-radius:999px;background:#fff;margin-left:8px}.mock-site .site-body{flex:1 1;padding:14px;display:flex;flex-direction:column;gap:11px;justify-content:center}.mock-site .site-h1{height:12px;width:64%;border-radius:5px;background:#c4c4cc;margin:0 auto;opacity:0;animation:popIn .5s var(--ease) .1s forwards}.mock-site .site-sub{height:7px;width:44%;border-radius:4px;background:#e1e1e6;margin:0 auto;opacity:0;animation:popIn .5s var(--ease) .2s forwards}.mock-site .site-cta{display:flex;gap:8px;justify-content:center;opacity:0;animation:popIn .5s var(--ease) .32s forwards}.mock-site .site-cta .b1{width:46px;height:14px;border-radius:999px;background:var(--accent)}.mock-site .site-cta .b2{width:38px;height:14px;border-radius:999px;background:#e1e1e6}.mock-site .site-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}.mock-site .site-cards i{height:30px;border-radius:8px;background:#f0f0f3;opacity:0;transform:translateY(8px);animation:popIn .5s var(--ease) calc(.42s + var(--i) * .08s) forwards}.mock-search{width:78%;aspect-ratio:16/11;padding:12px;display:flex;flex-direction:column;gap:8px}.mock-search .sr-bar{height:16px;border-radius:999px;background:#f0f0f3;display:flex;align-items:center;padding:0 10px;flex-shrink:0}.mock-search .sr-bar .sr-q{width:40%;height:6px;border-radius:3px;background:#c9c9d0}.mock-search .sr-row{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;background:#f7f7f9;opacity:0;transform:translateX(-8px);animation:slideIn .45s var(--ease) calc(.1s + var(--i) * .1s) forwards}.mock-search .sr-row.hl{background:color-mix(in srgb,var(--accent) 10%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,#fff)}.mock-search .sr-pos{width:16px;height:16px;border-radius:50%;background:#e1e1e6;color:#8a8a92;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mock-search .sr-row.hl .sr-pos{background:var(--accent);color:#fff}.mock-search .sr-lines{flex:1 1;display:flex;flex-direction:column;gap:4px}.mock-search .sr-lines i{height:5px;border-radius:3px;background:#d4d4da}.mock-search .sr-lines i.w60{width:60%;background:#e6e6ea}@keyframes slideIn{to{opacity:1;transform:none}}.mock-ai{width:78%;aspect-ratio:16/11;padding:14px;display:flex;flex-direction:column;gap:10px;justify-content:center}.mock-ai .ai-q{align-self:flex-end;width:52%;height:22px;border-radius:12px 12px 3px 12px;background:color-mix(in srgb,var(--accent) 16%,#fff);opacity:0;animation:popIn .4s var(--ease) .1s forwards}.mock-ai .ai-a{align-self:flex-start;width:72%;border-radius:12px 12px 12px 3px;background:#f0f0f3;padding:10px;display:flex;flex-direction:column;gap:6px;opacity:0;animation:popIn .45s var(--ease) .35s forwards}.mock-ai .ai-a i{height:6px;border-radius:3px;background:#d4d4da}.mock-ai .ai-a i.w60{width:60%}.mock-ai .ai-cite{display:inline-flex;align-items:center;gap:5px;margin-top:3px;width:42%;height:13px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,#fff);padding:0 6px}.mock-ai .ai-cite .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.mock-ai .ai-bar{height:16px;border-radius:999px;background:#f0f0f3;display:flex;align-items:center;padding:0 6px}.mock-ai .ai-bar span{width:30%;height:6px;border-radius:3px;background:#d4d4da}.mock-code{width:78%;aspect-ratio:16/10;padding:0;overflow:hidden}.mock-code.dark{background:#141417;border:1px solid rgba(255,255,255,.09);box-shadow:0 40px 90px rgba(0,0,0,.5)}.mock-code .code-bar{height:22px;background:#1c1c21;display:flex;align-items:center;gap:5px;padding:0 11px}.mock-code .code-bar i{width:7px;height:7px;border-radius:50%;background:#3a3a42}.mock-code .code-body{padding:12px 13px;display:flex;flex-direction:column;gap:8px}.mock-code .code-line{display:flex;gap:6px;padding-left:calc(var(--ind) * 14px);opacity:0;transform:translateX(-6px);animation:slideIn .4s var(--ease) calc(.08s + var(--i) * .08s) forwards}.mock-code .tok{height:6px;border-radius:3px;background:#2f2f37}.mock-code .tok.kw{width:26px;background:color-mix(in srgb,var(--accent) 70%,#fff)}.mock-code .tok.fn{width:40px;background:#4a4a55}.mock-code .tok.var{width:34px;background:#3a3a42}.mock-code .tok.prop{width:30px;background:#3a3a42}.mock-code .tok.str{width:48px;background:#2e6f4e}.mock-code .tok.num{width:18px;background:#6b5e2e}.mock-code .tok.op{width:10px;background:#4a4a55}.mock-code .tok.br{width:12px;background:#4a4a55}.mock-code .tok.ret{width:30px;background:color-mix(in srgb,var(--accent) 70%,#fff)}@media (prefers-reduced-motion:no-preference){.service-examples .feature-visual .mock{animation:mockFloat 6s ease-in-out infinite}.service-examples .feature-visual:nth-child(2) .mock{animation-delay:-2s}.service-examples .feature-visual:nth-child(3) .mock{animation-delay:-4s}@keyframes mockFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}}.service-examples .feature-visual .mock{transition:transform .4s var(--ease),box-shadow .4s var(--ease)}.service-examples .feature-visual:hover .mock{transform:translateY(-4px) scale(1.02);box-shadow:0 22px 50px rgba(0,0,0,.16)}.service-module{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}.service-module:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.1);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}