/* Portfolio presentation shared by the homepage and location directory. */
.scene-top { align-items:flex-start; }
.scene-label.ownership-label { padding:9px 13px; border:1px solid #ffffff30; border-radius:5px; background:rgba(15,28,23,.72); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); color:#fff; font-size:11px; font-weight:700; letter-spacing:.11em; line-height:1.5; box-shadow:0 3px 14px #0000001c; }
.ownership-label .status-dot { width:7px; height:7px; box-shadow:0 0 0 4px #a3f48618,0 0 10px #a3f48670; }
@media(max-width:600px) { .scene-label.ownership-label { padding:8px 10px; gap:8px; font-size:9px; letter-spacing:.07em; } }
/* Native desktop cursor: no tracking layer, latency, or touch interference. */
@media (hover:hover) and (pointer:fine) {
  html, body { cursor:url('assets/chargeline-cursor-glow.png') 26 21, auto; }
  a, button, summary, select, label, [role="button"], input[type="checkbox"], input[type="radio"], input[type="submit"] { cursor:url('assets/chargeline-cursor-glow.png') 26 21, pointer; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, [contenteditable="true"] { cursor:text; }
  button:disabled, input:disabled, select:disabled { cursor:not-allowed; }
}
@media (forced-colors:active) { html, body { cursor:auto; } a, button, summary, select, label, [role="button"] { cursor:pointer; } }
.network-feature { padding:52px 0; background:#f6f5f0; }
.network-feature-panel { position:relative; isolation:isolate; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; gap:45px; padding:52px 55px; background:linear-gradient(115deg,#123d3c,#1e5750); color:#f3f7ed; border-radius:7px; }
.network-feature .eyebrow { color:#acd9b9; font-size:10px; margin-bottom:20px; }
.network-feature h2 { font-size:clamp(42px,5vw,72px); line-height:1.06; letter-spacing:-.055em; }
.network-feature p { margin-top:22px; color:#bed4cb; font-size:15px; line-height:1.8; }
.network-feature-action { display:flex; flex-direction:column; gap:23px; align-items:flex-start; flex-shrink:0; }
.network-feature .button { background:#c7f4ae; color:#16362a; font-size:13px; padding:21px 25px; gap:40px; }
.network-feature .button:hover { background:#ddffca; box-shadow:0 0 28px #a7f48b28; }
.network-feature-status { display:flex; gap:9px; align-items:center; font-size:10px; color:#c2ddd0; }
.network-feature-status i { width:5px; height:5px; background:#ace693; border-radius:50%; box-shadow:0 0 10px #9ee485; }
.feature-route { position:absolute; inset:0; width:100%; height:100%; z-index:-1; opacity:.35; pointer-events:none; }
.feature-route path { fill:none; stroke:#8cb7a5; stroke-width:1; }
.feature-route .feature-current { stroke:#b8f792; stroke-width:2; stroke-dasharray:12 88; animation:network-flow 8s linear infinite; }
.motion-paused .feature-current { display:none; }
@media(prefers-reduced-motion:reduce) { .feature-current { display:none; } }
@media(max-width:860px) { .network-feature-panel { padding:38px 32px; gap:28px; } .network-feature p { font-size:13px; } .network-feature .button { gap:22px; } }
@media(max-width:600px) { .network-feature { padding:28px 0; } .network-feature-panel { flex-direction:column; align-items:flex-start; padding:34px 26px; gap:33px; } .network-feature h2 { font-size:46px; } .network-feature .eyebrow { font-size:8px; } .network-feature p { font-size:12px; } .network-feature-action { width:100%; gap:16px; } .network-feature .button { width:100%; justify-content:space-between; font-size:12px; padding:19px; } .feature-route { opacity:.18; } }
.hero-intro { grid-template-columns:1fr 310px; }
.hero-intro h1 { font-size:clamp(48px,6.2vw,88px); }
.hero-copy strong { font-weight:500; }
.hero .hero-eyebrow { margin-bottom:30px; color:#a7b9b0; letter-spacing:.12em; }
.hero .hero-intro-refined { display:flex; align-items:flex-end; justify-content:space-between; gap:36px; padding-bottom:38px; }
.hero .hero-intro-refined h1 { font-size:clamp(50px,6.2vw,88px); line-height:1.06; letter-spacing:-.055em; }
.hero .hero-intro-refined h1 span { color:#b7cfc2; }
.hero-network-link { display:inline-flex; align-items:center; gap:25px; padding:0 0 13px; margin-bottom:7px; border-bottom:1px solid #729183; font-size:12px; color:#e6eee6; white-space:nowrap; transition:color .2s,border-color .2s; }
.hero-network-link span { font-size:26px; color:#b7e19f; transition:transform .2s; }
.hero-network-link:hover { color:#bcf398; border-color:#bcf398; }
.hero-network-link:hover span { transform:translate(3px,-3px); }
@media(max-width:1100px) { .hero .hero-intro-refined { align-items:flex-start; flex-direction:column; gap:25px; } .hero-network-link { margin:0; padding-bottom:10px; } }
@media(max-width:600px) { .hero .hero-eyebrow { font-size:8px; margin-bottom:24px; letter-spacing:.08em; } .hero .hero-intro-refined h1 { font-size:clamp(34px,8.8vw,50px); line-height:1.1; } .hero .hero-intro-refined { gap:22px; padding-bottom:28px; } .hero-network-link { font-size:11px; gap:30px; } }
.portfolio-preview { background:#e8eee4; padding:58px 0; border-bottom:1px solid #cfdbce; }
.portfolio-preview-grid { display:grid; grid-template-columns:1fr 1.1fr 1fr; gap:55px; align-items:center; }
.portfolio-preview h2 { font-size:34px; }
.portfolio-preview .eyebrow { color:#42705c; font-size:9px; margin-bottom:16px; }
.portfolio-preview p { font-size:13px; color:#53655b; }
.portfolio-preview .text-link { font-size:12px; margin-top:14px; gap:20px; }
.portfolio-preview-cities { border-top:1px solid #b9ccbb; }
.portfolio-preview-cities a { display:block; padding:16px 0; border-bottom:1px solid #b9ccbb; transition:padding-left .25s; }
.portfolio-preview-cities a:hover { padding-left:8px; }
.portfolio-preview-cities span { font:500 23px var(--display); }
.portfolio-preview-cities small { display:block; color:#50715a; font-size:8px; letter-spacing:.1em; margin-top:5px; }
.statement-copy { font-size:clamp(48px,7vw,104px); }
.process-intro h2 { font-size:clamp(38px,4.2vw,60px); }
.process-intro .button { font-size:12px; gap:20px; }
.site-header nav a[aria-current=page] { color:#b3f19a; }
.site-header nav a[aria-current=page]:after { transform:scaleX(1); }
.network-hero { background:#181f1d; color:#f4f6ef; padding:74px 0 0; overflow:hidden; }
.network-heading { position:relative; isolation:isolate; padding-bottom:54px; }
.network-heading .eyebrow { color:#b5c6b8; }
.network-heading h1 { font-size:clamp(52px,7vw,94px); max-width:800px; }
.network-heading h1 span { color:#a8e88d; }
.network-intro { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-top:32px; }
.network-intro p { color:#bbc8bf; max-width:510px; font-size:15px; }
.network-intro .text-link { flex-shrink:0; color:#e6f1df; border-color:#4f6859; font-size:12px; }
.network-route { position:absolute; top:-45px; right:-120px; width:580px; height:400px; z-index:-1; opacity:.36; }
.network-route path { fill:none; stroke:#7aab86; stroke-width:1; }
.network-route .network-current { stroke:#a7f481; stroke-width:2; stroke-dasharray:14 86; animation:network-flow 7s linear infinite; }
.network-metrics { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #4a5e4e; }
.network-metric { padding:28px 30px 31px 0; }
.network-metric+.network-metric { padding-left:40px; border-left:1px solid #354b3d; }
.network-metric strong { font:500 48px/1 var(--display); letter-spacing:-.05em; }
.network-metric span { display:block; margin-top:12px; color:#b2c5b6; font-size:10px; letter-spacing:.03em; }
.locations-section { padding:80px 0; scroll-margin-top:85px; }
.locations-section + .locations-section { padding-top:0; }
.directory-heading { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:34px; }
.directory-heading h2 { font-size:44px; }
.directory-heading .eyebrow { margin-bottom:17px; color:#4e745b; }
.directory-heading>p { font-size:13px; color:#68736b; max-width:325px; }
.location-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.location-card { border:1px solid #ced7cb; border-radius:7px; background:#fdfdf9; overflow:hidden; scroll-margin-top:108px; transition:box-shadow .3s,border-color .3s; }
.location-card:hover { border-color:#91b68b; box-shadow:0 16px 36px #233d2410; }
.location-visual { position:relative; background:#e3ebdf; min-height:218px; overflow:hidden; padding:23px 26px; isolation:isolate; }
.location-card:nth-child(even) .location-visual { background:#dce9e2; }
.location-visual:after { content:''; position:absolute; width:300px; height:300px; right:-80px; top:-40px; border:1px solid #8caa8733; border-radius:50%; box-shadow:0 0 0 44px #8caa8710,0 0 0 90px #8caa8709; z-index:-1; }
.location-visual-top { display:flex; justify-content:flex-end; align-items:center; min-height:72px; }
.location-status { display:inline-flex; gap:8px; align-items:center; color:#356446; font-size:9px; font-weight:650; letter-spacing:.08em; text-transform:uppercase; }
.location-status:before { content:''; height:5px; width:5px; background:#5d9e57; border-radius:50%; box-shadow:0 0 0 4px #88b87622; }
.stall-row { display:flex; gap:13px; align-items:end; position:absolute; bottom:48px; left:27px; right:27px; }
.stall-row span { position:relative; display:block; height:70px; width:30px; border:1px solid #648b6e; background:linear-gradient(150deg,#f2f7eb 60%,#d0e0c8); border-radius:6px 6px 3px 3px; box-shadow:3px 4px 0 #4f76551c; }
.stall-row span:before { content:''; position:absolute; bottom:6px; left:8px; right:8px; height:2px; background:#6aaa5a; }
.stall-row span:after { content:''; position:absolute; bottom:-10px; left:-5px; right:-5px; height:1px; background:#78957c; }
.location-card:hover .stall-row span:before { animation:stall-glow 1.9s var(--delay,0s) ease-in-out infinite; }
.location-visual-label { position:absolute; bottom:17px; left:27px; font-size:8px; color:#52745b; letter-spacing:.1em; }
.location-body { padding:29px 28px 25px; }
.location-city { font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#65816b; margin-bottom:11px; }
.location-body h3 { font-size:32px; }
.location-facts { margin:27px 0 0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid #d8dfd4; padding-top:19px; gap:15px; }
.location-facts dt { color:#798579; font-size:9px; margin-bottom:7px; }
.location-facts dd { margin:0; color:#34553e; font-size:13px; font-weight:600; }
.location-opening { font-size:10px; color:#718073; border-top:1px solid #e0e6dc; padding-top:18px; margin-top:20px; }
.location-retail { margin-top:23px; }
.location-retail h4 { font-size:9px; letter-spacing:.09em; color:#647968; font-weight:600; text-transform:uppercase; margin:0 0 10px; }
.retailer-list { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0; }
.retailer-list li { border:1px solid #d3dfce; border-radius:3px; padding:7px 10px; font-size:11px; color:#3c5b44; background:#f1f5ed; }
.location-media { padding:0 28px 25px; display:grid; gap:14px; }
.location-media img,.location-media iframe { display:block; width:100%; border:0; border-radius:4px; }
.location-media iframe { aspect-ratio:16/9; }
.pipeline-section { background:#e9eee6; padding:66px 0 75px; border-block:1px solid #d0dccd; }
.pipeline-section summary { padding:0; font-family:var(--display); font-size:29px; letter-spacing:-.04em; }
.pipeline-section summary small { display:block; font:500 9px var(--sans); letter-spacing:.1em; color:#59725e; margin-bottom:14px; }
.pipeline-section summary .pipeline-expand { width:43px; height:43px; border:1px solid #a9bda7; display:grid; place-items:center; border-radius:50%; }
.pipeline-intro { margin:25px 0; font-size:13px; color:#617263; max-width:650px; }
.pipeline-section .pipeline-intro { padding:0; }
.pipeline-section summary>span:first-child { font-size:inherit; transform:none; }
.pipeline-section details { border:0; }
.pipeline-table a:hover { color:#287242; }
.pipeline-table .pipeline-retail { color:#496e4e; margin-top:9px; }
.pipeline-table .mobile-hardware { display:none; }
.pipeline-table { width:100%; border-collapse:collapse; text-align:left; }
.pipeline-table th { font-size:9px; color:#6d8270; font-weight:500; letter-spacing:.06em; text-transform:uppercase; padding:14px 0; border-bottom:1px solid #bccdb7; }
.pipeline-table td { font-size:12px; padding:20px 18px 20px 0; border-bottom:1px solid #cfdccb; color:#49634e; }
.pipeline-table td:first-child { color:#243a29; font-weight:600; }
.pipeline-table small { display:block; color:#798a7a; font-size:10px; font-weight:400; margin-top:5px; }
.pipeline-table .status-tag { color:#6c755c; font-size:10px; background:#dce5d4; padding:5px 8px; border-radius:3px; white-space:nowrap; }
.network-selection { padding:80px 0; }
.selection-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:90px; }
.selection-grid h2 { font-size:49px; }
.selection-grid p { color:#647067; font-size:14px; margin-top:23px; max-width:440px; }
.selection-grid .button { margin-top:27px; font-size:12px; }
.selection-criteria { list-style:none; padding:0; margin:0; }
.selection-criteria li { border-top:1px solid #d1dccd; padding:20px 0; display:grid; grid-template-columns:25px 1fr; gap:15px; }
.selection-criteria strong { font-size:16px; font-weight:500; }
.selection-criteria p { font-size:12px; margin:7px 0 0; }
.criteria-number { color:#76a570; font-size:11px; }
.portfolio-contact { border-top:1px solid #d1dccd; margin-top:65px; padding-top:28px; display:flex; justify-content:space-between; gap:25px; align-items:center; }
.portfolio-contact p { font-size:13px; color:#637068; }
.portfolio-contact .text-link { font-size:12px; }
@keyframes network-flow { to { stroke-dashoffset:-100; } }
@keyframes stall-glow { 50% { background:#a4f485; box-shadow:0 0 11px #8dc572; } }
.motion-paused .network-current { display:none; }
.motion-paused .stall-row span:before { animation:none!important; }
@media(max-width:600px) { .pipeline-table .mobile-hardware { display:block; color:#3d674b; font-size:9px; } .pipeline-table td:first-child { max-width:180px; } }
@media(prefers-reduced-motion:reduce) { .network-current { display:none; } }
@media(max-width:1150px) { .hero-intro { grid-template-columns:1fr 270px; gap:30px; } .portfolio-preview-grid { gap:30px; } .selection-grid { gap:45px; } .stall-row { gap:9px; } }
@media(max-width:860px) { .hero-intro { grid-template-columns:1fr; } .portfolio-preview-grid { grid-template-columns:1fr 1fr; } .portfolio-preview-cities { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:25px; } .network-heading h1 { font-size:65px; } .location-body { padding:24px 20px; } .location-body h3 { font-size:27px; } .location-visual { min-height:190px; } .stall-row { gap:7px; left:20px; right:20px; } .stall-row span { width:23px; height:56px; } .location-visual-label { left:20px; font-size:7px; } .selection-grid h2 { font-size:40px; } }
@media(max-width:600px) { .hero-intro h1 { font-size:clamp(36px,9.6vw,54px); } .portfolio-preview { padding:40px 0; } .portfolio-preview-grid { grid-template-columns:1fr; gap:24px; } .portfolio-preview h2 { font-size:33px; } .portfolio-preview h2 br { display:none; } .portfolio-preview-cities { gap:15px; } .portfolio-preview-cities span { font-size:21px; } .portfolio-preview-cities small { font-size:6px; } .network-hero { padding-top:43px; } .network-heading { padding-bottom:33px; } .network-heading h1 { font-size:49px; } .network-heading .eyebrow { font-size:8px; } .network-intro { display:block; margin-top:24px; } .network-intro p { font-size:13px; } .network-intro .text-link { margin-top:14px; } .network-route { right:-350px; opacity:.2; } .network-metric { padding:22px 10px 23px 0; } .network-metric+.network-metric { padding-left:17px; } .network-metric strong { font-size:33px; } .network-metric span { font-size:8px; max-width:85px; line-height:1.5; } .locations-section { padding:48px 0; } .directory-heading { display:block; } .directory-heading h2 { font-size:36px; } .directory-heading>p { margin-top:17px; font-size:12px; } .location-grid { grid-template-columns:1fr; gap:23px; } .location-visual { min-height:208px; } .stall-row { gap:11px; left:24px; } .stall-row span { width:25px; height:65px; } .location-visual-label { left:24px; } .location-body { padding:25px 24px; } .location-body h3 { font-size:30px; } .pipeline-section { padding:45px 0; } .pipeline-section summary { font-size:25px; gap:16px; } .pipeline-table th:nth-child(2),.pipeline-table td:nth-child(2) { display:none; } .pipeline-table td { padding:18px 8px 18px 0; font-size:11px; } .pipeline-table th { font-size:8px; } .pipeline-table .status-tag { font-size:8px; } .network-selection { padding:52px 0; } .selection-grid { grid-template-columns:1fr; gap:35px; } .selection-grid h2 { font-size:39px; } .portfolio-contact { display:block; margin-top:38px; } .portfolio-contact .text-link { margin-top:17px; } .statement-copy { font-size:clamp(40px,10vw,62px); } }

/* Live Level 2 locations share the portfolio cards with compact wall-connector symbols. */
.stall-row.wall-connectors { gap:10px; }
.wall-connectors span { height:52px; border-radius:8px 8px 12px 12px; }
.wall-connectors span:before { top:8px; bottom:auto; }
.wall-connectors span:after { bottom:-12px; left:50%; right:auto; width:12px; height:18px; border:1px solid #78957c; border-top:0; border-radius:0 0 7px 7px; background:transparent; }
@media(max-width:600px) {
  .network-metrics { grid-template-columns:repeat(2,1fr); }
  .network-metric:nth-child(3) { padding-left:0; border-left:0; }
  .network-metric:nth-child(n+3) { border-top:1px solid #354b3d; }
  .wall-connectors span { height:48px; }
}

/* A green status light serves as the Live heading's period. */
.live-period { width:.18em; height:.18em; margin-left:.08em; vertical-align:.035em; animation:live-period-pulse 2.4s ease-in-out infinite; }
@keyframes live-period-pulse {
  0%,100% { transform:scale(1); box-shadow:0 0 0 4px #a3f48615; }
  50% { transform:scale(1.14); box-shadow:0 0 0 7px #a3f48625,0 0 12px #a3f48650; }
}
@media(prefers-reduced-motion:reduce) { .live-period { animation:none; } }
.motion-paused .live-period { animation:none; }

/* Soft status pulses on the two operating locations. */
#live .location-status::before { animation:live-status-pulse 2.8s ease-in-out infinite; }
@keyframes live-status-pulse {
  0%,100% { transform:scale(1); box-shadow:0 0 0 4px #88b87622; }
  50% { transform:scale(1.16); box-shadow:0 0 0 7px #88b87630,0 0 9px #88b87645; }
}
@media(prefers-reduced-motion:reduce) { #live .location-status::before { animation:none; } }
.motion-paused #live .location-status::before { animation:none; }

/* Stage-specific label colors keep operating sites distinct from planned projects. */
#under-construction .location-status { color:#86540a; }
#under-construction .location-status::before { background:#c58a26; box-shadow:0 0 0 4px #c58a2622; }
#under-development .location-status { color:#2d608c; }
#under-development .location-status::before { background:#518bbe; box-shadow:0 0 0 4px #518bbe22; }

@media(max-width:600px) { .location-visual-top { min-height:64px; } }
