
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#100914;--panel:#211426;--panel2:#2c1b30;--text:#fff4fa;--muted:#bca8bc;--accent:#ff78bd;--accent2:#a45cff;--line:#ffffff20;--glow:#f14ba16b}
*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;background:radial-gradient(ellipse at 50% -20%,#57264c 0%,transparent 53%),var(--bg);color:var(--text);min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.custom-background{display:none;position:fixed;inset:0;z-index:0;background-image:var(--custom-background,none);background-size:cover;background-position:center;background-repeat:no-repeat;pointer-events:none}.custom-background.has-image{display:block}.custom-background:after{content:"";position:absolute;inset:0;background:rgba(8,5,14,.76);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.background-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}.background-upload{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;padding:11px 15px;background:#ffffff12;color:var(--text);font-size:13px;font-weight:600;cursor:pointer}.background-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.background-upload:focus-within{outline:2px solid var(--accent);outline-offset:3px}.background-reset{border:1px solid var(--line);border-radius:12px;padding:11px 15px;background:#ffffff08;color:var(--text);font-size:13px}.glitter-field{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:3}.glitter{position:absolute;top:-24px;left:var(--x);width:var(--size);height:var(--size);opacity:0;background:var(--color);border-radius:50%;box-shadow:0 0 5px 1px var(--color),0 0 15px 3px var(--color);animation:glitter-fall var(--duration) linear var(--delay) infinite,glitter-twinkle var(--twinkle) ease-in-out var(--delay) infinite alternate}.glitter.star{border-radius:0;clip-path:polygon(50% 0%,60% 37%,100% 50%,60% 63%,50% 100%,40% 63%,0% 50%,40% 37%);filter:drop-shadow(0 0 5px var(--color))}.glitter.star:after{content:"";position:absolute;inset:0;background:var(--color)}@keyframes glitter-fall{0%{transform:translate3d(0,-30px,0) rotate(0deg);opacity:0}8%{opacity:var(--opacity)}86%{opacity:var(--opacity)}100%{transform:translate3d(var(--drift),110vh,0) rotate(var(--rotation));opacity:0}}@keyframes glitter-twinkle{0%,100%{filter:brightness(.8)}50%{filter:brightness(1.8)}}.app{position:relative;z-index:1;max-width:1050px;margin:auto;padding:20px 22px 110px}.top{display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{font-family:'Playfair Display',serif;font-size:23px;letter-spacing:2px}.brand span{color:var(--accent)}.mp-gem{display:inline-block;width:15px;height:15px;vertical-align:-2px;margin-right:4px;fill:none;stroke:url(#mp-gem-gradient);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.chip{border:1px solid var(--line);background:#ffffff0b;border-radius:100px;padding:9px 14px;color:var(--muted);font-size:12px}.hero{text-align:center;padding:70px 0 32px;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:4px;color:var(--accent);font-size:11px;font-weight:700}.hero h1{font:600 clamp(56px,11vw,104px)/1 'Playfair Display',serif;margin:15px 0 12px;letter-spacing:2px;text-shadow:0 0 50px var(--glow)}.hero h1 span{color:var(--accent)}.hero p{color:var(--muted);line-height:1.7;max-width:520px;margin:0 auto 30px}.heart-stage{height:255px;display:grid;place-items:center;position:relative}.orbit{position:absolute;width:220px;height:220px;border:1px solid #ff8dca45;border-radius:50%;box-shadow:0 0 75px var(--glow),inset 0 0 65px #e95ba02c;animation:breathe 4s ease-in-out infinite}.orbit:after{content:'';position:absolute;inset:18px;border:1px dashed #ffb1db3b;border-radius:50%;animation:spin 40s linear infinite}.locket{border:0;background:linear-gradient(145deg,#ffacd6,#d75aaf 50%,#8e3b94);width:142px;height:142px;clip-path:path('M 71 130 C 52 113 7 80 7 47 C 7 6 54 2 71 30 C 88 2 135 6 135 47 C 135 80 90 113 71 130 Z');display:grid;place-items:center;color:#fff;filter:drop-shadow(0 10px 25px #f04a9c);position:relative;transition:transform .3s}.locket:hover{transform:scale(1.08)}.locket svg{width:46px;height:46px;filter:drop-shadow(0 2px 4px #702553)}@keyframes breathe{50%{transform:scale(1.08);opacity:.65}}@keyframes spin{to{transform:rotate(360deg)}}.btn{border:0;border-radius:14px;padding:15px 23px;background:linear-gradient(115deg,var(--accent),var(--accent2));color:#160b19;font-weight:700;box-shadow:0 10px 30px var(--glow)}.btn.secondary{background:#ffffff0c;color:var(--text);box-shadow:none;border:1px solid var(--line)}.actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.section{margin:50px 0 0}.section h2{font:500 31px 'Playfair Display',serif;margin:0 0 10px}.section>p{color:var(--muted);line-height:1.6;margin:0 0 22px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tile{background:linear-gradient(145deg,#ffffff10,#ffffff04);border:1px solid var(--line);border-radius:20px;padding:24px;min-height:174px}.tile .symbol{font-size:29px;margin-bottom:20px}.tile h3{margin:0 0 9px;font-size:17px}.tile p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}.preview{margin-top:40px;display:none}.preview.active{display:block}.preview-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0}.tab{border:1px solid var(--line);background:#ffffff08;color:var(--muted);border-radius:100px;padding:11px 17px}.tab.active{background:var(--accent);color:#1d1021;border-color:transparent;font-weight:700}.screen{border:1px solid #ffb7e031;background:linear-gradient(150deg,#ffffff0c,#ffffff04);border-radius:26px;min-height:280px;padding:28px}.screen h3{font:500 29px 'Playfair Display',serif;margin:0 0 12px}.screen p{color:var(--muted);line-height:1.7}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.memory{border-radius:16px;padding:20px;background:linear-gradient(140deg,#ad438644,#552b6c55);border:1px solid var(--line);min-height:130px}.memory b{display:block;margin:10px 0}.memory small{color:var(--muted)}.envelope{margin:24px auto;max-width:250px;height:150px;border-radius:10px;background:linear-gradient(145deg,#ff9cc8,#bc4c94);display:grid;place-items:center;font-size:56px;box-shadow:0 14px 45px var(--glow)}.theme-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.swatch{width:56px;height:56px;border:3px solid transparent;border-radius:16px}.swatch[aria-pressed=true]{border-color:white;outline:2px solid var(--accent);outline-offset:2px}.swatch.pink{background:linear-gradient(135deg,#ff80c1,#5c226a)}.swatch.purple{background:linear-gradient(135deg,#ad7bff,#351a5b)}.swatch.gold{background:linear-gradient(135deg,#d7b575,#2b1a18)}.swatch.blue{background:linear-gradient(135deg,#72dcf2,#193b65)}.footer{text-align:center;color:var(--muted);font-size:12px;padding:65px 0 0}.modal{position:fixed;inset:0;background:#07030acb;display:none;align-items:center;justify-content:center;padding:20px;z-index:10;backdrop-filter:blur(12px)}.modal.active{display:flex}.dialog{width:min(100%,450px);background:linear-gradient(145deg,#35203a,#1a1020);border:1px solid #ff9bd044;border-radius:24px;padding:30px;box-shadow:0 30px 100px #000a;position:relative;text-align:center}.dialog h2{font:500 34px 'Playfair Display',serif;margin:8px 0}.dialog p{color:var(--muted);line-height:1.6}.close{position:absolute;right:15px;top:12px;background:none;color:var(--text);border:0;font-size:28px}.note{font-size:12px;color:var(--muted);line-height:1.6;margin-top:16px}.pill{display:inline-block;border:1px solid #ffb4d64d;border-radius:100px;padding:8px 13px;font-size:12px;color:var(--accent)}.empty{border:1px dashed #ffffff40;border-radius:15px;padding:25px;color:var(--muted);line-height:1.7}.small{font-size:12px!important}.hidden{display:none!important}
body[data-theme=purple]{--bg:#100b20;--panel:#241637;--accent:#c18bff;--accent2:#7362e9;--glow:#9e62ed65}body[data-theme=gold]{--bg:#17100f;--panel:#2c201b;--accent:#e8bd78;--accent2:#bb795b;--glow:#cf96535c}body[data-theme=blue]{--bg:#071622;--panel:#132e3b;--accent:#82dff0;--accent2:#6394f3;--glow:#3fa7dc55}
@media(max-width:650px){.app{padding:18px 16px 90px}.hero{padding-top:52px}.grid{grid-template-columns:1fr}.tile{min-height:auto}.two{grid-template-columns:1fr}.screen{padding:22px}.hero h1{font-size:clamp(52px,14vw,75px)}.brand{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}

.auth-panel{max-width:470px;margin:24px auto 0;text-align:left;background:linear-gradient(145deg,#ffffff13,#ffffff06);border:1px solid #ffb5df35;border-radius:24px;padding:25px;backdrop-filter:blur(16px)}.auth-panel h2{font:500 29px 'Playfair Display',serif;margin:0 0 14px}.field{display:block;margin:13px 0;color:var(--muted);font-size:13px}.field input,.field textarea{display:block;width:100%;margin-top:7px;background:#140e1bc9;border:1px solid #ffffff3a;border-radius:12px;color:var(--text);padding:13px;resize:vertical}.field textarea{min-height:110px}.status{min-height:20px;color:#ffd0e7;font-size:13px;line-height:1.5}.status.error{color:#ffb7b7}.switch{border:0;background:none;color:var(--accent);padding:12px 0}.dashboard{max-width:800px;margin:20px auto}.dashboard-top{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.stack{display:grid;gap:12px}.entry{border:1px solid var(--line);border-radius:16px;padding:16px;background:#ffffff09;overflow-wrap:anywhere}.entry p{white-space:pre-wrap;margin:9px 0}.entry small{color:var(--muted)}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.controls .btn{padding:12px 16px}.list-button{width:100%;text-align:left;border:1px solid var(--line);background:#ffffff0a;border-radius:16px;padding:18px;color:var(--text)}.list-button strong{display:block;font-size:18px}.list-button small{color:var(--muted)}.pulse-button{font-size:36px;border:1px solid #ff9cce77;background:linear-gradient(140deg,#ff85c4,#a963ed);border-radius:50%;width:90px;height:90px;box-shadow:0 0 45px #ff69b76a;color:white;animation:breathe 3s infinite}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}.muted{color:var(--muted)}.notice{padding:14px;border:1px solid #ff8dc35a;background:#ff87c016;border-radius:13px}.hidden{display:none!important}
