@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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:Merriweather;font-style:italic;font-display:swap;font-weight:300;src:url(/_astro/merriweather-latin-300-italic.B0XpY91x.woff2)format("woff2"),url(/_astro/merriweather-latin-300-italic.Bk9AtooY.woff)format("woff")}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/montserrat-latin-800-normal.axpkC1rd.woff2)format("woff2"),url(/_astro/montserrat-latin-800-normal.C3dfDxXV.woff)format("woff")}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/fira-code-latin-600-normal.CvYZpPHg.woff2)format("woff2"),url(/_astro/fira-code-latin-600-normal.BmSSHshu.woff)format("woff")}:root{--font-head:"Archivo Variable", "Archivo", "Helvetica Neue", Arial, sans-serif;--font-body:"Archivo Variable", "Archivo", "Helvetica Neue", Arial, sans-serif;--font-nod:"Merriweather", Georgia, serif;--r:20px;--wrap:1200px;--bg:#f1f4f7;--surface:#fff;--tint:#dde6ed;--ink:#14212c;--muted:#465766;--line:#c9d4dd;--teal:#00796b;--blue:#00719e;--coral:#ff6b4a;--coral-hover:#ff5630;--on-coral:#2a0e06;--grad:linear-gradient(100deg, #0077a8, #00796b);--grad-text:linear-gradient(100deg, #0077a8, #00796b);--wash-blue:#e3f0f7;--wash-mint:#e0f3ee;--wash-warm:#ffeee7;--matte-1:#d3e8f3;--matte-2:#d1eee6;--matte-3:#ffe2d6;--stage:linear-gradient(145deg, #14212c 0%, #10384a 58%, #0c4f4b 100%);--stage-solid:#14212c;--on-stage:#e8eef2;--signal:#0f0;--focus:#00594f;--dot-web:#0091c6;--dot-mobile:#00a693;--dot-ai:#f5a524;--dot-web3:#ff6b4a;--fr-chrome:#eef1f3;--fr-line:#14212c29;--fr-dot:#bcc6cf;--fr-url-bg:#fff;--fr-url-ink:#465766;--fr-phone:#0c141b;--fr-shadow:0 24px 48px -24px #08101899;--logo-bg:#16232e;--logo-line:#16232e;--logo-a:#0091c6;--logo-b:#4db6ac;--logo-slash:#fff;--logo-name:#14212c;--logo-sub:#00796b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b141c;--surface:#13212c;--tint:#172836;--ink:#e8eef2;--muted:#a1b2bf;--line:#273947;--teal:#4db6ac;--blue:#5cc8f2;--coral:#ff7d5e;--coral-hover:#ff9478;--grad-text:linear-gradient(100deg, #5cc8f2, #4db6ac);--wash-blue:#0e202c;--wash-mint:#0d2421;--wash-warm:#241713;--matte-1:#12303f;--matte-2:#10322d;--matte-3:#33211b;--stage:linear-gradient(145deg, #13212c 0%, #0f3242 58%, #0d413e 100%);--stage-solid:#13212c;--focus:#0f0;--fr-chrome:#22323f;--fr-line:#ffffff1f;--fr-dot:#4a5e6e;--fr-url-bg:#0b141c;--fr-url-ink:#a1b2bf;--fr-phone:#05090d;--fr-shadow:0 24px 48px -24px #000000d9;--logo-bg:#15232e;--logo-line:#34495e;--logo-a:#29a9db;--logo-name:#e8eef2;--logo-sub:#4db6ac}}:root[data-theme=dark]{--bg:#0b141c;--surface:#13212c;--tint:#172836;--ink:#e8eef2;--muted:#a1b2bf;--line:#273947;--teal:#4db6ac;--blue:#5cc8f2;--coral:#ff7d5e;--coral-hover:#ff9478;--grad-text:linear-gradient(100deg, #5cc8f2, #4db6ac);--wash-blue:#0e202c;--wash-mint:#0d2421;--wash-warm:#241713;--matte-1:#12303f;--matte-2:#10322d;--matte-3:#33211b;--stage:linear-gradient(145deg, #13212c 0%, #0f3242 58%, #0d413e 100%);--stage-solid:#13212c;--focus:#0f0;--fr-chrome:#22323f;--fr-line:#ffffff1f;--fr-dot:#4a5e6e;--fr-url-bg:#0b141c;--fr-url-ink:#a1b2bf;--fr-phone:#05090d;--fr-shadow:0 24px 48px -24px #000000d9;--logo-bg:#15232e;--logo-line:#34495e;--logo-a:#29a9db;--logo-name:#e8eef2;--logo-sub:#4db6ac}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5.5rem}body{font:400 1.0625rem/1.6 var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0;list-style:none}img,svg,video{max-width:100%}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}h1,h2,h3{font-family:var(--font-head);letter-spacing:-.035em;text-wrap:balance;font-weight:700;font-stretch:125%;line-height:1}.wrap{width:min(100% - 2.5rem, var(--wrap));margin-inline:auto}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--ink);color:var(--bg);border-radius:6px;padding:.7rem 1rem;font-weight:700;position:absolute;top:-5rem;left:1rem}.skip:focus{top:1rem}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}.ico{flex:none}.dot{background:var(--signal);border-radius:50%;flex:none;width:.6em;height:.6em;display:inline-block}.svc-dot{background:var(--muted);border-radius:50%;flex:none;width:.55em;height:.55em;margin-right:.5em;display:inline-block}.svc-dot--web{background:var(--dot-web)}.svc-dot--mobile{background:var(--dot-mobile)}.svc-dot--ai{background:var(--dot-ai)}.svc-dot--web3{background:var(--dot-web3)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.btn{white-space:nowrap;min-height:48px;font:600 1rem/1.1 var(--font-body);border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:transform .15s,background-color .15s,filter .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-sm{min-height:40px;padding:.5rem 1rem;font-size:.9rem}.btn-primary{background:var(--coral);color:var(--on-coral)}.btn-primary:hover{background:var(--coral-hover)}.btn-ink{background:var(--ink);color:var(--bg)}.btn-ink:hover{background:var(--muted)}.btn-demo{background:var(--grad);color:#fff}.btn-demo:hover{filter:brightness(1.12)}.btn-ghost{border-color:var(--line);color:var(--ink)}.btn-ghost:hover{border-color:var(--ink)}.icon-btn{border:1px solid var(--line);background:0 0;border-radius:50%;place-items:center;width:40px;height:40px;text-decoration:none;display:inline-grid}.icon-btn:hover{border-color:var(--ink)}.lang-btn{font-size:.8rem;font-weight:600;font-stretch:90%}.brand{min-height:44px;color:var(--logo-name);align-items:center;gap:.6rem;margin-right:auto;text-decoration:none;display:inline-flex}.logo-badge{flex:none;width:34px;height:34px;display:block}.logo-box{fill:var(--logo-bg);stroke:var(--logo-line);stroke-width:2px}.logo-lt,.logo-gt,.logo-slash{fill:none;stroke-linecap:round;stroke-linejoin:round}.logo-lt{stroke:url(#logoGrad);stroke-width:6.5px}.logo-gt{stroke:var(--logo-b);stroke-width:6.5px}.logo-slash{stroke:var(--logo-slash);stroke-width:5.5px}.logo-stop-a{stop-color:var(--logo-a)}.logo-stop-b{stop-color:var(--logo-b)}.logo-text{gap:.3rem;min-width:0;display:grid}.logo-name{letter-spacing:.15em;text-transform:uppercase;color:var(--logo-name);font:800 11.5px/1.2 Montserrat,Arial Black,system-ui,sans-serif}.logo-name span{display:block}.logo-sub{letter-spacing:.2em;text-transform:uppercase;color:var(--logo-sub);font:600 9.5px/1.3 Fira Code,ui-monospace,SFMono-Regular,Menlo,monospace;display:none}.brand--foot{gap:.8rem;margin:0}.brand--foot .logo-badge{width:48px;height:48px}.brand--foot .logo-name{font-size:15px}.brand--foot .logo-name span{display:inline}.brand--foot .logo-sub{display:block}.top{z-index:50;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}.top-in{align-items:center;gap:.5rem;min-height:64px;display:flex;position:relative}.top-act{align-items:center;gap:.4rem;display:flex}.nav{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;padding:.5rem 1.25rem 1rem;display:none;position:absolute;top:100%;left:-1.25rem;right:-1.25rem}.nav.is-open{display:flex}.nav a{border-bottom:1px solid var(--line);padding:.8rem 0;font-weight:600;text-decoration:none}.nav a:last-child{border-bottom:0}.nav .nav-lang{color:var(--teal)}@media (width<=420px){.lang-btn{display:none}.brand{gap:.45rem}.logo-badge{width:30px;height:30px}.logo-name{font-size:10.5px}.icon-btn{width:36px;height:36px}.btn-sm{padding:.5rem .75rem;font-size:.85rem}.top-act{gap:.3rem}}@media (width>=860px){.brand{gap:.75rem}.logo-badge{width:44px;height:44px}.logo-name{font-size:15px}.logo-name span{display:inline}.logo-sub{display:block}.top-in{min-height:80px}}@media (width>=1100px){.menu-btn,.nav .nav-lang{display:none}.nav{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex-direction:row;gap:.15rem;margin-right:.75rem;padding:.3rem;display:flex;position:static}.nav a{border:0;border-radius:999px;padding:.45rem .9rem;font-size:.95rem;font-weight:500}.nav a:hover{background:var(--tint)}}.hero{background:radial-gradient(60rem 30rem at 88% -12%,#0091c629,#0000 62%),radial-gradient(42rem 26rem at 4% -6%,#00a6931f,#0000 60%);padding:clamp(2rem,5vw,4rem) 0 0;overflow-x:clip}.hero-in{grid-template-columns:minmax(0,1fr);gap:2.5rem;display:grid}.hero-copy{z-index:1;position:relative;container-type:inline-size}.hero h1{font-size:clamp(2.1rem,min(15cqi,1.1rem + 5.4vw),4.9rem);line-height:.98}html[lang=es] .hero h1{font-size:clamp(2rem,min(12.4cqi,1.1rem + 5.4vw),4.9rem)}.hero-sub{color:var(--muted);max-width:31rem;margin-top:1.4rem;font-size:clamp(1.05rem,1rem + .35vw,1.2rem)}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:1.9rem;display:flex}.stage{background:var(--stage);min-width:0;color:var(--on-stage);border-radius:var(--r);--focus:#0f0;--stage-h:clamp(280px, 62vw, 420px);padding:.75rem;position:relative}.stage-tabs{scrollbar-width:none;gap:.25rem;padding:.15rem;display:flex;overflow-x:auto}.stage-tabs::-webkit-scrollbar{display:none}.stage-tabs [role=tab]{color:#b9c6d1;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:.5rem;min-height:42px;padding:.4rem .95rem;font-size:.925rem;font-weight:500;display:inline-flex}.stage-tabs [role=tab]:hover{color:#fff}.stage-tabs [role=tab][aria-selected=true]{color:#14212c;background:#fff;font-weight:600}.stage-tabs .dot{box-shadow:0 0 0 3px #00ff002e}.stage-panel{justify-items:center;gap:1rem;padding:1rem .5rem;display:grid}.stage-shot{width:100%;height:var(--stage-h);--shot-h:var(--stage-h);place-items:center;display:grid}.btn-stage{color:#fff;background:#ffffff0f;border-color:#fff6;min-height:44px;padding:.55rem 1.25rem}.btn-stage:hover{background:#ffffff24;border-color:#fff}@media (prefers-reduced-motion:no-preference){.stage-panel:not([hidden]) .shot{animation:.28s ease-out both swap}@keyframes swap{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}@media (width>=980px){.hero-in{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:3.5rem}.stage{--stage-h:clamp(300px, 27vw, 380px)}}.shot{width:min(100%, calc(var(--shot-h,360px) * var(--ar)));flex:none;margin:0;position:relative}.shot-media{width:100%;height:auto;display:block}.shot--plain{box-shadow:var(--fr-shadow);max-width:var(--natural,none);border-radius:14px;overflow:hidden}.shot--browser{width:min(100%, calc((var(--shot-h,360px) - 31px) * var(--ar)));background:var(--fr-chrome);border:1px solid var(--fr-line);box-shadow:var(--fr-shadow);border-radius:10px;overflow:hidden}.shot--phone{width:min(100%, calc((var(--shot-h,360px) - 14px) * var(--ar) + 14px));background:var(--fr-phone);box-shadow:var(--fr-shadow);border-radius:28px;padding:7px}.shot--phone .shot-media,.shot--phone .screen{border-radius:21px}.fr-bar{align-items:center;gap:10px;padding:6px 12px;display:flex}.fr-bar:before{content:"";background:radial-gradient(circle at 4px 4px, var(--fr-dot) 3.5px, transparent 4px) 0 0 / 14px 8px repeat-x;flex:none;width:36px;height:8px}.fr-url{min-width:0;max-width:300px;font:500 11px/1.7 var(--font-body);color:var(--fr-url-ink);background:var(--fr-url-bg);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;flex:1;padding:0 12px;overflow:hidden}.screen{aspect-ratio:var(--ar);background:#fff;position:relative;overflow:hidden;container-type:inline-size}.il{font:400 2.15cqw/1.35 var(--font-body);color:#1c2422;text-align:left;position:absolute;inset:0;overflow:hidden}.il p,.il ul,.il ol,.il blockquote{margin:0;padding:0;list-style:none}.il i,.il s,.il u,.il em,.il b{font-style:normal;text-decoration:none}.il-tag{font:700 10px/1 var(--font-body);color:#fff;background:#111827cc;border-radius:4px;padding:4px 7px;position:absolute;bottom:6px;right:6px}.il-ap{background:#fafaf8;flex-direction:column;display:flex}.ap-bar{color:#6a6f6c;border-bottom:1px solid #e4e4df;align-items:center;gap:1.4em;padding:.9em 1.6em;font-size:.85em;display:flex}.ap-bar b{color:#1c2422;margin-right:auto;font-size:1.15em;font-weight:800}.ap-bar .on{color:#1c2422;font-weight:700}.ap-main{flex:1;grid-template-columns:1fr 32%;display:grid}.ap-doc{padding:1.6em 2em}.ap-doc i{background:#dcddd8;border-radius:.3em;height:.55em;margin:.75em 0;display:block}.ap-h{color:#1c2422;font:700 1.5em/1.2 ui-monospace,Menlo,monospace;margin-bottom:.8em!important}.ap-mark{background:#fff3c4;border-left:.25em solid #e0a800;border-radius:.2em;justify-content:space-between;align-items:center;padding:.5em .8em;font-size:.85em;font-weight:700;display:flex}.ap-mark small{color:#6b5600;font-weight:500}.ap-side{background:#fff;border-left:1px solid #e4e4df;padding:1.4em 1.2em}.ap-side p{color:#4a504d;border-radius:.45em;margin-bottom:.4em;padding:.65em .8em;font-size:.85em}.ap-side p.on{color:#fff;background:#1c2422;font-weight:700}.ap-mic{border:1px solid #e4e4df;border-radius:.6em;align-items:center;gap:.28em;margin-top:1.2em;padding:.7em .8em;display:flex}.ap-mic u{background:#d93a3a;border-radius:50%;flex:none;width:1.5em;height:1.5em;margin-right:.4em}.ap-mic s{background:#8a908d;border-radius:.2em;width:.28em;height:.6em}.ap-mic s:nth-child(3n){height:1.4em}.ap-mic s:nth-child(3n+1){height:1em}.stats-band{padding-top:clamp(3rem,7vw,5rem)}.stats{grid-template-columns:1fr 1fr;gap:1.75rem 1.5rem;display:grid}.stat{border-top:3px solid var(--dot-web);flex-direction:column;gap:.45rem;padding-top:.9rem;display:flex}.stat:nth-child(3n+2){border-top-color:var(--dot-mobile)}.stat:nth-child(3n){border-top-color:var(--coral)}.stat-v{font:700 clamp(1.5rem, 1rem + 2vw, 2.3rem) / 1.05 var(--font-head);letter-spacing:-.04em;white-space:nowrap;background:var(--grad-text);color:#0000;-webkit-background-clip:text;background-clip:text;align-self:flex-start;font-stretch:125%}.stat-l{color:var(--muted);max-width:16rem;font-size:.925rem;line-height:1.4}@media (width<=899px){.stats[data-n="5"] .stat:last-child,.stats[data-n="3"] .stat:last-child{grid-column:1/-1}}@media (width>=900px) and (width<=1250px){.stat-v{font-size:1.65rem}}@media (width>=900px){.stats{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:1.75rem}}.sec{padding:clamp(4.5rem,10vw,7.5rem) 0 0}.sec--wash-blue,.sec--wash-mint{margin-top:clamp(4.5rem,10vw,7.5rem);padding-bottom:clamp(4.5rem,10vw,7.5rem)}.sec--wash-blue{background:var(--wash-blue)}.sec--wash-mint{background:var(--wash-mint)}.sec-head{gap:1rem;margin-bottom:clamp(2rem,5vw,3rem);display:grid}.sec-head h2{font-size:clamp(1.9rem,1.1rem + 3.4vw,3.6rem)}.sec-head p{color:var(--muted);max-width:34rem;font-size:1.125rem}@media (width>=900px){.sec-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;gap:3rem}}.work-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;margin-bottom:2rem;display:flex}.filters{flex-wrap:wrap;gap:.4rem;display:flex}.chip{border:1.5px solid var(--line);background:0 0;border-radius:999px;align-items:center;min-height:42px;padding:.4rem 1rem;font-size:.925rem;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.count{color:var(--muted);font-size:.875rem}.index{display:none}.projs{gap:3.5rem;display:grid}.proj{gap:1.5rem;min-width:0;display:grid}.gallery{gap:.6rem;min-width:0;display:grid}.gallery-stage{--shot-h:300px;background:var(--matte-1);border-radius:var(--r);min-height:calc(var(--shot-h) + 2.5rem);place-items:center;padding:1.25rem;display:grid}.proj:nth-child(3n+2) .gallery-stage{background:var(--matte-2)}.proj:nth-child(3n) .gallery-stage{background:var(--matte-3)}.gallery-view{align-content:center;justify-items:center;gap:.85rem;width:100%;display:grid}.gallery-cap{color:var(--muted);text-align:center;text-wrap:balance;max-width:38rem;font-size:.875rem;line-height:1.45}.gallery-cap a{color:var(--ink);text-underline-offset:3px;white-space:nowrap;margin-left:.4em;font-weight:600}.thumbs{scrollbar-width:thin;gap:.5rem;padding:.2rem .15rem .45rem;display:flex;overflow-x:auto}.thumb{background:var(--tint);opacity:.75;border:2px solid #0000;border-radius:10px;flex:none;width:66px;height:48px;padding:0;position:relative;overflow:hidden}.thumb:hover{opacity:1}.thumb img{object-fit:cover;object-position:top;width:100%;height:100%;display:block}.thumb[aria-pressed=true]{border-color:var(--teal);opacity:1}.thumb--video:after{content:"";filter:drop-shadow(0 0 3px #000000b3);border:7px solid #0000;border-left:12px solid #fff;border-right-width:0;width:0;height:0;margin:auto;position:absolute;inset:0}.proj-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.4rem .9rem;font-size:.9rem;display:flex}.badge{color:var(--ink);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.badge .dot{background:var(--muted);opacity:.55}.badge--live .dot{background:var(--signal);opacity:1;box-shadow:0 0 0 3px #0f03}.badge--soon .dot,.badge--unreleased .dot{background:var(--coral);opacity:1}.badge--private .dot{background:var(--dot-ai);opacity:1}.badge--shipped .dot{background:var(--dot-web);opacity:1}.proj-name{margin-top:.6rem;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem)}.story{gap:1rem;margin-top:1.25rem;display:grid}.story dt{color:var(--teal);font-size:.95rem;font-weight:600;font-stretch:80%}.story-row--problem dt{color:var(--blue)}.story dd{margin-top:.15rem;line-height:1.5}.story-row--result dd{font-weight:600}.proj-role{color:var(--muted);margin-top:1.1rem;font-size:.9rem}.proj-role span{font-weight:600}.proj-cta{flex-wrap:wrap;align-items:center;gap:.6rem .75rem;margin-top:1.4rem;display:flex}.proj-note{color:var(--muted);font-size:.9rem}@media (width>=980px){.work-grid{grid-template-columns:minmax(250px,4fr) minmax(0,8fr);align-items:start;gap:2.5rem;display:grid}.work-grid.is-single{grid-template-columns:1fr}.index{border-top:1px solid var(--line);max-height:calc(100vh - 7.5rem);display:grid;position:sticky;top:6rem;overflow:auto}.index-item{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:1fr auto;align-items:center;gap:.15rem 1rem;padding:.95rem .9rem;display:grid;position:relative}.index-item:hover{background:var(--tint)}.index-name{letter-spacing:-.02em;font-size:1.08rem;font-weight:700;font-stretch:112%}.index-type{color:var(--muted);grid-column:1;font-size:.85rem}.index-item .badge{color:var(--muted);grid-area:1/2/3;font-size:.8rem;font-weight:500}.index-item[aria-current=true]{background:var(--stage-solid);color:#e8eef2}.index-item[aria-current=true]:before{content:"";background:linear-gradient(#0091c6,#00a693);width:5px;position:absolute;top:0;bottom:0;left:0}.index-item[aria-current=true] .index-type,.index-item[aria-current=true] .badge{color:inherit;opacity:.8}.projs{display:block}.proj{display:none}.proj.is-active:not([hidden]){display:grid}.gallery-stage{--shot-h:400px;padding:2rem}.story{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.5rem}.proj-name{font-size:2.6rem}}.svc-panel{background:var(--surface);border-radius:var(--r);overflow:hidden}.svcs{display:grid}.svc{border-top:1px solid var(--line);padding:clamp(1.5rem,4vw,2.75rem)}.svc:first-child{border-top:0}.svc-name{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.05rem);line-height:1.05}.svc-name:before{content:"";background:var(--dot-web);border-radius:3px;width:2.5rem;height:6px;margin-bottom:1.1rem;display:block}.svc--mobile .svc-name:before{background:var(--dot-mobile)}.svc--ai .svc-name:before{background:var(--dot-ai)}.svc-sum{color:var(--muted);max-width:30rem;margin-top:1rem}.svc-items{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.svc-items li{border:1.5px solid var(--ink);border-radius:999px;padding:.4rem .95rem;font-size:.95rem;font-weight:500}@media (width>=860px){.svcs{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.svc{border-top:0;border-left:1px solid var(--line)}.svc:first-child{border-left:0}}.also{background:var(--stage);color:var(--on-stage);gap:.75rem 2rem;padding:1.25rem clamp(1.5rem,4vw,2.75rem) 1.5rem;display:grid}.also-label{color:#7fd6cc;font-weight:600;font-stretch:80%}.also-list{gap:.75rem 2.5rem;display:grid}.also-list li{flex-direction:column;display:flex}.also-list strong{align-items:center;font-weight:600;display:inline-flex}.also-list span{color:#b9c6d1;font-size:.95rem}@media (width>=860px){.also{grid-template-columns:auto 1fr;align-items:baseline}.also-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}}.steps{gap:0;display:grid}.step{padding:0 0 2rem 3.5rem;position:relative}.step:before{content:"";background:linear-gradient(#0091c6,#00a693);width:2px;position:absolute;top:2.25rem;bottom:0;left:1.05rem}.step:last-child:before{display:none}.step-n{background:var(--grad);color:#fff;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;font-size:.95rem;font-weight:700;display:grid;position:absolute;top:0;left:0}.step:last-child .step-n{background:var(--coral);color:var(--on-coral)}.step-t{padding-top:.45rem;font-size:1.3rem;font-stretch:112%;line-height:1.15}.step-p{color:var(--muted);max-width:30rem;margin-top:.5rem;font-size:1rem;line-height:1.5}@media (width>=980px){.steps{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.step{padding:3.5rem 2rem 0 0}.step:before{background:linear-gradient(90deg,#0091c6,#00a693);width:auto;height:2px;inset:1.05rem 0 auto 2.25rem}}.jobs{display:grid}.job{border-top:1px solid color-mix(in srgb, var(--teal) 30%, var(--line));gap:.6rem 2.5rem;padding:1.6rem 0;display:grid}.job:last-child{padding-bottom:0}.job-when{font:700 1.15rem/1.2 var(--font-head);letter-spacing:-.02em;background:var(--grad-text);color:#0000;-webkit-background-clip:text;background-clip:text;place-self:start;font-stretch:112%}.job-title{letter-spacing:-.02em;font-size:1.3rem;font-stretch:112%;line-height:1.2}.job-org{letter-spacing:0;color:var(--muted);margin-bottom:.3rem;font-size:.95rem;font-weight:600;font-stretch:100%;display:block}.job-sum{color:var(--muted);max-width:42rem;margin-top:.6rem}.job-stack{flex-wrap:wrap;gap:.4rem;margin-top:.9rem;display:flex}.job-stack li{background:var(--surface);border-radius:999px;padding:.25rem .75rem;font-size:.85rem;font-weight:500}@media (width>=860px){.job{grid-template-columns:12rem minmax(0,1fr)}}.approach-band{background:var(--stage);color:var(--on-stage);--focus:#0f0;padding:clamp(3.5rem,8vw,6.5rem) 0}.approach{gap:2rem;display:grid}.quote{font:italic 300 clamp(1.9rem, 1.1rem + 3.4vw, 3.5rem) / 1.2 var(--font-nod);letter-spacing:-.015em;max-width:17ch;font-stretch:100%}.approach-p{color:#c3cfd9;gap:1.25rem;max-width:36rem;display:grid}@media (width>=900px){.approach{grid-template-columns:1.15fr 1fr;align-items:center;gap:4rem}}.partners{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1rem;display:grid}.partner{background:var(--wash-warm);border-radius:var(--r);border-left:6px solid var(--coral);padding:clamp(1.5rem,4vw,2.5rem)}.partner-rel{color:var(--muted);font-weight:600;font-stretch:80%}.partner-name{margin-top:.4rem;font-size:clamp(1.5rem,1.1rem + 1.8vw,2.3rem)}.partner-name a{text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:6px;align-items:center;gap:.5rem;text-decoration-thickness:3px;display:inline-flex}.partner-text{color:var(--muted);max-width:46rem;margin-top:1rem}.contact h2{max-width:14ch;font-size:clamp(2.1rem,1rem + 5vw,4.8rem)}.contact-lead{color:var(--muted);margin-top:1.25rem;font-size:1.125rem}.contact-box{background:var(--surface);border-radius:var(--r);flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin-top:2.25rem;padding:1.5rem;display:flex}.mail{font:700 clamp(1.1rem, .8rem + 1.7vw, 1.9rem) / 1.2 var(--font-head);letter-spacing:-.03em;text-decoration:underline;text-decoration-color:var(--teal);text-underline-offset:6px;overflow-wrap:anywhere;margin-right:auto;padding-block:.6rem;font-stretch:112%;text-decoration-thickness:3px}.social{flex-wrap:wrap;gap:.5rem 1.75rem;margin-top:1.5rem;display:flex}.social a{min-height:44px;color:var(--ink);text-underline-offset:4px;align-items:center;gap:.35rem;font-weight:600;display:inline-flex}.social a:hover{color:var(--teal)}@media (width>=860px){.contact-box{padding:2rem 2.5rem}}.foot{border-top:1px solid var(--line);color:var(--muted);margin-top:clamp(4rem,9vw,7rem);padding:1.5rem 0 2rem;font-size:.875rem}.foot-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 2rem;display:flex}.foot-ref{min-height:44px;color:var(--muted);text-underline-offset:3px;align-items:center;display:inline-flex}.foot-ref:hover{color:var(--ink)}.alter{--alter-a:#2ba6d6;--alter-m:#0d7ea8;--alter-b:#008673;--alter-sa:#0b5c82;--alter-sm:#074f6d;--alter-sb:#00594f;--alter-line:#072a3c;--alter-ring:#14212c;--alter-spark:#00a693;--alter-moon:#ff6b4a;--alter-blush:#ff9079;display:block;overflow:visible}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .alter{--alter-a:#3db4e2;--alter-m:#1389b3;--alter-b:#0a9a86;--alter-sa:#0d5f86;--alter-sm:#0a5573;--alter-sb:#06655a;--alter-line:#061f2d;--alter-ring:#e8eef2;--alter-spark:#7fe9dc}}:root[data-theme=dark] .alter{--alter-a:#3db4e2;--alter-m:#1389b3;--alter-b:#0a9a86;--alter-sa:#0d5f86;--alter-sm:#0a5573;--alter-sb:#06655a;--alter-line:#061f2d;--alter-ring:#e8eef2;--alter-spark:#7fe9dc}.alter .a-float,.alter .a-look,.alter .a-tilt,.alter .a-open,.alter .a-eye,.alter .a-brow,.alter .a-mouth-open,.alter .a-px,.alter .a-shadow,.alter .a-q,.alter .a-zz,.alter .a-spark{transform-box:fill-box;transform-origin:50%}.alter .a-ring{fill:var(--alter-ring);fill-rule:evenodd}.alter .a-outline{fill:none;stroke:var(--alter-line);stroke-width:2.4px;stroke-linecap:round}.alter .a-rim{fill:none;stroke:#fff;stroke-width:3px;stroke-linecap:round;opacity:.55}.alter .a-rim-dot{fill:#fff;opacity:.6}.alter .a-sclera{fill:#fff;stroke:var(--alter-line);stroke-width:1.2px}.alter .a-sclera-shade{fill:#c6dbe9}.alter .a-iris{transform:translate(calc(var(--px,0)*1px),calc(var(--py,0)*1px));transition:transform .12s ease-out}.alter .a-face{transform:translate(calc(var(--fx,0)*1px),calc(var(--fy,0)*1px));transition:transform .18s ease-out}.alter .a-look{transform:rotate(calc(var(--tilt,0)*1deg));transition:transform .25s ease-out}.alter.is-sleeping .a-face,.alter.is-sleeping .a-look,.alter.is-thinking .a-face,.alter.is-thinking .a-look{transform:none}.alter .a-hl{fill:#fff}.alter .a-line,.alter .a-lash,.alter .a-lid-low,.alter .a-closed{fill:none;stroke:var(--alter-line);stroke-linecap:round;stroke-linejoin:round}.alter .a-line{stroke-width:2.8px}.alter .a-lash{stroke-width:4.2px}.alter .a-lid-low{stroke-width:1.6px;opacity:.75}.alter .a-closed{stroke-width:4px}.alter .a-blush{fill:none;stroke:var(--alter-blush);stroke-width:1.9px;stroke-linecap:round}.alter .a-sign-out{fill:none;stroke:var(--alter-line);stroke-width:8.5px;stroke-linecap:round;stroke-linejoin:round}.alter .a-sign-in{fill:none;stroke:#fff;stroke-width:4.4px;stroke-linecap:round;stroke-linejoin:round}.alter .a-moon{fill:var(--alter-moon);stroke:var(--alter-line);stroke-width:2px}.alter .a-spark{fill:var(--alter-spark)}.alter .a-shadow{fill:#000;opacity:.13}.alter .a-extra{fill:var(--alter-ring);font:800 22px/1 system-ui,sans-serif}.alter .a-chev,.alter .a-closed,.alter .a-mouth-open,.alter .a-mouth-slash,.alter .a-mouth-flat,.alter .a-mouth-wavy,.alter .a-blush,.alter .a-q,.alter .a-zz,.alter .a-moons,.alter.is-happy .a-open,.alter.is-sleeping .a-open,.alter.is-happy .a-brow{display:none}.alter.is-happy .a-chev,.alter.is-happy .a-blush,.alter.is-happy .a-mouth-slash{display:block}.alter.is-happy .a-mouth-smile,.alter.is-speaking .a-mouth-smile,.alter.is-unsure .a-mouth-smile,.alter.is-sleeping .a-mouth-smile,.alter.is-thinking .a-mouth-smile{display:none}.alter.is-speaking .a-mouth-open,.alter.is-unsure .a-mouth-wavy,.alter.is-unsure .a-q,.alter.is-thinking .a-mouth-flat,.alter.is-thinking .a-moons,.alter.is-sleeping .a-closed,.alter.is-sleeping .a-mouth-flat,.alter.is-sleeping .a-zz{display:block}.alter.is-thinking .a-iris{transform:translate(-2.2px,-3px)}.alter.is-unsure .a-iris{transform:translate(2.6px,-1px)}.alter.is-listening .a-eye{transform:scale(1.1)}.alter.is-listening .a-brow{transform:translateY(-2.6px)}.alter.is-unsure .a-brow-r{transform:translateY(-4px)rotate(8deg)}.alter.is-sleeping .a-brow{transform:translateY(1.6px)}.alter .a-eye,.alter .a-brow{transition:transform .2s}@media (prefers-reduced-motion:no-preference){.alter .a-float{animation:3.6s ease-in-out infinite a-float}.alter .a-shadow{animation:3.6s ease-in-out infinite a-shadow}.alter .a-open{animation:4.8s infinite a-blink}.alter .a-eye-r .a-open{animation-delay:40ms}.alter .a-spark{animation:2.8s ease-in-out infinite a-twinkle;animation-delay:var(--d,0s)}.alter.is-listening .a-tilt{transition:transform .25s;transform:rotate(-5deg)}.alter.is-unsure .a-tilt{transition:transform .25s;transform:rotate(6deg)}.alter.is-speaking .a-mouth-open{animation:.34s ease-in-out infinite a-talk}.alter.is-speaking .a-float{animation:.68s ease-in-out infinite a-bob}.alter.is-happy .a-float{animation:.7s cubic-bezier(.3,.7,.3,1) 2 a-hop,3.6s ease-in-out 1.4s infinite a-float}.alter.is-thinking .a-px{animation:1.9s ease-in-out infinite a-px;animation-delay:var(--d)}.alter.is-sleeping .a-float{animation-duration:6s}.alter.is-sleeping .a-zz{animation:2.6s ease-in-out infinite a-zz}.alter.is-unsure .a-q{animation:.4s cubic-bezier(.3,1.6,.5,1) both a-pop}@keyframes a-float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes a-shadow{0%,to{opacity:.13;transform:scaleX(1)}50%{opacity:.09;transform:scaleX(.9)}}@keyframes a-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.08)}}@keyframes a-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.55)}}@keyframes a-talk{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1.15)}}@keyframes a-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5px)}}@keyframes a-hop{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}}@keyframes a-px{0%,to{opacity:var(--o,1);transform:translate(0)}50%{transform:translate(calc(var(--dx)*1px),calc(var(--dy)*1px));opacity:.5}}@keyframes a-zz{0%{opacity:0;transform:translateY(4px)}40%{opacity:1}to{opacity:0;transform:translate(6px,-8px)}}@keyframes a-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}}@media (prefers-reduced-motion:reduce){.alter .a-moons{display:none!important}}.alter-dock{z-index:60;width:var(--alter-size,68px);height:var(--alter-size,68px);transform:translate(var(--alter-x,0px), var(--alter-y,0px));visibility:hidden;position:fixed;top:0;left:0}.alter-dock.is-ready{visibility:visible}.alter-dock.is-moving{transition:transform .55s cubic-bezier(.3,.8,.3,1),width .55s,height .55s}.alter-toggle{-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:100%;height:100%;padding:0;display:block;position:relative}.alter-toggle:focus-visible{outline-offset:2px;border-radius:50%}.alter-figure{filter:drop-shadow(0 6px 10px #08101838);width:100%;height:100%;display:block}.alter-figure .alter{width:100%;height:100%}.alter-dock.is-perched .alter-figure .a-shadow{opacity:0}.alter-toggle:before{content:"";z-index:-1;border:2px solid var(--teal);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:22%}.alter-dock:not(.is-met):not(.is-open):not(.is-min) .alter-toggle:before{opacity:.4}@media (prefers-reduced-motion:no-preference){.alter-dock:not(.is-met):not(.is-open):not(.is-min) .alter-toggle:before{animation:2.8s ease-out 1.2s infinite alter-ping}@keyframes alter-ping{0%{opacity:.7;transform:scale(.95)}65%,to{opacity:0;transform:scale(1.8)}}}.alter-dock.is-min .alter-figure{opacity:.88}.alter-dock.is-min .alter-hint,.alter-dock.is-min .alter-minchip{display:none}.alter-minchip{border:1.5px solid var(--line);background:var(--surface);width:24px;height:24px;color:var(--ink);opacity:0;border-radius:50%;place-items:center;padding:0;transition:opacity .15s;display:grid;position:absolute;top:-6px;left:-6px}.alter-minchip:after{content:"";position:absolute;inset:-10px}.alter-dock:hover .alter-minchip,.alter-minchip:focus-visible{opacity:1}.alter-dock.is-open .alter-minchip{display:none}@media (hover:none){.alter-minchip{opacity:.9}}.alter-hint{white-space:nowrap;background:var(--surface);color:var(--ink);border:1.5px solid var(--line);font:500 .875rem/1.2 var(--font-body);border-radius:14px 14px 4px;padding:.45rem .75rem;position:absolute;top:50%;right:calc(100% + 6px);transform:translateY(-50%);box-shadow:0 10px 22px -14px #08101880}.alter-dock.is-open .alter-hint,.alter-dock.is-met .alter-hint{display:none}.alter-panel{background:var(--surface);width:min(370px,100vw - 24px);max-height:min(560px,100vh - 150px);color:var(--ink);border:1.5px solid var(--line);border-radius:20px 20px 6px;grid-template-rows:auto minmax(0,1fr) auto auto auto;display:grid;position:absolute;bottom:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 24px 50px -22px #0810188c}.alter-panel[hidden]{display:none}.alter-panel:focus{outline:none}.alter-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem .8rem .7rem 1.1rem;display:flex}.alter-head p{line-height:1.25;display:grid}.alter-head-btns{gap:.4rem;display:flex}.alter-head strong{font:700 1.05rem/1.2 var(--font-head);letter-spacing:-.02em;font-stretch:112%}.alter-head span{color:var(--teal);font-size:.8rem;font-weight:600}.alter-close{border:1px solid var(--line);background:0 0;border-radius:50%;place-items:center;width:36px;height:36px;display:inline-grid}.alter-close:hover{border-color:var(--ink)}.alter-log{overscroll-behavior:contain;align-content:start;gap:.6rem;min-height:5.5rem;padding:1rem 1.1rem .6rem;display:grid;overflow-y:auto}.alter-msg{max-width:92%;font-size:.95rem;line-height:1.45}.alter-msg--bot{justify-self:start}.alter-msg--me{background:var(--ink);color:var(--bg);border-radius:14px 14px 4px;justify-self:end;padding:.5rem .8rem}.alter-act{background:var(--grad);color:#fff;min-height:38px;font:600 .875rem/1.1 var(--font-body);border:0;border-radius:999px;align-items:center;gap:.4rem;margin-top:.6rem;padding:.4rem .9rem;text-decoration:none;display:inline-flex}.alter-act:hover{filter:brightness(1.12)}.alter-act--call{background:var(--coral);color:var(--on-coral)}.alter-dots i{background:var(--muted);border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.alter-chips{flex-wrap:wrap;gap:.3rem;padding:.4rem 1.1rem .7rem;display:flex}.alter-chips:empty{display:none}.alter-chip{font:500 .75rem/1.2 var(--font-body);border:1px solid var(--line);text-align:left;background:0 0;border-radius:999px;min-height:26px;padding:.28rem .65rem}.alter-chip:hover{border-color:var(--teal)}.alter-chip:disabled,.alter-send:disabled{opacity:.5;cursor:default}.alter-form{gap:.4rem;padding:0 .8rem .6rem 1.1rem;display:flex}.alter-form input{border:1.5px solid var(--line);background:var(--bg);min-width:0;min-height:44px;color:var(--ink);font:400 1rem/1.2 var(--font-body);border-radius:999px;flex:1;padding:0 .9rem}.alter-form input::placeholder{color:var(--muted)}.alter-form input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.alter-send{background:var(--ink);width:44px;height:44px;color:var(--bg);border:0;border-radius:50%;flex:none;place-items:center;display:inline-grid}.alter-fine{color:var(--muted);padding:0 1.1rem .8rem;font-size:.75rem;line-height:1.35}.proj.is-pointed .gallery-stage,.sec.is-pointed .sec-head h2{outline:3px solid var(--teal);outline-offset:6px;border-radius:var(--r)}@media (prefers-reduced-motion:no-preference){.alter-panel:not([hidden]){transform-origin:100% 100%;animation:.22s ease-out both alter-in}.alter-dots i{animation:1.1s ease-in-out infinite alter-dots}.alter-dots i:nth-child(2){animation-delay:.15s}.alter-dots i:nth-child(3){animation-delay:.3s}@keyframes alter-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:none}}@keyframes alter-dots{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}}@media (width<=520px){.alter-hint{padding:.4rem .6rem;font-size:.8rem}.alter-panel{max-height:min(520px,100dvh - 120px)}}@media (width>=980px){.alter-panel{height:calc(100vh - var(--alter-size,76px) - 40px);height:calc(100dvh - var(--alter-size,76px) - 40px);max-height:none}.hero{padding-top:5rem}}@media print{.alter-dock{display:none}}
