*{box-sizing:border-box;margin:0;padding:0}
body{min-height:100vh;background:#F5F0E8;font-family:'Courier Prime',monospace;color:#1C1208;line-height:1.6}

.container{max-width:780px;margin:0 auto;padding:32px 20px 80px}

/* top bar — back link on left, share button on right */
.top-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px}
.back-link{display:inline-block;font-size:10px;letter-spacing:2px;color:#8B6914;text-decoration:none;padding:4px 0;border-bottom:1px solid transparent}
.back-link:hover{border-bottom-color:#8B6914;color:#1C1208}

.share-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid rgba(28,18,8,0.25);border-radius:6px;padding:6px 12px;font-family:'Courier Prime',monospace;font-size:11px;letter-spacing:1.5px;color:#5a4828;cursor:pointer;transition:background .15s,border-color .15s,transform .12s,box-shadow .12s;text-decoration:none}
.share-btn:hover{background:#EDE8DC;border-color:rgba(28,18,8,0.45);color:#1C1208}
.share-btn svg{flex-shrink:0}

/* Timeline buttons (pack-detail top-bar). Same shape as share-btn but
   solid-fill colors with a subtle lift on hover. */
.tl-btn-play{background:#2a2010;color:#c4992a;border-color:#2a2010}
.tl-btn-play:hover{background:#1a140a;color:#f0c863;border-color:#1a140a;transform:translateY(-1px);box-shadow:0 2px 6px rgba(42,32,16,0.35)}
.tl-btn-print{background:#a14545;color:#F5F0E8;border-color:#a14545}
.tl-btn-print:hover{background:#852f2f;color:#ffffff;border-color:#852f2f;transform:translateY(-1px);box-shadow:0 2px 6px rgba(161,69,69,0.35)}
.tl-btn-play:active,.tl-btn-print:active{transform:translateY(0);box-shadow:0 1px 2px rgba(0,0,0,0.2)}

.logo{font-family:'IM Fell English SC',serif;font-size:28px;color:#1C1208;letter-spacing:6px;text-align:center;margin-bottom:4px}
.logo span{color:#8B1A0E}
.sub{font-size:10px;letter-spacing:3px;color:#8B6914;text-align:center;margin-bottom:36px}

/* loading / error */
.loading-msg{text-align:center;padding:40px 0;color:#8B6914;font-size:12px;letter-spacing:2px}
.error-msg{text-align:center;padding:40px 0;color:#c44a2a;font-family:'Playfair Display',serif;font-size:15px}
.hidden{display:none}

/* pack header */
.pack-header{border-bottom:1px solid rgba(28,18,8,0.12);padding-bottom:24px;margin-bottom:28px}
.pack-icon{font-size:36px;margin-bottom:12px}
.pack-name{font-family:'IM Fell English SC',serif;font-size:clamp(22px,5vw,30px);color:#1C1208;letter-spacing:3px;margin-bottom:10px;line-height:1.2}
.pack-desc{font-family:'Playfair Display',serif;font-size:15px;color:#5a4828;line-height:1.7;margin-bottom:16px}
.pack-attribution{font-family:'Playfair Display',serif;font-style:italic;font-size:13px;color:#8B6914;margin-bottom:14px}
.pack-meta{display:flex;flex-wrap:wrap;gap:6px}
.meta-pill{font-size:9px;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;background:#EDE8DC;color:#5a4828;text-transform:uppercase}
.meta-pill.grade{background:#D9D1BE;color:#3a2810}

/* top CTA — sits between pack header and events list */
.top-cta{text-align:center;margin-bottom:32px}
.top-cta-btn{display:inline-block;width:100%;max-width:400px;padding:15px 24px;background:#c44a2a;border-radius:6px;color:#F5F0E8;font-family:'IM Fell English SC',serif;font-size:14px;letter-spacing:3px;text-decoration:none;border:none;cursor:pointer;box-shadow:0 4px 16px rgba(196,74,42,0.25);transition:background .15s,box-shadow .15s}
.top-cta-btn:hover{background:#8B1A0E;box-shadow:0 6px 20px rgba(139,26,14,0.3)}
.top-cta-sub{font-family:'Courier Prime',monospace;font-size:11px;color:#8B6914;letter-spacing:1px;margin-top:10px;line-height:1.6}

/* events list */
.section-label{font-size:9px;letter-spacing:3px;color:#8B6914;margin-bottom:16px;text-transform:uppercase}
.event-list{display:flex;flex-direction:column;gap:10px;margin-bottom:40px}

.event-card{background:#fff;border:1px solid rgba(28,18,8,0.12);border-radius:6px;padding:16px 18px;display:flex;gap:16px;align-items:flex-start;cursor:pointer}
.event-card:hover{border-color:rgba(28,18,8,0.25)}
/* Event read modal — full detail text + just Close / Use-in-class. */
.ev-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}
.ev-modal[hidden]{display:none}
.ev-modal-backdrop{position:absolute;inset:0;background:rgba(28,18,8,0.6)}
.ev-modal-card{position:relative;background:#fff;border-radius:10px;max-width:520px;width:100%;max-height:88vh;overflow:auto;box-shadow:0 20px 60px rgba(0,0,0,0.4)}
.ev-modal-x{position:absolute;top:6px;right:10px;background:none;border:none;font-size:26px;line-height:1;color:#8B6914;cursor:pointer}
/* contain (not cover) so portraits/photos are never cropped at the top; the
   parchment bars fill whatever the aspect ratio leaves. */
.ev-modal-img{width:100%;height:240px;object-fit:contain;border-radius:10px 10px 0 0;display:block;background:#efe6cf}
.ev-modal-body{padding:18px 22px}
.ev-modal-year{font-family:'IM Fell English SC',serif;font-size:13px;letter-spacing:2px;color:#8B6914}
.ev-modal-name{font-family:'Playfair Display',serif;font-size:21px;color:#1C1208;margin:4px 0 6px;line-height:1.3}
.ev-modal-loc{font-size:10px;letter-spacing:1.5px;color:#8B6914;text-transform:uppercase;margin-bottom:12px}
.ev-modal-detail{font-family:'Playfair Display',serif;font-size:14.5px;color:#3a2810;line-height:1.65;white-space:pre-wrap}
.ev-modal-actions{display:flex;gap:10px;padding:4px 22px 20px}
.ev-modal-use{flex:1;background:#c44a2a;color:#fff;border:none;border-radius:6px;padding:13px;font-family:'IM Fell English SC',serif;font-size:13px;letter-spacing:2px;cursor:pointer}
.ev-modal-use:hover{background:#a83c20}
.ev-modal-close{background:none;border:1px solid rgba(28,18,8,0.2);border-radius:6px;padding:13px 20px;font-family:'Courier Prime',monospace;font-size:11px;letter-spacing:1px;color:#5a4828;cursor:pointer}
/* Event thumbnail — the pack details now show the photo, not just text. */
.event-image{width:84px;height:84px;flex:none;object-fit:cover;border-radius:5px;border:1px solid rgba(28,18,8,0.12);background:#efe6cf}
/* Standards-alignment capsules — compact pills in one wrapping row (replaced the
   tall stacked "✓ aligned" boxes). Names stay visible for SEO; codes in title. */
.pack-alignment{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}
/* Same geometry as .meta-pill (the existing grade/theme tags right below) so the
   two tag rows read as one consistent set — just a green tint for "aligned". */
.align-cap{font-size:9px;letter-spacing:1.5px;padding:3px 9px;border-radius:2px;background:#E4ECDD;color:#2e6018;text-transform:uppercase;white-space:nowrap}
.event-year{font-family:'IM Fell English SC',serif;font-size:13px;letter-spacing:2px;color:#8B6914;flex-shrink:0;min-width:52px;padding-top:2px}
.event-body{flex:1;min-width:0}
.event-title{font-family:'Playfair Display',serif;font-size:14px;color:#1C1208;line-height:1.5;font-weight:700;margin-bottom:4px}
.event-location{font-size:10px;letter-spacing:1.5px;color:#8B6914}
.event-clue{font-family:'Playfair Display',serif;font-style:italic;font-size:13px;color:#5a4828;line-height:1.55;margin-top:6px}
/* SSR (api/pack-detail.js): factual SEO description under each event title —
   like .event-clue but upright (not a quoted gameplay clue). */
.event-desc{font-family:'Playfair Display',serif;font-size:13px;color:#5a4828;line-height:1.55;margin-top:6px}
.event-wiki{display:inline-block;margin-top:6px;font-size:10px;letter-spacing:1.5px;color:#8B6914;text-decoration:none;border-bottom:1px solid #8B691440}
.event-wiki:hover{color:#1C1208;border-bottom-color:#1C1208}

/* bottom CTA */
.cta-block{background:#fff;border:1px solid rgba(28,18,8,0.12);border-radius:8px;padding:26px 24px;text-align:center}
.cta-heading{font-family:'IM Fell English SC',serif;font-size:18px;letter-spacing:2px;color:#1C1208;margin-bottom:10px}
.cta-sub{font-family:'Playfair Display',serif;font-style:italic;font-size:14px;color:#5a4828;margin-bottom:20px;line-height:1.6}
.cta-primary{display:inline-block;padding:14px 32px;background:#c44a2a;border-radius:6px;color:#F5F0E8;font-family:'IM Fell English SC',serif;font-size:14px;letter-spacing:3px;text-decoration:none;border:none;cursor:pointer}
.cta-primary:hover{background:#8B1A0E}
.cta-note{font-size:10px;letter-spacing:1.5px;color:#8B6914;margin-top:10px}

/* share popover (fallback when Web Share API isn't available) */
.share-scrim{position:fixed;inset:0;background:rgba(28,18,8,0.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:9000}
.share-scrim.open{display:flex}
.share-modal{background:#F5F0E8;border:1px solid rgba(28,18,8,0.2);border-radius:8px;max-width:380px;width:100%;padding:24px;box-shadow:0 8px 32px rgba(28,18,8,0.25)}
.share-modal-title{font-family:'IM Fell English SC',serif;font-size:16px;letter-spacing:2px;color:#1C1208;margin-bottom:18px;text-align:center}
.share-action{display:block;width:100%;padding:12px 14px;margin-bottom:8px;background:#fff;border:1px solid rgba(28,18,8,0.18);border-radius:6px;font-family:'Courier Prime',monospace;font-size:13px;color:#1C1208;letter-spacing:1px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}
.share-action:hover{background:#EDE8DC;border-color:rgba(28,18,8,0.35)}
.share-action.success{background:#D9F0CD;border-color:#2e6018;color:#1a3810}
.share-close{display:block;width:100%;padding:10px;margin-top:6px;background:transparent;border:none;font-family:'Courier Prime',monospace;font-size:11px;letter-spacing:2px;color:#8B6914;cursor:pointer}
.share-close:hover{color:#1C1208}

/* mobile-friendly bottom-sheet behaviour */
@media (max-width:560px){
  .share-scrim{align-items:flex-end;padding:0}
  .share-modal{border-radius:8px 8px 0 0;max-width:100%}
}
