*{box-sizing:border-box}:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#0f0f1e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh;overflow-x:hidden;background:#f5f0e8}#root{min-height:100vh}button{font-family:inherit;cursor:pointer}a{color:#0df;text-decoration:none;transition:color .2s}a:hover{color:#0f0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.terminal-container{background-color:#000;color:#fc9;font-family:SF Mono,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;padding:0;border-radius:20px;box-shadow:0 0 40px #ff88004d,0 0 80px #96f3;border:3px solid #FF9966;max-width:1100px;margin:20px auto;height:85vh;min-height:500px;overflow:hidden;display:flex;flex-direction:column;position:relative;animation:terminalGlow 3s ease-in-out infinite alternate}@keyframes terminalGlow{0%{box-shadow:0 0 40px #ff88004d,0 0 80px #96f3}to{box-shadow:0 0 50px #f806,0 0 90px #9966ff4d}}.terminal-header{background:linear-gradient(90deg,#f96,#fa8,#96f);padding:12px 15px;display:flex;align-items:center;border-top-left-radius:17px;border-top-right-radius:17px;border-bottom:2px solid #FF6633;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.terminal-header:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:headerShine 3s ease-in-out infinite}@keyframes headerShine{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.terminal-buttons{display:flex;gap:10px;margin-right:20px}.terminal-button{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:0 0 8px #00000080,inset 0 1px 2px #ffffff4d;border:1px solid rgba(0,0,0,.3);transition:all .3s ease}.terminal-button:hover{transform:scale(1.1);box-shadow:0 0 12px #fff9}.terminal-button.close{background:radial-gradient(circle at 30% 30%,#ff6b6b,#c00)}.terminal-button.minimize{background:radial-gradient(circle at 30% 30%,#ffd93d,orange)}.terminal-button.maximize{background:radial-gradient(circle at 30% 30%,#6bcf7f,#0a4)}.terminal-title{color:#000;font-size:13px;font-weight:700;flex:1;text-align:center;letter-spacing:1.5px;text-transform:uppercase;padding-right:70px;text-shadow:0 1px 2px rgba(255,255,255,.3)}.terminal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;background-color:#000;background-image:radial-gradient(circle at 10% 20%,rgba(255,102,153,.05) 0%,transparent 50%),radial-gradient(circle at 90% 80%,rgba(153,102,255,.05) 0%,transparent 50%);line-height:1.7;position:relative}.terminal-body:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,153,102,.03) 0px,transparent 1px,transparent 2px,rgba(255,153,102,.03) 3px);pointer-events:none;animation:scanlines 8s linear infinite}@keyframes scanlines{0%{transform:translateY(0)}to{transform:translateY(10px)}}.terminal-body::-webkit-scrollbar{width:14px}.terminal-body::-webkit-scrollbar-track{background:#1a1a1a;border-radius:10px;border:2px solid #333}.terminal-body::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#f96,#f63);border-radius:10px;border:2px solid #000;box-shadow:0 0 10px #ff663380}.terminal-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#fa7,#f74);box-shadow:0 0 15px #f63c}.terminal-output{margin-bottom:12px}.terminal-line{margin-bottom:10px;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.terminal-input-line{color:#fc9;margin-bottom:6px;display:flex;align-items:flex-start;max-width:100%;animation:lineAppear .3s ease-out}@keyframes lineAppear{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.terminal-prompt{color:#00d9ff;margin-right:10px;flex-shrink:0;-webkit-user-select:none;user-select:none;font-weight:700;text-shadow:0 0 8px rgba(0,217,255,.6)}.terminal-command{color:#fc9;flex:1;word-wrap:break-word;overflow-wrap:break-word;min-width:0}.terminal-output-line{margin-bottom:10px;animation:lineAppear .3s ease-out}.terminal-output-content{color:#9cf;margin:0;font-family:inherit;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;text-shadow:0 0 5px rgba(153,204,255,.3)}.terminal-system-line{margin-bottom:15px;animation:systemBoot .5s ease-out}@keyframes systemBoot{0%{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}.terminal-system-content{color:#f96;margin:0;font-family:inherit;white-space:pre-wrap;overflow-wrap:break-word;max-width:100%;text-shadow:0 0 8px rgba(255,153,102,.5);font-weight:500}.terminal-error-line{margin-bottom:10px;animation:errorPulse .5s ease-out}@keyframes errorPulse{0%,to{opacity:1}50%{opacity:.7}}.terminal-error-content{color:#ff6b6b;margin:0;font-family:inherit;white-space:pre-wrap;overflow-wrap:break-word;max-width:100%;text-shadow:0 0 10px rgba(255,107,107,.6);font-weight:600}.terminal-input-form{margin-top:12px}.terminal-input-container{display:flex;align-items:center;width:100%}.terminal-input{background:transparent;border:none;color:#fc9;font-family:inherit;font-size:inherit;outline:none;flex:1;caret-color:#00d9ff;padding:0;margin:0;text-shadow:0 0 5px rgba(255,204,153,.3)}.terminal-input::selection{background:#ff99664d;color:#fc9}.terminal-input:disabled{opacity:.4;cursor:not-allowed}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.terminal-cursor{display:inline-block;width:10px;height:18px;background-color:#00d9ff;animation:blink 1s infinite;margin-left:2px;box-shadow:0 0 10px #00d9ffcc}.terminal-body:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#f96,#fa8,#96f,#c8f,#f96);opacity:.6;animation:accentPulse 4s ease-in-out infinite}@keyframes accentPulse{0%,to{opacity:.6}50%{opacity:.9}}@media(max-width:768px){.terminal-container{max-width:100%;height:90vh;margin:10px;border-radius:15px;font-size:13px;border-width:2px}.terminal-body{padding:15px}.terminal-header{padding:10px 12px}.terminal-title{font-size:11px;padding-right:60px;letter-spacing:1px}.terminal-button{width:12px;height:12px}.terminal-body::-webkit-scrollbar{width:10px}}@media(max-width:480px){.terminal-container{font-size:12px;margin:5px;border-radius:12px}.terminal-body{padding:12px}.terminal-title{font-size:10px}}@media print{.terminal-container{display:none}}.terminal-container.gooptime-active{animation:none}.wedding-info-container{max-width:700px;margin:40px auto 0;padding:0 40px 60px}.info-section{margin-bottom:40px;padding:0;background:transparent;border:none;text-align:center}.info-section h2{color:#4f704c;font-size:.9rem;margin-bottom:25px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;position:relative;padding-bottom:15px}.info-section h2:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:50px;height:1px;background:#4f704c4d}.info-section p{margin:12px 0;color:#5b4039;line-height:1.9;letter-spacing:.02em;font-size:1rem}.info-section strong{color:#353535;font-weight:500;letter-spacing:.02em}.detail-text{color:#5b4039;font-size:.95rem;opacity:.9}.map-link,.hotel-link{display:inline-block;margin-top:15px;color:#4f704c;text-decoration:none;font-weight:500;transition:all .3s ease;border-bottom:1px solid rgba(79,112,76,.3);padding-bottom:3px;letter-spacing:.05em;font-size:.95rem}.map-link:hover,.hotel-link:hover{color:#3f5a3c;border-bottom-color:#4f704c}.gift-section .gift-message{font-size:1.05rem;line-height:1.7;color:#353535;margin-bottom:30px;letter-spacing:.02em}.gift-section .payment-info{background:#4f704c0d;padding:30px;border-top:1px solid rgba(79,112,76,.2);border-bottom:1px solid rgba(79,112,76,.2)}.gift-section .payment-info p{margin:10px 0;font-size:1rem;color:#353535;letter-spacing:.02em}.gift-section .payment-info strong{color:#5b4039;font-weight:600}.gift-section .payment-note{font-size:.9rem;color:#5b4039;font-style:italic;margin-top:15px}.hotels-table{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 30px;max-width:600px;margin:0 auto}.hotel-row{display:flex;flex-direction:column;gap:4px}.hotel-name-cell{font-size:.95rem;color:#353535;font-weight:500;letter-spacing:.01em;line-height:1.4}.hotel-distance-cell{font-size:.8rem;color:#5b4039;opacity:.8;font-style:italic}@media(max-width:768px){.wedding-info-container{margin-top:40px;padding:0 30px 60px}.info-section{margin-bottom:40px}.info-section h2{font-size:.85rem}.info-section p{font-size:.95rem}.hotels-table{grid-template-columns:1fr;gap:16px}}@media(max-width:480px){.wedding-info-container{padding:0 20px 50px}.info-section{margin-bottom:35px}.info-section h2{font-size:.8rem;letter-spacing:.12em}.info-section p{font-size:.9rem;line-height:1.8}.hotel-name-cell{font-size:.9rem}.hotel-distance-cell{font-size:.75rem}}.easy-mode-container{min-height:100vh;background:linear-gradient(to bottom,#faf8f5,#f5f2ed);padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif}.terminal-toggle-corner{position:fixed;top:20px;right:20px;background:transparent;color:#4f704c;border:1px solid #4f704c;padding:8px 20px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .3s ease;font-weight:500;z-index:100}.terminal-toggle-corner:hover{background:#4f704c;color:#faf8f5}.wedding-hero{max-width:800px;margin:0 auto;padding:60px 40px 40px;text-align:center;position:relative}.header-ornament{width:60px;height:1px;background:linear-gradient(to right,transparent,#4f704c,transparent);margin:0 auto;position:relative}.header-ornament.top{margin-bottom:50px}.header-ornament.bottom{margin-top:50px}.header-ornament:before,.header-ornament:after{content:"";position:absolute;width:4px;height:4px;background:#4f704c;border-radius:50%;top:50%;transform:translateY(-50%)}.header-ornament:before{left:0}.header-ornament:after{right:0}.names-header{margin:0 auto 40px;max-width:650px;width:100%}.names-header img{width:100%;height:auto;display:block}.invitation-text{font-size:1rem;letter-spacing:.2em;text-transform:uppercase;color:#5b4039;margin:0 0 50px;font-weight:400}.gold-divider{max-width:400px;margin:40px auto;opacity:.9}.gold-divider.small{max-width:280px;margin:40px auto}.gold-divider img{width:100%;height:auto;display:block}.event-details{margin:40px 0 30px;display:flex;flex-direction:column;gap:30px}.date-block,.venue-block{display:flex;flex-direction:column;gap:8px}.date-label{font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:#4f704c;font-weight:500}.date-main{font-size:1.8rem;color:#353535;font-weight:300;letter-spacing:.02em;margin:5px 0}.time{font-size:1.1rem;color:#5b4039;letter-spacing:.05em}.venue-name{font-size:1.4rem;color:#353535;font-weight:400;letter-spacing:.03em}.venue-subtitle{font-size:.95rem;color:#5b4039;font-style:italic;letter-spacing:.02em}.venue-location{font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:#4f704c;margin-top:5px;font-weight:500}.rsvp-success-banner{max-width:600px;margin:0 auto 50px;padding:40px 30px;background:#4f704c0d;border-top:1px solid rgba(79,112,76,.2);border-bottom:1px solid rgba(79,112,76,.2);text-align:center}.rsvp-success-banner p{margin:8px 0;color:#353535;font-size:1.05rem;letter-spacing:.02em}.rsvp-success-banner p:first-child{font-weight:500}.action-section{text-align:center;padding:30px 20px;display:flex;flex-direction:column;align-items:center;gap:20px}.rsvp-button{padding:14px 50px;font-size:.9rem;letter-spacing:.15em;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s ease;font-weight:500;position:relative;overflow:hidden}.rsvp-button.primary{background:#5b4039;color:#faf8f5;box-shadow:0 4px 20px #5b403926}.rsvp-button.primary:hover{background:#4a332d;box-shadow:0 6px 30px #5b403940;transform:translateY(-2px)}.rsvp-button.primary:active{transform:translateY(0)}.form-wrapper{max-width:700px;margin:0 auto;padding:0 40px 60px}@media(max-width:768px){.terminal-toggle-corner{top:15px;right:15px;padding:6px 16px;font-size:.7rem}.wedding-hero{padding:50px 30px 30px}.names-header{max-width:100%}.date-main{font-size:1.5rem}.venue-name{font-size:1.2rem}.invitation-text{font-size:.9rem}.gold-divider{max-width:300px;margin:30px auto}.gold-divider.small{max-width:220px;margin:30px auto}.rsvp-button{padding:14px 45px;font-size:.85rem}.form-wrapper{padding:0 20px 40px}}@media(max-width:480px){.terminal-toggle-corner{top:12px;right:12px;padding:5px 12px;font-size:.65rem}.wedding-hero{padding:40px 20px 25px}.header-ornament{width:40px}.header-ornament.top,.names-header{margin-bottom:25px}.invitation-text{font-size:.8rem;letter-spacing:.15em;margin-bottom:25px}.event-details{gap:25px;margin:30px 0 25px}.date-main{font-size:1.3rem}.time{font-size:1rem}.venue-name{font-size:1.1rem}.gold-divider{max-width:250px;margin:25px auto}.rsvp-button{padding:12px 40px;font-size:.85rem;width:100%;max-width:280px}.action-section{padding:25px 20px;gap:15px}.form-wrapper{padding:0 15px 30px}}.rsvp-form-container{background:transparent;padding:40px 0;border:none}.rsvp-form-container h2{color:#353535;font-size:1.8rem;font-weight:400;text-align:center;letter-spacing:.05em;margin-bottom:40px}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:10px;color:#5b4039;font-weight:500;letter-spacing:.03em;font-size:.9rem}.form-group input[type=text],.form-group input[type=email],.form-group input[type=tel],.form-group textarea{width:100%;padding:14px 16px;border:1px solid rgba(79,112,76,.3);background:#ffffffb3;font-size:1rem;font-family:inherit;transition:all .3s ease;color:#353535}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#4f704c;background:#fff;box-shadow:0 0 0 3px #4f704c1a}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:15px;margin-top:30px}.btn-primary,.btn-secondary{padding:14px 35px;font-size:.9rem;cursor:pointer;transition:all .3s ease;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border:none}.btn-primary{background:#5b4039;color:#faf8f5;flex:1}.btn-primary:hover:not(:disabled){background:#4a332d;box-shadow:0 4px 15px #5b403933}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;color:#5b4039;border:1px solid #5b4039}.btn-secondary:hover{background:#5b40390d}.btn-yes,.btn-no{padding:16px 35px;font-size:.95rem;cursor:pointer;transition:all .3s ease;font-weight:500;letter-spacing:.05em;border:none;flex:1}.btn-yes{background:#4f704c;color:#faf8f5}.btn-yes:hover{background:#3f5a3c;box-shadow:0 4px 15px #4f704c40}.btn-no{background:#5b4039;color:#faf8f5}.btn-no:hover{background:#4a332d;box-shadow:0 4px 15px #5b403940}.clarify-section,.confirm-section,.attending-section,.hotel-section{text-align:center;padding:20px 0}.clarify-section p,.confirm-section p,.attending-section p{font-size:1.1rem;margin-bottom:25px;color:#353535;letter-spacing:.02em}.guest-list{display:flex;flex-direction:column;gap:12px;margin:25px 0}.guest-option{background:#fff9;border:1px solid rgba(79,112,76,.3);color:#353535;padding:16px 20px;cursor:pointer;transition:all .3s ease;font-size:1.05rem}.guest-option:hover{background:#4f704c;color:#faf8f5;border-color:#4f704c;box-shadow:0 3px 12px #4f704c33}.guest-confirm{background:#4f704c14;padding:25px;margin:25px 0;border:1px solid rgba(79,112,76,.2)}.guest-confirm strong{font-size:1.25rem;color:#353535;letter-spacing:.02em}.plus-one-info{margin-top:10px;color:#5b4039;font-size:.95rem}.attending-buttons{display:flex;gap:20px;margin:20px 0}.error-message{background:#ef9a9a26;color:#c62828;padding:18px 20px;margin-bottom:25px;border-left:3px solid #c62828;letter-spacing:.02em;text-align:left}.hotels-display{background:#4f704c0d;padding:30px;margin-top:25px;border:1px solid rgba(79,112,76,.2)}.hotels-display .success-message{color:#353535;margin-bottom:30px}.hotels-display .success-message h3{color:#4f704c;font-size:1.5rem;margin-bottom:10px}.hotels-display .success-message h4{color:#353535;font-size:1.2rem;margin-top:20px;margin-bottom:15px}.hotels-display .success-message p{color:#5b4039;font-size:1rem}.hotel-section h3{font-size:1.2rem;margin-bottom:20px;color:#353535;font-weight:500;letter-spacing:.03em}.hotels-content{color:#5b4039;line-height:1.8;letter-spacing:.02em}.gift-section{max-width:700px;margin:0 auto;padding:40px 40px 80px;text-align:center}.gift-message{font-size:1.05rem;line-height:1.7;color:#353535;margin-bottom:30px;letter-spacing:.02em}.payment-info{background:#4f704c0d;padding:30px;border-top:1px solid rgba(79,112,76,.2);border-bottom:1px solid rgba(79,112,76,.2)}.payment-info p{margin:10px 0;font-size:1rem;color:#353535;letter-spacing:.02em}.payment-info strong{color:#5b4039;font-weight:600}.payment-note{font-size:.9rem;color:#5b4039;font-style:italic;margin-top:15px}@media(max-width:768px){.form-actions,.attending-buttons{flex-direction:column}.btn-yes,.btn-no,.btn-primary,.btn-secondary{flex:none;width:100%}.gift-section{padding:30px 30px 60px}.gift-message{font-size:1rem}.payment-info{padding:25px 20px}}@media(max-width:480px){.gift-section{padding:25px 20px 50px}.gift-message{font-size:.95rem}.payment-info{padding:20px 15px}.payment-info p{font-size:.95rem}}.app{min-height:100vh}.terminal-mode-wrapper{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f0f1e);min-height:100vh;padding:20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.terminal-mode-header{color:#fffc;text-align:center;margin-bottom:15px;font-size:14px;max-width:1000px;width:100%}.app-footer{margin-top:20px;text-align:center}.mode-toggle-link{background:none;border:2px solid #00ddff;color:#0df;padding:10px 25px;font-size:14px;border-radius:8px;cursor:pointer;font-family:inherit;transition:all .2s}.mode-toggle-link:hover{background:#0df;color:#0f0f1e;box-shadow:0 0 15px #00ddff80}.mode-toggle-link-inline{background:none;border:none;color:#0df;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;text-decoration:underline;transition:all .2s}.mode-toggle-link-inline:hover{color:#0f0;text-shadow:0 0 10px rgba(0,221,255,.5)}@media(max-width:768px){.terminal-mode-wrapper{padding:10px}.app-footer{font-size:12px;margin-top:15px}.mode-toggle-link{font-size:13px;padding:8px 20px}}@media(max-width:480px){.terminal-mode-wrapper{padding:5px}}
