@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap";
.homelab-page{--hl-bg-grid:#ebe5d6;--hl-accent-light:#b8495c;--hl-success:#2d7a4e;--hl-warning:#c97a1f;--hl-info:#4a6b8a;--hl-border:#8b263533;--hl-border-strong:#8b263566;--hl-shadow-sm:0 2px 4px #1a1a1a1a;--hl-shadow-md:0 4px 12px #1a1a1a26;--hl-shadow-3d:1px 1px 0 var(--accent-red-dark),2px 2px 0 var(--accent-red-dark),3px 3px 0 var(--accent-red-dark);--hl-shadow-3d-hover:1px 1px 0 var(--accent-red-dark),2px 2px 0 var(--accent-red-dark),3px 3px 0 var(--accent-red-dark),4px 4px 0 var(--accent-red-dark);--hl-spacing-xs:.5rem;--hl-spacing-sm:1rem;--hl-spacing-md:1.5rem;--hl-spacing-lg:2rem;--hl-spacing-xl:3rem;--hl-spacing-2xl:4rem;background:var(--background);min-height:100vh;color:var(--text-primary);font-family:var(--body-font),"Zalando Sans",sans-serif;letter-spacing:.01em;border-radius:2rem;font-weight:600}.homelab-container{max-width:1400px;padding:var(--hl-spacing-2xl)var(--hl-spacing-lg);margin:0 auto}.homelab-hero-title{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;letter-spacing:.02em;color:var(--text-primary);margin-bottom:var(--hl-spacing-md);font-size:3.5rem;font-weight:700;line-height:1.2;display:inline-block;position:relative}.homelab-hero-title:after{content:"";background:var(--accent-red);border-radius:2px;width:100px;height:4px;position:absolute;bottom:-12px;left:0}.homelab-section-heading{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;color:var(--text-primary);margin-bottom:var(--hl-spacing-lg);margin-top:var(--hl-spacing-2xl);letter-spacing:.02em;align-items:center;gap:var(--hl-spacing-sm);font-size:2rem;font-weight:700;display:flex}.homelab-section-heading:before{content:"";background:var(--accent-red);width:4px;height:28px;box-shadow:2px 0 0 var(--accent-red-dark);border-radius:2px}.homelab-subsection-heading{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;color:var(--accent-red);margin-bottom:var(--hl-spacing-md);margin-top:var(--hl-spacing-lg);letter-spacing:.02em;font-size:1.5rem;font-weight:700}.homelab-card-title{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;color:var(--text-primary);margin-bottom:var(--hl-spacing-sm);letter-spacing:.01em;font-size:1.25rem;font-weight:700}.homelab-intro,.homelab-intro-text{color:var(--text-secondary);margin-bottom:var(--hl-spacing-md);font-size:1.0625rem;font-weight:500;line-height:1.7}.homelab-intro p{margin-bottom:var(--hl-spacing-md)}.homelab-bold{color:var(--text-primary);font-weight:700}.homelab-section{margin-bottom:var(--hl-spacing-2xl)}.homelab-subsection{margin-bottom:var(--hl-spacing-xl)}.homelab-card{background:var(--bg-card-white);border:2px solid var(--accent-red);padding:var(--hl-spacing-md);margin-bottom:var(--hl-spacing-md);box-shadow:var(--hl-shadow-3d);border-radius:6px;transition:all .2s;position:relative}.homelab-card:hover{box-shadow:var(--hl-shadow-3d-hover);transform:translate(-1px,-1px)}.homelab-card p{color:var(--text-secondary);margin:0;font-weight:500;line-height:1.6}.homelab-card-group{gap:var(--hl-spacing-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.homelab-table-container{background:var(--bg-card-white);border:2px solid var(--accent-red);margin-bottom:var(--hl-spacing-lg);box-shadow:var(--hl-shadow-3d);border-radius:6px;overflow:hidden}.homelab-table{border-collapse:collapse;width:100%}.homelab-table thead{background:linear-gradient(180deg,var(--bg-paper-dark)0%,var(--hl-bg-grid)100%);border-bottom:2px solid var(--accent-red)}.homelab-table th{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;text-align:left;padding:var(--hl-spacing-md);color:var(--accent-red-dark);letter-spacing:.02em;font-size:.9375rem;font-weight:700}.homelab-table td{padding:var(--hl-spacing-md);border-bottom:1px solid var(--hl-border);font-weight:500;transition:background-color .2s}.homelab-table tbody tr:hover td{background-color:#8b263508}.homelab-table td:first-child{color:var(--text-primary);font-family:JetBrains Mono,Ubuntu Mono,monospace;font-size:.9375rem;font-weight:600}.homelab-table td:last-child{color:var(--text-secondary)}.homelab-table tbody tr:last-child td{border-bottom:none}.homelab-table .hw-icon{background:linear-gradient(135deg,var(--accent-red),var(--accent-red-dark));width:28px;height:28px;margin-right:var(--hl-spacing-xs);vertical-align:middle;box-shadow:1px 1px 0 var(--accent-red-dark);border-radius:4px;display:inline-block}.homelab-list{color:var(--text-secondary);margin:0;padding:0;list-style:none}.homelab-list li{margin-bottom:var(--hl-spacing-sm);padding-left:var(--hl-spacing-md);font-weight:500;line-height:1.6;position:relative}.homelab-list li:before{content:"▸";color:var(--accent-red);font-weight:700;position:absolute;top:0;left:0}.homelab-list li:last-child{margin-bottom:0}.homelab-skills-grid{gap:var(--hl-spacing-md);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.homelab-card-full{grid-column:1/-1}.service-status{text-transform:uppercase;letter-spacing:.05em;background:var(--bg-card-white);border:1.5px solid;border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-family:JetBrains Mono,Ubuntu Mono,monospace;font-size:.75rem;font-weight:600;display:inline-flex}.service-status:before{content:"●";font-size:.875rem;animation:2s ease-in-out infinite pulse}.service-status.running{color:var(--hl-success);border-color:var(--hl-success)}.service-status.planned{color:var(--hl-warning);border-color:var(--hl-warning)}.service-status.maintenance{color:var(--text-tertiary);border-color:var(--text-tertiary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.homelab-security-short{font-size:.9375rem;font-weight:700;color:var(--accent-red)!important;margin-bottom:var(--hl-spacing-sm)!important}.icon-placeholder{background:linear-gradient(135deg,var(--accent-red),var(--accent-red-dark));border:2px solid var(--accent-red-dark);width:48px;height:48px;color:var(--bg-card-white);margin-bottom:var(--hl-spacing-sm);box-shadow:2px 2px 0 var(--accent-red-dark);border-radius:6px;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:1.25rem;font-weight:700;transition:all .2s;display:flex}.homelab-card:hover .icon-placeholder{box-shadow:3px 3px 0 var(--accent-red-dark);transform:translate(-1px,-1px)}.icon-placeholder-lg{width:64px;height:64px;font-size:1.75rem}.tech-spec{color:var(--accent-red);border:1px solid var(--hl-border);background:#8b263514;border-radius:3px;margin:2px;padding:3px 8px;font-family:JetBrains Mono,Ubuntu Mono,monospace;font-size:.8125rem;font-weight:600;display:inline-block}@media (max-width:1024px){.homelab-container{padding:var(--hl-spacing-xl)var(--hl-spacing-md)}.homelab-hero-title{font-size:3rem}.homelab-section-heading{font-size:1.75rem}}@media (max-width:768px){.homelab-container{padding:var(--hl-spacing-lg)var(--hl-spacing-md)}.homelab-hero-title{font-size:2.5rem}.homelab-section-heading{font-size:1.5rem}.homelab-subsection-heading{font-size:1.25rem}.homelab-card-group,.homelab-skills-grid{grid-template-columns:1fr}.homelab-table th,.homelab-table td{padding:var(--hl-spacing-sm);font-size:.875rem}}@media (max-width:480px){.homelab-container{padding:var(--hl-spacing-md)var(--hl-spacing-sm)}.homelab-hero-title{font-size:2rem}.homelab-section-heading{font-size:1.25rem}.homelab-table th,.homelab-table td{padding:var(--hl-spacing-xs);font-size:.8125rem}.homelab-card{padding:var(--hl-spacing-sm)}}.text-accent{color:var(--accent-red)}.text-muted{color:var(--text-tertiary)}.gradient-text{background:linear-gradient(90deg,var(--accent-red),var(--accent-red-dark));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}
.hardware-item{transition:background-color .2s}.hardware-item__type{color:var(--text-primary);font-family:JetBrains Mono,Ubuntu Mono,monospace;font-size:.9375rem;font-weight:600}.hardware-item__type-content{align-items:center;gap:.75rem;display:flex}.hardware-item__icon{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:4px;display:flex}.hardware-item__icon:empty:before{content:"◆";color:var(--bg-card-white);font-size:.875rem;font-weight:700}.hardware-item__link{color:var(--text-primary);font-weight:600;text-decoration:none;transition:color .2s;position:relative}.hardware-item__link:after{content:"";background:var(--accent-red);width:0;height:2px;transition:width .3s;position:absolute;bottom:-2px;left:0}.hardware-item__link:hover{color:var(--accent-red)}.hardware-item__link:hover:after{width:100%}.hardware-item__spec{color:var(--text-secondary);font-weight:500}.hardware-item--clickable{cursor:pointer}
.service-card{background:var(--bg-card-white);border:2px solid var(--accent-red);max-height:400px;box-shadow:1px 1px 0 1px var(--accent-red-dark),2px 2px 0 1px var(--accent-red-dark),3px 3px 0 1px var(--accent-red-dark),4px 4px 0 1px var(--accent-red-dark);border-radius:6px;flex-direction:column;gap:1rem;padding:1.5rem;transition:all .175s ease-in-out;display:flex;position:relative;overflow:visible}.service-card:hover{box-shadow:1px 1px 0 1px var(--accent-red-dark),2px 2px 0 1px var(--accent-red-dark),3px 3px 0 1px var(--accent-red-dark),4px 4px 0 1px var(--accent-red-dark),5px 5px 0 1px var(--accent-red-dark);transform:translate(-1px,-1px)}.service-card:active{box-shadow:0 0 1px var(--accent-red-dark);transform:translate(4px,4px)}.service-card__header{flex-shrink:0;align-items:center;gap:.75rem;height:48px;margin:3px 0;display:flex;overflow:hidden}.service-card__icon{background:var(--bg-paper-light);border:2px solid var(--accent-red-dark);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;padding:8px;font-size:.5rem;transition:all .2s;display:flex}.service-card__title{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;color:var(--text-primary);letter-spacing:.01em;-webkit-line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;font-size:1.25rem;font-weight:700;line-height:1.2;display:-webkit-box;overflow:hidden}.service-card__body{background-color:#0000;background-image:linear-gradient(#fff 30%,#fff0),linear-gradient(#fff0,#fff 70%),radial-gradient(farthest-side at 50% 0,#0000004d,#0000),radial-gradient(farthest-side at 50% 100%,#0000004d,#0000);background-position:top,bottom,top,bottom;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 14px,100% 14px;background-attachment:local,local,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;flex-grow:1;min-height:0;overflow-y:auto}.service-card__description{color:var(--text-secondary);margin-bottom:1rem;font-size:.9375rem;font-weight:500;line-height:1.6}.service-card__tags{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.service-card__tag{font-family:var(--code-font);color:var(--accent-red);border:1px solid var(--hl-border);text-transform:uppercase;letter-spacing:.05em;background:#8b263514;border-radius:3px;padding:4px 10px;font-size:.75rem;font-weight:400}.service-card__footer{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.service-card__link{font-family:var(--heading-font),"Zalando Sans SemiExpanded",sans-serif;color:var(--accent-red);letter-spacing:.01em;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;position:relative}.service-card__link:after{content:"";background:var(--accent-red);width:0;height:2px;transition:width .3s;position:absolute;bottom:-2px;left:0}.service-card__link:hover{color:var(--accent-red-dark);transform:translate(4px)}.service-card__link:hover:after{width:100%}.service-card__status{font-family:var(--code-font);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-card-white);border:1.5px solid;border-radius:4px;align-items:center;gap:6px;margin-left:auto;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.service-card__status:before{content:"●";font-size:.875rem;animation:2s ease-in-out infinite pulse}.service-card__status--running{color:var(--hl-success);border-color:var(--hl-success)}.service-card__status--planned{color:var(--hl-warning);border-color:var(--hl-warning)}.service-card__status--maintenance{color:var(--text-tertiary);border-color:var(--text-tertiary)}.service-card__status--offline{color:#c91f37;border-color:#c91f37}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}
.ribbon-container{z-index:999;border-top-right-radius:2rem;width:15rem;height:15rem;position:fixed;top:0;right:0;overflow:hidden}#ribbon{background-color:var(--accent-red);text-transform:uppercase;text-align:center;width:30rem;height:3rem;color:var(--bg-paper-light);font-family:tahoma,serif;font-weight:700;line-height:3rem;position:absolute;top:5rem;right:-9rem;transform:rotate(45deg);box-shadow:0 -5px 10px #0000004d}#ribbon:after{content:"Under Construction"}
