  :root{
    --ink:#1C2019;
    --ink-soft:#242A22;
    --paper:#EDE3CB;
    --paper-dim:#DCCFAE;
    --amber:#E8A33D;
    --rust:#B5432E;
    --moss:#4B5D45;
    --charcoal:#262622;
    --cream:#F2ECDC;
    --line: rgba(242,236,220,0.14);
    --line-dark: rgba(38,38,34,0.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ink);
    color:var(--cream);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{font-family:'Fraunces',serif; margin:0; font-weight:600;}
  .mono{font-family:'IBM Plex Mono',monospace;}
  a{color:inherit;}
  img,svg{display:block; max-width:100%;}

  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* ---------- NAV ---------- */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(28,32,25,0.88);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:76px;
  }
  .brand{
    font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem;
    letter-spacing:0.01em;
  }
  .brand em{font-style:italic; font-weight:400; color:var(--amber);}
  .navlinks{display:flex; gap:32px; font-family:'IBM Plex Mono',monospace; font-size:0.78rem; letter-spacing:0.06em; text-transform:uppercase;}
  .navlinks a{text-decoration:none; opacity:0.75; transition:opacity .2s;}
  .navlinks a:hover, .navlinks a:focus-visible{opacity:1; color:var(--amber);}

  /* ---------- HERO ---------- */
  .hero{
    padding:96px 0 88px;
    border-bottom:1px solid var(--line);
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:center;
  }
  .eyebrow{
    font-family:'IBM Plex Mono',monospace; font-size:0.75rem; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--amber); margin-bottom:22px; display:block;
  }
  .hero h1{
    font-size:clamp(2.6rem, 5.2vw, 4.4rem);
    line-height:1.02;
    letter-spacing:-0.01em;
    color:var(--cream);
  }
  .hero h1 em{font-style:italic; font-weight:400; color:var(--amber);}
  .hero p.lede{
    margin-top:26px; max-width:44ch; font-size:1.08rem; line-height:1.6;
    color:rgba(242,236,220,0.78);
  }
  .cta-row{display:flex; align-items:center; gap:22px; margin-top:38px;}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--amber); color:var(--ink);
    font-family:'IBM Plex Mono',monospace; font-size:0.82rem; letter-spacing:0.04em;
    text-transform:uppercase; text-decoration:none;
    padding:15px 26px; border-radius:2px; border:none; cursor:pointer;
    transition:transform .18s ease, background .18s ease;
  }
  .btn:hover, .btn:focus-visible{background:#f2b458; transform:translateY(-2px);}
  .btn:focus-visible{outline:2px solid var(--cream); outline-offset:3px;}
  .subtle-link{font-family:'IBM Plex Mono',monospace; font-size:0.8rem; text-decoration:underline; text-underline-offset:4px; opacity:0.7;}
  .subtle-link:hover{opacity:1;}

  .groove-art{aspect-ratio:1/1; width:100%;}

  /* ---------- SECTION LABELS ---------- */
  .section{padding:96px 0; border-bottom:1px solid var(--line);}
  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    margin-bottom:52px; gap:24px; flex-wrap:wrap;
  }
  .section-head .tag{
    font-family:'IBM Plex Mono',monospace; font-size:0.75rem; letter-spacing:0.14em;
    text-transform:uppercase; color:var(--amber); display:block; margin-bottom:14px;
  }
  .section-head h2{font-size:clamp(1.9rem,3vw,2.6rem); color:var(--cream);}
  .section-head p{max-width:38ch; color:rgba(242,236,220,0.65); line-height:1.55; font-size:0.98rem;}

  /* ---------- RECORD GRID ---------- */
  .record-grid{
    display:grid; grid-template-columns:repeat(auto-fill, minmax(210px,1fr)); gap:28px;
  }
  .record-card{
    background:transparent; border:none; text-align:left; cursor:pointer; color:inherit;
    font-family:inherit; padding:0;
  }
  .sleeve{
    position:relative; border-radius:4px; overflow:hidden;
    border:1px solid var(--line); background:var(--ink-soft);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .record-card:hover .sleeve, .record-card:focus-visible .sleeve{
    transform:translateY(-6px);
    box-shadow:0 18px 34px rgba(0,0,0,0.4);
  }
  .sleeve svg{width:100%; height:100%; display:block;}

  /* needle drop signature interaction */
  .needle{
    position:absolute; top:-6px; right:22px; width:3px; height:26px;
    background:var(--cream); transform-origin:top center;
    transform:rotate(-38deg); transition:transform .35s cubic-bezier(.2,.9,.3,1.2);
    border-radius:2px; opacity:0.9;
  }
  .needle::after{
    content:""; position:absolute; bottom:-4px; left:-2.5px; width:8px; height:8px;
    border-radius:50%; background:var(--amber);
  }
  .record-card:hover .needle, .record-card:focus-visible .needle{transform:rotate(2deg);}
  @media (prefers-reduced-motion:reduce){
    .needle, .sleeve{transition:none;}
  }

  .rec-meta{margin-top:14px;}
  .rec-title{font-family:'Fraunces',serif; font-weight:500; font-size:1.02rem; color:var(--cream);}
  .rec-artist{font-size:0.86rem; color:rgba(242,236,220,0.6); margin-top:2px;}
  .rec-foot{display:flex; justify-content:space-between; align-items:center; margin-top:10px;}
  .rec-price{font-family:'IBM Plex Mono',monospace; font-size:0.82rem; color:var(--amber);}
  .rec-mood{font-family:'IBM Plex Mono',monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:rgba(242,236,220,0.45);}

  /* ---------- CRATE DIVIDER TABS (signature filter) ---------- */
  .crate-section{background:var(--paper); color:var(--charcoal);}
  .crate-section .section-head .tag{color:var(--rust);}
  .crate-section .section-head h2, .crate-section .section-head p{color:var(--charcoal);}
  .crate-section .section-head p{color:rgba(38,38,34,0.62);}

  .dividers{
    display:flex; gap:6px; margin-bottom:44px; overflow-x:auto; padding-bottom:6px;
  }
  .divider-tab{
    position:relative;
    background:var(--paper-dim);
    border:1px solid rgba(38,38,34,0.18);
    border-bottom:none;
    padding:14px 20px 22px;
    font-family:'IBM Plex Mono',monospace; font-size:0.76rem; letter-spacing:0.05em;
    text-transform:uppercase; color:rgba(38,38,34,0.6);
    cursor:pointer; white-space:nowrap;
    clip-path:polygon(0 0, 100% 0, 92% 100%, 8% 100%);
    transition:transform .2s ease, background .2s ease, color .2s ease;
    transform:translateY(10px);
  }
  .divider-tab:hover{color:var(--charcoal);}
  .divider-tab.active{
    background:var(--charcoal); color:var(--paper);
    transform:translateY(0);
    box-shadow:0 8px 16px rgba(38,38,34,0.18);
  }
  .divider-tab:focus-visible{outline:2px solid var(--rust); outline-offset:2px;}

  .crate-section .sleeve{border-color:rgba(38,38,34,0.14); background:var(--paper-dim);}
  .crate-section .rec-title{color:var(--charcoal);}
  .crate-section .rec-artist{color:rgba(38,38,34,0.6);}
  .crate-section .rec-mood{color:rgba(38,38,34,0.45);}
  .crate-section .needle{background:var(--charcoal);}
  .crate-section .needle::after{background:var(--rust);}

  .crate-controls{display:flex; gap:14px; margin-bottom:28px; flex-wrap:wrap;}
  .crate-search{
    flex:1; min-width:200px; padding:11px 14px; border:1px solid rgba(38,38,34,0.2);
    border-radius:3px; background:var(--paper-dim); color:var(--charcoal);
    font-family:'Inter',sans-serif; font-size:0.92rem;
  }
  .crate-search::placeholder{color:rgba(38,38,34,0.45);}
  .crate-sort{
    padding:11px 14px; border:1px solid rgba(38,38,34,0.2); border-radius:3px;
    background:var(--paper-dim); color:var(--charcoal);
    font-family:'IBM Plex Mono',monospace; font-size:0.78rem; text-transform:uppercase;
    letter-spacing:0.03em; cursor:pointer;
  }
  .no-results{
    grid-column:1/-1; text-align:center; padding:48px 0;
    color:rgba(38,38,34,0.55); font-size:0.95rem;
  }

  /* ---------- VISIT ---------- */
  .visit .wrap{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
  .hours-list{margin-top:28px; border-top:1px solid var(--line);}
  .hours-row{
    display:flex; justify-content:space-between; padding:14px 0;
    border-bottom:1px solid var(--line); font-size:0.95rem;
  }
  .hours-row .day{color:rgba(242,236,220,0.6); font-family:'IBM Plex Mono',monospace; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.04em;}
  address{font-style:normal; margin-top:28px; line-height:1.7; color:rgba(242,236,220,0.78);}

  .in-store-note{
    background:var(--ink-soft); border:1px solid var(--line); border-radius:4px;
    padding:32px; align-self:start;
  }
  .in-store-note .tag{font-family:'IBM Plex Mono',monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--amber); display:block; margin-bottom:14px;}
  .in-store-note p{line-height:1.65; color:rgba(242,236,220,0.75); font-size:0.98rem;}

  /* ---------- FOOTER ---------- */
  footer{padding:72px 0 48px;}
  footer .wrap{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:32px;}
  .newsletter h3{font-size:1.5rem; color:var(--cream); max-width:22ch;}
  .signup{display:flex; margin-top:22px; max-width:380px; border:1px solid var(--line);}
  .signup input{
    flex:1; background:transparent; border:none; padding:14px 16px; color:var(--cream);
    font-family:'Inter',sans-serif; font-size:0.92rem;
  }
  .signup input:focus-visible{outline:none;}
  .signup input::placeholder{color:rgba(242,236,220,0.4);}
  .signup button{
    background:var(--amber); border:none; padding:0 22px; cursor:pointer;
    font-family:'IBM Plex Mono',monospace; font-size:0.78rem; text-transform:uppercase; color:var(--ink);
  }
  .signup button:hover{background:#f2b458;}
  .foot-meta{font-family:'IBM Plex Mono',monospace; font-size:0.76rem; color:rgba(242,236,220,0.45); text-align:right; line-height:1.8;}

  @media (max-width:860px){
    .hero .wrap{grid-template-columns:1fr;}
    .groove-art{max-width:280px; margin:0 auto;}
    .visit .wrap{grid-template-columns:1fr;}
    .navlinks{display:none;}
    footer .wrap{flex-direction:column; align-items:flex-start;}
    .foot-meta{text-align:left;}
  }
