/* Open data stories. Viewport entry starts a visible, reversible timeline. */
.story{--p:1;--copy:1;position:relative;min-height:95svh;padding:120px 0;border:0}
.wrap{max-width:1280px}.layout{gap:85px}.chapter{font-size:13px;letter-spacing:.14em}
.story:nth-of-type(even){background:#fff}.story h2{font-size:clamp(34px,4vw,56px)}
.number{font-size:clamp(115px,15.3vw,220px);letter-spacing:-.085em;margin:5px 0 20px;line-height:.95}
.number{display:flex;align-items:baseline;gap:.06em;letter-spacing:normal}.digits{letter-spacing:-.075em}.unit{display:inline-block;flex:none;font-size:.35em;letter-spacing:0;margin-left:.12em}.caption{font-size:16px;max-width:400px}
.impact{background:none;border:0;border-radius:0;padding:20px 0 0;margin:28px 0;color:var(--purple);font-size:25px;position:relative}
.impact:before{content:"";display:block;width:40px;height:3px;background:var(--pink);margin-bottom:17px}
.visual-label{font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:18px 0}
html.scrub .meaning{opacity:var(--copy);transform:translateY(calc((1 - var(--copy))*24px))}
html.scrub .meaning.reading,html.scrub .meaning:focus-within{opacity:1;transform:none}
html.motion .reveal.pending{opacity:1;transform:none}html.motion .reveal{transition:none}
#right .visual{position:relative}#right .number{position:relative;z-index:1}
#right .dots{max-width:440px;gap:7px;margin:28px 0 20px;transform:perspective(700px) rotateX(calc((1 - var(--p))*18deg));transform-origin:top}
#right .dot{border-radius:50%;background:#ebe5ef;aspect-ratio:1.7;position:relative}
#right .dot.on{background:#ebe5ef}
#right .dot.on:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(130deg,var(--purple),var(--pink));opacity:var(--fill,1);transform:scale(var(--fill,1))}
.visual-meter{height:3px;max-width:440px;background:#ebe5ef}.visual-meter i{display:block;height:100%;width:67%;background:var(--purple);transform:scaleX(var(--p));transform-origin:left}
#followers{background:linear-gradient(180deg,#fff,#faf6fd 60%,#fff)}
#followers .visual{order:2;position:relative;padding:25px 0}#followers .meaning{order:1}
#followers .number{font-size:clamp(120px,14.5vw,205px);position:relative;z-index:2;letter-spacing:-.09em}
#followers .caption{position:relative;z-index:2;margin-bottom:45px}
.audience-spectrum{height:210px;position:relative;isolation:isolate;margin-top:-15px}
.spectrum-bars{display:flex;align-items:flex-end;gap:5px;position:absolute;inset:0 0 28px}
.spectrum-bars i{flex:1;height:var(--h);min-width:1px;border-radius:7px 7px 0 0;background:linear-gradient(0deg,#8134af22,var(--purple));transform:scaleY(var(--stem,1));transform-origin:bottom}
.spectrum-bars i:nth-child(3n){background:linear-gradient(0deg,#dd2a7b11,var(--pink))}
.spectrum-reference{position:absolute;left:0;right:0;top:43%;border-top:2px dashed #9b7bad;transform:translateY(calc((1 - var(--p))*40px))}
.spectrum-labels{position:absolute;bottom:0;display:flex;justify-content:space-between;width:100%;font-size:14px;color:var(--muted)}.spectrum-labels b{color:var(--pink)}
#conflict{padding:100px 0;background:#fff}#conflict .layout{display:flex;flex-direction:column;gap:15px}#conflict .layout>div{width:100%;text-align:center}
#conflict .number{font-size:clamp(130px,17vw,230px);margin:0;justify-content:center}#conflict .caption{max-width:none;margin:25px auto}
#conflict h2{font-size:clamp(33px,4.5vw,62px)}#conflict h2 br{display:none}#conflict .explain{max-width:680px;margin:0 auto}
#conflict .impact{max-width:700px;margin:28px auto}#conflict .impact:before{margin:0 auto 17px}#conflict details{max-width:700px;margin:18px auto;text-align:left}
.conflict-map{position:relative;width:100%;max-width:850px;height:340px;margin:35px auto 20px}.map-lines{position:absolute;width:100%;height:100%;inset:0;overflow:visible}
.map-lines path{fill:none;stroke:#d9bce9;stroke-width:2;stroke-dasharray:7 8;stroke-dashoffset:calc(var(--p)*-90);opacity:var(--p)}
.map-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:110px;height:110px;display:grid;place-items:center;border-radius:50%;background:var(--purple);color:white;font-size:29px;font-weight:700;box-shadow:0 0 0 calc(10px + var(--p)*8px) #f6f1fb;z-index:2}
.map-card{position:absolute;width:225px;padding:16px 20px;text-align:left;border:1px solid #e4d4ed;border-radius:14px;background:white;box-shadow:0 10px 30px #8134af09;transform:translate(calc((1 - var(--p))*var(--x)*1.7),calc((1 - var(--p))*var(--y)*1.7)) rotate(calc(var(--p)*var(--rot))) scale(calc(.65 + var(--p)*.35));opacity:var(--p)}
.map-card small{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}.map-card b{color:var(--purple);font-size:20px}
.map-card.a{left:2%;top:13%}.map-card.b{right:2%;top:7%}.map-card.c{left:7%;bottom:4%}.map-card.d{right:7%;bottom:1%}
#fame{background:radial-gradient(ellipse at 70% 45%,#f5eafc,white 65%);color:var(--ink)}#fame .visual{order:2;text-align:center}#fame .meaning{order:1}
#fame.enhanced .number{display:none}#fame .caption{margin:20px auto}.fame-orbit{position:relative;width:100%;max-width:470px;aspect-ratio:1;margin:30px auto}
.fame-orbit svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.orbit-track{fill:none;stroke:#e6d8ef;stroke-width:2;stroke-dasharray:2 9}
.orbit-arc{fill:none;stroke:var(--pink);stroke-width:9;stroke-linecap:round;stroke-dasharray:calc(var(--p)*411) 1118.4}
.fame-background{position:absolute;left:50%;top:8%;transform:translateX(-50%) translateY(calc((1 - var(--p))*35px));font-size:clamp(85px,10vw,150px);font-weight:700;letter-spacing:-.07em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #d2b3e2;opacity:calc(.2 + var(--p)*.8)}
.orbit-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:clamp(120px,13vw,185px);letter-spacing:-.08em;color:var(--purple);transform:translateY(3%)}.orbit-value span{font-size:.24em;letter-spacing:-.02em;align-self:center;margin-top:65px}
.orbit-label{position:absolute;bottom:13%;left:0;right:0;font-size:15px;color:var(--muted);line-height:1.35}
#platform .number{margin-bottom:40px}#platform .bar-label{margin-top:25px;font-size:17px;align-items:center}#platform .bar-label span{display:flex;align-items:center;gap:12px}#platform .bar-label svg{width:30px;height:27px}
#platform .track{height:32px;border-radius:0;background:#f1ebf5;overflow:visible}#platform .track i{border-radius:0 5px 5px 0;transform:scaleX(var(--p));transform-origin:left;background:linear-gradient(90deg,#8134af80,var(--purple))}#platform .track i.pink{background:linear-gradient(90deg,#dd2a7b80,var(--pink))}
#platform .track i{transform:scaleX(var(--yt,1))}#platform .track i.pink{transform:scaleX(var(--ig,1))}
#search{background:linear-gradient(180deg,white,#f7f1fb 65%,white)}#search .visual{padding:0;background:none;border:0;box-shadow:none}#search .number{font-size:clamp(135px,16vw,225px)}
#search .track{height:34px;border-radius:0;background:#e9ddef}#search .track i{border-radius:0;background:linear-gradient(90deg,var(--purple),var(--pink))}.scroll-hint{font-size:13px;color:var(--muted);margin:-10px 0 25px}.switch{background:none;border:1px solid #dcc9ee;padding:5px}.switch button[aria-pressed=true]{background:var(--purple);color:#fff;box-shadow:none}
#search .track i{transition:width 1.2s cubic-bezier(.2,.7,.2,1)}#search .caption{min-height:3.1em}
.closing{--p:1;padding:120px 0;background:radial-gradient(ellipse at 80% 45%,#f4e6fb,white 65%)}.closing .layout{grid-template-columns:1fr 1.15fr}.closing h2{font-size:clamp(38px,4.5vw,62px)}.closing h2 a{color:inherit;text-decoration:none}.closing h2 a:hover{color:var(--purple)}
.record-action{position:relative;display:block;padding:30px 0 0;text-decoration:none;color:var(--ink);border-top:2px solid var(--purple)}.record-action .eyebrow{display:block;margin-bottom:28px}.action-title{display:block;font-size:clamp(42px,4.5vw,64px);line-height:1.02;letter-spacing:-.05em;font-weight:700;color:var(--purple);padding-right:40px}.action-sub{display:block;font-size:23px;margin:15px 0 30px;color:var(--muted)}
.action-arrow{position:absolute;right:0;top:62px;font-size:65px;line-height:1;color:var(--pink);transform:translate(calc((1 - var(--p))*-15px),calc((1 - var(--p))*15px));transition:color .2s}
.action-row{display:flex;justify-content:space-between;gap:15px;padding:18px 0;border-bottom:1px solid #dfcfe8;font-size:17px}.action-row b{font-weight:400;color:var(--purple)}.action-button{display:flex;align-items:center;justify-content:space-between;background:var(--purple);color:white;font-size:21px;font-weight:700;border-radius:40px;padding:20px 28px;margin:30px 0 15px;transition:background .2s,transform .2s}.action-button span{font-size:27px}.record-action:hover .action-button{background:#69258f;transform:translateY(-3px)}.record-action:hover .action-arrow{color:var(--purple)}.record-action .fine{display:block;text-align:center}
.record-action:hover .action-button,.record-action:focus-visible .action-button,.button:hover{background:var(--pink)}
.record-action:hover .action-arrow,.closing h2 a:hover{color:var(--pink)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero.conversation{position:relative;min-height:calc(100svh - 65px);padding:55px 0 65px;background:radial-gradient(ellipse at 50% 25%,#f5eafb,white 70%)}
.conversation .chat{display:flex;align-items:center;gap:15px;width:min(540px,100%);min-height:70px;margin:0 auto 28px;padding:17px 20px;border-radius:23px;background:white;text-align:left;font-size:18px;box-shadow:0 15px 55px #8134af12;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.prompt-dot{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));flex:none}.prompt-send{margin-left:auto;background:var(--purple);color:white;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;flex:none}.typed-prompt{line-height:1.4}.caret{height:22px;width:2px;background:var(--purple);flex:none;margin-left:-12px}.intro-ready .caret{display:none}
.conversation h1{font-size:clamp(46px,6vw,80px);line-height:.99;margin-bottom:25px}.engine-slot{display:inline-block;min-height:1.15em;min-width:7ch;vertical-align:top}.conversation .engine-name{display:inline-block;font-style:normal;background:linear-gradient(100deg,var(--purple),var(--pink));background-clip:text;-webkit-background-clip:text;color:transparent;line-height:1.1}
.conversation .lead{font-size:20px;margin-bottom:16px}.conversation .hero-impact{margin:20px 0}.conversation .wrap>h1,.conversation .wrap>p,.conversation .scroll{transition:opacity .65s,transform .65s}.intro-playing .wrap>h1,.intro-playing .wrap>p,.intro-playing .scroll{opacity:0;transform:translateY(25px);pointer-events:none}.intro-playing .chat{transform:translateY(230px)}
.scroll-arrow{display:inline-block;margin-left:12px;font-size:23px;color:var(--pink)}.invite-scroll .scroll-arrow{animation:scroll-nudge .65s ease-in-out 3}
@keyframes scroll-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@media(max-width:900px) and (min-width:701px){.layout{gap:35px}.number,#followers .number{font-size:120px}.story h2{font-size:38px}.orbit-value{font-size:120px}.action-title{font-size:42px}}
@media(max-width:700px){.wrap{padding:0 24px}.story{padding:75px 0;min-height:0}.layout{gap:35px}.story h2{font-size:38px}.number{font-size:clamp(125px,34vw,200px)}.caption{font-size:16px}.impact{font-size:23px}.chapter{font-size:12px}
#followers .visual,#fame .visual,#followers .meaning,#fame .meaning{order:0}#followers .number{font-size:clamp(115px,32vw,185px)}#followers .caption{margin-bottom:30px}.audience-spectrum{height:170px}.spectrum-bars{gap:3px}
#right .dots{gap:5px}#conflict{padding:75px 0}#conflict .number{font-size:145px}#conflict h2 br{display:block}#conflict h2{margin:10px auto 25px;font-size:38px}#conflict .impact{text-align:left}#conflict .impact:before{margin-left:0}
.conflict-map{height:300px;margin:25px auto 15px}.map-core{width:72px;height:72px;font-size:22px}.map-card{width:130px;padding:12px 13px}.map-card b{font-size:15px}.map-card small{font-size:12px}.map-card.a{left:0;top:2%}.map-card.b{right:0;top:8%}.map-card.c{left:0;bottom:7%}.map-card.d{right:0;bottom:0}
.fame-orbit{max-width:380px;margin:10px auto}.orbit-value{font-size:140px}.fame-background{font-size:110px}.orbit-label{font-size:14px}.orbit-value span{margin-top:55px}
#search .number{font-size:150px}.switch button{font-size:13px;padding:10px 12px}.closing{padding:80px 0}.closing .layout{grid-template-columns:1fr;gap:40px}.closing h2{font-size:42px}.action-title{font-size:48px}.action-row{font-size:16px}.action-button{font-size:19px;padding:18px 23px}.action-arrow{font-size:52px}
.conversation .chat{font-size:15px;gap:10px;min-height:66px;padding:14px}.prompt-send{width:28px;height:28px}.prompt-dot{width:13px;height:13px}.conversation h1{font-size:clamp(42px,11.8vw,72px)}.conversation .lead{font-size:18px}.intro-playing .chat{transform:translateY(190px)}.conversation .hero-impact{font-size:16px}.hero.conversation{padding:40px 0 50px}.engine-slot{min-width:0;width:100%}
}
.conversation .chat{transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.conversation .engine-slot{position:relative;height:1.12em;min-height:1.12em;overflow:hidden;vertical-align:bottom}
.engine-reel{display:block;transition:transform 900ms cubic-bezier(.45,0,.15,1);will-change:transform}
.conversation .engine-name{display:block;height:1.12em;line-height:1.12;white-space:nowrap}
.hero [data-display]::before{content:attr(data-display)}
.conversation .wrap>h1,.conversation .wrap>p,.conversation .scroll{transition:opacity .9s .15s,transform .9s .15s}
.intro-playing .wrap>h1,.intro-playing .wrap>p,.intro-playing .scroll{transition-delay:0s}
.scroll{transition:color .2s,border-color .2s,opacity .9s,transform .9s!important}.scroll:hover,.scroll:focus-visible{color:var(--pink);border-color:var(--pink)}
.nav a:hover,.method a:hover,.footer a:hover,summary:hover{color:var(--pink)}
.impact:before{display:none}.impact{padding-top:10px;line-height:1.55}
.impact-words{padding-bottom:6px;background-image:linear-gradient(90deg,var(--purple),var(--pink));background-position:left bottom;background-size:0% 3px;background-repeat:no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size 1s cubic-bezier(.2,.7,.2,1) .15s}
.story .impact-visible .impact-words{background-size:calc(var(--copy)*100%) 3px}.closing .impact-visible .impact-words{background-size:100% 3px}
#conflict .impact{text-align:center}#conflict details summary{width:fit-content;margin-inline:auto;text-align:center}#conflict details p{text-align:left}
.intro .amiss span{display:inline-block}.intro .expansion{display:flex;flex-wrap:wrap;gap:.24em;justify-content:center;color:var(--ink)}.intro .expansion b{color:var(--purple);font-weight:700}
.intro.name-revealed .amiss span{animation:acronym-light 1.5s both}.intro.name-revealed .amiss span:nth-child(2){animation-delay:.4s}.intro.name-revealed .amiss span:nth-child(3){animation-delay:.8s}
.intro .expansion>span{opacity:0;transform:translateY(-32px);transition:opacity .85s,transform 1s cubic-bezier(.22,1,.36,1)}.intro.name-revealed .expansion>span{opacity:1;transform:none;transition-delay:.3s}.intro.name-revealed .expansion>span:nth-child(2){transition-delay:.7s}.intro.name-revealed .expansion>span:nth-child(3){transition-delay:1.1s}
@keyframes acronym-light{0%{color:var(--purple);transform:translateY(8px)}35%{color:var(--pink);transform:translateY(-4px)}100%{color:var(--purple);transform:none}}
@media(prefers-reduced-motion:reduce){html.scrub .meaning{opacity:1;transform:none}.story,.closing{--p:1!important;--copy:1!important}*,*:before,*:after{animation:none!important;transition:none!important}.intro .expansion>span{opacity:1;transform:none}.impact-words{background-size:100% 3px}}
@media print{html.scrub .meaning{opacity:1;transform:none}.story,.closing{--p:1!important;--copy:1!important}.story{min-height:0;padding:30px 0}.dot.on:after{opacity:1;transform:none}}
.hero-impact .impact-words{padding-bottom:8px;background-size:100% 2px}
