:root{--color-bg: #f0f8ff;--color-bg-alt: #e8f4fd;--color-bg-card: #ffffff;--color-surface: #ddeef9;--color-border: #b8d8ea;--color-border-light: #a0c8de;--color-text: #023047;--color-text-secondary: #1a5f7a;--color-text-muted: #5a96b0;--color-white: #ffffff;--color-accent-1: #219ebc;--color-accent-2: #8ecae6;--color-accent-3: #023047;--color-accent-4: #ffb703;--color-accent-5: #fb8500;--color-accent-bg-1: rgba(33, 158, 188, .08);--color-accent-bg-2: rgba(142, 202, 230, .12);--color-accent-bg-3: rgba(2, 48, 71, .06);--color-accent-bg-4: rgba(255, 183, 3, .1);--color-accent-bg-5: rgba(251, 133, 0, .1);--font-serif: "Playfair Display", Georgia, "Times New Roman", serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-5xl: 8rem;--section-padding: clamp(4rem, 10vh, 8rem) clamp(1.5rem, 5vw, 6rem);--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-medium: .4s cubic-bezier(.4, 0, .2, 1);--transition-slow: .6s cubic-bezier(.4, 0, .2, 1);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.7;overflow-x:hidden}a{color:var(--color-accent-1);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-3)}img{max-width:100%;height:auto}ul,ol{list-style:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent-1)}::selection{background:var(--color-accent-2);color:var(--color-white)}.accent-text{color:var(--color-accent-1);font-weight:700}.section{padding:var(--section-padding);position:relative}.section-header{display:flex;align-items:baseline;gap:var(--space-lg);margin-bottom:var(--space-3xl)}.section-number{font-family:var(--font-mono);font-size:.875rem;color:var(--color-accent-1);letter-spacing:.05em;font-weight:700}.section-title{font-family:var(--font-serif);font-size:clamp(2rem,4vw,3rem);font-weight:600;color:var(--color-text);letter-spacing:-.02em}.section-line{flex:1;height:2px;background:var(--color-border);margin-left:var(--space-lg);align-self:center;border-radius:1px}.section-sticker{position:absolute;pointer-events:none;opacity:.45;filter:drop-shadow(0 2px 6px rgba(2,48,71,.1));z-index:0}.sticker-about-1{width:85px;top:5%;right:3%;transform:rotate(20deg);animation:float 11s ease-in-out infinite}.sticker-about-2{width:45px;bottom:8%;left:2%;transform:rotate(-12deg);animation:float 8s ease-in-out infinite reverse;animation-delay:1.5s}.sticker-about-bee{width:55px;top:15%;left:5%;transform:rotate(-15deg);animation:floatSlow 14s ease-in-out infinite;animation-delay:2s}.sticker-skills-1{width:75px;top:4%;left:1.5%;transform:rotate(-15deg);animation:float 10s ease-in-out infinite}.sticker-skills-2{width:52px;bottom:6%;right:4%;transform:rotate(10deg);animation:pulse 5s ease-in-out infinite;animation-delay:.8s}.sticker-skills-3{width:70px;bottom:12%;left:3%;transform:rotate(15deg);animation:float 12s ease-in-out infinite}.sticker-contact-1{width:80px;top:8%;right:2%;transform:rotate(-18deg);animation:float 12s ease-in-out infinite reverse}.sticker-contact-2{width:48px;bottom:15%;left:3%;transform:rotate(8deg);animation:pulse 4s ease-in-out infinite;animation-delay:2s}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-12px) rotate(2deg)}66%{transform:translateY(6px) rotate(-1deg)}}@keyframes floatSlow{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(3deg)}}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){:root{--section-padding: clamp(3rem, 8vh, 5rem) 1.25rem}.section-header{flex-direction:column;gap:var(--space-sm)}.section-line{display:none}.sticker-about-2{left:auto;right:2%;bottom:15%}.sticker-skills-3{left:auto;right:4%;bottom:50%;width:60px}}.tech-tag,.tag,.mini-tag{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.65rem;font-weight:600;border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text-secondary);transition:all var(--transition-fast)}.javascript{background-color:#f7df1e!important;color:#000!important;border-color:#dabf00!important}.typescript{background-color:#3178c6!important;color:#fff!important;border-color:#235a97!important}.angular{background-color:#dd0031!important;color:#fff!important;border-color:#b50028!important}.react{background-color:#61dafb!important;color:#000!important;border-color:#4fa8c7!important}.nextjs{background-color:#000!important;color:#fff!important;border-color:#333!important}.nestjs{background-color:#e0234e!important;color:#fff!important;border-color:#ac1b3c!important}.php{background-color:#777bb4!important;color:#fff!important;border-color:#5a5e8a!important}.java{background-color:#007396!important;color:#fff!important;border-color:#005a75!important}.c{background-color:#a8b9cc!important;color:#000!important;border-color:#8a99a8!important}.tailwind-css{background-color:#38bdf8!important;color:#fff!important;border-color:#2da1d4!important}.daisyui{background-color:#5a0ef8!important;color:#fff!important;border-color:#450bc1!important}.mysql{background-color:#4479a1!important;color:#fff!important;border-color:#345c7a!important}.prisma{background-color:#2d3748!important;color:#fff!important;border-color:#1a202c!important}.gsap{background-color:#88ce02!important;color:#000!important;border-color:#6ca401!important}.html{background-color:#e34f26!important;color:#fff!important;border-color:#c13a17!important}.css{background-color:#1572b6!important;color:#fff!important;border-color:#105a91!important}.power-bi{background-color:#f2c811!important;color:#000!important;border-color:#d1ad0e!important}.python{background-color:#3776ab!important;color:#fff!important;border-color:#2b5b87!important}.node\.js{background-color:#393!important;color:#fff!important;border-color:#287a28!important}.express{background-color:#000!important;color:#fff!important;border-color:#333!important}.docker{background-color:#2496ed!important;color:#fff!important;border-color:#1d79be!important}.algorithmique,.algorithms{background-color:#6c5ce7!important;color:#fff!important;border-color:#4834d4!important}.syst\e8me,.system{background-color:#2f3640!important;color:#fff!important;border-color:#191d21!important}.data{background-color:#009432!important;color:#fff!important;border-color:#006322!important}.web{background-color:#ff9f43!important;color:#fff!important;border-color:#ee5253!important}.fullstack{background-color:#5758bb!important;color:#fff!important;border-color:#3d3d91!important}.nosql{background-color:#4db33d!important;color:#fff!important;border-color:#3e8e31!important}.api{background-color:#ff6b6b!important;color:#fff!important;border-color:#ee5253!important}
