/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:"Inter",sans-serif;--font-mono:"Fira Code",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.block{display:block}.flex{display:flex}.hidden{display:none}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.scroll-pt-16{scroll-padding-top:calc(var(--spacing)*16)}.scroll-smooth{scroll-behavior:smooth}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.delay-400{transition-delay:.4s}}:root,[data-theme=dark]{--bg-primary:#111520;--bg-secondary:#161b2a;--bg-card:#161b2a;--bg-card-inner:#111520;--bg-nav:#111520e6;--bg-input:#161b2a;--border-color:#232a3e;--text-primary:#e2e8f4;--text-secondary:#8b98b8;--text-muted:#5a6787;--tag-bg:#1e2538;--tag-text:#b8c3dc;--accent:#4cc9e0;--accent-rgb:76,201,224;--scrollbar-track:#111520;--scrollbar-thumb:#232a3e;--grid-color:#4cc9e0;--btn-primary-bg:#4cc9e0;--btn-primary-text:#0e1220;--btn-primary-hover:#6dd8ec;--faq-answer-bg:#111520;--input-text:#e2e8f4;--input-placeholder:#3d4f6e;--shadow-card:0 4px 24px #0006;--timeline-dot-muted:#3d4f6e}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-card:#fff;--bg-card-inner:#f1f5f9;--bg-nav:#f8fafcf2;--bg-input:#f1f5f9;--border-color:#e2e8f0;--text-primary:#1e2640;--text-secondary:#4a5572;--text-muted:#8090b0;--tag-bg:#e4e9f4;--tag-text:#3a4565;--accent:#2563a8;--accent-rgb:37,99,168;--scrollbar-track:#f1f5f9;--scrollbar-thumb:#c8cfdf;--grid-color:#2563a8;--btn-primary-bg:#2563a8;--btn-primary-text:#fff;--btn-primary-hover:#1a4f8a;--faq-answer-bg:#f5f7fc;--input-text:#1e2640;--input-placeholder:#8090b0;--shadow-card:0 4px 24px #1e264014;--timeline-dot-muted:#8090b0}*{box-sizing:border-box}body{background:var(--bg-primary);color:var(--text-primary);margin:0;font-family:Inter,sans-serif;transition:background .35s,color .35s}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.animate-fade-in{animation:.6s ease-out forwards fadeIn}.animate-fade-in-up{animation:.6s ease-out forwards fadeInUp}.animate-ping{animation:1.5s cubic-bezier(0,0,.2,1) infinite ping}.delay-100{opacity:0;animation-delay:.1s}.delay-200{opacity:0;animation-delay:.2s}.delay-300{opacity:0;animation-delay:.3s}.delay-400{opacity:0;animation-delay:.4s}.delay-500{opacity:0;animation-delay:.5s}.section-dark{background:var(--bg-primary)}.section-alt{background:var(--bg-secondary)}.section-title{color:var(--text-primary);margin-bottom:1rem;font-size:clamp(2rem,5vw,3rem);font-weight:700}.section-bar{background:var(--accent);border-radius:2px;width:5.5rem;height:4px;margin:0 auto;transition:background .35s}.grid-bg{opacity:.07;pointer-events:none;background-image:linear-gradient(var(--grid-color)1px,transparent 1px),linear-gradient(90deg,var(--grid-color)1px,transparent 1px);background-size:50px 50px;transition:opacity .35s;position:absolute;inset:0}[data-theme=light] .grid-bg{opacity:.03}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;transition:border-color .3s,box-shadow .3s,background .35s}.card:hover{border-color:var(--accent);box-shadow:var(--shadow-card)}.card-inner{background:var(--bg-card-inner);border:1px solid var(--border-color);border-radius:4px;transition:border-color .3s,background .35s}.card-inner:hover{border-color:var(--accent)}.tag{background:var(--tag-bg);color:var(--tag-text);border-radius:4px;padding:3px 10px;font-family:Fira Code,monospace;font-size:.73rem;transition:background .35s,color .35s;display:inline-block}.timeline-line{border-left:2px solid var(--border-color);transition:border-color .3s}.timeline-line:hover{border-color:var(--accent)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);cursor:pointer;text-align:center;letter-spacing:.04em;border:none;border-radius:4px;padding:12px 28px;font-family:Fira Code,monospace;font-size:.82rem;font-weight:700;text-decoration:none;transition:background .25s,color .25s,box-shadow .25s;display:inline-block}.btn-primary:hover{background:var(--btn-primary-hover);box-shadow:0 0 20px rgba(var(--accent-rgb),.45);color:var(--bg-primary)}[data-theme=light] .btn-primary:hover{color:#fff}.btn-outline{border:1.5px solid rgba(var(--accent-rgb),.55);color:var(--accent);cursor:pointer;text-align:center;background:0 0;border-radius:4px;padding:11px 28px;font-family:Fira Code,monospace;font-size:.82rem;font-weight:700;text-decoration:none;transition:background .25s,border-color .25s;display:inline-block}.btn-outline:hover{background:rgba(var(--accent-rgb),.08);border-color:var(--accent)}.project-link{color:var(--accent);align-items:center;gap:6px;font-weight:500;text-decoration:none;transition:color .2s;display:inline-flex}.project-link:hover{color:var(--text-primary)}.faq-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;transition:border-color .3s,box-shadow .3s,background .35s;overflow:hidden}.faq-item:hover{border-color:var(--accent)}.faq-item.open{border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.1)}.faq-trigger{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;display:flex}.faq-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.faq-question{color:var(--text-primary);flex:1;font-size:1rem;font-weight:700;transition:color .2s}.faq-item.open .faq-question{color:var(--accent)}.faq-chevron{width:18px;height:18px;color:var(--accent);flex-shrink:0;transition:transform .3s}.faq-item.open .faq-chevron{transform:rotate(180deg)}.faq-answer{background:var(--faq-answer-bg);max-height:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),background .35s;overflow:hidden}.faq-answer-inner{color:var(--text-secondary);padding:0 22px 20px;font-size:.93rem;line-height:1.78}.faq-item.open .faq-answer{max-height:500px}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);font-family:Fira Code,monospace;font-size:.7rem;font-weight:500}.form-input,.form-textarea{background:var(--bg-input);border:1px solid var(--border-color);color:var(--input-text);border-radius:4px;outline:none;width:100%;padding:11px 14px;font-family:Inter,sans-serif;font-size:.9rem;transition:border-color .2s,box-shadow .2s,background .35s,color .35s}.form-input::placeholder,.form-textarea::placeholder{color:var(--input-placeholder)}.form-input:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.14)}.form-textarea{resize:vertical;min-height:130px}.form-status{border-radius:4px;margin-top:4px;padding:12px 16px;font-size:.85rem;font-weight:500;display:none}.form-status.loading{background:rgba(var(--accent-rgb),.06);color:var(--text-secondary);border:1px solid rgba(var(--accent-rgb),.2);font-family:Fira Code,monospace;display:block}.form-status.success{color:#10b981;background:#10b9811a;border:1px solid #10b98147;display:block}.form-status.error{color:#ef4444;background:#ef444414;border:1px solid #ef444438;display:block}.social-btn{background:var(--bg-card-inner);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:4px;justify-content:center;align-items:center;gap:10px;padding:12px 24px;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s,background .2s;display:flex}.social-btn:hover{border-color:var(--accent);color:var(--text-primary);background:rgba(var(--accent-rgb),.05)}.nav-logo{color:var(--accent);letter-spacing:-.05em;font-family:Fira Code,monospace;font-size:1.2rem;font-weight:700;text-decoration:none;transition:color .35s}.nav-link{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:500;text-decoration:none;transition:color .2s}.nav-link:hover{color:var(--accent)}#theme-toggle{border:1.5px solid var(--border-color);background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:border-color .25s,color .25s,background .25s,box-shadow .25s;display:inline-flex}#theme-toggle:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 12px rgba(var(--accent-rgb),.25)}.toggle-icon{justify-content:center;align-items:center;line-height:1;display:flex}#mobile-menu{background:var(--bg-primary);transition:opacity .35s cubic-bezier(.4,0,.2,1),background .35s}.mobile-nav-link{width:100%;max-width:300px;color:var(--text-primary);border-radius:4px;align-items:center;gap:16px;padding:12px 32px;text-decoration:none;transition:background .2s;display:flex}.mobile-nav-link:hover{background:var(--tag-bg)}.mob-num{color:rgba(var(--accent-rgb),.4);font-family:Fira Code,monospace;font-size:.65rem;transition:color .2s}.mobile-nav-link:hover .mob-num{color:var(--accent)}.mob-label{text-transform:uppercase;letter-spacing:.08em;font-size:1.4rem;font-weight:700;transition:color .2s}.mobile-nav-link:hover .mob-label{color:var(--accent)}.mob-arrow{opacity:0;color:var(--accent);margin-left:auto;transition:opacity .2s}.mobile-nav-link:hover .mob-arrow{opacity:1}footer{background:var(--bg-secondary);border-top:1px solid var(--border-color);transition:background .35s,border-color .35s}.hero-status{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:10px;padding:5px 16px;transition:background .35s,border-color .35s;display:inline-flex}.ping-wrapper{flex-shrink:0;width:8px;height:8px;display:flex;position:relative}.ping-ring{background:var(--accent);opacity:.75;border-radius:50%;animation:1.5s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}.ping-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:relative}@media(max-width:640px){.cta-group{flex-direction:column!important}.cta-group a{text-align:center;width:100%}}.project-badge{white-space:nowrap;border-radius:4px;flex-shrink:0;padding:3px 10px;font-family:Fira Code,monospace;font-size:.68rem;font-weight:500}.badge-accent{background:rgba(var(--accent-rgb),.1);color:var(--accent);border:1px solid rgba(var(--accent-rgb),.2)}.badge-green{color:#10b981;background:#10b9811a;border:1px solid #10b98133}.badge-purple{color:#a78bfa;background:#a78bfa1a;border:1px solid #a78bfa33}.footer-link{color:var(--text-muted);font-size:.82rem;text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--accent)}.project-bento-card{transition:opacity .3s,transform .3s cubic-bezier(.4,0,.2,1),border-color .3s,box-shadow .3s!important}.project-bento-card:hover{border-color:var(--accent)!important;box-shadow:0 12px 40px rgba(var(--accent-rgb),.12)!important;transform:translateY(-6px)scale(1.01)!important}.project-bento-card:hover .tech-mockup{transform:scale(1.03);border-color:rgba(var(--accent-rgb),.25)!important;box-shadow:0 15px 35px #0009!important}.tech-mockup{transition:transform .4s cubic-bezier(.25,.8,.25,1),border-color .3s,box-shadow .3s}@keyframes pulseDots{0%,to{opacity:.3}50%{opacity:1}}.animated-dots{animation:1.5s steps(4,end) infinite pulseDots}.filter-pill.active{box-shadow:0 2px 8px #00000026;background:var(--bg-card)!important;color:var(--text-primary)!important}.filter-pill:hover:not(.active){color:var(--accent)!important}[data-theme=light] #competences .card,[data-theme=light] #skills .card{background:#161b2a;border-color:#232a3e;box-shadow:0 4px 20px #0000001f}[data-theme=light] #competences .card:hover,[data-theme=light] #skills .card:hover{border-color:var(--accent);box-shadow:0 4px 24px #0003}[data-theme=light] #competences .card .tag,[data-theme=light] #skills .card .tag{color:#b8c3dc;background:#1e2538}[data-theme=light] #competences .card p,[data-theme=light] #skills .card p{color:#8b98b8!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@media(min-width:768px){.desktop-nav[data-astro-cid-37fxchfa]{display:flex!important;gap:2rem;align-items:center}#mobile-menu-button[data-astro-cid-37fxchfa]{display:none!important}}
