:root{font-family:Inter,Arial,sans-serif;color:#f2f2f4;background:#080b10;font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,select,.button{border:1px solid #36404a;border-radius:6px;padding:10px 12px;background:#151c23;color:#e9edf0;font:inherit;text-decoration:none;cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #edc377;outline-offset:3px}.controls{display:flex;align-items:center;gap:16px;padding:16px 3%;font-size:13px}.controls>a:first-child{margin-right:auto;text-decoration:none}.controls label{display:flex;align-items:center;gap:10px}#stage{--accent:#d9cba0;position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#0b1016;container-type:inline-size;isolation:isolate}#stage[data-state=extreme-fear]{--accent:#ff646b}#stage[data-state=fear]{--accent:#ffa262}#stage[data-state=greed]{--accent:#9ada83}#stage[data-state=extreme-greed]{--accent:#f8cf69}header{position:absolute;z-index:5;top:0;left:0;right:0;display:flex;align-items:center;gap:3cqw;padding:2.8cqw 3.8cqw;background:linear-gradient(#080c13bb,transparent)}.brand{font-size:1.65cqw;letter-spacing:.18em;font-weight:800;text-decoration:none}.brand span{display:block;font-size:.57cqw;font-weight:500;letter-spacing:.35em;margin-top:.6cqw;color:#d5d4cd}.feed-tag{margin-left:auto;display:flex;gap:.6cqw;align-items:center;border:1px solid #ffffff2a;border-radius:20px;padding:.65cqw 1cqw;font-size:.65cqw;letter-spacing:.11em;background:#0b101680}.feed-tag i{width:.4cqw;height:.4cqw;background:var(--accent);border-radius:50%;box-shadow:0 0 12px var(--accent)}#clock{font-size:.85cqw;color:#aaaeb8;font-variant-numeric:tabular-nums}.portrait{position:absolute;inset:0 54% 0 0;overflow:hidden}.photos{position:absolute;inset:0;animation:drift 14s ease-in-out infinite alternate}.photo{position:absolute;height:100%;width:100%;object-fit:cover;object-position:50% 32%;opacity:0;transition:opacity 1.5s}.photo.visible{opacity:1}.wash{position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,#0b1016),linear-gradient(0deg,#0b1016 0%,transparent 40%,#060c1244);box-shadow:inset 0 -4cqw 5cqw #0b1016}.portrait:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%);animation:breathe 6s ease-in-out infinite}.portrait-caption{position:absolute;z-index:2;bottom:7cqw;left:3.8cqw;right:5cqw}.portrait-caption>span{font-size:.56cqw;letter-spacing:.18em;color:#d0d3d7}.portrait-caption p{font-size:2cqw;line-height:1.25;max-width:27cqw;font-weight:600;margin:1cqw 0}.dashboard{position:absolute;top:9.2cqw;left:49%;right:4%;bottom:5cqw}.eyebrow{font-size:.68cqw;letter-spacing:.22em;color:var(--accent);margin-bottom:1cqw}h1{font-size:3.1cqw;line-height:1.09;letter-spacing:-.045em;margin:0;font-weight:650}h1 span{color:#a3abb6;font-weight:400}.reading{display:flex;align-items:baseline;gap:1cqw;margin-top:1cqw}.reading>strong{font-size:7.2cqw;font-weight:500;letter-spacing:-.07em;line-height:1.07;font-variant-numeric:tabular-nums}.reading>span{font-size:1.25cqw;color:#8f99a5}.reading-note{margin-left:auto;font-size:.68cqw;line-height:1.8;color:#a9b1bc}.reading-note a{text-underline-offset:3px}h2#label{font-size:2cqw;color:var(--accent);font-weight:500;margin:.1cqw 0 1.5cqw;letter-spacing:-.02em}.meter{position:relative;height:.56cqw;border-radius:20px;background:linear-gradient(90deg,#f45a67,#ed9859 30%,#dbcf91 50%,#92c784 68%,#e4bc58);margin-top:1cqw}#marker{position:absolute;top:-.33cqw;width:.3cqw;height:1.2cqw;background:white;box-shadow:0 0 0 .2cqw #0b1016;border-radius:5px;left:50%;transition:left 1.8s cubic-bezier(.2,.8,.2,1);display:none}.scale{display:flex;justify-content:space-between;font-size:.52cqw;letter-spacing:.07em;color:#8d99a6;margin-top:.8cqw}.insight{font-size:1.05cqw;line-height:1.55;color:#c3c9d1;margin:1.6cqw 0;max-width:42cqw;min-height:3.3cqw}.history{border-top:1px solid #ffffff19;border-bottom:1px solid #ffffff19;display:grid;grid-template-columns:repeat(4,1fr);padding:1.1cqw 0}.history div{display:flex;flex-direction:column;gap:.55cqw;padding-left:1.2cqw;border-left:1px solid #ffffff19}.history div:first-child{padding:0;border:0}.history span,.chart-head{font-size:.55cqw;letter-spacing:.09em;color:#84909e}.history strong{font-size:1.6cqw;font-weight:500}.chart-head{display:flex;justify-content:space-between;margin:1.2cqw 0 .45cqw}#chart{width:100%;height:5cqw}.chart-grid{stroke:#ffffff0e;fill:none}#sparkline{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}footer{position:absolute;bottom:0;left:0;right:0;padding:1.2cqw 3.8cqw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #ffffff19;background:#0b1016dd;font-size:.58cqw;letter-spacing:.06em;color:#acb4be}#mode-badge{color:var(--accent)}#particles{position:absolute;inset:0;overflow:hidden}.particle{position:absolute;left:var(--x);bottom:-20px;width:3px;height:3px;border-radius:50%;background:var(--accent);opacity:0;animation:float var(--duration) linear infinite;animation-delay:var(--delay)}.help{max-width:950px;margin:40px auto;padding:0 25px;color:#b6bec9;line-height:1.7}.help h2{color:white;font-size:22px}.broadcast .controls,.broadcast .help{display:none}.broadcast{overflow:hidden}.broadcast #stage{width:min(100vw,177.7778vh);margin:auto}.paused *,.paused *:after{animation-play-state:paused!important}.paused .photo,.paused #marker{transition:none}@keyframes drift{from{transform:scale(1.025) translateY(0)}to{transform:scale(1.085) translateY(-.7%)}}@keyframes breathe{50%{opacity:.45}}@keyframes float{15%{opacity:.45}85%{opacity:.25}100%{transform:translate(30px,-65vh);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:after{animation:none!important;transition:none!important}}@media(max-width:800px){.controls{flex-wrap:wrap}.controls>a:first-child{width:100%}.controls label{width:100%}.controls select{max-width:80%}.help{margin-top:24px}}
#stage[data-state=extreme-fear] .photos{animation-duration:8s}#stage[data-state=extreme-fear] .particle{animation-direction:reverse;width:2px;height:14px;border-radius:0}#stage[data-state=fear] .particle{animation-direction:reverse}#stage[data-state=neutral] .particle:nth-child(n+7){display:none}#stage[data-state=neutral] .photos{animation-duration:22s}#stage[data-state=greed] .photos{animation-duration:12s}#stage[data-state=extreme-greed] .particle{width:5px;height:5px;box-shadow:0 0 12px var(--accent)}#stage[data-state=extreme-greed] .wash{box-shadow:inset 0 -4cqw 5cqw #0b1016,inset 0 0 4cqw #d8a55218}#stage:fullscreen{width:100vw;height:100vh;aspect-ratio:auto}
/* Animación de Nina: respiración, balanceo de cámara en mano, luz, latido por estado, bokeh y cambio de escena. */
#stage{--resp:5s;--sway:17s;--beat:2.4s;--beat-k:.55;--light:13s}
#stage[data-state=extreme-fear]{--resp:2.6s;--sway:9s;--beat:.95s;--beat-k:1;--light:7s}
#stage[data-state=fear]{--resp:3.6s;--sway:12s;--beat:1.5s;--beat-k:.75;--light:10s}
#stage[data-state=neutral]{--resp:5.6s;--sway:20s;--beat:3s;--beat-k:0;--light:16s}
#stage[data-state=greed]{--resp:4.4s;--sway:15s;--beat:2.2s;--beat-k:.5;--light:12s}
#stage[data-state=extreme-greed]{--resp:3.4s;--sway:11s;--beat:1.25s;--beat-k:.85;--light:8s}
.sway{position:absolute;inset:0;animation:balanceo var(--sway) ease-in-out infinite}
.breath{position:absolute;inset:0;transform-origin:50% 100%;animation:respira var(--resp) ease-in-out infinite}
.photo{transform:scale(1.07);filter:blur(7px) saturate(.8);transition:opacity 1.5s,transform 2.2s cubic-bezier(.2,.8,.2,1),filter 1.6s}
.photo.visible{transform:scale(1);filter:none}
.light{position:absolute;inset:-10% -60%;pointer-events:none;mix-blend-mode:soft-light;background:linear-gradient(105deg,transparent 38%,color-mix(in srgb,var(--accent) 55%,#fff) 50%,transparent 62%);opacity:.55;animation:barrido var(--light) ease-in-out infinite}
.pulse{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 9cqw color-mix(in srgb,var(--accent) 45%,transparent);opacity:0;animation:latido var(--beat) ease-out infinite}
#stage[data-state=neutral] .pulse{display:none}
#bokeh{position:absolute;inset:0;overflow:hidden;pointer-events:none}
#bokeh i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 60%,#fff) 0%,transparent 68%);filter:blur(.5cqw);opacity:.16;animation:flota var(--d) ease-in-out infinite alternate;animation-delay:var(--delay);transition:background 1.5s}
#stage[data-state=extreme-fear] #bokeh i,#stage[data-state=fear] #bokeh i{opacity:.1}
#stage[data-state=extreme-greed] #bokeh i{opacity:.26}
#mood-line.enter{animation:linea 1.1s cubic-bezier(.2,.8,.2,1) both}
.feed-tag i{animation:punto var(--beat) ease-out infinite}
#value{display:inline-block}
@keyframes respira{0%,100%{transform:scale(1,1) translateY(0)}42%{transform:scale(1.006,1.016) translateY(-.3%)}}
@keyframes balanceo{0%,100%{transform:translate(0,0) rotate(0)}27%{transform:translate(-.45%,.2%) rotate(-.35deg)}61%{transform:translate(.4%,-.15%) rotate(.3deg)}83%{transform:translate(.1%,.25%) rotate(-.1deg)}}
@keyframes barrido{0%{transform:translateX(-28%)}50%{transform:translateX(28%)}100%{transform:translateX(-28%)}}
@keyframes latido{0%{opacity:0}12%{opacity:var(--beat-k)}28%{opacity:calc(var(--beat-k)*.25)}40%{opacity:calc(var(--beat-k)*.7)}100%{opacity:0}}
@keyframes flota{from{transform:translate(0,0) scale(1)}to{transform:translate(2.5cqw,-3cqw) scale(1.25)}}
@keyframes linea{from{opacity:0;transform:translateY(.8cqw);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes punto{0%{transform:scale(1)}15%{transform:scale(1.7)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.photo{transform:none;filter:none}}
.clip{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 32%;opacity:0;transition:opacity 1.2s;pointer-events:none}
.clip.visible{opacity:1}
