:root{
  --taupe:#6F625D;
  --taupe-dark:#4E4541;
  --ivory:#F3F0E8;
  --paper:#FBF9F4;
  --gold:#B08A3E;
  --gold-dark:#80642E;
  --charcoal:#2D2927;
  --mushroom:#A89B92;
  --shadow: rgba(45, 41, 39, 0.14);
}

*{box-sizing:border-box}
html, body{margin:0; padding:0; min-height:100%}
body{
  font-family:"Cormorant Garamond", Georgia, serif;
  background:
    linear-gradient(180deg, var(--taupe-dark) 0%, var(--taupe) 100%);
  color:var(--charcoal);
}

.page-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.invite-panel{
  width:min(100%, 780px);
  background:var(--ivory);
  border:3px solid var(--gold);
  border-radius:34px;
  box-shadow:0 16px 42px var(--shadow);
  position:relative;
}

.invite-panel::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid var(--gold-dark);
  border-radius:24px;
  pointer-events:none;
}

.panel-inner{
  position:relative;
  padding:38px 30px 34px;
  z-index:1;
}

.family-name{
  text-align:center;
  font-size:2.3rem;
  font-weight:600;
  font-style:italic;
  letter-spacing:0.015em;
  line-height:1.05;
  margin-bottom:10px;
}

h1{
  margin:0;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:0.05em;
  font-size:clamp(2rem, 6vw, 3.2rem);
  line-height:1.0;
  font-weight:700;
}

.subhead{
  margin:10px 0 24px;
  text-align:center;
  font-style:italic;
  font-size:1.5rem;
  color:var(--taupe-dark);
}

.search-wrap{
  display:flex;
  gap:10px;
  align-items:stretch;
  margin:0 auto 8px;
  max-width:640px;
}

input{
  flex:1;
  min-width:0;
  border:1px solid var(--mushroom);
  border-radius:16px;
  padding:16px 18px;
  font: 500 1.35rem/1.2 "Cormorant Garamond", Georgia, serif;
  color:var(--charcoal);
  background:#fffdfa;
  outline:none;
}

input:focus{
  border-color:var(--gold-dark);
  box-shadow:0 0 0 3px rgba(176,138,62,0.12);
}

button{
  border:none;
  border-radius:16px;
  padding:0 18px;
  background:var(--taupe);
  color:var(--ivory);
  font:600 1rem/1 "Cormorant Garamond", Georgia, serif;
  letter-spacing:0.05em;
  cursor:pointer;
  min-width:92px;
}

button:hover{
  background:var(--taupe-dark);
}

.status-message,
.footer-note{
  text-align:center;
}

.status-message{
  margin:0 0 18px;
  min-height:1.4em;
  font-size:1.2rem;
}

.status-message strong{
  font-weight:700;
}

.results-below{
  font-weight:600;
  color:var(--taupe-dark);
}

.results{
  display:grid;
  gap:12px;
  margin-top:8px;
}

.result-card{
  background:var(--paper);
  border:1px solid rgba(168,155,146,0.55);
  border-left:5px solid var(--gold);
  border-radius:16px;
  padding:14px 16px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px 16px;
  box-shadow:0 6px 18px rgba(45, 41, 39, 0.05);
}

.result-name{
  font-size:1.45rem;
  font-weight:600;
}

.result-table{
  font-size:1.15rem;
  color:var(--taupe-dark);
}

.table-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  margin-left:10px;
  padding:6px 12px;
  border-radius:999px;
  background:var(--taupe);
  color:var(--ivory);
  font-family:Arial, Helvetica, sans-serif;
  font-size:1.05rem;
  font-weight:700;
  line-height:1;
  letter-spacing:0;
}

.footer-note{
  margin-top:22px;
  color:var(--taupe-dark);
  font-size:1rem;
}

.no-match{
  font-size:1.25rem;
  padding:10px 0 4px;
  text-align:center;
}

.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

@media (max-width: 640px){
  .page-shell{
    align-items:flex-start;
    padding:10px;
  }

  .invite-panel{
    width:100%;
    border-width:2px;
    border-radius:24px;
  }

  .invite-panel::before{
    inset:7px;
    border-radius:18px;
  }

  .panel-inner{
    padding:26px 16px 24px;
  }

  .family-name{
    font-size:1.95rem;
    font-style:italic;
    margin-bottom:8px;
  }

  h1{
    font-size:2.15rem;
    letter-spacing:0.035em;
  }

  .subhead{
    margin:8px 0 18px;
    font-size:1.25rem;
  }

  .search-wrap{
    gap:8px;
    max-width:none;
  }

  input{
    padding:14px 13px;
    font-size:1.2rem;
    border-radius:13px;
  }

  button{
    min-width:74px;
    padding:0 12px;
    border-radius:13px;
    font-size:0.92rem;
  }

  .status-message{
    margin-top:2px;
    margin-bottom:13px;
    font-size:1.08rem;
  }

  .results{
    gap:9px;
  }

  .result-card{
    padding:12px 13px;
    border-radius:13px;
  }

  .result-name{
    font-size:1.3rem;
  }

  .result-table{
    font-size:1.05rem;
  }

  .table-chip{
    min-width:40px;
    margin-left:7px;
    padding:6px 10px;
    font-size:1rem;
  }

  .footer-note{
    margin-top:17px;
    padding:0 4px;
    font-size:0.92rem;
    line-height:1.25;
  }
}

@media (max-width: 360px){
  .search-wrap{
    flex-direction:column;
  }

  button{
    min-height:44px;
  }
}