@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400&family=Noto+Sans+JP:wght@300;400;500&family=Courier+Prime&display=swap";body{margin:0;min-width:320px;min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #fafafa;--color-text: #4a4a4a;--color-text-light: #888;--color-accent: #79160D;--color-accent-light: #FBF7ED;--color-border: #e0e0e0;--font-serif: "Cormorant Garamond", "Noto Sans JP", serif;--font-sans: "Noto Sans JP", sans-serif;--font-mono: "Courier Prime", monospace}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);line-height:1.8;font-weight:300;font-size:16px}@keyframes introFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes introLineExpand{0%{width:0}to{width:48px}}.intro-overlay{position:fixed;inset:0;background:#fafafa;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity 1.2s ease}.intro-overlay--exit{opacity:0;pointer-events:none}.intro-content{text-align:center;animation:introFadeIn 1.2s ease forwards}.intro-names{font-family:var(--font-serif);font-size:2.4rem;font-weight:300;letter-spacing:.25em;color:var(--color-text)}.intro-divider{height:1px;width:0;background:var(--color-text);margin:1.2rem auto;animation:introLineExpand .8s ease .8s forwards}.intro-date{font-family:var(--font-serif);font-size:.9rem;letter-spacing:.35em;color:var(--color-text-light)}.site--hidden{opacity:0}.site--visible{animation:siteFadeIn 1s ease forwards}@keyframes siteFadeIn{0%{opacity:0}to{opacity:1}}.wedding-site{max-width:1200px;margin:0 auto;background:#fff;min-height:100vh}.spinner{display:inline-block;width:14px;height:14px;margin-left:8px;border:2px solid #ffffff;border-top-color:transparent;border-radius:50%;animation:spinner .6s linear infinite}@keyframes spinner{to{transform:rotate(360deg)}}.header-inner{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1rem 5%}.nav{position:sticky;top:0;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;justify-content:center;gap:2rem;padding:1rem;border-bottom:1px solid var(--color-border);z-index:100;width:100%}.nav a{font-family:var(--font-mono);font-size:.85rem;color:var(--color-text);text-decoration:none;letter-spacing:.05em;transition:color .3s ease}.nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0;white-space:nowrap}.menu-toggle,.menu-icon{display:none}.nav a:hover{color:var(--color-accent)}@media(max-width:600px){.menu-icon{display:block;cursor:pointer;position:relative;z-index:100;padding-top:20px}.menu-icon span{display:block;width:25px;height:2px;background:#333;position:relative;transition:.3s}.menu-icon span:before,.menu-icon span:after{content:"";position:absolute;width:100%;height:100%;background:#333;transition:.3s}.menu-icon span:before{top:-8px}.menu-icon span:after{bottom:-8px}.nav{position:fixed;top:0;right:-100%;width:70%;border-left:1px solid #eee;height:100vh;background:#fffffff2;transition:.4s;z-index:90;padding-top:80px}.nav ul{flex-direction:column;align-items:center;gap:30px}.nav ul li a{font-size:1.3em!important;font-weight:700;display:block;width:100%;text-align:center}.menu-toggle:checked~.nav{right:0}.menu-toggle:checked+.menu-icon span{background:transparent}.menu-toggle:checked+.menu-icon span:before{transform:rotate(45deg);top:0}.menu-toggle:checked+.menu-icon span:after{transform:rotate(-45deg);bottom:0}.menu-toggle{display:none}}.section{padding:4rem 2rem;text-align:center}.section-title{font-family:var(--font-mono);font-size:1.4rem;font-weight:400;letter-spacing:.15em;color:var(--color-text);margin-bottom:1rem}.divider{width:40px;height:1px;background:var(--color-text-light);margin:0 auto 2.5rem}.hero{padding-top:3rem}.title{font-family:var(--font-mono);font-size:2.8rem;font-weight:300;letter-spacing:.15em;color:var(--color-text);margin-bottom:.5rem}.subtitle{font-family:var(--font-mono);font-size:.9rem;color:var(--color-text-light);letter-spacing:.1em;margin-bottom:2rem}.photo-frame{width:280px;height:350px;margin:0 auto 2rem;overflow:hidden;border:8px solid white;box-shadow:0 4px 20px #00000014}.couple-photo{width:100%;height:100%;object-fit:cover}.date{font-family:var(--font-mono);font-size:1.8rem;letter-spacing:.2em;color:var(--color-text);margin-bottom:.5rem}.venue-short{font-family:var(--font-mono);font-size:.9rem;color:var(--color-text-light);letter-spacing:.1em}.greeting-text{display:inline-block;max-width:500px;font-size:.9rem;line-height:2.2;text-align:center}.greeting-text p{margin-bottom:1.5rem}.greeting-kinpaku{text-align:right;margin-bottom:0}.signature-container{display:flex;justify-content:center;gap:140px;margin-top:80px;text-align:center}.signature-box{position:relative;width:100px}.name-text{font-size:.8rem;margin:0;position:relative;z-index:1}.handwritten-sign{position:absolute;top:-55px;left:50%;transform:translate(-50%) rotate(-5deg);height:50px;width:auto;pointer-events:none;opacity:.9;max-width:100%}@media(max-width:600px){.signature-container{gap:60px;margin-top:60px}.handwritten-sign{height:40px;top:-45px}.name-text{font-size:.7rem}}.info-block{margin-bottom:3rem}.info-block h3{font-size:.9rem;font-weight:400;color:var(--color-text-light);margin-bottom:.5rem}.info-block p{font-size:1rem}.schedule{max-width:550px;margin:0 auto 3rem;text-align:left}.schedule-item{display:grid;grid-template-columns:80px 1fr;column-gap:24px;padding:2rem 0;border-bottom:1px solid var(--color-border)}.schedule-item:last-child{border-bottom:none}.time-column{font-family:var(--font-mono);font-size:1.2rem;color:var(--color-text);padding-top:7px}.content-column{min-width:0}.schedule-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.schedule-image-container{width:40px;height:40px;flex-shrink:0}.schedule-icon-img{width:100%;height:100%;object-fit:contain;display:block}.label{font-size:1rem;font-weight:400;color:var(--color-text)}.schedule-detail{font-size:.9rem;line-height:1.9;margin:0 0 12px;color:var(--color-text-light)}.schedule-note{font-size:.8rem;color:#999;margin:0}.dress-code-section{text-align:center;padding:2rem 0;max-width:500px;margin:0 auto}.carousel-viewport{width:100%;overflow:hidden;background:#fff;display:flex;padding:40px 0}.carousel-track{display:flex;margin-left:-125px;width:2000px;animation:scroll-and-pause var(--animation-length) infinite}:root{--animation-length: 8s }@keyframes scroll-and-pause{0%,20%{transform:translate(0)}25%,45%{transform:translate(-250px)}50%,70%{transform:translate(-500px)}75%,95%{transform:translate(-750px)}to{transform:translate(-1000px)}}.carousel-slide{width:250px;flex-shrink:0;padding:0 10px}.carousel-slide img{width:100%;height:auto;border-radius:8px;box-shadow:0 4px 10px #0000001a;transition:transform .5s cubic-bezier(.34,1.56,.64,1);animation:zoom-in-out 8s infinite}@keyframes zoom-in-out{0%,17%{transform:scale(1.2);filter:blur(0px);z-index:10;position:relative;box-shadow:0 10px 30px #00000026}23%,96%{transform:scale(1);filter:blur(2px);opacity:.7;z-index:-1;position:relative}to{transform:scale(1.2);filter:blur(0px);box-shadow:0 10px 30px #00000026}}.carousel-slide:nth-child(2) img,.carousel-slide:nth-child(6) img{animation-delay:0s}.carousel-slide:nth-child(3) img,.carousel-slide:nth-child(7) img{animation-delay:2s}.carousel-slide:nth-child(4) img,.carousel-slide:nth-child(8) img{animation-delay:4s}.carousel-slide:nth-child(1) img,.carousel-slide:nth-child(5) img{animation-delay:6s}.dress-icon-container{width:50px;height:50px;margin:0 auto 1.5rem}.dress-icon-img{width:100%;height:100%;object-fit:contain}.dress-title{font-family:var(--font-mono);font-size:1rem;font-weight:400;letter-spacing:.15em;color:var(--color-text);margin-bottom:1.2rem}.dress-text{font-size:.9rem;color:var(--color-text);line-height:2;font-weight:300}.venue-info{margin-bottom:2rem}.venue-icon{font-size:1.5rem;margin-bottom:.5rem}.venue-info h3{font-size:1rem;font-weight:400;margin-bottom:.3rem}.venue-info p{font-size:.85rem;color:var(--color-text-light)}.map-container{margin:2rem 0;border-radius:4px;overflow:hidden}.access-detail{text-align:center}.access-detail p{font-size:.85rem;margin-bottom:.5rem}.btn-text-link{display:inline-flex;align-items:center;gap:6px;color:var(--color-text);text-decoration:none;font-weight:400;font-size:14px;padding:8px 0;position:relative;transition:color .3s ease}.icon-arrow{display:inline-block;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.btn-text-link:hover{color:var(--color-text)}.btn-text-link:hover .icon-arrow{transform:translate(6px)}.btn-text-link:after{content:"";position:absolute;bottom:4px;left:0;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}.btn-text-link:hover:after{transform:scaleX(1);transform-origin:left}.taxi-info-box{margin-top:2rem;padding:1.5rem 2rem;border:1px solid #c8b89a;border-radius:4px;background-color:#faf8f5;text-align:center;font-size:.9rem;line-height:2;color:#555}.taxi-info-box p{margin-bottom:.8rem}.taxi-info-box p:last-child{margin-bottom:0}.taxi-route{font-size:.85rem;color:#888;letter-spacing:.05em}.rsvp-notice{padding:3rem 2rem}.notice-icon{font-size:2rem;margin-bottom:1rem}.rsvp-notice h3{font-size:1rem;font-weight:400;margin-bottom:.5rem}.rsvp-notice p{font-size:.85rem;color:var(--color-text);line-height:1.8}.rsvp{background:var(--color-accent-light);padding:4rem 2rem}.rsvp-deadline{font-size:.85rem;color:var(--color-text);margin-bottom:1rem;line-height:1.8}.rsvp-deadline-date-container{text-align:center;margin:20px 0}.rsvp-deadline-date{font-family:var(--font-sans);font-size:28px!important;border-radius:4px;display:inline-block}.rsvp-note{font-size:.8rem;color:var(--color-text-light);margin-bottom:2rem}.rsvp-form{max-width:450px;margin:0 auto;text-align:left}.form-section-title{font-size:1rem;font-weight:500;text-align:center;margin:2rem 0 1.5rem;padding-top:1rem;border-top:1px solid rgba(107,142,159,.3)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.85rem;margin-bottom:.5rem;color:var(--color-text)}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:.8rem 1rem;border:1px solid var(--color-border);border-radius:4px;font-family:var(--font-sans);font-size:.9rem;background:#fff;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group small{display:block;font-size:.75rem;color:var(--color-text-light);margin-top:.3rem}.radio-group{display:flex;gap:1.5rem}.radio-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.radio-group input[type=radio]{accent-color:var(--color-accent)}.submit-btn{width:100%;padding:1rem;background:var(--color-accent);color:#fff;border:none;border-radius:4px;font-family:var(--font-sans);font-size:.9rem;cursor:pointer;transition:background .3s ease;margin-top:1rem}.submit-btn:hover{background:#5a7d8d}.guest-block{position:relative;background:#fff;border:1px solid var(--color-border);padding:25px 20px 20px;margin-bottom:2rem;border-radius:12px;box-shadow:0 2px 8px #0000000d}.remove-guest-btn{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;border:1px solid #ffb3b3;background:#fff5f5;color:#e63946;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:10}.remove-guest-btn:hover{background:#e63946;color:#fff;border-color:#e63946}.form-row{display:flex;gap:15px}.required:after{content:" *";color:#e63946}.checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}.allergy-section,.dietary-options{background:#f9f9f9;padding:1rem;border-radius:4px;margin-bottom:1rem}.allergy-item{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dotted #ccc}.dietary-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.add-guest-buttons{display:flex;gap:10px;margin-bottom:2rem}.add-btn{flex:1;padding:.8rem;background:#fff;border:1px dashed var(--color-accent);color:var(--color-accent);border-radius:4px;cursor:pointer}.add-btn-mini{background:none;border:none;color:var(--color-accent);font-size:.8rem;text-decoration:underline;cursor:pointer}.radio-group-vertical{display:flex;flex-direction:column;gap:8px}.form-footer-section{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--color-border)}.form-row{display:flex;gap:10px;margin-bottom:.5rem}.form-row .form-group{flex:1}.allergy-options{display:flex;gap:15px;margin-top:5px;font-size:.8rem}input:invalid{border-color:#ffb3b3}input:invalid:focus{border-color:#e63946}.rsvp-form input[type=text],.rsvp-form input[type=email],.rsvp-form input[type=time]{width:100%;padding:12px 15px;font-size:16px;border:1px solid #ccc;border-radius:8px;box-sizing:border-box;display:block}input::placeholder,textarea::placeholder{color:#ccc;opacity:1}.form-footer-section{width:100%;margin-top:2rem}.form-footer-section .form-group{width:100%}.dietary-main-checkbox{margin-top:1.5rem;font-weight:700}.dietary-detail-section{background:#f9f9f9;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem}.dietary-options-grid{display:flex;flex-direction:column;gap:12px}.dietary-option-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer;line-height:1.4}.dietary-option-label input[type=checkbox]{margin-top:4px}.dietary-other-input{margin-top:1rem}.rsvp-textarea{width:100%;min-height:80px;padding:12px;border:1px solid #ccc;border-radius:8px;box-sizing:border-box;font-family:inherit;max-width:100%}@media(max-width:600px){.dietary-detail-section{padding:1rem}}.radio-group-vertical{display:flex;flex-direction:column;gap:10px;padding:5px 0}.radio-group-vertical label{font-weight:400!important;display:flex;align-items:center;gap:8px;cursor:pointer}.child-fields{border-radius:8px;border:1px dashed var(--color-primary)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-body{padding-top:20px}.modal-content{background:#fff;padding:30px;border-radius:20px;max-width:400px;width:90%;text-align:center;animation:modal-up .4s cubic-bezier(.34,1.56,.64,1)}.mail-wrapper{width:100%;height:auto;padding-top:100px;display:flex;justify-content:center;align-items:center;position:relative}.envelope{position:relative;width:100px;height:65px;background-color:var(--color-accent-light);border-bottom-left-radius:5px;border-bottom-right-radius:5px;box-shadow:0 10px 20px #0000001a}.lid{position:absolute;top:0;left:0;width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-top:40px solid var(--color-accent);z-index:3;transform-origin:top;animation:open-lid 4s infinite ease-in-out}.letter{position:absolute;bottom:0;left:10px;width:80px;height:60px;background-color:#fff;padding:7.5px;box-sizing:border-box;border:1px;z-index:1;box-shadow:0 10px 20px #0000001a;transition:.5s;animation:letter-out 4s infinite ease-in-out}.text-line{height:6px;background-color:#eee;margin-bottom:10px;width:100%}.envelope-front{position:absolute;bottom:0;left:0;width:0;height:0;border-left:50px solid transparent;border-right:50px solid transparent;border-bottom:35px solid #3498db;z-index:2}.envelope:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:65px;background-color:#3498db;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 0,100% 50%,0 50%);z-index:2}@keyframes open-lid{0%,20%{transform:rotateX(0);z-index:3}40%,80%{transform:rotateX(180deg);z-index:0}to{transform:rotateX(0);z-index:3}}@keyframes letter-out{0%,40%{transform:translateY(0)}60%,80%{transform:translateY(-80px)}to{transform:translateY(0)}}@keyframes letter-up{0%,20%{transform:translateY(0)}40%,60%{transform:translateY(-50px)}to{transform:translateY(0)}}@keyframes send-away{0%{transform:translate(-200%) rotate(0);opacity:0}20%{transform:translate(0) rotate(0);opacity:1}70%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(300%) rotate(10deg);opacity:0}}@keyframes modal-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.bank-info-box{background:#f8f9fa;padding:15px;border-radius:12px;margin:20px 0;border:1px dashed #ccc}.bank-label{font-size:11px;letter-spacing:.1em;color:#999;text-transform:uppercase;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #ddd}.btn-copy{background:#333;color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;font-size:12px;margin-top:10px;transition:opacity .2s}.btn-copy:active{opacity:.7}.footer{padding:4rem 2rem;text-align:center;background:#fff}.footer-title{font-family:var(--font-serif);font-size:1.8rem;font-weight:300;letter-spacing:.1em;margin-bottom:.5rem}.footer-date{font-size:.85rem;color:var(--color-text-light);margin-bottom:2rem}.copyright{font-size:.75rem;color:var(--color-text-light)}input[type=checkbox],input[type=radio]{accent-color:var(--color-accent);width:1rem;height:1rem;vertical-align:middle;cursor:pointer}.rsvp-form input[type=checkbox]:checked,.rsvp-form input[type=radio]:checked{accent-color:var(--color-accent)}@media(max-width:600px){.nav{gap:1rem;flex-wrap:wrap}.nav a{font-size:.75rem}.title{font-size:2rem}.section{padding:3rem 1.5rem}.photo-frame{width:240px;height:300px}.schedule-item{grid-template-columns:60px 1fr;column-gap:16px}.time-column{font-size:.9rem}.schedule-image-container{width:32px;height:32px}.label{font-size:1rem}}
