:root{--page-title-display:none;}/* Start custom CSS *//* Good Neighborhoods (page 71) — Option D, chosen 2026-10-29. Copied from the page 510 test CSS (Options B/C removed).
   Ring lives in a .ve-gn-box viewing box with its own results bar and card grid. Cards are rendered by the "GN projects" block in Custom Code snippet 427.
   States: body.gn-filtering while a chapter is chosen; .is-active on the chosen chapter links. No motion on filter. */

#projects{scroll-margin-top:96px}
@media (prefers-reduced-motion:no-preference){html:has(#projects){scroll-behavior:smooth}}

/* ---------- Option A · compact ring (GN-02 geometry) ---------- */
.ve-contents-board{aspect-ratio:1920/984;container-type:inline-size}
.ve-contents-board > *{position:absolute;margin:0}
.ve-contents-board > .ve-cb-art{left:14.17%;top:8.84%;width:71.67%;max-width:none;z-index:0}
.ve-contents-board .ve-cb-centre{left:36%;top:42%;width:28%;height:17%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:4px;padding:0;border-top:1px solid var(--e-gv-bbb9c52,#A85D3F);border-bottom:1px solid var(--e-gv-bbb9c52,#A85D3F)}
.ve-contents-board .ve-cb-centre h2,.ve-contents-board .ve-cb-centre h3{white-space:nowrap;font-size:max(20px,2.6cqw);line-height:1.15}
.ve-contents-board .ve-cb-centre p{font-size:max(13px,1.5cqw);line-height:1.3}
.ve-contents-board .ve-cb-item{text-decoration:none;color:inherit;z-index:1;padding:0;cursor:pointer}
.ve-contents-board .ve-cb-item:nth-of-type(1){left:20.80%;top:18.19%;width:17.45%}
.ve-contents-board .ve-cb-item:nth-of-type(2){left:13.14%;top:33.74%;width:19.53%}
.ve-contents-board .ve-cb-item:nth-of-type(3){left:24.91%;top:61.89%;width:19.43%}
.ve-contents-board .ve-cb-item:nth-of-type(4){left:57.62%;top:61.18%;width:19.06%}
.ve-contents-board .ve-cb-item:nth-of-type(5){left:65.90%;top:32.22%;width:19.95%}
.ve-contents-board .ve-cb-item:nth-of-type(6){left:50.53%;top:10.67%;width:16.82%}
.ve-contents-board .ve-cb-thumb{max-width:none;width:100%;transition:opacity .2s}
.ve-contents-board .ve-cb-label{width:max(110px,11cqw);z-index:2;text-align:left;padding:0;position:absolute}
.ve-contents-board .ve-cb-item:nth-of-type(1) .ve-cb-label{left:-6%;top:-34%}
.ve-contents-board .ve-cb-item:nth-of-type(2) .ve-cb-label{left:6.93%;top:85.99%}
.ve-contents-board .ve-cb-item:nth-of-type(3) .ve-cb-label{left:-10.19%;top:68.91%}
.ve-contents-board .ve-cb-item:nth-of-type(4) .ve-cb-label{left:-14.75%;top:63.93%}
.ve-contents-board .ve-cb-item:nth-of-type(5) .ve-cb-label{left:55.81%;top:77.41%}
.ve-contents-board .ve-cb-item:nth-of-type(6) .ve-cb-label{left:14.86%;top:-30%}
.ve-contents-board .ve-cb-label p{margin:0;white-space:nowrap}
.ve-contents-board .ve-cb-label p:nth-child(1){font-size:max(11px,1.25cqw);line-height:1.1}
.ve-contents-board .ve-cb-label p:nth-child(2){font-size:max(15px,1.75cqw);line-height:1.3}
.ve-contents-board .ve-cb-label p:nth-child(3){font-size:max(13px,1.35cqw);line-height:1.35} /* VEI-42: project types read bigger */
/* Ring labels sit on a soft plate so they read over the trees */
.ve-contents-board .ve-cb-label{background:rgba(250,247,241,.94);padding:6px 10px !important;border-radius:8px;width:auto !important;min-width:max(110px,11cqw)}
#projects .ve-contents-board .ve-cb-label{background:rgba(255,255,255,.94)}
/* Filtered: everything stays fully opaque. Other chapters go quiet (greyscale + grey labels); the chosen one gets a loden label */
.ve-contents-board .ve-cb-thumb{transition:filter .2s}
.gn-filtering .ve-contents-board .ve-cb-item:not(.is-active) .ve-cb-thumb{filter:grayscale(1) contrast(.85) brightness(1.06)}
.gn-filtering .ve-contents-board .ve-cb-item:not(.is-active) .ve-cb-label p{color:var(--e-gv-80791ce,#5B6770) !important}
.ve-contents-board .ve-cb-item.is-active .ve-cb-label,#projects .ve-contents-board .ve-cb-item.is-active .ve-cb-label{background:var(--e-gv-6c5fbd1,#3B4632)}
.ve-contents-board .ve-cb-item.is-active .ve-cb-label p{color:var(--e-gv-b2998c2,#FFFDF8) !important}
.ve-contents-board .ve-cb-item.is-active .ve-cb-label p:nth-child(1){color:var(--e-gv-63db9c0,#E5B9A4) !important}
.ve-contents-board .ve-cb-item:hover .ve-cb-thumb{filter:none}
/* The ring of trees goes black and white with the unchosen chapters */
.ve-contents-board > .ve-cb-art{transition:filter .2s}
.gn-filtering .ve-contents-board > .ve-cb-art{filter:grayscale(1) contrast(.9) brightness(1.04)}
.ve-contents-board .ve-cb-item:focus-visible{outline:2px solid var(--e-gv-6c5fbd1,#3B4632);outline-offset:4px}
/* "Show all" link the script adds under the centre status */
.gn-centre-clear{display:none;margin:0;padding:0;border:0;background:none;cursor:pointer;font:inherit;font-weight:500;color:var(--e-gv-bbb9c52,#A85D3F);text-decoration:underline;text-underline-offset:3px}
.gn-filtering .gn-centre-clear{display:inline}
.gn-centre-dot{margin:0 .45em;color:var(--e-gv-80791ce,#5B6770)}
@media (max-width:767px){
  .ve-contents-board{aspect-ratio:auto;display:grid !important;grid-template-columns:1fr 1fr;gap:20px 16px}
  .ve-contents-board > *{position:static !important;width:auto !important}
  .ve-contents-board > .ve-cb-art{display:none !important}
  .ve-contents-board .ve-cb-centre{grid-column:1/-1;height:auto;padding:10px 0}
  .ve-contents-board .ve-cb-label{position:static !important;margin-top:6px}
  .ve-contents-board .ve-cb-label p{white-space:normal}
}

/* ---------- Option D · ring in a viewing box (white, thin gold outline, scrolls inside) ---------- */
#projects .ve-gn-box{scrollbar-width:thin;scrollbar-color:var(--e-gv-c15b404,#BCAA92) transparent}
#projects .ve-gn-box > *{flex-shrink:0}
#projects .ve-gn-box .ve-gn-box-head h2{margin:0}
#projects .ve-gn-box .ve-gn-results{top:0;background:#FFFFFF}
#projects .ve-gn-box .ve-gn-grid{gap:24px}
#projects .ve-gn-box .gn-card{background:var(--e-gv-b2998c2,#FFFDF8)}

/* ---------- Results bar (sticky, shows the active filter) ---------- */
.ve-gn-results p{margin:0}
.ve-gn-results p:last-child{display:none;cursor:pointer}
.gn-filtering .ve-gn-results p:last-child{display:block}
.ve-gn-results strong{color:var(--e-gv-bbb9c52,#A85D3F);font-weight:500}
@media (max-width:767px){.ve-gn-results{border-radius:16px !important}}

/* ---------- Project card (2-column, no click-through) ---------- */
@media (max-width:900px){.ve-gn-grid{grid-template-columns:minmax(0,1fr) !important}}
.gn-card{display:flex;flex-direction:column;background:var(--e-gv-b2998c2,#FFFDF8);border:1px solid var(--e-gv-3402158,#D4C7B4);border-radius:19px;overflow:hidden;min-width:0}
.gn-card[hidden]{display:none}
.gn-card__art{aspect-ratio:16/9;background:var(--e-gv-72a2cb6,#F0E5D7);display:flex;align-items:center;justify-content:center;padding:20px}
.gn-card__art img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.gn-card__body{display:flex;flex-direction:column;gap:10px;padding:28px 32px 32px}
.gn-card__chapter{margin:0;font-family:"Hanken Grotesk",sans-serif;font-weight:500;font-size:14px;line-height:20px;letter-spacing:.06em;text-transform:uppercase;color:var(--e-gv-bbb9c52,#A85D3F)}
.gn-card__name{margin:0;font-family:"Source Serif 4",serif;font-weight:400;font-size:30px;line-height:36px;color:var(--e-gv-6c5fbd1,#3B4632)}
.gn-card__place{margin:0;font-family:"Hanken Grotesk",sans-serif;font-size:18px;line-height:26px;color:var(--e-gv-fb9a55f,#26363A)}
.gn-card__meta{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none}
.gn-card__meta li{font-family:"Hanken Grotesk",sans-serif;font-weight:500;font-size:14px;line-height:18px;padding:6px 12px;border-radius:999px;background:var(--e-gv-74c21d5,#F4EDE3);color:var(--e-gv-6c5fbd1,#3B4632)}
.gn-card__desc{margin-top:8px;padding-top:18px;border-top:1px solid var(--e-gv-3402158,#D4C7B4);font-family:"Hanken Grotesk",sans-serif;font-size:18px;line-height:28px;color:var(--e-gv-fb9a55f,#26363A)}
.gn-card__desc p{margin:0 0 12px}
.gn-card__desc p:last-child{margin-bottom:0}
.gn-card__desc.is-clamped{max-height:168px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.gn-card__more{align-self:flex-start;margin-top:4px;padding:0;border:0;background:none;cursor:pointer;font-family:"Hanken Grotesk",sans-serif;font-weight:500;font-size:16px;line-height:24px;color:var(--e-gv-bbb9c52,#A85D3F)}
.gn-card__more:focus-visible{outline:2px solid var(--e-gv-6c5fbd1,#3B4632);outline-offset:3px}
.gn-empty{grid-column:1/-1;margin:0;font-family:"Hanken Grotesk",sans-serif;font-size:18px;color:var(--e-gv-80791ce,#5B6770)}

/* 2026-11-05 VEI-61: ring, heading and results opened out of the white viewing box (page scrolls, no inner scroll). Rollback = delete this block. */
#projects .ve-gn-box{background:transparent !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;height:auto !important;min-height:0 !important;max-height:none !important;overflow:visible !important;padding:0 !important;width:100% !important;max-width:1280px !important;margin-left:auto !important;margin-right:auto !important}
#projects .ve-gn-box .ve-gn-results{background:var(--e-gv-a2f1e61,#FAF7F1) !important}
#projects .ve-gn-box .gn-card{background:#FFFFFF}

/* 2026-11-05: stop the Hello theme's pink button hover on "Read the full description" — rust text + underline instead */
.gn-card__more,.gn-card__more:hover,.gn-card__more:focus,.gn-card__more:active{background:none !important;border:0 !important;color:var(--e-gv-bbb9c52,#A85D3F) !important;box-shadow:none !important}
.gn-card__more:hover,.gn-card__more:focus-visible{color:#8C4A30 !important;text-decoration:underline !important;text-underline-offset:4px;text-decoration-thickness:1px}

/* 2026-11-06 (Jonathan): illustrations on cream, not beige, with a heavy rule between art and text. Rollback = delete this block. */
#projects .ve-gn-box .gn-card{background:#FFFDF8 !important}
#projects .gn-card__art{background:#FFFDF8 !important;border-bottom:2px solid var(--e-gv-6c5fbd1,#3B4632) !important}/* End custom CSS */