@import"https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,400&family=Quicksand:wght@300;400;500&display=swap";.points-page-wrapper{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e1b4b,#3b0764);position:relative;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-top:80px;isolation:isolate}.snowfall{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.snowflake{position:absolute;top:-20px;color:#fff;animation:fall linear infinite;text-shadow:0 0 5px rgba(255,255,255,.5)}@keyframes fall{0%{transform:translateY(-20px) rotate(0)}to{transform:translateY(100vh) rotate(360deg)}}.points-page{max-width:1100px;margin:0 auto;padding:1.5rem;position:relative;z-index:1;min-height:calc(100vh - 80px);letter-spacing:.02em}.top-section{display:grid;grid-template-columns:340px 1fr;gap:1.5rem;margin-bottom:1.5rem}.tree-card{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.75rem;text-align:center;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;height:100%;display:flex;flex-direction:column;transition:transform .3s ease,border-color .3s ease}.tree-card:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.tree-title{font-family:Dancing Script,cursive;font-size:1.8rem;color:gold;margin:0 0 1rem;text-shadow:0 2px 10px rgba(255,215,0,.3)}.christmas-tree-container{display:flex;flex-direction:column;align-items:center;flex:1;justify-content:center;transition:transform .6s cubic-bezier(.34,1.56,.64,1)}.christmas-tree-container.tree-pulse{animation:treePulse .6s ease-out}@keyframes treePulse{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.christmas-tree-svg{width:180px;height:250px;transition:transform .8s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 10px 30px rgba(0,100,0,.4))}.tree-star{animation:twinkle 2s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.ornament{animation:gentleSway 3s ease-in-out infinite}.ornament:nth-child(odd){animation-delay:-1.5s}@keyframes gentleSway{0%,to{transform:translate(0)}50%{transform:translate(2px)}}.tree-lights circle{animation:blink 1.5s ease-in-out infinite}.tree-lights .light-0{animation-delay:0s}.tree-lights .light-1{animation-delay:.5s}.tree-lights .light-2{animation-delay:1s}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.tree-info{display:flex;flex-direction:column;gap:.25rem;margin-top:.75rem}.tree-stage-name{font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:600;color:#90ee90}.tree-next-stage{font-size:.75rem;color:#fff9}.tree-max{font-size:.85rem;color:gold;font-weight:600}.points-display{margin-top:auto;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.points-number{font-family:Cormorant Garamond,serif;font-size:3rem;font-weight:700;line-height:1;background:linear-gradient(180deg,gold,#fa0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.points-label{font-size:.8rem;color:#ffffffb3;text-transform:uppercase;letter-spacing:2px;margin-top:.25rem}.progress-section{margin-top:.75rem}.progress-bar-container{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;box-shadow:inset 0 1px 3px #0003}.progress-bar{height:100%;background:repeating-linear-gradient(45deg,#c41e3a,#c41e3a 10px,#fdf6ed 10px 20px);background-size:28px 28px;border-radius:4px;transition:width .5s ease-out;box-shadow:0 0 10px #c41e3a66;animation:barberpole 1s linear infinite}@keyframes barberpole{0%{background-position:0 0}to{background-position:28px 0}}.add-points-card{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.75rem;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;display:flex;flex-direction:column;transition:transform .3s ease,border-color .3s ease}.add-points-card:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.card-header h2{font-family:Dancing Script,cursive;font-size:1.5rem;color:#fff;margin:0}.header-icon{font-size:1.25rem}.add-points-form{display:flex;flex-direction:column;gap:1rem;flex:1}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.8rem;font-weight:500;color:#fffc;font-family:Quicksand,sans-serif}.form-group input[type=text],.form-group input[type=number],.form-group select{padding:.75rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:.95rem;font-family:Quicksand,sans-serif;color:#fff;transition:all .3s ease}.form-group input::placeholder{color:#fff6}.form-group input:focus,.form-group select:focus{outline:none;border-color:#ffd70080;background:#ffffff1f;box-shadow:0 0 0 3px #ffd70026}.form-group select{cursor:pointer}.form-group select option{background:#1a1a2e;color:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.category-select-wrapper{position:relative;display:flex;align-items:center}.category-icon{position:absolute;left:1rem;font-size:1rem;z-index:1;pointer-events:none}.category-select-wrapper select{padding-left:2.5rem;width:100%}.points-input-wrapper{display:flex;flex-direction:column;gap:.4rem}.points-input-wrapper input{text-align:center;font-size:1.1rem;font-weight:600}.quick-points{display:flex;gap:.4rem}.quick-btn{flex:1;padding:.35rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#ffffffb3;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.quick-btn:hover{background:#ffd70026;border-color:#ffd7004d}.quick-btn.active{background:#ffd70033;border-color:gold;color:gold}.add-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;font-family:Quicksand,sans-serif;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #c41e3a66;margin-top:auto}.add-button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #c41e3a80;background:linear-gradient(135deg,#d62f4a,#b52340)}.add-button:active{transform:translateY(0)}.add-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-icon{font-size:1.1rem}.milestones-section{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:border-color .3s ease,transform .3s ease}.milestones-section:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.milestones-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.milestones-section .section-header h2{font-family:Cormorant Garamond,serif;font-size:1.35rem;color:#fff;margin:0}.milestones-track{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.milestone-marker{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;transition:all .3s ease}.milestone-marker.reached{background:linear-gradient(145deg,#ffd70026,#ffd7000d);border-color:#ffd7004d;box-shadow:0 0 20px #ffd70026}.milestone-points{font-family:Cormorant Garamond,serif;font-size:1.5rem;font-weight:700;background:linear-gradient(180deg,gold,#fa0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.milestone-marker:not(.reached) .milestone-points{background:linear-gradient(180deg,#fff9,#fff6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.milestone-progress-bar{width:100%;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.milestone-progress-fill{height:100%;background:linear-gradient(90deg,gold,#fa0);border-radius:2px;transition:width .5s ease-out;box-shadow:0 0 8px #ffd70080}.milestone-marker:not(.reached) .milestone-progress-fill{background:linear-gradient(90deg,#ffd70080,#ffaa0080)}.milestone-checkmark{font-size:.85rem;color:#32cd32;font-weight:700}.milestone-remaining{font-size:.75rem;color:#ffffff80;font-weight:500}@media(max-width:700px){.milestones-track{grid-template-columns:1fr;gap:.75rem}.milestone-marker{flex-direction:row;justify-content:space-between;padding:.875rem 1rem;gap:1rem}.milestone-points{font-size:1.25rem;min-width:70px}.milestone-progress-bar{flex:1}.milestone-remaining,.milestone-checkmark{min-width:60px;text-align:right}}.history-section{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.5rem;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:border-color .3s ease,transform .3s ease}.history-section:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{font-family:Cormorant Garamond,serif;font-size:1.35rem;color:#fff;margin:0}.entry-count{font-size:.75rem;color:#ffffff80;background:#ffffff1a;padding:.2rem .6rem;border-radius:12px}.no-entries{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;text-align:center}.empty-icon{font-size:2.5rem}.no-entries p{color:#ffffff80;margin:0;font-size:.9rem}.entries-timeline{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.date-group{display:flex;flex-direction:column;gap:.5rem}.date-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.1)}.date-label{font-size:.8rem;font-weight:600;color:#ffffffb3;text-transform:uppercase;letter-spacing:1px}.date-total{font-size:.75rem;color:#90ee90;font-weight:600}.entries-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.entry-card{display:flex;align-items:center;gap:.6rem;padding:.65rem .75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:all .2s ease}.entry-card:hover{background:#ffffff14;transform:translate(4px)}.entry-icon{font-size:1.1rem;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:8px;flex-shrink:0}.entry-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.entry-description{font-size:.875rem;font-weight:500;color:#fff;word-break:break-word}.entry-category{font-size:.7rem;color:#ffffff80}.entry-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.entry-points{font-size:.95rem;font-weight:700;color:#90ee90;font-family:Cormorant Garamond,serif}.remove-button{width:24px;height:24px;border:none;background:#ffffff0d;color:#fff6;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.remove-button:hover{background:#c41e3a4d;color:#ff6b6b}.celebration-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.celebration-content{background:linear-gradient(145deg,#ffffff26,#ffffff0d);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:2.5rem 3.5rem;text-align:center;animation:celebrationPop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes celebrationPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.celebration-emoji{font-size:3rem;display:block;margin-bottom:.75rem;animation:bounce .6s infinite alternate}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.celebration-content h2{font-family:Dancing Script,cursive;font-size:2rem;color:gold;margin:0 0 .5rem;text-shadow:0 2px 20px rgba(255,215,0,.5)}.celebration-content p{color:#fffc;margin:0;font-size:1rem}@media(max-width:800px){.points-page-wrapper{padding-top:70px}.top-section{grid-template-columns:1fr}.tree-card{padding:1.25rem}.christmas-tree-svg{width:140px;height:195px}.points-number{font-size:2.5rem}.entries-timeline{grid-template-columns:1fr}}@media(max-width:500px){.points-page{padding:1rem}.top-section{gap:1rem}.tree-card,.add-points-card,.history-section{padding:1rem;border-radius:16px}.form-row{grid-template-columns:1fr}.card-header h2,.tree-title{font-size:1.25rem}.christmas-tree-svg{width:120px;height:168px}.points-number{font-size:2rem}.add-button{padding:.75rem 1.25rem;font-size:.95rem}}.chat-card{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.5rem;margin-bottom:1.5rem;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:transform .3s ease,border-color .3s ease}.chat-card:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.chat-card .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chat-card .card-header h2{font-family:Dancing Script,cursive;font-size:1.5rem;color:#fff;margin:0}.chat-user-select{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem}.chat-user-select p{color:#ffffffb3;margin:0}.user-buttons{display:flex;gap:1rem}.user-btn{padding:.75rem 2rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.user-btn.bf-bunnie{background:linear-gradient(135deg,#6c5ce7,#5541d7);color:#fff}.user-btn.gf-bunnie{background:linear-gradient(135deg,#ff7675,#d63031);color:#fff}.user-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #0000004d}.chat-user-info{display:flex;align-items:center;gap:.75rem}.current-user{padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.current-user.bf-bunnie{background:#6c5ce74d;color:#a29bfe}.current-user.gf-bunnie{background:#ff76754d;color:#fab1a0}.switch-user-btn{background:none;border:none;color:#ffffff80;font-size:.75rem;cursor:pointer;text-decoration:underline}.switch-user-btn:hover{color:#fffc}.chat-messages{flex:1;min-height:200px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;margin-bottom:1rem;background:#0003;background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px);background-size:20px 20px;border-radius:12px}.chat-loading,.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#ffffff80;font-size:.9rem}.chat-message{display:flex;flex-direction:column;max-width:75%;padding:.8rem 1rem;border-radius:18px;animation:messageIn .3s cubic-bezier(.34,1.56,.64,1);position:relative;box-shadow:0 2px 5px #0000001a}@keyframes messageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-message.own{align-self:flex-end;background:linear-gradient(135deg,#c4707a,#e8b4bc);border-bottom-right-radius:4px}.chat-message.other{align-self:flex-start;background:#ffffff26;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-bottom-left-radius:4px;border:1px solid rgba(255,255,255,.1)}.chat-message.bf-bunnie .message-user,.chat-message.gf-bunnie .message-user{color:#fff;opacity:.9}.chat-message.own .message-text,.chat-message.own .message-user{color:#2a1215;text-shadow:none}.message-user{font-size:.7rem;font-weight:700;margin-bottom:.25rem}.message-text{color:#fff;font-size:.95rem;word-break:break-word;line-height:1.4}.chat-input-form{display:flex;gap:.5rem}.chat-input{flex:1;padding:.75rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:.95rem;font-family:Quicksand,sans-serif;color:#fff;transition:all .3s ease}.chat-input::placeholder{color:#fff6}.chat-input:focus{outline:none;border-color:#ffd70080;background:#ffffff1f}.chat-send-btn{padding:.75rem 1.25rem;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:12px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.chat-send-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #c41e3a66}.chat-send-btn:disabled{opacity:.5;cursor:not-allowed}.chat-card{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.chat-card:active{transform:scale(.98)}.chat-preview{display:flex;align-items:center;gap:.5rem;padding:.75rem 0;color:#ffffffb3;font-size:.95rem;overflow:hidden}.preview-sender{color:#ffffff80;flex-shrink:0}.preview-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-loading,.preview-empty{color:#fff6;font-style:italic}.chat-tap-hint{text-align:center;font-size:.75rem;color:#ffffff4d;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}.chat-native-fullscreen{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;background:#000;height:100vh;height:100dvh;overscroll-behavior:none;touch-action:pan-y;-webkit-overflow-scrolling:touch}.chat-native-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;padding-top:max(.75rem,env(safe-area-inset-top));background:#141419f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.chat-back-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;min-height:44px;background:none;border:none;color:#e8b4bc;cursor:pointer;border-radius:50%;transition:background .15s;margin-left:-.5rem;-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none}.chat-back-btn:active{background:#ffffff26}.chat-header-info{display:flex;align-items:center;gap:.75rem}.chat-header-avatar{font-size:2rem;line-height:1}.chat-header-text{display:flex;flex-direction:column;gap:.1rem}.chat-header-name{font-size:1.1rem;font-weight:600;color:#fff}.chat-header-status{font-size:.75rem;color:#ffffff80}.chat-header-status.online{color:#4ade80}.chat-native-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:.5rem .75rem;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,#0a0a12,#12121a);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-anchor:auto}.chat-native-messages .chat-loading,.chat-native-messages .chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.5rem;color:#fff6}.chat-empty-icon{font-size:3rem;opacity:.3}.chat-empty-hint{font-size:.85rem;opacity:.6}.message-group{display:flex;flex-direction:column;gap:2px}.date-header{display:flex;justify-content:center;padding:.75rem 0 .35rem}.date-header span{font-size:.7rem;color:#fff6;background:#ffffff0d;padding:.2rem .6rem;border-radius:8px}.chat-bubble{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;max-width:85%;padding:.45rem .7rem;border-radius:16px;animation:bubbleIn .15s ease-out}@keyframes bubbleIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chat-bubble.own{align-self:flex-end;background:#c4707a;border-bottom-right-radius:4px}.chat-bubble.other{align-self:flex-start;background:#ffffff1f;border-bottom-left-radius:4px}.bubble-text{font-size:.95rem;line-height:1.35;word-wrap:break-word;color:#fff}.chat-bubble.other .bubble-text{color:#fffffff2}.bubble-time{font-size:.6rem;opacity:.55;flex-shrink:0;margin-left:auto;color:#ffffffa6}.chat-native-input-area{flex-shrink:0;padding:.75rem 1rem;padding-bottom:max(.75rem,env(safe-area-inset-bottom));background:#141419fa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1);touch-action:none}.chat-native-input-wrapper{display:flex;align-items:center;gap:.5rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:24px;padding:.35rem .5rem .35rem 1rem}.chat-native-input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:16px;font-family:inherit;padding:.5rem 0;-webkit-user-select:text;user-select:text}.chat-native-input::placeholder{color:#fff6}.chat-native-send{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;background:linear-gradient(135deg,#c4707a,#d4868f);border:none;border-radius:50%;color:#fff;cursor:pointer;transition:transform .15s ease,opacity .15s ease;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.chat-native-send:disabled{opacity:.3;transform:scale(.9)}.chat-native-send:not(:disabled):active{transform:scale(.9)}.chat-native-fullscreen .chat-messages,.chat-native-fullscreen .chat-input-form,.chat-native-fullscreen .card-header{display:none}.image-gallery-section{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:transform .3s ease,border-color .3s ease}.image-gallery-section:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.image-gallery-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.image-gallery-section .section-header h2{font-family:Dancing Script,cursive;font-size:1.5rem;color:#fff;margin:0}.image-upload-form{margin-bottom:1.5rem}.upload-area{position:relative;margin-bottom:1rem}.file-input{display:none}.upload-label{display:block;cursor:pointer}.upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;background:#ffffff0d;border:2px dashed rgba(255,255,255,.2);border-radius:16px;transition:all .3s ease}.upload-placeholder:hover{background:#ffffff14;border-color:#ffd70066}.upload-icon{font-size:2.5rem}.upload-text{color:#fff9;font-size:.9rem}.preview-container{position:relative;display:inline-block;width:100%}.image-preview{width:100%;max-height:200px;object-fit:contain;border-radius:12px;background:#0000004d}.clear-preview-btn{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border:none;background:#0009;color:#fff;border-radius:50%;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.clear-preview-btn:hover{background:#c41e3acc}.upload-actions{display:flex;gap:.75rem}.caption-input{flex:1;padding:.75rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:.95rem;font-family:Quicksand,sans-serif;color:#fff;transition:all .3s ease}.caption-input::placeholder{color:#fff6}.caption-input:focus{outline:none;border-color:#ffd70080;background:#ffffff1f}.upload-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:12px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #c41e3a66}.upload-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #c41e3a80}.upload-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.5rem}.images-loading,.no-images{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;text-align:center;color:#ffffff80}.no-images .empty-icon{font-size:2.5rem}.image-card{position:relative;background:#fcfcfc;padding:12px 12px 50px;border-radius:4px;overflow:hidden;transition:all .4s cubic-bezier(.34,1.56,.64,1);transform:rotate(var(--rotation, 0deg));box-shadow:0 1px 2px #0000000d,0 8px 16px #0000001a;will-change:transform}.image-card:nth-child(odd){transform:rotate(1.5deg)}.image-card:nth-child(2n){transform:rotate(-1deg)}.image-card:nth-child(3n){transform:rotate(.5deg)}.image-card:hover{transform:scale(1.05) rotate(0) translateY(-5px);z-index:10;box-shadow:0 4px 8px #0000001a,0 20px 30px #0003}.image-wrapper{position:relative;aspect-ratio:1;overflow:hidden;cursor:pointer;background:#f0f0f0;box-shadow:inset 0 0 2px #0000001a}.image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.image-caption{position:absolute;bottom:5px;left:10px;right:10px;margin:0;font-size:.85rem;color:#2a1215;font-family:Handlee,cursive,sans-serif;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent}.remove-image-btn{position:absolute;top:5px;right:5px;width:24px;height:24px;border:none;background:#c41e3ae6;color:#fff;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;z-index:10}.image-card:hover .remove-image-btn{opacity:1}.remove-image-btn:hover{background:#d22846;transform:scale(1.1)}.lightbox{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem;animation:fadeIn .3s ease-out}.lightbox-content{position:relative;max-width:90vw;max-height:90vh}.lightbox-content img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080}.lightbox-close{position:absolute;top:-40px;right:0;width:36px;height:36px;border:none;background:#ffffff1a;color:#fff;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.lightbox-close:hover{background:#fff3}@media(max-width:600px){.image-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.upload-actions{flex-direction:column}.upload-btn{width:100%;justify-content:center}}.tab-navigation{display:flex;gap:.5rem;margin-bottom:1.5rem;background:linear-gradient(145deg,#ffffff14,#ffffff08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:.5rem}.tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1.5rem;background:transparent;border:none;border-radius:12px;color:#fff9;font-size:1rem;font-weight:600;font-family:Quicksand,sans-serif;cursor:pointer;transition:all .3s ease}.tab-btn:hover:not(.active){background:#ffffff0d;color:#fffc}.tab-btn.active{background:linear-gradient(135deg,#ffd70033,#ffaa0026);color:gold;box-shadow:0 4px 15px #ffd70026}.tab-icon{font-size:1.25rem}.tab-label{font-size:.95rem}.tab-content{animation:tabFadeIn .3s ease-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.memories-tab,.points-tab{display:flex;flex-direction:column;gap:1.5rem}.voice-recorder-section{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:1.5rem;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:transform .3s ease,border-color .3s ease}.voice-recorder-section:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.voice-recorder-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.voice-recorder-section .section-header h2{font-family:Dancing Script,cursive;font-size:1.5rem;color:#fff;margin:0}.recording-controls{margin-bottom:1.5rem}.record-area{display:flex;flex-direction:column;align-items:center;padding:1.5rem;background:#ffffff0d;border:2px dashed rgba(255,255,255,.2);border-radius:16px}.record-btn{display:flex;align-items:center;gap:.75rem;padding:1rem 2rem;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:50px;color:#fff;font-size:1rem;font-weight:600;font-family:Quicksand,sans-serif;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #c41e3a66}.record-btn:hover{transform:scale(1.05);box-shadow:0 8px 30px #c41e3a80}.record-btn .btn-icon{font-size:1.5rem}.recording-active{display:flex;flex-direction:column;align-items:center;gap:1rem}.recording-indicator{display:flex;align-items:center;gap:.75rem}.pulse-dot{width:16px;height:16px;background:#ff4757;border-radius:50%;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.recording-time{font-family:Cormorant Garamond,serif;font-size:2rem;font-weight:700;color:#ff4757}.stop-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#ff475733;border:2px solid #ff4757;border-radius:12px;color:#ff4757;font-size:.95rem;font-weight:600;font-family:Quicksand,sans-serif;cursor:pointer;transition:all .3s ease}.stop-btn:hover{background:#ff47574d}.recording-preview{display:flex;flex-direction:column;gap:1rem}.preview-player{display:flex;align-items:center;gap:1rem;padding:1rem;background:#ffffff0d;border-radius:12px}.audio-preview{flex:1;height:40px;border-radius:8px}.audio-preview::-webkit-media-controls-panel{background:#ffffff1a}.duration-badge{padding:.25rem .75rem;background:#ffd70033;border-radius:20px;color:gold;font-size:.85rem;font-weight:600}.clear-recording-btn{width:28px;height:28px;border:none;background:#ffffff1a;color:#ffffffb3;border-radius:50%;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.clear-recording-btn:hover{background:#c41e3a4d;color:#ff6b6b}.title-input{flex:1;padding:.75rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;font-size:.95rem;font-family:Quicksand,sans-serif;color:#fff;transition:all .3s ease}.title-input:focus{outline:none;border-color:#ffd70080;background:#ffffff1f}.recordings-list{display:flex;flex-direction:column;gap:.75rem}.recordings-loading,.no-recordings{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;text-align:center;color:#ffffff80}.no-recordings .empty-icon{font-size:2.5rem}.recording-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .2s ease}.recording-card:hover{background:#ffffff14;border-color:#ffffff26}.play-btn{width:44px;height:44px;border:none;background:linear-gradient(135deg,#ffd70033,#ffaa0026);border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;flex-shrink:0}.play-btn:hover{transform:scale(1.1);box-shadow:0 4px 15px #ffd7004d}.play-btn.playing{background:linear-gradient(135deg,#32cd324d,#32cd3233);animation:playPulse 1s ease-in-out infinite}@keyframes playPulse{0%,to{box-shadow:0 0 #32cd3266}50%{box-shadow:0 0 0 8px #32cd3200}}.recording-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.recording-title{font-size:.95rem;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recording-meta{font-size:.8rem;color:#ffffff80}.remove-recording-btn{width:28px;height:28px;border:none;background:#ffffff0d;color:#fff6;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .2s ease;flex-shrink:0}.recording-card:hover .remove-recording-btn{opacity:1}.remove-recording-btn:hover{background:#c41e3a4d;color:#ff6b6b}.recording-card.enhanced{flex-direction:column;align-items:stretch;padding:1rem}.recording-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.recording-card-header .recording-info{flex:1}.recording-card.enhanced .remove-recording-btn{opacity:.5}.recording-card.enhanced:hover .remove-recording-btn{opacity:1}.audio-playback{width:100%}.audio-playback.compact{display:flex;align-items:center;gap:.75rem;flex:1}.playback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.playback-title{font-size:.85rem;color:#ffffffb3}.time-display{font-family:SF Mono,Fira Code,monospace;font-size:.8rem;color:#fff9;font-variant-numeric:tabular-nums}.audio-playback.compact .time-display{min-width:40px;text-align:right}.progress-container{padding:6px 0;cursor:pointer;touch-action:none;flex:1}.progress-bar{position:relative;height:6px;background:#ffffff1a;border-radius:3px;overflow:visible}.progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,gold,#fa0);border-radius:3px;transition:width .1s linear}.progress-thumb{position:absolute;top:50%;width:14px;height:14px;background:gold;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #ffd70066;transition:transform .15s ease,opacity .15s ease;opacity:0}.progress-container:hover .progress-thumb{opacity:1;transform:translate(-50%,-50%) scale(1.1)}.playback-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.75rem}.control-btn{background:#ffffff14;border:none;color:#ffffffb3;padding:.4rem .6rem;border-radius:6px;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease}.control-btn:hover{background:#ffffff26;color:#fff}.control-btn.speed-btn{min-width:40px;font-family:SF Mono,Fira Code,monospace}.audio-playback .play-btn{width:40px;height:40px;font-size:1.1rem}.audio-playback .play-btn.main{width:48px;height:48px;font-size:1.25rem;background:linear-gradient(135deg,#ffd70040,#fa03);border:1px solid rgba(255,215,0,.3)}.audio-playback .play-btn.main:hover{background:linear-gradient(135deg,#ffd70059,#ffaa004d);border-color:#ffd70080}.audio-playback.compact .play-btn{width:36px;height:36px;font-size:1rem}.volume-control{display:flex;align-items:center;gap:.5rem;position:relative}.volume-btn{padding:.4rem .5rem}.volume-slider{width:70px;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff26;border-radius:2px;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;background:gold;border-radius:50%;cursor:pointer;box-shadow:0 2px 4px #0000004d}.volume-slider::-moz-range-thumb{width:12px;height:12px;background:gold;border-radius:50%;cursor:pointer;border:none}@media(max-width:500px){.tab-navigation{padding:.375rem}.tab-btn{padding:.75rem 1rem;flex-direction:column;gap:.25rem}.tab-icon{font-size:1.5rem}.tab-label{font-size:.8rem}.record-btn{padding:.875rem 1.5rem}.preview-player{flex-wrap:wrap}.audio-preview{width:100%;order:3}}.identity-selector-card{background:#ffffff08;backdrop-filter:blur(30px) saturate(150%);-webkit-backdrop-filter:blur(30px) saturate(150%);border:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.25);border-radius:24px;padding:3rem 2rem;max-width:400px;margin:2rem auto;text-align:center;box-shadow:0 25px 50px #00000040,inset 0 1px #ffffff1a;transition:transform .3s ease,border-color .3s ease}.identity-selector-card:hover{transform:translateY(-2px);border-color:#ffffff4d;box-shadow:0 30px 60px #00000059,inset 0 1px #fff3}.identity-header{margin-bottom:2rem}.identity-icon{font-size:3rem;display:block;margin-bottom:1rem}.identity-header h2{font-family:Dancing Script,cursive;font-size:2rem;color:gold;margin:0 0 .5rem;text-shadow:0 2px 10px rgba(255,215,0,.3)}.identity-header p{color:#fff9;margin:0;font-size:.95rem}.identity-buttons{display:flex;flex-direction:column;gap:1rem}.identity-btn{padding:1rem 2rem;border:none;border-radius:16px;font-size:1.1rem;font-weight:600;font-family:Quicksand,sans-serif;cursor:pointer;transition:all .3s ease}.identity-btn.bf-bunnie{background:linear-gradient(135deg,#6c5ce7,#5541d7);color:#fff;box-shadow:0 4px 20px #6c5ce766}.identity-btn.bf-bunnie:hover{transform:translateY(-3px);box-shadow:0 8px 30px #6c5ce780}.identity-btn.gf-bunnie{background:linear-gradient(135deg,#ff7675,#d63031);color:#fff;box-shadow:0 4px 20px #ff767566}.identity-btn.gf-bunnie:hover{transform:translateY(-3px);box-shadow:0 8px 30px #ff767580}.identity-bar{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1.25rem;background:linear-gradient(145deg,#ffffff14,#ffffff08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:16px;margin-bottom:1.5rem}.identity-label{color:#fff9;font-size:.9rem}.identity-name{padding:.35rem 1rem;border-radius:20px;font-size:.95rem;font-weight:600}.identity-name.bf-bunnie{background:#6c5ce74d;color:#a29bfe}.identity-name.gf-bunnie{background:#ff76754d;color:#fab1a0}.switch-identity-btn{background:none;border:none;color:#ffffff80;font-size:.8rem;cursor:pointer;text-decoration:underline;font-family:Quicksand,sans-serif}.switch-identity-btn:hover{color:#fffc}.image-uploader-badge{position:absolute;bottom:.5rem;left:.5rem;padding:.2rem .6rem;border-radius:12px;font-size:.7rem;font-weight:600;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.image-uploader-badge.bf-bunnie{background:#6c5ce7cc;color:#fff}.image-uploader-badge.gf-bunnie{background:#ff7675cc;color:#fff}.recording-uploader{font-weight:600}.recording-uploader.bf-bunnie{color:#a29bfe}.recording-uploader.gf-bunnie{color:#fab1a0}@media(max-width:500px){.identity-selector-card{padding:2rem 1.5rem;margin:1rem}.identity-icon{font-size:2.5rem}.identity-header h2{font-size:1.75rem}.identity-bar{flex-wrap:wrap;gap:.5rem}}@media(prefers-reduced-motion:reduce){.snowflake,.tree-star,.ornament,.tree-lights circle{animation:none}.christmas-tree-container.tree-pulse,.celebration-emoji,.chat-message{animation:none}.image-card:hover,.image-card:hover .image-wrapper img{transform:none}.tab-content,.pulse-dot,.play-btn.playing{animation:none}}.recording-replies{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.replies-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:200px;overflow-y:auto;padding-right:.5rem}.replies-list::-webkit-scrollbar{width:4px}.replies-list::-webkit-scrollbar-track{background:#ffffff0d;border-radius:2px}.replies-list::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.reply-item{background:#ffffff14;padding:.5rem .75rem;border-radius:12px 12px 12px 2px;align-self:flex-start;max-width:85%;font-size:.9rem}.reply-item.own-reply{background:#6c5ce733;border-radius:12px 12px 2px;align-self:flex-end;text-align:right}.recording-uploader.bf-bunnie~.recording-replies .reply-item.own-reply,.reply-item.own-reply{background:linear-gradient(135deg,#ffd70026,#ffaa001a);border:1px solid rgba(255,215,0,.2)}.reply-user{display:block;font-size:.7rem;color:#ffffff80;margin-bottom:.2rem;font-weight:600}.reply-message{color:#ffffffe6;word-break:break-word;line-height:1.4}.reply-form{display:flex;gap:.5rem}.reply-input{flex:1;padding:.6rem .8rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;font-size:.9rem;color:#fff;font-family:Quicksand,sans-serif;transition:all .3s ease}.reply-input:focus{outline:none;background:#ffffff1a;border-color:#ffd70066}.reply-input::placeholder{color:#ffffff4d}.reply-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:50%;color:#fff;font-size:1.1rem;cursor:pointer;transition:all .2s ease;flex-shrink:0}.reply-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 2px 8px #c41e3a66}.reply-btn:disabled{background:#ffffff1a;color:#ffffff4d;cursor:default}.reply-item{animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.games-page-wrapper{min-height:100vh;background:linear-gradient(135deg,#0f172a,#1e1b4b,#3b0764);padding-top:80px;padding-bottom:2rem}.games-page{max-width:900px;margin:0 auto;padding:1.5rem}.games-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.games-title{font-family:Dancing Script,cursive;font-size:2.5rem;color:gold;margin:0}.current-player{font-family:Quicksand,sans-serif;font-size:.9rem;color:#ffffffb3;display:flex;align-items:center;gap:.5rem}.current-player .bf{color:#4d96ff;font-weight:600}.current-player .gf{color:#ff6b9d;font-weight:600}.switch-player-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:.3rem .6rem;border-radius:6px;font-size:.75rem;cursor:pointer;transition:all .2s ease}.switch-player-btn:hover{background:#fff3}.games-identity-selector{max-width:400px;margin:2rem auto;text-align:center;background:#ffffff08;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:3rem 2rem}.games-subtitle{color:#ffffffb3;margin-bottom:2rem}.identity-buttons{display:flex;gap:1rem;justify-content:center}.identity-btn{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 2rem;border-radius:16px;border:2px solid transparent;cursor:pointer;transition:all .3s ease}.identity-btn.bf{background:linear-gradient(135deg,#4d96ff33,#4d96ff1a);border-color:#4d96ff4d}.identity-btn.gf{background:linear-gradient(135deg,#ff6b9d33,#ff6b9d1a);border-color:#ff6b9d4d}.identity-btn:hover{transform:translateY(-2px)}.identity-btn.bf:hover{border-color:#4d96ff;box-shadow:0 8px 25px #4d96ff4d}.identity-btn.gf:hover{border-color:#ff6b9d;box-shadow:0 8px 25px #ff6b9d4d}.identity-icon{font-size:2.5rem}.identity-name{color:#fff;font-weight:500}.games-tabs{display:flex;gap:.5rem;background:#ffffff08;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:.5rem;border-radius:16px;border:1px solid rgba(255,255,255,.1);margin-bottom:1.5rem}.game-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 1rem;background:transparent;border:none;border-radius:12px;color:#fff9;font-family:Quicksand,sans-serif;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.game-tab:hover{background:#ffffff0d;color:#ffffffe6}.game-tab.active{background:linear-gradient(135deg,#ffd70033,#ffaa0026);color:gold}.tab-icon{font-size:1.2rem}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.5rem;padding:1rem 0}.game-card{background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.game-card:hover{transform:translateY(-5px);background:#ffffff0f;border-color:#ffd7004d;box-shadow:0 10px 30px -10px #00000080}.game-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,gold,#fa0);opacity:0;transition:opacity .3s ease}.game-card:hover:before{opacity:1}.game-card-icon{font-size:3.5rem;margin-bottom:.5rem;transition:transform .3s ease}.game-card:hover .game-card-icon{transform:scale(1.1) rotate(5deg)}.game-card-title{font-family:Dancing Script,cursive;font-size:1.8rem;color:#fff;margin:0}.game-card-desc{font-size:.9rem;color:#fff9;text-align:center;line-height:1.4}.active-game-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;background:#ffffff08;padding:1rem;border-radius:16px;border:1px solid rgba(255,255,255,.1)}.back-to-games-btn{display:flex;align-items:center;gap:.5rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem 1rem;border-radius:10px;font-size:.9rem;cursor:pointer;transition:all .2s ease}.back-to-games-btn:hover{background:#ffffff26;transform:translate(-2px)}.active-game-title{font-family:Dancing Script,cursive;font-size:1.8rem;color:gold;margin:0}.game-content{background:#ffffff08;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:1.5rem}.drawing-canvas-container{display:flex;flex-direction:column;gap:1.5rem}.canvas-section{display:flex;flex-direction:column;gap:1rem}.canvas-wrapper{background:#1a1a2e;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.drawing-canvas{width:100%;height:300px;display:block;touch-action:none;cursor:crosshair}.canvas-tools{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.tool-group{display:flex;align-items:center;gap:.5rem}.tool-label{font-size:.8rem;color:#fff9;min-width:40px}.color-picker{display:flex;flex-wrap:wrap;gap:.25rem;max-width:180px}.color-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s ease}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#fff;box-shadow:0 0 10px #ffffff80}.brush-sizes{display:flex;gap:.5rem}.size-btn{width:36px;height:36px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.size-btn:hover{background:#ffffff26}.size-btn.active{background:#ffd70033;border-color:gold}.size-preview{background:#fff;border-radius:50%}.tool-group.actions{margin-left:auto}.clear-btn{background:#ff6b6b33;border:1px solid rgba(255,107,107,.4);color:#ff6b6b;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.85rem;transition:all .2s ease}.clear-btn:hover{background:#ff6b6b4d}.save-section{display:flex;gap:.75rem}.title-input{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:.75rem 1rem;color:#fff;font-family:Quicksand,sans-serif}.title-input::placeholder{color:#fff6}.save-btn{background:linear-gradient(135deg,gold,#fa0);border:none;color:#1a1a2e;padding:.75rem 1.5rem;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s ease}.save-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #ffd70066}.save-btn:disabled{opacity:.6;cursor:not-allowed}.gallery-section{border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem}.gallery-title{font-family:Dancing Script,cursive;font-size:1.5rem;color:gold;margin:0 0 1rem}.drawings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.drawing-card{position:relative;background:#ffffff0d;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1);transition:all .2s ease}.drawing-card:hover{transform:translateY(-2px);border-color:#fff3}.drawing-image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.drawing-info{padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.drawing-title{font-size:.85rem;color:#fff;font-weight:500}.drawing-author{font-size:.75rem}.drawing-author.bf{color:#4d96ff}.drawing-author.gf{color:#ff6b9d}.remove-drawing-btn{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;background:#000000b3;border:none;border-radius:50%;color:#fff;font-size:1rem;cursor:pointer;opacity:0;transition:opacity .2s ease}.drawing-card:hover .remove-drawing-btn{opacity:1}.remove-drawing-btn:hover{background:#ff6b6bcc}.no-drawings,.loading-drawings{grid-column:1 / -1;text-align:center;padding:2rem;color:#ffffff80}.empty-icon{font-size:2.5rem;display:block;margin-bottom:.5rem}.quiz-game-container{display:flex;flex-direction:column;gap:1.5rem}.quiz-score-card{background:linear-gradient(135deg,#ffd70026,#ffaa001a);border:1px solid rgba(255,215,0,.3);border-radius:12px;padding:1rem 1.5rem;display:flex;justify-content:center}.score-display{display:flex;flex-direction:column;align-items:center;gap:.25rem}.score-label{font-size:.85rem;color:#ffffffb3}.score-value{font-size:2rem;font-weight:700;color:gold}.quiz-section{background:#ffffff05;border-radius:16px;padding:1.25rem;border:1px solid rgba(255,255,255,.08)}.section-title{font-family:Dancing Script,cursive;font-size:1.3rem;color:gold;margin:0 0 .25rem}.section-subtitle{font-size:.85rem;color:#ffffff80;margin:0 0 1rem}.add-question-form{display:flex;gap:.75rem}.question-input{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:.75rem 1rem;color:#fff;font-family:Quicksand,sans-serif}.question-input::placeholder{color:#fff6}.add-question-btn{background:linear-gradient(135deg,gold,#fa0);border:none;color:#1a1a2e;padding:.75rem 1.25rem;border-radius:10px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease}.add-question-btn:hover{transform:translateY(-2px)}.add-question-btn:disabled{opacity:.6}.questions-list{margin-top:1rem}.questions-list h4{font-size:.9rem;color:#ffffffb3;margin:0 0 .75rem;font-weight:500}.question-card{position:relative;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1rem;margin-bottom:.75rem}.question-card.my-question{border-left:3px solid #4d96ff}.question-card.partner-question{border-left:3px solid #ff6b9d}.question-text{font-size:1rem;color:#fff;margin-bottom:.75rem}.answer-section{background:#ffffff08;border-radius:8px;padding:.75rem}.answer-text{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.answer-label{font-size:.8rem;color:#ffffff80}.answer-value{color:#fff;font-weight:500}.validation-buttons{display:flex;align-items:center;gap:.75rem}.validation-prompt{font-size:.85rem;color:#fff9}.validate-btn{padding:.4rem 1rem;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.validate-btn.correct{background:#6bcb7733;color:#6bcb77}.validate-btn.correct:hover{background:#6bcb774d}.validate-btn.wrong{background:#ff6b6b33;color:#ff6b6b}.validate-btn.wrong:hover{background:#ff6b6b4d}.validation-result{font-size:.85rem;font-weight:500}.validation-result.correct{color:#6bcb77}.validation-result.wrong{color:#ff6b6b}.waiting-answer,.waiting-validation{font-size:.85rem;color:#ffffff80;font-style:italic}.answer-input-section{display:flex;flex-direction:column;gap:.5rem}.answer-input{background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.65rem .85rem;color:#fff;font-family:Quicksand,sans-serif}.answer-actions{display:flex;gap:.5rem}.submit-answer-btn{background:linear-gradient(135deg,#6bcb77,#4caf50);border:none;color:#fff;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-weight:500}.cancel-answer-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.answer-btn{background:#ffd70033;border:1px solid rgba(255,215,0,.4);color:gold;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.answer-btn:hover{background:#ffd7004d}.remove-question-btn{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;background:#ffffff1a;border:none;border-radius:50%;color:#ffffff80;cursor:pointer;opacity:0;transition:all .2s ease}.question-card:hover .remove-question-btn{opacity:1}.remove-question-btn:hover{background:#ff6b6b4d;color:#ff6b6b}.no-questions{text-align:center;padding:2rem;color:#ffffff80}.pending-alert{background:#ffd70026;border:1px solid rgba(255,215,0,.3);border-radius:10px;padding:.75rem 1rem;color:gold;text-align:center;font-size:.9rem}.tictactoe-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.ttt-stats{display:flex;gap:2rem;justify-content:center}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.stat-label{font-size:.8rem;color:#fff9}.stat-value{font-size:1.5rem;font-weight:700}.stat-value.bf{color:#4d96ff}.stat-value.gf{color:#ff6b9d}.player-symbols{display:flex;gap:2rem}.player-symbol{font-size:.9rem;color:#ffffffb3}.player-symbol.bf .symbol{color:#4d96ff;font-weight:700;font-size:1.1rem}.player-symbol.gf .symbol{color:#ff6b9d;font-weight:700;font-size:1.1rem}.ttt-status{font-size:1.1rem;color:#ffffffb3;padding:.5rem 1rem;border-radius:8px;background:#ffffff0d}.ttt-status.my-turn{color:gold;background:#ffd70026}.ttt-status.game-over{color:#6bcb77;background:#6bcb7726}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;background:#ffffff1a;padding:8px;border-radius:16px}.ttt-cell{width:80px;height:80px;background:#ffffff0d;border:2px solid rgba(255,255,255,.1);border-radius:12px;cursor:default;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.ttt-cell.clickable{cursor:pointer}.ttt-cell.clickable:hover{background:#ffd7001a;border-color:#ffd7004d}.ttt-cell.winning{background:#6bcb7733;border-color:#6bcb77}.cell-symbol{font-size:2.5rem;font-weight:700}.cell-symbol.x{color:#4d96ff}.cell-symbol.o{color:#ff6b9d}.reset-btn{background:linear-gradient(135deg,gold,#fa0);border:none;color:#1a1a2e;padding:.75rem 2rem;border-radius:10px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.reset-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #ffd70066}.ttt-instructions{text-align:center;color:#fff6;font-size:.8rem}.ttt-instructions p{margin:.25rem 0}@media(max-width:600px){.games-header{flex-direction:column;gap:.75rem;text-align:center}.games-tabs,.save-section,.add-question-form{flex-direction:column}.ttt-cell{width:70px;height:70px}.cell-symbol{font-size:2rem}.canvas-tools{flex-direction:column;align-items:flex-start}.tool-group.actions{margin-left:0;width:100%}.clear-btn{width:100%}.memory-board{grid-template-columns:repeat(4,1fr);gap:.5rem}.memory-card{height:70px}}.memory-game-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.memory-stats{display:flex;gap:2rem;justify-content:center;background:#ffffff08;padding:1rem 2rem;border-radius:16px;border:1px solid rgba(255,255,255,.1)}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;perspective:1000px;margin:0 auto}.memory-card{width:100%;aspect-ratio:3/4;height:100px;position:relative;cursor:pointer;border-radius:10px}.card-inner{position:relative;width:100%;height:100%;text-align:center;transition:transform .6s;transform-style:preserve-3d;border-radius:10px}.memory-card.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:10px;display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.1)}.card-front{background:linear-gradient(135deg,#1e1b4b,#0f172a);font-size:2rem;color:gold;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0px,rgba(255,255,255,.05) 10px,transparent 10px,transparent 20px)}.ghost-symbol{opacity:.4;filter:grayscale(30%);font-size:2rem;animation:ghostFadeIn .5s ease}@keyframes ghostFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:.4;transform:scale(1)}}.memory-card.seen .card-front{border-color:#ffd7004d;background:linear-gradient(135deg,#2a265e,#162038)}.card-back{background:#fff;color:#333;transform:rotateY(180deg);font-size:2.5rem;box-shadow:0 0 15px #ffd7004d}.memory-card.matched .card-back{background:#e6ffea;border-color:#6bcb77;box-shadow:0 0 15px #6bcb7766}.memory-status{font-size:1.1rem;color:#ffffffb3;padding:.5rem 1.5rem;border-radius:20px;background:#ffffff0d;margin-top:1rem}.memory-status.my-turn{color:gold;background:#ffd70026;border:1px solid rgba(255,215,0,.3);animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #ffd70066}70%{box-shadow:0 0 0 10px #ffd70000}to{box-shadow:0 0 #ffd70000}}.c4-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.c4-board-wrapper{display:flex;flex-direction:column;gap:5px;padding:10px;background:#ffffff0d;border-radius:20px}.c4-indicators{display:flex;padding:0 10px;height:20px}.c4-indicator{flex:1;height:10px;border-radius:50%;margin:0 5px;transition:all .2s;opacity:0}.c4-indicator.bf{background-color:#4d96ff;opacity:.6;box-shadow:0 0 10px #4d96ff}.c4-indicator.gf{background-color:#ff6b9d;opacity:.6;box-shadow:0 0 10px #ff6b9d}.c4-board{background-color:#1e3a8a;padding:10px;border-radius:15px;display:flex;flex-direction:column;gap:8px;box-shadow:inset 0 0 20px #00000080;border:2px solid rgba(255,255,255,.1)}.c4-row{display:flex;gap:8px}.c4-cell{width:50px;height:50px;background-color:#0f172acc;border-radius:50%;cursor:pointer;position:relative;overflow:hidden;transition:transform .1s}.c4-cell:hover{transform:scale(1.05)}.c4-cell:after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 2px 2px 4px #00000080}.c4-cell.bf{background-color:#4d96ff;box-shadow:inset -2px -2px 4px #0000004d;animation:dropIn .4s cubic-bezier(.5,0,.75,0)}.c4-cell.gf{background-color:#ff6b9d;box-shadow:inset -2px -2px 4px #0000004d;animation:dropIn .4s cubic-bezier(.5,0,.75,0)}.c4-cell.winning:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;background-color:#fff;border-radius:50%;animation:pulse 1.5s infinite}@keyframes dropIn{0%{transform:translateY(-300px);opacity:0}to{transform:translateY(0);opacity:1}}.c4-history{width:100%;max-width:400px;background:#ffffff08;border-radius:12px;padding:1rem;margin-top:1rem}.c4-history h3{font-size:1rem;color:#ffffffb3;margin-bottom:1rem;text-align:center;font-family:Dancing Script,cursive;font-size:1.5rem;color:gold}.history-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.history-item{display:flex;justify-content:space-between;padding:.5rem 1rem;background:#ffffff0d;border-radius:8px;font-size:.9rem}.history-winner{font-weight:700;color:#fff}.history-date{color:#ffffff80;font-size:.8rem}@media(max-width:600px){.c4-cell{width:40px;height:40px}}.coming-soon-wrapper{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;position:relative;overflow-x:hidden;overflow-y:auto;padding-top:80px;box-sizing:border-box;isolation:isolate}.coming-soon-snowfall{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.coming-soon-snowflake{position:absolute;top:-20px;color:#fff;animation:comingSoonFall linear infinite;text-shadow:0 0 5px rgba(255,255,255,.5)}@keyframes comingSoonFall{0%{transform:translateY(-20px) rotate(0)}to{transform:translateY(100vh) rotate(360deg)}}.coming-soon-content{position:relative;z-index:1;text-align:center;padding:3rem;background:linear-gradient(145deg,#ffffff1a,#ffffff0d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:32px;box-shadow:0 8px 32px #0000004d;max-width:450px;margin:1rem}.coming-soon-icon{font-size:5rem;margin-bottom:1rem;animation:gentleFloat 3s ease-in-out infinite}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.coming-soon-title{font-family:Dancing Script,cursive;font-size:3.5rem;color:gold;margin:0 0 .5rem;text-shadow:0 2px 20px rgba(255,215,0,.4)}.coming-soon-subtitle{font-family:Cormorant Garamond,serif;font-size:1.35rem;color:#ffffffd9;margin:0 0 1.5rem;font-style:italic}.coming-soon-ornaments{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem}.coming-soon-ornaments span{font-size:2rem;animation:ornamentSwing 2s ease-in-out infinite}.coming-soon-ornaments span:nth-child(1){animation-delay:0s}.coming-soon-ornaments span:nth-child(2){animation-delay:.3s}.coming-soon-ornaments span:nth-child(3){animation-delay:.6s}@keyframes ornamentSwing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.coming-soon-hint{font-size:.95rem;color:#fff9;margin:0}.coming-soon-back-btn{margin-top:1.5rem;padding:.75rem 1.5rem;font-family:Quicksand,sans-serif;font-size:1rem;font-weight:500;color:#fff;background:linear-gradient(135deg,#c41e3a,#a01830);border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #c41e3a4d}.coming-soon-back-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c41e3a66}.coming-soon-back-btn:active{transform:translateY(0)}.scene-coming-soon{padding-top:0}@media(max-width:500px){.coming-soon-content{padding:2rem;border-radius:24px}.coming-soon-icon{font-size:4rem}.coming-soon-title{font-size:2.5rem}.coming-soon-subtitle{font-size:1.1rem}.coming-soon-ornaments span{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.coming-soon-snowflake,.coming-soon-icon,.coming-soon-ornaments span{animation:none}}:root{--gold: #ffd700;--red: #c41e3a;--cream: #fdf6e3;--brown: #3d2314}*{margin:0;padding:0;box-sizing:border-box}.app-3d{width:100%;height:100vh;position:relative;background:#0a0a15;overflow:hidden}.loader{position:fixed;inset:0;background:linear-gradient(135deg,#0a0a15,#1a1a2e);display:flex;align-items:center;justify-content:center;z-index:1000}.loader-content{text-align:center;color:#fff}.loader-spinner{width:50px;height:50px;border:3px solid rgba(255,215,0,.2);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.loader-content p{font-family:Dancing Script,cursive;font-size:1.5rem;color:var(--gold);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.envelope-3d-hint{font-family:Quicksand,sans-serif;font-size:14px;color:var(--gold);background:#0009;padding:8px 16px;border-radius:20px;border:1px solid rgba(255,215,0,.3);white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:hintGlow 2s ease-in-out infinite}@keyframes hintGlow{0%,to{box-shadow:0 0 10px #ffd70033}50%{box-shadow:0 0 20px #ffd70066}}.letter-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .5s ease-out;padding:1rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.letter-3d{background:linear-gradient(135deg,var(--cream) 0%,#f5edd6 100%);padding:2.5rem;border-radius:8px;max-width:500px;width:100%;position:relative;box-shadow:0 25px 80px #00000080,0 0 0 1px #ffd70033,inset 0 0 100px #fff8dc4d;animation:letterSlideIn .6s cubic-bezier(.34,1.56,.64,1);transform-origin:center bottom}@keyframes letterSlideIn{0%{opacity:0;transform:translateY(50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.letter-3d:before{content:"";position:absolute;inset:12px;border:2px solid var(--gold);border-radius:4px;opacity:.4;pointer-events:none}.letter-3d:after{content:"";position:absolute;inset:8px;border:1px solid rgba(196,30,58,.2);border-radius:6px;pointer-events:none}.letter-3d-header{text-align:right;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(61,35,20,.1)}.letter-3d-header span{font-family:Cormorant Garamond,serif;font-size:.9rem;font-style:italic;color:var(--brown);opacity:.7}.letter-3d-content{font-family:Cormorant Garamond,serif;font-size:1.1rem;line-height:1.8;color:var(--brown)}.letter-3d-content p{margin-bottom:1rem;text-indent:2rem}.letter-3d-content .greeting{font-family:Dancing Script,cursive;font-size:1.8rem;font-weight:600;color:var(--red);text-indent:0;margin-bottom:1.5rem}.letter-3d-content .closing{text-indent:0;margin-top:1.5rem;font-style:italic}.letter-3d-content .signature{font-family:Dancing Script,cursive;font-size:1.5rem;font-weight:600;color:var(--red);text-indent:0;text-align:right;margin-top:.5rem}.close-letter{position:absolute;bottom:-50px;left:50%;transform:translate(-50%);background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:10px 30px;border-radius:25px;font-family:Quicksand,sans-serif;font-size:.9rem;cursor:pointer;transition:all .3s ease}.close-letter:hover{background:#ffffff1a;border-color:var(--gold);color:var(--gold)}.audio-player-3d{position:fixed;bottom:2rem;right:2rem;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.audio-panel{background:#0a0a15f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,215,0,.3);border-radius:16px;padding:1rem;width:280px;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffd7001a inset;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.audio-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.audio-title{font-family:Dancing Script,cursive;font-size:1.1rem;color:var(--gold)}.audio-time{font-family:Quicksand,sans-serif;font-size:.8rem;color:#ffffffb3;font-variant-numeric:tabular-nums}.audio-progress-container{padding:8px 0;cursor:pointer;touch-action:none}.audio-progress-bar{position:relative;height:6px;background:#ffffff26;border-radius:3px;overflow:visible}.audio-progress-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,var(--gold),#ffec8b);border-radius:3px;transition:width .1s linear}.audio-progress-thumb{position:absolute;top:50%;width:14px;height:14px;background:var(--gold);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #ffd70066;transition:transform .15s ease}.audio-progress-container:hover .audio-progress-thumb{transform:translate(-50%,-50%) scale(1.2)}.audio-controls{display:flex;justify-content:center;align-items:center;gap:1rem;margin:.75rem 0}.audio-control-btn{background:transparent;border:none;color:#fffc;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.audio-control-btn:hover{color:var(--gold);background:#ffd7001a}.audio-control-btn.play-pause{width:48px;height:48px;font-size:1.5rem;background:#ffd70026;border:2px solid var(--gold)}.audio-control-btn.play-pause:hover{background:#ffd70040;transform:scale(1.05)}.audio-volumes{border-top:1px solid rgba(255,255,255,.1);padding-top:.75rem;margin-top:.25rem}.volume-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.volume-row:last-child{margin-bottom:0}.volume-label{font-family:Quicksand,sans-serif;font-size:.8rem;color:#ffffffb3;min-width:70px}.volume-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:#ffffff26;border-radius:2px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:var(--gold);border-radius:50%;cursor:pointer;box-shadow:0 2px 6px #0000004d;transition:transform .15s ease}.volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--gold);border-radius:50%;cursor:pointer;border:none;box-shadow:0 2px 6px #0000004d}.volume-slider:hover::-webkit-slider-thumb{transform:scale(1.2)}.audio-btn{width:56px;height:56px;border-radius:50%;border:2px solid var(--gold);background:#0a0a15cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 4px 20px #0006,0 0 #ffd70000;flex-shrink:0}.audio-btn:hover{transform:scale(1.1);box-shadow:0 6px 25px #00000080,0 0 30px #ffd70033}.play-icon:before{content:"";font-size:1.4rem}.waves{display:flex;align-items:flex-end;gap:3px;height:24px}.waves span{width:4px;background:var(--gold);border-radius:2px;animation:wave .5s ease-in-out infinite}.waves span:nth-child(1){height:10px;animation-delay:0s}.waves span:nth-child(2){height:20px;animation-delay:.1s}.waves span:nth-child(3){height:14px;animation-delay:.2s}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(.5)}}.footer-3d{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);color:#ffffff80;font-size:.85rem;font-family:Quicksand,sans-serif;text-shadow:0 2px 10px rgba(0,0,0,.5);z-index:10}.footer-3d span:before{content:"";margin-right:.5rem}.footer-3d span:after{content:"";margin-left:.5rem}@media(max-width:768px){.letter-3d{padding:1.5rem;margin:1rem}.letter-3d-content{font-size:1rem}.letter-3d-content .greeting{font-size:1.5rem}.letter-3d-content .signature{font-size:1.3rem}.audio-player-3d{bottom:1rem;right:1rem}.audio-btn{width:48px;height:48px}.envelope-3d-hint{font-size:12px;padding:6px 12px}}@media(max-width:480px){.letter-3d{padding:1.2rem}.letter-3d-content p{text-indent:1rem}.close-letter{bottom:-45px;padding:8px 24px}}.pwa-menu-toggle{position:fixed;top:1.5rem;left:1.5rem;z-index:50;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,215,0,.3);background:#0a0a15b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.pwa-menu-toggle:hover{background:#0a0a15e6;border-color:var(--gold);transform:rotate(90deg)}.gear-icon:before{content:"⚙";font-size:1.3rem;color:#ffffffb3}.pwa-menu-toggle:hover .gear-icon:before{color:var(--gold)}.pwa-controls{position:fixed;top:1.5rem;left:1.5rem;z-index:50;background:#0a0a15f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,215,0,.3);border-radius:16px;padding:1rem;min-width:200px;box-shadow:0 8px 32px #00000080,0 0 0 1px #ffd7001a inset;animation:slideDown .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.pwa-controls-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.pwa-controls-header span{font-family:Quicksand,sans-serif;font-size:.9rem;color:var(--gold);font-weight:500}.pwa-close-btn{background:transparent;border:none;color:#ffffff80;font-size:1.4rem;cursor:pointer;padding:0;line-height:1;transition:color .2s ease}.pwa-close-btn:hover{color:var(--gold)}.pwa-controls-grid{display:flex;flex-direction:column;gap:.5rem}.pwa-control-btn{display:flex;align-items:center;gap:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.6rem .8rem;cursor:pointer;transition:all .2s ease}.pwa-control-btn:hover{background:#ffd7001a;border-color:#ffd7004d}.pwa-control-btn.active{background:#ffd70026;border-color:var(--gold)}.pwa-icon{font-size:1.1rem;width:24px;text-align:center}.pwa-label{font-family:Quicksand,sans-serif;font-size:.85rem;color:#fffc}.pwa-control-btn.active .pwa-label{color:var(--gold)}.pwa-controls-info{margin-top:.75rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.1)}.pwa-controls-info small{font-family:Quicksand,sans-serif;font-size:.7rem;color:#fff6}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
