/* OSM reusable internal page heading — v0.4 */
:root{--osm-page-green:#2f4f4f}
.osm-page-heading{position:relative;isolation:isolate;overflow:hidden;background:#fff;padding:49px 20px 54px;text-align:center;color:var(--osm-page-green)}
.osm-page-heading::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(47,79,79,.038) 1px,transparent 1px),linear-gradient(90deg,rgba(47,79,79,.038) 1px,transparent 1px);background-size:82px 82px;mask-image:linear-gradient(#000,transparent 95%);animation:osmHeadingGrid 26s linear infinite}
.osm-page-heading__kicker{display:flex;align-items:center;justify-content:center;gap:20px;color:var(--osm-page-green);font-size:10px;font-weight:900;letter-spacing:.37em;animation:osmHeadingAppear .85s .05s both}
.osm-page-heading__kicker::before,.osm-page-heading__kicker::after{content:"";display:block;width:39px;height:2px;background:currentColor;animation:osmHeadingKicker 4s ease-in-out infinite;transform-origin:center}
.osm-page-heading__kicker::after{animation-delay:-2s}
.osm-page-heading__title{display:flex;justify-content:center;align-items:baseline;flex-wrap:wrap;gap:.18em;margin:18px auto 0;max-width:min(1300px,100%);font-size:clamp(39px,5.1vw,70px);font-weight:900;line-height:1.07;letter-spacing:-.063em;text-transform:uppercase}
.osm-page-heading__title .solid{color:var(--osm-page-green);display:inline-block;animation:osmHeadingWord 1s cubic-bezier(.16,1,.3,1) .12s both}
.osm-page-heading__title .outline{color:transparent;-webkit-text-stroke:1.35px var(--osm-page-green);display:inline-block;animation:osmHeadingWord 1s cubic-bezier(.16,1,.3,1) .32s both,osmHeadingStroke 6.2s ease-in-out 1.4s infinite}
.osm-page-heading__title.is-long{font-size:clamp(33px,4.3vw,61px);letter-spacing:-.055em}
/* Drawing: animated lines run toward and away from central rotating diamond. */
.osm-heading-trace{height:39px;width:min(630px,70vw);margin:11px auto 0;position:relative;display:flex;align-items:center;justify-content:center;gap:11px;animation:osmHeadingAppear .85s .5s both}
.osm-heading-trace__rail{position:relative;flex:1;height:2px;background:rgba(47,79,79,.08);overflow:hidden}
.osm-heading-trace__rail::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(47,79,79,.78),var(--osm-page-green));transform:translateX(-110%) scaleX(.9);animation:osmHeadingRace 4.2s ease-in-out infinite}
.osm-heading-trace__rail:nth-of-type(2)::before{transform:translateX(110%) rotate(180deg);animation-name:osmHeadingRaceReverse;animation-delay:-.55s}
.osm-heading-trace__diamond{flex:none;position:relative;display:block;width:13px;height:13px;border:2px solid var(--osm-page-green);background:white;transform:rotate(45deg);animation:osmHeadingDiamond 4.2s ease-in-out infinite;box-shadow:0 0 0 0 rgba(47,79,79,.13)}
.osm-heading-trace__diamond::before{content:"";position:absolute;inset:-8px;border:1px solid rgba(47,79,79,.18);animation:osmHeadingHalo 4.2s ease-in-out infinite}
.osm-heading-trace__diamond::after{content:"";position:absolute;left:3px;top:3px;width:3px;height:3px;background:var(--osm-page-green)}
.osm-page-heading__drawing{position:absolute;right:2%;bottom:0;width:min(340px,35vw);height:95px;z-index:-1;opacity:.14;pointer-events:none;display:flex;align-items:flex-end;gap:12px}
.osm-page-heading__drawing i{display:block;height:72%;flex:1;border:1px solid var(--osm-page-green);background:repeating-linear-gradient(0deg,transparent 0 17px,rgba(47,79,79,.7) 18px 19px);transform-origin:bottom;animation:osmHeadingRise 7s cubic-bezier(.16,1,.3,1) infinite}
.osm-page-heading__drawing i:nth-child(2){height:100%;animation-delay:-2s}.osm-page-heading__drawing i:nth-child(3){height:58%;animation-delay:-4s}
@keyframes osmHeadingGrid{to{background-position:82px 82px,82px 82px}}
@keyframes osmHeadingAppear{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes osmHeadingWord{from{opacity:0;transform:translateY(26px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes osmHeadingKicker{0%,100%{transform:scaleX(.35);opacity:.36}50%{transform:scaleX(1);opacity:1}}
@keyframes osmHeadingRace{0%,9%{transform:translateX(-110%)}56%,64%{transform:translateX(0)}100%{transform:translateX(110%)}}
@keyframes osmHeadingRaceReverse{0%,9%{transform:translateX(110%)}56%,64%{transform:translateX(0)}100%{transform:translateX(-110%)}}
@keyframes osmHeadingDiamond{0%,100%{transform:rotate(45deg) scale(.75);box-shadow:0 0 0 0 rgba(47,79,79,.08)}50%{transform:rotate(225deg) scale(1.14);box-shadow:0 0 0 9px rgba(47,79,79,.055)}}
@keyframes osmHeadingHalo{0%,100%{opacity:0;transform:scale(.6)}50%{opacity:1;transform:scale(1.3)}}
@keyframes osmHeadingStroke{0%,100%{-webkit-text-stroke-color:#2f4f4f}50%{-webkit-text-stroke-color:#9ab7ad}}
@keyframes osmHeadingRise{0%,15%{transform:scaleY(.1);opacity:.05}45%,78%{transform:scaleY(1);opacity:.85}100%{transform:scaleY(1);opacity:.16}}
@media(max-width:760px){.osm-page-heading{padding:41px 15px 42px}.osm-page-heading__kicker{font-size:8px;letter-spacing:.23em;gap:11px}.osm-page-heading__kicker::before,.osm-page-heading__kicker::after{width:23px}.osm-page-heading__title{gap:.15em;font-size:clamp(34px,8vw,56px)}.osm-page-heading__title.is-long{font-size:clamp(29px,6vw,45px)}.osm-heading-trace{width:min(360px,78vw)}.osm-page-heading__drawing{width:34vw;height:76px;opacity:.095}}
@media(max-width:410px){.osm-page-heading__title{font-size:clamp(31px,7.5vw,42px)}.osm-page-heading__title.is-long{font-size:clamp(25px,5.8vw,33px)}}
@media(prefers-reduced-motion:reduce){.osm-page-heading *, .osm-page-heading *::before,.osm-page-heading *::after{animation:none!important;transition:none!important}}
