*,:before,:after{box-sizing:border-box;margin:0;padding:0}#app{opacity:0;transition:opacity .15s}#app.loaded{opacity:1}:root{--bg-primary:#fff;--bg-header:#fafafa;--bg-footer:#f5f5f5;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#888;--text-heading:#333;--accent-line:#e5e5e5;--gradient-line:linear-gradient(90deg, transparent 0%, #d0d0d0 20%, #b0b0b0 50%, #d0d0d0 80%, transparent 100%);--spotify-green:#1db954;--spotify-green-dim:#1db95426;--font-mono:"Livvic", sans-serif;--font-sans:"Livvic", sans-serif}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}a{color:var(--text-primary);text-decoration:none;transition:opacity .2s}a:hover{opacity:.6}.site-wrapper{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:640px;margin:0 auto;padding:0 24px}.site-name{font-family:var(--font-sans);letter-spacing:-.01em;color:var(--text-primary);font-size:1.6rem;font-weight:700;line-height:1.2}.local-time{font-family:var(--font-mono);color:var(--text-muted);font-variant-numeric:tabular-nums;margin:4px 0 16px;font-size:.8rem;font-weight:400}.section-divider{background:var(--gradient-line);border:none;height:1px;margin:0}.section{padding:48px 0 32px}#about{padding-top:64px}.section-title{font-family:var(--font-mono);color:var(--text-heading);letter-spacing:.04em;margin-bottom:28px;font-size:.85rem;font-weight:700}.about-text{color:var(--text-primary);font-size:.9rem;font-weight:400;line-height:1.75}.about-text p{margin-bottom:12px}.about-text p:last-child{margin-bottom:0}.about-text a{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.university-badge{vertical-align:middle;background:#22c55e;border-radius:50%;width:16px;height:16px;margin-left:4px;display:inline-block;position:relative;top:-1px}.projects-list{flex-direction:column;display:flex}.project-item{border-bottom:1px solid var(--accent-line);padding:20px 0}.project-item:first-child{border-top:1px solid var(--accent-line)}.project-header{align-items:center;gap:12px;margin-bottom:6px;display:flex}.project-year{font-family:var(--font-sans);color:var(--text-muted);min-width:36px;font-size:.85rem;font-weight:500}.project-name{font-family:var(--font-sans);color:var(--text-primary);font-size:.95rem;font-weight:600}.project-github{color:var(--text-secondary);align-items:center;display:inline-flex}.project-github svg{fill:currentColor;width:16px;height:16px}.project-description{color:var(--text-secondary);padding-left:48px;font-size:.85rem;font-weight:300;line-height:1.6}.now-playing-widget{padding:0 0 20px}.now-playing-inline{color:var(--text-secondary);background-color:var(--bg-header);border:1px solid var(--accent-line);border-radius:20px;flex-wrap:wrap;align-items:center;gap:5px;padding:8px 14px;font-size:.85rem;font-weight:400;line-height:1.6;text-decoration:none;transition:background-color .2s,opacity .2s;display:inline-flex}a.now-playing-inline:hover{background-color:var(--accent-line);opacity:1}.now-playing-inline strong{color:var(--text-primary);font-weight:600}.now-playing-inline-art{object-fit:cover;vertical-align:middle;border-radius:3px;flex-shrink:0;width:20px;height:20px}.now-playing-icon svg{width:18px;height:18px;fill:var(--spotify-green);flex-shrink:0}.now-playing-inline-text{color:var(--text-muted);font-style:italic}.last-edited{color:var(--text-muted);text-align:center;padding:24px 0 32px;font-size:.8rem;font-weight:300}@media (width<=480px){.main-content{padding:0 16px}.site-name{font-size:1.4rem}.project-description{margin-top:4px;padding-left:0}.project-header{flex-wrap:wrap}.now-playing-inline{padding:6px 12px;font-size:.8rem}}
