
  :root{
    --ink:#0c0a08;
    --surface:#17130f;
    --surface-2:#20190f;
    --line:#3c3120;
    --gold:#cda454;
    --gold-bright:#e9c675;
    --paper:#f1e9da;
    --paper-dim:#b3a488;
    --danger:#c15b4e;
    --ok:#8aa877;
    --font-display:'Cinzel','Trajan Pro',Georgia,serif;
    --font-body:'Cormorant Garamond',Garamond,Georgia,serif;
    --font-ui:'Jost','Century Gothic',Futura,Arial,sans-serif;
    --gutter:20px;
    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  *,*::before,*::after{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:
      radial-gradient(ellipse 60% 40% at 50% 0%, rgba(205,164,84,.10), transparent 65%),
      var(--ink);
    color:var(--paper);
    font-family:var(--font-body);
    -webkit-font-smoothing:antialiased;
    min-height:100%;
  }
  [hidden]{display:none!important;}
  img{max-width:100%;display:block;}
  button{font-family:var(--font-ui);cursor:pointer;}
  input,textarea,select{font-family:var(--font-ui);}
  ::selection{background:var(--gold);color:var(--ink);}
  h1,h2,h3{text-wrap:balance;margin:0;}
  a{color:var(--gold);}

  .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

  /* ---------- HERO ---------- */
  .hero{
    padding:clamp(2.2rem,8vw,3.4rem) var(--gutter) 1.6rem;
    text-align:center;
    animation:fadeIn .6s ease both;
  }
  @keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
  @media (prefers-reduced-motion:reduce){.hero{animation:none;}}
  .hero__logo{
    width:clamp(108px,26vw,168px);
    height:auto;
    margin:0 auto 1rem;
    filter:drop-shadow(0 6px 24px rgba(205,164,84,.25));
  }
  .hero__title{
    font-family:var(--font-display);
    font-weight:600;
    letter-spacing:.14em;
    font-size:clamp(2.1rem,9vw,3.1rem);
    color:var(--paper);
    text-transform:uppercase;
  }
  .hero__subtitle{
    margin:.35rem 0 0;
    font-family:var(--font-ui);
    font-size:.72rem;
    letter-spacing:.42em;
    text-transform:uppercase;
    color:var(--gold);
  }
  .hero__rule{
    width:64px;height:1px;margin:1.15rem auto;
    background:linear-gradient(90deg,transparent,var(--gold),transparent);
  }
  .hero__meta{
    margin:0;font-family:var(--font-ui);font-size:.74rem;letter-spacing:.08em;
    color:var(--paper-dim);text-transform:uppercase;
  }

  /* ---------- TOOLBAR ---------- */
  .toolbar{
    position:sticky;top:env(safe-area-inset-top,0px);z-index:20;
    background:rgba(12,10,8,.94);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
    padding:.85rem var(--gutter) .75rem;
  }
  .search{
    display:flex;align-items:center;gap:.55rem;
    border:1px solid var(--line);border-radius:999px;
    padding:.55rem .95rem;background:var(--surface);
    max-width:520px;margin:0 auto .75rem;
  }
  .search svg{flex:0 0 auto;opacity:.6;}
  .search input{
    flex:1;min-width:0;background:transparent;border:0;outline:0;
    color:var(--paper);font-size:.95rem;letter-spacing:.01em;
  }
  .search input::placeholder{color:var(--paper-dim);}
  .search input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;}
  .search button{
    flex:0 0 auto;background:transparent;border:0;color:var(--paper-dim);
    font-size:1.1rem;line-height:1;padding:0 .15rem;
  }
  .catnav{
    display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;
    padding-bottom:2px;
  }
  .catnav::-webkit-scrollbar{display:none;}
  .catnav__pill{
    flex:0 0 auto;padding:.5rem 1.05rem;border-radius:999px;
    border:1px solid var(--line);background:transparent;color:var(--paper-dim);
    font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;
    transition:background .15s,color .15s,border-color .15s;
  }
  .catnav__pill.is-active{background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:600;}
  .catnav__pill[data-empty="1"]:not(.is-active){opacity:.55;font-style:italic;}

  /* ---------- CONTENT ---------- */
  .content{max-width:760px;margin:0 auto;padding:1.6rem var(--gutter) 2rem;}
  .category__title{
    font-family:var(--font-display);font-size:clamp(1.4rem,5vw,1.75rem);
    letter-spacing:.06em;color:var(--gold-bright);text-transform:uppercase;
    margin-bottom:.3rem;
  }
  .category__count{
    font-family:var(--font-ui);font-size:.72rem;color:var(--paper-dim);
    letter-spacing:.05em;margin:0 0 1.2rem;
  }
  .group{margin-top:1.5rem;}
  .group__label{
    font-family:var(--font-ui);font-size:.72rem;letter-spacing:.16em;
    text-transform:uppercase;color:var(--gold);margin:0 0 .6rem;
    padding-bottom:.4rem;border-bottom:1px solid var(--line);
  }
  .group__items{display:grid;grid-template-columns:1fr;gap:0;}
  @media (min-width:640px){
    .group__items{grid-template-columns:1fr 1fr;column-gap:2rem;}
  }
  .item{
    display:flex;gap:.7rem;padding:.62rem 0;
    border-bottom:1px dotted var(--line);
    break-inside:avoid;
  }
  .item__thumb{
    width:52px;height:52px;border-radius:8px;object-fit:cover;
    flex:0 0 auto;border:1px solid var(--line);
  }
  .item__main{flex:1;min-width:0;}
  .item__row{display:flex;align-items:baseline;gap:.6rem;justify-content:space-between;}
  .item__name{
    font-size:1.08rem;font-weight:500;color:var(--paper);line-height:1.25;
  }
  .item__price{
    font-family:var(--font-ui);font-variant-numeric:tabular-nums;
    color:var(--gold-bright);font-size:.95rem;white-space:nowrap;flex:0 0 auto;
  }
  .item__variants{
    display:flex;gap:.75rem;flex:0 0 auto;white-space:nowrap;
    font-family:var(--font-ui);font-variant-numeric:tabular-nums;color:var(--gold-bright);font-size:.9rem;
  }
  .item__variants em{font-style:normal;color:var(--paper-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;margin-right:.25rem;}
  .item__desc{margin:.2rem 0 0;font-size:.88rem;color:var(--paper-dim);font-style:italic;line-height:1.35;}
  .empty-note{
    color:var(--paper-dim);font-style:italic;font-size:1rem;
    border:1px dashed var(--line);border-radius:10px;padding:1.6rem;text-align:center;
  }
  .search-heading{
    font-family:var(--font-ui);font-size:.85rem;color:var(--paper-dim);
    margin-bottom:1rem;letter-spacing:.03em;
  }
  .search-heading b{color:var(--paper);font-weight:600;}

  /* ---------- FOOTER ---------- */
  .site-footer{max-width:760px;margin:1rem auto 0;padding:1.4rem var(--gutter) 2.4rem;text-align:center;}
  .site-footer__rule{width:100%;height:1px;background:var(--line);margin-bottom:1.1rem;}
  .site-footer p{margin:0 0 .8rem;font-family:var(--font-ui);font-size:.76rem;color:var(--paper-dim);letter-spacing:.03em;}
  .admin-link{
    background:transparent;border:0;color:var(--paper-dim);opacity:.55;
    font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;padding:.4rem;
  }
  .admin-link:hover{opacity:1;color:var(--gold);}

  /* ---------- ADMIN ---------- */
  .admin-overlay{
    position:fixed;inset:0;z-index:100;background:var(--ink);
    overflow-y:auto;padding-top:env(safe-area-inset-top,0px);
  }
  .admin-header{
    position:sticky;top:env(safe-area-inset-top,0px);z-index:2;
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    padding:1rem var(--gutter);background:rgba(12,10,8,.96);
    border-bottom:1px solid var(--line);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  .admin-header h2{font-family:var(--font-display);letter-spacing:.06em;font-size:1.2rem;color:var(--gold-bright);text-transform:uppercase;}
  .btn{
    font-family:var(--font-ui);font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;
    padding:.55rem 1.1rem;border-radius:6px;border:1px solid var(--line);
    background:var(--surface);color:var(--paper);
  }
  .btn:hover{border-color:var(--gold);color:var(--gold-bright);}
  .btn--gold{background:var(--gold);border-color:var(--gold);color:var(--ink);font-weight:600;}
  .btn--gold:hover{background:var(--gold-bright);border-color:var(--gold-bright);color:var(--ink);}
  .btn--ghost{background:transparent;}
  .btn--danger{color:var(--danger);border-color:var(--danger);background:transparent;}
  .btn--danger:hover{background:var(--danger);color:var(--ink);}
  .btn--small{padding:.35rem .7rem;font-size:.7rem;}
  .btn[disabled]{opacity:.5;cursor:default;}

  .admin-body{max-width:820px;margin:0 auto;padding:1.4rem var(--gutter) 4rem;}

  .admin-gate{max-width:360px;margin:3rem auto;text-align:center;}
  .admin-gate p{color:var(--paper-dim);font-size:1rem;margin-bottom:1.2rem;}
  .admin-gate input{
    width:100%;padding:.75rem .9rem;border-radius:6px;border:1px solid var(--line);
    background:var(--surface);color:var(--paper);font-size:1rem;margin-bottom:.85rem;
  }
  .admin-gate__error{color:var(--danger);font-size:.85rem;margin:.6rem 0 0;font-family:var(--font-ui);}

  .admin-toolbar{
    display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
    margin-bottom:1.4rem;padding-bottom:1.1rem;border-bottom:1px solid var(--line);
  }
  .admin-status{font-family:var(--font-ui);font-size:.78rem;color:var(--paper-dim);}
  .admin-status.is-error{color:var(--danger);}
  .admin-status.is-ok{color:var(--ok);}

  .admin-cat{
    border:1px solid var(--line);border-radius:10px;margin-bottom:.9rem;
    background:var(--surface);overflow:hidden;
  }
  .admin-cat>summary{
    list-style:none;display:flex;align-items:center;gap:.6rem;padding:.8rem .9rem;
    cursor:pointer;
  }
  .admin-cat>summary::-webkit-details-marker{display:none;}
  .admin-cat>summary::before{content:'▸';color:var(--gold);flex:0 0 auto;transition:transform .15s;font-size:.8rem;}
  .admin-cat[open]>summary::before{transform:rotate(90deg);}
  .admin-cat__name{
    flex:1;background:transparent;border:0;border-bottom:1px solid transparent;
    color:var(--gold-bright);font-family:var(--font-display);font-size:1.02rem;letter-spacing:.04em;
    padding:.2rem 0;
  }
  .admin-cat__name:focus{outline:0;border-bottom-color:var(--gold);}
  .admin-cat__body{padding:0 .9rem .9rem;}
  .admin-group{border-top:1px solid var(--line);padding:.9rem 0;}
  .admin-group:first-child{border-top:0;}
  .admin-group__head{display:flex;gap:.5rem;align-items:center;margin-bottom:.7rem;}
  .admin-group__name{
    flex:1;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;
    color:var(--paper);padding:.4rem .6rem;font-size:.82rem;
  }
  .admin-item{
    display:grid;grid-template-columns:auto 1fr;gap:.6rem .8rem;
    padding:.8rem;border:1px solid var(--line);border-radius:8px;margin-bottom:.6rem;background:var(--surface-2);
  }
  .admin-item__thumbwrap{grid-row:1/4;width:64px;}
  .admin-item__thumb{width:64px;height:64px;border-radius:6px;object-fit:cover;border:1px solid var(--line);margin-bottom:.35rem;}
  .admin-item__fields{display:flex;flex-direction:column;gap:.45rem;}
  .admin-item__row1{display:flex;gap:.5rem;}
  .admin-item__name{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--paper);padding:.4rem .55rem;font-size:.95rem;}
  .admin-item__price{width:92px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--paper);padding:.4rem .55rem;font-size:.95rem;font-variant-numeric:tabular-nums;}
  .admin-item__variants{display:flex;gap:.5rem;flex-wrap:wrap;}
  .admin-item__variant{display:flex;align-items:center;gap:.3rem;}
  .admin-item__variant label{font-size:.68rem;color:var(--paper-dim);text-transform:uppercase;}
  .admin-item__variant input{width:82px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--paper);padding:.35rem .5rem;font-size:.88rem;}
  .admin-item__desc{
    width:100%;resize:vertical;min-height:2.1rem;background:var(--surface);border:1px solid var(--line);
    border-radius:6px;color:var(--paper);padding:.4rem .55rem;font-size:.85rem;font-family:var(--font-body);
  }
  .admin-item__actions{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;}
  .admin-item__filelabel{
    position:relative;display:block;width:64px;margin-top:.35rem;
    font-size:.62rem;line-height:1.2;text-align:center;padding:.3rem .2rem;border-radius:6px;
    border:1px dashed var(--line);color:var(--paper-dim);
  }
  .admin-item__filelabel:hover{border-color:var(--gold);color:var(--gold-bright);}
  .admin-item__filelabel:focus-within{outline:2px solid var(--gold);outline-offset:1px;}
  .admin-item__filelabel input[type="file"]{
    position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;
  }
  .admin-add-row{margin-top:.4rem;}
  .admin-add-cat{margin-top:.4rem;}
  .admin-foot-space{height:2rem;}
