@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--primary:#1e3557;--secondary:#f75687;--accent:#f49899;--accent-dark:#c14570;--light-pink:#faeaf2;--white:#fff;--background:#fcfcfc;--brand-gradient:linear-gradient(135deg, #f49899 0%, #f75687 50%, #c14570 100%);--pink:var(--secondary);--pink-dark:var(--accent-dark);--pink-soft:#f756871f;--pink-wash:#f7568714;--navy:var(--primary);--black:var(--primary);--text:var(--primary);--muted:#475569;--line:#eadfe6;--grey:var(--light-pink);--cream:var(--background);--shadow:0 12px 40px #1e355714;--shadow-soft:0 8px 24px #1e35570f;--radius:20px;--radius-sm:14px;--max:1180px;--header-h:72px;color:var(--text);background:var(--background);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,Noto Sans Thai,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}button,a,input{font:inherit}button{color:inherit;cursor:pointer;background:0 0;border:0}img{max-width:100%;display:block}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #f7568773}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes float-in{0%{opacity:0;transform:translateY(28px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:translateY(0)}#root{min-height:100vh}.page{background:var(--background);min-height:100vh;overflow-x:clip}.container{width:min(var(--max), calc(100% - 32px));margin-inline:auto}.section{padding:72px 0}.section-eyebrow{color:var(--pink);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.78rem;font-weight:700}.section-title{letter-spacing:-.03em;margin:0 0 14px;font-size:clamp(1.75rem,5vw,2.75rem);font-weight:800;line-height:1.15}.section-lead{max-width:34rem;color:var(--muted);margin:0;font-size:1.05rem;line-height:1.65}.btn{border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .18s,background .18s,color .18s,border-color .18s,box-shadow .18s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--secondary);color:var(--white);box-shadow:0 10px 24px #f7568747}.btn-primary:hover{background:var(--accent-dark)}.btn-secondary{background:var(--white);color:var(--primary);border:1px solid var(--primary)}.btn-secondary:hover{border-color:var(--primary);background:var(--light-pink);box-shadow:var(--shadow-soft)}.btn-ghost{color:var(--white);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff29;border:1px solid #ffffffb3}.btn-ghost:hover{background:#ffffff47}.site-header{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fcfcfceb;border-bottom:1px solid #0000;transition:border-color .2s,box-shadow .2s;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line);box-shadow:0 8px 24px #1e35570d}.header-inner{min-height:var(--header-h);justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{flex-shrink:0;align-items:center;text-decoration:none;display:inline-flex}.brand img{width:auto;height:52px}.header-actions{align-items:center;gap:8px;display:flex}.desktop-nav{align-items:center;gap:20px;display:none}.desktop-nav a{color:var(--muted);font-size:.9rem;font-weight:600;text-decoration:none;transition:color .16s}.desktop-nav a:hover{color:var(--text)}.header-book{display:none}.lang-switch{border:1px solid var(--line);background:var(--grey);border-radius:999px;padding:3px;display:inline-flex}.lang-switch button{min-width:42px;height:30px;color:var(--muted);border-radius:999px;padding:0 10px;font-size:.75rem;font-weight:700}.lang-switch button.active{background:var(--brand-gradient);color:var(--white)}.menu-toggle{border:1px solid var(--line);background:var(--white);border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.menu-toggle span,.menu-toggle span:before,.menu-toggle span:after{background:var(--text);border-radius:2px;width:16px;height:2px;transition:transform .18s,opacity .18s;display:block;position:relative}.menu-toggle span:before,.menu-toggle span:after{content:"";position:absolute;left:0}.menu-toggle span:before{top:-5px}.menu-toggle span:after{top:5px}.menu-toggle.is-open span{background:0 0}.menu-toggle.is-open span:before{top:0;transform:rotate(45deg)}.menu-toggle.is-open span:after{top:0;transform:rotate(-45deg)}.mobile-nav{border-top:1px solid var(--line);gap:4px;padding:8px 0 18px;animation:.28s fade-up;display:grid}.mobile-nav a{color:var(--text);padding:12px 4px;font-weight:600;text-decoration:none}.mobile-nav .btn{width:100%;margin-top:8px}.hero{min-height:calc(100svh - var(--header-h));isolation:isolate;align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero-media{z-index:-2;position:absolute;inset:0}.hero-media img{object-fit:cover;object-position:center 30%;width:100%;height:100%;animation:1.1s fade-in}.hero-wash{z-index:-1;background:linear-gradient(#11111114 0%,#1113 35%,#1111119e 68%,#111111d1 100%);position:absolute;inset:0}.hero-inner{width:min(var(--max), calc(100% - 32px));color:var(--white);margin:0 auto;padding:48px 0 56px;animation:.8s both fade-up}.hero h1{letter-spacing:-.04em;max-width:10ch;margin:0 0 14px;font-size:clamp(2.4rem,9vw,4.5rem);font-weight:800;line-height:1.05}.hero-lead{color:#ffffffe0;max-width:28rem;margin:0 0 28px;font-size:1.05rem;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.about{background:var(--background)}.about-grid{gap:28px;margin-top:36px;display:grid}.about-body{margin-top:14px}.about-points{gap:14px;margin:0;padding:0;list-style:none;display:grid}.about-points li{letter-spacing:-.02em;align-items:center;gap:12px;font-size:1.15rem;font-weight:700;display:flex}.about-points li:before{content:"";background:var(--pink);border-radius:50%;flex-shrink:0;width:10px;height:10px}.events-status{color:var(--muted);margin:28px 0 8px;font-size:.95rem}.event-body .btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.events{background:var(--grey)}.event-grid{gap:12px;margin-top:32px;display:grid}.event-card{background:var(--white);box-shadow:var(--shadow-soft);border:1px solid #1e35570a;border-radius:16px;gap:0;padding:0;transition:transform .2s,box-shadow .2s;display:grid;overflow:hidden}.event-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.event-poster{aspect-ratio:2/3;background:#f3eef1;width:100%;overflow:hidden}.event-poster img{object-fit:contain;object-position:center top;width:100%;height:100%;transition:transform .5s}.event-card:hover .event-poster img{transform:scale(1.03)}.event-body{gap:0;padding:12px 12px 14px;display:grid}.event-type{background:var(--light-pink);width:fit-content;max-width:100%;color:var(--accent-dark);letter-spacing:.02em;border-radius:999px;padding:4px 8px;font-size:.65rem;font-weight:700;line-height:1.3;display:inline-flex}.event-card h3{letter-spacing:-.02em;margin:8px 0 6px;font-size:.98rem;line-height:1.25}.event-meta{color:var(--muted);margin:0 0 12px;font-size:.8rem;line-height:1.45}.event-card .btn{width:fit-content;min-height:36px;padding:0 14px;font-size:.82rem}.event-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.how{background:var(--white)}.how-grid{gap:18px;margin-top:36px;display:grid}.how-step{border-radius:var(--radius);background:var(--grey);text-align:left;gap:14px;padding:24px 20px;display:grid;position:relative}.how-icon{background:var(--white);width:56px;height:56px;color:var(--pink);box-shadow:var(--shadow-soft);border-radius:18px;place-items:center;display:grid}.how-icon svg{width:28px;height:28px}.how-step h3{letter-spacing:-.02em;margin:0;font-size:1.25rem}.how-step p{color:var(--muted);margin:0;line-height:1.55}.how-arrow{color:var(--pink);font-size:1.4rem;font-weight:700;display:none}.gallery{background:var(--white)}.gallery-block{margin-top:36px}.gallery-block+.gallery-block{margin-top:56px}.gallery-block-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.gallery-block-head h3{letter-spacing:-.03em;margin:0;font-size:clamp(1.25rem,3vw,1.7rem)}.gallery-soon{background:var(--light-pink);color:var(--accent-dark);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:5px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.gallery-masonry{grid-template-columns:1fr 1fr;gap:8px;display:grid}.gallery-shot{background:var(--light-pink);box-shadow:var(--shadow-soft);aspect-ratio:4/5;border-radius:12px;margin:0;overflow:hidden}.gallery-shot:last-child:nth-child(odd){aspect-ratio:16/10;grid-column:1/-1}.gallery-shot img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.gallery-shot:hover img{transform:scale(1.02)}.gallery-shot-placeholder{aspect-ratio:4/5;min-height:0;box-shadow:none;color:var(--muted);text-align:center;background:linear-gradient(135deg,#faeaf2f2,#fcfcfcfa);border:1.5px dashed #1e35572e;place-items:center;padding:18px;font-size:.85rem;font-weight:600;display:grid}.gallery-shot-placeholder:nth-child(3n),.gallery-shot-placeholder:nth-child(4n){min-height:0}.gallery-shot-placeholder span{opacity:.85;max-width:14ch;line-height:1.4}.testimonials{background:var(--grey)}.review-grid{gap:14px;margin-top:32px;display:grid}.review-card{border-radius:var(--radius);background:var(--white);box-shadow:var(--shadow-soft);padding:24px}.stars{color:var(--pink);letter-spacing:.08em;margin:0 0 12px;font-size:.95rem}.review-card blockquote{letter-spacing:-.02em;margin:0 0 14px;font-size:1.15rem;font-weight:700;line-height:1.4}.review-card cite{color:var(--muted);font-size:.9rem;font-style:normal;font-weight:600}.faq{background:var(--white)}.faq-list{gap:10px;margin-top:32px;display:grid}.faq-item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);overflow:hidden}.faq-item summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;font-weight:700;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--pink);font-size:1.25rem;font-weight:500;line-height:1}.faq-item[open] summary:after{content:"–"}.faq-item p{color:var(--muted);margin:0;padding:0 20px 18px;line-height:1.6}.site-footer{background:var(--grey);color:var(--muted);border-top:1px solid var(--line);padding:56px 0 32px}.footer-grid{gap:28px;display:grid}.footer-brand img{width:auto;height:72px;margin-bottom:14px}.footer-brand p{max-width:22rem;color:var(--muted);margin:0;line-height:1.55}.footer-col h4{color:var(--text);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-size:.85rem}.footer-col a{color:var(--muted);padding:6px 0;text-decoration:none;transition:color .16s;display:block}.footer-col a:hover{color:var(--pink)}.footer-link-btn{color:var(--muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;margin:0;padding:6px 0;transition:color .16s;display:block}.footer-link-btn:hover{color:var(--pink)}.footer-bottom{border-top:1px solid var(--line);color:var(--muted);margin-top:36px;padding-top:18px;font-size:.85rem}.terms-page{min-height:calc(100svh - var(--header-h));background:radial-gradient(600px 280px at 50% 0%, var(--pink-wash), transparent 70%), var(--white);padding:28px 0 72px}.terms-shell{border-radius:var(--radius);background:var(--white);border:1px solid var(--line);max-width:720px;box-shadow:var(--shadow);margin:0 auto;padding:28px 22px 36px;animation:.42s both float-in}.terms-updated{color:var(--muted);margin:0 0 18px;font-size:.9rem}.terms-intro{margin-bottom:28px}.terms-section{border-top:1px solid var(--line);padding:22px 0}.terms-section h2{letter-spacing:-.02em;color:var(--primary);margin:0 0 10px;font-size:1.15rem}.terms-section p{color:var(--muted);margin:0;font-size:.98rem;line-height:1.7}.booking-terms-link{color:var(--pink);font:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:700;text-decoration:underline;display:inline}.booking-terms-link:hover{color:var(--accent-dark)}.booking-page{min-height:calc(100svh - var(--header-h));background:radial-gradient(600px 280px at 50% 0%, var(--pink-wash), transparent 70%), var(--white);padding:28px 0 64px}.booking-back{color:var(--muted);margin-bottom:18px;font-size:.92rem;font-weight:600;text-decoration:none;display:inline-flex}.booking-back:hover{color:var(--text)}.booking-shell{border-radius:var(--radius);background:var(--white);border:1px solid var(--line);max-width:560px;box-shadow:var(--shadow);margin:0 auto;padding:28px 22px;animation:.42s both float-in}.booking-shell-wide{max-width:640px}.booking-shell h1{letter-spacing:-.03em;margin:0 0 22px;font-size:1.7rem}.booking-subheading{letter-spacing:-.02em;margin:0 0 16px;font-size:1.15rem}.booking-event-recap{background:var(--grey);border:1px solid #1e35570f;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 0 22px;padding:14px 16px;display:flex}.booking-event-recap>div{gap:4px;min-width:0;display:grid}.booking-event-recap strong{letter-spacing:-.02em;font-size:.98rem}.booking-event-recap span{color:var(--muted);font-size:.82rem;line-height:1.4}.booking-share-btn{min-height:36px;padding:0 14px;font-size:.82rem}.booking-steps{gap:6px;margin-bottom:28px;display:flex;overflow-x:auto}.booking-steps span{text-align:center;background:var(--grey);min-width:64px;color:var(--muted);border-radius:999px;flex:1;padding:8px 4px;font-size:.68rem;font-weight:700;line-height:1.25}.booking-steps span.is-active{background:var(--pink-soft);color:var(--pink-dark)}.booking-steps span.is-done{background:var(--pink);color:var(--white)}.booking-options{gap:10px;display:grid}.booking-option{text-align:left;border:1px solid var(--line);background:var(--white);border-radius:16px;padding:16px;transition:border-color .16s,box-shadow .16s}.booking-option.is-selected,.booking-option:hover{border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-soft)}.booking-option strong{margin-bottom:4px;display:block}.booking-option small{color:var(--muted)}.ticket-row{justify-content:space-between;align-items:center;gap:16px;margin:18px 0 12px;display:flex}.ticket-controls{background:var(--grey);border-radius:999px;align-items:center;gap:12px;padding:6px;display:inline-flex}.ticket-controls button{background:var(--white);width:36px;height:36px;box-shadow:var(--shadow-soft);border-radius:50%;font-weight:700}.ticket-controls strong{text-align:center;min-width:1.5rem}.booking-total{margin:0 0 20px;font-size:1.05rem}.booking-field-label{color:var(--text);margin:0 0 8px;font-size:.85rem;font-weight:700}.booking-form{gap:12px;margin-bottom:12px;display:grid}.booking-form .booking-fieldset{grid-column:1/-1}.booking-form label{gap:6px;font-size:.9rem;font-weight:600;display:grid}.booking-form input,.booking-form select{border:1px solid var(--line);background:var(--white);width:100%;min-height:44px;color:var(--text);border-radius:12px;padding:10px 12px}.booking-form input:focus,.booking-form select:focus{border-color:var(--secondary);box-shadow:0 0 0 3px var(--pink-soft);outline:none}.booking-check{align-items:flex-start;gap:10px;grid-template-columns:none!important;font-weight:500!important;display:flex!important}.booking-check input{width:auto;min-height:auto;accent-color:var(--secondary);margin-top:3px}.booking-fieldset{border:1px solid var(--line);border-radius:14px;margin:4px 0 0;padding:14px}.booking-fieldset legend{padding:0 6px;font-size:.9rem;font-weight:700}.booking-radio-row{gap:10px;display:grid}.booking-error{color:var(--accent-dark);margin:0 0 12px;font-size:.9rem;font-weight:600}.booking-qr-image{background:#fff;border-radius:12px;width:min(100%,240px);margin-top:12px;display:block}.booking-slip-field{gap:8px;margin:16px 0;font-size:.95rem;display:grid}.booking-slip-field input[type=file]{max-width:100%}.booking-slip-field small{color:var(--muted)}.booking-review{gap:14px;margin-bottom:16px;display:grid}.booking-review article,.booking-review>div{background:var(--light-pink);border-radius:14px;padding:14px 16px}.booking-review h3{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 8px;font-size:.85rem}.booking-review p{color:var(--text);margin:0;line-height:1.55}.booking-actions{gap:10px;display:grid}.booking-actions .btn{width:100%}.booking-note{color:var(--muted);margin:0 0 16px;font-size:.92rem}.booking-success{text-align:center;padding:12px 0 4px}.booking-success h2{margin:12px 0 10px;font-size:1.6rem}.booking-success>p{color:var(--muted);margin:0 0 24px;line-height:1.55}.booking-confirm-cards{text-align:left;gap:12px;margin-bottom:22px;display:grid}.booking-confirm-cards article{border:1px solid var(--line);background:var(--background);border-radius:14px;padding:16px}.booking-confirm-cards h3{margin:0 0 8px;font-size:.95rem}.booking-confirm-cards p{color:var(--muted);margin:0;line-height:1.55}.booking-ref{letter-spacing:.04em;font-weight:800;color:var(--primary)!important;font-size:1.2rem!important}.booking-cal-actions{gap:8px;display:grid}.success-mark{background:var(--pink-soft);width:56px;height:56px;color:var(--pink);border-radius:50%;place-items:center;margin:0 auto;font-size:1.5rem;font-weight:700;display:grid}@media (width>=720px){.container{width:min(var(--max), calc(100% - 48px))}.section{padding:96px 0}.desktop-nav,.header-book{display:inline-flex}.menu-toggle,.mobile-nav{display:none}.hero-inner{padding:64px 0 80px}.about-grid{grid-template-columns:1.1fr .9fr;align-items:end}.event-grid{grid-template-columns:repeat(2,1fr)}.how-grid{grid-template-columns:repeat(3,1fr);gap:16px}.gallery-masonry{columns:3;column-gap:14px;display:block}.gallery-shot{break-inside:avoid;aspect-ratio:auto;border-radius:18px;margin:0 0 14px}.gallery-shot:last-child:nth-child(odd){aspect-ratio:auto;grid-column:auto}.gallery-shot img{object-fit:initial;height:auto}.gallery-shot-placeholder{aspect-ratio:auto;min-height:220px}.gallery-shot-placeholder:nth-child(3n){min-height:300px}.review-grid{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1.4fr 1fr 1fr}.booking-shell{padding:36px}}@media (width>=1100px){.event-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
