:root{
  --ink:#0B1330;
  --parchment:#F6F4EE;
  --paper:#FFFFFF;
  --orange:#FF6B00;
  --orange-deep:#CC5200;
  --orange-tint:#FFF1E6;
  --green:#1F9D55;
  --green-soft:#E7F6EC;
  --slate:#5B6478;
  --slate-light:#8890A0;
  --border:#E7E2D6;
  --radius-lg:22px;
  --radius-md:14px;
  --font-display:'Fraunces', serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
}

*{ margin:0; padding:0; box-sizing:border-box; }

body{
  font-family:var(--font-body);
  background:var(--parchment);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  justify-content:center;
  padding:56px 20px 80px;
}

h1{ font-family:var(--font-display); letter-spacing:-0.01em; }

button, a{ font-family:inherit; }

:focus-visible{ outline:2px solid var(--orange); outline-offset:3px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; transition-duration:0.001ms !important; }
}

.shell{ width:100%; max-width:560px; }

/* ---------- BRAND ---------- */

/* Compact lockup matching the small header logo used on the rest of the
   site (scholarship.html etc.) — icon mark + two-line wordmark, rather
   than one large standalone logo image. */
.status-brand{ display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:36px; }
.status-brand__mark{ width:44px; height:auto; display:block; object-fit:contain; }
.status-brand__text{ line-height:1.25; text-align:left; }
.status-brand__title{ display:block; font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--ink); letter-spacing:0.01em; }
.status-brand__subtitle{ display:block; font-size:0.72rem; font-weight:600; color:var(--orange); letter-spacing:0.04em; }

/* ---------- SEARCH CARD ---------- */

.search-card{
  background:var(--paper); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:36px 32px; box-shadow:0 10px 30px rgba(11,19,48,0.06); text-align:center;
}

.search-card h1{ font-size:26px; font-weight:600; margin-bottom:8px; }
.search-sub{ color:var(--slate); font-size:14px; margin-bottom:24px; }

.search-form{ display:flex; gap:10px; flex-wrap:wrap; }

.search-form input{
  flex:1; min-width:200px; padding:14px 16px; border:1.5px solid var(--border);
  border-radius:12px; font-family:inherit; font-size:15px; color:var(--ink);
  transition:border-color 0.2s ease;
}
.search-form input:focus{ border-color:var(--orange); outline:none; }

.search-form button{
  background:var(--ink); color:white; border:none; padding:14px 22px; border-radius:12px;
  font-weight:600; font-size:14px; cursor:pointer; transition:transform 0.15s ease, background 0.2s ease;
}
.search-form button:hover{ background:var(--orange-deep); transform:translateY(-1px); }
.search-form button:disabled{ background:var(--slate-light); cursor:wait; transform:none; }

.search-error{
  color:var(--orange-deep); font-size:13px; margin-top:14px; min-height:16px; text-align:left;
}

/* ---------- TICKET ---------- */

.ticket{
  margin-top:28px; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 16px 40px rgba(11,19,48,0.10);
  animation:ticketIn 0.5s cubic-bezier(0.2,0.8,0.2,1);
}

@keyframes ticketIn{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

.ticket-mast{
  background:var(--ink); color:white; padding:16px 24px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;
  font-family:var(--font-mono); font-size:11px; letter-spacing:0.05em;
}
.ticket-mast-cohort{ color:var(--orange-soft, #FFC199); }

.ticket-perf{
  height:14px; background:
    radial-gradient(circle at 10px 7px, var(--parchment) 6px, var(--ink) 6.5px) repeat-x;
  background-size:20px 14px; background-color:var(--ink);
}

.ticket-body{ background:var(--paper); padding:8px 32px 36px; position:relative; }

.stamp{
  display:inline-block; font-family:var(--font-display); font-weight:700; font-size:20px;
  text-transform:uppercase; letter-spacing:0.03em; padding:8px 18px; border-radius:8px;
  border:2.5px solid var(--orange); color:var(--orange-deep);
  transform:rotate(-4deg); margin:22px 0 20px;
  animation:stampIn 0.4s cubic-bezier(0.34,1.56,0.64,1) 0.15s both;
}

.stamp.waitlisted{ border-color:var(--ink); color:var(--ink); }

@keyframes stampIn{
  from{ opacity:0; transform:rotate(-4deg) scale(1.5); }
  to{ opacity:1; transform:rotate(-4deg) scale(1); }
}

.ticket-greeting{ font-size:15px; margin-bottom:12px; }

.ticket-copy{ font-size:14.5px; line-height:1.7; color:var(--ink); margin-bottom:22px; }

.fee-table{
  border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin-bottom:22px;
  font-family:var(--font-mono); font-size:13px; background:var(--parchment);
}

.fee-row{ display:flex; justify-content:space-between; padding:7px 0; }
.fee-strike{ text-decoration:line-through; color:var(--slate-light); }
.fee-green{ color:var(--green); }

.fee-total{
  border-top:1px dashed var(--border); margin-top:6px; padding-top:12px;
  font-family:var(--font-body); font-weight:700; font-size:15px;
}

.ticket-section-label{
  font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--slate); margin:22px 0 10px;
}

.payment-options{
  border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin-bottom:22px;
  background:var(--paper);
}
.payment-option{ padding:10px 0; }
.payment-option + .payment-option{ border-top:1px dashed var(--border); }
.payment-option__title{ font-weight:700; font-size:13.5px; color:var(--ink); margin-bottom:4px; }
.payment-option__value{ font-family:var(--font-mono); font-size:16px; font-weight:700; color:var(--orange-deep); }
.payment-option__row{ font-size:13px; color:var(--ink); line-height:1.7; }
.payment-option__row strong{ font-family:var(--font-mono); color:var(--ink); }
.payment-option__included{
  margin-top:12px; padding-top:12px; border-top:1px dashed var(--border);
  font-size:13px; color:var(--green);
}

.current-offer-box{
  border:1.5px solid #C9E4D3; background:var(--green-soft); border-radius:12px;
  padding:14px 16px; margin-bottom:18px;
}
.current-offer-box__label{
  font-weight:700; font-size:11.5px; text-transform:uppercase; letter-spacing:0.05em;
  color:var(--green); margin-bottom:4px;
}
.current-offer-box__value{ font-size:14px; font-weight:600; color:var(--ink); }

.no-payment-note{
  border:1.5px solid var(--border); background:var(--parchment); border-radius:12px;
  padding:14px 16px; margin-bottom:20px;
}
.no-payment-note p{ font-size:13px; color:var(--ink); line-height:1.6; font-weight:600; }

.urgency-note{
  border:1.5px solid #FFD9B3; background:var(--orange-tint); border-radius:12px;
  padding:14px 16px; margin-bottom:20px;
}
.urgency-title{
  font-weight:700; font-size:13px; color:var(--orange-deep); margin-bottom:5px;
}
.urgency-note p:not(.urgency-title){ font-size:13px; color:var(--ink); line-height:1.6; }

.ticket-cta{
  display:block; text-align:center; background:linear-gradient(120deg, var(--orange), var(--orange-deep));
  color:white; text-decoration:none; font-weight:700; padding:16px 20px; border-radius:12px;
  font-size:15px; margin-bottom:16px; transition:transform 0.15s ease, box-shadow 0.15s ease;
}
.ticket-cta:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(255,107,0,0.3); }

.ticket-cta-secondary{
  display:block; text-align:center; background:transparent; border:1.5px solid var(--border);
  color:var(--ink); text-decoration:none; font-weight:600; padding:14px 20px; border-radius:12px;
  font-size:14px; transition:border-color 0.2s ease, background 0.2s ease;
}
.ticket-cta-secondary:hover{ border-color:var(--orange); background:var(--orange-tint); }

.bank-box{
  border:1px solid var(--border); border-radius:12px; padding:16px 18px; margin-bottom:18px;
  background:var(--parchment);
}
.bank-title{ font-size:12.5px; color:var(--slate); margin-bottom:10px; font-weight:600; }
.bank-row{ display:flex; justify-content:space-between; font-size:13.5px; padding:4px 0; }

.ticket-footnote{ font-size:13px; color:var(--slate); line-height:1.6; }

.check-another{
  display:block; margin:22px auto 0; background:none; border:none; color:var(--slate);
  font-size:13px; text-decoration:underline; cursor:pointer;
}
.check-another:hover{ color:var(--ink); }

/* ---------- RESPONSIVE ---------- */

@media (max-width:600px){
  .status-brand__mark{ width:38px; }
  .search-card{ padding:30px 24px; }
}

@media (max-width:480px){
  body{ padding:36px 14px 60px; }
  .status-brand__mark{ width:34px; }
  .search-card{ padding:26px 18px; }
  .search-card h1{ font-size:21px; }
  .search-sub{ font-size:13px; }
  .search-form{ flex-direction:column; }
  .search-form button{ width:100%; }
  .ticket-body{ padding:8px 18px 26px; }
  .ticket-mast{ padding:14px 18px; font-size:10px; }
  .stamp{ font-size:17px; padding:7px 14px; }
  .fee-row{ font-size:12px; }
}

@media (max-width:360px){
  .status-brand__mark{ width:30px; }
  .search-card h1{ font-size:19px; }
}
