/* Decoration never changes document content, hit targets or print output. */
body .atmosphere-heading { position:relative; isolation:isolate; }
.atmosphere-scene { position:absolute !important; inset:0; z-index:0 !important; border-radius:inherit; overflow:hidden; pointer-events:none !important; }
.atmosphere-scene *, .atmosphere-veil { pointer-events:none !important; user-select:none; }
.atmosphere-scene canvas { position:absolute; inset:0; width:100%; height:100%; }
.atmosphere-veil { position:absolute; inset:0; background:linear-gradient(90deg,#f1f7f7f5 0%,#f1f7f7cc 38%,#f1f7f735 64%,transparent 84%); }
body .atmosphere-heading > :not(.atmosphere-scene):not(.daylight-scene):not(.dashboard-season-art):not(.home-season-art) { position:relative; z-index:2; }
body .atmosphere-heading :is(.dashboard-season-art,.home-season-art) { z-index:3; }
body:not(.time-night) .atmosphere-heading::after { display:none; }
body:not(.time-night) .atmosphere-heading :is(.season-orb,.season-branch,.season-leaf) { display:none !important; }
body .atmosphere-heading .daylight-scene > :not(.daylight-plane) { display:none; }
body .atmosphere-heading .daylight-scene { z-index:1 !important; }
body:not(.time-night):not(.time-evening) .atmosphere-heading :is(h1,h2) { color:#204452; }
body:not(.time-night):not(.time-evening) .atmosphere-heading p:not(.eyebrow) { color:#46636e; }
body:not(.time-night):not(.time-evening) .atmosphere-heading .eyebrow { color:#537981; }
body:not(.time-night):not(.time-evening) .atmosphere-heading :is(.season-day,.season-month) { color:#244b56; text-shadow:0 1px 6px #ffffffe6; }
body.time-evening .atmosphere-veil { background:linear-gradient(90deg,#152c47ed,#1b2c417d 52%,transparent 83%); }
body.time-evening .atmosphere-heading :is(h1,h2) { color:#fff9f1; }
body.time-evening .atmosphere-heading p:not(.eyebrow),body.time-evening .atmosphere-heading .project-heading-status > span:not(.project-status) { color:#e1e2e6; }
body.time-evening .atmosphere-heading .eyebrow { color:#edccb1; }
body.time-evening .atmosphere-heading :is(.season-day,.season-month) { color:#fff9ef; text-shadow:0 2px 10px #182b46; }
body.time-evening .atmosphere-heading .project-detail-amount { color:#fff9ef; border-color:#ffffff33; }
body.time-evening .atmosphere-heading .project-detail-amount :is(span,strong) { color:inherit; }
body.time-night .atmosphere-veil { display:none; }
body.time-night .atmosphere-scene { mask-image:linear-gradient(90deg,transparent,#0008 60%,black); }
/* Hide all floating leaves while a modal or document preview is open. */
body:has(dialog[open]) .daylight-leaves { display:none !important; }
.atmosphere-fireflies { display:none; position:fixed; inset:0; z-index:9998; pointer-events:none !important; overflow:hidden; }
.atmosphere-fireflies span { position:absolute; width:3px; height:3px; border-radius:50%; background:#ffdf9d; box-shadow:0 0 8px 3px #eac17c55; opacity:0; pointer-events:none !important; }
body.time-evening:not(.season-winter):not(:has(dialog[open])) .atmosphere-fireflies { display:block; }
body.daylight-motion-paused .atmosphere-fireflies { display:none !important; }
@media(max-width:700px) {
  body:is(.time-morning,.time-evening) :is(.home-heading,.dashboard-heading) { padding:22px 22px 115px; min-height:280px; }
  body:is(.time-morning,.time-evening) :is(.home-season-art,.dashboard-season-art) { inset:auto 16px 12px auto; width:170px; height:88px; transform:none; }
  body:is(.time-morning,.time-evening) :is(.home-season-art,.dashboard-season-art) .season-day { right:0;bottom:28px;font-size:34px; }
  body:is(.time-morning,.time-evening) :is(.home-season-art,.dashboard-season-art) .season-month { right:0;bottom:3px;font-size:18px;max-width:none; }
  .atmosphere-veil { background:linear-gradient(90deg,#f1f7f7eb,#f1f7f799 68%,#f1f7f733); }
  body.time-evening .atmosphere-veil { background:linear-gradient(90deg,#152c47ee,#1b2c41b3 65%,#1b2c4155); }
}
@media(prefers-reduced-motion:reduce) { .atmosphere-fireflies { display:none !important; } }
@media print { .atmosphere-scene,.atmosphere-fireflies { display:none !important; } }
