/* Atlas de casos. Usa los tokens de la landing (--ink, --base, --copper, fuentes). */
.atlas{--surface:#FBF8F4; --muted:#6B6567; --line:rgba(46,53,63,.16); --mauve:#7A6A6C; --shadow:0 18px 40px rgba(46,53,63,.12); color:var(--ink); margin-top:var(--s4);}
.atlas button{font:inherit; color:inherit; cursor:pointer}
.atlas-face{display:grid; justify-items:center; gap:6px}
.atlas-face svg{display:block; width:min(580px,94vw); height:auto; overflow:visible}
.atlas-face image{-webkit-mask-image:radial-gradient(ellipse 42% 52% at 50% 47%,#000 58%,transparent 100%); mask-image:radial-gradient(ellipse 42% 52% at 50% 47%,#000 58%,transparent 100%)}
.atlas .line{fill:none; stroke:var(--ink); stroke-opacity:.55; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round}
.atlas .line.soft{stroke-opacity:.28; stroke-dasharray:2 5}
.atlas .zone{cursor:pointer}
.atlas .zone .hit{fill:transparent}
.atlas .zone .dot{fill:var(--copper-text,#8A5A3C); transform-box:fill-box; transform-origin:center; animation:atlas-breathe 4s ease-in-out infinite}
.atlas .zone .halo{fill:none}
.atlas .zone .ring{fill:none; stroke:var(--copper); stroke-width:1.2; stroke-dasharray:3 6; opacity:0}
.atlas .zone.hover .dot, .atlas .zone.active .dot{animation:none; transform:scale(1.5)}
.atlas .zone.active .ring{opacity:1}
.atlas .zone:not(.hover):not(.active){opacity:.85}
@keyframes atlas-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.22)}}

/* Indice y campo */
.atlas .chip{flex:none; scroll-snap-align:start; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:8px 15px; font-size:.82rem; font-weight:500; display:inline-flex; gap:8px; align-items:center; transition:background .2s,border-color .2s,color .2s}
.atlas .chip b{font-weight:600; color:var(--copper-text); font-variant-numeric:tabular-nums}
.atlas .chip:hover, .atlas .chip.hover{border-color:var(--copper)}
.atlas .chip[aria-pressed="true"]{background:var(--ink); color:var(--base); border-color:var(--ink)}
.atlas .chip[aria-pressed="true"] b{color:var(--base); opacity:.75}
.atlas-head{margin:16px 0 6px; display:flex; align-items:baseline; gap:14px; flex-wrap:wrap}
.atlas-head h3{font-family:var(--font-display); font-weight:500; font-size:clamp(1.5rem,3vw,2.1rem); margin:0; outline:none}
.atlas-head p{margin:0; color:var(--muted); font-size:.85rem}
.atlas-nodes{list-style:none; margin:22px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:26px 18px; position:relative; z-index:1}
.atlas-nodes>li:nth-child(even){margin-top:22px}
@media (max-width:420px){ .atlas-nodes{grid-template-columns:repeat(2,1fr); gap:22px 12px} }
.atlas .node{display:grid; justify-items:center; gap:9px; width:100%; border:0; background:none; padding:6px; text-align:center; border-radius:18px; transition:transform .25s}
.atlas .node:hover{transform:translateY(-4px)}
.atlas .n-title{font-family:var(--font-display); font-size:1.05rem}
.atlas .n-meta{font-size:.72rem; color:var(--muted); line-height:1.35}
.atlas .n-meta em{font-style:normal; color:var(--copper-text)}
.atlas-boom{position:fixed; z-index:6; width:40px; height:40px; margin:-20px 0 0 -20px; border-radius:50%; border:1.5px solid var(--copper); pointer-events:none; z-index:5}
.atlas-foot{margin-top:32px; font-size:.78rem; color:var(--muted); max-width:60ch}

/* Lamina del caso */
.atlas dialog{border:0; padding:0; background:var(--surface); color:var(--ink); width:min(1080px,100vw - 28px); max-width:none; height:fit-content; max-height:min(90vh,900px); max-height:min(90dvh,900px); margin:auto; border-radius:26px; overflow:auto; font-family:var(--font-body); box-shadow:0 40px 90px rgba(20,22,28,.45),0 0 0 1px rgba(255,255,255,.5) inset; overscroll-behavior:contain}
.atlas dialog::backdrop{background:rgba(24,27,34,.55); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px)}
.atlas dialog[open]{animation:atlas-in .7s cubic-bezier(.16,1,.3,1) both}
.atlas dialog[open]::backdrop{animation:atlas-fade .6s ease both}
.atlas dialog.closing{animation:atlas-out .35s cubic-bezier(.4,0,1,1) both}
.atlas dialog.closing::backdrop{animation:atlas-fade-out .35s ease both}
@keyframes atlas-in{from{opacity:0; transform:translateY(34px) scale(.93); filter:blur(8px)}}
@keyframes atlas-out{to{opacity:0; transform:translateY(18px) scale(.96); filter:blur(4px)}}
@keyframes atlas-fade{from{opacity:0}}
@keyframes atlas-fade-out{to{opacity:0}}
.atlas .zone-view{padding:34px 34px 40px}
@media (max-width:520px){ .atlas .zone-view{padding:56px 16px 28px} }
.atlas .zone-view .atlas-head{margin-top:8px}
.atlas .zone-view .atlas-head h3{font-size:clamp(1.9rem,4.4vw,3rem)}
.atlas .sheet{margin:0}
.atlas .stage{padding-top:52px}
.atlas .back{justify-self:start}
.atlas .sheet{display:grid; grid-template-columns:minmax(0,1fr) 330px}
@media (max-width:820px){ .atlas .sheet{grid-template-columns:1fr} }
.atlas .stage{padding:18px; display:grid; gap:12px; align-content:start}
.atlas .dip{display:flex; gap:10px; align-items:stretch}
.atlas .dip figure{margin:0; flex:1 1 0; min-width:0; position:relative; border-radius:14px; overflow:hidden; background:var(--line); cursor:zoom-in; transition:flex-grow .5s cubic-bezier(.16,1,.3,1)}
.atlas .tag{position:absolute; left:10px; top:10px; font-size:.66rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; background:rgba(28,31,38,.72); color:#fff; padding:4px 9px; border-radius:999px}
.atlas .pill{border:1px solid var(--line); background:none; border-radius:999px; padding:6px 13px; font-size:.78rem; font-weight:500}
.atlas .pill[aria-pressed="true"]{background:var(--ink); color:var(--base); border-color:var(--ink)}
.atlas .pill:disabled{opacity:.4; cursor:default}
.atlas .side{padding:52px 22px 22px; display:flex; flex-direction:column; gap:14px; border-left:1px solid var(--line)}
@media (max-width:820px){ .atlas .side{border-left:0; border-top:1px solid var(--line); padding:18px} }
.atlas .side h3{font-family:var(--font-display); font-weight:500; font-size:1.7rem; line-height:1.1; margin:0}
.atlas .side dl{margin:0; display:grid; gap:10px}
.atlas .side dt{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.atlas .side dd{margin:2px 0 0; font-size:.9rem}
.atlas .note-fixed{font-size:.76rem; color:var(--muted); border-top:1px solid var(--line); padding-top:12px; margin:0}
.atlas .close{position:absolute; top:14px; right:14px; display:block; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:6px 14px; font-size:.78rem; z-index:2}
.atlas .navs{display:flex; gap:8px; margin-top:auto}
.atlas .navs .pill{flex:1}
@media (prefers-reduced-motion: reduce){
  .atlas dialog[open],.atlas dialog.closing,.atlas dialog[open]::backdrop,.atlas dialog.closing::backdrop{animation-duration:.01s}
  .atlas .zone .dot{animation:none} .atlas dialog[open]{animation:none} .atlas .dip figure{transition:none} .atlas .node{transition:none}
}
.atlas [hidden]{display:none!important}
.atlas p{text-align:left}

/* Categorias, zonas y silueta */
.atlas .zone .dot{fill:var(--copper); stroke:#fff; stroke-width:.8}
.atlas .zone.c-a .dot{fill:var(--mauve)} .atlas .zone.c-a .ring{stroke:var(--mauve)}
.atlas .zone.c-m .dot{fill:var(--ink)}
.atlas .zone.c-f .ring{opacity:.55; stroke-width:1.4}
.atlas .zone.c-f.hover .ring,.atlas .zone.c-f.active .ring{opacity:1}
.atlas .zone.off:not(.hover):not(.active){opacity:.14}
.atlas-cats{display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:6px 0 0}
.atlas .cat{border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:10px 18px; font-size:.9rem; font-weight:500; display:inline-flex; align-items:center; gap:9px; transition:background .2s,border-color .2s,color .2s}
.atlas .cat i{width:9px; height:9px; border-radius:50%; background:var(--copper); display:inline-block}
.atlas .cat.c-a i{background:var(--mauve)} .atlas .cat.c-m i{background:var(--ink)} .atlas .cat.c-f i{background:transparent; box-shadow:0 0 0 1.5px var(--copper)}
.atlas .cat b{font-weight:600; color:var(--copper-text); font-variant-numeric:tabular-nums}
.atlas .cat:hover{border-color:var(--copper)}
.atlas .cat[aria-pressed="true"]{background:var(--ink); color:var(--base); border-color:var(--ink)}
.atlas .cat[aria-pressed="true"] b{color:var(--base); opacity:.75}
.atlas-chips{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:12px}
.atlas .chip{flex:none}
.atlas-face{margin-top:14px}

/* Tarjetas de caso: fotos completas, sin recorte */
.atlas .zone-view .atlas-nodes{grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:22px 18px; margin-top:28px}
.atlas .zone-view .atlas-nodes>li:nth-child(even){margin-top:0}
.atlas .node{background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:10px 10px 14px; height:100%; align-content:start}
.atlas .node:hover{border-color:var(--copper)}
.atlas .thumb{display:grid; grid-template-columns:1fr 1fr; gap:6px; width:100%}
.atlas .th{position:relative; aspect-ratio:1; background:var(--line); border-radius:12px; overflow:hidden}
.atlas .th img{width:100%; height:100%; object-fit:contain; display:block}
.atlas .th:only-child{grid-column:1/-1; justify-self:center; width:52%}
.atlas .th i{position:absolute; left:6px; bottom:6px; font-style:normal; font-size:.6rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; background:rgba(28,31,38,.72); color:#fff; padding:3px 7px; border-radius:999px}

/* Lamina: todas las fotos, cada una completa */
.atlas .stage{gap:26px}
.atlas .vrow{display:grid; gap:8px}
.atlas .vlabel{margin:0; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted)}
.atlas .dip{align-items:flex-start}
.atlas .dip figure{cursor:zoom-in}
.atlas .dip figure.solo{flex:0 1 calc(50% - 5px)}
.atlas .dip figure.big{flex-grow:1.7; cursor:zoom-out}
.atlas .dip figure.solo.big{flex-basis:100%}
.atlas .dip img{width:100%; height:auto; max-height:min(74vh,760px); object-fit:contain; display:block}
@media (max-width:520px){ .atlas .zone-view .atlas-nodes{grid-template-columns:1fr} .atlas .dip{flex-direction:column; align-items:stretch} .atlas .dip figure,.atlas .dip figure.solo,.atlas .dip figure.big,.atlas .dip figure.solo.big{flex:none; width:100%} }
