:root{color-scheme:light;--paper:#fcf9f7;--pink:#f6e7e9;--ink:#49383f;--muted:#967b84;--accent:#9f465f;--line:#e6d6d9;letter-spacing:0;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0}svg{width:19px;height:19px;stroke-width:1.5}button svg{pointer-events:none}a{color:inherit;text-decoration:none}.masthead{height:82px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.masthead a{font-family:Georgia,serif;font-size:25px}.dot{color:var(--accent)}.masthead>span{font-size:12px;color:var(--muted)}.masthead>svg{color:var(--accent);width:17px}main{display:grid;grid-template-columns:2fr 1fr;max-width:1600px;margin:auto;min-height:calc(100svh - 132px)}.music{min-width:0;background:var(--pink);padding:30px 36px 18px;display:flex;flex-direction:column;align-items:center}.song-heading{text-align:center}.eyebrow{font-size:10px;color:var(--accent)}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:44px;line-height:1.1;margin:10px 0} .song-heading p{font-size:12px;margin:0;color:#78626c}.song-heading p span{font-family:Georgia,serif;font-style:italic;margin:0 5px}.turntable{width:320px;max-width:100%;aspect-ratio:1;position:relative;display:grid;place-items:center;margin:17px 0 3px}.orbit{position:absolute;inset:7px;border:1px solid #dcbfc7;border-radius:50%;transform:rotate(-20deg)}.orbit:after{content:"";position:absolute;inset:-9px;border:1px solid #e9ced4;border-radius:50%}.record{width:88%;aspect-ratio:1;border-radius:50%;padding:0;background:none;position:relative;box-shadow:0 15px 25px #5a30412b;transition:transform .25s}.record:hover{transform:scale(1.015)}.vinyl{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:repeating-radial-gradient(circle at center,#272527 0px,#272527 1px,#363235 2px,#211f21 3px);position:relative;animation:spin 20s linear infinite;animation-play-state:paused;overflow:hidden}.vinyl:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 25deg,transparent 0deg,#ffffff1c 40deg,transparent 80deg,transparent 180deg,#ffffff1c 220deg,transparent 260deg)}.playing .vinyl{animation-play-state:running}.vinyl img{width:40%;height:40%;object-fit:cover;border-radius:50%;border:5px solid #201e20;z-index:1}.spindle{position:absolute;width:12px;height:12px;border:3px solid #c9b7ad;background:#f4e9e7;border-radius:50%;z-index:2}.side-mark{position:absolute;right:-32px;top:50%;font-size:8px;color:#947881;writing-mode:vertical-rl}.lyrics{height:140px;width:100%;max-width:570px;overflow:hidden;position:relative;margin-top:8px;mask-image:linear-gradient(transparent,#000 18%,#000 82%,transparent)}#lyric-track{position:absolute;left:0;right:0;top:0;transition:transform .5s ease}.lyric-line{height:70px;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:2px 8px;background:none;color:#967e86;opacity:.62;text-align:center;gap:5px}.lyric-line .es{font-family:Georgia,serif;font-size:16px;line-height:1.25}.lyric-line .zh{font-size:11px;line-height:1.45}.lyric-line.active{opacity:1;color:#933b55}.lyric-line.active .es{font-weight:bold}.lyric-line:focus-visible{outline-offset:-3px}.player{width:100%;max-width:470px;margin-top:10px}.timeline{display:flex;align-items:center;gap:12px;font-size:10px;color:#8d6d78;font-variant-numeric:tabular-nums}.timeline span{width:32px}.timeline span:last-child{text-align:right}input[type=range]{height:3px;accent-color:var(--accent);cursor:pointer;min-width:0}#seek{flex:1}.controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:15px;gap:12px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:36px;color:#947480;background:transparent;flex-shrink:0;border-radius:4px}.icon-button:hover{color:var(--accent);background:#9f465f0c}.icon-button[aria-pressed=true]{color:var(--accent);background:#9f465f15}.transport{display:flex;align-items:center;gap:17px}.play-button{width:48px;height:48px;border-radius:50%;background:var(--accent);color:white;display:grid;place-items:center;box-shadow:0 4px 12px #963c5824}.play-button:hover{background:#87344c}.options{display:flex;align-items:center;justify-content:flex-end;gap:2px;min-width:0}#volume{width:45px}.options details{position:relative}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.timing{position:absolute;bottom:46px;right:0;background:var(--paper);border:1px solid var(--line);padding:14px;width:190px;box-shadow:0 4px 16px #49383f12;z-index:5;border-radius:4px;font-size:12px}.timing input{margin-top:10px;width:100%;padding:6px;border:1px solid var(--line);background:white;color:var(--ink)}#status{font-size:12px;color:var(--accent);text-align:center;min-height:16px;margin:6px 0 0}.letter{min-width:0;padding:62px 13% 40px;border-left:1px solid var(--line);position:relative;display:flex;flex-direction:column;background:#fdfbf9}.letter-top{display:flex;align-items:center;justify-content:space-between;font-family:Georgia,serif;font-size:10px;color:#aa848e}.letter-top svg{width:16px}.letter h2{font-family:"KaiTi","STKaiti",serif;font-size:32px;font-weight:400;margin:56px 0 32px}.letter p{font-size:14px;line-height:2.2;margin:0 0 22px;white-space:pre-wrap;overflow-wrap:anywhere}.letter-end{margin-top:auto;padding-top:60px;display:flex;align-items:center;justify-content:center;gap:13px;color:#b7929d}.letter-end span{height:1px;width:34px;background:var(--line)}.letter-end svg{width:12px}footer{height:50px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;color:#a0888f;font-size:10px;border-top:1px solid var(--line)}footer span:first-child{font-family:Georgia,serif;font-style:italic;font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1400px) and (min-height:850px){.music{padding-top:40px}.turntable{width:370px;margin-top:22px}.lyrics{margin-top:18px}.player{margin-top:16px}}
@media(max-width:760px){.masthead{height:64px;padding:0 24px}.masthead a{font-size:22px}main{display:block}.music{padding:28px 20px 18px}.turntable{width:290px;margin-top:18px}.side-mark{right:-14px}h1{font-size:40px}.lyrics{max-width:520px;height:150px}.lyric-line{height:75px}.lyric-line .es{font-size:15px}.lyric-line .zh{font-size:11px}.player{max-width:430px}.transport{gap:10px}.controls{gap:6px}#volume{width:34px}.icon-button{width:29px}.letter{padding:35px 30px;min-height:340px;border-top:1px solid var(--line);border-left:0}.letter h2{margin:35px 0 28px;font-size:29px}.letter-end{padding-top:40px}footer{padding:0 24px}}
.orbit{transform:none}

/* One continuous beach backdrop; the letter adds a second frosted layer. */
:root{--ink:#3d3039;--muted:#71515e;--accent:#8e3454;--line:#ffffff66}
body{position:relative;isolation:isolate;background:transparent}
.flower-background{position:fixed;inset:-18px;z-index:-2;pointer-events:none;background:#e4dedc url('bottle-shore.jpg') center 64% / cover no-repeat;filter:blur(5.75px) saturate(.7)}
body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:rgba(255,246,249,.57)}
.masthead{background:#fff9fb1a;border-color:#ffffff55}
.masthead>span,.song-heading p,.side-mark,footer{color:#674d59}
main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:38px;padding:24px 5% 32px;align-items:center;min-height:calc(100svh - 132px)}
.music{background:transparent;padding:4px 0 0}
.turntable{width:240px;margin:15px 0 0}
.orbit,.orbit:after{border-color:#ffffff85}
.lyrics{height:300px;max-width:690px;margin-top:16px;mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent)}
.lyric-line{height:100px;gap:8px;padding:4px 12px;color:#553e4b;opacity:.64}
.lyric-line .es{font-size:23px;line-height:1.3;text-wrap:pretty}
.lyric-line .zh{font-size:16px;line-height:1.5}
.lyric-line.active{color:#7e2145;text-shadow:0 1px 16px #fff9fc}
.player{max-width:510px;margin-top:12px}
.timeline,.icon-button{color:#684957}
.letter{align-self:center;min-height:610px;width:100%;padding:38px 36px;border:1px solid #ffffffa6;border-radius:8px;background:#fff9fc47;backdrop-filter:blur(24px) saturate(.8);-webkit-backdrop-filter:blur(24px) saturate(.8);box-shadow:0 24px 65px #49303e21,0 2px 7px #49303e0a,inset 0 1px 0 #ffffffa6}
.letter-top,.letter-end{color:#805968}.letter h2{margin-top:48px}.letter-end span{background:#9972804d}
footer{background:#fff9fb12;border-color:#ffffff55}
@media(min-width:1400px) and (min-height:850px){.music{padding-top:4px}.turntable{width:260px;margin-top:18px}.lyrics{margin-top:18px}.player{margin-top:16px}.letter{min-height:660px}}
@media(min-width:761px) and (max-width:1100px){main{gap:24px;padding-left:3%;padding-right:3%}.letter{padding:30px 24px}.lyric-line{height:112px}.lyrics{height:336px}.lyric-line .es{font-size:21px}.lyric-line .zh{font-size:15px}}
@media(max-width:760px){main{padding:20px 20px 32px}.music{padding:0}.turntable{width:220px;margin-top:15px}.lyrics{height:324px;margin-top:16px}.lyric-line{height:108px;padding:4px 2px;gap:7px}.lyric-line .es{font-size:20px}.lyric-line .zh{font-size:14px}.player{margin-top:8px}.letter{margin-top:30px;min-height:360px;padding:30px 26px}.letter h2{margin-top:36px}.side-mark{right:-16px}.flower-background{background-position:56% center}}
@media(max-width:360px){.lyric-line{height:124px}.lyrics{height:372px}.lyric-line .es{font-size:19px}.lyric-line .zh{font-size:14px}.turntable{width:200px}}
@media(max-width:760px){.flower-background{background-position:27% center}}
.letter.envelope{height:660px;min-height:0;padding:58px 18px 78px;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate}
.envelope-flap{position:absolute;inset:0 0 auto;height:250px;background:#e2c4ce9c;clip-path:polygon(50% 0,100% 44%,100% 100%,0 100%,0 44%);backdrop-filter:blur(24px);z-index:-1}
.letter-sheet{height:100%;min-height:0;display:flex;flex-direction:column;padding:26px 24px 10px;border:1px solid #ffffffc4;border-radius:4px;background:#fffaf7a8;backdrop-filter:blur(24px) saturate(.8);-webkit-backdrop-filter:blur(24px) saturate(.8);box-shadow:0 12px 36px #49303e24;position:relative;z-index:1}
.letter-sheet .letter-top{flex-shrink:0;padding-bottom:18px;border-bottom:1px solid #9d71832b}
#letter-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#b68d9b66 transparent;outline-offset:3px}
#letter-page{min-height:100%;display:flex;flex-direction:column;padding:0 5px 12px;overflow-wrap:anywhere}
.envelope h2{font-size:30px;margin:28px 0 24px}.envelope p{font-size:15px;line-height:2.1}.envelope .letter-end{padding-top:30px;padding-bottom:10px}
.letter-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #9d718326;padding-top:6px;flex-shrink:0}
#letter-counter{font-family:Georgia,serif;font-size:12px;color:#8d6675;font-variant-numeric:tabular-nums}.letter-pagination button{width:40px;height:40px}.letter-pagination button:disabled{opacity:.25;cursor:default;background:none}
.envelope-pocket{position:absolute;inset:auto 0 0;height:165px;z-index:2;pointer-events:none;border:1px solid #ffffff9c;border-radius:0 0 6px 6px;background:#d8b6c5a6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);clip-path:polygon(0 0,50% 48%,100% 0,100% 100%,0 100%);box-shadow:0 15px 35px #49303e26}
.envelope-pocket:before,.envelope-pocket:after{content:"";position:absolute;inset:0;background:#f2dbe4b3;clip-path:polygon(0 0,100% 100%,0 100%)}.envelope-pocket:after{clip-path:polygon(100% 0,100% 100%,0 100%);background:#ecd0dab3}
.wax-seal{position:absolute;left:calc(50% - 20px);bottom:22px;width:40px;height:40px;border-radius:50%;background:#9d4865;border:3px double #c87f98;display:grid;place-items:center;color:#f4d5df;z-index:1;box-shadow:0 3px 8px #68324733}.wax-seal svg{width:17px;height:17px}
@media(min-width:761px) and (max-width:1100px){.letter.envelope{padding-left:10px;padding-right:10px}.letter-sheet{padding-left:16px;padding-right:16px}}
@media(max-width:760px){.letter.envelope{height:600px;margin-top:30px;padding:48px 14px 78px}.letter-sheet{padding:22px 18px 10px}.envelope-flap{height:210px}.envelope h2{font-size:28px}}
.letter.envelope{padding-bottom:118px}.envelope-pocket{height:112px}.wax-seal{bottom:12px}
@media(prefers-reduced-motion:reduce){.vinyl{animation:none}#lyric-track{transition:none}.record{transition:none}}
.letter.envelope{--paper-side:36px;padding-left:var(--paper-side);padding-right:var(--paper-side)}
.letter-sheet{background:#fff8f5ed;transform-origin:50% 55%;z-index:2}
.letter-back{position:absolute;top:58px;bottom:118px;left:var(--paper-side);right:var(--paper-side);height:auto;transform:translateY(8px) rotate(15deg);z-index:0;pointer-events:none;background:#ead9dbeF;overflow:hidden;box-shadow:0 12px 28px #49303e24}
.letter-back .paper-scroll{flex:1;min-height:0;overflow:hidden}
.letter-back .paper-page{min-height:100%;display:flex;flex-direction:column;padding:0 5px 12px;overflow-wrap:anywhere}
.letter-back .letter-pagination span{font-family:Georgia,serif;font-size:12px;color:#8d6675}
@media(max-width:760px){.letter.envelope{--paper-side:42px}.letter-back{top:48px}.letter-sheet{padding-left:14px;padding-right:14px}}
@media(max-width:360px){.letter.envelope{--paper-side:36px;height:560px}.letter-sheet{padding-left:12px;padding-right:12px}}
