/* /resources/ - The Freight Game Plan. Dark "command center" in both site themes. */
@property --gp-ang{syntax:"<angle>";initial-value:0deg;inherits:false}
.gp{--gp-bg:#050806;--gp-surf:#0d0f0e;--gp-surf2:#121614;--gp-line:rgba(255,255,255,.08);--gp-line2:rgba(255,255,255,.14);--gp-tx:#e8f2ec;--gp-mu:#a3b5aa;--gp-mu2:#8a9c91;--gp-green:#16a34a;--gp-green2:#22c55e;--gp-deep:#14532d;--gp-gold:#f59e0b;--gp-red:#ef4444;--gp-top:76px;
  background:var(--gp-bg);color:var(--gp-tx);position:relative;isolation:isolate;overflow:clip}
.gp::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;
  -webkit-mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 40%,rgba(0,0,0,.25) 100%);mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.55) 40%,rgba(0,0,0,.25) 100%)}
.gp::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  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='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
.gp a{color:inherit}
.gp :focus-visible{outline:3px solid var(--gp-green2);outline-offset:3px;border-radius:10px}
.gp-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gp-crumbs a,.gp-crumbs .sep{color:var(--gp-mu)}
.gp-crumbs [aria-current]{color:var(--gp-tx)}

/* emergency strip */
.gp-es{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:38px;padding:.35rem 2.8rem .35rem 1rem;background:#7f1d1d;color:#fff;font:600 .82rem/1.35 var(--body);text-align:center;position:relative;z-index:11}
.gp-es p{margin:0;display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:center}
.gp-es a{color:#fff;text-decoration:underline;text-underline-offset:3px;font-weight:700;white-space:nowrap}
.gp-es-x{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#fff;cursor:pointer}
.gp-es-x:hover{background:rgba(255,255,255,.14)}
.gp-es-x:focus-visible,.gp-es a:focus-visible{outline:2px solid #fff;outline-offset:2px}
.gp-es-off .gp-es{display:none}
.gp-pulse{width:8px;height:8px;border-radius:50%;background:#fca5a5;flex:none;position:relative;display:inline-block}
.gp-pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:gp-ping 1.6s cubic-bezier(0,0,.2,1) infinite}
@keyframes gp-ping{75%,100%{transform:scale(2.4);opacity:0}}

/* hero */
.gp-hero{position:relative;padding:clamp(3rem,7vw,5.5rem) 0 clamp(2.4rem,5vw,3.6rem)}
.gp-spot{position:absolute;inset:-20% 0 auto;height:140%;pointer-events:none;z-index:-1;
  background:radial-gradient(60% 50% at 22% 18%,rgba(34,197,94,.22),transparent 70%),radial-gradient(40% 40% at 85% 8%,rgba(20,83,45,.5),transparent 70%)}
.gp-eyebrow{margin:0 0 1rem}
.gp-eyebrow span{display:inline-flex;align-items:center;gap:.5rem;padding:.38rem .8rem;border:1px solid rgba(34,197,94,.35);border-radius:999px;background:rgba(22,163,74,.1);color:#86efac;font:600 .7rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase}
.gp-hero h1{color:#fff;font-size:clamp(2.2rem,5.6vw,4.4rem);max-width:15ch;margin:0 0 1rem;line-height:1.02}
.gp-sub{color:var(--gp-mu);font-size:clamp(1.02rem,1.6vw,1.2rem);max-width:56ch;margin:0}
.gp-stats{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;max-width:720px}
.gp-stats li{border:1px solid var(--gp-line);background:rgba(13,15,14,.7);border-radius:14px;padding:.85rem 1rem}
.gp-stats b{display:block;font:700 clamp(1.3rem,2.4vw,1.75rem)/1.1 var(--mono);color:#fff}
.gp-stats span{font:600 .66rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gp-mu)}
.gp-note{margin:1rem 0 0;color:var(--gp-mu2);font-size:.86rem}

.gp-hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:clamp(2rem,4vw,3.5rem);align-items:center}
.gp-plan{border:1px solid var(--gp-line2);border-radius:20px;background:linear-gradient(180deg,rgba(18,22,20,.92),rgba(10,12,11,.92));padding:1.2rem;box-shadow:0 30px 60px -30px rgba(0,0,0,.8),0 0 0 1px rgba(34,197,94,.06) inset}
.gp-plan-h{margin:0 0 .7rem;font:600 .68rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gp-mu)}
.gp-plan ol{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.gp-plan li a{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:.15rem .75rem;align-items:center;padding:.7rem .8rem;border-radius:12px;text-decoration:none;border:1px solid transparent;transition:background .2s,border-color .2s}
.gp-plan li a:hover{background:rgba(255,255,255,.04);border-color:var(--gp-line)}
.gp-pn{grid-row:1/3;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font:700 .78rem/1 var(--mono);color:var(--acc);background:color-mix(in srgb,var(--acc) 14%,transparent);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent)}
.gp-pt{font:700 .98rem/1.2 var(--display);color:#fff;min-width:0}
.gp-pt small{display:block;font:400 .78rem/1.35 var(--body);color:var(--gp-mu);margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gp-pc{font:600 .72rem/1 var(--mono);color:var(--gp-mu)}
.gp-pbar{grid-column:2/4;height:4px;border-radius:9px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:.45rem}
.gp-pbar b{display:block;height:100%;width:calc(var(--p,0)*1%);background:var(--acc);border-radius:inherit;transition:width .8s cubic-bezier(.22,1,.36,1)}
.gp-plan li.cleared .gp-pc{color:var(--acc)}
.gp-plan-cta{margin-top:.9rem;display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:46px;border-radius:12px;background:linear-gradient(120deg,#16a34a,#15803d);color:#fff;text-decoration:none;font:700 .92rem var(--display);box-shadow:0 12px 30px -14px rgba(34,197,94,.8)}
.gp-plan-cta:hover{filter:brightness(1.08)}
@media (max-width:960px){.gp-hero-in{grid-template-columns:1fr}.gp-plan{display:none}}

/* control bar */
.gp-bar{position:sticky;top:var(--gp-top);z-index:9;background:rgba(5,8,6,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-block:1px solid var(--gp-line)}
.gp-bar-in{display:flex;align-items:center;gap:.75rem;padding-block:.7rem;flex-wrap:wrap}
.gp-search{position:relative;flex:1 1 220px;max-width:300px;display:flex;align-items:center}
.gp-search>svg{position:absolute;left:.8rem;color:var(--gp-mu);pointer-events:none}
.gp-search input{width:100%;height:42px;padding:0 2.3rem 0 2.4rem;border-radius:12px;border:1px solid var(--gp-line2);background:var(--gp-surf);color:var(--gp-tx);font:500 .95rem var(--body)}
.gp-search input::placeholder{color:var(--gp-mu2)}
.gp-search input:focus{outline:none;border-color:var(--gp-green2);box-shadow:0 0 0 3px rgba(34,197,94,.25)}
.gp-search input::-webkit-search-cancel-button{filter:invert(1)}
.gp-search kbd{position:absolute;right:.6rem;font:600 .7rem/1 var(--mono);color:var(--gp-mu);border:1px solid var(--gp-line2);border-radius:6px;padding:.25rem .45rem}
.gp-search input:focus~kbd,.gp-search input:not(:placeholder-shown)~kbd{display:none}
.gp-chips{display:flex;gap:.4rem;flex:1 1 auto;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent);padding:2px 1.2rem 2px 2px}
.gp-chips::-webkit-scrollbar{display:none}
.gp-chip{flex:none;height:34px;padding:0 .8rem;border-radius:999px;border:1px solid var(--gp-line2);background:transparent;color:var(--gp-mu);font:600 .78rem var(--body);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.gp-chip:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.gp-chip[aria-pressed="true"]{background:var(--gp-green);border-color:var(--gp-green);color:#fff}
.gp-switch{flex:none;display:inline-flex;align-items:center;gap:.5rem;height:34px;padding:0 .2rem;border:0;background:none;color:var(--gp-mu);font:600 .8rem var(--body);cursor:pointer}
.gp-sw{width:34px;height:20px;border-radius:999px;background:#2a332e;position:relative;transition:background .2s}
.gp-sw i{position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.gp-switch[aria-checked="true"] .gp-sw{background:var(--gp-green)}
.gp-switch[aria-checked="true"] .gp-sw i{transform:translateX(14px)}
.gp-hud{flex:none;display:flex;align-items:center;gap:.45rem;margin-left:auto}
.gp-rank,.gp-xpt{display:inline-flex;align-items:center;gap:.35rem;height:34px;padding:0 .7rem;border-radius:999px;font:600 .74rem/1 var(--mono);white-space:nowrap}
.gp-rank{background:rgba(245,158,11,.12);color:#fcd34d;border:1px solid rgba(245,158,11,.35)}
.gp-xpt{background:rgba(22,163,74,.12);color:#86efac;border:1px solid rgba(34,197,94,.3)}
.gp-hud.bump .gp-xpt{animation:gp-bump .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes gp-bump{40%{transform:scale(1.12)}}

/* mission map */
.gp-map{position:relative;padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(2rem,4vw,3rem);--rail-x:calc(clamp(1.1rem,4vw,2.5rem) + 28px)}
.gp-rail{position:absolute;left:var(--rail-x);top:3.4rem;bottom:3rem;width:2px;height:calc(100% - 6.4rem);transform:translateX(-1px);overflow:visible;pointer-events:none}
.gp-rail path{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}
.gp-rail-bg{stroke:rgba(255,255,255,.08)}
.gp-rail-fg{stroke:var(--gp-green2);stroke-dasharray:1;stroke-dashoffset:0;filter:drop-shadow(0 0 4px rgba(34,197,94,.6))}
@supports (animation-timeline:view()){
  .gp-rail-fg{stroke-dashoffset:1;animation:gp-draw linear both;animation-timeline:view();animation-range:entry 0% exit 0%}
}
@keyframes gp-draw{to{stroke-dashoffset:0}}
.gp-level{position:relative;padding-left:72px;margin-bottom:clamp(2.2rem,5vw,3.4rem);scroll-margin-top:calc(var(--gp-top) + 80px)}
.gp-lv-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.1rem;position:relative}
.gp-ring{position:absolute;left:-72px;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;background:var(--gp-bg);display:grid;place-items:center;transition:box-shadow .5s}
.gp-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
.gp-ring circle{fill:none;stroke-width:4}
.gp-ring-trk{stroke:rgba(255,255,255,.1)}
.gp-ring-val{stroke:var(--acc);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--p,0));transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,1)}
.gp-ring span{font:700 .9rem/1 var(--mono);color:var(--acc)}
.gp-level.lit .gp-ring{box-shadow:0 0 0 6px color-mix(in srgb,var(--acc) 14%,transparent),0 0 28px color-mix(in srgb,var(--acc) 45%,transparent)}
.gp-level.cleared .gp-ring{background:color-mix(in srgb,var(--acc) 14%,var(--gp-bg))}
.gp-lv-text{flex:1;min-width:0}
.gp-lv-label{margin:0;font:600 .68rem/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.gp-level h2{color:#fff;font-size:clamp(1.5rem,3vw,2.1rem);margin:.15rem 0 .2rem}
.gp-obj{margin:0;color:var(--gp-mu);font-size:.98rem}
.gp-obj span{color:var(--gp-tx);font-weight:600}
.gp-lv-prog{flex:none;margin:0;font:600 .74rem/1 var(--mono);color:var(--gp-mu);border:1px solid var(--gp-line2);border-radius:999px;padding:.45rem .7rem}
.gp-level.cleared .gp-lv-prog{color:#fff;border-color:var(--acc);background:color-mix(in srgb,var(--acc) 18%,transparent)}

/* resource buttons */
.gp-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.gp-item[hidden]{display:none}
.gp-item-feat{grid-column:1/-1}
.gp-card{position:relative;display:flex;gap:.95rem;align-items:flex-start;height:100%;padding:1.15rem 2.9rem 1.15rem 1.15rem;border-radius:16px;background:var(--gp-surf);border:1px solid var(--gp-line);text-decoration:none;color:var(--gp-tx);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,border-color .3s,background .3s;-webkit-tap-highlight-color:transparent}
.gp-card::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .25s;
  background:conic-gradient(from var(--gp-ang),transparent 0 62%,var(--acc) 78%,#fff 82%,var(--acc) 86%,transparent 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.gp-card:hover,.gp-card:focus-visible{transform:translateY(-4px);border-color:color-mix(in srgb,var(--acc) 35%,transparent);box-shadow:0 18px 40px -18px color-mix(in srgb,var(--acc) 55%,transparent),0 0 0 1px rgba(255,255,255,.02)}
.gp-card:hover::before,.gp-card:focus-visible::before{opacity:1;animation:gp-sweep 2.4s linear infinite}
@keyframes gp-sweep{to{--gp-ang:360deg}}
.gp-card:active{transform:translateY(-2px) scale(.97);transition-duration:.12s}
.gp-ic{flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;color:var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent);border:1px solid color-mix(in srgb,var(--acc) 26%,transparent);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.gp-card:hover .gp-ic{transform:rotate(8deg)}
.gp-body{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.gp-title{font:700 1.06rem/1.25 var(--display);color:#fff;display:flex;align-items:center;flex-wrap:wrap;gap:.45rem}
.gp-desc{color:var(--gp-mu);font-size:.92rem;line-height:1.45}
.gp-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin-top:.2rem}
.gp-dur{display:inline-flex;align-items:center;gap:.3rem;font:500 .74rem/1 var(--mono);color:var(--gp-mu)}
.gp-xp{font:700 .7rem/1 var(--mono);color:#86efac;background:rgba(22,163,74,.13);border:1px solid rgba(34,197,94,.28);border-radius:6px;padding:.28rem .42rem}
.gp-new{font:700 .6rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#0b1a10;background:#86efac;border-radius:5px;padding:.25rem .38rem}
.gp-247{display:inline-flex;align-items:center;gap:.35rem;font:700 .68rem/1 var(--mono);color:#fecaca;background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.4);border-radius:6px;padding:.26rem .45rem}
.gp-247 .gp-pulse{width:7px;height:7px;background:#ef4444}
.gp-ext{color:var(--gp-mu)}
.gp-arrow{position:absolute;right:1rem;top:1.2rem;color:var(--gp-mu);transition:transform .3s cubic-bezier(.34,1.56,.64,1),color .2s}
.gp-card:hover .gp-arrow,.gp-card:focus-visible .gp-arrow{transform:translateX(5px);color:var(--acc)}
.gp-check{position:absolute;right:.85rem;top:.95rem;width:28px;height:28px;border-radius:50%;display:none;place-items:center;background:var(--acc);color:#04130a}
.gp-done-tag{display:none;align-items:center;gap:.25rem;font:600 .7rem/1 var(--mono);color:var(--acc)}
.gp-item.done .gp-check{display:grid}
.gp-item.done .gp-arrow{display:none}
.gp-item.done .gp-done-tag{display:inline-flex}
.gp-item.done .gp-card{background:#0a0c0b}
.gp-item.done .gp-title,.gp-item.done .gp-desc{opacity:.62}
.gp-item.done .gp-ic{filter:saturate(.5);opacity:.75}
.gp-item.just-done .gp-check{animation:gp-pop .5s cubic-bezier(.34,1.56,.64,1)}
@keyframes gp-pop{0%{transform:scale(0)}}

/* emergency card always red */
.gp-card.is-emg{--acc:#ef4444}

/* final stage: get a quote */
.gp-card.is-feat{--acc:#22c55e;padding:clamp(1.4rem,3vw,2rem);padding-right:clamp(1.4rem,3vw,2rem);align-items:center;gap:1.4rem;border:1px solid transparent;
  background:linear-gradient(135deg,#0f2418,#0b130e 55%,#0d0f0e) padding-box,linear-gradient(120deg,#22c55e,#14532d 40%,#f59e0b 75%,#22c55e) border-box}
.gp-card.is-feat .gp-ic{width:60px;height:60px;border-radius:16px;color:#04130a;background:linear-gradient(135deg,#22c55e,#16a34a);border:0;box-shadow:0 10px 30px -10px rgba(34,197,94,.7)}
.gp-card.is-feat .gp-title{font-size:clamp(1.35rem,2.6vw,1.8rem)}
.gp-card.is-feat .gp-desc{font-size:1rem;max-width:60ch}
.gp-card.is-feat .gp-xp{color:#fde68a;background:rgba(245,158,11,.14);border-color:rgba(245,158,11,.45)}
.gp-card.is-feat .gp-arrow{display:none}
.gp-boss{font:700 .64rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gp-gold)}
.gp-cta-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;margin-top:.7rem;padding:.8rem 1.25rem;border-radius:999px;background:var(--gp-green);color:#fff;font:700 .95rem var(--display);box-shadow:0 10px 28px -10px rgba(34,197,94,.75);transition:background .2s,gap .2s}
.gp-card.is-feat:hover .gp-cta-btn{background:#15803d;gap:.75rem}
.gp-card.is-feat:hover{box-shadow:0 22px 50px -20px rgba(34,197,94,.6),0 0 40px -20px rgba(245,158,11,.5)}
.gp-item-feat.done .gp-check{right:1.2rem;top:1.2rem}

/* reveal (only when JS runs) */
.gp-level.pre .gp-item{opacity:0;transform:translateY(16px)}
.gp-level.in .gp-item{transition:opacity .5s ease calc(var(--i)*70ms),transform .6s cubic-bezier(.22,1,.36,1) calc(var(--i)*70ms)}

.gp-empty{text-align:center;color:var(--gp-mu);padding:2.5rem 1rem;border:1px dashed var(--gp-line2);border-radius:16px;margin:0 0 2rem}
.gp-empty button{margin-left:.4rem;background:none;border:0;color:#86efac;font:600 1rem var(--body);text-decoration:underline;cursor:pointer}

/* end CTA */
.gp-end{border-top:1px solid var(--gp-line);background:radial-gradient(60% 120% at 50% 0,rgba(22,163,74,.16),transparent 70%)}
.gp-end-in{text-align:center;padding-block:clamp(3rem,6vw,4.5rem)}
.gp-end h2{color:#fff;font-size:clamp(1.6rem,3.4vw,2.4rem);margin:0 auto .6rem;max-width:22ch}
.gp-end p{color:var(--gp-mu);margin:0}
.gp-end-btns{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin:1.6rem 0 1.2rem}
.gp-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:48px;padding:0 1.4rem;border-radius:999px;border:1px solid var(--gp-line2);color:#fff;text-decoration:none;font:700 .95rem var(--display);transition:background .2s,border-color .2s,transform .25s cubic-bezier(.34,1.56,.64,1)}
.gp-btn:hover{border-color:rgba(255,255,255,.35);transform:translateY(-2px)}
.gp-btn-pri{background:var(--gp-green);border-color:var(--gp-green)}
.gp-btn-pri:hover{background:#15803d;border-color:#15803d}
.gp-addr{font-size:.86rem}
.gp-reset-wrap{margin-top:1rem!important}
.gp-reset{background:none;border:0;color:var(--gp-mu2);font:500 .8rem var(--body);text-decoration:underline;cursor:pointer;padding:.5rem}
.gp-reset:hover{color:#fff}

/* toasts + confetti */
.gp-toasts{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:.5rem;width:min(92vw,420px);pointer-events:none}
.gp-toast{pointer-events:auto;display:flex;align-items:center;gap:.8rem;width:100%;padding:.85rem 1rem;border-radius:14px;background:#0f1712;border:1px solid rgba(34,197,94,.35);color:#fff;font:600 .92rem/1.35 var(--body);box-shadow:0 20px 40px -12px rgba(0,0,0,.7);animation:gp-tin .45s cubic-bezier(.34,1.56,.64,1)}
.gp-toast b{font-family:var(--mono);color:#86efac}
.gp-toast a{margin-left:auto;flex:none;padding:.45rem .8rem;border-radius:999px;background:var(--gp-green);color:#fff;text-decoration:none;font-weight:700;font-size:.82rem}
.gp-toast.out{animation:gp-tout .3s ease forwards}
@keyframes gp-tin{from{opacity:0;transform:translateY(16px) scale(.96)}}
@keyframes gp-tout{to{opacity:0;transform:translateY(10px)}}
.gp-confetti{position:fixed;left:50%;bottom:5rem;width:0;height:0;z-index:61;pointer-events:none}
.gp-confetti i{position:absolute;width:8px;height:12px;border-radius:2px;background:var(--c);animation:gp-burst 1.15s cubic-bezier(.15,.7,.3,1) forwards}
@keyframes gp-burst{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--r));opacity:0}}

/* light site theme: keep the command center dark, soften the edge with the light header */
[data-theme="light"] .gp-crumbs{background:var(--gp-bg)}

/* responsive */
@media (max-width:1100px){.gp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gp-hud{margin-left:0}}
@media (max-width:700px){
  .gp-grid{grid-template-columns:1fr}
  .gp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gp-map{--rail-x:calc(clamp(1.1rem,4vw,2.5rem) + 15px)}
  .gp-level{padding-left:44px}
  .gp-ring{left:-44px;width:32px;height:32px}
  .gp-ring svg{width:32px;height:32px}
  .gp-ring span{font-size:.62rem}
  .gp-lv-head{flex-wrap:wrap;align-items:flex-start;gap:.5rem}
  .gp-ring{top:.15rem;transform:none}
  .gp-lv-text{flex-basis:100%}
  .gp-lv-prog{padding:.35rem .6rem}
  .gp-bar-in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"s s h" "w c c";gap:.5rem .55rem;padding-block:.55rem}
  .gp-search{grid-area:s;max-width:none}
  .gp-search input{height:40px}
  .gp-hud{grid-area:h;margin:0}
  .gp-rank{display:none}
  .gp-switch{grid-area:w;font-size:0;gap:0;padding:0}
  .gp-chips{grid-area:c;padding-right:1.4rem}
  .gp-card.is-feat{flex-direction:column;align-items:flex-start}
  .gp-es{font-size:.78rem}
}

/* reduced motion: no path drawing, confetti, tilt or pulsing */
@media (prefers-reduced-motion:reduce){
  .gp-rail-fg{animation:none!important;stroke-dashoffset:0!important}
  .gp-pulse::after{animation:none;display:none}
  .gp-card,.gp-card:hover,.gp-card:active,.gp-card:focus-visible{transform:none;transition:border-color .2s,box-shadow .2s}
  .gp-card:hover::before,.gp-card:focus-visible::before{animation:none}
  .gp-card:hover .gp-ic,.gp-card:hover .gp-arrow{transform:none}
  .gp-level.pre .gp-item{opacity:1;transform:none}
  .gp-level.in .gp-item{transition:none}
  .gp-ring-val{transition:none}
  .gp-confetti{display:none}
  .gp-toast,.gp-toast.out,.gp-hud.bump .gp-xpt,.gp-item.just-done .gp-check{animation:none}
}
@media print{.gp-es,.gp-bar,.gp-toasts,.gp-rail{display:none}.gp-level.pre .gp-item{opacity:1;transform:none}}

/* ---- /services/ (Service Command Center) shares the gp system ---- */
.gp-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gp-grid.cols-1{grid-template-columns:1fr}
.sv-node{background:var(--gp-bg);border:2px solid var(--acc)}
.sv .gp-level.lit .sv-node{box-shadow:0 0 0 6px color-mix(in srgb,var(--acc) 14%,transparent),0 0 28px color-mix(in srgb,var(--acc) 45%,transparent)}
.sv-card{flex-wrap:nowrap}
.sv-pts{list-style:none;margin:.35rem 0 .1rem;padding:0;display:grid;gap:.32rem}
.sv-pts li{display:flex;align-items:flex-start;gap:.45rem;color:var(--gp-tx);font-size:.9rem;line-height:1.4;opacity:.92}
.sv-pts svg{flex:none;margin-top:.18rem;color:var(--acc)}
.sv-more{font:600 .78rem/1 var(--body);color:var(--acc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent)}
.sv .gp-meta{margin-top:.45rem;gap:.6rem}
.sv-match ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.sv-match li a{display:flex;align-items:center;gap:.75rem;padding:.7rem .8rem;border-radius:12px;text-decoration:none;border:1px solid transparent;transition:background .2s,border-color .2s}
.sv-match li a:hover,.sv-match li a:focus-visible{background:rgba(255,255,255,.04);border-color:var(--gp-line)}
.sv-match li a>svg{margin-left:auto;flex:none;color:var(--gp-mu);transition:transform .25s cubic-bezier(.34,1.56,.64,1),color .2s}
.sv-match li a:hover>svg{transform:translateX(4px);color:var(--acc)}
.sv-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc) 18%,transparent)}
.sv-sit{font:600 .95rem/1.25 var(--display);color:#fff;min-width:0}
.sv-sit small{display:block;font:500 .74rem/1.3 var(--mono);color:var(--acc);margin-top:.2rem;letter-spacing:.02em}
.sv-call{text-decoration:none}
.sv-call:hover{background:rgba(22,163,74,.22)}
.gp-note svg{vertical-align:-2px;margin-right:.2rem;color:#86efac}
@media (max-width:1100px){.gp-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.gp-grid.cols-2{grid-template-columns:1fr}.sv .gp-bar-in{grid-template-areas:"s s h" "c c c"}}
@media (max-width:960px){.gp-plan.sv-match{display:block;margin-top:.4rem}}
