@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/dbbdd2d89d2ef0ef-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/a06229eb79a83cfc-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/c9e224327ce7933e-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d85064eaed4b8683-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Press Start\ 2P;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db234bd00cda6a96-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Press Start\ 2P Fallback;src:local("Arial");ascent-override:44.58%;descent-override:0.00%;line-gap-override:0.00%;size-adjust:224.32%}.__className_6d0c14{font-family:Press Start\ 2P,Press Start\ 2P Fallback;font-weight:400;font-style:normal}.__variable_6d0c14{--font-press-start-2p:"Press Start 2P","Press Start 2P Fallback"}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/751eccb0decf5e18-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/f6590a0f07a97750-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:VT323;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7bd7951037de757-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:VT323 Fallback;src:local("Arial");ascent-override:89.16%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:89.73%}.__className_4f2f0f{font-family:VT323,VT323 Fallback;font-weight:400;font-style:normal}.__variable_4f2f0f{--font-vt323:"VT323","VT323 Fallback"}:root{--color-pink:#ff6b8b;--color-light-pink:#ff8da1;--color-dark-pink:#d83a56;--color-yellow:#fffbeb;--color-grid:#fed7e2;--color-slate:#2d2d3f;--color-panel-bg:#ffffff;--color-blue:#4ba3e3;--color-dark-blue:#237bb9;--color-green:#4ec07d;--color-dark-green:#299857;--color-purple:#9b6ef3;--color-dark-purple:#7444cd;--background:var(--color-yellow);--foreground:var(--color-slate)}*{box-sizing:border-box;margin:0;padding:0;image-rendering:pixelated}body{background:var(--background);color:var(--foreground);font-family:var(--font-vt323),monospace;font-size:20px;min-height:100vh;overflow-x:hidden}.font-pixel{font-family:var(--font-press-start-2p),monospace;font-size:14px;line-height:1.5}.font-vt{font-family:var(--font-vt323),monospace;font-size:24px}.app-container{max-width:480px;margin:0 auto;min-height:100vh;position:relative;display:flex;flex-col:column;box-shadow:0 0 20px rgba(0,0,0,.15);background-color:var(--color-yellow);border-left:6px solid var(--color-slate);border-right:6px solid var(--color-slate)}.flex-center{display:flex;align-items:center;justify-content:center}.flex-col{display:flex;flex-direction:column}.flex-row{display:flex;flex-direction:row}.pixel-grid{position:fixed;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(var(--color-grid) 2px,transparent 2px),linear-gradient(90deg,var(--color-grid) 2px,transparent 2px);background-size:32px 32px;animation:gridMove 16s linear infinite;z-index:-1;pointer-events:none}@keyframes gridMove{0%{background-position:0 0}to{background-position:32px 64px}}.crt-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(rgba(18,16,16,0) 50%,rgba(0,0,0,.08) 0),linear-gradient(90deg,rgba(255,0,0,.02),rgba(0,255,0,.01),rgba(0,0,255,.02));background-size:100% 4px,6px 100%;z-index:9999;pointer-events:none}.pixel-box{background-color:var(--color-panel-bg);border:4px solid var(--color-slate);box-shadow:inset -4px -4px 0 0 rgba(0,0,0,.1),4px 4px 0 0 var(--color-slate);position:relative;padding:16px;margin-bottom:16px;border-radius:0}.pixel-box-header{background-color:var(--color-slate);color:white;margin:-16px -16px 16px;padding:8px 12px;border-bottom:4px solid var(--color-slate)}.pixel-box.pink{border-color:var(--color-slate);background-color:#fff0f3}.pixel-box.blue{border-color:var(--color-slate);background-color:#eef7fc}.pixel-box.green{border-color:var(--color-slate);background-color:#f0fdf4}.pixel-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-family:var(--font-press-start-2p),monospace;font-size:11px;color:white;background-color:var(--color-pink);border:4px solid var(--color-slate);box-shadow:inset -4px -4px 0 0 var(--color-dark-pink),4px 4px 0 0 var(--color-slate);cursor:pointer;transition:all .05s ease;user-select:none;text-decoration:none;text-align:center}.pixel-btn:hover{filter:brightness(1.05)}.pixel-btn:active{box-shadow:inset 4px 4px 0 0 var(--color-dark-pink),2px 2px 0 0 var(--color-slate);transform:translate(2px,2px)}.pixel-btn.blue{background-color:var(--color-blue);box-shadow:inset -4px -4px 0 0 var(--color-dark-blue),4px 4px 0 0 var(--color-slate)}.pixel-btn.blue:active{box-shadow:inset 4px 4px 0 0 var(--color-dark-blue),2px 2px 0 0 var(--color-slate)}.pixel-btn.green{background-color:var(--color-green);box-shadow:inset -4px -4px 0 0 var(--color-dark-green),4px 4px 0 0 var(--color-slate)}.pixel-btn.green:active{box-shadow:inset 4px 4px 0 0 var(--color-dark-green),2px 2px 0 0 var(--color-slate)}.pixel-btn.purple{background-color:var(--color-purple);box-shadow:inset -4px -4px 0 0 var(--color-dark-purple),4px 4px 0 0 var(--color-slate)}.pixel-btn.purple:active{box-shadow:inset 4px 4px 0 0 var(--color-dark-purple),2px 2px 0 0 var(--color-slate)}.pixel-btn.secondary{background-color:#cbd5e1;color:var(--color-slate);box-shadow:inset -4px -4px 0 0 #94a3b8,4px 4px 0 0 var(--color-slate)}.pixel-btn.secondary:active{box-shadow:inset 4px 4px 0 0 #94a3b8,2px 2px 0 0 var(--color-slate)}.pixel-btn.disabled{background-color:#e5e7eb;color:#9ca3af;border-color:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none!important}.pixel-progress-container{width:100%}.pixel-progress-label{display:flex;justify-content:space-between;margin-bottom:4px}.pixel-progress{height:24px;background-color:#eaeaea;border:4px solid var(--color-slate);position:relative;overflow:hidden;box-shadow:inset 2px 2px 0 rgba(0,0,0,.1)}.pixel-progress-bar{height:100%;background-color:var(--color-green);transition:width .3s ease;box-shadow:inset -4px -4px 0 rgba(0,0,0,.2)}.pixel-progress-bar.pink{background-color:var(--color-pink)}.pixel-input{width:100%;padding:8px 12px;font-family:var(--font-vt323),monospace;font-size:22px;background-color:white;border:4px solid var(--color-slate);box-shadow:inset 3px 3px 0 rgba(0,0,0,.1);color:var(--color-slate);outline:none}.pixel-input:focus{border-color:var(--color-pink)}.pixel-chart{display:flex;align-items:flex-end;justify-content:space-between;height:180px;border-bottom:4px solid var(--color-slate);border-left:4px solid var(--color-slate);padding:8px;margin-top:16px;margin-bottom:24px;background-color:#fafafa}.gift-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px}.gift-item{background-color:white;border:3px solid var(--color-slate);box-shadow:2px 2px 0 var(--color-slate);padding:8px 2px;cursor:pointer;text-align:center;transition:all .1s ease;user-select:none}.gift-item:hover{background-color:#f8fafc}.gift-item.selected{background-color:#ffeef2;border-color:var(--color-pink);box-shadow:2px 2px 0 var(--color-dark-pink);transform:scale(1.05)}.gift-icon{font-size:22px;display:block;margin-bottom:4px}.gift-label{font-family:var(--font-press-start-2p),monospace;font-size:6px;color:var(--color-slate)}.gift-box-anim{font-size:48px;width:80px;height:80px;margin:16px auto;display:flex;align-items:center;justify-content:center;animation:boxShake .8s infinite}.gift-box-anim.open{animation:boxOpen .5s forwards}@keyframes boxShake{0%,to{transform:rotate(0deg) scale(1)}20%{transform:rotate(-10deg) scale(1.1)}40%{transform:rotate(10deg) scale(1.1)}60%{transform:rotate(-5deg) scale(1.1)}80%{transform:rotate(5deg) scale(1.1)}}@keyframes boxOpen{0%{transform:scale(1);opacity:1}50%{transform:scale(1.4) rotate(15deg);opacity:1}to{transform:scale(0);opacity:0}}.pixel-chart-bar-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;flex:1;margin:0 4px;height:100%}.pixel-chart-bar{width:100%;background-color:var(--color-blue);border:3px solid var(--color-slate);border-bottom:none;box-shadow:inset -3px 0 0 rgba(0,0,0,.15);min-height:4px;position:relative;transition:height .5s ease-out}.pixel-chart-bar:hover:after{content:attr(data-value);position:absolute;top:-24px;left:50%;transform:translateX(-50%);background-color:var(--color-slate);color:white;font-size:14px;padding:2px 4px;border-radius:2px;white-space:nowrap;pointer-events:none}.pixel-chart-label{font-size:16px;margin-top:4px}.bounce-pixel{animation:bounce .6s infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.pulse-pixel{animation:pulse 1s infinite alternate}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.08)}}.float-pixel{animation:float 3s ease-in-out infinite}@keyframes float{0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-6px) rotate(3deg)}to{transform:translateY(0) rotate(0deg)}}.heart-float{position:absolute;color:var(--color-heart-red);font-size:24px;pointer-events:none;animation:heartRise 1.5s ease-out forwards}@keyframes heartRise{0%{opacity:1;transform:translateY(0) scale(.5)}to{opacity:0;transform:translateY(-80px) scale(1.2) rotate(15deg)}}.pixel-todo-list{list-style:none}.pixel-todo-item{display:flex;align-items:center;padding:8px 0;border-bottom:2px dashed #ccc}.pixel-todo-item:last-child{border-bottom:none}.pixel-checkbox{appearance:none;width:24px;height:24px;border:4px solid var(--color-slate);box-shadow:inset 2px 2px 0 rgba(0,0,0,.1);margin-right:12px;cursor:pointer;position:relative;background-color:white}.pixel-checkbox:checked{background-color:var(--color-green)}.pixel-checkbox:checked:after{content:"X";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-press-start-2p),monospace;font-size:10px;color:white}.pixel-todo-text{flex-grow:1;font-size:22px;user-select:none}.pixel-todo-text.completed{text-decoration:line-through;color:#888}.pixel-delete-btn{background:none;border:none;color:#ff4a4a;cursor:pointer;font-family:var(--font-press-start-2p),monospace;font-size:12px}.pixel-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.pixel-modal{max-width:400px;width:100%;animation:modalPop .2s cubic-bezier(.175,.885,.32,1.275)}@keyframes modalPop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.pixel-bubble{position:relative;background:white;border:4px solid var(--color-slate);padding:12px;margin-bottom:20px;box-shadow:4px 4px 0 0 var(--color-slate)}.pixel-bubble:after,.pixel-bubble:before{content:"";position:absolute;bottom:-16px;left:32px;border:solid transparent;display:block;width:0;height:0}.pixel-bubble:after{border-top-color:white;border-width:6px;margin-left:-6px;bottom:-12px;z-index:2}.pixel-bubble:before{border-top-color:var(--color-slate);border-width:10px;margin-left:-10px;bottom:-20px;z-index:1}