/* Provoca-se — estilos do site */

body{margin:0;background:#0E0E0E}
a{color:#F7F5EF}a:hover{color:#FF6A00}
.ps *{box-sizing:border-box}
.disp{font-family:'Archivo Black',Impact,sans-serif;text-transform:uppercase;letter-spacing:-0.01em;line-height:.95}
.k{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.num{font-variant-numeric:tabular-nums}
.ease{transition-timing-function:cubic-bezier(.16,.84,.24,1)}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.rise{animation:rise .9s cubic-bezier(.16,.84,.24,1) both}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.fade{animation:fadein .6s ease both}
.d1{animation-delay:.1s}.d2{animation-delay:.22s}.d3{animation-delay:.36s}.d4{animation-delay:.52s}.d5{animation-delay:.7s}
@keyframes gridmove{to{background-position:0 -88px,0 -88px}}
.gridbg{animation:gridmove 7s linear infinite}
@keyframes barwave{0%,36%,64%,100%{background:#1a1a1a;transform:scaleY(.94)}50%{background:#FF6A00;transform:scaleY(1.06)}}
.bars span{display:block;flex:1;transform-origin:bottom;background:#1a1a1a;animation:barwave 5.2s ease-in-out infinite}
@keyframes comet{from{stroke-dashoffset:1700}to{stroke-dashoffset:0}}
.comet{stroke-dasharray:160 1540;animation:comet 5.2s linear infinite}
@keyframes growY{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.growY{transform-origin:top;animation:growY 1.4s cubic-bezier(.16,.84,.24,1) .6s both}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.grow{transform-origin:left;animation:grow 1.1s cubic-bezier(.16,.84,.24,1) .3s both}
@keyframes scrolldot{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(18px);opacity:0}}
.scrolldot{animation:scrolldot 1.8s ease-in-out infinite}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}
.eq span{display:block;width:3px;height:14px;background:#FF6A00;transform-origin:bottom;animation:eq .9s ease-in-out infinite}
.eq span:nth-child(2){animation-delay:.2s}.eq span:nth-child(3){animation-delay:.4s}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.pulse{animation:pulse 1.8s ease-in-out infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spin{animation:spin 40s linear infinite}
.spinfast{animation:spin 16s linear infinite}
@keyframes stepin{from{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}
.stepin{animation:stepin .9s cubic-bezier(.16,.84,.24,1) both}
.card{transition:border-color .35s,transform .35s cubic-bezier(.16,.84,.24,1),background .35s;position:relative}
.card:hover{border-color:#FF6A00;transform:translateY(-4px)}
.arrow svg{transition:transform .3s}
.arrow:hover svg,.card:hover .arrow svg,.step:hover .arrow svg{transform:translateX(4px)}
.btn{transition:transform .25s,background .25s,color .25s,border-color .25s}
.btn:hover{transform:translateY(-2px)}
.btn-fire:hover{background:#F7F5EF;color:#0E0E0E}
.btn-line:hover{border-color:#FF6A00;color:#FF6A00}
.qrow{position:relative;overflow:hidden}
.qrow::before{content:"";position:absolute;inset:0;background:#141414;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.16,.84,.24,1)}
.qrow:hover::before{transform:scaleX(1)}
.qrow>*{position:relative}
.qnum{color:transparent;-webkit-text-stroke:1px #3d3a36;transition:-webkit-text-stroke-color .4s,color .4s}
.qrow:hover .qnum{-webkit-text-stroke-color:#FF6A00}
.qtext{transition:transform .5s cubic-bezier(.16,.84,.24,1)}
.qrow:hover .qtext{transform:translateX(12px)}
.circ{transition:background .8s cubic-bezier(.16,.84,.24,1),color .5s,transform .8s cubic-bezier(.16,.84,.24,1),box-shadow .8s,border-color .8s;cursor:pointer}
.circ:hover{border-color:rgba(255,176,103,.7)!important}
.orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}
@keyframes float1{0%{transform:translate(0,0) scale(1)}100%{transform:translate(160px,-50px) scale(1.15)}}
@keyframes float2{0%{transform:translate(0,0) scale(1.1)}100%{transform:translate(-180px,70px) scale(.95)}}
.o1{animation:float1 16s ease-in-out infinite alternate}
.o2{animation:float2 19s ease-in-out infinite alternate}
@keyframes breathe{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
.breathe{animation:breathe 6s ease-in-out infinite}
@keyframes sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
.beam{transform-origin:50% 0;animation:sway 13s ease-in-out infinite}
@keyframes spark{0%{transform:translateY(0);opacity:0}12%{opacity:1}80%{opacity:.8}100%{transform:translateY(-820px);opacity:0}}
.spark{position:absolute;bottom:-10px;border-radius:50%;animation-name:spark;animation-timing-function:linear;animation-iteration-count:infinite}
@keyframes kb{0%{transform:scale(1.04) translate(0,0)}100%{transform:scale(1.16) translate(-2.5%,-1%)}}
.kenburns{animation:kb 24s ease-in-out infinite alternate;transform-origin:72% 55%}
@keyframes dawn{0%{filter:brightness(.15) saturate(.5)}100%{filter:brightness(.55) saturate(.8)}}
.dawn{animation:dawn 3.6s cubic-bezier(.4,.1,.2,1) .2s both}
@keyframes sweep{0%{left:-35%}100%{left:110%}}
.sweep{animation:sweep 9s ease-in-out infinite}
.glass{background:linear-gradient(140deg,rgba(255,255,255,.10),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.14);border-radius:18px;-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12);color:#F7F5EF;text-align:left}
.gcard{display:flex;align-items:center;gap:10px;padding:9px 14px 9px 9px;border-radius:14px;transition:border-color .8s,box-shadow .8s}
.gicon{width:30px;height:30px;border-radius:9px;background:rgba(255,106,0,.12);border:1px solid rgba(255,106,0,.3);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.gtxt{display:flex;flex-direction:column;gap:1px}
.gk{font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#BDB9B0}
.gt{font-size:13px;font-weight:700;color:#F7F5EF}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.bob{animation:bob 6s ease-in-out infinite}.b2{animation-duration:7s;animation-delay:-2s}.b3{animation-duration:5.5s;animation-delay:-1s}.b4{animation-duration:6.5s;animation-delay:-3s}
@media (max-width:1180px){.glasswrap{display:none!important}}
.shine{-webkit-mask-image:url(../img/titulo.png);mask-image:url(../img/titulo.png);-webkit-mask-size:100% 100%;mask-size:100% 100%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.55) 50%,transparent 58%);background-size:260% 100%;mix-blend-mode:screen;animation:shine 7s ease-in-out 1.6s infinite}
@keyframes shine{0%{background-position:140% 0}45%,100%{background-position:-40% 0}}
@keyframes flare{0%{transform:scaleX(0);opacity:0}40%{opacity:1}100%{transform:scaleX(1);opacity:1}}
.flare{animation:flare 1.6s cubic-bezier(.16,.84,.24,1) .6s both}
@keyframes twinkle{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1)}}
.twinkle{animation:twinkle 3.4s ease-in-out infinite}.t2{animation-delay:1.7s;animation-duration:4.2s}
@keyframes diag{to{background-position:0 -460px}}
.diag{animation:diag 30s linear infinite}
@keyframes scan{0%{top:100%;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:0%;opacity:0}}
.scanline{animation:scan 9s cubic-bezier(.4,0,.6,1) infinite}
.keyimg{position:absolute;inset:-3%}
@keyframes kf1{0%,42%{opacity:1;transform:scale(1.02)}50%,92%{opacity:0;transform:scale(1.12)}100%{opacity:1;transform:scale(1.02)}}
@keyframes kf2{0%,42%{opacity:0;transform:scale(1.14) translateX(1%)}50%{opacity:1;transform:scale(1.08)}92%{opacity:1;transform:scale(1.0)}100%{opacity:0;transform:scale(1.0)}}
.k1{animation:kf1 16s ease-in-out infinite}
.k2{animation:kf2 16s ease-in-out infinite}
@keyframes seg1{0%{width:0}46%{width:100%}50%,100%{width:100%;opacity:.35}}
@keyframes seg2{0%,46%{width:0}96%{width:100%}100%{width:100%}}
.s1{animation:seg1 16s linear infinite}
.s2{animation:seg2 16s linear infinite}
.dopt{transition:border-color .25s,background .25s,transform .25s}
.dopt:hover{border-color:#FF6A00;background:rgba(255,106,0,.08);transform:translateX(4px)}
.dopt:hover .dkey{border-color:#FF6A00;color:#FF6A00}
.vcover .vplay{transition:transform .4s cubic-bezier(.16,.84,.24,1)}
.vcover:hover .vplay{transform:scale(1.08)}
@keyframes ping{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
.ping{animation:ping 2s cubic-bezier(0,0,.2,1) infinite}
@keyframes wv{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.wv.on span{animation:wv .9s ease-in-out infinite;transform-origin:center}
@keyframes nlm{to{transform:translateX(-50%)}}
.nltrack{display:inline-block;animation:nlm 40s linear infinite}
.nlbtn:hover{background:#F7F5EF!important}
@keyframes notif{0%,8%{opacity:0;transform:translateY(-16px) scale(.96)}14%,70%{opacity:1;transform:none}78%,100%{opacity:0;transform:translateY(-10px) scale(.97)}}
.notif{animation:notif 7s cubic-bezier(.16,.84,.24,1) infinite}
@media (max-width:640px){.notif{left:-10px!important}}
.frontphone{margin-left:150px}
@media (max-width:760px){.frontphone{margin-left:0}.backphone,.sealwrap,.chipwrap{display:none!important}}
@keyframes env{0%{transform:translateY(0) rotate(-8deg);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateY(-900px) rotate(14deg);opacity:0}}
.env{animation-name:env;animation-timing-function:linear;animation-iteration-count:infinite}
@media (max-width:900px){.vlabel{display:none}}
.mcard .mphoto{transition:transform 1.2s cubic-bezier(.16,.84,.24,1),filter .6s;filter:grayscale(.3) brightness(.92)}
.mcard:hover .mphoto{transform:scale(1.05);filter:none}
.mcard .mline{transform-origin:left;transform:scaleX(.35);transition:transform .7s cubic-bezier(.16,.84,.24,1)}
.mcard:hover .mline{transform:scaleX(1)}
@media (max-width:900px){.mcard{margin-top:0!important}}

/* ---- intro: door opening ---- */
.intro{position:fixed;inset:0;z-index:200;pointer-events:none;perspective:1400px;overflow:hidden;animation:introPush 1.9s cubic-bezier(.6,0,.2,1) 1.45s forwards,introOut .7s ease 2.95s forwards}
@keyframes introPush{from{scale:1}to{scale:1.35}}
@keyframes introOut{to{opacity:0;visibility:hidden}}
.door{position:absolute;top:0;bottom:0;width:50.2%;background:linear-gradient(90deg,#0a0a0a,#121212 60%,#0d0d0d);box-shadow:inset 0 0 120px rgba(0,0,0,.8)}
.door::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 64px)}
.dl{left:0;transform-origin:left center;animation:dl 1.6s cubic-bezier(.65,0,.2,1) 1.45s forwards}
.dr{right:0;transform-origin:right center;animation:dr 1.6s cubic-bezier(.65,0,.2,1) 1.45s forwards}
@keyframes dl{0%{transform:rotateY(0);filter:brightness(1)}100%{transform:rotateY(84deg);filter:brightness(.25)}}
@keyframes dr{0%{transform:rotateY(0);filter:brightness(1)}100%{transform:rotateY(-84deg);filter:brightness(.25)}}
.dedge{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(255,170,90,.7),transparent);opacity:0;animation:dedge 1.2s ease 1s forwards}
@keyframes dedge{to{opacity:1}}
.slit{position:absolute;left:50%;top:50%;width:2px;height:0;margin-left:-1px;background:#FFE3C4;box-shadow:0 0 24px 4px rgba(255,140,50,.9),0 0 80px 18px rgba(255,106,0,.45);animation:slit .9s cubic-bezier(.6,0,.2,1) .75s forwards,slitOut .6s ease 1.6s forwards}
@keyframes slit{to{height:100%;top:0}}
@keyframes slitOut{to{opacity:0;width:60px;margin-left:-30px;filter:blur(20px)}}
.flood{position:absolute;inset:0;background:radial-gradient(ellipse 40% 70% at 50% 50%,rgba(255,200,140,.55),rgba(255,106,0,.18) 45%,transparent 75%);opacity:0;animation:flood 1.8s ease 1.45s forwards}
@keyframes flood{0%{opacity:0;transform:scaleX(.2)}35%{opacity:1}100%{opacity:0;transform:scaleX(1.6)}}
.ilogo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;animation:ilogo 1.55s cubic-bezier(.3,.6,.3,1) .1s both}
@keyframes ilogo{0%{opacity:0;filter:blur(8px)}35%{opacity:1;filter:blur(0)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.96);filter:blur(4px)}}
.iword{animation:iword 1.2s cubic-bezier(.16,.84,.24,1) .1s both}
@keyframes iword{from{letter-spacing:.5em}to{letter-spacing:-0.01em}}
.itag{animation:fadein .8s ease .45s both}
#topo .rise{animation-delay:2.25s}#topo .d1{animation-delay:2.4s}#topo .d2{animation-delay:2.55s}#topo .d3{animation-delay:2.7s}#topo .d4{animation-delay:2.9s}#topo .d5{animation-delay:3.05s}
#topo .dawn{animation-delay:1.55s}
@keyframes heroIn{from{scale:1.08}to{scale:1}}
#topo .kenburns{scale:1.08;animation:kb 24s ease-in-out infinite alternate,heroIn 2.4s cubic-bezier(.16,.84,.24,1) 1.5s forwards}
/* ---- scroll progress ---- */
.sprog{position:fixed;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,#FF6A00,#FFB067);transform-origin:left;transform:scaleX(0);z-index:60;display:none}
/* ---- scroll-driven motion ---- */
@keyframes rvUp{from{opacity:0;translate:0 56px}to{opacity:1;translate:0 0}}
@keyframes rvClip{from{clip-path:inset(0 0 100% 0);translate:0 36px}to{clip-path:inset(-10% -10% -10% -10%);translate:0 0}}
@keyframes par{from{translate:0 -6%;scale:1.14}to{translate:0 6%;scale:1.14}}
@keyframes sprog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@supports (animation-timeline: view()) {
.sprog{display:block;animation:sprog linear both;animation-timeline:scroll(root)}
.ps[data-anim="on"] section:not(#topo) div[style*="max-width: 1320px"] > *{animation:flow linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
.ps[data-anim="on"] section:not(#topo) h2{animation:flowClip linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
.ps[data-anim="on"] .qrow,.ps[data-anim="on"] .mcard,.ps[data-anim="on"] .col,.ps[data-anim="on"] .dopt{animation:flowItem linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
.ps[data-anim="on"] .keyimg img{animation:par linear both;animation-timeline:view()}
.ps[data-anim="on"] .mphoto{animation:par linear both;animation-timeline:view()}
.ps[data-anim="on"] #podcast img.kenburns{animation:kb 24s ease-in-out infinite alternate,par linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] #manifesto [style*="aspect-ratio: 16 / 9"]{animation:zoomIn linear both;animation-timeline:view();animation-range:entry 0% cover 45%}
.ps[data-anim="on"] section:not(#topo) .orb.breathe{animation:breathe 6s ease-in-out infinite,driftA linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] section:not(#topo) .orb.o1{animation:float1 16s ease-in-out infinite alternate,driftB linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] section:not(#topo) .orb.o2{animation:float2 19s ease-in-out infinite alternate,driftA linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] section:not(#topo) .diag{animation:diag 30s linear infinite,driftB linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] .nltrack{animation:nlm 40s linear infinite,slideX linear both;animation-timeline:auto,view()}
.ps[data-anim="on"] .backphone{animation:driftB linear both;animation-timeline:view()}
.ps[data-anim="on"] .sealwrap{animation:spinScroll linear both;animation-timeline:view()}
}
@keyframes flow{0%{opacity:0;translate:0 80px}22%{opacity:1;translate:0 0}78%{opacity:1;translate:0 0}100%{opacity:1;translate:0 -40px}}
@keyframes flowClip{0%{clip-path:inset(0 0 100% 0);translate:0 50px}24%{clip-path:inset(-10% -10% -10% -10%);translate:0 0}100%{clip-path:inset(-10% -10% -10% -10%);translate:0 -24px}}
@keyframes flowItem{0%{opacity:0;translate:0 60px}20%{opacity:1;translate:0 0}100%{opacity:1;translate:0 -30px}}
@keyframes zoomIn{from{scale:.88;opacity:.5}to{scale:1;opacity:1}}
@keyframes driftA{from{translate:0 -120px}to{translate:0 120px}}
@keyframes driftB{from{translate:0 90px}to{translate:0 -90px}}
@keyframes slideX{from{translate:12% 0}to{translate:-12% 0}}
@keyframes spinScroll{from{rotate:-40deg;translate:0 60px}to{rotate:40deg;translate:0 -60px}}
.iimg{animation:iimg 1.3s cubic-bezier(.16,.84,.24,1) .1s both}
@keyframes iimg{from{opacity:0;transform:scale(.88);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes titlebreath{0%,100%{transform:translateY(0) scale(1) rotate(0deg);filter:drop-shadow(0 12px 40px rgba(0,0,0,.65)) drop-shadow(0 0 0 rgba(255,106,0,0))}50%{transform:translateY(-7px) scale(1.025) rotate(-.35deg);filter:drop-shadow(0 18px 46px rgba(0,0,0,.7)) drop-shadow(0 0 28px rgba(255,106,0,.28))}}
.titlebreath{transform-origin:50% 60%;animation:titlebreath 5.5s ease-in-out 3.2s infinite}
@keyframes titlebreath2{0%,100%{transform:translateY(0) scale(1) rotate(0deg)}50%{transform:translateY(-7px) scale(1.025) rotate(-.35deg)}}
.shinewrap.titlebreath{animation-name:titlebreath2}
.spinrev{animation:spin 120s linear infinite reverse}
@keyframes doorOpen{0%{transform:rotateY(0)}100%{transform:rotateY(-82deg)}}
.door{animation:doorOpen 5.2s cubic-bezier(.65,0,.25,1) .9s both}
@keyframes lightOn{from{opacity:0}to{opacity:1}}
.lighton{animation:lightOn 4.6s cubic-bezier(.65,0,.25,1) 1.2s both}
@keyframes leak{0%{opacity:0}15%{opacity:1}70%{opacity:1}100%{opacity:0}}
.leak{animation:leak 2.4s ease .2s both}
@keyframes flick{0%,100%{opacity:1}40%{opacity:.88}55%{opacity:.96}}
.flick{animation:flick 5s ease-in-out 6.5s infinite}
@media (max-width:900px){.scene{width:100%!important;opacity:.45}}
.col{transition:flex-grow .8s cubic-bezier(.16,.84,.24,1),background .5s,border-color .5s;cursor:pointer}
.step{transition:background .4s,color .4s,transform .4s cubic-bezier(.16,.84,.24,1),border-color .4s}
.step:hover{background:#FF6A00;color:#0E0E0E;border-color:#FF6A00;transform:translateY(-8px)}
.step:hover .muted{color:#2a1608}
.step:hover .acc{color:#0E0E0E}
.ep{transition:border-color .3s,background .3s;cursor:pointer}
.ep:hover{border-color:#FF6A00}
.navlinks a{text-decoration:none;color:#BDB9B0;transition:color .2s}
.navlinks a:hover{color:#F7F5EF}
.span2{grid-column:span 2}
input::placeholder{color:#8A867E}
@media (max-width:900px){.navlinks{display:none!important}.rail{display:none!important}.span2{grid-column:auto}.stairs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.accord{flex-direction:column!important;height:auto!important}.accord>button{min-height:120px}}
@media (prefers-reduced-motion:reduce){.ps *{animation:none!important;transition:none!important}.intro{display:none!important}}
