/*
Theme Name: Modal Shift
Theme URI: https://thepeoplemovers.co/
Author: Jason Miller
Description: Standalone theme for thepeoplemovers.co — the momentum desk tracking what is actually
moving in online-casino platforms.
Structural idea: "The Departures Board" — every entry renders as a transit-style route row: a
stamped route code, a real FROM excerpt, an arrow, and a real TO takeaway (the post title). Not a
card grid, not a dialogue/exchange list, not a numbered stairstep, not a dashed route line.
Version: 88ab646c
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: modal-shift
*/

/* ============ tokens ============ */
:root{
  --msh-ink-950:#1c2010;
  --msh-ink-900:#262b16;
  --msh-ink-800:#333a1e;
  --msh-paper-0:#faf8f0;
  --msh-surface:#f0ecdd;
  --msh-surface-soft:#f5f2e6;
  --msh-border:#dcd6bd;
  --msh-border-soft:#e8e3d0;
  --msh-text-900:#20240f;
  --msh-text-600:#5c5f47;
  --msh-text-inverse:#faf8f0;
  --msh-green-600:#4f6f26;
  --msh-green-700:#3f5a1e;
  --msh-green-800:#324916;
  --msh-purple-500:#6a4c8c;
  --msh-purple-700:#4a3560;
  --msh-purple-800:#3a2a4b;
  --msh-focus:#3f5a1e;

  --msh-space-1:4px;
  --msh-space-2:8px;
  --msh-space-3:12px;
  --msh-space-4:16px;
  --msh-space-5:24px;
  --msh-space-6:32px;
  --msh-space-7:48px;
  --msh-space-8:64px;
  --msh-space-9:96px;

  --msh-radius-sm:4px;
  --msh-radius-md:10px;
  --msh-radius-pill:999px;
  --msh-shell:1180px;
  --msh-measure:70ch;

  --msh-font-head: -apple-system, BlinkMacSystemFont, "Segoe UI Rounded", "SF Pro Rounded", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --msh-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --msh-font-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--msh-paper-0);
  color:var(--msh-text-900);
  font-family:var(--msh-font-body);
  font-size:17px;
  line-height:1.6;
  min-width:0;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--msh-green-700);text-decoration-thickness:1.5px;text-underline-offset:2px}
a:hover{color:var(--msh-purple-700)}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:3px solid var(--msh-focus);outline-offset:2px;
}
h1,h2,h3{font-family:var(--msh-font-head);font-weight:800;letter-spacing:-.01em;line-height:1.36;margin:0 0 var(--msh-space-3);color:var(--msh-text-900)}
h1{font-size:clamp(1.75rem,1.35rem + 1.5vw,2.6rem);line-height:1.34}
h2{font-size:1.3rem}
h3{font-size:1.05rem}
p{margin:0 0 var(--msh-space-4)}
ul,ol{margin:0 0 var(--msh-space-4);padding-left:1.3em}
.msh-shell{max-width:var(--msh-shell);margin:0 auto;padding:0 var(--msh-space-5)}

.msh-skip{
  position:absolute;left:-999px;top:0;background:var(--msh-ink-950);color:var(--msh-text-inverse);
  padding:var(--msh-space-2) var(--msh-space-4);z-index:100;border-radius:0 0 var(--msh-radius-sm) 0;
}
.msh-skip:focus{left:0}

/* ============ ribbon ============ */
.msh-ribbon{
  background:var(--msh-purple-800);color:var(--msh-text-inverse);margin:0;text-align:center;
  font-size:.85rem;padding:var(--msh-space-1) var(--msh-space-3);letter-spacing:.02em;
}
.msh-ribbon b{color:#fff}

/* ============ header ============ */
.msh-head{background:var(--msh-ink-950);border-bottom:3px solid var(--msh-green-600)}
.msh-head__row{
  display:flex;align-items:center;justify-content:space-between;gap:var(--msh-space-4);
  padding:var(--msh-space-4) 0;
}
.msh-brand{display:flex;align-items:center;gap:var(--msh-space-3);min-width:0;color:var(--msh-text-inverse);text-decoration:none}
.msh-brand__logo{height:40px;width:auto}
.msh-brand__name{font-family:var(--msh-font-head);font-weight:800;font-size:1.2rem;color:var(--msh-text-inverse);margin:0}
.msh-brand__tag{display:block;font-family:var(--msh-font-body);font-size:.85rem;letter-spacing:.01em;color:#b7d189;margin-top:2px;font-weight:400}

.msh-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;background:transparent;
  border:1.5px solid var(--msh-green-600);border-radius:var(--msh-radius-sm);width:48px;height:48px;
  cursor:pointer;
}
.msh-toggle span{display:block;width:20px;height:2px;background:var(--msh-text-inverse);margin:0 auto}

.msh-nav__list{list-style:none;display:flex;gap:var(--msh-space-5);margin:0;padding:0}
.msh-nav__list a{
  color:var(--msh-text-inverse);text-decoration:none;font-size:.98rem;padding:var(--msh-space-2) 0;
  border-bottom:2px solid transparent;
}
.msh-nav__list a:hover,.msh-nav__list a:focus-visible{border-bottom-color:var(--msh-green-600);color:#b7d189}

@media (max-width:560px){
  .msh-brand__tag{display:none}
}
@media (max-width:820px){
  .msh-toggle{display:flex}
  .msh-nav{
    position:absolute;left:0;right:0;top:100%;background:var(--msh-ink-950);
    border-bottom:3px solid var(--msh-green-600);max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .msh-nav--open{max-height:420px}
  .msh-head{position:relative}
  .msh-nav__list{flex-direction:column;gap:0;padding:var(--msh-space-3) var(--msh-space-5) var(--msh-space-5)}
  .msh-nav__list a{display:block;padding:var(--msh-space-3) 0;min-height:48px}
}

/* ============ hero ============ */
.msh-hero{padding:var(--msh-space-8) 0 var(--msh-space-6)}
.msh-hero__kicker{
  display:inline-flex;align-items:center;gap:var(--msh-space-2);font-family:var(--msh-font-body);font-weight:600;
  font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;color:var(--msh-purple-700);margin:0 0 var(--msh-space-3);
}
.msh-hero__title{max-width:22ch}
.msh-hero__text{max-width:var(--msh-measure);font-size:1.1rem;color:var(--msh-text-600)}

/* ============ coverage chips ============ */
.msh-coverage{padding-bottom:var(--msh-space-7);display:flex;flex-wrap:wrap;gap:var(--msh-space-3)}
.msh-coverage__item{
  display:inline-flex;align-items:baseline;gap:var(--msh-space-2);text-decoration:none;
  border-radius:var(--msh-radius-pill);border:1px solid var(--msh-green-700);
  padding:var(--msh-space-2) var(--msh-space-4);color:var(--msh-green-800);background:#fff;
}
.msh-coverage__item:hover,.msh-coverage__item:focus-visible{background:var(--msh-green-700);color:#fff;border-color:var(--msh-green-700)}
.msh-coverage__name{font-weight:700;font-size:.94rem}
.msh-coverage__count{font-family:var(--msh-font-mono);font-size:.85rem;font-weight:400;opacity:.75}

/* ============ the departures board ============ */
.msh-section-heading{margin-bottom:var(--msh-space-5)}
.msh-section-heading p{color:var(--msh-text-600);margin:0}
.msh-board-section{padding-bottom:var(--msh-space-8)}
.msh-board{list-style:none;margin:0;padding:0;border-top:1px solid var(--msh-border)}
.msh-route{border-bottom:1px solid var(--msh-border);padding:var(--msh-space-4) 0}
.msh-route:hover{background:var(--msh-surface-soft)}
.msh-route__link{display:block;text-decoration:none;color:inherit}
.msh-route__row{display:flex;align-items:center;gap:var(--msh-space-4);flex-wrap:wrap}
.msh-route__code{
  flex:none;font-family:var(--msh-font-mono);font-size:.85rem;font-weight:700;letter-spacing:.04em;
  color:var(--msh-text-inverse);background:var(--msh-ink-950);border-radius:var(--msh-radius-sm);
  padding:3px 8px;
}
.msh-route__from{flex:1 1 220px;min-width:0;color:var(--msh-text-600);font-size:.95rem;font-style:italic}
.msh-route__from b{color:var(--msh-text-900);font-style:normal;font-weight:700;margin-right:4px}
.msh-route__arrow{flex:none;color:var(--msh-purple-700)}
.msh-route__arrow svg{width:18px;height:18px}
.msh-route__to{flex:1 1 260px;min-width:0;font-size:1.08rem;font-weight:800;color:var(--msh-text-900)}
.msh-route__to b{display:block;font-family:var(--msh-font-body);font-weight:700;font-size:.85rem;
  text-transform:uppercase;letter-spacing:.05em;color:var(--msh-purple-700);margin-bottom:2px}
.msh-route__meta{margin:var(--msh-space-2) 0 0;display:flex;gap:var(--msh-space-3);font-size:.85rem;color:var(--msh-text-600);flex-wrap:wrap}
@media (max-width:640px){
  .msh-route__row{flex-direction:column;align-items:flex-start;gap:var(--msh-space-2)}
  .msh-route__from,.msh-route__to{flex:0 1 auto}
  .msh-route__arrow{transform:rotate(90deg)}
}
.msh-empty{color:var(--msh-text-600);padding:var(--msh-space-6) 0}

.msh-pagination{padding-top:var(--msh-space-5)}
.msh-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
  border:1px solid var(--msh-border);border-radius:var(--msh-radius-sm);margin-right:var(--msh-space-2);
  text-decoration:none;color:var(--msh-text-900);font-family:var(--msh-font-mono);
}
.msh-pagination .page-numbers.current{background:var(--msh-green-700);color:#fff;border-color:var(--msh-green-700)}
.msh-pagination .page-numbers:hover{border-color:var(--msh-purple-700)}

/* ============ article ============ */
.msh-article{padding:var(--msh-space-7) 0}
.msh-article__content{min-width:0;max-width:760px;margin:0 auto}
.msh-article__eyebrow{
  display:inline-block;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--msh-purple-700);text-decoration:none;margin-bottom:var(--msh-space-3);
}
.msh-article__title{max-width:none}
.msh-article__meta{color:var(--msh-text-600);font-size:.92rem;margin-bottom:var(--msh-space-5)}
.msh-article__figure{margin:0 0 var(--msh-space-5);border-radius:var(--msh-radius-md);overflow:hidden}

/* Route recap callout — one real FROM/TO pair drawn from the post's own content */
.msh-recap{
  background:var(--msh-surface);border:1px solid var(--msh-border);border-radius:var(--msh-radius-md);
  padding:var(--msh-space-5);margin:0 0 var(--msh-space-6);
}
.msh-recap__label{
  font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--msh-text-600);
  margin:0 0 var(--msh-space-3);
}
.msh-recap .msh-route__row{flex-wrap:wrap}
.msh-recap .msh-route__from,.msh-recap .msh-route__to{font-size:1rem}

.msh-article__body{max-width:var(--msh-measure);font-size:1.05rem;line-height:1.7}
.msh-article__body h2{margin-top:var(--msh-space-6)}
.msh-article__body h3{margin-top:var(--msh-space-5)}
.msh-article__body img{border-radius:var(--msh-radius-md);margin:var(--msh-space-4) 0}
.msh-article__body table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;min-width:0}
.msh-article__body table td,.msh-article__body table th{border:1px solid var(--msh-border);padding:var(--msh-space-2) var(--msh-space-3);min-width:120px}

.msh-note{
  border-left:3px solid var(--msh-purple-700);background:var(--msh-surface-soft);border-radius:0 var(--msh-radius-md) var(--msh-radius-md) 0;
  padding:var(--msh-space-4) var(--msh-space-5);margin-top:var(--msh-space-6);max-width:var(--msh-measure);
}
.msh-note__label{
  font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;color:var(--msh-purple-800);
  margin:0 0 var(--msh-space-2);
}
.msh-note__text{margin:0;font-size:.92rem;color:var(--msh-text-600)}

.msh-byline{
  display:flex;align-items:center;gap:var(--msh-space-3);
  margin-top:var(--msh-space-6);padding-top:var(--msh-space-5);border-top:1px solid var(--msh-border-soft);
  max-width:var(--msh-measure);
}
.msh-byline__avatar{flex:none;width:56px;height:56px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;border:2px solid var(--msh-green-600)}
.msh-byline__text{min-width:0}
.msh-byline__name{margin:0;font-weight:700}
.msh-byline__name a{color:var(--msh-text-900);text-decoration:none}
.msh-byline__role{margin:0;font-size:.88rem;color:var(--msh-text-600)}

/* ============ static pages ============ */
.msh-page{padding:var(--msh-space-7) 0}
.msh-page__title{max-width:none}
.msh-page__byline{display:flex;align-items:center;gap:var(--msh-space-3);margin-bottom:var(--msh-space-5)}
.msh-page__avatar{width:72px;height:72px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;border:2px solid var(--msh-green-600)}
.msh-page__byline-role{margin:0;color:var(--msh-text-600)}
.msh-page__body{max-width:var(--msh-measure);font-size:1.05rem}
.msh-page__body h2{margin-top:var(--msh-space-6)}

/* ============ archive intro ============ */
.msh-archive-intro{max-width:var(--msh-measure);color:var(--msh-text-600);font-size:1.02rem}
.msh-archive-intro p:last-child{margin-bottom:0}

/* ============ search ============ */
.msh-search{margin-top:var(--msh-space-4);display:flex;flex-wrap:wrap;gap:var(--msh-space-2);max-width:480px}
.msh-search__label{flex-basis:100%;display:block;margin-bottom:var(--msh-space-2);font-weight:700}
.msh-search__input{
  flex:1;min-height:48px;padding:0 var(--msh-space-3);border:1px solid var(--msh-border);border-radius:var(--msh-radius-sm);
  font-size:1rem;background:#fff;color:var(--msh-text-900);
}
.msh-search__button{
  min-height:48px;padding:0 var(--msh-space-5);border:1px solid var(--msh-green-700);border-radius:var(--msh-radius-sm);
  background:var(--msh-green-700);color:#fff;font-size:1rem;cursor:pointer;
}
.msh-search__button:hover{background:var(--msh-purple-700);border-color:var(--msh-purple-700)}

/* ============ footer ============ */
.msh-foot{background:var(--msh-ink-950);color:var(--msh-text-inverse);margin-top:var(--msh-space-8)}
.msh-foot__top{padding:var(--msh-space-6) 0 var(--msh-space-4)}
.msh-foot__links{list-style:none;display:flex;flex-wrap:wrap;gap:var(--msh-space-2) var(--msh-space-5);margin:0;padding:0}
.msh-foot__links a{color:var(--msh-text-inverse);text-decoration:none;opacity:.9;font-size:.95rem}
.msh-foot__links a:hover,.msh-foot__links a:focus-visible{opacity:1;color:#b7d189}
.msh-foot__safety{
  margin-top:var(--msh-space-5);padding:var(--msh-space-4);border:1px solid var(--msh-ink-800);border-radius:var(--msh-radius-md);
  font-size:.88rem;color:var(--msh-text-inverse);opacity:.9;
}
.msh-foot__safety a{color:#b7d189}
.msh-foot__safety strong{color:#b7d189}
.msh-foot__base{
  border-top:1px solid var(--msh-ink-800);padding:var(--msh-space-4) 0 var(--msh-space-6);font-size:.82rem;
  color:var(--msh-text-inverse);opacity:.75;
}
.msh-foot__badge{
  display:inline-flex;align-items:center;justify-content:center;min-width:2.2em;padding:2px 6px;margin-right:var(--msh-space-2);
  border:1.5px solid var(--msh-green-600);border-radius:var(--msh-radius-sm);color:#b7d189;font-weight:700;font-size:.82rem;
}

@media (prefers-reduced-motion:reduce){
  .msh-nav{transition:none}
}
