@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600&family=Inter:wght@400;500&display=swap";:root{--primary-color:#e8b7b1;--secondary-color:#a8b89a;--accent-color:#f2c9a1;--text-dark:#6a564b;--text-light:#8b796d;--bg-light:#f7f1ea;--bg-gold:#f7e6c4;--glass-bg:#f7f1eab3;--glass-border:#e8b7b14d;--font-heading:"Cormorant Garamond", serif;--font-body:"Nunito", sans-serif}body,html{background-color:var(--bg-light);width:100%;min-height:100vh;color:var(--text-dark);font-family:var(--font-body);margin:0;padding:0}*{box-sizing:border-box}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);margin:0;font-weight:600}.app-container{background:radial-gradient(circle at 50% 50%, #fff 0%, var(--bg-light) 60%, #e6dccf 100%);background-blend-mode:multiply;width:100vw;height:100vh;position:relative;overflow:hidden}.app-container:before{content:"";pointer-events:none;z-index:0;background:url("data:image/svg+xml;utf8,<svg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"noiseFilter\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.65\" numOctaves=\"3\" stitchTiles=\"stitch\"/></filter><rect width=\"100%\" height=\"100%\" filter=\"url(%23noiseFilter)\" opacity=\"0.05\"/></svg>");width:100%;height:100%;position:absolute;top:0;left:0}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 10px 40px #ff9eb526}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#fff6;justify-content:center;align-items:center;width:100%;height:100%;animation:.4s ease-out forwards fadeIn;display:flex;position:absolute;top:0;left:0}.modal-content{text-align:center;width:90%;max-width:420px;padding:2.5rem;animation:.4s ease-out forwards slideUp}.modal-content h1{background:linear-gradient(135deg, var(--primary-color), var(--secondary-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.2rem}.modal-content p{color:#64748b;margin-bottom:2rem;font-size:1rem}.form-group{text-align:left;margin-bottom:1.5rem}.form-group label{color:#475569;margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}.form-input{width:100%;color:var(--text-dark);font-family:var(--font-body);background:#fff;border:1px solid #ff9eb54d;border-radius:10px;padding:.85rem 1rem;font-size:1rem;transition:all .2s}.form-input:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #ff9eb533}.btn-submit{background:linear-gradient(135deg, var(--primary-color), #ffb6c1);color:#fff;width:100%;font-size:1.05rem;font-weight:600;font-family:var(--font-heading);cursor:pointer;border:none;border-radius:10px;padding:.9rem;transition:transform .2s,box-shadow .2s}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #ff9eb566}.btn-submit:disabled{opacity:.7;cursor:not-allowed;filter:grayscale(.2)}.error-msg{color:#ef4444;min-height:20px;margin-top:.25rem;font-size:.85rem}.floating-label{font-family:var(--font-heading);color:var(--text-dark);pointer-events:none;white-space:nowrap;background:#fffc;border:1px solid #ff9eb566;border-radius:12px;padding:4px 10px;font-size:14px;font-weight:500;box-shadow:0 2px 8px #0000000d}.globe-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.globe-container canvas{filter:sepia(.25)contrast(.85)brightness(1.05)saturate(.75)hue-rotate(-5deg)drop-shadow(0 0 60px #f2c9a14d)drop-shadow(0 0 120px #e8b7b133);transition:filter 2s ease-in-out}.invitation-card{z-index:50;pointer-events:none;-webkit-backdrop-filter:blur(16px);text-align:center;background:#fffdfaa6;border:1px solid #fff6;border-radius:24px;padding:2.5rem 3rem;position:absolute;top:3rem;left:3rem;box-shadow:0 10px 40px #6a564b0d,inset 0 0 0 1px #fffc}.invitation-card:before{content:"";pointer-events:none;background:url("data:image/svg+xml;utf8,<svg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\"><filter id=\"noiseFilter\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.8\" numOctaves=\"3\" stitchTiles=\"stitch\"/></filter><rect width=\"100%\" height=\"100%\" filter=\"url(%23noiseFilter)\" opacity=\"0.03\"/></svg>");border-radius:24px;width:100%;height:100%;position:absolute;top:0;left:0}.invitation-card h2{font-family:var(--font-heading);color:var(--text-dark);letter-spacing:.02em;text-shadow:0 2px 10px #fffc;margin-bottom:.5rem;font-size:2.2rem;font-style:italic}.invitation-card p{color:var(--text-light);letter-spacing:.05em;text-transform:uppercase;margin:0;font-size:1.1rem;font-weight:400}.dust-layer{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dust-particle{opacity:0;background:radial-gradient(circle,#fffc 0%,#fff0 70%);border-radius:50%;animation:linear infinite float-dust;position:absolute}@keyframes float-dust{0%{opacity:0;transform:translateY(0)scale(.5)}20%{opacity:.6}80%{opacity:.6}to{opacity:0;transform:translateY(-100px)scale(1.2)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.float-add-btn{background:var(--primary-color);color:#fff;cursor:pointer;z-index:50;width:65px;height:65px;font-size:2.2rem;font-family:var(--font-heading);border:none;border-radius:50%;justify-content:center;align-items:center;line-height:1;transition:all .2s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;bottom:2rem;right:2rem;box-shadow:0 8px 25px #ff9eb580}.float-add-btn:hover{background:var(--secondary-color);transform:scale(1.1)rotate(90deg);box-shadow:0 8px 25px #a2cffe80}.modal-actions{justify-content:space-between;gap:1rem;margin-top:1rem;display:flex}.btn-cancel{width:100%;color:var(--primary-color);font-size:1.05rem;font-weight:600;font-family:var(--font-heading);cursor:pointer;background:#fff;border:1px solid #ff9eb566;border-radius:10px;padding:.9rem;transition:all .2s}.btn-cancel:hover:not(:disabled){background:#fff5f8}.lookup-toggle{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:.5rem;margin-bottom:1.5rem;padding:.25rem;display:flex}.toggle-btn{color:#64748b;cursor:pointer;font-family:var(--font-body);background:0 0;border:none;border-radius:8px;flex:1;padding:.6rem;font-weight:500;transition:all .2s}.toggle-btn.active{color:var(--primary-color);background:#fff;font-weight:600;box-shadow:0 2px 8px #0000000d}.flying-heart{pointer-events:none;text-shadow:0 0 5px #fffc;font-size:16px;animation:1s infinite alternate pulse}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.3)}}.join-page{background:linear-gradient(160deg,#fff5f8 0%,#f0f7ff 50%,#fff5f8 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex;overflow:auto}.join-card{text-align:center;width:100%;max-width:440px;padding:2.5rem 2rem;animation:.5s ease-out forwards slideUp}.join-card h1{background:linear-gradient(135deg, var(--primary-color), #a2cffe);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.4rem;font-size:1.8rem}.join-card>p{color:#64748b;margin-bottom:2rem;font-size:.95rem}.success-content{padding:2rem 0}.success-emoji{margin-bottom:1rem;font-size:4rem;animation:1.5s infinite alternate pulse;display:block}.success-content h1{margin-bottom:.75rem;font-size:2rem}.success-content p{color:#64748b;font-size:1.05rem;line-height:1.6}.qr-page{background:linear-gradient(160deg,#fff5f8 0%,#f0f7ff 50%,#fff5f8 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.qr-card{text-align:center;max-width:520px;padding:3rem 3.5rem;animation:.5s ease-out forwards slideUp}.qr-card h1{background:linear-gradient(135deg, var(--primary-color), #a2cffe);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2.2rem}.qr-card>p{color:#64748b;margin-bottom:2rem;font-size:1.1rem}.qr-wrapper{background:#fff;border-radius:20px;margin-bottom:1.5rem;padding:2rem;display:inline-block;box-shadow:0 8px 30px #ff9eb526}.qr-url{color:#94a3b8;word-break:break-all;font-family:monospace;font-size:.85rem}.admin-page{background:linear-gradient(160deg,#fff5f8 0%,#f0f7ff 50%,#fff5f8 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.admin-card{text-align:center;width:100%;max-width:480px;padding:2.5rem;animation:.5s ease-out forwards slideUp}.admin-card h1{background:linear-gradient(135deg, var(--primary-color), #a2cffe);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:2rem}.admin-card>p{color:#64748b;margin-bottom:2rem}.admin-section{text-align:center;background:#fff;border:1px solid #fce4ec;border-radius:12px;padding:1.5rem}.admin-section h2{color:var(--text-dark);margin-bottom:.5rem;font-size:1.2rem}.admin-warn{color:#94a3b8;margin-bottom:1.5rem;font-size:.9rem}.btn-danger{color:#fff;width:100%;font-size:1rem;font-weight:600;font-family:var(--font-heading);cursor:pointer;background:linear-gradient(135deg,#ef4444,#f87171);border:none;border-radius:10px;padding:.9rem;transition:transform .2s,box-shadow .2s}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ef44444d}.admin-done{flex-direction:column;align-items:center;gap:.75rem;display:flex}.admin-done span{font-size:2.5rem}.bottom-right-nav{z-index:9999;border-radius:12px;gap:.5rem;padding:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.nav-btn{font-family:var(--font-heading);color:var(--text-dark);background:#ffffff80;border:1px solid #0000;border-radius:8px;padding:.5rem .8rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s}.nav-btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:#fff;transform:translateY(-2px);box-shadow:0 4px 10px #ff9eb533}.pan-controls{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfaa6;border:1px solid #ffffff80;border-radius:20px;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex;position:fixed;bottom:2rem;left:2rem;box-shadow:0 8px 25px #6a564b14}.pan-row{align-items:center;gap:.25rem;display:flex}.pan-center{background:radial-gradient(circle,#fffc 0%,#fff0 70%);border-radius:50%;width:38px;height:38px}.pan-btn{width:38px;height:38px;color:var(--text-dark);cursor:pointer;background:#fff9;border:1px solid #fffc;border-radius:12px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.pan-btn svg{opacity:.8;width:20px;height:20px}.pan-btn:hover{color:var(--primary-color);background:#fff;transform:scale(1.05);box-shadow:0 4px 10px #e8b7b14d}.pan-btn:active{transform:scale(.95)}
