/* Comparison layout: one responsive toolbar and an unobstructed stage. */
.compare-page .workspace {
  --sidebar-width: 280px;
  --workspace-height: min(calc(100dvh - 20px), calc(100vw - var(--sidebar-width) - 34px));
  --canvas-width: min(calc(var(--workspace-height) * 1.35), calc(100vw - var(--sidebar-width) - 34px));
  grid-template-columns: var(--sidebar-width) var(--canvas-width);
  width: calc(var(--sidebar-width) + var(--canvas-width) + 14px);
  height: var(--workspace-height);
  gap: 14px;
}
.compare-page .workspace > .comparison-sidebar { overflow: visible; }
.compare-page .drawing.square-canvas {
  width: var(--canvas-width); height: var(--workspace-height); aspect-ratio: auto;
  display: flex; flex-direction: column; padding: 0; overflow: hidden;
  container: comparison-canvas / inline-size;
  --canvas-ink: #253b35;
  background: #f9fbf8;
}
.compare-page .canvas-top-controls {
  position: relative; inset: auto; display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto auto;
  grid-template-areas: "views toggles scene position zoom share";
  grid-template-rows: 32px;
  align-items: center; gap: 6px; width: 100%; height: auto; min-height: 0;
  flex: none; padding: 4px 8px; box-sizing: border-box;
  background: var(--bg); border-bottom: 1px solid var(--line);
  z-index: 4; pointer-events: auto;
}
.compare-page .canvas-top-controls > * { min-width: 0; margin: 0; order: 0; }
.compare-page .canvas-top-controls .views {
  grid-area: views; display: flex; align-items: center; flex: none;
  width: auto; gap: 2px; padding: 2px; background: var(--surface2);
  border: 1px solid var(--line); border-radius: 6px; box-shadow: none;
}
.compare-page .canvas-top-controls .views button { padding: 4px 9px; min-height: 26px; font-size: 10px; }
.compare-page .canvas-display-tools {
  grid-area: toggles; display: flex; align-items: center; justify-content: flex-start;
  width: auto; overflow: visible;
}
.compare-page .canvas-display-tools .tools {
  display: flex; flex-direction: row; align-items: center; justify-content: flex-start;
  flex-wrap: nowrap; gap: 6px; width: auto; min-width: 0; margin: 0; padding: 0;
  border: 0; border-radius: 0; background: none; box-shadow: none;
  font-size: 10px; color: var(--ink); overflow: visible;
}
.compare-page .canvas-display-tools .tools > label {
  display: flex; align-items: center; gap: 3px; min-height: 26px; flex: none; white-space: nowrap;
}
.compare-page .canvas-display-tools .tools input { width: 13px; height: 13px; margin: 0; }
.compare-page .canvas-display-tools #layer-swap {
  border: 0; background: none; color: var(--green); padding: 4px 2px;
  min-height: 26px; font-size: 10px; white-space: nowrap; flex: none;
}
.compare-page .scene-controls, .compare-page .position-controls, .compare-page .zoom-controls {
  display: flex; align-items: center; width: auto; max-width: none; min-width: 0;
  padding: 0; margin: 0; border: 0; background: none; box-shadow: none;
}
.compare-page .scene-controls { grid-area: scene; gap: 5px; white-space: nowrap; }
.compare-page .scene-select-control {
  display: flex; align-items: center; gap: 3px; font-size: 9px; color: var(--ink);
}
.compare-page #scene-select { width: 86px; max-width: none; min-height: 26px; padding: 3px 4px; font-size: 10px; }
.compare-page .light-control {
  display: flex; align-items: center; gap: 3px; margin: 0; font-size: 9px; color: var(--ink);
}
.compare-page .light-control input { width: 48px; min-width: 0; flex: none; margin: 0; }
.compare-page .light-control output { width: 29px; font-size: 9px; color: var(--ink); }
.compare-page .position-controls { grid-area: position; }
.compare-page .position-controls .control-caption, .compare-page .offset-control { display: none; }
.compare-page .position-buttons { display: flex; gap: 2px; white-space: nowrap; }
.compare-page .position-buttons button {
  display: flex; flex-direction: row; align-items: center; justify-content: center;
  gap: 2px; min-height: 26px; padding: 4px 5px; border: 1px solid var(--line);
  border-radius: 5px; background: var(--surface2); color: var(--ink); font-size: 9px; line-height: 1;
}
.compare-page .position-buttons button span { font-size: 9px; white-space: nowrap; }
.compare-page .position-buttons button.active::before { content: '✓'; color: var(--green); font-weight: 700; }
.compare-page .zoom-controls { grid-area: zoom; justify-self: end; }
.compare-page .zoom-controls .control-caption, .compare-page .zoom-actions { display: none; }
.compare-page .zoom-row { display: flex; align-items: center; gap: 3px; white-space: nowrap; }
.compare-page .zoom-row button { width: 22px; height: 26px; font-size: 15px; padding: 0; }
.compare-page #zoom { width: 50px; min-width: 0; flex: none; }
.compare-page #zoom-value { width: 32px; font-size: 10px; color: var(--ink); font-weight: 800; opacity: 1; }
.compare-page .canvas-share {
  grid-area: share; position: relative; display: grid; place-items: center;
  width: 29px; height: 28px; padding: 0; margin: 0; border: 1px solid var(--line);
  border-radius: 5px; background: var(--surface2); color: var(--ink); line-height: 1;
}
.compare-page .canvas-share::before { content: none; }
.compare-page .canvas-share .share-icon {
  width: 18px; height: 18px; min-height: 0; fill: none; stroke: currentColor;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.compare-page .canvas-share::after {
  content: 'Share'; position: absolute; right: 0; top: calc(100% + 5px); z-index: 10;
  padding: 3px 6px; border: 1px solid #1f2523; border-radius: 4px;
  background: #fff; color: #111; font: 600 10px/1.1 sans-serif;
  white-space: nowrap; opacity: 0; pointer-events: none;
}
.compare-page .canvas-share:hover::after, .compare-page .canvas-share:focus-visible::after { opacity: 1; }
.compare-page .stage-area { position: relative; flex: 1; min-height: 0; width: 100%; overflow: hidden; }
.compare-page .square-canvas .stage-scroll { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; touch-action: auto; }
.compare-page .square-canvas #stage { width: 100%; height: 100%; display: block; min-height: 0; max-width: none; image-rendering: auto; shape-rendering: geometricPrecision; }
.compare-page .square-canvas #stage image { image-rendering: auto; filter: saturate(1.08) contrast(1.04) brightness(var(--vehicle-light, 1.1)); }
.compare-page .canvas-meta { position: absolute; top: 10px; left: 16px; z-index: 3; display: grid; gap: 4px; width: max-content; max-width: calc(100% - 32px); }
.compare-page .square-canvas .layer-status {
  position: static; inset: auto; display: flex; align-items: center; width: 100%;
  height: 24px; margin: 0; padding: 0 7px; border: 1px solid var(--line); border-radius: 6px;
  background: var(--bg); color: var(--ink); font-size: 9px; line-height: 1;
  font-weight: 700; white-space: nowrap; opacity: 1; pointer-events: none; text-shadow: none;
}
.compare-page .stage-units.units {
  position: static; inset: auto; display: flex; align-items: center; justify-content: space-between;
  gap: 4px; width: 100%; height: 24px; margin: 0; padding: 0 6px;
  border: 1px solid var(--line); border-radius: 6px; background: var(--bg); color: var(--ink);
}
.compare-page .stage-units.units label { display: block; min-height: 0; font-size: 8px; font-weight: 700; letter-spacing: .6px; white-space: nowrap; color: var(--ink); }
.compare-page .stage-units.units select { width: 102px; max-width: 110px; min-width: 0; height: 22px; min-height: 0; padding: 0 4px; border: 0; background: transparent; color: var(--ink); font-size: 10px; }
.compare-page .square-canvas .stage-heading { position: absolute; inset: 10px 16px auto auto; display: block; z-index: 2; font-size: 9px; font-weight: 700; color: var(--canvas-ink); opacity: 1; pointer-events: none; }
.compare-page .canvas-footer { position: absolute; inset: auto 16px 10px 16px; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; color: var(--canvas-ink); font-size: 9px; pointer-events: none; }

/* Respond to the stage width rather than the whole page width. */
@container comparison-canvas (max-width: 1150px) {
  .compare-page .canvas-top-controls {
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    grid-template-areas: "views toggles toggles share" "scene position zoom zoom";
    grid-template-rows: 32px 28px; gap: 4px 6px;
  }
}
@container comparison-canvas (max-width: 650px) {
  .compare-page .canvas-top-controls {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    grid-template-areas: "views views views share" "toggles toggles toggles toggles" "scene scene zoom zoom" "position position position position";
    grid-template-rows: repeat(4, 28px); padding: 4px; gap: 3px 4px;
  }
  .compare-page .canvas-top-controls .views { width: 100%; padding: 1px; }
  .compare-page .canvas-top-controls .views button { flex: 1; padding: 4px 3px; min-height: 24px; }
  .compare-page .canvas-display-tools .tools { gap: 8px; font-size: 10px; }
  .compare-page .canvas-display-tools #layer-swap { font-size: 10px; }
  .compare-page .scene-controls { gap: 4px; }
  .compare-page .scene-select-control, .compare-page .light-control { font-size: 8px; }
  .compare-page #scene-select { width: 76px; font-size: 9px; }
  .compare-page .light-control input { width: 36px; }
  .compare-page .light-control output { width: 25px; font-size: 8px; }
  .compare-page #zoom { width: 40px; }
  .compare-page .position-buttons { width: 100%; }
  .compare-page .position-controls { width: 100%; }
  .compare-page .position-buttons button { flex: 1; padding: 4px 3px; }
  .compare-page .canvas-share { width: 27px; height: 26px; }
}
@container comparison-canvas (max-width: 350px) {
  .compare-page .scene-select-control, .compare-page .light-control { gap: 2px; }
  .compare-page #scene-select { width: 67px; }
  .compare-page .light-control input { width: 25px; }
  .compare-page #zoom { width: 26px; }
  .compare-page .zoom-row { gap: 2px; }
}
@media (max-width: 1180px) and (min-width: 761px) { .compare-page .workspace { --sidebar-width: 250px; } }
@media (max-width: 760px) {
  .compare-page .workspace { --workspace-height: auto; --canvas-width: calc(100vw - 18px); --canvas-edge: var(--canvas-width); width: 100%; height: auto; display: flex; }
  .compare-page .drawing.square-canvas { width: var(--canvas-width); height: var(--canvas-width); aspect-ratio: 1; margin: 0; }
  .compare-page .canvas-meta { top: 8px; left: 8px; max-width: calc(100% - 16px); }
  .compare-page .square-canvas .stage-heading { top: 8px; right: 8px; font-size: 8px; }
  .compare-page .canvas-footer { left: 8px; bottom: 8px; font-size: 8px; }
}

/* Broad light pools and angled falloff give each scene showroom depth. */
.compare-page .drawing.square-canvas {
 --canvas-ink: #f3ecff;
 --scene-base: #171a27;
 --scene-pool: #444466;
 --scene-light: 177, 151, 255;
 --scene-fill: 109, 173, 232;
 background: var(--scene-base);
}
.compare-page .drawing.square-canvas[data-scene=aurora] {
 --canvas-ink: #e2fff5; --scene-base: #101d2c; --scene-pool: #254e51;
 --scene-light: 134, 235, 209; --scene-fill: 125, 159, 237;
}
.compare-page .drawing.square-canvas[data-scene=ember] {
 --canvas-ink: #fff1e5; --scene-base: #1d1c24; --scene-pool: #554031;
 --scene-light: 249, 186, 133; --scene-fill: 203, 140, 143;
}
.compare-page .drawing.square-canvas[data-scene=studio] {
 --canvas-ink: #eef3ff; --scene-base: #131923; --scene-pool: #394555;
 --scene-light: 207, 224, 249; --scene-fill: 132, 166, 211;
}
.compare-page .stage-area {
 background:
  radial-gradient(ellipse at 24% 5%, rgba(var(--scene-light), .24), transparent 56%),
  radial-gradient(ellipse at 91% 43%, rgba(var(--scene-fill), .16), transparent 53%),
  radial-gradient(ellipse at 52% 74%, rgba(var(--scene-light), .12), transparent 52%),
  linear-gradient(124deg, transparent 18%, rgba(var(--scene-light), .06) 36%, transparent 56%),
  radial-gradient(ellipse at 50% 39%, var(--scene-pool), var(--scene-base) 90%);
 box-shadow: inset 0 -45px 80px -50px rgba(0,0,0,.45);
}
.compare-page .creator-note {
 display: flex; align-items: center; gap: 12px;
 max-width: 1380px; margin: 14px auto 0; padding: 12px 16px;
 border: 1px solid var(--line); border-radius: 10px;
 background: var(--bg); color: var(--muted);
 font-size: 12px; line-height: 1.65;
}
.compare-page .creator-note p { margin: 0; }
.compare-page .creator-note strong { color: var(--ink); font-weight: 600; }
.compare-page .creator-mark { color: var(--green); font-size: 20px; flex: none; }
@media (max-width: 760px) {
 .compare-page .creator-note { margin-top: 12px; padding: 10px 12px; font-size: 11px; }
}

.compare-page .randomize-vehicles {
 display: flex; align-items: center; justify-content: center; gap: 9px;
 width: 100%; min-height: 40px; flex: none; margin: 6px 0 0;
 padding: 10px 12px; border: 1px solid var(--green); border-radius: 8px;
 background: var(--surface2); color: var(--green); font-size: 12px; font-weight: 700;
 cursor: pointer;
}
.compare-page .randomize-vehicles:hover { background: var(--green); color: var(--bg); }
.compare-page .randomize-vehicles:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.compare-page .randomize-vehicles svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.compare-page .drawing.square-canvas[data-scene=lagoon] {
 --canvas-ink: #e6fff9; --scene-base: #102228; --scene-pool: #245b58;
 --scene-light: 131, 243, 213; --scene-fill: 115, 185, 233;
}
.compare-page .drawing.square-canvas[data-scene=ocean] {
 --canvas-ink: #e6f4ff; --scene-base: #101a30; --scene-pool: #284973;
 --scene-light: 121, 178, 255; --scene-fill: 118, 218, 241;
}
.compare-page .drawing.square-canvas[data-scene=rose] {
 --canvas-ink: #ffedf7; --scene-base: #251727; --scene-pool: #643b5a;
 --scene-light: 249, 169, 215; --scene-fill: 174, 141, 236;
}
.compare-page .drawing.square-canvas[data-scene=sunset] {
 --canvas-ink: #fff0ec; --scene-base: #261c2d; --scene-pool: #704744;
 --scene-light: 255, 187, 139; --scene-fill: 202, 134, 243;
}
.compare-page .drawing.square-canvas[data-scene=forest] {
 --canvas-ink: #edffef; --scene-base: #15241f; --scene-pool: #3d5945;
 --scene-light: 184, 229, 166; --scene-fill: 100, 193, 181;
}
.compare-page .drawing.square-canvas[data-scene=ice] {
 --canvas-ink: #eefaff; --scene-base: #152431; --scene-pool: #486573;
 --scene-light: 198, 232, 244; --scene-fill: 148, 177, 235;
}

.compare-page .spacing-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--muted);width:100%}.compare-page .spacing-range{display:flex;align-items:center;gap:6px;flex:1;min-width:140px}.compare-page .spacing-range input{width:100%;min-width:70px;accent-color:#af92e9}.compare-page .spacing-control output{min-width:32px;font-variant-numeric:tabular-nums}.compare-page .spacing-control button{padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);cursor:pointer}.compare-page .spacing-control:has(input:disabled){opacity:.5}

/* Each hit area owns its space: spacing must never cover the Overlay label. */
.compare-page .canvas-top-controls {
 grid-template-columns: auto minmax(0,1fr) auto auto;
 grid-template-areas: "views toggles zoom share" "scene position position position";
 grid-template-rows: auto auto; gap: 8px; padding: 7px 9px;
}
.compare-page .canvas-display-tools .tools { flex-wrap: wrap; gap: 5px 9px; }
.compare-page .canvas-display-tools .tools > label {
 position: relative; cursor: pointer; padding: 4px 6px; min-height: 30px;
 border-radius: 6px; touch-action: manipulation;
}
.compare-page .canvas-display-tools .tools > label:has(#overlay) {
 border: 1px solid var(--line); background: var(--surface2);
}
.compare-page .canvas-display-tools .tools input { width: 16px; height: 16px; flex: none; }
.compare-page .position-controls { flex-wrap: wrap; gap: 5px 10px; }
.compare-page .position-buttons { flex: 1 0 auto; width: auto; }
.compare-page .position-buttons button { min-height: 30px; }
.compare-page .spacing-control { flex: 1 1 220px; width: auto; margin: 0; gap: 5px; font-size: 10px; }
.compare-page .spacing-range { min-width: 90px; }
.compare-page .spacing-control button { min-height: 28px; padding: 4px 7px; }
.compare-page .spacing-control output { min-width: 26px; }
.compare-page .scene-controls, .compare-page .zoom-controls { align-self: start; }
@container comparison-canvas (max-width: 850px) {
 .compare-page .canvas-top-controls {
  grid-template-columns: minmax(0,1fr) auto;
  grid-template-areas: "views share" "toggles toggles" "scene zoom" "position position";
  grid-template-rows: auto auto auto auto; gap: 5px 7px;
 }
 .compare-page .canvas-top-controls .views { width: 100%; }
 .compare-page .canvas-top-controls .views button { flex: 1; }
 .compare-page .position-controls, .compare-page .position-buttons { width: 100%; }
 .compare-page .position-buttons button { flex: 1; }
 .compare-page .spacing-control { flex-basis: 100%; }
}
