:root{--primary-contrast:#744c5e;--secondary-contrast:#744c5e99;--background-gradient:linear-gradient(135deg,#ffeef7,#ffc3e1 40%,#ff9bd1);--background:#ffeef7;--muted:rgba(255,155,209,.2);--surface:hsla(0,0%,100%,.8);--border:hsla(0,0%,100%,.4);--top-gradient:#ffffff30;--bottom-gradient-top:#ff9bd175;--bottom-gradient-bottom:#ffc3e150;--button-primary:linear-gradient(135deg,#ff6bb3,#ff9bd1);--button-secondary:hsla(0,0%,100%,.2)}.dark-theme{--primary-contrast:#fff;--secondary-contrast:#ffffff99;--background-gradient:linear-gradient(135deg,#6b2c5a,#4a1940);--background:#6b2c5a;--muted:rgba(107,44,90,.3);--surface:hsla(0,0%,100%,.08);--border:hsla(0,0%,100%,.15);--top-gradient:#ff6bb333;--bottom-gradient-top:#ff6bb3;--bottom-gradient-bottom:#ff9bd150;--button-primary:linear-gradient(135deg,#ff6bb3,#ff9bd1);--button-secondary:hsla(0,0%,100%,.1)}*{margin:0;font-family:Google Sans}html{background:var(--background)}body{color:var(--primary-contrast);background:var(--background-gradient);min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center}.dots{pointer-events:none;height:100%;background-image:radial-gradient(circle at center,var(--muted) 2px,transparent 2px);background-size:30px 30px;background-position:12px 12px;-webkit-mask-image:linear-gradient(180deg,#000 0,transparent 50%);mask-image:linear-gradient(180deg,#000 0,transparent 50%)}.dots,.top-gradient{position:absolute;top:0;left:0;width:100%}.top-gradient{height:25vh;background:linear-gradient(180deg,transparent 0,var(--top-gradient) 50%);-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 10vw));clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 10vw))}.bottom-gradient{position:fixed;bottom:0;width:90%;height:900px;margin-bottom:-550px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;--top:var(--bottom-gradient-top);--bottom:var(--bottom-gradient-bottom);--first:conic-gradient(from 90deg at 0% 50%,var(--top),var(--bottom));--second:conic-gradient(from 270deg at 100% 50%,var(--bottom),var(--top));-webkit-mask-image:radial-gradient(closest-side at 50% 50%,var(--background),transparent);mask-image:radial-gradient(closest-side at 50% 50%,var(--background),transparent);background-image:var(--first),var(--second);background-position-x:0,100%;background-position-y:100%,0;background-repeat:no-repeat;opacity:.4;transform:translateY(-200px) rotate(180deg) translateZ(0);transform-origin:center center}.header{position:absolute;top:4vh;display:flex;justify-content:center;align-items:center}.header svg{padding:16px 25px}.heading{font-size:48px;font-weight:500;letter-spacing:-2%}.heading,.hero{text-align:center}.hero{max-width:600px;margin-bottom:60px}.subtitle{font-size:24px;font-weight:400;color:var(--primary-contrast);margin:24px 0 0;opacity:.9;line-height:1.4}.main-buttons{gap:32px;flex-wrap:wrap;max-width:800px}.main-button,.main-buttons{display:flex;justify-content:center}.main-button{align-items:center;gap:16px;min-width:300px;min-height:120px;font-size:32px;font-weight:600;text-decoration:none;border-radius:32px;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid var(--border)}.photo-button{background:linear-gradient(135deg,rgba(255,107,179,.9),rgba(255,155,209,.7))}.album-button,.photo-button{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.2)}.album-button{background:linear-gradient(135deg,rgba(102,126,234,.9),rgba(118,75,162,.7))}.main-button:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(255,107,179,.3);filter:brightness(1.1)}.main-button:active{transform:translateY(-2px)}.regenerate-button{color:#fff;background:var(--button-primary)}.back-button{position:fixed;top:32px;left:32px;color:var(--primary-contrast);background-color:var(--surface);display:flex;align-items:center;gap:6px;text-decoration:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.button{font-size:15px;line-height:1.3;font-weight:500;padding:11px 16px;border-radius:100px;border:none;cursor:pointer;transition:scale .2s,filter .2s}.button:hover{filter:brightness(1.1)}.button:active{scale:.97}.content{margin:120px 12px;justify-content:center;gap:80px}.content,.content header{display:flex;flex-direction:column;align-items:center}.content header{gap:32px}.content header h2{font-size:20px;font-weight:400}.card{flex-direction:column;padding:24px;gap:12px;max-width:360px}.card h2{font-size:24px;line-height:1.2;font-weight:500;letter-spacing:-2%}.card p{font-size:13px;line-height:1.5;color:var(--secondary-contrast);letter-spacing:-1%}.card p a,.link{color:var(--primary-contrast);text-decoration:underline;text-underline-offset:2px}.links-container{padding-top:24px;gap:24px}.links,.links-container{display:flex;flex-wrap:wrap}.links{gap:10px}.links a{padding:14px 15px;color:var(--primary-contrast);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;justify-content:center;align-items:center;gap:4px}.card,.links a{position:relative;border-radius:24px;background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex}.card:before,.links a:before{content:"";position:absolute;inset:0;border-radius:24px;padding:1px;background:linear-gradient(var(--border),transparent 30%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.card:not(:first-child):after,.links a:not(:first-child):after{content:"";top:0;height:100%;background:var(--surface);position:absolute;pointer-events:none}.card:not(:first-child):after{width:10px;left:-10px;mask:url(/between-cards.svg) no-repeat center/contain;-webkit-mask:url(/between-cards.svg) no-repeat center/contain}.links a:not(:first-child):after{width:30px;left:calc(-20px);mask:url(/between-links.svg) no-repeat center/contain;-webkit-mask:url(/between-links.svg) no-repeat center/contain}@media only screen and (max-width:1023px){.heading{font-size:36px}.back-button{top:10px;left:10px}.main-buttons{flex-direction:column;gap:20px;align-items:center}.main-button{min-width:280px;min-height:100px;font-size:26px}.hero{margin-bottom:40px}.subtitle{font-size:20px}.card:after,.links a:after,.top-gradient{display:none}.bottom-gradient{width:150%;height:400px;margin-bottom:-450px}}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.auth-container{width:100%;max-width:400px;text-align:center}.auth-header{margin-bottom:2rem}.auth-header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem;color:var(--primary-contrast)}.auth-header p{color:var(--secondary-contrast);font-size:.9rem}.auth-form{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-form-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;color:var(--primary-contrast)}.form-group{margin-bottom:1rem;text-align:left}.form-group label{font-weight:500}.form-group label,.form-input{font-size:.875rem;color:var(--primary-contrast)}.form-input{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);transition:border-color .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:#ff6bb3}.form-input.error{border-color:#ef4444}.form-input::placeholder{color:var(--secondary-contrast)}.field-error{display:block;margin-top:.25rem;font-size:.75rem;color:#ef4444}.auth-error-message{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444}.auth-button,.auth-error-message{padding:.75rem;margin-bottom:1rem;font-size:.875rem}.auth-button{width:100%;background:var(--button-primary);border:none;border-radius:8px;color:#fff;font-weight:600;cursor:pointer;transition:opacity .2s}.auth-button:hover:not(:disabled){opacity:.9}.auth-button:disabled{opacity:.6;cursor:not-allowed}.auth-switch{margin-top:1rem;font-size:.875rem;color:var(--secondary-contrast)}.auth-link{background:none;border:none;color:#ff6bb3;font-size:inherit;text-decoration:underline;cursor:pointer;padding:0}.auth-link:hover{color:#ff9bd1}.header-wrapper{position:relative;width:100%}.main-header{background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100;width:100%}.header-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem}.header-logo{text-decoration:none}.header-nav{display:flex;align-items:center;gap:1rem}.header-loading{color:var(--secondary-contrast);font-size:.875rem}.header-user{display:flex;align-items:center;gap:1rem}.user-welcome{font-size:.875rem;color:var(--primary-contrast)}.header-actions{display:flex;align-items:center;gap:.75rem}.header-link{color:var(--primary-contrast);text-decoration:none;font-size:.875rem;padding:.5rem 1rem;border-radius:6px;transition:background-color .2s}.header-link:hover{background:var(--muted)}.header-signup{background:var(--button-primary);color:#fff}.header-signup:hover{background:var(--button-primary);opacity:.9}.header-signout-btn{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:background-color .2s}.header-signout-btn:hover{background:rgba(239,68,68,.3)}.user-profile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.user-info{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.user-avatar{width:60px;height:60px;border-radius:50%;overflow:hidden}.avatar-placeholder{background:var(--button-primary);font-size:1.5rem;font-weight:600}.user-details{flex:1 1}.user-name{font-size:1.25rem;font-weight:600;margin:0 0 .25rem;color:var(--primary-contrast)}.user-email{color:var(--secondary-contrast);font-size:.875rem;margin:0 0 .5rem}.user-status{display:flex;gap:.5rem}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.status-badge.verified{background:rgba(34,197,94,.2);color:#22c55e;border:1px solid rgba(34,197,94,.3)}.status-badge.unverified{background:rgba(245,158,11,.2);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.user-actions{text-align:center}.signout-button{background:rgba(239,68,68,.2);color:#ef4444;padding:.5rem 1.5rem;font-size:.875rem;transition:background-color .2s}.signout-button:hover:not(:disabled){background:rgba(239,68,68,.3)}.signout-button:disabled{opacity:.6;cursor:not-allowed}.profile-page{padding:2rem;max-width:800px;margin:0 auto}.profile-container{text-align:center}.profile-header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem;color:var(--primary-contrast)}.profile-header p{color:var(--secondary-contrast)}.profile-card{max-width:400px;margin:0 auto 2rem}.profile-actions{max-width:400px;margin:0 auto}.profile-info{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:8px;padding:1rem;font-size:.875rem;color:#3b82f6}@media (max-width:768px){.header-content{padding:1rem}.header-user{flex-direction:column;align-items:flex-end;gap:.5rem}.user-welcome{font-size:.75rem}.auth-page{padding:1rem}.auth-form{padding:1.5rem}}.gifts-content,.photo-content{display:flex;flex-direction:column;gap:2rem;max-width:800px;margin:2rem auto 0;padding:0 2rem}.album-placeholder,.gift-history-placeholder,.gift-placeholder,.photo-placeholder,.received-gifts-placeholder{background:var(--muted);border:2px dashed var(--border);border-radius:8px;padding:3rem 2rem;text-align:center;font-size:1.2rem;color:var(--secondary-contrast);margin-top:1rem}@media (max-width:768px){.gifts-content,.photo-content{padding:0 1rem}}.fammo-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--primary-contrast)}.fammo-icon{flex-shrink:0}.fammo-text{display:flex;flex-direction:column;gap:.125rem}.fammo-brand{font-size:1.5rem;font-weight:800;letter-spacing:-.025em;background:linear-gradient(135deg,#ff6bb3,#ff9bd1 50%,gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-fill-color:transparent;line-height:1}.fammo-tagline{font-size:.625rem;font-weight:500;color:var(--secondary-contrast);opacity:.8;letter-spacing:.05em}@media (max-width:768px){.fammo-logo{gap:.5rem}.fammo-brand{font-size:1.25rem}.fammo-tagline{font-size:.5rem}}.chat-page{display:flex;flex-direction:column;height:100vh;max-width:800px;margin:0 auto;background:var(--background)}.chat-header{background:var(--surface);padding:1rem 2rem;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:50}.chat-header h1{font-size:1.5rem;font-weight:600;margin:0 0 .25rem;color:var(--primary-contrast)}.chat-header p{color:var(--secondary-contrast);margin:0;font-size:.875rem}.chat-container{display:flex;flex-direction:column;flex:1 1;overflow:hidden}.messages-container{flex:1 1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.empty-chat,.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1;text-align:center;color:var(--secondary-contrast)}.empty-chat p:first-child{font-size:1.1rem;margin-bottom:.5rem}.message-container{display:flex;flex-direction:column;max-width:70%;margin-bottom:.5rem}.message-container.own{align-self:flex-end;align-items:flex-end}.message-container.other{align-self:flex-start;align-items:flex-start}.message-sender{margin-bottom:.25rem;padding-left:.5rem}.sender-name{font-size:.75rem;font-weight:500;color:var(--secondary-contrast)}.message-bubble{position:relative;padding:.75rem 1rem;border-radius:18px;word-wrap:break-word;box-shadow:0 1px 2px rgba(0,0,0,.1)}.own-bubble{background:linear-gradient(135deg,#87ceeb,#4fc3f7);color:#fff;border-bottom-right-radius:6px}.other-bubble{background:linear-gradient(135deg,#ffd54f,#ffca28);color:#333;border-bottom-left-radius:6px}.message-actions{position:absolute;top:-8px;right:100%;display:flex;gap:.25rem;padding:.25rem;background:rgba(0,0,0,.8);border-radius:6px;margin-right:.5rem}.action-button{background:none;border:none;font-size:.875rem;cursor:pointer;padding:.25rem;border-radius:4px;transition:background-color .2s}.action-button:hover{background:hsla(0,0%,100%,.2)}.message-text{margin:0;line-height:1.4}.message-image-container img{max-width:100%;border-radius:12px;margin-bottom:.5rem}.image-caption{margin:0;font-size:.875rem}.message-info{display:flex;align-items:center;gap:.5rem;margin-top:.25rem;justify-content:flex-end}.message-time{font-size:.625rem;opacity:.7}.edited-indicator{font-size:.625rem;opacity:.6;font-style:italic}.own-bubble .message-info{color:hsla(0,0%,100%,.8)}.other-bubble .message-info{color:rgba(0,0,0,.6)}.edit-container{display:flex;flex-direction:column;gap:.5rem}.edit-input{background:hsla(0,0%,100%,.9);border:none;border-radius:8px;padding:.5rem;font-family:inherit;font-size:.875rem;color:#333;resize:vertical;min-height:60px}.edit-buttons{display:flex;gap:.5rem;justify-content:flex-end}.cancel-button,.save-button{padding:.375rem .75rem;border:none;border-radius:6px;font-size:.75rem;cursor:pointer;transition:background-color .2s}.save-button{background:#4caf50}.save-button:hover{background:#45a049}.cancel-button{background:hsla(0,0%,100%,.2);color:inherit}.cancel-button:hover{background:hsla(0,0%,100%,.3)}.chat-input-container{background:var(--surface);border-top:1px solid var(--border);padding:1rem;position:-webkit-sticky;position:sticky;bottom:0}.image-preview-container{margin-bottom:.75rem}.image-preview{position:relative;display:inline-block;max-width:200px}.image-preview img{width:100%;height:auto;border-radius:12px;border:2px solid var(--border)}.remove-image-button{position:absolute;top:-8px;right:-8px;background:hsla(0,0%,100%,.9);border:none;border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center}.input-area{display:flex;align-items:flex-end;gap:.5rem}.image-button,.send-button{background:var(--button-primary);color:#fff;border:none;border-radius:50%;width:40px;height:40px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:opacity .2s;flex-shrink:0}.image-button:hover,.send-button:hover{opacity:.9}.image-button:disabled,.send-button:disabled{opacity:.5;cursor:not-allowed}.message-input{flex:1 1;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:.75rem 1rem;font-family:inherit;font-size:.875rem;color:var(--primary-contrast);resize:none;max-height:100px;min-height:40px;overflow-y:auto}.message-input::placeholder{color:var(--secondary-contrast)}.message-input:focus{outline:none;border-color:#ff6bb3;box-shadow:0 0 0 2px rgba(255,107,179,.2)}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:transparent}.messages-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.messages-container::-webkit-scrollbar-thumb:hover{background:var(--secondary-contrast)}@media (max-width:768px){.chat-header{padding:1rem}.messages-container{padding:.75rem}.message-container{max-width:85%}.chat-input-container{padding:.75rem}.input-area{gap:.375rem}.image-button,.send-button{width:36px;height:36px;font-size:.875rem}}.gifts-page{padding:2rem;max-width:1200px;margin:0 auto}.gifts-header{text-align:center;margin-bottom:2rem}.gifts-header h1{font-size:2.5rem;color:#2d3748;margin:0 0 .5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gifts-header p{font-size:1.1rem;color:#718096;margin:0}.gifts-tabs{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.tab-button{background:#fff;border:2px solid #e0e6ed;border-radius:12px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;color:#4a5568}.tab-button:hover{background:#f7fafc;border-color:#cbd5e0;transform:translateY(-1px)}.tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.gifts-content{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.05);min-height:500px}.tab-content{animation:tabFadeIn .3s ease-in-out}@keyframes tabFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-state{font-size:1.1rem}.empty-state,.loading-state{text-align:center;padding:3rem;color:#718096}.empty-state p{margin:.5rem 0;line-height:1.6}.gifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:1.5rem;gap:1.5rem}.gift-form-container{max-width:600px;margin:0 auto}.gift-form-container h3{font-size:1.5rem;color:#2d3748;margin-bottom:1.5rem;text-align:center}.error-message{background:#fed7d7;border:1px solid #feb2b2;border-radius:8px;padding:1rem;margin-bottom:1rem;color:#c53030;text-align:center}.product-preview-container{margin-bottom:2rem}.url-input-form{margin-bottom:1rem}.url-input-group{display:flex;gap:.5rem;margin-bottom:.5rem}.url-input{flex:1 1;padding:.75rem 1rem;border:2px solid #e0e6ed;border-radius:8px;font-size:.9rem;outline:none;transition:border-color .2s ease}.url-input:focus{border-color:#4299e1}.url-submit-button{background:#4299e1;color:#fff;border:none;border-radius:8px;padding:.75rem 1rem;font-size:1.2rem;cursor:pointer;transition:background .2s ease}.url-submit-button:hover:not(:disabled){background:#3182ce}.url-submit-button:disabled{opacity:.5;cursor:not-allowed}.clear-button{background:#e53e3e;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:background .2s ease}.clear-button:hover{background:#c53030}.loading-spinner{font-size:2rem;margin-bottom:.5rem}.product-preview-card{border:2px solid #e0e6ed;border-radius:16px;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.1);overflow:hidden;transition:all .3s ease}.product-preview-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}.product-image-section{background:#f8f9fa;padding:1.5rem;border-bottom:1px solid #e0e6ed}.product-image-container{position:relative;display:flex;justify-content:center;align-items:center;min-height:200px}.product-image{max-width:100%;max-height:200px;object-fit:contain;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1)}.product-image-placeholder{width:200px;height:200px;background:linear-gradient(135deg,#f1f3f4,#e8eaed);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9aa0a6;border:2px dashed #dadce0}.placeholder-icon{font-size:3rem;margin-bottom:.5rem}.placeholder-text{font-size:.9rem;font-weight:500}.product-site-badge{position:absolute;top:8px;right:8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;box-shadow:0 2px 4px rgba(0,0,0,.2)}.product-info-section{padding:2rem}.product-header{margin-bottom:1.5rem}.product-title{font-size:1.3rem;font-weight:700;color:#2d3748;margin:0 0 1rem;line-height:1.4;text-align:left}.product-price-container{display:flex;align-items:baseline;gap:.5rem;padding:1rem;background:#f7fafc;border-radius:12px;border-left:4px solid #e53e3e}.price-label{font-size:.9rem;color:#718096;font-weight:600}.product-price{font-size:1.5rem;font-weight:700;color:#e53e3e;margin:0}.product-description-container{margin-bottom:1.5rem}.description-label{display:block;font-size:.9rem;color:#4a5568;font-weight:600;margin-bottom:.5rem}.product-description{font-size:.95rem;color:#718096;line-height:1.6;margin:0;padding:1rem;background:#f8f9fa;border-radius:8px;border-left:3px solid #cbd5e0}.product-actions{display:flex;justify-content:center;margin-top:1.5rem}.product-link{display:inline-flex;align-items:center;gap:.5rem;color:#4299e1;text-decoration:none;font-weight:600;padding:.75rem 1.5rem;border:2px solid #4299e1;border-radius:25px;transition:all .3s ease;background:transparent}.product-link:hover{color:#fff;background:#4299e1;transform:translateY(-1px);box-shadow:0 4px 12px rgba(66,153,225,.4);text-decoration:none}.link-icon{font-size:1rem}.gift-details-form{margin-top:2rem}.form-group{margin-bottom:1.5rem}.form-group label{margin-bottom:.5rem}.form-select{width:100%;padding:.75rem;border:2px solid #e0e6ed;border-radius:8px;font-size:.9rem;background:#fff;outline:none;transition:border-color .2s ease}.form-select:focus{border-color:#4299e1}.form-textarea{width:100%;padding:.75rem;border:2px solid #e0e6ed;border-radius:8px;font-size:.9rem;font-family:inherit;resize:vertical;min-height:80px;outline:none;transition:border-color .2s ease}.form-textarea:focus{border-color:#4299e1}.send-gift-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:1rem;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s ease}.send-gift-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.send-gift-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.gift-card{background:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:transform .2s ease;border:2px solid transparent}.gift-card:hover{transform:translateY(-2px);box-shadow:0 8px 15px rgba(0,0,0,.15)}.gift-card-own{border-color:rgba(66,153,225,.3)}.gift-card-received{border-color:rgba(72,187,120,.3)}.gift-status{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;justify-content:center}.status-text{font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.gift-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e0e6ed}.gift-direction{display:flex;flex-direction:column;gap:.25rem}.direction-label{font-size:.8rem;color:#718096;font-weight:600;text-transform:uppercase}.person-name{font-weight:600;color:#2d3748}.gift-date{font-size:.8rem;color:#718096;text-align:right}.gift-product{margin-bottom:1rem}.product-details{text-align:center;margin-top:1rem}.gift-message{background:#f7fafc;border-radius:8px;padding:1rem;margin-bottom:1rem}.message-label{font-size:.8rem;font-weight:600;color:#4a5568;margin-bottom:.5rem}.message-content{font-style:italic;line-height:1.4;color:#2d3748;margin:0}.gift-actions{display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap}.receive-button{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.cancel-button{background:linear-gradient(135deg,#e53e3e,#c53030);color:#fff}.received-info{display:flex;gap:.5rem;align-items:center;font-size:.8rem;color:#718096}.received-label{font-weight:600}@media (max-width:768px){.gifts-page{padding:1rem}.gifts-grid{grid-template-columns:1fr}.gifts-tabs{flex-direction:column;align-items:stretch}.tab-button{text-align:center}.url-input-group{flex-direction:column}}.profile-edit-form{max-width:600px;margin:0 auto;background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.profile-edit-form h2{text-align:center;margin-bottom:2rem;color:#2d3748}.photo-section{text-align:center;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e6ed}.current-photo{margin-bottom:1rem}.profile-photo{object-fit:cover}.photo-placeholder,.profile-photo{width:100px;height:100px;border-radius:50%;border:3px solid #e0e6ed}.photo-placeholder{background:linear-gradient(135deg,#667eea,#764ba2);display:inline-flex;align-items:center;justify-content:center;font-size:3rem}.photo-upload-button{background:#4299e1;color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;cursor:pointer;font-size:.9rem;transition:background .2s ease}.photo-upload-button:hover:not(:disabled){background:#3182ce}.photo-upload-button:disabled{opacity:.5;cursor:not-allowed}.profile-form{gap:1.5rem}.form-group,.profile-form{display:flex;flex-direction:column}.form-group label{display:block;font-weight:600;color:#2d3748;margin-bottom:.75rem;font-size:.95rem}.form-group label:after{content:"";display:block;width:20px;height:2px;background:linear-gradient(90deg,#4299e1,#667eea);margin-top:.25rem}.form-input,.form-select{width:100%;padding:.75rem;border:2px solid #e0e6ed;border-radius:8px;font-size:.9rem;font-family:inherit;background:#fff;color:#2d3748;outline:none;transition:all .2s ease;box-sizing:border-box}.form-input::placeholder{color:#a0aec0;font-style:italic}.form-input:focus,.form-select:focus{border-color:#4299e1;box-shadow:0 0 0 3px rgba(66,153,225,.1);background:#f8fafc}.form-input.error,.form-select.error{border-color:#e53e3e;box-shadow:0 0 0 3px rgba(229,62,62,.1)}.form-input.valid{border-color:#48bb78;box-shadow:0 0 0 3px rgba(72,187,120,.1)}.birthday-input-container{position:relative}.birthday-preview{position:absolute;top:100%;left:0;right:0;background:#f0fff4;border:2px solid #48bb78;border-top:none;border-radius:0 0 8px 8px;padding:.5rem .75rem;font-size:.85rem;color:#2f855a;font-weight:500;z-index:10}.error-text{color:#e53e3e;font-size:.8rem;margin-top:.25rem;font-weight:500}.form-hint{color:#718096;font-size:.8rem;margin-top:.5rem;line-height:1.4;background:#f7fafc;padding:.75rem;border-radius:6px;border-left:3px solid #4299e1}.interests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:.5rem;gap:.5rem;margin-top:.5rem}.interest-tag{background:#fff;border:2px solid #e0e6ed;border-radius:20px;padding:.5rem .75rem;font-size:.8rem;cursor:pointer;transition:all .2s ease;text-align:center}.interest-tag:hover{border-color:#cbd5e0}.interest-tag.selected{background:#4299e1;color:#fff;border-color:#4299e1}.form-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.cancel-button{background:#fff;border:2px solid #e0e6ed;color:#4a5568;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.cancel-button:hover:not(:disabled){border-color:#cbd5e0;background:#f7fafc}.save-button{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.save-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(72,187,120,.4)}.cancel-button:disabled,.save-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.profile-display{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px rgba(0,0,0,.1)}.profile-display.compact{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f7fafc;border:1px solid #e0e6ed}.profile-header{display:flex;align-items:center;gap:2rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e6ed}.profile-avatar-large{width:120px;height:120px;border-radius:50%;overflow:hidden;border:4px solid #e0e6ed}.profile-avatar{width:50px;height:50px;border-radius:50%;overflow:hidden}.avatar-image{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem}.compact .avatar-placeholder{font-size:1.2rem}.profile-basic-info{flex:1 1}.profile-display-name{font-size:2rem;font-weight:700;color:#2d3748;margin:0 0 .5rem}.profile-role-badge{display:inline-flex;align-items:center;gap:.5rem;background:#f7fafc;border:1px solid #e0e6ed;border-radius:20px;padding:.5rem 1rem;margin-bottom:1rem}.role-emoji{font-size:1.2rem}.role-name{font-weight:600;color:#4a5568}.profile-status-message{color:#718096;font-style:italic;background:#f7fafc;padding:.5rem 1rem;border-radius:8px;border-left:3px solid #4299e1}.profile-details{display:flex;flex-direction:column;gap:2rem}.profile-section h3{color:#2d3748;margin-bottom:1rem;font-size:1.2rem}.info-grid{display:grid;grid-gap:1rem;gap:1rem}.info-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f7fafc;border-radius:8px}.info-label{font-weight:600;color:#4a5568}.info-value{color:#2d3748}.interests-display{display:flex;flex-wrap:wrap;gap:.5rem}.interest-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:600}.status-indicators{display:flex;flex-direction:column;gap:.5rem}.status-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:8px}.status-item.verified{background:rgba(72,187,120,.1);color:#38a169}.status-item.unverified{background:rgba(245,158,11,.1);color:#d69e2e}.status-icon{font-size:1.2rem}.profile-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:2rem;border-top:1px solid #e0e6ed}.edit-button{background:#4299e1;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.edit-button:hover{background:#3182ce;transform:translateY(-1px)}.signout-button{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#e53e3e;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease}.signout-button:hover{background:rgba(239,68,68,.2)}.compact .profile-info{flex:1 1}.compact .profile-name{font-weight:600;color:#2d3748;margin-bottom:.25rem}.compact .profile-status{font-size:.8rem;color:#718096;font-style:italic}.profile-setup-notice{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;padding:1.5rem;margin-bottom:2rem;text-align:center}.profile-setup-notice p:first-child{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.profile-setup-notice p:last-child{margin:0;opacity:.9}.profile-error,.profile-loading{text-align:center;padding:3rem;background:#f7fafc;border-radius:12px;color:#718096}.profile-error button{margin-top:1rem;background:#4299e1;color:#fff;border:none;border-radius:8px;padding:.75rem 1.5rem;cursor:pointer;font-weight:600;transition:background .2s ease}.profile-error button:hover{background:#3182ce}.album-page{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.album-container{max-width:1400px;margin:0 auto;padding:2rem}.album-header{text-align:center;margin-bottom:3rem}.album-header h1{font-size:2.5rem;color:#2d3748;margin:0 0 .5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.album-header p{font-size:1.1rem;color:#718096;margin:0}.album-loading{text-align:center;padding:4rem 2rem;color:#718096}.loading-spinner{font-size:3rem;margin-bottom:1rem}.album-error{text-align:center;padding:4rem 2rem;color:#e53e3e}.retry-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:.75rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:1rem}.retry-button:hover{transform:translateY(-2px);box-shadow:0 8px 15px rgba(102,126,234,.4)}.album-empty{text-align:center;padding:4rem 2rem;color:#718096}.empty-icon{font-size:4rem;margin-bottom:1rem}.album-empty h3{font-size:1.5rem;color:#4a5568;margin-bottom:.5rem}.album-empty p{font-size:1.1rem}.image-gallery{width:100%}.gallery-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.1)}.view-mode-tabs{display:flex;gap:.5rem}.view-tab{background:#f7fafc;border:2px solid #e2e8f0;border-radius:12px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;color:#4a5568;cursor:pointer;transition:all .3s ease}.view-tab:hover{background:#edf2f7;border-color:#cbd5e0}.view-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:transparent;color:#fff;transform:translateY(-1px);box-shadow:0 4px 8px rgba(102,126,234,.3)}.gallery-info{font-size:1rem;color:#718096;font-weight:600}.date-group{margin-bottom:3rem}.date-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0}.date-header h3{font-size:1.3rem;color:#2d3748;margin:0;font-weight:700}.date-count{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.9rem;font-weight:600}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-gap:1.5rem;gap:1.5rem}.image-item{position:relative;background:#fff;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px rgba(0,0,0,.1)}.image-item:hover{transform:translateY(-4px);box-shadow:0 12px 20px rgba(0,0,0,.15)}.gallery-image{width:100%;height:200px;object-fit:cover;transition:transform .3s ease}.image-item:hover .gallery-image{transform:scale(1.05)}.image-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));padding:1rem;color:#fff;transform:translateY(100%);transition:transform .3s ease}.image-item:hover .image-overlay{transform:translateY(0)}.image-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.sender-name{font-weight:600;font-size:.9rem}.image-date,.image-time{font-size:.8rem;opacity:.9}.image-caption{font-size:.9rem;opacity:.9;line-height:1.4}.image-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;justify-content:center;align-items:center;z-index:1000;padding:2rem}.modal-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column}.modal-close{position:absolute;top:-50px;right:0;background:hsla(0,0%,100%,.2);border:none;color:#fff;font-size:1.5rem;font-weight:700;width:40px;height:40px;border-radius:50%;cursor:pointer;transition:background .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-close:hover{background:hsla(0,0%,100%,.3)}.modal-image-container{flex:1 1;display:flex;justify-content:center;align-items:center}.modal-image{max-width:100%;max-height:70vh;object-fit:contain;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.5)}.modal-info{background:hsla(0,0%,100%,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;padding:1.5rem;margin-top:1rem;color:#fff}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.modal-sender{font-weight:600;font-size:1.1rem}.modal-date{font-size:.9rem;opacity:.8}.modal-caption{font-size:1rem;line-height:1.5;opacity:.9}@media (max-width:768px){.profile-header{flex-direction:column;text-align:center;gap:1rem}.profile-display-name{font-size:1.5rem}.interests-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.form-actions,.profile-actions{flex-direction:column}.profile-edit-form{margin:1rem;padding:1.5rem}.form-input,.form-select{font-size:16px;padding:1rem}.form-hint{padding:.5rem;font-size:.75rem}.interests-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:.375rem}.interest-tag{padding:.375rem .5rem;font-size:.75rem}.album-container{padding:1rem}.album-header h1{font-size:2rem}.gallery-controls{flex-direction:column;gap:1rem;align-items:stretch}.view-mode-tabs{justify-content:center}.image-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem}.gallery-image{height:150px}.modal-content{padding:1rem}.modal-image{max-height:60vh}.modal-info{padding:1rem}.image-overlay{transform:translateY(0);background:linear-gradient(transparent,rgba(0,0,0,.9));padding:.75rem}}