:root{--bg-cream:#faf6ef;--bg-cream-soft:#fffdf9;--bg-card:#ffffffd9;--bg-card-hover:#fffffff2;--pink-pastel:#fad2e1;--pink-soft:#fde2e4;--pink-deep:#e58296;--peach-pastel:#fce1d4;--peach-accent:#e88b6e;--lavender-pastel:#e6defa;--lavender-soft:#f0ebfc;--lavender-deep:#8e74b2;--mint-pastel:#d8f3dc;--yellow-pastel:#fbf2c4;--text-primary:#432e23;--text-secondary:#745a4c;--text-muted:#9e8576;--text-light:#c2aea0;--border-subtle:#b4917829;--border-warm:#dcb9a059;--border-pink:#f5afbe73;--border-lavender:#c3aff073;--shadow-sm:0 4px 12px #78553c0f;--shadow-md:0 10px 25px -4px #78553c17, 0 4px 10px -2px #78553c0a;--shadow-lg:0 20px 40px -8px #6446321f, 0 8px 16px -4px #6446320f;--shadow-inner:inset 0 2px 4px #fffc, inset 0 -2px 4px #78553c0d;--font-body:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-script:"Caveat", cursive;--font-serif:"Playfair Display", serif;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-cream);overscroll-behavior-y:none;background-image:radial-gradient(circle at 15% 15%,#ffe6dc73 0%,#0000 45%),radial-gradient(circle at 85% 20%,#f0e1ff80 0%,#0000 45%),radial-gradient(circle,#fffaf0b3 0%,#0000 70%),radial-gradient(circle at 50% 90%,#ffebd766 0%,#0000 60%);background-attachment:fixed;min-height:100dvh;line-height:1.5;position:relative;overflow-x:hidden}.app-container{width:100%;min-height:100dvh;padding:env(safe-area-inset-top,0) 1rem env(safe-area-inset-bottom,0) 1rem;flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:relative}.ambient-decorations{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.ambient-leaf-top-left{opacity:.65;filter:drop-shadow(0 8px 16px #64825026);transform-origin:0 0;width:220px;height:220px;animation:8s ease-in-out infinite alternate gentleSway;position:absolute;top:-20px;left:-20px}.ambient-leaf-top-right{opacity:.7;filter:drop-shadow(0 8px 16px #64825026);transform-origin:100% 0;width:200px;height:200px;animation:9s ease-in-out infinite alternate gentleSwayReverse;position:absolute;top:-10px;right:-20px}.ambient-bokeh{filter:blur(40px);opacity:.4;pointer-events:none;border-radius:50%;position:absolute}.ambient-bokeh-1{background:radial-gradient(circle,#ffe4d6 0%,#0000 70%);width:260px;height:260px;animation:12s ease-in-out infinite alternate floatOrb;top:15%;left:20%}.ambient-bokeh-2{background:radial-gradient(circle,#eadcf8 0%,#0000 70%);width:320px;height:320px;animation:14s ease-in-out infinite alternate-reverse floatOrb;top:30%;right:15%}.ambient-bokeh-3{background:radial-gradient(circle,#fff2ce 0%,#0000 70%);width:280px;height:280px;bottom:20%;left:30%}.main-content{z-index:1;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:680px;margin:0 auto;padding:1.5rem 0 3rem;display:flex;position:relative}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;outline:none;font-family:inherit}button:focus-visible{outline:2px solid var(--peach-accent);outline-offset:3px}@keyframes gentleSway{0%{transform:rotate(0)scale(1)}50%{transform:rotate(2.5deg)scale(1.02)}to{transform:rotate(-1.5deg)scale(.99)}}@keyframes gentleSwayReverse{0%{transform:rotate(0)scale(1)}50%{transform:rotate(-3deg)scale(1.01)}to{transform:rotate(2deg)scale(.98)}}@keyframes floatOrb{0%{transform:translate(0)scale(1)}to{transform:translate(25px,-20px)scale(1.08)}}@keyframes sparklePulse{0%,to{opacity:.8;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(15deg)}}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes softPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.92;transform:scale(1.02)}}@media (width<=640px){.main-content{gap:1.25rem;padding:1rem 0 2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.header-container{text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;padding:.5rem 1rem 0;display:flex}.header-badge{justify-content:center;align-items:center;gap:.75rem;display:inline-flex;position:relative}.header-icon-wrapper{width:44px;height:44px;transition:transform .3s var(--ease-spring);background:#ffffffe6;border:1px solid #f0b4be59;border-radius:14px;justify-content:center;align-items:center;display:flex;transform:rotate(-3deg);box-shadow:0 4px 14px #dc8c962e,inset 0 1px 2px #ffffffe6}.header-icon-wrapper:hover{transform:rotate(4deg)scale(1.08)}.jar-mini-logo{width:32px;height:32px}.header-title{font-family:var(--font-script);color:var(--text-primary);letter-spacing:.5px;text-shadow:0 2px 8px #b4826426;background:linear-gradient(135deg,#432e23 0%,#684132 50%,#8a4e3a 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:3.5rem;font-weight:700;line-height:1}.header-doodle-sparkle{color:#e89e73;font-size:1.25rem;animation:3s ease-in-out infinite sparklePulse;display:inline-block}.header-doodle-sparkle.right{animation-delay:1.5s}.header-tagline{font-family:var(--font-body);color:var(--text-secondary);letter-spacing:.2px;border-radius:var(--radius-full);background:#ffffffb3;border:1px solid #e6c8b440;margin-top:.35rem;padding:.25rem 1rem;font-size:1.05rem;font-weight:500;box-shadow:0 2px 8px #a0785a0d}.heart-symbol{color:var(--pink-deep);transition:transform .3s var(--ease-spring);margin-left:2px;font-weight:600;display:inline-block}.header-tagline:hover .heart-symbol{transform:scale(1.3)}@media (width<=640px){.header-title{font-size:2.75rem}.header-icon-wrapper{width:38px;height:38px}.jar-mini-logo{width:28px;height:28px}.header-tagline{font-size:.95rem}}.memory-jar-3d-canvas-wrapper{-webkit-user-select:none;user-select:none;touch-action:none;justify-content:center;align-items:center;width:100%;max-width:440px;height:380px;margin:0 auto;display:flex;position:relative}.r3f-jar-canvas{pointer-events:auto;width:100%!important;height:100%!important}@media (width<=640px){.memory-jar-3d-canvas-wrapper{max-width:360px;height:330px}}@media (width<=400px){.memory-jar-3d-canvas-wrapper{max-width:320px;height:290px}}.jar-stage-container{perspective:1200px;cursor:pointer;justify-content:center;align-items:center;width:100%;max-width:520px;height:380px;margin:.5rem 0 1rem;display:flex;position:relative}.cozy-room-backdrop{pointer-events:none;z-index:1;justify-content:space-between;align-items:center;display:flex;position:absolute;inset:0}.prop-lamp{transition:transform .3s var(--ease-spring);flex-direction:column;align-items:center;display:flex;position:absolute;bottom:32px;left:20px;transform:rotate(-3deg)}.lamp-glow{filter:blur(10px);z-index:0;background:radial-gradient(circle,#ffebaab3 0%,#ffd78200 70%);border-radius:50%;width:80px;height:80px;animation:4s ease-in-out infinite softPulse;position:absolute}.lamp-face{z-index:1;width:48px;height:44px;font-family:var(--font-body);color:#7a533e;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 35% 35%,#fff 0%,#fff4df 80%);border-radius:50% 50% 45% 45%;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:700;display:flex;position:relative;box-shadow:0 4px 10px #b4825a26,inset 0 2px 4px #fff}.lamp-stand{background:#d8b799;border-radius:4px;width:32px;height:6px;margin-top:-2px}.prop-polaroids{gap:12px;display:flex;position:absolute;top:15px;right:25px}.polaroid{background:#fff;border-radius:4px;padding:4px 4px 14px;transition:transform .3s;box-shadow:0 4px 10px #6446321f}.polaroid-1{transform:rotate(6deg)}.polaroid-2{transform:rotate(-4deg)}.polaroid-photo{border-radius:2px;width:36px;height:36px}.polaroid-photo.sunrise{background:linear-gradient(135deg,#ffb085 0%,#fdc38f 50%,#b8e4ff 100%)}.polaroid-photo.sunset{background:linear-gradient(135deg,#845ec2 0%,#d65db1 50%,#ff9671 100%)}.prop-cup{flex-direction:column;align-items:center;display:flex;position:absolute;bottom:30px;right:28px}.cup-pencils{z-index:0;gap:4px;margin-bottom:-4px;display:flex}.pencil{border-radius:2px 2px 0 0;width:5px;height:28px}.p-yellow{background:#ffd166;transform:rotate(-8deg)}.p-pink{background:#ef476f;height:32px;transform:rotate(2deg)}.p-blue{background:#118ab2;transform:rotate(10deg)}.cup-body{z-index:1;background:#fffdf9;border:1px solid #dcbeaa66;border-radius:0 0 10px 10px;justify-content:center;align-items:center;width:38px;height:42px;display:flex;position:relative;box-shadow:0 4px 10px #966e5026,inset 0 2px 4px #ffffffe6}.cup-heart{color:#e28e9d;font-size:14px}.jar-sparkles-layer{pointer-events:none;z-index:4;position:absolute;inset:0}.sparkle{color:#ffae68;opacity:.8;filter:drop-shadow(0 0 6px #ffc86499);font-size:14px;animation:3s ease-in-out infinite sparklePulse;position:absolute}.s-1{font-size:16px;animation-delay:.2s;top:25%;left:24%}.s-2{color:#ff9b9b;font-size:12px;animation-delay:1.2s;top:40%;left:20%}.s-3{color:#ffe082;font-size:18px;animation-delay:.8s;top:20%;right:26%}.s-4{font-size:13px;animation-delay:2.1s;top:55%;right:22%}.s-5{color:#ffcc80;font-size:11px;animation-delay:1.5s;bottom:25%;left:28%}.jar-3d-wrapper{z-index:2;width:220px;height:310px;transform-style:preserve-3d;flex-direction:column;align-items:center;transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex;position:relative}.jar-lid-assembly{z-index:5;flex-direction:column;align-items:center;display:flex;position:relative}.cork-lid-top{background:linear-gradient(#d6a878 0%,#ba8957 60%,#9e6f3e 100%);border-radius:12px 12px 4px 4px;width:140px;height:24px;position:relative;overflow:hidden;box-shadow:inset 0 3px 4px #ffebc899,inset 0 -3px 4px #50321459,0 4px 10px #5a321433}.wood-grain-overlay{opacity:.4;background-image:repeating-linear-gradient(90deg,#ffffff14 0 4px,#0000 4px 8px);position:absolute;inset:0}.cork-lid-rim{background:linear-gradient(#ba8957 0%,#8a5a2b 100%);border-radius:4px;width:156px;height:10px;margin-top:-1px;box-shadow:0 4px 8px #46280f40}.jar-neck-twine{z-index:6;background:repeating-linear-gradient(45deg,#b59068,#b59068 5px,#9c7750 5px 10px);border-radius:6px;width:148px;height:14px;margin-top:-3px;position:relative;box-shadow:0 2px 6px #3c28144d}.twine-knot{background:#8a653f;border-radius:50%;width:12px;height:12px;position:absolute;top:1px;right:28px;box-shadow:0 2px 4px #0003}.twine-tag-string{transform-origin:top;background:#a67e55;width:2px;height:24px;position:absolute;top:10px;right:32px;transform:rotate(8deg)}.kraft-heart-tag{clip-path:polygon(0% 12px,12px 0%,32px 0%,44px 12px,44px 100%,0% 100%);width:44px;height:52px;transition:transform .3s var(--ease-spring);background:#e6c8a5;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:30px;right:14px;transform:rotate(6deg);box-shadow:0 4px 12px #50321e38}.jar-stage-container:hover .kraft-heart-tag{transform:rotate(14deg)translateY(2px)}.tag-hole{background:#735133;border-radius:50%;width:6px;height:6px;margin-top:4px;box-shadow:inset 0 1px 2px #0006}.tag-heart{font-family:var(--font-body);color:#5c3d2e;margin-top:6px;font-size:20px;font-weight:600}.jar-glass-body{z-index:3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(135deg,#ffffff59 0%,#ffffff0d 30%,#ffffff05 70%,#ffffff40 100%);border:2px solid #ffffffb3;border-radius:18px 18px 50px 50px;flex-direction:column;justify-content:flex-end;width:195px;height:220px;margin-top:-4px;padding-bottom:14px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 25px #fff9,inset 4px 0 12px #ffffff80,inset -4px 0 12px #fff6,0 15px 35px -5px #78503240}.glass-reflection-left{filter:blur(1px);background:linear-gradient(#ffffffb3 0%,#fff3 60%,#0000 100%);border-radius:10px;width:14px;height:180px;position:absolute;top:15px;left:12px}.glass-reflection-right{filter:blur(1px);background:linear-gradient(#ffffff8c 0%,#ffffff1a 80%,#0000 100%);border-radius:8px;width:8px;height:160px;position:absolute;top:25px;right:14px}.glass-depth-glow{pointer-events:none;background:radial-gradient(circle at 50% 60%,#ffebd740 0%,#fff0 75%);position:absolute;inset:0}.jar-chits-cluster{z-index:2;width:100%;height:180px;display:block;position:relative}.chit{clip-path:polygon(0% 15%,50% 0%,100% 15%,100% 85%,50% 100%,0% 85%);border:1px solid #ffffffd9;border-radius:5px;justify-content:center;align-items:center;width:44px;height:30px;transition:transform .3s;display:flex;position:absolute;box-shadow:0 4px 10px #3c231438,inset 0 1.5px 2px #ffffffe6,inset 0 -1.5px 2px #00000014}.chit-crease{background:#0000001a;height:1px;position:absolute;top:50%;left:10%;right:10%;box-shadow:0 1px #ffffffb3}.chit-heart-dot{opacity:.8;background:#f472b6;border-radius:50%;width:5px;height:5px;position:absolute}.chit-pink{background:linear-gradient(135deg,#ffb3c6 0%,#ff8fab 100%)}.chit-yellow{background:linear-gradient(135deg,#fff099 0%,#ffe066 100%)}.chit-blue{background:linear-gradient(135deg,#c5e9fa 0%,#99d7f7 100%)}.chit-peach{background:linear-gradient(135deg,#ffd7ba 0%,#fec5bb 100%)}.chit-lavender{background:linear-gradient(135deg,#e2d4f0 0%,#cdb4db 100%)}.c-1{bottom:6px;left:16px;transform:rotate(-18deg)}.c-2{bottom:8px;left:52px;transform:rotate(10deg)}.c-3{bottom:6px;right:20px;transform:rotate(-25deg)}.c-4{bottom:18px;left:88px;transform:rotate(32deg)}.c-5{z-index:2;bottom:26px;left:14px;transform:rotate(40deg)}.c-6{z-index:2;bottom:30px;left:58px;transform:rotate(-12deg)}.c-7{z-index:2;bottom:28px;right:18px;transform:rotate(20deg)}.c-8{z-index:3;bottom:48px;left:26px;transform:rotate(-24deg)}.c-9{z-index:3;bottom:52px;left:74px;transform:rotate(18deg)}.c-10{z-index:3;bottom:50px;right:30px;transform:rotate(-8deg)}.c-11{z-index:4;bottom:70px;left:20px;transform:rotate(16deg)}.c-12{z-index:4;bottom:74px;left:62px;transform:rotate(-32deg)}.c-13{z-index:4;bottom:72px;right:22px;transform:rotate(26deg)}.c-14{z-index:5;bottom:94px;left:34px;transform:rotate(-10deg)}.c-15{z-index:5;bottom:96px;right:38px;transform:rotate(14deg)}.c-16{z-index:6;bottom:112px;left:56px;transform:rotate(22deg)}.c-17{z-index:6;bottom:114px;right:48px;transform:rotate(-18deg)}.c-18{z-index:7;bottom:130px;left:72px;transform:rotate(6deg)}.jar-stage-container:hover .c-18{transform:rotate(12deg)translateY(-4px)}.jar-stage-container:hover .c-16{transform:rotate(26deg)translateY(-3px)}.jar-stage-container:hover .c-17{transform:rotate(-22deg)translateY(-2px)}.glass-base-curve{background:linear-gradient(#0000 0%,#ffffff80 100%);border-radius:0 0 50px 50px;height:24px;position:absolute;bottom:0;left:0;right:0}.wood-slice-coaster{z-index:1;justify-content:center;align-items:center;width:240px;height:34px;display:flex;position:absolute;bottom:32px}.bark-rim{background:radial-gradient(at 50% 60%,#9b6a3e 0%,#684120 70%,#4a2d12 100%);border-radius:50%;width:100%;height:100%;position:absolute;box-shadow:0 12px 24px #46281459,inset 0 3px 6px #ffdcb466}.tree-rings{background:radial-gradient(at 45% 45%,#d6a775 0%,#bf8f5c 50%,#a67543 90%);border-radius:50%;width:92%;height:84%;position:absolute;box-shadow:inset 0 2px 5px #fff6}.coaster-shadow{filter:blur(8px);z-index:-1;background:radial-gradient(#502d194d 0%,#0000 70%);border-radius:50%;width:270px;height:28px;position:absolute;bottom:-16px}.jar-mouth-target-marker{pointer-events:none;opacity:0;z-index:10;width:2px;height:2px;position:absolute;top:28%;left:50%;transform:translate(-50%,-50%)}@media (width<=640px){.jar-stage-container{height:330px}.jar-3d-wrapper{transform:scale(.9)}.prop-lamp{bottom:30px;left:4px;transform:scale(.85)}.prop-cup{bottom:25px;right:8px;transform:scale(.85)}.prop-polaroids{top:5px;right:8px;transform:scale(.85)}}.action-buttons-grid{grid-template-columns:1fr 1fr;gap:1rem;width:100%;margin-top:.5rem;display:grid}.action-card{text-align:center;border-radius:var(--radius-lg);transition:all .3s var(--ease-spring);box-shadow:var(--shadow-md);cursor:pointer;border:1.5px solid #0000;flex-direction:column;justify-content:center;align-items:center;padding:1.35rem 1rem 1.25rem;display:flex;position:relative;overflow:hidden}.action-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)scale(1.02)}.action-card:active{transform:translateY(0)scale(.98)}.action-card-sheen{pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%);width:100%;height:100%;transition:left .75s;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.action-card:hover .action-card-sheen{left:200%}.card-add-chit{background:linear-gradient(145deg,#fff4ee 0%,#ffe2d8 60%,#ffd6c9 100%);border-color:#ffbeb480}.card-add-chit:hover{border-color:#e88b6eb3;box-shadow:0 14px 28px -6px #e88b6e40}.card-view-chits{background:linear-gradient(145deg,#f9f5ff 0%,#ede4ff 60%,#e3d6fe 100%);border-color:#d7c3ff80}.card-view-chits:hover{border-color:#a282e1b3;box-shadow:0 14px 28px -6px #a282e140}.action-icon-container{width:48px;height:48px;transition:transform .3s var(--ease-spring);border-radius:16px;justify-content:center;align-items:center;margin-bottom:.75rem;display:flex;box-shadow:0 4px 10px #0000000d}.action-card:hover .action-icon-container{transform:scale(1.1)rotate(-3deg)}.icon-pink{color:#e86b7e;background:#fff;border:1px solid #ffb4be66}.icon-lavender{color:#835ac6;background:#fff;border:1px solid #d2b4fa66}.action-icon{width:24px;height:24px}.action-text-group{flex-direction:column;align-items:center;gap:.25rem;display:flex}.action-title-row{align-items:center;gap:.5rem;display:flex}.action-title{font-family:var(--font-body);color:var(--text-primary);letter-spacing:-.2px;margin:0;font-size:1.25rem;font-weight:700}.action-subtitle{color:var(--text-secondary);max-width:170px;margin:0;font-size:.825rem;font-weight:400;line-height:1.35}.chit-counter-pill{color:#fff;border-radius:var(--radius-full);background:#835ac6;padding:.15rem .5rem;font-size:.75rem;font-weight:700;box-shadow:0 2px 6px #835ac64d}@media (width<=480px){.action-buttons-grid{grid-template-columns:1fr;gap:.75rem}.action-card{text-align:left;flex-direction:row;justify-content:flex-start;gap:1rem;padding:1rem 1.25rem}.action-icon-container{flex-shrink:0;margin-bottom:0}.action-text-group{align-items:flex-start}.action-subtitle{max-width:none}}.birthday-card-container{background:var(--bg-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-xl);border:1px solid var(--border-warm);width:100%;box-shadow:var(--shadow-md);flex-direction:column;gap:1.15rem;padding:1.35rem 1.5rem;transition:transform .3s,box-shadow .3s;display:flex}.birthday-card-container:hover{box-shadow:var(--shadow-lg)}.birthday-header-row{align-items:flex-start;gap:.85rem;display:flex}.birthday-icon-badge{color:#e11d48;background:#fff1f2;border:1px solid #f43f5e33;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 10px #e11d4814}.bday-icon{width:22px;height:22px}.birthday-header-text{flex-direction:column;gap:.2rem;display:flex}.birthday-title{font-family:var(--font-body);color:var(--text-primary);letter-spacing:-.2px;margin:0;font-size:1.25rem;font-weight:700}.birthday-subtitle{color:var(--text-secondary);margin:0;font-size:.875rem;font-weight:400;line-height:1.35}.bday-explanation-note{font-family:var(--font-script);color:#e11d48;margin-top:2px;font-size:1.15rem}.birthday-controls-grid{flex-direction:column;gap:.75rem;display:flex}.birthday-controls-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.date-picker-button{border-radius:var(--radius-md);cursor:pointer;min-width:170px;transition:all .25s var(--ease-spring);background:#fffdf9;border:1.5px solid #d2b4a066;flex:1.2;justify-content:space-between;align-items:center;padding:.7rem 1rem;display:flex;position:relative;box-shadow:0 2px 6px #6446320d}.date-picker-button:hover{background:#fff;border-color:#e88b6e;box-shadow:0 4px 12px #e88b6e26}.date-icon{margin-right:.4rem;font-size:1rem}.date-display-text{color:var(--text-primary);font-size:.95rem;font-weight:600}.dropdown-arrow{color:var(--text-muted);margin-left:.5rem;font-size:.65rem}.hidden-date-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.time-picker-button{border-radius:var(--radius-md);cursor:pointer;min-width:130px;transition:all .25s var(--ease-spring);background:#fffdf9;border:1.5px solid #d2b4a066;flex:.9;justify-content:space-between;align-items:center;padding:.7rem .9rem;display:flex;position:relative;box-shadow:0 2px 6px #6446320d}.time-picker-button:hover{background:#fff;border-color:#d0bcfe;box-shadow:0 4px 12px #d0bcfe33}.time-display-text{color:var(--text-primary);font-size:.9rem;font-weight:600}.reminder-toggle-button{border-radius:var(--radius-md);transition:all .25s var(--ease-spring);cursor:pointer;border:1.5px solid #0000;align-items:center;gap:.45rem;padding:.7rem 1.15rem;font-size:.9rem;font-weight:600;display:flex}.reminder-toggle-button:disabled{opacity:.6;cursor:not-allowed}.reminder-toggle-button.active{color:#2e7d32;background:#e8f5e9;border-color:#4caf504d;box-shadow:0 2px 8px #2e7d321f}.reminder-toggle-button.active:hover{background:#dcedc8;transform:translateY(-1px)}.reminder-toggle-button.inactive{color:#be123c;background:#fff0f3;border-color:#fecdd3}.reminder-toggle-button.inactive:hover{background:#ffe4e8;transform:translateY(-1px)}.bell-icon{font-size:.95rem}.check-badge{color:#fff;background:#2e7d32;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-left:2px;font-size:11px;display:inline-flex}.birthday-meta-row{color:#8c7a6b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:.8rem;display:flex}.timezone-pill{font-family:var(--font-body);color:#745a4c;background:#f0e6dc73;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.78rem;display:inline-flex}.test-notification-btn{color:#6b46c1;cursor:pointer;background:0 0;border:1px dashed #d0bcfe;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.test-notification-btn:hover{background:#f3e8ff;border-color:#a855f7;transform:translateY(-1px)}.test-notification-btn:disabled{opacity:.5;cursor:not-allowed}.permission-denied-alert{color:#92400e;background:#fffbeb;border:1.5px solid #fde68a;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.82rem;line-height:1.4;display:flex}.permission-alert-icon{flex-shrink:0;margin-top:1px}.countdown-banner{border-radius:var(--radius-md);text-align:center;background:linear-gradient(135deg,#fff9f3 0%,#fff3ec 100%);border:1px dashed #e6a08c73;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;padding:.85rem 1rem;display:flex}.countdown-pill{border-radius:var(--radius-full);background:#fff;border:1px solid #ebafa059;align-items:center;gap:.45rem;padding:.35rem .9rem;display:inline-flex;box-shadow:0 2px 8px #b4785a14}.calendar-mini-icon{font-size:.85rem}.days-number{color:#d85a74;letter-spacing:-.2px;font-size:.95rem;font-weight:700}.countdown-message{color:var(--text-secondary);margin:0;font-size:.85rem;font-weight:500}.today-celebration{cursor:pointer;flex-direction:column;align-items:center;gap:.35rem;animation:2.5s ease-in-out infinite gentleFloat;display:flex}.countdown-banner.is-today{background:linear-gradient(135deg,#fff0f5 0%,#ffe4e6 100%);border:1.5px solid #f43f5e}.countdown-pill.pulse{color:#fff;background:#f43f5e;font-weight:700;animation:2s infinite softPulse}@media (width<=580px){.birthday-controls-row{flex-direction:column;align-items:stretch}.reminder-toggle-button{justify-content:center}.birthday-meta-row{flex-direction:column;align-items:flex-start}}.footer-container{text-align:center;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;width:100%;max-width:680px;padding:1.5rem 1rem 2.5rem;display:flex}.footer-stitch-line{border-top:1.5px dashed #be9b8266;width:80%;max-width:320px;height:1px;margin-bottom:.5rem}.footer-quote-box{border-radius:var(--radius-full);background:#fff9;border:1px solid #e6c8b44d;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;max-width:520px;padding:.6rem 1.25rem;display:inline-flex;box-shadow:0 2px 10px #78553c0a}.quote-mark{font-family:var(--font-serif);color:#d48970;font-size:1.25rem;line-height:1}.footer-quote-text{font-family:var(--font-script);color:var(--text-primary);margin:0;font-size:1.35rem;font-weight:600;line-height:1.3}.footer-heart{font-size:1.1rem;animation:3s ease-in-out infinite sparklePulse;display:inline-block}.footer-subtext-row{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.bullet-dot{color:var(--border-warm)}.quick-demo-btn{color:#d85a74;border-radius:var(--radius-full);background:#ffe8ed;border:1px solid #f43f5e33;padding:.2rem .6rem;font-size:.75rem;font-weight:600;transition:all .2s}.quick-demo-btn:hover{background:#ffd4df;transform:scale(1.05)}@media (width<=640px){.footer-quote-text{font-size:1.15rem}}.pwa-offline-indicator{z-index:9999;pointer-events:auto;border-radius:999px;align-items:center;gap:10px;padding:8px 18px;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:500;transition:all .35s cubic-bezier(.16,1,.3,1);animation:.4s cubic-bezier(.16,1,.3,1) forwards pwaSlideDown;display:flex;position:fixed;top:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #8a4a3b29}@keyframes pwaSlideDown{0%{opacity:0;transform:translate(-50%,-16px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.pwa-offline-mode{color:#9a3412;background:#fff7ed;border:1.5px solid #fed7aa}.pwa-online-mode{color:#166534;background:#f0fdf4;border:1.5px solid #bbf7d0}.pwa-indicator-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.pwa-indicator-text{letter-spacing:.01em}.pwa-install-banner{z-index:9990;background:#fffdf9;border:2px solid #fce7f3;border-radius:20px;flex-direction:column;gap:12px;width:calc(100vw - 36px);max-width:380px;padding:16px 18px;animation:.45s cubic-bezier(.16,1,.3,1) forwards pwaSlideUp;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 14px 34px #8a4a3b2e}@keyframes pwaSlideUp{0%{opacity:0;transform:translateY(24px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.pwa-install-header{justify-content:space-between;align-items:center;display:flex}.pwa-install-brand{align-items:center;gap:10px;display:flex}.pwa-install-icon-wrapper{color:#e11d48;background:linear-gradient(135deg,#fff0f3,#ffe4e8);border:1.5px solid #ffa3b8;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pwa-install-title-group{flex-direction:column;display:flex}.pwa-install-title{color:#4a3528;margin:0;font-family:Playfair Display,serif;font-size:1.05rem;font-weight:600}.pwa-install-tagline{color:#8c7a6b;margin:0;font-family:Outfit,sans-serif;font-size:.78rem}.pwa-install-close-btn{cursor:pointer;color:#a89587;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.pwa-install-close-btn:hover{color:#4a3528;background:#a8958724}.pwa-install-body{color:#6b5b4e;margin:0;font-family:Outfit,sans-serif;font-size:.86rem;line-height:1.45}.pwa-install-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:4px;display:flex}.pwa-install-dismiss-btn{color:#8c7a6b;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 14px;font-family:Outfit,sans-serif;font-size:.85rem;font-weight:500;transition:background .2s}.pwa-install-dismiss-btn:hover{color:#4a3528;background:#8c7a6b1a}.pwa-install-confirm-btn{color:#581c28;cursor:pointer;background:linear-gradient(135deg,#ffb3c6,#f472b6);border:none;border-radius:12px;align-items:center;gap:6px;padding:8px 18px;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 4px 12px #f472b647}.pwa-install-confirm-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #f472b661}.pwa-install-confirm-btn:active{transform:translateY(0)}.pwa-quick-install-pill{color:#8b2c43;cursor:pointer;background:#fff0f3;border:1.5px solid #ffa3b8;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #ffa3b83d}.pwa-quick-install-pill:hover{background:#ffe4e8;transform:translateY(-1px);box-shadow:0 4px 12px #ffa3b859}.pwa-update-bar{z-index:9995;background:#fffdf9;border:2px solid #d0bcfe;border-radius:18px;align-items:center;gap:14px;width:calc(100vw - 36px);max-width:480px;padding:12px 18px;animation:.4s cubic-bezier(.16,1,.3,1) forwards pwaSlideUp;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #553c9a33}.pwa-update-icon-wrapper{color:#7c3aed;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pwa-update-text{color:#4a3528;flex:1;margin:0;font-family:Outfit,sans-serif;font-size:.88rem}.pwa-update-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.pwa-update-dismiss-btn{color:#8c7a6b;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-family:Outfit,sans-serif;font-size:.82rem}.pwa-update-refresh-btn{color:#432874;cursor:pointer;background:linear-gradient(135deg,#d0bcfe,#c0a8fd);border:none;border-radius:10px;align-items:center;gap:6px;padding:6px 14px;font-family:Outfit,sans-serif;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 3px 10px #c0a8fd59}.pwa-update-refresh-btn:hover{transform:translateY(-1px);box-shadow:0 5px 14px #c0a8fd73}.pwa-ios-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#321e1473;justify-content:center;align-items:center;padding:16px;animation:.3s pwaFadeIn;display:flex;position:fixed;inset:0}@keyframes pwaFadeIn{0%{opacity:0}to{opacity:1}}.pwa-ios-modal-card{background:#fffdf9;border:2px solid #fce7f3;border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:420px;padding:24px;display:flex;box-shadow:0 20px 48px #8a4a3b3d}.pwa-ios-header{justify-content:space-between;align-items:center;display:flex}.pwa-ios-title{color:#4a3528;margin:0;font-family:Playfair Display,serif;font-size:1.25rem}.pwa-ios-steps{flex-direction:column;gap:12px;margin:4px 0;display:flex}.pwa-ios-step{color:#5d4a3c;align-items:flex-start;gap:12px;font-family:Outfit,sans-serif;font-size:.92rem;line-height:1.4;display:flex}.pwa-step-badge{color:#e11d48;background:#ffe4e8;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.82rem;font-weight:700;display:flex}.pwa-ios-done-btn{color:#581c28;cursor:pointer;background:linear-gradient(135deg,#ffb3c6,#f472b6);border:none;border-radius:12px;align-self:flex-end;padding:10px 20px;font-family:Outfit,sans-serif;font-size:.92rem;font-weight:600}@media (width<=640px){.pwa-install-banner{width:auto;bottom:18px;left:18px;right:18px}.pwa-update-bar{flex-direction:column;align-items:flex-start;gap:10px;width:auto;bottom:18px;left:18px;right:18px;transform:none}.pwa-update-actions{justify-content:flex-end;width:100%}}.app-container{flex-direction:column;align-items:center;width:100%;min-height:100vh;display:flex;position:relative;overflow-x:hidden}.cozy-toast{color:#fff8f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-full);z-index:1000;animation:toastPop .35s var(--ease-spring);text-align:center;background:#432e23f0;border:1px solid #ffe6d233;align-items:center;gap:.6rem;max-width:90vw;padding:.75rem 1.4rem;font-size:.9rem;font-weight:500;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #321e1459}.toast-sparkle{font-size:1.1rem}@keyframes toastPop{0%{opacity:0;transform:translate(-50%,20px)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1)}}
