/* ============================================================
   One More Last Chance — shared theme stylesheet
   Every colour and type decision lives here once.
   ============================================================ */

:root{
  --paper:#F1E7D3;
  --card:#FBF5E8;
  --ink:#2A2117;
  --ink-soft:#6b5f4e;
  --rule:#cfbf9d;
  --seal:#a13d2b;
  --seal-deep:#7e2f21;
  --tile:#2f6e6a;
  --tile-deep:#204d4a;
  --gold:#b6862c;
  --shadow:0 1px 0 rgba(42,33,23,0.06), 0 8px 20px -12px rgba(42,33,23,0.25);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:radial-gradient(1200px 600px at 10% -10%, #f6ecd9 0%, transparent 60%), var(--paper);
  color:var(--ink);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
.wrap{max-width:840px; margin:0 auto; padding:0 20px 90px;}
.wrap.wide{max-width:1000px;}
a{color:var(--seal);}
a:hover{color:var(--seal-deep);}

/* ---------- top bar ---------- */
.topbar{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
  padding:20px 0 18px; border-bottom:1px solid var(--rule); margin-bottom:44px;
}
.wordmark{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--seal); display:flex; align-items:center; gap:8px;
  text-decoration:none;
}
.wordmark .dot{width:6px; height:6px; border-radius:50%; background:var(--seal);}
.topnav{display:flex; gap:20px; flex-wrap:wrap;}
.topnav a{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink-soft); text-decoration:none;
  border-bottom:1px solid transparent; padding-bottom:2px;
}
.topnav a:hover, .topnav a.active{color:var(--seal); border-bottom-color:var(--seal);}

/* ---------- headings / scaffolding ---------- */
.kicker{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--seal); margin-bottom:16px;
}
h1{
  font-family:'Fraunces',serif; font-weight:600; font-size:clamp(32px,6vw,46px);
  line-height:1.05; letter-spacing:-0.02em; margin:0 0 18px;
}
h1.hero-title{font-size:clamp(38px,8vw,62px); line-height:1.02; margin-bottom:20px;}
h1 em{font-style:italic; font-weight:400; color:var(--seal);}
.font-orgovan{
  font-family: "orgovan-rounded-web", sans-serif;
  font-weight: 400;
  font-style: normal;
  display: block;
  white-space: nowrap;
  text-align: left;
}
.font-orgovan .hero-accent{color:var(--seal);}
h2{
  font-family:'Fraunces',serif; font-weight:600; font-size:clamp(24px,4vw,30px);
  margin:0 0 16px; line-height:1.2; letter-spacing:-0.01em;
}
p{margin:0 0 18px;}
.lede{font-size:17px; line-height:1.8; max-width:60ch;}
.pagehead{margin-bottom:52px;}
.hero{margin-bottom:64px;}
section{margin-bottom:64px;}

.tagline{
  font-family:'Fraunces',serif; font-size:clamp(18px,3vw,22px); font-style:italic;
  color:var(--ink-soft); line-height:1.5; max-width:370px; margin:0 0 36px;
}

.section-label{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--seal); padding-bottom:10px;
  border-bottom:3px double var(--rule); margin-bottom:28px;
}
.section-label .right{color:var(--ink-soft); letter-spacing:0.08em;}

/* ---------- show card ---------- */
.showcard{
  background:var(--card); border:1px solid var(--rule); border-top:5px solid var(--seal);
  border-radius:1px; box-shadow:var(--shadow); padding:34px 38px 32px;
}
.showcard-head{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.12em;
  text-transform:uppercase; margin-bottom:26px;
}
.showcard-head .right{color:var(--tile-deep);}
.show-title{
  font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:clamp(26px,5vw,34px);
  margin:0 0 22px; line-height:1.2;
}
.show-when{
  font-family:'IBM Plex Mono',monospace; font-size:15px; letter-spacing:0.02em;
  line-height:1.9; margin-bottom:22px;
}
.show-when .big{font-size:19px; font-weight:600; display:block;}
.show-when .venue{color:var(--ink-soft);}
.show-blurb{font-size:16px; line-height:1.75; margin:0 0 26px; max-width:56ch;}

.badges{display:flex; gap:10px; flex-wrap:wrap;}
.badge{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.06em;
  text-transform:uppercase; padding:6px 12px; border-radius:999px;
  background:#efe6d2; color:var(--ink-soft); border:1px solid var(--rule);
}
.badge.free{background:var(--tile); color:#fdf9ee; border-color:var(--tile-deep);}

/* ---------- tellers ---------- */
.tellers{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:26px;}
.teller{text-align:center;}
.headshot{
  width:100%; aspect-ratio:1/1; border-radius:50%; background:#e6d9bd;
  border:1px solid var(--rule); margin-bottom:14px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--ink-soft); text-align:center;
}
.headshot img{top: 0; left: 0; width:100%; height:100%; object-fit:cover;}
.teller-name{font-family:'Fraunces',serif; font-weight:600; font-size:18px; margin:0 0 4px;}
.teller-role{
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--seal); margin-bottom:8px;
}
.teller-bio{font-size:14px; line-height:1.6; color:var(--ink-soft); margin:0;}

/* ---------- pull quote ---------- */
.proof{
  background:var(--card); border-left:4px solid var(--gold);
  padding:26px 30px; box-shadow:var(--shadow);
}
.proof blockquote{
  margin:0 0 14px; font-family:'Fraunces',serif; font-style:italic;
  font-size:19px; line-height:1.6; color:var(--ink);
}
.proof cite{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--ink-soft); font-style:normal;
}

/* ---------- mailing list ---------- */
.signup{
  background:var(--card); border:1px solid var(--rule); border-top:5px solid var(--tile);
  border-radius:1px; box-shadow:var(--shadow); padding:34px 38px;
}
.signup h2{margin-bottom:10px;}
.signup p{max-width:52ch; color:var(--ink-soft); font-size:15px;}
.signup-row{display:flex; gap:10px; flex-wrap:wrap; margin:22px 0 14px;}
.signup-row input[type=email]{
  flex:1; min-width:220px; font-family:'IBM Plex Mono',monospace; font-size:14px;
  padding:13px 14px; border:1px solid var(--rule); background:#fffdf7;
  color:var(--ink); border-radius:2px; outline:none;
}
.signup-row input[type=email]:focus{border-color:var(--tile); box-shadow:0 0 0 3px rgba(47,110,106,0.14);}
.fine{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--ink-soft); line-height:1.7; margin:0;}

/* ---------- buttons ---------- */
.btn{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.08em;
  text-transform:uppercase; padding:13px 26px; border-radius:999px; cursor:pointer;
  background:var(--ink); color:var(--paper); border:1px solid var(--ink);
  text-decoration:none; display:inline-block;
}
.btn:hover{background:var(--seal-deep); border-color:var(--seal-deep); color:var(--paper);}
.btn.outline{background:transparent; color:var(--ink);}
.btn.outline:hover{background:var(--ink); color:var(--paper);}

/* ---------- doors ---------- */
.doors{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:20px;}
.door{
  background:var(--card); border:1px solid var(--rule); border-radius:1px;
  box-shadow:var(--shadow); padding:26px 28px; text-decoration:none; color:var(--ink);
  display:block; border-top:5px solid var(--tile);
}
.door:hover{border-color:var(--tile-deep); color:var(--ink);}
.door.gold{border-top-color:var(--gold);}
.door h3{font-family:'Fraunces',serif; font-weight:600; font-size:20px; margin:0 0 8px;}
.door p{font-size:14px; line-height:1.65; color:var(--ink-soft); margin:0 0 12px;}
.door .go{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--seal);
}

/* ---------- past shows list ---------- */
.past-list{list-style:none; padding:0; margin:0;}
.past-list li{
  display:flex; gap:18px; align-items:baseline; flex-wrap:wrap;
  padding:14px 0; border-bottom:1px solid var(--rule);
}
.past-date{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em;
  color:var(--ink-soft); min-width:96px;
}
.past-title{font-family:'Fraunces',serif; font-style:italic; font-size:17px; flex:1; min-width:180px;}
.past-tellers{font-size:13.5px; color:var(--ink-soft);}

/* ---------- galleries ---------- */
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px;}
.grid.video{grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px;}
.tile{
  aspect-ratio:4/3; background:#e6d9bd; border:1px solid var(--rule); border-radius:1px;
  box-shadow:var(--shadow); overflow:hidden; position:relative;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink-soft); text-align:center; padding:14px;
}
.tile img{width:100%; height:100%; object-fit:cover; display:block;}
.caption{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--ink-soft);
  margin-top:8px; line-height:1.5;
}
.frame{
  aspect-ratio:16/9; background:#e6d9bd; border:1px solid var(--rule); border-radius:1px;
  box-shadow:var(--shadow); overflow:hidden; margin-bottom:12px;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink-soft); text-align:center; padding:14px;
}
.frame iframe{width:100%; height:100%; border:0; display:block;}
.clip-tale{
  font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:18px;
  margin:0 0 5px; line-height:1.3; color:var(--ink);
}
.clip-meta{
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.05em;
  color:var(--ink-soft); margin:0;
}
.clip-meta a{text-decoration:none; border-bottom:1px dashed var(--seal);}

/* ---------- note box ---------- */
.note{
  background:var(--card); border:1px solid var(--rule); border-top:5px solid var(--gold);
  border-radius:1px; box-shadow:var(--shadow); padding:26px 30px;
}
.note h2{font-family:'Fraunces',serif; font-weight:600; font-size:20px; margin:0 0 10px;}
.note p{font-size:15px; line-height:1.75; color:var(--ink-soft); margin:0 0 14px; max-width:56ch;}
.note p:last-child{margin-bottom:0;}

/* ---------- footer ---------- */
footer{
  border-top:3px double var(--rule); padding-top:26px; margin-top:20px;
  font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft); line-height:1.9;
}
.footcols{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:24px; margin-bottom:24px;}
.footcols h4{
  font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--seal);
  margin:0 0 10px; font-weight:600;
}
.footcols a{display:block; color:var(--ink-soft); text-decoration:none;}
.footcols a:hover{color:var(--seal);}
.colophon{border-top:1px solid var(--rule); padding-top:16px; font-size:10.5px;}

@media (max-width:640px){
  .topbar{padding:16px 0 14px; margin-bottom:32px;}
  .showcard, .signup{padding:26px 22px;}
  .proof, .note{padding:22px 20px;}
  .pagehead{margin-bottom:38px;}
  .hero{margin-bottom:48px;}
  section{margin-bottom:48px;}
  h1.hero-title{font-size:clamp(24px,9vw,62px);}
}
