:root { --black:#080808; --on-dark:#ecebe7; --soft:#a9aab0; --gold:#c9a764; --navy:#0a2540; --rule:rgba(255,255,255,.14);
  --serif:"Cormorant Garamond", Georgia, serif; --sans:"Inter", system-ui, -apple-system, sans-serif; --ease:cubic-bezier(.22,1,.36,1); }
* { box-sizing:border-box; margin:0; }
html { -webkit-text-size-adjust:100%; }
body { min-height:100svh; background:var(--black); color:var(--on-dark); font-family:var(--sans); -webkit-font-smoothing:antialiased;
  background-image: radial-gradient(700px 420px at 50% -80px, rgba(10,37,64,.75), transparent 70%); background-repeat:no-repeat; }
a { color:inherit; text-decoration:none; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; border-radius:6px; }
.bio { width:100%; max-width:480px; margin:0 auto; padding:max(28px, env(safe-area-inset-top)) 20px max(36px, env(safe-area-inset-bottom)); display:flex; flex-direction:column; align-items:center; }

.brand { display:flex; align-items:center; gap:10px; color:var(--on-dark); }
.shield { width:18px; height:32px; color:var(--gold); }
.brand-name { display:flex; flex-direction:column; font-family:var(--serif); line-height:1; }
.brand-name span { font-size:15px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.brand-name small { margin-top:2px; font-size:12px; font-style:italic; color:var(--soft); }

.profile { margin-top:36px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.avatar { width:132px; height:132px; border-radius:50%; object-fit:cover; display:block; box-shadow:0 0 0 1px rgba(201,167,100,.6), 0 0 0 6px var(--black), 0 0 0 7px rgba(201,167,100,.22), 0 18px 40px rgba(0,0,0,.6); }
h1 { margin-top:22px; font-family:var(--serif); font-weight:500; font-size:40px; line-height:1.05; letter-spacing:-.01em; }
.roles { margin-top:8px; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--gold); }
.roles span { white-space:nowrap; }
.about { margin-top:14px; font-size:14.5px; line-height:1.6; color:#c4c5ca; max-width:38ch; }

.links { width:100%; margin-top:30px; display:flex; flex-direction:column; gap:10px; }
.link { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:12px 18px; border:1px solid var(--rule); border-radius:12px; background:rgba(255,255,255,.03); transition:border-color .2s, background-color .2s, transform .2s; }
.link span { display:flex; flex-direction:column; font-size:15.5px; font-weight:600; line-height:1.3; }
.link small { margin-top:2px; font-size:12.5px; font-weight:400; color:var(--soft); }
.link i { font-style:normal; color:var(--soft); transition:transform .2s, color .2s; }
.link:hover { border-color:rgba(201,167,100,.55); background:rgba(255,255,255,.05); }
.link:hover i { transform:translateX(3px); color:var(--gold); }
.link:active { transform:scale(.99); }
.link.primary { position:relative; isolation:isolate; background:var(--gold); border-color:var(--gold); color:#17140d; }
.link.primary i { color:#17140d; }
.link.primary::before { content:""; position:absolute; inset:-3px; z-index:-1; border-radius:inherit; background:var(--gold); filter:blur(14px); opacity:.18; animation:glow 4.2s ease-in-out infinite; }
@keyframes glow { 0%,100% { opacity:.12; transform:scale(.97); } 50% { opacity:.4; transform:scale(1.04); } }
.tag { font-style:normal; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#17140d; background:var(--gold); padding:4px 9px; border-radius:999px; }
.group { margin:14px 0 2px; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); text-align:left; }

.social { list-style:none; padding:0; margin-top:30px; display:flex; gap:10px; justify-content:center; }
.social a { display:grid; place-items:center; width:46px; height:46px; border-radius:50%; border:1px solid var(--rule); color:var(--on-dark); transition:border-color .2s, color .2s; }
.social a:hover { border-color:var(--gold); color:var(--gold); }
.social svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.social svg .fill { fill:currentColor; stroke:none; }

.foot { margin-top:30px; font-size:11.5px; line-height:1.7; color:#7d7f86; text-align:center; }

/* entrada suave */
@keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
.brand, .profile > *, .links > *, .social, .foot { animation:rise .8s var(--ease) both; }
.profile > :nth-child(1) { animation-delay:.08s } .profile > :nth-child(2) { animation-delay:.16s } .profile > :nth-child(3) { animation-delay:.22s } .profile > :nth-child(4) { animation-delay:.28s }
.links > :nth-child(1) { animation-delay:.36s } .links > :nth-child(2) { animation-delay:.42s } .links > :nth-child(3) { animation-delay:.48s } .links > :nth-child(4) { animation-delay:.54s }
.links > :nth-child(5) { animation-delay:.58s } .links > :nth-child(6) { animation-delay:.62s } .links > :nth-child(7) { animation-delay:.66s } .social { animation-delay:.72s } .foot { animation-delay:.78s }
.link.primary { animation:rise .8s var(--ease) .36s both; }
@media (prefers-reduced-motion: reduce) { *, *::before { animation:none !important; transition:none !important; } }

/* ===== entrada caprichada ===== */
.avatar-wrap { position: relative; width: 156px; height: 156px; display: grid; place-items: center; }
.avatar-wrap picture { display: block; }
.avatar { box-shadow: 0 18px 40px rgba(0,0,0,.6); }
.ring { position: absolute; inset: 0; width: 156px; height: 156px; transform: rotate(-90deg); }
.ring circle { fill: none; stroke: var(--gold); stroke-width: 1.2; stroke-dasharray: 472; stroke-dashoffset: 472; animation: draw 1.6s var(--ease) .35s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
@keyframes pop-in { from { opacity: 0; transform: scale(.86); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
.profile > .avatar-wrap { animation: none; }
.avatar-wrap picture { animation: pop-in 1s var(--ease) .15s both; }
.profile h1 { animation: none; }
.mask { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .08em; }
.mask > span { display: inline-block; animation: mask-up 1s var(--ease) .55s both; }
@keyframes mask-up { from { transform: translateY(110%); } to { transform: none; } }
.brand { animation: drop .9s var(--ease) both; }
@keyframes drop { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }
.profile > .roles { animation-delay: .8s; } .profile > .about { animation-delay: .9s; }
.links > :nth-child(1) { animation-delay: 1s !important; } .links > :nth-child(2) { animation-delay: 1.08s; } .links > :nth-child(3) { animation-delay: 1.16s; }
.links > :nth-child(4) { animation-delay: 1.24s; } .links > :nth-child(5) { animation-delay: 1.3s; } .links > :nth-child(6) { animation-delay: 1.36s; } .links > :nth-child(7) { animation-delay: 1.42s; }
.link.primary { animation: rise .8s var(--ease) 1s both; }
.social li { animation: pop-in .6s var(--ease) both; }
.social li:nth-child(1) { animation-delay: 1.9s } .social li:nth-child(2) { animation-delay: 1.96s } .social li:nth-child(3) { animation-delay: 2.02s } .social li:nth-child(4) { animation-delay: 2.08s } .social li:nth-child(5) { animation-delay: 2.14s }
.social { animation: none; } .foot { animation-delay: 2.2s; }

/* ===== carrossel de avaliações ===== */
.reviews { width: 100%; margin-top: 30px; padding: 20px 18px 16px; border: 1px solid var(--rule); border-radius: 14px; background: linear-gradient(180deg, rgba(10,37,64,.35), rgba(255,255,255,.02)); animation: rise .8s var(--ease) 1.55s both; }
.rv-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.rv-score { display: flex; align-items: center; gap: 10px; }
.rv-n { font-family: var(--serif); font-size: 34px; font-weight: 600; line-height: 1; }
.rv-stars { display: inline-flex; gap: 2px; }
.rv-stars svg { width: 15px; height: 15px; fill: var(--gold); opacity: 0; transform: scale(.4); animation: star .5s var(--ease) both; }
.rv-stars svg:nth-child(1) { animation-delay: 1.8s } .rv-stars svg:nth-child(2) { animation-delay: 1.9s } .rv-stars svg:nth-child(3) { animation-delay: 2s } .rv-stars svg:nth-child(4) { animation-delay: 2.1s } .rv-stars svg:nth-child(5) { animation-delay: 2.2s }
@keyframes star { to { opacity: 1; transform: none; } }
.rv-count { font-size: 12.5px; color: var(--soft); }
.rv-count:hover { color: var(--gold); }
.rv-track { list-style: none; padding: 0; margin: 14px 0 0; display: grid; }
.rv { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .5s ease, transform .5s var(--ease), visibility 0s linear .5s; }
.rv.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .5s ease, transform .5s var(--ease); }
.rv blockquote p { font-family: var(--serif); font-size: 19px; line-height: 1.32; color: var(--on-dark); }
.rv blockquote p::before { content: "“"; } .rv blockquote p::after { content: "”"; }
.rv-author { margin-top: 10px; font-size: 13px; font-weight: 600; }
.rv-author span { font-weight: 400; color: var(--soft); }
.rv-dots { display: flex; justify-content: center; gap: 2px; margin-top: 12px; }
.rv-dots button { width: 22px; height: 22px; padding: 0; border: 0; background: none; cursor: pointer; display: grid; place-items: center; }
.rv-dots button::before { content: ""; width: 6px; height: 6px; border-radius: 99px; background: rgba(255,255,255,.25); transition: width .3s var(--ease), background-color .3s; }
.rv-dots button.on::before { width: 16px; background: var(--gold); }
@media (prefers-reduced-motion: reduce) { .ring circle { stroke-dashoffset: 0; } .rv-stars svg { opacity: 1; transform: none; } .mask > span { transform: none; } }
.rv { transition: opacity .22s ease, transform .22s ease, visibility 0s linear .22s; }
.rv.is-active { transition: opacity .45s ease .2s, transform .45s var(--ease) .2s; }

/* botão do curso: mesmo pulso de luz lento do botão de compra do site do curso */
.link.course { position: relative; isolation: isolate; border-color: rgba(247,147,30,.55); background: #0c0c0e; }
.link.course::before { content: ""; position: absolute; inset: -4px; z-index: -1; border-radius: inherit; background: #F7931E; filter: blur(16px); opacity: .16; transform: scale(.96); animation: course-glow 4.2s ease-in-out infinite; pointer-events: none; }
@keyframes course-glow { 0%, 100% { opacity: .14; transform: scale(.96); } 50% { opacity: .5; transform: scale(1.05); } }
.link.course .tag { background: #F7931E; color: #1B1206; }
.link.course:hover { border-color: #F7931E; }
@media (prefers-reduced-motion: reduce) { .link.course::before { animation: none !important; opacity: .28; transform: none; } }
/* v2: brilho só por fora do botão do curso */
.link.course::before { content: none; }
.link.course { box-shadow: 0 0 0 0 rgba(247,147,30,0); animation: rise .8s var(--ease) 1.08s both, course-halo 4.2s ease-in-out 2s infinite; }
@keyframes course-halo { 0%, 100% { box-shadow: 0 0 10px 0 rgba(247,147,30,.14); } 50% { box-shadow: 0 0 26px 2px rgba(247,147,30,.42); } }
@media (prefers-reduced-motion: reduce) { .link.course { box-shadow: 0 0 16px rgba(247,147,30,.25); } }
