@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&display=swap);body{background:#1a1a1a;font-family:Arial,sans-serif;padding:0}.dark-theme,.light-theme{padding-top:0}*{box-sizing:border-box;margin:0;padding:0}.main-content{padding-top:0}body,html{margin:0;overflow-x:hidden;padding:0}.main-header{align-items:center;animation:gradientBG 15s ease infinite;background:linear-gradient(135deg,#036,#06c,#0c9);background-size:400% 400%;border-radius:15px;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;overflow:hidden;position:relative;text-align:center;width:100%}.header-content{max-width:800px;padding:0 20px;position:relative;z-index:2}.main-header h1{font-size:4rem;font-weight:700;margin-bottom:1rem;text-shadow:0 4px 8px #0009}.main-header h2{font-size:1.8rem;font-weight:300;margin-bottom:1rem;text-shadow:0 2px 4px #0006}.main-header p{font-size:1.1rem;margin-bottom:2rem;text-shadow:0 2px 4px #0006}.no-bounce{animation:none!important}.inline-icon{height:20px;transition:transform .3s ease;width:20px}.animate-fade-in{animation:fadeIn 1s ease-out}.animate-fade-in-delay{animation:fadeIn 1s ease-out .5s both}.animate-fade-in-delay-2{animation:fadeIn 1s ease-out 1s both}@media (max-width:768px){.main-header{padding-top:50px}.main-header h1{font-size:3rem}.main-header h2{font-size:1.4rem}.cta-button,.main-header p{font-size:1rem}.cta-button{padding:10px 20px}.inline-icon{height:18px;width:18px}}.footer{background-color:#333;color:#fff;padding:20px 0}.footer-content{justify-content:space-between;padding:0 20px}.footer-links a{color:#fff;margin-left:20px}.footer-links a:hover{color:#3498db}@media (max-width:768px){.footer-content{flex-direction:column;text-align:center}.footer-links{margin-top:20px}.footer-links a{margin:0 10px}}.portafolio-detallado{background-color:#fff;padding:60px 20px}.portafolio-detallado h2{color:#333;margin-bottom:40px;text-align:center}.proyecto-detallado{background-color:#f9f9f9;border-radius:10px;box-shadow:0 4px 15px #0000001a;margin:0 auto 60px;max-width:800px;padding:30px}.proyecto-detallado h3{color:#3498db;margin-bottom:10px}.proyecto-detallado .rol{color:#2c3e50;font-weight:700;margin-bottom:20px}.proyecto-detallado .descripcion{color:#555;line-height:1.6;margin-bottom:20px}.proyecto-detallado h4{color:#2c3e50;margin-bottom:10px;margin-top:20px}.proyecto-detallado ul{padding-left:20px}.proyecto-detallado li{color:#555;margin-bottom:5px}.resultados,.retos,.tecnologias{margin-top:20px}.shiny{background:linear-gradient(90deg,#fff 0,#7dd3fc 50%,#fff)}.button-base{align-items:center;animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:50px;box-shadow:0 4px 6px #0003;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:700;justify-content:center;letter-spacing:1px;padding:12px 25px;text-transform:uppercase;transition:transform .3s ease,background-color .3s ease,box-shadow .3s ease}.button-base:hover{animation:gradientBG 18s ease infinite;background:linear-gradient(1deg,#a80c9b,#7bcff8,#0c9);box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.button-base:active{animation:none;background-color:#007d66;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}:root{--color-bg-light:#c5e6f6;--color-text-light:#020817;--color-primary-light:#020817;--color-secondary-light:#6c757d;--color-accent-light:#0c9;--color-bg-anti-light:#020817;--color-bg-2-light:#e7eced;--color-bg-3-light:#fff;--color-bg-solid-light:#fff;--hero-title-color-light:#7dd3fc;--hero-title-color-2-light:#0c9;--hero-title-color-light-rgb:125,211,252;--color-shadow-light:linear-gradient(#a79b9b80,#7edbe7b3);--chatbot-chat-widget-bg-color-light:#f6f9fc;--chatbot-chat-widget-user-message-bg-color-light:#0c9;--chatbot-chat-widget-system-message-bg-color-light:#ddf1ec;--chatbot-chat-widget-user-message-text-color-light:#f6f9fc;--color-shadow-light:#0000001a;--color-shadow-dark:#00000080;--color-border-light:#e0e0e0;--color-border-dark:#444;--color-bg-footer:#121212;--color-bg-dark:#020817;--color-text-dark:#f6f9fc;--color-primary-dark:#7dd3fc;--color-secondary-dark:#6c757d;--color-accent-dark:#7dd3fc;--color-bg-anti-dark:#f6f9fc;--color-bg-2-dark:#6c757d;--color-bg-3-dark:#4b3e57;--color-bg-solid-dark:#121212;--hero-title-color-dark:#7dd3fc;--hero-title-color-dark-rgb:125,211,252;--hero-title-color-2-dark:#f6f9fc;--color-shadow-dark:linear-gradient(#00000080,#000000b3);--chatbot-chat-widget-bg-color-dark:#020817;--chatbot-chat-widget-user-message-bg-color-dark:#7dd3fc;--chatbot-chat-widget-system-message-bg-color-dark:#143142;--chatbot-chat-widget-user-message-text-color-dark:#020817}[data-theme=dark]{--color-bg:var(--color-bg-dark);--color-text:var(--color-text-dark);--color-primary:var(--color-primary-dark);--color-secondary:var(--color-secondary-dark);--color-accent:var(--color-accent-dark);--color-bg-anti:var(--color-bg-anti-dark);--color-bg-2:var(--color-bg-2-dark);--color-bg-3:var(--color-bg-3-dark);--color-bg-solid:var(--color-bg-solid-dark);--color-shadow:var(--color-shadow-dark);--color-border:var(--color-border-dark);--hero-title-color:var(--hero-title-color-dark);--hero-title-color-rgb:var(--hero-title-color-dark-rgb);--color-bg-footer:var(--color-bg-footer);--hero-title-color-2:var(--hero-title-color-2-dark);--chatbot-chat-widget-user-message-bg-color:var(--chatbot-chat-widget-user-message-bg-color-dark);--chatbot-chat-widget-system-message-bg-color:var(--chatbot-chat-widget-system-message-bg-color-dark);--chatbot-chat-widget-bg-color:var(--chatbot-chat-widget-bg-color-dark);--chatbot-chat-widget-user-message-text-color:var(--chatbot-chat-widget-user-message-text-color-dark)}[data-theme=light]{--color-bg:var(--color-bg-light);--color-text:var(--color-text-light);--color-primary:var(--color-primary-light);--color-secondary:var(--color-secondary-light);--color-accent:var(--color-accent-light);--color-bg-anti:var(--color-bg-anti-light);--color-bg-2:var(--color-bg-2-light);--color-bg-3:var(--color-bg-3-light);--color-bg-solid:var(--color-bg-solid-light);--color-shadow:var(--color-shadow-light);--color-border:var(--color-border-light);--hero-title-color:var(--hero-title-color-light);--hero-title-color-rgb:var(--hero-title-color-light-rgb);--color-bg-footer:var(--color-bg-footer);--hero-title-color-2:var(--hero-title-color-2-light);--chatbot-chat-widget-user-message-bg-color:var(--chatbot-chat-widget-user-message-bg-color-light);--chatbot-chat-widget-system-message-bg-color:var(--chatbot-chat-widget-system-message-bg-color-light);--chatbot-chat-widget-bg-color:var(--chatbot-chat-widget-bg-color-light);--chatbot-chat-widget-user-message-text-color:var(--chatbot-chat-widget-user-message-text-color-light)}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body{background-color:var(--color-bg);font-family:Work Sans,sans-serif!important;margin:0;padding-top:60px;transition:background-color 1s ease}body,h1,h2,h3,h4,h5,h6{color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-weight:600}a{color:var(--color-accent)}[data-chatbot-chat-widget-button]{align-items:center;animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:50px;bottom:20px;box-shadow:0 4px 6px #0003;color:var(--color-text);cursor:pointer;display:flex;font-size:15px;font-weight:700;justify-content:center;letter-spacing:1px;padding:12px 25px;position:fixed;right:20px;text-transform:uppercase;transition:transform .3s ease,background-color .3s ease;z-index:9998}[data-chatbot-chat-widget-button] i{animation:blink 2s infinite;font-size:22px;margin-right:8px}@media (max-width:600px){[data-chatbot-chat-widget-button]{align-items:center;border-radius:50%;display:flex;font-size:0;height:50px;justify-content:center;padding:10px;width:50px}[data-chatbot-chat-widget-button] i{font-size:0;margin-right:8px}[data-chatbot-chat-widget-button]:before{align-items:center;animation:blink 2s infinite;content:"\f544 !";display:flex;font-family:Font Awesome\ 5 Free;font-size:22px;font-weight:900;justify-content:center;transform:translate(8px,-1.5px)}}[data-chatbot-chat-widget-button]:hover{animation:gradientBG 18s ease infinite;background:linear-gradient(1deg,#a80c9b,#7bcff8,#0c9,);box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}[data-chatbot-chat-widget-button]:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}@media (max-width:600px){#chatbot-chat-widget__container{max-height:100vh;max-width:100vw}}#chatbot-chat-widget__container{border-radius:var(--chatbot-chat-widget-border-radius);box-shadow:var(--chatbot-chat-widget-shadow);box-sizing:border-box;color:var(--chatbot-chat-widget-primary-color-text);display:none;max-height:90vh;max-width:90vw;overflow:hidden;position:fixed;right:20px;top:80px;z-index:9999}#chatbot-chat-widget__message a{color:var(--color-accent)}#chatbot-chat-widget__message{color:var(--color-text)}#chatbot-chat-widget__container a{text-decoration:none}#chatbot-chat-widget__container a:hover{text-decoration:underline}#chatbot-chat-widget__submit{background-color:var(--color-accent)}#chatbot-chat-widget__input:focus{border-color:var(--color-accent)}.chatbot-chat-widget__title{visibility:hidden}#chat-options{background-color:var(--color-bg-anti);border:1px solid #ddd;border-radius:5px;box-shadow:0 4px 8px #0000001a;display:none;left:10px;padding:10px;position:absolute;top:60px;z-index:1000}.chat-option-button{background-color:var(--color-accent);border:none;border-radius:5px;color:var(--color-bg-anti);display:block;margin:5px 0;padding:10px;text-align:center}#root,html{background-color:var(--color-bg);transition:background-color 1s ease}#root{min-height:100vh}.navegacion{background-color:var(--color-bg);height:60px;opacity:.7;position:fixed;width:100%;z-index:1000}.navegacion,.navegacion:hover{transition:background-color .3s ease-in-out,opacity .5s ease,transform .5s ease}.navegacion:hover{opacity:1}.logo-container{flex-shrink:0;z-index:100}.logo{color:var(--color-text);font-size:20px;font-weight:700;transition:color .3s ease}.logo,.logo:hover{text-decoration:none}.logo:hover{color:var(--color-accent);transform:scale(1.01)!important;transition:transform .5s ease}.logo-container a{text-decoration:none}.nav-content{height:60px;justify-content:space-between;padding:0 5%}.nav-content,.nav-links{align-items:center;display:flex}.nav-links{justify-content:center;list-style:none;margin:0;padding:0;position:absolute;width:100%}.nav-links li{margin-left:15px}.nav-links a{color:var(--color-text);font-weight:510;text-decoration:none;transition:color .3s ease}.nav-links a:hover,.nav-links i:hover{color:var(--color-accent);transform:scale(1.05)!important;transition:transform .5s ease}.contact-button,.nav-contact{position:relative}.contact-button{align-items:center;animation:gradientBG 10s ease infinite!important;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:50px;box-shadow:0 4px 6px #0003;color:#fff!important;cursor:pointer;display:flex;font-size:18px;font-weight:700!important;justify-content:center;letter-spacing:1px;padding:5px 15px;transition:transform .3s ease,background-color .3s ease;z-index:9999}.contact-button:hover{animation:gradientBG 18s ease infinite;box-shadow:0 6px 8px #0000004d;color:#fff!important;text-shadow:0 2px 4px #00000080!important;transform:translateY(-2px)!important}.contact-button:hover .icon-container:before{opacity:1}.icon-container{display:inline-block;padding-right:5px;position:relative}.icon-container:before{background-color:#00000080;border-radius:50%;content:"";filter:blur(4px);height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .3s ease;width:100%;z-index:-1}.contact-button:hover i{text-shadow:0 2px 4px #00000080!important}.contact-button:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)!important;transform:translateY(4px)!important}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.menu-toggle{background:none;border:none;color:var(--color-text);cursor:pointer;display:none;font-size:24px;font-weight:700;margin-left:-5px;position:relative;z-index:1001}.menu-toggle:hover{color:var(--color-accent)}@media (max-width:830px){.navegacion{opacity:1}.logo-container{left:50%;position:relative;top:25x;transform:translateX(-50%);z-index:100}.logo{font-size:30px}.menu-toggle{display:block;position:fixed}.contact-button{display:none}.nav-links{align-items:center;background-color:#121e34f2;flex-direction:column;height:100vh;justify-content:center;position:fixed;right:-100%;top:0;transition:left .3s ease;width:45%}.nav-links.open{background-color:var(--color-bg);left:0;padding-top:40px}.nav-links li{list-style:none;margin-bottom:45px;margin-left:-20px}.nav-links a{color:var(--color-text);display:block;font-size:25px;padding-left:20px;text-decoration:none;transition:background .3s ease;width:100%}.nav-links a:hover{color:var(--color-accent);transform:scale(1.1)}.nav-links a:active{transform:scale(.95)}.nav-links .contact-button{display:block;font-size:18px;margin:0;margin-left:20px;position:static;text-align:center;width:auto}.fa-comment-dot{margin-right:8px}}@media (max-width:666px){.logo{font-size:20px}.nav-links .contact-button{font-size:15px}.nav-links{align-items:center;background-color:#121e34f2;flex-direction:column;height:100vh;justify-content:center;position:fixed;right:-100%;top:0;transition:left .3s ease;width:70%}}.language-toggle{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:12px;padding:5px;transition:transform .3s ease,color .3s ease}.triangle{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid;height:0;margin-top:5px;transition:transform .3s ease,border-color .3s ease;width:0}.language-toggle:hover{color:var(--color-accent);transform:scale(1.1)}.language-toggle:active{box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}html{scroll-behavior:smooth}.hero-banner{align-items:center;background:linear-gradient(to bottom,var(--color-bg),var(--color-bg-3));color:var(--color-text);display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}#star-canvas{height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity 2s ease-in-out;width:100%}[data-theme=dark] #star-canvas{opacity:1}.info-container{box-sizing:border-box;max-width:800px;padding:1rem;position:absolute;text-align:center;width:100%;z-index:1}.hero-title{color:var(--color-text);font-size:3rem;font-weight:700;margin-bottom:1rem}.hero-subtitle{color:var(--color-primary);font-size:1.2rem;margin-bottom:1rem}.hero-description{color:var(--color-text);font-size:1rem;margin-bottom:1rem}.hero-button{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:10px 20px;transition:transform .3s ease,color .3s ease}.hero-button:hover{box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.hero-button:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}.mockup-redirect-container{min-height:100vh;position:relative}.scroll-indicator{bottom:2rem;color:var(--color-text);cursor:pointer;font-size:.9rem;left:50%;position:fixed;text-align:center;transform:translateX(-50%);transition:opacity .3s ease;z-index:10}.scroll-indicator.visible{opacity:1}.scroll-indicator.hidden{opacity:0;pointer-events:none}.scroll-arrow{align-items:center;animation:bounce 2s infinite;display:flex;flex-direction:column;margin-top:.5rem}.scroll-arrow-icon{font-size:1.2rem;line-height:1}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (max-width:666px){.hero-banner{padding:10px}.info-container{box-sizing:border-box;max-width:800px;padding:1rem;position:absolute;text-align:center;top:70px;width:100%;z-index:1}.hero-title{font-size:2.5rem;margin-top:40px;position:relative;top:-20px}.hero-subtitle{font-size:1.5rem}.hero-description{font-size:1.2rem;text-align:center}}@media (max-width:480px){.hero-title{font-size:2.3rem;margin-top:10px;position:relative;top:-20px}.hero-subtitle{font-size:1.3rem}.hero-description{font-size:1rem}}.shiny{animation:shine 3s linear infinite;background:linear-gradient(to right,var(--color-accent) 0,var(--hero-title-color) 50%,var(--color-accent) 100%);-webkit-background-clip:text;background-clip:text;background-size:200% auto;color:#0000}.fade-out{opacity:0;transition:opacity .5s ease-out}.fade-in,.fade-in-content{opacity:1;transition:opacity .5s ease-in}.fade-out-content{opacity:0;transition:opacity .5s ease-out}.arsenal-habilidades{align-items:center;background:linear-gradient(to bottom,var(--color-bg),var(--color-bg-2));display:flex;flex-direction:column;min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.arsenal-habilidades h2{background-color:initial;color:var(--hero-title-color-2);font-size:3rem;margin:20px 0;position:sticky;text-align:center;top:0;z-index:100}.titulo-seccion{font-size:3rem;letter-spacing:2px;margin-top:40px;text-transform:uppercase}.introduccion{color:var(--color-text);font-size:1.8rem;line-height:1.5;margin:0 auto 50px;max-width:1000px;padding:0 20px;text-align:center}.habilidades-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1400px;padding:20px;width:100%}.habilidad-card{background:linear-gradient(to top,var(--color-bg-solid),var(--color-bg));border-radius:15px;box-shadow:0 4px 15px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;min-height:250px;overflow:hidden;padding:0;position:relative;transition:all .3s ease}.habilidad-card:after{background:linear-gradient(to bottom right,#fff3,#fff3 40%,#fffc 50%,#fff3 60%,#fff3);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:all .5s;width:200%}.habilidad-card:hover:after{left:-100%;opacity:1;top:-100%}.habilidad-card:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-5px)}.habilidad-nombre{color:#fff;font-size:1.6rem;font-weight:700;position:relative;text-shadow:2px 2px 4px #00000080;transition:transform .3s ease;z-index:3}.habilidad-card:hover .habilidad-nombre{transform:scale(1.02)}.habilidad-descripcion{color:var(--color-text);flex-grow:1;font-size:1.1rem;line-height:1.6;margin-bottom:3%;margin-top:8%;padding:0 25px;transition:transform .3s ease}.habilidad-card:hover .habilidad-descripcion{transform:scale(1.02)}.habilidad-header{align-items:center;background-position:50%;background-repeat:no-repeat;background-size:cover;border-radius:15px 15px 0 0;display:flex;margin:0;min-height:120px;overflow:hidden;padding:30px 25px;position:relative;width:100%}.habilidad-imagen{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%;z-index:1}.habilidad-header:before{background:var(--color-shadow);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:2}.habilidad-ejemplos{list-style-type:none;max-height:0;opacity:0;overflow:hidden;padding:0 25px 25px;transition:all .3s ease;z-index:1}.habilidad-card.active .habilidad-ejemplos{max-height:200px;opacity:1}.habilidad-ejemplos li{margin-bottom:12px;padding-left:20px;position:relative}.habilidad-ejemplos li:before{color:var(--color-primary);content:"→";left:0;position:absolute}.habilidad-header.strategic-vision{background-image:url(/static/media/strategic_vision.ea32510587979dd9cf8e.png)}.habilidad-header.team-leadership{background-image:url(/static/media/team_leadership.1902c1179a80dbc76c32.png)}.habilidad-header.tech-integration{background-image:url(/static/media/tech_integration.ab6aedee734817551fff.png)}.habilidad-header.ai-solutions{background-image:url(/static/media/ai_solutions.172c0e320bc403405dee.png)}.habilidad-header.data-analysis{background-image:url(/static/media/data_analysis.88c48a290fe8419c977b.png)}.habilidad-header.logistics{background-image:url(/static/media/logistics.aadcf93d768ed1ea0d96.png)}.habilidad-header.ecommerce{background-image:url(/static/media/ecommerce.99301c46a32e7e4c5a09.png)}.habilidad-icono{display:none}@media (max-width:768px){.habilidades-grid{gap:20px;grid-template-columns:1fr;padding:10px}.introduccion{font-size:1.4rem;margin-bottom:30px;padding:0 15px}.habilidad-card{min-height:auto;padding:0}.habilidad-nombre{font-size:1.4rem}.habilidad-descripcion{font-size:1rem}}.habilidad-ejemplos.active{animation:fadeIn .5s ease forwards}.portafolio{align-items:center;background:linear-gradient(to bottom,var(--color-bg-2),var(--color-bg));display:flex;flex-direction:column;min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.portafolio h1{letter-spacing:2px;margin:20px 0 1rem;text-transform:uppercase}.portafolio h1,.portafolio h2{color:var(--hero-title-color-2);font-size:3rem;text-align:center}.portafolio h2{background-color:initial;margin:20px 0;position:sticky;top:0;z-index:100}.introduccion p{color:var(--color-text);font-size:1.8rem;line-height:1.5;margin:0 auto!important;max-width:1000px;padding:0 20px;text-align:center}.proyectos-grid{grid-gap:30px;grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.proyectos-grid,.proyectos-personales{display:grid;gap:30px;margin:0 auto;max-width:1400px;padding:20px;width:100%}.proyectos-personales{grid-gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,400px));justify-content:center}.proyectos-grid .project-card,.proyectos-personales .project-card{margin:0 auto;max-width:400px;width:100%}.project-card,.proyecto-card{height:100%;min-height:400px;width:100%}.proyecto-card{background:linear-gradient(145deg,var(--color-bg-solid),var(--color-bg));border-radius:15px;box-shadow:0 8px 16px #0000001a;display:flex;flex-direction:column;overflow:hidden;padding:30px;position:relative;transition:all .3s ease}.proyecto-card:hover{background:linear-gradient(145deg,var(--color-bg-3),var(--color-bg-solid));box-shadow:0 12px 24px #00000026;transform:translateY(-5px)}.proyecto-card h3{color:var(--color-text);font-size:2rem;margin-bottom:1rem;transition:color .3s ease}.proyecto-rol{color:var(--color-accent);font-size:1.2rem;font-weight:500;margin-bottom:1.5rem}.proyecto-descripcion{color:var(--color-text);flex-grow:1;font-size:1.1rem;line-height:1.6;margin-bottom:1.5rem}.proyecto-logros{list-style:none;margin:1.5rem 0;padding:0}.proyecto-logros li{color:var(--color-text);margin-bottom:.8rem;padding-left:1.5rem;position:relative}.proyecto-logros li:before{color:var(--color-accent);content:"→";left:0;position:absolute}.proyecto-tecnologias{border-top:1px solid #ffffff1a;display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:1.5rem}.tecnologia{background:rgba(var(--color-accent-rgb),.1);border-radius:20px;color:var(--color-accent);cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:all .3s ease}.tecnologia:hover{background:rgba(var(--color-accent-rgb),.2);transform:translateY(-2px)}.proyecto-link{align-items:center;color:var(--color-accent);display:inline-flex;font-weight:500;gap:.5rem;margin-top:1rem;text-decoration:none;transition:all .3s ease}.proyecto-link:hover{transform:translateX(5px)}@media (max-width:768px){.proyectos-grid{gap:20px;grid-template-columns:1fr;padding:10px}.introduccion{font-size:1.4rem;margin:0!important;padding:0 15px}.proyectos-personales{gap:20px;grid-template-columns:1fr;padding:10px}.proyecto-card{min-height:auto;padding:20px}.contenido-colapsable{margin:1rem 10px;padding:1.5rem}.proyecto-card h3{font-size:1.8rem}.proyecto-rol{font-size:1.1rem}.proyecto-descripcion{font-size:1rem}}*,:after,:before{box-sizing:border-box;margin:0;padding:0;transition:inherit}.timeline-container{--j:calc(1 - var(--i));--narr:0;--k:calc(1 - var(--narr));font:500 1em/1.25 koho,trebuchet ms,verdana,sans-serif;margin:2rem auto;max-width:100%;overflow:hidden;padding:1rem;transition:.3s}.timeline{margin:0 auto;max-width:1200px;padding:20px;position:relative}.timeline:after{background:linear-gradient(180deg,var(--hero-title-color),var(--hero-title-color-2));border-radius:1px;bottom:280px;content:"";left:50%;position:absolute;top:300px;transform:translateX(-50%);width:3px;z-index:0}.timeline article{animation:fadeIn .5s ease forwards;margin:2rem 0;opacity:0;position:relative;width:calc(50% - 40px);z-index:2}.timeline article:nth-child(odd){left:0}.timeline article:nth-child(2n){left:50%;margin-left:40px}.timeline article:not(:first-child){margin-top:-160px}.timeline article:before{background:var(--color-accent);border-radius:50%;box-shadow:0 0 0 6px var(--color-bg-2),0 0 20px var(--color-accent);content:"";height:20px;position:absolute;top:50%;transform:translateY(-50%);width:20px;z-index:1}.timeline article:nth-child(odd):before{right:-50px}.timeline article:nth-child(2n):before{left:-50px}@media (max-width:768px){.timeline:after{bottom:275px;left:30px;top:260px}.timeline article{left:0!important;margin-bottom:2rem;margin-left:60px!important;margin-top:0!important;padding:0 20px 0 0!important;width:calc(100% - 80px)!important}.timeline article:before{left:-60px!important;right:auto!important;top:50%;transform:translateY(-50%)}.timeline article .content-wrapper{width:100%}}.timeline article:hover:before{transform:translateY(-50%) scale(1.3);transition:all .3s ease-in-out}.timeline article .content-wrapper{background:linear-gradient(145deg,var(--color-bg-solid),var(--color-bg));border-radius:15px;box-shadow:0 8px 16px #0000001a;cursor:pointer;min-height:250px;overflow:hidden;position:relative;transition:all .3s ease;z-index:2}.timeline article .content-wrapper:hover{background:linear-gradient(145deg,var(--color-bg-3),var(--color-bg-solid));box-shadow:0 12px 24px #00000026;transform:translateY(-5px)}.timeline article .banner-image{height:200px;object-fit:cover;transition:transform .3s ease;width:101%}.timeline article .content-wrapper:hover .banner-image{transform:scale(1.05)}.timeline article .image-overlay{bottom:0;height:50%;left:0;pointer-events:none;position:absolute;right:0}.timeline article .year{align-items:center;background:linear-gradient(145deg,var(--color-bg-solid),var(--color-bg));color:var(--color-bg);color:var(--color-accent);display:flex;font-size:1.5rem;font-weight:700;justify-content:flex-end;letter-spacing:1px;padding:1rem;position:relative;text-align:right;transition:all .3s ease;width:100%}.timeline article .year:before{background:linear-gradient(90deg,#0000,#ffffff1a);content:"";height:100%;left:0;position:absolute;top:0;transform:translateX(-100%);transition:transform .5s ease;width:100%}.timeline article:hover .year:before{transform:translateX(0)}.timeline article .content{padding:.5rem 1.5rem 1.5rem;padding:20px;transition:all .3s ease}.timeline article h3{color:var(--color-accent);font-size:1.25rem;margin:0 0 .5rem}.timeline article h4{color:var(--color-accent);font-size:1rem;font-weight:500;margin:0 0 1rem}.timeline article p{color:var(--color-text);line-height:1.6;margin:0}.timeline article .logros{margin-top:1.5rem;max-height:0;opacity:0;overflow:hidden;transition:all .3s ease}.timeline article .content-wrapper.expanded .logros{margin-bottom:1rem;max-height:1000px;opacity:1}.timeline article .logros h5{color:var(--color-accent);font-size:1.1rem;margin-bottom:.8rem}.timeline article .logros ul{list-style:none;margin:0 0 1rem;padding:0}.timeline article .logros li{color:var(--color-text);line-height:1.4;margin-bottom:.5rem;padding-left:1.2rem;position:relative}.timeline article .logros li:before{color:var(--color-accent);content:"•";font-weight:700;left:0;position:absolute}.timeline article .proyecto-link{align-items:center;animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border-radius:20px;box-shadow:0 4px 6px #0000001a;color:#fff;display:inline-flex;font-size:1rem;font-weight:700;gap:.8rem;isolation:isolate;margin-top:1.5rem;padding:10px 20px;position:relative;text-decoration:none;transition:all .3s ease;z-index:2}.timeline article .proyecto-link:before{background:#ffffff26;border-radius:inherit;content:"";inset:0;position:absolute;z-index:-1}.timeline article .proyecto-link:hover{animation:gradientBG 18s ease infinite;box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-3px)}.timeline article .proyecto-link:hover:before{background:#fff3}.timeline article .proyecto-link:active{animation:none;background:linear-gradient(135deg,#8a0a7f,#65acd0,#00a37a);box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}.timeline article .examples{border-radius:0 0 15px 15px;margin-top:10px;max-height:0;opacity:0;overflow:hidden;padding:0 20px 20px;position:relative;transition:all .3s ease;z-index:2}.timeline article .content-wrapper.expanded .examples{box-shadow:0 8px 16px #0000001a;max-height:1000px;opacity:1;padding-bottom:30px}.timeline article .examples a{background:var(--color-accent);border-radius:15px;color:var(--color-bg-solid);display:inline-block;margin:5px 10px;padding:5px 10px;text-decoration:none;transition:all .3s ease;z-index:3}.timeline article .examples a:hover{background:var(--color-accent-hover);transform:translateY(-2px)}@media (max-width:1024px){.timeline article .banner-image{height:200px}}@media (max-width:860px){.timeline article .banner-image{height:160px}}@media (max-width:768px){.timeline article{left:0!important;margin-bottom:2rem;margin-left:60px!important;margin-top:0!important;padding:0 20px 0 0!important;width:calc(100% - 30px)!important}.timeline article:before{left:-60px!important;right:auto!important;top:50%;transform:translateY(-50%)}.timeline article .year{left:auto!important;right:0!important}}@media (max-width:600px){.timeline article .banner-image{height:190px}}@media (max-width:480px){.timeline article .banner-image{height:130px}.timeline article .content{padding:1rem}}@media (max-width:360px){.timeline article .banner-image{height:120px}}@media (max-width:12em){.timeline-container{font-size:.75em}}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{animation:modalFadeIn .3s ease-out;background:var(--color-bg);border-radius:10px;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;padding:20px;position:relative;width:90%;z-index:1001}.modal-body{flex:1 1;overflow:hidden}.modal-header{align-items:center;border-bottom:1px solid var(--color-accent);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:10px}.modal-header h2{color:var(--color-accent);font-size:1.8rem;margin:0}.modal-close{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:24px;padding:5px;transition:all .3s ease;z-index:1002}.modal-close:hover{color:var(--color-accent);transform:scale(1.1)}.modal-body{color:var(--color-text);position:relative;z-index:1001}@media (max-width:768px){.modal-overlay{align-items:flex-start;padding-top:10vh}.modal-content{border-radius:12px 12px 0 0;margin:0;max-height:80vh;width:95%}.modal-header h2{font-size:1.5rem}}@media (max-width:480px){.modal-overlay{padding-top:5vh}.modal-content{border-radius:8px 8px 0 0;max-height:85vh;padding:16px;width:100%}.modal-header{margin-bottom:16px;padding-bottom:8px}.modal-header h2{font-size:1.3rem}.modal-close{font-size:20px}}.modal-header h2{font-size:1.5rem}.tech-details-content{padding:20px}.tech-icon{font-size:3rem;margin-bottom:20px;text-align:center}.tech-description{color:var(--color-text);font-size:1.1rem;line-height:1.6;margin-bottom:25px}.tech-metadata{grid-gap:15px;background:var(--color-bg-2);border-radius:8px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:25px;padding:15px}.meta-item{display:flex;flex-direction:column;gap:5px}.meta-label{color:var(--color-accent);font-size:.9rem;font-weight:700}.tech-features{margin-bottom:25px}.tech-features h3,.tech-tools h3{color:var(--color-accent);font-size:1.2rem;margin-bottom:15px}.tech-features ul{list-style-type:none;padding:0}.tech-features li{margin-bottom:10px;padding-left:20px;position:relative}.tech-features li:before{color:var(--color-accent);content:"→";left:0;position:absolute}.tools-list{display:flex;flex-wrap:wrap;gap:10px}.tool-tag{background:var(--color-bg-2);border-radius:15px;color:var(--color-text);font-size:.9rem;padding:5px 12px;transition:all .3s ease}.tool-tag:hover{background:var(--color-accent);transform:translateY(-2px)}.servicios-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1400px;padding-left:20px;padding-right:20px;width:100%}@media (max-width:768px){.servicios-grid{grid-template-columns:1fr;padding-left:0;padding-right:0}}.servicios{background:linear-gradient(to bottom,var(--color-bg),var(--color-bg-3));margin:auto;min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.servicios h1{background-color:initial;color:var(--hero-title-color-2);font-size:3rem;margin:20px 0;position:sticky;text-align:center;text-transform:uppercase;top:0;z-index:100}.servicio-card{background:linear-gradient(to top,var(--color-bg-solid),var(--color-bg));border-radius:10px;box-shadow:0 4px 15px #0000001a;cursor:pointer;margin-bottom:30px;min-height:350px;padding:20px;position:relative;transition:all .3s ease}.servicio-card:after{background:linear-gradient(to bottom right,#fff3,#fff3 40%,#fffc 50%,#fff3 60%,#fff3);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:all .5s;width:200%}.servicio-card:hover:after{left:-100%;opacity:1;top:-100%}.servicio-card:hover .habilidad-icono{transform:scale(1.1);transition:transform .3s ease}.servicio-card{overflow:hidden}.servicio-card.active .royecto-descripcion,.servicio-card.active .servicio-descripcion,.servicio-card.active h3,.servicio-card.active h4{color:var(--color-text)}.servicio-card:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-5px)}.servicio-card h3{color:var(--color-accent)!important;font-size:1.8rem;margin-bottom:15px}.servicio-card:hover h3{color:var(--color-accent)!important;transform:scale(1.02);transition:transform 1s ease}.servicio-descripcion{color:var(--color-secondary)!important;line-height:1.6;margin-bottom:20px}.servicio-card:hover .servicio-descripcion{color:var(--color-text)!important;transform:scale(1.02);transition:transform 1s ease}.servicio-beneficios,.servicio-tecnologias{margin-bottom:15px;margin-top:15px}.servicio-beneficios h4,.servicio-tecnologias h4{color:var(--color-accent)!important;font-size:1.1rem;margin-bottom:10px;margin-top:10px}.servicio-beneficios ul,.servicio-tecnologias ul{list-style-type:none;margin:10px 0;padding-left:0}.servicio-beneficios li{color:var(--color-secondary);margin-bottom:8px;padding-left:20px;position:relative}.servicio-beneficios li:before{color:var(--color-accent);content:"•";left:0;position:absolute}.servicio-tecnologias{position:relative;z-index:5}.servicio-tecnologias ul{display:flex;flex-wrap:wrap;gap:8px;list-style-type:none;margin:0;padding:0}.servicio-tecnologias li{border:1px solid #0000;border-radius:20px;color:var(--color-text);cursor:pointer;font-size:.9rem;padding:8px 16px;position:relative;z-index:10}.servicio-tecnologias li:hover{border-color:var(--color-accent);box-shadow:0 4px 8px #0000001a;color:#fff;transform:translateY(-2px)}.servicio-tecnologias li:active{transform:translateY(0) scale(.98)}.contenedor-tecnologias{margin-bottom:80px;position:relative;z-index:5}.servicio-tecnologias li{background:var(--color-bg-2);border-radius:15px;display:inline-block;margin-bottom:5px;margin-right:5px;padding:5px 10px;transition:all .3s ease}.servicio-tecnologias li:hover{background:var(--color-accent);cursor:pointer;transform:translateY(-3px)}.servicio-tecnologias li:active{background:var(--color-accent);cursor:pointer;transform:translateY(-3px) scale(.95)}.servicio-cta{bottom:20px;position:absolute;right:20px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.servicio-card{animation:fadeInUp .5s ease-out}.cta-button-3{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:10px 20px;text-decoration:none;transition:transform .3s ease,color .3s ease}.cta-button-3:hover{animation:gradientBG 18s ease infinite;background-color:var(--hero-button-hover-bg-color);box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.cta-button-3:active{animation:none;background-color:#007d66;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)!important}.contacto{background:linear-gradient(to bottom,var(--color-bg-3),var(--color-bg));margin-left:auto;margin-right:auto;min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.contacto-header{align-items:center;display:flex;justify-content:center;margin-bottom:20px}.contacto-imagen{border-radius:50%;height:150px;margin-right:20px;transition:transform 1s ease;width:150px}.contacto-imagen:hover{transform:scale(1.1)}.contacto-titulo{text-align:left}.contacto-titulo h2{color:var(--color-text);font-size:2rem;margin:0}.contacto-frase{color:var(--color-text);font-style:italic;margin-top:10px;transition:transform 1s ease}.contacto-frase:hover{transform:scale(1.1)}.contacto h2{background-color:initial;color:var(--hero-title-color-2);font-size:3rem;margin:20px 0;position:sticky;text-align:center;text-transform:uppercase;top:0;z-index:100}.contacto-contenido{align-items:flex-start;display:flex;flex-direction:row;gap:20px;justify-content:flex-start;margin:0 auto;max-width:1000px}.formulario-contacto{flex:2 1;width:100%}.formulario-contacto input,.formulario-contacto textarea{background-color:var(--color-bg-3)!important;border:1px solid var(--color-border);border-radius:5px;color:var(--color-texto);margin-bottom:10px;padding:10px;width:100%}.formulario-contacto button{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;margin-left:10px;padding:10px 20px;text-decoration:none;transition:transform .3s ease,color .3s ease}.formulario-contacto button:hover{animation:gradientBG 18s ease infinite;background-color:var(--hero-button-hover-bg-color);box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.formulario-contacto button:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)!important}.input-container{border-radius:5px;padding:10px;position:relative}.input-placeholder{background-color:var(--color-bg-3);color:var(--color-text);left:10px;pointer-events:none;position:absolute;top:30%;transition:transform .2s ease,font-size .2s ease}.input-container.special .input-placeholder{transform:translateY(-60px)}.input-field{border:none;font-size:18px;outline:none;padding:5px 0;width:100%}.input-field.textarea-field{word-wrap:break-word;background-color:var(--color-accent);border:1px solid var(--color-border);border-radius:5px;color:var(--color-text);height:150px;overflow-y:auto;padding:12px;resize:vertical;white-space:pre-wrap;width:100%}.textarea-field{height:150px!important;overflow-y:auto!important;resize:vertical!important}.agenda-documentos h3,.info-contacto h3,.redes-sociales h3{border-bottom:2px solid var(--color-primary);color:var(--hero-title-color-2);font-size:20px;font-weight:700;margin-top:10px;padding-bottom:2px}.info-contacto{flex:1 1;margin-left:10px;width:100%}.info-contacto p{color:var(--color-text)}.agenda-documentos-links,.info-contacto-links,.redes-sociales-links{display:flex;flex-direction:column;padding-top:5px}.agenda-documentos-link,.info-contacto-link,.redes-sociales-link{align-items:center;color:var(--color-primary);display:flex;font-size:16px;font-weight:500;margin-bottom:5px;margin-left:10px;padding:5px 0;text-decoration:none;transition:color .3s ease,transform .3s ease}.agenda-documentos-link svg,.info-contacto-link svg,.redes-sociales-link svg{display:inline-block;font-size:20px;margin-right:10px!important}.agenda-documentos-link:hover,.info-contacto-link:hover,.redes-sociales-link:hover{color:var(--color-accent);text-shadow:0 2px 5px #0000001a;transform:translateX(10px)}.agenda-documentos-link:active,.info-contacto-link:active,.redes-sociales-link:active{transform:scale(.95)}.buttonmessage{margin-left:20px}@media (max-width:768px){.contacto-contenido,.contacto-header{align-items:center;flex-direction:column}.contacto-contenido{gap:30px;justify-content:center}.formulario-contacto,.info-contacto{max-width:100%}.contacto-imagen{height:100px;margin:20px 0;order:2;width:100px}.contacto-titulo h2{font-size:1.8rem;margin-bottom:10px;text-align:center}.contacto-frase{text-align:center}}.footer{background:none;padding:20px;text-align:center}.footer-content{align-items:center;display:flex;flex-direction:column;margin:0 auto;max-width:1200px}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;margin-top:10px}.footer-links a{color:var(--color-text);font-weight:500;margin:0 15px;text-decoration:none;transition:color .3s ease}.footer-links a:hover{color:var(--color-accent);transform:scale(1.05)}.footer-links a:active{transform:scale(.995)}.footer-social{border-top:1px solid var(--color-secondary);margin-top:20px;padding-top:10px}.footer-social p{color:var(--color-secondary);font-size:14px;margin:10px 0}.social-links{display:flex;gap:20px;justify-content:center}.social-links a{font-weight:700;text-decoration:none;transition:color .3s ease}.social-links a:hover{transform:scale(1.05)}.social-links a:active{transform:scale(.995)}.social-links a[href*=linkedin]{color:#0077b5}.social-links a[href*=github]{color:var(--color-text)}.social-links a[href*="wa.me"]{color:#25d366}.social-links a:hover{opacity:.8}.footer-copyright{color:var(--color-secondary);font-size:14px;margin-top:20px}@media (max-width:666px){.footer-content{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr;text-align:center}.footer-links{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.footer-links a{margin:10px 0;text-align:center}.social-links{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);justify-items:center}}.sobre-mi{background:linear-gradient(to bottom,var(--color-bg-3),var(--color-bg));display:flex;flex-direction:column;justify-content:flex-start;min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.sobre-mi h2{background-color:initial;color:var(--hero-title-color-2);font-size:3rem;margin:20px 0;position:sticky;text-align:center;top:0;z-index:100}.contenido-sobre-mi{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;padding-bottom:40px;position:relative;text-align:justify;width:100%}.sub-title-container{margin:2rem 0;padding:0}.sub-title-container:before{left:-1.5rem;top:-.5rem}.sub-title-container:after,.sub-title-container:before{color:var(--color-accent);content:"“";font-size:3rem;position:absolute}.sub-title-container:after{bottom:-1.5rem;right:-1.5rem}.tabs{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(var(--color-bg-rgb),.1);border:1px solid #ffffff1a;border-radius:50px;box-shadow:0 4px 20px #0000001a;display:flex;justify-content:center;margin:1rem auto;max-width:800px;padding:.8rem;position:sticky;top:60px;width:95%;z-index:100}.tab-button{background:#0000;border:none;border-radius:25px;color:var(--color-text);cursor:pointer;font-size:1.1rem;font-weight:500;letter-spacing:.5px;margin:0 .5rem;opacity:.7;padding:.8rem 1.5rem;position:relative;transition:all .3s ease}.tab-button:before{background:linear-gradient(135deg,var(--color-accent),#0000);border-radius:25px;bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease;z-index:-1}.tab-button:hover{color:var(--color-text);opacity:1;transform:translateY(-1px)}.tab-button:hover:before{opacity:.15}.tab-button.active{background:rgba(var(--color-accent-rgb),.15);box-shadow:0 2px 10px rgba(var(--color-accent-rgb),.2);color:var(--color-text);font-weight:600;opacity:1}.tab-button.active:before{opacity:.2}.section-content{align-items:center;padding:1rem 2rem}.content-container,.section-content{flex-direction:column;gap:2rem;margin:0 auto}.content-container{display:flex;max-width:1400px;width:100%}.image-container{flex:0 1 400px;margin:0 auto}.image-container img{border-radius:10px;box-shadow:0 4px 8px #0000001a;height:auto;transition:transform .3s ease;width:100%}.image-container:hover img{transform:scale(1.02)}.text-content{display:flex;flex:1 1;flex-direction:column;gap:1.5rem;max-width:600px}.sub-title-container{color:var(--color-accent);font-size:1.8rem;font-weight:700;margin:2rem auto;max-width:800px;padding:0 2rem;position:relative;text-align:center;width:100%}.cta-seccion-sobre-mi{display:flex;gap:10px;justify-content:center;margin:0 auto 20px;max-width:1400px;padding:0 20px;width:100%}.shinyy{animation:shine 3s linear infinite;background:linear-gradient(to right,var(--hero-title-color-2) 0,var(--hero-title-color) 50%,var(--hero-title-color-2) 100%);-webkit-background-clip:text;background-clip:text;background-size:200% auto;color:#0000}@keyframes shine{to{background-position:200%}}.cta-button-2{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:10px 20px;text-decoration:none;transition:transform .3s ease,color .3s ease}.cta-button-2:hover{animation:gradientBG 18s ease infinite;background-color:var(--hero-button-hover-bg-color);box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.cta-button-2:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}.nav-arrow{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:40px;text-shadow:0 2px 4px #0006;transition:color .3s,transform .2s,text-shadow .3s}.nav-arrow:hover{color:var(--color-accent)}.nav-arrow:active{transform:scale(.9)}.nav-arrow.left{margin-left:-20px;margin-top:3px;transform:rotate(0deg)}.nav-arrow.right{margin-right:-20px}.section-content{align-items:flex-start;display:flex;flex-wrap:wrap;gap:30px;justify-content:center;max-width:1400px;min-height:500px;overflow:hidden;position:relative;transition:opacity .5s ease-in-out,transform .5s ease-in-out}.section-content.hidden{opacity:0;transform:translateX(-100%)}.section-content.visible{opacity:1;transform:translateX(0)}.horizontal-scroll-indicator{bottom:10px;display:flex;height:10px;justify-content:center;margin-top:20px;position:absolute;width:100%}.indicator{background-color:var(--color-secondary);margin:0 5px;transition:background-color .3s ease}.indicator.active-indicator{background-color:var(--color-text)}.indicator:hover{background-color:var(--color-accent)}@media (min-width:768px){.image-container{align-items:start;grid-template-columns:minmax(300px,1fr) 2fr}.content-container{align-items:flex-start;flex-direction:row;gap:3rem;justify-content:center}}@media (max-width:666px){.content-container{align-items:center;box-sizing:border-box;flex-direction:column!important;gap:1.2rem;padding:0 5px;width:100%}.image-container{display:flex;justify-content:center;margin:0 auto 1rem;max-width:320px;width:100%}.image-container .optimized-image,.image-container img{border-radius:10px;height:auto!important;max-width:320px;width:100%!important}.text-content{font-size:1rem;gap:1rem;max-width:100%}.sub-title-container,.text-content{box-sizing:border-box;padding:0 2px;text-align:center;width:100%}.sub-title-container{color:var(--color-accent);font-size:1.2rem;font-weight:700;margin-bottom:1rem;margin-top:1rem}.cta-seccion-sobre-mi{align-items:center;flex-direction:column;gap:10px;margin:10px 0 20px;padding:0;width:100%}.section-content{gap:1rem;min-height:0;min-height:auto;padding:.5rem .2rem}.tabs{flex-wrap:wrap;font-size:.9rem;max-width:100vw;overflow-x:auto;padding:.3rem}.tab-button{border-radius:12px;font-size:.85rem;min-width:80px;padding:.4rem .7rem}.nav-arrow{font-size:28px;margin:0 2px}.horizontal-scroll-indicator{bottom:auto;margin-top:10px;position:static}}@media (max-width:480px){.tabs{border-radius:20px;padding:.5rem}.tab-button{border-radius:15px;font-size:.85rem;padding:.5rem 1rem}}.redirect-container{align-items:center;background-color:#f0f4f8;display:flex;height:100vh;justify-content:center}.redirect-text{animation:fadeIn 2s ease-in-out;background-color:#e8f0fe;border-radius:10px;box-shadow:0 4px 8px #0003;color:#333;font-family:Arial,sans-serif;font-size:3rem;padding:20px;text-align:center}.floating-button{align-items:center!important;background-color:var(--color-accent)!important;border:none!important;border-radius:30px!important;bottom:1.5rem!important;box-shadow:0 4px 15px #0000001a!important;color:#fff!important;cursor:pointer!important;display:flex!important;font-size:2.3rem!important;height:60px!important;justify-content:center!important;left:1.5rem!important;position:fixed!important;transition:all .2s ease!important;width:60px!important;z-index:1000!important}[data-theme=dark] .floating-button{background-color:var(--color-accent-dark);box-shadow:0 2px 10px var(--color-shadow-dark);color:var(--color-bg-dark)}.floating-button:hover{box-shadow:0 4px 15px var(--color-shadow-light);transform:translateY(-2px)}[data-theme=dark] .floating-button:hover{box-shadow:0 4px 15px var(--color-shadow-dark)}.floating-button:active{box-shadow:0 2px 10px var(--color-shadow-light);transform:translateY(0)}[data-theme=dark] .floating-button:active{box-shadow:0 2px 10px var(--color-shadow-dark)}@media (max-width:768px){.floating-button{bottom:1.5rem;height:3rem;left:1.5rem;width:3rem}}.typing-container{display:inline-flex}.typing-container,.typing-content{align-items:flex-start;flex-direction:column;width:100%}.typing-content{display:flex;gap:8px}.typing-text{font-size:.95rem;font-weight:500;margin-bottom:4px}.typing-indicator{height:20px;position:relative;width:60px;z-index:4}.typing-circle{animation:typing-circle7124 .5s ease infinite alternate;background-color:var(--color-accent);border-radius:50%;height:6px;left:15%;position:absolute;transform-origin:50%;width:6px}@keyframes typing-circle7124{0%{border-radius:50px 50px 25px 25px;height:4px;top:15px;transform:scaleX(1.7)}40%{border-radius:50%;height:6px;transform:scaleX(1)}to{top:0}}.typing-circle:nth-child(2){animation-delay:.2s;left:45%}.typing-circle:nth-child(3){animation-delay:.3s;left:auto;right:15%}.typing-shadow{animation:typing-shadow046 .5s ease infinite alternate;background-color:currentColor;border-radius:50%;filter:blur(1px);height:3px;left:15%;opacity:.3;position:absolute;top:20px;transform-origin:50%;width:4px;z-index:3}@keyframes typing-shadow046{0%{transform:scaleX(1.5)}40%{opacity:.3;transform:scaleX(1)}to{opacity:.2;transform:scaleX(.2)}}.typing-shadow:nth-child(4){animation-delay:.2s;left:45%}.typing-shadow:nth-child(5){animation-delay:.3s;left:auto;right:15%}.chat-options-grid{background-color:var(--chatbot-chat-widget-bg-color);border-radius:12px;display:flex;flex-direction:row;flex-wrap:nowrap;margin:0 auto;max-width:400px;padding:.8rem;position:relative;width:100%}.chat-option-button,.chat-options-grid{align-items:center;justify-content:center}.chat-option-button{background-color:var(--chatbot-chat-widget-system-message-bg-color);box-shadow:0 2px 4px #0000001a;cursor:pointer;display:inline-flex;height:3.5rem;margin:0 4px;min-height:36px;padding:.5rem;transition:all .2s ease;width:3.5rem}.chat-option-button:hover{background-color:var(--color-accent);box-shadow:0 4px 8px #00000026;color:#fff;transform:translateY(-2px)}.chat-option-button.blue{color:#3b82f6}.chat-option-button.blue .option-tooltip,.chat-option-button.blue:hover{background-color:#3b82f6;color:#fff}.chat-option-button.cyan{color:#06b6d4}.chat-option-button.cyan .option-tooltip,.chat-option-button.cyan:hover{background-color:#06b6d4;color:#fff}.chat-option-button.yellow{color:#facc15}.chat-option-button.yellow .option-tooltip,.chat-option-button.yellow:hover{background-color:#facc15;color:#1f2937}.chat-option-button.orange{color:#f97316}.chat-option-button.orange .option-tooltip,.chat-option-button.orange:hover{background-color:#f97316;color:#fff}.chat-option-button.purple{color:#8b5cf6}.chat-option-button.purple .option-tooltip,.chat-option-button.purple:hover{background-color:#8b5cf6;color:#fff}.button-icon{font-size:2.2rem;height:2.2rem;width:2.2rem}.option-tooltip{--tooltip-offset:8px;border-radius:6px;bottom:calc(100% + var(--tooltip-offset));box-shadow:0 2px 4px #0000001a;color:inherit;font-size:1rem;font-weight:500;left:50%;opacity:0;padding:2px 10px;pointer-events:none;position:absolute;transform:translateX(-50%);transition:all .2s ease;visibility:hidden;white-space:nowrap;z-index:10000}.chat-option-button:first-child .option-tooltip{left:0;transform:translateX(0)}.chat-option-button:last-child .option-tooltip{left:100%;transform:translateX(-100%)}.chat-option-button:hover .option-tooltip{opacity:1;visibility:visible}.option-tooltip:after{border:4px solid #0000;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.chat-button{align-items:center!important;background-color:var(--color-accent)!important;border:none!important;border-radius:50%!important;bottom:clamp(.5rem,1.5rem,3vh)!important;box-shadow:0 4px 15px #0000001a!important;color:#fff!important;cursor:pointer!important;display:flex!important;font-size:clamp(1.8rem,2.3rem,5vw)!important;height:clamp(50px,60px,15vw)!important;justify-content:center!important;max-height:80px!important;max-width:80px!important;min-height:40px!important;min-width:40px!important;position:fixed!important;right:clamp(.5rem,1.5rem,3vw)!important;transition:all .2s ease!important;width:clamp(50px,60px,15vw)!important;z-index:1001!important}.chat-button:hover{box-shadow:0 6px 20px #00000026;transform:scale(1.05)}.chat-button.gemini-active{animation:gemini-pulse 2s infinite;background:linear-gradient(45deg,var(--color-accent),#4285f4)!important}@keyframes gemini-pulse{0%,to{box-shadow:0 4px 15px #0000001a}50%{box-shadow:0 4px 15px #4285f44d}}.chat-modal{background:var(--chatbot-chat-widget-bg-color)!important;border:3px solid var(--chatbot-chat-widget-user-message-bg-color)!important;border-radius:15px!important;bottom:clamp(6rem,7rem,15vh)!important;box-shadow:0 5px 25px #0000001a!important;contain:layout style paint!important;display:flex!important;flex-direction:column!important;height:clamp(400px,70vh,80vh)!important;max-height:80vh!important;max-width:90vw!important;overflow:hidden!important;position:fixed!important;right:clamp(.5rem,2rem,5vw)!important;transition:all .3s ease!important;width:clamp(280px,380px,90vw)!important;z-index:1001!important}.chat-header{align-items:center;background:var(--chatbot-chat-widget-user-message-bg-color);border-bottom:1px solid #0000001a;color:var(--chatbot-chat-widget-user-message-text-color);display:flex;flex-shrink:0;justify-content:space-between;padding:.5rem}.chat-header-content{color:var(--color-accent);display:flex;flex-direction:column;font-size:1.8rem;gap:2px}.chat-header-title{color:var(--chatbot-chat-widget-user-message-text-color);font-size:1.5rem;font-weight:600;gap:8px}.chat-header-title,.chat-title{align-items:center;display:flex}.chat-title{gap:12px}.header-icon-container{align-items:center;display:flex;height:48px;justify-content:center;width:48px}.header-icon{color:var(--chatbot-chat-widget-user-message-text-color);font-size:250%}.header-text{display:flex;flex-direction:column;gap:2px}.header-text h3{font-size:1.5rem;font-weight:600}.header-text h3,.header-text p{color:var(--chatbot-chat-widget-user-message-text-color);margin:0}.header-text p{font-size:1.1rem;opacity:.9}.chat-subtitle{color:var(--chatbot-chat-widget-primary-color-text);font-size:.85rem;line-height:1.2;margin:0;opacity:.9}.close-button{background:none;color:var(--chatbot-chat-widget-user-message-text-color);font-size:250%;margin-top:.5rem;transition:transform .2s ease}.close-button:hover{transform:scale(1.1)}.chat-content{max-height:calc(100% - 140px)!important;overflow-x:hidden!important;overflow-y:auto!important;scroll-behavior:smooth!important;scrollbar-color:var(--chatbot-chat-widget-user-message-bg-color) #0000!important;scrollbar-width:thin!important}.chat-content,.messages-container{background-color:var(--chatbot-chat-widget-bg-color)!important;contain:layout style paint!important;display:flex!important;flex:1 1!important;flex-direction:column!important}.messages-container{gap:clamp(.5rem,.75rem,1rem)!important;margin:0!important;overflow:hidden!important;padding:clamp(.5rem,.75rem,1rem) clamp(.75rem,1rem,1.25rem)!important}.message{word-wrap:break-word!important;border-radius:1rem!important;box-shadow:0 2px 4px #0000001a!important;contain:layout style paint!important;font-size:clamp(.875rem,1rem,1.125rem)!important;line-height:1.4!important;max-width:85%!important;overflow-wrap:break-word!important;padding:clamp(.625rem,.875rem,1rem) clamp(.75rem,1rem,1.25rem)!important;transition:transform .2s ease!important;word-break:break-word!important}.message:hover{transform:translateY(-1px)}.message.system.gemini-powered{background:linear-gradient(135deg,var(--chatbot-chat-widget-system-message-bg-color),#4285f41a);border-left:3px solid #4285f4;position:relative}.message.system.gemini-powered:after{background:#4285f4;border-radius:8px;color:#fff;content:"⚡ Gemini AI";font-size:.7rem;font-weight:500;padding:2px 6px;position:absolute;right:8px;top:-8px}.typing-indicator.gemini-active{background:linear-gradient(135deg,var(--chatbot-chat-widget-system-message-bg-color),#4285f41a);border-left:3px solid #4285f4}.message-content{font-size:1rem;line-height:1.5;white-space:pre-line}.message.system{background-color:var(--chatbot-chat-widget-system-message-bg-color);border:1px solid var(--color-accent);color:var(--chatbot-chat-widget-system-message-text-color);margin-right:3rem;position:relative}.message.user{background-color:var(--color-accent);box-shadow:0 2px 6px #00000026;color:var(--chatbot-chat-widget-user-message-text-color);margin-left:3rem;position:relative}.chat-bottom-container{border-top:3px solid var(--color-accent);flex-direction:column;flex-shrink:0;margin-top:auto}.chat-bottom-container,.chat-input-container{background-color:var(--chatbot-chat-widget-bg-color);display:flex}.chat-input-container{color:var(--color-accent);gap:10px;padding:10px}.chat-input{background:var(--color-bg-2);border:1px solid var(--color-accent);border-radius:20px;flex:1 1;font-size:1rem;height:48px;padding:12px 16px}.chat-input,.chat-input::placeholder{color:var(--chatbot-chat-widget-primary-color-text)}.chat-input::placeholder{opacity:.7}.chat-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);outline:none}.send-button{align-items:center;background:var(--chatbot-chat-widget-user-message-bg-color);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;transition:transform .2s ease;width:48px}.send-button svg{height:28px;width:28px}.send-button:hover{transform:scale(1.1)}.message-list{display:flex;flex-direction:column;gap:5px;margin:0;padding:0}.message-grid{grid-gap:0;display:grid;gap:0;margin:0;padding:0}.message-item{align-items:flex-start;background:var(--color-accent);border:none;border-radius:8px;color:var(--chatbot-chat-widget-user-message-text-color);cursor:pointer;display:flex;font-size:.9rem;gap:6px;justify-content:flex-start;margin-bottom:8px;padding:6px 10px 6px 6px;text-align:left;transition:all .2s ease;width:100%}.message-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.message-text{flex:1 1;min-width:0;padding-left:4px}@media (max-width:768px){.chat-modal{bottom:clamp(5rem,6rem,8rem)!important;height:clamp(350px,65vh,75vh)!important;right:clamp(5px,1rem,2rem)!important;width:clamp(250px,85vw,350px)!important}.chat-button{bottom:clamp(.75rem,1rem,1.5rem)!important;font-size:clamp(1.5rem,2rem,2.3rem)!important;height:clamp(45px,55px,60px)!important;right:clamp(.75rem,1rem,1.5rem)!important;width:clamp(45px,55px,60px)!important}.chat-content{flex:1 1!important;max-height:calc(100% - 120px)!important;overflow-y:auto!important}.chat-bottom-container{flex-shrink:0!important}.chat-options-icons{gap:8px!important;padding:8px!important}.chat-option-icon{font-size:1.2rem!important;height:36px!important;width:36px!important}.option-tooltip{font-size:.7rem!important;padding:3px 6px!important}.message{font-size:clamp(.825rem,.95rem,1rem)!important;max-width:90%!important;padding:clamp(8px,10px,12px) clamp(10px,12px,14px)!important}}@media (max-width:480px){.chat-modal{display:flex;flex-direction:column;height:70vh;left:10px;margin:0;max-width:calc(100% - 20px);right:10px;width:auto}.chat-content{max-height:60%}.chat-options-icons{gap:6px;padding:6px}.chat-option-icon{font-size:1.1rem;height:32px;width:32px}}.redirect-message{animation:fadeIn .3s ease-in-out;background-color:var(--color-background);border-radius:8px;margin:.5rem 0;padding:1rem}.redirect-message p{line-height:1.5;margin:.5rem 0}.redirect-message .close-instructions{font-size:.9rem;margin-top:.5rem;opacity:.9}.redirect-message span{cursor:pointer;transition:opacity .3s ease}.redirect-message span:hover{opacity:.8}.project-progress{align-items:center;background:linear-gradient(to bottom,var(--color-bg-3),var(--color-bg))!important;display:flex;flex-direction:column;min-height:100vh;overflow:hidden;padding:40px 0;position:relative;width:100%;z-index:1}.project-content{margin:0 auto;max-width:1200px;padding:0 20px;width:100%}.project-header{margin-bottom:2rem;text-align:left;width:100%}.project-title{color:var(--hero-title-color);font-family:Work Sans,sans-serif;font-size:2rem;font-weight:700;letter-spacing:-.02em;margin-bottom:.8rem;text-align:center;text-transform:uppercase}.project-subtitle{color:var(--color-accent);font-family:Montserrat,sans-serif;font-size:1rem;font-weight:500;text-align:center}.last-updated{color:var(--color-text-muted);font-size:.75rem;font-style:italic;margin-top:.4rem;text-align:center}.section-title{color:var(--hero-title-color);font-family:Work Sans,sans-serif;font-size:1.6rem;font-weight:600;letter-spacing:-.02em;margin-bottom:1.5rem;padding-bottom:.4rem;position:relative;text-align:left;transition:color .3s ease}.section-title:hover{color:var(--color-accent)}.section-title:after{background-color:var(--color-accent);border-radius:2px;bottom:0;content:"";height:2px;left:0;position:absolute;transform:none;width:60px}.section-subtitle{color:var(--hero-title-color);font-family:Montserrat,sans-serif;font-size:1rem;font-weight:600;margin:.8rem 0}.requirement-card,.sprint-card,.summary-card{background:var(--color-bg-solid);border:1px solid var(--color-accent);border-radius:8px;box-shadow:0 3px 10px var(--color-shadow);display:flex;flex-direction:column;margin-bottom:1.2rem;overflow:hidden;padding:1.2rem;position:relative;text-align:left;transition:all .3s ease}.requirement-card:hover,.sprint-card:hover,.summary-card:hover{box-shadow:0 5px 15px var(--color-shadow);transform:translateY(-5px)}.card-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.2rem;padding-bottom:1.2rem}.card-title{color:var(--hero-title-color);font-family:Work Sans,sans-serif;font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.card-content{display:flex;flex:1 1;flex-direction:column;gap:1rem}.card-section{display:flex;flex-direction:column;margin-bottom:1rem}.card-section:last-child{margin-bottom:0}.requirements-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-top:1.5rem}.requirement-card{background-color:var(--color-bg-alt);border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:1.5rem;text-align:left}.requirement-card .card-title{color:var(--color-text);font-family:Work Sans,sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.requirement-list{list-style:none;margin:0;padding:0;text-align:left}.requirement-list li{color:var(--color-text);font-size:.9rem;line-height:1.4;margin-bottom:.7rem;padding-left:1.2rem;position:relative;text-align:left}.requirement-list li:before{color:var(--color-accent);content:"•";font-size:1em;left:.5rem;position:absolute}.sprints-container{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr);margin-top:1.5rem}.sprint-card{background-color:var(--color-bg-alt);border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:1.5rem;text-align:left}.sprint-title{color:var(--color-text);font-family:Work Sans,sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:.8rem}.progress-container{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0;width:100%}.progress-indicator{display:flex;justify-content:flex-end;margin-bottom:.2rem;width:100%}.progress-bar{background-color:var(--color-bg-alt);border-radius:3px;height:6px;overflow:hidden;width:100%}.progress-fill{background-color:var(--color-accent);border-radius:3px;height:100%;transition:width .5s ease}.sprint-objective{color:var(--color-text);font-size:.95rem;line-height:1.4;margin-bottom:1rem}.task-list{margin-top:1rem}.task-list-title{color:var(--color-text);font-size:.9rem;font-weight:600;margin-bottom:1rem;text-align:left}.task-item{display:flex;line-height:1.4;margin-bottom:.5rem;padding-left:0;text-align:left}.task-bullet{align-items:center;color:var(--color-accent);display:inline-flex;justify-content:flex-start;margin-right:.5rem}.task-text{color:var(--color-text);font-size:.9rem}.task-meta{color:var(--color-text-muted);font-size:.85rem;font-style:italic}.task-status-tag{border-radius:2px;display:inline-block;font-size:.75rem;font-weight:500;margin-left:.5rem;padding:.1rem .4rem}.status-completed{background-color:var(--color-success)}.status-in-progress{background-color:var(--color-primary)}.status-pending{background-color:var(--color-warning);color:#000}.status-blocked{background-color:var(--color-danger)}.table-container{border-radius:6px;box-shadow:0 2px 6px var(--color-shadow);margin:.4rem 0;overflow-x:auto}.data-table,.table-container{background-color:var(--color-bg-solid);width:100%}.data-table{border-collapse:initial;border-spacing:0;table-layout:fixed}.data-table th{background-color:var(--color-bg-alt);color:var(--color-text);font-size:.85rem;font-weight:600;padding:.6rem .8rem;white-space:nowrap}.data-table td,.data-table th{word-wrap:break-word;border-bottom:1px solid var(--color-border);font-size:.9rem;line-height:1.3;overflow:hidden;padding:.6rem .8rem;text-align:left;text-overflow:ellipsis;vertical-align:middle;white-space:normal}.data-table.three-columns th:first-child{width:50%}.data-table.three-columns th:nth-child(2){text-align:center;width:20%}.data-table.three-columns th:nth-child(3){width:30%}.data-table.three-columns td:nth-child(2){text-align:center}.data-table.four-columns th:first-child{width:40%}.data-table.four-columns th:nth-child(2),.data-table.four-columns th:nth-child(3){text-align:center;width:15%}.data-table.four-columns th:nth-child(4){width:30%}.data-table.four-columns td:nth-child(2),.data-table.four-columns td:nth-child(3){text-align:center}.data-list{grid-gap:.4rem;display:grid;gap:.4rem;grid-template-columns:1fr;list-style:none;margin:.4rem 0;padding:0}.data-item{grid-gap:.6rem;align-items:center;background-color:var(--color-bg-solid);border-radius:4px;box-shadow:0 1px 3px var(--color-shadow);display:grid;font-size:.9rem;gap:.6rem;grid-template-columns:auto 1fr;justify-content:flex-start;line-height:1.3;margin:0;padding:.6rem;text-align:left}.data-label{color:var(--color-text);font-weight:600;white-space:nowrap}.data-value{font-weight:500}.data-list.numbered{counter-reset:item;list-style-type:none}.data-list.numbered .data-item{counter-increment:item;grid-template-columns:1fr;padding-left:2rem;position:relative}.data-list.numbered .data-item:before{color:var(--color-accent);content:counter(item) ".";font-weight:600;left:.6rem;position:absolute}.data-item.achievement{grid-template-columns:1fr;padding-left:2rem;position:relative}.data-item.achievement:before{color:var(--color-success);content:"✓";font-weight:700;left:.6rem;position:absolute}.data-item.critical{border-left:2px solid var(--color-danger);padding-left:.8rem}.tasks-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr;width:100%}.task-grid-item{grid-gap:1rem;align-items:center;background-color:var(--color-bg-alt);border-left:3px solid var(--color-border);border-radius:4px;display:grid;gap:1rem;grid-template-columns:1fr auto auto;padding:.6rem}.task-grid-item:nth-child(odd){background-color:var(--color-bg-solid)}.task-name-col{display:flex;flex-direction:column}.task-name{color:var(--color-text);font-weight:500}.task-group{color:var(--color-text-muted);font-size:.8rem;margin-top:.2rem}.task-priority-col,.task-status-col{align-items:center;display:flex;justify-content:center}.task-status{align-items:center;border-radius:50%;display:inline-flex;height:24px;justify-content:center;width:24px}.status-pending{background-color:#f0ad4e;color:#fff}.status-in-progress{background-color:#5bc0de;color:#fff}.status-completed{background-color:#5cb85c;color:#fff}.status-blocked{background-color:#d9534f;color:#fff}.priority-high{color:#d9534f}.priority-medium{color:#f0ad4e}.priority-low{color:#5cb85c}.two-columns{grid-gap:1.2rem;display:grid;gap:1.2rem;grid-template-columns:1fr 1fr}.column{display:flex;flex-direction:column}.column .section-subtitle{margin-bottom:.6rem}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.status-complete{color:var(--color-success)}.status-partial{color:var(--color-warning)}.status-pending{color:var(--color-muted)}.priority-high{color:var(--color-danger)}.priority-medium{color:var(--color-warning)}.priority-low{color:var(--color-success)}.summary-section{margin:2rem 0 1rem}.summary-container{grid-gap:1.2rem;display:grid;gap:1.2rem;grid-template-columns:1fr 1fr}.summary-card{display:flex;flex-direction:column;text-align:left}@media (max-width:768px){.project-progress{padding:30px 0}.project-content{padding:0 15px}.project-title{font-size:1.8rem}.project-subtitle{font-size:.9rem}.section-title{font-size:1.4rem}.card-title{font-size:1.1rem}.requirements-grid,.sprints-container{gap:1rem;grid-template-columns:1fr}.progress-container{margin:.8rem 0}.progress-indicator{justify-content:flex-end}.progress-bar{min-height:6px}.requirement-card,.sprint-card,.summary-card{margin-bottom:1rem;padding:1rem}.card-header{margin-bottom:1rem;padding-bottom:1rem}.progress-bar{width:100%}.progress-fill{display:block;width:100%}.summary-container{grid-template-columns:1fr}}.access-form-container{align-items:center;background:var(--color-bg);display:flex;justify-content:center;min-height:100vh;padding:20px;position:relative;z-index:1}.access-form-container:before{background:linear-gradient(45deg,var(--color-bg),var(--color-bg-2));bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.access-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--color-bg-solid);border:1px solid var(--color-accent);border-radius:15px;box-shadow:0 8px 32px var(--color-shadow);max-width:400px;padding:2.5rem;text-align:center;transform:translateY(0);transition:all .3s ease;width:100%}.access-form:hover{box-shadow:0 12px 48px var(--color-shadow);transform:translateY(-5px)}.access-form h2{color:var(--color-text);font-size:2rem;font-weight:600;margin-bottom:1rem}.access-form p{color:var(--color-text-secondary);font-size:1.1rem;line-height:1.5;margin-bottom:2rem}.form-group{margin-bottom:1.5rem;position:relative}.form-input{background:var(--color-bg-2);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.form-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-alpha);outline:none}.submit-button{background:var(--color-accent);border:none;border-radius:8px;color:var(--color-text-inverse);cursor:pointer;font-size:1rem;font-weight:600;margin-top:1rem;padding:12px;transition:all .3s ease;width:100%}.submit-button:hover{background:var(--color-accent-hover);transform:translateY(-2px)}.submit-button:active{transform:translateY(0)}.error-message{animation:errorSlideDown .3s ease forwards;color:var(--color-error);font-size:.9rem;font-weight:500;margin:.5rem 0;opacity:0;transform:translateY(-10px)}@keyframes errorSlideDown{to{opacity:1;transform:translateY(0)}}[data-theme=dark] .access-form{background:var(--color-bg-solid-dark);border-color:var(--color-accent-dark)}[data-theme=dark] .form-input{background:var(--color-bg-2-dark);border-color:var(--color-border-dark)}[data-theme=dark] .form-input:focus{border-color:var(--color-accent-dark);box-shadow:0 0 0 3px var(--color-accent-alpha-dark)}@media (max-width:480px){.access-form{padding:2rem}.access-form h2{font-size:1.75rem}.access-form p{font-size:1rem}}.quote-card{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:var(--color-bg-solid);border:1px solid var(--color-border);border-radius:15px;box-shadow:0 4px 15px #0000001a;cursor:pointer;display:flex;flex-direction:column;gap:10px;margin-bottom:12px;overflow:hidden;padding:16px 20px;position:relative;transition:all .3s ease}[data-theme=light] .quote-card{background:#fff;border:1px solid #e5e7eb;box-shadow:0 4px 15px #00000014}[data-theme=dark] .quote-card{background:var(--color-bg-solid);border:1px solid var(--color-border);box-shadow:0 4px 15px #00000040}.quote-card:after{background:linear-gradient(to bottom right,#ffffff0d,#ffffff0d 40%,#ffffff26 50%,#ffffff0d 60%,#ffffff0d);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:all .6s ease;width:200%;z-index:1}.quote-card:hover:after{left:-100%;opacity:1;top:-100%}.quote-card:hover{border-color:var(--color-primary);box-shadow:0 6px 20px #00000026;transform:translateY(-5px)}[data-theme=light] .quote-card:hover{background:linear-gradient(135deg,#fffffffa,#3b82f605);border-color:var(--color-primary);box-shadow:0 6px 20px #3b82f626}[data-theme=dark] .quote-card:hover{background:linear-gradient(135deg,var(--color-bg-solid),#7dd3fc0d);border-color:var(--color-primary);box-shadow:0 6px 20px #7dd3fc40}.quote-card.expired{border-color:#fd7e14;border-color:var(--color-warning,#fd7e14);border-left-width:3px}.quote-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.quote-header-right,.quote-left{align-items:center;display:flex;gap:8px}.quote-id{color:var(--color-text-muted);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1rem;font-weight:500;letter-spacing:.025em;transition:color .3s ease}.quote-card:hover .quote-id{color:var(--color-primary)}.quote-status-indicator{border-radius:50%;flex-shrink:0;height:8px;transition:transform .3s ease;width:8px}.quote-card:hover .quote-status-indicator{transform:scale(1.2)}[data-theme=light] .quote-card:hover .quote-status-indicator.abierta{box-shadow:0 0 8px #10b98166}[data-theme=light] .quote-card:hover .quote-status-indicator.aprobada{box-shadow:0 0 8px #0208174d}[data-theme=dark] .quote-card:hover .quote-status-indicator.abierta{box-shadow:0 0 8px #10b98199}[data-theme=dark] .quote-card:hover .quote-status-indicator.aprobada{box-shadow:0 0 8px #7dd3fc80}.quote-status-indicator.abierta{background-color:#10b981;background-color:var(--color-success,#10b981)}.quote-status-indicator.cerrada{background-color:#6b7280;background-color:var(--color-text-muted,#6b7280)}.quote-status-indicator.aprobada{background-color:#3b82f6;background-color:var(--color-primary,#3b82f6)}.quote-status-indicator[data-status="en revision"]{background-color:#10b981;background-color:var(--color-success,#10b981)}.quote-status-badge{align-items:center;border-radius:12px;display:flex;font-size:.9rem;font-weight:500;height:24px;justify-content:center;letter-spacing:.025em;padding:3px 10px;text-transform:uppercase;transition:all .3s ease}.quote-card:hover .quote-status-badge{transform:scale(1.05)}.quote-status-badge.abierta{background-color:#dcfce7;background-color:var(--color-success-bg,#dcfce7);color:#166534;color:var(--color-success-text,#166534)}.quote-status-badge.cerrada{background-color:#f3f4f6;background-color:var(--color-neutral-bg,#f3f4f6);color:#374151;color:var(--color-neutral-text,#374151)}.quote-status-badge.aprobada{background-color:#dbeafe;background-color:var(--color-primary-bg,#dbeafe);color:#1e40af;color:var(--color-primary-text,#1e40af)}.quote-status-badge[data-status="en revision"]{background-color:#dcfce7;background-color:var(--color-success-bg,#dcfce7);color:#166534;color:var(--color-success-text,#166534)}.quote-main-content{display:flex;flex-direction:column;gap:8px}.quote-title-section{flex:1 1;min-width:0}.quote-title{color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.1rem;font-weight:600;line-height:1.4;margin:0;overflow:hidden;position:relative;text-overflow:ellipsis;transition:all .3s ease;white-space:nowrap;z-index:3}.quote-card:hover .quote-title{color:var(--color-primary);transform:scale(1.02)}[data-theme=light] .quote-card:hover .quote-title{color:var(--color-primary-light)}[data-theme=dark] .quote-card:hover .quote-title{color:var(--color-primary-dark)}.quote-summary{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;color:var(--color-text-muted);display:-webkit-box;font-size:1rem;line-height:1.4;margin:2px 0 0;overflow:hidden;transition:all .3s ease}.quote-card:hover .quote-summary{color:var(--color-text);transform:scale(1.02)}.quote-amount{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#1e40af);background:linear-gradient(135deg,var(--color-primary,#3b82f6),var(--color-primary-dark,#1e40af));-webkit-background-clip:text;background-clip:text;color:#3b82f6;color:var(--color-primary,#3b82f6);flex-shrink:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.2rem;font-weight:700;line-height:1.3;max-width:140px;text-align:right;transition:all .3s ease;white-space:normal;word-break:break-word}.quote-card:hover .quote-amount{color:var(--color-primary);transform:scale(1.05)}[data-theme=light] .quote-card:hover .quote-amount{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary-light),var(--color-accent-light));-webkit-background-clip:text;background-clip:text}[data-theme=dark] .quote-card:hover .quote-amount{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary-dark),var(--color-accent-dark));-webkit-background-clip:text;background-clip:text}.quote-meta{display:flex;flex-wrap:wrap;gap:16px;transition:all .3s ease}.quote-card:hover .quote-meta{transform:scale(1.01)}.quote-meta-item{align-items:center;color:var(--color-text-muted);display:flex;font-size:.95rem;gap:4px}.quote-meta-item span:first-child{color:var(--color-text-muted);font-weight:500}.quote-meta-item span:last-child{color:var(--color-text);font-weight:400}.quote-actions{align-items:center;display:flex;gap:.5rem;justify-content:flex-end;margin-top:4px}.quote-bottom-section{display:flex;flex-direction:column;gap:12px;margin-top:8px}.quote-bottom-section .quote-amount{flex-shrink:0;margin:0;max-width:100%;overflow:visible;text-align:left;text-overflow:clip;white-space:normal;width:100%}.quote-actions-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.quote-link-primary{animation:gradientBG 10s ease infinite!important;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9)!important;background-size:300% 300%!important;border:none!important;border-radius:20px!important;color:#fff!important;font-size:.9rem!important;font-weight:700!important;padding:8px 16px!important}.quote-link-primary:hover{background-color:initial!important;border-color:initial!important;box-shadow:0 6px 8px #0000004d!important;color:#fff!important;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003!important;transform:translateY(-2px)!important}.quote-link-primary:active{animation:none!important;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003!important;transform:scale(.95)!important}.quote-link-secondary{background:var(--color-bg-2)!important;border:1px solid var(--color-border)!important;color:var(--color-text)!important;font-size:.85rem!important;padding:5px 10px!important}.quote-link-secondary:hover{background:var(--color-primary)!important;border-color:var(--color-primary)!important;color:#fff!important}.quote-notification-indicator{align-items:center;background:#dbeafe;background:var(--color-primary-bg,#dbeafe);border:1px solid #3b82f6;border:1px solid var(--color-primary,#3b82f6);border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:.9rem;gap:.25rem;height:28px;padding:.25rem .5rem;transition:all .3s ease;z-index:10}.quote-notification-icon{animation:ring-small 2s infinite;color:#3b82f6;color:var(--color-primary,#3b82f6);font-size:.9rem}.quote-notification-count{background:#3b82f6;background:var(--color-primary,#3b82f6);border-radius:8px;color:#fff;font-size:.75rem;font-weight:700;line-height:1;min-width:16px;padding:.1rem .3rem;text-align:center}@keyframes ring-small{0%,90%,to{transform:rotate(0deg)}15%,5%{transform:rotate(10deg)}10%{transform:rotate(-10deg)}}.quote-notification-indicator.empty{background:var(--color-bg);border-color:var(--color-border)}.quote-notification-indicator.empty .quote-notification-icon{animation:none;color:var(--color-text-muted)}.quote-notification-indicator:hover{box-shadow:0 2px 8px #0000001a;transform:scale(1.05)}.quote-notification-indicator.empty:hover{background:var(--color-bg-2);border-color:var(--color-text-muted);transform:scale(1.05)}.quote-link{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-muted);cursor:pointer;display:inline-block;font-size:.85rem;font-weight:500;padding:6px 12px;text-align:center;text-decoration:none;transition:all .3s ease}.quote-link:hover{background-color:var(--color-bg-solid);border-color:var(--color-text-muted);box-shadow:0 2px 8px #0000001a;color:var(--color-text);transform:translateY(-1px)}.quote-card:not(.expired):not([data-expired=true]) .quote-link:not(.quote-link-secondary){animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;font-weight:700;padding:8px 16px}.quote-card:not(.expired):not([data-expired=true]) .quote-link:not(.quote-link-secondary):hover{background-color:initial;border-color:initial;box-shadow:0 6px 8px #0000004d;color:#fff;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.quote-card:not(.expired):not([data-expired=true]) .quote-link:not(.quote-link-secondary):active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}.quote-card[data-urgent=true]{border-left:3px solid #f59e0b;border-left:3px solid var(--color-warning,#f59e0b)}.quote-card[data-expired=true]{border-left:3px solid #ef4444;border-left:3px solid var(--color-danger,#ef4444)}.quote-card[data-expired=true] .quote-meta-item span:last-child{color:#ef4444;color:var(--color-danger,#ef4444);font-weight:500}.quote-card{animation:fadeIn .5s ease forwards}@media (max-width:768px){.quote-card{gap:8px;padding:12px 16px}.quote-id{font-size:.85rem}.quote-status-badge{font-size:.8rem;height:22px;padding:3px 10px}.quote-title{font-size:.95rem}.quote-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.85rem}.quote-amount{font-size:1rem}.quote-meta{gap:12px}.quote-meta-item{font-size:.85rem}.quote-actions .quote-link{font-size:.85rem;padding:5px 10px}.quote-notification-badge{font-size:.75rem;padding:2px 6px}}@media (max-width:480px){.quote-card{border-radius:12px;gap:6px;padding:10px 12px}.quote-id{font-size:.75rem}.quote-status-badge{font-size:.7rem;height:20px;padding:2px 8px}.quote-title{font-size:.85rem}.quote-summary{font-size:.75rem}.quote-amount{font-size:.9rem}.quote-meta-item{font-size:.75rem}.quote-actions .quote-link{font-size:.75rem;padding:4px 8px}.quote-notification-badge{font-size:.7rem}.quote-header-right{gap:4px}.quote-notification-indicator{gap:.15rem;height:22px;padding:.15rem .3rem}}@media (prefers-color-scheme:dark){.quote-card:after{background:linear-gradient(to bottom right,#ffffff08,#ffffff08 40%,#ffffff14 50%,#ffffff08 60%,#ffffff08)}}.quote-actions,.quote-header,.quote-main-content,.quote-meta{position:relative;z-index:2}@media (max-width:1024px){.quote-card{gap:8px;padding:14px 18px}.quote-id{font-size:.9rem}.quote-status-badge{font-size:.85rem;height:24px;padding:3px 10px}.quote-title{font-size:1rem}.quote-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.9rem}.quote-amount{font-size:1.1rem;max-width:100%}.quote-bottom-section{flex-direction:column;gap:10px}.quote-bottom-section .quote-amount{max-width:100%;width:100%}.quote-header-right{gap:6px}.quote-meta-item{font-size:.9rem}.quote-actions .quote-link{font-size:.9rem;padding:7px 14px}.quote-link-primary{font-size:.85rem!important;padding:7px 14px!important}.quote-link-secondary{font-size:.8rem!important;padding:4px 8px!important}.quote-notification-indicator{font-size:.85rem;height:26px}.quote-notification-icon{font-size:.85rem}.quote-notification-count{font-size:.7rem}}@media (max-width:768px){.quote-card{border-radius:12px;gap:6px;padding:12px 16px}.quote-header{flex-wrap:nowrap;margin-bottom:2px}.quote-header-right{flex-shrink:0;gap:6px}.quote-id{font-size:.85rem}.quote-status-badge{font-size:.8rem;height:22px;padding:2px 8px}.quote-title{font-size:.95rem}.quote-summary{-webkit-line-clamp:2;line-clamp:2;font-size:.85rem}.quote-main-content{gap:6px}.quote-amount{font-size:1rem;max-width:100px;text-align:right}.quote-bottom-section{align-items:stretch;flex-direction:column;gap:8px}.quote-bottom-section .quote-amount{margin-bottom:4px;max-width:100%;text-align:left;width:100%}.quote-actions-buttons{justify-content:flex-start;width:100%}.quote-actions-buttons .quote-link{text-align:center}.quote-meta{gap:12px}.quote-meta-item{font-size:.85rem;gap:3px}.quote-actions{justify-content:flex-start;width:100%}.quote-actions .quote-link{font-size:.85rem;padding:8px 12px}.quote-link-primary{font-size:.8rem!important;padding:8px 12px!important}.quote-link-secondary{font-size:.75rem!important;padding:6px 10px!important}.quote-notification-indicator{font-size:.8rem;gap:.2rem;height:24px;padding:.2rem .4rem}.quote-notification-icon{font-size:.8rem}.quote-notification-count{font-size:.65rem}}.updates-modal-content{height:auto;max-height:none;overflow:visible;padding:0}.updates-header{border-bottom:1px solid var(--color-border);flex-shrink:0;margin-bottom:1rem;padding:0 0 1rem}.updates-summary{color:var(--color-text-muted);font-size:.9rem;margin:0;text-align:center}.updates-list{display:flex;flex-direction:column;gap:.75rem;margin-right:-.5rem;max-height:60vh;overflow-y:auto;padding-right:.5rem}.updates-list::-webkit-scrollbar{width:6px}.updates-list::-webkit-scrollbar-track{background:#0000}.updates-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.updates-list::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.update-item{align-items:flex-start;background:var(--color-bg-solid);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;display:flex;gap:.75rem;min-height:100px;overflow:hidden;padding:1.25rem;position:relative;transition:all .3s ease}.update-item.expanded{box-shadow:0 6px 20px #00000026;box-sizing:border-box;overflow:visible;transform:none;width:100%}[data-theme=light] .update-item.expanded{background:#fffffffa;box-shadow:0 6px 20px #3b82f626}[data-theme=dark] .update-item.expanded{box-shadow:0 6px 20px #7dd3fc40}.update-item:after{background:linear-gradient(to bottom right,#ffffff08,#ffffff08 40%,#ffffff14 50%,#ffffff08 60%,#ffffff08);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:opacity .3s ease;width:200%}.update-item:hover{border-color:var(--color-primary);box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.update-item:hover:after{opacity:1}.update-item.expanded{background:var(--color-bg-solid);border-color:var(--color-primary);box-shadow:0 8px 25px #00000026;max-height:none;min-height:auto;transform:translateY(-2px);z-index:10}[data-theme=light] .update-item.expanded{background:#fff;border-color:var(--color-primary-light);box-shadow:0 8px 25px #0000001f}[data-theme=dark] .update-item.expanded{background:var(--color-bg-2);border-color:var(--color-primary);box-shadow:0 8px 25px #0000004d}.update-item.expanded .update-description{word-wrap:break-word;min-height:auto;white-space:pre-wrap}.update-item.expanded .update-content{min-height:auto}.update-item.expanded:after{background:linear-gradient(to bottom right,#3b82f60d,#3b82f60d 40%,#3b82f626 50%,#3b82f60d 60%,#3b82f60d);opacity:.3}.update-content,.update-description,.update-item{transition:all .3s cubic-bezier(.4,0,.2,1)}.update-item:not(.expanded):hover{cursor:pointer}.update-item.expanded{cursor:default}@keyframes expandCard{0%{transform:none}to{transform:none}}.update-item.expanded{animation:none}.update-item:not(.expanded):before{content:"📖";font-size:.8rem;opacity:.6;position:absolute;right:1rem;top:1rem;transition:opacity .3s ease}.update-item:not(.expanded):hover:before{opacity:1}.update-item.expanded:before{content:"📚";font-size:.9rem;opacity:.8;position:absolute;right:1rem;top:1rem}.update-item.expanded .update-content{animation:expandContent .3s ease-out}@keyframes expandContent{0%{opacity:.8;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}[data-theme=light] .update-item{background:#fff;box-shadow:0 1px 3px #00000014}[data-theme=dark] .update-item{background:var(--color-bg-2);box-shadow:0 2px 4px #0003}.update-icon{flex-shrink:0;font-size:1.25rem;line-height:1}.update-content{display:flex;flex:1 1;flex-direction:column;gap:.5rem;min-height:70px;min-width:0}.update-title{font-size:1rem;font-weight:600;line-height:1.4;margin:0 0 .5rem}.update-description,.update-title{word-wrap:break-word;color:var(--color-text);overflow-wrap:break-word}.update-description{font-size:.9rem;line-height:1.5;margin:0 0 .75rem;max-height:4.05rem;overflow:hidden;transition:max-height .3s ease;white-space:pre-wrap}.update-item.expanded .update-description{max-height:none;overflow:visible}.update-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-top:auto}.update-type{border-radius:6px;box-shadow:inset 0 1px 0 #ffffff1a;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.02em;padding:.2rem .5rem;text-shadow:0 1px 2px #0000001a;text-transform:uppercase}.update-type.completado{background:linear-gradient(135deg,#059669,#047857);border:1px solid #065f46;color:#fff}.update-type.documento{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:1px solid #1e40af;color:#fff}.update-type.cotizacion{background:linear-gradient(135deg,#d97706,#b45309);border:1px solid #92400e;color:#fff}.update-type.recordatorio{background:linear-gradient(135deg,#dc2626,#b91c1c);border:1px solid #991b1b;color:#fff}.update-type.tecnico{background:linear-gradient(135deg,#7c3aed,#6d28d9);border:1px solid #5b21b6;color:#fff}.update-type.mejora{background:linear-gradient(135deg,#0891b2,#0e7490);border:1px solid #155e75;color:#fff}.update-type.diseno{background:linear-gradient(135deg,#db2777,#be185d);border:1px solid #9d174d;color:#fff}.update-date{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.update-related{align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:6px;display:flex;flex-wrap:wrap;font-size:.8rem;gap:.3rem;margin-top:.5rem;padding:.5rem}.related-label{color:var(--color-text-muted);font-weight:500}.related-quote{background:linear-gradient(135deg,#2563eb,var(--color-primary));background:linear-gradient(135deg,var(--color-primary-dark,#2563eb),var(--color-primary));border-radius:4px;box-shadow:inset 0 1px 0 #ffffff1a,0 1px 2px #0000000d;color:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75em;font-weight:600;letter-spacing:.02em;margin-left:.25rem;padding:.15rem .4rem;text-shadow:0 1px 2px #0000001a}.unread-indicator{animation:pulse 2s infinite;background:var(--color-primary);border-radius:50%;height:8px;position:absolute;right:1rem;top:1rem;width:8px}@media (max-width:768px){.updates-list{gap:.75rem;max-height:50vh;padding-right:.25rem}.update-item{gap:.5rem;min-height:90px;padding:1rem}.update-item.expanded{transform:translateY(-1px) scale(1.01)}.update-content{min-height:60px}.update-icon{font-size:1.1rem}.update-title{font-size:.95rem;margin-bottom:.4rem}.update-description{font-size:.85rem;margin-bottom:.6rem;max-height:3.825rem}.update-item.expanded .update-description{max-height:none}.update-meta{gap:.5rem}.update-type{font-size:.65rem;padding:.15rem .4rem}.update-date{font-size:.7rem}}@media (max-width:480px){.updates-header{margin-bottom:.75rem;padding:0 0 .75rem}.updates-summary{font-size:.85rem}.updates-list{gap:.6rem;max-height:45vh}.update-item{gap:.5rem;min-height:80px;padding:.9rem}.update-content{min-height:50px}.update-icon{font-size:1rem}.update-title{font-size:.9rem;margin-bottom:.3rem}.update-description{font-size:.8rem;margin-bottom:.5rem;max-height:3.6rem}.update-item.expanded .update-description{max-height:none}.update-related{font-size:.75rem;margin-top:.4rem;padding:.4rem}.related-quote{margin-left:.3rem;padding:.1rem .3rem}}.client-space{background:linear-gradient(to bottom,var(--color-bg-3),var(--color-bg));color:var(--color-text);min-height:100vh;padding:8rem 2rem 2rem}.client-space-container{gap:2rem;margin:0 auto;max-width:1400px}.client-header,.client-space-container{display:flex;flex-direction:column;width:100%}.client-header{background:var(--color-bg-solid);border:1px solid var(--color-border);border-radius:20px;box-shadow:0 6px 24px #0000001a;gap:1rem;margin:0 auto 2rem;max-width:1200px;overflow:hidden;padding:1.5rem;position:relative}[data-theme=light] .client-header{background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 24px #00000014}[data-theme=dark] .client-header{background:var(--color-bg-solid);border:1px solid var(--color-border);box-shadow:0 6px 24px #00000040}[data-theme=light] .status-badge{background:#0208170a;border-color:#0208171f;color:var(--color-primary-light)}[data-theme=light] .status-badge.clickable:hover{background:#02081714;border-color:var(--color-primary-light);box-shadow:0 4px 12px #02081726;color:var(--color-primary-light)}[data-theme=light] .updates-button{background:#00cc9914;border-color:var(--color-accent-light);color:var(--color-accent-light)}[data-theme=light] .updates-button:hover{background:var(--color-accent-light);box-shadow:0 4px 12px #00cc9940;color:#fff}.welcome-section{border-bottom:1px solid var(--color-border);padding-bottom:1rem;text-align:center}.client-header h1{color:var(--hero-title-color);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:2.25rem;font-weight:700;line-height:1.1;margin:0 0 .75rem}.welcome-message{color:var(--color-text-muted);font-size:1.1rem;font-style:italic;line-height:1.5;margin:0 auto;max-width:500px}.project-info-compact{display:flex;flex-direction:column;gap:0}.info-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.info-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border:1px solid var(--color-border);border-radius:12px;display:flex;flex-direction:column;gap:.4rem;padding:1rem;text-align:center;transition:all .3s ease}[data-theme=light] .info-item{background:#f8fafccc;border:1px solid #e2e8f0cc}[data-theme=dark] .info-item{background:#1e293b66;border:1px solid #33415599}.info-item:hover{border-color:var(--color-primary);box-shadow:0 6px 20px #00000026;transform:translateY(-3px)}[data-theme=light] .info-item:hover{background:#fffffff2;border-color:var(--color-primary-light);box-shadow:0 6px 20px #0208171f}[data-theme=dark] .info-item:hover{background:#33415599;border-color:var(--color-primary);box-shadow:0 6px 20px #3b82f640}.contact-item{cursor:pointer;overflow:hidden;position:relative}.contact-item:after{background:linear-gradient(to bottom right,#3b82f60d,#3b82f60d 40%,#3b82f626 50%,#3b82f60d 60%,#3b82f60d);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:all .6s ease;width:200%;z-index:1}.contact-item:hover:after{left:-100%;opacity:1;top:-100%}.contact-item:hover{border-color:var(--color-primary);box-shadow:0 8px 25px #3b82f640}[data-theme=light] .contact-item:hover{background:#02081705;border-color:var(--color-primary-light);box-shadow:0 8px 25px #02081726}[data-theme=dark] .contact-item:hover{background:#1e3a8a33;border-color:var(--color-primary)}.info-label{color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase}.info-label,.info-value{font-size:1rem;font-weight:600;position:relative;z-index:2}.info-value{color:var(--color-text)}.contact-link{color:var(--color-primary);cursor:pointer;font-size:1rem;font-weight:600;position:relative;text-decoration:none;transition:all .3s ease;z-index:2}.contact-item:hover .contact-link{color:var(--hero-title-color-2);text-shadow:0 1px 3px #0000001a;transform:scale(1.05)}.project-status-section{display:flex;justify-content:center;padding-top:.25rem}.status-updates-row{align-items:center;display:flex;flex-wrap:nowrap;gap:1.5rem;justify-content:center}.status-badge,.updates-button{align-items:center;border:2px solid;border-radius:30px;box-sizing:border-box;display:inline-flex;flex:0 1 auto;font-family:inherit;font-size:.9rem;font-weight:600;gap:.7rem;justify-content:center;letter-spacing:.05em;max-width:300px;min-height:48px;min-width:200px;padding:.9rem 2.5rem;position:relative;text-align:center;transition:all .3s ease;white-space:nowrap}.status-badge{cursor:default;text-transform:none}.status-badge.clickable{cursor:pointer;outline:none;position:relative;transition:all .3s ease}.status-badge.clickable:hover{box-shadow:0 4px 12px #3b82f633;transform:scale(1.02)}.status-badge.clickable:focus,.status-badge.clickable:hover{background:#dbeafe;background:var(--color-primary-bg,#dbeafe);border-color:var(--color-primary);color:#1e40af;color:var(--color-primary-text,#1e40af)}.status-badge.clickable:focus{box-shadow:0 0 0 3px #3b82f64d}.updates-button{background:#dbeafe;background:var(--color-primary-bg,#dbeafe);border-color:var(--color-primary);color:#1e40af;color:var(--color-primary-text,#1e40af);cursor:pointer;gap:.9rem;max-width:380px;min-width:280px;padding:1rem 2rem;text-transform:none}.status-badge:hover,.updates-button:hover{box-shadow:0 4px 12px #00000026;transform:scale(1.02)}.updates-button:hover{background:var(--color-primary);color:#fff}.status-count,.updates-count{border-radius:12px;box-shadow:0 2px 4px #0000001a;flex-shrink:0;font-size:.85rem;font-weight:700;margin-left:1rem;min-width:24px;padding:.3rem .8rem;text-align:center;transition:all .3s ease}.status-count{background:#ffffffe6;color:inherit}.updates-count{background:var(--color-primary);color:#fff}[data-theme=dark] .status-count{background:#7dd3fc26;border:1px solid #7dd3fc4d;box-shadow:0 2px 8px #7dd3fc33;color:var(--color-primary)}[data-theme=dark] .updates-count{background:var(--color-primary);border:1px solid var(--color-primary);box-shadow:0 2px 8px #7dd3fc4d;color:var(--color-bg-solid)}.updates-button:hover .updates-count{background:#ffffffe6;color:var(--color-primary)}[data-theme=light] .status-count{background:#02081714;border:1px solid #02081726;box-shadow:0 2px 4px #0208171a;color:var(--color-primary-light)}[data-theme=light] .updates-count{background:var(--color-accent-light);border:1px solid var(--color-accent-light);box-shadow:0 2px 4px #0c93;color:#fff}[data-theme=light] .updates-button:hover .updates-count{background:#fffffff2;border-color:#fffc;color:var(--color-accent-light)}.status-text-mobile,.updates-text-mobile{display:none}.status-text-full,.updates-text-full{display:inline}.status-icon,.updates-icon{align-items:center;display:inline-flex;font-size:1.2rem;justify-content:center;line-height:1}.updates-icon{animation:bellShake 2s ease-in-out infinite;transform-origin:top center}@keyframes bellShake{0%,to{transform:rotate(0)}15%,5%{transform:rotate(15deg)}10%,20%{transform:rotate(-15deg)}25%{animation-timing-function:cubic-bezier(.4,0,.2,1);transform:rotate(0)}50%,to{transform:rotate(0)}}@keyframes ring{0%,90%,to{transform:rotate(0deg)}15%,5%{transform:rotate(15deg)}10%{transform:rotate(-15deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.last-modification{align-items:center;color:var(--color-text-muted);display:flex;font-size:.9rem;gap:.4rem;justify-content:center;margin-top:.75rem;opacity:.7;padding:.5rem 1rem;transition:opacity .3s ease}.last-modification:hover{opacity:.9}.last-modification-label{font-size:.85rem;font-weight:400;opacity:.8}.last-modification-date{background:#3b82f614;border:1px solid #3b82f626;border-radius:6px;color:var(--color-primary);font-size:.85rem;font-weight:600;padding:.2rem .6rem;transition:all .3s ease}[data-theme=light] .last-modification-date{background:#0208170a;border:1px solid #02081714;color:var(--color-primary-light)}[data-theme=dark] .last-modification-date{background:#3b82f61a;border:1px solid #3b82f633}.last-modification:hover .last-modification-date{background:#3b82f61f;border-color:#3b82f640;box-shadow:0 2px 8px #3b82f626;transform:translateY(-1px)}[data-theme=light] .last-modification:hover .last-modification-date{background:#02081714;border-color:#02081726;box-shadow:0 2px 8px #0208171a}[data-theme=dark] .last-modification:hover .last-modification-date{background:#3b82f626;border-color:#3b82f64d}.quote-list{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin:1rem auto 0;max-width:1400px;width:100%}@media (max-width:768px){.client-header{border-radius:16px;gap:.9rem;padding:1.25rem}.welcome-section{padding-bottom:.9rem}.client-header h1{font-size:1.75rem}.welcome-message{font-size:1rem}.project-info-compact{gap:0}.info-row{gap:.8rem}.info-item{border-radius:10px;padding:.9rem}.info-label{font-size:.85rem}.contact-link,.info-value{font-size:.9rem}.status-updates-row{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:1.2rem;justify-content:center}.status-badge,.updates-button{flex:0 1 auto;font-size:.8rem;gap:.7rem;max-width:220px;min-height:44px;min-width:180px;padding:.8rem 2.2rem}.updates-button{gap:.8rem;max-width:250px;padding:.8rem 2.5rem}.status-text-full,.updates-text-full{display:none}.status-text-mobile,.updates-text-mobile{display:inline}.status-count,.updates-count{font-size:.8rem;margin-left:.7rem;min-width:20px;padding:.2rem .6rem}.status-dot{height:10px;width:10px}.quote-list{gap:.5rem;grid-template-columns:1fr;margin-top:.5rem}}@media (max-width:480px){.client-header{border-radius:12px;gap:.75rem;padding:1rem}.client-header h1{font-size:1.5rem}.welcome-message{font-size:.9rem}.info-row{gap:.65rem;grid-template-columns:1fr}.info-item{border-radius:8px;padding:.8rem}.info-label{font-size:.8rem}.contact-link,.info-value{font-size:.85rem}.status-updates-row{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:1rem;justify-content:center}.status-badge,.updates-button{border-radius:20px;flex:0 1 auto;font-size:.75rem;gap:.5rem;height:42px;max-width:180px;min-height:42px!important;min-width:160px;padding:.7rem 2rem!important}.updates-button{gap:.6rem;max-width:200px;padding:.7rem 2.2rem!important}.status-text-full,.updates-text-full{display:none}.status-text-mobile,.updates-text-mobile{display:inline}.status-count,.updates-count{font-size:.75rem;margin-left:.6rem;min-width:18px;padding:.15rem .5rem}.status-dot{height:8px;width:8px}.status-icon,.updates-icon{font-size:1rem}.quote-list{gap:.25rem}}@media (max-width:768px){.status-updates-row{align-items:center;flex-direction:column;gap:1rem}.status-badge,.updates-button{justify-content:center;max-width:320px;width:100%}}.project-category{color:#2563eb;font-weight:600;margin-top:.5rem}[data-theme=dark] .project-category{color:#93c5fd}.quote-section{margin:0 auto 2rem;max-width:1400px;width:100%}.client-space .access-denied,.client-space .error-message{align-items:center;background:var(--color-bg-solid);border:2px solid var(--color-border);border-radius:16px;box-shadow:0 4px 12px var(--color-shadow);display:flex;flex-direction:column;justify-content:center;margin:0 auto;max-width:1200px;min-height:60vh;padding:3rem;text-align:center;width:100%}.client-space .access-denied h2,.client-space .error-message h2{color:var(--color-danger);font-size:1.8rem;font-weight:700;margin-bottom:1rem}.client-space .access-denied p,.client-space .error-message p{color:var(--color-text);font-size:1.1rem;line-height:1.6;margin-bottom:.5rem}@media (max-width:768px){.client-space{padding:6rem 1rem 1rem}.client-space-container{gap:1rem}.quote-section{margin-bottom:1rem}}@media (max-width:480px){.client-space{padding:5rem .5rem 1rem}.client-space-container{gap:.75rem}.quote-section{margin-bottom:.75rem}}.quote-section h3{font-size:1.2rem;margin-bottom:.75rem;padding:0 .25rem}.client-space .access-denied,.client-space .error-message{min-height:50vh;padding:1.5rem}.clientspace-cta{background:var(--color-bg-solid);border:1px solid var(--color-border);border-radius:20px;box-shadow:0 6px 24px #0000001a;margin:2rem auto;max-width:800px;padding:2rem;text-align:center;transition:all .3s ease}[data-theme=light] .clientspace-cta{background:#fff;border:1px solid #e5e7eb;box-shadow:0 6px 24px #00000014}[data-theme=dark] .clientspace-cta{background:var(--color-bg-solid);border:1px solid var(--color-border);box-shadow:0 6px 24px #00000040}.cta-content{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.cta-text{color:var(--color-text);font-size:1.2rem;font-weight:500;line-height:1.6;margin:0;opacity:.9}.cta-button{align-items:center;animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:50px;box-shadow:0 4px 15px #0000004d;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1rem;font-weight:600;justify-content:center;letter-spacing:.5px;min-width:200px;overflow:hidden;padding:1rem 2.5rem;position:relative;text-decoration:none;transition:all .3s ease}.cta-button:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:all .6s ease;width:100%}.cta-button:hover{box-shadow:0 8px 25px #0006;color:#fff;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-3px)}.cta-button:hover:before{left:100%}.cta-button:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:translateY(-1px) scale(.95)}@media (max-width:768px){.clientspace-cta{border-radius:16px;margin:1.5rem auto;padding:1.5rem 1rem}.cta-content{gap:1.25rem}.cta-text{font-size:1.1rem}.cta-button{font-size:1rem;min-width:180px;padding:.9rem 2rem}}@media (max-width:480px){.clientspace-cta{border-radius:12px;margin:1rem auto;padding:1.25rem .75rem}.cta-content{gap:1rem}.cta-text{font-size:1rem}.cta-button{border-radius:40px;font-size:.95rem;min-width:160px;padding:.8rem 1.75rem}}.client-demo{background:var(--color-background);color:var(--color-text);min-height:100vh;padding:8rem 2rem 2rem}.demo-header{margin-bottom:3rem;text-align:center}.demo-header h1{color:var(--color-accent);font-size:2.5rem;font-weight:700;margin-bottom:1rem}.demo-header p{color:var(--color-text-secondary);font-size:1.2rem}.demo-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:3rem}.demo-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;box-shadow:0 4px 12px #00000014;padding:2rem;transition:transform .2s ease,box-shadow .2s ease}.demo-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-2px)}.demo-card-header{align-items:center;border-bottom:2px solid var(--color-border);display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}.demo-card-header h3{color:var(--color-text);font-size:1.4rem;font-weight:600;margin:0}.demo-badge{background:var(--color-accent);border-radius:1rem;color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.3rem .8rem}.demo-details p{line-height:1.5;margin-bottom:.8rem}.demo-credentials{background:var(--color-background);border-left:4px solid var(--color-accent);border-radius:.8rem;margin:1.5rem 0;padding:1.5rem}.demo-credentials h4{color:var(--color-accent);font-size:1rem;margin:0 0 1rem}.credential-item{align-items:center;display:flex;gap:1rem;margin-bottom:.8rem}.credential-item:last-child{margin-bottom:0}.credential-item .label{color:var(--color-text-secondary);font-weight:600;min-width:60px}.credential-item code{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.4rem;color:var(--color-accent);cursor:pointer;font-family:Courier New,monospace;padding:.4rem .8rem;-webkit-user-select:all;user-select:all}.credential-item code:hover{background:var(--color-accent);color:#fff}.demo-actions{margin-top:2rem}.demo-link{background:var(--color-accent);border-radius:.6rem;box-sizing:border-box;display:inline-block;font-weight:600;margin-bottom:1rem;padding:1rem 2rem;text-align:center;transition:all .2s ease;width:100%}.demo-link,.demo-link:hover{color:#fff;text-decoration:none}.demo-link:hover{background:var(--color-accent-hover);box-shadow:0 4px 8px #0003;transform:translateY(-1px)}.demo-url{text-align:center}.demo-url small{background:var(--color-background);border:1px solid var(--color-border);border-radius:.4rem;color:var(--color-text-secondary);font-family:Courier New,monospace;padding:.4rem .8rem}.demo-documentation,.demo-info{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;margin-bottom:2rem;padding:2rem}.demo-documentation h3,.demo-info h3{color:var(--color-accent);font-size:1.3rem;margin-bottom:1rem}.demo-info ol{line-height:1.6;padding-left:1.5rem}.demo-info li{margin-bottom:.5rem}.demo-documentation code{background:var(--color-background);border:1px solid var(--color-border);border-radius:.3rem;color:var(--color-accent);font-family:Courier New,monospace;padding:.3rem .6rem}@media (max-width:768px){.client-demo{padding:6rem 1rem 1rem}.demo-header h1{font-size:2rem}.demo-grid{gap:1.5rem;grid-template-columns:1fr}.demo-card{padding:1.5rem}.credential-item{align-items:flex-start;flex-direction:column;gap:.5rem}.credential-item .label{min-width:auto}}.site-carousel{border-radius:12px;margin:0 auto 3rem;max-width:1200px}.carousel-content,.site-carousel{overflow:hidden;position:relative;width:100%}.carousel-content{aspect-ratio:2/1;max-height:600px}.carousel-content img{height:100%;object-fit:cover;object-position:center top;width:100%}.carousel-content.transitioning{transition:transform .3s ease-in-out}.carousel-info{background:linear-gradient(#0000,#000c);bottom:0;color:#fff;left:0;padding:2rem;position:absolute;right:0}.carousel-nav{background:var(--color-bg-solid);border:none;border-radius:50%;color:var(--color-text);cursor:pointer;font-size:24px;height:48px;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .3s;width:48px;z-index:2}.carousel-nav:hover{opacity:1}.carousel-nav.prev{left:1rem}.carousel-nav.next{right:1rem}.carousel-indicators{bottom:1rem;display:flex;gap:.5rem;left:50%;position:absolute;transform:translateX(-50%);z-index:2}.indicator{background:#fff;border-radius:50%;cursor:pointer;height:10px;opacity:.5;transition:opacity .3s;width:10px}.indicator.active{opacity:1}@media (max-width:768px){.carousel-content{aspect-ratio:4/3;max-height:450px}}.sites-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));padding:2rem 0}.site-card{aspect-ratio:4/3;background:var(--color-bg-solid);border-radius:8px;height:auto;transition:transform .3s ease,box-shadow .3s ease}.site-card:hover{box-shadow:0 12px 24px #00000026}.site-card img{aspect-ratio:4/3;height:300px;object-fit:cover;object-position:top;object-position:center top;transition:transform .3s ease;width:100%}.site-card img:hover{transform:scale(1.05);transition:transform .3s ease}.site-info{padding:1.5rem}.site-info h3{color:var(--color-text);font-size:1.2rem;margin-bottom:.5rem}@media (max-width:768px){.site-card{margin:0 auto;max-width:400px}}.site-modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000bf;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.site-modal{animation:modalFadeIn .3s ease-out;background:var(--color-bg-solid);border:1px solid var(--color-accent);border-radius:12px;max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:100%}.close-button{background:var(--color-bg-2);border:none;border-radius:50%;cursor:pointer;font-size:1.5rem;height:32px;position:absolute;right:1rem;top:1rem;width:32px;z-index:2}.modal-image-container{aspect-ratio:2/1;overflow:hidden;position:relative;width:100%}.modal-image{height:100%;object-fit:cover;object-position:center top;width:100%}.modal-content{padding:2rem}.modal-content h2{color:var(--hero-title-color-2);font-size:2rem;margin-bottom:1rem}.modal-content p{color:var(--color-text);line-height:1.6;margin-bottom:1.5rem}.modal-gallery{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);padding:1rem}.modal-links{display:flex;gap:1rem;margin-top:2rem}.repo-link,.site-link{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border-radius:20px;color:#fff;font-weight:700;padding:10px 20px;text-decoration:none;transition:all .3s ease}.repo-link:hover,.site-link:hover{animation:gradientBG 18s ease infinite;box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.site-modal{margin:10px;width:95%}.modal-content{padding:1.5rem}.modal-content h2{font-size:1.5rem}.modal-image-container{aspect-ratio:4/3}.modal-gallery{grid-template-columns:1fr}}.sites-section{background:linear-gradient(to bottom,var(--color-bg),var(--color-bg-3));min-height:100vh;overflow:hidden;padding:60px 20px;position:relative}.sites-hero{animation:fadeIn .5s ease-out;margin-bottom:3rem;text-align:center}.sites-hero h1{background-color:initial;color:var(--hero-title-color-2);font-size:3rem;margin:20px 0;position:sticky;text-align:center;text-transform:uppercase;top:0;z-index:100}.sites-subtitle{color:var(--color-text);font-size:1.8rem;line-height:1.5;margin:0 auto 50px;max-width:1000px;padding:0 20px;text-align:center}.site-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin:0 auto;max-width:1400px;padding:20px;width:100%}.site-card{background:linear-gradient(to top,var(--color-bg-solid),var(--color-bg));border-radius:15px;box-shadow:0 4px 15px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;min-height:250px;overflow:hidden;position:relative;transition:all .3s ease}.site-card:after{background:linear-gradient(to bottom right,#fff3,#fff3 40%,#fffc 50%,#fff3 60%,#fff3);content:"";height:200%;left:-50%;opacity:0;pointer-events:none;position:absolute;top:-50%;transform:rotate(30deg);transition:all .5s;width:200%}.site-card:hover:after{left:-100%;opacity:1;top:-100%}.site-card:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-5px)}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tech-tag{background:var(--color-bg-2);border-radius:15px;color:var(--color-accent);font-size:.85rem;padding:.25rem .75rem;transition:all .3s ease}.tech-tag:hover{background:var(--color-accent);color:var(--color-bg-solid);transform:translateY(-2px)}.featured-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:3rem;max-width:1200px}.view-more-container{margin:2rem 0;text-align:center}.view-more-button{animation:gradientBG 10s ease infinite;background:linear-gradient(135deg,#a80c9b,#7bcff8,#0c9);background-size:300% 300%;border:none;border-radius:20px;color:#fff;cursor:pointer;display:inline-block;font-size:1rem;font-weight:700;padding:10px 20px;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.view-more-button:hover{box-shadow:0 6px 8px #0000004d;text-shadow:0 2px 4px #0000004d,0 1px 2px #0003;transform:translateY(-2px)}.view-more-button:active{animation:none;box-shadow:inset 0 2px 4px #0000004d,inset 0 -1px 2px #0003;transform:scale(.95)}@keyframes gradientBG{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@media (max-width:768px){.sites-section{padding:40px 15px}.sites-hero h1{font-size:2rem}.sites-subtitle{font-size:1rem}.site-grid{grid-template-columns:1fr;padding:10px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-menu-container{position:fixed;right:35px;top:20px;z-index:1100}.settings-icon{color:var(--color-text);height:24px;width:24px}.settings-icon:hover{color:var(--color-accent);height:24px;width:24px}.settings-toggle{background:none;border:none;color:var(--color-text);cursor:pointer;font-size:24px;transition:transform .3s ease}.settings-toggle:hover{fill:var(--color-accent);transform:scale(1.1)}.settings-toggle:active{transform:scale(.95)}.settings-menu{background-color:var(--color-bg);border-radius:8px;box-shadow:0 4px 8px var(--color-shadow);display:flex;flex-direction:column;gap:5px;opacity:0;padding:5px;pointer-events:none;position:absolute;right:-12px;top:50px;transform:translateY(-20px);transition:opacity .3s ease,transform .3s ease}.settings-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}.settings-option{align-items:center;border-radius:8px;cursor:pointer;display:flex;height:40px;justify-content:center;transition:background-color .3s,transform .3s;width:40px}.settings-option:hover{background-color:var(--color-bg-2);color:var(--color-accent);transform:scale(1.1)}.settings-option.active{background-color:var(--color-accent);color:var(--color-bg);transform:scale(.95)}.language-toggle{align-items:center;display:flex;flex-direction:column}.flag-image{height:24px;width:24px}.tooltip{background-color:var(--color-bg);border-radius:6px;color:var(--color-text);margin-top:5px;opacity:0;padding:5px;position:absolute;text-align:center;transition:opacity .3s;visibility:hidden;z-index:1}.settings-option:hover .tooltip{opacity:1;visibility:visible}@media (max-width:925px){.settings-menu-container{right:20px;top:18px}}
/*# sourceMappingURL=main.18b0df0d.css.map*/