:root{--color-primary: #d3b8a0;--color-primary-hover: #D4C5B9;--color-text-primary: #3a2929;--color-text-secondary: #473d3d;--color-text-tertiary: #614e4e;--color-background: #fbfbfb;--color-white: #ffffff;--color-light-gray: #f5f5f5;--color-gray: #f9f9f9;--color-highlight: rgb(119, 98, 83);--color-background-glass: rgba(251, 251, 251, .95);--font-primary: "Montserrat", sans-serif;--font-mono: "JetBrains Mono", monospace;--font-size-base: 1rem;--font-scale-xs: .75;--font-scale-sm: .8125;--font-scale-md: .875;--font-scale-lg: 1.125;--font-scale-xl: 1.25;--font-scale-2xl: 1.5;--font-scale-3xl: 1.75;--font-scale-4xl: 2;--font-scale-5xl: 2.25;--font-scale-6xl: 2.625;--font-scale-7xl: 3;--font-scale-8xl: 3.5;--font-scale-9xl: 4.5;--font-size-xs: calc(var(--font-size-base) * var(--font-scale-xs));--font-size-sm: calc(var(--font-size-base) * var(--font-scale-sm));--font-size-md: calc(var(--font-size-base) * var(--font-scale-md));--font-size-lg: calc(var(--font-size-base) * var(--font-scale-lg));--font-size-xl: calc(var(--font-size-base) * var(--font-scale-xl));--font-size-2xl: calc(var(--font-size-base) * var(--font-scale-2xl));--font-size-3xl: calc(var(--font-size-base) * var(--font-scale-3xl));--font-size-4xl: calc(var(--font-size-base) * var(--font-scale-4xl));--font-size-5xl: calc(var(--font-size-base) * var(--font-scale-5xl));--font-size-6xl: calc(var(--font-size-base) * var(--font-scale-6xl));--font-size-7xl: calc(var(--font-size-base) * var(--font-scale-7xl));--font-size-8xl: calc(var(--font-size-base) * var(--font-scale-8xl));--font-size-9xl: calc(var(--font-size-base) * var(--font-scale-9xl));--font-size-h1: var(--font-size-9xl);--font-size-h2: var(--font-size-6xl);--font-size-h3: var(--font-size-3xl);--font-size-h4: var(--font-size-lg);--font-size-h5: var(--font-size-md);--font-size-h6: var(--font-size-base);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--transition-fast: .2s ease;--transition-base: .3s ease;--transition-slow: .6s ease;--breakpoint-sm: 480px;--breakpoint-md: 768px;--breakpoint-lg: 968px;--container-width: 80%;--container-width-md: 90%;--container-width-sm: 95%}[data-theme=dark]{--color-primary: #A3846C;--color-primary-hover: #b0937d;--color-text-primary: #f5f5f5;--color-text-secondary: #e0e0e0;--color-text-tertiary: #b3b3b3;--color-background: #1a1a1a;--color-white: #2d2d2d;--color-light-gray: #333333;--color-gray: #242424;--color-highlight: #d3b8a0;--color-background-glass: rgba(26, 26, 26, .95)}.title-dot{display:inline-block;margin-left:4px}.section-title{margin-bottom:2.5rem;position:relative;display:block;width:fit-content;padding-bottom:1rem;background:linear-gradient(var(--color-primary),var(--color-primary)) no-repeat bottom left;background-size:120px 6px}.section-title:after{content:".";color:var(--color-primary)}.text-center.section-title{display:table;margin-left:auto;margin-right:auto;background-position:bottom center;text-align:center}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.section-header .section-title{margin-bottom:0}@media (max-width: 768px){.section-header{flex-direction:column;align-items:flex-start;gap:1rem}}.text-link{text-decoration:none;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem;position:relative;padding-bottom:5px}.text-link:hover{color:var(--color-primary)}.text-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--color-primary);opacity:.6;transition:width .3s ease,opacity .3s ease}.text-link:hover:after{width:100%}.link-symbol{transition:all .3s ease;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid currentColor;padding:4px}.back-link{text-decoration:none;transition:all .3s ease;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;color:var(--color-text-secondary)}.back-link:hover{color:var(--color-primary);transform:translate(-4px)}.text-link:hover .link-symbol{transform:translate(2px,-2px);background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.section-text{margin-bottom:2rem}.section-text strong{position:relative;display:inline-block}.section-text strong:after{content:"";position:absolute;bottom:2px;left:0;width:100%;height:6px;background-color:var(--color-primary);opacity:.4;z-index:-1;transition:opacity var(--transition-base)}.section-text strong:hover:after{opacity:.7}.highlight{background:linear-gradient(135deg,#c5a16e26,#c5a16e0d);padding:2px 8px;border-radius:4px;transition:all var(--transition-base);display:inline-block}.highlight:hover{background:linear-gradient(135deg,#c5a16e40,#c5a16e1a);transform:translateY(-1px)}.section-content{margin-top:1rem;position:relative;width:100%}.text-container{flex:1;max-width:800px}@media (max-width: 1100px){.text-container{width:100%;max-width:100%}}.section{position:relative;width:100%;box-sizing:border-box;margin-top:10vh;margin-bottom:15vh}.sub-section{position:relative;width:100%;box-sizing:border-box;margin:4rem 0}.section:last-child,.section:last-of-type{margin-bottom:6rem}@media (max-width: 1100px){.section{margin:6rem 0}.sub-section{margin:3.5rem 0}.section:first-child,.section:first-of-type{margin-top:3rem}}@media (max-width: 768px){.sub-section{margin:3rem 0}.section-title{background-size:100px 5px}}@media (max-width: 480px){.section-title{background-size:80px 4px}}.social-links{display:flex;gap:1rem;align-items:center}.social-link{display:flex;align-items:center;justify-content:center;width:42px;height:42px;transition:all var(--transition-base);border-radius:50%;background-color:transparent;border:1.5px solid rgba(0,0,0,.1)}.social-link:hover{color:var(--color-primary);border-color:var(--color-primary);background-color:#e8d5c40d;transform:translateY(-3px)}.social-link svg{width:20px;height:20px}.social-links-small .social-link{width:36px;height:36px}.social-links-small .social-link svg{width:18px;height:18px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1.5rem;width:100%}.mobile-link{display:none}@media (max-width: 768px){.grid-auto{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.desktop-link{display:none!important}.mobile-link{display:block!important;margin-top:2rem;text-align:center}}.grid-horizontal{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:2rem;width:100%}@media (max-width: 768px){.social-link{width:38px;height:38px}.social-link svg{width:18px;height:18px}}.container{width:var(--container-width);max-width:1200px;margin:0 auto;padding:0 .5rem;box-sizing:border-box}@media (max-width: 1100px){.container{width:var(--container-width-md)}}@media (max-width: 768px){.container{width:var(--container-width-sm)}}.btn{display:inline-block;padding:12px 28px;border-radius:30px;text-decoration:none;transition:all .3s ease;cursor:pointer;border:2px solid transparent}.btn:hover{transform:translateY(-2px)}.btn-primary{background-color:var(--color-primary);border-color:var(--color-primary)}.btn-primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 4px 12px #e8d5c466}.btn-secondary{background-color:transparent;border-color:var(--color-text-primary)}.btn-secondary:hover{background-color:var(--color-text-primary);color:#fff;box-shadow:0 4px 12px #0003}.btn-outline{background-color:transparent;border:1px solid var(--color-text-primary);padding:10px 25px;border-radius:8px}.btn-outline:hover{background-color:var(--color-text-primary);color:#fff;transform:translateY(-2px)}@media (max-width: 480px){.btn{padding:12px 20px}}html{letter-spacing:.05em;line-height:1.5}h1{font-size:var(--font-size-h1);font-weight:700;line-height:1.15;color:var(--color-text-primary)}h2{font-size:var(--font-size-h2);font-weight:700;line-height:1.18;color:var(--color-text-primary)}h3{font-size:var(--font-size-h3);font-weight:700;line-height:1.2;color:var(--color-text-primary)}h4{font-size:var(--font-size-h4);font-weight:600;line-height:1.25;color:var(--color-text-primary)}h5{font-size:var(--font-size-h5);font-weight:600;line-height:1.3;color:var(--color-text-primary)}h6{font-size:var(--font-size-h6);font-weight:600;line-height:1.35;color:var(--color-text-primary)}p,.body-text{font-size:var(--font-size-base);line-height:1.7;color:var(--color-text-secondary)}@media (min-width: 768px){p,.body-text{font-size:var(--font-size-lg)}}@media (min-width: 1100px){p,.body-text{font-size:var(--font-size-lg)}}.small,.caption,.footer-text,.skill-pill{font-size:var(--font-size-sm)}h1.section-title{font-size:var(--font-size-h2);font-weight:700;color:var(--color-text-primary);line-height:1.2}@media (min-width: 1405px){h1.section-title{font-size:var(--font-size-h1)}}@media (max-width: 400px){h1.section-title{font-size:var(--font-size-5xl)}}h2.section-title{font-size:var(--font-size-h3);font-weight:700;color:var(--color-text-primary);margin-top:2rem;margin-bottom:1rem}.profile-name{font-size:var(--font-size-h2);font-weight:700;color:var(--color-text-primary)}@media (max-width: 1100px){.profile-name{font-size:var(--font-size-h3)}}@media (max-width: 768px){.profile-name{font-size:var(--font-size-4xl)}}@media (max-width: 480px){.profile-name{font-size:var(--font-size-3xl)}}.dialog-bubble{color:var(--color-background);font-size:var(--font-size-base);font-weight:500}.small-text{font-size:var(--font-size-h3)}@media (max-width: 1100px){.dialog-bubble{font-size:var(--font-size-sm)}}@media (max-width: 768px){.small-text{font-size:var(--font-size-h3)}}@media (max-width: 480px){.small-text{font-size:var(--font-size-2xl)}}.scroll-to-top{color:#fff}.scroll-to-top:hover{color:var(--color-text-primary)}.title-dot{color:var(--color-primary)}.text-link{color:var(--color-text-secondary);font-weight:600;font-size:var(--font-size-base)}.text-link:hover{color:var(--color-text-primary)}.link-symbol{font-size:var(--font-size-base)}.tech-group-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:1.5px}.tech-stack-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-text-primary)}.section-text{font-size:var(--font-size-base);line-height:1.8;color:var(--color-text-secondary);text-align:left}.section-text strong,strong{color:var(--color-text-primary);font-weight:700}.highlight{color:var(--color-highlight);font-weight:700}.card-title{font-size:var(--font-size-h4);font-weight:700;color:var(--color-text-primary)}.card-subtitle{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.8px}.card-description{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.6}.btn{font-weight:600;font-size:var(--font-size-base);text-align:center;line-height:1.2}.btn-primary,.btn-secondary,.btn-outline{color:var(--color-text-primary)}.nav-link{font-weight:600;font-size:var(--font-size-base);color:var(--color-text-primary)}.nav-link:hover{color:var(--color-highlight)}.nav-link.active{color:var(--color-text-primary)}.bottom-nav-link{color:var(--color-text-tertiary)}.bottom-nav-link.active{color:var(--color-primary)}.link-text{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tech-group-title-compact{font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px}.tech-stack-pill{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-secondary)}.tech-stack-pill:hover{color:var(--color-white)}.gallery-item-title{font-size:var(--font-size-lg);font-weight:600;color:#fff}@media (max-width: 480px){.gallery-item-title{font-size:var(--font-size-sm)}}.gallery-item-description{font-size:var(--font-size-sm);color:#ffffffe6}.exp-role{font-size:1.2rem;font-weight:700;color:var(--color-text-primary);line-height:1.2}.exp-meta{font-size:.95rem;color:var(--color-text-secondary);font-weight:500;align-items:center}.exp-company{color:var(--color-primary);font-weight:600}.exp-sep{color:var(--color-text-light, #ccc);font-size:.8em}.exp-period{font-variant-numeric:tabular-nums;font-size:.85rem;opacity:.8}.stat-number{font-size:3rem;font-weight:800;line-height:1;color:var(--color-primary);font-family:var(--font-primary, sans-serif)}.stat-label{font-size:.9rem;color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.services-page-text strong{color:var(--color-text-primary);font-weight:700}@media (max-width: 480px){.card-title{font-size:var(--font-size-lg)}.tech-stack-name{font-size:var(--font-size-sm)}}.contact-email{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:400;letter-spacing:.3px;font-family:JetBrains Mono,monospace}.contact-email:hover{color:var(--color-text-primary)}.copied-popup{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:600}.contact-method h3{font-size:var(--font-size-xl);font-weight:600;color:var(--color-text-primary)}.contact-link{color:var(--color-text-secondary);font-size:var(--font-size-base)}.contact-link:hover{color:var(--color-primary)}.form-title{font-size:var(--font-size-4xl);font-weight:600;color:var(--color-text-primary)}.form-group label{font-size:var(--font-size-base);font-weight:500;color:var(--color-text-primary)}.form-group input,.form-group textarea{font-size:var(--font-size-base);color:var(--color-text-primary)}@media (max-width: 768px){.contact-email{font-size:var(--font-size-base)}.form-group input,.form-group textarea{font-size:16px}}@media (max-width: 480px){.contact-email{font-size:var(--font-size-sm)}.copied-popup{font-size:var(--font-size-xs)}.form-title{font-size:var(--font-size-2xl)}.form-group input,.form-group textarea{font-size:16px}}.social-link{color:var(--color-text-primary)}.social-link:hover{color:var(--color-primary)}.footer-text{font-size:var(--font-size-base);color:var(--color-text-secondary)}@media (max-width: 1100px){.footer-text{font-size:var(--font-size-sm);line-height:1.5}}@media (max-width: 480px){.footer-text{font-size:var(--font-size-sm);line-height:1.4}}html,body{margin:0;padding:0;height:100%;scrollbar-gutter:stable}html{font-family:var(--font-primary);background:var(--color-background)}body{font-family:var(--font-primary);background:var(--color-background);color:var(--color-text-primary);display:flex;flex-direction:column;min-height:100vh}#root{display:flex;flex-direction:column;min-height:100vh;flex:1}.small-text{font-size:var(--font-size-h3);font-weight:400;margin-top:0}.header{width:100%;margin:0;position:sticky;top:0;z-index:1000;background-color:transparent;transition:all .3s ease}.header-container{width:80%;max-width:1200px;margin:20px auto;border-radius:12px;transition:all .3s ease;display:flex;align-items:center;justify-content:center;position:relative}.theme-toggle-container{position:absolute;right:20px}.logo-container{position:absolute;left:20px;display:flex;align-items:center}.mobile-logo{display:none}.header-logo{height:40px;width:auto;object-fit:contain;transition:transform .3s ease}.header-logo:hover{transform:scale(1.05)}.header.scrolled{background-color:var(--color-background-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}.header.scrolled .header-container{margin:10px auto;padding-top:5px;padding-bottom:5px}.mobile-theme-toggle{display:none}@media (max-width: 1100px){.header,.header-container{display:none!important;visibility:hidden!important;opacity:0!important;height:0!important;pointer-events:none!important}.mobile-theme-toggle{display:block;position:fixed;top:0;right:0;z-index:10001}.mobile-logo{display:block;position:fixed;top:0;left:0;z-index:10001;padding:5px 10px}.mobile-logo .header-logo{height:35px}.mobile-theme-toggle .theme-toggle{background-color:var(--color-primary);color:var(--color-text-primary);box-shadow:-2px 2px 8px #0000001a;border-radius:0 0 0 15px;width:45px;height:45px;padding:0;display:flex;align-items:center;justify-content:center}.mobile-theme-toggle .theme-toggle:focus,.mobile-theme-toggle .theme-toggle:hover{background-color:var(--color-primary-hover);color:var(--color-text-primary)}.mobile-theme-toggle .theme-toggle.rotating{transform:none}}.navbar{display:flex;gap:1rem;padding:1rem 0;width:100%;align-items:center;justify-content:center}.nav-align{display:flex;gap:1.5rem;align-items:center}.nav-link{text-decoration:none;transition:all .3s ease;position:relative;padding-bottom:4px}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--color-primary);transition:width .3s ease}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link:hover{transform:scale(1.1)}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background-color:var(--color-background);opacity:.95;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--color-light-gray);padding:.75rem 0 calc(.75rem + env(safe-area-inset-bottom)) 0;z-index:9999;box-shadow:0 -4px 20px #0000000d}.bottom-nav-container{display:flex;justify-content:space-around;align-items:center;max-width:600px;margin:0 auto;padding:0 1rem;height:50px}.bottom-nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;transition:all .3s ease;position:relative;gap:4px;flex:1;height:100%}.link-icon{display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.link-icon svg{width:22px;height:22px}.bottom-nav-link.active .link-icon{transform:translateY(-2px)}.link-text{transition:all .3s ease;opacity:1}@media (max-width: 1100px){.mobile-bottom-nav{display:block}.desktop-only{display:none!important}.navbar{padding:0;min-height:0}}.footer{position:relative;z-index:10;background-color:var(--color-background)}.theme-toggle{background:transparent;border:none;color:var(--color-text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:50%;transition:background-color var(--transition-base),color var(--transition-base),transform .3s ease}.theme-toggle:hover{background-color:var(--color-light-gray);color:var(--color-highlight)}.theme-toggle.rotating{transform:rotate(90deg)}.loader-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background-color:var(--color-background);z-index:9999}.spinner{width:40px;height:40px;border:3px solid var(--color-background-elevated);border-top:3px solid var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}main{width:100%;display:flex;flex-direction:column;flex:1}@media (max-width: 768px){main{gap:1rem}}.footer{padding:2rem 0;margin-top:auto;position:relative;z-index:10;background-color:var(--color-background)}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.footer-text{margin:0}@media (max-width: 1100px){.footer{padding:1.5rem 0 7rem;margin-top:3rem}.footer-content{flex-direction:column;text-align:center;gap:1.5rem}}@media (max-width: 480px){.footer{padding:1.25rem 0 6rem;margin-top:2rem}.footer-content{gap:1rem}}.common-scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;border-radius:50%;background-color:var(--color-text-primary);color:var(--color-background);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0003;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10001;touch-action:manipulation;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.common-scroll-to-top:hover{background-color:var(--color-primary);color:var(--color-text-primary);transform:translateY(-5px);box-shadow:0 6px 16px #0000004d}@media (max-width: 1100px){.common-scroll-to-top{bottom:calc(75px + 1.5rem + env(safe-area-inset-bottom));right:1.5rem;width:45px;height:45px}.common-scroll-to-top svg{width:22px;height:22px}}@media (max-width: 480px){.common-scroll-to-top{bottom:calc(75px + 1rem + env(safe-area-inset-bottom));right:1rem;width:40px;height:40px}.common-scroll-to-top svg{width:20px;height:20px}}*{margin:0;padding:0}
