/* Harbor Pulse — premium live + AI attunement layer */
.harbor-pulse-orb{
  position:absolute;right:13px;bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:44;
  display:flex;align-items:center;gap:9px;min-height:42px;padding:5px 12px 5px 6px;
  border:1px solid rgba(196,165,116,.28);border-radius:999px;color:#f3ede3;
  background:rgba(19,29,38,.91);box-shadow:0 12px 32px rgba(12,18,24,.22);
  backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);
  cursor:pointer;transition:transform .35s var(--cinema-ease),border-color .35s,background .35s;
  -webkit-tap-highlight-color:transparent;
}
.harbor-pulse-orb:hover,.harbor-pulse-orb:focus-visible{transform:translateY(-2px);border-color:rgba(196,165,116,.58);outline:none}
.hp-orb-core{position:relative;display:block;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#d6bf94 0 7%,#6e8f81 22%,#263b48 62%,#17222b 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 0 18px rgba(109,143,129,.22)}
.hp-orb-core::after{content:'';position:absolute;inset:-3px;border:1px solid rgba(196,165,116,.24);border-left-color:transparent;border-radius:50%;animation:hp-orbit 9s linear infinite}
.hp-orb-core i{position:absolute;width:2px;height:2px;border-radius:50%;background:#f5e6d3;opacity:.78}
.hp-orb-core i:nth-child(1){left:8px;top:9px}.hp-orb-core i:nth-child(2){right:7px;top:13px}.hp-orb-core i:nth-child(3){left:14px;bottom:7px}
.hp-orb-label{max-width:112px;font-family:var(--display,var(--font-brand));font-size:10px;font-weight:500;letter-spacing:.04em;line-height:1.2;text-align:left;transition:max-width .35s}
.harbor-pulse-orb.ready{border-color:rgba(196,165,116,.8);background:rgba(31,49,55,.96);animation:hp-ready .8s var(--cinema-ease)}

.device.exp-active .harbor-pulse-orb,.device.exp-active .harbor-pulse:not(.open){opacity:0;pointer-events:none;visibility:hidden}
.harbor-pulse{
  position:absolute;inset:0;z-index:240;display:flex;align-items:flex-end;justify-content:center;
  padding:10px;background:rgba(9,14,19,0);pointer-events:none;visibility:hidden;
  transition:background .5s var(--cinema-ease),visibility .5s;overflow:hidden;border-radius:inherit;
}
.harbor-pulse.open{background:rgba(9,14,19,.58);pointer-events:auto;visibility:visible}
.hp-sky{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .7s var(--cinema-ease);pointer-events:none}
.harbor-pulse.open .hp-sky{opacity:1}
.hp-sky::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 46% at 15% 0%,rgba(196,165,116,.24),transparent 58%),
    radial-gradient(ellipse 74% 52% at 100% 22%,rgba(76,126,109,.2),transparent 56%),
    linear-gradient(165deg,rgba(14,22,30,.95),rgba(25,43,52,.95) 52%,rgba(34,52,46,.96));
}
.hp-sky i{position:absolute;width:3px;height:3px;border-radius:50%;background:#f2e5ce;opacity:.5;animation:hp-star 4s ease-in-out infinite}
.hp-sky i:nth-child(1){left:16%;top:16%}.hp-sky i:nth-child(2){left:72%;top:11%;animation-delay:1.2s}.hp-sky i:nth-child(3){left:87%;top:31%;animation-delay:2.1s}
.hp-panel{
  position:relative;z-index:2;width:100%;max-height:min(88%,720px);overflow:auto;
  border:1px solid rgba(242,235,224,.12);border-top:2px solid rgba(196,165,116,.7);border-radius:24px 24px 18px 18px;
  background:linear-gradient(180deg,rgba(247,243,235,.99),rgba(232,238,235,.99));
  box-shadow:0 -24px 70px rgba(4,9,13,.38);transform:translateY(calc(100% + 20px));
  transition:transform .58s var(--cinema-ease);
}
.harbor-pulse.open .hp-panel{transform:translateY(0)}
.hp-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid rgba(44,62,80,.09)}
.hp-head>div{display:flex;align-items:baseline;gap:8px}
.hp-head span{font-family:var(--display,var(--font-brand));font-size:12px;color:#273a48}
.hp-head strong{font:500 9px/1 var(--font-brand);letter-spacing:.17em;text-transform:uppercase;color:#8a7451}
.hp-close{width:40px;height:40px;margin:-10px -8px -8px 0;border:none;border-radius:50%;background:transparent;color:#7a8994;font:300 26px/1 var(--sans,sans-serif);cursor:pointer}
.hp-close:hover,.hp-close:focus-visible{background:rgba(44,62,80,.06);color:#273a48;outline:none}
.hp-body{padding:22px 20px 24px}
.hp-weather{display:flex;align-items:center;gap:8px;font:400 9px/1.3 var(--font-brand);letter-spacing:.17em;text-transform:uppercase;color:#7f6b49}
.hp-weather-dot{width:18px;height:1px;border-radius:2px;background:linear-gradient(90deg,transparent,#c4a574);box-shadow:none;animation:hp-tide-mark 5s var(--cinema-ease) infinite alternate}
.hp-line{max-width:15ch;margin:13px 0 20px;font:500 clamp(1.55rem,6vw,2.05rem)/1.08 var(--display,var(--font-brand));letter-spacing:-.035em;color:#253a47}
.hp-live{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:13px 14px;border-radius:15px;background:rgba(35,56,68,.055);border:1px solid rgba(35,56,68,.08)}
.hp-live-mark{position:relative;display:flex;align-items:flex-end;gap:2px;width:20px;height:18px}
.hp-live-mark i{display:block;width:4px;border-radius:3px;background:#52796f;animation:hp-level 1.8s ease-in-out infinite}
.hp-live-mark i:nth-child(1){height:7px}.hp-live-mark i:nth-child(2){height:15px;animation-delay:.3s}.hp-live-mark i:nth-child(3){height:10px;animation-delay:.6s}
.hp-live div:last-child{display:flex;flex-direction:column;gap:2px}
.hp-live span,.hp-k{font:500 8px/1.3 var(--font-brand);letter-spacing:.16em;text-transform:uppercase;color:#6e897f}
.hp-live strong{font:400 11px/1.4 var(--font-brand);color:#51616b}
.hp-next{padding:17px;border-radius:18px;background:#223746;color:#f2ebe0;box-shadow:0 14px 30px rgba(24,40,51,.12)}
.hp-next .hp-k{color:#c4a574}
.hp-next>strong{display:block;margin-top:8px;font:500 1.12rem/1.2 var(--display,var(--font-brand))}
.hp-next p{margin:5px 0 14px;font:300 11px/1.5 var(--font-brand);color:rgba(242,235,224,.64)}
.hp-primary{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border:1px solid rgba(242,235,224,.1);border-radius:999px;background:#f2ebe0;color:#223746;font:500 11px/1 var(--font-brand);cursor:pointer}
.hp-primary b{font-size:16px;font-weight:300}
.hp-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.hp-choices button{min-height:46px;padding:9px;border:1px solid rgba(44,62,80,.12);border-radius:14px;background:transparent;color:#52636e;font:400 10px/1.35 var(--font-brand);cursor:pointer}
.hp-choices button:hover,.hp-choices button:focus-visible{border-color:rgba(82,121,111,.5);color:#355d52;outline:none}
.hp-privacy{margin:14px 2px 0;text-align:center;font:300 8.5px/1.5 var(--font-brand);letter-spacing:.03em;color:#8d989f}
.hp-loading{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#73838c;font:300 11px/1.4 var(--font-brand)}
.hp-loading i{width:34px;height:34px;border-radius:50%;border:1px solid rgba(82,121,111,.18);border-top-color:#52796f;animation:hp-spin 1.2s linear infinite}

@keyframes hp-orbit{to{transform:rotate(360deg)}}
@keyframes hp-tide-mark{from{transform:translateX(-2px);opacity:.52}to{transform:translateX(3px);opacity:1}}
@keyframes hp-ready{0%{transform:scale(.96)}55%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes hp-star{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:.85;transform:scale(1.25)}}
@keyframes hp-level{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1);opacity:1}}
@keyframes hp-spin{to{transform:rotate(360deg)}}

@media(max-width:360px){
  .hp-orb-label{display:none}.harbor-pulse-orb{padding-right:6px}
  .hp-choices{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .hp-orb-core::after,.hp-weather-dot,.hp-live-mark i,.hp-sky i,.hp-loading i{animation:none!important}
}
