:root{--bg-1: #2a2a2a;--bg-2: #303030;--bg-3: #383838;--bg-4: #404040;--text-1: #ffffff;--text-2: #dddddd;--text-3: #bbbbbb;--accent: #00FFFF;--accent-2: #00CCCC;--accent-dim: rgba(0, 255, 255, .07);--accent-border: rgba(0, 255, 255, .25);--border: #222222;--border-hover: rgba(0, 255, 255, .35);--radius: 12px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(0, 0, 0, .6);--shadow-hover: 0 8px 40px rgba(0, 0, 0, .8);--glow: 0 0 40px rgba(0, 255, 255, .1);--nav-height: 56px;--sidebar-width: 220px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-1);color:var(--text-1);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-2)}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}ul{list-style:none}.container{max-width:1100px;margin:0 auto;padding:0 24px}section{padding:64px 0}h1,h2,h3,h4,h5{line-height:1.2;font-weight:700}.gradient-text{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-label{display:flex;align-items:center;gap:12px;font-family:Fira Code,monospace;font-size:.85rem;color:var(--accent);margin-bottom:12px;letter-spacing:.05em}.section-label:after{content:"";flex:1;max-width:240px;height:1px;background:var(--accent)}.section-title{font-size:clamp(1.8rem,3.5vw,2.4rem);color:var(--text-1);margin-bottom:.5rem}.section-desc{color:var(--text-2);font-size:1.05rem;max-width:560px;margin-bottom:3.5rem}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;transition:all .2s;letter-spacing:.02em}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#000;border:none}.btn-primary:hover{opacity:.88;transform:translateY(-1px);box-shadow:0 6px 24px #00ffff59;color:#000;text-decoration:none}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--accent-border)}.btn-outline:hover{background:var(--accent-dim);border-color:var(--accent);transform:translateY(-1px);color:var(--accent);text-decoration:none}.tag{display:inline-block;padding:4px 12px;background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:99px;font-size:.75rem;font-weight:500;color:var(--accent);font-family:Fira Code,monospace;white-space:nowrap}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:border-color .25s,transform .25s,box-shadow .25s}.card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-hover),var(--glow)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s ease}.reveal.visible{opacity:1;transform:none}.sidenav{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;z-index:100;display:flex;flex-direction:column;padding:40px 20px}main,footer{margin-left:var(--sidebar-width)}.nav-logo{font-family:Fira Code,monospace;font-weight:600;font-size:1.05rem;color:var(--accent);text-decoration:none;margin-bottom:48px;display:block}.nav-logo:hover{color:var(--accent);opacity:.8;text-decoration:none}.sidenav-links{display:flex;flex-direction:column;gap:2px}.sidenav-links a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-left:2px solid transparent;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-family:Fira Code,monospace;font-size:.82rem;color:var(--text-2);transition:color .2s,background .2s,border-color .2s}.sidenav-links a:hover{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent-border);text-decoration:none}.sidenav-links a.active{color:var(--accent);background:var(--accent-dim);border-left-color:var(--accent)}.nav-num{font-size:.72rem;color:var(--accent);opacity:.5;min-width:20px}.sidenav-links a.active .nav-num{opacity:1}.nav-label{color:inherit}.nav-menu-btn{display:none;position:fixed;top:16px;right:16px;z-index:101;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1);padding:8px}.nav-avatar{width:44px;height:44px;border-radius:50%;border:2px solid var(--accent-border);background:var(--bg-3);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-3);cursor:pointer;margin-bottom:28px;opacity:0;transform:translateY(-8px);transition:opacity .35s ease,transform .35s ease,border-color .2s;pointer-events:none}.nav-avatar.visible{opacity:1;transform:translateY(0);pointer-events:auto}.nav-avatar:hover{border-color:var(--accent)}.nav-avatar img{width:100%;height:100%;object-fit:cover}#hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:0}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(0,255,255,.06) 0%,transparent 60%),radial-gradient(ellipse 50% 40% at 80% 80%,rgba(0,204,204,.04) 0%,transparent 60%);pointer-events:none}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,black 30%,transparent 80%);mask-image:radial-gradient(ellipse 70% 80% at 50% 50%,black 30%,transparent 80%);opacity:.4;pointer-events:none}.hero-layout{position:relative;z-index:1;display:grid;grid-template-columns:1fr 260px;gap:64px;align-items:center;width:100%}.hero-content{min-width:0}.hero-photo-wrap{display:flex;justify-content:center;align-items:center}.hero-photo{width:260px;height:260px;border-radius:var(--radius);object-fit:cover;border:2px solid var(--accent-border);box-shadow:var(--shadow),var(--glow);opacity:0;animation:fadeUp .6s .9s forwards}.hero-photo-placeholder{width:260px;height:260px;border-radius:var(--radius);border:2px dashed var(--accent-border);background:var(--accent-dim);display:flex;align-items:center;justify-content:center;color:var(--accent);opacity:0;animation:fadeUp .6s .9s forwards}.hero-greeting{font-family:Fira Code,monospace;font-size:1rem;color:var(--accent);margin-bottom:16px;opacity:0;animation:fadeUp .6s .1s forwards}.hero-name{font-size:clamp(2.8rem,8vw,6rem);font-weight:800;line-height:1.05;color:var(--text-1);margin-bottom:8px;opacity:0;animation:fadeUp .6s .25s forwards}.hero-title{font-size:clamp(1.4rem,3.5vw,2.2rem);font-weight:700;margin-bottom:24px;opacity:0;animation:fadeUp .6s .4s forwards}.hero-desc{font-size:1.1rem;color:var(--text-2);max-width:520px;margin-bottom:40px;opacity:0;animation:fadeUp .6s .55s forwards}.hero-cta{display:flex;flex-wrap:wrap;gap:16px;opacity:0;animation:fadeUp .6s .7s forwards}.hero-socials{display:flex;align-items:center;gap:16px;margin-top:56px;opacity:0;animation:fadeUp .6s .85s forwards}.hero-socials a{color:var(--text-3);transition:color .2s,transform .2s}.hero-socials a:hover{color:var(--accent);transform:translateY(-2px);text-decoration:none}.hero-socials-line{width:40px;height:1px;background:var(--border)}@keyframes fadeUp{to{opacity:1;transform:none}0%{opacity:0;transform:translateY(20px)}}#about{background:var(--bg-2)}.about-grid{display:grid;grid-template-columns:1fr 340px;gap:64px;align-items:start}.about-text p{color:var(--text-2);font-size:1.05rem;margin-bottom:20px;line-height:1.75}.about-text p:last-child{margin-bottom:0}.about-text strong{color:var(--text-1)}.about-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px}.about-card h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:20px;font-family:Fira Code,monospace}.about-stat-list{display:flex;flex-direction:column;gap:16px}.about-stat{display:flex;align-items:center;gap:14px}.about-stat-icon{color:var(--accent);flex-shrink:0}.about-stat-label{font-size:.85rem;color:var(--text-3)}.about-stat-value{font-size:.95rem;color:var(--text-1);font-weight:500}.timeline{position:relative;padding-left:28px}.timeline-header-left{display:flex;align-items:center;gap:16px}.company-logo{width:48px;height:48px;border-radius:var(--radius-sm);background:#f0f0f0;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.company-logo img{width:100%;height:100%;object-fit:contain;padding:2px}.company-logo span{font-family:Fira Code,monospace;font-size:.78rem;font-weight:600;color:var(--accent);letter-spacing:.05em}.timeline:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,var(--accent),transparent)}.timeline-item{position:relative;margin-bottom:48px}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;left:-33px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-1);box-shadow:0 0 8px #00ffff80}.timeline-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}.timeline-role{font-size:1.1rem;font-weight:700;color:var(--text-1)}.timeline-company{font-size:1rem;color:var(--accent);font-weight:500}.timeline-meta{text-align:right;flex-shrink:0}.timeline-period{font-family:Fira Code,monospace;font-size:.8rem;color:var(--text-3)}.timeline-location{font-size:.8rem;color:var(--text-3);margin-top:2px}.timeline-desc{color:var(--text-2);font-size:.97rem;line-height:1.75;margin-top:8px}.timeline-condensed{margin-top:48px;border-top:1px solid var(--border);padding-top:32px}.timeline-condensed-heading{font-family:Fira Code,monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:20px}.timeline-condensed-item{display:grid;grid-template-columns:32px 280px 220px 1fr;align-items:center;gap:12px 20px;padding:12px 0;border-bottom:1px solid var(--border)}.timeline-condensed-item:last-child{border-bottom:none}.company-logo--sm{width:32px;height:32px;border-radius:6px;font-size:.65rem;background:#f0f0f0;border:none}.timeline-condensed-role{font-size:.92rem;font-weight:600;color:var(--text-1)}.timeline-condensed-company{font-size:.88rem;color:var(--accent)}.timeline-condensed-meta{font-family:Fira Code,monospace;font-size:.78rem;color:var(--text-3);text-align:right;line-height:1.6}@media(max-width:600px){.timeline-condensed-item{grid-template-columns:32px 1fr;grid-template-rows:auto auto}.timeline-condensed-meta{grid-column:2;text-align:left}}#projects{background:var(--bg-2)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.project-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;transition:border-color .25s,transform .25s,box-shadow .25s}.project-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--shadow-hover),var(--glow)}.project-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.project-folder-icon{color:var(--accent)}.project-docs-cta{font-family:Fira Code,monospace;font-size:.78rem;font-weight:500;color:var(--accent);text-decoration:none;white-space:nowrap}.project-docs-cta:hover{text-decoration:underline}.project-docs-cta--disabled{color:var(--text-3);cursor:default}.project-title{font-size:1.05rem;font-weight:700;color:var(--text-1);margin-bottom:10px}.project-desc{font-size:.9rem;color:var(--text-2);line-height:1.65;flex:1}.skills-flat{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(max-width:480px){.skills-flat{grid-template-columns:1fr}}.skill-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .2s}.skill-item:hover{border-color:var(--border-hover)}.skill-logo{width:32px;height:32px;border-radius:6px;background:#f0f0f0;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.skill-logo img{width:100%;height:100%;object-fit:contain}.skill-logo span{font-family:Fira Code,monospace;font-size:.65rem;font-weight:600;color:var(--accent)}.skill-name{font-size:.9rem;color:var(--text-1);font-weight:500}#education{background:var(--bg-2)}.education-list{display:flex;flex-direction:column;gap:20px}.education-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:start;transition:border-color .25s}.education-header-left{display:flex;align-items:center;gap:16px}.education-card:hover{border-color:var(--border-hover)}.education-school{font-size:1.05rem;font-weight:700;color:var(--text-1)}.education-degree{font-size:.97rem;color:var(--accent);font-weight:500;margin-top:4px}.education-desc{font-size:.88rem;color:var(--text-2);margin-top:10px;line-height:1.65;grid-column:1 / -1}.education-period{font-family:Fira Code,monospace;font-size:.8rem;color:var(--text-3);text-align:right;white-space:nowrap}.education-gpa{font-family:Fira Code,monospace;font-size:.78rem;color:var(--accent);text-align:right;margin-top:4px}.resume-card{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;transition:border-color .25s,box-shadow .25s}.resume-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-hover),var(--glow)}.resume-card-left{display:flex;align-items:center;gap:20px}.resume-icon{width:56px;height:56px;border-radius:var(--radius-sm);background:var(--accent-dim);border:1px solid var(--accent-border);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.resume-filename{font-size:1rem;font-weight:600;color:var(--text-1);margin-bottom:4px}.resume-note{font-size:.88rem;color:var(--text-2)}@media(max-width:600px){.resume-card{flex-direction:column;align-items:flex-start}}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#00000073;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-inner{position:relative;display:inline-flex}.lightbox-img{max-width:90vw;max-height:88vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 24px 80px #000c;display:block}.lightbox-close{position:absolute;top:10px;right:10px;background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s;z-index:1}.lightbox-close:hover{background:#000c}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s;z-index:1}.lightbox-nav:hover{background:#000c}.lightbox-nav--prev{left:-52px}.lightbox-nav--next{right:-52px}.lightbox-caption{position:absolute;bottom:0;left:0;right:0;background:#0000008c;color:#fff;font-size:.82rem;padding:8px 14px;border-radius:0 0 var(--radius) var(--radius);display:flex;align-items:center;gap:6px}.lightbox-counter{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:.78rem;font-family:Fira Code,monospace;white-space:nowrap}@media(max-width:600px){.lightbox-nav--prev{left:6px}.lightbox-nav--next{right:6px}}.carousel-img--clickable{cursor:zoom-in}#passions{background:var(--bg-2)}.passions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}.passion-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px 24px;transition:border-color .25s,transform .25s,box-shadow .25s}.passion-card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-hover),var(--glow)}.passion-card--featured{grid-column:1 / -1;display:flex;align-items:center;gap:32px;padding:28px 32px}.passion-card--photo-right{flex-direction:row-reverse}.passion-body{flex:1;min-width:0}.passion-emoji{font-size:2rem;margin-bottom:14px;line-height:1}.passion-image{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;margin-bottom:14px}.passion-image--featured{width:140px;height:200px;border-radius:var(--radius);object-fit:cover;flex-shrink:0;box-shadow:var(--shadow)}.carousel{position:relative;width:260px;height:200px;flex-shrink:0;border-radius:var(--radius);overflow:hidden}.carousel-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--radius)}.carousel-placeholder{width:260px;height:200px;flex-shrink:0;border-radius:var(--radius);border:2px dashed var(--accent-border);background:var(--accent-dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--accent);font-size:.8rem}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);background:#00000073;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:background .2s;z-index:2}.carousel-btn:hover{background:#000000b3}.carousel-btn--prev{left:8px}.carousel-btn--next{right:8px}.carousel-wrap{display:flex;flex-direction:column;gap:10px;flex-shrink:0}.carousel-caption{display:flex;align-items:center;gap:5px;font-size:.82rem;color:var(--text-2);line-height:1.4;padding:0 2px}.carousel-caption-pin{font-size:.85rem;flex-shrink:0}.carousel-dots{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:2}.carousel-dot{width:7px;height:7px;border-radius:50%;background:#ffffff80;border:none;cursor:pointer;padding:0;transition:background .2s}.carousel-dot.active{background:#fff}.passion-title{font-size:.8rem;font-family:Fira Code,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:8px}.passion-book-title{font-size:1.1rem;font-weight:700;color:var(--text-1);margin-bottom:10px}.passion-desc{font-size:.88rem;color:var(--text-2);line-height:1.65}.passion-goodreads-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:.85rem;font-weight:500;color:var(--accent);transition:opacity .2s}.passion-goodreads-link:hover{opacity:.75;text-decoration:none}.contact-inner{max-width:680px}.contact-subheading{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--text-1);margin-bottom:20px}.contact-text{font-size:1.05rem;color:var(--text-2);margin-bottom:36px;max-width:500px;line-height:1.75}.contact-cta{margin-bottom:56px}.contact-socials{display:flex;flex-wrap:wrap;gap:16px}.social-link{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);font-size:.88rem;font-weight:500;transition:all .2s}.social-link:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-dim);transform:translateY(-2px);text-decoration:none}footer{border-top:1px solid var(--border);padding:28px 0;text-align:center}footer p{font-family:Fira Code,monospace;font-size:.8rem;color:var(--text-3)}footer a{color:var(--accent)}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#2a2a2af7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;opacity:0;pointer-events:none;transition:opacity .2s}.mobile-menu.open{opacity:1;pointer-events:all}.mobile-menu a{font-family:Fira Code,monospace;font-size:1.4rem;color:var(--text-1);transition:color .2s}.mobile-menu a:hover{color:var(--accent);text-decoration:none}@media(min-width:1400px){:root{--sidebar-width: 260px}.container{max-width:1200px}}@media(max-width:1024px){:root{--sidebar-width: 180px}.hero-layout{gap:40px}.hero-photo,.hero-photo-placeholder{width:200px;height:200px}.about-grid{grid-template-columns:1fr 280px;gap:40px}.timeline-condensed-item{grid-template-columns:32px 1fr 1fr auto}.passion-card--featured{gap:24px}.carousel,.carousel-placeholder{width:220px;height:180px}}@media(max-width:768px){section{padding:48px 0}.sidenav{display:none}.nav-menu-btn{display:flex}main,footer{margin-left:0}.about-grid{grid-template-columns:1fr;gap:32px}.timeline-header{flex-direction:column;gap:4px}.timeline-meta{text-align:left}.timeline-condensed-item{grid-template-columns:32px 1fr}.timeline-condensed-company{grid-column:2}.timeline-condensed-meta{text-align:left;grid-column:2}.education-card{grid-template-columns:1fr}.education-period{text-align:left}.hero-cta{flex-direction:column;align-items:flex-start}.hero-cta .btn{padding:10px 20px;width:fit-content}.hero-layout{grid-template-columns:1fr;gap:32px}.hero-photo-wrap{order:-1}.hero-photo,.hero-photo-placeholder{width:140px;height:140px}.passion-card--featured,.passion-card--photo-right{flex-direction:column}.carousel,.carousel-placeholder{width:100%;height:220px}.carousel-img{width:100%}.skills-flat{grid-template-columns:1fr 1fr}.resume-card{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.container{padding:0 16px}.hero-name{font-size:clamp(2.2rem,10vw,3.5rem)}.skills-flat,.passions-grid{grid-template-columns:1fr}.contact-socials{flex-direction:column}}.admin-page{min-height:100vh;background:var(--bg-1);color:var(--text-1);padding:32px 24px 80px}.admin-header{max-width:900px;margin:0 auto 28px;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.admin-header h1{font-size:1.5rem;font-weight:700}.admin-empty{font-size:.9rem;color:var(--text-3);margin:8px 0 16px}.admin-section-toolbar{margin-bottom:16px}.admin-exp-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px;margin-bottom:16px}.admin-exp-card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.admin-exp-card-head h3{font-size:.95rem;font-weight:600;color:var(--accent);margin:0}.admin-exp-card-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-icon-btn{border:1px solid var(--border);background:transparent;color:var(--text-2);padding:6px 10px;border-radius:var(--radius-sm);font-size:.8rem}.admin-icon-btn:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-1)}.admin-icon-btn:disabled{opacity:.4;cursor:not-allowed}.admin-icon-btn.danger:hover:not(:disabled){border-color:#ff6b6b;color:#ff6b6b}.admin-back{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--accent);border:1px solid var(--accent-border);padding:8px 14px;border-radius:var(--radius-sm);background:var(--accent-dim)}.admin-back:hover{color:var(--accent-2);border-color:var(--border-hover)}.admin-shell{max-width:900px;margin:0 auto}.admin-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.admin-tabs button{border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);padding:8px 16px;border-radius:var(--radius-sm);font-size:.9rem}.admin-tabs button:hover{border-color:var(--border-hover);color:var(--text-1)}.admin-tabs button.active{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.admin-panel{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.admin-field{margin-bottom:18px}.admin-field label{display:block;font-size:.8rem;font-weight:600;color:var(--text-3);margin-bottom:6px;letter-spacing:.02em}.admin-field input,.admin-field textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:.95rem;background:var(--bg-3);color:var(--text-1);font-family:inherit}.admin-field textarea{min-height:120px;resize:vertical;line-height:1.5}.admin-field input:focus,.admin-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.admin-field-hint{font-size:.75rem;color:var(--text-3);margin-top:6px}.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:640px){.admin-row{grid-template-columns:1fr}}.admin-json{width:100%;min-height:420px;font-family:Fira Code,ui-monospace,monospace;font-size:.8rem;line-height:1.45;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;background:var(--bg-1);color:var(--text-2);resize:vertical}.admin-json:focus{outline:none;border-color:var(--accent)}.admin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.admin-actions--top{margin-top:0;margin-bottom:24px;padding-top:0;padding-bottom:20px;border-top:none;border-bottom:1px solid var(--border)}.admin-actions .btn-save{border:none;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:var(--bg-1);font-weight:600;padding:10px 22px;border-radius:var(--radius-sm)}.admin-actions .btn-save:disabled{opacity:.5;cursor:not-allowed}.admin-actions .btn-secondary{border:1px solid var(--border);background:transparent;color:var(--text-2);padding:10px 18px;border-radius:var(--radius-sm)}.admin-actions .btn-secondary:hover{border-color:var(--border-hover);color:var(--text-1)}.admin-message{font-size:.9rem;color:var(--text-2)}.admin-message.error{color:#ff6b6b}.admin-login h2{font-size:1.15rem;font-weight:600;margin-bottom:8px}.admin-session-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;margin-bottom:16px}.admin-signout{border:1px solid var(--border);background:transparent;color:var(--text-2);padding:6px 12px;border-radius:var(--radius-sm);font-size:.85rem}.admin-signout:hover{border-color:var(--border-hover);color:var(--text-1)}.admin-token{margin-bottom:24px;padding:16px;background:var(--bg-3);border-radius:var(--radius-sm);border:1px solid var(--border)}.admin-token label{font-size:.8rem;font-weight:600;color:var(--text-3)}.admin-token input{width:100%;margin-top:8px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-1);color:var(--text-1);font-family:Fira Code,monospace;font-size:.85rem}.admin-token input:focus{outline:none;border-color:var(--accent)}.admin-subsection{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--border)}.admin-subsection:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.admin-subsection h2{font-size:1.05rem;font-weight:600;color:var(--text-1);margin-bottom:4px}.admin-subsection>p{font-size:.85rem;color:var(--text-3);margin-bottom:16px;line-height:1.5}.admin-passion-card{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px;margin-bottom:16px}.admin-passion-card:last-child{margin-bottom:0}.admin-passion-card h3{font-size:.95rem;font-weight:600;color:var(--accent);margin-bottom:14px}.admin-check-row{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:14px}.admin-check-row label{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-2);cursor:pointer}.admin-check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.admin-btn-add{margin-top:8px;border:1px dashed var(--accent-border);background:transparent;color:var(--accent);padding:10px 16px;border-radius:var(--radius-sm);font-size:.9rem}.admin-section-toolbar .admin-btn-add{margin-top:0}.admin-btn-add:hover{border-color:var(--accent);background:var(--accent-dim)}.admin-upload-field .admin-upload-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}.admin-upload-preview{width:56px;height:56px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-1)}.admin-upload-pdf{font-size:.85rem;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.admin-upload-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.admin-upload-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);padding:8px 14px;border-radius:var(--radius-sm);font-size:.85rem;cursor:pointer}.admin-upload-btn:hover{border-color:var(--border-hover);color:var(--text-1)}.admin-upload-btn.is-busy{opacity:.7;cursor:wait;pointer-events:none}.admin-upload-spin{animation:admin-spin .8s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}.admin-upload-status.is-error{color:#ff6b6b}.admin-gallery-upload{margin-top:8px}.project-docs{min-height:60vh;padding:48px 0 80px}.project-docs-inner{max-width:760px}.project-docs-back{display:inline-flex;align-items:center;gap:8px;font-family:Fira Code,monospace;font-size:.85rem;color:var(--accent);text-decoration:none;margin-bottom:32px}.project-docs-back:hover{text-decoration:underline}.project-docs-header{margin-bottom:28px}.project-docs-title{font-size:clamp(1.75rem,4vw,2.25rem);color:var(--text-1);margin:8px 0 12px}.project-docs-lead{color:var(--text-2);line-height:1.65;font-size:1.05rem}.project-docs-missing{color:var(--text-2);margin-bottom:20px}.project-docs-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.project-docs-tabs button{font-family:Fira Code,monospace;font-size:.8rem;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);cursor:pointer;transition:border-color .2s,color .2s}.project-docs-tabs button:hover{border-color:var(--border-hover);color:var(--text-1)}.project-docs-tabs button.active{border-color:var(--accent);color:var(--accent)}.project-docs-status{color:var(--text-3);font-size:.95rem}.project-docs-status--error{color:var(--text-2)}.project-docs-status code{font-size:.85em;color:var(--accent)}.markdown-body{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:28px 32px;line-height:1.7;color:var(--text-2)}.markdown-body :first-child{margin-top:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{color:var(--text-1);margin:1.4em 0 .5em;line-height:1.25}.markdown-body h1{font-size:1.65rem}.markdown-body h2{font-size:1.35rem;border-bottom:1px solid var(--border);padding-bottom:.35em}.markdown-body h3{font-size:1.15rem}.markdown-body p{margin:.85em 0}.markdown-body a{color:var(--accent);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body ul,.markdown-body ol{margin:.75em 0;padding-left:1.4em}.markdown-body li{margin:.35em 0}.markdown-body code{font-family:Fira Code,monospace;font-size:.88em;background:var(--bg-2);padding:.15em .45em;border-radius:4px;color:var(--text-1)}.markdown-body pre{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;overflow-x:auto;margin:1em 0}.markdown-body pre code{background:none;padding:0;font-size:.82rem}.markdown-body blockquote{margin:1em 0;padding-left:1em;border-left:3px solid var(--accent);color:var(--text-3)}.markdown-body table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.92rem}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:8px 12px;text-align:left}.markdown-body th{background:var(--bg-2);color:var(--text-1)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:2em 0}@media(max-width:768px){.markdown-body{padding:20px 18px}}
