/* SIMON HAMMER — tourist-town series
   Hidden Globe storefront skeleton, retuned to a faded 1970s travel poster:
   deep sea-teal night, sunset coral for anything buyable, sand text.
   Verdict colours match the covers: red = dying, amber = red flags, green = go instead. */

:root{
  --ink:#10262A;          /* page */
  --panel:#163238;        /* cards */
  --raise:#1C3D44;        /* lifted surfaces */
  --line:#28525A;
  --line-2:#36666F;

  --gold:#FF9E5E;         /* headlines, prices, key numbers */
  --gold-lit:#FFC58A;
  --gold-deep:#E0673A;

  --bone:#F6EEDF;         /* body */
  --muted:#B4C4C2;

  --green:#7EE0B0;        /* savings, Where to Go Instead */
  --pink:#FF6B6B;         /* Dying Tourist Towns */
  --blue:#FFD166;         /* Tourist Town Red Flags (amber) */

  --body:20px;
  --lh:1.65;
  --measure:62ch;
  --tap:60px;
  --pad:28px;
  --content:1560px;
  --frame-wide:1460px;
  --frame-grid:1400px;
  --frame-medium:1320px;
  --frame-reading:1180px;
  --r:18px;
  --ease:cubic-bezier(.2,.7,.3,1);

  --shadow:0 1px 2px rgba(0,0,0,.4),0 18px 40px -18px rgba(0,0,0,.65);
  --glow-gold:0 0 0 1px rgba(255,158,94,.35),0 0 34px -6px rgba(255,158,94,.42),
              0 24px 60px -22px rgba(0,0,0,.8);
  --glow-soft:0 0 0 1px rgba(255,158,94,.18),0 0 26px -10px rgba(255,158,94,.28);
  --glow-action:0 0 0 1px rgba(255,197,138,.42),0 0 24px -3px rgba(255,158,94,.4),
                0 14px 34px -16px rgba(0,0,0,.82);
  --glow-action-hover:0 0 0 2px rgba(255,197,138,.72),
                      0 0 30px 4px rgba(255,158,94,.52),
                      0 20px 48px -14px rgba(0,0,0,.88);
}

*{box-sizing:border-box}
img,svg,video{max-width:100%;height:auto}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

body{
  margin:0;background:var(--ink);color:var(--bone);
  font:400 var(--body)/var(--lh) "Work Sans",system-ui,sans-serif;
  overflow-x:hidden;
  background-image:
    radial-gradient(58ch 40ch at 82% -8%,rgba(255,158,94,.10),transparent 62%),
    radial-gradient(46ch 34ch at -6% 12%,rgba(255,209,102,.07),transparent 60%),
    radial-gradient(50ch 36ch at 30% 104%,rgba(126,224,176,.05),transparent 60%);
  background-attachment:fixed;
}
/* fine grain so large dark areas do not band */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wrap{max-width:var(--content);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);
  position:relative;z-index:2}
.wrap.frame-wide{max-width:var(--frame-wide)}
.wrap.frame-grid{max-width:var(--frame-grid)}
.wrap.frame-medium{max-width:var(--frame-medium)}
.wrap.frame-reading{max-width:var(--frame-reading)}
.col{max-width:var(--measure)}
p{max-width:var(--measure);color:var(--bone)}
p.sub,.fine{color:var(--muted)}

h1,h2,.serif{font-family:"Fraunces",Georgia,serif;font-weight:400;
  letter-spacing:-.015em;color:var(--bone)}
h1{font-size:clamp(46px,6.2vw,80px);line-height:1.0;margin:0 0 20px}
h1 em{font-style:italic;color:var(--gold)}
h2{font-size:clamp(31px,4vw,50px);line-height:1.06;margin:0 0 14px}
h2 em{font-style:italic;color:var(--gold)}
h3{font-family:"Work Sans",sans-serif;font-size:20px;line-height:1.3;
  margin:0 0 8px;font-weight:600;letter-spacing:-.01em;color:var(--bone)}

.eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:14px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--gold);
  margin:0 0 18px;display:flex;align-items:center;gap:12px;font-weight:500}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold)}

section{padding:74px 0;position:relative}
section+section{border-top:1px solid var(--line)}

/* ── action ───────────────────────────────────────────────────── */
.cta{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
  min-height:var(--tap);padding:18px 34px;border-radius:14px;
  background:linear-gradient(180deg,var(--gold-lit),var(--gold));
  color:#2A1206;text-decoration:none;border:0;
  font-family:"Work Sans",sans-serif;font-size:19px;font-weight:700;
  letter-spacing:.005em;box-shadow:var(--glow-action);position:relative;
  isolation:isolate;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),filter .3s var(--ease);
}
.cta:hover{transform:translateY(-3px);filter:brightness(1.06);
  box-shadow:var(--glow-action-hover)}
.cta:not(.ghost):not(.soon)::after,.mast-cta::after{
  content:"";position:absolute;top:-45%;bottom:-45%;left:-38%;width:28%;
  pointer-events:none;background:linear-gradient(90deg,transparent,
    rgba(255,255,255,.62),transparent);transform:translateX(-190%) skewX(-18deg);
  opacity:0;transition:transform .68s var(--ease),opacity .22s ease}
.cta:not(.ghost):not(.soon):hover::after,
.cta:not(.ghost):not(.soon):focus-visible::after,
.mast-cta:hover::after,.mast-cta:focus-visible::after{
  transform:translateX(610%) skewX(-18deg);opacity:.72}
.cta:active{transform:translateY(-1px);box-shadow:var(--glow-action)}
.cta:focus-visible{outline:3px solid var(--gold-lit);outline-offset:4px}
.cta:not(.ghost):not(.soon):focus-visible{box-shadow:var(--glow-action-hover)}
.cta.ghost{background:transparent;color:var(--bone);
  border:1px solid var(--line-2);box-shadow:none;font-weight:600}
.cta.ghost:hover{border-color:var(--gold);color:var(--gold);filter:none;
  box-shadow:0 0 0 1px rgba(255,158,94,.28),0 0 26px -4px rgba(255,158,94,.38)}
.cta.soon{background:var(--raise);color:var(--muted);box-shadow:none;
  border:1px dashed var(--line-2);cursor:default;pointer-events:none;font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:16px;margin:32px 0 14px}
.fine{font-size:17px;color:var(--muted);margin:0}

a:not(.cta){color:var(--gold);text-decoration:underline;text-underline-offset:4px;
  text-decoration-thickness:2px;text-decoration-color:rgba(255,158,94,.35);
  transition:text-decoration-color .3s var(--ease)}
a:not(.cta):hover{text-decoration-color:var(--gold)}
a:focus-visible,summary:focus-visible,button:focus-visible{
  outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}

/* ── hero ─────────────────────────────────────────────────────── */
header.hero{padding-top:52px;padding-bottom:56px}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:64px;align-items:center}
.hero-grid>*,.grid>*,.books>*,.proof>*,.bundle-body>*{min-width:0}
.lede{font-size:clamp(20px,1.7vw,24px);line-height:1.5;color:var(--muted);max-width:46ch}
.hero-price{display:grid;grid-template-columns:max-content max-content;
  grid-template-rows:auto auto;column-gap:14px;row-gap:4px;
  align-items:center;width:max-content;margin:28px 0 0}
.hero-price b{font-family:"Fraunces",Georgia,serif;font-weight:400;
  font-size:58px;line-height:.85;color:var(--gold);grid-column:1;grid-row:1 / 3;
  align-self:center}
.hero-price s{font-size:17px;line-height:1.1;color:var(--muted);grid-column:2;
  grid-row:1;align-self:end;text-decoration-color:rgba(180,196,194,.62)}
.hero-price em{font-style:normal;font-size:14px;color:var(--green);font-weight:700;
  grid-column:2;grid-row:2;align-self:start;justify-self:start}

/* three covers, fanned */
.trio{display:flex;justify-content:center;align-items:flex-end;
  perspective:1400px;max-width:100%;padding:0 4px}
.trio img{width:clamp(88px,15vw,230px);border-radius:6px;
  box-shadow:0 4px 12px rgba(0,0,0,.5),0 30px 60px -22px rgba(0,0,0,.9);
  transition:transform .6s var(--ease)}
.trio img:nth-child(1){transform:rotate(-9deg) translateX(34px) scale(.9);z-index:1}
.trio img:nth-child(2){width:clamp(104px,17.5vw,270px);z-index:3;position:relative;
  box-shadow:0 4px 14px rgba(0,0,0,.55),0 0 40px -8px rgba(255,158,94,.28),
             0 36px 72px -24px rgba(0,0,0,.95)}
.trio img:nth-child(3){transform:rotate(9deg) translateX(-34px) scale(.9);z-index:2}
.trio:hover img:nth-child(1){transform:rotate(-13deg) translateX(18px) scale(.92)}
.trio:hover img:nth-child(3){transform:rotate(13deg) translateX(-18px) scale(.92)}

/* ── proof strip ──────────────────────────────────────────────── */
.proof-section{padding:48px 0 24px;background:linear-gradient(180deg,
  rgba(28,61,68,.16),transparent)}
.proof-section + #buy{border-top:0;padding-top:40px;
  background:linear-gradient(180deg,rgba(126,224,176,.035),transparent 240px)}
.proof-panel{display:grid;grid-template-columns:minmax(320px,.86fr) 1.14fr;
  border:1px solid var(--line-2);border-radius:24px;overflow:hidden;
  background:linear-gradient(135deg,rgba(28,61,68,.94),rgba(18,42,47,.96));
  box-shadow:0 28px 64px -34px rgba(0,0,0,.9)}
.proof-copy{padding:38px 36px;border-right:1px solid var(--line)}
.proof-kicker{font-family:"IBM Plex Mono",monospace;font-size:15px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 14px}
.proof-copy h2{font-size:clamp(30px,3vw,42px);margin-bottom:16px}
.proof-copy p:not(.proof-kicker){color:var(--muted);font-size:18px;line-height:1.55;
  margin:0 0 22px;max-width:50ch}
.proof-link{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:8px 0;
  color:var(--bone)!important;font-weight:700;text-decoration-color:rgba(126,224,176,.48)!important}
.proof-link span{color:var(--green);font-size:22px;transition:transform .25s var(--ease)}
.proof-link:hover span,.proof-link:focus-visible span{transform:translateX(5px)}
.proof-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--line)}
.proof-stat{--stat-accent:var(--gold);position:relative;padding:30px 28px;
  background:rgba(22,50,56,.98);overflow:hidden}
.proof-stat:nth-child(1){--stat-accent:var(--green)}
.proof-stat:nth-child(3){--stat-accent:var(--blue)}
.proof-stat:nth-child(4){--stat-accent:var(--green)}
.proof-stat::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:var(--stat-accent);transform:scaleX(.22);transform-origin:left;
  transition:transform .4s var(--ease)}
.proof-stat:hover::before{transform:scaleX(1)}
.proof-stat>span{display:block;font-family:"IBM Plex Mono",monospace;font-size:15px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--stat-accent);font-weight:600}
.proof-stat b{display:block;font-family:"Fraunces",Georgia,serif;font-weight:400;
  font-size:50px;line-height:.9;color:var(--bone);font-variant-numeric:tabular-nums;
  margin:18px 0 10px}
.proof-stat p{font-size:16px;line-height:1.45;color:var(--muted);margin:0;max-width:24ch}

/* ── the offer ────────────────────────────────────────────────── */
.bundle{max-width:1320px;margin-left:auto;margin-right:auto;
  background:linear-gradient(180deg,var(--raise),var(--panel));
  border:1px solid rgba(255,158,94,.42);border-radius:24px;overflow:hidden;
  box-shadow:var(--glow-gold)}
.bundle-head{background:linear-gradient(90deg,var(--gold-deep),var(--gold));
  color:#2A1206;padding:10px 24px;font-family:"IBM Plex Mono",monospace;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  text-align:center}
.bundle-body{display:grid;grid-template-columns:auto 1fr;gap:34px;padding:30px 34px;
  align-items:center}
.bundle-covers{display:flex;align-items:flex-end;justify-content:center;flex-shrink:0}
.bundle-covers img{width:112px;border-radius:5px;
  box-shadow:0 3px 10px rgba(0,0,0,.5),0 22px 46px -18px rgba(0,0,0,.9)}
.bundle-covers img:nth-child(1){transform:rotate(-7deg) translateX(18px);z-index:1}
.bundle-covers img:nth-child(2){width:130px;z-index:3;position:relative}
.bundle-covers img:nth-child(3){transform:rotate(7deg) translateX(-18px);z-index:2}
.bundle h2{font-size:clamp(25px,2.5vw,32px);margin:0 0 14px;color:var(--gold)}
.bundle-note{margin:0 0 14px;color:var(--muted);font-size:17px;line-height:1.5}
.bundle .lede{margin:0 0 20px;font-size:19px}
.bundle ul{list-style:none;padding:0;margin:0 0 16px}
.bundle li{padding:5px 0 5px 28px;position:relative;font-size:17px;max-width:none;
  color:var(--bone);display:flex;justify-content:space-between;gap:16px}
.bundle li::before{content:"✓";position:absolute;left:2px;color:var(--green);
  font-weight:700}
.bundle li span{color:var(--muted);font-family:"IBM Plex Mono",monospace;
  font-size:14px;flex-shrink:0}

.pricerow{display:grid;grid-template-columns:max-content max-content;
  grid-template-rows:auto auto;column-gap:14px;row-gap:4px;align-items:center;
  width:max-content;border-top:1px solid var(--line);padding-top:16px;margin-bottom:18px}
.pricerow .now{font-family:"Fraunces",Georgia,serif;font-size:56px;
  line-height:.85;color:var(--gold);grid-column:1;grid-row:1 / 3;align-self:center}
.pricerow .was{font-size:17px;line-height:1.1;color:var(--muted);text-decoration:line-through;
  grid-column:2;grid-row:1;align-self:end}
.saveflag{grid-column:2;grid-row:2;align-self:start;justify-self:start}
.hero-price em,.saveflag,.final-price>span{
  background:rgba(126,224,176,.14);color:var(--green);
  border:1px solid rgba(126,224,176,.42);border-radius:999px;padding:8px 16px;
  font-size:14px;line-height:1.1;font-weight:700;white-space:nowrap}
.pricerow .was{text-decoration-color:rgba(180,196,194,.6)}

.paytrust{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.paytrust span{border:1px solid var(--line-2);border-radius:999px;padding:6px 13px;
  font-size:14px;color:var(--muted)}

.orsep{display:flex;align-items:center;gap:20px;margin:48px 0 30px;
  font-family:"IBM Plex Mono",monospace;font-size:14px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted)}
.orsep::before,.orsep::after{content:"";flex:1;height:1px;background:var(--line)}

/* ── book cards ───────────────────────────────────────────────── */
.books{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px}
.bookcard{--book-accent:255,107,107;--book-edge:#5b0b17;
  background:linear-gradient(180deg,rgba(26,56,62,.98),var(--panel) 58%);
  border:1px solid var(--line);border-radius:var(--r);
  padding:28px;box-shadow:var(--shadow);display:flex;flex-direction:column;
  position:relative;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.bookcard:nth-child(2){--book-accent:255,209,102;--book-edge:#4a3200}
.bookcard:nth-child(3){--book-accent:126,224,176;--book-edge:#073323}
.bookcard:hover{transform:translateY(-5px);border-color:var(--line-2);
  box-shadow:0 2px 6px rgba(0,0,0,.45),0 30px 62px -22px rgba(0,0,0,.9)}
.bookcard.best{border-color:rgba(255,158,94,.5);box-shadow:var(--glow-soft)}
.bookcard.best:hover{box-shadow:var(--glow-gold)}
.bookcard .flag{position:absolute;top:-13px;left:28px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold));color:#2A1206;
  border-radius:999px;padding:6px 15px;font-family:"IBM Plex Mono",monospace;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;z-index:5}
.book-stage{min-height:334px;margin:-6px -5px 28px;display:grid;place-items:center;
  position:relative;isolation:isolate;border-radius:14px;
  background:radial-gradient(circle at 50% 46%,rgba(var(--book-accent),.14),transparent 43%),
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 72%)}
.book-stage::before{content:"";position:absolute;z-index:-1;width:66%;height:72%;
  border-radius:50%;background:rgba(var(--book-accent),.11);filter:blur(36px);opacity:.55;
  transition:opacity .4s var(--ease),transform .5s var(--ease)}
.book-stage::after{content:"";position:absolute;z-index:-1;left:18%;right:18%;bottom:17px;
  height:18px;border-radius:50%;background:rgba(0,0,0,.56);filter:blur(11px);
  transform:scaleX(.9)}
.book-mockup{position:relative;width:min(100%,202px);isolation:isolate;
  transform:perspective(1100px) rotateY(-9deg) rotateX(1deg) rotateZ(-.35deg);
  transform-origin:left center;transition:transform .4s var(--ease),filter .4s var(--ease);
  filter:drop-shadow(2px 5px 5px rgba(0,0,0,.44))
    drop-shadow(13px 25px 18px rgba(0,0,0,.54))}
.book-mockup::before{content:"";position:absolute;z-index:-1;top:6px;right:-12px;
  width:15px;height:calc(100% - 12px);border:1px solid rgba(255,255,255,.18);
  border-left:0;border-radius:0 4px 5px 0;
  background:repeating-linear-gradient(0deg,#d6ccb5 0 2px,#eee7d8 2px 4px);
  transform:skewY(17deg);box-shadow:inset 3px 0 4px rgba(0,0,0,.3)}
.book-mockup::after{content:"";position:absolute;z-index:3;inset:0 auto 0 0;
  width:12px;border-radius:4px 0 0 4px;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.5),var(--book-edge) 38%,rgba(255,255,255,.1) 70%,transparent)}
.book-page-block{position:absolute;z-index:-1;left:8px;right:-7px;bottom:-9px;height:11px;
  border-radius:0 0 5px 4px;border-bottom:1px solid rgba(255,255,255,.18);
  background:repeating-linear-gradient(90deg,#eee7d8 0 3px,#d6ccb5 3px 5px);
  box-shadow:inset 0 3px 4px rgba(0,0,0,.25);transform:skewX(-38deg);
  transform-origin:left top}
.book-mockup img{display:block;width:100%;height:auto;border-radius:4px 5px 5px 4px;
  box-shadow:inset -1px 0 rgba(255,255,255,.18)}
.bookcard:hover .book-stage::before{opacity:.88;transform:scale(1.06)}
.bookcard:hover .book-mockup{transform:perspective(1100px) rotateY(-4deg) rotateX(0) rotateZ(0) translateY(-3px);
  filter:drop-shadow(2px 5px 5px rgba(0,0,0,.38))
    drop-shadow(15px 27px 20px rgba(0,0,0,.56))}
.bookcard h3{font-family:"Fraunces",Georgia,serif;font-weight:400;
  font-size:26px;line-height:1.12;margin:0 0 6px;color:var(--bone)}
.bookcard .meta{font-family:"IBM Plex Mono",monospace;font-size:14px;
  color:var(--muted);margin:0 0 16px}
.bookcard ul{list-style:none;padding:0;margin:0 0 22px;flex:1}
.bookcard li{padding:7px 0 7px 22px;position:relative;font-size:17px;
  color:var(--muted);max-width:none}
.bookcard li::before{content:"·";position:absolute;left:6px;color:var(--gold);
  font-weight:700;font-size:20px;line-height:1}
.bookcard .tagprice{display:grid;grid-template-columns:76px max-content;
  column-gap:11px;align-items:center;
  min-height:56px;margin-bottom:18px}
.bookcard .tagprice .now{font-family:"Fraunces",Georgia,serif;font-size:46px;
  line-height:.88;color:var(--gold);font-variant-numeric:tabular-nums;
  grid-column:1;align-self:center}
.bookcard .price-context{grid-column:2;display:inline-flex;align-items:center;
  min-width:128px;padding:7px 11px;background:rgba(126,224,176,.08);
  border:1px solid rgba(126,224,176,.34);border-radius:999px;line-height:1}
.bookcard .tagprice .was{font-size:14px;line-height:1;color:var(--muted);
  text-decoration:line-through;text-decoration-color:rgba(180,196,194,.62);
  margin:0 10px 0 0}
.bookcard .tagprice .off{padding-left:0;border-left:0;
  color:var(--green);font-family:"Work Sans",sans-serif;font-size:14px;
  line-height:1;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.bookcard .xsell b{color:var(--green);font-weight:700}
.bookcard .cta{width:100%;min-height:54px;font-size:18px;padding:15px 18px}
.bookcard:not(.best) .cta{box-shadow:var(--glow-soft)}

/* ── cards / grids ────────────────────────────────────────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:20px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:28px 26px;box-shadow:var(--shadow);position:relative;overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s var(--ease)}
.card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:var(--accent,var(--gold));transform:scaleY(0);transform-origin:top;
  transition:transform .45s var(--ease)}
.card:hover{transform:translateY(-6px);border-color:var(--line-2)}
.card:hover::before{transform:scaleY(1)}
.card p{font-size:18px;margin:0;max-width:none;color:var(--muted)}
.card .tag{display:block;font-family:"IBM Plex Mono",monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--accent,var(--gold));
  margin-bottom:10px;font-weight:600}
.c1{--accent:var(--green)} .c2{--accent:var(--gold)} .c3{--accent:var(--blue)}
.c4{--accent:var(--pink)}  .c5{--accent:var(--green)} .c6{--accent:var(--gold)}
.c7{--accent:var(--blue)}  .c8{--accent:var(--pink)}

/* ── complete-series decision flow ───────────────────────────── */
.decision-section{background:linear-gradient(180deg,transparent,rgba(28,61,68,.13),transparent)}
.decision-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.decision-card{--decision-accent:var(--pink);position:relative;padding:26px;
  background:linear-gradient(180deg,var(--panel),rgba(20,46,51,.98));
  border:1px solid var(--line);border-top:3px solid var(--decision-accent);
  border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;
  transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.decision-card.dying{--decision-accent:var(--pink)}
.decision-card.flags{--decision-accent:var(--blue)}
.decision-card.instead{--decision-accent:var(--green)}
.decision-card:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--decision-accent) 48%,var(--line));
  box-shadow:0 25px 50px -25px rgba(0,0,0,.88)}
.decision-book{display:flex;align-items:center;gap:15px;padding-bottom:20px;
  margin-bottom:22px;border-bottom:1px solid var(--line)}
.decision-book img{width:62px;flex:0 0 auto;border-radius:4px;
  box-shadow:0 10px 24px -12px rgba(0,0,0,.9)}
.decision-book div{min-width:0}
.decision-book span{display:block;font-family:"IBM Plex Mono",monospace;font-size:15px;
  color:var(--decision-accent);margin-bottom:4px}
.decision-book b{display:block;color:var(--bone);font-size:16px;line-height:1.3}
.decision-card h3{font-family:"Fraunces",Georgia,serif;font-size:29px;
  font-weight:400;color:var(--bone);margin-bottom:12px}
.decision-card>p{color:var(--muted);font-size:17px;line-height:1.55;margin:0 0 18px}
.decision-card ul{list-style:none;padding:0;margin:0}
.decision-card li{position:relative;padding:7px 0 7px 23px;color:var(--bone);font-size:16px}
.decision-card li::before{content:"✓";position:absolute;left:0;color:var(--decision-accent);
  font-weight:700}
.decision-chain{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:12px;margin-top:24px;padding:18px 22px;border:1px solid rgba(255,158,94,.26);
  border-radius:14px;background:rgba(255,158,94,.055);color:var(--muted);font-size:17px}
.decision-chain b{color:var(--gold)}
.decision-chain span{color:var(--bone)}
.decision-chain i{color:var(--gold);font-style:normal;font-size:21px}

/* ── plates ───────────────────────────────────────────────────── */
.spreads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px;
  max-width:1120px;margin-left:auto;margin-right:auto}
.spreads figure{margin:0}
.page-preview{display:block;position:relative;overflow:hidden;border-radius:10px;
  cursor:zoom-in;outline:none}
.spreads img{width:100%;display:block;border:1px solid var(--line-2);
  border-radius:10px;background:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.5),0 22px 46px -18px rgba(0,0,0,.9);
  transition:transform .45s var(--ease),border-color .45s var(--ease),filter .45s var(--ease)}
.page-preview::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 45%,rgba(7,10,15,.72));
  opacity:0;transition:opacity .35s var(--ease)}
.preview-open{position:absolute;z-index:2;left:50%;bottom:20px;
  transform:translate(-50%,10px);opacity:0;white-space:nowrap;
  border:1px solid rgba(255,255,255,.44);border-radius:999px;
  padding:9px 15px;background:rgba(12,30,33,.9);color:#fff;
  font-size:14px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.35);
  transition:opacity .3s var(--ease),transform .3s var(--ease)}
.page-preview:hover img,.page-preview:focus-visible img{transform:scale(1.018);
  border-color:var(--gold);filter:brightness(.76)}
.page-preview:hover::after,.page-preview:focus-visible::after{opacity:1}
.page-preview:hover .preview-open,.page-preview:focus-visible .preview-open{
  opacity:1;transform:translate(-50%,0)}
figcaption{font-size:16px;color:var(--muted);padding-top:12px}
.spreads figcaption b{display:block;color:var(--bone);font-size:17px}
.spreads figcaption span{display:block;margin-top:3px;font-size:14px}

.page-viewer{width:min(94vw,900px);height:94vh;max-width:none;max-height:none;
  margin:auto;padding:0;border:0;background:transparent;color:var(--bone);overflow:visible}
.page-viewer::backdrop{background:rgba(5,8,13,.88);backdrop-filter:blur(8px)}
.page-viewer-shell{width:100%;height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;position:relative;padding:22px}
.page-viewer img{display:block;max-width:100%;max-height:calc(94vh - 74px);width:auto;
  height:auto;border-radius:5px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.7)}
.page-viewer p{margin:10px 52px 0;text-align:center;color:var(--bone);font-size:15px}
.page-viewer-close{position:absolute;z-index:2;right:16px;top:10px;width:44px;height:44px;
  border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(12,30,33,.92);
  color:#fff;font-size:31px;line-height:1;cursor:pointer;box-shadow:var(--glow-soft);
  transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.page-viewer-close:hover,.page-viewer-close:focus-visible{transform:scale(1.06);
  border-color:var(--gold);box-shadow:var(--glow-gold);outline:none}

/* ── faq ──────────────────────────────────────────────────────── */
details{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  margin-bottom:14px;padding:0 26px;
  transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}
details:hover{border-color:rgba(255,158,94,.38);box-shadow:var(--glow-soft);
  transform:translateY(-2px)}
details[open]{border-color:rgba(255,158,94,.4);box-shadow:var(--glow-soft)}
summary{cursor:pointer;padding:24px 0;list-style:none;display:flex;
  justify-content:space-between;gap:22px;align-items:center;
  font-size:20px;font-weight:600;color:var(--bone)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:"IBM Plex Mono",monospace;font-size:26px;
  color:var(--gold);line-height:1}
details[open] summary::after{content:"\2212"}
details p{padding-bottom:26px;margin:0;font-size:19px;color:var(--muted);max-width:66ch}

/* ── ledger (sources) ─────────────────────────────────────────── */
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;
  margin:34px 0 44px}
.legend div{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:22px;border-top:4px solid var(--green)}
.legend div:nth-child(3){border-top-color:var(--gold)}
.legend div:nth-child(4){border-top-color:var(--pink)}
.legend b{font-family:"IBM Plex Mono",monospace;font-size:24px;color:var(--green);
  display:block;margin-bottom:8px;font-weight:600}
.legend div:nth-child(3) b{color:var(--gold)}
.legend div:nth-child(4) b{color:var(--pink)}
.legend span{font-size:17px;color:var(--muted);line-height:1.5}

.ledger-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;
  justify-content:space-between;border-bottom:2px solid var(--line);
  padding-bottom:12px;margin:48px 0 0}
.ledger-head h3{font-family:"Fraunces",Georgia,serif;font-weight:400;
  font-size:32px;margin:0;color:var(--gold)}
.ledger-head span{font-family:"IBM Plex Mono",monospace;font-size:15px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.claim{display:grid;grid-template-columns:80px 1fr 236px;gap:26px;padding:24px 0;
  border-bottom:1px solid var(--line);transition:background .3s var(--ease)}
.claim:hover{background:var(--panel)}
.chip{font-family:"IBM Plex Mono",monospace;font-size:15px;font-weight:600;
  border:1px solid var(--green);color:var(--green);border-radius:8px;
  padding:6px 0;text-align:center;align-self:start;background:rgba(126,224,176,.1)}
.chip.c{border-color:var(--gold);color:var(--gold);background:rgba(255,158,94,.1)}
.chip.d{border-color:var(--pink);color:var(--pink);background:rgba(255,107,107,.1)}
.claim p{margin:0;font-size:19px;line-height:1.55;max-width:90ch}
.claim .meta{font-size:15px;color:var(--muted);line-height:1.6}

/* ── masthead ─────────────────────────────────────────────────── */
.masthead{position:fixed;top:0;left:0;right:0;z-index:70;
  background:rgba(16,38,42,.82);backdrop-filter:blur(16px) saturate(1.4);
  border-bottom:1px solid var(--line);
  animation:masthead-enter .72s .12s both var(--ease)}
.masthead .bar{max-width:var(--frame-wide);margin:0 auto;padding:0 var(--pad);height:64px;
  display:flex;align-items:center;justify-content:space-between;gap:20px}
.wordmark{font-family:"Fraunces",Georgia,serif;font-size:22px;
  color:var(--bone);text-decoration:none!important;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.28em;min-height:44px}
.wordmark em{font-style:italic;color:var(--gold)}
.mast-links{display:flex;align-items:center;gap:22px;font-size:16px}
.mast-links a{color:var(--muted);text-decoration:none!important;
  display:inline-flex;align-items:center;min-height:44px}
.mast-links a:hover{color:var(--gold)}
.mast-links .sources-link{min-height:38px;padding:6px 12px;border-radius:999px;
  border:1px solid rgba(126,224,176,.28);background:rgba(126,224,176,.06);
  color:var(--bone);gap:8px;font-weight:600;
  transition:color .25s var(--ease),border-color .25s var(--ease),
    background .25s var(--ease),box-shadow .25s var(--ease),transform .25s var(--ease)}
.mast-links .sources-link::before{content:"";width:7px;height:7px;border-radius:50%;
  flex:0 0 auto;background:var(--green);box-shadow:0 0 0 3px rgba(126,224,176,.1),
    0 0 12px rgba(126,224,176,.48)}
.mast-links .sources-link:hover,.mast-links .sources-link:focus-visible{
  color:#fff;border-color:rgba(126,224,176,.72);background:rgba(126,224,176,.12);
  box-shadow:0 0 20px -5px rgba(126,224,176,.58);transform:translateY(-1px)}
.mast-cta{background:linear-gradient(180deg,var(--gold-lit),var(--gold));
  color:#2A1206!important;border-radius:11px;padding:11px 20px;font-weight:700;
  box-shadow:var(--glow-action);position:relative;isolation:isolate;overflow:hidden;
  transition:transform .3s var(--ease),filter .3s var(--ease),box-shadow .3s var(--ease)}
.mast-cta:hover,.mast-cta:focus-visible{transform:translateY(-2px);
  filter:brightness(1.08);box-shadow:var(--glow-action-hover)}
body{padding-top:64px}
.progress{position:fixed;top:64px;left:0;height:3px;width:100%;z-index:71;
  transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--gold),var(--green));will-change:transform}

label{display:block;font-size:18px;font-weight:600;margin:28px 0 12px;color:var(--bone)}
input[type=email]{width:100%;max-width:var(--measure);min-height:var(--tap);font:inherit;
  font-size:19px;padding:16px 20px;background:var(--panel);border:1px solid var(--line-2);
  border-radius:var(--r);color:var(--bone);transition:border-color .3s var(--ease)}
input[type=email]:focus{outline:none;border-color:var(--gold)}

.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--gold);
  color:#2A1206;padding:16px 22px;text-decoration:none;font-weight:700}
.skip:focus{left:0}

footer{border-top:1px solid var(--line);padding:56px 0;font-size:17px;
  color:var(--muted);background:rgba(0,0,0,.18)}
footer p{max-width:none}
footer a{display:inline-block;padding:11px 0}

/* ── motion ───────────────────────────────────────────────────── */
[data-rise]{opacity:0;transform:translateY(24px);
  transition:opacity .85s var(--ease),transform .85s var(--ease);
  transition-delay:var(--d,0ms)}
[data-rise].in{opacity:1;transform:none}
.no-js [data-rise]{opacity:1;transform:none}

@keyframes masthead-enter{
  from{transform:translateY(calc(-100% - 10px));opacity:0}
  to{transform:translateY(0);opacity:1}
}

/* ── desktop sticky buy bar ───────────────────────────────────── */
.deskbar{position:fixed;left:0;right:0;bottom:0;z-index:65;display:none;
  background:rgba(16,38,42,.94);backdrop-filter:blur(16px);
  border-top:1px solid rgba(255,158,94,.32);
  box-shadow:0 -12px 40px -14px rgba(0,0,0,.9);
  transform:translateY(110%);transition:transform .5s var(--ease)}
.deskbar.show{transform:none}
.deskbar .inner{max-width:var(--frame-grid);margin:0 auto;padding:14px var(--pad);
  display:flex;align-items:center;gap:22px}
.deskbar .covers{display:flex;flex-shrink:0}
.deskbar .covers img{width:38px;border-radius:3px;box-shadow:0 2px 8px rgba(0,0,0,.6)}
.deskbar .covers img+img{margin-left:-12px}
.deskbar .txt{flex:1;min-width:0}
.deskbar .txt b{display:block;font-size:17px;color:var(--bone);font-weight:600}
.deskbar .txt span{display:block;font-size:15px;color:var(--muted)}
.deskbar .p{font-family:"Fraunces",Georgia,serif;font-size:38px;
  color:var(--gold);line-height:.9;flex-shrink:0}
.deskbar .p s{font-size:16px;color:var(--muted);margin-left:8px}
.deskbar .cta{flex-shrink:0;min-height:52px;padding:14px 28px;font-size:18px}
@media (min-width:881px){
  .deskbar{display:block}
  body.storefront{padding-bottom:96px}
}

/* ── nudge modal ──────────────────────────────────────────────── */
.nudge{position:fixed;inset:0;z-index:90;display:none;
  align-items:center;justify-content:center;padding:24px;
  background:rgba(8,10,15,.72);backdrop-filter:blur(6px)}
.nudge.show{display:flex;animation:fadein .3s var(--ease)}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.nudge-box{background:linear-gradient(180deg,var(--raise),var(--panel));
  border:1px solid rgba(255,158,94,.45);border-radius:22px;
  box-shadow:var(--glow-gold);max-width:560px;width:100%;padding:38px;
  position:relative;animation:pop .45s var(--ease)}
@keyframes pop{from{transform:translateY(18px) scale(.97);opacity:0}
               to{transform:none;opacity:1}}
.nudge-box h3{font-family:"Fraunces",Georgia,serif;font-weight:400;
  font-size:32px;line-height:1.1;color:var(--gold);margin:0 0 12px}
.nudge-box p{font-size:18px;color:var(--muted);margin:0 0 18px;max-width:none}
.nudge-box .actions{margin:22px 0 0;flex-direction:column;gap:12px}
.nudge-box .cta{width:100%}
.nudge-close{position:absolute;top:14px;right:16px;background:none;border:0;
  color:var(--muted);font-size:30px;line-height:1;cursor:pointer;padding:8px 12px;
  min-height:44px;min-width:44px;border-radius:999px;
  transition:color .25s var(--ease),background .25s var(--ease),
             box-shadow .25s var(--ease),transform .25s var(--ease)}
.nudge-close:hover,.nudge-close:focus-visible{color:var(--gold);
  background:rgba(255,158,94,.08);box-shadow:var(--glow-soft);transform:rotate(6deg)}
.nudge-covers{display:flex;justify-content:center;margin-bottom:20px}
.nudge-covers img{width:74px;border-radius:4px;
  box-shadow:0 3px 10px rgba(0,0,0,.6)}
.nudge-covers img+img{margin-left:-18px}

/* ── steps ────────────────────────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}
.step{padding-top:24px;border-top:2px solid var(--gold)}
.step b{font-family:"IBM Plex Mono",monospace;font-size:14px;letter-spacing:.18em;
  color:var(--gold);display:block;margin-bottom:10px;text-transform:uppercase}
.step h3{margin-bottom:8px}
.step p{font-size:18px;color:var(--muted);max-width:none;margin:0}

/* ── final decision ───────────────────────────────────────────── */
.final-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:38px;margin-top:40px;padding:34px 36px;border:1px solid rgba(255,158,94,.42);
  border-radius:22px;background:linear-gradient(135deg,var(--raise),var(--panel));
  box-shadow:var(--glow-gold);overflow:hidden;position:relative}
.final-offer::before{content:"";position:absolute;width:260px;height:260px;right:-110px;top:-130px;
  border-radius:50%;background:rgba(255,158,94,.09);filter:blur(8px);pointer-events:none}
.final-offer h2{font-size:clamp(28px,3.2vw,42px);margin-bottom:12px}
.final-offer>div>p:not(.proof-kicker){font-size:18px;color:var(--muted);margin:0;max-width:54ch}
.final-buy{min-width:280px;position:relative;z-index:1}
.final-price{display:grid;grid-template-columns:max-content max-content;
  grid-template-rows:auto auto;column-gap:12px;row-gap:4px;align-items:center;
  justify-content:center;width:max-content;margin:0 auto 16px}
.final-price b{font-family:"Fraunces",Georgia,serif;font-size:52px;font-weight:400;
  color:var(--gold);line-height:.9;grid-column:1;grid-row:1 / 3;align-self:center}
.final-price s{font-size:16px;line-height:1.1;color:var(--muted);grid-column:2;
  grid-row:1;align-self:end;text-decoration-color:rgba(180,196,194,.62)}
.final-price>span{grid-column:2;grid-row:2;align-self:start;justify-self:start;
  padding:6px 11px}
.final-buy .cta{width:100%;padding:16px 24px}
.final-buy small{display:block;text-align:center;color:var(--muted);font-size:15px;
  margin-top:10px}

/* ── cross-sell nudge on single cards ─────────────────────────── */
.xsell{margin:12px 0 0;min-height:28px;font-size:16px;line-height:1.45;
  color:var(--muted);text-align:center}
.xsell a{color:var(--gold);font-weight:600}

@media (max-width:880px){
  .nudge-box{padding:26px}
  .nudge-box h3{font-size:26px}
}

.sticky{display:none}

@media (min-width:1081px){
  .bundle-body{grid-template-columns:minmax(300px,420px) minmax(480px,650px);
    justify-content:center}
}

@media (min-width:1400px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(600px,.96fr);
    gap:clamp(72px,5vw,96px)}
  .bundle-body{grid-template-columns:minmax(360px,440px) minmax(520px,680px);
    gap:52px;padding:38px 48px}
  .bundle-covers img{width:142px}
  .bundle-covers img:nth-child(2){width:166px}
  .book-mockup{width:min(100%,218px)}
}

@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .proof-panel{grid-template-columns:1fr}
  .proof-copy{border-right:0;border-bottom:1px solid var(--line)}
  .bundle-body{grid-template-columns:1fr;gap:28px;padding:28px}
  .bundle-covers{justify-content:center}
}
@media (max-width:880px){
  :root{--pad:20px}
  section{padding:52px 0}
  header.hero{padding-top:34px;padding-bottom:40px}
  .bundle-covers img{width:96px}
  .bundle-covers img:nth-child(2){width:112px}
  .decision-grid{grid-template-columns:1fr}
  .final-offer{grid-template-columns:1fr;gap:28px;padding:28px}
  .final-buy{min-width:0;width:100%;max-width:420px}
  .spreads{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pricerow .now{font-size:54px}
  .hero-price b{font-size:48px}
  .book-stage{min-height:306px}
  .cta{width:100%;padding:17px 14px;font-size:18px;white-space:normal}
  .actions{flex-direction:column;gap:14px}
  .claim{grid-template-columns:64px 1fr;gap:16px}
  .claim .meta{grid-column:2}
  .masthead .bar{height:58px}
  body{padding-top:58px;padding-bottom:104px}
  .progress{top:58px}
  .mast-links{gap:12px;font-size:14px}
  .mast-links .hide-sm{display:none}
  .mast-cta{padding:10px 14px}
  .wordmark{font-size:17px;max-width:52vw;overflow:hidden;text-overflow:ellipsis}
  .sticky{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;
    align-items:center;gap:14px;background:rgba(16,38,42,.95);
    backdrop-filter:blur(14px);border-top:1px solid rgba(255,158,94,.3);
    padding:12px var(--pad);box-shadow:0 -10px 34px -12px rgba(0,0,0,.9)}
  .sticky b{font-family:"Fraunces",Georgia,serif;font-size:32px;
    color:var(--gold)}
  .sticky .cta{margin:0;flex:1;min-height:54px;width:auto;font-size:18px;padding:14px 16px}
}
@media (max-width:560px){
  .proof-copy{padding:28px 24px}
  .proof-stat{padding:22px 18px}
  .proof-stat b{font-size:44px;margin:14px 0 8px}
  .proof-stat p{font-size:15px}
  .decision-card{padding:22px}
  .book-stage{min-height:286px;margin-bottom:24px}
  .decision-chain{align-items:flex-start;justify-content:flex-start}
  .spreads{grid-template-columns:1fr;gap:30px}
  .preview-open{opacity:1;transform:translate(-50%,0);bottom:14px}
  .page-preview::after{opacity:.8}
  .page-viewer{width:100vw;height:100dvh}
  .page-viewer-shell{padding:56px 12px 16px}
  .page-viewer img{max-height:calc(100dvh - 116px)}
  .page-viewer-close{right:10px;top:8px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  [data-rise]{opacity:1!important;transform:none!important}
}

/* ── Simon Hammer additions ───────────────────────────────────── */
.bonus-label{font-family:"IBM Plex Mono",monospace;font-size:13px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);font-weight:700;margin:4px 0 6px}
.bundle ul.bonus-list li::before{content:"+";color:var(--gold)}

/* comments wall */
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.quote{margin:0;padding:28px 26px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r);border-left:4px solid var(--gold);box-shadow:var(--shadow)}
.quote blockquote{margin:0 0 14px;font-family:"Fraunces",Georgia,serif;font-size:23px;
  line-height:1.35;color:var(--bone)}
.quote figcaption{padding:0;font-family:"IBM Plex Mono",monospace;font-size:14px;
  letter-spacing:.06em;color:var(--muted)}
.quote-answer{margin-top:28px;font-size:20px;color:var(--muted)}
.quote-answer b{color:var(--bone)}

/* documented cases */
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.case{--case-accent:var(--pink);padding:28px 26px;background:var(--panel);
  border:1px solid var(--line);border-top:3px solid var(--case-accent);
  border-radius:var(--r);box-shadow:var(--shadow);display:flex;flex-direction:column}
.case:nth-child(2){--case-accent:var(--blue)}
.case:nth-child(3){--case-accent:var(--green)}
.case-where{font-family:"IBM Plex Mono",monospace;font-size:14px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--case-accent);font-weight:600;margin-bottom:12px}
.case h3{font-family:"Fraunces",Georgia,serif;font-weight:400;font-size:26px;line-height:1.2}
.case p{font-size:18px;color:var(--muted);margin:0 0 18px;flex:1}
.case a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}

/* town index */
#towns input[type=search]{width:100%;max-width:560px;min-height:var(--tap);font:inherit;
  font-size:19px;padding:16px 20px;background:var(--panel);border:1px solid var(--line-2);
  border-radius:var(--r);color:var(--bone);transition:border-color .3s var(--ease)}
#towns input[type=search]:focus{outline:none;border-color:var(--gold);box-shadow:var(--glow-soft)}
.towns{list-style:none;padding:0;margin:26px 0 0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.towns li{display:flex;flex-direction:column;gap:2px;
  padding:14px 18px;background:var(--panel);border:1px solid var(--line);border-radius:12px;
  font-size:18px;font-weight:600;color:var(--bone);max-width:none}
.towns li span{font-weight:400;font-size:15px;color:var(--muted)}
.towns li[hidden]{display:none}
.town-miss{margin-top:20px;font-size:18px;color:var(--muted)}

/* for you / not for you */
.fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.fit>div{padding:30px 28px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow)}
.fit h3{font-size:22px;margin-bottom:14px}
.fit ul{list-style:none;padding:0;margin:0}
.fit li{position:relative;padding:8px 0 8px 30px;font-size:18px;color:var(--bone)}
.fit-yes{border-top:3px solid var(--green)!important}
.fit-no{border-top:3px solid var(--pink)!important}
.fit-yes li::before{content:"✓";position:absolute;left:2px;color:var(--green);font-weight:700}
.fit-no li::before{content:"✕";position:absolute;left:2px;color:var(--pink);font-weight:700}
.fit-no li{color:var(--muted)}

@media (max-width:880px){
  .quotes,.cases,.fit{grid-template-columns:1fr}
}

@media (max-width:560px){
  .decision-chain{flex-direction:column;align-items:flex-start;gap:6px}
  .decision-chain i{transform:rotate(90deg);line-height:1}
}

/* town index v2: tags, collapsed preview, locked tease */
.town-tools{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 32px}
.town-tools label{margin-top:22px}
.town-key{margin:0;font-size:16px;color:var(--muted);max-width:none;display:flex;flex-wrap:wrap;
  align-items:center;gap:8px 10px}
.town-key span,.towns li i{font:600 12px "IBM Plex Mono",monospace;letter-spacing:.08em;
  text-transform:uppercase;font-style:normal;border-radius:999px;padding:4px 9px;white-space:nowrap}
.k-case,.towns li.case i{color:var(--pink);background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.4)}
.k-instead,.towns li.instead i{color:var(--green);background:rgba(126,224,176,.1);border:1px solid rgba(126,224,176,.4)}
.towns li{position:relative;padding-bottom:44px}
.towns li i{position:absolute;left:18px;bottom:12px}
.towns li b{font-weight:600}
.towns li.locked{border-style:dashed;border-color:rgba(255,158,94,.6);background:rgba(255,158,94,.07)}
.towns li.locked b{color:var(--gold)}
.towns li.locked i{color:var(--gold);border:1px solid rgba(255,158,94,.5)}
.towns.collapsed:not(.searching) li:nth-child(n+12):not(.locked){display:none}
.towns li[hidden]{display:none!important}
.town-more{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px auto 0;
  min-height:56px;padding:14px 30px;border-radius:14px;cursor:pointer;font:600 18px "Work Sans",sans-serif;
  color:var(--bone);background:var(--raise);border:1px solid var(--line-2);
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease)}
.town-more:hover,.town-more:focus-visible{border-color:var(--gold);box-shadow:var(--glow-soft)}
.town-more[hidden]{display:none}

/* value stack in the bundle */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.bundle-head b{display:inline-block;background:#2A1206;color:var(--gold-lit);border-radius:999px;
  padding:3px 12px;margin-right:10px;letter-spacing:.1em}
.stack{width:100%;border-collapse:collapse;margin:4px 0 14px;font-size:17px}
.stack th{text-align:left;font-weight:600;color:var(--bone);padding:9px 0}
.stack th small{display:block;font:500 13px "IBM Plex Mono",monospace;color:var(--muted);
  letter-spacing:.02em;margin-top:2px}
.stack td{text-align:right;font:600 17px "IBM Plex Mono",monospace;color:var(--bone);
  white-space:nowrap;padding-left:16px;vertical-align:top;padding-top:9px}
.stack tbody tr{border-bottom:1px solid var(--line)}
.stack tr.bonus th::before{content:"+ ";color:var(--gold)}
.stack tr.bonus td{color:var(--gold);font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.stack tfoot th{font-weight:500;color:var(--muted);padding-top:14px}
.stack tfoot td{padding-top:14px;color:var(--muted)}
.stack tfoot s{text-decoration-color:var(--pink);text-decoration-thickness:2px}
.stack tr.you-pay th{color:var(--bone);font-size:19px;font-weight:700;padding-top:4px}
.stack tr.you-pay td{color:var(--gold);font-size:30px;font-family:"Fraunces",Georgia,serif;
  font-weight:400;padding-top:0}
.per-town{margin:0 0 16px;font-size:17px;color:var(--muted);padding:12px 16px;border-radius:12px;
  background:rgba(126,224,176,.08);border:1px solid rgba(126,224,176,.3)}
.per-town b{color:var(--green)}
.town-tools>div{flex:1 1 380px;max-width:560px}
.towns li.locked{grid-column:span 2}
@media (max-width:420px){.towns li.locked{grid-column:1 / -1}}
@media (min-width:1081px){
  .bundle-body{align-items:start}
  .bundle-covers{position:sticky;top:120px;padding-top:40px}
}
.towns li.locked{background:linear-gradient(135deg,rgba(255,158,94,.16),rgba(255,158,94,.04))}
.towns li.locked b{font-size:20px}

/* source ledger jump list */
.ledger-jump{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.ledger-jump a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;
  border:1px solid var(--line-2);border-radius:999px;background:var(--panel);color:var(--bone)!important;
  text-decoration:none!important;font-size:16px;font-weight:600}
.ledger-jump a span{font:600 13px "IBM Plex Mono",monospace;color:var(--green)}
.ledger-jump a:hover{border-color:var(--gold)}
.ledger-head{scroll-margin-top:90px}
.claim .meta{font-size:15px}
@media (max-width:560px){
  .spreads{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
  .spreads figcaption b{font-size:15px}
  .preview-open{font-size:12px;padding:6px 10px;bottom:8px}
}

/* case video thumbnails */
.case{padding-top:0;overflow:hidden}
.case-thumb{display:block;position:relative;margin:0 -26px 22px;aspect-ratio:16/9;overflow:hidden;background:#0c1c1f}
.case-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.case-thumb .play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;
  border-radius:50%;background:rgba(16,38,42,.82);border:2px solid rgba(255,255,255,.75);
  transition:transform .3s var(--ease),background .3s var(--ease)}
.case-thumb .play::after{content:"";position:absolute;left:25px;top:19px;border-style:solid;
  border-width:13px 0 13px 21px;border-color:transparent transparent transparent #fff}
.case-thumb:hover img,.case-thumb:focus-visible img{transform:scale(1.04)}
.case-thumb:hover .play,.case-thumb:focus-visible .play{transform:scale(1.1);background:var(--gold-deep)}
