:root{--ink:#4e3543;--muted:#917887;--paper:#fffaf4;--coral:#fa8179;--darkcoral:#e86166;--pink:#ffe0dc;--yellow:#ffd66d;--line:#f2deda;--serif:Fraunces,Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px}button,input,textarea{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.eyebrow{font-size:.68rem;letter-spacing:.14em;font-weight:700;color:#ca7471;margin:0 0 .8rem}.login-screen{min-height:100svh;display:grid;place-items:center;padding:26px;position:relative;overflow:hidden;background:linear-gradient(150deg,#fff9f2,#ffe4de)}.sun{position:absolute;border-radius:50%;filter:blur(4px);opacity:.72}.sun-one{background:#ffd772;width:30rem;height:30rem;right:-16rem;top:-15rem}.sun-two{background:#ffaaa2;width:25rem;height:25rem;left:-17rem;bottom:-13rem}.login-card{width:min(100%,430px);position:relative;background:#fffdf9cc;backdrop-filter:blur(12px);border:1px solid #fff;padding:clamp(28px,7vw,54px);border-radius:28px;box-shadow:0 20px 70px #b15f5530;text-align:center}.lighthouse-mark{width:46px;height:46px;border-radius:16px;background:var(--coral);display:grid;place-items:center;color:white;margin:auto;font-size:1.4rem;box-shadow:0 8px 20px #f5807966}.login-card h1,.hero h1,h2{font-family:var(--serif);font-weight:600;line-height:.96;letter-spacing:-.05em}.login-card h1{font-size:clamp(2.8rem,10vw,4rem);margin:20px 0 13px}.login-card h1 em,.hero em,h2 em{color:var(--coral);font-style:italic}.intro{color:var(--muted);line-height:1.55;margin:0 auto 26px;max-width:265px}.login-card form{text-align:left}.login-card label{display:block;font-size:.78rem;font-weight:700;margin:14px 0 6px;color:#725969}.login-card input,.note-form textarea,.image-row{width:100%;border:1px solid #ead9d5;background:#fffefa;border-radius:12px;outline:none;transition:.2s}.login-card input{padding:13px}.login-card input:focus,.note-form textarea:focus,.image-row:focus-within{border-color:var(--coral);box-shadow:0 0 0 3px #fa817924}.primary,.secondary{background:var(--ink);color:white;border-radius:12px;font-weight:700;transition:transform .2s,background .2s}.primary{width:100%;padding:14px;margin-top:20px}.primary span,.secondary span{margin-left:8px;color:var(--yellow)}.primary:hover,.secondary:hover{background:#31212b;transform:translateY(-2px)}.form-error{min-height:18px;margin:10px 0 0;color:#c34e57;font-size:.8rem;text-align:center}.tiny{font-size:.7rem;color:#ab969e;margin:20px 0 0}.home{max-width:1120px;padding:0 28px 70px;margin:auto}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:.88rem}.brand span{color:var(--coral);font-size:1.2rem;margin-right:4px}.quiet-button{background:transparent;color:var(--muted);font-size:.78rem;padding:8px}.hero{padding:clamp(40px,9vw,100px) 5% clamp(35px,6vw,70px);display:flex;align-items:center;justify-content:space-between;gap:30px}.hero h1{font-size:clamp(3.25rem,8vw,6.8rem);margin:0}.subtitle{font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.35rem);color:#79606e;margin:24px 0 0}.orb-wrap{width:clamp(160px,23vw,270px);aspect-ratio:1;position:relative;flex:none}.orb{width:100%;height:100%;border-radius:46% 54% 52% 48%/56% 47% 53% 44%;background:radial-gradient(circle at 35% 29%,#fff6ba 0 8%,#ffd875 28%,#ff9c85 70%,#f3817e);box-shadow:inset -14px -20px 28px #d95d6829,0 18px 40px #f3807a42;display:grid;place-items:center;animation:float 5s ease-in-out infinite}.orb span{font-size:clamp(3rem,6vw,5rem);color:#fff8e9;text-shadow:0 3px 15px #c85f61aa}.spark{position:absolute;color:#e26969;font-style:normal;font-size:1.3rem}.s1{top:7%;right:-5%}.s2{left:-11%;bottom:19%;font-size:.8rem}.s3{right:5%;bottom:-8%;font-size:2.6rem}.signal-card{text-align:center;background:#fff;border-radius:24px;padding:clamp(27px,5vw,42px);box-shadow:0 12px 38px #b7786a12;border:1px solid #f9e5df}.signal-card>p:first-child{margin:0 0 18px;color:var(--muted);font-family:var(--serif)}.signal{width:min(100%,520px);min-height:96px;border-radius:20px;background:linear-gradient(115deg,var(--coral),#f69b7e);color:#fff;box-shadow:0 10px 0 var(--darkcoral),0 18px 25px #ef79754b;display:flex;align-items:center;justify-content:center;gap:14px;margin:auto;transition:.12s transform,.12s box-shadow}.signal:hover{transform:translateY(-2px);box-shadow:0 12px 0 var(--darkcoral),0 22px 28px #ef79754b}.signal:active{transform:translateY(7px);box-shadow:0 3px 0 var(--darkcoral),0 8px 14px #ef79754b}.signal-heart{font-size:2rem}.signal-text{font-family:var(--serif);font-size:clamp(1.25rem,3vw,1.6rem);font-weight:600}.signal-sub{font-size:.65rem;align-self:flex-end;margin:0 0 19px -7px;opacity:.7}.afterglow{height:18px!important;margin:20px 0 0!important;font-size:.78rem;color:#c56f70}.dashboard{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:45px 0}.stat{background:#fff2e3;padding:23px;border-radius:17px;min-height:126px;display:flex;flex-direction:column;justify-content:space-between}.main-stat{background:#fbe0df}.stat-label{font-size:.62rem;letter-spacing:.12em;font-weight:700;color:#af7779}.stat strong{font-family:var(--serif);font-size:clamp(1.35rem,3vw,2rem);font-weight:600}.stat span:last-child{font-size:.75rem;color:var(--muted)}.reminder{background:#fff4d8;border:1px solid #f9e5ae;border-radius:15px;padding:15px 18px;display:flex;gap:12px;align-items:center;margin:-18px 0 48px}.reminder>span{font-size:1.4rem}.reminder p{margin:0;font-size:.8rem;color:#856c4a;line-height:1.45}.share-section{background:#f4e4e5;border-radius:24px;padding:clamp(26px,5vw,48px);display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}.share-section h2,.timeline-section h2{margin:0;font-size:clamp(2rem,4vw,3.25rem)}.note-form textarea{min-height:122px;resize:vertical;padding:15px;color:var(--ink);display:block}.image-row{background:#fffefa;margin-top:10px;display:flex;align-items:center;padding:0 12px}.image-row span{color:var(--coral);font-size:1.25rem}.image-row input{border:0;background:transparent;width:100%;outline:0;padding:12px 8px;font-size:.8rem}.form-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.form-bottom>span{font-size:.7rem;color:var(--muted)}.secondary{padding:11px 15px;font-size:.78rem}.timeline-section{padding:80px 5% 0}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-heading>span{font-size:.75rem;color:var(--muted)}.timeline{border-left:1px solid #e9d7d3;padding-left:26px;margin-left:9px}.moment{position:relative;padding:0 0 27px}.moment-dot{position:absolute;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ffe2de;color:var(--coral);font-size:.65rem;left:-41px;top:0;border:4px solid var(--paper)}.moment-meta{display:flex;gap:11px;align-items:baseline}.moment-meta strong{font-size:.88rem}.moment-meta time{color:var(--muted);font-size:.72rem}.moment-note{font-family:var(--serif);font-size:1rem;line-height:1.5;margin:8px 0 0;max-width:600px}.moment-note:empty{display:none}.moment-image{display:block;max-width:min(100%,340px);max-height:280px;object-fit:cover;border-radius:12px;margin-top:11px}.empty{font-family:var(--serif);color:var(--muted);padding-bottom:20px}@keyframes float{50%{transform:translateY(-10px) rotate(3deg)}}@media(max-width:650px){.home{padding:0 16px 48px}.topbar{height:66px}.hero{padding:45px 5% 42px;align-items:flex-end}.hero h1{font-size:3.15rem}.hero .subtitle{font-size:1rem;margin-top:16px}.orb-wrap{width:122px;margin:0 -16px 3px 0}.signal-card{border-radius:19px;padding:26px 14px}.signal{border-radius:16px;min-height:82px;gap:9px}.signal-heart{font-size:1.6rem}.signal-sub{display:none}.dashboard{grid-template-columns:1fr 1fr;margin:31px 0}.main-stat{grid-column:span 2}.stat{padding:18px;min-height:112px}.share-section{grid-template-columns:1fr;gap:26px;border-radius:19px;padding:28px 20px}.timeline-section{padding:55px 5% 0}.section-heading{align-items:start}.section-heading>span{margin-top:14px}.form-bottom{gap:12px}.secondary{padding:11px}.login-card{border-radius:23px}}
