/* Project surfaces retain VoltStream's original green, cyan and light palette. */
.star-feature { display:grid; grid-template-columns:1fr 1fr; gap:30px; padding:28px; margin:0 0 24px; border:1px solid #cde8df; border-radius:18px; background:linear-gradient(135deg,#f4fcf8,#e7f8f1); }
.star-feature-copy { min-width:0; align-self:center; }
.star-project-headingline { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
.star-project-headingline .star-status { justify-self:start; min-width:0; }
.star-project-headingline .star-client-logo { display:block; width:132px; height:auto; aspect-ratio:320/170; object-fit:contain; mix-blend-mode:multiply; background:transparent; border:0; border-radius:0; box-shadow:none; }
@media(max-width:420px) { .star-project-headingline { gap:8px; } .star-project-headingline .star-client-logo { width:110px; } }
.star-status { display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid #b8e5d3; border-radius:99px; background:#e6f8ef; color:#066448; font-size:11px; line-height:1.4; font-weight:750; }
.star-status::before { content:""; width:6px; height:6px; flex:none; border-radius:50%; background:#0b9e73; }
.star-feature h3 { margin:17px 0 12px; color:#081722; font-size:clamp(26px,3vw,38px); line-height:1.08; letter-spacing:-.8px; }
.star-feature h3 strong { color:#087d65; }
.star-feature-copy>p { color:#425b63; font-size:15px; line-height:1.75; margin:0; max-width:470px; }
.star-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:22px 0; gap:0; }
.star-metrics>div { min-width:0; padding:0 14px; border-left:1px solid #bddfcf; display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:7px; }
.star-metrics>div:first-child { padding-left:0; border-left:0; }
.star-metrics dt { color:#425b63; font-size:11px; line-height:1.5; }
.star-metrics dt strong { display:block; color:#066448; font-size:11px; }
.star-metrics dd { color:#087d65; margin:0; font-size:clamp(27px,2.6vw,36px); font-weight:850; line-height:1.15; letter-spacing:-1px; }
.star-metrics dd span { display:inline-block; color:#314452; font-size:13px; font-weight:650; letter-spacing:0; }
.star-banner { min-width:0; align-self:center; overflow:hidden; border:1px solid #d4e7df; border-radius:14px; background:white; box-shadow:0 14px 28px rgba(23,73,57,.07); }
.star-banner-image { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); gap:4px; height:285px; background:#e3f3eb; text-decoration:none; }
.star-banner-image>span { position:relative; min-width:0; overflow:hidden; }
.star-banner-image img { display:block; width:100%; height:100%; object-fit:cover; }
.star-composite-solar img { object-position:54% center; }
.star-composite-storage img { object-position:50% center; }
.star-photo-tag { position:absolute; bottom:10px; left:8px; right:8px; width:max-content; max-width:calc(100% - 16px); padding:6px 8px; border-radius:5px; color:#fff; background:rgba(6,36,32,.82); font-size:10px; line-height:1.3; font-weight:750; }
.star-banner-caption { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:13px 16px; color:#425b63; font-size:11px; }
.star-banner-caption a { color:#066448; font-weight:750; font-size:12px; text-decoration:none; white-space:nowrap; }
.project-grid.project-grid--supporting { grid-template-columns:repeat(2,minmax(0,1fr)); }
.star-page { --ink:#081722; --text:#425b63; --line:#dcebe4; margin:0; color:var(--ink); background:#f8fcfa; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.star-page * { box-sizing:border-box; }
.star-page img { display:block; max-width:100%; }
.star-page a { color:inherit; }
.star-page .wrap { width:min(1120px,calc(100% - 40px)); margin:0 auto; }
.star-page .nav { background:#fff; border-bottom:1px solid var(--line); }
.star-page .nav-inner { min-height:72px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.star-page .logo { width:180px; height:auto; }
.star-page .nav-links { display:flex; flex-wrap:wrap; gap:22px; align-items:center; font-size:12px; font-weight:700; }
.star-page .nav-links a { padding:12px 0; text-decoration:none; }
.star-page .btn { display:inline-flex; min-height:44px; align-items:center; justify-content:center; gap:18px; padding:0 17px; border-radius:7px; background:linear-gradient(135deg,#35eaaa,#18c4df); color:#031118; text-decoration:none; font-weight:800; font-size:13px; }
.star-page .breadcrumb { padding:22px 0; font-size:11px; color:#61786f; }
.star-page .breadcrumb a { text-underline-offset:3px; }
.star-page .intro { display:grid; grid-template-columns:1fr 1.12fr; gap:24px 40px; align-items:center; padding:8px 0 28px; }
.star-page .intro-copy { min-width:0; }
.star-page .star-eyebrow { color:#0a8769; font-size:10px; font-weight:800; letter-spacing:1.8px; margin:19px 0 10px; line-height:1.6; }
.star-page h1 { font-size:clamp(32px,4vw,49px); line-height:1.05; letter-spacing:-1.8px; margin:0 0 16px; }
.star-page h1 span { color:#087d65; }
.star-page .intro-copy>p:not(.star-eyebrow) { font-size:15px; line-height:1.75; color:#425b63; max-width:440px; margin:0 0 20px; }
.star-page .intro>.star-metrics { grid-column:1/-1; background:#fff; padding:21px 26px; border:1px solid var(--line); border-radius:12px; margin:2px 0 0; }
.star-page .intro>.star-metrics>div { padding-left:26px; }
.star-page .intro>.star-metrics>div:first-child { padding-left:0; }
.star-page .intro>.star-metrics dd { font-size:36px; }
.star-page .intro>.star-metrics dt { font-size:12px; }
.star-page .intro>.star-metrics dt strong { display:inline; font-size:12px; }
.star-page .scope { display:grid; grid-template-columns:1fr 1.5fr auto; align-items:center; gap:28px; padding:18px 0 28px; margin-bottom:24px; border-bottom:1px solid var(--line); }
.star-page .scope h2 { font-size:19px; line-height:1.3; letter-spacing:-.5px; margin:0; }
.star-page .scope p { margin:0; font-size:14px; line-height:1.7; color:#536d63; }
.star-page .scope a { font-size:12px; color:#087d65; font-weight:750; white-space:nowrap; text-decoration:none; }
.star-page .gallery-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:20px; }
.star-page .gallery-heading .star-eyebrow { margin:0 0 7px; }
.star-page h2 { font-size:clamp(24px,3vw,32px); line-height:1.15; letter-spacing:-.8px; margin:0 0 10px; }
.star-page .gallery-heading p:not(.star-eyebrow) { max-width:620px; margin:0; font-size:14px; color:#536d63; line-height:1.7; }
.star-page .gallery-count { flex:none; font-size:11px; color:#087d65; background:#e8f6ee; border:1px solid #cde5d8; border-radius:99px; padding:8px 12px; }
.star-page .gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px 16px; padding-bottom:34px; }
.star-page .gallery figure { min-width:0; margin:0; border-radius:10px; background:#fff; border:1px solid #e0ebe5; overflow:hidden; transition:box-shadow .18s,border-color .18s; }
.star-page .gallery figure:hover { border-color:#8dceb3; box-shadow:0 8px 20px rgba(6,49,32,.07); }
.star-page .gallery figure>a { display:block; position:relative; overflow:hidden; background:#e9f3ee; }
.star-page .gallery figure>a::after { content:"↗"; position:absolute; right:8px; bottom:8px; width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.92); color:#087d65; font-size:16px; box-shadow:0 2px 8px #0001; }
.star-page .gallery figure img { width:100%; height:150px; object-fit:cover; transition:transform .25s; }
.star-page .gallery figure>a:hover img { transform:scale(1.035); }
.star-page .gallery figcaption { padding:11px 12px 13px; color:#173c30; font-size:13px; font-weight:750; line-height:1.4; }
.star-page .gallery figcaption span { display:block; font-weight:400; font-size:12px; color:#61786f; line-height:1.45; margin-top:4px; }
.star-page .project-contact { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 28px; border-radius:14px; background:linear-gradient(110deg,#dff5e8,#dbf5f0); margin-bottom:34px; border:1px solid #c5e6d5; }
.star-page .project-contact h2 { font-size:23px; }
.star-page .project-contact p { margin:0; color:#425b63; font-size:14px; line-height:1.65; }
.star-page footer { background:#fff; border-top:1px solid var(--line); padding:22px 0; }
.star-page footer .wrap { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:11px; color:#536d63; }
.star-page dialog { width:min(980px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #d2e4d9; border-radius:18px; background:#fff; color:#081722; box-shadow:0 28px 100px #0006; overflow:auto; }
.star-page dialog::backdrop { background:rgba(5,25,22,.86); backdrop-filter:blur(8px); }
.star-page .viewer-top { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 20px; background:#f2faf6; border-bottom:1px solid #dcebe4; }
.star-page .viewer-top>div { display:flex; gap:13px; align-items:center; flex-wrap:wrap; }
.star-page .viewer-brand { color:#087d65; font-size:11px; font-weight:850; letter-spacing:1.8px; }
.star-page .viewer-project { font-size:11px; color:#536d63; }
.star-page .viewer-button { border:1px solid #cfe3d8; border-radius:8px; min-height:44px; min-width:44px; padding:8px 12px; color:#133d2c; background:#fff; font:inherit; font-size:12px; cursor:pointer; }
.star-page .viewer-close { display:flex; align-items:center; gap:12px; }
.star-page .viewer-close span { font-size:24px; line-height:1; }
.star-page .viewer-stage { position:relative; background:radial-gradient(ellipse at center,#233b35,#0b201a); touch-action:pan-y; }
.star-page .viewer-image { display:block; width:100%; height:min(53dvh,490px); object-fit:contain; }
.star-page .viewer-arrow { position:absolute; top:50%; transform:translateY(-50%); border-color:#ffffff50; border-radius:50%; width:44px; height:44px; padding:0; background:#ffffffea; color:#133d2c; font-size:36px; line-height:1; box-shadow:0 3px 15px #0003; }
.star-page .viewer-prev { left:14px; }
.star-page .viewer-next { right:14px; }
.star-page .viewer-info { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 22px 10px; }
.star-page .viewer-info h2 { font-size:20px; margin:0 0 5px; letter-spacing:-.4px; }
.star-page #viewer-caption { margin:0; font-size:12px; line-height:1.5; color:#536d63; }
.star-page .viewer-position { flex:none; margin:0; color:#087d65; font-size:12px; font-weight:750; border:1px solid #cde5d8; background:#edf8f2; border-radius:99px; padding:7px 10px; }
.star-page .viewer-thumbnails { display:flex; gap:7px; padding:8px 22px 12px; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#9bcdb5 #edf7f1; }
.star-page .viewer-thumb { flex:0 0 61px; width:61px; height:49px; padding:2px; border:2px solid transparent; border-radius:7px; background:#edf5ef; cursor:pointer; opacity:.62; transition:opacity .15s; }
.star-page .viewer-thumb[aria-current="true"] { opacity:1; border-color:#0eae7b; }
.star-page .viewer-thumb:hover { opacity:1; }
.star-page .viewer-thumb img { width:100%; height:100%; border-radius:3px; object-fit:cover; }
.star-page .viewer-hint { padding:0 22px 12px; margin:0; color:#71867b; font-size:10px; }
.star-page .viewer-error { position:absolute; bottom:15px; left:70px; right:70px; background:#fff5d9; color:#5d4316; padding:12px; border-radius:8px; font-size:12px; text-align:center; }
.star-page [hidden] { display:none!important; }
.star-page :focus-visible,.star-feature :focus-visible { outline:3px solid #087d65; outline-offset:3px; }
@media(max-width:900px) { .star-feature { gap:22px; padding:22px; } .star-page .intro { gap:24px; } .star-banner-image { height:250px; } .star-page .gallery { grid-template-columns:repeat(3,minmax(0,1fr)); } .star-page .scope { grid-template-columns:1fr 1.6fr; gap:16px; } .star-page .scope a { grid-column:2; } }
@media(max-width:700px) { .star-feature,.star-page .intro { grid-template-columns:1fr; } .star-feature { padding:20px; gap:20px; } .star-page .intro { gap:20px; } .star-page .intro>.star-metrics { grid-column:1; margin:0; padding:18px; } .star-page .intro>.star-metrics>div { padding-left:16px; } .star-page .intro>.star-metrics dd { font-size:30px; } .star-page .intro>.star-metrics dt,.star-page .intro>.star-metrics dt strong { font-size:11px; } .star-page .intro-copy>p:not(.star-eyebrow) { max-width:none; } .star-banner-image { height:235px; } .star-page .gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .star-page .gallery figure img { height:140px; } .star-page .scope { grid-template-columns:1fr; padding:8px 0 24px; } .star-page .scope a { grid-column:auto; } .star-page .gallery-heading { align-items:flex-start; gap:12px; } .star-page .gallery-count { display:none; } .star-page .nav-inner { flex-wrap:wrap; padding:14px 0; gap:8px; } .star-page .logo { width:155px; } .star-page .nav-links { gap:16px; font-size:11px; } .star-page .project-contact { flex-direction:column; align-items:flex-start; padding:22px; } }
@media(max-width:420px) { .star-page .wrap { width:calc(100% - 28px); } .star-feature { padding:16px; } .star-metrics>div { padding-left:10px; padding-right:8px; } .star-metrics dd { font-size:27px; } .star-metrics dd span { font-size:11px; } .star-metrics dt,.star-metrics dt strong { font-size:11px; } .star-page .intro>.star-metrics { padding:16px 12px; } .star-page .intro>.star-metrics>div { padding-left:10px; } .star-page .intro>.star-metrics dd { font-size:28px; } .star-banner-image { height:205px; } .star-banner-caption { padding:11px; font-size:11px; gap:8px; } .star-banner-caption a { font-size:11px; } .star-photo-tag { font-size:10px; padding:5px; left:6px; right:6px; max-width:calc(100% - 12px); } .star-page .gallery figure img { height:112px; } .star-page .gallery figcaption { padding:9px; font-size:13px; } .star-page .gallery figcaption span { font-size:11px; } .star-page dialog { width:calc(100% - 14px); max-height:calc(100dvh - 14px); border-radius:12px; } .star-page .viewer-top { padding:10px 12px; } .star-page .viewer-top>div { gap:4px; flex-direction:column; align-items:flex-start; } .star-page .viewer-image { height:46dvh; } .star-page .viewer-info { padding:13px 12px 8px; gap:10px; } .star-page .viewer-info h2 { font-size:17px; } .star-page #viewer-caption { font-size:12px; } .star-page .viewer-prev { left:7px; } .star-page .viewer-next { right:7px; } .star-page .viewer-thumbnails { padding:8px 12px 10px; } .star-page .viewer-hint { padding:0 12px 12px; } .star-page .viewer-error { left:55px; right:55px; } }
@media(prefers-reduced-motion:reduce) { .star-page .gallery figure,.star-page .gallery figure img,.star-page .viewer-thumb { transition:none; } }
.serene-status { background:#e4f7fa; color:#095d73; border-color:#b4dfe7; }
.serene-status::before { background:#0897af; }
.serene-feature .serene-banner-image,.serene-page .serene-banner-image { display:block; }
.serene-feature .serene-banner-image img,.serene-page .serene-banner-image img { object-position:center; }
.serene-feature .star-metrics>div,.serene-page .intro>.star-metrics>div { flex-direction:column; justify-content:flex-start; }
.serene-feature .star-metrics dd,.serene-page .intro>.star-metrics dd { order:-1; display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.serene-feature .star-metrics dd span,.serene-page .intro>.star-metrics dd span { display:block; max-width:100%; min-height:2.6em; line-height:1.3; overflow-wrap:anywhere; }
.serene-page .serene-scope { margin:4px 0 34px; padding-top:24px; border-top:1px solid var(--line); }
.serene-page .serene-scope-heading { max-width:700px; margin-bottom:22px; }
.serene-page .serene-scope-heading .star-eyebrow { margin-top:0; }
.serene-page .serene-scope-heading>p:last-child { color:#536d63; font-size:14px; line-height:1.7; margin:0; }
.serene-page .serene-scope-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.serene-page .serene-scope-grid article { min-width:0; padding:22px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.serene-page .serene-scope-number { display:inline-grid; place-items:center; width:34px; height:34px; color:#087d65; background:#e8f6ee; border-radius:50%; font-size:12px; font-weight:750; }
.serene-page .serene-scope-grid h3 { margin:16px 0 10px; color:#173c30; font-size:17px; }
.serene-page .serene-scope-grid p { color:#536d63; font-size:14px; line-height:1.7; margin:0; }
.serene-page .serene-backlink { margin:0 0 28px; font-size:13px; color:#087d65; }
@media(max-width:700px) { .serene-page .serene-scope-grid { grid-template-columns:1fr; gap:12px; } .serene-page .serene-scope-grid article { padding:18px; } }
.budget-feature .budget-banner-image,.budget-page .budget-banner-image { display:block; }
.budget-feature .budget-banner-image img,.budget-page .budget-banner-image img,.budget-page .gallery img.budget-rooftop { object-position:center 28%; }
.budget-page .intro { margin-bottom:28px; border-bottom:1px solid var(--line); }
.budget-page .budget-backlink { margin:0 0 28px; font-size:13px; color:#087d65; }
.hillview-feature .hillview-banner-image,.hillview-page .hillview-banner-image { display:block; }
.hillview-feature .hillview-banner-image img,.hillview-page .hillview-banner-image img,.hillview-page .gallery img { object-position:center 53%; }
.hillview-page .intro { margin-bottom:28px; border-bottom:1px solid var(--line); }
.hillview-page .hillview-backlink { margin:0 0 28px; font-size:13px; color:#087d65; }
.star-site-upcoming { background:#e4f7fa; color:#095d73; border-color:#b4dfe7; }
.star-site-upcoming::before { background:#0897af; }
.star-site-neutral { background:#edf5f1; color:#425b63; border-color:#d4e5dc; }
.star-site-neutral::before { background:#779289; }
.star-site-feature .star-site-brand,.star-site-page .star-site-brand { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; height:285px; padding:26px; color:#173c30; text-align:center; text-decoration:none; background:radial-gradient(circle at 85% 15%,#d4f6ec,transparent 58%),linear-gradient(135deg,#f4fcf8,#e4f5ee); }
.star-site-feature .star-site-brand img,.star-site-page .star-site-brand img { width:230px; max-width:100%; height:auto; aspect-ratio:320/170; object-fit:contain; mix-blend-mode:multiply; }
.star-site-feature .star-site-brand-kicker,.star-site-page .star-site-brand-kicker { color:#0a8769; font-size:10px; line-height:1.5; letter-spacing:1.6px; font-weight:800; }
.star-site-feature .star-site-brand strong,.star-site-page .star-site-brand strong { font-size:17px; line-height:1.4; }
.star-site-feature .star-metrics>div,.star-site-page .intro>.star-metrics>div { flex-direction:column; justify-content:flex-start; }
.star-site-feature .star-metrics dd,.star-site-page .intro>.star-metrics dd { order:-1; display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.star-site-feature .star-metrics dd span,.star-site-page .intro>.star-metrics dd span { display:block; line-height:1.3; }
.star-site-page .intro { padding-bottom:34px; }
.star-site-page .star-site-backlink { margin:0 0 28px; font-size:13px; color:#087d65; }
@media(max-width:700px) { .star-site-feature .star-site-brand,.star-site-page .star-site-brand { height:235px; padding:20px; gap:10px; } .star-site-feature .star-site-brand img,.star-site-page .star-site-brand img { width:200px; } }
@media(max-width:420px) { .star-site-feature .star-site-brand,.star-site-page .star-site-brand { height:205px; padding:16px; gap:8px; } .star-site-feature .star-site-brand img,.star-site-page .star-site-brand img { width:180px; } }
