.lt-app{
  --lt-ink:#1F2E22;
  --lt-ink-soft:#3B4A3D;
  --lt-paper:#F3F1EA;
  --lt-paper-raised:#FFFFFF;
  --lt-line:#DAD5C4;
  --lt-gold:#A5791A;
  --lt-gold-soft:#EDE0C0;
  --lt-brick:#A85142;
  --lt-sage:#6E7F5E;
  --lt-error:#A23B2E;
  --lt-error-bg:#F6E9E6;

  max-width:640px;
  margin:0 auto;
  padding:32px 20px 60px;
  color:var(--lt-ink);
  font-family:'Inter', sans-serif;
  background:var(--lt-paper);
  box-sizing:border-box;
}
.lt-app *{ box-sizing:border-box; }

.lt-brand{
  display:flex;
  align-items:baseline;
  gap:10px;
  margin-bottom:40px;
  cursor:pointer;
  width:fit-content;
}
.lt-brand-mark{
  width:20px;height:20px;
  border-radius:50%;
  background:var(--lt-gold);
  flex-shrink:0;
  position:relative;
  top:2px;
}
.lt-brand-name{
  font-family:'Fraunces', serif;
  font-size:19px;
  font-weight:600;
  letter-spacing:0.01em;
  color:var(--lt-ink);
}

.lt-app h1{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:34px;
  line-height:1.15;
  letter-spacing:-0.01em;
  margin:0 0 14px;
  color:var(--lt-ink);
}
.lt-lede{
  font-size:16px;
  line-height:1.6;
  color:var(--lt-ink-soft);
  max-width:46ch;
  margin:0 0 34px;
}

.lt-choice-row{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.lt-choice-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  background:var(--lt-paper-raised);
  border:1px solid var(--lt-line);
  border-radius:4px;
  padding:20px 22px;
  cursor:pointer;
  text-align:left;
  transition:border-color 0.15s ease, transform 0.15s ease;
}
.lt-choice-card:hover{
  border-color:var(--lt-gold);
  transform:translateX(2px);
}
.lt-choice-card-title{
  font-family:'Fraunces', serif;
  font-size:18px;
  font-weight:600;
  margin-bottom:4px;
  color:var(--lt-ink);
}
.lt-choice-card-sub{
  font-size:13.5px;
  color:var(--lt-ink-soft);
}
.lt-choice-arrow{
  font-size:19px;
  color:var(--lt-gold);
  flex-shrink:0;
}

.lt-app label{
  display:block;
  font-size:13px;
  font-weight:600;
  color:var(--lt-ink-soft);
  margin-bottom:8px;
}
.lt-app input[type=text], .lt-app textarea{
  width:100%;
  background:var(--lt-paper-raised);
  border:1px solid var(--lt-line);
  border-radius:4px;
  padding:13px 15px;
  font-family:'Inter', sans-serif;
  font-size:15px;
  color:var(--lt-ink);
}
.lt-app input[type=text]:focus, .lt-app textarea:focus{
  outline:none;
  border-color:var(--lt-gold);
}
.lt-app textarea{
  font-family:'Lora', serif;
  font-size:15.5px;
  line-height:1.6;
  resize:vertical;
  min-height:130px;
}
.lt-field{ margin-bottom:20px; }
.lt-hint{
  font-size:12.5px;
  color:var(--lt-ink-soft);
  margin-top:8px;
}

.lt-app button{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:15px;
  border:none;
  border-radius:4px;
  padding:13px 24px;
  cursor:pointer;
  background:var(--lt-ink);
  color:var(--lt-paper);
  transition:background 0.15s ease;
}
.lt-app button:hover{ background:var(--lt-ink-soft); }
.lt-app button.lt-secondary{
  background:transparent;
  color:var(--lt-ink);
  border:1px solid var(--lt-line);
}
.lt-app button.lt-secondary:hover{ background:var(--lt-paper-raised); }
.lt-app button:disabled{ opacity:0.45; cursor:not-allowed; }

.lt-back-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--lt-ink-soft);
  font-size:14px;
  cursor:pointer;
  margin-bottom:28px;
  background:none;
  border:none;
  padding:0;
  font-family:'Inter', sans-serif;
  font-weight:500;
}
.lt-back-link:hover{ background:none; color:var(--lt-ink); }

.lt-code-display{
  background:var(--lt-gold-soft);
  border:1px dashed var(--lt-gold);
  border-radius:4px;
  padding:26px;
  text-align:center;
  margin:24px 0;
}
.lt-code-display .lt-code{
  font-family:'Fraunces', serif;
  font-size:32px;
  font-weight:600;
  letter-spacing:0.08em;
  color:var(--lt-ink);
  margin:6px 0 4px;
}
.lt-code-display .lt-code-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--lt-gold);
  font-weight:600;
}

.lt-error-box{
  background:var(--lt-error-bg);
  border:1px solid var(--lt-error);
  color:var(--lt-error);
  border-radius:4px;
  padding:13px 15px;
  font-size:14px;
  margin-bottom:18px;
  line-height:1.5;
}
.lt-success-box{
  background:#EAF0E4;
  border:1px solid var(--lt-sage);
  color:var(--lt-ink-soft);
  border-radius:4px;
  padding:13px 15px;
  font-size:14px;
  margin-bottom:18px;
  line-height:1.5;
}

.lt-honoree-banner{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:28px;
  padding-bottom:22px;
  border-bottom:1px solid var(--lt-line);
}
.lt-honoree-initial{
  width:44px;height:44px;
  border-radius:50%;
  background:var(--lt-sage);
  color:#fff;
  font-family:'Fraunces', serif;
  font-size:18px;
  font-weight:600;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.lt-honoree-title{
  font-family:'Fraunces', serif;
  font-size:14px;
  color:var(--lt-ink-soft);
}
.lt-honoree-name{
  font-family:'Fraunces', serif;
  font-size:22px;
  font-weight:600;
  color:var(--lt-ink);
}

.lt-tribute-card{
  background:var(--lt-paper-raised);
  border:1px solid var(--lt-line);
  border-radius:2px 12px 2px 2px;
  padding:22px 24px;
  margin-bottom:14px;
  border-left:3px solid var(--lt-gold);
}
.lt-tribute-message{
  font-family:'Lora', serif;
  font-size:16px;
  line-height:1.65;
  color:var(--lt-ink);
  margin:0 0 12px;
  white-space:pre-wrap;
}
.lt-tribute-meta{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-size:12.5px;
  color:var(--lt-ink-soft);
}
.lt-tribute-author{
  font-weight:600;
  color:var(--lt-ink);
}

.lt-empty-state{
  text-align:center;
  padding:50px 16px;
  color:var(--lt-ink-soft);
}
.lt-empty-state .lt-em-title{
  font-family:'Fraunces', serif;
  font-size:19px;
  color:var(--lt-ink);
  margin-bottom:8px;
}

.lt-btn-row{ display:flex; gap:10px; flex-wrap:wrap; }
.lt-loading{ color:var(--lt-ink-soft); font-size:14px; padding:18px 0; }

.lt-copy-note{
  font-size:13px;
  color:var(--lt-sage);
  margin-top:8px;
  min-height:16px;
}

.lt-hp-field{
  position:absolute !important;
  left:-9999px !important;
  width:1px; height:1px;
  overflow:hidden;
}

@media (max-width:480px){
  .lt-app h1{ font-size:28px; }
  .lt-app{ padding:24px 14px 50px; }
}
