  :root{
    --ivory:#F7F3EC;
    --paper:#FCF9F4;
    --stone:#E7DECB;
    --stone-dark:#CDBE9E;
    --camel:#B4813F;
    --camel-dark:#8C6A3B;
    --charcoal:#5B534A;
    --ink:#241F1A;
    --terracotta:#A65B44;
    --olive:#6E7369;
    --ochre:#9C7A2E;
    --mauve:#83706A;
    --slate:#5C6B63;
    --line:#DED2B8;
    --max:1240px;
  }
  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;
    background:var(--ivory);
    color:var(--ink);
    font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:15.5px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Fraunces",Georgia,"Times New Roman",serif;
    font-weight:600;
    color:var(--ink);
    margin:0 0 .4em;
    line-height:1.08;
  }
  a{color:inherit;}
  img,svg{display:block;max-width:100%;}
  .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
  .skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--ivory);padding:10px 16px;border-radius:0 0 8px 0;z-index:100;}
  .skip-link:focus{left:0;}
  :focus-visible{outline:2.5px dashed var(--camel-dark);outline-offset:3px;}

  /* ---------- paper grain (fixed, subtle) ---------- */
  .grain{
    position:fixed; inset:0; z-index:0; pointer-events:none;
    opacity:.05; mix-blend-mode:multiply;
  }

  .wrap{max-width:var(--max);margin:0 auto;padding:0 20px;}
  @media (min-width:760px){ .wrap{padding:0 40px;} }

  /* ---------- header ---------- */
  header.site{
    position:sticky; top:0; z-index:20;
    background:rgba(247,243,236,.94);
    backdrop-filter:saturate(1.1);
    border-bottom:1px solid var(--line);
  }
  .head-inner{
    display:flex; align-items:center; justify-content:space-between;
    max-width:var(--max); margin:0 auto; padding:14px 20px;
  }
  @media (min-width:760px){ .head-inner{padding:16px 40px;} }
  .logo-lockup{display:flex; align-items:center; gap:10px; text-decoration:none;}
  .logo-mark{width:38px;height:38px;flex:0 0 auto;}
  .wordmark{font-family:"Fraunces",serif; font-size:21px; letter-spacing:.01em;}
  .wordmark .tacit{font-weight:600; font-style:italic;}
  .wordmark .mag{font-family:"Inter",sans-serif; font-weight:600; font-size:.56em; letter-spacing:.14em; text-transform:uppercase; color:var(--camel-dark); vertical-align:2px; margin-left:1px;}
  nav.primary{display:flex; align-items:center; gap:22px; font-size:13.5px;}
  nav.primary a{text-decoration:none; letter-spacing:.03em; padding:6px 2px; border-bottom:1px solid transparent;}
  nav.primary a:hover, nav.primary a:focus-visible{border-bottom-color:var(--camel-dark);}
  nav.primary .icon-btn{display:inline-flex; padding:6px;}
  .nav-toggle{display:none;}

  /* ---------- hero ---------- */
  .hero{
    position:relative; overflow:hidden;
    background:radial-gradient(120% 140% at 15% 0%, #F4EBD9 0%, var(--ivory) 55%, var(--ivory) 100%);
    padding:56px 0 40px;
    border-bottom:1px solid var(--line);
  }
  .hero-grid{display:grid; gap:32px; align-items:center;}
  @media (min-width:900px){ .hero-grid{grid-template-columns:1.15fr .85fr; gap:48px;} }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
    color:var(--camel-dark); font-weight:600; margin-bottom:16px;
  }
  .eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--camel-dark);}
  .hero h1{
    font-size:clamp(34px,5.6vw,58px);
    font-style:italic; font-weight:500;
    max-width:14ch;
  }
  .hero .dek{
    font-size:16.5px; color:var(--charcoal); max-width:46ch; margin:18px 0 26px;
  }
  .hero .cta-row{display:flex; flex-wrap:wrap; gap:14px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 22px; border-radius:11px; text-decoration:none;
    font-size:13.5px; font-weight:600; letter-spacing:.02em;
    border:1px solid var(--ink); transition:transform .15s ease, box-shadow .15s ease;
  }
  .btn.primary{background:var(--ink); color:var(--ivory); box-shadow:4px 4px 0 -1px var(--stone-dark);}
  .btn.primary:hover{transform:translate(-2px,-2px); box-shadow:6px 6px 0 -1px var(--stone-dark);}
  .btn.ghost{background:transparent; color:var(--ink); border-color:var(--stone-dark);}
  .btn.ghost:hover{border-color:var(--ink); transform:translate(-2px,-2px);}
  .hero-art{justify-self:center;}

  /* ---------- section rhythm ---------- */
  section{padding:64px 0;}
  @media (min-width:760px){ section{padding:88px 0;} }
  .section-head{max-width:60ch; margin-bottom:34px;}
  .section-head .kicker{font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--camel-dark); font-weight:600; display:block; margin-bottom:8px;}
  .section-head h2{font-size:clamp(26px,3.2vw,34px); font-style:italic;}
  .section-head p{color:var(--charcoal); font-size:15px; margin-top:10px;}

  /* ---------- screen divider (mock-review labels) ---------- */
  .screen-divider{
    display:flex; align-items:center; gap:14px;
    max-width:var(--max); margin:0 auto; padding:0 20px;
  }
  @media (min-width:760px){ .screen-divider{padding:0 40px;} }
  .screen-divider::before, .screen-divider::after{content:"";flex:1;height:1px;background:var(--stone-dark);}
  .screen-divider span{
    font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:var(--charcoal); white-space:nowrap; font-weight:600;
  }

  /* ---------- proposed mark panel ---------- */
  .mark-panel{
    background:var(--paper); border:1px solid var(--line); border-radius:18px;
    padding:30px 26px; box-shadow:0 22px 40px -30px rgba(36,31,26,.35);
    display:grid; gap:26px;
  }
  @media (min-width:800px){ .mark-panel{grid-template-columns:1fr 1fr; padding:38px 40px;} }
  .mark-panel h3{font-size:20px; font-style:italic; margin-bottom:6px;}
  .mark-panel .note{color:var(--charcoal); font-size:14px; max-width:44ch;}
  .mark-sizes{display:flex; align-items:center; gap:28px; flex-wrap:wrap;}
  .mark-sizes .swatch{display:flex; flex-direction:column; align-items:center; gap:8px;}
  .mark-sizes .swatch svg{background:var(--ivory); border:1px solid var(--line); border-radius:12px; padding:10px;}
  .mark-sizes .swatch small{font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--charcoal);}
  .mark-lockup-dark{background:var(--ink); border-radius:12px; padding:16px 18px; display:inline-flex; align-items:center; gap:10px;}
  .mark-lockup-dark .wordmark{color:var(--ivory);}
  .mark-lockup-dark .wordmark .mag{color:#D8B071;}

  /* ---------- filter panel ---------- */
  .filter-panel{
    background:var(--paper); border:1px solid var(--line); border-radius:18px;
    padding:24px; box-shadow:0 22px 40px -30px rgba(36,31,26,.3);
  }
  @media (min-width:760px){ .filter-panel{padding:28px 32px;} }
  .filter-form{display:grid; gap:16px;}
  .search-row{display:flex; gap:10px; flex-wrap:wrap;}
  .search-box{
    flex:1 1 220px; display:flex; align-items:center; gap:10px;
    border:1px solid var(--stone-dark); border-radius:11px; padding:11px 14px; background:var(--ivory);
  }
  .search-box svg{flex:0 0 auto; opacity:.65;}
  .search-box input{border:none; background:none; outline:none; font-size:14.5px; width:100%; color:var(--ink); font-family:inherit;}
  .select-row{display:grid; grid-template-columns:1fr; gap:12px;}
  @media (min-width:620px){ .select-row{grid-template-columns:repeat(3,1fr);} }
  .field label{display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--charcoal); margin-bottom:6px; font-weight:600;}
  .field select{
    width:100%; padding:10px 12px; border-radius:10px; border:1px solid var(--stone-dark);
    background:var(--ivory); font-size:14px; color:var(--ink); font-family:inherit;
  }
  .chips-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:4px;}
  .chip{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--stone); border:1px solid var(--stone-dark); border-radius:999px;
    padding:6px 12px 6px 12px; font-size:12.5px; color:var(--ink); font-weight:500;
  }
  .chip button{border:none;background:none;color:var(--charcoal);cursor:pointer;font-size:13px;line-height:1;padding:0;}
  .chip a{color:var(--charcoal);text-decoration:none;font-size:13px;line-height:1;}
  .empty-state{margin:8px 0 0; padding:28px 20px; text-align:center; font-size:15px; color:var(--charcoal); border:1px dashed var(--stone-dark); border-radius:14px;}
  .empty-state[hidden]{display:none;}
  .empty-state .clear-link{margin-left:6px;}
  .clear-link{font-size:12.5px; color:var(--camel-dark); text-decoration:underline; text-decoration-color:var(--stone-dark);}
  .url-demo{
    margin-top:14px; padding-top:14px; border-top:1px dashed var(--stone-dark);
    display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12.5px; color:var(--charcoal);
  }
  .url-demo code{
    background:var(--ivory); border:1px solid var(--stone-dark); border-radius:8px;
    padding:5px 10px; font-family:"SF Mono","Consolas",monospace; font-size:12px; color:var(--ink);
  }
  .legend{display:flex; gap:16px; flex-wrap:wrap; margin-top:16px;}
  .legend .item{display:flex; align-items:center; gap:6px; font-size:12px; color:var(--charcoal);}
  .legend .dot{width:9px;height:9px;border-radius:50%;display:inline-block;}

  /* ---------- grid of cards ---------- */
  .grid-head{display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:28px;}
  .grid-head h2{font-size:clamp(24px,3vw,30px); font-style:italic;}
  .grid-count{font-size:13px; color:var(--charcoal);}
  ul.grid{
    list-style:none; margin:0; padding:0;
    display:grid; gap:22px;
    grid-template-columns:1fr;
  }
  @media (min-width:600px){ ul.grid{grid-template-columns:repeat(2,1fr);} }
  @media (min-width:1000px){ ul.grid{grid-template-columns:repeat(3,1fr); gap:26px;} }

  a.card{
    position:relative; display:block; text-decoration:none; color:inherit;
    background:var(--paper); border:1px solid var(--stone-dark); border-radius:16px;
    padding:34px 24px 24px; box-shadow:5px 5px 0 -1px var(--stone), 0 20px 32px -28px rgba(36,31,26,.4);
    transition:transform .18s ease, box-shadow .18s ease;
  }
  a.card:hover, a.card:focus-visible{transform:translateY(-5px); box-shadow:5px 9px 0 -1px var(--stone), 0 26px 38px -26px rgba(36,31,26,.45);}
  a.card .stitch{
    position:absolute; top:16px; left:24px; right:24px; height:2px;
    background-image:repeating-linear-gradient(90deg, var(--camel) 0 6px, transparent 6px 13px);
    opacity:.55;
  }
  .card-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:16px;}
  .monogram{
    width:38px; height:38px; border-radius:50%; border:1px solid var(--stone-dark);
    background:var(--ivory); display:flex; align-items:center; justify-content:center;
    font-family:"Fraunces",serif; font-weight:600; font-size:13px; letter-spacing:.02em; color:var(--ink);
  }
  .flag-chip{display:flex; align-items:center; gap:6px;}
  .flag{width:22px; height:15px; border-radius:3px; overflow:hidden; border:1px solid rgba(36,31,26,.18); flex:0 0 auto;}
  .flag-chip .country{font-size:11.5px; color:var(--charcoal); letter-spacing:.02em;}
  .card h3{font-size:22px; font-style:italic; margin-bottom:8px;}
  .cats{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:12px;}
  .cats .cat{display:inline-flex; align-items:center; gap:5px; font-size:12px; color:var(--charcoal);}
  .cats .dot{width:8px;height:8px;border-radius:50%; flex:0 0 auto;}
  .tier{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--charcoal); margin-bottom:14px; letter-spacing:.02em;}
  .tier .dots{letter-spacing:2px; color:var(--camel-dark); font-size:13px;}
  .summary{font-size:14px; color:var(--charcoal); font-style:italic; margin:0; line-height:1.55;}
  .card-open{
    display:inline-flex; align-items:center; gap:6px; margin-top:16px;
    font-size:12.5px; font-weight:600; color:var(--ink); letter-spacing:.02em;
  }

  /* ---------- brand detail screen ---------- */
  .breadcrumb{font-size:12.5px; color:var(--charcoal); margin-bottom:22px;}
  .breadcrumb a{text-decoration:underline; text-decoration-color:var(--stone-dark);}
  .brand-head{margin-bottom:36px;}
  .brand-head .eyebrow{margin-bottom:14px;}
  .brand-head h1{font-size:clamp(36px,6vw,56px); font-style:italic; font-weight:500;}
  .brand-head .sub{color:var(--charcoal); font-size:14.5px; margin-top:8px; display:flex; align-items:center; gap:8px;}
  .brand-body{display:grid; gap:40px;}
  @media (min-width:900px){ .brand-body{grid-template-columns:1.5fr 1fr; gap:56px;} }
  .profile p{color:var(--ink); font-size:15.5px; margin:0 0 18px;}
  .tell-box{
    margin-top:28px; background:var(--paper); border:1px solid var(--stone-dark); border-left:4px solid var(--camel-dark);
    border-radius:14px; padding:24px 24px 22px; box-shadow:0 18px 30px -26px rgba(36,31,26,.3);
  }
  .tell-box .label{display:flex; align-items:center; gap:8px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--camel-dark); font-weight:700; margin-bottom:10px;}
  .tell-box p{margin:0; font-size:15px; color:var(--ink); font-style:italic;}
  .side-block{background:var(--paper); border:1px solid var(--line); border-radius:16px; padding:24px; margin-bottom:20px;}
  .side-block h4{font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--charcoal); margin-bottom:14px; font-family:"Inter",sans-serif; font-weight:700;}
  .pieces{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
  .pieces li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink);}
  .pieces li svg{flex:0 0 auto; margin-top:2px; color:var(--camel-dark);}
  .fact-row{display:flex; justify-content:space-between; font-size:13.5px; padding:8px 0; border-bottom:1px solid var(--line);}
  .fact-row:last-child{border-bottom:none;}
  .fact-row dt{color:var(--charcoal);}
  .fact-row dd{margin:0; font-weight:600;}
  .site-link{
    display:flex; align-items:center; justify-content:center; gap:8px; margin-top:6px;
    width:100%; padding:13px; border-radius:11px; background:var(--ink); color:var(--ivory);
    text-decoration:none; font-size:13.5px; font-weight:600;
  }
  .prevnext{display:flex; justify-content:space-between; gap:16px; margin-top:56px; padding-top:26px; border-top:1px solid var(--line); flex-wrap:wrap;}
  .prevnext a{text-decoration:none; max-width:46%;}
  .prevnext .dir{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--charcoal); display:block; margin-bottom:4px;}
  .prevnext .name{font-family:"Fraunces",serif; font-style:italic; font-size:18px;}
  .prevnext .next{text-align:right;}

  /* ---------- about ---------- */
  .about-grid{display:grid; gap:40px;}
  @media (min-width:900px){ .about-grid{grid-template-columns:1fr 1fr;} }
  .about-grid p{font-size:15.5px; color:var(--ink); margin:0 0 18px;}
  .criteria{list-style:none; margin:0; padding:0; display:grid; gap:16px;}
  .criteria li{
    display:flex; gap:14px; align-items:flex-start; background:var(--paper);
    border:1px solid var(--line); border-radius:14px; padding:16px 18px;
  }
  .criteria .ic{
    width:34px; height:34px; border-radius:50%; background:var(--ivory); border:1px solid var(--stone-dark);
    display:flex; align-items:center; justify-content:center; flex:0 0 auto; color:var(--camel-dark);
  }
  .criteria h4{font-size:14.5px; margin:0 0 4px;}
  .criteria p{font-size:13.5px; color:var(--charcoal); margin:0;}
  .indep-box{
    margin-top:34px; background:#F0E6D2; border:1px dashed var(--camel-dark); border-radius:14px;
    padding:20px 22px; font-size:13.5px; color:var(--charcoal);
  }
  .indep-box strong{color:var(--ink);}

  /* ---------- footer ---------- */
  footer.site{background:var(--ink); color:var(--ivory); padding:56px 0 30px; margin-top:20px;}
  .footer-top{display:grid; gap:36px; margin-bottom:40px;}
  @media (min-width:800px){ .footer-top{grid-template-columns:1.2fr 1fr 1fr; gap:48px;} }
  footer.site .logo-mark path, footer.site .logo-mark circle{stroke:var(--ivory);}
  footer.site .wordmark{color:var(--ivory);}
  footer.site .wordmark .mag{color:#D8B071;}
  .footer-tag{font-size:14px; color:#CFC6B4; max-width:32ch; margin-top:14px;}
  .footer-col h5{font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:#B7AC93; margin:0 0 14px;}
  .footer-col ul{list-style:none; margin:0; padding:0; display:grid; gap:10px; font-size:13.5px;}
  .footer-col a{text-decoration:none; color:#E7E0D2;}
  .footer-col a:hover{color:#fff; text-decoration:underline;}
  .footer-bottom{
    border-top:1px solid rgba(247,243,236,.15); padding-top:22px;
    display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:12.5px; color:#B7AC93;
  }

  @media (max-width:759px){
    nav.primary{display:none;}
  }
