:root{--bg:#10050d;--pink:#ff3da8;--hot:#ff168b;--rose:#ff9ad4;--pale:#ffe6f4;--text:#fff4fb;--muted:#c3a6b8;--line:rgba(255,78,173,.22);--glow:0 0 24px rgba(255,30,146,.38)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);background:var(--bg);font-family:'DM Sans',Arial,sans-serif;overflow-x:hidden}button,input,textarea{font:inherit}button{color:inherit;cursor:pointer}#stars{position:fixed;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}.pink-haze{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 70% 20%,rgba(255,35,142,.12),transparent 38%),radial-gradient(ellipse at 18% 70%,rgba(158,15,102,.13),transparent 42%)}
.setup{position:fixed;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 20px;background:radial-gradient(ellipse at center,rgba(70,9,43,.45),transparent 62%);transition:opacity .7s,visibility .7s}.setup.off{opacity:0;visibility:hidden;pointer-events:none}.setup-heart{position:absolute;font-size:clamp(180px,35vw,390px);color:rgba(255,35,149,.075);text-shadow:0 0 90px rgba(255,19,143,.24);z-index:-1;animation:heartbeat 3s ease-in-out infinite}.eyebrow{font-size:9px;font-weight:700;letter-spacing:.22em;color:#ff9bd0;margin:0}.pulse-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#ff45ad;box-shadow:0 0 10px #ff45ad;margin-right:8px;animation:blink 1.5s infinite}.setup h1{font:500 clamp(48px,7vw,84px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.04em;margin:24px 0 14px}.setup h1 em,.intro h1 em,.section-head h2 em,.next-chapter h2 em{font-weight:500;color:var(--rose);text-shadow:0 0 22px rgba(255,50,159,.32)}.setup-copy{max-width:390px;color:#cfb5c5;font:italic 15px/1.7 'Playfair Display',Georgia,serif;margin:0 0 24px}.setup-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:min(470px,100%);text-align:left}.setup-form label,.memory-label{display:grid;gap:8px;color:#ddaec9;font-size:10px;letter-spacing:.07em}.setup-form input,.memory-label input,.memory-label textarea{width:100%;border:1px solid rgba(255,91,179,.29);border-radius:3px;background:rgba(35,8,24,.77);color:var(--text);padding:12px;font-size:12px;outline:0;transition:border .2s,box-shadow .2s}.setup-form input:focus,.memory-label input:focus,.memory-label textarea:focus{border-color:var(--pink);box-shadow:var(--glow)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8) sepia(1) saturate(4) hue-rotate(280deg);cursor:pointer}.neon-button{grid-column:1/-1;border:1px solid #ff5bb5;border-radius:3px;background:linear-gradient(100deg,#e91985,#ff42ad);color:#260b1b;padding:14px;font-size:11px;font-weight:700;letter-spacing:.05em;box-shadow:0 0 22px rgba(255,32,148,.25);transition:transform .2s,box-shadow .2s}.neon-button:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(255,45,159,.55)}.neon-button span{font-size:16px;margin-left:9px}.tiny-note{position:absolute;bottom:25px;font-size:7px;letter-spacing:.15em;color:#8c6079}
.app{width:min(1180px,100%);min-height:100vh;margin:auto;padding:0 6.3%;opacity:1;transition:opacity .5s}.app.hidden{opacity:0;display:none}.topbar{height:66px;border-bottom:1px solid rgba(255,77,169,.12);display:flex;align-items:center;justify-content:space-between}.wordmark{color:#f9dcea;text-decoration:none;font-size:9px;letter-spacing:.19em;font-weight:700}.wordmark b{color:var(--pink);font-size:18px;vertical-align:-2px;margin-right:8px;text-shadow:0 0 12px var(--pink)}.settings-button{border:0;background:none;color:#b58ba2;font-size:8px;letter-spacing:.12em}.settings-button span{color:var(--pink);margin-left:7px}.dashboard{position:relative;min-height:555px;padding:80px 0 23px}.intro{position:relative;z-index:1;width:52%;padding-top:23px}.intro .eyebrow{font-size:8px}.intro h1{font:500 clamp(44px,6vw,71px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-.045em;margin:19px 0 14px}.lead{max-width:340px;color:#c4aabb;font:italic 15px/1.7 'Playfair Display',Georgia,serif}.orbit-art{position:absolute;right:2%;top:9px;width:min(48vw,490px);aspect-ratio:1;display:grid;place-items:center}.orbit-art:before{content:'';position:absolute;inset:17%;border-radius:50%;background:radial-gradient(circle,rgba(255,32,145,.21),rgba(108,10,68,.14) 40%,transparent 70%);filter:blur(9px);animation:heartbeat 3.4s infinite}.orbit{position:absolute;border:1px solid rgba(255,80,179,.24);border-radius:50%;transform:rotateX(66deg);animation:orbit 28s linear infinite}.orbit-outer{inset:5%;border-color:rgba(255,68,174,.25)}.orbit-inner{inset:20%;border-color:rgba(255,127,197,.36);animation-duration:16s;animation-direction:reverse}.orbit i{position:absolute;width:9px;height:9px;left:50%;top:-4px;border-radius:50%;background:#fff0f8;box-shadow:0 0 10px 3px #ff3da8,0 0 28px #ff168b}.orbit-inner i{width:6px;height:6px;top:auto;bottom:10%;left:8%;background:#ff9bd4}.heart-core{position:relative;z-index:1;border:0;background:none;color:#fff0f8;font-size:clamp(77px,11vw,120px);line-height:1;text-shadow:0 0 9px #fff,0 0 26px #ff36a5,0 0 65px #f0007c;animation:heartbeat 2.4s ease-in-out infinite;transition:scale .2s}.heart-core:hover{scale:1.16}.orbit-caption{position:absolute;bottom:7%;font-size:7px;letter-spacing:.2em;color:#c07d9f}.spark{position:absolute;color:#ffb0d9;text-shadow:0 0 13px #ff259a}.spark-one{top:25%;right:21%}.spark-two{bottom:27%;left:22%;font-size:21px}.stats{position:absolute;z-index:2;left:0;right:0;bottom:14px;display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:12px}.stat-card{position:relative;min-height:109px;border:1px solid var(--line);border-radius:4px;padding:16px 18px;background:linear-gradient(120deg,rgba(35,9,25,.86),rgba(23,9,21,.77));box-shadow:inset 0 0 26px rgba(255,41,148,.035);backdrop-filter:blur(12px)}.stat-card.main-stat{border-color:rgba(255,58,166,.47);box-shadow:inset 0 0 28px rgba(255,34,146,.075),0 0 20px rgba(255,30,146,.08)}.stat-label{display:block;color:#c68aa8;font-size:8px;letter-spacing:.17em}.stat-card strong{display:block;margin:7px 0 2px;color:#fff2fa;font:500 36px 'Playfair Display',Georgia,serif;text-shadow:0 0 18px rgba(255,62,168,.35)}.stat-card>span:last-of-type{color:#a9889a;font-size:9px}.stat-card .next-date{font-size:24px;margin:14px 0 8px}.stat-heart{position:absolute;right:20px;top:34px;color:var(--pink);font-size:30px;font-style:normal;text-shadow:0 0 14px var(--hot)}
.memory-section{padding:61px 0 52px;border-top:1px solid rgba(255,77,169,.13)}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.section-head h2{font:500 35px 'Playfair Display',Georgia,serif;margin:9px 0 0}.section-head>p{max-width:280px;color:#b69aaa;font:italic 12px/1.6 'Playfair Display',Georgia,serif;text-align:right;margin:0 0 3px}.section-head .eyebrow{font-size:8px}.timeline-shell{display:flex;align-items:center;gap:8px}.timeline-arrow{flex:0 0 29px;width:29px;height:29px;border:1px solid rgba(255,81,174,.24);border-radius:50%;background:#210c1a;color:#ff9bd0;font-size:19px;line-height:1}.timeline{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#8f255f transparent;padding:12px 3px 17px;flex:1}.timeline-item{position:relative;flex:0 0 53px;height:53px;border:1px solid rgba(255,78,171,.27);border-radius:50%;background:rgba(42,10,29,.83);color:#b58aa1;font-size:10px;transition:.2s}.timeline-item:after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;left:calc(50% - 2px);bottom:-11px;background:#9d4775}.timeline-item:hover,.timeline-item.selected{border-color:#ff64b7;background:#4a0e30;color:#fff0f8;box-shadow:0 0 18px rgba(255,37,151,.27);transform:translateY(-3px)}.timeline-item.selected:after{background:#ff64b7;box-shadow:0 0 8px #ff64b7}.timeline-item.has-memory:before{content:'♡';position:absolute;right:-3px;top:-5px;color:#ff72bc;font-size:12px;text-shadow:0 0 8px #ff168b}.timeline-item small{display:block;font-size:7px;color:#9b7388;margin-top:2px}.memory-card{position:relative;min-height:166px;display:grid;grid-template-columns:118px 1fr auto;align-items:center;gap:20px;border:1px solid rgba(255,75,168,.24);border-radius:4px;background:linear-gradient(110deg,rgba(39,10,28,.91),rgba(19,9,21,.91));padding:22px 25px;overflow:hidden}.memory-card:after{content:'♡';position:absolute;right:16%;top:-42px;color:rgba(255,65,163,.035);font-size:240px;pointer-events:none}.memory-number{height:112px;border-right:1px solid rgba(255,87,177,.2);display:flex;flex-direction:column;justify-content:center}.memory-number span{color:#bd819e;font-size:7px;letter-spacing:.2em}.memory-number strong{font:500 51px 'Playfair Display',Georgia,serif;color:#ff74bf;text-shadow:0 0 21px rgba(255,26,147,.36)}.memory-number i{position:absolute;top:37px;left:106px;color:#ff70ba;font-size:17px;font-style:normal}.memory-content{position:relative;z-index:1}.memory-content .eyebrow{font-size:7px}.memory-content h3{font:500 22px 'Playfair Display',Georgia,serif;margin:9px 0;color:#fff0f8}.memory-content>p:last-child{max-width:500px;margin:0;color:#bca6b4;font-size:11px;line-height:1.65;white-space:pre-wrap}.memory-edit{position:relative;z-index:1;border:1px solid rgba(255,93,180,.38);border-radius:3px;background:rgba(255,39,146,.08);padding:11px 13px;color:#ffd5eb;font-size:9px;white-space:nowrap}.memory-edit:hover{background:rgba(255,39,146,.2);box-shadow:var(--glow)}.memory-edit span{color:#ff6ab7;font-size:16px;vertical-align:-2px;margin-right:5px}
.orion-section{padding:54px 0 39px;border-top:1px solid rgba(255,77,169,.13)}.orion-heading{text-align:center;margin-bottom:23px}.orion-heading .eyebrow{font-size:8px}.orion-heading h2{font:500 clamp(32px,4vw,46px) 'Playfair Display',Georgia,serif;margin:9px 0}.orion-heading h2 em{font-weight:500;color:var(--rose);text-shadow:0 0 18px rgba(255,50,159,.32)}.orion-heading>p:last-child{margin:0;color:#bc9dad;font:italic 12px/1.6 'Playfair Display',Georgia,serif}.orion-viewer{position:relative;width:100%;height:460px;overflow:hidden;border:1px solid rgba(255,73,166,.36);border-radius:5px;background:radial-gradient(ellipse at 50% 54%,rgba(78,11,50,.34),rgba(17,7,16,.93) 68%),#10070e;box-shadow:inset 0 0 70px rgba(255,29,145,.09),0 0 35px rgba(255,31,143,.08);touch-action:none;cursor:grab}.orion-viewer:active{cursor:grabbing}.orion-viewer:before,.orion-viewer:after{content:'';position:absolute;z-index:1;pointer-events:none;border:1px solid rgba(255,89,177,.11);border-radius:50%;width:68%;height:40%;left:16%;top:29%;transform:rotate(-17deg);box-shadow:0 0 33px rgba(255,43,157,.06)}.orion-viewer:after{width:48%;height:76%;left:26%;top:11%;transform:rotate(24deg);border-color:rgba(255,89,177,.08)}#orionCanvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}.viewer-top{position:absolute;z-index:2;top:17px;left:19px;right:19px;display:flex;justify-content:space-between;color:#c991af;font-size:7px;letter-spacing:.17em;pointer-events:none}.viewer-live{display:inline-block;width:5px;height:5px;border-radius:50%;background:#ff45ad;box-shadow:0 0 9px #ff45ad;margin-right:7px}.star-info{position:absolute;z-index:2;left:21px;bottom:66px;display:flex;gap:10px;align-items:center;max-width:260px;padding:10px 13px;border:1px solid rgba(255,82,174,.2);background:rgba(23,7,18,.73);backdrop-filter:blur(8px);pointer-events:none}.info-spark{color:#ff78bc;text-shadow:0 0 11px #ff168b}.star-info b,.star-info small{display:block}.star-info b{font:500 14px 'Playfair Display',Georgia,serif;color:#ffe7f4}.star-info small{margin-top:3px;font-size:8px;color:#bd9caf;line-height:1.5}.viewer-controls{position:absolute;z-index:3;right:20px;bottom:65px;display:flex;gap:7px}.viewer-controls button{height:31px;min-width:34px;border:1px solid rgba(255,91,177,.32);border-radius:3px;background:rgba(36,9,27,.82);color:#ffc4e1;font-size:16px;backdrop-filter:blur(6px)}.viewer-controls button:hover{border-color:#ff59b3;box-shadow:0 0 15px rgba(255,32,146,.3)}.viewer-controls #autoRotate{min-width:112px;font-size:7px;letter-spacing:.11em}.viewer-controls #autoRotate span{font-size:11px;margin-right:5px}.viewer-hint{position:absolute;z-index:2;bottom:19px;left:0;right:0;text-align:center;color:#a97491;font-size:7px;letter-spacing:.16em;pointer-events:none}.viewer-hint span{color:#ff50a9;margin:0 6px}.orion-caption{display:flex;justify-content:space-between;gap:15px;padding:13px 3px 0;color:#99677f;font-size:7px;letter-spacing:.13em}.orion-caption span:last-child{color:#bd729a}
.words-section{padding:61px 0 54px;border-top:1px solid rgba(255,77,169,.13)}.words-toolbar{display:flex;align-items:center;justify-content:space-between;margin:17px 0 14px;color:#c68aa8;font-size:8px;letter-spacing:.16em}.words-toolbar .memory-edit{font-size:9px}.text-wall{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}.love-note{position:relative;min-height:168px;padding:23px 22px 15px;border:1px solid rgba(255,90,176,.28);border-radius:4px;background:linear-gradient(145deg,rgba(59,12,40,.87),rgba(24,9,21,.93));overflow:hidden;box-shadow:inset 0 0 35px rgba(255,29,140,.035);transition:transform .22s,border-color .22s,box-shadow .22s}.love-note:hover{transform:translateY(-4px) rotate(-.5deg);border-color:rgba(255,105,189,.62);box-shadow:0 8px 30px rgba(255,29,140,.12)}.love-note:after{content:'♡';position:absolute;right:12px;top:0;color:rgba(255,94,176,.08);font-size:80px;line-height:1;pointer-events:none}.love-note.note-color-1{background:linear-gradient(145deg,rgba(68,11,49,.83),rgba(27,8,25,.94))}.love-note.note-color-2{background:linear-gradient(145deg,rgba(49,13,43,.9),rgba(22,8,21,.94))}.note-flourish{color:#ff77bd;font-size:17px;text-shadow:0 0 11px #ff168b}.love-note h3{position:relative;z-index:1;margin:13px 0 7px;color:#ffe7f4;font:500 19px 'Playfair Display',Georgia,serif}.love-note>p{position:relative;z-index:1;margin:0;color:#c9adbd;font:italic 12px/1.7 'Playfair Display',Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere}.note-controls{position:relative;z-index:2;display:flex;gap:13px;margin-top:15px}.note-controls button{border:0;background:none;padding:2px 0;color:#bd7e9e;font-size:8px}.note-controls button:hover{color:#ffd6ec}.note-controls button+button{color:#8f687d}.add-note-card{min-height:168px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px dashed rgba(255,91,177,.33);border-radius:4px;background:rgba(40,10,29,.3);color:#dfb2c9;transition:.2s}.add-note-card:hover{border-color:#ff65b4;background:rgba(255,40,148,.07);box-shadow:inset 0 0 24px rgba(255,35,143,.08)}.add-note-card>span{display:grid;place-items:center;width:29px;height:29px;border:1px solid rgba(255,100,180,.43);border-radius:50%;color:#ff85c2;font-size:20px}.add-note-card b{font:500 14px 'Playfair Display',Georgia,serif}.add-note-card small{color:#a37b91;font-size:8px}
.next-chapter{min-height:225px;border-top:1px solid rgba(255,77,169,.13);display:flex;align-items:center;gap:30px;padding:32px 4%;position:relative;overflow:hidden}.big-heart{font-size:74px;color:#ff67b5;text-shadow:0 0 12px #ff43a6,0 0 42px #d80071;animation:heartbeat 2.5s infinite}.next-chapter h2{font:500 31px/1.18 'Playfair Display',Georgia,serif;margin:10px 0}.surprise-button{margin-left:auto;border:1px solid #fb48a4;background:rgba(255,37,146,.11);border-radius:3px;padding:13px 17px;color:#ffe5f3;font-size:10px;box-shadow:0 0 19px rgba(255,35,148,.12);transition:.2s}.surprise-button:hover{background:rgba(255,37,146,.25);box-shadow:var(--glow)}.surprise-button span{margin-left:12px;color:#ff8bc9}footer{height:42px;border-top:1px solid rgba(255,77,169,.12);display:flex;justify-content:space-between;align-items:center;color:#89536e;font-size:7px;letter-spacing:.19em}footer span:last-child{color:#ff69b6;font-size:17px}
.dialog{position:fixed;inset:0;margin:auto;width:min(480px,calc(100% - 32px));border:1px solid rgba(255,85,177,.45);border-radius:5px;padding:37px;background:radial-gradient(ellipse at top,rgba(112,14,64,.4),transparent 66%),#180a14;color:var(--text);box-shadow:0 15px 90px #080208dd,0 0 35px rgba(255,26,144,.13)}.dialog::backdrop{background:rgba(8,2,8,.78);backdrop-filter:blur(8px)}.dialog[open]{animation:pop .25s ease-out}.dialog .eyebrow{margin-bottom:11px}.dialog h2{font:500 32px 'Playfair Display',Georgia,serif;margin:7px 0 23px}.close{position:absolute;top:9px;right:14px;background:none;border:0;color:#eab2d0;font-size:25px}.memory-label{margin:14px 0}.memory-label textarea{resize:vertical;line-height:1.6}.dialog .neon-button{margin-top:8px}.love-dialog{text-align:center}.dialog-heart{display:block;color:var(--pink);font-size:46px;text-shadow:0 0 24px var(--hot);margin:9px 0 16px}.love-dialog h2{font-size:35px;line-height:1.25;margin:18px 0 10px}.close-text{border:0;background:none;color:#ffc6e3;font-size:10px;margin-top:23px}.toast{position:fixed;z-index:8;bottom:22px;left:50%;transform:translate(-50%,18px);opacity:0;pointer-events:none;border:1px solid rgba(255,90,177,.32);border-radius:3px;background:#270d1c;color:#ffe4f2;padding:11px 16px;font-size:10px;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.particle{position:fixed;z-index:9;pointer-events:none;color:#ff83c5;text-shadow:0 0 10px #ff168b;animation:fly .85s ease-out forwards;font-size:15px}@keyframes orbit{to{rotate:360deg}}@keyframes heartbeat{50%{transform:scale(1.09);filter:brightness(1.2)}}@keyframes blink{50%{opacity:.4}}@keyframes fly{to{transform:translate(var(--dx),var(--dy)) scale(.2) rotate(35deg);opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.97)}}
@media(max-width:760px){.app{padding:0 5%}.topbar{height:57px}.dashboard{min-height:610px;padding-top:48px}.intro{width:100%;padding-top:0}.intro h1{font-size:52px;margin:16px 0 9px}.lead{font-size:13px;margin-top:8px}.orbit-art{top:192px;right:50%;transform:translateX(50%);width:min(88vw,390px);opacity:.83}.stats{bottom:5px;grid-template-columns:1fr 1fr;gap:8px}.stat-card{min-height:89px;padding:12px}.stat-card.main-stat{grid-column:1/-1;min-height:91px}.stat-card strong{font-size:29px}.stat-card .next-date{font-size:21px;margin:11px 0 6px}.stat-heart{top:28px}.memory-section{padding:42px 0}.section-head{align-items:start;gap:12px}.section-head h2{font-size:31px}.section-head>p{font-size:10px;max-width:155px}.timeline-item{flex-basis:47px;height:47px}.memory-card{grid-template-columns:64px 1fr;gap:12px;padding:17px 13px}.memory-number{height:100px}.memory-number strong{font-size:41px}.memory-number i{left:63px;top:29px;font-size:13px}.memory-content h3{font-size:18px}.memory-content>p:last-child{font-size:10px}.memory-edit{grid-column:2;justify-self:start;font-size:8px;padding:9px}.next-chapter{min-height:190px;gap:16px;padding:24px 0;flex-wrap:wrap}.big-heart{font-size:52px}.next-chapter h2{font-size:26px}.surprise-button{margin:0 0 0 67px;padding:11px 13px;font-size:9px}footer{font-size:6px;letter-spacing:.12em}}
@media(max-width:760px){.orion-section{padding:42px 0 30px}.orion-heading{margin-bottom:17px}.orion-viewer{height:390px}.viewer-top{top:13px;left:12px;right:12px;font-size:6px}.star-info{left:11px;bottom:63px;max-width:180px;padding:8px}.star-info b{font-size:12px}.star-info small{font-size:7px}.viewer-controls{right:10px;bottom:63px;gap:4px}.viewer-controls button{min-width:29px;height:29px}.viewer-controls #autoRotate{min-width:92px;font-size:6px}.viewer-hint{font-size:6px;letter-spacing:.1em}.orion-caption{font-size:6px;letter-spacing:.06em}}
@media(max-width:760px){.words-section{padding:42px 0}.words-toolbar{font-size:7px}.words-toolbar .memory-edit{font-size:8px;padding:9px}.text-wall{grid-template-columns:1fr 1fr;gap:9px}.love-note,.add-note-card{min-height:174px;padding:16px 13px}.love-note h3{font-size:16px}.love-note>p{font-size:11px}.note-controls{margin-top:11px}}
@media(max-width:400px){.intro h1{font-size:45px}.orbit-art{top:190px}.section-head>p{max-width:130px}.memory-card{grid-template-columns:54px 1fr}.memory-number i{left:53px}.next-chapter h2{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
.photo-dialog{width:min(560px,calc(100% - 30px));padding:35px 30px 24px}.photo-dialog h2{margin:8px 0 17px}.photo-memory-frame{position:relative;isolation:isolate;overflow:hidden;padding:10px;border:1px solid rgba(255,92,181,.78);border-radius:15px;background:linear-gradient(145deg,rgba(255,83,177,.2),rgba(48,8,36,.9) 56%,rgba(255,169,219,.16));box-shadow:0 0 0 3px rgba(255,84,173,.1),0 0 28px rgba(255,24,142,.28),inset 0 0 24px rgba(255,50,159,.14);animation:photoGlow 3.2s ease-in-out infinite;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}.photo-memory-frame:hover{transform:translateY(-2px) scale(1.012);border-color:#ffb5dd;box-shadow:0 0 0 4px rgba(255,84,173,.14),0 0 38px rgba(255,24,142,.43),inset 0 0 28px rgba(255,50,159,.2)}.photo-memory-frame:before{content:'';position:absolute;z-index:2;top:-80%;left:-50%;width:35%;height:260%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,235,248,.12),rgba(255,235,248,.48),rgba(255,235,248,.12),transparent);transform:rotate(22deg);animation:photoShimmer 5s ease-in-out infinite}.photo-frame{position:relative;z-index:1;display:grid;place-items:center;width:100%;aspect-ratio:4/3;overflow:hidden;border:1px solid rgba(255,190,226,.55);border-radius:9px;background:radial-gradient(ellipse at center,rgba(132,18,83,.28),rgba(19,8,17,.95) 73%);box-shadow:inset 0 0 24px rgba(255,39,153,.17);transition:filter .35s,transform .45s}#starPhoto{width:100%;height:100%;object-fit:contain;background:#09050a}#starPhoto[hidden]{display:none}#photoEmpty{display:flex;flex-direction:column;align-items:center;gap:9px;padding:20px;text-align:center}#photoEmpty[hidden]{display:none}#photoEmpty span{font-size:40px;color:#ff63b5;text-shadow:0 0 24px #ff168b}#photoEmpty b{font:500 18px 'Playfair Display',Georgia,serif;color:#ffe4f2}#photoEmpty small{max-width:280px;font-size:10px;line-height:1.6;color:#b992a7}.photo-phrase{position:relative;z-index:1;margin:12px 5px 3px;text-align:center;color:#ffe3f2;font:italic 15px/1.55 'Playfair Display',Georgia,serif;text-shadow:0 0 15px rgba(255,75,171,.55);animation:phraseIn .45s ease both}.photo-phrase[hidden]{display:none}.photo-actions{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:15px}.photo-pick{display:inline-block;grid-column:auto;margin:0!important;text-align:center;padding:12px 18px}.photo-pick input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.photo-pick:focus-within{outline:2px solid #ff9bd0;outline-offset:3px}.photo-remove{border:0;background:none;color:#b7839d;font-size:9px}.photo-remove:hover{color:#ffb2d6}.photo-footnote{margin:12px 0 0;text-align:center;color:#956f83;font-size:8px}@keyframes photoGlow{50%{box-shadow:0 0 0 4px rgba(255,84,173,.13),0 0 38px rgba(255,24,142,.38),inset 0 0 30px rgba(255,50,159,.2)}}@keyframes photoShimmer{0%,15%{left:-55%;opacity:0}30%{opacity:.9}65%,100%{left:130%;opacity:0}}@keyframes phraseIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:560px){.photo-dialog{padding:32px 18px 20px}.photo-phrase{font-size:13px}}
@media(prefers-reduced-motion:reduce){.photo-memory-frame,.photo-memory-frame:before,.photo-phrase{animation:none!important}}
.photo-batch-tools{display:flex;flex-direction:column;align-items:center;gap:8px;margin:-5px 0 20px}.photo-batch-tools>span{color:#aa7d94;font-size:9px;text-align:center}.photo-batch-button{position:relative;overflow:hidden;border:1px solid rgba(255,93,178,.68);border-radius:4px;padding:12px 19px;background:linear-gradient(110deg,rgba(255,41,153,.19),rgba(255,106,190,.09));color:#ffe4f2;font-size:8px;letter-spacing:.14em;box-shadow:0 0 16px rgba(255,36,151,.14);transition:transform .25s,box-shadow .25s,background .25s}.photo-batch-button:before{content:'';position:absolute;inset:0;transform:translateX(-120%);background:linear-gradient(100deg,transparent,rgba(255,255,255,.18),transparent);transition:transform .55s}.photo-batch-button:hover{transform:translateY(-2px);background:rgba(255,45,154,.22);box-shadow:0 0 24px rgba(255,35,148,.32)}.photo-batch-button:hover:before{transform:translateX(120%)}.photo-batch-button:focus-visible{outline:2px solid #ffb6dc;outline-offset:3px}
@media(max-width:560px){.photo-batch-tools{margin-bottom:16px}.photo-batch-button{max-width:95%;padding:11px 13px;font-size:7px}.photo-batch-tools>span{max-width:290px;font-size:8px}}
.welcome-letter{position:fixed;z-index:20;inset:0;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;padding:30px 18px 24px;text-align:center;background:radial-gradient(ellipse at 50% 43%,rgba(118,10,72,.55),rgba(27,5,22,.95) 54%,#09030a 100%);opacity:1;transition:opacity .8s ease,visibility .8s}.welcome-letter:before,.welcome-letter:after{content:'';position:absolute;pointer-events:none;border:1px solid rgba(255,88,181,.11);border-radius:50%;width:min(82vw,760px);height:min(82vw,760px);animation:letterOrbit 32s linear infinite}.welcome-letter:after{width:min(58vw,520px);height:min(58vw,520px);animation-duration:24s;animation-direction:reverse;border-color:rgba(255,180,219,.09)}.welcome-letter.leaving{opacity:0;visibility:hidden;pointer-events:none}.welcome-copy{position:relative;z-index:1;margin-bottom:9px;animation:letterRise .8s .1s both}.welcome-copy .eyebrow{color:#f28bc3;font-size:8px;letter-spacing:.24em}.welcome-copy h1{margin:10px 0 0;color:#fff0f8;font:500 clamp(39px,7vw,61px)/1.02 'Playfair Display',Georgia,serif;text-shadow:0 0 25px rgba(255,67,169,.28)}.welcome-copy h1 em{color:#ff8bc8;font-weight:500;text-shadow:0 0 25px rgba(255,43,155,.48)}.letter-spark{position:absolute;z-index:1;color:#ffb6dc;text-shadow:0 0 15px #ff3fa3;animation:letterSparkle 2.4s ease-in-out infinite}.spark-a{top:20%;left:23%;font-size:20px}.spark-b{top:34%;right:21%;font-size:22px;animation-delay:.6s}.spark-c{bottom:22%;left:28%;font-size:17px;animation-delay:1.2s}.envelope-button{position:relative;z-index:2;width:min(360px,84vw);height:245px;margin:28px 0 3px;padding:0;border:0;background:transparent;cursor:pointer;perspective:1000px;transform-style:preserve-3d;transition:transform .2s ease,filter .3s;filter:drop-shadow(0 18px 28px rgba(255,31,143,.25));-webkit-tap-highlight-color:transparent}.envelope-button:hover{filter:drop-shadow(0 22px 35px rgba(255,31,143,.43))}.envelope-button:focus-visible{outline:2px solid #ff9bd0;outline-offset:10px;border-radius:12px}.envelope-back,.envelope-front,.envelope-flap,.envelope-paper{position:absolute;left:4%;width:92%;border-radius:8px}.envelope-back{bottom:9px;height:75%;background:linear-gradient(145deg,#ff85c5,#e92f91 55%,#941050);box-shadow:inset 0 0 35px rgba(255,220,241,.24),0 0 28px rgba(255,40,152,.26)}.envelope-paper{z-index:1;bottom:19px;height:78%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 23px;background:linear-gradient(145deg,#fff9fc,#ffe2f1 70%,#ffc4e3);border:1px solid #fff;box-shadow:0 0 25px rgba(255,228,243,.36);color:#7c174d;opacity:.98;transform:translateY(24px) scale(.9);transition:transform 1s cubic-bezier(.16,1,.3,1),box-shadow .7s;pointer-events:none}.envelope-button.is-open .envelope-paper{transform:translateY(-117px) scale(1);box-shadow:0 0 34px rgba(255,173,218,.55),0 0 70px rgba(255,40,154,.24)}.paper-flourish{color:#e83491;font-size:13px;letter-spacing:.15em}.paper-title{font:italic 21px 'Playfair Display',Georgia,serif}.paper-message{max-width:285px;min-height:73px;color:#72204e;font:italic 13px/1.62 'Playfair Display',Georgia,serif}.paper-signature{align-self:flex-end;color:#a12d69;font:italic 12px 'Playfair Display',Georgia,serif}.paper-signature b{color:#ed3296;font-size:17px}.envelope-front{z-index:3;bottom:9px;height:75%;background:linear-gradient(145deg,#fa69b6,#e22d91);clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);filter:drop-shadow(0 -2px 3px rgba(255,219,239,.3));transition:opacity .45s .45s}.envelope-flap{z-index:4;top:25%;height:57%;background:linear-gradient(145deg,#ffb1d9,#f250a8 66%,#cc247b);clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top center;backface-visibility:visible;transition:transform .8s cubic-bezier(.2,.75,.25,1),z-index .1s .4s;filter:drop-shadow(0 3px 4px rgba(107,9,60,.2))}.envelope-button.is-open .envelope-flap{transform:rotateX(180deg);z-index:0}.envelope-button.is-open .envelope-front{opacity:.45}.envelope-seal{position:absolute;z-index:5;left:50%;top:59%;display:grid;place-items:center;width:45px;height:45px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffacd7,#f1439d 62%,#b51465);color:#fff2fa;font-size:24px;text-shadow:0 0 9px white;box-shadow:0 0 22px rgba(255,74,169,.7);transform:translate(-50%,-50%);transition:transform .45s,opacity .35s}.envelope-button.is-open .envelope-seal{transform:translate(-50%,-50%) scale(.25) rotate(35deg);opacity:0}.letter-hint{position:relative;z-index:2;margin:9px 0 13px;color:#d789b0;font-size:8px;letter-spacing:.22em;animation:hintPulse 1.8s ease-in-out infinite;transition:opacity .35s}.letter-hint.gone{opacity:0}.enter-universe{position:relative;z-index:2;margin-top:5px;animation:letterRise .7s both}.enter-universe[hidden]{display:none}.letter-particle{position:fixed;z-index:22;pointer-events:none;color:#ff85c5;text-shadow:0 0 12px #ff168b;font-size:15px;animation:letterParticle 1.2s ease-out forwards}@keyframes letterRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes letterOrbit{to{transform:rotate(360deg)}}@keyframes letterSparkle{50%{opacity:.38;transform:scale(.72) rotate(26deg);text-shadow:0 0 23px #ff168b}}@keyframes hintPulse{50%{opacity:.48;letter-spacing:.28em}}@keyframes letterParticle{to{transform:translate(var(--dx),var(--dy)) scale(.15) rotate(100deg);opacity:0}}
@media(max-width:480px){.welcome-letter{padding:22px 12px}.welcome-copy{margin-bottom:3px}.welcome-copy h1{font-size:43px}.envelope-button{height:220px;width:min(340px,88vw);margin-top:25px}.envelope-button.is-open .envelope-paper{transform:translateY(-106px) scale(1)}.paper-message{font-size:12px;min-height:68px}.spark-a{left:10%;top:21%}.spark-b{right:9%;top:36%}.spark-c{left:13%;bottom:18%}}
@media(prefers-reduced-motion:reduce){.welcome-letter:before,.welcome-letter:after,.welcome-copy,.letter-spark,.letter-hint,.enter-universe,.letter-particle{animation:none!important}.envelope-button,.envelope-paper,.envelope-flap,.envelope-front,.envelope-seal,.welcome-letter{transition-duration:.01ms!important}}
.welcome-letter:before,.welcome-letter:after{left:50%;top:50%;transform:translate(-50%,-50%)}@keyframes letterOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}.envelope-button.is-open .envelope-paper{z-index:4;transform:translateY(-82px) scale(1)}@media(max-width:480px){.envelope-button.is-open .envelope-paper{transform:translateY(-72px) scale(1)}}
.welcome-letter.is-reading .welcome-copy,.welcome-letter.is-reading .letter-spark,.welcome-letter.is-reading .letter-hint{opacity:0;pointer-events:none;transition:opacity .45s}.envelope-button.is-open .envelope-paper{position:fixed;left:50%;top:47%;bottom:auto;width:min(580px,calc(100vw - 34px));height:min(535px,calc(100svh - 150px));min-height:350px;padding:clamp(24px,5vw,48px);border-radius:18px;transform:translate(-50%,-50%) scale(1);pointer-events:auto;z-index:30}.paper-flourish{display:block;margin-bottom:9px;font-size:17px}.paper-title{display:block;font-size:clamp(24px,4vw,31px)}.paper-message{display:block;width:100%;max-width:445px;min-height:0;flex:1;overflow-y:auto;margin:8px auto;text-align:center;color:#72204e;font:italic clamp(15px,2vw,18px)/1.8 'Playfair Display',Georgia,serif;white-space:normal;overflow-wrap:anywhere}.paper-signature{align-self:center;margin-top:7px;font-size:15px}.enter-universe:not([hidden]){position:fixed;z-index:35;left:50%;bottom:15px;width:max-content;max-width:calc(100vw - 28px);margin:0;transform:translateX(-50%);white-space:nowrap}.envelope-button.is-open .envelope-back,.envelope-button.is-open .envelope-front,.envelope-button.is-open .envelope-flap,.envelope-button.is-open .envelope-seal{opacity:0;pointer-events:none;transition:opacity .45s}.envelope-button.is-open .envelope-paper{transition:position .1s,transform .8s cubic-bezier(.16,1,.3,1),box-shadow .7s,border-radius .6s}
.envelope-button.is-open{perspective:none;filter:none!important;transform:none!important}.envelope-button.is-open .envelope-paper{min-height:min(350px,calc(100svh - 165px))}
@media(max-width:480px){.envelope-button.is-open .envelope-paper{top:46%;width:calc(100vw - 28px);height:calc(100svh - 125px);min-height:min(340px,calc(100svh - 140px));padding:27px 23px}.paper-message{font-size:15px;line-height:1.75}.paper-title{font-size:25px}.paper-signature{font-size:14px}.enter-universe:not([hidden]){bottom:11px;padding:12px 15px;font-size:10px}}

.music-interlude{position:fixed;z-index:18;inset:0;min-height:100svh;display:grid;place-items:center;overflow:auto;padding:28px 18px;background:radial-gradient(ellipse at 50% 38%,rgba(103,9,63,.7),rgba(27,5,22,.97) 57%,#080309 100%);opacity:0;visibility:hidden;transition:opacity .65s ease,visibility .65s ease}.music-interlude[hidden]{display:none}.music-interlude.is-visible{opacity:1;visibility:visible}.music-interlude.is-leaving{opacity:0;visibility:hidden}.music-interlude:before,.music-interlude:after{content:'';position:absolute;left:50%;top:50%;width:min(90vw,820px);aspect-ratio:1;border:1px solid rgba(255,107,190,.12);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;animation:musicOrbit 42s linear infinite}.music-interlude:after{width:min(66vw,600px);border-color:rgba(255,197,228,.1);animation-duration:31s;animation-direction:reverse}.music-content{position:relative;z-index:2;width:min(610px,100%);text-align:center;animation:musicRise .9s both}.music-content>.eyebrow{font-size:8px}.music-content h1{margin:14px 0 10px;color:#fff0f8;font:500 clamp(36px,6vw,55px)/1.04 'Playfair Display',Georgia,serif;letter-spacing:-.035em;text-shadow:0 0 28px rgba(255,67,169,.26)}.music-content h1 em{color:#ff8bc8;font-weight:500;text-shadow:0 0 25px rgba(255,43,155,.48)}.music-dedication{max-width:445px;margin:0 auto 20px;color:#d7b3c7;font:italic 14px/1.65 'Playfair Display',Georgia,serif}.music-player-frame{position:relative;overflow:hidden;padding:10px;border:1px solid rgba(255,109,190,.72);border-radius:16px;background:linear-gradient(145deg,rgba(255,88,178,.19),rgba(35,7,27,.95) 48%,rgba(255,177,220,.13));box-shadow:0 0 0 4px rgba(255,71,164,.08),0 0 34px rgba(255,20,135,.23),inset 0 0 25px rgba(255,50,159,.12);animation:musicGlow 3.4s ease-in-out infinite}.music-player-frame:before{content:'♡';position:absolute;z-index:1;right:18px;top:20px;color:rgba(255,221,240,.8);font-size:13px;text-shadow:0 0 10px #ff37a0;pointer-events:none}.music-frame-top{height:25px;display:flex;justify-content:center;align-items:center;gap:13px;color:#f4a9d0;font-size:7px;letter-spacing:.2em}.music-equalizer{height:13px;display:flex;align-items:center;gap:2px}.music-equalizer i{width:2px;height:5px;border-radius:2px;background:#ff8dc9;box-shadow:0 0 6px #ff168b;animation:equalize .8s ease-in-out infinite alternate}.music-equalizer i:nth-child(2){height:11px;animation-delay:.2s}.music-equalizer i:nth-child(3){height:7px;animation-delay:.4s}.music-equalizer i:nth-child(4){height:10px;animation-delay:.1s}.music-video{position:relative;overflow:hidden;border:1px solid rgba(255,194,225,.48);border-radius:10px;background:#080309;aspect-ratio:16/9}.music-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.music-caption{margin:10px 4px 2px;color:#c79ab1;font:italic 12px 'Playfair Display',Georgia,serif}.music-enter{margin-top:17px;width:min(440px,100%)}.music-note{margin:10px 0 0;color:#9d758b;font-size:8px;letter-spacing:.08em}.music-orbit{position:absolute;width:13px;height:13px;border-radius:50%;background:#fff1fa;box-shadow:0 0 9px 3px #ff46a9,0 0 30px #f0007c;pointer-events:none}.music-orbit-one{top:17%;left:17%;animation:musicFloat 6s ease-in-out infinite}.music-orbit-two{right:17%;bottom:17%;width:8px;height:8px;background:#ff9bd4;animation:musicFloat 7s 1s ease-in-out infinite reverse}.music-heart{position:absolute;color:#ff9bd0;text-shadow:0 0 15px #ff168b;pointer-events:none}.music-heart-one{left:12%;bottom:29%;font-size:25px;animation:musicFloat 5s ease-in-out infinite}.music-heart-two{right:12%;top:24%;font-size:19px;animation:musicFloat 5.7s .7s ease-in-out infinite reverse}@keyframes musicOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes musicRise{from{opacity:0;transform:translateY(17px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes musicGlow{50%{box-shadow:0 0 0 5px rgba(255,71,164,.13),0 0 42px rgba(255,20,135,.36),inset 0 0 30px rgba(255,50,159,.19)}}@keyframes musicFloat{50%{transform:translateY(-17px) scale(1.12);opacity:.62}}@keyframes equalize{to{height:12px;opacity:.65}}@media(max-width:560px){.music-interlude{padding:22px 16px}.music-content h1{font-size:39px}.music-dedication{font-size:13px;margin-bottom:16px}.music-player-frame{padding:8px;border-radius:13px}.music-frame-top{font-size:6px}.music-orbit-one{left:5%;top:11%}.music-orbit-two{right:6%;bottom:13%}.music-heart-one{left:5%;bottom:22%;font-size:19px}.music-heart-two{right:5%;top:19%;font-size:15px}.music-enter{font-size:9px;padding:12px}.music-note{font-size:7px}}@media(max-height:700px){.music-interlude{align-items:start}.music-content{margin:auto}.music-content h1{font-size:clamp(30px,5vh,44px)}.music-dedication{margin-bottom:12px}.music-enter{margin-top:11px}}
.music-dock{position:fixed;z-index:12;top:50%;right:18px;transform:translate(24px,-50%);width:min(310px,calc(100vw - 28px));max-height:88svh;display:flex;flex-direction:column;gap:11px;overflow:hidden;padding:15px;border:1px solid rgba(255,111,191,.67);border-radius:17px;background:linear-gradient(150deg,rgba(40,9,30,.97),rgba(15,5,15,.97) 68%,rgba(67,9,45,.96));box-shadow:0 0 0 4px rgba(255,65,159,.08),0 0 38px rgba(255,18,136,.3),inset 0 0 30px rgba(255,44,153,.08);backdrop-filter:blur(18px);opacity:0;visibility:hidden;transition:opacity .7s,visibility .7s,transform .7s cubic-bezier(.16,1,.3,1)}.music-dock[hidden]{display:none}.music-dock.is-visible{opacity:1;visibility:visible;transform:translate(0,-50%)}.music-dock:before{content:'';position:absolute;inset:5px;border:1px solid rgba(255,189,224,.12);border-radius:12px;pointer-events:none}.music-dock-heading{position:relative;z-index:1;display:flex;align-items:center;gap:9px;min-width:0}.music-dock-heart{display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid rgba(255,113,191,.43);border-radius:50%;color:#ffd7eb;font-size:20px;text-shadow:0 0 14px #ff168b;box-shadow:0 0 17px rgba(255,37,148,.22);animation:heartbeat 2.6s ease-in-out infinite}.music-dock-heading .eyebrow{font-size:6px;letter-spacing:.14em}.music-dock-heading h2{margin:2px 0 0;color:#ffe8f4;font:italic 19px 'Playfair Display',Georgia,serif}.music-dock-heading .music-equalizer{margin-left:auto}.music-dock .music-video{flex:none;width:100%;aspect-ratio:16/9;border-radius:9px}.music-dock .music-caption{position:relative;z-index:1;margin:-3px 1px 0;color:#ffe1f1;font:italic 12px 'Playfair Display',Georgia,serif}.music-caption span{display:block;margin-top:3px;color:#a97b94;font:7px 'DM Sans',Arial,sans-serif;letter-spacing:.08em}.lyrics-card{position:relative;z-index:1;display:flex;flex:1 1 auto;flex-direction:column;min-height:110px;overflow:hidden;padding:11px;border:1px solid rgba(255,115,188,.31);border-radius:10px;background:linear-gradient(140deg,rgba(96,15,61,.43),rgba(20,6,17,.77));box-shadow:inset 0 0 18px rgba(255,29,142,.07)}.lyrics-heading{display:flex;align-items:center;justify-content:space-between;flex:none;color:#f5a9d0;font-size:7px;font-weight:700;letter-spacing:.2em}.lyrics-heading i{color:#ff83c5;font-size:16px;font-style:normal;text-shadow:0 0 12px #ff168b}.lyrics-lines{overflow:auto;min-height:0;max-height:39svh;padding:4px 3px 3px;scrollbar-width:thin;scrollbar-color:#a83372 transparent}.lyrics-placeholder{margin:7px 0 3px;color:#bb91a7;font:italic 11px/1.6 'Playfair Display',Georgia,serif}.lyrics-placeholder b{color:#ffc4e2;font-weight:500}.lyric-line{margin:0;padding:7px 3px;border-bottom:1px solid rgba(255,129,191,.09);color:#ffe5f2;text-align:center;font:italic 13px/1.45 'Playfair Display',Georgia,serif;text-shadow:0 0 12px rgba(255,62,161,.22);animation:phraseIn .45s both}.music-dock .music-note{position:relative;z-index:1;flex:none;margin:0;text-align:center;font-size:7px;letter-spacing:.03em}.music-on .app{max-width:1180px}@media(min-width:1260px){.music-on .app{width:auto;margin-left:max(22px,calc((100vw - 1580px)/2));margin-right:350px}.music-dock{right:22px}}@media(max-width:1259px){.music-dock{top:auto;right:10px;bottom:10px;left:10px;transform:translateY(25px);width:auto;max-height:min(38svh,300px);display:grid;grid-template-columns:minmax(125px,34%) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:6px 11px;padding:10px 12px}.music-dock.is-visible{transform:translateY(0)}.music-dock-heading{grid-column:1/-1}.music-dock-heading .music-dock-heart{width:27px;height:27px;flex-basis:27px;font-size:16px}.music-dock-heading h2{font-size:15px}.music-dock .music-video{grid-column:1;grid-row:2;width:100%;align-self:center}.music-dock .music-caption{grid-column:1;grid-row:3;font-size:10px;line-height:1.2}.music-dock .music-caption span{font-size:6px}.lyrics-card{grid-column:2;grid-row:2/4;min-height:0;padding:8px}.lyrics-lines{max-height:none}.lyric-line{padding:4px 2px;font-size:11px}.lyrics-placeholder{font-size:10px}.music-dock .music-note{display:none}.music-dock:before{inset:4px}}@media(max-width:560px){.music-dock{left:7px;right:7px;bottom:7px;grid-template-columns:minmax(100px,32%) minmax(0,1fr);gap:5px 8px;padding:8px 9px;max-height:min(36svh,260px);border-radius:13px}.music-dock-heading .eyebrow{font-size:5px}.music-dock-heading h2{font-size:14px}.music-dock .music-caption{font-size:9px}.music-dock .music-caption span{font-size:5px}.lyrics-card{padding:7px}.lyrics-heading{font-size:6px}.lyric-line{font-size:10px;line-height:1.35}.lyrics-placeholder{font-size:9px;line-height:1.4}}@media(prefers-reduced-motion:reduce){.music-dock,.music-dock *{animation:none!important;transition-duration:.01ms!important}}
.music-dock .music-video{display:none}.record-wrap{position:relative;z-index:1;display:grid;place-items:center;flex:none;height:112px}.vinyl-record{position:relative;display:grid;place-items:center;width:100px;height:100px;border:1px solid rgba(255,170,216,.58);border-radius:50%;background:repeating-radial-gradient(circle at center,#171017 0 3px,#30202e 4px,#151016 5px 8px);box-shadow:0 0 0 5px rgba(255,83,172,.08),0 0 24px rgba(255,37,148,.28);transition:transform .5s}.vinyl-record:before{content:'';position:absolute;inset:35%;border:1px solid #ff8dc8;border-radius:50%;background:radial-gradient(circle,#ffadd8 0 12%,#a82968 14% 100%);box-shadow:0 0 15px rgba(255,36,148,.7)}.vinyl-record span{position:relative;z-index:1;color:#fff0f8;font-size:12px;text-shadow:0 0 8px #ff168b}.vinyl-record.playing{animation:recordSpin 3s linear infinite}.song-audio{position:relative;z-index:1;display:block;width:100%;height:42px;flex:none;accent-color:#ff55ae;color-scheme:dark}.music-on .music-dock{border-color:rgba(255,111,191,.8)}.lyric-line.is-active{color:#fff;background:linear-gradient(90deg,transparent,rgba(255,55,161,.2),transparent);text-shadow:0 0 9px #ff168b,0 0 20px rgba(255,70,173,.7);transform:scale(1.025)}@keyframes recordSpin{to{transform:rotate(360deg)}}@media(max-width:1259px){.music-dock .record-wrap{grid-column:1;grid-row:2}.music-dock .song-audio{grid-column:1;grid-row:3}.music-dock .music-caption{display:none}.music-dock .lyrics-card{grid-column:2;grid-row:2/4}}@media(max-width:560px){.music-dock{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 40px minmax(65px,1fr);max-height:min(40svh,260px)}.music-dock .record-wrap{display:none}.music-dock .song-audio{grid-column:1;grid-row:2;width:100%;height:40px}.music-dock .lyrics-card{grid-column:1;grid-row:3;min-height:0}.music-dock .lyrics-lines{max-height:none}}
@media(max-height:700px) and (min-width:561px) and (max-width:1259px){.music-dock{max-height:min(44svh,280px)}.music-dock .record-wrap{height:67px}.vinyl-record{width:62px;height:62px}}
.lyric-interlude{color:#e9a8cc!important;font-size:11px!important;letter-spacing:.04em;font-style:italic}
.music-dock{top:12px;right:12px;bottom:auto;left:auto;width:min(294px,calc(100vw - 24px));max-height:none;display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:auto auto auto;gap:6px 9px;overflow:hidden;padding:10px 11px;border-radius:14px;transform:translateY(-18px)}.music-dock.is-visible{transform:translateY(0)}.music-dock.is-dragging{transition:none;user-select:none}.music-dock-heading{grid-column:1/-1;cursor:grab;touch-action:none;user-select:none}.music-dock.is-dragging .music-dock-heading{cursor:grabbing}.music-drag-grip{margin-left:5px;color:#d793b6;font-size:19px;line-height:1}.music-dock .record-wrap{grid-column:1;grid-row:2;height:48px}.music-dock .vinyl-record{width:44px;height:44px}.music-dock .song-audio{grid-column:2;grid-row:2;width:100%;height:42px;min-width:0;align-self:center}.music-dock .music-caption{display:block;grid-column:1/-1;grid-row:3;margin:0;text-align:center;font-size:10px;line-height:1.25}.music-dock .music-caption span{font-size:6px}.music-dock .music-note{display:none}.music-dock:before{inset:4px;border-radius:10px}@media(max-width:560px){.music-dock{top:8px;right:8px;bottom:auto;left:auto;width:min(276px,calc(100vw - 16px));grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto auto;gap:5px 7px;padding:8px 9px;max-height:none}.music-dock .record-wrap{display:grid;grid-column:1;grid-row:2;height:42px}.music-dock .vinyl-record{width:38px;height:38px}.music-dock .song-audio{grid-column:2;grid-row:2;width:100%;height:40px}.music-dock .music-caption{display:block;grid-column:1/-1;grid-row:3;font-size:9px}.music-dock .music-caption span{font-size:5px}}
