@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Nunito:wght@400;600;700;800&display=swap";.music-player{position:fixed;bottom:20px;right:20px;z-index:1000;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:25px;box-shadow:0 8px 30px #ffb3d966;transition:all .4s cubic-bezier(.68,-.55,.265,1.55);overflow:hidden;min-width:60px}.music-player.expanded{min-width:320px;max-width:400px}.music-controls{display:flex;align-items:center;gap:10px;padding:12px 16px}.music-toggle{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;font-size:18px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #a67c5259;transition:all var(--transition-normal);flex-shrink:0;border:2px solid rgba(255,255,255,.85)}.music-toggle:hover:not(:disabled){transform:scale(1.1);box-shadow:0 6px 20px #ffb3d999}.music-toggle:active:not(:disabled){transform:scale(.95)}.music-toggle:disabled{opacity:.5;cursor:not-allowed}.music-nav{width:40px;height:40px;border-radius:50%;background:#a67c5226;border:1.5px solid rgba(166,124,82,.25);color:var(--color-text);font-size:14px;font-weight:700;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.music-nav:hover{background:#e3a8a859;transform:scale(1.08)}.music-expand{width:35px;height:35px;border-radius:50%;background:#a67c5226;border:1.5px solid rgba(166,124,82,.25);color:var(--color-text);font-size:14px;font-weight:700;cursor:pointer;transition:all var(--transition-normal);margin-left:auto}.music-expand:hover{background:#ffb3d966}.music-details{padding:0 16px 16px;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.music-info{display:flex;align-items:center;gap:12px;margin-bottom:12px}.music-note{font-size:24px;animation:float 2s ease-in-out infinite}.music-text{flex:1;min-width:0}.music-title{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-artist{font-size:12px;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-progress-container{cursor:pointer}.music-progress-bar{width:100%;height:4px;background:#ffb3d933;border-radius:2px;overflow:hidden;margin-bottom:6px}.music-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-rose),var(--color-brown));border-radius:2px;transition:width .1s linear}.music-time{display:flex;justify-content:space-between;font-size:11px;color:var(--color-text-light)}@media (max-width: 480px){.music-player{bottom:15px;right:15px;left:auto;max-width:calc(100vw - 30px);min-width:60px}.music-player.expanded{min-width:auto;max-width:calc(100vw - 30px);width:auto}.music-controls{padding:10px 12px;flex-wrap:nowrap}.music-toggle{width:45px;height:45px;font-size:20px;flex-shrink:0}.music-nav{width:35px;height:35px;font-size:16px;flex-shrink:0}.music-expand{flex-shrink:0}.music-details{padding:0 12px 12px}}@media (max-width: 390px) and (max-height: 844px){.music-player{bottom:12px;right:12px;max-width:calc(100vw - 24px)}.music-player.expanded{max-width:calc(100vw - 24px)}}.music-player--freaky{background:#1a0d2ef5!important;border:1px solid rgba(255,51,102,.4);box-shadow:0 8px 30px #8a2be273,0 0 20px #f363!important}.music-player--freaky .music-toggle{background:linear-gradient(135deg,#f36,#8a2be2)!important;border-color:#ff336680!important;box-shadow:0 4px 15px #f366!important}.music-player--freaky .music-toggle:hover:not(:disabled){box-shadow:0 6px 20px #8a2be299!important}.music-player--freaky .music-nav{background:#8a2be233!important;border-color:#ff33664d!important;color:#f9b!important}.music-player--freaky .music-nav:hover{background:#ff33664d!important}.music-player--freaky .music-expand{background:#8a2be226!important;border-color:#8a2be24d!important;color:#c8f!important}.music-player--freaky .music-title{color:#f9b!important}.music-player--freaky .music-artist{color:#c8f!important}.music-player--freaky .music-note{filter:hue-rotate(270deg)}.music-player--freaky .music-progress-fill{background:linear-gradient(90deg,#f36,#8a2be2)!important}.music-player--freaky .music-progress-bar{background:#ff336626!important}.music-player--freaky .music-time{color:#c8f9!important}.love-request{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden;background:linear-gradient(145deg,#fdf8f5,#fffdf9 40%,#f9f4f0 75%,#fdf8f5)}.love-request:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 25%,rgba(166,124,82,.08) 0%,transparent 55%),radial-gradient(ellipse at 80% 75%,rgba(139,94,60,.05) 0%,transparent 55%),radial-gradient(ellipse at 50% 50%,rgba(249,244,240,.2) 0%,transparent 65%);pointer-events:none;z-index:0}.landing-floating-dudu{position:absolute;z-index:5;pointer-events:none;animation:floatSlow 5s ease-in-out infinite}.landing-floating-dudu,.landing-floating-dudu-media{will-change:transform,opacity}@media (max-width: 480px){.landing-floating-dudu{z-index:99999}}.landing-floating-dudu-media{width:88px;height:88px;object-fit:contain;opacity:.72;filter:drop-shadow(0 6px 12px rgba(139,94,60,.18))}.love-request-content{text-align:center;z-index:10;position:relative;max-width:560px;width:100%;padding:48px 36px 40px;background:#fffdf9b8;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:40px;box-shadow:0 30px 80px #8b5e3c24,0 10px 30px #e8526a1a,0 0 0 1px #ffffffa6,inset 0 1px #ffffffd9;border:1.5px solid rgba(232,82,106,.12)}.nub-cat-container{margin-bottom:28px}.nub-cat-image{width:260px;height:260px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(139,94,60,.2));transform-origin:center}video.nub-cat-image,video.landing-floating-dudu-media,video.transition-gif{background:transparent}@media (max-width: 480px){.nub-cat-image{width:200px;height:200px}.landing-floating-dudu-media{width:54px;height:54px}.landing-floating-dudu{opacity:.62}}.love-text{font-size:44px;font-weight:800;letter-spacing:-1px;margin-bottom:14px;background:linear-gradient(135deg,#8b5e3c,#e8526a 55%,#b07d54);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease-in-out infinite}.landing-title{font-size:36px;letter-spacing:-.5px}.question-container{margin-bottom:32px}.question-text{font-size:20px;color:var(--color-text-light);font-weight:600}.landing-subtitle{font-size:18px;color:var(--color-text-muted);font-weight:500}@media (max-width: 480px){.love-text{font-size:32px}.landing-title{font-size:28px}}.buttons-container{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.landing-btn-wrap{justify-content:center}.btn-yes{padding:18px 52px;background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;border-radius:50px;font-size:20px;font-weight:700;letter-spacing:.5px;box-shadow:0 8px 24px #e8526a59;transition:transform var(--transition-spring),box-shadow var(--transition-normal)}.btn-yes:hover:not(:disabled){transform:translateY(-4px) scale(1.04);box-shadow:0 14px 32px #e8526a73}.btn-yes:active:not(:disabled){transform:translateY(-1px) scale(.98)}.btn-lets-go{padding:20px 60px;font-size:22px;animation:pulse 3s ease-in-out infinite}.btn-no{padding:16px 40px;background:#ffffffd9;color:var(--color-text);border-radius:50px;font-size:18px;font-weight:700;box-shadow:0 4px 14px #8b5e3c1a;border:1.5px solid rgba(139,94,60,.12);transition:transform .4s cubic-bezier(.68,-.55,.265,1.55),box-shadow var(--transition-normal)}.btn-no:hover:not(:disabled){box-shadow:0 8px 24px #8b5e3c24}.emoji-rain{position:fixed;top:-60px;animation:emojiRain linear infinite;pointer-events:none;z-index:1;opacity:0}.heart-particle{position:fixed;pointer-events:none;z-index:50;animation:heartRain 1.1s ease-in both}.landing-transitioning .love-request-content{animation:fadeIn .3s ease-out reverse both}.sad-cat-container{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30;background:#fff8f4d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sad-cat-image{width:220px;height:220px;object-fit:contain;filter:drop-shadow(0 8px 16px rgba(232,82,106,.25))}.sad-cat-emoji{font-size:80px;display:none}.sad-cat-message{font-size:24px;font-weight:700;color:var(--color-rose);margin-top:16px}.disappear-emoji{position:fixed;pointer-events:none;z-index:200;font-size:24px;animation:disappearFloat 1.5s ease-out forwards}@keyframes disappearFloat{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--final-x),var(--final-y)) scale(0);opacity:0}}.transition-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#f9f4f0f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}.transition-gif{width:140px;height:140px;object-fit:contain}.transition-msg{font-size:26px;font-weight:800;color:var(--color-brown);animation:pulse 2s infinite}.album{min-height:100vh;padding:20px;max-width:1200px;margin:0 auto}.album-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;width:100%;margin-bottom:30px;padding:18px 24px;background:#ffffffe0;border:1px solid rgba(139,94,60,.12);border-radius:30px;box-shadow:0 20px 45px #0000000f}.album-header-left{display:flex;align-items:center;gap:18px;min-width:0}.album-header-right{display:flex;align-items:center;justify-content:flex-end;min-width:0}@media (max-width: 768px){.album-header{display:flex;flex-direction:column;align-items:stretch}.album-header-right{justify-content:center;width:100%}}.album-title{font-size:36px;font-weight:700;background:linear-gradient(135deg,var(--color-brown),var(--color-rose));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;flex:1 1 auto;min-width:0;max-width:100%;white-space:normal;overflow:visible;word-break:break-word}.back-button{padding:12px 20px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:25px;font-size:16px;font-weight:600;color:var(--color-text);box-shadow:var(--shadow-soft);cursor:pointer;transition:all var(--transition-normal)}.album-view-toggle{padding:12px 22px;min-width:160px;background:linear-gradient(135deg,#e8526a,#b07d54);color:#fff;border-radius:999px;border:none;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 10px 24px #e8526a2e;transition:transform .2s ease,box-shadow .2s ease}.album-view-toggle:hover{transform:translateY(-2px);box-shadow:0 14px 30px #e8526a40}.album-info{margin-bottom:30px;padding:20px;background:#b3d9ff33;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:2px solid rgba(179,217,255,.4)}.info-text{font-size:14px;color:var(--color-text);line-height:1.6;text-align:left}.info-text code{background:#ffffffb3;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:12px}.upload-button{padding:15px 30px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;border-radius:25px;font-size:18px;font-weight:600;cursor:pointer;text-align:center;box-shadow:var(--shadow-medium);transition:all var(--transition-normal)}.upload-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.upload-button:active{transform:translateY(0)}.comment-input{padding:12px 20px;border:2px solid var(--color-pink-light);border-radius:20px;font-size:16px;font-family:inherit;outline:none;transition:all var(--transition-normal)}.comment-input:focus{border-color:var(--color-pink);box-shadow:0 0 0 3px #ffb3d933}.empty-album{text-align:center;padding:60px 20px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;box-shadow:var(--shadow-soft)}.empty-text{font-size:28px;font-weight:600;color:var(--color-text);margin-bottom:10px}.empty-subtext{font-size:18px;color:var(--color-text-light)}.firebase-warning{background:#ffc10733;border:2px solid rgba(255,193,7,.5);border-radius:15px;padding:20px;margin-bottom:20px;text-align:center}.warning-text{font-size:20px;font-weight:600;color:var(--color-text);margin-bottom:10px}.warning-subtext{font-size:14px;color:var(--color-text-light);line-height:1.6}.demo-notice{background:#b3d9ff33;border:2px solid rgba(179,217,255,.5);border-radius:15px;padding:20px;margin-bottom:20px;text-align:center}.demo-text{font-size:20px;font-weight:600;color:var(--color-text);margin-bottom:10px}.demo-subtext{font-size:14px;color:var(--color-text-light);line-height:1.6}.album-rows-container{display:flex;flex-direction:column;gap:0}.album-row{margin-bottom:40px}.album-row:last-child{margin-bottom:0}.album-grid-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.row-separator{display:flex;align-items:center;justify-content:center;gap:15px;margin:30px 0;padding:0 20px}.separator-line{flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--color-pink),var(--color-purple),var(--color-blue),transparent);border-radius:2px}.separator-emoji{font-size:24px;animation:float 3s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(255,153,204,.4))}.final-separator{margin-top:40px;margin-bottom:60px}.row-decorative-cat{display:flex;justify-content:center;align-items:center;margin:20px 0;padding:10px}.row-decorative-cat .decorative-cat-image{width:80px;height:80px;object-fit:contain;opacity:.6;filter:drop-shadow(0 4px 8px rgba(255,153,204,.3));animation:float 4s ease-in-out infinite;transition:opacity .3s ease}.row-decorative-cat:hover .decorative-cat-image{opacity:1}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.album-item{position:relative;aspect-ratio:1;border-radius:15px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow-soft);transition:all var(--transition-normal);background:var(--color-pink-light)}.album-item:hover{transform:translateY(-5px) scale(1.02);box-shadow:var(--shadow-strong)}.album-item img,.album-item video{width:100%;height:100%;object-fit:cover}.album-video-thumbnail,.video-item{position:relative}.video-play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:28px;color:#fff;background:#4a3b32d1;border:2px solid rgba(255,255,255,.9);border-radius:50%;width:64px;height:64px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px #00000073;z-index:2;pointer-events:none;transition:all var(--transition-normal)}.album-item:hover .video-play-icon{transform:translate(-50%,-50%) scale(1.08);background:#e8526aeb;border-color:#fff}.item-comment{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:15px 10px 10px;color:#fff;font-size:14px;display:flex;align-items:center;gap:5px}.item-comment .modal-comment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px 20px}.item-comment .modal-inline-edit{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;min-width:72px;height:40px;border-radius:20px;border:1px solid rgba(139,94,60,.12);background:linear-gradient(135deg,#e8526a1f,#b07d540f);color:var(--color-brown);font-size:14px;font-weight:700;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.item-comment .modal-inline-edit:hover{background:linear-gradient(135deg,#e8526a29,#b07d5417);transform:translateY(-2px);box-shadow:0 10px 20px #00000014}.item-comment .modal-inline-edit-icon{font-size:14px}.item-comment .modal-inline-edit-label{display:inline-block;line-height:1}.comment-emoji{font-size:16px}.comment-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#ffb3d900;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.album-item:hover .item-overlay{background:#ffb3d933}.overlay-emoji{font-size:30px;opacity:0;transform:scale(.5);transition:all var(--transition-normal)}.album-item:hover .overlay-emoji{opacity:1;transform:scale(1)}.decorative-cat-item{cursor:default!important;background:linear-gradient(135deg,#ffd1e680,#e6ccff80);display:flex;align-items:center;justify-content:center;border:2px dashed rgba(255,153,204,.4)}.decorative-cat-item:hover{transform:translateY(-5px) scale(1.02);background:linear-gradient(135deg,#ffd1e6b3,#e6ccffb3);border-color:#f9c9}.decorative-cat-in-grid{width:100%;height:100%;object-fit:contain;padding:15px;opacity:.7;filter:drop-shadow(0 4px 8px rgba(255,153,204,.3));animation:float 4s ease-in-out infinite;transition:all .3s ease}.decorative-cat-item:hover .decorative-cat-in-grid{opacity:1;transform:scale(1.1)}.decorative-cat-item .item-overlay,.decorative-cat-item .item-comment{display:none}.final-cats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;justify-items:center;max-width:600px;margin:0 auto}.end-decorative-cat-item{cursor:default!important;background:var(--color-pink-light)!important;border:3px dashed var(--color-pink)!important;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:var(--shadow-soft);width:100%;max-width:280px}.end-decorative-cat-item:hover{transform:translateY(-5px) scale(1.02);background:var(--color-pink)!important;border-color:var(--color-pink-dark)!important;box-shadow:var(--shadow-strong)}.end-decorative-cat-image{width:100%;height:100%;object-fit:contain;padding:25px;opacity:.85;filter:drop-shadow(0 4px 8px rgba(255,153,204,.5));animation:float 5s ease-in-out infinite;transition:all .3s ease}.end-decorative-cat-item:hover .end-decorative-cat-image{opacity:1;transform:scale(1.05)}.end-decorative-cat-item .item-overlay{opacity:0;transition:opacity .3s ease;background:#ff99cc1a}.end-decorative-cat-item:hover .item-overlay{opacity:1}.end-decorative-cat-item .item-comment{display:none}.upload-button-cat{cursor:pointer!important;border:3px dashed var(--color-pink)!important;position:relative}.upload-button-cat:hover{border-color:var(--color-purple)!important;transform:scale(1.05)}.upload-button-cat:after{content:"➕";position:absolute;top:10px;right:10px;font-size:24px;opacity:.7}.upload-modal-content{max-width:500px;width:90%;padding:25px;max-height:90vh;overflow-y:auto}.upload-modal-title{font-size:24px;font-weight:700;color:var(--color-text);margin-bottom:20px;text-align:center}.upload-form{display:flex;flex-direction:column;gap:20px}.upload-label{display:flex;flex-direction:column;gap:10px}.upload-label span{font-size:16px;font-weight:600;color:var(--color-text)}.upload-input{position:absolute;opacity:0;width:0;height:0;overflow:hidden}.upload-file-label{display:block;width:100%}.upload-file-button{display:flex;width:100%;padding:20px;background:linear-gradient(135deg,var(--color-pink-light),var(--color-purple-light));border:3px dashed var(--color-pink);border-radius:15px;font-size:18px;font-weight:600;color:var(--color-text);text-align:center;cursor:pointer;transition:all var(--transition-normal);touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:60px;align-items:center;justify-content:center}.upload-file-button:active{transform:scale(.98);background:linear-gradient(135deg,var(--color-pink),var(--color-purple));border-color:var(--color-pink-dark)}.upload-preview{margin-top:15px;border-radius:10px;overflow:hidden;max-height:300px;border:2px solid var(--color-pink-light);background:#ffffff80;padding:10px;position:relative;transition:all var(--transition-normal)}.upload-preview:hover{border-color:var(--color-pink);box-shadow:0 4px 15px #ff99cc4d}.upload-preview-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.7),transparent);padding:15px 10px 10px;color:#fff;text-align:center;font-size:14px;font-weight:600;opacity:0;transition:opacity var(--transition-normal)}.upload-preview:hover .upload-preview-overlay{opacity:1}.upload-preview-hint{display:block}.upload-preview-image{width:100%;height:auto;object-fit:contain}.upload-textarea{padding:12px;border:2px solid var(--color-pink-light);border-radius:10px;font-size:14px;font-family:inherit;resize:vertical;outline:none;transition:all var(--transition-normal)}.upload-textarea:focus{border-color:var(--color-pink);box-shadow:0 0 0 3px #ffb3d933}.upload-actions{display:flex;gap:10px;justify-content:flex-end}.upload-submit-button{padding:12px 24px;background:linear-gradient(135deg,var(--color-pink),var(--color-purple));color:#fff;border:none;border-radius:15px;font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.upload-submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-medium)}.upload-submit-button:disabled{opacity:.6;cursor:not-allowed}.upload-cancel-button{padding:12px 24px;background:#c8c8c84d;color:var(--color-text);border:none;border-radius:15px;font-size:16px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.upload-cancel-button:hover:not(:disabled){background:#c8c8c880}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:max(20px,env(safe-area-inset-top)) 20px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:fadeIn .3s ease-out}.freaky-password-modal{max-width:420px;padding:28px 24px;border-radius:24px;background:linear-gradient(145deg,#fff8f4fa,#fcecf2f7);box-shadow:0 28px 70px #8b5e3c3d;display:flex;flex-direction:column;gap:14px;margin:auto}.freaky-password-modal h3{margin:0;font-size:24px;color:var(--color-text)}.freaky-password-modal p{margin:0;color:var(--color-text-muted);line-height:1.5}.freaky-password-input-wrap{position:relative;width:100%}.freaky-password-input,.freaky-password-input--error{width:100%;padding:14px 48px 14px 16px;border:1.5px solid rgba(139,94,60,.18);border-radius:14px;background:#fffffff2;font-size:15px;color:var(--color-text);box-sizing:border-box}.freaky-password-input:focus{outline:none;border-color:var(--color-rose);box-shadow:0 0 0 3px #e8526a24}.freaky-password-input--error{border-color:var(--color-rose);animation:wobble .35s ease-in-out}.freaky-show-password{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:none;border-radius:50%;background:#8b5e3c14;color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.freaky-show-password:hover{background:#e8526a1f;color:var(--color-rose)}.freaky-show-password svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.freaky-password-error{margin:0;color:var(--color-rose);font-size:14px;font-weight:700}.freaky-unlock-btn{padding:12px 16px;border:none;border-radius:14px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.freaky-unlock-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 18px #e8526a38}.freaky-unlock-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.modal-content{position:relative;max-width:90vw;max-height:none;width:100%;background:#fff;border-radius:20px;overflow:visible;box-shadow:var(--shadow-strong);animation:slideIn .3s ease-out;margin:auto 0}.modal-content img,.modal-content video{width:100%;height:auto;max-height:70vh;object-fit:contain;display:block;border-radius:20px 20px 0 0}.modal-video{background:#000;border-radius:10px}.modal-close{position:absolute;top:15px;right:15px;width:40px;height:40px;background:#000000b3;color:#fff;border-radius:50%;font-size:20px;cursor:pointer;z-index:10;transition:all var(--transition-normal)}.modal-close:hover{background:#000000e6;transform:scale(1.1)}.modal-comment{padding:20px;background:var(--color-pink-light);color:var(--color-text);font-size:16px;line-height:1.6}.modal-edit-controls{padding:20px;border-top:1px solid rgba(0,0,0,.05);background:#fffffff2;display:flex;flex-direction:column;gap:16px}.modal-edit-button,.save-button,.cancel-button{padding:12px 18px;border:none;border-radius:14px;font-size:15px;font-weight:700;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.modal-edit-button{background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;align-self:flex-start}.modal-edit-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #e8526a33}.edit-form{display:grid;gap:14px}.edit-textarea{width:100%;min-height:120px;padding:14px;border:2px solid rgba(139,94,60,.18);border-radius:18px;font-size:16px;font-family:inherit;resize:vertical;line-height:1.5;outline:none}.edit-textarea:focus{border-color:var(--color-pink);box-shadow:0 0 0 3px #ffb3d933}.edit-actions{display:flex;gap:12px;flex-wrap:wrap}.save-button{background:linear-gradient(135deg,var(--color-pink),var(--color-purple));color:#fff}.save-button:hover{transform:translateY(-1px);box-shadow:0 10px 22px #d12d8f40}.cancel-button{background:#0000000d;color:var(--color-text)}.cancel-button:hover{background:#00000014}@media (max-width: 768px){.album-grid-row{grid-template-columns:repeat(3,1fr);gap:15px}.row-separator{margin:25px 0;gap:10px}.album-header-left .back-button{margin-bottom:8px}.album-header-right{width:100%;justify-content:center}.separator-emoji{font-size:20px}.row-decorative-cat .decorative-cat-image{width:60px;height:60px}.end-decorative-cat-image{padding:15px}}@media (max-width: 480px){.album{padding:14px 12px;max-width:100%}.album-header{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.album-header-left{width:100%;flex-direction:column;align-items:flex-start;gap:12px}.back-button,.album-view-toggle{width:100%;max-width:100%}.album-title{font-size:24px;line-height:1.1}.album-filters{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.album-select{flex:1 1 48%;min-width:0;max-width:48%}.album-grid-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.folder-selection{grid-template-columns:1fr;gap:14px}.folder-card{padding:16px}.row-separator{margin:18px 0}.row-decorative-cat{margin:12px 0}.row-decorative-cat .decorative-cat-image{width:48px;height:48px}.decorative-cat-in-grid{padding:10px}.final-cats-row{grid-template-columns:1fr;gap:14px;max-width:100%}.end-decorative-cat-item{border-width:2px;max-width:100%}.end-decorative-cat-image{padding:15px}.upload-button{padding:12px 22px;font-size:15px}.comment-input{padding:10px 14px;font-size:15px}.upload-file-button{padding:16px;font-size:15px;min-height:50px}.upload-modal-content{max-width:95vw;padding:18px}.upload-form{gap:14px}.album-title,.folder-title{width:100%}.row-separator{padding:0 6px}.modal-content{width:100%;max-width:95vw;border-radius:22px}}@media (max-width: 360px){.album-grid-row{grid-template-columns:1fr;gap:12px}.album-grid{grid-template-columns:1fr}.row-separator{margin:15px 0;padding:0 10px}.separator-line{height:1px}.separator-emoji{font-size:18px}.album-header{padding:14px}.album-view-toggle,.back-button{padding:12px 16px}.album-title{font-size:22px}.album-select{font-size:14px}.modal-content{width:100%;margin:0 6px}}.album-controls{display:flex;justify-content:center;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}.album-mode-toggle,.folder-button{border:2px solid rgba(139,94,60,.18);background:#fffffff2;color:var(--color-text);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;transition:all var(--transition-normal)}.album-mode-toggle.active,.folder-button.active{background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;border-color:#ffffffe6;box-shadow:0 10px 24px #e8526a2e}.album-mode-toggle:hover,.folder-button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0000001f}.folder-selector{justify-content:center}.folder-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;padding:10px 0 24px}.folder-card{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px;background:#fffffff2;border:2px solid rgba(139,94,60,.16);border-radius:28px;box-shadow:0 10px 24px #00000014;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.folder-card:hover{transform:translateY(-3px);border-color:#e8526a4d;box-shadow:0 14px 30px #0000001f}.folder-card img{width:100%;max-width:200px;border-radius:22px;object-fit:contain}.folder-card span{font-size:16px;font-weight:700;color:var(--color-text)}.folder-open-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.folder-back-button{padding:12px 22px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid rgba(139,94,60,.18);border-radius:999px;color:var(--color-text);font-weight:700;cursor:pointer;transition:all .2s ease}.folder-back-button:hover{transform:translateY(-1px);box-shadow:0 10px 24px #e8526a1f}.folder-title{font-size:24px;font-weight:800;color:var(--color-brown)}.album-filters{display:flex;gap:15px;justify-content:center;align-items:center;flex-wrap:nowrap;margin-bottom:20px}.album-select{padding:8px 12px;border-radius:8px;border:1px solid rgba(139,94,60,.2);background:#fffdf9e6;color:#3d2b1f;font-family:Nunito,sans-serif;font-weight:600;outline:none;cursor:pointer}.category-divider-header{text-align:center;font-family:Nunito,sans-serif;color:#8b5e3c;font-size:24px;font-weight:800;margin:40px 0 20px;letter-spacing:1px}.album.freaky-theme{color:#ffe6f0}.album.freaky-theme .album-header{background:#1a000deb;border-color:#4d0026;box-shadow:0 20px 45px #00000059}.album.freaky-theme .album-title,.album.freaky-theme .back-button,.album.freaky-theme .folder-back-button,.album.freaky-theme .folder-title{color:#ffb3d1}.album.freaky-theme .album-view-toggle,.album.freaky-theme .folder-back-button{background:#200010;border-color:#603;color:#ffb3d1}.album.freaky-theme .category-divider-header{color:#f36}.album.freaky-theme .album-item{border-color:#4d0026;box-shadow:0 10px 24px #00000059}.album.freaky-theme .row-separator .separator-line{background:linear-gradient(90deg,transparent,#8a2be2,#ff3366,transparent)}.album.freaky-theme .empty-text{color:#f9b}.love-wars{min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:15px;max-width:1200px;margin:0 auto;position:relative;overflow:hidden;box-sizing:border-box;will-change:transform;transform:translateZ(0)}.wars-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px;z-index:10;position:relative}.back-button{padding:10px 18px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;font-size:15px;font-weight:600;color:var(--color-text);box-shadow:var(--shadow-soft);cursor:pointer;transition:all .2s ease;border:none;-webkit-tap-highlight-color:transparent}.back-button:hover{transform:translate(-2px);box-shadow:var(--shadow-medium)}.back-button:active{transform:translate(0)}.wars-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.score,.lives{font-size:18px;font-weight:700;color:var(--color-text);background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 16px;border-radius:20px;box-shadow:var(--shadow-soft);white-space:nowrap}.pause-button{width:45px;height:45px;border-radius:50%;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:20px;box-shadow:var(--shadow-soft);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;border:none;-webkit-tap-highlight-color:transparent}.pause-button:hover{transform:scale(1.1);box-shadow:var(--shadow-medium)}.pause-button:active{transform:scale(.95)}.game-container{position:relative;width:100%;flex:1 1 auto;min-height:400px;min-height:0;height:100%;max-height:100%;background:linear-gradient(135deg,var(--color-rose-pale),var(--color-brown-pale));border-radius:20px;overflow:hidden;box-shadow:var(--shadow-medium);z-index:2;box-sizing:border-box;will-change:transform;transform:translateZ(0)}.game-canvas{width:100%;height:100%;display:block;touch-action:none;position:relative;z-index:2;background:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;will-change:transform;transform:translateZ(0)}.game-start-popup,.game-end-popup{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .3s ease-out}.start-popup-content,.end-popup-content{background:#fffffffa;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:35px 30px;border-radius:25px;text-align:center;box-shadow:var(--shadow-strong);max-width:90%;width:90%;max-width:500px;animation:fadeIn .3s ease-out}.start-popup-content h2,.end-popup-content h2{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:20px}.start-instructions{font-size:18px;color:var(--color-text);line-height:1.6;margin-bottom:20px}.high-score-text{font-size:16px;color:var(--color-brown);font-weight:600;margin-bottom:20px}.start-button,.play-again-button{padding:12px 35px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;border-radius:25px;font-size:16px;font-weight:600;box-shadow:var(--shadow-medium);cursor:pointer;transition:all .2s ease;border:none;-webkit-tap-highlight-color:transparent}.start-button:hover,.play-again-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.start-button:active,.play-again-button:active{transform:translateY(0)}.endgame-image{width:250px;height:250px;object-fit:contain;margin-bottom:25px;border-radius:15px;box-shadow:0 8px 20px #0003}.new-record{font-size:18px;color:var(--color-rose);font-weight:700;margin-bottom:15px}.score-display{background:linear-gradient(135deg,#e8526a1a,#ddd2e21a);padding:20px;border-radius:15px;margin-bottom:25px;border:2px solid rgba(232,82,106,.2)}.final-score{font-size:18px;color:var(--color-text);margin:0 0 10px;font-weight:600}.score-number{font-size:32px;font-weight:700;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.end-popup-buttons{display:flex;flex-direction:column;gap:12px}.back-to-games-button{padding:12px 35px;background:#8b5e3c1a;color:var(--color-brown);border:2px solid var(--color-brown);border-radius:25px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.back-to-games-button:hover{background:#8b5e3c33;transform:translateY(-2px)}.back-to-games-button:active{transform:translateY(0)}} .game-over,.game-paused{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fffffffa;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:35px 30px;border-radius:25px;text-align:center;box-shadow:var(--shadow-strong);z-index:100;animation:fadeIn .3s ease-out;max-width:90%}.game-over h2,.game-paused h2{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:15px}.final-score{font-size:20px;color:var(--color-text-light);margin-bottom:20px}.restart-button{padding:12px 35px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;border-radius:25px;font-size:16px;font-weight:600;box-shadow:var(--shadow-medium);cursor:pointer;transition:all .2s ease;border:none;-webkit-tap-highlight-color:transparent}.restart-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.restart-button:active{transform:translateY(0)}@media (max-width: 390px) and (max-height: 844px){.love-wars{padding:10px;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;box-sizing:border-box}.wars-header{margin-bottom:10px;gap:8px;flex-shrink:0}.back-button{padding:8px 15px;font-size:14px}.wars-info{gap:8px}.score,.lives{font-size:16px;padding:8px 12px}.pause-button{width:40px;height:40px;font-size:18px}.game-container{flex:1 1 auto;min-height:0;height:calc(100dvh - 130px);max-height:calc(100dvh - 130px);border-radius:15px;box-sizing:border-box}.game-canvas{height:100%!important;width:100%!important;max-height:100%}.start-popup-content,.end-popup-content{padding:30px 25px;width:85%}.start-popup-content h2,.end-popup-content h2{font-size:24px}.start-instructions{font-size:16px}.endgame-image{width:200px;height:200px}.game-over,.game-paused{padding:30px 25px;width:85%}.game-over h2,.game-paused h2{font-size:24px}.final-score{font-size:18px}.restart-button{padding:10px 28px;font-size:15px}}@media (max-width: 480px){.love-wars{padding:12px;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;box-sizing:border-box}.wars-header{flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:12px;flex-shrink:0}.wars-info{justify-content:flex-end;gap:8px}.score,.lives{font-size:16px;padding:8px 14px}.game-container{flex:1 1 auto;min-height:0;height:calc(100dvh - 150px);max-height:calc(100dvh - 150px);box-sizing:border-box}.game-canvas{height:100%!important;width:100%!important;max-height:100%}.start-popup-content,.end-popup-content{padding:30px 20px;width:90%}.start-popup-content h2,.end-popup-content h2{font-size:22px}.start-instructions{font-size:15px}.endgame-image{width:180px;height:180px}.game-over,.game-paused{padding:30px 20px;width:90%}.game-over h2,.game-paused h2{font-size:26px}.final-score{font-size:18px}.restart-button{padding:10px 30px;font-size:15px}}@media (prefers-reduced-motion: reduce){.game-canvas{animation:none}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.game-canvas{image-rendering:-webkit-optimize-contrast}}.love-notes{min-height:100vh;padding:20px;max-width:1200px;margin:0 auto}.love-notes-header{display:flex;align-items:center;gap:20px;margin-bottom:30px}.back-button{padding:12px 20px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:25px;font-size:16px;font-weight:600;color:var(--color-text);box-shadow:var(--shadow-soft);cursor:pointer;transition:all var(--transition-normal);border:none}.back-button:hover{transform:translate(-3px);box-shadow:var(--shadow-medium)}.love-notes-title{font-size:36px;font-weight:700;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.love-notes-content{display:flex;flex-direction:column;gap:40px}.notes-section{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:25px;padding:30px;box-shadow:var(--shadow-soft)}.section-title{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:20px;text-align:center}.notes-container{display:flex;flex-direction:column;gap:15px;margin-bottom:25px}.note-card{background:linear-gradient(135deg,#ffb3d933,#e6ccff33);border-radius:15px;padding:20px;border-left:4px solid var(--color-rose);transition:all var(--transition-normal)}.note-card:hover{transform:translate(5px);box-shadow:var(--shadow-soft)}.note-text{font-size:16px;color:var(--color-text);margin-bottom:10px;line-height:1.6}.note-date{font-size:12px;color:var(--color-text-light);opacity:.7}.add-note-form{display:flex;flex-direction:column;gap:15px}.note-input{padding:15px;border:2px solid var(--color-rose-pale);border-radius:15px;font-size:16px;font-family:inherit;resize:vertical;outline:none;transition:all var(--transition-normal)}.note-input:focus{border-color:var(--color-rose);box-shadow:0 0 0 3px #ffb3d933}.add-note-button{padding:15px 30px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));color:#fff;border:none;border-radius:20px;font-size:18px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-medium)}.add-note-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-strong)}.add-note-button:active{transform:translateY(0)}.favorites-section{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:25px;padding:30px;box-shadow:var(--shadow-soft)}.favorites-subsection{margin-bottom:30px}.favorites-subsection:last-child{margin-bottom:0}.subsection-title{font-size:22px;font-weight:600;color:var(--color-text);margin-bottom:20px;text-align:center}.favorite-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;justify-items:center;max-width:800px;margin:0 auto}@media (min-width: 769px){.favorite-photos-grid{grid-template-columns:repeat(3,1fr);justify-content:center;align-items:center}}.favorite-photo-card{background:#ffb3d91a;border-radius:15px;overflow:hidden;transition:all var(--transition-normal);cursor:pointer;width:100%;max-width:250px}.favorite-photo-card:hover{transform:translateY(-5px) scale(1.02);box-shadow:var(--shadow-medium)}.favorite-photo{width:100%;height:200px;object-fit:cover}.favorite-photo-comment{padding:15px;font-size:14px;color:var(--color-text);text-align:center}.favorite-songs-list{display:flex;flex-direction:column;gap:15px}.favorite-song-item{display:flex;align-items:center;gap:15px;padding:15px;background:linear-gradient(135deg,#ffb3d91a,#e6ccff1a);border-radius:15px;transition:all var(--transition-normal)}.favorite-song-item:hover{transform:translate(5px);box-shadow:var(--shadow-soft)}.favorite-song-edit-grid{display:flex;flex-direction:column;gap:15px}.favorite-song-edit-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.favorite-song-edit-input,.favorite-song-add-input{flex:1 1 220px;min-width:160px;padding:14px 18px;border:1px solid rgba(139,69,139,.2);border-radius:18px;font-size:15px;outline:none;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.favorite-song-edit-input:focus,.favorite-song-add-input:focus{border-color:#8b458b99;box-shadow:0 0 0 4px #ffb3d91f}.favorite-song-delete,.favorite-song-add-button{padding:12px 18px;border:none;border-radius:18px;cursor:pointer;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.favorite-song-delete:hover,.favorite-song-add-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.favorite-song-add-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.about-us-edit-note{margin-bottom:16px;font-size:15px;color:var(--color-text-light);text-align:center}.subsection-header-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.subsection-header-row .subsection-title{margin-bottom:0}.favorite-songs-edit-toggle{padding:8px 14px;border:1px solid rgba(139,69,139,.2);border-radius:20px;background:#ffffffb3;color:var(--color-text-light);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.favorite-songs-edit-toggle:hover{color:var(--color-brown);border-color:var(--color-rose);background:var(--color-rose-pale)}.favorite-photo-card--editable{position:relative}.favorite-photo-edit-badge{display:block;padding:8px 12px 12px;font-size:12px;color:var(--color-text-light);text-align:center;font-weight:600}.photo-picker-content{position:relative;width:min(92vw,900px);max-height:85vh;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-strong);display:flex;flex-direction:column}.photo-picker-title{padding:20px 24px 12px;margin:0;font-size:20px;color:var(--color-text);text-align:center}.photo-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;padding:12px 20px 24px;overflow-y:auto;max-height:calc(85vh - 80px)}.photo-picker-item{border:none;background:#ffb3d91a;border-radius:12px;overflow:hidden;cursor:pointer;padding:0;text-align:left;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.photo-picker-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.photo-picker-item img{width:100%;height:110px;object-fit:cover;display:block}.photo-picker-caption{display:block;padding:8px;font-size:11px;color:var(--color-text-light);line-height:1.3}.song-emoji{font-size:30px}.song-info{display:flex;flex-direction:column;gap:5px;flex:1}.song-title{font-size:16px;font-weight:600;color:var(--color-text)}.song-artist{font-size:14px;color:var(--color-text-light)}.special-moments-list{display:flex;flex-direction:column;gap:15px}.special-moment-item{display:flex;align-items:center;gap:15px;padding:15px;background:linear-gradient(135deg,#ffb3d91a,#e6ccff1a);border-radius:15px;transition:all var(--transition-normal)}.special-moment-item:hover{transform:translate(5px);box-shadow:var(--shadow-soft)}.moment-emoji{font-size:30px}.moment-info{display:flex;flex-direction:column;gap:5px;flex:1}.moment-title{font-size:16px;font-weight:600;color:var(--color-text)}.moment-date{font-size:14px;color:var(--color-text-light)}.moment-location{font-weight:600;color:var(--color-brown)}.events-section{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:25px;padding:30px;box-shadow:var(--shadow-soft)}.events-container{display:flex;flex-direction:column;gap:20px}.event-card{background:linear-gradient(135deg,#ffb3d933,#e6ccff33);border-radius:20px;padding:25px 25px 28px;border-left:5px solid var(--color-brown);transition:all var(--transition-normal);overflow:visible}.event-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-medium)}.event-header{display:flex;align-items:center;gap:15px;margin-bottom:10px}.event-emoji{font-size:35px}.event-name{font-size:22px;font-weight:700;color:var(--color-text)}.event-description{font-size:14px;color:var(--color-text-light);margin-bottom:15px}.event-date-info{display:flex;flex-direction:column;gap:8px;padding-bottom:4px}.event-date{font-size:16px;font-weight:600;color:var(--color-text)}.countdown{font-size:18px;font-weight:700;color:var(--color-brown);animation:pulse 2s ease-in-out infinite;line-height:1.4;padding-bottom:2px}.countdown.past{color:var(--color-rose);animation:none}.countdown.enigmatic{color:var(--color-brown);font-style:italic;animation:pulse 2s ease-in-out infinite}.freaky-mode-section{display:flex;justify-content:center;padding:40px 0}.freaky-mode-button{padding:25px 40px;background:linear-gradient(135deg,#8b458bcc,#4b0082cc);color:#fff;border:none;border-radius:25px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;transition:all var(--transition-normal);box-shadow:var(--shadow-medium);opacity:.7}.freaky-mode-button:hover{transform:translateY(-5px) scale(1.05);box-shadow:var(--shadow-strong);opacity:1}.freaky-emoji{font-size:40px;animation:float 3s ease-in-out infinite}.freaky-text{font-size:24px;font-weight:700}.freaky-subtitle{font-size:14px;opacity:.8}@media (max-width: 768px){.love-notes{padding:15px}.love-notes-title{font-size:28px}.section-title{font-size:24px}.favorite-photos-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:15px}.favorite-photo{height:150px}}@media (max-width: 480px){.love-notes-header{flex-direction:column;align-items:flex-start;gap:15px}.love-notes-title{font-size:24px}.notes-section,.favorites-section,.events-section{padding:20px}.favorite-photos-grid{grid-template-columns:1fr}.freaky-mode-button{padding:20px 30px}.freaky-emoji{font-size:35px}.freaky-text{font-size:20px}}.photo-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease-out}.photo-modal-content{position:relative;max-width:90vw;max-height:90vh;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-strong);animation:slideIn .3s ease-out}.photo-modal-close{position:absolute;top:15px;right:15px;width:40px;height:40px;background:#000000b3;color:#fff;border:none;border-radius:50%;font-size:20px;cursor:pointer;z-index:10;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.photo-modal-close:hover{background:#000000e6;transform:scale(1.1)}.photo-modal-image{width:100%;height:auto;max-height:80vh;object-fit:contain;display:block}.photo-modal-comment{padding:20px;background:var(--color-rose-pale);color:var(--color-text);font-size:16px;line-height:1.6;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.bucket-page{min-height:100vh;padding:20px;background:radial-gradient(circle at 12% 16%,rgba(232,82,106,.13),transparent 28%),radial-gradient(circle at 86% 72%,rgba(166,124,82,.12),transparent 30%),linear-gradient(145deg,#fff4ec,#fde8ec 52%,#f5ede3)}.bucket-header{display:flex;align-items:center;gap:14px;margin-bottom:28px;flex-wrap:wrap}.bucket-back{padding:10px 18px;background:#fffdf9e0;border-radius:50px;font-weight:700;color:var(--color-text);border:1.5px solid rgba(139,94,60,.14);box-shadow:var(--shadow-soft)}.bucket-back:hover{transform:translate(-3px)}.bucket-header h2{font-size:28px;font-weight:800;color:var(--color-text)}.bucket-header p{color:var(--color-text-light);font-weight:700}.bucket-card{max-width:820px;margin:0 auto;background:#fffdf9d6;border:1.5px solid rgba(255,255,255,.72);border-radius:28px;padding:22px;box-shadow:0 18px 50px #8b5e3c24;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bucket-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.bucket-tabs.has-private-tab{grid-template-columns:repeat(5,1fr)}.bucket-tabs button{padding:12px 10px;border-radius:18px;background:#ffffffa6;color:var(--color-text-light);font-size:18px;font-weight:800;border:1.5px solid rgba(166,124,82,.1)}.bucket-tabs button.active{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;box-shadow:0 8px 22px #e8526a3d}.bucket-tabs button.private-tab{border-color:#3b343047;background:#3b343014}.bucket-tabs button.private-tab.active{background:linear-gradient(135deg,#3b3430,#e8526a)}.bucket-edit-panel{display:grid;gap:10px;margin-bottom:14px}.bucket-edit-toolbar,.bucket-tab-editor,.bucket-tab-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.bucket-edit-toolbar{flex-wrap:wrap}.bucket-tab-editor input{flex:1;min-width:180px;padding:11px 13px;border-radius:14px;border:1.5px solid rgba(166,124,82,.16);background:#ffffffd1;color:var(--color-text);font:inherit;font-weight:800;outline:none}.bucket-edit-panel button,.bucket-panel-toggle{padding:10px 14px;border-radius:14px;background:#8b5e3cdb;color:#fff;font-weight:800}.bucket-panel-toggle{width:fit-content;background:linear-gradient(135deg,#e8526aeb,#8b5e3ceb)}.bucket-edit-panel button:disabled,.bucket-panel-toggle:disabled{opacity:.45;cursor:not-allowed}.bucket-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.bucket-add input,.bucket-add textarea,.bucket-edit-fields textarea,.bucket-date-edit input,.bucket-edit-input{flex:1;width:100%;padding:13px 14px;border-radius:16px;border:1.5px solid rgba(166,124,82,.16);background:#ffffffd1;color:var(--color-text);font:inherit;font-weight:700;outline:none}.bucket-add textarea,.bucket-edit-fields textarea{grid-column:1 / -1;min-height:76px;resize:vertical}.bucket-add input:focus,.bucket-add textarea:focus,.bucket-edit-fields textarea:focus,.bucket-date-edit input:focus,.bucket-edit-input:focus{border-color:var(--color-rose);box-shadow:0 0 0 4px #e8526a1a}.bucket-add button,.bucket-actions button{padding:12px 16px;border-radius:16px;background:var(--color-brown);color:#fff;font-weight:800}.bucket-add button:disabled{opacity:.45;cursor:not-allowed}.bucket-filters{display:flex;gap:8px;justify-content:center;margin-bottom:18px;flex-wrap:wrap}.bucket-filters button{padding:9px 13px;border-radius:999px;background:#ffffffad;color:var(--color-text-light);font-weight:800;border:1.5px solid rgba(166,124,82,.12)}.bucket-filters button.active{background:#e8526a24;color:var(--color-rose);border-color:#e8526a42}.bucket-locked,.bucket-empty{text-align:center;padding:18px;color:var(--color-text-light);font-weight:700}.bucket-list{display:flex;flex-direction:column;gap:12px}.bucket-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-radius:20px;background:#ffffffad;border:1.5px solid rgba(166,124,82,.1);box-shadow:0 4px 16px #8b5e3c14}.bucket-check{width:30px;height:30px;border-radius:50%;border:2px solid var(--color-rose);background:#fff;color:var(--color-rose);font-weight:900;line-height:1}.bucket-check:disabled{cursor:default;opacity:.75}.bucket-text{width:100%;padding:0;background:transparent;border-radius:0;text-align:left;font-size:17px;font-weight:800;color:var(--color-text);overflow-wrap:anywhere}.bucket-edit-fields{display:grid;gap:9px}.bucket-date-edit{display:grid;gap:6px;color:var(--color-text-light);font-size:13px;font-weight:800}.bucket-details{grid-column:2 / -1;padding:12px 14px;border-radius:16px;background:#fff4ecb8;color:var(--color-text-light);font-weight:700;line-height:1.5}.bucket-completed-date{margin-top:8px;color:var(--color-rose);font-size:13px}.bucket-item.completed .bucket-text{color:var(--color-text-muted);text-decoration:line-through;text-decoration-thickness:3px}.bucket-item.completed .bucket-check{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;border-color:transparent}.bucket-actions{display:flex;gap:8px}.bucket-actions button{padding:9px 12px;font-size:13px;background:#8b5e3ce0}.bucket-actions button:last-child{background:#e8526ae0}@media (max-width: 620px){.bucket-card{padding:16px;border-radius:22px}.bucket-tabs,.bucket-tabs.has-private-tab{grid-template-columns:repeat(2,1fr)}.bucket-add{grid-template-columns:1fr}.bucket-item{grid-template-columns:auto 1fr}.bucket-details{grid-column:1 / -1}.bucket-actions{grid-column:1 / -1;justify-content:flex-end;flex-wrap:wrap}}.bucket-page.freaky-theme{background:linear-gradient(145deg,#120008,#2a0014);color:#ffe6f0}.bucket-page.freaky-theme .bucket-back,.bucket-page.freaky-theme .bucket-header h2,.bucket-page.freaky-theme .bucket-header p{color:#ffb3d1}.bucket-page.freaky-theme .bucket-back{background:#1a000deb;border-color:#4d0026}.bucket-page.freaky-theme .bucket-card{background:#1a000deb;border-color:#4d0026;box-shadow:0 18px 50px #00000059}.bucket-page.freaky-theme .bucket-tabs button{background:#200010d9;border-color:#4d0026;color:#f9b}.bucket-page.freaky-theme .bucket-tabs button.active{background:linear-gradient(135deg,#603,#8a2be2);border-color:#f36;color:#fff;box-shadow:0 8px 22px #ff336638}.bucket-page.freaky-theme .bucket-tabs button.private-tab.active{background:linear-gradient(135deg,#4a002a,#8a2be2)}.bucket-page.freaky-theme .bucket-panel-toggle,.bucket-page.freaky-theme .bucket-edit-panel button{background:linear-gradient(135deg,#603,#8a2be2)}.bucket-page.freaky-theme .bucket-add input,.bucket-page.freaky-theme .bucket-add textarea,.bucket-page.freaky-theme .bucket-edit-fields textarea,.bucket-page.freaky-theme .bucket-edit-input,.bucket-page.freaky-theme .bucket-tab-editor input{background:#120008;border-color:#603;color:#fff}.bucket-page.freaky-theme .bucket-item{background:#200010e0;border-color:#4d0026}.bucket-page.freaky-theme .bucket-item-text,.bucket-page.freaky-theme .bucket-details,.bucket-page.freaky-theme .bucket-empty{color:#ffb3d1}.bucket-page.freaky-theme .bucket-filters button{background:#200010d9;border-color:#4d0026;color:#f9b}.bucket-page.freaky-theme .bucket-filters button.active{background:linear-gradient(135deg,#603,#8a2be2);color:#fff}.love-letters-page{min-height:100vh;padding:24px 18px 48px;background:linear-gradient(145deg,#fff4ec,#fde8ec,#f5ede3)}.letters-header{max-width:860px;margin:0 auto 24px;display:flex;align-items:center;gap:16px}.letters-back{padding:10px 18px;background:#fffdf9d9;border-radius:50px;font-weight:700;color:var(--color-text);border:1.5px solid rgba(139,94,60,.14);box-shadow:var(--shadow-soft)}.letters-header h2{color:var(--color-text);font-size:28px;font-weight:900}.letters-header p{color:var(--color-text-muted);font-size:14px;font-weight:700}.new-letter-button,.letter-editor,.letters-list{max-width:860px;margin-left:auto;margin-right:auto}.new-letter-button{display:block;width:min(100%,260px);margin-bottom:18px;padding:14px 18px;border-radius:50px;background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;font-weight:900;box-shadow:0 8px 22px #e8526a40}.letter-editor{background:#fffdf9db;border:1.5px solid rgba(232,82,106,.12);border-radius:24px;padding:18px;box-shadow:var(--shadow-soft);margin-bottom:22px}.letter-editor input,.letter-editor textarea{width:100%;padding:13px 14px;border-radius:14px;border:1.5px solid rgba(139,94,60,.18);background:#ffffffc2;color:var(--color-text);font-family:inherit;font-size:15px;margin-bottom:12px}.letter-editor textarea{resize:vertical;line-height:1.55}.letter-editor-actions,.letter-actions{display:flex;gap:10px}.letter-editor-actions button,.letter-actions button{flex:1;padding:12px 14px;border-radius:50px;font-weight:800}.letter-editor-actions button:first-child,.letter-actions button:first-child{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff}.letter-editor-actions button:last-child,.letter-actions button:last-child{background:#fffc;color:#b4233a;border:1.5px solid rgba(180,35,58,.24)}.letter-editor-actions button:disabled,.letter-actions button:disabled{opacity:.65;cursor:not-allowed}.letters-list{display:grid;gap:18px}.letter-card{background:#fffdf9e6;border:1.5px solid rgba(232,82,106,.12);border-radius:28px;padding:22px;box-shadow:var(--shadow-soft)}.letter-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid rgba(139,94,60,.12)}.letter-card-header h3{color:var(--color-text);font-size:24px;font-weight:900}.letter-date{color:var(--color-rose);font-size:13px;font-weight:800;margin-top:4px}.letter-card-header span{color:var(--color-rose);font-weight:900;background:var(--color-rose-pale);border-radius:50px;padding:6px 10px}.letter-body{color:var(--color-text);line-height:1.65;font-size:16px;margin-bottom:18px}.letter-body p{margin:0 0 6px}.letters-empty{text-align:center;color:var(--color-text-muted);font-weight:800}@media (max-width: 600px){.letters-header{align-items:flex-start;flex-direction:column}.letters-header h2{font-size:24px}.letter-card{padding:18px;border-radius:22px}.letter-card-header{flex-direction:column}}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e0f0880;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:500;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:24px 0;animation:fadeIn .25s ease-out}.auth-modal{background:#fffdf9f5;border-radius:28px;padding:40px 36px;width:90%;max-width:400px;max-height:calc(100vh - 48px);overflow-y:auto;-webkit-overflow-scrolling:touch;margin:auto;text-align:center;box-shadow:0 30px 80px #8b5e3c38,0 0 0 1px #fff9;position:relative;animation:fadeInScale .3s ease-out}.auth-close{position:sticky;top:0;display:block;width:fit-content;margin-left:auto;margin-top:-24px;margin-right:-12px;z-index:3;background:#fffdf9f5;color:var(--color-text-muted);font-size:18px;padding:4px 8px;border-radius:50%;transition:all var(--transition-fast)}.auth-close:hover{color:var(--color-rose);background:var(--color-rose-pale)}.auth-title{font-size:22px;font-weight:800;color:var(--color-text);margin-bottom:20px}.profile-selector{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.profile-chip{padding:10px 20px;border-radius:50px;background:var(--color-brown-pale);color:var(--color-text);font-weight:700;font-size:15px;border:2px solid transparent;transition:all var(--transition-normal)}.profile-chip.active{background:var(--color-rose);color:#fff;border-color:var(--color-rose);box-shadow:0 4px 14px #e8526a59}.easter-egg{margin-bottom:14px;animation:fadeInScale .3s ease-out}.easter-egg img{width:90px;height:90px;object-fit:contain;border-radius:12px;animation:wobble .5s ease-in-out}.auth-input{width:100%;padding:14px 18px;border-radius:14px;border:2px solid rgba(139,94,60,.14);background:#fff;font-size:16px;color:var(--color-text);margin-bottom:10px;transition:border-color var(--transition-fast)}.auth-input:focus{outline:none;border-color:var(--color-rose)}.auth-input--error{border-color:var(--color-rose)!important;animation:wobble .4s ease-in-out}.auth-error{color:var(--color-rose);font-size:14px;font-weight:600;margin-bottom:10px}.auth-input-wrapper{position:relative;width:100%}.auth-show-password{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:#8b5e3c14;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.auth-show-password:hover{background:#e8526a1f;color:var(--color-rose)}.auth-show-password svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-btn-login{width:100%;padding:14px;background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;border-radius:14px;font-size:17px;font-weight:700;box-shadow:0 6px 18px #e8526a4d;transition:all var(--transition-spring);margin-top:4px}.auth-btn-login:hover{transform:translateY(-2px);box-shadow:0 10px 24px #e8526a66}.auth-loggedin{display:flex;flex-direction:column;align-items:center;gap:12px}.auth-avatar{font-size:52px;animation:bounce 2s ease-in-out infinite}.auth-loggedin h2{font-size:24px;font-weight:800;color:var(--color-text)}.auth-loggedin p{color:var(--color-text-muted);font-size:15px}.editing-toggle-panel{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;background:#f9f4f0c7;border:1.5px solid rgba(139,94,60,.12);border-radius:18px;text-align:left}.editing-toggle-panel div{display:flex;flex-direction:column;gap:3px}.editing-toggle-panel strong{color:var(--color-text);font-size:14px}.editing-toggle-panel span{color:var(--color-text-muted);font-size:12px;font-weight:700}.editing-toggle{width:56px;height:32px;padding:4px;border-radius:50px;background:#8b5e3c2e;border:1.5px solid rgba(139,94,60,.16);flex:0 0 auto;transition:all var(--transition-normal)}.editing-toggle span{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 3px 8px #8b5e3c38;transition:transform var(--transition-spring)}.editing-toggle.active{background:linear-gradient(135deg,#e8526a,#8b5e3c)}.editing-toggle.active span{transform:translate(24px)}.language-panel{width:100%;background:#f9f4f0c7;border:1.5px solid rgba(139,94,60,.12);border-radius:18px;padding:14px;text-align:left}.language-title{display:block;color:var(--color-text);font-size:14px;font-weight:800;margin-bottom:10px}.language-options{display:flex;flex-direction:column;gap:8px}.language-option{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:14px;background:#fffdf9db;border:1.5px solid transparent;color:var(--color-text)}.language-option.active{border-color:var(--color-rose);background:var(--color-rose-pale);box-shadow:0 5px 14px #e8526a24}.language-option strong{font-size:14px}.language-option small{color:var(--color-text-light);font-size:12px;font-weight:700}.language-status{display:block;margin-top:8px;color:var(--color-text-muted);font-size:12px;font-weight:700}.auth-btn-logout{padding:12px 30px;background:var(--color-brown-pale);color:var(--color-text);border-radius:50px;font-size:15px;font-weight:700;border:2px solid rgba(139,94,60,.14);margin-top:4px;transition:all var(--transition-normal)}.auth-btn-logout:hover{background:var(--color-rose-pale);border-color:var(--color-rose);color:var(--color-rose)}.auth-btn-music{width:100%;padding:11px 20px;background:transparent;color:var(--color-brown);border:1.5px solid var(--color-brown-light);border-radius:12px;font-size:14px;font-weight:600;letter-spacing:.04em;cursor:pointer;margin-top:8px;transition:all .2s ease}.auth-btn-music:hover{background:var(--color-brown-pale);border-color:var(--color-brown);color:var(--color-charcoal)}.roulette-page{padding:16px;max-width:980px;margin:0 auto;color:#2b2b2b;position:relative}.back-button{background:transparent;border:none;font-size:16px;margin-bottom:8px;cursor:pointer}.roulette-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.freaky-launch-button{padding:10px 18px;border-radius:999px;border:none;font-weight:700;color:#fff;background:linear-gradient(135deg,#8b458beb,#4b0082eb);box-shadow:0 14px 30px #6b327040;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.freaky-launch-button:hover{transform:translateY(-2px);box-shadow:0 18px 40px #6b32704d}.roulette-title{margin:8px 0 16px;font-size:24px}.roulette-main{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.roulette-main{justify-content:center}.roulette-canvas{flex:1 1 320px;max-width:500px;border-radius:12px;background:transparent;box-shadow:none;display:block;margin:0 auto}.roulette-card{background:linear-gradient(180deg,#fff,#fff7fb);box-shadow:0 6px 18px #00000014;border-radius:12px;padding:18px 64px;display:inline-block;margin:0 auto}.roulette-pulse{transform-origin:center;animation:pulse .6s ease}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.roulette-deco{width:48px;height:48px;z-index:20}.roulette-deco-img{width:100%;height:100%;object-fit:contain}.decorative-cat{position:absolute;z-index:10050;pointer-events:none;will-change:transform,opacity}.decorative-cat-image{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(139,94,60,.18));opacity:.95}@media (max-width: 720px){.decorative-cat-image{width:56px;height:56px}}.roulette-controls{flex:1 1 260px;display:flex;flex-direction:column;gap:8px}.roulette-textarea{min-height:220px;resize:vertical;padding:8px;border-radius:8px;border:1px solid #eee;font-size:14px}.roulette-buttons{display:flex;gap:8px}.roulette-buttons{justify-content:center}.spin-button,.sample-button{padding:10px 14px;border-radius:8px;border:none;cursor:pointer;background:#ffb3d9}.spin-sticker{display:inline-flex;align-items:center;justify-content:center;margin-left:8px}.spin-sticker-img{width:44px;height:44px;object-fit:contain;border-radius:6px}@media (max-width:420px){.spin-sticker-img{width:40px;height:40px}}.spin-button{margin:0 auto}.spin-button[disabled]{opacity:.6;cursor:default}.roulette-winner{margin-top:12px;padding:14px 16px;background:linear-gradient(90deg,#fff8f9,#fff1f6);border-radius:12px;border:1px solid #ffd6e6;box-shadow:0 6px 18px #e8526a0f;font-size:16px;font-weight:700;color:#5a2b31}.roulette-winner strong{display:inline-block;margin-left:6px;font-weight:800}@media (max-width: 720px){.roulette-main{flex-direction:column;align-items:center;justify-content:center}.roulette-card{padding:16px 18px;width:calc(100% - 32px);box-sizing:border-box}.roulette-textarea{min-height:160px}}.roulette-page{overflow:visible}.freaky-page{padding:18px;max-width:980px;margin:0 auto;color:#2c1d26}.back-button{background:transparent;border:none;font-size:16px;margin-bottom:12px;cursor:pointer}.freaky-title{font-size:34px;font-weight:800;margin-bottom:6px}.freaky-description{color:#6e4e6d;margin-bottom:20px;max-width:760px}.freaky-main{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.freaky-wheel-card,.roulette-card{background:#fff;border:1px solid #f0e4ef;border-radius:32px;padding:18px;box-shadow:0 18px 44px #9560891a}.freaky-canvas,.roulette-canvas{width:100%;max-width:500px;border-radius:28px;display:block}.freaky-controls{flex:1;min-width:300px;display:grid;gap:18px}.freaky-textarea,.roulette-textarea{width:100%;min-height:210px;border-radius:24px;border:1px solid #e9d7e5;padding:16px;font-size:15px;resize:vertical;background:#fff9fe}.freaky-buttons,.roulette-buttons{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;width:100%}.freaky-spin-button{margin:0 auto}.freaky-spin-button,.spin-button{padding:14px 20px;border:none;border-radius:999px;background:linear-gradient(135deg,#ff99c5,#e35a9f);color:#fff;font-weight:700;cursor:pointer;min-width:140px}.freaky-spin-button.secondary,.spin-button.secondary{background:#fff;color:#8a3f7e;border:1px solid #f0d7e8}.freaky-spin-button[disabled],.spin-button[disabled]{opacity:.55;cursor:not-allowed}.freaky-sticker,.spin-sticker{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:20px;background:#fff8fc;border:1px solid #f1d7e5}.freaky-sticker-img,.spin-sticker-img{width:44px;height:44px;object-fit:contain}.freaky-winner,.roulette-winner{background:#fff2fb;padding:14px 16px;border-radius:18px;border:1px solid #f4d7ee;color:#5d3150;font-weight:700}.wiki-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.wiki-modal{background:#fff;border-radius:24px;padding:24px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;position:relative}.wiki-btn-back{background:transparent;border:none;color:#6e4e6d;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;position:relative}.wiki-close{position:absolute;top:12px;right:12px;background:transparent;border:none;font-size:24px;cursor:pointer;color:#6e4e6d}.wiki-list{display:grid;gap:12px}.wiki-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:#fff9fe;border:1px solid #f1d7e5;cursor:pointer}.wiki-item:hover{background:#f8e6f5}.wiki-item-image{width:60px;height:60px;object-fit:cover;border-radius:12px}.wiki-item-title{font-weight:600;color:#2c1d26}.wiki-detail{display:grid;gap:16px}.wiki-detail-title{font-size:24px;font-weight:700;color:#2c1d26;margin:0}.wiki-detail-image{width:100%;height:200px;object-fit:cover;border-radius:16px}.wiki-detail-description{color:#6e4e6d;line-height:1.5}@media (max-width: 940px){.freaky-main{flex-direction:column}}@media (max-width: 720px){.freaky-page{padding:14px}.freaky-main{gap:18px;align-items:center}.freaky-wheel-card,.freaky-controls{width:100%;max-width:480px;margin:0 auto}.freaky-controls{text-align:center}.freaky-setup{align-items:center;text-align:center}.freaky-setup-label{align-items:center;justify-content:center}.freaky-setup-buttons{justify-content:center;width:100%;flex-wrap:wrap}.freaky-buttons{justify-content:center}.freaky-spin-button{display:block;margin-left:auto;margin-right:auto}}.wiki-list-container{display:flex;flex-direction:column;gap:16px}.wiki-list-title{margin:0;font-size:22px;color:#2c1d26}.wiki-search-bar input{width:100%;padding:12px 16px;border-radius:999px;border:1px solid #e9d7e5;background:#fff9fe;font-size:15px;outline:none}.wiki-search-bar input:focus{border-color:#d69ee5;box-shadow:0 0 0 2px #d69ee533}.wiki-no-results{text-align:center;color:#6e4e6d;padding:20px 0}.wiki-detail-header{display:flex;justify-content:space-between;align-items:center}.wiki-favorite-star{font-size:28px;color:#ccc;cursor:pointer;margin-left:12px;transition:color .2s;-webkit-user-select:none;user-select:none}.wiki-favorite-star.active{color:#f1c40f}.wiki-view-info{display:flex;flex-direction:column;gap:12px}.wiki-detail-link{color:#e35a9f;text-decoration:none;font-weight:600;display:inline-block}.wiki-detail-link:hover{text-decoration:underline}.wiki-btn{padding:10px 16px;border-radius:12px;border:none;font-weight:600;cursor:pointer;transition:opacity .2s}.wiki-btn:hover{opacity:.9}.wiki-btn.edit{background:#f0f0f0;color:#555;align-self:flex-start}.wiki-edit-form{display:flex;flex-direction:column;gap:12px;background:#fff9fe;padding:16px;border-radius:16px;border:1px solid #f1d7e5}.wiki-edit-form label{font-weight:600;color:#5d3150;font-size:14px}.wiki-edit-textarea,.wiki-edit-input{width:100%;border-radius:12px;border:1px solid #e9d7e5;padding:12px;font-size:14px;font-family:inherit;outline:none}.wiki-edit-textarea{min-height:100px;resize:vertical}.wiki-edit-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.wiki-btn.cancel{background:transparent;color:#6e4e6d;border:1px solid #e9d7e5}.wiki-btn.save{background:linear-gradient(135deg,#ff99c5,#e35a9f);color:#fff}.wiki-btn-back{background:transparent;border:none;color:#6e4e6d;cursor:pointer;font-weight:600;padding:12px 0;align-self:flex-start}.wiki-btn-back:hover{color:#2c1d26}body.freaky-body-override{background:linear-gradient(145deg,#120008,#2a0014)!important;color:#ffe6f0}.freaky-page.dark-mode{background:transparent;color:#ffe6f0;min-height:100vh}.dark-mode .freaky-title{color:#f36}.dark-mode .freaky-description,.dark-mode .back-button{color:#f9b}.dark-card{background:#1a000d;border-color:#33001a;box-shadow:0 18px 44px #00000080}.dark-controls{background:transparent}.freaky-setup{background:#200010;border:1px solid #4d0026;border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:14px}.freaky-setup-label{display:flex;flex-direction:column;gap:8px;font-weight:600;color:#ffb3d1}.freaky-number-input{background:#120008;border:1px solid #660033;color:#fff;padding:10px;border-radius:10px;font-size:16px;outline:none}.freaky-setup-buttons{display:flex;gap:10px}.freaky-setup-btn{flex:1;padding:12px;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:opacity .2s}.freaky-setup-btn:hover{opacity:.8}.freaky-setup-btn.set{background:#4a0080;color:#fff}.freaky-setup-btn.fav{background:maroon;color:#fff}.dark-winner{background:#2a0014;border-color:#4d0026;color:#f36}.freaky-history{background:#1a000d;border:1px solid #33001a;border-radius:20px;padding:16px}.freaky-history h3{margin:0 0 12px;font-size:18px;color:#f9b}.freaky-history-list{display:flex;flex-direction:column;gap:8px;max-height:200px;overflow-y:auto}.freaky-history-list::-webkit-scrollbar{width:6px}.freaky-history-list::-webkit-scrollbar-thumb{background:#4d0026;border-radius:10px}.freaky-history-item{display:flex;align-items:center;gap:10px;background:#260013;padding:8px;border-radius:10px;cursor:pointer;transition:background .2s}.freaky-history-item:hover{background:#33001a}.freaky-history-item img{width:40px;height:40px;border-radius:8px;object-fit:cover}.freaky-history-info{display:flex;flex-direction:column}.freaky-history-title{font-weight:600;font-size:14px}.freaky-history-time{font-size:12px;color:#b36688}.freaky-winner-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:2000}.freaky-winner-card{background:#1a000d;border:2px solid #ff3366;border-radius:24px;padding:24px;width:90%;max-width:320px;text-align:center;position:relative;box-shadow:0 0 40px #f366;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.freaky-winner-close{position:absolute;top:10px;right:10px;background:transparent;border:none;color:#f9b;font-size:20px;cursor:pointer}.freaky-winner-title{color:#fff;margin:0 0 16px}.freaky-winner-image-container{position:relative;border-radius:16px;overflow:hidden;cursor:pointer}.freaky-winner-image{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}.freaky-winner-overlay-text{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:#fff;padding:8px;font-size:14px;font-weight:700;opacity:0;transition:opacity .2s}.freaky-winner-image-container:hover .freaky-winner-overlay-text{opacity:1}.freaky-winner-name{margin:16px 0 0;color:#ffb3d1;font-size:20px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.freaky-action-icons{display:inline-flex;align-items:center;gap:10px}.freaky-action-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-size:22px;line-height:1;color:#555;cursor:pointer;transition:color .2s,transform .2s;-webkit-user-select:none;user-select:none;flex-shrink:0}.freaky-action-icon:hover{transform:scale(1.1)}.freaky-action-icon.fav:hover{color:#888}.freaky-action-icon.fav.active{color:#f1c40f}.freaky-action-icon.dislike:hover{color:#f36}.freaky-action-icon.dislike.active{color:#f03}.dark-wiki-modal{background:#111;border:4px solid #000;color:#eee}.dark-wiki-modal .wiki-close{color:#aaa}.dark-wiki-modal .wiki-list-title,.dark-wiki-modal .wiki-detail-title{color:#fff}.dark-wiki-modal .wiki-search-bar input{background:#222;border-color:#444;color:#fff}.dark-wiki-modal .wiki-item{background:#1a1a1a;border-color:#333}.dark-wiki-modal .wiki-item:hover{background:#2a2a2a}.dark-wiki-modal .wiki-item-title{color:#ddd}.dark-wiki-modal .wiki-detail-description{color:#bbb}.wiki-fav-toggle{display:flex;align-items:center;gap:8px;font-size:14px;margin-top:8px;cursor:pointer;color:#ccc}.wiki-detail-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.wiki-filter-pills{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.wiki-filter-pill{background:#222;border:1px solid #444;color:#aaa;border-radius:20px;padding:6px 12px;font-size:14px;cursor:pointer;transition:all .2s ease}.wiki-filter-pill:hover{background:#333;color:#fff}.wiki-filter-pill.active{background:#8a2be2;border-color:#8a2be2;color:#fff}.wiki-list-icons{display:flex;gap:12px;align-items:center;margin-left:auto}.wiki-detail-video{width:100%;max-width:400px;border-radius:16px;margin:14px auto;display:block;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 20px #8a2be226}.freaky-roulette-action-btn{display:block;width:100%;margin-top:10px;padding:10px 18px;border:none;border-radius:14px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.freaky-roulette-action-btn.add{background:linear-gradient(135deg,#8a2be2,#b5179e);color:#fff}.freaky-roulette-action-btn.add:hover{filter:brightness(1.15)}.freaky-roulette-action-btn.remove{background:#ff336626;color:#f36;border:1px solid rgba(255,51,102,.3)}.freaky-roulette-action-btn.remove:hover{background:#ff336640}.freaky-mode-toggles{display:flex;justify-content:center;gap:12px;margin-top:14px}.freaky-mode-pill{padding:8px 16px;border-radius:20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#aaa;font-size:13px;cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none;display:flex;align-items:center}.freaky-mode-pill input{display:none}.freaky-mode-pill:hover{background:#ffffff1a;color:#fff}.freaky-mode-pill.active{background:linear-gradient(135deg,#8a2be2,#b5179e);color:#fff;border-color:transparent;box-shadow:0 4px 15px #8a2be24d}.wiki-rating-section{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px;margin-bottom:8px}.wiki-tried-pill{padding:8px 24px;border-radius:20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#ccc;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-user-select:none;user-select:none}.wiki-tried-pill input{display:none}.wiki-tried-pill:hover{background:#ffffff1a}.wiki-tried-pill.active{background:#32cd3233;color:#32cd32;border-color:#32cd32;box-shadow:0 0 12px #32cd324d}.wiki-stars-container{display:flex;gap:8px}.wiki-star{font-size:28px;color:#ffffff1a;cursor:pointer;transition:all .2s ease}.wiki-star:hover{transform:scale(1.1);color:#ffd70080}.wiki-star.filled{color:gold;text-shadow:0 0 10px rgba(255,215,0,.6)}@media (max-width: 600px){.freaky-setup{align-items:center;text-align:center}.freaky-setup-label{align-items:center;justify-content:center}.freaky-setup-buttons{justify-content:center;width:100%}.freaky-setup-btn.wiki{flex:0 0 auto;display:block;width:fit-content;min-width:200px;margin:0 auto}.freaky-buttons{flex-direction:column;align-items:center}.freaky-spin-button{display:block;width:fit-content;min-width:200px;margin:0 auto}.freaky-spin-hint{text-align:center}}.hub{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:30px 20px;position:relative;overflow:hidden;background:linear-gradient(160deg,#fff4ec,#fde8ec 45%,#f5ede3 80%,#fff4ec)}.hub:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 20%,rgba(232,82,106,.1) 0%,transparent 55%),radial-gradient(ellipse at 80% 80%,rgba(139,94,60,.08) 0%,transparent 55%);pointer-events:none;z-index:0}.decorative-cat{position:absolute;z-index:9999;pointer-events:none;animation:floatSlow 5s ease-in-out infinite}.decorative-cat,.decorative-cat-image{will-change:transform,opacity}.hub.transitioning .decorative-cat{z-index:1}.hub-content{position:relative;z-index:100}.hub-button{position:relative;z-index:200}.decorative-cat-image{width:90px;height:90px;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(139,94,60,.18));opacity:.75;transition:opacity .3s ease}.decorative-cat-emoji{font-size:60px;opacity:.7}@media (max-width: 768px){.decorative-cat-image{width:58px;height:58px}.decorative-cat{opacity:.6}}@media (max-width: 390px){.decorative-cat-image{width:46px;height:46px}.decorative-cat{opacity:.5}}.hub-content{max-width:640px;width:100%;text-align:center;position:relative;z-index:20}.hub-title{font-size:38px;font-weight:800;margin-bottom:44px;letter-spacing:-.5px;background:linear-gradient(135deg,#8b5e3c,#e8526a,#b07d54);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease-in-out infinite;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-buttons{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:36px}.hub-button{width:100%;padding:16px 14px;background:#fffdf9e0;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:24px;box-shadow:0 6px 22px #8b5e3c1a;border:1.5px solid rgba(255,255,255,.7);cursor:pointer;transition:all var(--transition-spring);display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;overflow:hidden;z-index:10}.hub-button:before{content:"";position:absolute;top:0;left:-120%;width:80%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,220,210,.35),transparent);transition:left .55s ease}.hub-button:hover:not(:disabled):before{left:130%}.hub-button:hover:not(:disabled){transform:translateY(-6px) scale(1.02);box-shadow:0 16px 40px #8b5e3c29,0 4px 14px #e8526a1f}.hub-button:active:not(:disabled){transform:translateY(-2px) scale(.98)}.hub-button--disabled{opacity:.45;cursor:not-allowed}.freaky-button{position:relative}.freaky-button:before{content:"Freaky";position:absolute;left:16px;top:18px;display:inline-block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#7b3e93}.album-button{border-left:5px solid #E65578}.wars-button{border-left:5px solid #BD7C4E}.notes-button{border-left:5px solid #F3A2C1}.calendar-button{border-left:5px solid #C18E64}.bucket-button{border-left:5px solid #D99A6C}.letters-button{border-left:5px solid #E8526A}.roulette-button{border-left:5px solid #C05C9E}.freaky-button{border-left:5px solid #8E4CB5}.auth-button{border-left:5px solid #E0709C}.events-button{border-left:5px solid #F0B249}.legacy-button{border-left:5px solid #5F4A38}.button-emoji{font-size:38px;animation:hubEmojiFloat 3.5s ease-in-out infinite}.button-text{font-size:20px;font-weight:700;color:var(--color-text)}.button-subtitle{font-size:13px;color:var(--color-text-light);font-weight:500}@keyframes hubEmojiFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.hub-footer{margin-top:32px}.footer-text{font-size:16px;color:var(--color-text-muted);opacity:.85}@media (max-width: 480px){.hub{padding:16px 12px}.hub-title{font-size:24px;margin-bottom:24px}.hub-buttons{gap:10px}.hub-button{padding:10px;border-radius:16px;gap:2px;min-height:96px}.button-emoji{font-size:24px}.button-text{font-size:15px}.button-subtitle{font-size:10px}}@media (max-width: 390px){.hub-title{font-size:22px;letter-spacing:-.5px}.hub-buttons{gap:12px}.hub-button{padding:9px 10px;min-height:88px}.button-emoji{font-size:22px}.button-text{font-size:15px}}.calendar-page{min-height:100vh;background:linear-gradient(145deg,#fff4ec,#fde8ec,#f5ede3);padding:20px}.cal-header{display:flex;align-items:center;gap:14px;margin-bottom:28px;flex-wrap:wrap}.cal-back{padding:10px 18px;background:#fffdf9d9;border-radius:50px;font-weight:700;color:var(--color-text);border:1.5px solid rgba(139,94,60,.14);box-shadow:var(--shadow-soft);transition:all var(--transition-normal)}.cal-back:hover{transform:translate(-3px)}.cal-header h2{flex:1;font-size:24px;font-weight:800;color:var(--color-text)}.mode-toggle{display:flex;background:#fffdf9d9;border-radius:50px;padding:4px;gap:4px;box-shadow:var(--shadow-soft)}.mode-toggle button{padding:8px 18px;border-radius:50px;font-weight:700;color:var(--color-text-muted);transition:all var(--transition-normal)}.mode-toggle button.active{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;box-shadow:0 4px 12px #e8526a4d}.calendar-container{max-width:800px;margin:0 auto;background:#fffdf9cc;border-radius:20px;padding:20px;box-shadow:var(--shadow-soft)}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.calendar-controls button{background:#fffdf9e6;border:1px solid rgba(139,94,60,.2);border-radius:50%;width:40px;height:40px;font-weight:700;color:var(--color-text);box-shadow:var(--shadow-soft);cursor:pointer;transition:.2s}.calendar-controls button:hover{background:var(--color-rose);color:#fff}.calendar-controls h3{font-size:22px;font-weight:800;color:var(--color-text)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;color:var(--color-rose);margin-bottom:10px;font-size:14px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.cal-day{background:#fff9;border-radius:12px;min-height:80px;padding:8px;display:flex;flex-direction:column;align-items:center;box-shadow:0 2px 4px #00000005;border:1px solid rgba(139,94,60,.05);position:relative;transition:.2s}.cal-day.empty{background:transparent;border:none;box-shadow:none}.cal-day.is-today{border:2px solid var(--color-rose);background:#e8526a0d}.cal-day.is-past{opacity:.7}.cal-day.has-event{background:linear-gradient(135deg,#fffdf9e6,#fde8ece6);border:1px solid var(--color-rose);cursor:pointer}.cal-day.has-event:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.cal-day.has-event.is-freaky{background:linear-gradient(145deg,#120008f5,#2a0014f0);border:1px solid rgba(255,51,102,.45);box-shadow:0 4px 14px #8a2be22e}.cal-day.has-event.is-freaky:hover{box-shadow:0 8px 20px #ff33663d}.cal-day.has-event.is-freaky .day-number{color:#ffb3d1}.cal-day.is-today.has-event.is-freaky{border:2px solid #ff3366;background:linear-gradient(145deg,#1a000dfa,#4a002aeb)}.tl-card.is-freaky{background:linear-gradient(145deg,#120008f5,#2a0014f0);border:1.5px solid rgba(255,51,102,.45);color:#ffe6f0;box-shadow:0 10px 24px #8a2be229}.tl-card.is-freaky h3,.tl-card.is-freaky .cal-date{color:#ffb3d1}.tl-card.is-freaky:hover{box-shadow:0 14px 30px #ff336638}.freaky-event-toggle{width:100%;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,51,102,.35);background:linear-gradient(145deg,#120008,#2a0014);color:#ffb3d1;font:inherit;font-weight:700;cursor:pointer;transition:.2s ease}.freaky-event-toggle:hover{border-color:#8a2be273}.freaky-event-toggle.active{background:linear-gradient(135deg,#4a002af2,#2a0014fa);border-color:#ff33668c;color:#ffe6f0;box-shadow:0 4px 14px #ff33662e}.cal-day.is-clickable{cursor:pointer}.cal-day.is-clickable:hover{background:#e8526a1a}.day-number{font-weight:700;color:var(--color-text);font-size:14px}.day-emoji{font-size:22px;margin-top:auto;line-height:1}.cal-emoji{font-size:28px;line-height:1;margin-bottom:4px}.cal-hint{text-align:center;margin-top:20px;color:var(--color-text-muted);font-size:14px;font-style:italic}.cal-timeline{position:relative;padding:20px 0 60px;max-width:800px;margin:0 auto}.timeline-line{position:absolute;left:50%;transform:translate(-50%);top:0;bottom:0;width:4px;background:linear-gradient(to bottom,transparent,#E8526A 10%,#8B5E3C 90%,transparent);border-radius:2px}.timeline-row{display:flex;align-items:flex-start;margin-bottom:36px;position:relative}.timeline-row.left{justify-content:flex-start;padding-right:calc(50% + 24px)}.timeline-row.right{justify-content:flex-end;padding-left:calc(50% + 24px)}.tl-card{background:#fffdf9e6;border-radius:18px;padding:20px 16px;text-align:center;box-shadow:var(--shadow-soft);border:1.5px solid rgba(232,82,106,.1);cursor:pointer;transition:all var(--transition-spring);max-width:220px;width:100%;display:flex;flex-direction:column;align-items:center;gap:6px}.tl-card:hover{transform:scale(1.04);box-shadow:var(--shadow-strong)}.tl-dot{position:absolute;left:50%;top:24px;transform:translate(-50%);width:16px;height:16px;background:#fff;border:3px solid var(--color-rose);border-radius:50%;box-shadow:0 0 10px #e8526a40}.tl-walkers{display:flex;justify-content:center;margin-top:20px}.tl-walkers img,.tl-walkers video{width:90px;height:90px;object-fit:contain}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e0;display:flex;align-items:flex-start;justify-content:center;z-index:1000;padding:max(16px,env(safe-area-inset-top)) 16px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:fadeIn .3s ease-out}.modal-content{position:relative;width:min(100%,520px);max-height:none;background:#fff;border-radius:20px;overflow:visible;box-shadow:var(--shadow-strong);animation:slideIn .3s ease-out;margin:auto 0}.modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;background:#4a3b32d9;color:#fff;border-radius:50%;font-size:18px;cursor:pointer;z-index:10}.cal-view-modal,.cal-create-modal{padding:24px 20px 20px;max-height:none;overflow:visible}.view-event-header{text-align:center;margin-bottom:16px;padding-top:8px}.view-event-emoji{font-size:44px;display:block;margin-bottom:10px;line-height:1.2}.view-event-header h2{color:var(--color-text);font-size:24px;font-weight:800;margin-bottom:4px}.view-event-date{color:var(--color-rose);font-weight:600}.view-event-media{width:100%;border-radius:12px;margin-bottom:16px;max-height:400px;object-fit:cover}.view-event-desc{color:var(--color-text);line-height:1.5;text-align:center;font-style:italic}.event-actions{display:flex;gap:10px;margin-top:18px}.btn-edit-event,.btn-delete-event{flex:1;padding:12px 14px;border-radius:50px;font-weight:800;cursor:pointer;transition:.2s}.btn-edit-event{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;box-shadow:0 4px 12px #e8526a40}.btn-delete-event{background:#fffc;color:#b4233a;border:1.5px solid rgba(180,35,58,.28)}.btn-edit-event:hover,.btn-delete-event:hover{transform:translateY(-2px)}.btn-delete-event:disabled{opacity:.7;cursor:not-allowed}.btn-delete-event.full-width{width:100%;margin-top:10px}.cal-create-modal{max-width:420px;overflow-y:auto;max-height:calc(100vh - 48px)}.cal-create-modal h2{text-align:center;color:var(--color-text);margin-bottom:4px}.create-date-text{text-align:center;color:var(--color-rose);font-weight:700;margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:700;color:var(--color-text)}.form-group input,.form-group textarea{width:100%;padding:12px;border-radius:10px;border:1px solid rgba(139,94,60,.2);background:#ffffff80;font-family:inherit}.emoji-picker{display:flex;flex-wrap:wrap;gap:8px}.emoji-btn{font-size:24px;padding:8px;background:#fff9;border:1px solid rgba(139,94,60,.1);border-radius:10px;cursor:pointer;transition:.2s}.emoji-btn:hover{background:#ffffffe6;transform:scale(1.1)}.emoji-btn.selected{background:var(--color-rose);border-color:var(--color-rose)}.btn-select-media{width:100%;padding:12px;background:#8b5e3c1a;border:2px dashed rgba(139,94,60,.3);border-radius:10px;color:var(--color-text);font-weight:600;cursor:pointer;transition:.2s}.btn-select-media:hover{background:#8b5e3c33}.selected-media-preview{position:relative;cursor:pointer;border-radius:10px;overflow:hidden}.selected-media-preview img,.selected-media-preview video{width:100%;height:150px;object-fit:cover;display:block}.change-text{position:absolute;bottom:0;left:0;right:0;background:#0009;color:#fff;text-align:center;padding:8px;font-size:12px;font-weight:700}.btn-save-event{width:100%;padding:14px;background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;font-weight:800;border:none;border-radius:50px;margin-top:10px;cursor:pointer;box-shadow:0 4px 12px #e8526a4d;transition:.2s}.btn-save-event:hover{transform:translateY(-2px);box-shadow:0 6px 16px #e8526a66}.btn-save-event:disabled{opacity:.7;cursor:not-allowed}.media-picker-modal{z-index:1001}.picker-content{max-width:700px;width:min(100%,700px);max-height:calc(100vh - 48px);overflow-y:auto;padding:20px}.picker-content h2{text-align:center;color:var(--color-text);margin-bottom:20px}.media-section{margin-bottom:30px}.media-section h3{color:var(--color-rose);margin-bottom:14px;border-bottom:2px solid rgba(232,82,106,.1);padding-bottom:6px}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.picker-grid img,.picker-grid video{width:100%;height:100px;object-fit:cover;border-radius:8px;cursor:pointer;transition:.2s}.picker-grid img:hover,.picker-grid video:hover{transform:scale(1.05);box-shadow:var(--shadow-soft)}@media (max-width: 600px){.cal-grid{grid-template-columns:1fr 1fr;gap:12px}.timeline-line{left:20px}.timeline-row.left,.timeline-row.right{padding-left:44px;padding-right:0;justify-content:flex-start}.tl-dot{left:20px}.cal-day{min-height:60px;padding:4px}.day-emoji,.calendar-controls h3{font-size:18px}}.picker-tabs{display:flex;gap:8px;margin-bottom:14px;background:#fffdf980;border-radius:50px;padding:4px}.picker-tabs button{flex:1;padding:10px 16px;border-radius:50px;font-weight:700;color:var(--color-text-muted);transition:all .2s}.picker-tabs button.active{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;box-shadow:0 4px 12px #e8526a4d}.picker-search{width:100%;padding:10px 14px;border-radius:50px;border:1.5px solid rgba(139,94,60,.2);background:#fff9;font-family:inherit;font-size:15px;margin-bottom:16px;outline:none;box-sizing:border-box}.picker-search:focus{border-color:var(--color-rose)}.scoreboard-container{min-height:100vh;display:flex;flex-direction:column;color:var(--color-text);background:transparent}.scoreboard-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:18px 20px;background:var(--color-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-glass-border)}.scoreboard-back{padding:10px 18px;background:#fffffff2;border-radius:20px;font-size:15px;font-weight:700;color:var(--color-text);box-shadow:var(--shadow-soft);transition:all var(--transition-fast)}.scoreboard-back:hover{transform:translate(-2px);box-shadow:var(--shadow-medium)}.scoreboard-back:active{transform:translate(0)}.scoreboard-header h1{flex:1;margin:0;font-size:1.5rem;font-weight:800;text-align:center;color:var(--color-text)}.scoreboard-games{display:flex;gap:10px;padding:16px 20px 4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.scoreboard-game-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:20px;font-size:14px;font-weight:700;color:var(--color-brown);background:#ffffffe6;box-shadow:var(--shadow-soft);white-space:nowrap;transition:all var(--transition-fast)}.scoreboard-game-tab .tab-icon{font-size:1.1rem}.scoreboard-game-tab.active{color:#fff;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));box-shadow:var(--shadow-medium)}.scoreboard-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:18px}.scoreboard-loading,.scoreboard-error,.scoreboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 20px;text-align:center}.sb-spinner{width:38px;height:38px;border-radius:50%;border:4px solid var(--color-rose-light);border-top-color:var(--color-rose);animation:rotate .8s linear infinite}.scoreboard-loading p{color:var(--color-text-light);font-weight:600;margin:0}.scoreboard-empty p{font-size:1.05rem;color:var(--color-text);font-weight:700;margin:0}.scoreboard-empty-hint{font-size:.9rem;color:var(--color-text-light);max-width:320px}.scoreboard-error{background:var(--color-rose-pale);border:2px solid rgba(227,168,168,.25);border-radius:18px}.scoreboard-error p{color:var(--color-rose);font-weight:700;margin:0 0 8px}.scoreboard-error button{padding:10px 22px;border-radius:20px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--color-rose),var(--color-brown));box-shadow:var(--shadow-soft)}.scoreboard-error button:hover{transform:scale(1.04)}.scoreboard-list-header{display:flex;align-items:baseline;justify-content:space-between;font-size:1.3rem;font-weight:800;color:var(--color-text)}.scoreboard-count{font-size:.85rem;font-weight:700;color:var(--color-text-light)}.scoreboard-list{display:flex;flex-direction:column;gap:12px}.scoreboard-row{display:flex;align-items:center;gap:14px;padding:16px;background:#ffffffeb;border-radius:20px;box-shadow:var(--shadow-soft);cursor:pointer;transition:all var(--transition-normal);border-left:4px solid transparent}.scoreboard-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-medium)}.scoreboard-row.selected{border-left-color:var(--color-rose);background:linear-gradient(135deg,var(--color-rose-pale),rgba(255,255,255,.92))}.scoreboard-row.current-user{border-left-color:gold;background:linear-gradient(135deg,#fff8e1,#ffffffeb)}.scoreboard-rank{display:flex;flex-direction:column;align-items:center;min-width:46px;font-weight:800}.rank-medal{font-size:1.6rem;line-height:1}.rank-number{font-size:.75rem;color:var(--color-text-light);font-weight:700}.scoreboard-player{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.player-emoji{font-size:2.4rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.player-info{display:flex;flex-direction:column;text-align:left;min-width:0}.player-name{font-weight:800;font-size:1.05rem;color:var(--color-text)}.player-games{font-size:.82rem;color:var(--color-text-light);font-weight:600}.scoreboard-score,.scoreboard-last{display:flex;flex-direction:column;align-items:center;min-width:64px}.score-label,.last-label{font-size:.7rem;color:var(--color-brown);font-weight:800;text-transform:uppercase;letter-spacing:.5px}.score-value,.last-value{font-size:1.35rem;font-weight:800;color:var(--color-rose)}.scoreboard-expand{font-size:1rem;color:var(--color-text-muted);font-weight:800;transition:color var(--transition-normal)}.scoreboard-row.selected .scoreboard-expand{color:var(--color-rose)}.scoreboard-details{background:var(--color-rose-pale);border:2px solid rgba(227,168,168,.2);border-radius:18px;padding:18px;animation:fadeIn .3s ease-out}.scoreboard-details h3{margin:0 0 14px;font-size:1.1rem;font-weight:800;color:var(--color-text)}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.detail-card{background:#fff;padding:14px;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:var(--shadow-soft);border:1px solid var(--color-glass-border)}.detail-card.full-width{grid-column:1 / -1}.detail-label{font-size:.7rem;color:var(--color-brown);font-weight:800;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:1.4rem;font-weight:800;color:var(--color-rose)}.scoreboard-footer{padding:16px;text-align:center}.scoreboard-footer-text{margin:0;font-size:.85rem;color:var(--color-text-light);font-style:italic;font-weight:600}@media (max-width: 560px){.scoreboard-header h1{font-size:1.25rem}.scoreboard-main{padding:14px}.scoreboard-row{flex-wrap:wrap;gap:10px;padding:14px}.scoreboard-player{order:2;flex:1 0 100%;min-width:100%}.scoreboard-rank{order:1}.scoreboard-score,.scoreboard-last{order:3;min-width:56px}.scoreboard-expand{order:4;margin-left:auto}.player-emoji{font-size:2rem}.rank-medal{font-size:1.4rem}.details-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 380px){.scoreboard-header{padding:14px}.scoreboard-header h1{font-size:1.1rem}.scoreboard-row{padding:12px}.player-emoji{font-size:1.8rem}.details-grid{grid-template-columns:1fr}}.games-page{min-height:100vh;background:linear-gradient(145deg,#fff4ec,#fde8ec,#f5ede3);padding:20px}.games-header{display:flex;align-items:center;gap:16px;margin-bottom:32px}.games-back{padding:10px 18px;background:#fffdf9d9;border-radius:50px;font-weight:700;color:var(--color-text);border:1.5px solid rgba(139,94,60,.14);box-shadow:var(--shadow-soft);transition:all var(--transition-normal)}.games-back:hover{transform:translate(-3px)}.games-header h2{font-size:28px;font-weight:800;color:var(--color-text)}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px;max-width:600px;margin:0 auto}.game-card{background:#fffdf9e6;border-radius:24px;padding:30px 20px;text-align:center;box-shadow:var(--shadow-medium);border:1.5px solid rgba(232,82,106,.1);cursor:pointer;transition:all var(--transition-spring);display:flex;flex-direction:column;align-items:center;gap:12px}.game-card:hover{transform:translateY(-8px) scale(1.03);box-shadow:var(--shadow-strong)}.game-preview{width:100px;height:100px;object-fit:contain;border-radius:16px}.game-preview.trophy{display:flex;align-items:center;justify-content:center;font-size:60px;line-height:1;background:linear-gradient(135deg,var(--color-rose-pale),var(--color-brown-pale))}.game-card h3{font-size:20px;font-weight:800;color:var(--color-text)}.game-card p{font-size:14px;color:var(--color-text-muted)}.play-badge{background:linear-gradient(135deg,#e8526a,#8b5e3c);color:#fff;padding:8px 20px;border-radius:50px;font-size:14px;font-weight:700;margin-top:4px}.game-card--wip{opacity:.55;cursor:not-allowed;border-style:dashed}.game-card--wip:hover{transform:none;box-shadow:var(--shadow-soft)}.game-wip-icon{font-size:54px}.happy-birthday-page{min-height:100vh;padding:24px;display:flex;flex-direction:column;gap:22px;background:linear-gradient(160deg,#fff5f8,#ffe8f0 42%,#fff9f5)}.happy-back{align-self:flex-start;background:#fffffff0;border:1px solid rgba(232,82,106,.18);border-radius:999px;padding:12px 18px;font-size:15px;font-weight:700;color:#6b3f3f;cursor:pointer;box-shadow:0 16px 30px #e8526a1f}.happy-birthday-card{position:relative;flex:1;max-width:920px;width:100%;margin:0 auto;border-radius:36px;padding:28px;background:#fff;box-shadow:0 28px 70px #b74a761f;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.happy-card-image{width:100%;min-height:360px;display:grid;place-items:center}.happy-image{width:100%;max-width:520px;border-radius:28px;object-fit:cover;box-shadow:0 20px 60px #e8526a29}.happy-card-copy{display:flex;flex-direction:column;gap:18px}.happy-date{font-size:.95rem;color:#9a6f7b;letter-spacing:.2px}.happy-card-copy h1{margin:0;font-size:clamp(2.4rem,4vw,3.2rem);color:#933a55;line-height:1.05}.happy-card-copy p{margin:0;color:#5f3b46;font-size:1.05rem;line-height:1.8}.happy-buttons{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.happy-buttons button{border:none;border-radius:999px;padding:16px 26px;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 18px 32px #e8526a2e;min-width:140px}.happy-yes{background:linear-gradient(135deg,#f58ea9,#f7c6d5);color:#5b2833}.happy-no{background:linear-gradient(135deg,#ffb3c9,#ff8cb3);color:#4a1a2c;transition:transform .2s ease}.happy-no--moved{transform:translate(8px)}@media (max-width: 900px){.happy-birthday-card{grid-template-columns:1fr;padding:26px}}@media (max-width: 560px){.happy-birthday-card{padding:22px;gap:22px}.happy-card-copy h1{font-size:2rem}.happy-buttons{flex-direction:column;width:100%}.happy-buttons button{width:100%;max-width:100%}}.special-events-page{width:100%;max-width:1100px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:20px;background:linear-gradient(180deg,#fff8fb,#fff3f7 35%,#f7eef2)}.special-events-header{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap}.events-back{background:#fffffff5;border:1px solid rgba(139,94,60,.18);border-radius:999px;color:#5f3a46;padding:10px 18px;cursor:pointer;transition:background .2s ease,transform .2s ease;box-shadow:0 12px 24px #8b5e3c1f}.events-back:hover{background:#fff;transform:translate(-1px)}.special-events-header h2{margin:0;font-size:clamp(1.6rem,2.8vw,2.4rem);color:#512a34;flex:1;text-align:left}.special-events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.event-card{display:flex;flex-direction:column;width:100%;padding:0;border:1px solid rgba(139,94,60,.18);border-radius:28px;overflow:hidden;background:#fff;color:#422a31;text-align:left;cursor:pointer;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;box-shadow:0 18px 50px #8b5e3c1a}.event-card:hover{transform:translateY(-3px);border-color:#8b5e3c4d;box-shadow:0 24px 56px #8b5e3c29}.event-preview{width:100%;height:240px;object-fit:cover}.event-card-body{padding:24px 24px 0;display:grid;gap:12px}.event-card-body h3{margin:0;font-size:clamp(1.8rem,2.2vw,2.2rem);color:#6d3242;line-height:1.05}.event-card-body p{margin:0;color:#705059;line-height:1.8;font-size:1rem}.event-actions{padding:24px;display:flex;justify-content:flex-end}.event-date{font-size:.95rem;color:#9a6f7b;letter-spacing:.25px}.event-card-copy h3{margin:0;font-size:clamp(1.8rem,2.2vw,2.4rem);color:#6d3242;line-height:1.05}.event-card-copy p{margin:0;color:#705059;line-height:1.8;font-size:1rem}.event-preview{width:100%;border-radius:24px;aspect-ratio:4 / 3;object-fit:cover}.event-actions{padding:0 32px 32px;display:flex;justify-content:flex-end}.event-open-button{border:none;border-radius:999px;padding:16px 24px;background:linear-gradient(135deg,#dc6180,#b07d54);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 14px 30px #dc618038;transition:transform .2s ease,box-shadow .2s ease}.event-open-button:hover{transform:translateY(-2px);box-shadow:0 18px 36px #dc618040}@media (max-width: 820px){.event-card-main{grid-template-columns:1fr}.event-actions{justify-content:center}}@media (max-width: 560px){.special-events-page{padding:18px 12px 32px}.special-events-header{justify-content:center;text-align:center}.events-back{order:1;align-self:center}.special-events-header h2{order:2;width:100%;text-align:center;font-size:1.65rem}.event-card{border-radius:24px}.event-preview{height:220px}.event-actions{padding:16px 24px 24px;justify-content:center}.event-open-button{width:100%}}@media (max-width: 680px){.special-events-header{justify-content:center}.events-back{order:1;align-self:center}.special-events-header h2{order:2;width:100%;text-align:center;font-size:1.85rem}.special-events-grid{grid-template-columns:1fr}.event-action{align-self:flex-start;width:fit-content}}@media (max-width: 480px){.special-events-page{padding:16px 12px 28px}.special-events-header{gap:12px}.events-back{padding:10px 16px;font-size:.95rem}.special-events-header h2{font-size:1.6rem}.event-card-body{padding:14px}.event-action{padding:10px 12px}}.music-player-page{width:100%;min-height:100vh;background:var(--color-brown-pale);display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .25s ease-out}.mp-modal{position:relative;background:var(--color-glass);border:1px solid var(--color-glass-border);border-radius:28px;box-shadow:var(--shadow-strong);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;overflow-x:hidden;padding:28px 24px 24px;scrollbar-width:thin;scrollbar-color:var(--color-brown-light) transparent;animation:fadeInScale .3s ease-out}.mp-modal::-webkit-scrollbar{width:4px}.mp-modal::-webkit-scrollbar-thumb{background:var(--color-brown-light);border-radius:4px}.mp-floats{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden;border-radius:28px}.mp-float{position:absolute}.mp-float-0{width:110px;top:-20px;right:-15px;opacity:.3;animation:mpf0 7s ease-in-out infinite}.mp-float-1{width:85px;bottom:30px;left:-10px;opacity:.25;animation:mpf1 9s ease-in-out infinite}.mp-float-img{width:100%;height:auto}@keyframes mpf0{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-12px) rotate(6deg)}}@keyframes mpf1{0%,to{transform:translateY(0) rotate(4deg)}50%{transform:translateY(-9px) rotate(-4deg)}}.mp-close-page{position:absolute;top:14px;right:16px;background:var(--color-brown-pale);border:1px solid var(--color-glass-border);color:var(--color-text);font-size:13px;font-weight:700;cursor:pointer;z-index:10;padding:6px 14px;border-radius:20px;transition:all var(--transition-fast)}.mp-close-page:hover{color:var(--color-rose);border-color:var(--color-rose)}.mp-now-playing{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin-bottom:20px}.mp-disc{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--color-rose),var(--color-brown-light));display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;flex-shrink:0;box-shadow:var(--shadow-glow);animation:disc-spin 8s linear infinite;animation-play-state:paused}.mp-song-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.mp-title{font-size:16px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-artist{font-size:12px;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-fav-btn{background:none;border:none;font-size:22px;color:var(--color-text-muted);cursor:pointer;transition:color .2s,transform .15s;flex-shrink:0}.mp-fav-btn.active{color:#f2c037}.mp-fav-btn:hover{transform:scale(1.2)}.mp-progress-wrap{position:relative;z-index:1;cursor:pointer;margin-bottom:16px}.mp-progress-bar{height:5px;border-radius:4px;background:#a67c5226;overflow:hidden}.mp-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-rose),var(--color-brown-light));border-radius:4px;transition:width .1s linear}.mp-times{display:flex;justify-content:space-between;font-size:10px;font-weight:600;color:var(--color-text-light);margin-top:6px}.mp-controls{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.mp-ctrl-btn{background:var(--color-brown-pale);border:1px solid var(--color-glass-border);border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--color-text);cursor:pointer;transition:all .2s}.mp-ctrl-btn:hover{background:var(--color-rose-pale);color:var(--color-rose);border-color:var(--color-rose)}.mp-ctrl-btn.mp-play{width:56px;height:56px;font-size:22px;background:linear-gradient(135deg,var(--color-rose),var(--color-brown-light));border:none;color:#fff;box-shadow:var(--shadow-medium)}.mp-ctrl-btn.mp-play:hover{transform:scale(1.05);box-shadow:var(--shadow-strong)}.mp-options{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:22px}.mp-option-pill{padding:7px 16px;border-radius:20px;background:var(--color-brown-pale);border:1px solid var(--color-glass-border);color:var(--color-text-light);font-size:12px;font-weight:600;cursor:pointer;transition:all .25s;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px}.mp-option-pill input{display:none}.mp-option-pill:hover{background:var(--color-rose-pale);color:var(--color-rose);border-color:var(--color-rose)}.mp-option-pill.active{background:var(--color-rose-pale);border-color:var(--color-rose);color:var(--color-rose);box-shadow:var(--shadow-soft)}.mp-playlist-cycle{cursor:pointer}.mp-queue-section{position:relative;z-index:1;border-top:1px solid var(--color-glass-border);padding-top:16px}.mp-queue-title{font-size:13px;font-weight:700;color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px}.mp-queue-empty{color:var(--color-text-muted);font-size:13px;font-weight:600;text-align:center;padding:10px 0}.mp-queue-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.mp-queue-item{display:flex;align-items:center;gap:8px;background:var(--color-brown-pale);border:1px solid var(--color-glass-border);border-radius:14px;padding:8px 10px;transition:all .2s;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.mp-queue-item:active{cursor:grabbing}.mp-queue-item:hover{background:var(--color-rose-pale);border-color:#e3a8a866}.mp-drag-handle{font-size:18px;color:var(--color-text-muted);flex-shrink:0;cursor:grab;line-height:1}.mp-queue-hint-inline{font-size:10px;font-weight:400;color:var(--color-text-muted);font-style:italic;letter-spacing:0;text-transform:none}.mp-queue-order{display:flex;flex-direction:column;gap:2px}.mp-queue-move{background:none;border:none;color:var(--color-text-muted);font-size:9px;cursor:pointer;padding:0 2px;transition:color .15s;line-height:1}.mp-queue-move:hover:not(:disabled){color:var(--color-rose)}.mp-queue-move:disabled{opacity:.3;cursor:default}.mp-queue-info{flex:1;min-width:0}.mp-queue-song-title{display:block;font-size:13px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-queue-song-artist{display:block;font-size:11px;font-weight:600;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-queue-fav{background:none;border:none;font-size:16px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:color .15s,transform .15s}.mp-queue-fav.active{color:#f2c037}.mp-queue-fav:hover{transform:scale(1.2)}.mp-queue-dislike{background:none;border:none;font-size:16px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:color .15s,transform .15s}.mp-queue-dislike.active{color:var(--color-rose)}.mp-queue-dislike:hover{transform:scale(1.2)}.mp-queue-remove{background:none;border:none;font-size:12px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;padding:4px;border-radius:50%;transition:color .15s,background .15s}.mp-queue-remove:hover{color:var(--color-rose);background:var(--color-rose-pale)}.mp-queue-hint{text-align:center;font-size:11px;font-weight:600;color:var(--color-text-muted);margin-top:14px;font-style:italic}.mp-options-row{display:flex;gap:10px;width:100%;justify-content:center}.mp-np-actions{display:flex;gap:6px}.mp-dislike-btn{background:none;border:none;font-size:16px;color:var(--color-text-muted);cursor:pointer;transition:transform .15s}.mp-dislike-btn.active{color:var(--color-rose)}.mp-dislike-btn:hover{transform:scale(1.1)}.mp-divider{border:none;border-top:1px dashed var(--color-glass-border);margin:20px 0}.mp-browser-section{display:flex;flex-direction:column;gap:10px}.mp-browser-tabs{display:flex;gap:8px;justify-content:center}.mp-btab{padding:6px 12px;background:var(--color-brown-pale);border:1px solid var(--color-glass-border);border-radius:12px;font-size:12px;font-weight:700;color:var(--color-text-light);cursor:pointer;transition:all .2s}.mp-btab.active{background:var(--color-rose-pale);border-color:var(--color-rose);color:var(--color-rose)}.mp-browser-list{display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto;padding-right:4px}.mp-browser-list::-webkit-scrollbar{width:4px}.mp-browser-list::-webkit-scrollbar-thumb{background:var(--color-brown-light);border-radius:4px}.mp-browser-item{display:flex;justify-content:space-between;align-items:center;background:#fff6;border:1px solid var(--color-glass-border);border-radius:10px;padding:8px 10px}.mp-binfo{flex:1;min-width:0}.mp-btitle{font-size:13px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-bartist{font-size:11px;font-weight:600;color:var(--color-text-light)}.mp-bactions{display:flex;gap:8px;align-items:center}.mp-bfav,.mp-bblock{background:none;border:none;font-size:14px;cursor:pointer;color:var(--color-text-muted)}.mp-bfav.active{color:#f2c037}.mp-bblock.active{color:var(--color-rose)}.mp-badd{background:var(--color-brown-pale);border:1px solid var(--color-brown-light);color:var(--color-text);font-size:11px;font-weight:700;border-radius:12px;padding:4px 10px;cursor:pointer}.mp-badd:hover{background:var(--color-rose-pale);border-color:var(--color-rose);color:var(--color-rose)}.mp-browser-empty{text-align:center;font-size:12px;color:var(--color-text-muted);padding:16px 0}.mp-slot-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px}.mp-slot-modal{background:var(--color-glass);border-radius:20px;padding:20px;width:100%;max-width:320px;box-shadow:var(--shadow-strong);display:flex;flex-direction:column;gap:12px}.mp-slot-modal h3{margin:0;font-size:15px;color:var(--color-text)}.mp-slot-modal p{margin:0;font-size:13px;color:var(--color-text-muted)}.mp-slot-buttons{display:flex;flex-direction:column;gap:6px}.mp-slot-btn{background:var(--color-brown-pale);border:1px solid var(--color-glass-border);border-radius:10px;padding:8px;font-size:13px;color:var(--color-text);text-align:left;cursor:pointer}.mp-slot-btn:hover{background:var(--color-rose-pale);border-color:var(--color-rose)}.mp-slot-cancel{margin-top:8px;background:transparent;border:1px solid var(--color-text-muted);border-radius:12px;padding:8px;font-size:13px;font-weight:700;color:var(--color-text-muted);cursor:pointer}@media (max-width: 480px){.mp-modal{padding:22px 14px 18px;border-radius:20px;max-height:95vh}.mp-title{font-size:14px}.mp-ctrl-btn{width:36px;height:36px;font-size:14px}.mp-ctrl-btn.mp-play{width:50px;height:50px;font-size:20px}.mp-float-0{width:80px}.mp-float-1{width:60px}}.app{min-height:100vh;position:relative;width:100%}@media (min-width: 768px){.app{max-width:100%}}@media (min-width: 1024px){.app{max-width:100%}}*{margin:0;padding:0;box-sizing:border-box}:root{--color-brown: #A67C52;--color-brown-light: #CBA077;--color-brown-pale: #F9F4F0;--color-cream: #FFFDF9;--color-warm-white: #FFFFFF;--color-charcoal: #3B3430;--color-rose: #E3A8A8;--color-rose-light: #F4D5D5;--color-rose-pale: #FDF6F6;--color-red-deep: #C98A8A;--color-glass: rgba(255, 253, 249, .85);--color-glass-border: rgba(166, 124, 82, .15);--color-text: #4A3B32;--color-text-light: #8C7361;--color-text-muted: #C0A999;--shadow-soft: 0 4px 20px rgba(166, 124, 82, .1);--shadow-medium: 0 8px 30px rgba(166, 124, 82, .15);--shadow-strong: 0 12px 40px rgba(227, 168, 168, .2);--shadow-glow: 0 0 30px rgba(227, 168, 168, .25);--color-pink: #F4D5D5;--color-pink-light: #FDF6F6;--color-pink-dark: #E3A8A8;--color-purple: #CBA077;--color-purple-light: #F9F4F0;--color-blue: #E3A8A8;--transition-fast: .2s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1)}html{scroll-behavior:smooth}body{font-family:Nunito,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:linear-gradient(145deg,#fdf8f5,#fffdf9 35%,#f9f4f0 65%,#fdf8f5);background-attachment:fixed;min-height:100vh;color:var(--color-text);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 15% 20%,rgba(227,168,168,.08) 0%,transparent 55%),radial-gradient(ellipse at 85% 75%,rgba(166,124,82,.06) 0%,transparent 55%),radial-gradient(ellipse at 50% 50%,rgba(249,244,240,.2) 0%,transparent 70%);pointer-events:none;z-index:-1}input,textarea,[contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}#root{min-height:100vh;position:relative}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-brown-pale)}::-webkit-scrollbar-thumb{background:var(--color-brown-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-brown)}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all var(--transition-normal);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes floatSlow{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.9}}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.25)}20%{transform:scale(1.15)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes emojiRain{0%{transform:translateY(-100px) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(100vh) rotate(360deg);opacity:0}}@keyframes heartRain{0%{transform:translateY(-60px) scale(.5) rotate(var(--r, 0deg));opacity:0}15%{opacity:1}to{transform:translateY(110vh) scale(1.2) rotate(calc(var(--r, 0deg) + 180deg));opacity:0}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes wobble{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.fade-in{animation:fadeIn .6s ease-out both}.fade-in-scale{animation:fadeInScale .5s ease-out both}.slide-in{animation:slideIn .6s ease-out both}.slide-up{animation:slideUp .5s ease-out both}.float{animation:float 3.5s ease-in-out infinite}.float-slow{animation:floatSlow 5s ease-in-out infinite}.bounce{animation:bounce 2s ease-in-out infinite}.pulse{animation:pulse 2.5s ease-in-out infinite}.heartbeat{animation:heartbeat 1.4s ease-in-out infinite}.wobble{animation:wobble 2s ease-in-out infinite}
