.heart-rhythm-page{--heart-violet:#7754be;background:var(--heart-deep-space)}.heart-rhythm-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.heart-rhythm-shell{position:relative;isolation:isolate;min-height:820px;overflow:hidden;color:var(--clr-text);background:var(--heart-deep-space)}.heart-svg-definitions{position:absolute;width:0;height:0;overflow:hidden}.heart-rhythm-shell::before{content:'';position:absolute;z-index:3;inset:0;border:1px solid rgb(from var(--navy-page-accent) r g b / 0.18);opacity:var(--edge-glow,0);pointer-events:none;box-shadow:inset 34px 0 64px -42px rgb(from var(--navy-page-accent) r g b / 0.82),inset -34px 0 64px -42px rgb(from var(--navy-page-highlight) r g b / 0.76),inset 0 28px 58px -42px rgb(from var(--navy-page-accent-secondary) r g b / 0.68),inset 0 -28px 58px -42px rgb(from var(--navy-page-accent) r g b / 0.56);mix-blend-mode:screen;filter:brightness(var(--edge-brightness,1));will-change:opacity,filter}.heart-home-back,.heart-home-back:visited{position:absolute;z-index:4;top:20px;left:max(18px,calc((100% - 720px) / 2));display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgb(from var(--navy-page-accent) r g b / 0.24);border-radius:var(--radius-pill);background:rgb(from var(--navy-page-chrome) r g b / 0.72);color:rgb(from var(--navy-page-text) r g b / 0.86);font:700 0.78rem/1 Arial,sans-serif;text-decoration:none;box-shadow:0 8px 24px rgb(from var(--clr-black) r g b / 0.2);backdrop-filter:blur(8px);transition:color 0.18s ease,border-color 0.18s ease,background 0.18s ease,transform 0.18s ease}.heart-home-back span{font-size:1.15rem;line-height:0.8;transition:transform 0.18s ease}.heart-home-back:hover,.heart-home-back:focus-visible{border-color:rgb(from var(--navy-page-accent) r g b / 0.52);background:rgb(from var(--navy-page-surface-hover) r g b / 0.9);color:var(--clr-white);outline:none;transform:translateY(-1px)}.heart-home-back:hover span,.heart-home-back:focus-visible span{transform:translateX(-2px)}.heart-rhythm-atmosphere{position:absolute;z-index:-3;inset:0;background:linear-gradient(180deg,rgb(from var(--clr-black) r g b / 0.62),rgb(from var(--navy-page-bg) r g b / 0.22) 42%,rgb(from var(--clr-black) r g b / 0.76)),linear-gradient(90deg,rgb(from var(--clr-black) r g b / 0.42),transparent 42%,rgb(from var(--clr-black) r g b / 0.42)),url('/mobile-assets/other/DARK_COSMOS.png') center / cover no-repeat;transform:scale(1.02)}.heart-rhythm-atmosphere::after{content:'';position:absolute;inset:0;opacity:0.34;background:repeating-radial-gradient(ellipse at 50% 38%,transparent 0 86px,rgb(from var(--navy-page-accent) r g b / 0.08) 87px 88px,transparent 89px 142px);animation:heart-atmosphere-breathe 7s ease-in-out infinite}.heart-rhythm-stars{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}.heart-rhythm-stars--ambient{opacity:0.8}.heart-rhythm-stars--ritual{z-index:2;opacity:0;transition:opacity 320ms ease}.heart-rhythm-shell.is-holding .heart-rhythm-stars--ritual{opacity:1}.heart-star{position:absolute;top:var(--star-y);left:var(--star-x);width:var(--star-size);height:var(--star-size);border-radius:50%;background:var(--star-color);opacity:0;box-shadow:0 0 var(--star-glow) var(--star-color);animation:heart-star-twinkle var(--star-duration) ease-in-out var(--star-delay) infinite}.heart-star:nth-child(4n)::after{content:'';position:absolute;top:50%;left:50%;width:var(--star-ray);height:1px;background:linear-gradient(90deg,transparent,var(--star-color),transparent);transform:translate(-50%,-50%)}.heart-rhythm-stars--ritual .heart-star{animation-name:heart-star-burst}.heart-rhythm-stage{position:relative;z-index:1;width:min(100% - 32px,720px);min-height:820px;margin:0 auto;padding:72px 0 96px}.heart-rhythm-stage.heart-result{padding-bottom:120px}.heart-rhythm-stage[hidden]{display:none !important}.heart-rhythm-heading{text-align:center}.heart-rhythm-heading>span{display:block;margin-bottom:8px;color:rgb(from var(--navy-page-accent-secondary) r g b / 0.9);font-size:0.76rem;font-weight:800;letter-spacing:0.16em;text-transform:uppercase}.heart-rhythm-heading:is(h1,h2){margin:0;color:var(--heart-ice);font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.25rem,7vw,3.25rem);font-weight:600;line-height:1.05;text-shadow:0 0 30px rgb(from var(--navy-page-accent) r g b / 0.28)}.heart-rhythm-heading p{margin:28px 0 0;color:var(--heart-cream);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.35rem,4vw,1.75rem);line-height:1.3}.heart-relationship-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:30px}.heart-relationship-grid button{display:grid;place-items:center;align-content:center;gap:7px;min-height:118px;padding:14px 10px;border:1px solid rgb(from var(--navy-page-accent-secondary) r g b / 0.34);border-radius:16px;background:rgb(from var(--navy-page-bg) r g b / 0.58);color:var(--heart-cream);font:700 0.95rem/1.25 Arial,sans-serif;cursor:pointer;box-shadow:inset 0 1px rgb(from var(--clr-white) r g b / 0.05),0 16px 35px rgb(from var(--clr-black) r g b / 0.22);transition:transform 0.18s ease,border-color 0.18s ease,background 0.18s ease}.heart-relationship-grid button:hover,.heart-relationship-grid button:focus-visible{border-color:rgb(from var(--navy-page-accent) r g b / 0.78);background:rgba(16,28,52,0.8);transform:translateY(-2px);outline:none}.heart-relationship-grid button img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 10px rgb(from var(--navy-page-accent) r g b / 0.24));transition:transform 0.2s ease,filter 0.2s ease}.heart-relationship-grid button:hover img,.heart-relationship-grid button:focus-visible img{transform:scale(1.09) translateY(-1px);filter:drop-shadow(0 0 14px rgb(from var(--navy-page-accent) r g b / 0.52))}.heart-initial-field{display:block;margin:54px auto 0}.heart-initial-field input{display:block;width:min(100%,360px);height:132px;margin:0 auto;padding:0 20px 0 31px;border:0;border-bottom:1px solid rgb(from var(--navy-page-accent) r g b / 0.28);border-radius:0;outline:0;background:transparent;color:var(--heart-ice);font-family:Georgia,'Times New Roman',serif;font-size:clamp(4.5rem,20vw,6rem);font-weight:600;letter-spacing:0.18em;text-align:center;text-transform:uppercase;caret-color:var(--heart-rose);text-shadow:0 0 26px rgb(from var(--navy-page-accent) r g b / 0.34)}.heart-initial-field input::placeholder{color:rgb(from var(--navy-page-accent-secondary) r g b / 0.22)}.heart-initial-help{margin:14px 0 0;color:rgb(from var(--clr-cream) r g b / 0.58);font-size:0.8rem;text-align:center}.heart-rhythm-actions{display:grid;gap:10px;width:min(100%,480px);margin:64px auto 0}.heart-action{min-height:50px;padding:12px 20px;border-radius:12px;font-weight:800;cursor:pointer}.heart-action--primary{border:1px solid var(--heart-ice);background:var(--heart-ice);color:var(--heart-deep-space)}.heart-action--primary:disabled{cursor:not-allowed;opacity:0.4}.heart-action--secondary{border:1px solid rgb(from var(--navy-page-accent-secondary) r g b / 0.35);background:rgb(from var(--navy-page-bg) r g b / 0.7);color:var(--heart-starlight)}.heart-pair{position:relative;width:min(100%,620px);height:275px;margin:24px auto 0}.heart-pair__heart{position:absolute;top:50%;width:150px;color:var(--heart-cream);transform:translate(-50%,-50%);transition:left 80ms linear}.heart-pair__heart--you{left:calc(27% + var(--heart-shift, 0px))}.heart-pair__heart--other{left:calc(73% - var(--heart-shift, 0px))}.heart-pair__float{display:grid;place-items:center;gap:7px;animation:heart-float 4.2s ease-in-out infinite;will-change:transform}.heart-pair__heart--other .heart-pair__float{animation-delay:-2.1s}.heart-pair__shape{position:relative;display:grid;width:130px;height:130px;place-items:center;color:var(--heart-ice);filter:drop-shadow(0 0 18px rgb(from var(--navy-page-accent) r g b / 0.58));transform-origin:50% 57%;transform:scale(var(--heart-scale,1));will-change:transform,filter}.heart-rhythm-waves{position:absolute;z-index:0;inset:0;overflow:visible;pointer-events:none}.heart-rhythm-wave{position:absolute;top:50%;width:112vmax;height:112vmax;border:clamp(2px,0.45vw,6px) solid currentColor;border-radius:50%;opacity:calc(var(--wave-opacity, 0) * 0.72);pointer-events:none;filter:drop-shadow(0 0 12px currentColor);transform:translate(-50%,-50%) scale(var(--wave-scale,0.05));will-change:transform,opacity}.heart-rhythm-wave--you{left:calc(27% + var(--heart-shift, 0px));color:rgb(from var(--navy-page-accent) r g b / 0.78)}.heart-rhythm-wave--other{left:calc(73% - var(--heart-shift, 0px));color:rgb(from var(--navy-page-highlight) r g b / 0.72)}.heart-pair__shape svg{position:relative;z-index:1;display:block;width:100%;height:100%;overflow:visible;fill:currentColor;stroke:rgb(from var(--clr-white) r g b / 0.44);stroke-width:0.8}.heart-pair__heart--other .heart-pair__shape{color:var(--heart-rose);filter:drop-shadow(0 0 18px rgb(from var(--navy-page-highlight) r g b / 0.54))}.heart-rhythm-shell.is-holding .heart-pair__float{animation:heart-hold-tremble 0.16s linear infinite}.heart-rhythm-shell.is-holding .heart-pair__heart--other .heart-pair__float{animation-delay:-0.08s}.heart-rhythm-shell.is-holding .heart-pair__shape{filter:drop-shadow(0 0 24px rgb(from var(--navy-page-accent) r g b / 0.82))}.heart-rhythm-shell.is-holding .heart-pair__heart--other .heart-pair__shape{filter:drop-shadow(0 0 24px rgb(from var(--navy-page-highlight) r g b / 0.78))}.heart-pair__heart strong{max-width:140px;overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.heart-pair__connection{position:absolute;top:48%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--heart-ice);box-shadow:0 0 16px var(--heart-ice);transform:translate(-50%,-50%);animation:heart-connection 1.8s ease-in-out infinite}.heart-pair--complete{--heart-shift:56px;height:235px}.heart-hold{position:relative;display:grid;width:106px;height:106px;margin:4px auto 0;padding:7px;place-items:center;border:0;border-radius:50%;background:conic-gradient(var(--heart-ice) 0deg,rgb(from var(--navy-page-accent-secondary) r g b / 0.22) 0deg);color:var(--heart-ice);cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 0 32px rgb(from var(--heart-violet) r g b / 0.38);transition:transform 0.16s ease,box-shadow 0.16s ease}.heart-hold::before{content:'';position:absolute;inset:7px;border-radius:50%;background:rgb(from var(--navy-page-bg) r g b / 0.92);box-shadow:inset 0 0 22px rgb(from var(--navy-page-accent) r g b / 0.12)}.heart-hold.is-active{transform:scale(1.06);box-shadow:0 0 44px rgb(from var(--navy-page-accent) r g b / 0.45),0 0 72px rgb(from var(--heart-violet) r g b / 0.38)}.heart-hold__icon{position:absolute;z-index:1;top:50%;left:50%;display:grid;width:62px;height:62px;place-items:center;transform:translate(-50%,-50%);transform-origin:center;transition:transform 0.16s ease}.heart-hold__icon svg{display:block;width:58px;height:58px;overflow:visible;filter:drop-shadow(0 0 8px rgb(from var(--navy-page-accent) r g b / 0.45))}.heart-hold__icon-heart{fill:rgb(from var(--navy-page-accent) r g b / 0.12);stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.heart-hold__icon-pulse{fill:none;stroke:var(--clr-white);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.heart-hold.is-active .heart-hold__icon{transform:translate(-50%,-50%) scale(1.08)}.heart-hold-status{min-height:24px;margin:14px 0 0;color:rgb(from var(--clr-cream) r g b / 0.78);font-size:0.92rem;font-weight:700;text-align:center}.heart-back-link{display:block;margin:18px auto 0;padding:8px;border:0;background:transparent;color:rgb(from var(--navy-page-accent-secondary) r g b / 0.82);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.heart-result{width:min(100% - 32px,760px)}.heart-result__title{margin:4px 0 22px;text-align:center}.heart-result__title h2{margin:0;color:var(--heart-ice);font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.75rem,5vw,2.3rem);font-weight:600}.heart-result__title p{margin:8px 0 0;color:rgb(from var(--navy-page-accent-secondary) r g b / 0.9);font-size:0.76rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase}.heart-reading-block{margin-top:12px;padding:20px;border:1px solid rgb(from var(--navy-page-accent-secondary) r g b / 0.26);border-radius:16px;background:linear-gradient(145deg,rgba(14,24,45,0.82),rgb(from var(--navy-page-bg) r g b / 0.7));box-shadow:0 18px 42px rgb(from var(--clr-black) r g b / 0.24);backdrop-filter:blur(12px)}.heart-reading-block>span{color:var(--heart-starlight);font-size:0.75rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase}.heart-reading-block p{margin:12px 0 0;color:rgb(from var(--clr-white) r g b / 0.92);font-size:1.04rem;line-height:1.65}.heart-return-note{margin:12px 0 0;padding:14px;border-radius:var(--radius-sm);background:rgb(from var(--navy-page-bg) r g b / 0.76);color:rgb(from var(--clr-cream) r g b / 0.75);font-size:0.9rem}.heart-shared-by{margin:18px 0 0;color:var(--heart-cream);font-family:"Cardo",serif;font-size:1.05rem;font-style:italic;text-align:center}.heart-history{margin-top:34px}.heart-history>h2{margin:0 0 12px;color:var(--heart-cream);font-size:1.25rem}.heart-history-card{margin-top:10px;padding:15px;border:1px solid rgb(from var(--navy-page-accent-secondary) r g b / 0.2);border-radius:var(--radius-sm);background:rgb(from var(--navy-page-bg) r g b / 0.76)}.heart-history-card__heading{display:flex;justify-content:space-between;gap:12px}.heart-history-card strong{color:var(--heart-cream)}.heart-history-card time,.heart-history-card small{color:rgb(from var(--clr-cream) r g b / 0.56)}.heart-history-card p{margin:8px 0 0;color:rgb(from var(--clr-white) r g b / 0.78);font-size:0.9rem;line-height:1.5}.heart-result__tomorrow{margin:18px 0 0;color:rgb(from var(--clr-cream) r g b / 0.54);font-size:0.8rem;text-align:center}@media (max-width:680px){.heart-rhythm-shell,.heart-rhythm-stage{min-height:760px}.heart-rhythm-stage{width:min(100% - 24px,720px);padding-top:50px;padding-bottom:72px}.heart-rhythm-stage.heart-result{padding-bottom:calc(104px + env(safe-area-inset-bottom, 0px))}.heart-rhythm-heading>span{font-size:0.68rem}.heart-relationship-grid{gap:9px;margin-top:24px}.heart-relationship-grid button{min-height:100px;padding:11px 8px;font-size:0.84rem}.heart-relationship-grid button img{width:42px;height:42px}.heart-pair{height:245px}.heart-pair__heart{width:118px}.heart-pair__shape{width:104px;height:104px}.heart-pair--complete{--heart-shift:28px;height:210px}.heart-reading-block{padding:17px}.heart-history-card__heading{display:grid}}