@font-face{font-family:Outfit;font-weight:200;font-display:swap;src:url(fonts/outfit-200.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:300;font-display:swap;src:url(fonts/outfit-300.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:400;font-display:swap;src:url(fonts/outfit-400.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:600;font-display:swap;src:url(fonts/outfit-600.woff2) format("woff2")}
@font-face{font-family:Outfit;font-weight:700;font-display:swap;src:url(fonts/outfit-700.woff2) format("woff2")}
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
:root{--ink:#06122b;--navy:#0a2150;--blue:#0348a5;--sky:#2f9bd8;--cyan:#6fd0f0;--ice:#eef5fb;--r:16px;--alt:0}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth;background:var(--ink)}
body{font-family:Outfit,system-ui,sans-serif;font-size:16px;line-height:1.45;color:#fff;background:var(--ink);overflow-x:hidden}
body.lock{overflow:hidden;height:100dvh}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
img{display:block;max-width:100%}
.i{width:1.25em;height:1.25em;flex:none;fill:currentColor}
.wrap{width:100%;max-width:480px;margin:0 auto;position:relative;z-index:2}
/* titles: one block, tight */
.t{font-weight:200;line-height:.92;letter-spacing:-.025em;word-spacing:.02em}
.t b{font-weight:700}
.t .w{display:inline-block;opacity:0;transform:translateY(.5em);filter:blur(6px);transition:opacity .6s,transform .6s cubic-bezier(.16,1,.3,1),filter .6s;transition-delay:calc(var(--n)*70ms)}
.in .t .w,.t.in .w{opacity:1;transform:none;filter:none}
.lead{margin-top:.6rem;font-weight:300;font-size:1.0625rem;max-width:34ch}
.sec{position:relative;min-height:100dvh;padding:96px 20px 72px;overflow:hidden;isolation:isolate}
.sec.dark{background:linear-gradient(160deg,var(--ink),var(--navy) 50%,#0a3a85 100%);background-size:220% 220%;animation:bgslide 14s ease-in-out infinite alternate}
.sec.mid{background:linear-gradient(170deg,var(--navy),var(--blue) 50%,var(--sky) 100%);background-size:100% 260%;background-position:50% calc(var(--alt)*100%);transition:background-position 1.2s cubic-bezier(.16,1,.3,1)}
.sec.light{background:var(--ice);color:var(--navy)}
.sec.light .lead{color:#1d3568}
@keyframes bgslide{to{background-position:100% 100%}}
.fx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.fx i{position:absolute;border-radius:50%;filter:blur(56px)}
.fx .b1{width:300px;height:300px;left:-90px;top:6%;background:var(--sky);opacity:.45;animation:drift1 16s ease-in-out infinite alternate}
.fx .b2{width:260px;height:260px;right:-100px;top:42%;background:var(--blue);opacity:.55;animation:drift2 19s ease-in-out infinite alternate}
.fx .b3{width:220px;height:220px;left:22%;bottom:-70px;background:var(--cyan);opacity:.3;animation:drift3 13s ease-in-out infinite alternate}
.light .fx .b1{background:var(--sky);opacity:.22}.light .fx .b2{background:var(--blue);opacity:.16}.light .fx .b3{background:var(--cyan);opacity:.3}
.fx .cone{position:absolute;width:160vmax;height:160vmax;left:50%;top:50%;margin:-80vmax;border-radius:0;filter:none;background:conic-gradient(from 0deg,transparent 0 30%,rgba(111,208,240,.10) 36%,transparent 44% 70%,rgba(47,155,216,.12) 78%,transparent 86%);animation:spin 40s linear infinite}
.light .fx .cone{opacity:.7}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes drift1{to{transform:translate(120px,90px) scale(1.25)}}
@keyframes drift2{to{transform:translate(-110px,-120px) scale(.85)}}
@keyframes drift3{to{transform:translate(140px,-60px) scale(1.3)}}
.tri-bg{position:absolute;z-index:-1;pointer-events:none;opacity:.5;animation:triFloat 11s ease-in-out infinite alternate}
@keyframes triFloat{to{transform:translateY(-26px) rotate(3deg)}}
/* buttons */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;padding:0 18px;border-radius:var(--r);font-weight:600;text-align:center;overflow:hidden;isolation:isolate;border:1px solid rgba(255,255,255,.28);transition:transform .25s}
.btn:active{transform:scale(.97)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,var(--blue),var(--sky),var(--blue));background-size:240% 100%;animation:slideBg 5s linear infinite}
.btn::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);animation:shine 4.2s ease-in-out infinite}
@keyframes slideBg{to{background-position:-240% 0}}
@keyframes shine{0%,55%{left:-60%}100%{left:130%}}
.btn.pri{background:#fff;color:var(--navy);border:2px solid transparent;min-height:68px;font-size:1.05rem;line-height:1.1;animation:breath 3.2s ease-in-out infinite}
.btn.pri::before{background:linear-gradient(100deg,#fff,#d6ecfa,#fff);background-size:240% 100%}
.btn.pri .i{animation:hop 2.4s ease-in-out infinite}
.edge{background:linear-gradient(#fff,#fff) padding-box,conic-gradient(from var(--a),rgba(111,208,240,.1),var(--sky),var(--blue) 40%,rgba(111,208,240,.1) 70%) border-box;animation:breath 3.2s ease-in-out infinite,spinA 4s linear infinite}
@keyframes spinA{to{--a:360deg}}
@keyframes breath{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.025);filter:brightness(1.07)}}
@keyframes hop{0%,70%,100%{transform:translateY(0)}80%{transform:translateY(-4px)}90%{transform:translateY(0)}}
.btn.sec2{background:rgba(255,255,255,.1);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.btn.sec2::before{opacity:.35}
.light .btn.sec2{border-color:rgba(10,33,80,.2);color:var(--navy);background:rgba(255,255,255,.7)}
.light .btn.main{color:#fff;background:var(--navy)}
.btn.main{background:var(--navy);border-color:rgba(255,255,255,.28);color:#fff}
.btn.ghost{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3)}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.55);transform:scale(0);animation:rip .7s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(4);opacity:0}}
.row{display:grid;gap:12px}.row.two{grid-template-columns:1fr 1fr}
/* menu */
#menu{position:fixed;z-index:50;left:12px;right:12px;top:12px;max-width:456px;margin:0 auto;display:flex;border-radius:var(--r);background:rgba(10,33,80,.55);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);border:1px solid rgba(255,255,255,.22);overflow:hidden;transform:translateY(-130%);transition:transform .7s cubic-bezier(.16,1,.3,1)}
body.ready #menu{transform:none}
#menu a{flex:1;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:10px;font-weight:400;color:rgba(255,255,255,.7);transition:color .3s,background .3s}
#menu a .i{width:20px;height:20px}
#menu a.on{color:#fff;background:rgba(255,255,255,.16)}
#menu a.on .i{animation:hop 2.4s ease-in-out infinite}
#prog{position:absolute;left:0;bottom:0;height:3px;width:100%;background:linear-gradient(90deg,var(--cyan),var(--sky));transform-origin:left;transform:scaleX(0)}
@media(prefers-reduced-transparency:reduce){#menu{background:var(--navy);backdrop-filter:none}.btn.sec2{backdrop-filter:none;background:var(--navy)}}
/* intro */
#intro{position:fixed;inset:0;z-index:100;background:linear-gradient(170deg,var(--ink),var(--navy) 60%,#0a3a85);background-size:100% 220%;animation:introbg 6s ease-in-out infinite alternate;display:flex;align-items:center;justify-content:center;transition:opacity .9s,visibility .9s}
@keyframes introbg{to{background-position:0 100%}}
#intro.out{opacity:0;visibility:hidden}
#intro .skip{position:absolute;right:12px;top:12px;min-height:44px;padding:0 12px;display:flex;align-items:center;font-weight:600;font-size:.9rem;color:var(--cyan);z-index:3}
.introbox{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;max-width:420px;padding:0 16px;position:relative;z-index:2}
#stage{width:min(88vw,360px);height:min(88vw,360px);touch-action:manipulation;cursor:pointer}
.logo{width:92px;color:#fff;margin-top:6px;--bar:var(--navy)}
.logo svg{width:100%;height:auto;display:block}
.introbox h1{font-size:2.9rem;margin-top:10px}
.introbox p{margin-top:.45rem;font-weight:300}
#goBtn{margin-top:16px;width:100%;max-width:340px;opacity:0;pointer-events:none;transition:opacity .5s}
#goBtn.show{opacity:1;pointer-events:auto}
/* hero */
#inicio{display:flex;align-items:center}
#inicio .wrap{display:flex;flex-direction:column;gap:14px;text-align:left}
#inicio .logo{width:112px;margin:0 0 4px}
#inicio h2{font-size:3.4rem}
.invite{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px;min-height:64px;padding:0 18px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);font-weight:300;font-size:1.2rem}
.invite b{font-weight:700}
.invite .i{animation:climb 1.8s ease-in-out infinite}
@keyframes climb{50%{transform:translateY(-6px)}}
/* check */
#check .wrap{display:flex;flex-direction:column;gap:12px}
#check h2{font-size:2.5rem}
.peak-svg{width:100%;max-width:300px;margin:0 auto;display:block;overflow:visible}
.camp{font-size:.8125rem;font-weight:400;opacity:.9}
.qa{min-height:330px;position:relative}
.q{font-size:1.9rem;margin-bottom:12px}
.opts{display:grid;gap:8px}
.opt{display:flex;align-items:center;min-height:48px;padding:10px 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);text-align:left;font-weight:400;transition:background .25s,color .25s,transform .25s;position:relative;overflow:hidden}
.opt:active{transform:scale(.98)}
.opt.sel{background:#fff;color:var(--navy);font-weight:600}
.slide{animation:slideIn .5s cubic-bezier(.16,1,.3,1)}
@keyframes slideIn{from{opacity:0;transform:translateX(30px)}}
.coach{margin-top:12px;padding:14px 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);font-size:.95rem;line-height:1.4;animation:slideIn .5s .15s both}
.coach b{font-weight:700}
.result{display:none;flex-direction:column;gap:12px}
.result.show{display:flex;animation:slideIn .6s}
.result .name{font-size:3.3rem}
.card{padding:16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1)}
.card h3{font-weight:700;font-size:1.05rem;margin-bottom:6px}
.card ul{padding-left:18px;font-weight:300}.card li{margin-top:4px}
.light .card{border-color:rgba(10,33,80,.18);background:#fff}
/* turma */
#turma h2{font-size:2.5rem}
#field{width:100%;aspect-ratio:1/1;margin-top:16px;border-radius:var(--r);background:var(--navy);touch-action:none;cursor:grab;display:block}
.read{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.read div{padding:10px 8px;border-radius:var(--r);border:1px solid rgba(10,33,80,.18);background:#fff;font-size:.8125rem;font-weight:400;text-align:center;transition:background .3s,color .3s}
.read div.on{background:var(--navy);color:#fff}
.read .i{display:block;margin:0 auto 4px}
.teamfoto{margin-top:18px;border-radius:var(--r);overflow:hidden;position:relative}
.teamfoto img{width:100%;height:230px;object-fit:cover;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12) translate(-2%,-1%)}}
/* treino */
#treino h2{font-size:2.5rem}
.tr{margin-top:14px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);overflow:hidden}
.tr button.h{width:100%;display:flex;align-items:center;gap:12px;padding:12px;text-align:left}
.tr .th{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none}
.tr .tt{flex:1;font-size:1.3rem;line-height:1}
.tr .plus{width:44px;height:44px;display:grid;place-items:center;transition:transform .4s}
.tr.open .plus{transform:rotate(135deg)}
.tr .bd{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.16,1,.3,1)}
.tr.open .bd{grid-template-rows:1fr}
.tr .bd>div{overflow:hidden}
.tr .in2{padding:0 14px 14px;display:grid;gap:10px;font-weight:300}
.gal{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:2px}
.gal img{height:130px;width:auto;border-radius:12px;scroll-snap-align:start;flex:none}
.cal{margin:22px -20px 0;padding:0 20px;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;cursor:grab;user-select:none;-webkit-user-select:none;scrollbar-width:none}
.cal::-webkit-scrollbar{display:none}
.ch{flex:none;scroll-snap-align:start;width:240px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);overflow:hidden;display:flex;flex-direction:column;min-height:270px;text-align:left;transition:transform .3s}
.ch:nth-child(2n){width:280px}.ch:nth-child(3n){width:220px}
.ch .ph{height:120px;position:relative;background:linear-gradient(135deg,var(--blue),var(--navy));display:grid;place-items:center;overflow:hidden}
.ch .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ch .ph svg{width:56px;height:56px;opacity:.9;animation:triFloat 5s ease-in-out infinite alternate}
.ch .tx{padding:12px 14px;display:grid;gap:4px;font-weight:300;font-size:.95rem}
.ch .tx h4{font-weight:700;font-size:1.15rem;line-height:1.05}
.ch .tag{font-size:.8125rem;color:var(--cyan);font-weight:600}
.ch.open{border-color:#fff}
.ch .more{display:none}.ch.open .more{display:block}
/* checkin */
#checkin h2{font-size:2.5rem}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.seg.three{grid-template-columns:1fr 1fr 1fr}
.sg{min-height:52px;border-radius:var(--r);border:1px solid rgba(10,33,80,.25);background:#fff;font-weight:600;color:var(--navy);transition:background .3s,color .3s}
.sg.on{background:var(--navy);color:#fff}
.lab{margin-top:14px;font-weight:600;font-size:.9rem}
.tl{margin-top:14px;display:flex;border-radius:var(--r);overflow:hidden;min-height:76px;background:#fff;border:1px solid rgba(10,33,80,.18)}
.tl div{padding:10px 8px;font-size:.8125rem;font-weight:600;display:flex;flex-direction:column;justify-content:flex-end;transition:flex .8s cubic-bezier(.16,1,.3,1);min-width:0;overflow:hidden;position:relative;color:#fff}
.tl div:nth-child(1){background:var(--sky)}.tl div:nth-child(2){background:var(--blue)}.tl div:nth-child(3){background:var(--navy)}.tl div:nth-child(4){background:#1d4a8f}
.tl div::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.25),transparent);transform:translateX(-120%);animation:shine2 3.5s ease-in-out infinite}
@keyframes shine2{50%,100%{transform:translateX(120%)}}
.note{margin-top:8px;font-size:.8125rem;opacity:.85}
/* galera */
#galera h2{font-size:2.5rem}
.strip{margin:18px -20px 0;overflow:hidden;white-space:nowrap}
.strip .tk{display:inline-flex;gap:10px;animation:mq 42s linear infinite}
.strip.rev .tk{animation-direction:reverse;animation-duration:50s}
.strip img{height:150px;width:auto;border-radius:12px}
@keyframes mq{to{transform:translateX(-50%)}}
.strip:active .tk{animation-play-state:paused}
.partners{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}
.partners span{padding:10px 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);font-weight:600}
.faq{margin-top:22px;display:grid;gap:10px}
.fq{display:inline-flex;align-self:flex-start;min-height:48px;padding:10px 16px;border-radius:var(--r);font-weight:600;text-align:left;background:linear-gradient(100deg,var(--blue),var(--sky),var(--blue));background-size:240% 100%;animation:slideBg 6s linear infinite;max-width:92%}
.ans{display:none;gap:8px;align-items:flex-start}
.ans.show{display:flex;animation:slideIn .4s}
.ans .av{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;flex:none}
.ans .av svg{width:22px}
.ans .bub{padding:10px 14px;border-radius:var(--r);background:#fff;color:var(--navy);font-weight:400;min-height:44px;flex:1}
.typing{display:inline-flex;gap:4px;align-items:center;height:22px}.typing i{width:7px;height:7px;border-radius:50%;background:var(--blue);animation:dot 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes dot{50%{transform:translateY(-5px);opacity:.4}}
/* casinha */
#casinha h2{font-size:2.5rem}
.head{margin-top:16px;padding:16px;border-radius:var(--r);background:var(--navy);color:#fff;display:grid;gap:8px}
.head h3{font-size:1.8rem;line-height:.95}
.mosaic{margin-top:16px;display:grid;grid-template-columns:2fr 1fr;grid-auto-rows:110px;gap:8px}
.mosaic img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.mosaic .big{grid-row:span 2}
.addr{margin-top:16px;padding:16px;border-radius:var(--r);border:1px solid rgba(10,33,80,.18);background:#fff;display:flex;gap:12px;align-items:center}
.pin{width:44px;height:44px;flex:none;color:var(--blue);animation:pinp 2s ease-in-out infinite}
@keyframes pinp{50%{transform:translateY(-6px)}}
/* contato */
#contato{display:flex;align-items:center}
#contato h2{font-size:2.8rem}
.strip2{margin-top:12px;padding:10px 14px;border-radius:12px;border:1px dashed rgba(255,255,255,.35);font-size:.8125rem;opacity:.8;text-align:center}
.foot{margin-top:22px;font-size:.8125rem;opacity:.85;max-width:44ch}
.cb{min-height:56px}
/* mascot */
#mascot{position:fixed;z-index:60;width:48px;height:48px;color:#fff;pointer-events:none;opacity:0}
#mascot svg{width:100%;height:100%;animation:wob 2s ease-in-out infinite}
@keyframes wob{50%{transform:rotate(-6deg) translateY(-3px)}}
#mascot .bl{position:absolute;white-space:nowrap;max-width:210px;padding:8px 12px;border-radius:14px;background:#fff;color:var(--navy);font-size:.8125rem;font-weight:600;opacity:0;transition:opacity .3s;white-space:normal;width:max-content}
#mascot.top .bl{top:56px}#mascot.bot .bl{bottom:56px}
#mascot.L .bl{left:0}#mascot.R .bl{right:0}
#mascot.say .bl{opacity:1}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,40px);z-index:90;padding:12px 16px;border-radius:var(--r);background:#fff;color:var(--navy);font-weight:600;font-size:.9rem;opacity:0;transition:.4s;max-width:90vw;text-align:center}
#toast.show{opacity:1;transform:translate(-50%,0)}
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}.rv.l{transform:translateX(-30px)}.rv.r{transform:translateX(30px)}.rv.z{transform:scale(.92)}
.rv.l.in,.rv.r.in,.rv.z.in{transform:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01ms!important}.t .w,.rv{opacity:1;transform:none;filter:none}html{scroll-behavior:auto}}
@media(min-width:700px){.sec{padding-top:110px}}

.btn{width:100%}
.btn.pri.dk{color:#fff;background:linear-gradient(var(--navy),var(--navy)) padding-box,conic-gradient(from var(--a),rgba(111,208,240,.1),var(--sky),var(--blue) 40%,rgba(111,208,240,.1) 70%) border-box}
.btn.pri.dk::before{background:linear-gradient(100deg,var(--navy),var(--blue),var(--navy));background-size:240% 100%}
#contato h2{font-size:2.5rem}
.sec.light{background:linear-gradient(120deg,#eef5fb,#c9e2f6,#eef5fb,#b9d9f3);background-size:300% 300%;animation:bgslide2 9s ease-in-out infinite alternate}
@keyframes bgslide2{to{background-position:100% 100%}}
.light .fx .b1{opacity:.4}.light .fx .b2{opacity:.3}.light .fx .b3{opacity:.45}
.light .fx .cone{opacity:1}
.light .fx .b1{width:380px;height:380px;animation-duration:8s}.light .fx .b2{width:340px;height:340px;animation-duration:9s}.light .fx .b3{width:300px;height:300px;animation-duration:7s}
.sec.light{animation-duration:6s}
.mosaic{overflow:hidden}.mosaic img{animation:kb 9s ease-in-out infinite alternate}
.head,.addr{position:relative;overflow:hidden}
.head::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(111,208,240,.18),transparent);transform:translateX(-120%);animation:shine2 4s ease-in-out infinite}
.pin{animation-duration:1.4s}
#field{background:linear-gradient(135deg,#0a2150,#0348a5,#0a2150);background-size:300% 300%;animation:bgslide2 6s ease-in-out infinite alternate}
.light .fx .cone{animation-duration:18s}
#checkin .tl,#checkin .sg{position:relative}
#checkin .lead::after{content:""}
#checkin .fx .b1{left:-40px;top:30%}#checkin .fx .b2{top:60%}
#checkin .wrap::before{content:"";position:absolute;left:-20px;right:-20px;top:36%;height:34%;z-index:-1;background:linear-gradient(100deg,transparent,rgba(47,155,216,.22),transparent);background-size:200% 100%;animation:slideBg 4s linear infinite}

.opt:disabled:not(.sel){opacity:.4}
.coach{display:flex;gap:12px;align-items:flex-start;margin-top:14px;padding:14px 16px;border:0;border-radius:var(--r);background:#fff;color:var(--navy);font-size:1rem;font-weight:500;line-height:1.35;position:relative;overflow:hidden}
.coach::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(var(--sky),var(--blue));animation:slideBg 3s linear infinite}
.coach small{display:block;font-size:.75rem;font-weight:700;color:var(--blue);margin-bottom:2px}
.cav{width:30px;height:30px;flex:none;color:var(--blue);margin-left:6px;animation:wob 2s ease-in-out infinite}
.cav svg{width:100%;height:100%}

/* cartao de embarque */
.pass{position:relative;color:var(--navy);animation:slideIn .7s .1s both}
.pm,.pst{background:#fff;position:relative}
.pm{border-radius:var(--r) var(--r) 0 0;padding:14px 16px 16px;-webkit-mask:radial-gradient(circle 11px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat;overflow:hidden}
.pm::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(111,208,240,.28),transparent 70%);transform:translateX(-120%);animation:shine2 4.5s ease-in-out infinite;pointer-events:none}
.pst{border-radius:0 0 var(--r) var(--r);padding:14px 16px;display:grid;grid-template-columns:1fr 90px;gap:12px;align-items:end;-webkit-mask:radial-gradient(circle 11px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat;mask:radial-gradient(circle 11px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat}
.pst::before{content:"";position:absolute;left:14px;right:14px;top:0;border-top:2px dashed #9fc3e6}
.ph2{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;font-weight:600;color:var(--blue)}
.pl{display:flex;align-items:center;gap:6px;font-weight:700}.pl svg{width:16px;height:16px;color:var(--blue)}
.pass small{display:block;font-size:.6875rem;font-weight:600;color:#5b7aa8;margin-bottom:1px}
.route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:14px}
.big{display:block;font-size:2.6rem;line-height:.9;font-weight:700;letter-spacing:-.02em}
.r2{text-align:right}.route span{font-size:.8125rem;font-weight:400}
.rt{width:100%;height:44px;overflow:visible}
.rp{offset-path:path("M4 32C30 32 40 8 60 8S90 32 116 32");offset-rotate:auto 90deg;animation:fly 4s ease-in-out infinite alternate}
@keyframes fly{from{offset-distance:0%}to{offset-distance:100%}}
.rl{animation:dash 1.4s linear infinite}@keyframes dash{to{stroke-dashoffset:-16}}
.fl{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 8px;margin-top:14px;padding-top:12px;border-top:1.5px dashed #9fc3e6}
.fl b{font-size:.8125rem;font-weight:600;line-height:1.15;display:block}
.stamp{position:absolute;right:14px;top:56px;padding:4px 10px;border:2px solid var(--blue);border-radius:8px;color:var(--blue);font-weight:700;font-size:.75rem;line-height:1.05;text-align:center;transform:rotate(-12deg);animation:stampIn .6s 1s both cubic-bezier(.2,1.6,.4,1);opacity:0}
@keyframes stampIn{from{opacity:0;transform:rotate(-12deg) scale(2.4)}to{opacity:.85;transform:rotate(-12deg) scale(1)}}
.pt ul{padding-left:16px;font-size:.875rem;font-weight:400}.pt li{margin-top:2px}
.bar{width:90px;height:44px;fill:var(--navy)}.bar rect{animation:bar 2.4s ease-in-out infinite}
@keyframes bar{50%{opacity:.35}}
.result{gap:14px}
.stamp{top:auto;bottom:16px;right:18px}
