.skill-card {
    position: relative;
    overflow: hidden;
    border-radius: .75rem;
    padding: 1.5rem;
    --tw-shadow: 0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1);
    box-shadow: var(--tw-shadow);
    transition: all .3s;
    background: linear-gradient(135deg,#e0e0e0,#d0d0d0,silver);
    border: 3px solid rgba(0,0,0,.2)
}
.skill-card:before {
    content: "";
    position: absolute;
    top: 0;
    height: 100%;
    width: 50%;
    background: linear-gradient(to right,transparent 0%,rgba(255,255,255,.5) 50%,transparent 100%);
    transform: skew(-25deg) translate(-150%);
    transition: transform .6s ease-in-out
}
.skill-card:hover:before {
    transform: skew(-25deg) translate(250%)
}
.skill-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 50px rgba(0,0,0,.2);
    border-color: rgba(0,0,0,.3)
}
.dark .skill-card {
    box-shadow: 0 1px 2px 0 rgb(0 0 0/.05);
    background: linear-gradient(135deg,#1f1f1f,#121212,#0a0a0a);
    border: 3px solid rgba(255,255,255,.1)
}
.dark .skill-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 30px 50px rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.2)
}
.dark .skill-card:before {
    background: linear-gradient(to right,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%)
}
.skill-tech-item {
    --skill-color: 249 115 22;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    border-radius: .5rem;
    padding: .75rem 2rem;
    background: rgba(0,0,0,.05);
    border: 1px solid rgba(0,0,0,.1);
    transition: all .3s ease
}
.skill-tech-item:hover {
    background: rgb(var(--skill-color)/.12);
    border-color: rgb(var(--skill-color)/.5);
    transform: scale(1.05);
    box-shadow: 0 0 14px rgb(var(--skill-color)/.5)
}
.dark .skill-tech-item {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1)
}
.dark .skill-tech-item:hover {
    background: rgb(var(--skill-color)/.18);
    border-color: rgb(var(--skill-color)/.65);
    box-shadow: 0 0 16px rgb(var(--skill-color)/.55)
}
.skill-orange { --skill-color: 249 115 22 }
.skill-blue { --skill-color: 37 99 235 }
.skill-yellow { --skill-color: 234 179 8 }
.skill-green { --skill-color: 22 163 74 }
.skill-purple { --skill-color: 167 139 250 }

/* Tags de tecnologia dos cards de projeto: cor da marca de cada uma.
   Tag sem cor definida aqui cai no cinza padrão. */
.project-tag {
    background: rgba(107,114,128,.9);
    color: #fff;
    font-weight: 600
}
.tag-java { background: #dc2626 }
.tag-swing { background: #2563eb }
.tag-cheerpj { background: #f97316 }
.tag-vercel { background: #1f1f22 }
.tag-php { background: #7e22ce }
.tag-laravel { background: #b91c1c }
.tag-postgresql { background: #2563eb }
.tag-sql { background: #0f766e }
.tag-tailwind { background: #60a5fa }
.tag-js, .tag-javascript { background: #eab308; color: #111827 }
.tag-node-js { background: #16a34a }
.tag-typescript { background: #3178c6 }
.tag-docker { background: #0284c7 }
.tag-python { background: #ca8a04; color: #111827 }
.tag-power-bi { background: #f2c811; color: #111827 }
.tag-dbt { background: #ff694b; color: #111827 }
.tag-github-actions { background: #1f6feb }
.tag-aws { background: #ff9900; color: #111827 }
.tag-terraform { background: #7b42bc }
.tag-databricks { background: #ff3621 }
.tag-ia-llm { background: #c5f03a; color: #111827 }
.tag-react { background: #61dafb; color: #111827 }
.tag-pyspark { background: #e25a1c }
.tag-delta-lake { background: #00add4; color: #111827 }
@media(max-width:767px) {
    .skill-tech-item {
        padding: .75rem .5rem!important
    }
}
.tech-icon-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: .375rem;
    font-weight: 700;
    font-size: .6rem;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .02em;
    line-height: 1
}
.tech-icon {
    height: 2rem;
    width: 2rem;
    margin-bottom: .5rem;
    font-size: 2rem;
    line-height: 1
}
@media(min-width:768px) {
    .tech-icon {
        height: 2.5rem;
        width: 2.5rem;
        margin-bottom: .5rem;
        font-size: 2.5rem
    }
}
.timeline {
    position: relative
}
.timeline:before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    height: 100%;
    width: .125rem;
    transform: translateX(-50%);
    background-color: rgb(107 114 128)
}
.dark .timeline:before {
    background-color: rgb(55 65 81)
}
.timeline-item {
    position: relative;
    margin-bottom: 2rem
}
.timeline-item:before {
    content: "";
    position: absolute;
    left: 50%;
    margin-top: .25rem;
    height: 1rem;
    width: 1rem;
    transform: translateX(-50%);
    border-radius: 9999px;
    background-color: rgb(249 115 22);
    border: 2px solid #e5e7eb
}
.dark .timeline-item:before {
    border-color: #000
}
@media(min-width:768px) {
    .timeline-item:nth-child(odd) {
        width: 50%;
        align-self: flex-start;
        padding-right: 2rem
    }
    .timeline-item:nth-child(2n) {
        width: 50%;
        align-self: flex-end;
        padding-left: 2rem
    }
    .timeline-item:nth-child(odd):before {
        left: 100%
    }
    .timeline-item:nth-child(2n):before {
        left: 0
    }
}
@media(max-width:767px) {
    .timeline::before {
        left: .5rem!important
    }
    .timeline-item::before {
        left: .5rem!important;
        transform: translateX(-50%)!important
    }
    .timeline-item {
        width: 100%!important;
        padding-left: 2.5rem!important;
        padding-right: 0!important
    }
}
.reveal.from-left {
    transform: translateX(-50px)
}
.reveal.from-right {
    transform: translateX(50px)
}
.reveal.from-left.active,.reveal.from-right.active {
    transform: translate(0,0)
}
.project-card {
    background: linear-gradient(145deg,#e2e2e2,#cfcfcf);
    border: 2px solid rgba(0,0,0,.15);
    position: relative;
    transition: all .5s cubic-bezier(.4,0,.2,1)
}
.project-card:hover {
    box-shadow: 0 15px 40px rgba(0,0,0,.15);
    border-color: rgba(0,0,0,.25)
}
.dark .project-card {
    background: linear-gradient(145deg,#1a1a1a,#0d0d0d);
    border: 2px solid rgba(255,255,255,.1)
}
.dark .project-card:hover {
    box-shadow: 0 15px 40px rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.25)
}
.project-visuals {
    transition: all .5s cubic-bezier(.4,0,.2,1)
}
.project-image-wrapper {
    position: relative;
    overflow: hidden
}
.project-image-wrapper:after {
    content: "";
    pointer-events: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
    transition: transform .7s cubic-bezier(.4,0,.2,1);
    background: linear-gradient(110deg,transparent 0%,transparent 40%,rgba(255,255,255,.6) 50%,transparent 60%,transparent 100%);
    transform: translate(-100%) skew(-15deg)
}
.dark .project-image-wrapper:after {
    background: linear-gradient(110deg,transparent 0%,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%,transparent 100%)
}
.project-card:hover .project-image-wrapper:after {
    transform: translate(200%) skew(-15deg)
}
.project-image {
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform .5s cubic-bezier(.4,0,.2,1)
}
.project-card:hover .project-image {
    transform: scale(1.05)
}
.project-header {
    transition: transform .5s cubic-bezier(.4,0,.2,1)
}
.project-card:hover .project-header {
    transform: translateY(-40%)
}
.project-footer-tags {
    transition: transform .5s cubic-bezier(.4,0,.2,1)
}
.project-card:hover .project-footer-tags {
    transform: translateY(40%)
}
.project-card:hover .project-visuals {
    margin-bottom: 1rem
}
.project-button {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border-radius: .5rem;
    padding: .75rem 1.5rem;
    background: rgba(0,0,0,.05);
    border: 1px solid rgba(0,0,0,.1);
    font-size: .875rem;
    line-height: 1.25rem;
    font-weight: 700;
    color: rgb(55 65 81);
    transition: all .3s
}
.project-button:hover {
    background: rgba(0,0,0,.1);
    border-color: rgba(0,0,0,.2);
    transform: scale(1.05);
    box-shadow: 0 0 10px rgba(255,105,0,.4)
}
.dark .project-button {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    color: rgb(209 213 219)
}
.dark .project-button:hover {
    background: rgba(255,255,255,.1);
    border-color: rgba(255,255,255,.2)
}
.filter-btn {
    border-radius: .5rem;
    padding: .5rem 1rem;
    font-weight: 500;
    transition: all .3s;
    background: rgba(0,0,0,.05);
    border: 1px solid rgba(0,0,0,.1);
    color: rgb(55 65 81)
}
.filter-btn:hover {
    background: rgba(234,88,12,.1);
    border-color: rgba(234,88,12,.3);
    color: rgb(234,88,12)
}
.filter-btn.active {
    background: rgba(234,88,12,.9);
    border-color: rgb(234,88,12);
    color: #fff
}
.dark .filter-btn {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    color: rgb(209 213 219)
}
.dark .filter-btn:hover {
    background: rgba(234,88,12,.15);
    border-color: rgba(234,88,12,.4);
    color: rgb(251,146,60)
}
.dark .filter-btn.active {
    background: rgba(234,88,12,.8);
    border-color: rgb(234,88,12)
}
html.dark {
    --hero-background: linear-gradient(135deg,#000 0%,#0a0a0a 30%,#121212 60%,#1a1a1a 85%,#1f1f1f 100%),radial-gradient(ellipse at 60% 50%,rgba(255,255,255,.06) 0%,transparent 50%)
}
html:not(.dark) {
    --hero-background: linear-gradient(135deg,#c0c0c0 0%,#d0d0d0 30%,#d8d8d8 60%,#e8e8e8 85%,#f5f5f5 100%),radial-gradient(ellipse at 60% 50%,rgba(0,0,0,.05) 0%,transparent 50%)
}
#sobre {
    background: var(--hero-background)
}
.bg-accent-gradient {
    background-image: linear-gradient(to right,#f97316,#ea580c)
}
.shadow-glow {
    box-shadow: inset 0 2px 4px rgba(255,255,255,.1),0 0 40px rgba(249,115,22,.2)
}
.shadow-glow:hover {
    box-shadow: inset 0 2px 4px rgba(255,255,255,.1),0 0 60px 10px rgba(249,115,22,.3)
}
.dark #experiencias {
    background-color: #1a1a1a
}
#experiencias {
    background-color: #d8d8d8
}
.form-input {
    width: 100%;
    border-radius: .5rem;
    padding: 1rem;
    font-size: 1rem;
    line-height: 1.5rem;
    font-weight: 500;
    border: 1px solid rgb(209 213 219);
    background-color: rgb(243 244 246);
    color: rgb(17 24 39);
    transition: all .3s
}
.form-input::placeholder {
    color: rgb(107 114 128)
}
.form-input:focus {
    border-color: rgb(249 115 22);
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(249,115,22,.5)
}
.dark .form-input {
    border-color: rgb(55 65 81);
    background-color: rgba(17,24,39,.5);
    color: rgb(243 244 246)
}
.dark .form-input::placeholder {
    color: rgb(156 163 175)
}
.dark .form-input:focus {
    border-color: rgb(249 115 22);
    box-shadow: 0 0 0 2px rgba(249,115,22,.5)
}
.reveal {
    opacity: 0;
    transform: translateY(50px);
    transition: all .3s cubic-bezier(.5,0,0,1)
}
.reveal.active {
    opacity: 1;
    transform: translateY(0)
}
.delay-100 {
    transition-delay: 50ms
}
.delay-200 {
    transition-delay: .1s
}
.delay-300 {
    transition-delay: .2s
}
.delay-400 {
    transition-delay: .3s
}
.hide-scrollbar::-webkit-scrollbar {
    display: none
}
.hide-scrollbar {
    -ms-overflow-style:none;
    scrollbar-width: none
}
#project-grid-container {
    transition: max-height .8s ease-in-out
}
.star-hover {
    transition: all .3s ease
}
.group:hover .star-hover {
    animation: twinkle 2s ease-in-out infinite
}
.group:hover .star-hover:nth-of-type(2) {
    animation-delay: .3s
}
@keyframes twinkle {
    0%,to {
        opacity: 1;
        transform: scale(1)
    }
    50% {
        opacity: .4;
        transform: scale(.8)
    }
}
.sun-rays-hover {
    transform-origin: center;
    transition: all .3s ease
}
.group:hover .sun-rays-hover {
    animation: rotate-rays 20s linear infinite
}
@keyframes rotate-rays {
    0% {
        transform: rotate(0)
    }
    to {
        transform: rotate(360deg)
    }
}
.group:hover svg {
    filter: drop-shadow(0 0 8px currentColor)
}
.toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    z-index: 9999;
    padding: 1rem 1.5rem;
    border-radius: .75rem;
    background: linear-gradient(135deg,#1f1f1f,#121212);
    color: #fff;
    font-weight: 500;
    font-size: .9rem;
    box-shadow: 0 10px 40px rgba(0,0,0,.3);
    border: 1px solid rgba(255,255,255,.1);
    transform: translateY(120%);
    opacity: 0;
    transition: all .4s cubic-bezier(.4,0,.2,1)
}
.toast.show {
    transform: translateY(0);
    opacity: 1
}
.dark .hover-plat1:hover {
    box-shadow: 0 30px 50px rgba(234,88,12,.15)!important;
    border-color: rgba(234,88,12,.3)!important
}
.dark .hover-plat2:hover {
    box-shadow: 0 30px 50px rgba(168,85,247,.15)!important;
    border-color: rgba(168,85,247,.3)!important
}
.dark .hover-plat3:hover {
    box-shadow: 0 30px 50px rgba(30,64,175,.15)!important;
    border-color: rgba(30,64,175,.3)!important
}
.project-img-placeholder {
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .85rem;
    font-weight: 600;
    color: rgba(255,255,255,.7);
    text-align: center;
    padding: 1rem
}

.skip-link {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 100;
    transform: translateY(-200%);
    padding: .75rem 1rem;
    border-radius: .5rem;
    background: #ea580c;
    color: #fff;
    font-weight: 700;
    transition: transform .2s ease
}
.skip-link:focus {
    transform: translateY(0);
    outline: 3px solid #fff;
    outline-offset: 3px
}
:focus-visible {
    outline: 3px solid #f97316;
    outline-offset: 3px
}
.project-card[hidden] {
    display: none
}
.certificate-tabs {
    display: flex;
    gap: .75rem;
    overflow-x: auto;
    padding: .25rem;
    border-bottom: 1px solid rgba(107,114,128,.35)
}
.certificate-tab {
    flex: 1 0 auto;
    border-radius: .5rem .5rem 0 0;
    padding: .8rem 1.25rem;
    color: rgb(75 85 99);
    font-weight: 700;
    transition: all .25s ease
}
.certificate-tab:hover,.certificate-tab.active {
    background: rgba(234,88,12,.12);
    color: rgb(194 65 12)
}
.certificate-tab.active {
    box-shadow: inset 0 -3px #ea580c
}
.dark .certificate-tab {
    color: rgb(209 213 219)
}
.dark .certificate-tab:hover,.dark .certificate-tab.active {
    background: rgba(249,115,22,.16);
    color: rgb(251 146 60)
}
.certificate-empty {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 9rem;
    border: 1px dashed rgba(234,88,12,.45);
    border-radius: .75rem;
    padding: 1.5rem;
    background: rgba(249,115,22,.06)
}
.certificate-tag {
    border: 1px solid rgba(234,88,12,.35);
    border-radius: 9999px;
    padding: .25rem .55rem
}
.certificate-link {
    color: rgb(234 88 12);
    font-size: .875rem;
    font-weight: 700
}
.certificate-link:hover {
    text-decoration: underline
}
.achievement-card {
    border-top-width: .25rem
}
.achievement-card.accent-orange {
    border-top-color: #ea580c
}
.achievement-card.accent-purple {
    border-top-color: #9333ea
}
.achievement-card.accent-blue {
    border-top-color: #1e40af
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after {
        scroll-behavior: auto!important;
        animation-duration: .01ms!important;
        animation-iteration-count: 1!important;
        transition-duration: .01ms!important
    }
}
/* =========================================================
   CERTIFICADOS E CONQUISTAS
   ========================================================= */

.certificates-grid {
    width: 100%;
    max-width: 1150px;
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 32px;
}


/* =========================================================
   CARD
   ========================================================= */

.certificate-card {
    position: relative;

    min-height: 700px;

    padding: 28px 26px;

    display: flex;
    flex-direction: column;

    background:
        linear-gradient(
            145deg,
            #1a1a1a 0%,
            #121212 55%,
            #0d0d0d 100%
        );

    border: 2px solid #303030;

    border-radius: 12px;

    overflow: hidden;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}


/* =========================================================
   BRILHO ANIMADO
   ========================================================= */

.certificate-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: -120%;

    width: 90%;
    height: 100%;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.08),
            transparent
        );

    transform: skewX(-20deg);

    transition: left .8s ease;

    pointer-events: none;
}


.certificate-card:hover::before {
    left: 140%;
}


/* =========================================================
   DEVCLUB — ROXO
   ========================================================= */

.certificate-devclub {
    border-top: 2px solid #303030;
}


.certificate-devclub:hover {
    transform: translateY(-8px);

    border-color: #a855f7;

    box-shadow:
        0 0 20px rgba(168,85,247,.25),
        0 15px 40px rgba(168,85,247,.15);
}


/* =========================================================
   CURSO EM VÍDEO — AZUL
   ========================================================= */

.certificate-curso-video {
    border-top: 2px solid #303030;
}


.certificate-curso-video:hover {
    transform: translateY(-8px);

    border-color: #1683ff;

    box-shadow:
        0 0 20px rgba(22,131,255,.25),
        0 15px 40px rgba(22,131,255,.15);
}


/* =========================================================
   OUTROS — LARANJA
   ========================================================= */

.certificate-outros {
    border-top: 2px solid #303030;
}


.certificate-outros:hover {
    transform: translateY(-8px);

    border-color: #ff7a00;

    box-shadow:
        0 0 20px rgba(255,122,0,.25),
        0 15px 40px rgba(255,122,0,.15);
}


/* =========================================================
   CABEÇALHO
   ========================================================= */

.certificate-header {
    width: 100%;

    min-height: 155px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: flex-start;

    text-align: center;
}


/* =========================================================
   ÁREA DOS LOGOS
   TODOS COM O MESMO TAMANHO
   ========================================================= */

.certificate-logo {
    width: 90px;
    height: 90px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 13px;

    flex-shrink: 0;
}


/* =========================================================
   IMAGENS DAS LOGOS
   ========================================================= */

.certificate-logo img {
    display: block;

    width: 90px;
    height: 90px;

    object-fit: contain;

    transition:
        transform .35s ease,
        filter .35s ease;
}


/*
   Mesmo espaço visual para as duas logos.
   A imagem se adapta sem deformar.
*/

.certificate-devclub .certificate-logo img {
    width: 90px;
    height: 90px;
    object-fit: contain;
}


.certificate-curso-video .certificate-logo img {
    width: 90px;
    height: 90px;
    object-fit: contain;
}


/* animação das logos */

.certificate-card:hover .certificate-logo img {
    transform: scale(1.08);
}


/* =========================================================
   ÍCONE "OUTROS"
   MESMO TAMANHO DAS LOGOS
   ========================================================= */

.outros-logo {
    width: 90px;
    height: 90px;

    color: #ff7a00;

    filter:
        drop-shadow(0 0 7px rgba(255,122,0,.25));

    transition:
        transform .35s ease,
        filter .35s ease;
}


.outros-logo svg {
    width: 90px;
    height: 90px;
}


.certificate-outros:hover .outros-logo {
    transform: scale(1.08);

    filter:
        drop-shadow(0 0 14px rgba(255,122,0,.55));
}


/* =========================================================
   TÍTULO ABAIXO DA LOGO
   ========================================================= */

.certificate-title {
    margin: 0;

    font-size: 25px;

    line-height: 1.2;

    font-weight: 700;

    color: #ffffff;

    letter-spacing: -.4px;
}


/* =========================================================
   COR DOS TÍTULOS
   ========================================================= */

.certificate-devclub .certificate-title {
    color: #ffffff;
}


.certificate-curso-video .certificate-title {
    color: #ffffff;
}


.certificate-outros .certificate-title {
    color: #ffffff;
}


/* =========================================================
   DIVISÓRIA
   ========================================================= */

.certificate-divider {
    width: 100%;

    height: 1px;

    margin-bottom: 23px;

    flex-shrink: 0;
}


/* DevClub */

.certificate-devclub .certificate-divider {
    background:
        linear-gradient(
            90deg,
            transparent,
            #a855f7,
            transparent
        );
}


/* Curso em Vídeo */

.certificate-curso-video .certificate-divider {
    background:
        linear-gradient(
            90deg,
            transparent,
            #1683ff,
            transparent
        );
}


/* Outros */

.certificate-outros .certificate-divider {
    background:
        linear-gradient(
            90deg,
            transparent,
            #ff7a00,
            transparent
        );
}


/* =========================================================
   LISTA
   ========================================================= */

.certificate-list {
    display: flex;

    flex-direction: column;

    gap: 17px;

    margin: 0;

    padding: 0;

    list-style: none;

    flex-grow: 1;
}


.certificate-list li {
    display: flex;

    align-items: flex-start;

    gap: 12px;

    color: #eeeeee;

    font-size: 14px;

    line-height: 1.45;

    transition:
        transform .25s ease,
        color .25s ease;
}


/* =========================================================
   SETAS
   ========================================================= */

.certificate-arrow {
    flex-shrink: 0;

    font-size: 21px;

    line-height: 20px;

    transition:
        transform .25s ease,
        text-shadow .25s ease;
}


/* DevClub */

.certificate-devclub .certificate-arrow {
    color: #a855f7;
}


/* Curso em Vídeo */

.certificate-curso-video .certificate-arrow {
    color: #1683ff;
}


/* Outros */

.certificate-outros .certificate-arrow {
    color: #ff7a00;
}


/* =========================================================
   HOVER DOS CURSOS
   ========================================================= */

.certificate-list li:hover {
    transform: translateX(5px);

    color: #ffffff;
}


/* DevClub */

.certificate-devclub
.certificate-list li:hover
.certificate-arrow {
    text-shadow:
        0 0 8px rgba(168,85,247,.9);
}


/* Curso em Vídeo */

.certificate-curso-video
.certificate-list li:hover
.certificate-arrow {
    text-shadow:
        0 0 8px rgba(22,131,255,.9);
}


/* Outros */

.certificate-outros
.certificate-list li:hover
.certificate-arrow {
    text-shadow:
        0 0 8px rgba(255,122,0,.9);
}


/* =========================================================
   RESPONSIVIDADE
   ========================================================= */

@media (max-width: 900px) {

    .certificates-grid {
        grid-template-columns: 1fr;

        max-width: 600px;

        gap: 24px;
    }


    .certificate-card {
        min-height: auto;
    }

}


@media (max-width: 600px) {

    .certificate-card {
        padding: 25px 20px;

        border-radius: 10px;
    }


    .certificate-header {
        min-height: 145px;
    }


    .certificate-logo,
    .certificate-logo img,
    .outros-logo {
        width: 82px;
        height: 82px;
    }


    .outros-logo svg {
        width: 82px;
        height: 82px;
    }


    .certificate-title {
        font-size: 23px;
    }


    .certificate-list {
        gap: 14px;
    }


    .certificate-list li {
        font-size: 13px;
    }

}

/* =========================================================
   BOTÃO DE TEMA — LIGHT / DARK
   ========================================================= */

.theme-switch {
    position: relative;

    width: 82px;
    height: 44px;

    padding: 0;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border: 1px solid #333;

    border-radius: 999px;

    background: #151515;

    cursor: pointer;

    overflow: hidden;

    transition:
        background .35s ease,
        border-color .35s ease,
        box-shadow .35s ease;

    -webkit-tap-highlight-color: transparent;
}


/* =========================================================
   ÍCONES
   ========================================================= */

.theme-icon {
    position: relative;

    z-index: 2;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    transition:
        color .35s ease,
        opacity .35s ease,
        transform .35s ease;
}


.theme-icon svg {
    width: 18px;
    height: 18px;
}


/* =========================================================
   SOL
   ========================================================= */

.theme-sun {
    color: #9b7650;
    opacity: .65;
}


/* =========================================================
   LUA
   ========================================================= */

.theme-moon {
    color: #ff8a1f;
    opacity: 1;
}


/* =========================================================
   BOTÃO CIRCULAR DESLIZANTE
   ========================================================= */

.theme-slider {
    position: absolute;

    z-index: 1;

    top: 4px;
    left: 4px;

    width: 36px;
    height: 36px;

    border-radius: 50%;

    background:
        linear-gradient(
            145deg,
            #ff9b3d,
            #f27612
        );

    box-shadow:
        0 2px 8px rgba(0,0,0,.45);

    transition:
        transform .4s cubic-bezier(.68,-.55,.27,1.55),
        background .35s ease,
        box-shadow .35s ease;
}


/* =========================================================
   TEMA ESCURO
   ========================================================= */

/*
   Quando o <html> possui a classe "dark",
   o botão desliza para a direita.
*/

html.dark .theme-slider {
    transform: translateX(38px);

    background:
        linear-gradient(
            145deg,
            #ff9b3d,
            #f27612
        );

    box-shadow:
        0 2px 10px rgba(255,122,0,.30);
}


html.dark .theme-sun {
    color: #8a6a47;
    opacity: .55;

    transform: scale(.9);
}


html.dark .theme-moon {
    color: #ffffff;
    opacity: 1;

    transform: scale(1.05);
}


/* =========================================================
   TEMA CLARO
   ========================================================= */

html:not(.dark) .theme-slider {
    transform: translateX(0);

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #eeeeee
        );

    box-shadow:
        0 2px 8px rgba(0,0,0,.20);
}


html:not(.dark) .theme-sun {
    color: #f59e0b;
    opacity: 1;

    transform: scale(1.05);
}


html:not(.dark) .theme-moon {
    color: #777777;
    opacity: .55;

    transform: scale(.9);
}


/* =========================================================
   HOVER
   ========================================================= */

.theme-switch:hover {
    border-color: #555;

    box-shadow:
        0 0 0 3px rgba(255,122,0,.08);
}


.theme-switch:hover .theme-slider {
    box-shadow:
        0 3px 12px rgba(255,122,0,.35);
}


/* =========================================================
   ACTIVE / CLICK
   ========================================================= */

.theme-switch:active .theme-slider {
    width: 38px;
}


/* =========================================================
   FOCO — ACESSIBILIDADE
   ========================================================= */

.theme-switch:focus-visible {
    outline: 2px solid #ff7a00;
    outline-offset: 3px;
}


/* =========================================================
   CELULAR
   ========================================================= */

@media (max-width: 768px) {

    .theme-switch {
        width: 76px;
        height: 40px;
    }

    .theme-icon {
        width: 38px;
        height: 38px;
    }

    .theme-icon svg {
        width: 17px;
        height: 17px;
    }

    .theme-slider {
        width: 32px;
        height: 32px;

        top: 3px;
        left: 3px;
    }

    html.dark .theme-slider {
        transform: translateX(36px);
    }

}

/* =========================================
   CORES PERSONALIZADAS - DADOS E FERRAMENTAS
   ========================================= */

/* PANDAS - AZUL ESCURO */
.skill-pandas {
    --skill-color: 30 64 175;
}

/* NUMPY - AZUL CLARO */
.skill-numpy {
    --skill-color: 14 165 233;
}

/* POWER BI - AMARELO */
.skill-powerbi {
    --skill-color: 234 179 8;
}

/* EXCEL - VERDE */
.skill-excel {
    --skill-color: 22 163 74;
}

/* =========================================================
   PARTICIPAÇÕES EM EVENTOS
========================================================= */

.event-card {
    position: relative;
    background: linear-gradient(145deg, #141414, #0d0d0d);

    border: 2px solid rgba(255, 255, 255, 0.12);

    transition:
        transform .4s ease,
        border-color .4s ease,
        box-shadow .4s ease;

    overflow: hidden;
}


/* BRILHO ANIMADO */

.event-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: -120%;

    width: 80%;
    height: 100%;

    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.07),
        transparent
    );

    transform: skewX(-20deg);

    transition: left .8s ease;

    pointer-events: none;
}


.event-card:hover::before {
    left: 140%;
}


/* HOVER */

.event-card:hover {
    transform: translateY(-6px);

    border-color: #ff7a00;

    box-shadow:
        0 0 20px rgba(255, 122, 0, 0.18),
        0 15px 40px rgba(0, 0, 0, 0.25);
}


/* RODAPÉ DO CARD */

.event-footer {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 1rem;

    margin-top: 1.5rem;

    padding-top: 1rem;

    border-top: 1px solid rgba(255, 255, 255, 0.15);

    color: #9ca3af;

    font-size: 0.875rem;
}


/* INFORMAÇÕES */

.event-info {
    display: flex;

    align-items: center;

    gap: 0.5rem;
}


/* DESTAQUE DO RESULTADO */

.event-position {
    color: #d1d5db;

    font-weight: 500;
}


.event-position svg {
    color: #ff7a00;
}


/* RESPONSIVO */

@media (max-width: 767px) {

    .event-card {
        padding: 1.25rem;
    }

    .event-footer {
        flex-direction: row;

        align-items: center;

        font-size: 0.8rem;
    }

}