/* asere.edit · seccion "pick your cut": un estilo de edicion por fila, cada uno animado en su propio estilo */
.ae-est{position:relative;background:var(--spring);color:var(--ink);padding:clamp(64px,11vw,160px) var(--page-pad-x,20px) clamp(56px,9vw,130px);overflow:clip}
.ae-est__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,56px)}
.ae-est__title{font-family:var(--font-display);text-transform:uppercase;color:var(--cinnabar);font-size:clamp(54px,9.6vw,150px);line-height:.84;margin:0}
.ae-est__sub{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey,#6e655d);max-width:30ch;text-align:right;margin:0}
.ae-est__list{list-style:none;margin:0;padding:0;border-top:1px solid color-mix(in srgb,var(--ink) 18%,transparent)}
.ae-row{position:relative;border-bottom:1px solid color-mix(in srgb,var(--ink) 18%,transparent);overflow:hidden}
.ae-row__btn{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,2.4vw,40px);padding:clamp(14px,2.2vw,30px) 0;position:relative}
.ae-row__btn:focus-visible{outline:2px solid var(--cinnabar);outline-offset:4px}
.ae-row__idx,.ae-row__kick,.ae-row__count{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.ae-row__idx{color:var(--cinnabar);align-self:start;padding-top:.6em}
.ae-row__mid{display:flex;flex-direction:column;gap:10px;min-width:0}
.ae-row__word{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(46px,8.4vw,132px);line-height:.86;white-space:nowrap;display:block;position:relative;z-index:1}
.ae-row__kick{color:var(--grey,#6e655d);display:flex;flex-wrap:wrap;gap:.45em}
.ae-row__count{color:var(--ink);white-space:nowrap;display:flex;align-items:center;gap:10px}
.ae-row__count i{display:inline-block;width:28px;height:28px;border-radius:50%;background:var(--cinnabar);position:relative;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.ae-row__count i::after{content:"";position:absolute;left:11px;top:9px;border:5px solid transparent;border-left:8px solid var(--spring)}
.ae-row:hover .ae-row__count i{transform:scale(1.25) rotate(-8deg)}
.ae-ch{display:inline-block}
@media (hover:none){
  /* phones: no blur filters or endless grain, only transform/opacity (cheap for the GPU) */
  .ae-row--documentary.is-in .ae-ch{animation-name:ae-doc-m}
  .ae-row--documentary.is-in .ae-grain{animation:ae-fade-grain 2.4s ease both}
}
@keyframes ae-doc-m{0%{opacity:0;transform:scale(1.12)}100%{opacity:1;transform:none}}
.ae-wd{display:inline-block;white-space:nowrap}
@media (min-width:810px){.ae-est .ae-row__btn{padding-right:clamp(0px,6vw,110px)}}
.ae-w{display:inline-block}
.ae-row__thumb{display:none}

/* ---------- 01 documentary: letterbox + slow title fade with blur, film grain ---------- */
.ae-row--documentary .ae-bars{position:absolute;inset:0;pointer-events:none;z-index:2}
.ae-row--documentary .ae-bars::before,.ae-row--documentary .ae-bars::after{content:"";position:absolute;left:0;right:0;height:50%;background:var(--ink);transform:scaleY(0)}
.ae-row--documentary .ae-bars::before{top:0;transform-origin:top}
.ae-row--documentary .ae-bars::after{bottom:0;transform-origin:bottom}
.ae-row--documentary.is-in .ae-bars::before,.ae-row--documentary.is-in .ae-bars::after{animation:ae-bars 1.5s cubic-bezier(.7,0,.2,1) both}
@keyframes ae-bars{0%{transform:scaleY(1)}35%{transform:scaleY(.62)}100%{transform:scaleY(0)}}
.ae-row--documentary .ae-ch{opacity:0}
.ae-row--documentary.is-in .ae-ch{animation:ae-doc 1.5s cubic-bezier(.2,.7,.1,1) both;animation-delay:calc(.35s + var(--i) * 45ms)}
@keyframes ae-doc{0%{opacity:0;filter:blur(10px);transform:scale(1.12)}100%{opacity:1;filter:blur(0);transform:none}}
.ae-row--documentary .ae-grain{position:absolute;inset:-50%;pointer-events:none;opacity:0;z-index:0;background-image:url(/preloader-grain.webp);background-size:256px}
.ae-row--documentary.is-in .ae-grain{animation:ae-grain .5s steps(4) infinite,ae-fade-grain 2.4s ease both}
@keyframes ae-grain{0%{transform:translate(0,0)}25%{transform:translate(-6%,4%)}50%{transform:translate(5%,-3%)}75%{transform:translate(-3%,-6%)}100%{transform:translate(0,0)}}
@keyframes ae-fade-grain{0%{opacity:.35}100%{opacity:.08}}
.ae-row--documentary .ae-w{opacity:0}
.ae-row--documentary.is-in .ae-w{animation:ae-fadein .9s ease both;animation-delay:calc(1.1s + var(--j) * 260ms)}
@keyframes ae-fadein{from{opacity:0}to{opacity:1}}

/* ---------- 02 talking head: hard jump cuts + punch-ins + word-by-word captions ---------- */
.ae-row--talking-head .ae-row__word{transform-origin:20% 60%;opacity:0}
.ae-row--talking-head.is-in .ae-row__word{animation:ae-jump 1.1s both}
@keyframes ae-jump{
  0%{opacity:0;transform:scale(1.42) translateX(4%)}
  8%{opacity:1;transform:scale(1.42) translateX(4%)}
  30%{transform:scale(1) translateX(0)}
  52%{transform:scale(1.16) translateX(-2%)}
  74%{transform:scale(1) translateX(0)}
  100%{opacity:1;transform:none}}
.ae-row--talking-head.is-in .ae-row__word{animation-timing-function:steps(1,end)}
.ae-row--talking-head .ae-w{padding:.18em .45em;border-radius:6px;transform:scale(.4);opacity:0}
.ae-row--talking-head.is-in .ae-w{animation:ae-cap .45s cubic-bezier(.34,1.8,.64,1) both;animation-delay:calc(.75s + var(--j) * 230ms)}
@keyframes ae-cap{0%{opacity:0;transform:scale(.4) translateY(30%)}60%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:none;background:var(--cinnabar);color:var(--spring)}}
.ae-row--talking-head .ae-cut{position:absolute;inset:0;background:var(--ink);opacity:0;pointer-events:none;z-index:2}
.ae-row--talking-head.is-in .ae-cut{animation:ae-flash 1.1s steps(1,end) both}
@keyframes ae-flash{0%{opacity:1}6%{opacity:0}29%{opacity:.9}31%{opacity:0}51%{opacity:.9}53%{opacity:0}73%{opacity:.9}75%{opacity:0}100%{opacity:0}}

/* ---------- 03 motion graphics: kinetic letters with overshoot + shape hits ---------- */
.ae-row--motion .ae-ch{opacity:0;transform:translateY(120%) rotate(var(--r)) scale(.3)}
.ae-row--motion.is-in .ae-ch{animation:ae-kin .8s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i) * 38ms)}
@keyframes ae-kin{0%{opacity:0;transform:translateY(120%) rotate(var(--r)) scale(.3)}60%{opacity:1}100%{opacity:1;transform:none}}
.ae-row--motion .ae-shape{position:absolute;z-index:0;pointer-events:none;border-radius:50%;background:var(--cinnabar);width:clamp(60px,9vw,140px);aspect-ratio:1;right:22%;top:50%;transform:translate(0,-50%) scale(0)}
.ae-row--motion.is-in .ae-shape{animation:ae-blob 1.2s cubic-bezier(.34,1.56,.64,1) .25s both}
@keyframes ae-blob{0%{transform:translate(0,-50%) scale(0)}55%{transform:translate(-60%,-50%) scale(1.15)}100%{transform:translate(-40%,-50%) scale(1);opacity:.18}}
.ae-row--motion .ae-line{position:absolute;left:0;bottom:18%;height:6px;width:100%;background:var(--cinnabar);transform:scaleX(0);transform-origin:left;z-index:0}
.ae-row--motion.is-in .ae-line{animation:ae-sweep .9s cubic-bezier(.7,0,.2,1) .15s both}
@keyframes ae-sweep{0%{transform:scaleX(0);transform-origin:left}49%{transform:scaleX(1);transform-origin:left}50%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}
.ae-row--motion .ae-w{opacity:0;transform:translateX(-30px) skewX(-20deg)}
.ae-row--motion.is-in .ae-w{animation:ae-slide .6s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(.5s + var(--j) * 120ms)}
@keyframes ae-slide{to{opacity:1;transform:none}}

/* ---------- 04 saas: app window, smooth ease-out-expo, cursor click ---------- */
.ae-row--saas .ae-row__mid{position:relative;padding:34px 18px 18px;border-radius:16px;background:color-mix(in srgb,var(--ink) 5%,var(--spring));box-shadow:0 1px 0 color-mix(in srgb,var(--ink) 10%,transparent) inset,0 18px 40px -26px color-mix(in srgb,var(--ink) 60%,transparent);width:max-content;max-width:100%;transform:translateY(24px);opacity:0}
.ae-row--saas.is-in .ae-row__mid{animation:ae-win .9s cubic-bezier(.16,1,.3,1) both}
@keyframes ae-win{to{transform:none;opacity:1}}
.ae-row--saas .ae-dots{position:absolute;left:16px;top:13px;display:flex;gap:6px}
.ae-row--saas .ae-dots i{width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ink) 22%,transparent)}
.ae-row--saas .ae-dots i:first-child{background:var(--cinnabar)}
.ae-row--saas .ae-mask{display:block;overflow:hidden}
.ae-row--saas .ae-row__word .ae-inner{display:block;transform:translateY(105%)}
.ae-row--saas.is-in .ae-row__word .ae-inner{animation:ae-up 1s cubic-bezier(.16,1,.3,1) .25s both}
@keyframes ae-up{to{transform:none}}
.ae-row--saas .ae-cursor{position:absolute;width:22px;height:22px;left:0;top:60%;z-index:3;pointer-events:none;opacity:0}
.ae-row--saas.is-in .ae-cursor{animation:ae-cur 1.6s cubic-bezier(.65,0,.35,1) .55s both}
@keyframes ae-cur{0%{opacity:0;transform:translate(-20px,30px)}15%{opacity:1}70%{transform:translate(calc(var(--cx,300px)),-6px)}78%{transform:translate(calc(var(--cx,300px)),-6px) scale(.82)}86%,100%{opacity:1;transform:translate(calc(var(--cx,300px)),-6px) scale(1)}}
.ae-row--saas .ae-ring{position:absolute;width:44px;height:44px;border-radius:50%;border:2px solid var(--cinnabar);left:0;top:60%;margin:-11px 0 0 -11px;opacity:0;z-index:2;pointer-events:none}
.ae-row--saas.is-in .ae-ring{animation:ae-ring .7s ease-out 1.75s both}
@keyframes ae-ring{0%{opacity:1;transform:translate(var(--cx,300px),-6px) scale(.2)}100%{opacity:0;transform:translate(var(--cx,300px),-6px) scale(1.6)}}
.ae-row--saas .ae-w{opacity:0;transform:translateY(8px)}
.ae-row--saas.is-in .ae-w{animation:ae-win .7s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.8s + var(--j) * 90ms)}

/* ---------- hover preview that follows the cursor (mouse only) ---------- */
.ae-peek{position:fixed;left:0;top:0;z-index:60;pointer-events:none;width:clamp(200px,22vw,320px);border-radius:14px;overflow:hidden;background:var(--ink);box-shadow:0 30px 60px -30px rgba(0,0,0,.6);opacity:0;transform:translate(-50%,-50%) scale(.6) rotate(-4deg);transition:opacity .25s ease,transform .45s cubic-bezier(.34,1.56,.64,1)}
.ae-peek.is-on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-4deg)}
.ae-peek video{display:block;width:100%;height:auto}
.ae-peek.is-v{width:clamp(150px,13vw,210px)}

/* ---------- full-screen style viewer ---------- */
/* el cursor propio del sitio (.tc) tiene z-index 2147483000 y el del sistema esta apagado (cursor:none):
   el visor y el reproductor van por encima y lo tapaban. El cursor sube al tope; su color se adapta solo al fondo. */
html .tc{z-index:2147483647}
html.ae-lock,html.ae-lock body{overflow:hidden!important}
.ae-ov{position:fixed;inset:0;z-index:2147483000;background:var(--ink);color:var(--spring);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;clip-path:circle(0 at var(--ox,50%) var(--oy,50%));transition:clip-path .75s cubic-bezier(.7,0,.2,1)}
.ae-ov.is-open{clip-path:circle(150% at var(--ox,50%) var(--oy,50%))}
.ae-ov__in{padding:clamp(18px,3vw,40px) var(--page-pad-x,20px) 80px;max-width:1500px;margin:0 auto}
.ae-ov__bar{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--spring) 70%,transparent);position:sticky;top:0;z-index:5;padding:8px 0}
.ae-ov__x{all:unset;cursor:pointer;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--cinnabar);color:var(--spring);font:600 22px/1 var(--font-mono);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.ae-ov__x:hover{transform:rotate(90deg) scale(1.08)}
.ae-ov__x:focus-visible{outline:2px solid var(--spring);outline-offset:3px}
.ae-ov .ae-row{border:0;overflow:visible}
.ae-ov .ae-row__word{color:var(--cinnabar);font-size:clamp(56px,11vw,190px)}
.ae-ov .ae-row__kick{color:color-mix(in srgb,var(--spring) 70%,transparent)}
.ae-ov .ae-row--saas .ae-row__mid{background:color-mix(in srgb,var(--spring) 8%,var(--ink))}
.ae-ov .ae-row--documentary .ae-bars::before,.ae-ov .ae-row--documentary .ae-bars::after{background:#000}
.ae-ov .ae-row--talking-head .ae-cut{background:#000}
.ae-ov__head{margin:clamp(20px,4vw,48px) 0 clamp(24px,4vw,48px)}
.ae-grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(12px,1.6vw,22px);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));align-items:start}
.ae-card{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:100%;opacity:0;transform:translateY(40px)}
.ae-ov.is-open .ae-card{animation:ae-win .8s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.45s + var(--k) * 80ms)}
.ae-card__img{position:relative;display:block;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:16/9}
.ae-card.is-v .ae-card__img{aspect-ratio:9/16}
.ae-card__img img,.ae-card__img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.ae-card:hover .ae-card__img img{transform:scale(1.05)}
.ae-card__play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;background:var(--cinnabar);display:grid;place-items:center;transition:transform .45s cubic-bezier(.34,1.56,.64,1);z-index:2}
.ae-card__play::after{content:"";margin-left:5px;border:11px solid transparent;border-left:17px solid var(--spring);border-right:0}
.ae-card:hover .ae-card__play{transform:scale(1.15)}
.ae-card:focus-visible .ae-card__img{outline:3px solid var(--cinnabar);outline-offset:3px}
.ae-card__meta{display:flex;justify-content:space-between;gap:12px;padding:12px 2px 0;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.ae-card__meta b{font-weight:500;color:var(--spring)}
.ae-card__meta span{color:color-mix(in srgb,var(--spring) 55%,transparent)}
/* video player: covers the whole screen, video as big as it fits, sound on */
.ae-player{position:fixed;inset:0;z-index:2147483001;background:#000;display:flex;flex-direction:column;opacity:0;transition:opacity .3s ease;touch-action:pan-y}
.ae-player.is-on{opacity:1}
.ae-player__bar{position:relative;z-index:3;display:flex;align-items:center;gap:14px;padding:calc(10px + env(safe-area-inset-top,0px)) 14px 10px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.ae-player__count{color:var(--cinnabar);min-width:0}
.ae-player__count:empty{display:none}
.ae-player__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ae-player__x{position:static!important;flex:none}
.ae-player__stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:0 0 calc(12px + env(safe-area-inset-bottom,0px))}
.ae-player video{display:block;width:100%;height:100%;max-width:min(100%,1600px);object-fit:contain;background:#000}
.ae-player__spin{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:3px solid rgba(255,255,255,.18);border-top-color:var(--cinnabar);opacity:0;pointer-events:none;transition:opacity .2s}
.ae-player.is-loading .ae-player__spin{opacity:1;animation:ae-spin .8s linear infinite}
@keyframes ae-spin{to{transform:rotate(360deg)}}
.ae-player__sound{all:unset;position:absolute;left:50%;bottom:calc(70px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);cursor:pointer;padding:14px 22px;border-radius:999px;background:var(--cinnabar);color:var(--spring);font:600 13px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;box-shadow:0 10px 30px -10px rgba(0,0,0,.7);animation:ae-ig-float 2s ease-in-out infinite}
.ae-player__sound::before{content:"♪  "}
.ae-player__nav{all:unset;position:absolute;top:50%;z-index:3;width:56px;height:56px;margin-top:-28px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .3s cubic-bezier(.34,1.56,.64,1)}
.ae-player__nav:hover{background:var(--cinnabar);transform:scale(1.08)}
.ae-player__nav:focus-visible{outline:2px solid var(--spring);outline-offset:3px}
.ae-player__nav i{width:12px;height:12px;border:solid var(--spring);border-width:0 3px 3px 0}
.ae-player__prev{left:14px}.ae-player__prev i{transform:translateX(2px) rotate(135deg)}
.ae-player__next{right:14px}.ae-player__next i{transform:translateX(-2px) rotate(-45deg)}
@media (max-width:809px){
  .ae-player__nav{top:auto;bottom:calc(16px + env(safe-area-inset-bottom,0px));margin:0;width:48px;height:48px}
  .ae-player__stage{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
}

/* ---------- touch: instagram button instead of the 3D mascot ---------- */
.ae-ig{position:fixed;right:14px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;width:54px;height:54px;border-radius:16px;background:var(--cinnabar);display:grid;place-items:center;box-shadow:0 12px 26px -12px rgba(0,0,0,.55);-webkit-tap-highlight-color:transparent;opacity:0;transform:translateY(30px) scale(.6);pointer-events:none;transition:opacity .35s ease,transform .5s cubic-bezier(.34,1.56,.64,1)}
.ae-ig.is-on{opacity:1;transform:none;pointer-events:auto;animation:ae-ig-float 3.2s ease-in-out .6s infinite}
.ae-ig svg{width:30px;height:30px;fill:none;stroke:var(--spring);stroke-width:3.6}
.ae-ig .ae-ig__dot{fill:var(--spring);stroke:none}
.ae-ig:active{transform:scale(.9)}
html.ae-lock .ae-ig{display:none}
@keyframes ae-ig-in{from{opacity:0;transform:translateY(30px) scale(.6)}to{opacity:1;transform:none}}
@keyframes ae-ig-float{0%,100%{translate:0 0}50%{translate:0 -6px}}
@media (hover:hover){.ae-ig{display:none}}

/* ---------- /work: every edit with play ---------- */
section.work-zz{display:none!important}
/* palabra gigante del final ("keep rolling"): mas larga que la original, se achica para que entre justo */
.unfold__word{font-size:17.4154vw!important}
html[lang=es] .unfold__word{font-size:14.0005vw!important}
html[lang=pt-BR] .unfold__word{font-size:13.615vw!important}
/* selector de idioma en el pie */
.ae-lang{display:flex;justify-content:center;gap:10px;padding:18px 16px 28px;font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;position:relative;z-index:2}
.ae-lang a{color:inherit;opacity:.55;text-decoration:none;padding:6px 4px}
.ae-lang a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:4px}
.ae-lang a:hover{opacity:1}
.ae-lang span{opacity:.35}
.ae-work{background:var(--spring);color:var(--ink);padding:clamp(40px,7vw,110px) var(--page-pad-x,20px) clamp(60px,9vw,140px);display:flex;flex-direction:column;gap:clamp(48px,7vw,110px)}
.ae-work__head{display:flex;align-items:baseline;gap:clamp(10px,2vw,28px);flex-wrap:wrap;margin-bottom:clamp(16px,2vw,28px);border-bottom:1px solid color-mix(in srgb,var(--ink) 18%,transparent);padding-bottom:12px}
.ae-work__title{font-family:var(--font-display);text-transform:uppercase;color:var(--cinnabar);font-size:clamp(40px,6.4vw,104px);line-height:.86;margin:0}
.ae-work__kick{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey,#6e655d)}
.ae-work .ae-card__meta b{color:var(--ink)}
.ae-work .ae-card__meta span{color:var(--grey,#6e655d)}
.ae-work__group .ae-card{opacity:0;transform:translateY(40px)}
.ae-work__group.is-in .ae-card{animation:ae-win .8s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--k) * 80ms)}
.ae-work__grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
/* ---------- /about: de donde soy, donde estoy ---------- */
.ae-map{position:relative;background:var(--spring);color:var(--ink);padding:calc(var(--nav-h,64px) + clamp(28px,5vw,70px)) var(--page-pad-x,20px) clamp(40px,6vw,90px);overflow:clip}
.ae-map__kick{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--grey,#6e655d);margin:0 0 14px}
.ae-map__title{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(48px,9vw,150px);line-height:.86;margin:0;display:flex;flex-direction:column}
.ae-map__title em{font-style:normal;color:var(--cinnabar)}
.ae-mt{display:block;overflow:hidden}
.ae-map .ae-mt{transform:translateY(105%)}
.ae-map.is-in .ae-mt{animation:ae-up 1s cubic-bezier(.16,1,.3,1) both}
.ae-map.is-in .ae-mt:nth-child(2){animation-delay:.12s}
.ae-map__art{position:relative;margin-top:clamp(18px,3vw,40px);aspect-ratio:340/310;max-height:78svh;width:min(100%,calc(78svh * 340 / 310));margin-left:auto;margin-right:auto}
.ae-map__svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;border-radius:18px}
.ae-map__head{position:relative;z-index:2}
.ae-map__land path{fill:color-mix(in srgb,var(--ink) 5%,var(--spring));stroke:color-mix(in srgb,var(--ink) 45%,transparent);stroke-width:.35;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .9s ease}
.ae-map__land path.is-hot{fill:color-mix(in srgb,var(--cinnabar) 30%,var(--spring));stroke:var(--cinnabar)}
.ae-map.is-in .ae-map__land path{opacity:1}
.ae-map__route{fill:none;stroke:var(--cinnabar);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;stroke-linecap:round}
.ae-map.is-in .ae-map__route{animation:ae-draw 1.6s cubic-bezier(.65,0,.35,1) .5s forwards}
@keyframes ae-draw{to{stroke-dashoffset:0}}
.ae-pin__dot{fill:var(--cinnabar);transform:scale(0);transform-box:fill-box;transform-origin:center}
.ae-map.is-in .ae-pin__dot{animation:ae-pop .6s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(.35s + var(--k) * 1.5s)}
@keyframes ae-pop{to{transform:scale(1)}}
.ae-pin__ring{fill:none;stroke:var(--cinnabar);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:center}
.ae-map.is-in .ae-pin__ring{animation:ae-pulse 2.2s ease-out infinite;animation-delay:calc(1s + var(--k) * 1.5s)}
@keyframes ae-pulse{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(5)}}
.ae-map__lab{position:absolute;transform:translate(14px,-50%);display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;opacity:0}
.ae-map__lab span{color:var(--cinnabar)}
.ae-map__lab b{font-weight:500;color:var(--ink);background:var(--spring);padding:2px 6px;border-radius:4px}
.ae-map.is-in .ae-map__lab{animation:ae-fadein .6s ease both;animation-delay:calc(.6s + var(--k) * 1.5s)}
.ae-map__lab--brazil{transform:translate(14px,-50%)}
@media (max-width:809px){.ae-map__lab{font-size:10px}.ae-map__art{width:100%}}

@media (max-width:809px){
  .ae-work__grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .ae-work__grid li:has(.ae-card:not(.is-v)){grid-column:span 2}
  .ae-row__btn{grid-template-columns:1fr auto;grid-template-areas:"idx thumb" "mid thumb";row-gap:6px}
  .ae-row__idx{grid-area:idx;padding:0}
  .ae-row__mid{grid-area:mid}
  .ae-row__count{display:none}
  .ae-row__thumb{grid-area:thumb;display:block;width:76px;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:var(--ink)}
  .ae-row__thumb.is-h{width:110px;aspect-ratio:16/9}
  .ae-row__thumb video{width:100%;height:100%;object-fit:cover;display:block}
  .ae-row__word{font-size:min(12vw,calc((100vw - 140px) / (var(--len,8) * .54)));white-space:normal}
  .ae-ov .ae-row__word{font-size:min(15vw,calc((100vw - 48px) / (var(--len,8) * .54)))}
  .ae-row--saas .ae-row__mid{padding:28px 12px 12px;width:auto;min-width:0}
  .ae-est__sub{text-align:left}
}
@media (prefers-reduced-motion:reduce){
  .ae-est *,.ae-ov *{animation:none!important;transition:none!important}
  .ae-ch,.ae-w,.ae-row__word,.ae-row__mid,.ae-card,.ae-row--saas .ae-row__word .ae-inner{opacity:1!important;transform:none!important;filter:none!important}
  .ae-ov{clip-path:none}
}
