/* Campus v11: original rendered terrain + four-stage project models.
   Geometry and semantic owner colors remain independent of the artwork. */
.map.town-map.company-campus {
  background-color:#70876b;
  background-image:linear-gradient(125deg,#8ca17c48,#31492d18),repeating-linear-gradient(0deg,transparent 0 47px,#c2d2ac16 48px,transparent 49px),repeating-linear-gradient(90deg,transparent 0 95px,#c2d2ac16 96px,transparent 97px);
  background-size:auto,96px 48px,96px 48px;
  box-shadow:inset 0 0 120px #adb8a85c;
}
.company-campus::before {display:none}
.company-campus .road-verge {stroke:#756c50;stroke-width:68}
.company-campus .road-gold {stroke:#fff2d4;stroke-width:62}
.company-campus .road-asphalt {stroke:url(#campus-paving);stroke-width:52}
.company-campus .road-highlight {stroke:#426e92;stroke-width:4;stroke-dasharray:7 14}
#app .company-campus .street-stop::before,#app .company-campus .street-stop:nth-of-type(even)::before {background:linear-gradient(145deg,#fffdf0,#eee0c2);border-color:#fffdf2;box-shadow:0 3px 0 #85734e,0 5px 7px #493a3040}
#app .company-campus .street-stop {color:#415d63}
#app .company-campus .street-stop.selected::before {background:#d5e9f4;outline-color:#477ca0}
#app .company-campus .street-stop .street-symbol {text-shadow:0 1px #fff}
.company-campus .street-transfer {background:#edf2ec;color:#426574;border:1px solid #a2b6ad}
.company-campus .street-lot-ground path {fill:#ebece3;stroke-dasharray:none;stroke:#a5b6b1;stroke-width:2}
.company-campus .campus-project {width:calc(120px * var(--town-scale));height:calc(96px * var(--town-scale));}
.campus-project[data-project-kind="professional"] {--project-ink:#375c87;--project-tint:#e0edf9}
.campus-project[data-project-kind="social"] {--project-ink:#326d61;--project-tint:#e0f1e8}
.campus-project[data-project-kind="mixed"] {--project-ink:#9a602d;--project-tint:#fff0da}
.company-campus .campus-type-mark {position:absolute;left:0;top:calc(8px * var(--town-scale));display:grid;place-items:center;width:calc(18px * var(--town-scale));height:calc(18px * var(--town-scale));border:1px solid #fff;border-radius:5px;background:var(--project-tint,#edf0eb);color:var(--project-ink,#415d63);font:750 calc(10px * var(--town-scale))/1 system-ui;box-shadow:0 2px 3px #24324820;pointer-events:none}
.company-campus .campus-lot-link {position:absolute;left:50%;top:100%;height:calc(74px * var(--town-scale));border-left:calc(2px * var(--town-scale)) dotted #849b90;pointer-events:none;z-index:-2}
.company-campus .campus-project[data-project-side="below"] .campus-lot-link {top:calc(-12px * var(--town-scale));height:calc(12px * var(--town-scale))}
.company-campus .selected-project .campus-lot-link {border-color:#3a6e96;border-left-style:solid}
#app .company-campus .campus-inspect {position:absolute;z-index:3;inset:0 auto auto 0;width:100%;height:calc(135px * var(--town-scale));min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:10px;background:transparent;box-shadow:none;pointer-events:auto;cursor:pointer;touch-action:pan-x pan-y pinch-zoom}
#app .company-campus [data-project-side="above"] .campus-inspect {width:calc(220px * var(--town-scale));height:100%}
#app .company-campus [data-project-side="above"][data-facing="backward"] .campus-inspect {left:calc(-100px * var(--town-scale))}
#app .company-campus .campus-inspect:hover,#app .company-campus .campus-inspect:focus-visible {background:#ffffff0a;outline:2px solid #537d96;outline-offset:3px}
.company-campus .selected-project>.campus-sprite {filter:drop-shadow(0 3px 4px #3d729c55)}
.company-campus .street-lot.claimed .street-lot-ground path {fill:#e1e9eb;stroke:var(--owner-color);stroke-width:4}
.company-campus .street-lot-ground {border-color:#a5b6b1}
.company-campus .street-lot.claimed .street-lot-ground {border-color:var(--owner-color)}
.company-campus .street-lot-sign {top:91%;left:0;width:100%;height:calc(37px * var(--town-scale));padding:calc(3px * var(--town-scale)) calc(5px * var(--town-scale));border:1px solid #c8bda5;border-radius:6px;background:linear-gradient(#fffdf5,#f4eddc);color:#243248;text-shadow:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:750;box-shadow:0 2px 0 #8d806c55,0 4px 8px #24324818;font-size:calc(12px * var(--town-scale));line-height:1.2}
.company-campus .street-lot-sign small {display:none}
.company-campus .street-lot-sign b {font-size:calc(10px * var(--town-scale));margin-top:calc(1px * var(--town-scale));color:#426573;font-weight:650}
.company-campus .claimed .street-lot-sign {box-shadow:inset 0 -3px 0 var(--owner-color),0 3px 9px #24324812}
.company-campus .campus-project[data-project-side="above"] .street-lot-sign {top:33%;left:100%;width:calc(100px * var(--town-scale));}
.company-campus .campus-project[data-project-side="above"][data-facing="backward"] .street-lot-sign {left:auto;right:100%;}
.company-campus .street-flag {right:5%;top:36%;padding:4px;border-radius:3px;box-shadow:none}
.company-campus .street-district {width:calc(130px * var(--town-scale));height:calc(100px * var(--town-scale));display:block;border:0;}
.company-campus .street-district-label {width:100%;height:100%;padding:calc(9px * var(--town-scale));border:1px solid #cbd4d1;border-top:calc(3px * var(--town-scale)) solid #475b6c;border-radius:calc(10px * var(--town-scale));background:#fffef9ef;color:#243248;text-shadow:none;box-shadow:0 3px 10px #24324812;}
.company-campus .street-district-label small {font-size:calc(9px * var(--town-scale));letter-spacing:1px;color:#75887e}
.company-campus .street-district-label strong {font:800 calc(18px * var(--town-scale))/1.3 system-ui;margin:calc(6px * var(--town-scale)) 0;letter-spacing:.04em}
.company-campus .street-district-label span {display:block;font-size:calc(10px * var(--town-scale));font-weight:650}
.company-campus .street-district-label em {display:block;margin-top:calc(5px * var(--town-scale));font:normal calc(9px * var(--town-scale))/1.3 system-ui;color:#637e7b}
.street-overview {background:#c7d4c1;border-color:#809b91}
.street-overview svg {background:#e3e6da}
.street-overview small {color:#36595c;background:#e9eddf;font-size:10px}
.street-art-active #map-viewport {background:#dfded5}
.company-campus .street-tree-cluster {width:calc(100px * var(--town-scale));height:calc(100px * var(--town-scale))}
.company-campus .street-park {width:calc(130px * var(--town-scale));height:calc(100px * var(--town-scale))}
.company-campus .campus-neighborhood {position:absolute;width:calc(130px * var(--town-scale));height:calc(100px * var(--town-scale));pointer-events:none}
.company-campus .campus-neighborhood img {filter:drop-shadow(0 3px 2px #24324825)}
.company-campus .campus-quarter {position:absolute;width:calc(1480px * var(--town-scale));height:calc(660px * var(--town-scale));border:1px solid #65795b;border-radius:calc(28px * var(--town-scale));background-color:var(--quarter-floor);box-shadow:0 5px 0 #435c4666,0 8px 18px #2f493736;pointer-events:none;overflow:hidden}
.company-campus .campus-ground {position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}
.campus-quarter-0 {--quarter-floor:#e4eade;--quarter-accent:#577b6b}
.campus-quarter-1 {--quarter-floor:#f0e5d0;--quarter-accent:#ab7747}
.campus-quarter-2 {--quarter-floor:#dee8ef;--quarter-accent:#597f99}
.campus-quarter-3 {--quarter-floor:#eadfd4;--quarter-accent:#9c7156}
.campus-quarter-4 {--quarter-floor:#e4e2ef;--quarter-accent:#7a7198}
.campus-quarter-5 {--quarter-floor:#dfe9da;--quarter-accent:#6b895a}
.campus-quarter>span {position:absolute;left:calc(8px * var(--town-scale));top:calc(12px * var(--town-scale));display:flex;align-items:center;gap:calc(4px * var(--town-scale));width:calc(140px * var(--town-scale));height:calc(32px * var(--town-scale));padding:calc(5px * var(--town-scale));border:1px solid #c3bba3;border-radius:4px 4px 8px 8px;background:#fffaf0ed;box-shadow:0 3px 0 #6d675c40;font-size:calc(14px * var(--town-scale));font-weight:800;white-space:nowrap;color:var(--quarter-accent)}
.campus-quarter>span>b {display:inline-grid;place-items:center;flex:none;width:calc(20px * var(--town-scale));height:calc(20px * var(--town-scale));border-radius:50%;background:var(--quarter-accent);color:#fff8e8;font:750 calc(11px * var(--town-scale))/1 system-ui;vertical-align:middle}
.campus-quarter>span small {display:none}

/* Larger inspection art exposes actual stage silhouettes without inflating
   map hit targets or implying an unowned project is already upgraded. */
.project-exhibit {--exhibit-accent:#35669a;--exhibit-wash:#e8eef3;margin:14px 0 18px;border:1px solid #d2d9dc;border-radius:14px;overflow:hidden;background:#fffdf7;color:#243248}
.project-exhibit[data-exhibit-kind="social"] {--exhibit-accent:#557747;--exhibit-wash:#e9efdf}
.project-exhibit[data-exhibit-kind="mixed"] {--exhibit-accent:#b65a3e;--exhibit-wash:#f5e7dd}
.project-exhibit-hero {display:grid;grid-template-columns:minmax(110px,44%) minmax(0,1fr);gap:10px;align-items:center;padding:10px 16px 6px;background:radial-gradient(ellipse at 25% 70%,#fffdf9 0,var(--exhibit-wash) 80%);border-bottom:1px solid #d2d9dc}
.project-exhibit-hero>img {display:block;width:100%;height:164px;object-fit:contain;filter:drop-shadow(0 7px 5px #263c4422)}
.project-exhibit-hero>div {min-width:0}
.project-exhibit-hero small {display:block;font:650 10px/1.5 system-ui;letter-spacing:.09em;color:#647078}
.project-exhibit-hero strong {display:block;margin:5px 0;font-size:22px;line-height:1.25;color:var(--exhibit-accent)}
.project-exhibit-hero span {display:inline-block;border:1px solid #fff;border-radius:5px;padding:3px 7px;background:#ffffffa6;font-size:12px;font-weight:650}
.project-exhibit-hero p {margin:10px 0 0;font-size:11px;line-height:1.6;color:#576571}
.project-growth {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:0;padding:8px;list-style:none}
.project-growth li {display:grid;justify-items:center;gap:3px;min-width:0;padding:3px 1px 6px;border:1px solid transparent;border-radius:8px;font-size:11px;color:#65717b}
.project-growth img {display:block;width:100%;height:60px;object-fit:contain}
.project-growth li[aria-current="step"] {border-color:var(--exhibit-accent);background:var(--exhibit-wash);color:var(--exhibit-accent);font-weight:750}
@media(max-width:600px) {
  .project-exhibit-hero {padding:8px 10px;gap:8px}
  .project-exhibit-hero>img {height:132px}
  .project-exhibit-hero strong {font-size:19px}
  .project-growth img {height:48px}
}
