:root{--ink:#0f172a;--paper:#ffffff;--mist:#f1f5f9;--fog:#f8fafc;--slate:#1e293b;--ash:#334155;--smoke:#475569;--peach:#fef3c7;--sienna:#78350f;--line:#cbd5e1;--ease:cubic-bezier(.16,1,.3,1);--serif:"Source Serif 4",Georgia,serif;--sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:var(--smoke) var(--paper)}
body{margin:0;min-width:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
::selection{background:var(--peach);color:var(--sienna)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.skip{position:absolute;top:-60px;left:12px;z-index:20;padding:10px 16px;background:var(--ink);color:#fff}
.skip:focus{top:12px}
.container{width:min(100% - 48px,1200px);margin-inline:auto}
.serif{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.015em}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:700;font-size:20px;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.mark{display:grid;grid-template-columns:repeat(3,4px);align-items:end;justify-content:center;gap:2px;width:28px;height:28px;padding:6px;border:1px solid var(--line);border-radius:6px}
.mark i{display:block;background:var(--ink);border-radius:2px 2px 0 0}
.mark i:nth-child(1){height:7px}
.mark i:nth-child(2){height:11px;background:var(--sienna)}
.mark i:nth-child(3){height:15px}
.nav-links{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:500;color:var(--slate)}
.nav-links a{color:var(--slate);transition:color .2s var(--ease)}
.nav-links a:hover{color:var(--ink);text-decoration:none}
.nav-actions{display:flex;align-items:center;gap:12px}

.hero{overflow:clip;position:relative;display:grid;grid-template-columns:1fr minmax(0,780px) 1fr;grid-template-rows:auto auto auto;column-gap:clamp(20px,3vw,48px);padding-block:64px 88px;min-height:650px;padding-inline:clamp(20px,4vw,64px)}
.hero:before{content:"";position:absolute;inset:-12% -18%;background:radial-gradient(46% 52% at 60% 40%,rgba(250,214,186,.98),transparent 72%),radial-gradient(38% 46% at 38% 56%,rgba(250,224,196,.85),transparent 72%),radial-gradient(32% 40% at 54% 64%,rgba(249,215,221,.72),transparent 72%);filter:blur(24px);animation:glow 16s ease-in-out infinite alternate;pointer-events:none}
@keyframes glow{to{transform:translateX(-2.5%) scale(1.06);opacity:.82}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}
.hero-stage{position:relative;z-index:1;grid-area:1/2/4/3;text-align:center}
h1{margin:0 0 22px;font-family:var(--serif);font-weight:400;font-size:clamp(46px,5.2vw,78px);line-height:1.06;letter-spacing:-.02em}
h1 .serif{display:block;color:var(--ink)}
.lede{max-width:600px;margin:0 auto;color:var(--slate);font-size:18px;line-height:1.6}
.hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:var(--ink);color:#fff;border-radius:8px;font-size:14px;font-weight:600;line-height:1;border:1px solid transparent;transition:transform .2s var(--ease),background .2s}
.button:hover{background:#1e293b;transform:translateY(-1px)}
.button:active{transform:translateY(0)}
.button span{font-size:14px;font-weight:400}
.button-ghost,.button-secondary{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:8px}
.button-ghost:hover,.button-secondary:hover{background:var(--mist);border-color:var(--slate);transform:translateY(-1px)}
.text-link{padding-block:6px;color:var(--ink);font-size:15px;font-weight:500}
.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.hero-stage>*{animation:enter .85s var(--ease) both}
.hero-stage>*:nth-child(1){animation-delay:.05s}
.hero-stage>*:nth-child(2){animation-delay:.15s}
.hero-stage>*:nth-child(3){animation-delay:.3s}
.hero-stage>*:nth-child(4){animation-delay:.45s}
.hero-stage>*:nth-child(5){animation-delay:.6s}

.artifact{background:#fff;border-radius:20px;padding:16px;box-shadow:0 0 0 1px rgba(4,23,43,.12),0 24px 30px -8px rgba(0,0,0,.14),0 8px 10px -6px rgba(0,0,0,.08);animation:enter .8s var(--ease) both}
.art-table{grid-area:1/1/2/2;justify-self:end;align-self:start;width:min(240px,100%);animation:enter .8s var(--ease) .55s both,floaty 7s ease-in-out 2.2s infinite}
.art-ring{grid-area:1/3/3/4;justify-self:start;align-self:center;width:min(182px,100%);text-align:center;animation:enter .8s var(--ease) .65s both,floaty 8s ease-in-out 2.4s infinite}
.art-line{grid-area:3/1/4/2;justify-self:end;align-self:end;width:min(210px,100%);animation:enter .8s var(--ease) .75s both,floaty 7.5s ease-in-out 2.6s infinite}
.art-ask{grid-area:3/3/4/4;justify-self:start;align-self:end;width:min(280px,100%);animation:enter .8s var(--ease) .85s both,floaty 8.5s ease-in-out 2.8s infinite}
.art-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}
.art-head span{font-size:12px;color:var(--slate)}
.art-head strong{font-size:20px;font-weight:500;letter-spacing:-.01em}
.bars{display:flex;align-items:flex-end;gap:4px;height:54px;margin-bottom:12px}
.bars i{flex:1;background:var(--ink);border-radius:3px 3px 0 0;transform-origin:bottom;animation:grow .7s var(--ease) both}
.bars i:nth-child(1){height:42%;animation-delay:.9s}
.bars i:nth-child(2){height:66%;animation-delay:.96s}
.bars i:nth-child(3){height:52%;animation-delay:1.02s}
.bars i:nth-child(4){height:78%;animation-delay:1.08s}
.bars i:nth-child(5){height:46%;animation-delay:1.14s}
.bars i:nth-child(6){height:70%;animation-delay:1.2s}
.bars i:nth-child(7){height:58%;animation-delay:1.26s}
.bars i:nth-child(8){height:84%;animation-delay:1.32s}
.bars i:nth-child(9){height:50%;animation-delay:1.38s}
.bars i:nth-child(10){height:74%;animation-delay:1.44s}
.bars i:nth-child(11){height:94%;animation-delay:1.5s}
.bars i:nth-child(12){height:60%;animation-delay:1.56s}
@keyframes grow{from{transform:scaleY(0)}}
.rows{display:flex;flex-direction:column}
.rows span{display:flex;justify-content:space-between;padding:5px 0;border-top:1px solid var(--line);font-size:12px;color:var(--slate)}
.rows em{font-style:normal;color:var(--ink);font-weight:500}
.ring-wrap{position:relative;display:grid;place-items:center;margin:6px 0 10px}
.ring{width:86px;height:86px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring-bg{stroke:var(--line)}
.ring-fg{stroke:var(--sienna);stroke-linecap:round;stroke-dasharray:213.6;stroke-dashoffset:213.6;animation:ringfill 1.3s .9s var(--ease) forwards}
@keyframes ringfill{to{stroke-dashoffset:53.4}}
.ring-num{position:absolute;font-size:19px;font-weight:500}
.ring-num small{display:block;font-size:11px;font-weight:400;color:var(--ash);text-align:center}
.art-line strong{font-size:18px;font-weight:500}
.art-sub{display:block;margin-top:2px;font-size:11px;color:var(--ash)}
.spark{display:block;width:100%;height:56px;margin-top:8px}
.spark path{fill:none;stroke:var(--sienna);stroke-width:2;stroke-linecap:round;stroke-dasharray:175;stroke-dashoffset:175;animation:drawline 1.5s .7s var(--ease) forwards}
@keyframes drawline{to{stroke-dashoffset:0}}
.bubble{position:absolute;z-index:2;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;font-size:12px;font-weight:500;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.b-green{background:#dcefdc;color:#2f5c3a}
.b-blue{background:#d8e6f8;color:#2c4a77}
.bubble .cursor{position:absolute;top:-6px;left:-6px;width:18px;height:18px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.bubble .cursor path{fill:var(--ink)}
.art-line .bubble{left:-14px;top:34%}
.art-ask{padding:16px}
.ask-placeholder{display:block;color:var(--slate);font-size:14px}
.ask-row{display:flex;align-items:center;justify-content:space-between;margin-top:16px}
.ask-icons{color:var(--ash);font-size:13px;letter-spacing:6px}
.ask-send{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;font-size:14px}
.art-ask .bubble{right:-16px;bottom:-26px}

.system-wrap{max-width:1100px;margin:52px auto 60px}
.system{position:relative;padding:22px;background:#fff;border-radius:20px;box-shadow:0 0 0 1px rgba(4,23,43,.12),0 20px 25px -5px rgba(0,0,0,.12),0 8px 10px -6px rgba(0,0,0,.06);animation:enter .9s .15s var(--ease) both}
.pipeline{position:relative;display:grid;grid-template-columns:auto 44px 1fr 44px auto;grid-template-rows:auto 1fr auto;row-gap:14px}
.p-lbl{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.lbl-in{grid-area:1/1}
.lbl-out{grid-area:1/5}
.p-inputs{grid-area:2/1;display:flex;flex-direction:column;justify-content:center;gap:10px;align-self:stretch}
.node{position:relative;padding:10px 12px;background:var(--mist);border:1px solid var(--line);border-radius:12px;color:var(--ink);font-size:13px;font-weight:500;white-space:nowrap;animation:enter .7s var(--ease) both}
.node:nth-child(1){animation-delay:.5s}
.node:nth-child(2){animation-delay:.58s}
.node:nth-child(3){animation-delay:.66s}
.node:nth-child(4){animation-delay:.74s}
.conn-in{grid-area:2/2}
.conn-out{grid-area:2/4}
.p-conn{display:block;width:44px;overflow:visible}
.flow-path{fill:none;stroke:#9aa1ad;stroke-width:1.6;stroke-dasharray:5 5;animation:dashflow 1.1s linear infinite}
@keyframes dashflow{to{stroke-dashoffset:-9}}
.p-core{grid-area:2/3;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:22px 20px;background:var(--ink);border-radius:16px;color:#fff;box-shadow:0 16px 28px -16px rgba(23,25,28,.45);animation:enter .8s .35s var(--ease) both}
.p-core small{display:block;color:var(--smoke);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.p-core strong{display:block;margin:8px 0;font-family:var(--serif);font-size:22px;font-weight:400;letter-spacing:-.01em;line-height:1.12}
.p-core p{margin:0;color:#f8fafc;font-size:12px;line-height:1.55}
.p-outputs{grid-area:2/5;display:flex;flex-direction:column;justify-content:center;gap:10px;align-self:stretch}
.o-card{padding:13px;background:var(--mist);border:1px solid var(--line);border-radius:12px;animation:enter .7s var(--ease) both}
.o-card:nth-child(1){animation-delay:.85s}
.o-card:nth-child(2){animation-delay:.95s}
.o-card strong{display:block;font-size:13px;font-weight:500;color:var(--ink)}
.o-card span{display:block;margin-top:4px;color:var(--slate);font-size:12px;line-height:1.4}
.system-foot{grid-area:3/1/4/6;display:flex;align-items:center;gap:8px;margin-top:4px;color:var(--slate);font-size:12px}
.system-foot:before{content:"";height:5px;width:5px;border-radius:50%;background:var(--sienna)}

.thesis{padding-block:92px}
.thesis h2{max-width:880px;margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,50px);line-height:1.25;letter-spacing:-.015em}
.thesis em{color:var(--ink)}
.section{padding-block:96px}
.section-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:end;margin-bottom:40px}
.section-heading h2,.agent-copy h2,.section-heading p{max-width:460px;margin:0 0 6px;color:var(--slate);font-size:16px;line-height:1.65}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pillar{border-top:1px solid var(--line);padding:24px 8px;min-height:0}
.pillar h3{margin-bottom:10px;font-size:20px;font-weight:500;letter-spacing:-.01em}
.pillar p{max-width:300px;margin:0;color:var(--slate);font-size:15px;line-height:1.6}

.knowledge-section{background:var(--fog)}
.knowledge-inner{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:center;padding-block:96px}
.knowledge-inner h2{margin:0 0 22px;font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.8vw,52px);letter-spacing:-.015em;line-height:1.15}
.knowledge-inner h2 em{color:var(--ink)}
.knowledge-inner p{max-width:500px;color:var(--slate);font-size:16px;line-height:1.7}
.knowledge-map{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.map-cell{padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px}
.map-cell-tag{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600;color:var(--ash);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.map-cell strong{display:block;font-size:17px;font-weight:600;color:var(--ink);margin-bottom:6px}
.map-cell span{font-size:13.5px;color:var(--slate);line-height:1.5}
.map-cell.map-core{grid-column:1/-1;background:var(--ink);border-color:var(--ink);color:#fff}
.map-cell.map-core .map-cell-tag{color:#94a3b8}
.map-cell.map-core strong{color:#fff;font-size:18px;font-family:var(--serif);margin-bottom:6px}
.map-cell.map-core span{color:#e2e8f0;font-size:13.5px}

.agents{padding-block:96px}
.agents-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px}
.agent-copy p{max-width:480px;margin:22px 0 0;color:var(--slate);font-size:15.5px;line-height:1.7}
.agent-list{border-top:1px solid var(--line)}
.agent-step{display:grid;grid-template-columns:1fr;gap:8px;padding:22px 0;border-bottom:1px solid var(--line)}
.agent-step>span{color:var(--ash);font-size:12px;font-weight:500}
.agent-step h3{margin:0 0 6px;font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.agent-step p{max-width:470px;margin:0;color:var(--slate);font-size:14px;line-height:1.6}

.migration{padding-block:28px}
.migration-inner{display:grid;grid-template-columns:1fr;align-items:center;padding:36px 40px;background:var(--peach);border-radius:16px;border:1px solid rgba(120,53,15,.15)}
.migration h2{margin:0 0 10px;font-size:24px;font-weight:600;letter-spacing:-.01em;color:var(--sienna)}
.migration p{max-width:820px;margin:0;color:#78350f;font-size:15px;line-height:1.6}
.migration ::selection{background:var(--sienna);color:var(--peach)}

.core-chip{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:14px;padding:6px 12px;border:1px solid rgba(255,255,255,.25);border-radius:9999px;color:#dfe3e9;font-size:11px;font-weight:500;letter-spacing:.02em}
.core-chip:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--peach)}

.stack{padding-block:96px}
.stack-head{max-width:880px;margin:0 auto 44px;text-align:center}
.stack-head h2{margin:0 0 18px;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.6vw,50px);line-height:1.25;letter-spacing:-.015em}
.stack-head h2 em{color:var(--ink)}
.stack-head p{max-width:640px;margin:0 auto;color:var(--slate);font-size:16px;line-height:1.65}
.stack-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.stack-card{padding:26px 22px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 20px -12px rgba(0,0,0,.08)}
.stack-card h3{margin:0 0 8px;font-size:17px;font-weight:500;letter-spacing:-.01em}
.stack-card p{margin:0;color:var(--slate);font-size:13.5px;line-height:1.6}
.stack-note{display:flex;align-items:center;justify-content:center;gap:10px;margin:38px auto 0;color:var(--slate);font-size:14px;text-align:center;flex-wrap:wrap}
.safe-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#3e7d4f;box-shadow:0 0 0 4px rgba(62,125,79,.15)}
@media(max-width:920px){.stack-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.stack{padding-block:72px}.stack-grid{grid-template-columns:1fr}.stack-head{margin-bottom:32px}}

.closing{padding:120px 24px;text-align:center;background:var(--fog)}
.closing h2{max-width:860px;margin:0 auto 32px}
.closing h2 em{color:var(--ink)}
.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:112px;border-top:1px solid var(--line)}
.footer p{margin:0;color:var(--slate);font-size:13px}
.footer span{color:var(--ash);font-size:12px}

@keyframes enter{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
@keyframes dashflow{to{stroke-dashoffset:-9}}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .95s var(--ease),transform .95s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-fade{opacity:0;transition:opacity .95s var(--ease);transition-delay:var(--d,0ms)}
.js .reveal-fade.in{opacity:1}
.lang-switch{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:600;white-space:nowrap}
.lang-switch a{padding:4px 10px;border-radius:6px;color:var(--ash);transition:all .2s var(--ease)}
.lang-switch a[aria-current=page]{background:var(--ink);color:#fff}
.nav-actions{display:flex;align-items:center;gap:12px}

@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.hero:before,.bars i,.ring-fg,.spark path{animation:none}
.ring-fg{stroke-dashoffset:53.4}
.spark path{stroke-dashoffset:0}
.system,.hero-stage>*,.artifact,.node,.o-card,.p-core,.flow-path{animation:none}
.js .reveal,.js .reveal-fade{opacity:1;transform:none;transition:none}
.button{transition:none}
.button:hover{transform:none}
}
@media(min-width:1600px){
.hero{min-height:720px}
h1{font-size:clamp(46px,5.2vw,88px)}
.art-table{justify-self:start;width:300px;margin-left:3vw}
.art-ring{justify-self:end;width:210px;margin-right:3vw}
.art-line{justify-self:start;width:250px;margin-left:9vw}
.art-ask{justify-self:end;width:330px;margin-right:9vw}
}
@media(min-width:641px) and (max-width:1439px){
.hero{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;row-gap:clamp(20px,3vw,48px);min-height:0}
.hero-stage{grid-area:1/1/2/3}
.art-table{grid-area:2/1/3/2}
.art-ring{grid-area:2/2/3/3}
.art-line{grid-area:3/1/4/2}
.art-ask{grid-area:3/2/4/3}
}
@media(max-width:920px){
.nav{grid-template-columns:auto 1fr}
.nav-links{display:none}
.nav-actions{justify-self:end}
.hero{min-height:0;padding-block:32px 80px}
.system-wrap{max-width:600px;margin-top:36px}
.section-heading,.knowledge-inner,.agents-grid,.knowledge-inner{padding-block:80px}
.section-heading p{max-width:620px}
.pillars{grid-template-columns:1fr 1fr}
.pillar:nth-child(3){grid-column:1/-1}
}
@media(max-width:640px){
.artifact{display:none}
.container{width:min(100% - 36px,1200px)}
.nav{min-height:66px;grid-template-columns:auto 1fr;gap:12px}
.nav-actions{justify-self:end}
.hero{grid-template-columns:minmax(0,1fr)}
.hero-stage{grid-area:1/1}
.nav-links{display:none}
.nav-cta{padding:9px 14px;font-size:12px}
.nav-actions{gap:8px}
.lang-switch{padding:3px}
.lang-switch a{padding:4px 8px}
.hero{padding-block:40px 72px}
h1{font-size:clamp(42px,11.5vw,58px)}
.lede{font-size:16px}
.hero-actions{gap:12px}
.button{padding:12px 20px;font-size:14px}
.system{padding:16px;border-radius:20px}
.pipeline{grid-template-columns:1fr;row-gap:12px}
.lbl-in{grid-area:auto;justify-self:start}
.p-inputs{grid-area:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.node{white-space:normal;text-align:center}
.p-conn,.conn-in,.conn-out{grid-area:auto;display:block;width:2px;height:22px;margin:0 auto;background:repeating-linear-gradient(180deg,#b3b8c2 0 4px,transparent 4px 9px)}
.p-conn svg{display:none}
.p-core{grid-area:auto;align-self:auto}
.p-outputs{grid-area:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lbl-out{grid-area:auto;justify-self:start}
.system-foot{grid-area:auto}
.thesis{padding-block:64px}
.section{padding-block:72px}
.pillars{grid-template-columns:1fr}
.pillar{min-height:0}
.knowledge-inner{padding-block:68px}
.knowledge-map{padding:10px;gap:8px}
.knowledge-map:before{display:none}
.map-cell{min-height:110px;padding:12px}
.map-cell strong{font-size:14px}
.map-core strong{font-size:18px}
.agents,.migration-inner{grid-template-columns:1fr;gap:16px;padding:28px 24px}
.closing{padding-block:88px}
.footer{flex-direction:column;align-items:flex-start;padding-block:26px;min-height:0}
}
@media(max-width:920px){
.knowledge-inner{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:360px){
.nav-cta{padding:9px 10px;font-size:11px}
.brand{font-size:18px;gap:6px}
.nav-actions{gap:5px}
.lang-switch a{padding:4px 6px}
}

/* ─── Micro-interacciones ─── */
@media (prefers-reduced-motion: no-preference){
.stack-card,.pillar,.map-cell,.o-card,.node{transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.stack-card:hover,.pillar:hover,.map-cell:hover,.o-card:hover{transform:translateY(-5px);box-shadow:0 18px 34px -18px rgba(23,25,28,.32)}
.node:hover{transform:translateY(-2px)}
.artifact{animation:enter .8s var(--ease) both,floaty 7s ease-in-out infinite}
.art-ring{animation-delay:.9s,.7s}
.art-line{animation-delay:1s,1.5s}
.art-ask{animation-delay:1.1s,2.4s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.p-conn{animation:flow 1.1s linear infinite}
@keyframes flow{to{background-position-y:9px}}
.button,.button-ghost{transition:transform .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease)}
.button:hover{box-shadow:0 12px 24px -12px rgba(23,25,28,.55)}
.button:active,.button-ghost:active{transform:translateY(0) scale(.98)}
}
.stack-card h3 a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .25s var(--ease)}
.stack-card h3 a:hover{border-bottom-color:currentColor}

.tool-icon{width:17px;height:17px;display:inline-block;vertical-align:-2.5px;margin-right:8px;fill:currentColor}
