@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-italic.BicUS2cM.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-italic.BfTTTDIL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-italic.Py8at3oI.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0a0b0d;--surface:#121418;--surface-2:#191c21;--text:#ecebe6;--muted:#9da1a9;--border:#23262d;--accent:#b3a6ff;--accent-strong:#8f7dff;--accent-soft:#b3a6ff1f;--glow-1:#8f7dff59;--glow-2:#25d3a02e;--chip-bg:#16191e;--glass:#16181d9e;--glass-border:#ffffff17;--shadow:0 24px 60px -24px #000000bf;--c-app:#4fc3f7;--c-cloud:#ff9e3d;--c-ai:#b3a6ff;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Fraunces Variable", ui-serif, Georgia, "Times New Roman", serif;--font-mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--space-32:8rem;--radius:14px;--max-width:76rem;--ease:cubic-bezier(.23, 1, .32, 1);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);margin:0;font-size:1.0625rem;line-height:1.6;overflow-x:clip}a{color:var(--accent);text-underline-offset:.18em}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}h1,h2,h3{letter-spacing:-.01em;line-height:1.15}p,ul,ol{margin:0 0 var(--space-4)}.container{max-width:var(--max-width);padding:0 var(--space-4);margin:0 auto}@media (width>=40rem){.container{padding:0 var(--space-8)}}.page{padding-top:var(--space-24);min-height:60vh}.section{padding-top:var(--space-32)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{left:-999px;top:var(--space-2);background:var(--surface);padding:var(--space-2) var(--space-4);z-index:30;position:absolute}.skip-link:focus{left:var(--space-2)}.display,.display-2,.lede-display{font-family:var(--font-display);letter-spacing:-.025em;font-weight:450}.display{margin:0 0 var(--space-6);font-size:clamp(3rem,9vw,6rem);line-height:.98}.display-2{margin:0 0 var(--space-16);font-size:clamp(2.2rem,6vw,4rem);line-height:1.05}.lede-display{color:var(--muted);max-width:34rem;margin-bottom:var(--space-8);font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.3}.display em,.display-2 em,.lede-display em{color:var(--accent);font-style:italic;font-weight:400}.eyebrow{align-items:center;gap:var(--space-3);background:color-mix(in srgb, #25d3a0 9%, var(--glass));letter-spacing:.02em;color:var(--text);margin-bottom:var(--space-8);border:1px solid #25d3a066;border-radius:999px;padding:.5rem 1.15rem .5rem .95rem;font-size:1rem;font-weight:600;display:inline-flex;box-shadow:0 0 32px -8px #25d3a073}.dot{background:#25d3a0;border-radius:999px;width:9px;height:9px;box-shadow:0 0 0 4px #25d3a02e}main{padding-bottom:var(--space-16);overflow-x:clip}.site-footer{border-top:1px solid var(--border);padding:var(--space-6) 0 var(--space-8);color:var(--muted);font-size:.88rem}.site-footer .container{justify-content:space-between;gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.site-footer a{color:var(--muted)}.meta{color:var(--muted);font-size:.95rem}.links{align-items:center;gap:var(--space-3) var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.button{background:var(--accent);color:var(--bg);box-shadow:0 10px 30px -10px var(--glow-1);transition:transform .3s var(--ease), background-color .3s;border-radius:999px;padding:.7rem 1.5rem;font-weight:650;text-decoration:none;display:inline-block}.button:hover{transform:translateY(-2px)}.button-ghost{color:var(--text);border:1px solid var(--glass-border);box-shadow:none;background:0 0}.button-ghost:hover{background:var(--surface-2)}.chips{gap:var(--space-2);margin:0 0 var(--space-6);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chips li{border:1px solid var(--border);background:var(--chip-bg);font-family:var(--font-mono);color:var(--muted);border-radius:999px;padding:.15rem .7rem;font-size:.74rem}.hero{isolation:isolate;gap:var(--space-12);padding-top:var(--space-16);align-items:center;display:grid;position:relative}@media (width>=62rem){.hero{grid-template-columns:1fr 1fr;min-height:min(100svh,56rem);padding-top:0}}.hero-backdrop{z-index:-1;opacity:.55;width:100vw;position:absolute;top:-5rem;bottom:-4rem;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#0000,#000 18% 60%,#0000);mask-image:linear-gradient(#0000,#000 18% 60%,#0000)}.hero-backdrop:after{content:"";background:linear-gradient(to right, var(--bg) 15%, transparent 65%);position:absolute;inset:0}.hero-backdrop img,.hero-backdrop video{object-fit:cover;object-position:70% 30%;width:100%;height:100%;position:absolute;inset:0}.hero-backdrop video{opacity:0;transition:opacity 1.2s var(--ease)}.hero-backdrop video.is-playing{opacity:1}.hero-backdrop .video-toggle{z-index:1;right:var(--space-4);bottom:var(--space-16)}@media (width<=62rem){.hero-backdrop{opacity:.35}}.stack{--c-sec:#25d3a0;justify-self:center;width:100%;max-width:36rem;position:relative;container-type:inline-size}.stack-scene{aspect-ratio:1/1.1;position:relative}.layer{left:38%;top:calc(var(--y) * 1%);width:0;height:0;animation:drop 1.1s var(--ease) both, bob 6s ease-in-out infinite;animation-delay:calc(.25s + var(--i) * .15s), calc(1.4s + var(--i) * -2s);position:absolute}.plane{--c:var(--c-app);border:1px solid color-mix(in srgb, var(--c) 55%, transparent);background:linear-gradient(color-mix(in srgb, var(--c) 14%, transparent) 1px, transparent 1px) 0 0 / 12.5% 12.5%, linear-gradient(90deg, color-mix(in srgb, var(--c) 14%, transparent) 1px, transparent 1px) 0 0 / 12.5% 12.5%, color-mix(in srgb, var(--c) 9%, #0a0b0db3);width:44cqi;height:44cqi;box-shadow:0 0 40px -6px color-mix(in srgb, var(--c) 45%, transparent), inset 0 0 30px -10px color-mix(in srgb, var(--c) 60%, transparent);backdrop-filter:blur(6px);border-radius:18px;position:absolute;transform:translate(-50%,-50%)rotateX(58deg)rotate(45deg)}.layer-ai .plane{--c:var(--c-ai);border-color:var(--c);width:34cqi;height:34cqi;box-shadow:0 0 70px 0 color-mix(in srgb, var(--c) 55%, transparent), inset 0 0 36px -8px color-mix(in srgb, var(--c) 80%, transparent);animation:3.6s ease-in-out infinite glow}.layer-api .plane{--c:var(--c-cloud)}.glyph{border:1.5px solid var(--c);background:color-mix(in srgb, var(--c) 18%, transparent);box-shadow:0 0 14px -2px var(--c);position:absolute}.g-phone{border-radius:6px;width:18%;height:34%;top:22%;left:16%}.g-phone-2{top:14%;left:40%}.g-browser{border-radius:5px;width:56%;height:24%;top:60%;left:24%}.g-cell{left:calc(14% + mod(var(--n), 3) * 26%);top:calc(14% + round(down, var(--n) / 3) * 26%);width:20%;height:20%;font-family:var(--font-mono);color:var(--c);animation:3.2s ease-in-out infinite blink;animation-delay:calc(var(--n) * -.7s);border-radius:5px;place-items:center;font-size:3.4cqi;font-weight:700;display:grid}.g-graph{position:absolute;inset:6%;overflow:visible}.g-graph path{fill:none;stroke:color-mix(in srgb, var(--c) 70%, transparent);stroke-width:1px}.g-graph circle{fill:color-mix(in srgb, var(--c) 35%, #0a0b0d);stroke:var(--c);stroke-width:1.2px;animation:2.6s ease-in-out infinite blink;animation-delay:calc(var(--n) * -.45s)}.shield{width:100%;height:100%;animation:fade 1.2s var(--ease) both;animation-delay:.8s;position:absolute;inset:0;overflow:visible}.shield polygon,.shield path{fill:none;stroke:color-mix(in srgb, var(--c-sec) 55%, transparent);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;animation:1.6s linear infinite march}.shield .shield-back{stroke:color-mix(in srgb, var(--c-sec) 22%, transparent)}.shield .shield-scan{fill:color-mix(in srgb, var(--c-sec) 7%, transparent);stroke:var(--c-sec);stroke-dasharray:none;filter:drop-shadow(0 0 4px var(--c-sec));animation:5s cubic-bezier(.5,0,.5,1) infinite scan}.beam{left:38%;top:calc(var(--from) * 1%);width:2px;height:calc((var(--to) - var(--from)) * 1%);background:linear-gradient(#0000,#ffffff2e,#0000);margin-left:-1px;position:absolute;overflow:hidden}.beam:after{content:"";width:6px;height:18%;box-shadow:0 0 12px 2px var(--c-ai);background:#fff;border-radius:999px;animation:2.4s cubic-bezier(.6,0,.4,1) infinite travel;position:absolute;left:-2px}.beam-2:after{box-shadow:0 0 12px 2px var(--c-cloud);animation-delay:1.2s}.stack-labels{margin:0;padding:0;list-style:none}.stack-label{--c:var(--c-app);left:66%;right:0;top:calc(var(--y) * 1%);border:1px solid var(--glass-border);border-left:2px solid var(--c);background:var(--glass);backdrop-filter:blur(12px);animation:fade .8s var(--ease) both;animation-delay:calc(.9s + var(--i) * .15s);border-radius:10px;gap:2px;padding:.55rem .8rem;line-height:1.3;display:grid;position:absolute;transform:translateY(-50%)}.label-sec{--c:var(--c-sec)}.label-ai{--c:var(--c-ai)}.label-api{--c:var(--c-cloud)}.stack-label strong{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--c);font-size:.72rem}.stack-label span{color:var(--text);font-size:clamp(.7rem,2.6cqi,.86rem)}@container (width<=30rem){.stack-scene{translate:12cqi}.stack-labels{gap:var(--space-2);margin-top:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.stack-label{position:static;transform:none}}@keyframes glow{50%{box-shadow:0 0 90px 6px color-mix(in srgb, var(--c) 70%, transparent), inset 0 0 44px -6px var(--c)}}@keyframes march{to{stroke-dashoffset:-12px}}@keyframes scan{0%,8%{opacity:0;translate:0}20%{opacity:1}80%{opacity:1}92%,to{opacity:0;translate:0 var(--d)}}@keyframes drop{0%{opacity:0;translate:0 -40px}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes travel{0%{top:-20%}to{top:100%}}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}.stats{padding-top:var(--space-16)}.stats ul{border:1px solid var(--border);border-radius:var(--radius);background:var(--border);grid-template-columns:repeat(2,1fr);gap:1px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}@media (width>=52rem){.stats ul{grid-template-columns:repeat(4,1fr)}}.stats li{gap:var(--space-2);padding:var(--space-6);background:var(--bg);align-content:start;display:grid}.stats strong{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,5vw,3.2rem);font-weight:450;line-height:1}.stats span{color:var(--muted);font-size:.88rem;line-height:1.4}.feature{gap:var(--space-12);padding-block:var(--space-12);align-items:center;display:grid}.feature+.feature{margin-top:var(--space-8)}@media (width>=62rem){.feature{gap:var(--space-16);grid-template-columns:5fr 7fr;min-height:34rem}.feature:nth-of-type(2n){grid-template-columns:7fr 5fr}.feature:nth-of-type(2n) .feature-copy{order:2}}.feature-kicker{align-items:center;gap:var(--space-3);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-4);font-size:.78rem;display:flex}.feature-kicker span{color:var(--tint)}.feature-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 var(--space-4);font-size:clamp(1.9rem,4vw,2.8rem);font-weight:450}.feature-line{color:var(--muted);max-width:30rem;margin-bottom:var(--space-8)}.feature-stat{gap:var(--space-1);margin-bottom:var(--space-6);display:grid}.feature-stat strong{font-family:var(--font-display);letter-spacing:-.03em;color:var(--tint);font-size:clamp(2.6rem,6vw,3.8rem);font-weight:450;line-height:1}.feature-stat span{color:var(--muted);font-size:.9rem}.feature-link{gap:var(--space-2);color:var(--text);border-bottom:1px solid var(--tint);padding-bottom:2px;font-weight:600;text-decoration:none;display:inline-flex}.feature-link:hover span{transform:translate(2px,-2px)}.feature-link span{color:var(--tint);transition:transform .25s var(--ease);display:inline-block}.feature-visual{isolation:isolate;place-items:center;min-width:0;display:grid;position:relative}.tint-glow{z-index:-1;background:radial-gradient(60% 50% at 50% 50%, color-mix(in srgb, var(--tint) 30%, transparent), transparent 70%);filter:blur(40px);pointer-events:none;position:absolute;inset:0}.device{margin:0}.device img{width:100%;height:auto;display:block}.device-phone{box-shadow:0 0 0 1.5px #34363c, var(--shadow);background:#050506;border-radius:26px;padding:5px}.device-phone img{border-radius:21px}.device-browser{border:1px solid var(--glass-border);box-shadow:var(--shadow);background:#16181c;border-radius:12px;overflow:hidden}.device-bar{height:2rem;padding:0 var(--space-3);border-bottom:1px solid var(--glass-border);align-items:center;gap:6px;display:flex}.device-bar i{background:#33363d;border-radius:999px;width:9px;height:9px}.device-bar small{font-family:var(--font-mono);color:var(--muted);background:#0e1013;border-radius:6px;margin:0 auto;padding:.05rem .9rem;font-size:.68rem}.device-bare img{filter:drop-shadow(0 30px 40px #0009)}.combo{width:100%;padding-bottom:12%;position:relative}.combo-main{width:88%}.combo-phone{width:27%;position:absolute;bottom:0;right:0}.fan{aspect-ratio:1.1;width:100%;position:relative}.fan-item{--abs:max(var(--o), -1 * var(--o));z-index:calc(10 - var(--abs));width:38%;translate:calc(-50% + var(--o) * 52%) calc(-50% + var(--abs) * 4%);rotate:calc(var(--o) * 5deg);scale:calc(1 - var(--abs) * .09);transition:translate .6s var(--ease), rotate .6s var(--ease), scale .6s var(--ease);position:absolute;top:50%;left:50%}.fan:hover .fan-item{translate:calc(-50% + var(--o) * 62%) calc(-50% + var(--abs) * 2%)}.trio{grid-template-columns:1fr 1.15fr 1fr;align-items:center;gap:4%;width:100%;max-width:34rem;display:grid}.trio .device:nth-child(2){translate:0 -6%}.trio .device:first-child{rotate:-4deg}.trio .device:nth-child(3){rotate:4deg}.duo{grid-template-columns:1fr 1fr;gap:8%;width:78%;margin-inline:auto;display:grid}.duo .device:first-child{rotate:-3deg}.duo .device:nth-child(2){translate:0 8%;rotate:3deg}.side-projects{gap:var(--space-8);margin:0;padding:0;list-style:none;display:grid}@media (width>=56rem){.side-projects{grid-template-columns:1fr 1fr}}.side{isolation:isolate;padding:var(--space-8);border:1px solid var(--border);background:linear-gradient(to bottom, color-mix(in srgb, var(--tint) 10%, var(--surface)), var(--surface) 60%);border-radius:20px;flex-direction:column;align-items:flex-start;display:flex;position:relative;overflow:hidden}.side-visual{min-height:20rem;margin-bottom:var(--space-8);align-content:center;display:grid}.side .combo{width:100%}.side h3{font-family:var(--font-display);margin:0 0 var(--space-2);font-size:1.6rem;font-weight:450}.side p{color:var(--muted)}.side .feature-link{--tint:inherit;border-color:var(--tint)}.path ol{gap:var(--space-8);counter-reset:step;margin:0;padding:0;list-style:none;display:grid}@media (width>=52rem){.path ol{grid-template-columns:repeat(3,1fr)}}.path li{gap:var(--space-2);padding-top:var(--space-6);border-top:1px solid var(--border);display:grid;position:relative}.path li:before{content:"";background:var(--accent);width:9px;height:9px;box-shadow:0 0 0 5px var(--accent-soft);border-radius:999px;position:absolute;top:-5px;left:0}.path span{font-family:var(--font-display);font-size:clamp(2rem,4vw,2.8rem);font-weight:450;line-height:1}.path li:last-child span{color:var(--accent);font-style:italic}.path small{color:var(--muted);font-size:.92rem}.contact{padding-bottom:var(--space-16);text-align:center}.contact .display{font-size:clamp(3.5rem,13vw,9rem)}.contact-mail{margin-bottom:var(--space-8);font-size:clamp(1.15rem,3.5vw,2rem)}.contact-mail a{color:var(--text);text-decoration-color:var(--accent);overflow-wrap:anywhere;text-decoration-thickness:2px}.contact .links{justify-content:center}.showcase{justify-items:center;display:grid;position:relative}.phone{width:min(280px,70vw);margin:0;position:relative}.phone-body{aspect-ratio:9/19;box-shadow:0 0 0 1.5px #34363c, 0 0 0 4px #121316, var(--shadow);background:#050506;border-radius:48px;padding:10px;position:relative}.phone-island{z-index:2;background:#000;border-radius:999px;width:92px;height:26px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.phone-screen{background:#0b141a;border-radius:38px;height:100%;position:relative;overflow:hidden}.phone-screen video{object-fit:cover;width:100%;height:100%;display:block}.video-toggle{border:1px solid var(--glass-border);background:var(--glass);width:36px;height:36px;color:var(--text);cursor:pointer;backdrop-filter:blur(10px);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:12px;right:12px}.video-toggle[hidden]{display:none}.caption{margin:var(--space-6) 0 0;color:var(--muted);font-size:.78rem}.float-chips{margin:0;padding:0;list-style:none}.float-chip{z-index:3;padding:var(--space-2) var(--space-4);border:1px solid var(--glass-border);background:var(--glass);box-shadow:var(--shadow);backdrop-filter:blur(14px)saturate(1.4);white-space:nowrap;border-radius:16px;margin:0;line-height:1.25;display:grid;position:absolute}.float-chip strong{font-family:var(--font-display);color:var(--text);font-size:1.35rem;font-weight:500}.float-chip span{color:var(--muted);font-size:.78rem}.chip-1{top:16%;right:calc(100% - .75rem)}.chip-2{top:46%;left:calc(100% - .75rem)}.chip-3{bottom:14%;right:calc(100% - .75rem)}@media (width<=40rem){.float-chips{justify-content:center;gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.float-chip{position:static}}.chat{color:#e9edef;background:radial-gradient(circle at 20% 30%,#ffffff06 0 2px,#0000 3px) 0 0/22px 22px,#0b141a;flex-direction:column;height:100%;font-size:.8rem;line-height:1.4;display:flex}.chat-bar{align-items:center;gap:var(--space-3);padding:54px var(--space-4) var(--space-3);background:#1f2c34;display:flex}.chat-bar strong{font-size:.88rem;display:block}.chat-bar small{color:#8696a0}.chat-avatar{color:#0c0d0f;background:#8f7dff;border-radius:999px;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.chat-log{justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-3) var(--space-6);flex-direction:column;flex:1;margin:0;list-style:none;display:flex}.msg{border-radius:10px;max-width:84%;margin:0;padding:6px 10px}.msg.me{background:#005c4b;border-top-right-radius:2px;align-self:flex-end}.msg.agent{background:#202c33;border-top-left-radius:2px;align-self:flex-start}.summary-title{color:#b3a6ff;font-weight:700;display:block}.summary{gap:1px var(--space-3);margin:var(--space-1) 0 var(--space-2);padding:var(--space-2) 0;border-block:1px solid #ffffff14;grid-template-columns:auto 1fr;display:grid}.summary dt{color:#8696a0}.summary dd{margin:0}@keyframes rise{0%{opacity:0;filter:blur(8px);transform:translateY(18px)}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}.rise{animation:rise .8s var(--ease) both;animation-delay:calc(var(--i,0) * 80ms)}@keyframes fade{0%{opacity:0}}.float-chip{animation:pop .7s var(--ease) both;animation-delay:calc(.9s + var(--i) * .14s)}.js [data-reveal]{opacity:0;filter:blur(8px);transition:opacity .6s var(--ease), transform .7s var(--ease), filter .6s var(--ease);transition-delay:calc(var(--i,0) * 90ms);transform:translateY(24px)}.js [data-reveal].is-visible{opacity:1;filter:none;transform:none}.js .chat .msg{opacity:0}.js .chat.is-visible .msg{animation:pop .45s var(--ease) both;animation-delay:calc(.6s + var(--i) * .6s)}@supports (animation-timeline:view()){.fan-item{animation:linear both fan-in view();animation-range:entry 10% cover 40%}@keyframes fan-in{0%{translate:-50% -40%;rotate:0deg;scale:.9}}.combo-main,.trio .device,.duo .device{animation:linear both lift view();animation-range:entry cover 35%}.combo-phone{animation:linear both lift-far view();animation-range:entry cover 45%}@keyframes lift{0%{opacity:0;transform:translateY(60px)scale(.96)}}@keyframes lift-far{0%{opacity:0;transform:translateY(140px)}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.js [data-reveal],.js .chat .msg{opacity:1;filter:none;transform:none}}
