/* Fogline Meridian — Sanctuary's shared living horizon */
:root{
  --fl-ink:#16232d;
  --fl-deep:#233847;
  --fl-water:#425f67;
  --fl-mist:#dce4e6;
  --fl-paper:#f4f0e7;
  --fl-sage:#52796f;
  --fl-ember:#c4a574;
  --fl-ease:cubic-bezier(.22,.61,.36,1);
  --fl-tide:0;
}

.fogline-host{position:relative;isolation:isolate;overflow:hidden}
.fogline-scene{
  --fl-sky-a:#b9cbd2;--fl-sky-b:#798f96;--fl-sky-c:#354c57;
  --fl-ridge-a:#415965;--fl-ridge-b:#293e49;--fl-line:#d4b885;
  position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;
  color:var(--fl-line);contain:layout paint;
}
.fogline-scene[data-phase="dawn"]{
  --fl-sky-a:#eadbc8;--fl-sky-b:#a9bdba;--fl-sky-c:#526d72;
  --fl-ridge-a:#6c8582;--fl-ridge-b:#344f55;--fl-line:#ddb982;
}
.fogline-scene[data-phase="day"]{
  --fl-sky-a:#dce6e8;--fl-sky-b:#aabec1;--fl-sky-c:#668087;
  --fl-ridge-a:#718b8a;--fl-ridge-b:#3e5b60;--fl-line:#cbb27d;
}
.fogline-scene[data-phase="dusk"]{
  --fl-sky-a:#d7bea7;--fl-sky-b:#8e9897;--fl-sky-c:#3c5360;
  --fl-ridge-a:#5f7474;--fl-ridge-b:#2b424c;--fl-line:#e0ae76;
}
.fogline-scene[data-phase="night"]{
  --fl-sky-a:#293b49;--fl-sky-b:#1d303c;--fl-sky-c:#111b24;
  --fl-ridge-a:#243b42;--fl-ridge-b:#13242c;--fl-line:#c4a574;
}
.fogline-scene[data-weather="pull"]{--fl-line:#d49b77;--fl-water:#536974}
.fogline-scene[data-weather="vigil"]{--fl-sky-a:#314250;--fl-line:#d7bd8d}
.fogline-scene[data-weather="hollow"]{--fl-line:#9eb3af;--fl-ridge-a:#31494f}
.fogline-scene[data-weather="witness"]{--fl-line:#c9a96d;--fl-ridge-a:#425b50}
.fogline-scene[data-weather="steady"]{--fl-line:#8fb1a4}
.fl-svg{position:absolute;inset:-2%;width:104%;height:104%;overflow:visible}
.fl-orbit{opacity:.86;transform-origin:center}
.fl-star{fill:#f5e8d4;opacity:.38}
.fl-ridge-far{fill:var(--fl-ridge-a);opacity:.52}
.fl-ridge-near{fill:var(--fl-ridge-b);opacity:.91}
.fl-water{opacity:.65}
.fl-meridian{fill:none;stroke:var(--fl-line);stroke-width:1.15;opacity:.62;vector-effect:non-scaling-stroke}
.fl-meridian-glint{fill:none;stroke:#f6dfb8;stroke-width:2.2;stroke-linecap:round;opacity:.68;vector-effect:non-scaling-stroke}
.fl-mist{
  position:absolute;left:-18%;right:-18%;top:36%;height:34%;opacity:.34;
  background:
    radial-gradient(ellipse 34% 45% at 18% 52%,rgba(241,245,242,.78),transparent 72%),
    radial-gradient(ellipse 42% 50% at 62% 48%,rgba(226,236,233,.64),transparent 72%),
    radial-gradient(ellipse 30% 42% at 92% 55%,rgba(243,238,226,.5),transparent 72%);
  filter:blur(13px);transform:translate3d(calc((var(--fl-tide) - .5) * 7%),0,0);
  animation:fl-drift 28s ease-in-out infinite alternate;
}
.fl-grain{
  position:absolute;inset:0;opacity:.035;mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.fogline-scene.is-crossing .fl-meridian{animation:fl-draw .72s var(--fl-ease) both}
.fogline-scene.is-crossing .fl-meridian-glint{animation:fl-glint .72s var(--fl-ease) both}
.fogline-scene.is-crossing .fl-ridge-far{animation:fl-ridge-cross .72s var(--fl-ease) both}
.fogline-scene.is-crossing .fl-orbit{animation:fl-orbit-cross .9s var(--fl-ease) both}

/* Shared site atmosphere */
.site-fogline{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.2;
  mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 68%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 68%,transparent 100%);
}
.site-fogline .fogline-scene{top:8vh;height:72vh}
.site-fogline .fl-star,.site-fogline .fl-orbit{opacity:.2}
.site-fogline .fl-ridge-near{opacity:.24}
.site-fogline .fl-ridge-far{opacity:.18}
.site-fogline .fl-water{opacity:.12}
.site-fogline .fl-meridian{opacity:.28}
body.has-fogline>main,body.has-fogline>.wrap,body.has-fogline>.page-hero,body.has-fogline>.site-trail,body.has-fogline>.foot{position:relative;z-index:1}

/* Full-screen crossing between places */
.site-crossing{
  position:fixed;inset:0;z-index:9997;pointer-events:none;visibility:hidden;opacity:0;
  background:var(--fl-ink);transition:opacity .38s var(--fl-ease),visibility .38s;
}
.site-crossing .fogline-scene{opacity:.95}
.site-crossing-copy{
  position:absolute;left:50%;bottom:max(36px,8vh);z-index:2;transform:translate(-50%,14px);
  font:500 clamp(1.1rem,4vw,1.5rem)/1.2 var(--font-brand);letter-spacing:-.02em;
  color:rgba(244,240,231,.86);opacity:0;transition:opacity .32s .08s,transform .5s var(--fl-ease);
}
body.is-crossing .site-crossing{visibility:visible;opacity:1}
body.is-crossing .site-crossing-copy{opacity:1;transform:translate(-50%,0)}

/* Standalone Dove keeps its sky while gaining the same living meridian */
.dove-meridian{
  position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.24;overflow:hidden;
  mask-image:linear-gradient(to bottom,transparent 4%,#000 28%,#000 78%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 4%,#000 28%,#000 78%,transparent 100%);
}
.dove-meridian .fl-sky,.dove-meridian .fl-orbit,.dove-meridian .fl-star{opacity:0}
.dove-meridian .fl-ridge-far{opacity:.18}
.dove-meridian .fl-ridge-near{opacity:.22}
.dove-meridian .fl-water{opacity:.08}
.dove-meridian .fl-meridian{opacity:.72}

/* Harbor Map gets geography, not another gradient */
.nav-overlay-fogline{position:absolute;inset:0;z-index:0;opacity:.58;pointer-events:none}
.nav-overlay-fogline .fl-svg{height:78%;top:22%}
.nav-overlay-fogline .fl-mist{top:44%;opacity:.22}
.nav-overlay-fogline .fl-sky{opacity:.56}
.nav-overlay-fogline .fl-water{opacity:.42}

/* Demo persistent crossing veil */
.harbor-visual-veil{
  position:absolute;inset:0;z-index:35;pointer-events:none;opacity:0;visibility:hidden;
  background:rgba(14,22,29,.16);transition:opacity .46s var(--fl-ease),visibility .46s;
  border-radius:inherit;overflow:hidden;
}
.harbor-visual-veil.crossing{opacity:.82;visibility:visible}
.harbor-visual-veil .fogline-scene{opacity:.93}
.harbor-visual-veil .fl-svg{transform:scale(1.04)}
.harbor-visual-veil-label{
  position:absolute;left:18px;bottom:92px;z-index:2;color:rgba(244,240,231,.8);
  font:500 12px/1.3 var(--font-brand);letter-spacing:.01em;
  opacity:0;transform:translateY(8px);transition:opacity .25s .12s,transform .42s .12s var(--fl-ease);
}
.harbor-visual-veil.crossing .harbor-visual-veil-label{opacity:1;transform:none}
@media(min-width:481px){
  .device[data-emotional-weather="pull"]{box-shadow:0 2px 1px rgba(255,255,255,.18) inset,0 40px 90px -30px rgba(8,12,18,.72),0 0 0 1px rgba(212,155,119,.26),0 0 52px -28px rgba(212,155,119,.48)}
  .device[data-emotional-weather="hollow"]{box-shadow:0 2px 1px rgba(255,255,255,.18) inset,0 40px 90px -30px rgba(8,12,18,.72),0 0 0 1px rgba(158,179,175,.22),0 0 52px -30px rgba(158,179,175,.42)}
  .device[data-emotional-weather="witness"]{box-shadow:0 2px 1px rgba(255,255,255,.18) inset,0 40px 90px -30px rgba(8,12,18,.72),0 0 0 1px rgba(196,165,116,.28),0 0 52px -28px rgba(82,121,111,.5)}
}

.ob-fogline,.world-open-fogline{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ob-film:has(.ob-fogline)::before{opacity:.22}
.ob-film-light .ob-fogline{opacity:.2;mix-blend-mode:multiply}
.ob-film:not(.ob-film-light) .ob-fogline{opacity:.58}
.world-open-fogline{opacity:.72}
.world-open:has(.world-open-fogline){background:rgba(10,17,23,.48);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.world-open-inner{position:relative;z-index:2}

/* Fogline replaces copied overlay skies */
.nd-sky>.fogline-scene,.hp-sky>.fogline-scene{z-index:0}
.nd-sky:has(.fogline-scene),.hp-sky:has(.fogline-scene){background:none!important}
.nd-sky:has(.fogline-scene)::before,.hp-sky:has(.fogline-scene)::before{opacity:0!important}
.hp-sky:has(.fogline-scene)>i{display:none!important}
.nav-overlay:has(.nav-overlay-fogline)::before{opacity:.5}

/* Shared editorial rhythm across every marketing route */
body.has-fogline .page-hero{overflow:hidden}
body.has-fogline .page-hero::after{
  content:'';position:absolute;left:50%;bottom:0;width:min(680px,82vw);height:1px;transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(196,165,116,.22) 28%,rgba(82,121,111,.48) 50%,rgba(196,165,116,.2) 72%,transparent);
}
body.has-fogline .page-hero h1{text-wrap:balance}
body.has-fogline .section-label{display:flex;align-items:center;gap:12px;width:100%}
body.has-fogline .section-label::after{
  content:'';height:1px;flex:1;background:linear-gradient(90deg,rgba(82,121,111,.26),transparent);
}
body.has-fogline .btn-primary,body.has-fogline .btn-secondary{position:relative;overflow:hidden}
body.has-fogline .btn-primary::after,body.has-fogline .btn-secondary::after{
  content:'';position:absolute;left:-40%;top:0;width:32%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);
  transform:skewX(-18deg);transition:left .7s var(--fl-ease);
}
body.has-fogline .btn-primary:hover::after,body.has-fogline .btn-secondary:hover::after{left:118%}
.harbor-dock::before{
  content:'';position:absolute;left:18px;right:18px;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--fl-ember),transparent);opacity:.5;
}
.harbor-dock a.has-live-signal{position:relative}
.harbor-dock a.has-live-signal::after{
  content:'';position:absolute;right:8px;top:7px;width:2px;height:10px;border-radius:2px;
  background:linear-gradient(to bottom,transparent,var(--fl-ember),transparent);
  animation:fl-lantern-once 1.4s var(--fl-ease) both;
}

/* The Grove reads as a field of witness, not a social-card feed */
body.has-fogline .gp-post{position:relative;overflow:hidden;transform:none!important}
body.has-fogline .gp-post::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:1px;
  background:linear-gradient(to bottom,transparent,rgba(82,121,111,.46),rgba(196,165,116,.34),transparent);
}
body.has-fogline .gp-post::after{
  content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,rgba(82,121,111,.18),transparent 70%);
}
body.has-fogline .gp-post:hover{box-shadow:none!important;border-color:rgba(82,121,111,.24)!important}

/* Meridian plates: primary product story stops looking like a SaaS grid */
body.premium-site .feat-grid{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0!important;
  border-top:1px solid rgba(44,62,80,.13);border-bottom:1px solid rgba(44,62,80,.13);
}
body.premium-site .feat-card{
  min-height:156px;border:0!important;border-radius:0!important;margin:0!important;
  background:transparent!important;box-shadow:none!important;padding:26px 24px!important;
  border-bottom:1px solid rgba(44,62,80,.1)!important;position:relative;overflow:hidden;
  transform:none!important;transition:color .35s,background .35s!important;
}
body.premium-site .feat-card:nth-child(odd){border-right:1px solid rgba(44,62,80,.1)!important}
body.premium-site .feat-card:nth-child(-n+3){
  grid-column:1/-1;min-height:190px;padding:34px clamp(24px,7vw,68px)!important;
  display:grid!important;grid-template-columns:52px minmax(0,1fr);
  grid-template-areas:'icon title' 'icon description';column-gap:18px;align-content:center;
}
body.premium-site .feat-card:nth-child(-n+3) .feat-icon{grid-area:icon;align-self:start;margin:2px 0 0!important}
body.premium-site .feat-card:nth-child(-n+3) .feat-text-t{grid-area:title}
body.premium-site .feat-card:nth-child(-n+3) .feat-text-s{grid-area:description}
body.premium-site .feat-card::after{
  content:'';position:absolute;left:0;right:0;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent 5%,rgba(196,165,116,.18) 32%,rgba(82,121,111,.42) 50%,rgba(196,165,116,.16) 72%,transparent 95%);
  transform:scaleX(.25);transform-origin:left;opacity:0;transition:transform .7s var(--fl-ease),opacity .35s;
}
body.premium-site .feat-card:hover,body.premium-site .feat-card:focus-visible{background:rgba(255,255,255,.22)!important;text-decoration:none!important}
body.premium-site .feat-card:focus-visible{outline:2px solid var(--sage);outline-offset:-3px}
body.premium-site .feat-card:hover::after,body.premium-site .feat-card:focus-visible::after{transform:scaleX(1);opacity:1}
body.premium-site .feat-icon{background:transparent!important;border:0!important;width:38px!important;height:38px!important;color:var(--sage)!important}
body.premium-site .feat-text-t{
  font-family:var(--font-brand)!important;font-size:clamp(1.15rem,3vw,1.48rem)!important;
  font-weight:500!important;letter-spacing:-.025em!important;
}
body.premium-site .feat-card:nth-child(-n+3) .feat-text-t{font-size:clamp(1.65rem,5vw,2.35rem)!important}
body.premium-site .feat-text-s{max-width:52ch;line-height:1.7!important}

/* One quiet lantern signal — no equalizer-loop UI */
.nav-live-signal,.hp-live-mark{display:block!important;position:relative!important;width:18px!important;height:18px!important}
.nav-live-signal i,.hp-live-mark i{display:none!important}
.nav-live-signal::before,.hp-live-mark::before{
  content:'';position:absolute;left:8px;top:1px;width:1.5px;height:16px;border-radius:2px;
  background:linear-gradient(to bottom,transparent,var(--fl-ember),transparent);opacity:.72;
}
.nav-live.is-live .nav-live-signal::after,.hp-live-mark::after{
  content:'';position:absolute;left:3px;top:4px;width:11px;height:11px;border:1px solid rgba(196,165,116,.34);border-radius:50%;
  animation:fl-lantern-once 1.4s var(--fl-ease) both;
}

@keyframes fl-drift{from{transform:translate3d(-2%,0,0)}to{transform:translate3d(4%,1%,0)}}
@keyframes fl-draw{from{stroke-dasharray:0 1500;opacity:0}to{stroke-dasharray:1500 0;opacity:.72}}
@keyframes fl-glint{0%{stroke-dasharray:0 1200;opacity:0}55%{opacity:.9}100%{stroke-dasharray:180 1200;stroke-dashoffset:-900;opacity:.2}}
@keyframes fl-ridge-cross{0%{transform:translateX(-2%);opacity:.18}100%{transform:none;opacity:.52}}
@keyframes fl-orbit-cross{0%{transform:translateY(18px);opacity:0}100%{transform:none;opacity:.86}}
@keyframes fl-lantern-once{0%{transform:scale(.2);opacity:0}45%{transform:scale(1.35);opacity:1}100%{transform:scale(1);opacity:.25}}

@media(max-width:719px){
  .site-fogline{opacity:.15}
  body.premium-site .feat-grid{grid-template-columns:1fr}
  body.premium-site .feat-card,body.premium-site .feat-card:nth-child(-n+3){
    grid-column:auto;min-height:142px;padding:24px 20px!important;display:grid!important;
    grid-template-columns:42px minmax(0,1fr);
    grid-template-areas:'icon title' 'icon description';column-gap:14px;align-content:center;
  }
  body.premium-site .feat-card .feat-icon{grid-area:icon;align-self:start;margin:2px 0 0!important}
  body.premium-site .feat-card .feat-text-t{grid-area:title}
  body.premium-site .feat-card .feat-text-s{grid-area:description}
  body.premium-site .feat-card:nth-child(odd){border-right:0!important}
  body.premium-site .feat-card:nth-child(-n+3) .feat-text-t{font-size:1.45rem!important}
  .site-crossing-copy{width:80%;text-align:center}
}

@media(prefers-reduced-motion:reduce){
  .fl-mist,.fogline-scene.is-crossing *,.nav-live-signal::after,.hp-live-mark::after{animation:none!important}
  .fl-mist{transform:none}
}
