:root{--ink:#2a2025;--paper:#fffaf5;--red:#c74b61;--rose:#efb8bc;--blush:#f9e5de;--lime:#d8e88d;--wine:#552936;--line:#e6d6d1;--muted:#806b70}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}.eyebrow{font:500 10px "DM Mono",monospace;letter-spacing:.16em;margin:0 0 16px;color:var(--muted)}h1,h2,h3{font-family:"Playfair Display",Georgia,serif;letter-spacing:-.05em}em{color:var(--red)}button{border:0;background:var(--red);color:white;padding:14px 17px;text-align:left;font:700 13px "DM Sans",sans-serif;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}button:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--wine)}button span{float:right;font-size:18px}.login-shell{min-height:100vh;display:grid;place-items:center;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 10%,#4b2833 0,#23191e 56%,#171115 100%)}.login-shell:before{content:"";position:absolute;inset:0;opacity:.32;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:31px 31px;mask-image:linear-gradient(to bottom,black,transparent 75%)}.glow{position:absolute;border-radius:50%;filter:blur(1px);opacity:.96}.glow-one{width:54vw;height:54vw;background:radial-gradient(circle at 65% 65%,#df6472 0 35%,#a6364e 70%);left:-16vw;top:-25vw}.glow-two{width:43vw;height:43vw;background:radial-gradient(circle at 28% 30%,#f3e9ae,#c3d67c 62%);right:-18vw;bottom:-25vw}.love-dust{position:absolute;z-index:1;color:#ffd8d2;opacity:.7;animation:float 5s ease-in-out infinite}.dust-one{top:19%;left:27%;font-size:14px}.dust-two{right:25%;bottom:26%;font-size:18px;animation-delay:-2s}.dust-three{right:20%;top:18%;font-size:11px;animation-delay:-3.5s}.login-card{z-index:2;width:min(475px,calc(100% - 32px));padding:56px 58px;background:linear-gradient(135deg,#fffdf9,#fcedea);box-shadow:0 24px 65px #09050866,13px 14px 0 #3a2029;position:relative}.login-card:after{content:"";position:absolute;inset:11px;border:1px solid #e9ceca;pointer-events:none}.login-card>*{position:relative;z-index:1}.little-heart{width:38px;height:38px;display:grid;place-items:center;margin:3px 0 9px;color:var(--red);background:#f9d9d4;border-radius:50%;font-size:18px;animation:pulse 3s ease-in-out infinite}.login-card h1{font-size:54px;line-height:.96;margin:14px 0 17px}.login-card h1 em{color:var(--red);text-shadow:2px 3px 0 #f7c5c0}.intro{line-height:1.65;margin:22px 0 27px;color:#4f3a40}.login-form,#memory-form{display:grid;gap:15px}.login-form label,#memory-form label{font-size:12px;font-weight:700;display:grid;gap:7px}.login-form input,#memory-form input,#memory-form textarea{width:100%;border:1px solid #d6c4c0;background:#fffaf6;padding:13px;font:14px "DM Sans",sans-serif;outline-color:var(--red);transition:border .2s,box-shadow .2s}.login-form input:focus,#memory-form input:focus,#memory-form textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #eeb3ba55}#memory-form textarea{resize:vertical;min-height:115px}.login-form button{margin-top:5px;background:linear-gradient(110deg,var(--red),#de6170)}.hint{font:11px "DM Mono",monospace;color:var(--muted);margin:26px 0 0}.hint span{color:var(--red)}.error{font-size:13px;color:#9b3245;background:#ffe2e0;padding:10px}.app{display:flex;min-height:100vh}.sidebar{width:224px;border-right:1px solid var(--line);padding:27px 20px;position:fixed;inset:0 auto 0 0;background:#fffaf6;display:flex;flex-direction:column}.brand{font:700 21px "Playfair Display",Georgia;color:var(--ink);text-decoration:none}.brand span{color:var(--red)}nav{display:grid;gap:8px;margin-top:90px}nav a{font:12px "DM Mono",monospace;text-decoration:none;color:#99878a;padding:10px 9px;border-left:2px solid transparent}nav a:hover,nav .active{color:var(--ink);border-color:var(--red)}.side-footer{margin-top:auto;display:grid;gap:14px;font:10px "DM Mono",monospace;color:#a08c8e}.side-footer a{color:var(--ink);font-size:11px}.content{margin-left:224px;width:calc(100% - 224px);overflow:hidden}.content header{height:75px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6vw;font:11px "DM Mono",monospace;color:#967f84}.online{color:var(--ink)}.online i{width:8px;height:8px;background:var(--lime);border-radius:100%;display:inline-block;margin-right:7px;box-shadow:0 0 0 4px #d8e88d66}.hero{min-height:580px;padding:88px 6vw;position:relative;border-bottom:1px solid var(--line);background:linear-gradient(115deg,#fffaf5 0%,#fffaf5 55%,#fcece9 100%)}.hero h1{font-size:clamp(44px,5vw,74px);line-height:.96;margin:0;max-width:770px}.hero-copy{font-size:16px;line-height:1.6;max-width:340px;margin:28px 0;color:#5f4c51}.text-link{color:var(--wine);font:700 12px "DM Mono",monospace;text-decoration:none;border-bottom:1px solid var(--wine);padding-bottom:5px}.orbital{position:absolute;width:310px;height:310px;right:7%;top:115px;border-radius:50%;display:grid;place-items:center;color:var(--wine);text-align:center;font:15px "DM Mono",monospace;isolation:isolate}.moon{width:145px;height:145px;border-radius:50%;background:linear-gradient(145deg,#f8dfd9,#e98991);display:grid;place-items:center;font-size:52px;z-index:1;transform:rotate(-11deg);box-shadow:0 14px 28px #a3425040;animation:float 5s ease-in-out infinite}.orbit{position:absolute;border:1px solid #a46973;border-radius:50%;z-index:-1}.orbit-a{inset:4px 30px;transform:rotate(49deg)}.orbit-b{inset:54px -18px;transform:rotate(-34deg);border-color:var(--red)}.orbital p{position:absolute;bottom:-7px;right:5px}.story-grid{display:grid;grid-template-columns:1.2fr 1.15fr .85fr;min-height:430px;border-bottom:1px solid var(--line)}.story-grid>*{padding:42px 36px;border-right:1px solid var(--line)}.story-grid h2{font-size:42px;margin:0}.counter{display:flex;align-items:center;gap:16px;margin-top:50px}.counter b{font:60px "Playfair Display",Georgia;color:var(--red)}.counter span,.tag,.note small{font:10px "DM Mono",monospace}.memory{background:linear-gradient(145deg,#e79ba0,#c74b61 50%,#673243);color:white;position:relative}.memory-bottom{position:absolute;bottom:35px;left:36px;right:30px;display:flex;align-items:end;justify-content:space-between}.memory-bottom p{margin:0;font:23px/1.05 "Playfair Display",Georgia}.memory button{background:var(--lime);color:var(--ink);width:36px;height:36px;padding:7px;text-align:center}.note{background:#f8e0dd;display:flex;flex-direction:column}.note>span{font:80px/1 "Playfair Display",Georgia;color:var(--red)}.note p{font:21px/1.15 "Playfair Display",Georgia;margin:7px 0 auto}.moments{padding:88px 6vw;display:flex;align-items:end;justify-content:space-between;gap:30px;background:var(--blush)}.moments h2,.letters h2{font-size:49px;margin:0}.moments-action{max-width:330px}.moments-action p,.letters-copy{font-size:14px;line-height:1.6}.upload-button{display:inline-block;border:1px solid var(--wine);padding:12px 15px;font:11px "DM Mono",monospace;cursor:pointer;transition:.2s}.upload-button:hover{background:var(--wine);color:white}.upload-button input{display:none}.photo-wall{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);min-height:120px}.photo-wall figure{position:relative;margin:0;aspect-ratio:1;background:#ead8d0}.photo-wall img{width:100%;height:100%;object-fit:cover;display:block}.delete-photo{position:absolute;right:9px;top:9px;width:30px;height:30px;padding:0;text-align:center;background:#3d232bcc}.empty-gallery{grid-column:1/-1;background:var(--paper);padding:42px 6vw;font:18px "Playfair Display",Georgia}.empty-gallery span{font:11px "DM Mono",monospace;color:#988387}.letters{padding:85px 6vw;background:linear-gradient(135deg,#311d25,#552936);color:var(--paper)}.letters-copy{max-width:420px;color:#ead5d0}.letters button{background:var(--lime);color:var(--ink);min-width:210px}.letter-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:#72515a;margin-top:58px}.saved-letter{padding:25px;background:#3b252d}.saved-letter span{font:10px "DM Mono",monospace;color:var(--lime)}.saved-letter h3{font:25px/1.05 "Playfair Display",Georgia;margin:15px 0 10px}.saved-letter p{font-size:13px;line-height:1.55;color:#f1e2dd;margin:0;white-space:pre-wrap}.composer{display:none;position:fixed;inset:0;z-index:20;background:#28151cb8;place-items:center;padding:18px}.composer.show{display:grid}.composer-card{position:relative;width:min(590px,100%);padding:47px;background:var(--paper);box-shadow:12px 12px 0 var(--red)}.composer-card h2{font-size:42px;margin:0 0 30px}.close-composer{position:absolute;right:14px;top:14px;width:34px;height:34px;padding:0;text-align:center;background:var(--wine)}@keyframes float{50%{transform:translateY(-10px) rotate(5deg)}}@keyframes pulse{50%{transform:scale(1.08);box-shadow:0 0 0 8px #eeb3ba44}}@media(max-width:850px){.sidebar{width:100%;height:61px;position:fixed;z-index:5;padding:17px 20px;flex-direction:row;align-items:center}.sidebar nav,.side-footer{display:none}.content{margin:61px 0 0;width:100%}.hero{padding:64px 8vw;min-height:570px}.orbital{transform:scale(.66);right:-47px;top:255px}.story-grid{grid-template-columns:1fr}.story-grid>*{min-height:280px;border-right:0;border-bottom:1px solid var(--line)}.moments{align-items:start;flex-direction:column;padding:65px 8vw}.photo-wall{grid-template-columns:repeat(2,1fr)}.login-card{padding:42px 31px}.login-card h1{font-size:45px}}
 .login-register{margin-top:20px;color:var(--muted);font:11px "DM Mono",monospace}.login-register summary{cursor:pointer;color:var(--wine)}.login-register .login-form{margin-top:16px}.user-list{margin-top:27px;padding-top:20px;border-top:1px solid var(--line)}.user-list .eyebrow{margin-bottom:10px}.user-list ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.user-list .user-entry{display:block;padding:11px;background:#fffaf6;border:1px solid var(--line);font:12px "DM Mono",monospace;color:var(--wine)}.user-entry-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-list small{color:var(--red);font-size:10px}.user-entry details{margin-top:10px}.user-entry summary{cursor:pointer;color:var(--wine)}.user-edit-form{display:grid;gap:8px;margin-top:10px}.user-edit-form label{display:grid;gap:4px;font-weight:700}.user-edit-form input{width:100%;padding:8px;border:1px solid var(--line);background:#fff;font:12px "DM Sans",sans-serif}.user-edit-form button,.delete-user-form button{margin-top:3px;padding:9px 11px;font-size:11px}.delete-user-form{margin-top:10px}.delete-user-form button{background:var(--wine)}
@media (min-width:851px) and (max-height:1050px){.sidebar{padding:18px 16px;overflow-y:auto}.brand-photo{width:60px;height:60px;margin:14px 0 6px}.brand-photo span{font-size:20px}.sidebar nav{margin-top:25px;gap:2px}.sidebar nav a{padding:7px 8px}.music-player{margin-top:14px;padding:13px 6px 10px}.music-heading{margin-bottom:6px}.music-disc{width:54px;height:54px;margin-bottom:6px}.music-disc:after{inset:18px}.music-title{margin-bottom:2px}.music-status{margin-bottom:6px}.music-timeline{margin-bottom:6px}.music-controls{gap:5px}.music-controls .music-play{width:32px;height:32px}.music-add{margin-top:8px;padding:7px}.music-list{max-height:48px;margin-top:5px}.side-footer{margin-top:14px;padding-bottom:4px}}
@media (min-width:851px) and (max-height:850px){.sidebar{padding-top:12px}.brand-photo{width:50px;height:50px;margin:9px 0 4px}.sidebar nav{margin-top:16px}.sidebar nav a{padding:5px 8px}.music-player{padding:9px 5px}.music-disc{width:46px;height:46px}.music-disc:after{inset:15px}.music-heading,.music-status{display:none}.music-add{margin-top:5px;padding:6px}.music-list{max-height:32px}.side-footer{margin-top:10px}}
