/* Ornament module: everything decorative lives here and in site/ornament/*.svg.
   Swap the look by replacing these two things; site.css only lays out the slots
   (.intro__art, .fleuron, .smallprint__band) and never styles ornament internals.
   Palette: peacock jewels (teal, emerald, sapphire, amethyst, bronze) in solarpunk light:
   sun gold, living green. All hand-written SVG/CSS; no raster decoration. */

:root {
  --o-sky-0: #d9eee6;   /* morning, high up */
  --o-sky-1: #fbe8b0;   /* sunlit band */
  --o-sky-2: #f3f0d8;
  --o-sun-0: #fffbe8;
  --o-sun-1: #f7cf62;
  --o-sun-2: #eaa53a;
  --o-ray: #e7b84c;
  --o-halo: rgba(247, 207, 98, 0.28);
  --o-rachis: #7a6a2c;
  --o-vane-0: rgba(31, 107, 69, 0.0);
  --o-vane-1: rgba(38, 128, 96, 0.55);
  --o-vane-2: rgba(19, 102, 110, 0.8);
  --o-barb: rgba(24, 92, 70, 0.55);
  --o-eye-0: #2a1f5c;   /* amethyst heart */
  --o-eye-1: #1d4b9a;   /* sapphire */
  --o-eye-2: #11867f;   /* peacock teal */
  --o-eye-3: #3e9b52;   /* emerald */
  --o-eye-4: #b98a2a;   /* bronze rim */
  --o-eye-core: #1b1446;
  --o-sheen: rgba(255, 255, 255, 0.55);
  --o-hill-0: #9cc98a;
  --o-hill-1: #5f9a62;
  --o-vine: #2f6b3c;
  --o-leaf: #4f9a55;
  --o-leaf-vein: rgba(255, 255, 255, 0.45);
  --o-pv: #1d3f78;      /* solar-cell leaf */
  --o-pv-grid: #e4c35e;
  --o-bud: #e0a93a;
  --o-frame: var(--gold);
  --o-line: var(--gold);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --o-sky-0: #08171c;
    --o-sky-1: #133c3d;
    --o-sky-2: #0d2723;
    --o-sun-0: #fff1c4;
    --o-sun-1: #e9bb55;
    --o-sun-2: #b67c26;
    --o-ray: #c89a3d;
    --o-halo: rgba(233, 187, 85, 0.18);
    --o-rachis: #c9a85a;
    --o-vane-1: rgba(64, 180, 140, 0.45);
    --o-vane-2: rgba(80, 200, 200, 0.7);
    --o-barb: rgba(120, 220, 180, 0.45);
    --o-eye-0: #3a2a7a;
    --o-eye-1: #3a74d8;
    --o-eye-2: #22b3a8;
    --o-eye-3: #5cc46e;
    --o-eye-4: #d8ab44;
    --o-eye-core: #150f33;
    --o-sheen: rgba(255, 255, 255, 0.4);
    --o-hill-0: #1f5a43;
    --o-hill-1: #123a2c;
    --o-vine: #7ccf8e;
    --o-leaf: #3f9c63;
    --o-leaf-vein: rgba(255, 255, 255, 0.3);
    --o-pv: #2a5bb0;
    --o-pv-grid: #f0cf6c;
    --o-bud: #f0c060;
  }
}
:root[data-theme="dark"] {
  --o-sky-0: #08171c; --o-sky-1: #133c3d; --o-sky-2: #0d2723;
  --o-sun-0: #fff1c4; --o-sun-1: #e9bb55; --o-sun-2: #b67c26;
  --o-ray: #c89a3d; --o-halo: rgba(233, 187, 85, 0.18); --o-rachis: #c9a85a;
  --o-vane-1: rgba(64, 180, 140, 0.45); --o-vane-2: rgba(80, 200, 200, 0.7); --o-barb: rgba(120, 220, 180, 0.45);
  --o-eye-0: #3a2a7a; --o-eye-1: #3a74d8; --o-eye-2: #22b3a8; --o-eye-3: #5cc46e; --o-eye-4: #d8ab44;
  --o-eye-core: #150f33; --o-sheen: rgba(255, 255, 255, 0.4);
  --o-hill-0: #1f5a43; --o-hill-1: #123a2c; --o-vine: #7ccf8e; --o-leaf: #3f9c63;
  --o-leaf-vein: rgba(255, 255, 255, 0.3); --o-pv: #2a5bb0; --o-pv-grid: #f0cf6c; --o-bud: #f0c060;
}

/* ---- gradient stops ---- */
.o-sky-0 { stop-color: var(--o-sky-0); }
.o-sky-1 { stop-color: var(--o-sky-1); }
.o-sky-2 { stop-color: var(--o-sky-2); }
.o-sun-0 { stop-color: var(--o-sun-0); }
.o-sun-1 { stop-color: var(--o-sun-1); }
.o-sun-2 { stop-color: var(--o-sun-2); }
.o-vane-0 { stop-color: var(--o-vane-0); }
.o-vane-1 { stop-color: var(--o-vane-1); }
.o-vane-2 { stop-color: var(--o-vane-2); }
.o-eye-0 { stop-color: var(--o-eye-0); }
.o-eye-1 { stop-color: var(--o-eye-1); }
.o-eye-2 { stop-color: var(--o-eye-2); }
.o-eye-3 { stop-color: var(--o-eye-3); }
.o-eye-4 { stop-color: var(--o-eye-4); }
.o-hill-0 { stop-color: var(--o-hill-0); }
.o-hill-1 { stop-color: var(--o-hill-1); }

/* ---- shapes ---- */
.o-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.o-rays use { fill: var(--o-ray); }
.o-rays { opacity: 0.55; }
.o-sun-halo { fill: var(--o-halo); }
.o-rachis { fill: none; stroke: var(--o-rachis); stroke-width: 1.6; stroke-linecap: round; }
.o-barbs { fill: none; stroke: var(--o-barb); stroke-width: 0.9; stroke-linecap: round; }
.o-eye-core { fill: var(--o-eye-core); }
.o-eye-sheen { fill: var(--o-sheen); }
.o-leaf { fill: var(--o-leaf); }
.o-leaf-vein { fill: none; stroke: var(--o-leaf-vein); stroke-width: 0.8; }
.o-leaf-pv { fill: var(--o-pv); }
.o-leaf-grid { fill: none; stroke: var(--o-pv-grid); stroke-width: 0.7; }
.o-bud { fill: var(--o-bud); }
.o-bud-eye { fill: var(--o-eye-1); }
.o-vine { fill: none; stroke: var(--o-vine); stroke-width: 2.4; stroke-linecap: round; }
.o-vine--thin { stroke-width: 1.4; }
.o-line { fill: none; stroke: var(--o-line); stroke-width: 1.3; stroke-linecap: round; }
.o-line--thin { stroke-width: 0.8; opacity: 0.7; }
.o-frame { fill: none; stroke: var(--o-frame); stroke-width: 1.6; }
.o-frame--inner { stroke-width: 0.7; opacity: 0.7; }
.o-frame-knot { fill: none; stroke: var(--o-frame); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }

/* ---- placement ---- */
.o-frontis { display: block; width: 100%; height: auto; overflow: visible; }
.o-fleuron { display: block; width: min(640px, 100%); height: auto; margin-inline: auto; }
.o-band { display: block; width: 100%; height: 40px; }

/* ---- motion: slow, ambient, and off for anyone who prefers less ---- */
@media (prefers-reduced-motion: no-preference) {
  .o-rays { transform-box: view-box; transform-origin: 200px 250px; animation: o-turn 240s linear infinite; }
  .o-fan { transform-box: view-box; transform-origin: 200px 600px; animation: o-sway 11s ease-in-out infinite alternate; }
  .o-eye-sheen { animation: o-glint 6s ease-in-out infinite alternate; }
  .o-vine { stroke-dasharray: 420; stroke-dashoffset: 420; animation: o-grow 2.8s cubic-bezier(.3, .6, .2, 1) .3s forwards; }
  .o-sun-halo { transform-box: fill-box; transform-origin: center; animation: o-breathe 8s ease-in-out infinite alternate; }
}
@keyframes o-turn { to { transform: rotate(360deg); } }
@keyframes o-sway { from { transform: rotate(-1.2deg); } to { transform: rotate(1.2deg); } }
@keyframes o-glint { from { opacity: 0.25; } to { opacity: 0.85; } }
@keyframes o-grow { to { stroke-dashoffset: 0; } }
@keyframes o-breathe { from { transform: scale(0.96); } to { transform: scale(1.06); } }
/* Masthead glass, feathers and living solar leaves. */
.mh-sky-0{stop-color:var(--o-sky-0)}.mh-sky-1{stop-color:var(--o-sky-1)}.mh-sky-2{stop-color:var(--o-sky-2)}.mh-sun-0{stop-color:var(--o-sun-0)}.mh-sun-1{stop-color:var(--o-sun-1)}.mh-sun-2{stop-color:var(--o-sun-2)}.mh-teal{stop-color:var(--o-eye-2)}.mh-emerald{stop-color:var(--o-eye-3)}.mh-amethyst{stop-color:var(--o-eye-0)}.mh-sapphire{stop-color:var(--o-eye-1)}.mh-deep{stop-color:var(--o-eye-core)}.mh-fade-0{stop-color:var(--paper)}.mh-fade-1{stop-color:var(--paper);stop-opacity:.3}.mh-fade-2{stop-color:var(--paper);stop-opacity:0}.mh-rays{fill:var(--o-ray);opacity:.17}.mh-sun-glow{fill:var(--o-halo)}.mh-leading{fill:none;stroke:var(--gold);stroke-width:1;opacity:.55}.mh-leading--rim{stroke-width:3}.mh-rachis{fill:none;stroke:var(--o-rachis);stroke-width:1.4}.mh-barbs{fill:none;stroke:var(--o-barb);stroke-width:1}.mh-eye-halo{fill:var(--o-eye-4);stroke:var(--o-rachis);stroke-width:.6}.mh-eye-ring{stroke:var(--o-eye-3);stroke-width:2}.mh-eye-sheen{fill:var(--o-sheen)}.mh-hex{fill:none;stroke:var(--o-pv);stroke-width:.8;opacity:.45}.mh-glass{opacity:.5}.mh-vine{fill:none;stroke:var(--o-vine);stroke-width:2}.mh-leaf{fill:var(--o-leaf)}.mh-leaf-vein{fill:none;stroke:var(--o-leaf-vein);stroke-width:.8}.mh-leaf-pv{fill:var(--o-pv)}.mh-leaf-grid{fill:none;stroke:var(--o-pv-grid);stroke-width:.7}.mh-flourish,.mh-rule{fill:none;stroke:var(--gold);stroke-width:1.3}.mh-flourish--thin{stroke-width:.7}
.mh-flourish{display:none}
