/* ===== VibeCheck reports · Brand Guidelines v1.0 =====
   The gilded frame belongs to the full report, on its cover only.
   Lite and free reports: no frame anywhere. Full report: frame on the cover, flat cards everywhere else.
   Tables in Source Serif, never Big Shoulders. No green on buttons or chips. Text on white is Ink or Grey. */

/* ---- frames: flat white cards with a hard shadow ---- */
:root:not([data-tier="full"]) .framed,:root[data-tier="full"] .framed:not(.ticket){
  border:4px solid var(--bd)!important;border-image:none!important;background:var(--cardbg)!important;background-image:none!important;
  filter:none!important;box-shadow:10px 10px 0 var(--sh);color:var(--cardink);--ink:var(--cardink);--soft:var(--cardsoft)}
:root:not([data-tier="full"]) .framed::after,:root[data-tier="full"] .framed:not(.ticket)::after{content:none!important}
:root:not([data-tier="full"]) .ticket.framed{background:#FFFFFF!important;border-color:#0B0B10!important;color:#0B0B10;--ink:#0B0B10;--soft:#4A4A55;padding:2.4rem 1.6rem 2rem}
.plate.framed{padding:2.6rem 1.6rem 2.4rem}
.plate .medal{background:var(--t);border:4px solid #0B0B10;box-shadow:none;color:var(--ti)}
.plate .cue{color:var(--cardsoft);font-family:var(--mono);font-weight:600;letter-spacing:.24em}
.plate h2{color:var(--cardink);text-shadow:.07em .07em 0 var(--t)}
.plate .tag{color:var(--cardink)}
.plate .who,.plate .heaven,.plate .circle{color:var(--cardsoft)}
.plate .flourish{color:var(--cardink)}
.starcard.framed{padding:1.6rem}
.starcard .sky{background:#7A3CFF;border:3px solid #0B0B10}
.starcard h5,.starcard p{color:var(--cardink)}
.skyband{background:#7A3CFF}
.letter.framed{padding:2.4rem 2rem;box-shadow:10px 10px 0 #FF48B0}
.letter p{color:var(--cardink)}
.tent[data-n="6"] .reflection{background:var(--cardbg)}

/* ---- cover: the real logo ---- */
.logo{display:flex;align-items:center;justify-content:center;gap:.55rem;margin:0}
.logo svg{width:3rem;height:3rem;flex:none;overflow:visible}
.logo .wm{display:flex;align-items:baseline;font:900 clamp(2.6rem,8vw,3.6rem)/1 "Big Shoulders Display","Arial Narrow",Impact,sans-serif;text-transform:uppercase;letter-spacing:.01em;color:#0B0B10}
.logo .wm .v{padding-right:.12em}
.logo .wm .c{background:#0B0B10;color:#FFE800;padding:.06em .16em 0;box-shadow:.09em .09em 0 #D6007A}
.ticket .sub{margin:1rem 0 1.6rem}
.pair span{color:#0B0B10}
.tear{background:#0B0B10;color:#FFE800;border-color:#0B0B10;box-shadow:6px 6px 0 #FF48B0}
.tear:hover{box-shadow:3px 3px 0 #FF48B0}
.ticket .serial{margin-top:calc(1.5rem + 6px)}

/* ---- tables: Source Serif labels ---- */
.tbl th{font-family:var(--body);font-weight:700;font-size:.92rem;letter-spacing:.1em}
.tbl tr td:first-child,.tbl tr:nth-child(even) td:first-child{font-family:var(--body);font-weight:600;font-size:1.1rem}

/* ---- no green on buttons or chips ---- */
.tent[data-n="6"] .whisper .from,.tent[data-n="6"] .game .tag,.tent[data-n="6"] .lock,
.tent[data-n="6"] .reveal .truth b,.tent[data-n="6"] .reflection .rtag,.tent[data-n="6"] .body .pairs b{
  background:#0B0B10;color:#FFE800;border-color:#0B0B10}
.tent[data-n="6"] .oath input:checked{background:#0B0B10}
.rail .glyph[href="#d6"],.punch b:nth-child(6){background:#0B0B10!important;color:#FFE800!important}
:root[data-theme="dark"] .rail .glyph[href="#d6"]{border-color:#fff}

/* ---- the lite gate's buy button: ink face, yellow type ---- */
#buy{background:#0B0B10;color:#FFE800;border-color:#0B0B10;box-shadow:6px 6px 0 #FF48B0}
#buy:hover{box-shadow:3px 3px 0 #FF48B0}
html{overflow-x:clip}
:root[data-theme="dark"] .stage::before{background:#0B0B10}

/* ---- equal space above and below every button (hard shadow counted) ---- */
#gate .game .hint{margin:0 0 1.5rem}
#buy{margin:0 0 6px}
#later{margin-top:1.5rem!important}
.pdfend p{margin:0 0 1.5rem}
.pdfbtn{margin-bottom:calc(1.5rem + 6px)}
.share{margin-bottom:calc(3rem + 6px)}
