/* ==========================================================================
   Koshinet — camada de polimento visual (polish.css)
   Carregada DEPOIS de style.css e koshi-connect.css. Não altera lógica nem
   markup existente: só refinamento visual, microinterações e animações.

   Regras de ouro desta camada
   - Animações usam as propriedades independentes `translate`, `scale` e
     `rotate` + `opacity`, que não brigam com os muitos `transform:…!important`
     já existentes no style.css.
   - Tudo respeita `prefers-reduced-motion`.
   - Para desligar a camada inteira basta remover o <link> no index.html.
   ========================================================================== */

:root{
  --kp-ease: cubic-bezier(.22,1,.36,1);
  --kp-ease-spring: cubic-bezier(.34,1.56,.64,1);
  --kp-cyan: #7fe3ff;
  --kp-cyan-soft: rgba(127,227,255,.55);
  --kp-glass-edge: rgba(214,246,255,.62);
  --kp-font: "Inter var","Inter","Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
}

/* ---------- Base: tipografia, seleção, foco, scroll ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--kp-font);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"cv11","ss01";
}
button,input,select,textarea{font-family:inherit}
::selection{background:rgba(88,200,255,.45);color:#fff}

:where(button,a,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--kp-cyan)!important;
  outline-offset:2px!important;
  box-shadow:0 0 0 5px rgba(127,227,255,.22)!important;
  transition:outline-offset .15s var(--kp-ease),box-shadow .2s var(--kp-ease);
}

*{scrollbar-width:thin;scrollbar-color:rgba(150,220,255,.5) transparent}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,rgba(170,230,255,.7),rgba(70,160,225,.55));
  border:2px solid transparent;background-clip:padding-box;border-radius:10px;
}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#c6f0ff,#5db8f0);background-clip:padding-box;border:2px solid transparent}

/* ---------- Botões: resposta tátil + brilho ---------- */
button{
  -webkit-tap-highlight-color:transparent;
  transition:translate .28s var(--kp-ease),scale .2s var(--kp-ease),filter .25s ease,box-shadow .3s var(--kp-ease),background-color .25s ease,border-color .25s ease,opacity .2s ease;
}
button:not(:disabled):not([hidden]):hover{filter:brightness(1.07) saturate(1.08)}
button:not(:disabled):active{scale:.965;filter:brightness(.97)}
button:disabled{cursor:not-allowed}

/* Ripple (injetado por polish.js) */
.kp-ripple-host{position:relative;overflow:hidden}
.kp-ripple{
  position:absolute;border-radius:50%;pointer-events:none;z-index:5;
  background:radial-gradient(circle,rgba(255,255,255,.65) 0,rgba(255,255,255,.28) 40%,transparent 70%);
  scale:0;opacity:.9;animation:kp-ripple .7s var(--kp-ease) forwards;
}
@keyframes kp-ripple{to{scale:1;opacity:0}}

/* ---------- Fundo vivo: aurora + bolhas (injetado por polish.js) ---------- */
.kp-ambient{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}
.kp-ambient .kp-blob{
  position:absolute;border-radius:50%;filter:blur(70px);opacity:.34;mix-blend-mode:screen;
  will-change:translate,scale;
}
.kp-ambient .kp-blob.b1{width:46vmax;height:46vmax;left:-12vmax;top:-14vmax;background:#2aa8ff;animation:kp-drift-a 26s ease-in-out infinite alternate}
.kp-ambient .kp-blob.b2{width:40vmax;height:40vmax;right:-14vmax;top:12vh;background:#5b6dff;opacity:.26;animation:kp-drift-b 32s ease-in-out infinite alternate}
.kp-ambient .kp-blob.b3{width:36vmax;height:36vmax;left:22vw;bottom:-18vmax;background:#2fe0c4;opacity:.2;animation:kp-drift-c 38s ease-in-out infinite alternate}
@keyframes kp-drift-a{to{translate:12vw 10vh;scale:1.18}}
@keyframes kp-drift-b{to{translate:-14vw 8vh;scale:.9}}
@keyframes kp-drift-c{to{translate:10vw -12vh;scale:1.12}}

.kp-bubble{
  position:absolute;bottom:-60px;border-radius:50%;
  background:radial-gradient(circle at 30% 28%,rgba(255,255,255,.85) 0 7%,rgba(255,255,255,.18) 22%,rgba(140,215,255,.10) 60%,rgba(255,255,255,.28) 100%);
  border:1px solid rgba(255,255,255,.38);
  box-shadow:inset 0 0 12px rgba(255,255,255,.25),0 0 18px rgba(110,200,255,.18);
  opacity:0;will-change:translate,opacity;
  animation:kp-bubble-rise var(--d,18s) linear var(--delay,0s) infinite;
}
@keyframes kp-bubble-rise{
  0%{translate:0 0;opacity:0}
  8%{opacity:var(--o,.55)}
  50%{translate:var(--sway,24px) -55vh}
  92%{opacity:var(--o,.55)}
  100%{translate:calc(var(--sway,24px) * -1) -112vh;opacity:0}
}

/* O .app precisa ficar acima do fundo vivo */
.app{position:relative;z-index:1}

/* ---------- Barra de progresso de rede (injetada por polish.js) ---------- */
.kp-progress{
  position:fixed;left:0;top:0;height:3px;width:100%;z-index:2147483600;pointer-events:none;
  background:linear-gradient(90deg,transparent,#7fe3ff 20%,#fff 50%,#7fe3ff 80%,transparent);
  box-shadow:0 0 12px #7fe3ff;
  transform-origin:left center;scale:0 1;opacity:0;
  transition:scale .45s var(--kp-ease),opacity .3s ease;
}
.kp-progress.is-on{opacity:1;scale:.72 1;transition-duration:6s,.2s}
.kp-progress.is-done{scale:1 1;opacity:0;transition:scale .25s ease,opacity .5s .2s ease}

/* ---------- Entrada do app ---------- */
.app{animation:kp-app-in .9s var(--kp-ease) backwards}
@keyframes kp-app-in{from{opacity:0;scale:.985;translate:0 14px}to{opacity:1;scale:1;translate:0 0}}

/* ---------- Topbar ---------- */
.koshi-topbar-v91440{
  box-shadow:0 1px 0 rgba(255,255,255,.14),0 10px 30px rgba(0,22,60,.28);
  position:relative;z-index:30;
}
.koshi-topbar-v91440 .brand{animation:kp-slide-down .7s var(--kp-ease) .08s backwards}
.koshi-global-search-v91440{animation:kp-slide-down .7s var(--kp-ease) .16s backwards;transition:box-shadow .35s var(--kp-ease),background-color .3s ease,border-color .3s ease}
.koshi-top-icon-v91440{animation:kp-slide-down .7s var(--kp-ease) .24s backwards}
.koshi-profile-button-v91440{animation:kp-slide-down .7s var(--kp-ease) .30s backwards}
@keyframes kp-slide-down{from{opacity:0;translate:0 -12px}to{opacity:1;translate:0 0}}

.koshi-topbar-v91440 .brand-logo{transition:rotate .8s var(--kp-ease),filter .4s ease}
.koshi-topbar-v91440 .brand:hover .brand-logo{rotate:360deg;filter:drop-shadow(0 0 10px #7fe3ff)}

.koshi-global-search-v91440:focus-within{
  background:rgba(1,55,108,.62)!important;
  border-color:rgba(190,240,255,.95)!important;
  box-shadow:0 0 0 4px rgba(127,227,255,.2),0 10px 30px rgba(0,30,80,.35);
}
.koshi-global-search-v91440 input{transition:color .2s}
.koshi-global-search-results-v91440:not([hidden]){animation:kp-pop-down .32s var(--kp-ease) backwards;transform-origin:top center}
.koshi-profile-menu-v91440:not([hidden]){animation:kp-pop-down .32s var(--kp-ease) backwards;transform-origin:top right}
.koshi-profile-menu-v91440 button{transition:translate .25s var(--kp-ease),background-color .2s ease}
.koshi-profile-menu-v91440 button:hover{translate:3px 0}
@keyframes kp-pop-down{from{opacity:0;translate:0 -8px;scale:.96}to{opacity:1;translate:0 0;scale:1}}

.koshi-top-icon-v91440:hover{background:rgba(127,227,255,.28)!important}
.koshi-top-icon-v91440:hover{animation:kp-bell 0.7s ease backwards}
@keyframes kp-bell{0%,100%{rotate:0deg}20%{rotate:14deg}40%{rotate:-12deg}60%{rotate:8deg}80%{rotate:-5deg}}

.koshi-profile-avatar-v91440{transition:box-shadow .4s ease,scale .3s var(--kp-ease-spring)}
.koshi-profile-button-v91440:hover .koshi-profile-avatar-v91440{scale:1.08;box-shadow:0 0 0 3px rgba(127,227,255,.4)}

/* Indicador "online" pulsante, se o app usar a classe .status.online ou data-status */
.status.online::before,.koshi-profile-copy-v91440 small.is-online::before{animation:kp-pulse-dot 2s ease-out infinite}
@keyframes kp-pulse-dot{0%{box-shadow:0 0 0 0 rgba(111,235,93,.7)}100%{box-shadow:0 0 0 9px rgba(111,235,93,0)}}

/* ---------- Home / Central Koshinet ---------- */
.koshi-mc-intro-inner-v91661{animation:kp-rise 1s var(--kp-ease) .25s backwards}
.koshi-mc-eyebrow-v91661{display:inline-block;animation:kp-fade 1.2s ease .5s backwards}
.koshi-mc-intro-inner-v91661 h1{
  letter-spacing:-.025em;font-weight:800;
  text-shadow:none!important;
  background:linear-gradient(100deg,#fff 20%,#aeeaff 40%,#fff 55%,#8fdcff 75%,#fff);
  background-size:260% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent!important;
  filter:drop-shadow(0 4px 18px rgba(0,40,100,.55));
  animation:kp-shimmer 7s linear infinite;
}
@keyframes kp-shimmer{from{background-position:130% 0}to{background-position:-130% 0}}
.koshi-mc-intro-inner-v91661 p{animation:kp-fade 1.2s ease .7s backwards}

/* Título "Explorar" + controles */
.koshi-mc-navigation-head-v91661{animation:kp-rise .8s var(--kp-ease) .4s backwards}
.koshi-mc-navigation-controls-v91661 button{transition:translate .25s var(--kp-ease),background-color .2s ease,scale .2s}
.koshi-mc-navigation-controls-v91661 button:hover{background:rgba(127,227,255,.3)}
#koshiMcPrevV91661:hover{translate:-3px 0}
#koshiMcNextV91661:hover{translate:3px 0}

/* Cartões de navegação (bolhas) */
body.koshi-media-home-v91660 #koshiMainNavV91440{animation:kp-rise .9s var(--kp-ease) .45s backwards}
#koshiMainNavV91440>button[data-koshi-bubble-v91650]{
  animation:kp-card-in .75s var(--kp-ease) backwards;
  transition:translate .45s var(--kp-ease),box-shadow .45s var(--kp-ease),border-color .3s ease,filter .3s ease!important;
  position:relative;overflow:hidden;
}
#koshiMainNavV91440>button:nth-child(1){animation-delay:.55s}
#koshiMainNavV91440>button:nth-child(2){animation-delay:.62s}
#koshiMainNavV91440>button:nth-child(3){animation-delay:.69s}
#koshiMainNavV91440>button:nth-child(4){animation-delay:.76s}
#koshiMainNavV91440>button:nth-child(5){animation-delay:.83s}
#koshiMainNavV91440>button:nth-child(6){animation-delay:.90s}
#koshiMainNavV91440>button:nth-child(7){animation-delay:.97s}
#koshiMainNavV91440>button:nth-child(8){animation-delay:1.04s}
#koshiMainNavV91440>button:nth-child(9){animation-delay:1.11s}
#koshiMainNavV91440>button:nth-child(n+10){animation-delay:1.18s}
@keyframes kp-card-in{from{opacity:0;translate:0 26px;scale:.9}to{opacity:1;translate:0 0;scale:1}}

body.koshi-media-home-v91660 #koshiMainNavV91440>button[data-koshi-bubble-v91650]:hover{
  translate:0 -6px;
  border-color:rgba(230,251,255,.95)!important;
  box-shadow:inset 0 1px 14px rgba(255,255,255,.55),0 18px 38px rgba(0,30,80,.55),0 0 0 1px rgba(127,227,255,.4),0 0 30px rgba(110,210,255,.35)!important;
}
body.koshi-media-home-v91660 #koshiMainNavV91440>button[data-koshi-bubble-v91650]:active{translate:0 -2px;scale:.98}

/* Ícones flutuando suavemente, defasados */
.koshi-media-nav-v91660 .koshi-bubble-icon-v91650{animation:kp-float 5s ease-in-out infinite;transition:scale .45s var(--kp-ease-spring),filter .3s}
.koshi-media-nav-v91660>button:nth-child(2n) .koshi-bubble-icon-v91650{animation-delay:-1.3s}
.koshi-media-nav-v91660>button:nth-child(3n) .koshi-bubble-icon-v91650{animation-delay:-2.6s}
.koshi-media-nav-v91660>button:nth-child(5n) .koshi-bubble-icon-v91650{animation-delay:-3.8s}
.koshi-media-nav-v91660>button:hover .koshi-bubble-icon-v91650{scale:1.18;animation-play-state:paused}
@keyframes kp-float{0%,100%{translate:0 0}50%{translate:0 -5px}}

/* Holofote que segue o cursor (span injetado por polish.js) */
.kp-spot{
  position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0;border-radius:inherit;
  background:radial-gradient(180px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.34),rgba(150,225,255,.12) 45%,transparent 70%);
  transition:opacity .35s ease;
}
:hover>.kp-spot{opacity:1}
/* Brilho que varre o cartão ao passar o mouse */
.kp-spot::after{
  content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:40%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);
  rotate:12deg;translate:0 0;
}
:hover>.kp-spot::after{animation:kp-sweep .9s var(--kp-ease) backwards}
@keyframes kp-sweep{to{translate:420% 0}}
#koshiMainNavV91440>button>*:not(.kp-spot){position:relative;z-index:1}

/* Painéis "Amigos online" / "Seus clubes" */
.koshi-mc-live-panel-v91661{
  animation:kp-rise .85s var(--kp-ease) backwards;
  transition:translate .4s var(--kp-ease),box-shadow .4s var(--kp-ease),border-color .3s ease;
  position:relative;
}
.koshi-mc-live-panel-v91661:nth-child(1){animation-delay:1.0s}
.koshi-mc-live-panel-v91661:nth-child(2){animation-delay:1.12s}
.koshi-mc-live-panel-v91661:hover{translate:0 -3px;box-shadow:inset 0 1px 12px rgba(255,255,255,.2),0 16px 36px rgba(0,25,70,.5)!important}
.koshi-mc-live-title-v91661 h2{letter-spacing:-.01em}
.koshi-mc-live-title-v91661 button{transition:translate .25s var(--kp-ease),background-color .2s ease}
.koshi-mc-live-title-v91661 button:hover{translate:3px 0;background:rgba(127,227,255,.28)}

/* Estado "Carregando…" com respiração */
.koshi-mc-online-v91661>p,.koshi-mc-clubs-v91661>p{animation:kp-breathe 2.4s ease-in-out infinite}
@keyframes kp-breathe{0%,100%{opacity:.55}50%{opacity:1}}

/* Itens de lista (amigos online / clubes) */
.koshi-mc-online-v91661>*:not(p),.koshi-mc-clubs-v91661>*:not(p){transition:translate .3s var(--kp-ease),background-color .25s ease}
.koshi-mc-online-v91661>*:not(p):hover,.koshi-mc-clubs-v91661>*:not(p):hover{translate:4px 0}

/* ---------- Dashboard / páginas internas ---------- */
.koshi-dash-page-v91441:not([hidden]),
.koshi-functional-page-v91442:not([hidden]){animation:kp-page-in .6s var(--kp-ease) backwards}
@keyframes kp-page-in{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}

.koshi-dash-panel-v91441{
  transition:translate .4s var(--kp-ease),box-shadow .4s var(--kp-ease);
  animation:kp-rise .6s var(--kp-ease) backwards;
}
.koshi-dash-panel-v91441:nth-child(2){animation-delay:.07s}
.koshi-dash-panel-v91441:nth-child(3){animation-delay:.14s}
.koshi-dash-panel-v91441:nth-child(4){animation-delay:.21s}
.koshi-dash-panel-v91441:hover{translate:0 -2px;box-shadow:inset 0 1px rgba(255,255,255,.98),0 14px 34px rgba(0,55,104,.2)}

.koshi-dash-list-v91441>*,.koshi-friend-card-v91441,.friends-page-card-v79,.market-grid-v9240>*{
  animation:kp-rise .55s var(--kp-ease) backwards;
  transition:translate .35s var(--kp-ease),box-shadow .35s var(--kp-ease),border-color .25s ease;
}
.koshi-dash-list-v91441>*:nth-child(2),.market-grid-v9240>*:nth-child(2){animation-delay:.05s}
.koshi-dash-list-v91441>*:nth-child(3),.market-grid-v9240>*:nth-child(3){animation-delay:.10s}
.koshi-dash-list-v91441>*:nth-child(4),.market-grid-v9240>*:nth-child(4){animation-delay:.15s}
.koshi-dash-list-v91441>*:nth-child(5),.market-grid-v9240>*:nth-child(5){animation-delay:.20s}
.koshi-dash-list-v91441>*:nth-child(n+6),.market-grid-v9240>*:nth-child(n+6){animation-delay:.25s}
.koshi-dash-list-v91441>*:hover,.koshi-friend-card-v91441:hover,.friends-page-card-v79:hover,.market-grid-v9240>*:hover{
  translate:0 -3px;box-shadow:0 14px 30px rgba(0,50,100,.22);
}

/* ---------- Mensagens de chat ---------- */
.message:not(.kp-nomotion){animation:kp-msg-in .45s var(--kp-ease) backwards}
.message.mine:not(.kp-nomotion){animation-name:kp-msg-in-mine}
@keyframes kp-msg-in{from{opacity:0;translate:-14px 8px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@keyframes kp-msg-in-mine{from{opacity:0;translate:14px 8px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
.bubble{transition:box-shadow .3s ease,translate .3s var(--kp-ease)}
.message:hover .bubble{box-shadow:0 6px 18px rgba(0,60,110,.18)}

/* ---------- Janelas modais / overlays ---------- */
.account-security-overlay:not([hidden]){animation:kp-overlay-in .35s ease backwards}
.account-security-overlay:not([hidden])>.account-security-window,
.account-security-overlay:not([hidden])>[class*="-window"]{
  animation:kp-modal-in .55s var(--kp-ease-spring) backwards;
}
@keyframes kp-overlay-in{from{opacity:0}to{opacity:1}}
@keyframes kp-modal-in{from{opacity:0;translate:0 26px;scale:.93}to{opacity:1;translate:0 0;scale:1}}

.welcome-overlay.is-open .welcome-window{animation:kp-modal-in .55s var(--kp-ease-spring) backwards}
.welcome-overlay.is-open .welcome-grid article{animation:kp-rise .55s var(--kp-ease) backwards;transition:translate .3s var(--kp-ease),box-shadow .3s ease,border-color .25s}
.welcome-overlay.is-open .welcome-grid article:nth-child(1){animation-delay:.15s}
.welcome-overlay.is-open .welcome-grid article:nth-child(2){animation-delay:.22s}
.welcome-overlay.is-open .welcome-grid article:nth-child(3){animation-delay:.29s}
.welcome-overlay.is-open .welcome-grid article:nth-child(4){animation-delay:.36s}
.welcome-grid article:hover{translate:0 -3px;box-shadow:0 12px 26px rgba(0,30,80,.35)}
.welcome-grid article>span{transition:scale .4s var(--kp-ease-spring),rotate .4s var(--kp-ease)}
.welcome-grid article:hover>span{scale:1.18;rotate:-6deg}

/* Painel de aparência / lateral */
.appearance-panel{transition:translate .5s var(--kp-ease),opacity .35s ease}

/* ---------- Tela de boas-vindas (gate) ---------- */
.koshi-welcome-gate-v91440:not([hidden]){animation:kp-overlay-in .6s ease backwards}
.koshi-welcome-hero-v91440{animation:kp-modal-in .9s var(--kp-ease) .05s backwards}
.koshi-welcome-hero-v91440::before{
  content:"";position:absolute;inset:-30%;pointer-events:none;z-index:0;
  background:
    conic-gradient(from 0deg at 68% 36%,transparent 0 8%,rgba(160,230,255,.14) 14%,transparent 22% 40%,rgba(120,150,255,.12) 48%,transparent 56% 78%,rgba(120,240,230,.12) 86%,transparent);
  animation:kp-spin 60s linear infinite;
}
@keyframes kp-spin{to{rotate:360deg}}
.koshi-welcome-glow-v91440{animation:kp-glow-breathe 7s ease-in-out infinite}
@keyframes kp-glow-breathe{0%,100%{opacity:.75;scale:1}50%{opacity:1;scale:1.08}}

.koshi-welcome-brand-v91440{animation:kp-rise .9s var(--kp-ease) .35s backwards}
.koshi-welcome-brand-v91440 img{animation:kp-logo-float 6s ease-in-out infinite;transition:scale .4s var(--kp-ease-spring)}
.koshi-welcome-brand-v91440 img:hover{scale:1.1}
.koshi-welcome-brand-v91440 strong{letter-spacing:-.02em;font-weight:800;text-shadow:0 4px 20px rgba(0,40,100,.5)}
@keyframes kp-logo-float{0%,100%{translate:0 0;box-shadow:0 0 25px #70d5ff}50%{translate:0 -6px;box-shadow:0 0 42px #9be4ff}}

.koshi-welcome-actions-v91440>button{
  animation:kp-rise .75s var(--kp-ease) backwards;position:relative;overflow:hidden;
  transition:translate .35s var(--kp-ease),box-shadow .35s var(--kp-ease),filter .25s,scale .2s;
}
.koshi-welcome-actions-v91440>button:nth-child(1){animation-delay:.55s}
.koshi-welcome-actions-v91440>button:nth-child(2){animation-delay:.65s}
.koshi-welcome-actions-v91440>button:nth-child(3){animation-delay:.75s}
.koshi-welcome-actions-v91440>button:hover{translate:0 -3px;box-shadow:0 14px 30px rgba(0,35,90,.45),0 0 26px rgba(120,215,255,.35)}
#koshiWelcomeLoginV91440 span{display:inline-block;transition:translate .3s var(--kp-ease)}
#koshiWelcomeLoginV91440:hover span{translate:5px 0}
/* Brilho passando continuamente no botão principal */
#koshiWelcomeLoginV91440::after{
  content:"";position:absolute;top:0;bottom:0;left:-50%;width:35%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);
  rotate:12deg;animation:kp-btn-shine 4.5s ease-in-out 1.6s infinite;
}
@keyframes kp-btn-shine{0%{translate:0 0}45%,100%{translate:480% 0}}

/* Formulários de login/cadastro */
.koshi-welcome-auth-panel-v91442:not([hidden]){animation:kp-modal-in .5s var(--kp-ease-spring) backwards}
.koshi-welcome-auth-v91440 input{transition:box-shadow .3s var(--kp-ease),border-color .25s ease,background-color .25s ease}
.koshi-welcome-auth-v91440 input:focus{box-shadow:0 0 0 4px rgba(127,227,255,.25)!important;border-color:#a8ebff!important}
.koshi-welcome-auth-message-v91440:not(:empty){animation:kp-rise .4s var(--kp-ease) backwards}

/* Vitrine flutuante e bolhas da tela de boas-vindas (injetado por polish.js) */
.kp-gate-bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.kp-gate-showcase{
  position:absolute;right:6%;top:50%;translate:0 -50%;z-index:2;display:grid;gap:14px;width:min(300px,34%);
  pointer-events:none;
}
.kp-gate-chip{
  display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:18px;color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.22),rgba(255,255,255,.07));
  border:1px solid rgba(220,248,255,.55);
  box-shadow:inset 0 1px 10px rgba(255,255,255,.25),0 12px 30px rgba(0,25,70,.35);
  backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);
  animation:kp-chip-in .9s var(--kp-ease) backwards,kp-chip-float 6s ease-in-out infinite;
}
.kp-gate-chip:nth-child(1){animation-delay:.9s,1.8s;margin-right:34px}
.kp-gate-chip:nth-child(2){animation-delay:1.05s,2.4s;margin-left:26px}
.kp-gate-chip:nth-child(3){animation-delay:1.2s,3s;margin-right:18px}
.kp-gate-chip:nth-child(4){animation-delay:1.35s,3.6s;margin-left:40px}
.kp-gate-chip i{font-style:normal;font-size:26px;filter:drop-shadow(0 3px 5px rgba(0,30,80,.4))}
.kp-gate-chip b{display:block;font-size:14px;letter-spacing:-.01em}
.kp-gate-chip small{display:block;font-size:11.5px;opacity:.82;margin-top:1px}
@keyframes kp-chip-in{from{opacity:0;translate:40px 0;scale:.9}to{opacity:1;translate:0 0;scale:1}}
@keyframes kp-chip-float{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media (max-width:900px){.kp-gate-showcase{display:none}}

/* ---------- Utilidades de animação ---------- */
@keyframes kp-rise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes kp-fade{from{opacity:0}to{opacity:1}}

/* Pausa animações infinitas quando a aba está em segundo plano (economiza bateria) */
html.kp-paused *,html.kp-paused *::before,html.kp-paused *::after{animation-play-state:paused!important}

/* Mobile: menos movimento e sem efeitos pesados */
@media (max-width:760px){
  .kp-ambient .kp-blob{filter:blur(50px)}
  .kp-bubble:nth-child(n+7){display:none}
  .koshi-mc-live-panel-v91661:hover,#koshiMainNavV91440>button:hover{translate:0 0}
}

/* Acessibilidade: respeita quem prefere menos movimento */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .kp-ambient,.kp-gate-bubbles{display:none!important}
}

/* Mobile: a tela de boas-vindas ganha altura suficiente para os 3 botões */
@media (max-width:760px){
  .koshi-welcome-hero-v91440{aspect-ratio:auto!important;width:calc(100vw - 28px)!important;height:min(560px,calc(100dvh - 28px))!important}
  .koshi-welcome-brand-v91440{left:7%!important;top:7%!important}
  .koshi-welcome-actions-v91440{left:7%!important;top:auto!important;bottom:7%!important;width:86%!important}
}


/* v91.70.3 — Home Aero com "Refúgio Azul Sob a Lua" e botão de download do Windows.
   O arquivo de imagem é local, permitindo o primeiro carregamento sem conexão externa. */
.koshi-welcome-gate-v91440{
  isolation:isolate;
  background-color:#051a3c;
  background-image:linear-gradient(rgba(3,16,42,.24),rgba(1,10,35,.38)),url('/assets/welcome/refugio-azul-sob-a-lua.png?v=91.70.3');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}
.koshi-welcome-gate-v91440::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:rgba(1,9,29,.17);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}
.koshi-welcome-hero-v91440{
  width:min(1520px,calc(100vw - 44px),calc((100dvh - 44px)*16/9));
  max-width:1520px;
  aspect-ratio:16/9;
  border-radius:24px;
  border:1px solid rgba(209,242,255,.76);
  background-color:#06214d;
  background-image:linear-gradient(90deg,rgba(3,15,45,.43),rgba(1,15,37,.08) 45%,rgba(3,17,45,.20)),url('/assets/welcome/refugio-azul-sob-a-lua.png?v=91.70.3');
  background-size:cover;
  background-position:center center;
  box-shadow:0 30px 90px rgba(0,9,34,.74),inset 0 1px 0 rgba(255,255,255,.70),inset 0 0 0 4px rgba(164,225,255,.08);
}
.koshi-welcome-hero-v91440::before{
  inset:0;
  background:radial-gradient(ellipse at 55% 25%,rgba(74,148,250,.07),transparent 58%);
  animation:none;
}
.koshi-welcome-hero-v91440::after{
  background:linear-gradient(180deg,rgba(1,13,38,.10) 0%,transparent 42%,rgba(1,10,32,.28) 100%);
}
.koshi-welcome-brand-v91440{left:6%;top:7%;}
.koshi-welcome-actions-v91440{
  left:7%;top:50%;transform:translateY(-6%);
  width:min(385px,42%);gap:11px;
}
.koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442{
  position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;
  display:flex;align-items:center;justify-content:center;gap:9px;
  width:100%;box-sizing:border-box;min-height:46px;padding:9px 15px;
  border:1px solid rgba(212,241,255,.86);border-radius:11px;
  background:linear-gradient(180deg,rgba(35,111,180,.64),rgba(4,44,95,.7));
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:#fff;font-size:15px;font-weight:750;text-decoration:none;
  text-shadow:0 1px 2px rgba(0,20,56,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 7px 22px rgba(0,23,62,.32);
  cursor:pointer;
  animation:kp-rise .75s var(--kp-ease) .75s backwards;
  transition:translate .35s var(--kp-ease),box-shadow .35s var(--kp-ease),background .25s;
}
.koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442 small{
  font-size:10px;font-weight:600;color:rgba(231,246,255,.86);
}
.koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442:hover{
  translate:0 -3px;
  background:linear-gradient(180deg,rgba(43,143,222,.9),rgba(8,77,152,.84));
  box-shadow:0 14px 28px rgba(0,27,69,.42),0 0 18px rgba(90,198,255,.24),inset 0 1px rgba(255,255,255,.55);
}
.koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442:active{translate:0 0}
.koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442:focus-visible{outline:2px solid #b1edff;outline-offset:4px}
@media(max-width:900px){
  .koshi-welcome-hero-v91440{width:min(calc(100vw - 24px),calc((100dvh - 24px)*16/9))}
  .koshi-welcome-actions-v91440{left:7%;width:min(385px,62%)}
}
@media(max-width:720px){
  .koshi-welcome-gate-v91440{padding:8px}
  .koshi-welcome-hero-v91440{
    width:calc(100vw - 16px)!important;
    height:min(760px,calc(100dvh - 16px))!important;
    aspect-ratio:auto!important;
    border-radius:18px;
    background-position:43% center;
  }
  .koshi-welcome-brand-v91440{left:7%;top:7%!important}
  .koshi-welcome-brand-v91440 img{width:52px;height:52px}
  .koshi-welcome-actions-v91440{left:7%!important;top:auto!important;bottom:10%!important;transform:none!important;width:86%!important}
  .koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442{font-size:14px;min-height:44px}
  .koshi-welcome-auth-v91440{max-height:80%;overflow:auto}
}
@media(max-height:620px) and (min-width:721px){
  .koshi-welcome-brand-v91440{top:5%}
  .koshi-welcome-actions-v91440{top:47%;gap:8px}
  .koshi-welcome-actions-v91440 button{min-height:43px;font-size:15px}
  .koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442{min-height:40px}
}
@media(prefers-reduced-motion:reduce){
  .koshi-welcome-actions-v91440>a.koshi-welcome-install-v91442{animation:none;transition:none}
}
