:root{--color-brand: #8B6508;--color-primary: #C9920A;--color-primary-light:#D4AF37;--color-primary-pale: #FEF8E8;--color-bg: #FFFDF7;--color-surface: #FFFFFF;--color-text: #2C1F08;--color-text-light: #A89060;--color-text-muted: #C4B4A0;--color-border: #F0E8D5;--green-dark: var(--color-brand);--green: var(--color-primary);--green-light: var(--color-primary-light);--green-pale: var(--color-primary-pale);--gold: var(--color-primary);--gold-light: var(--color-primary-light);--gold-pale: var(--color-primary-pale);--cream: var(--color-bg);--white: var(--color-surface);--text: var(--color-text);--text-light: var(--color-text-light);--text-muted: var(--color-text-muted);--danger: #c0392b;--danger-light: #f8d7da;--success: #27ae60;--success-light: #d4edda;--radius: 16px;--radius-sm: 10px;--shadow: 0 4px 24px rgba(184,134,12,.08);--shadow-lg: 0 8px 40px rgba(184,134,12,.12);--transition: all .3s ease;--font-serif: "Cormorant Garamond", Georgia, serif;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs: clamp(.75rem, 2.5vw, .8rem);--text-sm: clamp(.8rem, 3vw, .875rem);--text-base: clamp(.95rem, 4vw, 1rem);--text-md: clamp(1rem, 4.5vw, 1.1rem);--text-lg: clamp(1.1rem, 5vw, 1.3rem);--text-xl: clamp(1.3rem, 6vw, 1.6rem);--text-2xl: clamp(1.6rem, 7vw, 2rem);--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 999px;--shadow-sm: 0 2px 8px rgba(184,134,12,.06);--shadow-md: 0 4px 16px rgba(184,134,12,.1);--shadow-xl: 0 16px 60px rgba(184,134,12,.16);--transition-fast: .15s ease;--transition-base: .28s ease;--transition-slow: .4s ease;--app-max-width: 430px;--bottom-nav-height: 64px;--header-height: 56px}[data-theme=dark]{--green-dark: #e0c97f;--green: #d4af37;--green-light: #e8c84a;--green-pale: #1e1a0e;--gold: #d4af37;--gold-light: #e8c84a;--gold-pale: #1e1a0e;--cream: #1a1510;--white: #252018;--text: #f0e8d8;--text-light: #c4b49a;--text-muted: #7a6e5f;--danger-light: #3b1010;--success-light: #0d2b1a;--shadow: 0 4px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .6)}[data-theme=dark] body:before{background:radial-gradient(circle at 20% 80%,rgba(212,175,55,.06) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(212,175,55,.08) 0%,transparent 50%)}[data-theme=dark] .form-group input[type=text],[data-theme=dark] .form-group input[type=email],[data-theme=dark] .form-group input[type=password],[data-theme=dark] .form-group textarea{background:#1e1a0e;border-color:#3a3020;color:var(--text)}[data-theme=dark] .badge{background:#252018;border-color:#3a3020}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;background-color:var(--color-bg);color:var(--color-text);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden;margin:0}html{overflow-x:hidden}#root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;width:100%;max-width:var(--app-max-width);margin:0 auto;background:var(--color-bg);box-shadow:0 0 60px #00000026;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 15% 85%,rgba(212,175,55,.06) 0%,transparent 50%),radial-gradient(circle at 85% 15%,rgba(184,134,12,.08) 0%,transparent 50%),radial-gradient(circle at 50% 50%,rgba(254,248,232,.4) 0%,transparent 70%);pointer-events:none;z-index:-1}.page-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-sm);padding-top:env(safe-area-inset-top,0px);height:calc(var(--header-height) + env(safe-area-inset-top,0px));background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.page-header__brand{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;background:linear-gradient(135deg,#b8860c,#d4af37,#9a6e08);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:.03em;text-decoration:none;display:flex;align-items:center;gap:var(--space-xs);touch-action:manipulation;position:absolute;left:50%;transform:translate(-50%);white-space:nowrap}.page-header__spacer{width:40px;flex-shrink:0}.page-header__back-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid #E8C84A;background:#fef8e8;color:#b8860c;font-size:.95rem;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;flex-shrink:0;transition:background var(--transition-fast);-webkit-tap-highlight-color:transparent}.page-header__back-btn:active{background:var(--color-primary-pale)}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--app-max-width);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;align-items:stretch;z-index:200;box-shadow:0 -4px 20px #5c4a2a14}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-decoration:none;color:var(--color-text-muted);min-height:44px;padding:8px 4px;transition:color var(--transition-fast);touch-action:manipulation;border:none;background:none;font-family:var(--font-sans);-webkit-tap-highlight-color:transparent}.bottom-nav__tab--active{color:var(--color-primary)}.bottom-nav__tab--active .bottom-nav__icon{background:linear-gradient(135deg,#fef8e8,#f5e8c0);border:1px solid #E8C84A;border-radius:999px;width:48px;height:32px;display:flex;align-items:center;justify-content:center}.bottom-nav__icon{font-size:1.25rem;line-height:1;display:flex;align-items:center}.bottom-nav__label{font-size:.68rem;font-weight:600;line-height:1;white-space:nowrap}.main-content{flex:1;padding:var(--space-md);padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-md));overflow-x:hidden}.main-content:has(.participant-profile-page),.main-content:has(.family-page){padding:0 0 calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}.page{animation:fadeIn .4s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.page,.modal-backdrop,.modal-card,.star,.moon-big,.fa-spin{animation:none}*{transition:none!important}}.hero{text-align:center;padding:40px 16px}.hero-decoration{display:flex;justify-content:center;gap:24px;margin-bottom:16px}.star{color:var(--gold);font-size:1.2rem;animation:twinkle 2s ease infinite}.star:nth-child(2){animation-delay:.3s}.star:nth-child(3){animation-delay:.6s}@keyframes twinkle{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.hero-title{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2rem,8vw,3.5rem);color:var(--green-dark);font-weight:700;line-height:1.2}.moon-big{font-size:4rem;display:inline-block;animation:moonGlow 3s ease infinite}@keyframes moonGlow{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.hero-text{font-size:1.1rem;color:var(--text-light);margin-top:20px;line-height:1.8;max-width:520px;margin-left:auto;margin-right:auto}.status-badges{display:flex;justify-content:center;gap:16px;margin-top:20px;flex-wrap:wrap}.badge{display:flex;align-items:center;gap:10px;background:#fff;padding:14px 24px;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.05)}.badge-number{font-size:2rem;font-weight:700;color:var(--green)}.badge-label{font-size:.85rem;color:var(--text-light);font-weight:500}.badge-icon{font-size:1.5rem}.badge-success{border-color:var(--success);background:var(--success-light)}.badge-waiting{border-color:var(--gold);background:var(--gold-pale)}.hero-actions{display:flex;justify-content:center;gap:16px;margin-top:40px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;border:none;cursor:pointer;text-decoration:none;transition:var(--transition);font-family:inherit;min-height:44px;touch-action:manipulation}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#d4af37,#b8860c);color:#fff;box-shadow:0 4px 20px #b8860c59}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 28px #b8860c73}.btn-secondary{background:#fff;color:var(--green-dark);border:2px solid var(--gold)}.btn-secondary:hover:not(:disabled){background:var(--gold-pale)}.btn-ghost{background:transparent;color:var(--danger);padding:8px 16px}.btn-neutral{background:transparent;color:var(--text-light);padding:8px 16px;border:1px solid #e5ddd0}.btn-neutral:hover:not(:disabled){background:var(--cream);color:var(--text);border-color:var(--gold)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c82333}.btn-lg{padding:16px 32px;font-size:1.05rem;border-radius:var(--radius)}.btn-sm{padding:10px 16px;font-size:.8rem;min-height:44px}.btn-full{width:100%;justify-content:center}.btn-group{display:flex;gap:12px;flex-wrap:wrap}.how-it-works{margin-top:60px;text-align:center}.how-it-works h2{font-family:Cormorant Garamond,Georgia,serif;font-size:2rem;color:var(--green-dark);margin-bottom:40px}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}.step{background:#fff;border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow);transition:var(--transition);border:1px solid rgba(0,0,0,.04)}.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.step-icon{font-size:2.5rem;margin-bottom:16px}.step h3{font-size:1rem;color:var(--green-dark);margin-bottom:8px}.step p{font-size:.9rem;color:var(--text-light);line-height:1.5}.card{background:#fff;border-radius:var(--radius-lg);padding:24px 16px;box-shadow:0 2px 16px #b8860c12;margin-bottom:24px;border:1.5px solid #F0E8D5;border-left:4px solid var(--color-primary);max-width:100%}.card-form{max-width:520px;margin:0 auto}.card-header{text-align:center;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid var(--gold-pale)}.card-header h2{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.3rem,5vw,1.8rem);color:var(--green-dark)}.card-header p{color:var(--text-light);margin-top:8px}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;font-size:.9rem;color:var(--text);margin-bottom:8px}.form-help{display:block;font-size:.8rem;color:var(--text-muted);margin-top:6px}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group textarea{width:100%;padding:14px 16px;border:2px solid #e5ddd0;border-radius:var(--radius-sm);font-size:1rem;font-family:inherit;transition:var(--transition);background:#fff;color:var(--text);min-height:44px;box-sizing:border-box;touch-action:manipulation}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#d4af37;box-shadow:0 0 0 3px #d4af3726}.form-group textarea{resize:vertical;min-height:100px}.input-code{text-align:center;font-size:2rem!important;font-weight:700;letter-spacing:.5rem;text-transform:uppercase;font-family:Cormorant Garamond,Georgia,serif!important;color:var(--green-dark)!important}.photo-upload{display:flex;justify-content:center}.photo-dropzone{display:inline-flex;flex-direction:column;align-items:center;gap:8px;padding:32px;border:2px dashed #ccc;border-radius:var(--radius);cursor:pointer;color:var(--text-muted);transition:var(--transition);width:100%}.photo-dropzone:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-pale)}.photo-icon{font-size:2rem}.photo-preview{position:relative;display:inline-block}.photo-preview img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid var(--gold)}.btn-remove-photo{position:absolute;top:-8px;right:-8px;background:var(--danger);color:#fff;border:none;border-radius:50%;width:44px;height:44px;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;touch-action:manipulation}.alert{padding:14px 18px;border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:16px;font-weight:500}.alert-error{background:var(--danger-light);color:#721c24;border:1px solid #f5c6cb}.alert-success{background:var(--success-light);color:#155724;border:1px solid #c3e6cb}.family-created{text-align:center}.family-name-display{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:28px}.family-emoji{font-size:2.5rem}.family-name-display h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.6rem;color:var(--green-dark)}.code-display,.share-link{margin-bottom:20px;text-align:left}.code-display label,.share-link label{display:block;font-weight:600;font-size:.85rem;color:var(--text-light);margin-bottom:8px}.code-box{display:flex;align-items:center;gap:12px;background:var(--cream);padding:14px 16px;border-radius:var(--radius-sm);border:2px solid #e5ddd0}.code-text{flex:1;font-size:1.6rem;font-weight:700;letter-spacing:.3rem;color:var(--green-dark);font-family:Cormorant Garamond,Georgia,serif}.code-text-small{font-size:.85rem;letter-spacing:0;font-family:inherit;font-weight:500;word-break:break-word;overflow-wrap:break-word}.family-page{padding:0 15px}.family-header-banner{text-align:center;padding:24px var(--space-md) 20px;background:transparent;border-radius:0;color:var(--color-text);box-shadow:none;margin-bottom:20px}.family-header-emoji{font-size:3rem;display:block;margin-bottom:8px}.family-header-banner h1{font-family:var(--font-serif);font-size:clamp(1.3rem,6vw,2rem);color:var(--color-brand)}.family-header-banner .status-badges{margin-top:16px}.family-header-banner .badge{border:1px solid var(--color-border)}.family-code-inline{margin-top:10px;font-size:.88rem;color:var(--color-text-muted)}.family-code-inline strong{color:var(--color-primary);letter-spacing:.1rem;font-size:.95rem}.profile-content{max-width:650px;margin:0 auto}.family-membership-card{position:relative}.join-code-form{display:flex;gap:8px;margin-bottom:24px}.join-code-input{flex:1;min-height:44px;padding:0 14px;border-radius:var(--radius-md);border:1.5px solid var(--color-border);font-family:var(--font-sans);font-size:var(--text-base);font-weight:600;letter-spacing:.08em;background:var(--color-surface);color:var(--color-text);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);touch-action:manipulation;-webkit-appearance:none}.join-code-input::placeholder{color:var(--color-text-muted);font-weight:400;letter-spacing:0}.join-code-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #b8960c26}.join-code-btn{min-height:44px;white-space:nowrap;touch-action:manipulation;flex-shrink:0}.membership-row{display:flex;flex-direction:row;align-items:center;gap:12px}.membership-btns{display:flex;flex-direction:row;gap:6px;flex-shrink:0}.membership-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-light);font-size:.85rem;cursor:pointer;text-decoration:none;touch-action:manipulation;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.membership-icon-btn:hover,.membership-icon-btn:active{background:var(--color-bg);color:var(--color-text);border-color:var(--color-text-muted)}.membership-icon-btn--danger{color:var(--color-danger);border-color:var(--color-danger-light)}.membership-icon-btn--danger:hover,.membership-icon-btn--danger:active{background:var(--color-danger-light);color:var(--color-danger)}.membership-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.membership-header{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-bottom:0}.membership-left{display:flex;align-items:center;gap:14px}.membership-actions{display:flex;flex-direction:column;align-items:center;gap:8px}.membership-actions-main{display:flex;flex-direction:row;gap:8px;justify-content:center}.membership-actions-danger{display:flex;justify-content:center}.membership-name{display:block;font-size:1.1rem;font-weight:700;color:var(--text)}.membership-family{display:block;font-size:.85rem;color:var(--green);font-weight:600;margin-top:2px}.membership-code{display:block;font-size:.75rem;color:var(--text-muted);margin-top:2px}.family-membership-card .btn-neutral{background:transparent;color:var(--text);border:2px solid var(--border, #e5ddd0);border-radius:12px;font-weight:600;font-size:.82rem;padding:9px 18px;min-height:44px}.family-membership-card .btn-neutral:hover:not(:disabled){background:var(--gold-pale);border-color:var(--gold);color:var(--green-dark)}.btn-ghost-danger{background:transparent;color:var(--danger);border:none;font-size:.78rem;font-weight:500;padding:6px 12px;min-height:44px;display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);font-family:inherit;touch-action:manipulation;opacity:.75}.btn-ghost-danger:hover:not(:disabled){background:var(--danger-light);opacity:1}.btn-ghost-danger:disabled{opacity:.4;cursor:not-allowed}.gift-ideas-mini{background:var(--gold-pale);padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-light);line-height:1.5;margin-top:4px}.draw-reveal-inline{margin-top:12px;padding:16px;background:linear-gradient(135deg,var(--gold-pale),#fff9db);border:2px solid var(--gold);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:6px;text-align:center}.draw-name-inline{font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;color:var(--green-dark)}.draw-ideas-inline{font-size:.85rem;color:var(--text-light)}.edit-form{margin-top:16px;padding-top:16px;border-top:1px solid #eee}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.admin-header h2{font-family:Cormorant Garamond,Georgia,serif;color:var(--green-dark)}.admin-code{font-size:.85rem;color:var(--text-muted);display:block;margin-top:4px}.admin-actions{text-align:center}.admin-actions h3{color:var(--green-dark);margin-bottom:20px}.participants-grid{display:flex;flex-direction:column;gap:0;margin-top:16px;border:1.5px solid #F0E8D5;border-radius:var(--radius-lg);overflow:hidden;background:#fff}.participant-card-mini{display:flex;align-items:center;gap:16px;padding:16px 18px;background:linear-gradient(105deg,#fffbf0,#fff 55%);position:relative;overflow:visible;border-bottom:1px solid #F5EDD8;transition:background .18s ease,transform .15s ease}.participant-card-mini:last-child{border-bottom:none}.mini-avatar-wrap{position:relative;flex-shrink:0}.mini-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2.5px solid #D4AF37;box-shadow:0 0 0 4px #d4af3724;display:block}.mini-avatar-placeholder{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#c9920a,#d4af37);box-shadow:0 0 0 4px #d4af3724;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:#fff;letter-spacing:.02em}.mini-badge-crown{position:absolute;bottom:-2px;right:-2px;width:20px;height:20px;border-radius:50%;background:#fffbf0;border:1.5px solid #E8C84A;display:flex;align-items:center;justify-content:center;color:#c9920a;font-size:9px;box-shadow:0 1px 4px #00000014}.mini-info{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.mini-info strong{font-family:var(--font-serif);font-size:1.05rem;font-weight:600;color:var(--color-text);letter-spacing:.015em;line-height:1.2}.mini-email{font-size:.8rem;color:var(--text-muted);word-break:break-word;overflow-wrap:break-word}.mini-gifts{font-size:.82rem;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}.mini-gifts svg{color:#d4af37;opacity:.8;flex-shrink:0}.mini-chevron{flex-shrink:0;color:#d4af37;opacity:.55;font-size:1rem;transition:opacity .15s ease,transform .15s ease;margin-left:4px}.draws-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.draw-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--cream);border-radius:var(--radius-sm);font-size:.95rem}.draw-giver{font-weight:600;color:var(--green-dark);min-width:120px}.draw-arrow{color:var(--gold);font-size:1.2rem;font-weight:700}.draw-receiver{font-weight:600;color:var(--green);flex:1}.draw-email-status{font-size:.8rem;padding:4px 10px;border-radius:20px;font-weight:600}.draw-email-status.sent{background:var(--success-light);color:#155724}.draw-email-status.pending{background:var(--gold-pale);color:#92400e}.email-results{display:flex;flex-direction:column;gap:8px;margin-top:12px}.email-result{display:flex;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem}.email-result.sent{background:var(--success-light)}.email-result.failed{background:var(--danger-light)}.footer{display:none}.text-muted{color:var(--text-muted);font-size:.9rem;margin-top:8px}.profile-header{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.profile-avatar-section{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.profile-header>.btn{width:auto;min-width:160px;justify-content:center}.profile-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--gold)}.profile-avatar-placeholder{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#b8960c,#d4af37);display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:#fff;font-weight:700}.profile-gift-ideas{color:var(--text-light);font-size:.9rem;margin-top:4px}.mini-badge{background:var(--gold-pale);color:var(--gold);border:1px solid rgba(184,150,12,.35);padding:4px;border-radius:50%;margin-right:6px;display:inline-flex}@media (max-width: 768px){.steps{grid-template-columns:1fr 1fr}.card{padding:16px 12px}.draw-item{flex-wrap:wrap;gap:8px}.draw-giver{min-width:auto}.admin-header{flex-direction:column}.participant-card-mini{padding:12px;gap:12px}}@media (max-width: 480px){.steps{grid-template-columns:1fr}.hero-actions{flex-direction:column;align-items:stretch}.btn-group:not(.membership-actions-main){flex-direction:column;align-items:center}.code-text{font-size:1.2rem}.family-header-banner h1{font-size:clamp(1.3rem,5vw,1.6rem)}.how-it-works{margin-top:32px}.card{padding:12px}}.fa-spin{animation:fa-spin 1s linear infinite}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.participant-profile-page{display:flex;flex-direction:column;flex:1;background:var(--color-bg)}.participant-hero{position:relative;background:url(/hero-participant.jpg) center/cover no-repeat;background-color:#5c4a2a;min-height:200px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:56px;padding-top:calc(16px + env(safe-area-inset-top,0px));flex-shrink:0}.participant-hero--loading{min-height:160px;padding-bottom:16px}.participant-back-btn{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));left:16px;width:40px;height:40px;border-radius:50%;background:#ffffff40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;color:#fff;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast)}.participant-back-btn:active{background:#fff6}.participant-hero-avatar-wrap{position:absolute;bottom:-48px;left:50%;transform:translate(-50%);z-index:2}.participant-hero-avatar{width:96px;height:96px;border-radius:50%;border:4px solid var(--color-surface);object-fit:cover;display:block;box-shadow:0 4px 20px #5c4a2a33}.participant-hero-avatar--placeholder{width:96px;height:96px;border-radius:50%;border:4px solid var(--color-surface);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:#fff;font-family:var(--font-serif);font-size:2.4rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #5c4a2a33}.participant-content{flex:1;background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;margin-top:-24px;padding:64px var(--space-md) calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + var(--space-md));position:relative;z-index:1}.participant-name{font-family:var(--font-serif);font-size:clamp(1.5rem,6vw,2rem);font-weight:700;color:var(--color-brand);text-align:center;margin:0 0 6px}.participant-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;line-height:1.5;margin:0 0 24px}.participant-ideas-block{background:var(--color-primary-pale);border-left:3px solid var(--color-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:14px 16px;margin:0 0 20px}.participant-ideas-label{font-family:var(--font-sans);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin:0 0 6px}.participant-ideas-text{font-family:var(--font-sans);font-size:.9375rem;line-height:1.6;color:var(--color-text);margin:0}.participant-wishlist{margin-top:4px}.participant-wishlist-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.participant-wishlist-title{font-family:var(--font-serif);font-size:var(--text-md);font-weight:700;color:var(--color-text)}.participant-wishlist-count{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-muted)}.participant-wish-list{list-style:none;margin:0;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.participant-wish-row{border-bottom:1px solid var(--color-border)}.participant-wish-row:last-child{border-bottom:none}.participant-wish-row-link{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;text-decoration:none;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background var(--transition-fast)}.participant-wish-row-link:active{background:var(--color-primary-pale)}.participant-wish-domain{flex-shrink:0;font-family:var(--font-sans);font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary);background:var(--color-primary-pale);border:1px solid rgba(201,146,10,.2);border-radius:var(--radius-pill);padding:3px 8px;white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis}.participant-wish-title{flex:1;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.participant-wish-row-right{flex-shrink:0;display:flex;align-items:center;gap:8px}.participant-wish-price{font-family:var(--font-sans);font-size:.875rem;font-weight:700;color:var(--color-primary);white-space:nowrap}.participant-wish-ext{font-size:.6rem;color:var(--color-text-muted);opacity:.55;flex-shrink:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#3d34278c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .18s ease}.modal-card{position:relative;background:var(--white);border-radius:var(--radius);padding:40px 32px 32px;max-width:360px;width:100%;box-shadow:var(--shadow-lg);text-align:center;animation:modalSlideIn .22s ease;max-height:calc(90vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-close{position:absolute;top:8px;right:8px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:0;border-radius:50%;transition:var(--transition);display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;touch-action:manipulation}.modal-close:hover{background:var(--cream);color:var(--text)}.modal-avatar-wrap{margin-bottom:16px}.modal-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:4px solid var(--gold)}.modal-avatar-placeholder{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,#b8960c,#d4af37);display:flex;align-items:center;justify-content:center;font-size:2.4rem;color:#fff;font-weight:700;margin:0 auto}.modal-name{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;color:var(--green-dark);margin-bottom:8px}.modal-admin-badge{display:inline-flex;align-items:center;background:var(--gold-pale);color:var(--gold);font-size:.8rem;font-weight:600;padding:3px 10px;border-radius:12px;margin-bottom:16px}.modal-gift-ideas{margin-top:16px;background:var(--gold-pale);border:1px solid rgba(184,150,12,.25);border-radius:var(--radius-sm);padding:14px 16px;text-align:left}.modal-gift-label{font-size:.8rem;font-weight:600;color:var(--gold);margin-bottom:6px;display:flex;align-items:center}.modal-gift-text{font-size:.9rem;color:var(--text-light);line-height:1.6}.modal-no-gift{margin-top:16px;font-size:.9rem;color:var(--text-muted);font-style:italic}.modal-gift-links{margin-top:12px;text-align:left}.modal-gift-links .modal-gift-label{color:var(--green)}.guest-edit-card{max-width:400px;padding:40px 28px 28px;text-align:left}.guest-edit-steps-indicator{display:flex;justify-content:center;gap:8px;margin-bottom:24px}.guest-step-dot{width:8px;height:8px;border-radius:50%;background:#e5ddd0;transition:background .3s ease,transform .3s ease}.guest-step-dot--active{background:var(--gold);transform:scale(1.25)}.guest-step-dot--done{background:var(--success);transform:scale(1)}.guest-edit-content{overflow:hidden}.guest-edit-step{animation:guestStepIn .25s ease}@keyframes guestStepIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.guest-edit-icon{width:48px;height:48px;border-radius:50%;background:var(--gold-pale);border:2px solid rgba(184,150,12,.3);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--gold);margin-bottom:14px}.guest-edit-icon--success{background:var(--success-light);border-color:var(--success);color:var(--success)}.guest-edit-title{font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;color:var(--green-dark);margin-bottom:6px}.guest-edit-subtitle{font-size:.88rem;color:var(--text-light);line-height:1.55;margin-bottom:20px}.input-otp{text-align:center!important;font-size:1.8rem!important;font-weight:700!important;letter-spacing:.5rem!important;font-family:Cormorant Garamond,Georgia,serif!important;color:var(--green-dark)!important;padding-left:.5rem!important}.guest-edit-step--success{text-align:center}.guest-edit-step--success .guest-edit-icon{margin:0 auto 14px}@media (prefers-reduced-motion: reduce){.guest-edit-step{animation:none}.guest-step-dot{transition:none}}.participant-card-mini.clickable{cursor:pointer;touch-action:manipulation}.participant-card-mini.clickable:hover,.participant-card-mini.clickable:focus-visible{background:linear-gradient(105deg,#fef8e8,#fffdf7 55%);border-color:#e8c84a;box-shadow:0 4px 20px #b8860c21;transform:translateY(-2px)}.participant-card-mini.clickable:hover .mini-chevron,.participant-card-mini.clickable:focus-visible .mini-chevron{opacity:1;transform:translate(4px)}.participant-card-mini.clickable:active{background:#d4af3714}.participant-card-mini.clickable:active .mini-chevron{opacity:.7;transform:translate(0)}@media (prefers-reduced-motion: reduce){.participant-card-mini,.mini-chevron{transition:none}}.gift-links-list{display:flex;flex-direction:column;gap:8px}.gift-link-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--border, #e5ddd0);border-radius:12px;background:var(--white);text-decoration:none;color:var(--text);transition:var(--transition);min-height:52px;min-width:0;overflow:hidden}.gift-link-card--clickable{cursor:pointer;touch-action:manipulation}.gift-link-card--clickable:hover{background:var(--gold-pale);border-color:var(--gold);box-shadow:0 2px 10px #b8960c1f}.gift-link-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.gift-link-title{font-weight:600;font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.gift-link-price{font-size:.85rem;font-weight:700;color:var(--gold)}.gift-link-icon-ext{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.gift-link-remove{background:none;border:none;color:var(--danger);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:8px;font-size:.85rem;flex-shrink:0;touch-action:manipulation;transition:var(--transition)}.gift-link-remove:hover{background:var(--danger-light)}.gift-link-input-row{display:flex;gap:8px;align-items:stretch}.gift-link-url-input{flex:1;padding:12px 14px;border:2px solid #e5ddd0;border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:var(--white);color:var(--text);min-height:44px;touch-action:manipulation;transition:var(--transition);box-sizing:border-box}.gift-link-url-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #b8960c1f}.gift-link-add-btn{white-space:nowrap;flex-shrink:0}[data-theme=dark] .gift-link-card{background:var(--white);border-color:#3a3020}[data-theme=dark] .gift-link-url-input{background:#1e1a0e;border-color:#3a3020;color:var(--text)}.participant-section{padding:16px 20px;background:var(--gold-pale);border-radius:var(--radius-sm);border:1px solid rgba(184,150,12,.2)}.participant-section-title{margin:0 0 10px;font-size:.95rem;font-weight:700;color:var(--green-dark);display:flex;align-items:center}[data-theme=dark] .participant-section{background:var(--gold-pale);border-color:#d4af3733}.family-edit-cta{background:var(--gold-pale);border:1px solid var(--gold);border-radius:16px;padding:16px;text-align:center;margin-top:24px}.family-edit-cta__header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.family-edit-cta__icon{color:var(--gold);font-size:1.1rem}.family-edit-cta__title{font-size:.95rem;font-weight:600;color:var(--text);margin:0}.family-edit-cta .form-group{text-align:left}.edit-profile-container{max-width:480px;margin:0 auto;padding:24px 16px}.edit-profile-status{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;min-height:280px}.edit-profile-status h2{font-family:Cormorant Garamond,Georgia,serif;font-size:1.4rem;color:var(--green-dark);margin-bottom:8px}.edit-profile-status p{font-size:.95rem;color:var(--text-light);line-height:1.6;max-width:320px}@media (max-width: 480px){.edit-profile-container{padding:16px 12px}}
