﻿:root{--color-bg: #ffffff;--color-bg-subtle: #f5f5f5;--color-bg-inverse: #111111;--color-text-primary: #111111;--color-text-secondary: #555555;--color-text-inverse: #f0f0f0;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-tint: #eff6ff;--color-border: #e5e5e5;--color-timeline-track: rgba(37, 99, 235, 0.2);--ease-out: cubic-bezier(0.0, 0, 0.2, 1);--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1)}@media (prefers-color-scheme: dark){:root{--color-bg: #0f0f0f;--color-bg-subtle: #1a1a1a;--color-bg-inverse: #111111;--color-text-primary: #e8e8e8;--color-text-secondary: #888888;--color-text-inverse: #111111;--color-accent: #3b82f6;--color-accent-hover: #60a5fa;--color-accent-tint: #172554;--color-border: #2a2a2a;--color-timeline-track: rgba(59, 130, 246, 0.25)}}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;background-color:var(--color-bg);color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}.main{flex:1}h1,h2,h3,h4,h5,h6{margin:0;font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;line-height:1.1}p{margin:0 0 1rem}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-hover)}ul,ol{margin:0;padding:0;list-style:none}img{display:block;max-width:100%;height:auto}button{cursor:pointer;font-family:inherit;font-size:inherit}@font-face{font-family:"Plus Jakarta Sans";src:url("/fonts/PlusJakartaSans-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Plus Jakarta Sans";src:url("/fonts/PlusJakartaSans-ExtraBold.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap}.page-title{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:2rem}@media (min-width: 768px){.page-title{font-size:3rem}}.section-title{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--color-border)}.footer{padding:2rem 1.5rem;text-align:center;font-size:.875rem;color:var(--color-text-secondary);border-top:1px solid var(--color-border);margin-top:4rem}.page-wrapper{max-width:1200px;margin:0 auto;padding:calc(4rem + 56px) 1.5rem 4rem}@media (min-width: 768px){.page-wrapper{padding:calc(4rem + 56px) 2rem 4rem}}.page-wrapper--after-hero{padding-top:3rem}@media (min-width: 768px){.page-wrapper--after-hero{padding-top:4rem}}.empty-state{color:var(--color-text-secondary);font-size:.875rem}.home-wrapper{text-align:center}.home-tagline{font-size:1.125rem;color:var(--color-text-secondary);margin-bottom:3rem;max-width:480px;margin-left:auto;margin-right:auto}.home-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.home-cta .btn{font-size:1rem;padding:1rem 3rem;border-radius:999px}.btn{display:inline-block;padding:.75rem 2rem;border-radius:999px;font-weight:700;font-size:.875rem;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;border:2px solid rgba(0,0,0,0);transition:background 150ms var(--ease-out),color 150ms var(--ease-out),border-color 150ms var(--ease-out)}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn--primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn--primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn--outline{background:rgba(0,0,0,0);color:var(--color-accent);border-color:var(--color-accent)}.btn--outline:hover{background:var(--color-accent-tint)}.btn--muted{background:rgba(0,0,0,0);color:var(--color-text-secondary);border-color:var(--color-border)}.btn--muted:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.nav{position:fixed;top:0;left:0;right:0;height:56px;background:var(--color-bg);box-shadow:0 1px 0 var(--color-border);z-index:100;display:flex;align-items:center;padding:0 1.5rem}@media (min-width: 768px){.nav{padding:0 2rem}}.nav__logo{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;font-size:1.125rem;color:var(--color-text-primary);text-decoration:none;letter-spacing:-.02em;margin-right:auto}.nav__logo:hover{color:var(--color-accent)}.nav__links{display:flex;align-items:center;gap:.25rem}.nav__link{padding:.5rem .75rem;color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-bottom:3px solid rgba(0,0,0,0);transition:color 150ms var(--ease-out),border-bottom-color 150ms var(--ease-out);line-height:53px}.nav__link:hover{color:var(--color-text-primary)}.nav__link.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent)}@media (prefers-reduced-motion: reduce){.nav__link{transition:none}}.nav__search-btn{background:none;border:none;padding:.5rem;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;margin-left:.5rem;border-radius:4px;transition:color 150ms var(--ease-out),background 150ms var(--ease-out)}.nav__search-btn:hover{color:var(--color-accent);background:var(--color-accent-tint)}.nav__search-btn svg{width:20px;height:20px}@media (prefers-reduced-motion: reduce){.nav__search-btn{transition:none}}.nav__burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;padding:.5rem;color:var(--color-text-primary);margin-left:.5rem}.nav__burger span{display:block;width:22px;height:2px;background:currentColor;border-radius:2px;transition:transform 220ms var(--ease-out),opacity 150ms var(--ease-out)}@media (prefers-reduced-motion: reduce){.nav__burger span{transition:none}}.nav.is-open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav.is-open .nav__burger span:nth-child(2){opacity:0;transform:scaleX(0)}.nav.is-open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 767px){.nav__burger{display:flex}.nav__links{display:none;position:absolute;top:56px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:0 8px 24px rgba(0,0,0,.08);padding:.5rem 0;z-index:99}.nav.is-open .nav__links{display:flex}.nav__link{padding:1rem 1.5rem;line-height:1.4;border-bottom:1px solid var(--color-border);border-left:none}.nav__link:last-of-type{border-bottom:none}.nav__search-btn{margin:0;padding:1rem 1.5rem;justify-content:flex-start;border-radius:0;width:100%;border-top:1px solid var(--color-border)}}.hero{position:relative;height:60vh;min-height:320px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-top:56px}.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center top;filter:blur(5px);transform:scale(1.1);z-index:0}.hero__veil{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(0,0,0,.35) 0%, rgba(0,0,0,.75) 100%);z-index:1}.hero__content{position:relative;z-index:2;text-align:center;padding:0 1.5rem}.hero__logo{width:auto;height:auto;max-width:280px;max-height:120px;margin:0 auto 1.25rem}.hero__logo--invert{filter:brightness(0) invert(1)}@media (min-width: 1024px){.hero__logo{max-width:420px;max-height:180px}}.hero__name{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:3rem;font-weight:800;color:#fff;letter-spacing:-.02em}@media (min-width: 768px){.hero__name{font-size:4rem}}.timeline{position:relative;padding-left:2.5rem;margin-top:2rem}.timeline::before{content:"";position:absolute;left:1rem;top:0;bottom:0;width:4px;background:var(--color-timeline-track);border-radius:2px}.timeline-entry{position:relative;margin-bottom:3rem;overflow:hidden}.timeline-entry__pin{position:absolute;left:calc(-2.5rem + 1rem - 10px);top:4px;width:20px;height:28px;background:var(--color-accent);clip-path:polygon(50% 100%, 0% 40%, 0% 0%, 100% 0%, 100% 40%);z-index:1;opacity:0;transform:translateY(-20px)}.timeline-entry.is-visible .timeline-entry__pin{animation:pin-drop 400ms var(--ease-spring) forwards}@keyframes pin-drop{from{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.timeline-entry__meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;margin-bottom:.75rem}.timeline-entry__date{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;font-size:.875rem;color:var(--color-accent);font-variant-numeric:tabular-nums}.timeline-entry__location{font-size:1rem;font-weight:700;color:var(--color-text-primary)}.timeline-entry__venue{font-size:.875rem;color:var(--color-text-secondary)}.timeline-entry__tour{font-size:.875rem;color:var(--color-text-secondary);font-style:italic;width:100%}.timeline-entry__photo{width:45%;max-width:320px;border-radius:6px;margin-bottom:1rem;display:block}.timeline-entry:nth-child(odd) .timeline-entry__photo{float:left;margin-right:1.5rem}.timeline-entry:nth-child(even) .timeline-entry__photo{float:right;margin-left:1.5rem}@media (max-width: 768px){.timeline-entry__photo{float:none !important;width:100%;max-width:100%;margin:0 0 1rem 0 !important}}@media (prefers-reduced-motion: reduce){.timeline-entry__pin{opacity:1;transform:none;animation:none !important}}.vinyl-card__link{display:block;height:100%;text-decoration:none;color:inherit}.vinyl-card{position:relative;aspect-ratio:1/1;overflow:hidden;border-radius:4px;cursor:pointer;background:var(--color-bg-subtle)}.vinyl-card img{width:100%;height:100%;object-fit:cover;display:block;transition:filter 400ms var(--ease-out),transform 300ms var(--ease-out)}.vinyl-card--wished img{filter:grayscale(100%)}.vinyl-card:hover img,.vinyl-card:focus-within img{transform:scale(1.03)}.vinyl-card--wished:hover img,.vinyl-card--wished:focus-within img{filter:grayscale(0%)}.vinyl-card__overlay{position:absolute;inset:0;background:linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.4) 40%, rgba(0,0,0,0) 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:.75rem;transform:translateY(100%);transition:transform 200ms var(--ease-out)}.vinyl-card:hover .vinyl-card__overlay,.vinyl-card:focus-within .vinyl-card__overlay{transform:translateY(0)}.vinyl-card__title{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:700;font-size:.875rem;color:#fff;margin:0 0 .25rem;line-height:1.3}.vinyl-card__artist{font-size:.75rem;color:rgba(255,255,255,.8);margin:0;text-transform:capitalize}.vinyl-card__discogs{display:block;font-size:.75rem;color:rgba(255,255,255,.5);margin-top:.5rem}@keyframes rising-star{0%{transform:translateY(10px) scale(.4);opacity:0}55%{transform:translateY(-5px) scale(1.35);opacity:1}75%{transform:translateY(1px) scale(.92)}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes star-glow{0%, 100%{box-shadow:0 2px 6px rgba(0,0,0,.4)}50%{box-shadow:0 0 0 3px rgba(253,224,71,.5),0 0 14px rgba(253,224,71,.6)}}@keyframes heartbeat{0%{transform:scale(1)}15%{transform:scale(1.35)}30%{transform:scale(1)}45%{transform:scale(1.22)}65%{transform:scale(1)}100%{transform:scale(1)}}@keyframes thumb-wiggle{0%{transform:rotate(0deg) scale(1);animation-timing-function:ease-in}30%{transform:rotate(-20deg) scale(1);animation-timing-function:cubic-bezier(.4, 0, .2, 1)}65%{transform:rotate(25deg) scale(1.18);animation-timing-function:ease-out}100%{transform:rotate(0deg) scale(1)}}.vinyl-card__rank{position:absolute;top:.5rem;left:.5rem;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1;box-shadow:0 2px 6px rgba(0,0,0,.4);color:#fff}.vinyl-card__rank--1{background:rgba(253,224,71,.95);color:#1a1a1a}.vinyl-card__rank--2{background:rgba(239,68,68,.95)}.vinyl-card__rank--3{background:rgba(71,85,105,.92)}.vinyl-card:hover .vinyl-card__rank--1{animation:rising-star .65s cubic-bezier(.34, 1.56, .64, 1) forwards,star-glow 1.6s ease-in-out .65s infinite}.vinyl-card:hover .vinyl-card__rank--2{animation:heartbeat 1.3s ease-in-out .1s infinite}.vinyl-card:hover .vinyl-card__rank--3{animation:thumb-wiggle .9s ease-in-out 1 forwards}.rank-legend{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem;flex-wrap:wrap}.rank-legend__item{display:flex;align-items:center;gap:.5rem}.rank-legend__badge{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;line-height:1;box-shadow:0 2px 6px rgba(0,0,0,.25);flex-shrink:0;color:#fff}.rank-legend__badge--1{background:rgba(253,224,71,.95);color:#1a1a1a;animation:rising-star .65s cubic-bezier(.34, 1.56, .64, 1) forwards,star-glow 1.6s ease-in-out .65s infinite}.rank-legend__badge--2{background:rgba(239,68,68,.95);animation:heartbeat 1.3s ease-in-out .1s infinite}.rank-legend__badge--3{background:rgba(71,85,105,.92);animation:thumb-wiggle 1.2s ease-in-out infinite}.rank-legend__label{font-size:.875rem;color:var(--color-text-secondary)}.vinyl-card--wished::after{content:"✦ Wishlist";position:absolute;top:.5rem;right:.5rem;background:#c9960c;color:#fff;font-size:.75rem;font-weight:700;padding:2px .5rem;border-radius:999px;pointer-events:none;box-shadow:0 1px 4px rgba(0,0,0,.4)}@media (prefers-reduced-motion: reduce){.vinyl-card img,.vinyl-card__overlay{transition:none}.vinyl-card:hover .vinyl-card__rank--1,.vinyl-card:hover .vinyl-card__rank--2,.vinyl-card:hover .vinyl-card__rank--3,.rank-legend__badge--1,.rank-legend__badge--2,.rank-legend__badge--3{animation:none}.vinyl-card__overlay{transform:none;background:linear-gradient(to top, rgba(0,0,0,.7) 0%, rgba(0,0,0,0) 60%)}.vinyl-card--wished img{filter:grayscale(100%)}.vinyl-card--wished:hover img{filter:grayscale(0%)}}.sort-bar{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap}.sort-btn{border:2px solid var(--color-accent);color:var(--color-accent);background:rgba(0,0,0,0);padding:.5rem 1.25rem;border-radius:999px;font-size:.875rem;font-weight:700;letter-spacing:.03em;transition:background 150ms var(--ease-out),color 150ms var(--ease-out)}.sort-btn:hover{background:var(--color-accent-tint)}.sort-btn--active{background:var(--color-accent);color:#fff}.sort-btn--active:hover{background:var(--color-accent-hover)}@media (prefers-reduced-motion: reduce){.sort-btn{transition:none}}.vinyl-group-label{grid-column:1/-1;font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-weight:800;font-size:.875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);padding:2rem 0 .75rem;border-bottom:2px solid var(--color-border)}.vinyl-group-label--first{padding-top:0}.vinyl-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));gap:1rem}@media (min-width: 480px){.vinyl-grid{grid-template-columns:repeat(auto-fill, minmax(180px, 1fr))}}@media (min-width: 1024px){.vinyl-grid{grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:1.5rem}}.artists-list{list-style:none;padding:0;margin:0}.artists-list__letter{position:sticky;top:56px;background:var(--color-bg);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);padding:.5rem .5rem;border-bottom:1px solid var(--color-border);z-index:10;margin-bottom:.25rem}.artists-list__row{display:flex;align-items:center;gap:1rem;padding:1rem .5rem;text-decoration:none;color:var(--color-text-primary);border-left:3px solid rgba(0,0,0,0);border-bottom:1px solid var(--color-border);transition:transform 150ms var(--ease-out),border-left-color 150ms var(--ease-out)}.artists-list__row:hover{transform:translateX(4px);border-left-color:var(--color-accent)}.artists-list__row:last-child{border-bottom:none}@media (prefers-reduced-motion: reduce){.artists-list__row{transition:none}}.artists-list__logo{width:44px;height:44px;aspect-ratio:1/1;object-fit:contain;flex-shrink:0;background:rgba(255,255,255,.9);border-radius:4px;padding:.25rem}.artists-list__logo--invert{background:rgba(0,0,0,0);filter:invert(1)}@media (prefers-color-scheme: dark){.artists-list__logo--invert{filter:none}}.artists-list__initials{width:44px;height:44px;border-radius:50%;background:var(--color-bg-inverse);color:#fff;font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.875rem;font-weight:800;letter-spacing:-.02em;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.artists-list__name{font-size:1.125rem;font-weight:700;flex-grow:1}.artists-list__badge{font-size:.75rem;color:var(--color-text-secondary);white-space:nowrap;margin-left:auto}.artists-list__arrow{color:var(--color-text-secondary);font-size:.875rem;margin-left:.5rem}.concerts-list{list-style:none;padding:0;margin:0}.concerts-list__year{position:sticky;top:56px;background:var(--color-bg);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);padding:.5rem;border-bottom:1px solid var(--color-border);z-index:10;margin-bottom:.25rem}.concerts-list__row{display:grid;grid-template-columns:7rem 1fr;gap:.5rem 1rem;padding:1rem .5rem;text-decoration:none;color:var(--color-text-primary);border-left:3px solid rgba(0,0,0,0);border-bottom:1px solid var(--color-border);transition:transform 150ms var(--ease-out),border-left-color 150ms var(--ease-out)}@media (min-width: 768px){.concerts-list__row{grid-template-columns:8rem 1fr auto;align-items:center}}.concerts-list__row:hover{transform:translateX(4px);border-left-color:var(--color-accent)}.concerts-list__row:last-child{border-bottom:none}@media (prefers-reduced-motion: reduce){.concerts-list__row{transition:none}}.concerts-list__date{font-size:.875rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.concerts-list__artist{font-weight:700;font-size:1rem}.concerts-list__venue{font-size:.875rem;color:var(--color-text-secondary);grid-column:2}@media (min-width: 768px){.concerts-list__venue{grid-column:auto;text-align:right}}.concerts-count{font-size:.875rem;color:var(--color-text-secondary);margin-top:-1rem;margin-bottom:2rem}.tribute-badge{display:inline-block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:1px .5rem;border-radius:3px;background:#fef3c7;color:#92400e;border:1px solid #fde68a;vertical-align:middle;margin-left:.5rem}@media (prefers-color-scheme: dark){.tribute-badge{background:#451a03;color:#fcd34d;border-color:#78350f}}.concerts-list__tour{font-size:.75rem;color:var(--color-text-secondary);font-style:italic;display:none}@media (min-width: 768px){.concerts-list__tour{display:block}}.search-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;transform:translateY(-100%);transition:transform 300ms var(--ease-out)}.search-overlay.is-open{transform:translateY(0);pointer-events:all}@media (prefers-reduced-motion: reduce){.search-overlay{transition:none;transform:none;display:none}.search-overlay.is-open{display:block}}.search-overlay__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}.search-overlay__panel{position:relative;background:var(--color-bg);padding:1.5rem 1.5rem 2rem;max-width:640px;margin:0 auto;box-shadow:0 8px 32px rgba(0,0,0,.15)}@media (max-width: 767px){.search-overlay__panel{padding:1rem 1rem 1.5rem}}#search-input{width:100%;font-size:1.5rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;border:none;border-bottom:2px solid var(--color-accent);outline:none;padding:.5rem 0;background:rgba(0,0,0,0);color:var(--color-text-primary)}#search-input::placeholder{color:var(--color-text-secondary)}.search-results{margin-top:1rem;min-height:2rem}.search-results__list{list-style:none;padding:0;margin:0}.search-results__item a{display:block;padding:.75rem .5rem;color:var(--color-text-primary);text-decoration:none;border-bottom:1px solid var(--color-border);transition:color 100ms var(--ease-out),padding-left 100ms var(--ease-out);font-weight:700}.search-results__item a:hover{color:var(--color-accent);padding-left:.75rem}@media (prefers-reduced-motion: reduce){.search-results__item a{transition:none}}.search-results__empty{color:var(--color-text-secondary);font-size:.875rem;padding:.75rem 0}