
  #ssfBoothLayout{
    --bg-deep:#0f2b12;
    --bg-mid:#1c4a1f;
    --green-dark:#1e5c26;
    --green:#3f8f3f;
    --green-light:#7ec850;
    --yellow:#f6c445;
    --yellow-light:#ffe088;
    --yellow-dark:#c99420;
    --asphalt:#2b2925;
    --asphalt-2:#37342d;
    --paper:#fbf7ea;
    --red:#c8352b;
    --red-dark:#8f2620;

    --c-general:#2f74d8;
    --c-general-dark:#1a468f;
    --c-food:#e0a526;
    --c-food-dark:#a97613;
    --c-promo:#b833d6;
    --c-promo-dark:#7a1fa3;
    --c-truck:#e0762a;
    --c-truck-dark:#a4530f;

    font-family:'Inter',sans-serif;
    background:
      radial-gradient(ellipse at top, var(--bg-mid) 0%, var(--bg-deep) 62%),
      radial-gradient(ellipse at bottom, rgba(0,0,0,.55) 0%, transparent 55%);
    color:var(--paper);
    padding:40px 0 60px;
    border-radius:18px;
    line-height:1.4;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
    box-shadow:0 0 0 1px rgba(255,255,255,.04), 0 40px 90px rgba(0,0,0,.55);
  }
  #ssfBoothLayout *{box-sizing:border-box;}
  #ssfBoothLayout .ssfb-wrap{max-width:1180px;margin:0 auto;padding:0 20px;}

  /* ---------- HEADER ---------- */
  #ssfBoothLayout .ssfb-header{padding:0 20px 30px;text-align:center;position:relative;}
  #ssfBoothLayout .ssfb-brandmark{
    font-family:'Baloo 2',sans-serif;
    font-weight:800;
    font-size:clamp(28px,5vw,50px);
    line-height:1.05;
    background:linear-gradient(180deg,var(--green-light),var(--green) 55%,var(--green-dark));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    letter-spacing:.5px;
    margin:0;
    filter:drop-shadow(0 3px 6px rgba(0,0,0,.45));
  }
  #ssfBoothLayout .ssfb-brandmark span{
    display:block;
    font-size:.42em;
    letter-spacing:6px;
    background:linear-gradient(180deg,var(--yellow-light),var(--yellow) 55%,var(--yellow-dark));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));
  }
  #ssfBoothLayout .ssfb-subtitle{margin-top:6px;font-size:15px;color:#cfe6c8;letter-spacing:.5px;}
  #ssfBoothLayout .ssfb-meta-strip{margin:26px auto 0;max-width:760px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
  #ssfBoothLayout .ssfb-meta-pill{
    background:linear-gradient(180deg,var(--green),var(--green-dark));
    border:1px solid rgba(255,255,255,.22);
    padding:8px 16px;border-radius:999px;font-size:13px;font-weight:600;
    box-shadow:0 3px 0 rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.25), 0 6px 14px rgba(0,0,0,.25);
    color:var(--paper);
    letter-spacing:.2px;
  }

  /* ---------- COUNT BAR ---------- */
  #ssfBoothLayout .ssfb-count-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:34px auto 0;}
  #ssfBoothLayout .ssfb-count-card{
    background:linear-gradient(160deg,rgba(255,255,255,.1),rgba(255,255,255,.02));
    border:1px solid rgba(255,255,255,.14);
    border-radius:14px;padding:16px 14px;text-align:center;position:relative;overflow:hidden;
    box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  #ssfBoothLayout .ssfb-count-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.1);}
  #ssfBoothLayout .ssfb-count-card::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;box-shadow:0 0 10px currentColor;}
  #ssfBoothLayout .ssfb-count-card.ssfb-general::before{background:var(--c-general);}
  #ssfBoothLayout .ssfb-count-card.ssfb-food::before{background:var(--c-food);}
  #ssfBoothLayout .ssfb-count-card.ssfb-promo::before{background:var(--c-promo);}
  #ssfBoothLayout .ssfb-count-card.ssfb-truck::before{background:var(--c-truck);}
  #ssfBoothLayout .ssfb-count-num{font-family:'Baloo 2';font-weight:800;font-size:32px;text-shadow:0 2px 4px rgba(0,0,0,.4);}
  #ssfBoothLayout .ssfb-count-label{font-size:12px;color:#dcefd4;margin-top:2px;}
  #ssfBoothLayout .ssfb-count-tag{display:inline-block;margin-top:8px;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.5px;}
  #ssfBoothLayout .ssfb-general .ssfb-count-tag{background:rgba(47,116,216,.3);color:#a9cbff;}
  #ssfBoothLayout .ssfb-food .ssfb-count-tag{background:rgba(224,165,38,.3);color:#ffdf94;}
  #ssfBoothLayout .ssfb-promo .ssfb-count-tag{background:rgba(184,51,214,.3);color:#f0b3ff;}
  #ssfBoothLayout .ssfb-truck .ssfb-count-tag{background:rgba(224,118,42,.3);color:#ffb987;}

  /* ---------- STREET ---------- */
  #ssfBoothLayout .ssfb-street{
    margin-top:46px;position:relative;
    background:
      repeating-radial-gradient(circle at 20% 30%, rgba(255,255,255,.015) 0 2px, transparent 2px 5px),
      linear-gradient(90deg,var(--green-dark) 0,var(--green) 18px,var(--green) 26px,var(--asphalt) 34px,var(--asphalt-2) 50%,var(--asphalt) calc(100% - 34px),var(--green) calc(100% - 26px),var(--green) calc(100% - 18px),var(--green-dark) 100%);
    border-radius:22px;padding:10px 0 30px;
    box-shadow:0 25px 60px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.07), inset 0 2px 8px rgba(0,0,0,.3);
  }
  #ssfBoothLayout .ssfb-roadclosed{
    text-align:center;margin:10px auto 0;
    background:repeating-linear-gradient(45deg,#181a15 0 14px,var(--yellow) 14px 28px);
    color:#181a15;font-family:'Baloo 2';font-weight:700;
    width:min(320px,80%);padding:8px 10px;border-radius:8px;font-size:13px;
    box-shadow:0 4px 0 rgba(0,0,0,.4), 0 10px 20px rgba(0,0,0,.35);
    border:1px solid rgba(0,0,0,.25);
  }
  #ssfBoothLayout .ssfb-roadclosed b{background:#fff;padding:2px 10px;border-radius:5px;display:inline-block;box-shadow:0 2px 5px rgba(0,0,0,.25);}

  #ssfBoothLayout .ssfb-zone{position:relative;z-index:2;padding:26px 42px 6px;}
  #ssfBoothLayout .ssfb-landmark{
    display:flex;align-items:center;justify-content:center;gap:10px;margin:6px auto 22px;width:fit-content;
    background:linear-gradient(180deg,#20321a,#12200e);
    border:1px solid rgba(255,255,255,.18);padding:9px 22px;border-radius:999px;
    font-family:'Baloo 2';font-weight:700;font-size:14px;letter-spacing:.5px;
    box-shadow:0 4px 14px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08);
    color:var(--yellow-light);
    text-shadow:0 1px 2px rgba(0,0,0,.5);
  }
  #ssfBoothLayout .ssfb-landmark .ssfb-ico{font-size:18px;}
  #ssfBoothLayout .ssfb-landmark.ssfb-stagey{background:linear-gradient(180deg,#3a1d1d,#1c0d0d);border-color:rgba(255,120,90,.3);color:#ffcf9e;}
  #ssfBoothLayout .ssfb-landmark.ssfb-kids{background:linear-gradient(180deg,#5c1d3a,#2a0d1a);border-color:rgba(255,120,190,.35);color:#ffb6da;}
  #ssfBoothLayout .ssfb-landmark.ssfb-align-left{margin-left:8px;margin-right:auto;}
  #ssfBoothLayout .ssfb-landmark.ssfb-sponsor{background:linear-gradient(180deg,#4a3a0f,#241c08);border-color:rgba(255,205,90,.4);color:var(--yellow-light);}

  /* Asymmetric layout used only for the Open Stage / Main Stage zones:
     stage+seating block (pulled toward the fire lane) | fire lane in the
     middle | a tight right cluster of vendor-continuation + Service Road */
  /* Stage zones now share the exact same column grid as every other zone
     (1fr | 130px fire lane | 1fr | 60px service road) so the fire lane and
     service road run perfectly straight down the whole street. */
  #ssfBoothLayout .ssfb-stage-block{display:flex;flex-direction:column;justify-content:center;gap:0;height:100%;}
  #ssfBoothLayout .ssfb-stage-block .ssfb-landmark{margin:6px auto 0;}
  #ssfBoothLayout .ssfb-stage-block .ssfb-seating{margin:0 auto 14px;}

  #ssfBoothLayout .ssfb-vendor-strip{display:flex;flex-direction:column;gap:6px;justify-content:center;height:100%;}
  #ssfBoothLayout .ssfb-mini-tent{
    width:100%;height:30px;border-radius:7px 7px 3px 3px;
    background:linear-gradient(160deg,var(--c-general),var(--c-general-dark));
    clip-path:polygon(50% 0%, 94% 36%, 94% 100%, 6% 100%, 6% 36%);
    opacity:.88;
  }

  #ssfBoothLayout .ssfb-serviceroad-col{
    position:relative;flex:0 0 60px;min-height:160px;border-radius:8px;
    background-color:#54514a;
    background-image:repeating-linear-gradient(to bottom, rgba(255,255,255,.4) 0 10px, transparent 10px 22px);
    background-repeat:repeat-y;background-position:center;background-size:3px 100%;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.14), inset 0 2px 5px rgba(0,0,0,.3), 0 4px 10px rgba(0,0,0,.25);
  }
  #ssfBoothLayout .ssfb-serviceroad-col span{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(180deg);
    writing-mode:vertical-rl;font-family:'Baloo 2';font-weight:700;font-size:10px;letter-spacing:2px;
    color:#e8e5da;white-space:nowrap;
  }

  #ssfBoothLayout .ssfb-seating{
    display:grid;grid-template-columns:repeat(7,26px);gap:5px;
    margin:0 auto 24px 8px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.1);
    padding:10px;border-radius:10px;
    width:fit-content;
  }
  #ssfBoothLayout .ssfb-seat{font-size:16px;line-height:1;text-align:center;opacity:.9;}

  #ssfBoothLayout .ssfb-section-label{text-align:center;font-family:'Baloo 2';font-weight:700;font-size:15px;color:var(--paper);margin-bottom:16px;letter-spacing:.3px;}
  #ssfBoothLayout .ssfb-section-label small{display:block;font-family:'Inter';font-weight:500;font-size:11.5px;color:#b9d1af;margin-top:2px;letter-spacing:.4px;}

  /* Two long tent rows, one on each side of a real Fire Lane column (ratio matches the map) */
  #ssfBoothLayout .ssfb-lanes{display:grid;grid-template-columns:1fr 130px 1fr 60px;gap:18px;align-items:stretch;}
  #ssfBoothLayout .ssfb-lane{
    display:flex;flex-direction:column;gap:5px;
    max-width:220px;
  }
  #ssfBoothLayout .ssfb-lane.ssfb-left{justify-self:start;}
  #ssfBoothLayout .ssfb-lane.ssfb-right{justify-self:end;}
  #ssfBoothLayout .ssfb-lane.ssfb-lane-reverse{flex-direction:column-reverse;}

  /* Fire Lane column: red asphalt strip with dashed centerline + rotated label, sized like the real road */
  #ssfBoothLayout .ssfb-firelane-col{
    position:relative;
    min-height:110px;
    border-radius:8px;
    background-color:var(--red);
    background-image:
      linear-gradient(90deg, rgba(0,0,0,.35) 0%, transparent 22%, transparent 78%, rgba(0,0,0,.35) 100%),
      repeating-linear-gradient(to bottom, var(--yellow) 0 16px, transparent 16px 32px);
    background-repeat:no-repeat, repeat-y;
    background-position:center, center;
    background-size:100% 100%, 5px 100%;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.22), 0 0 30px rgba(224,60,48,.6), 0 0 6px rgba(224,60,48,.85), inset 0 2px 6px rgba(0,0,0,.3);
  }
  #ssfBoothLayout .ssfb-firelane-col > span{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(180deg);
    writing-mode:vertical-rl;
    font-family:'Baloo 2';font-weight:700;font-size:13px;letter-spacing:3px;
    color:var(--yellow-light);
    text-shadow:0 1px 2px rgba(0,0,0,.6);
    white-space:nowrap;
  }

  /* Fire lane variant that houses the Food & Ice-Cream Truck booths directly in
     the middle of the red lane, using the same small booth shape/size as every
     other category (see .ssfb-booth.ssfb-truck below) — just narrower to fit. */
  #ssfBoothLayout .ssfb-firelane-col.ssfb-firelane-trucks{min-height:280px;padding:14px 6px;}
  #ssfBoothLayout .ssfb-truck-stack{
    position:relative;z-index:2;
    display:flex;flex-direction:column;gap:6px;
    width:92%;margin:0 auto;
  }

  /* Tent-shaped booth: pointed roof + rectangular base, long single-file row */
  #ssfBoothLayout .ssfb-booth{
    position:relative;
    width:100%;
    min-height:40px;
    padding:11px 8px 6px;
    display:flex;align-items:center;justify-content:center;gap:6px;
    font-family:'Inter';font-weight:800;font-size:12px;color:#fff;
    clip-path:polygon(50% 0%, 96% 34%, 96% 100%, 4% 100%, 4% 34%);
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 6px 14px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.2);
    border:1px solid rgba(255,255,255,.32);
    text-shadow:0 1px 2px rgba(0,0,0,.35);
    transition:transform .14s ease, box-shadow .14s ease;
  }
  #ssfBoothLayout .ssfb-booth:hover{transform:scale(1.06) translateY(-1px);z-index:5;box-shadow:0 4px 0 rgba(0,0,0,.4), 0 10px 22px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.25);}
  #ssfBoothLayout .ssfb-booth .ssfb-num{font-size:12px;white-space:nowrap;}
  #ssfBoothLayout .ssfb-booth .ssfb-cat{font-size:7.5px;font-weight:700;opacity:.85;letter-spacing:.5px;}

  /* Medium "flat-top, pointed-bottom" tent shape shared by General, Food, Promo
     and Food & Ice-Cream Truck booths — the exact same shape/size everywhere,
     only the colors differ by category. */
  #ssfBoothLayout .ssfb-booth.ssfb-general,
  #ssfBoothLayout .ssfb-booth.ssfb-food,
  #ssfBoothLayout .ssfb-booth.ssfb-promo,
  #ssfBoothLayout .ssfb-booth.ssfb-truck{
    clip-path:polygon(4% 0%, 96% 0%, 96% 66%, 50% 100%, 4% 66%);
    padding:7px 8px 15px;
    border-radius:8px 8px 0 0;
  }
  #ssfBoothLayout .ssfb-booth.ssfb-general{
    background:linear-gradient(160deg,var(--c-general),var(--c-general-dark));
    border:1px solid rgba(120,200,255,.55);
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 0 12px rgba(47,116,216,.5), inset 0 1px 0 rgba(255,255,255,.2);
  }
  #ssfBoothLayout .ssfb-booth.ssfb-food{
    background:linear-gradient(160deg,var(--c-food),var(--c-food-dark));
    color:#241a04;
    border:1px solid rgba(255,225,150,.6);
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 0 12px rgba(224,165,38,.5), inset 0 1px 0 rgba(255,255,255,.25);
  }
  #ssfBoothLayout .ssfb-booth.ssfb-food .ssfb-cat{color:#3a2a06;}
  #ssfBoothLayout .ssfb-booth.ssfb-promo{
    background:linear-gradient(160deg,var(--c-promo),var(--c-promo-dark));
    border:2px solid var(--yellow);
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 0 14px rgba(184,51,214,.6), inset 0 1px 0 rgba(255,255,255,.2);
  }
  #ssfBoothLayout .ssfb-booth.ssfb-truck{
    background:linear-gradient(160deg,var(--c-truck),var(--c-truck-dark));
    border:1px solid rgba(255,200,150,.55);
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 0 12px rgba(224,118,42,.5), inset 0 1px 0 rgba(255,255,255,.2);
  }

  /* Food & Ice-Cream Truck booths sitting directly on the red Fire Lane get a
     bright, high-contrast color so they stand out against the red background
     (everything else about the truck category — count card, tag colors —
     stays untouched). */
  #ssfBoothLayout .ssfb-firelane-trucks .ssfb-booth.ssfb-truck{
    background:linear-gradient(160deg,#eafcff,#bce8f0);
    color:#0d3b42;
    border:2px solid #1fb6cf;
    box-shadow:0 3px 0 rgba(0,0,0,.4), 0 0 14px rgba(31,182,207,.75), inset 0 1px 0 rgba(255,255,255,.5);
  }
  #ssfBoothLayout .ssfb-firelane-trucks .ssfb-booth.ssfb-truck .ssfb-cat{color:#0d3b42;}
  #ssfBoothLayout .ssfb-firelane-trucks .ssfb-inline-label{font-size:9px;padding:5px 3px;}

  /* Booth-sized blank spacer — inserted every N booths to break a long row into visual clusters */
  #ssfBoothLayout .ssfb-boothgap{width:100%;min-height:40px;}

  #ssfBoothLayout .ssfb-inline-label{
    width:100%;text-align:center;
    font-family:'Baloo 2';font-weight:700;font-size:10.5px;letter-spacing:.5px;
    color:var(--yellow-light);
    background:rgba(255,255,255,.07);
    border:1px dashed rgba(255,255,255,.28);
    border-radius:6px;
    padding:6px 4px;
    text-shadow:0 1px 2px rgba(0,0,0,.4);
  }

  #ssfBoothLayout .ssfb-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);margin:30px 0;}
  #ssfBoothLayout .ssfb-footer{text-align:center;margin-top:30px;font-size:12px;color:#a9c6a0;letter-spacing:.3px;}

  @media(max-width:720px){
    #ssfBoothLayout .ssfb-zone{padding:26px 20px 6px;}
    #ssfBoothLayout .ssfb-count-bar{grid-template-columns:repeat(2,1fr);}
    #ssfBoothLayout .ssfb-lanes{grid-template-columns:1fr 60px 1fr 34px;gap:8px;}
    #ssfBoothLayout .ssfb-lane{max-width:none;}
    #ssfBoothLayout .ssfb-firelane-col > span{font-size:10px;letter-spacing:2px;}
    #ssfBoothLayout .ssfb-firelane-col.ssfb-firelane-trucks{min-height:240px;padding:10px 4px;}
    #ssfBoothLayout .ssfb-firelane-col.ssfb-firelane-trucks .ssfb-booth{font-size:9px;min-height:32px;padding:5px 4px 11px;}
    #ssfBoothLayout .ssfb-firelane-col.ssfb-firelane-trucks .ssfb-num{font-size:9px;}
    #ssfBoothLayout .ssfb-firelane-col.ssfb-firelane-trucks .ssfb-cat{font-size:6px;}
    #ssfBoothLayout .ssfb-firelane-trucks .ssfb-inline-label{font-size:7.5px;padding:4px 2px;}
    #ssfBoothLayout .ssfb-seating{grid-template-columns:repeat(5,22px);}
  }
  @media(max-width:420px){
    #ssfBoothLayout .ssfb-count-bar{grid-template-columns:1fr;}
    #ssfBoothLayout .ssfb-meta-strip{gap:8px;}
  }
