/*
 * sketch.css — VizPod shared design system
 *
 * Used by all episode pages (lenny, claire-vo, the-skip).
 * To change any component site-wide: edit here, deploy once.
 *
 * Page-type variants via CSS custom properties:
 *   Default (Lenny):        --page-width: 1200px  --footer-pad: 18px 32px 28px
 *   Wide (Claire/Skip):     --page-width: 1480px  --footer-pad: 18px 0 28px
 *
 * To override for wide pages, add one inline style in <head>:
 *   <style>:root{--page-width:1480px;--footer-pad:18px 0 28px}</style>
 */

/* ── RESET ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── DESIGN TOKENS ── */
:root{
  --cream:#FDF7EE;--coral:#E8503A;--coral-lt:#FDEDE9;
  --yellow:#F5C428;--yellow-dk:#9A7800;--yellow-lt:#FEF7D6;
  --sage:#4A9970;--sage-lt:#E2F2EA;
  --navy:#1C3157;--navy-lt:#E1E9F6;
  --teal:#2A9EA6;--teal-lt:#DCF4F5;
  --orange:#E07535;--orange-lt:#FEE9D5;
  --charcoal:#1A1A2E;
  /* Page-type variants — override per page type if needed */
  --page-width:1200px;
  --footer-pad:18px 32px 28px;
}

/* ── BASE ── */
html{padding-top:0}
html,body{background:var(--cream);font-family:'Space Grotesk',sans-serif;color:var(--charcoal);padding:28px 32px;font-size:13px;line-height:1.5}
.page{max-width:var(--page-width);margin:0 auto}

/* ── ANIMATIONS ── */
@keyframes headerIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}
@keyframes stampIn{0%{opacity:0;transform:scale(.95) translateY(10px)}65%{opacity:1;transform:scale(1.015) translateY(-2px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes numIn{0%{opacity:0;transform:scale(.75)}70%{transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
@keyframes barFill{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0% 0 0)}}
@keyframes footerIn{from{opacity:0}to{opacity:1}}

/* ── HEADER ── */
.tribute{font-size:11px;color:#aaa;letter-spacing:.3px;margin-bottom:14px;animation:headerIn .5s ease .1s both}
.tribute strong{color:#888}
header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;border-bottom:5px solid var(--charcoal);padding-bottom:18px;margin-bottom:22px;animation:headerIn .5s ease both}
.hdr-left{flex:1}
.ep-label{font-size:10px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--coral);margin-bottom:6px}
h1{font-family:'Caveat',cursive;font-size:clamp(36px,5vw,62px);font-weight:700;line-height:1;color:var(--charcoal)}
h1 em{color:var(--coral);font-style:normal}
.hdr-right{text-align:right;flex-shrink:0}
.guest-name{font-family:'Caveat',cursive;font-size:clamp(22px,3vw,30px);font-weight:700;margin-bottom:2px}
.guest-role{font-size:11px;color:#666;line-height:1.6;margin-bottom:10px}
.chip{display:inline-block;background:var(--charcoal);color:#fff;font-size:10px;font-weight:700;letter-spacing:2px;padding:4px 12px;border-radius:2px}

/* ── SKETCH GRID ── */
.grid{display:grid;gap:16px;grid-template-columns:290px 1fr 310px}
.zone{border:3px solid;border-radius:4px;padding:18px 20px;position:relative;animation:stampIn .45s cubic-bezier(.22,.68,0,1.2) both;transition:transform .22s ease,box-shadow .22s ease;will-change:transform}
.zone:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(0,0,0,.09)}
.z1{grid-column:1;grid-row:1;animation-delay:.12s}
.z2{grid-column:2/4;grid-row:1;animation-delay:.22s}
.z3{grid-column:1/3;grid-row:2;animation-delay:.32s}
.z4{grid-column:3;grid-row:2;animation-delay:.42s}
.z5{grid-column:1/4;grid-row:3;animation-delay:.52s}

/* ── ZONE TYPOGRAPHY ── */
.zone-tag{font-size:9px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;display:inline-block;padding:3px 10px;border-radius:2px;color:#fff;margin-bottom:10px}
.zone h2{font-family:'Caveat',cursive;font-size:clamp(22px,2.5vw,28px);font-weight:700;line-height:1.1;margin-bottom:12px}
.zone p{font-size:13px;line-height:1.5}
.zone ul{list-style:none;padding:0}
.zone ul li{font-size:13px;line-height:1.5;padding-left:18px;position:relative;margin-bottom:6px}
.zone ul li::before{content:'→';position:absolute;left:0;font-weight:700}
.pq{border-left:4px solid;padding:8px 12px;margin:12px 0;font-size:13px;font-style:italic;line-height:1.5}
.inset{background:rgba(255,255,255,.65);border-radius:3px;padding:10px 12px;margin-top:10px;font-size:13px}
.inset-label{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;display:block;margin-bottom:5px;opacity:.7}
.big-num{font-family:'Caveat',cursive;font-size:44px;font-weight:700;line-height:1;display:block;animation:numIn .45s cubic-bezier(.22,.68,0,1.2) both}
.stat-nums .inset:nth-child(1) .big-num{animation-delay:.55s}
.stat-nums .inset:nth-child(2) .big-num{animation-delay:.65s}
.stat-nums .inset:nth-child(3) .big-num{animation-delay:.75s}

/* ── ZONE COLORS ── */
.c-coral{background:var(--coral-lt);border-color:var(--coral)}
.c-coral .zone-tag{background:var(--coral);color:#fff}
.c-coral h2{color:var(--coral)}
.c-coral .pq{border-color:var(--coral)}
.c-yellow{background:var(--yellow-lt);border-color:var(--yellow)}
.c-yellow .zone-tag{background:var(--yellow);color:var(--charcoal)}
.c-yellow h2{color:var(--yellow-dk)}
.c-yellow .pq{border-color:var(--yellow)}
.c-sage{background:var(--sage-lt);border-color:var(--sage)}
.c-sage .zone-tag{background:var(--sage);color:#fff}
.c-sage h2{color:var(--sage)}
.c-sage .pq{border-color:var(--sage)}
.c-navy{background:var(--navy-lt);border-color:var(--navy)}
.c-navy .zone-tag{background:var(--navy);color:#fff}
.c-navy h2{color:var(--navy)}
.c-navy .pq{border-color:var(--navy)}
.c-teal{background:var(--teal-lt);border-color:var(--teal)}
.c-teal .zone-tag{background:var(--teal);color:#fff}
.c-teal h2{color:var(--teal)}
.c-teal .pq{border-color:var(--teal)}
.c-orange{background:var(--orange-lt);border-color:var(--orange)}
.c-orange .zone-tag{background:var(--orange);color:#fff}
.c-orange h2{color:var(--orange)}
.c-orange .pq{border-color:var(--orange)}

/* ── INNER LAYOUTS ── */
.inner2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}
.inner-card{background:rgba(255,255,255,.65);border-radius:3px;padding:12px 14px;font-size:13px}
.inner-card-title{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}

/* ── CONTRARIAN (ZONE 5) ── */
.hot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.hot-card{background:rgba(255,255,255,.65);border-radius:3px;padding:12px 14px;font-size:13px;transition:transform .18s ease,box-shadow .18s ease;cursor:default}
.hot-card:nth-child(odd):hover{transform:rotate(-1.5deg) scale(1.02);box-shadow:0 6px 16px rgba(0,0,0,.08)}
.hot-card:nth-child(even):hover{transform:rotate(1.5deg) scale(1.02);box-shadow:0 6px 16px rgba(0,0,0,.08)}
.x-mark{font-family:'Caveat',cursive;font-size:30px;font-weight:700;line-height:1;display:block;margin-bottom:2px}
.vs-lbl{font-size:9px;font-weight:700;letter-spacing:2px;color:#aaa;margin:6px 0 4px;display:block}
.chk{color:#4A9970;font-size:14px;font-weight:700}

/* ── SPECTRUM ── */
.spectrum-wrap{position:relative;margin:12px 0 20px}
.spectrum-bar{height:12px;border-radius:6px;animation:barFill 1.2s ease .85s both}
.spectrum-row{display:flex;justify-content:space-between;font-size:9px;color:#aaa;letter-spacing:.5px;margin-top:4px}

/* ── ACTION BAR (PDF + Share) ── */
.vp-pdf-bar{display:flex;gap:6px;margin-top:8px;justify-content:flex-end;position:relative}
.vp-share-btn{display:inline-flex;align-items:center;gap:5px;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:2px;border:1.5px solid #bbb;background:transparent;color:#aaa;cursor:pointer;transition:all .15s ease;white-space:nowrap}
.vp-share-btn:hover{border-color:#1A1A2E;color:#1A1A2E}
.vp-share-menu{display:none;position:fixed;top:0;right:0;background:#fff;border:1.5px solid #e0dbd4;border-radius:4px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:9999;min-width:160px;overflow:hidden}
.vp-share-menu.open{display:block}
.vp-share-menu a,.vp-share-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;color:#333;text-decoration:none;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .12s}
.vp-share-menu a:hover,.vp-share-menu button:hover{background:#f5f0e8}

/* ── AUDIO PLAYER ── */
.vp-audio-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:#1A1A2E;color:#fff;z-index:10000;font-family:'Space Grotesk',sans-serif;font-size:12px;padding:10px 20px;align-items:center;gap:14px;box-shadow:0 -4px 20px rgba(0,0,0,.25)}
.vp-audio-bar.active{display:flex}
.vp-audio-play{background:none;border:none;color:#fff;font-size:18px;cursor:pointer;flex-shrink:0;padding:0;line-height:1;width:24px;text-align:center}
.vp-audio-title{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ccc;font-size:11px}
.vp-audio-time{font-size:11px;color:#aaa;flex-shrink:0;letter-spacing:.5px;font-variant-numeric:tabular-nums}
.vp-audio-progress{flex:2;min-width:60px;height:3px;background:rgba(255,255,255,.2);border-radius:2px;cursor:pointer;position:relative}
.vp-audio-fill{height:3px;background:var(--coral);border-radius:2px;width:0%;transition:width .5s linear;pointer-events:none}
.vp-audio-close{background:none;border:none;color:#aaa;font-size:16px;cursor:pointer;flex-shrink:0;padding:0;line-height:1}
.vp-audio-close:hover{color:#fff}
.vp-listen-btn{display:none!important}
@media(max-width:700px){.vp-audio-title{display:none}}
@media print{.vp-audio-bar{display:none!important}}

/* ── FEEDBACK BAR ── */
.vp-feedback{display:flex;align-items:center;gap:10px;padding:10px 0 14px;font-size:11px;color:#aaa;font-family:'Space Grotesk',sans-serif;letter-spacing:.3px}
.vp-feedback-label{flex-shrink:0}
.vp-feedback-btn{display:inline-flex;align-items:center;gap:4px;font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:600;padding:4px 12px;border-radius:2px;border:1.5px solid #ddd;background:transparent;color:#888;cursor:pointer;transition:all .15s ease}
.vp-feedback-btn:hover{border-color:#1A1A2E;color:#1A1A2E}
.vp-feedback-btn.yes:hover{border-color:var(--sage);color:var(--sage)}
.vp-feedback-btn.no:hover{border-color:var(--coral);color:var(--coral)}
.vp-feedback-thanks{font-size:11px;color:var(--sage);font-weight:600;display:none}
@media print{.vp-feedback{display:none!important}}

/* ── EPISODE NAV ── */
.page-end{display:block;width:100%;margin-top:20px;padding-top:16px;border-top:2px dashed #ccc;animation:footerIn .5s ease .9s both}
.ep-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 0 14px;font-size:13px;font-family:'Space Grotesk',sans-serif;letter-spacing:.3px;border-bottom:1px solid #e0dbd4;width:100%}
.ep-nav-prev{text-align:left}
.ep-nav-center{text-align:center}
.ep-nav-next{text-align:right}
.ep-nav a{color:#666;text-decoration:none;transition:color .15s}
.ep-nav a:hover{color:#333}

/* ── SVG ── */
.sketch-svg{overflow:visible !important}
.sketch-svg text{font-size:10px !important;font-family:"Space Grotesk",sans-serif !important}

/* ── FOOTER ── */
.vp-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;max-width:var(--page-width);margin:28px auto 0;padding:var(--footer-pad);font-size:11px;color:#aaa;font-family:'Space Grotesk',sans-serif}
.vp-footer-brand{font-family:'Caveat',cursive;font-size:18px;font-weight:700;color:#1A1A2E;flex-shrink:0}
.vp-footer-brand em{color:#E8503A;font-style:normal}
.vp-footer-center{text-align:center;flex:1;min-width:0}
.vp-footer-right{text-align:right;flex-shrink:0}
.vp-footer a{color:#aaa;text-decoration:none}
.vp-footer a:hover{color:#555}

/* ── PDF BUTTON ── */
.vp-pdf-btn{display:inline-flex;align-items:center;gap:5px;font-family:'Space Grotesk',sans-serif;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:6px 14px;border-radius:2px;border:1.5px solid #bbb;background:transparent;color:#aaa;cursor:pointer;transition:all .15s ease;white-space:nowrap}
.vp-pdf-btn:hover{border-color:#1A1A2E;color:#1A1A2E}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .z1{grid-column:1;grid-row:1}.z2{grid-column:2;grid-row:1}
  .z3{grid-column:1/3;grid-row:2}.z4{grid-column:1/3;grid-row:3}
  .z5{grid-column:1/3;grid-row:4}.hot-grid{grid-template-columns:repeat(2,1fr)}
  .inner2{grid-template-columns:1fr}
}
@media(max-width:700px){
  html{padding-top:0}html,body{padding:16px}
  header{flex-direction:column;gap:12px}.hdr-right{text-align:left}
  .grid{grid-template-columns:1fr}
  .z1,.z2,.z3,.z4,.z5{grid-column:1;grid-row:auto}
  .hot-grid{grid-template-columns:1fr 1fr}
  .vp-footer{flex-direction:column;gap:8px;text-align:center;padding:16px}
  .vp-footer-right,.vp-footer-center{text-align:center}
  .vp-pdf-btn .btn-label,.vp-share-btn .btn-label{display:none}
  .vp-pdf-btn,.vp-share-btn{padding:6px 10px;letter-spacing:0}
}
@media(max-width:420px){.hot-grid{grid-template-columns:1fr}}

/* ── PRINT ── */
@media print{
  .vp-pdf-btn,.vp-share-btn,.top-nav,nav,.ep-nav,.tribute,.vp-overlay,.vp-footer{display:none!important}
  body,html{padding:0!important;background:#fff!important}
  .page{max-width:100%!important}
  .zone{break-inside:avoid;box-shadow:none!important}
  .grid,.canvas{gap:8px!important}
  header{padding-bottom:12px!important;margin-bottom:12px!important}
}

/* ── ACCESSIBILITY ── */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
a:focus-visible{outline:2px solid var(--coral);outline-offset:2px}
