:root{--color-bg: #050505;--color-surface: rgba(255, 255, 255, .05);--color-surface-hover: rgba(255, 255, 255, .1);--color-text: #f0f0f0;--color-text-secondary: #a0a0a0;--color-primary-glow: rgba(255, 255, 255, .15);--grad-diy: linear-gradient(135deg, #ff4d4d, #c90000);--grad-research: linear-gradient(135deg, #00b999, #007a65);--grad-homelab: linear-gradient(135deg, #2d8fd5, #004e92);--grad-wip: linear-gradient(135deg, #8e9eab, #eef2f3);--font-main: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif}html{scroll-behavior:smooth}section{scroll-margin-top:100px}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--color-bg);background-image:radial-gradient(circle at 15% 50%,rgba(45,143,213,.08),transparent 25%),radial-gradient(circle at 85% 30%,rgba(255,77,77,.08),transparent 25%);color:var(--color-text);font-family:var(--font-main);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center;width:100%}*{box-sizing:border-box}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;letter-spacing:-.02em}.header{width:100%;padding:1rem 0;position:fixed;top:0;left:0;display:flex;justify-content:center;z-index:1000;background:#050505b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.05)}.nav{display:flex;justify-content:space-between;align-items:center;width:100%;max-width:1280px;padding:0 2rem}.nav-links{list-style:none;display:flex;gap:2.5rem;padding:0;margin:0}.nav-links a{color:var(--color-text-secondary);text-decoration:none;font-weight:500;font-size:.95rem;transition:all .3s ease;position:relative;padding-bottom:4px}.nav-links a:hover{color:var(--color-text)}.nav-links a:after{content:"";position:absolute;width:0;height:2px;bottom:0;left:0;background-color:var(--color-text);transition:width .3s ease-in-out}.nav-links a:hover:after{width:100%}.social-links{display:flex;gap:1rem}.social-icon{color:var(--color-text-secondary);text-decoration:none;border:1px solid rgba(255,255,255,.2);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:.8rem;transition:all .3s ease;background:#ffffff05}.social-icon:hover{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text);transform:translateY(-2px)}.hero{display:flex;flex-direction:column;align-items:center;margin-top:8rem;margin-bottom:4rem;position:relative}.hero:before{content:"";position:absolute;top:50%;left:50%;width:300px;height:300px;background:radial-gradient(circle,rgba(255,255,255,.03) 0%,transparent 70%);transform:translate(-50%,-50%);z-index:-1;pointer-events:none}.portrait-container{margin-bottom:2.5rem;position:relative}.portrait{width:160px;height:160px;border-radius:50%;background-color:#1a1a1a;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.1);overflow:hidden;position:relative;z-index:1;box-shadow:0 0 30px #00000080}.portrait-container:after{content:"";position:absolute;inset:-5px;border-radius:50%;background:linear-gradient(45deg,var(--color-text-secondary),transparent,var(--color-text-secondary));z-index:0;opacity:.3;animation:spin 10s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.portrait-placeholder{font-size:2.5rem;font-weight:300;color:var(--color-text-secondary);letter-spacing:2px}.hero-content{text-align:center;max-width:800px}.hero-content h1{font-size:4rem;margin:.5rem 0;font-weight:800;background:linear-gradient(to bottom right,#fff,#aaa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.04em;line-height:1.1}.subtitle{font-size:1.5rem;color:var(--color-text-secondary);margin-top:0;margin-bottom:1.5rem;font-weight:400;letter-spacing:.05em;text-transform:uppercase;font-size:.9rem;opacity:.8}.bio{max-width:550px;margin:0 auto;color:#888;line-height:1.8;font-size:1.1rem;font-weight:300}.project-btn{width:200px;height:200px;border:1px solid rgba(255,255,255,.08);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:all .5s cubic-bezier(.19,1,.22,1);position:relative;overflow:hidden;background:#14141499;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 6px #0000001a,inset 0 1px #ffffff05}.project-btn:hover,.project-btn.active-selected{transform:scale(1.2);box-shadow:0 15px 30px #0000004d,inset 0 1px #ffffff1a;border-color:#ffffff4d;z-index:10}.btn-title{margin:0;font-size:1rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;position:absolute;bottom:20px;left:50%;transform:translate(-50%);width:100%;text-align:center;z-index:2;color:var(--color-text-secondary);transition:color .3s;pointer-events:none}.project-btn:hover .btn-title,.project-btn.active-selected .btn-title{color:#fff}.btn-visuals{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1;pointer-events:none;transition:filter .5s ease;filter:grayscale(100%) opacity(.6)}.project-btn:hover .btn-visuals,.project-btn.active-selected .btn-visuals{filter:grayscale(0%) opacity(1);top:45%;left:50%;transform:translate(-50%,-50%)}.project-btn.diy:hover:before,.project-btn.diy.active-selected:before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at center,rgba(230,57,70,.15),transparent 70%)}.visual-diy{width:100%;height:100%;position:relative}.visual-diy .tool{width:48px;height:48px;position:absolute;transition:all .6s cubic-bezier(.34,1.56,.64,1);stroke:#f99}.tool-1{top:35%;left:50%;transform:translate(-50%,-50%) scale(.9)}.tool-2{top:60%;left:35%;transform:translate(-50%,-50%) scale(.9)}.tool-3{top:60%;left:65%;transform:translate(-50%,-50%) rotate(45deg) scale(.9)}.project-btn.diy:hover .tool-printer,.project-btn.diy.active-selected .tool-printer{transform:translate(-50%,-55px) scale(1.1);stroke:#ff4d4d}.project-btn.diy:hover .printer-assembly,.project-btn.diy.active-selected .printer-assembly{animation:printer-z-sawtooth 2s linear infinite}.project-btn.diy:hover .printer-head,.project-btn.diy:hover .printer-nozzle,.project-btn.diy.active-selected .printer-head,.project-btn.diy.active-selected .printer-nozzle{animation:printer-x-pingpong .8s ease-in-out infinite;transform-box:fill-box}@keyframes printer-z-sawtooth{0%{transform:translateY(5px)}to{transform:translateY(-6px)}}@keyframes printer-x-pingpong{0%,to{transform:translate(-4px)}50%{transform:translate(4px)}}.iron-fume{opacity:0}.project-btn.diy:hover .fume-1,.project-btn.diy.active-selected .fume-1{animation:fume-rise 2.5s ease-out infinite}.project-btn.diy:hover .fume-2,.project-btn.diy.active-selected .fume-2{animation:fume-rise 2.5s ease-out 1.2s infinite}@keyframes fume-rise{0%{opacity:0;transform:translateY(2px) scale(.6)}20%{opacity:.9;transform:translateY(-8px) scale(.9)}to{opacity:0;transform:translateY(-30px) scale(1.8)}}.project-btn.diy:hover .tool-iron,.project-btn.diy.active-selected .tool-iron{transform:translate(-55px,-30px) scale(1.1);stroke:#ff4d4d}.chip-body,.chip-inner{fill:#0003}.chip-led{fill:transparent;transition:fill .2s}.led-leg,.chip-pins{stroke:currentColor;transition:stroke .3s}.project-btn.diy:hover .tool-microchip,.project-btn.diy.active-selected .tool-microchip{transform:translate(10px,-30px) rotate(15deg) scale(1.1);stroke:#ff4d4d}.project-btn.diy:hover .led-leg,.project-btn.diy:hover .chip-pins,.project-btn.diy.active-selected .led-leg,.project-btn.diy.active-selected .chip-pins{stroke:#ff4d4d}.project-btn.diy:hover .chip-led,.project-btn.diy.active-selected .chip-led{fill:#ff4d4d;animation:led-blink 1s infinite}@keyframes led-blink{0%,50%{fill-opacity:1;stroke-opacity:1}51%,to{fill-opacity:.3;stroke-opacity:.5}}.project-btn.research:hover:before,.project-btn.research.active-selected:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top center,rgba(42,157,143,.2),transparent 70%)}.visual-research{width:100%;height:100%;position:relative}.visual-research .tool{width:48px;height:48px;position:absolute;transition:all .6s cubic-bezier(.34,1.56,.64,1);stroke:#8be8db}.tool-document{top:40%;left:55%;transform:translate(-50%,-50%) scale(.9);z-index:2}.tool-document-2{top:40%;left:55%;transform:translate(-50%,-50%) scale(.9) rotate(-5deg);z-index:1;opacity:0;stroke:#5d6d7e;transition:all .6s cubic-bezier(.34,1.56,.64,1)}.doc-line{opacity:.3;transition:opacity .3s}.tool-glasses{top:50%;left:35%;transform:translate(-50%,-50%) scale(.8) rotate(15deg)}.tool-pen-wrapper{position:absolute;top:50%;left:70%;width:24px;height:24px;transform:translate(-180%,-120%);transition:transform .5s cubic-bezier(.19,1,.22,1);z-index:2;pointer-events:none}.tool-pen{width:100%;height:100%;transform:scale(.9);transform-origin:center center;transition:stroke .3s,transform .5s cubic-bezier(.19,1,.22,1)}.project-btn.research:hover .tool-document,.project-btn.research.active-selected .tool-document{transform:translate(5px,-100%) scale(1);stroke:#2a9d8f}.project-btn.research:hover .tool-document-2,.project-btn.research.active-selected .tool-document-2{opacity:1;transform:translate(-35px,-100%) scale(.9) rotate(-10deg);stroke:#2a9d8f}.project-btn.research:hover .doc-line,.project-btn.research.active-selected .doc-line{opacity:1;animation:scribble-appear 1s steps(3,end) infinite}@keyframes scribble-appear{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.project-btn.research:hover .tool-glasses,.project-btn.research.active-selected .tool-glasses{transform:translate(-30px,-40%) scale(1.1) rotate(0);stroke:#2a9d8f}.project-btn.research:hover .tool-pen-wrapper,.project-btn.research.active-selected .tool-pen-wrapper{transform:translate(-50%,-50%) translateY(-45px)}.project-btn.research:hover .tool-pen,.project-btn.research.active-selected .tool-pen{stroke:#2a9d8f;animation:pen-wiggle .5s ease-in-out infinite}@keyframes pen-wiggle{0%,to{transform:scale(1.1) rotate(0)}25%{transform:scale(1.1) rotate(-10deg)}75%{transform:scale(1.1) rotate(10deg)}}.project-btn.homelab:hover:before,.project-btn.homelab.active-selected:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(69,123,157,.2),transparent 70%)}.visual-homelab{width:100%;height:100%;position:relative}.tool-cloud{position:absolute;width:44px;height:44px;top:35%;left:40%;transform:translate(-50%,-50%);stroke:#ffffff80;transition:all .5s cubic-bezier(.34,1.56,.64,1);z-index:2}.tool-server{position:absolute;width:36px;height:36px;top:55%;left:60%;transform:translate(-50%,-50%);stroke:#ffffff80;transition:all .5s cubic-bezier(.34,1.56,.64,1);z-index:2}.tool-data-path{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;z-index:1;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.data-trace{stroke:#ffffff0d;transition:stroke .3s}.data-packet{fill:#a8dadc;opacity:0;transition:opacity .3s}.project-btn.homelab:hover .tool-cloud,.project-btn.homelab.active-selected .tool-cloud{stroke:#a8dadc;top:25%;left:30%;transform:translate(-50%,-50%) scale(1.1)}.project-btn.homelab:hover .tool-server,.project-btn.homelab.active-selected .tool-server{stroke:#a8dadc;top:55%;left:70%;transform:translate(-50%,-50%) scale(1.1)}.project-btn.homelab:hover .tool-data-path,.project-btn.homelab.active-selected .tool-data-path{transform:translateY(-5%) scale(1.1);transform-origin:center}.project-btn.homelab:hover .data-trace,.project-btn.homelab.active-selected .data-trace{stroke:#457b9d66}.project-btn.homelab:hover .data-packet,.project-btn.homelab.active-selected .data-packet{opacity:1}.project-btn.wip:hover:before,.project-btn.wip.active-selected:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at bottom,rgba(233,196,106,.2),transparent 70%)}.visual-wip{width:100%;height:100%;position:relative;overflow:hidden;border-radius:50%}.tool-gear-big{position:absolute;width:40px;height:40px;bottom:45%;left:38%;transform:translate(-50%,50%);stroke:#fff6;z-index:2;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.tool-gear-small{position:absolute;width:28px;height:28px;top:31%;right:38%;transform:translate(50%,-50%);stroke:#fff6;z-index:2;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.smoke-particle{position:absolute;background:#ffffff4d;border-radius:50%;pointer-events:none;opacity:0;z-index:1}.p1{width:6px;height:6px;left:40%;top:38%}.p2{width:8px;height:8px;left:55%;top:33%}.p3{width:5px;height:5px;left:48%;top:43%}.project-btn.wip:hover .tool-gear-big,.project-btn.wip.active-selected .tool-gear-big{stroke:#e9c46a;bottom:51%;left:44%;transform:translate(-50%,50%) scale(1.2);animation:gear-spin-stuck-cw 4s linear infinite;transform-origin:center}.project-btn.wip:hover .tool-gear-small,.project-btn.wip.active-selected .tool-gear-small{stroke:#e9c46a;top:37%;right:44%;transform:translate(50%,-50%) scale(1.2);animation:gear-spin-stuck-ccw 4s linear infinite;transform-origin:center}.project-btn.wip:hover .p1,.project-btn.wip.active-selected .p1{animation:smoke-rise 2s ease-out infinite .2s}.project-btn.wip:hover .p2,.project-btn.wip.active-selected .p2{animation:smoke-rise 2.5s ease-out infinite .8s}.project-btn.wip:hover .p3,.project-btn.wip.active-selected .p3{animation:smoke-rise 2.2s ease-out infinite 1.5s}@keyframes gear-spin-stuck-cw{0%{transform:translate(-50%,50%) scale(1.2) rotate(0)}40%{transform:translate(-50%,50%) scale(1.2) rotate(140deg)}45%{transform:translate(-50%,50%) scale(1.2) rotate(135deg)}50%{transform:translate(-50%,50%) scale(1.2) rotate(140deg)}55%{transform:translate(-50%,50%) scale(1.2) rotate(138deg)}60%{transform:translate(-50%,50%) scale(1.2) rotate(142deg)}to{transform:translate(-50%,50%) scale(1.2) rotate(360deg)}}@keyframes gear-spin-stuck-ccw{0%{transform:translate(50%,-50%) scale(1.2) rotate(0)}40%{transform:translate(50%,-50%) scale(1.2) rotate(-140deg)}45%{transform:translate(50%,-50%) scale(1.2) rotate(-135deg)}50%{transform:translate(50%,-50%) scale(1.2) rotate(-140deg)}55%{transform:translate(50%,-50%) scale(1.2) rotate(-138deg)}60%{transform:translate(50%,-50%) scale(1.2) rotate(-142deg)}to{transform:translate(50%,-50%) scale(1.2) rotate(-360deg)}}@keyframes smoke-rise{0%{opacity:0;transform:translateY(0) scale(1)}20%{opacity:.8;transform:translateY(-10px) scale(1.5)}to{opacity:0;transform:translateY(-40px) scale(3)}}.project-grid-container{display:flex;justify-content:center;padding:2rem;margin-top:2rem;perspective:1000px}.grid-layout{display:grid;grid-template-columns:220px 220px 220px;grid-template-rows:220px 220px 220px;gap:1.5rem;position:relative;max-width:900px}.grid-area{display:flex;justify-content:center;align-items:center}.top{grid-column:2;grid-row:1}.left{grid-column:1;grid-row:2;justify-content:flex-end}.right{grid-column:3;grid-row:2;justify-content:flex-start}.bottom{grid-column:2;grid-row:3;align-items:flex-start}.grid-connectors{grid-column:2;grid-row:2;position:relative;width:100%;height:100%;pointer-events:none}.connector{position:absolute;background:linear-gradient(to right,transparent,rgba(255,255,255,.5),transparent);transition:all .5s ease;opacity:.3}.line-top{bottom:50%;left:50%;width:2px;height:140px;transform:translate(-50%);background:linear-gradient(to top,rgba(255,255,255,.5),transparent)}.line-top.active{opacity:1;background:linear-gradient(to top,#ffffff80,#00b999);filter:drop-shadow(0 0 5px #00b999)}.line-bottom{top:50%;left:50%;width:2px;height:140px;transform:translate(-50%);background:linear-gradient(to bottom,rgba(255,255,255,.5),transparent)}.line-bottom.active{opacity:1;background:linear-gradient(to bottom,#ffffff80,#e9c46a);filter:drop-shadow(0 0 5px #e9c46a)}.line-left{right:50%;top:50%;width:140px;height:2px;transform:translateY(-50%);background:linear-gradient(to left,rgba(255,255,255,.5),transparent)}.line-left.active{opacity:1;background:linear-gradient(to left,#ffffff80,#e63946);filter:drop-shadow(0 0 5px #e63946)}.line-right{left:50%;top:50%;width:140px;height:2px;transform:translateY(-50%);background:linear-gradient(to right,rgba(255,255,255,.5),transparent)}.line-right.active{opacity:1;background:linear-gradient(to right,#ffffff80,#2d8fd5);filter:drop-shadow(0 0 5px #2d8fd5)}@media(max-width:850px){.grid-layout{display:flex;flex-direction:column;gap:2rem;align-items:center}.grid-center-connector{display:none}}.global-background{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;overflow:hidden;background:#050505;transition:background .5s ease}.bg-gradient{position:absolute;inset:-50%;width:200%;height:200%;background-color:var(--color-glow, rgba(255, 255, 255, .03));border-radius:50%;opacity:.6;transition:background-color 1s ease;filter:blur(100px);animation:bg-spin 30s linear infinite}@keyframes bg-spin{0%{transform:translate(0) rotate(0) scale(1)}25%{transform:translate(-10%,10%) rotate(90deg) scale(1.1)}50%{transform:translateY(20%) rotate(180deg) scale(1)}75%{transform:translate(10%,-10%) rotate(270deg) scale(1.1)}to{transform:translate(0) rotate(360deg) scale(1)}}.bg-overlay{position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");opacity:.4;pointer-events:none}.bg-bubbles{position:absolute;inset:0;pointer-events:none}.bubble{position:absolute;border-radius:50%;filter:blur(60px);opacity:.4;animation:float 20s infinite ease-in-out alternate;background:var(--color-bubble, rgba(255, 255, 255, .05));transition:background .5s ease}.b1{width:600px;height:600px;top:-10%;left:-10%;animation-duration:25s}.b2{width:500px;height:500px;bottom:-10%;right:-10%;animation-duration:22s;animation-delay:-5s}.b3{width:400px;height:400px;top:40%;left:40%;animation-duration:28s;animation-delay:-10s}@keyframes float{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}to{transform:translate(0) scale(1)}}.neutral{--color-glow: rgba(255, 255, 255, .03);--color-bubble: rgba(255, 255, 255, .05)}.research{--color-glow: rgba(0, 185, 153, .15);--color-bubble: rgba(142, 68, 173, .2)}.diy{--color-glow: rgba(230, 57, 70, .15);--color-bubble: rgba(255, 77, 77, .2)}.homelab{--color-glow: rgba(45, 143, 213, .15);--color-bubble: rgba(0, 180, 216, .2)}.wip{--color-glow: rgba(233, 196, 106, .15);--color-bubble: rgba(244, 162, 97, .2)}.project-card{position:relative;margin-bottom:2rem;opacity:0;animation:slideInRight .5s forwards}@keyframes slideInRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.card-dot{position:absolute;left:-2.35rem;top:1.5rem;width:12px;height:12px;border-radius:50%;background:var(--color-bg);border:2px solid rgba(255,255,255,.5);z-index:2;transition:all .3s ease}.project-card:hover .card-dot{transform:scale(1.5);background:#fff;box-shadow:0 0 10px #ffffff80}.card-glass{background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:1.5rem;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.project-card:hover .card-glass{background:#ffffff14;border-color:#fff3;transform:translate(5px)}.card-media{margin:-1.5rem -1.5rem 1rem;border-radius:12px 12px 0 0;overflow:hidden;display:flex}.project-img{flex:1;min-width:0;width:100%;height:200px;display:block;object-fit:cover;transition:transform .5s ease}.project-card:hover .project-img{transform:scale(1.05)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.card-header h3{font-size:1.25rem;margin:0;color:#fff}.card-tags{display:flex;gap:.5rem}.tag{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;background:#ffffff1a;color:var(--color-text-secondary)}.card-desc{color:var(--color-text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:1rem}.card-links{display:flex;gap:1rem}.card-link{color:#fff;text-decoration:none;font-size:.9rem;font-weight:500;opacity:.8;transition:opacity .2s}.card-link:hover{opacity:1;text-decoration:underline}.project-showcase{width:100%;max-width:1000px;margin:4rem auto;padding:2rem;opacity:0;transform:translateY(20px);transition:all .5s cubic-bezier(.19,1,.22,1);display:none}.project-showcase.active{display:block;opacity:1;transform:translateY(0);animation:fadeInSlideUp .6s forwards}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.showcase-title{text-align:center;font-size:2.5rem;margin-bottom:3rem;background:linear-gradient(to right,#fff,var(--color-text-secondary));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-1px}.project-timeline{position:relative;padding-left:2rem;border-left:2px solid rgba(255,255,255,.1)}.research .project-timeline{border-left-color:#00b999}.diy .project-timeline{border-left-color:#e63946}.wip .project-timeline{border-left-color:#e9c46a}@media(max-width:768px){.project-showcase{padding:1rem}.project-timeline{padding-left:1rem;border-left-width:1px}}.other-projects-section{margin-top:3rem;padding-left:2rem;position:relative}.expand-button-container{display:flex;justify-content:flex-start;margin-bottom:2rem}.expand-button{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--color-text-secondary);padding:.8rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .3s ease;display:flex;align-items:center;gap:.5rem;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.expand-button:hover{background:#ffffff1a;border-color:#ffffff4d;color:#fff;transform:translateY(-2px)}.project-list-items{display:flex;flex-direction:column;gap:.5rem;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.project-list-item{background:#ffffff05;border:1px solid rgba(255,255,255,.03);border-radius:8px;padding:.8rem 1.2rem;transition:all .3s cubic-bezier(.25,.8,.5,1);position:relative;overflow:hidden;cursor:pointer}.project-list-item:hover{background:#ffffff0d;border-color:#ffffff1a;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.list-item-main{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.list-item-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.list-item-info h3{margin:0;font-size:1rem;color:#eee;white-space:nowrap}.list-item-tags{display:flex;gap:.5rem}.tag.small{font-size:.65rem;padding:.1rem .4rem;background:#ffffff0d}.list-item-desc-container{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s cubic-bezier(0,1,0,1),opacity .3s ease}.project-list-item:hover .list-item-desc-container{max-height:100px;opacity:1;transition:max-height .5s cubic-bezier(.5,0,.1,1),opacity .3s ease .1s}.list-item-desc{font-size:.85rem;color:var(--color-text-secondary);margin-top:.8rem;margin-bottom:0;line-height:1.4;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}.list-item-links{display:flex;gap:1rem;margin-left:auto}.list-link{font-size:.8rem;color:var(--color-text-secondary);text-decoration:none;transition:color .2s;white-space:nowrap;opacity:.7}.list-link:hover{color:#fff;opacity:1;text-decoration:underline}@media(max-width:768px){.other-projects-section{padding-left:1rem}}.homelab-view{display:flex;flex-direction:column;align-items:center;gap:2rem;animation:fadeIn .8s ease}.homelab-intro{text-align:center;max-width:600px;color:var(--color-text-secondary)}.homelab-rack{width:100%;max-width:500px;background:#0006;border:2px solid #333;padding:1rem;border-radius:8px;display:flex;flex-direction:column;gap:.5rem}.rack-unit{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#2d8fd51a;border:1px solid rgba(45,143,213,.3);border-radius:4px;transition:all .2s ease}.rack-unit:hover{background:#2d8fd533;transform:scale(1.02)}.unit-name{font-weight:700;color:#fff}.unit-role{font-family:monospace;font-size:.9rem;color:var(--color-text-secondary)}.unit-status.online{color:#0f0;text-shadow:0 0 5px #00ff00}.homelab-projects{width:100%;max-width:600px;margin-top:2rem}.homelab-projects h3{color:var(--color-text);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5rem;margin-bottom:1rem}.homelab-project-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.homelab-project-card{background:#2d8fd50d;border:1px solid rgba(45,143,213,.2);padding:1rem;border-radius:8px;text-decoration:none;transition:all .3s ease;display:flex;flex-direction:column;gap:.5rem}.homelab-project-card:hover{background:#2d8fd526;transform:translateY(-2px);border-color:#2d8fd580}.homelab-project-card h4{margin:0;color:#fff;font-size:1rem}.homelab-project-card p{margin:0;color:var(--color-text-secondary);font-size:.85rem;line-height:1.4;flex-grow:1}.homelab-project-card .arrow{align-self:flex-end;color:#2d8fd5;font-weight:700}.footer{width:100%;padding:3rem 0;margin-top:4rem;text-align:center;color:var(--color-text-secondary);font-size:.9rem;position:relative;z-index:10}.footer p{margin:0;opacity:.7;transition:opacity .3s}.footer:hover p{opacity:1}.heart{display:inline-block;animation:heartbeat 1.5s ease-in-out infinite}.highlight{color:#fff;font-weight:500;background:linear-gradient(90deg,#fff,#888,#fff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shine 3s linear infinite}@keyframes shine{to{background-position:200% center}}.footer:hover .highlight{text-shadow:0 0 10px rgba(255,255,255,.3)}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}
