:root{--bg: #f5f3f0;--surface: #ffffff;--text: #2c2a27;--text-muted: #7a756d;--border: #ddd8d0;--accent: #5c6856;--accent-hover: #4a5544;--accent-text: #ffffff;--error: #9e3a3a;--radius: 6px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;overflow-x:hidden}h1,h2{font-family:Georgia,Times New Roman,serif;font-weight:400}.app{min-height:100vh;display:flex;flex-direction:column}header{position:fixed;bottom:0;right:0;padding:.75rem 1rem;z-index:10}.lang-switcher{display:flex;gap:.25rem}.lang-switcher button{background:#ffffffb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.5);border-radius:var(--radius);padding:.25rem .6rem;font-size:.8rem;cursor:pointer;color:var(--text);transition:all .15s}.lang-switcher button:hover{background:#ffffffe6}.lang-switcher button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.hero{position:relative;width:100vw;aspect-ratio:16 / 5;max-height:320px;overflow:hidden;margin-left:calc(-50vw + 50%)}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:saturate(.6) brightness(.9) contrast(1.05)}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#695f5026,#695f500d 50%,#f5f3f099 90%,#f5f3f0)}main{flex:1;display:flex;flex-direction:column;align-items:center;padding:0 0 1.5rem}.page-header{text-align:center;margin-bottom:1.25rem;max-width:560px;padding:0 1rem}.divider{width:60px;height:1px;background:var(--border);margin:0 auto 1rem}.page-header h1{font-size:1.6rem;margin-bottom:.35rem;line-height:1.3}.page-header .subtitle{color:var(--text-muted);font-size:.95rem;margin-bottom:.75rem}.details{border-top:1px solid var(--border);padding-top:.75rem;font-size:.9rem}.details .location{font-weight:600;color:var(--text)}.details .address{color:var(--text-muted);margin-bottom:.35rem}.details .time{color:var(--text-muted);font-style:italic}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:420px}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.9rem;margin-bottom:.35rem;color:var(--text)}.form-group input{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s}.form-group input:focus{outline:none;border-color:var(--accent)}.guest-list{display:flex;flex-direction:column;gap:.4rem}.guest-row{display:flex;gap:.35rem;align-items:center}.guest-row input{flex:1}.guest-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:1.1rem;cursor:pointer;transition:all .15s;flex-shrink:0;line-height:1}.guest-btn:hover{border-color:var(--accent);color:var(--accent)}.guest-btn.remove:hover{border-color:var(--error);color:var(--error)}.guest-btn.add{align-self:flex-start;margin-top:.15rem}.form-group textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;font-family:inherit;color:var(--text);background:var(--surface);transition:border-color .15s;resize:vertical;line-height:1.5}.form-group textarea:focus{outline:none;border-color:var(--accent)}.btn{display:inline-block;padding:.65rem 1.5rem;background:var(--accent);color:var(--accent-text);border:none;border-radius:var(--radius);font-size:.95rem;font-family:inherit;cursor:pointer;transition:background .15s;width:100%}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn-secondary:hover{background:var(--accent);color:var(--accent-text)}.success{text-align:center;padding:1rem 0}.success h2{font-size:1.3rem;margin-bottom:.5rem}.success p{color:var(--text-muted);margin-bottom:1.5rem}.error-message{color:var(--error);font-size:.85rem;margin-bottom:1rem}@media(max-width:500px){.card{padding:1.5rem 1.25rem}.page-header h1{font-size:1.35rem}}
