:root{--bg:#101421;--sky-top:#0b1020;--sky-bottom:#1b2540;--text:#e9ecf4;--text-soft:#a9b1c6;--text-faint:#8d96ad;--eyebrow:#ff6b95;--accent:#ffcb47;--link:#8fb4ff;--mark-bg:#ffcb472e;--hover:#8fb4ff0f;--pill-bg:#8fb4ff1f;--pill-text:#a9c5ff;--line:#ffffff14;--m-far:#26314f;--m-mid:#1a2238;--m-near:#141a2c;--m-front:var(--bg);--snow:#c9d3ee;--snow-shade:#8f9bc0;--orb:#f4f1e6;--orb-glow:#f4f1e60b;--stars:1;--ex-surface:#161d31;--ex-surface-2:#1d2640;--ex-stroke:#3a4668;--ex-ink:#c3cbe0;--ex-pink:#ff6b95;--ex-gold:#ffcb47;--ex-blue:#8fb4ff;--ex-green:#5fd3a2;--ex-violet:#b79cff;--ex-shadow:0 1px 0 #ffffff0a inset, 0 18px 40px -24px #000000b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#fdf8f1;--sky-top:#ffd7b0;--sky-bottom:#fff1e0;--text:#1e2233;--text-soft:#4c5368;--text-faint:#636880;--eyebrow:#c21f57;--accent:#935f00;--link:#2f5fd0;--mark-bg:#ffba3b59;--hover:#2f5fd00d;--pill-bg:#2f5fd017;--pill-text:#2f5fd0;--line:#1e22331a;--m-far:#b8a6c9;--m-mid:#d7a99b;--m-near:#e9c3a4;--m-front:var(--bg);--snow:#fff;--snow-shade:#d6cbe6;--orb:#ff9f43;--orb-glow:#ff9f4338;--stars:0;--ex-surface:#fffdf9;--ex-surface-2:#f6ede1;--ex-stroke:#dccfbf;--ex-ink:#4c5368;--ex-pink:#d6336c;--ex-gold:#d99100;--ex-blue:#2f5fd0;--ex-green:#0e7a4e;--ex-violet:#6b46c1;--ex-shadow:0 1px 0 #fffc inset, 0 18px 40px -26px #78481459;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:17px/1.7 Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,Segoe UI,system-ui,sans-serif;transition:background-color .4s,color .4s}a{color:var(--link);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}.logo,h1,h2,h3{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Figtree,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,Figtree,system-ui,sans-serif}.wrap{max-width:1120px;margin:0 auto;padding-inline:24px}.sky{background:linear-gradient(var(--sky-top),var(--sky-bottom));transition:background .5s}.case-hero,.footer,.hero,.sky,.topbar{position:relative}.topbar{z-index:2;gap:32px;padding-block:28px;display:flex}.logo,.topbar{align-items:center}.logo{letter-spacing:-.02em;color:var(--link);gap:4px;font-size:1.45rem;font-weight:800;display:inline-flex}.btn:hover,.case-next a:hover,.icon-btn:hover,.logo:hover,.skip{text-decoration:none}.logo-peak{fill:none;width:22px;height:16px;stroke:var(--accent);stroke-width:2.2px;stroke-linejoin:round;stroke-linecap:round;transition:transform .3s cubic-bezier(.3,1.6,.5,1)}.logo:hover .logo-peak{transform:translateY(-3px)rotate(-8deg)}.nav{gap:26px;display:flex}.nav a{color:var(--text);font-weight:500}.actions{gap:6px;margin-left:auto;display:flex}.icon-btn{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.icon-btn:hover{background:var(--hover)}.theme-toggle .rays{transform-origin:12px 12px;transition:opacity .3s,transform .5s}.theme-toggle .mask-c{transition:transform .5s cubic-bezier(.3,1.4,.5,1)}.theme-toggle svg.dark .rays{opacity:0;transform:rotate(-45deg)scale(.6)}.theme-toggle svg:not(.dark) .mask-c{transform:translate(10px,-10px)}.theme-toggle .core{transition:r .4s}.theme-toggle svg:not(.dark) .core{r:5}.hero{z-index:1;-moz-column-gap:48px;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:48px;padding-block:56px 0;display:grid}.hero-portrait{width:calc(clamp(220px,24vw,300px))}.portrait{aspect-ratio:4/5;background:var(--m-far);border-radius:18px;justify-content:center;align-items:flex-end;margin:0;transition:background .5s;display:flex;overflow:hidden}.portrait img{width:100%;height:auto;display:block}.hello{color:var(--text-soft);margin:0;font-size:1.25rem;font-weight:500}.hero h1{letter-spacing:-.035em;margin:4px 0 22px;font-size:calc(clamp(3rem,9vw,6.2rem));line-height:.95}.wave{transform-origin:70% 80%;vertical-align:.25em;margin-left:.2em;font-size:.55em;display:inline-block}.hero h1:hover .wave{animation:1s wave}.tagline{max-width:34ch;color:var(--text-soft);margin:0;font-size:calc(clamp(1.15rem,2.2vw,1.4rem))}.tagline mark{background:linear-gradient(transparent 55%,var(--mark-bg) 55%);color:var(--text);padding:0 .1em}.place{color:var(--text);font-weight:600}.hero-cta{flex-wrap:wrap;gap:12px;margin:26px 0 0;display:flex}.btn{background:var(--accent);color:var(--bg);border:2px solid var(--accent);border-radius:10px;align-items:center;padding:10px 18px;font-weight:700;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn.ghost{color:var(--text);border-color:var(--line);background:0 0}.btn.ghost:hover{border-color:var(--text-soft)}:root:not([data-theme=light]) .btn:not(.ghost){color:#1a1300}.mountains{aspect-ratio:1440/460;width:100%;height:auto;min-height:200px;margin-top:-40px;display:block}.mountains .m-far{fill:var(--m-far);transition:fill .5s}.mountains .m-mid{fill:var(--m-mid);transition:fill .5s}.mountains .m-near path{fill:var(--m-near);transition:fill .5s}.mountains .m-front{fill:var(--m-front);transition:fill .5s}.mountains .snow{fill:var(--snow);transition:fill .5s}.mountains .snow-shade{fill:var(--snow-shade);transition:fill .5s}.mountains .stars circle{fill:#fff;opacity:calc(var(--stars) * .8);animation:3.2s ease-in-out infinite twinkle;animation-delay:var(--d,0s);transition:opacity .6s}.mountains .orb-body{fill:var(--orb);transition:fill .5s}.mountains .moon-bite,.mountains .orb{transition:transform .8s cubic-bezier(.3,1.2,.4,1)}:root[data-theme=light] .mountains .moon-bite{transform:translate(120px,-120px)}.ground{background:var(--bg);transition:background .4s}.layout{grid-template-columns:minmax(0,1fr) 300px;gap:80px;padding-block:24px 40px;display:grid}.main>section{margin-bottom:72px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--eyebrow);margin:0 0 22px;font-family:Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,system-ui,sans-serif;font-size:.82rem;font-weight:700}.prose{color:var(--text-soft);max-width:62ch;margin:0 0 16px}.prose strong{color:var(--text);font-weight:600}.exp-list{gap:6px;margin:0 0 18px;padding:0;list-style:none;display:grid}.exp{border-radius:10px;grid-template-columns:140px 1fr;gap:20px;margin-inline:-18px;padding:18px;transition:background .2s;display:grid}.exp:hover{background:var(--hover)}.exp-period{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding-top:5px;font-size:.78rem;font-weight:600}.exp h3{margin:0 0 6px;font-size:1.12rem}.exp-role{margin-top:2px;font-family:Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,system-ui,sans-serif;font-size:1rem;font-weight:500;display:block}.exp p,.exp-role{color:var(--text-soft)}.exp p{margin:0 0 12px;font-size:.97rem}.pills{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pills li{background:var(--pill-bg);color:var(--pill-text);border-radius:999px;padding:3px 12px;font-size:.8rem;font-weight:600}.pills.outline li{border:1px solid var(--line);color:var(--text);background:0 0;border-radius:8px;padding:5px 12px;font-weight:500}.arrow-link{color:var(--text);gap:6px;font-weight:700;display:inline-flex}.arrow-link span{transition:transform .2s}.arrow-link:hover span{transform:translate(3px,-3px)}.project{margin-bottom:44px}.project-year{color:var(--text-faint);letter-spacing:.08em;margin:0;font-size:.78rem;font-weight:600}.project h3{letter-spacing:-.02em;margin:2px 0;font-size:1.55rem}.project-sub{color:var(--accent);margin:0 0 12px;font-weight:600}.project>p:not(.project-sub):not(.project-year){color:var(--text-soft);max-width:62ch;margin:0 0 12px}.how{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:4px 0;font-weight:700;display:inline-flex}.how-icon{background:var(--pill-bg);width:22px;height:22px;color:var(--pill-text);border-radius:6px;place-items:center;line-height:1;transition:transform .3s cubic-bezier(.3,1.6,.5,1);display:grid}.how-icon.open{transform:rotate(45deg)}.project-detail{border-left:3px solid var(--accent);margin-top:12px;padding:4px 0 4px 20px}.project-detail ol{color:var(--text-soft);margin:0 0 12px;padding-left:20px}.project-detail li{margin-bottom:4px}.project-detail li::marker{color:var(--accent);font-weight:700}.result{margin:0 0 6px;font-weight:600}.result span{text-transform:uppercase;letter-spacing:.14em;color:var(--eyebrow);margin-right:8px;font-size:.72rem}.tools-line{color:var(--text-faint);margin:0 0 8px;font-size:.9rem}.project-title{color:var(--text)}.project-title:hover{color:var(--link)}.project .arrow-link{margin-top:2px}.sky-compact{padding-bottom:0}.case-hero{z-index:1;padding-block:40px 70px}.back{color:var(--text-soft);margin-bottom:28px;font-weight:600;display:inline-block}.case-hero h1{letter-spacing:-.03em;margin:4px 0 14px;font-size:calc(clamp(2.4rem,6vw,4.2rem));line-height:1}.case-sub{color:var(--accent);max-width:40ch;margin:0;font-size:calc(clamp(1.1rem,2vw,1.3rem));font-weight:600}.sky-edge{width:100%;height:50px;margin-top:-50px;display:block}.sky-edge path{fill:var(--bg);transition:fill .4s}.case{grid-template-columns:minmax(0,1fr) 280px;gap:80px;padding-block:40px 56px;display:grid}.case-main>section{margin-bottom:52px}.lead{font-size:1.12rem}.case-steps{gap:18px;margin:0;padding:0;list-style:none;display:grid}.case-steps li{grid-template-columns:44px 1fr;align-items:baseline;gap:12px;display:grid}.case-steps .step-n{color:var(--accent);font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;font-size:1.3rem;font-weight:800}.case-steps p{color:var(--text-soft);max-width:60ch;margin:0}.case-result{letter-spacing:-.02em;max-width:30ch;margin:0;font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;font-size:calc(clamp(1.3rem,2.6vw,1.75rem));font-weight:800;line-height:1.25}.case-side{flex-direction:column;gap:40px;display:flex}.muted{color:var(--text-soft);margin:0;font-size:.95rem}.case-next{padding-block:8px 72px}.case-next a{color:var(--text);flex-direction:column;gap:4px;display:inline-flex}.case-next .eyebrow{margin:0}.case-next-title{letter-spacing:-.02em;font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;font-size:calc(clamp(1.5rem,3vw,2.2rem));font-weight:800}.case-next a:hover .case-next-title{color:var(--link)}@media (width<=900px){.case{grid-template-columns:1fr;gap:0}}.legal{color:var(--text-soft);padding-block:40px 80px}.legal>*{max-width:760px}.legal-intro{font-size:1.08rem}.legal h2,.legal h3,.legal strong,.legal th,.legal-intro,.side-block strong{color:var(--text)}.legal h2{letter-spacing:-.01em;margin:44px 0 12px;font-size:1.35rem}.legal h3{margin:24px 0 8px;font-family:Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,system-ui,sans-serif;font-size:1.05rem}.legal li,.legal p{line-height:1.7}.legal ul{padding-left:20px}.legal li{margin-bottom:6px}.legal li::marker{color:var(--accent)}.legal code{background:var(--pill-bg);color:var(--pill-text);border-radius:5px;padding:1px 6px;font-size:.88em}.legal table{border-collapse:collapse;width:100%;margin:12px 0 16px;font-size:.95rem;display:block;overflow-x:auto}.legal td,.legal th{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 12px}.legal th{font-weight:700}.footer-links{gap:18px;display:inline-flex}.contact p,.footer-links a,.side-block p{color:var(--text-soft)}.side{flex-direction:column;gap:48px;padding-top:4px;display:flex}.side-block p{margin:0;font-size:.97rem}.arrows{gap:12px;margin:0;padding:0;list-style:none;display:grid}.arrows li{grid-template-columns:22px 1fr;font-family:Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,system-ui,sans-serif;font-size:.97rem;font-weight:600;line-height:1.35;display:grid}.arrows li span{color:var(--text-faint);transition:transform .2s}.arrows li:hover span{color:var(--accent);transform:translate(4px)}.arrows a{color:var(--text)}.contact{text-align:center;padding-block:40px 80px}.contact h2{letter-spacing:-.03em;margin:0 0 12px;font-size:calc(clamp(2rem,5vw,3rem))}.contact p{max-width:52ch;margin:0 auto 16px}.contact .mail a{color:var(--accent);font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;font-size:calc(clamp(1.2rem,3vw,1.6rem));font-weight:700}.footer{background:var(--m-near);transition:background .5s}.footer-hills{width:100%;height:60px;display:block;position:absolute;bottom:100%;left:0}.footer-hills path{fill:var(--m-near);transition:fill .5s}.footer-inner{color:var(--text-soft);flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:28px 36px;font-size:.88rem;display:flex}.skip{z-index:50;background:var(--accent);color:var(--bg);border-radius:12px;padding:10px 16px;font-weight:700;transition:top .15s;position:absolute;top:-60px;left:16px}.skip:focus{outline:3px solid var(--link);outline-offset:2px;top:12px}#contenido:focus{outline:none}.explainer{padding-block:36px 8px}.ex-h{letter-spacing:-.03em;max-width:22ch;margin:0 0 18px;font-size:calc(clamp(1.9rem,4.4vw,2.9rem));line-height:1.05}.ex-lead p{color:var(--text-soft);max-width:62ch;margin:0 0 14px;font-size:calc(clamp(1.06rem,1.8vw,1.2rem))}.ex-lead strong{color:var(--text);font-weight:600}.ex-steps{gap:calc(clamp(80px,11vw,136px));margin:64px 0 0;padding:0;list-style:none;display:grid}.ex-step{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:56px;display:grid}.ex-step.is-flip .ex-text{order:2}.ex-step.is-wide,.ex-step.no-art{grid-template-columns:minmax(0,1fr);gap:28px}.ex-step.is-wide .ex-text{max-width:66ch}.ex-fallback .ex-steps{gap:36px;margin-top:40px}.ex-fallback .ex-title{margin:12px 0 6px;font-size:1.3rem}.ex-num{background:var(--accent);width:46px;height:46px;color:var(--bg);border-radius:14px;place-items:center;margin:0;font:800 1.05rem/1 Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;display:inline-grid}.ex-title{letter-spacing:-.02em;margin:16px 0 12px;font-size:calc(clamp(1.5rem,2.8vw,2rem));line-height:1.12}.ex-body p{color:var(--text-soft);max-width:56ch;margin:0 0 14px}.ex-body strong{color:var(--text);font-weight:600}.ex-body ul{color:var(--text-soft);margin:0 0 14px;padding-left:20px}.ex-body li{margin-bottom:8px}.ex-body li::marker{color:var(--accent)}.ex-art-wrap{flex-direction:column;align-items:flex-end;gap:10px;min-width:0;display:flex}.ex-art{border:1px solid var(--line);background:var(--ex-surface);border-radius:22px;width:100%;margin:0;padding:calc(clamp(14px,2.6vw,28px));transition:background .4s;position:relative}.ex-art svg:not([width]){width:100%;height:auto;display:block;overflow:visible}.ex-art svg text{font-family:Figtree,Figtree Fallback\: Segoe UI,Figtree Fallback\: Helvetica Neue,Figtree Fallback\: Arial,Figtree Fallback\: Noto Sans,Figtree Fallback\: Liberation Sans,system-ui,sans-serif}.ex-caption{color:var(--text-faint);text-align:center;margin-top:12px;font-size:.86rem;line-height:1.45}.ex-replay{border:1px solid var(--line);color:var(--text-soft);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:5px 13px;font-size:.85rem;font-weight:600;transition:border-color .2s,color .2s;display:inline-flex}.ex-replay:hover{color:var(--text);border-color:var(--text-faint)}.ex-replay svg{transition:transform .4s}.ex-replay:hover svg{transform:rotate(-200deg)}.ex-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin:0 0 22px;display:flex}.ex-top .eyebrow{margin:0}.ex-motion{border:1px solid var(--line);background:var(--ex-surface);color:var(--text-soft);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:6px 14px;font-size:.85rem;font-weight:700;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.ex-motion:hover{color:var(--text);border-color:var(--text-faint)}.ex-motion[aria-pressed=true]{color:var(--text);border-color:var(--accent);background:var(--mark-bg)}.ex-seg{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.ex-btn{border:2px solid var(--line);background:var(--ex-surface-2);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:8px 15px;font-size:.92rem;font-weight:700;line-height:1.2;transition:transform .2s cubic-bezier(.3,1.6,.5,1),background .2s,border-color .2s,color .2s;display:inline-flex}.ex-btn:hover{border-color:var(--accent);transform:translateY(-2px)}.ex-btn:active{transform:translateY(1px)scale(.98)}.ex-btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg)}.ex-btn:disabled{opacity:.55;cursor:default;transform:none}.ex-btn:focus-visible,.ex-focus:focus-visible,.ex-motion:focus-visible,.ex-replay:focus-visible,.techie summary:focus-visible{outline:3px solid var(--link);outline-offset:3px}.ex-sim-badge{border:1.5px dashed var(--eyebrow);color:var(--eyebrow);border-radius:999px;align-items:center;gap:8px;margin:0;padding:5px 13px;font-size:.82rem;font-weight:700;line-height:1.3;display:inline-flex}.ex-live{text-align:center;min-height:1.6em;color:var(--text);margin:12px 0 0;font-weight:600}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ex-chain{border:1px solid var(--line);background:var(--ex-surface);border-radius:22px;margin-top:44px;padding:20px calc(clamp(10px,3vw,28px)) 18px}.ex-chain-label{text-align:center;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);margin:0 0 14px;font-size:.76rem;font-weight:700}.ex-chain-list{--dot:4.6s;grid-template-columns:repeat(var(--n),minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.ex-chain-list:before{content:"";top:27px;left:calc(50% / var(--n));right:calc(50% / var(--n));background:repeating-linear-gradient(90deg,var(--ex-stroke) 0 7px,transparent 7px 13px);height:2px;position:absolute}.ex-chain-list:after{content:"";top:23px;left:calc(-5px + 50% / var(--n));background:var(--ex-gold);opacity:0;width:10px;height:10px;animation:ex-chain-travel var(--dot) linear infinite;border-radius:50%;position:absolute}.ex-chain-item{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex;position:relative}.ex-chain-icon{border:2px solid var(--line);background:var(--ex-surface-2);width:56px;height:56px;color:var(--text);animation:ex-chain-ping var(--dot) ease-out infinite;animation-delay:calc(var(--i) * var(--dot) / (-1 + var(--n)));border-radius:18px;place-items:center;display:grid}.ex-chain-icon svg{width:34px;height:34px;overflow:visible}.ex-chain-text{color:var(--text-soft);font-size:.84rem;font-weight:700;line-height:1.2}@keyframes ex-chain-travel{0%{left:calc(-5px + 50% / var(--n));opacity:0}6%,94%{opacity:1}to{left:calc(100% - 5px - 50% / var(--n));opacity:0}}@keyframes ex-chain-ping{0%{border-color:var(--line);transform:scale(1)}4%{border-color:var(--ex-gold);transform:scale(1.14)rotate(-4deg)}14%{border-color:var(--ex-gold);transform:scale(1)}30%,to{border-color:var(--line);transform:scale(1)}}.ex-anim:not(.is-on) *,.ex-anim:not(.is-on) :after,.ex-anim:not(.is-on) :before{animation-play-state:paused!important}.is-static *,.is-static :after,.is-static :before{transition:none!important;animation:none!important}.techie{border:1px solid var(--line);background:var(--ex-surface);border-radius:22px;margin:calc(clamp(72px,10vw,120px)) 0 64px}.techie summary{cursor:pointer;border-radius:22px;align-items:center;gap:16px;padding:20px calc(clamp(16px,3vw,28px));list-style:none;transition:background .2s;display:flex}.techie summary::-webkit-details-marker{display:none}.techie summary:hover{background:var(--hover)}.techie-icon{background:var(--pill-bg);width:46px;height:46px;color:var(--pill-text);border-radius:14px;flex:none;place-items:center;transition:transform .3s cubic-bezier(.3,1.6,.5,1);display:grid}.techie summary:hover .techie-icon{transform:rotate(-8deg)scale(1.06)}.techie-text{flex-direction:column;min-width:0;display:flex}.techie-title{letter-spacing:-.01em;color:var(--text);font:800 calc(clamp(1.2rem,2.4vw,1.45rem))/1.2 Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif}.techie-hint{color:var(--text-soft);font-size:.92rem;line-height:1.4}.techie-chevron{border:1px solid var(--line);width:34px;height:34px;color:var(--text-soft);border-radius:50%;flex:none;place-items:center;margin-left:auto;transition:transform .35s cubic-bezier(.3,1.4,.5,1);display:grid}.techie[open] .techie-chevron{transform:rotate(180deg)}.techie .case{border-top:1px solid var(--line);padding:18px calc(clamp(16px,3vw,28px)) 12px}.tech-list{color:var(--text-soft);max-width:64ch;margin:0;padding-left:20px}.tech-list li{margin-bottom:8px}.tech-list li::marker{color:var(--accent)}@media (width<=900px){.ex-step,.ex-step.is-flip{grid-template-columns:minmax(0,1fr);gap:26px}.ex-step.is-flip .ex-text{order:0}.ex-steps{margin-top:48px}}@media (width<=560px){.ex-chain-icon{border-radius:14px;width:46px;height:46px}.ex-chain-icon svg{width:28px;height:28px}.ex-chain-list:before{top:22px}.ex-chain-list:after{top:18px}.ex-chain-text{font-size:.72rem}.ex-art{border-radius:18px}.ex-btn{padding:7px 12px;font-size:.86rem}}@keyframes twinkle{0%,to{opacity:calc(var(--stars) * .85)}50%{opacity:calc(var(--stars) * .25)}}@keyframes wave{0%,to{transform:rotate(0)}20%,60%{transform:rotate(16deg)}40%,80%{transform:rotate(-8deg)}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;animation:none!important}html{scroll-behavior:auto}}@media (width<=900px){.layout{grid-template-columns:1fr;gap:0}.side{gap:36px;margin-bottom:56px}}@media (width<=560px){body{font-size:16px}.topbar{padding-block:18px}.exp{grid-template-columns:1fr;gap:4px}.hero{padding-top:28px}}@media (width<=720px){.hero{grid-template-columns:1fr}.hero-portrait{border-radius:14px;order:-1;width:130px;margin-bottom:20px}.portrait{max-width:300px}}.exp-company{color:var(--text);text-decoration:none}.exp p strong{color:var(--accent);font-weight:700}.exp-company:hover{color:var(--link);text-decoration:underline}.exp-company span{color:var(--text-faint);font-size:.75em}.exp-logo{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;height:34px;margin-bottom:8px;padding:6px 10px;display:inline-flex}.exp-logo img{width:auto;height:22px;display:block}.nav a{border-bottom:2px solid #0000;padding-block:2px}.nav a:hover{border-bottom-color:var(--line);text-decoration:none}.nav a.is-active{color:var(--accent);border-bottom-color:var(--accent)}.home-layout{padding-block:16px 8px}.home-layout .main>section{margin-bottom:56px}.home-layout .exp{padding-block:12px}.home-layout .exp-logo{height:30px;margin-bottom:6px;padding:4px 8px}.home-layout .exp-logo img{height:20px}.home-layout .exp p{margin:0}.project.compact{margin-bottom:22px}.project.compact h3{font-size:1.3rem}.project.compact .project-sub{margin:0}.home-more{color:var(--text-soft);gap:6px;margin-top:6px;font-size:.95rem;font-weight:600;display:inline-flex}.home-more:hover{color:var(--link)}.side-block .home-more{margin-top:16px}.home-layout .arrows{gap:8px}.home-contact{padding-block:24px 80px}.page-body{padding-block:40px}.page-body.narrow>*{max-width:820px}.page-section{margin-bottom:64px}.exp-org{color:var(--text-soft)}.exp-org:hover{color:var(--link)}.exp-org span{color:var(--text-faint);font-size:.75em}.exp .arrow-link{font-size:.95rem}.langs{border-bottom:1px solid var(--line);gap:0;margin:0;display:grid}.lang{border-top:1px solid var(--line);grid-template-columns:140px minmax(0,1fr);gap:20px;padding:14px 0;display:grid}.lang dt{color:var(--text);font-weight:700}.lang dd{color:var(--text-soft);flex-wrap:wrap;gap:4px 14px;margin:0;display:flex}.lang dd strong{color:var(--text)}.contact-mail{margin:8px 0 28px}.contact-mail a{color:var(--accent);word-break:break-word;font-family:Bricolage Grotesque,Bricolage Grotesque Fallback\: Segoe UI,Bricolage Grotesque Fallback\: Helvetica Neue,Bricolage Grotesque Fallback\: Arial,Bricolage Grotesque Fallback\: Noto Sans,Bricolage Grotesque Fallback\: Liberation Sans,system-ui,sans-serif;font-size:calc(clamp(1.4rem,4vw,2rem));font-weight:700}.contact-links{margin-bottom:28px}.contact-page{padding-bottom:80px}@media (width<=700px){.lang{grid-template-columns:1fr;gap:2px}}@media (width<=1040px){.topbar{row-gap:10px}.nav,.topbar{flex-wrap:wrap}.nav{order:3;gap:6px 20px;width:100%;padding-bottom:2px}.nav a{white-space:nowrap;font-size:.95rem}}iframe[src*="accounts.google.com"]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.error-hero[data-v-525036c2]{padding-bottom:36px}.error-hero .eyebrow[data-v-525036c2]{margin-bottom:14px}.error-ridge[data-v-525036c2]{width:100%;height:90px;display:block}.ridge-far[data-v-525036c2]{fill:var(--m-far);transition:fill .4s}.ridge-snow[data-v-525036c2]{fill:var(--snow);opacity:.7}.ridge-front[data-v-525036c2]{fill:var(--bg);transition:fill .4s}.error-body[data-v-525036c2]{padding-bottom:72px}.error-links[data-v-525036c2]{margin:8px 0 32px}.btn[data-v-525036c2]{font:inherit;cursor:pointer;font-weight:700}
