:root{--bg: #0b1220;--panel: #0f172a;--muted: #94a3b8;--text: #e2e8f0;--brand: #0ea5e9;--brand-2: #22d3ee;--accent: #22c55e;--ring: 0 0 0 3px rgba(14, 165, 233, .35);--shadow: 0 10px 30px rgba(2, 8, 23, .45);--radius: 16px}:root.light{--bg: #f8fafc;--panel: #ffffff;--muted: #475569;--text: #0f172a;--brand: #0284c7;--brand-2: #06b6d4;--accent: #16a34a;--shadow: 0 6px 20px rgba(2, 8, 23, .08)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px;overflow-x:hidden}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;width:100%;max-width:100vw}#root{width:100%;max-width:100vw;overflow-x:hidden}a{color:inherit;text-decoration:none}.container{max-width:1080px;margin:0 auto;padding:0 20px}.btn{display:inline-flex;align-items:center;gap:.6rem;border:1px solid color-mix(in oklab,var(--brand) 65%,transparent);background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;padding:.85rem 1.1rem;border-radius:calc(var(--radius) - 6px);font-weight:600;box-shadow:var(--shadow);transition:.2s transform}.btn:hover{transform:translateY(-2px)}.btn.ghost{background:transparent;color:var(--text);border:1px solid color-mix(in oklab,var(--text) 18%,transparent)}.theme-toggle{background:transparent;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);color:var(--text);padding:.625rem;border-radius:50%;cursor:pointer;font-size:1.25rem;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;line-height:1}.card{background:var(--panel);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:22px}.grid{display:grid;gap:18px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.tag{font-size:.78rem;color:var(--muted);background:color-mix(in oklab,var(--text) 8%,transparent);padding:.28rem .55rem;border-radius:999px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent)}.row{display:flex;gap:10px;flex-wrap:wrap}.small{font-size:.9rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:-999px;top:0}.skip:focus{left:10px;top:10px;z-index:9999}.dev-banner{background:#fee2e2;border-bottom:1px solid #fca5a5;color:#dc2626;text-align:center;padding:8px 20px;font-size:.875rem;font-weight:500;position:relative;z-index:40}:root.light .dev-banner{background:#fee2e2;color:#dc2626}:root:not(.light) .dev-banner{background:#450a0a;border-bottom-color:#7f1d1d;color:#fca5a5}input,textarea{background:var(--panel);border:1px solid color-mix(in oklab,var(--text) 14%,transparent);color:var(--text);padding:.85rem 1rem;border-radius:12px;font:inherit}input:focus,textarea:focus,.theme-toggle:focus{outline:none;box-shadow:var(--ring)}textarea{min-block-size:140px;resize:vertical}form .field{display:grid;gap:.4rem}.app-card{cursor:pointer;display:block}.app-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f;border-color:var(--brand)}.app-card h3{transition:color .2s}.app-card:hover h3{color:var(--brand)}.user-menu-container{position:relative}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:var(--panel);border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:var(--radius);box-shadow:0 10px 40px #0003;min-width:240px;z-index:10000;animation:dropdownSlideIn .2s ease;overflow:hidden}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-header{padding:1rem;display:flex;align-items:center;gap:.75rem;background:color-mix(in oklab,var(--text) 4%,transparent)}.user-avatar-small{width:40px;height:40px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;color:#fff}.user-dropdown-info{display:flex;flex-direction:column;gap:.125rem;overflow:hidden}.user-email{font-size:.875rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--muted)}.user-dropdown-divider{height:1px;background:color-mix(in oklab,var(--text) 10%,transparent)}.user-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:var(--text);font-size:.875rem;font-family:inherit;cursor:pointer;text-decoration:none;transition:all .15s}.user-dropdown-item:hover{background:color-mix(in oklab,var(--text) 6%,transparent);color:var(--brand)}.user-dropdown-item i{width:1rem;text-align:center;color:var(--muted);transition:color .15s}.user-dropdown-item:hover i{color:var(--brand)}.user-dropdown-item.logout{color:#ef4444}.user-dropdown-item.logout:hover{background:#ef44441a;color:#ef4444}.user-dropdown-item.logout i{color:#ef4444}.qr-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;padding:1rem}.qr-popup{background:var(--panel);border:1px solid color-mix(in oklab,var(--text) 12%,transparent);border-radius:var(--radius);box-shadow:0 20px 60px #0000004d;padding:2rem;text-align:center;position:relative;animation:popupSlideIn .3s ease}@keyframes popupSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.qr-popup-close{position:absolute;top:.75rem;right:.75rem;background:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.qr-popup-close:hover{background:color-mix(in oklab,var(--text) 8%,transparent);color:var(--text)}.qr-popup h3{margin:0 0 1.5rem;font-size:1.1rem;font-weight:600;color:var(--text)}.qr-code-container{background:#fff;padding:1rem;border-radius:12px;display:inline-block}.qr-url{margin:1rem 0 0;font-size:.9rem;color:var(--muted);font-weight:500}.nav-links a{color:var(--text);text-decoration:none;font-weight:500;transition:color .2s;position:relative}.nav-links a:hover{color:var(--brand)}.nav-btn{background:transparent;border:none;color:var(--text);text-decoration:none;font-weight:500;transition:color .2s;cursor:pointer;font-size:inherit;font-family:inherit;padding:0;position:relative}.nav-btn:hover{color:var(--brand)}#skills .grid.cols-3{gap:1rem}#skills .card.pad{padding:1rem}#skills .card.pad h3{margin-top:0;margin-bottom:.5rem}#skills .card.pad p{margin-bottom:.5rem}.company{display:block;font-size:1.45rem;font-weight:800;color:var(--brand);margin-bottom:.12rem;letter-spacing:.2px;line-height:1.1}.nested-positions{margin-top:.5rem;margin-bottom:.5rem;padding-left:0}.position{margin-bottom:1.2rem}.position:last-child{margin-bottom:0}.position-title{display:flex;align-items:center;gap:.6rem;margin-bottom:.1rem}.position-title h4{margin:0;font-size:1.08rem;font-weight:600;color:var(--text)}.position .tag{font-size:.85rem;font-weight:500;margin-left:.2rem;margin-bottom:0}.position .date{font-size:.98rem;color:var(--muted);font-weight:500;margin-bottom:.2rem;letter-spacing:.1px}.position .desc{font-size:.97rem;color:var(--text);margin-bottom:.3rem;line-height:1.6}nav{position:fixed;top:0;left:0;right:0;z-index:50;background:color-mix(in oklab,var(--bg) 85%,transparent 15%);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid color-mix(in oklab,var(--text) 12%,transparent);transition:transform .3s ease}nav.nav-hidden{transform:translateY(-100%)}.nav-spacer{height:64px}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:64px}.brand{display:flex;align-items:center;gap:.7rem;font-weight:800;letter-spacing:.2px}.brand-badge{inline-size:36px;block-size:36px;border-radius:10px;background:radial-gradient(120px 90px at 10% 20%,var(--brand) 0 35%,transparent 36%),radial-gradient(120px 90px at 80% 0%,var(--brand-2) 0 40%,transparent 41%),linear-gradient(135deg,color-mix(in oklab,var(--panel) 70%,transparent) 0%,var(--panel) 100%);display:grid;place-items:center;color:#fff;font-weight:900;text-shadow:0 2px 10px rgba(0,0,0,.25)}.nav-links{display:flex;gap:1rem;align-items:center}.nav-links a{padding:.55rem .7rem;border-radius:10px}.nav-links a:hover{background:color-mix(in oklab,var(--text) 8%,transparent)}header.hero{position:relative;isolation:isolate}.hero-wrap{padding:64px 0 40px;display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}.background-blobs{position:absolute;top:0;left:0;right:0;height:100vh;z-index:-1;overflow:hidden;pointer-events:none}.blob{position:absolute;border-radius:50%;filter:blur(150px);will-change:transform;opacity:.25}.blob-1{width:600px;height:500px;background:var(--brand);left:-10%;top:0%;animation:blob1Move 12s ease-in-out infinite}.blob-2{width:550px;height:450px;background:var(--brand-2);right:-10%;top:10%;animation:blob2Move 15s ease-in-out infinite}@keyframes blob1Move{0%,to{transform:translate(0) scale(1)}33%{transform:translate(80px,-40px) scale(1.08)}66%{transform:translate(-50px,30px) scale(.95)}}@keyframes blob2Move{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-70px,50px) scale(.94)}66%{transform:translate(50px,-35px) scale(1.06)}}.hero h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin:.2rem 0}.subtitle{color:var(--muted);font-size:1.05rem}.hero-card{display:grid;gap:10px}.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.5rem}.pill{display:inline-flex;gap:.5rem;align-items:center;border:1px dashed color-mix(in oklab,var(--text) 18%,transparent);padding:.5rem .7rem;border-radius:999px;color:var(--muted);font-size:.92rem}h2.section-title{font-size:clamp(22px,3vw,30px);margin:10px 0 4px}section{padding:26px 0}.projects .item{display:flex;flex-direction:column;gap:.6rem}.projects .thumb{inline-size:100%;aspect-ratio:16/9;border-radius:12px;background:linear-gradient(135deg,color-mix(in oklab,var(--brand) 35%,transparent),color-mix(in oklab,var(--brand-2) 35%,transparent));display:grid;place-items:center;color:#fff;font-weight:700;letter-spacing:.3px}.timeline{position:relative}.timeline:before{content:"";position:absolute;inset:0 auto 0 10px;width:2px;background:color-mix(in oklab,var(--text) 12%,transparent)}.timeline .step{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:flex-start;padding-top:18px;padding-bottom:18px}.timeline .dot{inline-size:22px;block-size:22px;border-radius:999px;background:linear-gradient(180deg,var(--brand),var(--brand-2));margin-top:0;box-shadow:0 0 0 4px color-mix(in oklab,var(--brand) 30%,transparent);align-self:flex-start}footer{padding:30px 0 60px;color:var(--muted);border-top:1px solid color-mix(in oklab,var(--text) 10%,transparent)}.icons{display:flex;gap:.6rem}.icon-btn{inline-size:40px;block-size:40px;border-radius:12px;border:1px solid color-mix(in oklab,var(--text) 14%,transparent);display:grid;place-items:center;background:var(--panel)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:930px){.hero-wrap{grid-template-columns:1fr}.grid.cols-3{grid-template-columns:1fr 1fr}.grid.cols-2,.contact-grid{grid-template-columns:1fr}}.hamburger{display:none;flex-direction:column;cursor:pointer;padding:8px;border-radius:8px;transition:background-color .2s}.hamburger:hover{background:color-mix(in oklab,var(--text) 8%,transparent)}.hamburger span{width:20px;height:2px;background:var(--text);margin:2px 0;transition:.3s;border-radius:1px}.hamburger.active span:nth-child(1){transform:rotate(-45deg) translate(-4px,4px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(45deg) translate(-4px,-4px)}.mobile-menu{position:fixed;top:64px;right:-100%;width:280px;height:calc(100vh - 64px);background:var(--panel);border-left:1px solid color-mix(in oklab,var(--text) 12%,transparent);transition:right .3s ease;z-index:1001;padding:1.5rem;display:flex;flex-direction:column;gap:0;overflow-y:auto;overflow-x:hidden}.mobile-menu.active{right:0}.mobile-menu a{display:block;padding:1rem;color:var(--text);text-decoration:none;transition:background .2s,color .2s;font-size:1rem;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.mobile-menu a:hover{background:color-mix(in oklab,var(--brand) 8%,transparent);color:var(--brand)}.mobile-menu>button:not(.theme-toggle){display:block;width:100%;padding:1rem;background:transparent;border:none;border-bottom:1px solid color-mix(in oklab,var(--text) 8%,transparent);color:var(--text);text-align:left;font-size:1rem;font-family:inherit;cursor:pointer;transition:background .2s,color .2s}.mobile-menu>button:not(.theme-toggle):hover{background:color-mix(in oklab,var(--brand) 8%,transparent);color:var(--brand)}.mobile-menu .mobile-buttons{margin-top:auto;display:flex;gap:1rem;padding-top:2rem;padding-bottom:1rem;flex-shrink:0}.mobile-overlay{position:fixed;top:64px;left:0;width:100%;height:calc(100vh - 64px);background:#00000080;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000}.mobile-overlay.active{opacity:1;visibility:visible}body.mobile-menu-open{overflow:hidden;position:fixed;width:100%}@media(max-width:768px){.nav-links{display:none}.hamburger{display:flex}.container{padding:0 24px}.hero-wrap{grid-template-columns:1fr;gap:2.5rem;padding:3rem 0 2rem;display:flex;flex-direction:column}.hero-left{text-align:center;order:1;padding-bottom:.5rem}.hero-right{order:3;max-width:none;width:100%;margin:.5rem 0 0;padding:1.5rem}.hero-left .row{justify-content:center}.pill{font-size:.85rem;padding:.4rem .6rem;margin-bottom:.75rem}.hero h1{font-size:clamp(36px,10vw,48px);margin-bottom:.5rem}.subtitle{font-size:1rem}.hero-cta{justify-content:center;gap:.5rem}.btn{padding:.7rem 1rem;font-size:.9rem}.section-title{text-align:center;margin-bottom:1rem}.grid.cols-3,.grid.cols-2{grid-template-columns:1fr;gap:1rem}.contact-grid{grid-template-columns:1fr;gap:1.5rem}.card.pad{padding:1.25rem}.hero-card{gap:1rem;padding:1.5rem}.hero-card .small{margin:.5rem 0;line-height:1.6}.timeline .step{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:flex-start;padding-top:14px;padding-bottom:14px}.timeline:before{left:8px}.timeline .dot{inline-size:16px;block-size:16px;border-radius:999px;background:linear-gradient(180deg,var(--brand),var(--brand-2));margin-top:0;box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 30%,transparent);align-self:flex-start}.small{font-size:.85rem}section{padding:1.5rem 0}footer{padding:2rem 0}.dev-banner{padding:6px 16px;font-size:.8rem}.contact-grid .row{flex-direction:column;align-items:stretch;gap:.75rem}.contact-grid .btn{width:100%;justify-content:center}.hero-card .row{justify-content:center}}@media(max-width:480px){.container{padding:0 20px}.hero h1{font-size:clamp(32px,9vw,40px)}.hero-cta{flex-direction:column;align-items:center}.btn{width:100%;max-width:200px;justify-content:center}.mobile-menu{width:100%;right:-100%}.contact-grid .btn{font-size:.85rem;padding:.6rem 1rem}.hero-card .row{flex-direction:column;align-items:center;gap:.5rem}.hero-card .btn{width:100%;max-width:200px;justify-content:center}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--bg)}.login-container{width:100%;max-width:420px}.login-card{background:var(--panel);border:1px solid color-mix(in oklab,var(--text) 10%,transparent);border-radius:var(--radius);box-shadow:var(--shadow);padding:2.5rem}.login-header{text-align:center;margin-bottom:2rem}.login-card .brand-badge{inline-size:56px;block-size:56px;border-radius:14px;background:radial-gradient(120px 90px at 10% 20%,var(--brand) 0 35%,transparent 36%),radial-gradient(120px 90px at 80% 0%,var(--brand-2) 0 40%,transparent 41%),linear-gradient(135deg,#0f172ab3,#0f172a);display:grid;place-items:center;color:#fff;font-weight:900;text-shadow:0 2px 10px rgba(0,0,0,.25);font-size:22px;margin:0 auto 1.5rem}.login-title{margin:0;font-size:1.75rem;font-weight:700;color:var(--text)}.login-subtitle{margin:.5rem 0 0;font-size:.95rem;color:var(--muted)}.login-card .form-group{margin-bottom:1.25rem}.login-card .form-group label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem;color:var(--text)}.login-card .form-group input{width:100%;background:var(--bg);border:1px solid color-mix(in oklab,var(--text) 14%,transparent);color:var(--text);padding:.85rem 1rem;border-radius:10px;font:inherit;font-size:.95rem;transition:all .2s}.login-card .form-group input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #0ea5e91a}.login-card .form-group input::placeholder{color:var(--muted);opacity:.6}.login-card .error-message{background:#dc26261a;border:1px solid rgba(220,38,38,.3);color:#dc2626;padding:.85rem 1rem;border-radius:10px;margin-bottom:1.25rem;font-size:.9rem;display:none;animation:shake .3s}.login-card .error-message.show{display:block}.login-card .success-message{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:.85rem 1rem;border-radius:10px;margin-bottom:1.25rem;font-size:.9rem;display:none}.login-card .success-message.show{display:block}.forgot-password-link{text-align:right;margin-bottom:1rem}.forgot-password-link a{color:var(--brand);font-size:.85rem;text-decoration:none;transition:color .2s}.forgot-password-link a:hover{color:var(--brand-2);text-decoration:underline}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.login-card .login-btn{width:100%;margin-top:.5rem;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;border-radius:calc(var(--radius) - 6px);box-shadow:var(--shadow);transition:.2s transform}.login-card .login-btn:hover{transform:translateY(-2px)}.login-card .login-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-card .btn.ghost{width:100%;background:transparent;color:var(--brand);border:1px solid color-mix(in oklab,var(--brand) 30%,transparent);margin-top:.75rem;padding:1rem;font-size:1rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border-radius:calc(var(--radius) - 6px);transition:all .2s;text-decoration:none}.login-card .btn.ghost:hover{background:color-mix(in oklab,var(--brand) 8%,transparent);border-color:var(--brand)}.divider{text-align:center;margin:1.5rem 0;position:relative;color:var(--muted);font-size:.85rem}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:color-mix(in oklab,var(--text) 8%,transparent)}.divider span{position:relative;background:var(--panel);padding:0 1rem}.login-card .back-link{text-align:center;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid color-mix(in oklab,var(--text) 8%,transparent)}.login-card .back-link a{color:var(--brand);text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s;display:inline-flex;align-items:center;gap:.5rem}.login-card .back-link a:hover{color:var(--brand-2);text-decoration:underline}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:3rem;color:var(--muted)}.admin-container{min-height:100vh;padding:6rem 2rem 2rem}.admin-header{text-align:center;margin-bottom:3rem}.admin-header h1{color:var(--text-color);margin-bottom:.5rem}.admin-header h1 i{margin-right:.5rem;color:var(--accent-color)}.user-info{color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:.5rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:1000px;margin:0 auto 2rem}.stat-card{background:var(--card-bg);border-radius:16px;padding:1.5rem;display:flex;align-items:center;gap:1.5rem;border:1px solid var(--border-color);transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001a}.stat-icon{width:60px;height:60px;border-radius:12px;background:var(--accent-color);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem}.stat-content h3{color:var(--text-muted);font-size:.875rem;font-weight:500;margin-bottom:.25rem}.stat-value{font-size:2rem;font-weight:700;color:var(--text-color)}.user-menu{position:relative}.user-button.active{color:var(--brand)}@media(max-width:768px){.login-card{padding:2rem 1.5rem;margin:1rem}.login-card .form-group{margin-bottom:1rem}.login-card .login-btn{margin-top:.75rem;padding:.875rem}.login-card .btn.ghost{margin-top:.5rem;padding:.875rem}.divider{margin:1.25rem 0}.login-card .back-link{margin-top:1.25rem;padding-top:1.25rem}.stats-grid{grid-template-columns:1fr;padding:0 1rem}.stat-card{padding:1rem}.stat-icon{width:50px;height:50px;font-size:1.25rem}.stat-value{font-size:1.5rem}}
