*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a0f;--bg-card:#12121a;--bg-card-hover:#181824;--bg-surface:#1a1a28;--border-color:#1e1e2e;--border-hover:#2a2a3e;--text-primary:#f0f0f5;--text-secondary:#a0a0b0;--text-muted:#606070;--color-success:#4ade80;--color-danger:#ef4444;--color-warning:#f59e0b;--color-accent:#818cf8;--color-accent-dim:#818cf81a;--radius:12px;--radius-sm:8px;--radius-xs:6px;--transition:.2s ease;--font-mono:"SF Mono", "Fira Code", "Cascadia Code", monospace}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}.container{max-width:1200px;margin:0 auto;padding:2rem 1.5rem 4rem}.section{margin-bottom:3rem}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1.25rem;font-size:1.125rem;font-weight:600}.grid{gap:1.25rem;display:grid}.grid--3{grid-template-columns:repeat(3,1fr)}@media (width<=900px){.grid--3{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.grid--3{grid-template-columns:1fr}}.grid--projects{grid-template-columns:repeat(auto-fit,minmax(320px,520px));justify-content:center;gap:1.5rem}.tabs{border-bottom:1px solid var(--border-color);gap:.25rem;margin-bottom:2rem;display:flex}.tab{color:var(--text-muted);transition:color var(--transition), border-color var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem 1rem;font-size:.95rem;font-weight:600}.tab:hover{color:var(--text-secondary)}.tab--active{color:var(--text-primary);border-bottom-color:var(--color-accent)}.page-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.5rem;padding-bottom:1.5rem;display:flex}.page-header__title{letter-spacing:-.03em;font-size:2rem;font-weight:700;line-height:1.2}.page-header__tagline{color:var(--text-secondary);margin-top:.5rem;font-size:.95rem}.page-header__side{flex-shrink:0;align-items:center;gap:1.25rem;padding-bottom:.25rem;display:flex}@media (width<=600px){.page-header{flex-direction:column;align-items:flex-start;gap:1rem}}.icon-link{color:var(--text-secondary);transition:color var(--transition);align-items:center;gap:.375rem;font-size:.85rem;font-weight:500;display:inline-flex}.icon-link:hover{color:var(--text-primary)}.page-header__status{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot--connected{background-color:var(--color-success);animation:2s ease-in-out infinite pulse;box-shadow:0 0 8px #4ade8080}.status-dot--disconnected{background-color:var(--color-danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius);transition:border-color var(--transition), transform var(--transition), background var(--transition);padding:1.5rem}.card:hover{border-color:var(--border-hover)}.card--skeleton{min-height:160px}.skeleton{background:linear-gradient(90deg, var(--bg-surface) 25%, var(--bg-card-hover) 50%, var(--bg-surface) 75%);border-radius:var(--radius-xs);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.skeleton--title{width:60%;height:1.25rem;margin-bottom:1rem}.skeleton--text{width:80%;height:.875rem;margin-bottom:.625rem}.skeleton--bar{width:100%;height:.5rem;margin-top:1rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;align-items:center;padding:.25rem .625rem;font-size:.7rem;font-weight:700;display:inline-flex}.badge--up{color:var(--color-success);background:#4ade801f;border:1px solid #4ade8040}.badge--down{color:var(--color-danger);background:#ef44441f;border:1px solid #ef444440}.text-green{color:var(--color-success)}.text-red{color:var(--color-danger)}.badge--unknown{color:var(--text-secondary);background:#a0a0b01f;border:1px solid #a0a0b040}.btn{border-radius:var(--radius-sm);transition:all var(--transition);cursor:pointer;border:none;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;font-weight:500;display:inline-flex}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover{opacity:.85}.btn--secondary{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary)}.btn--secondary:hover{background:var(--bg-card-hover);border-color:var(--border-hover);color:var(--text-primary)}.metric-card__header{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.metric-card__icon{font-size:1.25rem}.metric-card__title{color:var(--text-secondary);font-size:.95rem;font-weight:600}.metric-card__value-row{align-items:baseline;gap:.375rem;margin-bottom:.75rem;display:flex}.metric-card__value{font-size:1.75rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-.02em}.metric-card__sub{color:var(--text-muted);font-size:.85rem;font-family:var(--font-mono)}.metric-card__percent{color:var(--text-muted);font-size:.8rem;font-family:var(--font-mono);text-align:right;margin-top:.5rem;display:block}.progress-bar{background:var(--bg-surface);border-radius:999px;width:100%;height:6px;overflow:hidden}.progress-bar__fill{border-radius:999px;height:100%;transition:width .6s}.project-card{flex-direction:column;padding:1.75rem;display:flex}.project-card:hover{background:var(--bg-card-hover);transform:translateY(-2px)}.project-card__header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.project-card__name{letter-spacing:-.02em;font-size:1.35rem;font-weight:700}.project-card__desc{color:var(--text-secondary);margin-bottom:1.25rem;font-size:.925rem;line-height:1.65}.project-card__status{border-top:1px solid var(--border-color);gap:2rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.project-card__status-item dt{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.25rem;font-size:.7rem;font-weight:600}.project-card__status-item dd{font-family:var(--font-mono);color:var(--text-secondary);font-size:.875rem}.project-card__actions{justify-content:space-between;align-items:center;gap:.75rem;margin-top:auto;padding-top:1.5rem;display:flex}.project-card__links{gap:1rem;display:flex}.tag-list{flex-wrap:wrap;gap:.375rem;display:flex}.tag-list--lg{gap:.5rem}.tag{color:var(--color-accent);background:var(--color-accent-dim);white-space:nowrap;border-radius:999px;padding:.2rem .5rem;font-size:.7rem;font-weight:500;display:inline-block}.tag--lg{padding:.3rem .75rem;font-size:.8rem}.gallery{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.gallery--1{grid-template-columns:minmax(0,860px)}.gallery--2{grid-template-columns:repeat(2,1fr)}@media (width<=700px){.gallery,.gallery--2{grid-template-columns:1fr}}.gallery__item{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius);cursor:zoom-in;transition:border-color var(--transition), transform var(--transition);padding:0;display:block;overflow:hidden}.gallery__item:hover{border-color:var(--border-hover);transform:translateY(-2px)}.gallery__item img{width:100%;height:auto;display:block}.lightbox{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.lightbox__img{border-radius:var(--radius-sm);border:1px solid var(--border-hover);cursor:default;max-width:100%;max-height:100%}.lightbox__counter{font-family:var(--font-mono);color:var(--text-secondary);font-size:.8rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.lightbox__close{color:var(--text-secondary);transition:color var(--transition);background:0 0;border:none;font-size:2rem;line-height:1;position:fixed;top:1rem;right:1.25rem}.lightbox__close:hover{color:var(--text-primary)}.btn-back{color:var(--text-secondary);transition:color var(--transition);background:0 0;border:none;align-items:center;gap:.375rem;margin-bottom:1.5rem;padding:.5rem 0;font-size:.9rem;display:inline-flex}.btn-back:hover{color:var(--text-primary)}.project-header{margin-bottom:2.5rem}.project-header__title{letter-spacing:-.03em;margin-bottom:.75rem;font-size:2.25rem;font-weight:700}.project-header__desc{color:var(--text-secondary);max-width:700px;margin-bottom:1.5rem;font-size:1.05rem;line-height:1.7}.project-header__links{gap:.75rem;display:flex}.tech-stack-section{margin-bottom:2.5rem}.achievement-list{flex-direction:column;gap:1rem;display:flex}.achievement-card{align-items:flex-start;gap:1.25rem;display:flex}.achievement-card__number{font-family:var(--font-mono);color:var(--color-accent);opacity:.5;min-width:2.5rem;padding-top:.25rem;font-size:1.5rem;font-weight:700;line-height:1}.achievement-card__content{flex:1}.achievement-card__title{margin-bottom:.375rem;font-size:1.05rem;font-weight:600}.achievement-card__desc{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.achievement-card__metric{letter-spacing:-.01em;color:var(--color-success);border-radius:var(--radius-xs);background:#4ade8014;margin-top:.625rem;padding:.25rem .75rem;font-size:1rem;font-weight:600;display:inline-block}.detail-loading,.detail-error{text-align:center;padding:4rem 0}.detail-loading .skeleton{margin:0 auto 1rem}.detail-error p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1.05rem}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}::selection{background:#818cf84d}
