:root {
  --color-bg: #161820; --color-text: #e8e4dc; --color-heading: #fff8ee;
  --color-muted: #b8b0a4; --color-accent: #e07a2f; --color-surface: #1e2430;
  --color-border: rgba(224,122,47,.28); --nav-fg: #fff8ee; --nav-solid: rgba(22,24,32,.94);
  --nav-solid-fg: #fff8ee; --btn-primary-fg: #161820; --font-display: 'Heebo', sans-serif;
  --font-body: 'Assistant', sans-serif; --footer-bg: #101218; --input-bg: #1e2430;
}
html:has(body.theme-solstice) { overflow-x: hidden; }
.theme-solstice { overflow-x: hidden; overscroll-behavior-x: none; }
body { font-family: var(--font-body); background: var(--color-bg); }
h1,h2,h3 { font-family: var(--font-display); font-weight: 800; letter-spacing: -.03em; }
.sol-hero { position: relative; min-height: 100vh; display: flex; align-items: flex-end; overflow: hidden; isolation: isolate; }
.sol-hero__bg { position: absolute; inset: 0; }
.sol-hero__bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.12) contrast(1.08); }
.sol-sun { position: absolute; width: min(46vw, 420px); height: min(46vw, 420px); left: 8%; top: 12%; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,186,64,.5), rgba(90,160,210,.14) 48%, transparent 70%);
  box-shadow: 0 0 80px rgba(224,122,47,.32); animation: sol-pulse 5s ease-in-out infinite alternate; pointer-events: none; z-index: 1; }
@keyframes sol-pulse { from { opacity: .7; transform: scale(.96); } to { opacity: 1; transform: scale(1.04); } }
.sol-hero__disc { position: absolute; width: min(28vw, 320px); height: min(28vw, 320px); left: 12%; top: 18%; border-radius: 50%; overflow: hidden; z-index: 2;
  border: 3px solid rgba(224,122,47,.7); box-shadow: 0 20px 50px rgba(0,0,0,.45); }
.sol-hero__disc img { width: 100%; height: 100%; object-fit: cover; }
.sol-hero__copy { position: relative; z-index: 3; padding: 5rem 8vw 4.5rem; max-width: 42rem; }
.sol-hero h1 { font-size: clamp(2.8rem, 8vw, 5.6rem); line-height: .95; color: #fff; text-shadow: 0 0 28px rgba(224,122,47,.4); }
.sol-hero .lede { max-width: 32ch; color: #f0e2d0; margin: 1rem 0 1.5rem; font-weight: 400; }
.sol-hero::after { content:''; position:absolute; inset:0; background: linear-gradient(to top, rgba(22,24,32,.84), rgba(22,24,32,.18) 46%, transparent); pointer-events:none; }
.sol-stats { display: flex; justify-content: space-around; padding: 2.2rem 1rem; background: #1e2430; border-top: 3px solid var(--color-accent); flex-wrap: wrap; gap: 1rem; }
.sol-stats b { display: block; font-size: 2rem; color: var(--color-accent); }
.sol-film { overflow: hidden; background: #101218; padding: 10px 0; }
.sol-marquee { overflow: hidden; width: 100%; direction: ltr; }
.sol-marquee__track { display: flex; width: max-content; animation: sol-roll 50s linear infinite; }
.sol-marquee:hover .sol-marquee__track, .sol-marquee:focus-within .sol-marquee__track { animation-play-state: paused; }
.sol-marquee__set { display: flex; gap: 8px; padding-inline-end: 8px; flex-shrink: 0; }
.sol-marquee figure { flex: 0 0 340px; margin: 0; overflow: hidden; background: #1e2430; }
.sol-marquee img { width: 340px; height: 30vh; object-fit: cover; display: block; }
@keyframes sol-roll { to { transform: translate3d(-50%,0,0); } }
.sol-about { display: grid; overflow: hidden; }
@media (min-width: 800px) { .sol-about { grid-template-columns: 1.1fr .9fr; } }
.sol-about__img { min-height: 42vh; overflow: hidden; }
.sol-about__img img { width: 100%; height: 100%; object-fit: cover; min-height: 42vh; }
.sol-about__copy { padding: 3.4rem 7vw; }
.sol-about h2 { font-size: clamp(1.8rem, 4vw, 2.8rem); max-width: 16ch; }
.sol-belief { display: grid; overflow: hidden; background: #1a1e28; }
@media (min-width: 800px) { .sol-belief { grid-template-columns: 1fr 1fr; min-height: 56vh; } }
.sol-belief blockquote { margin: 0; padding: 3.6rem 8vw; display: flex; flex-direction: column; justify-content: center; }
.sol-belief p:last-of-type { font-size: clamp(1.25rem, 2.6vw, 1.9rem); line-height: 1.45; font-weight: 500; }
.sol-belief cite { margin-top: 1.3rem; font-style: normal; color: #b8b0a4; letter-spacing: .04em; }
.sol-belief__img { min-height: 360px; overflow: hidden; }
.sol-belief__img img { width: 100%; height: 100%; object-fit: cover; min-height: 360px; }
.sol-svc { display: grid; overflow: hidden; }
@media (min-width: 800px) {
  .sol-svc { grid-template-columns: repeat(6, 1fr); }
  .sol-svc article { grid-column: span 2; }
  .sol-svc article:nth-child(4), .sol-svc article:nth-child(5) { grid-column: span 3; }
}
.sol-svc img { height: 32vh; width: 100%; object-fit: cover; }
.sol-svc h3, .sol-svc p { padding: 0 1.15rem; }
.sol-svc h3 { margin: 1rem 0 .3rem; font-size: 1.15rem; }
.sol-svc p { padding-bottom: 1.4rem; color: var(--color-muted); font-size: .95rem; font-weight: 400; }
.sol-gal { display: grid; grid-template-columns: repeat(4,1fr); gap: 3px; background: #000; overflow: hidden; }
.sol-gal img { height: 32vh; width: 100%; object-fit: cover; }
@media (max-width: 700px) {
  .sol-hero__disc { width: 42vw; height: 42vw; left: auto; right: 8%; top: 14%; }
  .sol-gal { grid-template-columns: 1fr 1fr; }
  .sol-marquee figure, .sol-marquee img { flex-basis: 240px; width: 240px; }
  .sol-svc { grid-template-columns: 1fr; }
  .sol-svc article, .sol-svc article:nth-child(4), .sol-svc article:nth-child(5) { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) { .sol-marquee__track, .sol-sun { animation: none; } }
body.a11y-stop-motion .sol-marquee__track, body.a11y-stop-motion .sol-sun { animation: none; }