/* kory-site.css · base visual compartilhada do site da Kory (classes ks-*)
   Tokens, tipografia fluida, botões, menu, cartões, grades sem sobra, movimento. */

@font-face{font-family:"Inter";font-weight:400 600;font-display:swap;src:url(public/fonts/inter-latin.woff2) format("woff2")}
html{scroll-behavior:smooth}
body{margin:0;background:#0b0c0f;color:#e9eaef;font-family:Inter,-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#c9b8ff;text-decoration:none}a:hover{color:#fff}button{font-family:inherit}
input::placeholder{color:rgba(255,255,255,.3)}

/* ---------- tokens ---------- */
.ks{--sans:Inter,-apple-system,system-ui,sans-serif;--grad:linear-gradient(90deg,#ec708a,#7c3aed,#4a96ff);--ease:cubic-bezier(.2,.7,.1,1);
--fs-display:clamp(40px,3.2vw + 10px,76px);--fs-h2:clamp(32px,2.2vw + 12px,56px);--fs-h3:clamp(20px,.8vw + 14px,26px);--fs-lead:clamp(16px,.35vw + 13px,19px);--fs-body:clamp(15px,.2vw + 13px,16.5px);--fs-label:11px;
--sec:clamp(64px,9vw,120px);--card:rgba(22,23,28,.72);--line:rgba(255,255,255,.08);--line2:rgba(255,255,255,.16);--muted:#8d919c;--text:#b8bdc8;--on:linear-gradient(135deg,rgba(236,112,138,.16),rgba(124,58,237,.18),rgba(74,150,255,.14));--onLine:rgba(201,184,255,.45);
position:relative;min-height:100vh;background:#0b0c0f;color:#e9eaef;overflow-x:clip}
.ks-wrap{box-sizing:border-box;width:100%;max-width:calc(1160px + 2 * clamp(16px,5vw,64px));margin:0 auto;padding-left:clamp(16px,5vw,64px);padding-right:clamp(16px,5vw,64px);min-width:0}

/* ---------- tipografia ---------- */
.ks-label{font:600 var(--fs-label)/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#9a9eac}
.ks-h1{margin:0;font:600 var(--fs-display)/1.02 var(--sans);letter-spacing:-.035em;color:#fff;text-wrap:balance}
.ks-h2{margin:0;font:600 var(--fs-h2)/1.06 var(--sans);letter-spacing:-.03em;color:#fff;text-wrap:balance}
.ks-h3{margin:0;font:600 var(--fs-h3)/1.2 var(--sans);letter-spacing:-.02em;color:#fff}
.ks-lead{margin:0;font-size:var(--fs-lead);line-height:1.6;color:#d7dae3;text-wrap:pretty}
.ks-p{margin:0;font-size:var(--fs-body);line-height:1.6;color:var(--text);text-wrap:pretty}
.ks-small{font-size:13px;line-height:1.5;color:var(--muted)}
.ks-grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ks-num{font:600 clamp(30px,2vw + 16px,44px)/1 var(--sans);letter-spacing:-.03em;color:#fff}
.ks-say{font:600 clamp(19px,1.2vw + 12px,26px)/1.3 var(--sans);letter-spacing:-.02em;color:#fff}
.ks-w{display:inline-block;margin-right:.22em;opacity:0;transform:translateY(.5em);filter:blur(6px);animation:ks-rise 1s var(--ease) forwards}
.ks-fade{opacity:0;transform:translateY(16px);animation:ks-fadeup .9s var(--ease) forwards}
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
[data-reveal="on"]{opacity:1;transform:none}

/* ---------- botões, chips, abas ---------- */
.ks-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;font:500 15px var(--sans);color:#fff;background:var(--grad);background-size:220% 100%;background-position:0 0;box-shadow:0 12px 40px rgba(124,58,237,.35);border:0;cursor:pointer;transition:background-position .7s var(--ease),box-shadow .4s,transform .4s var(--ease);will-change:transform;white-space:nowrap}
.ks-btn:hover{background-position:100% 0;box-shadow:0 16px 50px rgba(124,58,237,.5);color:#fff}
.ks-btn .ar{transition:transform .4s var(--ease)}.ks-btn:hover .ar{transform:translateX(4px)}
.ks-btn-ghost{background:rgba(11,12,15,.35);border:1px solid rgba(255,255,255,.32);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:none}
.ks-btn-ghost:hover{background:rgba(255,255,255,.12);box-shadow:none}
.ks-btn-sm{height:46px;padding:0 22px;font-size:14px}
.ks-play{width:30px;height:30px;border-radius:50%;background:#fff;color:#0b0c0f;display:inline-flex;align-items:center;justify-content:center;font-size:11px;padding-left:2px}
.ks-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line2);font-size:12.5px;color:#c7cdd6;background:transparent}
.ks-chip.ac{background:rgba(124,58,237,.22);border-color:transparent;color:#d9ccff;font-weight:600;font-size:11.5px}
.ks-tab{height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--line2);background:transparent;color:#c7cdd6;font:500 13px var(--sans);cursor:pointer;transition:border-color .25s,color .25s,background .25s;white-space:nowrap}
.ks-tab:hover{border-color:rgba(255,255,255,.4);color:#fff}
.ks-tab.on{border-color:transparent;background:linear-gradient(rgba(40,30,62,1),rgba(40,30,62,1)) padding-box,var(--grad) border-box;color:#fff}
.ks-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ks-dot{width:6px;height:6px;border-radius:50%;background:#4ade80;animation:k-pulse 1.6s ease infinite;flex:none}
.ks-badge{display:inline-flex;align-items:center;gap:8px;width:fit-content;height:30px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:rgba(11,12,15,.4);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12px;color:#fff;white-space:nowrap}

/* ---------- menu ---------- */
.ks-nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px max(clamp(16px,5vw,64px),calc((100% - 1160px) / 2));background:rgba(8,9,12,.45);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.06)}
.ks-logo{display:flex;align-items:center;gap:10px;color:#fff;font-weight:600;letter-spacing:3px;font-size:14px}
.ks-links{display:flex;flex-wrap:wrap;gap:2px;font:500 12.5px var(--sans)}
.ks-links a,.ks-links span{display:flex;align-items:center;height:32px;padding:0 10px;border-radius:999px;color:#c7cdd6;transition:background .3s,color .3s;white-space:nowrap}
.ks-links a:hover{background:rgba(255,255,255,.08);color:#fff}
.ks-links span{background:rgba(124,58,237,.25);color:#fff}
.ks-nav-r{display:flex;align-items:center;gap:8px}
.ks-select{height:38px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(22,23,28,.72);color:#fff;font:500 12.5px var(--sans);outline:none;cursor:pointer}
.ks-cta-nav{display:flex;align-items:center;gap:8px;height:38px;padding:0 18px;border-radius:999px;background:var(--grad);background-size:220% 100%;font-size:13px;font-weight:500;color:#fff;white-space:nowrap;transition:background-position .7s var(--ease)}
.ks-cta-nav:hover{background-position:100% 0;color:#fff}
.ks-menu{display:none}
@media(max-width:1060px){.ks-links{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:4px;padding:12px 16px 16px;background:rgba(8,9,12,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.08)}
.ks-nav.open .ks-links{display:flex}.ks-links a,.ks-links span{height:42px;font-size:14px;padding:0 14px}
.ks-menu{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#fff;font:500 13px var(--sans);cursor:pointer}}
@media(max-width:600px){.ks-cta-nav{display:none}.ks-select{max-width:110px}}

/* ---------- layout e cartões ---------- */
.ks-sec{position:relative;z-index:1;scroll-margin-top:64px}
.ks-sec-in{position:relative;padding-top:calc(var(--sec) * .5);padding-bottom:calc(var(--sec) * .5);display:flex;flex-direction:column;gap:clamp(24px,3vw,40px)}
.ks-sec-in.tight{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(40px,6vw,80px)}
.ks-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,4vw,48px);align-items:end}
.ks-head>div{display:flex;flex-direction:column;gap:12px}
@media(max-width:900px){.ks-head{grid-template-columns:1fr}}
.ks-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,56px);align-items:center}
.ks-two.top{align-items:start}
@media(max-width:900px){.ks-two{grid-template-columns:1fr}}
.ks-col{display:flex;flex-direction:column;gap:16px;min-width:0}
.ks-card{position:relative;border-radius:22px;background:var(--card);border:1px solid var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .5s var(--ease),box-shadow .5s,border-color .3s;will-change:transform}
.ks-card.pad{padding:clamp(20px,2.4vw,28px);display:flex;flex-direction:column;gap:12px}
.ks-card:hover{border-color:var(--line2);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.ks-card.on{background:var(--on);border-color:var(--onLine)}
.ks-glass{border-radius:24px;background:rgba(11,12,15,.5);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px rgba(0,0,0,.35)}
.ks-grain{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.ks-glow{position:fixed;inset:-20%;z-index:0;pointer-events:none;background:radial-gradient(700px 500px at 20% 10%,rgba(236,112,138,.14),transparent 60%),radial-gradient(800px 600px at 80% 30%,rgba(124,58,237,.16),transparent 60%),radial-gradient(900px 700px at 50% 100%,rgba(74,150,255,.12),transparent 60%);animation:k-drift 22s ease-in-out infinite}

/* grades sem cartão sobrando: 2, 3, 4 e 5 colunas */
.ks-g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ks-g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ks-g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ks-g5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
@media(max-width:1000px){.ks-g3{grid-template-columns:1fr}.ks-g4,.ks-g5{grid-template-columns:repeat(2,minmax(0,1fr))}.ks-g5>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:600px){.ks-g2,.ks-g4{grid-template-columns:1fr}.ks-g5{grid-template-columns:1fr}.ks-g5>:last-child{grid-column:auto}}
.ks-span2{grid-column:span 2}
@media(max-width:600px){.ks-span2{grid-column:auto}}

/* fila de diferenciais com ícone */
.ks-feats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:2px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}
@media(max-width:560px){.ks-feats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ks-feat{display:flex;flex-direction:column;gap:7px;min-width:0}
.ks-feat i{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(8px)}
.ks-feat svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ks-feat b{font:600 13.5px/1.2 var(--sans);color:#fff}
.ks-feat span{font-size:11.5px;line-height:1.35;color:#aeb3c0}

/* objeto 3D: anel de vidro com a esfera dentro */
.ks-stage{position:relative;perspective:1400px;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d}
.ks-ring-wrap{position:absolute;left:50%;top:50%;width:var(--ringw,66%);aspect-ratio:1;transform-style:preserve-3d;animation:ks-float3d 9s ease-in-out infinite;margin-left:calc(var(--ringw,66%) / -2);margin-top:calc(var(--ringw,66%) / -2)}
.ks-ring,.ks-ring-gloss{position:absolute;inset:0;padding:9.5%;border-radius:36%;box-sizing:border-box;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude}
.ks-ring{background:conic-gradient(from 200deg,#4a96ff,#7c3aed 30%,#ec708a 55%,#ffb4c6 68%,#9fc3ff 85%,#4a96ff);filter:drop-shadow(0 30px 50px rgba(124,58,237,.42)) saturate(1.15)}
.ks-ring-gloss{background:linear-gradient(155deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.18) 30%,rgba(255,255,255,0) 48%,rgba(255,255,255,0) 68%,rgba(255,255,255,.4) 100%);mix-blend-mode:screen}
.ks-ring-shadow{position:absolute;left:50%;bottom:-4%;width:66%;height:10%;transform:translateX(-50%);background:radial-gradient(50% 50% at 50% 50%,rgba(0,0,0,.6),transparent);filter:blur(8px)}
.ks-orb{position:absolute;left:50%;top:50%;width:var(--orbw,44%);aspect-ratio:1;margin-left:calc(var(--orbw,44%) / -2);margin-top:calc(var(--orbw,44%) / -2);animation:ks-orbfloat 6s ease-in-out infinite;filter:drop-shadow(0 20px 40px rgba(74,150,255,.35))}
.ks-orb canvas{width:100%;height:100%;display:block}
.ks-chip3d{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 10px;border-radius:16px;background:rgba(11,12,15,.5);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border:1px solid rgba(255,255,255,.18);box-shadow:0 16px 40px rgba(0,0,0,.35);color:#fff;max-width:min(270px,66%);animation:ks-chipfloat 7s ease-in-out infinite}
.ks-chip3d .ava{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font:600 12px var(--sans);background:var(--grad)}
.ks-chip3d .ava.you{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22)}
.ks-chip3d div{min-width:0}
.ks-chip3d small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#aeb3c0;margin-bottom:3px}
.ks-chip3d .line{font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* indicador de rolagem */
.ks-scroll{display:flex;flex-direction:column;align-items:center;gap:8px;color:#aeb3c0;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;flex:none}
.ks-scroll .n{font:600 13px var(--sans);color:#fff;letter-spacing:.08em}
.ks-mouse{width:22px;height:34px;border-radius:12px;border:1.5px solid rgba(255,255,255,.55);position:relative}
.ks-mouse::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:ks-wheel 1.8s ease-in-out infinite}

/* faixa que rola (marquee) e tira horizontal */
.ks-marquee{position:relative;overflow:hidden;padding:18px 0;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.ks-marquee>div{display:flex;gap:40px;width:max-content;animation:k-marquee 40s linear infinite;font:600 clamp(18px,1.4vw + 8px,26px)/1 var(--sans);letter-spacing:-.02em;color:#6f7480}
.ks-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 0 14px;scrollbar-width:none}
.ks-strip::-webkit-scrollbar{display:none}

/* formulário */
.ks-form{display:flex;flex-direction:column;gap:16px;padding:clamp(22px,3vw,34px);border-radius:26px;background:rgba(22,23,28,.78);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 30px 80px rgba(0,0,0,.4)}
.ks-form input,.ks-form select{height:52px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(8,9,12,.55);color:#fff;font:400 15px var(--sans);outline:none;transition:border-color .3s}
.ks-form input:focus,.ks-form select:focus{border-color:rgba(201,184,255,.6)}
.ks-foot{position:relative;z-index:2;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;max-width:1160px;margin:0 auto;padding:0 clamp(16px,5vw,64px) 32px;font-size:12px;color:#6f7480}

/* ---------- movimento ---------- */
@keyframes ks-rise{to{opacity:1;transform:none;filter:blur(0)}}
@keyframes ks-fadeup{to{opacity:1;transform:none}}
@keyframes ks-float3d{0%,100%{transform:rotateY(-24deg) rotateX(12deg) translateY(0)}50%{transform:rotateY(-17deg) rotateX(7deg) translateY(-16px)}}
@keyframes ks-orbfloat{0%,100%{transform:translateZ(70px) translateY(0)}50%{transform:translateZ(70px) translateY(-12px)}}
@keyframes ks-chipfloat{0%,100%{transform:translateZ(90px) translateY(0)}50%{transform:translateZ(90px) translateY(-9px)}}
@keyframes ks-wheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(12px);opacity:0}100%{opacity:0}}
@keyframes k-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes k-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes k-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes k-pulse{0%,100%{opacity:.35}50%{opacity:.9}}
@keyframes k-bar{from{width:0}to{width:100%}}
@keyframes k-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes k-orbit{from{transform:rotate(0) translateX(var(--r)) rotate(0)}to{transform:rotate(360deg) translateX(var(--r)) rotate(-360deg)}}
@keyframes k-drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,-4%) scale(1.08)}100%{transform:translate(0,0) scale(1)}}
@keyframes k-letter{0%{opacity:0;transform:translateY(40px) rotate(-6deg);filter:blur(8px)}100%{opacity:1;transform:none;filter:blur(0)}}
@keyframes k-ring{0%{transform:scale(.6);opacity:.6}100%{transform:scale(1.6);opacity:0}}
@keyframes k-blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes k-shimmer{from{background-position:0% 50%}to{background-position:200% 50%}}
@keyframes k-dash{to{stroke-dashoffset:-400}}
@keyframes k-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes k-fade{from{opacity:0}to{opacity:1}}
@keyframes k-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes k-growx{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes k-dot{0%,100%{r:4}50%{r:7}}
@keyframes k-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ks-w,.ks-fade{animation:none;opacity:1;transform:none;filter:none}[data-reveal]{opacity:1;transform:none;transition:none}.ks-ring-wrap,.ks-orb,.ks-chip3d,.ks-mouse::after,.ks-glow{animation:none}.ks-ring-wrap{transform:rotateY(-22deg) rotateX(10deg)}*{animation-duration:.01ms!important;animation-iteration-count:1!important}}
