/* Animated logos, cut from the real art (tools/logo_anim). Final frame = the logo.
   Plays only while the wrapper has .cn-anim / .cm-anim (landing: always; headers: first page of a visit). */
.alogo{position:relative;width:100%;height:auto;display:block}
.alogo .p{position:absolute}
.alogo img{display:block;width:100%;height:100%;max-width:none}

/* Newport palm badge */
.cn .cn-palmL,.cn .cn-palmR,.cn .cn-sun,.cn .cn-sway{transform-origin:var(--o)}
.cn .cn-sway{width:100%;height:100%}
.cn-anim .cn-glow{animation:cn-fade .7s ease-out both,cn-breathe 4.5s ease-in-out 1.6s infinite}
.cn-anim .cn-base{animation:cn-pop .6s cubic-bezier(.3,1.4,.5,1) both;transform-origin:50% 60%}
.cn-anim .cn-sun{animation:cn-rise .8s cubic-bezier(.2,.9,.3,1) .35s both}
.cn-anim .cn-palmL{animation:cn-grow .95s cubic-bezier(.25,1.3,.45,1) .55s both}
.cn-anim .cn-palmR{animation:cn-grow .95s cubic-bezier(.25,1.3,.45,1) .7s both}
.cn .cn-palmL .cn-sway{animation:cn-sway 4.8s ease-in-out 1.6s infinite}
.cn .cn-palmR .cn-sway{animation:cn-sway 5.6s ease-in-out 1.9s infinite reverse}
.cn-anim .cn-letter{animation:cn-stamp .45s cubic-bezier(.3,1.5,.55,1) var(--d) both}
.cn-anim .cn-word{animation:cn-up .5s ease-out var(--d) both}
@keyframes cn-fade{from{opacity:0}to{opacity:1}}
@keyframes cn-breathe{0%,100%{opacity:1}50%{opacity:.62}}
@keyframes cn-pop{from{transform:scale(.82);opacity:0}45%{opacity:1}to{transform:none;opacity:1}}
@keyframes cn-rise{from{transform:scale(0);opacity:0}25%{opacity:1}to{transform:none;opacity:1}}
@keyframes cn-grow{from{transform:scale(.25,0) rotate(-7deg);opacity:0}25%{opacity:1}to{transform:none;opacity:1}}
@keyframes cn-sway{0%,100%{transform:rotate(0)}30%{transform:rotate(1.5deg)}70%{transform:rotate(-1.1deg)}}
@keyframes cn-stamp{from{transform:translateY(-55%) scale(1.35);opacity:0}55%{opacity:1}to{transform:none;opacity:1}}
@keyframes cn-up{from{transform:translateY(60%);opacity:0}to{transform:none;opacity:1}}

/* Middletown letters */
.cm .cm-hop,.cm .cm-drop{position:absolute;inset:0}
.cm .cm-face{z-index:1}
.cm-anim .cm-drop{animation:cm-drop .55s cubic-bezier(.3,1.5,.55,1) var(--d) both;transform-origin:50% 100%}
.cm-anim .cm-sh{animation:cm-extrude .38s cubic-bezier(.2,.9,.3,1.2) calc(var(--d) + .43s) both}
.cm-anim .cm-word{animation:cm-rise .5s cubic-bezier(.2,.8,.3,1) var(--d) both}
.cm .cm-hop{animation:cm-wave 6s ease-in-out calc(3.2s + var(--i) * .09s) infinite}
@keyframes cm-drop{from{transform:translateY(-115%) rotate(var(--r)) scale(1.08);opacity:0}45%{opacity:1}to{transform:none;opacity:1}}
@keyframes cm-extrude{from{transform:translate(var(--tx),var(--ty))}to{transform:none}}
@keyframes cm-rise{from{transform:translateY(70%);opacity:0}to{transform:none;opacity:1}}
@keyframes cm-wave{0%,10%,100%{transform:none}4%{transform:translateY(-7%) rotate(calc(var(--r) * -.25))}7%{transform:translateY(1.5%)}}
.hdr .cm .cm-hop{animation:none}

@media (prefers-reduced-motion:reduce){.alogo *{animation:none!important}}
