*,*::before,*::after{box-sizing:border-box}*:not(dialog){margin:0}@media(prefers-reduced-motion: no-preference){html{interpolate-size:allow-keywords}}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}@font-face{font-family:"RopaSoftPro";src:url("/fonts/RopaSoft/ttf/RopaSoftPro-Regular.ttf") format("truetype");font-weight:normal;font-style:normal}body{font-family:"RopaSoftPro",sans-serif;font-weight:500;font-style:normal;font-size:17px}.logo{font-family:"Passero One",sans-serif;font-weight:400;font-style:normal}:root{--bg:#FAFAF8;--text:#1a1a1a;--muted:#999;--subtle:#e8e7e4;--accent:#C4654A;--bot-bg:#EEECEA;--bot-text:#1a1a1a;--user-bg:#1a1a1a;--user-text:#FAFAF8;--input-bg:#fff;--progress-fill: #5E9ED6}[data-theme=dark]{--bg:#131313;--text:#e4e2de;--muted:#6b6b6b;--subtle:#2a2a2a;--accent:#E07A5F;--bot-bg:#1e1e1e;--bot-text:#ddd;--user-bg:#E07A5F;--user-text:#fff;--input-bg:#1a1a1a;--progress-fill: #6BA7E5}.app{background-color:var(--bg);color:var(--text)}.app .layout{display:grid;position:fixed;grid-template-columns:1fr;grid-template-rows:50px 1fr 110px;grid-column-gap:0px;grid-row-gap:0px;top:0;left:0;right:0;bottom:0;pointer-events:none}.app .container{width:700px;margin:0 auto}.app .spacer{flex-grow:1}.navbar{pointer-events:auto;border-bottom:1px solid var(--subtle);background-color:var(--bg)}.navbar .container{display:flex;flex-direction:row;height:100%}.navbar .container .image-profile-container{display:flex;align-items:center;justify-content:center;margin-right:15px}.navbar .container .image-profile-container img{width:40px;height:40px;border-radius:50%;overflow:hidden}.navbar .container .name{display:block;height:100%;align-content:center}.navbar .container ul{padding-inline-start:0;height:100%;margin-right:15px}.navbar .container ul li{float:left;list-style:none;display:grid;align-content:center;height:100%;width:50px;text-align:center;color:var(--text)}.navbar .container ul li.theme-selector{cursor:pointer}.navbar .container ul li a{color:var(--text)}.navbar .container ul li.separator{min-width:auto;width:1px;height:100%;background-color:var(--subtle);margin:0 10px}.prompt{padding-top:25px;pointer-events:auto;background-color:var(--bg);border-top:1px solid var(--subtle)}.prompt .container{width:700px}.prompt .container .prompt-field{border-radius:3px;padding:7px 15px;width:100%;position:relative;min-height:1.5em;border:1px solid var(--subtle)}.prompt .container .prompt-field:focus{outline:none;border:1px solid var(--muted)}.prompt .container .prompt-field:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none;position:absolute}.prompt .container .displaimer{font-size:13px;text-align:center;margin-top:10px;color:var(--muted)}.chat.container{margin:100px auto 150px}.chat.container .message-container{display:flex;margin-bottom:25px}.chat.container .message-container.user-message{justify-content:flex-end}.chat.container .message{border-radius:7px;padding:7px 20px;min-width:200px;line-height:1.8}.chat.container .message.user-message{background-color:var(--user-bg);color:var(--user-text);justify-items:end}.chat.container .message.assistant-message{background-color:var(--bot-bg);color:var(--bot-text)}.chat.container .message strong{color:var(--accent)}.chat.container .message em{font-style:normal;color:var(--accent);font-weight:bold}.chat.container .message p{margin:7px 0}.chat .message-header{display:grid;grid-template-columns:repeat(2, 1fr);grid-template-rows:1fr;grid-column-gap:20px;grid-row-gap:0px;margin-bottom:50px;border-radius:7px;padding:20px}.chat .message-header .photo-container{display:flex;align-items:center;justify-content:center}.chat .message-header .profile-photo-container{width:200px;height:200px;border-radius:50%;overflow:hidden;margin-top:-25px}.chat .message-header .profile-photo-container img{margin-top:10px}.chat .predefined-questions{padding-bottom:25px;margin-bottom:25px;column-gap:50px}.chat .predefined-questions span{padding:7px 15px;border-radius:10px;margin-bottom:15px;margin-right:20px;cursor:pointer;display:inline-block;border:1px dashed var(--subtle);background-color:var(--bg)}#messages{padding:20px}.activity-indicator{display:flex;align-items:center;justify-content:flex-start;margin:15px 0;opacity:.7;font-style:italic}.activity-indicator::before{content:"";width:8px;height:8px;border-radius:50%;background-color:currentColor;margin-right:8px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%{opacity:.4}50%{opacity:1}100%{opacity:.4}}.message h1,.message h2,.message h3,.message h4,.message h5,.message h6{margin:.5em 0;font-weight:600}.message h1{font-size:1.5em}.message h2{font-size:1.3em}.message h3{font-size:1.1em}.message h4{font-size:1em}.message h5{font-size:.9em}.message h6{font-size:.85em}.message p{margin:.5em 0;line-height:1.6}.message a{color:var(--color-blue-500);text-decoration:underline}.message a:hover{color:var(--color-blue-600)}.message ul,.message ol{margin:.5em 0;padding-left:1.5em}.message li{margin:.25em 0;line-height:1.6}.message code{background-color:var(--color-gray-100);padding:.1em .3em;border-radius:3px;font-family:"Courier New",monospace;font-size:.9em}.message pre.code-block{background-color:var(--color-gray-900);color:var(--color-gray-100);padding:1em;border-radius:5px;overflow-x:auto;margin:.5em 0}.message pre.code-block code{background-color:rgba(0,0,0,0);padding:0;color:inherit;font-size:.9em}.message blockquote{border-left:3px solid var(--color-gray-300);padding-left:1em;margin:.5em 0;color:var(--color-gray-600);font-style:italic}.message hr{border:none;border-top:1px solid var(--color-gray-300);margin:1em 0}.message table{border-collapse:collapse;width:100%;margin:.5em 0}.message th,.message td{border:1px solid var(--color-gray-300);padding:.5em;text-align:left}.message th{background-color:var(--color-gray-100);font-weight:600}.message img{max-width:100%;height:auto;border-radius:5px;margin:.5em 0}.message strong{font-weight:600}.message em{font-style:italic}.message s,.message del{text-decoration:line-through;opacity:.7}.dark .message code{background-color:var(--color-gray-700);color:var(--color-gray-100)}.dark .message pre.code-block{background-color:var(--color-gray-950);color:var(--color-gray-100)}.dark .message blockquote{border-left-color:var(--color-gray-600);color:var(--color-gray-400)}.dark .message hr{border-top-color:var(--color-gray-600)}.dark .message th,.dark .message td{border-color:var(--color-gray-600)}.dark .message th{background-color:var(--color-gray-700)}.dark .message a{color:var(--color-blue-400)}.dark .message a:hover{color:var(--color-blue-300)}.project-cards{background:var(--bot-bg);border-radius:12px;padding:20px;max-width:800px}.project-cards .cards-header{margin-bottom:20px}.project-cards .cards-header h3{margin:0 0 8px 0;font-size:1.1rem;color:var(--bot-text)}.project-cards .cards-header p{margin:0;color:var(--subtle);font-size:.95rem}.project-cards .cards-container{display:flex;flex-direction:column;gap:16px}.project-cards .project-card{padding:16px;transition:all .2s ease;border-bottom:1px dashed var(--muted)}.project-cards .project-card:last-child{border-bottom:none}.project-cards .project-card:hover{transform:translateY(-1px)}.project-cards .project-card.featured{border-color:#e8764b}.project-cards .card-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.project-cards .project-icon{width:40px;height:40px;background:var(--accent);color:var(--user-text);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;flex-shrink:0}.project-cards .project-name{font-weight:600;font-size:1.05rem;color:var(--bot-text)}.project-cards .project-description{color:var(--bot-text);font-size:.95rem;line-height:1.5;margin-bottom:12px;opacity:.85}.project-cards .project-tech{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.project-cards .tech-tag{background:var(--subtle);color:var(--text);padding:4px 10px;border-radius:12px;font-size:.85rem;font-weight:500}.project-cards .project-link{color:#5e9ed6;text-decoration:none;font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;transition:color .2s ease}.project-cards .project-link:hover{color:#4a8bc2}.tech-stack-bubble{background:var(--bot-bg);border-radius:12px;padding:20px;max-width:600px}.tech-stack-bubble .bubble-header{margin-bottom:20px}.tech-stack-bubble .bubble-header h3{margin:0;font-size:1.1rem;color:var(--bot-text)}.tech-stack-bubble .tech-stack-items{display:flex;flex-direction:column;gap:16px}.tech-stack-bubble .tech-item{display:flex;flex-direction:column;gap:8px}.tech-stack-bubble .tech-info{display:flex;justify-content:space-between;align-items:center;font-size:.95rem}.tech-stack-bubble .tech-name{font-weight:500;color:var(--bot-text)}.tech-stack-bubble .tech-percentage{color:var(--text);font-size:.9rem}.tech-stack-bubble .progress-bar{width:100%;height:10px;background:rgba(0,0,0,.1);border-radius:14px;overflow:hidden;position:relative}.tech-stack-bubble .progress-fill{height:100%;border-radius:14px;transition:width 1s ease-out;animation:slideIn 1s ease-out;background-color:var(--progress-fill)}.tech-stack-bubble .bubble-footer{margin-top:20px;padding-top:16px}.tech-stack-bubble .bubble-footer p{margin:0;font-size:.95rem;color:var(--bot-text);line-height:1.5}@keyframes slideIn{from{width:0}}.experience-timeline{background:var(--bot-bg);border-radius:12px;padding:20px;max-width:700px}.experience-timeline .timeline-header{margin-bottom:24px}.experience-timeline .timeline-header h3{margin:0;font-size:1.1rem;color:var(--bot-text)}.experience-timeline .timeline-items{display:flex;flex-direction:column;gap:24px;position:relative}.experience-timeline .timeline-items::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--muted)}.experience-timeline .timeline-item{display:flex;gap:20px;position:relative}.experience-timeline .timeline-item.current .timeline-marker .marker-dot{background:var(--accent)}.experience-timeline .timeline-marker{position:relative;flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;margin-top:2px}.experience-timeline .timeline-marker .marker-dot{width:16px;height:16px;border-radius:50%;background:#999;border:3px solid var(--bot-bg);position:relative;z-index:1}.experience-timeline .timeline-content{flex:1;padding-bottom:8px}.experience-timeline .timeline-content .period{color:#e8764b;font-size:.85rem;font-weight:500;margin-bottom:4px}.experience-timeline .timeline-content .title{font-weight:600;font-size:1.05rem;color:var(--bot-text);margin-bottom:4px}.experience-timeline .timeline-content .company{color:var(--muted);font-size:.95rem;margin-bottom:8px}.experience-timeline .timeline-content .description{color:var(--bot-text);font-size:.95rem;line-height:1.5;opacity:.85}.experience-timeline .timeline-content .highlights{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.experience-timeline .timeline-content .highlights span{background:rgba(0,0,0,.05);padding:4px 10px;border-radius:12px;font-size:.85rem}.contact-card{background:var(--bot-bg);border-radius:12px;padding:20px;max-width:500px}.contact-card .card-header{margin-bottom:20px}.contact-card .card-header h3{margin:0;font-size:1.1rem;color:var(--bot-text)}.contact-card .contact-container{display:flex;flex-direction:column;gap:20px}.contact-card .contact-item{display:flex;align-items:flex-start;gap:16px}.contact-card .contact-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.contact-card .contact-label{font-size:.75rem;color:var(--text);font-weight:600;letter-spacing:.5px;text-transform:uppercase}.contact-card .contact-value{color:var(--bot-text);text-decoration:none;font-size:.95rem;word-break:break-word;transition:color .2s ease}.contact-card .contact-value:hover{color:#e8764b}.contact-card a.contact-value{color:var(--accent)}.contact-card a.contact-value:hover{text-decoration:underline}.methodology-grid{background:var(--bot-bg);border-radius:12px;padding:20px;max-width:700px}.methodology-grid .grid-header{margin-bottom:24px}.methodology-grid .grid-header h3{margin:0 0 8px 0;font-size:1.1rem;color:var(--bot-text)}.methodology-grid .grid-header p{margin:0;color:var(--subtle);font-size:.95rem}.methodology-grid .methodology-container{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:12px}.methodology-grid .methodology-item{background:var(--subtle);border-radius:10px;padding:14px 16px;display:flex;align-items:center;gap:14px;transition:all .2s ease;border:1px solid rgba(0,0,0,0)}.methodology-grid .methodology-item:hover{transform:translateY(-1px)}.methodology-grid .item-content{flex:1;min-width:0}.methodology-grid .item-title{font-weight:600;font-size:.95rem;color:var(--accent);margin-bottom:2px}.methodology-grid .item-subtitle{font-size:.85rem;color:var(--text)}@media(max-width: 600px){.methodology-grid .methodology-container{grid-template-columns:1fr}}.clear-chat-container{display:contents}.clear-chat-button{cursor:pointer;display:inline-block;transition:opacity .2s}.clear-chat-button:hover{opacity:.7}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:9999}.modal-content{background-color:var(--bg);border:1px solid var(--subtle);border-radius:8px;padding:0;width:90%;max-width:400px;box-shadow:0 4px 6px rgba(0,0,0,.1)}.modal-header{padding:15px 20px;border-bottom:1px solid var(--subtle)}.modal-header h3{margin:0;color:var(--text);font-size:1.2rem}.modal-body{padding:20px}.modal-body p{margin:0 0 10px 0;color:var(--text);line-height:1.5}.modal-body .warning-text{color:var(--accent);font-weight:500;font-size:.9rem}.modal-actions{padding:15px 20px;border-top:1px solid var(--subtle);display:flex;justify-content:flex-end;gap:10px}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:opacity .2s}.btn:hover{opacity:.8}.btn-cancel{background-color:var(--subtle);color:var(--text)}.btn-confirm{background-color:var(--accent);color:#fff}.modal-enter-active,.modal-leave-active{transition:opacity .2s ease}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-active .modal-content,.modal-leave-active .modal-content{transition:transform .2s ease}.modal-enter-from .modal-content{transform:scale(0.9)}.modal-leave-to .modal-content{transform:scale(0.9)}