:root {
  --ink: #edf1ec;
  --muted: #b5bdba;
  --navy: #07172a;
  --navy-soft: #0d2540;
  --gold: #d3a149;
  --gold-light: #f2ca7c;
  --line: rgba(242, 202, 124, .28);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  background: radial-gradient(circle at 50% -10%, #183142 0, #08131f 48%, #040b12 100%);
}
button { font: inherit; }
.site-shell { width: min(1220px, calc(100% - 32px)); margin: 0 auto; padding: 38px 0 48px; }
.site-header { text-align: center; margin-bottom: 24px; }
.eyebrow { color: var(--gold-light); font-size: 12px; font-weight: 700; letter-spacing: .26em; margin: 0 0 8px; }
h1 { margin: 0; font-size: clamp(28px, 4vw, 44px); letter-spacing: -.035em; }
.instructions { color: var(--muted); margin: 10px 0 0; }
.plan-tabs { display: flex; justify-content: center; gap: 10px; margin: 0 0 20px; }
.plan-tab { cursor: pointer; border: 1px solid rgba(255,255,255,.16); background: rgba(8, 25, 43, .66); color: var(--ink); padding: 11px 17px; border-radius: 7px; font-weight: 700; transition: .2s ease; }
.plan-tab span { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; font-weight: 400; }
.plan-tab:hover, .plan-tab.is-active { border-color: var(--gold); background: var(--navy-soft); box-shadow: 0 0 0 1px rgba(211,161,73,.22), 0 10px 24px rgba(0,0,0,.22); }
.plan-stage { position: relative; margin: auto; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); box-shadow: 0 26px 70px rgba(0,0,0,.45); }
.plan-stage.is-plan-2 { width: min(100%, calc((100svh - 300px) * .6604)); max-width: 1019px; }
.plan-canvas { position: relative; line-height: 0; background: #050c11; }
.plan-image { display: block; width: 100%; height: auto; }
.hotspots { position: absolute; inset: 0; width: 100%; height: 100%; shape-rendering: geometricPrecision; }
.lot-hit { cursor: pointer; fill: rgba(211, 161, 73, 0); stroke: rgba(242, 202, 124, 0); stroke-width: 3; vector-effect: non-scaling-stroke; transition: fill .18s ease, stroke .18s ease; outline: none; }
.lot-hit:hover, .lot-hit:focus, .lot-hit.is-selected { fill: rgba(211, 161, 73, .28); stroke: var(--gold-light); filter: drop-shadow(0 0 8px rgba(242, 202, 124, .75)); }
.lot-card { position: fixed; z-index: 10; width: min(340px, calc(100vw - 32px)); pointer-events: none; opacity: 0; transform: translateY(7px); transition: opacity .16s ease, transform .16s ease; background: linear-gradient(145deg, rgba(12,37,63,.98), rgba(4,17,31,.98)); border: 1px solid var(--gold); border-radius: 10px; padding: 18px; box-shadow: 0 18px 45px rgba(0,0,0,.45); line-height: 1.4; }
.lot-card.is-visible { opacity: 1; transform: translateY(0); }
.lot-card h2 { margin: 4px 0 10px; font-size: 22px; line-height: 1.12; letter-spacing: -.025em; }
.lot-card .lot-code { display: block; color: var(--gold-light); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.lot-card .status { display: inline-block; margin: 8px 0 10px; padding: 3px 8px; border-radius: 99px; background: rgba(211,161,73,.18); color: var(--gold-light); font-size: 12px; font-weight: 700; }
.lot-card p { color: #d4ddd9; margin: 0; font-size: 14px; }
.lot-card p + p { margin-top: 6px; }
.lot-card a { display: inline-block; pointer-events: auto; margin-top: 13px; color: var(--gold-light); font-size: 13px; font-weight: 700; text-decoration: none; }
.note { text-align: center; color: #7f8d92; font-size: 12px; margin: 16px 0 0; }
code { color: #e6c37b; }
@media (max-width: 640px) {
  .site-shell { width: min(100% - 20px, 1220px); padding-top: 24px; }
  .instructions { font-size: 14px; }
  .plan-tabs { gap: 6px; }
  .plan-tab { flex: 1; padding: 10px 8px; font-size: 13px; }
  .lot-card { position: fixed; left: 10px !important; right: 10px; bottom: 10px; width: auto; }
  .plan-stage.is-plan-2 { width: min(100%, calc((100svh - 250px) * .6604)); }
}
