:root{--bg-primary:#0a0f1e;--bg-card:#0f1629;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#475569;--accent:#60a5fa;--accent-dark:#2563eb;--accent-light:#93c5fd;--badge-bg:#3b82f61a;--badge-border:#3b82f633;--chip-bg:#ffffff08;--chip-border:#64748b4d;--social-dot:#94a3b84d;--status-completed-color:#4ade80;--status-completed-bg:#22c55e1a;--status-completed-border:#22c55e33;--status-dev-color:#fbbf24;--status-dev-bg:#f3b3081a;--status-dev-border:#eab30833;--circuit-color:#3b82f640;--circuit-dot-color:#3b82f666;--robot-island-bg:transparent;--robot-primary:#60a5fa;--robot-secondary:#1e40af;--robot-ring-color:#3b82f626;--robot-glow:#2563eb26;--navbar-bg:#0a0f1ebf;--navbar-border:#3b82f614;--resume-border:#3b82f640;--resume-hover-bg:#3b82f614;--toggle-bg:#ffffff14;--toggle-label-opacity:.45;--toggle-thumb:#f8fafc;--btn-primary-hover:#1d4ed8;--btn-secondary-border:#64748b4d;--btn-secondary-border-hover:#64748b99;--grid-color:#3b82f606;--card-border:#3b82f61a;--sidebar-item-active-bg:#2563eb1a;--sidebar-item-active-border:#3b82f633;--sidebar-item-hover-bg:#ffffff08;--sidebar-dot-inactive:#334155;--sidebar-name-inactive:#64748b;--proj-media-bg:#080e1c;--proj-api-bg:#0f172ad9;--proj-api-text:#cbdd5e1;--proj-api-heading:#f8fafc;--proj-api-accent:#60a5fa;--proj-dot:#ffffff2e;--proj-media-border:#3b82f614;--screenshot-border:#ffffff14;--tag-bg:#ffffff0a;--tag-border:#64748b33;--proj-btn-border:#64748b40;--proj-btn-border-hover:#64748b80;--timeline-line:#3b82f626;--bullet-dash:#475569;--skill-card-bg:#0f1629;--skill-level-intermediate:#475569;--icon-github:#f8fafc;--icon-api:#38bdf8;--icon-jwt:#facc15;--icon-retrofit:#a78bfa;--icon-location:#ef4444;--icon-deepface:#ec4899;--icon-serial:#14b8a6;--container-width:1200px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--section-padding-top:8rem;--section-padding-bottom:6rem;--navbar-height:80px}[data-theme=light]{--bg-primary:#eef2f9;--bg-card:#f5f8ff;--text-primary:#0f172a;--text-secondary:#3d5068;--text-muted:#64748b;--accent:#1d4ed8;--accent-dark:#1e40af;--accent-light:#1d4ed8;--badge-bg:#1d4ed814;--badge-border:#1d4ed833;--chip-bg:#1d4ed80d;--chip-border:#1d4ed82e;--social-dot:#64748b66;--status-completed-color:#16a34a;--status-completed-bg:#16a34a14;--status-completed-border:#16a34a33;--status-dev-color:#d97706;--status-dev-bg:#d977061f;--status-dev-border:#d9770640;--circuit-color:#1d4ed84d;--circuit-dot-color:#1d4ed880;--robot-island-bg:radial-gradient(ellipse 60% 55% at 50% 50%, #1d4ed80f 0%, transparent 70%);--robot-primary:#1d4ed8;--robot-secondary:#3b82f6;--robot-ring-color:#1d4ed833;--robot-glow:#1d4ed81f;--navbar-bg:#eef2f9d1;--navbar-border:#1d4ed81f;--resume-border:#1d4ed84d;--resume-hover-bg:#1d4ed812;--toggle-bg:#1d4ed826;--toggle-label-opacity:.62;--toggle-thumb:#1d4ed8;--btn-primary-hover:#1d4ed8;--btn-secondary-border:#1d4ed833;--btn-secondary-border-hover:#1d4ed873;--grid-color:#1d4ed805;--card-border:#1d4ed81f;--sidebar-item-active-bg:#1d4ed814;--sidebar-item-active-border:#1d4ed833;--sidebar-item-hover-bg:#1d4ed808;--sidebar-dot-inactive:#94a3b8;--sidebar-name-inactive:#64748b;--proj-media-bg:#dde6f5;--proj-api-bg:#f8fbff;--proj-api-text:#334155;--proj-api-heading:#0f172a;--proj-api-accent:#2563eb;--proj-dot:#64748b59;--proj-media-border:#1d4ed814;--screenshot-border:#0f172a2e;--tag-bg:#1d4ed80a;--tag-border:#1d4ed826;--proj-btn-border:#1d4ed833;--proj-btn-border-hover:#1d4ed873;--timeline-line:#1d4ed826;--bullet-dash:#64748b;--skill-card-bg:#e8eef8;--skill-level-intermediate:#4b6585;--icon-github:#0f172a;--icon-api:#2563eb;--icon-jwt:#ca8a04;--icon-retrofit:#7c3aed;--icon-location:#dc2626;--icon-deepface:#db2777;--icon-serial:#0f766e}.section-container{width:100%;max-width:var(--container-width);margin:0 auto;padding-left:clamp(1rem,3vw,2rem);padding-right:clamp(1rem,3vw,2rem)}*{box-sizing:border-box;margin:0;padding:0}*,:before,:after{transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}*{-webkit-tap-highlight-color:transparent}#root{overflow-x:hidden}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:Inter,sans-serif;transition:background-color .2s,color .2s}html,body{overflow-x:hidden}body:before{content:"";background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);pointer-events:none;z-index:-1;background-size:48px 48px;position:fixed;inset:0}html.preload *,html.preload :before,html.preload :after{transition:none!important}.navbar{width:100%;height:var(--navbar-height);z-index:1000;background-color:var(--navbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--navbar-border);transition:background-color .2s,border-color .2s;position:fixed;top:0;left:0}.navbar-container{height:var(--navbar-height);justify-content:space-between;align-items:center;display:flex}.navbar.navbar-open{height:auto}.navbar-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;transition:background .2s,transform .2s;display:none}.navbar-hamburger span{background:var(--text-primary);border-radius:999px;width:22px;height:2px;transition:transform .25s,opacity .25s,background .2s}.navbar-hamburger.open span:first-child{transform:translateY(7px)rotate(45deg)}.navbar-hamburger.open span:nth-child(2){opacity:0}.navbar-hamburger.open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.navbar-mobile-menu{border-top:1px solid var(--navbar-border);background-color:var(--navbar-bg);opacity:0;max-height:0;padding:0 2rem 2rem;transition:max-height .35s,opacity .25s,transform .25s,background-color .2s,border-color .2s;overflow:hidden;transform:translateY(-10px)}.navbar-mobile-menu.open{opacity:1;max-height:500px;transform:translateY(0)}.navbar-mobile-links{list-style:none}.navbar-mobile-actions{align-items:center;gap:1rem;display:none}.navbar-mobile-links a{color:var(--text-secondary);border-bottom:1px solid var(--navbar-border);padding:1rem 0;text-decoration:none;transition:color .2s,padding-left .2s;display:block}.navbar-mobile-resume{border:1px solid var(--resume-border);border-radius:var(--radius-md);color:var(--accent-light);width:fit-content;margin-top:1.5rem;padding:.75rem 1.2rem;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.navbar-mobile-resume-top{border:1px solid var(--resume-border);border-radius:var(--radius-md);height:36px;color:var(--accent-light);justify-content:center;align-items:center;padding:0 10px;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.navbar-mobile-settings{flex-wrap:wrap;align-items:center;gap:2rem;margin-top:2rem;display:flex}.navbar-logo{color:var(--text-primary);cursor:pointer;font-size:1.1rem;font-weight:700;text-decoration:none;transition:opacity .2s}.navbar-logo-accent{color:var(--accent)}.navbar-links{gap:2rem;list-style:none;display:flex}.navbar-links a{color:var(--text-secondary);font-size:.9rem;text-decoration:none;transition:color .2s;position:relative}.navbar-links a:after{content:"";background:var(--accent);width:0;height:2px;transition:all .25s;position:absolute;bottom:-6px;left:0}.navbar-actions{align-items:center;display:flex}.navbar-resume{height:42px;color:var(--accent-light);border:1px solid var(--resume-border);border-radius:var(--radius-md);align-items:center;margin-right:2rem;padding:10px 18px;font-size:.88rem;text-decoration:none;transition:all .2s;display:flex}.navbar-theme-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;margin-right:2rem;transition:color .2s,transform .2s;display:flex}.navbar-mobile-settings .navbar-theme-btn{margin-right:0}.navbar-theme-btn svg{transition:transform .25s,opacity .25s}.language-toggle{flex-direction:column;align-items:flex-start;gap:3px;margin-top:16px;display:flex}.language-toggle .active{color:var(--text-primary)}.language-toggle span{color:var(--text-secondary);opacity:var(--toggle-label-opacity);transition:all .2s}.language-indicator{background:var(--toggle-bg);cursor:pointer;border-radius:999px;width:42px;height:18px;position:relative}.language-indicator:after{content:"";background:var(--toggle-thumb);border-radius:50%;width:14px;height:14px;transition:transform .25s;position:absolute;top:2px;left:2px}.language-indicator.right:after{transform:translate(24px)}.language-options{cursor:pointer;gap:.8rem;font-size:.7rem;font-weight:600;display:flex}@media (hover:hover){.navbar-mobile-links a:hover{color:var(--text-primary);padding-left:8px}.navbar-mobile-resume:hover{background:var(--resume-hover-bg)}.navbar-logo:hover{opacity:.8}.navbar-theme-btn:hover{color:var(--text-primary);transform:translateY(-1px)}.navbar-theme-btn:hover svg{transform:rotate(15deg)}.navbar-links a:hover{color:var(--text-primary)}.navbar-links a:hover:after{width:100%}.navbar-resume:hover{background:var(--resume-hover-bg)}.navbar-hamburger:hover{transform:translateY(-1px)}.navbar-hamburger:hover span{background:var(--accent)}}@media (hover:none){.navbar-mobile-links a:active{color:var(--text-primary)}.navbar-mobile-resume:active{background:var(--resume-hover-bg)}.navbar-theme-btn:active{transform:scale(.95)}}@media (width<=900px){.navbar-links,.navbar-actions{display:none}.navbar-mobile-actions,.navbar-hamburger{display:flex}}.hero{padding-top:var(--navbar-height);position:relative}.hero-container{min-height:calc(100svh - var(--navbar-height));justify-content:space-between;align-items:center;gap:clamp(3rem,6vw,6rem);display:flex}.hero:before{content:"";background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);pointer-events:none;background-size:48px 48px;position:absolute;inset:0}.hero-left,.hero-right{z-index:1;position:relative}.hero-left{flex-direction:column;max-width:520px;display:flex}.hero-badge{background:var(--badge-bg);border:1px solid var(--badge-border);width:fit-content;color:var(--accent-light);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem .9rem;font-size:.82rem;font-weight:500;display:inline-flex}.hero-badge-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse}.hero-name{letter-spacing:-2.5px;color:var(--text-primary);margin-bottom:1.2rem;font-size:clamp(3.2rem,5.5vw,5rem);font-weight:800;line-height:1.05}.hero-name-accent{color:var(--accent)}.hero-description{max-width:420px;color:var(--text-secondary);margin-bottom:1.75rem;font-size:1.05rem;line-height:1.7}.hero-chips{flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;display:flex}.hero-chip{background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--text-secondary);border-radius:999px;padding:.35rem .8rem;font-size:.82rem}.hero-buttons{gap:.75rem;margin-bottom:1.75rem;display:flex}.hero-btn-primary,.hero-btn-secondary{border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.75rem 1.3rem;text-decoration:none;transition:all .2s;display:inline-flex}.hero-btn-primary{background:var(--accent-dark);color:#fff;font-size:.9rem;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}.hero-btn-secondary{border:1px solid var(--btn-secondary-border);color:var(--text-secondary);font-size:.9rem}.hero-social{align-items:center;gap:.75rem;display:flex}.hero-social-link{color:var(--text-secondary);opacity:.6;align-items:center;gap:.4rem;font-size:.82rem;text-decoration:none;transition:all .2s;display:inline-flex}.hero-social-dot{color:var(--social-dot)}.hero-right{flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.hero-right:before{content:"";background:var(--robot-island-bg);pointer-events:none;z-index:0;border-radius:50%;position:absolute;inset:-20px}.hero-status-tag{border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--badge-border);color:var(--accent-light);white-space:nowrap;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.75rem;display:flex;position:absolute;bottom:18px;right:-14px}.hero-status-dot{background:#22c55e;border-radius:50%;width:7px;height:7px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (hover:hover){.hero-btn-primary:hover{background:var(--btn-primary-hover);transform:translateY(-1px)}.hero-btn-secondary:hover{color:var(--text-primary);border-color:var(--btn-secondary-border-hover);transform:translateY(-1px)}.hero-social-link:hover{opacity:1}}@media (hover:none){.hero-btn-primary:active,.hero-btn-secondary:active{transform:scale(.98)}.hero-social-link:active{opacity:1}}@media (width<=900px){.hero{padding-top:var(--navbar-height)}.hero-container{text-align:center;flex-direction:column;justify-content:center;gap:2rem}.hero-left{align-items:center;max-width:650px}.hero-description{max-width:500px}.hero-chips{justify-content:center}.hero-social{flex-wrap:wrap;justify-content:center}.robot-wrapper,.robot-ring--outer{width:320px;height:320px}.robot-ring--mid{width:260px;height:260px}.robot-body{width:150px}.hero-status-tag{bottom:15px;right:-10px;transform:scale(.9)}}@media (width<=768px){.hero-container{gap:1.5rem}.hero-name{font-size:clamp(2.8rem,6vw,3.8rem)}.hero-description{max-width:450px}.robot-wrapper,.robot-ring--outer{width:280px;height:280px}.robot-ring--mid{width:220px;height:220px}.robot-body{width:135px}}@media (width<=480px){.hero{padding-top:calc(var(--navbar-height) + 2rem)}.hero-name{letter-spacing:-1px;font-size:2.5rem}.hero-buttons{flex-direction:column;align-items:center;width:100%}.hero-btn-primary,.hero-btn-secondary{justify-content:center;width:100%;max-width:260px}.hero-social{gap:.5rem}.hero-social-link{font-size:.8rem}.hero-status-tag{bottom:-10px;left:50%;right:auto;transform:translate(-50%)scale(.9)}.robot-wrapper{width:180px;height:180px}.robot-ring--outer{width:200px;height:200px}.robot-ring--mid{width:160px;height:160px}.robot-body{width:115px}}@media (width<=375px){.robot-wrapper{width:160px;height:160px}.robot-ring--outer{width:180px;height:180px}.robot-ring--mid{width:140px;height:140px}.robot-body{width:100px}}.robot-wrapper{place-items:center;width:420px;height:420px;display:grid;position:relative}.robot-wrapper:before{content:"";background:var(--robot-glow);filter:blur(80px);z-index:-1;border-radius:50%;width:220px;height:220px;position:absolute}.robot-ring{border:1px solid var(--robot-ring-color);border-radius:50%;position:absolute}.robot-ring--outer{width:420px;height:420px;animation:6s ease-in-out infinite pulse-ring}.robot-ring--mid{width:340px;height:340px}.robot-circuits{width:100%;height:100%;position:absolute}.robot-body{width:180px;transition:filter .2s;animation:4s ease-in-out infinite float;position:relative}@media (hover:hover){.robot-wrapper:hover{filter:brightness(1.05)}.robot-wrapper:hover .robot-body{filter:brightness(1.08)}}.robot-svg{width:100%;height:auto;display:block}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-ring{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.03)}}.projects{padding-top:var(--section-padding-top);padding-bottom:var(--section-padding-bottom);position:relative}.projects-layout{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:2rem;display:grid}.projects-sidebar{flex-direction:column;gap:4px;display:flex}.proj-item{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;width:100%;padding:11px 14px;transition:background .15s,border-color .15s;display:flex}.proj-item.active{background:var(--sidebar-item-active-bg);border-color:var(--sidebar-item-active-border)}.proj-item-dot{background:var(--sidebar-dot-inactive);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .15s}.proj-item.active .proj-item-dot{background:var(--accent)}.proj-item-name{color:var(--sidebar-name-inactive);white-space:nowrap;font-size:.88rem;font-weight:500;transition:color .15s}.proj-item.active .proj-item-name{color:var(--text-primary)}.proj-detail{border:1px solid var(--card-border);background:var(--bg-card);border-radius:14px;width:100%;display:flex;overflow:hidden}.proj-media{background:var(--proj-media-bg);border-right:1px solid var(--proj-media-border);justify-content:center;align-items:center;min-height:420px;padding:2rem;display:flex;position:relative;overflow:hidden}.proj-media--phone{flex-shrink:0;width:380px;padding:1.5rem 1rem}.proj-media--phone .proj-media-img{width:auto;height:auto;max-height:380px;margin-bottom:12px}.proj-media--landscape,.proj-media--diagram{flex-shrink:0;width:420px}.proj-media-grid{pointer-events:none;background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);background-size:32px 32px;position:absolute;inset:0}.proj-media-img{z-index:1;border:1px solid var(--screenshot-border);object-fit:contain;border-radius:14px;width:auto;max-width:100%;height:auto;max-height:360px;position:relative;box-shadow:0 12px 28px #00000014,0 2px 6px #0000000a}.proj-media-placeholder{z-index:1;-webkit-user-select:none;user-select:none;opacity:.18;font-size:4rem;position:relative}.proj-arrow{z-index:3;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:1.7rem;transition:color .15s;position:absolute;top:50%;transform:translateY(-50%)}.proj-arrow--prev{left:12px}.proj-arrow--next{right:12px}.proj-architecture{z-index:1;flex-direction:column;align-items:center;gap:.4rem;display:flex;position:relative}.arch-row{flex-direction:column;align-items:center;gap:.4rem;display:flex}.arch-box{color:var(--text-primary);letter-spacing:.2px;background:#2563eb0f;border:1px solid #3b82f640;border-radius:10px;padding:.75rem 2rem;font-size:.95rem;font-weight:600}.arch-arrow{color:var(--accent);opacity:.6;font-size:1rem}.proj-media--api{flex-shrink:0;width:420px}.proj-api{z-index:1;background:var(--proj-api-bg);border:1px solid var(--card-border);border-radius:12px;flex-direction:column;width:100%;height:360px;padding:1rem;font-family:JetBrains Mono,monospace;display:flex;position:relative}.proj-api-header{color:var(--proj-api-header);margin-bottom:1rem;font-weight:700}.proj-api--overview{justify-content:center}.proj-api-overview{color:var(--proj-api-text);flex-direction:column;gap:1rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.proj-api-overview-label{color:var(--proj-api-accent);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem;font-size:.72rem;font-weight:700;display:block}.proj-api-overview-title{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.45rem;font-weight:700;line-height:1.2}.proj-api-overview li{font-weight:500}.proj-api-section{margin-bottom:1rem}.proj-api-label,.proj-api-status{color:var(--proj-api-accent);margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:block}.proj-api-code{white-space:pre-wrap;color:var(--proj-api-text);margin:0;font-size:.8rem;line-height:1.6}.proj-http{letter-spacing:.04em;border-radius:999px;align-items:center;margin-right:.5rem;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.proj-http--post{color:#22c55e;background:#22c55e1f}.proj-http--patch{color:#f59e0b;background:#f59e0b1f}.proj-http--delete{color:#ef4444;background:#ef44441f}.proj-http--get{color:#3b82f6;background:#3b82f61f}.proj-http--put{color:#8b5cf6;background:#8b5cf61f}.proj-dots{z-index:5;gap:8px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.proj-dot{background:var(--proj-dot);cursor:pointer;border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:background .15s}.proj-dot.active{background:var(--accent)}.proj-body{flex-direction:column;flex:1;min-width:0;padding:2rem;display:flex}.proj-status{letter-spacing:.3px;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-bottom:.85rem;padding:4px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.proj-status--live{color:var(--status-completed-color);background:var(--status-completed-bg);border:1px solid var(--status-completed-border)}.proj-status--dev{color:var(--status-dev-color);background:var(--status-dev-bg);border:1px solid var(--status-dev-border)}.proj-status-dot{background:currentColor;border-radius:50%;width:5px;height:5px}.proj-name{color:var(--text-primary);letter-spacing:-.5px;margin-bottom:.65rem;font-size:1.4rem;font-weight:700}.proj-desc{color:var(--text-secondary);margin-bottom:1.1rem;font-size:.9rem;line-height:1.7}.proj-tags{flex-wrap:wrap;gap:6px;margin-bottom:1.25rem;display:flex}.proj-tag{border:1px solid var(--tag-border);background:var(--tag-bg);color:var(--text-secondary);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.proj-tag-icon{justify-content:center;align-items:center;width:14px;height:14px;display:flex}.proj-tag-icon img{object-fit:contain;width:14px;height:14px}.proj-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.proj-btn{border-radius:9px;align-items:center;gap:7px;padding:8px 16px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .15s;display:inline-flex}.proj-btn--primary{color:#fff;background:var(--accent-dark);border:1px solid #0000}.proj-btn--secondary{color:var(--text-secondary);border:1px solid var(--proj-btn-border);background:0 0}@media (hover:hover){.proj-item:not(.active):hover{background:var(--sidebar-item-hover-bg)}.proj-item:not(.active):hover .proj-item-name{color:var(--text-secondary)}.proj-arrow:hover{color:var(--text-primary)}.proj-btn:hover{transform:translateY(-1px)}.proj-btn--primary:hover{background:#1d4ed8}.proj-btn--secondary:hover{color:var(--text-primary);border-color:var(--proj-btn-border-hover)}}@media (hover:none){.proj-btn:active{transform:scale(.98)}.proj-arrow:active{color:var(--text-primary)}}@media (width<=1100px){.projects-layout{grid-template-columns:1fr}.projects-sidebar{scrollbar-width:none;flex-flow:wrap;gap:.5rem;padding-bottom:4px;overflow:visible}.projects-sidebar::-webkit-scrollbar{display:none}.proj-item{border:1px solid var(--card-border);border-radius:999px;flex-shrink:0;width:auto;padding:.7rem 1rem}.proj-media--phone{width:clamp(320px,35vw,380px)}.proj-media--landscape,.proj-media--api,.proj-media--diagram{width:clamp(340px,42vw,420px)}}@media (width<=768px){.proj-detail{flex-direction:column}.proj-media{border-right:none;border-bottom:1px solid var(--proj-media-border);min-height:320px;width:100%!important}.proj-body{padding:1.5rem}.proj-media-img{max-height:320px}.proj-api{height:300px;padding:.85rem}.proj-api-overview-title{font-size:1.2rem}.proj-api-overview{gap:.75rem;font-size:.85rem}.proj-api-code,.proj-api-label,.proj-api-status{font-size:.72rem}.proj-http{font-size:.65rem}}.section-header{margin-bottom:3rem}.section-header-label{color:var(--accent);letter-spacing:2.5px;text-transform:uppercase;margin-bottom:.6rem;font-size:.72rem;font-weight:600;display:block}.section-header-title{color:var(--text-primary);letter-spacing:-1.5px;font-size:clamp(2rem,4vw,3rem);font-weight:800;line-height:1}.section-header-description{max-width:620px;color:var(--text-secondary);margin-top:1rem;line-height:1.7}.experience{padding-top:var(--section-padding-top);padding-bottom:var(--section-padding-bottom)}.experience-timeline{flex-direction:column;display:flex}.experience-item{grid-template-columns:36px minmax(0,1fr);gap:1rem;display:grid}.experience-rail{justify-content:center;display:flex;position:relative}.experience-dot{z-index:1;background:var(--bg-primary);border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;margin-top:.45rem;position:relative}.experience-rail-line{background:var(--timeline-line);width:1px;position:absolute;top:1rem;bottom:-1.5rem;left:50%;transform:translate(-50%)}.experience-card{border:1px solid var(--card-border);border-radius:var(--radius-lg);background-color:var(--bg-card);margin-bottom:1.5rem;padding:1.5rem 1.75rem;transition:background-color .2s,border-color .2s,transform .2s}.experience-item:last-child .experience-card{margin-bottom:0}.experience-card-top{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.4rem;display:flex}.experience-card-title{color:var(--text-primary);letter-spacing:-.3px;font-size:1.05rem;font-weight:700}.experience-card-role{color:var(--text-secondary);font-weight:600}.experience-badge{letter-spacing:.3px;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:5px 12px;font-size:.75rem;font-weight:600}.experience-badge--current{color:var(--status-completed-color);background:var(--status-completed-bg);border:1px solid var(--status-completed-border)}.experience-badge--degree{color:var(--accent-light);background:var(--badge-bg);border:1px solid var(--badge-border)}.experience-badge--foundation{color:var(--text-secondary);background:#64748b1a;border:1px solid #64748b33}.experience-date{color:var(--accent);margin-bottom:1rem;font-size:.8rem;font-weight:500}.experience-meta{margin-bottom:1rem}.experience-badge-mobile{display:none}.experience-bullets{flex-direction:column;gap:.6rem;list-style:none;display:flex}.experience-bullets li{color:var(--text-secondary);padding-left:1rem;font-size:.9rem;line-height:1.7;position:relative}.experience-bullets li:before{content:"—";color:var(--bullet-dash);position:absolute;left:0}@media (width<=480px){.experience-badge-desktop{display:none}.experience-meta{justify-content:space-between;align-items:center;display:flex}.experience-badge-mobile{display:inline-flex}.experience-date{margin-bottom:0}}.skills{padding-top:var(--section-padding-top);padding-bottom:var(--section-padding-bottom)}.skills-categories{flex-direction:column;gap:2.5rem;display:flex}.skills-category{flex-direction:column;gap:1rem;display:flex}.category-header{align-items:center;gap:12px;display:flex}.category-name{color:var(--text-muted);letter-spacing:1.8px;text-transform:uppercase;white-space:nowrap;flex-shrink:0;font-size:.7rem;font-weight:600}.category-line{background:var(--card-border);flex:1;height:1px}.skills-grid{flex-wrap:wrap;gap:10px;display:flex}.skill-card{border:1px solid var(--card-border);background:var(--skill-card-bg);cursor:default;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;padding:10px 14px 10px 11px;transition:border-color .2s,background .2s,transform .2s;display:flex}.skill-card:hover{border-color:var(--badge-border);background:var(--sidebar-item-active-bg);transform:translateY(-2px)}.skill-icon{width:22px;height:22px;color:var(--accent);opacity:.85;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .2s;display:flex}.skill-logo{object-fit:contain;width:24px;height:24px}.skill-card:hover .skill-icon{opacity:1}.skill-info{flex-direction:column;gap:3px;display:flex}.skill-name{color:var(--text-primary);white-space:nowrap;font-size:.85rem;font-weight:500;line-height:1}.skill-level{letter-spacing:.3px;font-size:.62rem;font-weight:600;line-height:1}.skill-level--advanced{color:var(--accent)}.skill-level--intermediate{color:var(--skill-level-intermediate)}@media (width<=768px){.skills-categories{gap:2rem}.skills-grid{gap:8px}.skill-card{width:100%}}.about{padding-top:var(--section-padding-top);padding-bottom:var(--section-padding-bottom)}.about-content{flex-direction:column;gap:2rem;max-width:700px;display:flex}.about-text{flex-direction:column;gap:1.5rem;display:flex}.about-text p{color:var(--text-secondary);font-size:1rem;line-height:1.9}.about-quote{border-left:3px solid var(--badge-border);color:var(--text-primary);padding-left:1.25rem;font-size:.98rem;font-style:italic;font-weight:500;line-height:1.6}.about-principles{flex-wrap:wrap;gap:.75rem;display:flex}.about-principle{background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--text-secondary);border-radius:999px;padding:.45rem .9rem;font-size:.8rem}@media (width<=375px){.about-text p{line-height:1.8}}.footer{border-top:1px solid var(--navbar-border);padding:2rem 0}.footer-container{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;display:flex}.footer-bottom{color:var(--text-secondary);font-size:.85rem}.footer-socials{gap:1rem;display:flex}.footer-socials a{color:var(--text-secondary);font-size:1.1rem;transition:color .2s,transform .2s}@media (hover:hover){.footer-socials a:hover{color:var(--text-primary);transform:translateY(-2px)}}@media (hover:none){.footer-socials a:active{color:var(--text-primary)}}@media (width<=480px){.footer-container{flex-direction:column;gap:1rem}.footer-bottom{text-align:center;font-size:.8rem;line-height:1.5}}
