@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{color-scheme:dark;--ink:#172b2a;--cream:#fff2d7;--gold:#edc785;--muted:#c7cebf;--red:#782f29;--paper:#fbf4e5;--font:'DM Sans',sans-serif;--serif:'Playfair Display',Georgia,serif}
*{box-sizing:border-box}body{margin:0;background:#102329;color:var(--cream);font-family:var(--font);font-size:15px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #f4d39a;outline-offset:6px}button:disabled{cursor:not-allowed;opacity:.55}button{color:inherit}button svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}button{border:0}button img{pointer-events:none}[hidden]{display:none!important}.skip-link{position:fixed;left:12px;top:-80px;z-index:100;color:var(--ink);background:var(--cream);padding:15px}.skip-link:focus{top:12px}.world{position:relative;min-height:780px;height:100svh;isolation:isolate;overflow:hidden;background:#142c31}.scene-image{position:absolute;z-index:-3;inset:0;background-repeat:no-repeat;background-size:cover;background-position:center;transition:opacity 1.1s,transform 1.5s;will-change:transform}.exterior{background-image:url('assets/exterior.jpg')}.interior{background-image:url('assets/hall.jpg');opacity:0;transform:scale(1.11)}.scene-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(6,25,33,.94) 0%,rgba(7,27,34,.78) 24%,rgba(8,27,32,.3) 45%,transparent 69%),linear-gradient(0deg,rgba(6,22,27,.95),transparent 26%,transparent 68%,rgba(7,23,28,.65))}.world[data-scene=hall] .exterior{opacity:0;transform:scale(1.14)}.world[data-scene=hall] .interior{opacity:1;transform:scale(1)}.world[data-scene=hall] .scene-shade{background:linear-gradient(0deg,rgba(10,21,23,.97),transparent 35%,rgba(7,15,15,.08) 50%,rgba(7,19,21,.85))}.site-header{display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;margin:0 5%;height:112px;border-bottom:1px solid #e6c58b2b;z-index:5}.brand{display:flex;align-items:center;gap:13px;background:none;text-align:left;font-family:var(--serif);font-size:23px;padding:0;white-space:nowrap}.brand small{font-family:var(--font);display:block;font-size:9px;letter-spacing:3px;margin-top:8px;color:#d5c4a3}.header-nav{display:flex;align-items:center;gap:38px;margin-left:auto}.header-nav button{background:none;padding:12px 0;font-size:13px}.header-nav button:hover{color:var(--gold)}.header-nav .nav-register{border:1px solid #d4b07380;border-radius:4px;padding:12px 17px;display:flex;align-items:center;gap:17px;color:var(--gold);background:#182c2a66}.icon-book{font-size:21px}.sound-toggle{background:#14262788;display:grid;place-items:center;border:1px solid #bcb79355;border-radius:50%;width:39px;height:39px}.sound-toggle[aria-pressed=true]{color:var(--gold);border-color:var(--gold)}#main{outline:none}.welcome{position:absolute;left:7.7%;top:24.5%;animation:arrive 1s ease both}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:600;color:var(--gold);display:flex;align-items:center;gap:12px}.eyebrow>span{width:24px;height:1px;background:var(--gold)}h1,h2,h3,p{margin-top:0}.welcome h1{font-family:var(--serif);font-size:clamp(54px,5.9vw,90px);font-weight:400;line-height:1.1;letter-spacing:-2px;margin:22px 0 25px}.welcome h1 em{color:var(--gold);font-weight:400}.welcome p{line-height:1.9;color:#e2ded0;font-size:14px;margin-bottom:31px}.gold-button{border-radius:4px;display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:17px 24px;background:var(--gold);color:#23332a;font-size:13px;font-weight:700;box-shadow:0 5px 25px #0002;transition:background .2s,transform .2s}.gold-button:hover{background:#ffdda5;transform:translateY(-2px)}.gold-button>span{font-size:21px;line-height:1}.welcome-note{font-size:10px;color:#d0c6b2;margin-top:21px}.welcome-note span{color:var(--gold);margin-right:6px}.door-hotspot,.room-marker{position:absolute;background:none;display:flex;flex-direction:column;align-items:center;gap:12px;padding:14px;transform:translate(-50%,-50%)}.door-hotspot{left:65.6%;top:65%}.hotspot-circle{width:47px;height:47px;background:#e9c38126;backdrop-filter:blur(5px);border:1px solid #f7d495;outline:6px solid #f1cc7c18;box-shadow:0 0 30px #f7c07844;display:grid;place-items:center;border-radius:50%;font-size:26px;color:#fff5d9;animation:glow 3s ease-in-out infinite}.hotspot-caption{padding:10px 16px;background:#18302de6;border:1px solid #d8b47a66;box-shadow:0 4px 20px #0004;border-radius:4px;font-size:13px;font-weight:500;color:#fff0d2;white-space:nowrap}.hotspot-caption small{display:block;font-size:10px;margin-top:5px;color:#d7ccb6;font-weight:400}.door-hotspot:hover .hotspot-circle,.room-marker:hover .hotspot-circle{background:#edc785;color:#263229}.hall-heading{position:absolute;top:19%;left:50%;width:90%;transform:translateX(-50%);text-align:center;text-shadow:0 2px 18px #000}.hall-heading .eyebrow{justify-content:center}.hall-heading h1{font-family:var(--serif);font-size:45px;font-weight:400;margin:12px 0}.hall-heading p{font-size:12px;color:#f4e9ce}.kitchen-marker{left:26%;top:59%}.book-marker{left:55%;top:62%}.play-marker{left:81%;top:59%}.world-footer{position:absolute;left:5%;right:5%;bottom:0;height:115px;display:flex;align-items:center;gap:30px;border-top:1px solid #ead29a29}.discovery{display:flex;align-items:center;gap:19px}.discovery>button{display:flex;align-items:center;text-align:left;gap:13px;background:none;padding:8px 0}.discovery strong{font-size:11px;font-weight:500}.discovery small{display:block;color:#bcbfad;font-size:10px;margin-top:6px}.discovery-dots{display:flex;gap:6px}.discovery-dots i{border:1px solid #d6b97d77;width:5px;height:5px;border-radius:50%}.discovery-dots i.found{background:var(--gold);box-shadow:0 0 6px var(--gold)}.footer-invitation{font-family:var(--serif);font-size:13px;font-style:italic;color:#d9cbae;margin:auto}.footer-about{margin-left:auto;white-space:nowrap;background:none;font-size:11px;color:var(--gold)}.footer-about span{margin-left:18px}.hidden-mitre{position:absolute;display:grid;place-items:center;width:44px;height:44px;background:none;filter:sepia(.6);opacity:.8;transition:transform .2s,opacity .2s;transform:rotate(var(--rotate))}.hidden-mitre img{width:21px;height:27px}.hidden-mitre:hover,.hidden-mitre:focus-visible{opacity:1;transform:scale(1.3)}.hidden-mitre.found{opacity:0;pointer-events:none}.magic-dust{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.mote{position:absolute;background:#ffdf9a;width:3px;height:3px;border-radius:50%;box-shadow:0 0 7px #e4c374;animation:drift 8s linear infinite;opacity:0}.room-dialog{color-scheme:light;width:min(920px,calc(100% - 36px));max-height:88svh;border:1px solid #d7bb83;border-radius:13px;padding:0;background:var(--paper);color:#43382c;box-shadow:0 25px 100px #0008;overflow:auto}.room-dialog::backdrop{background:#051b22bf;backdrop-filter:blur(8px)}.room-dialog[open]{animation:open-book .35s ease both}.dialog-close{position:absolute;right:17px;top:17px;width:36px;height:36px;z-index:3;border-radius:50%;background:#fff6e5e8;color:#543d2c;box-shadow:0 2px 15px #0001}.dialog-close:hover{background:#e4d4b7}.room-dialog button:focus-visible{outline-color:#8d4b34}.dialog-layout{display:grid;grid-template-columns:36% 64%;min-height:570px}.room-illustration{position:relative;background-image:linear-gradient(0deg,#112f2acf,transparent 50%),url('assets/hall.jpg');background-size:auto 100%;background-position:50% 50%;border-radius:12px 0 0 12px;display:flex;align-items:flex-end;padding:32px;color:var(--cream)}.room-illustration.kitchen{background-position:23% center}.room-illustration.sint{background-position:53% center}.room-illustration p{font:italic 26px/1.5 var(--serif);text-shadow:0 2px 12px #000;margin:0}.room-body{padding:54px 45px 38px}.room-body h2,.plain-room h2{font-family:var(--serif);font-size:36px;line-height:1.2;font-weight:400;margin:13px 0 20px;color:#3d3229}.room-body p,.plain-room>p{font-size:14px;line-height:1.8;color:#72614d}.room-body .eyebrow,.plain-room .eyebrow{color:#986a35;font-size:9px}.room-body .gold-button{margin-top:16px}.room-body .fine-print{font-size:11px;color:#857764;line-height:1.7}.feast-facts{margin:25px 0;border-top:1px solid #d9cbb1;border-bottom:1px solid #d9cbb1}.fact{display:flex;justify-content:space-between;gap:22px;padding:14px 0;border-bottom:1px solid #e6dcc9;font-size:12px}.fact:last-child{border:0}.fact span{color:#82745f}.fact strong{font-weight:500;text-align:right;color:#483d2e}.kitchen-surprises{display:flex;gap:12px;margin:22px 0}.kitchen-surprise{width:94px;height:95px;background:#f1e5cb;border:1px solid #dfc79e;border-radius:12px;display:grid;place-items:center;font-size:30px;transition:transform .2s}.kitchen-surprise:hover{transform:rotate(-5deg) scale(1.04)}.kitchen-surprise span{display:block;font-size:10px;margin-bottom:8px;color:#785d3e}.kitchen-message{min-height:65px;background:#efe5d0;padding:14px 17px;border-left:2px solid #a97643;font-size:12px;line-height:1.7}.plain-room{padding:48px}.treasure-grid{display:flex;gap:15px;margin:28px 0}.treasure-grid span{display:grid;place-items:center;width:60px;height:70px;background:#eae0cc;border-radius:9px;opacity:.45}.treasure-grid .found{opacity:1;background:#efd29a;box-shadow:0 3px 10px #9a783c22}.treasure-grid img{width:30px}.toast{position:fixed;bottom:135px;left:50%;transform:translate(-50%,25px);z-index:20;background:#f4e5c5;color:#443626;border:1px solid #b8975c;box-shadow:0 8px 40px #0004;border-radius:8px;padding:15px 24px;max-width:90%;font-size:13px;opacity:0;pointer-events:none;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}
.form-step{margin-top:23px}.step-pills{display:flex;gap:8px;margin:0 0 20px}.step-pills span{width:30px;height:3px;background:#e3d4b8}.step-pills span.active{background:#954c36}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:17px}.form-field label{font-size:11px;font-weight:600;color:#69523c}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:43px;border:1px solid #d7c6a6;border-radius:5px;background:#fffaf0;color:#44372b;padding:10px 12px;font-size:13px;outline-offset:3px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline-color:#b98b4c}.form-field textarea{resize:vertical}.form-field small{font-size:10px;color:#8c7c64}.child-card{padding:18px;background:#f1e8d6;border:1px solid #e1d1b6;border-radius:8px;margin-bottom:13px}.child-card h3{font:18px var(--serif);margin:0 0 16px}.child-card .form-field{margin-bottom:10px}.child-card .child-fields{display:grid;grid-template-columns:1fr 1fr 65px;gap:10px}.form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:22px;gap:15px}.form-actions .gold-button{margin:0}.text-button{background:none;color:#87684b;font-size:12px;padding:10px 0}.error-message{color:#9b352e;font-size:12px;line-height:1.6;min-height:0;margin:10px 0}.review-list{margin:20px 0}.review-row{padding:10px 0;border-bottom:1px solid #dfd2b9;font-size:12px;line-height:1.7}.review-row span{color:#907a5e;display:block;font-size:10px}.registration-note{padding:14px 16px;border:1px solid #d7bd8e;background:#f2e7cf;color:#795e39;font-size:12px;line-height:1.7;border-radius:5px}.success-seal{border:2px solid #b89c67;border-radius:50%;width:65px;height:65px;display:grid;place-items:center;color:#81734a;margin-bottom:25px;font-size:28px}.consent-label{display:flex;gap:10px;line-height:1.7;font-size:11px;color:#76624a;align-items:flex-start}.consent-label input{margin-top:4px;accent-color:#7d4935}.gift-sparkle{position:fixed;pointer-events:none;font-size:22px;z-index:40;animation:celebrate 1.4s ease-out forwards}
@keyframes drift{0%{transform:translateY(25px);opacity:0}30%{opacity:.7}100%{transform:translate(30px,-100px);opacity:0}}@keyframes glow{50%{box-shadow:0 0 35px #ffd28d88;outline-color:#f4c57033}}@keyframes arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes open-book{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:none}}@keyframes celebrate{to{transform:translate(var(--dx),var(--dy)) rotate(180deg);opacity:0}}
@media(min-width:1600px){.welcome{top:23%}.welcome h1{font-size:99px}.welcome p{font-size:16px}.world{max-height:1150px}.site-header{height:130px}}
@media(max-width:1050px){.site-header{gap:20px}.brand{font-size:20px}.header-nav{gap:22px}.welcome{left:6%;top:27%}.welcome h1{font-size:70px}.scene-image{background-position:58% center}.footer-invitation{display:none}.hall-heading{top:20%}.room-markers .hotspot-caption{font-size:12px}.room-body{padding:52px 28px 30px}.room-illustration{padding:22px}.room-illustration p{font-size:22px}.dialog-layout{grid-template-columns:33% 67%}}
@media(max-width:700px){.world{height:100svh;min-height:840px}.site-header{margin:0 6%;height:92px;gap:14px}.brand{font-size:18px;gap:9px}.brand img{width:29px;height:38px}.brand small{font-size:7px;letter-spacing:2px;margin-top:6px}.header-nav{gap:0}.header-nav>button:not(.nav-register){display:none}.header-nav .nav-register{font-size:10px;padding:10px 12px;gap:7px}.nav-register .icon-book{display:none}.sound-toggle{position:absolute;right:0;top:110px;width:33px;height:33px}.sound-toggle svg{width:18px}.exterior{background-size:auto 76%;background-position:64% bottom}.scene-shade{background:linear-gradient(180deg,#102a32 0%,#102a32eb 24%,#0c263176 53%,transparent 65%,#09222dd9 87%,#10272cf5)}.welcome{left:7%;top:17%}.eyebrow{font-size:8px;letter-spacing:1.6px;gap:9px}.welcome h1{font-size:53px;line-height:1.08;letter-spacing:-1.6px;margin:19px 0}.welcome h1 br:first-of-type{display:block}.welcome p{font-size:12px;line-height:1.8;margin-bottom:23px;max-width:310px}.welcome .gold-button{padding:14px 18px;font-size:12px;gap:32px}.welcome-note{font-size:9px;margin-top:14px}.door-hotspot{top:73%;left:70%;gap:7px}.hotspot-circle{width:35px;height:35px;font-size:22px}.hotspot-caption{font-size:11px;padding:8px 12px}.hotspot-caption small{font-size:9px;margin-top:3px}.world-footer{height:88px;left:7%;right:7%}.discovery{gap:11px}.discovery strong{font-size:10px}.discovery small{font-size:9px}.discovery>button{gap:9px}.discovery-dots{display:none}.discovery-dots i{width:4px;height:4px}.footer-about{font-size:10px;max-width:92px;text-align:right;line-height:1.6}.footer-about span{margin-left:4px}.interior{background-size:auto 74%;background-position:51% 72%;background-color:#0e272b}.world[data-scene=hall] .scene-shade{background:linear-gradient(180deg,#10282df5 0%,#10282dcc 20%,transparent 45%,transparent 72%,#10282dee 87%)}.hall-heading{top:20%;width:88%}.hall-heading h1{font-size:33px;margin:15px 0}.hall-heading p{font-size:11px;line-height:1.7;width:240px;margin:auto}.kitchen-marker{left:17%;top:59%}.book-marker{left:50%;top:71%}.play-marker{left:83%;top:59%}.room-marker{padding:6px}.room-marker .hotspot-caption{font-size:10px;padding:9px 10px}.room-marker small{font-size:8px;max-width:100px;white-space:normal}.room-dialog{max-height:91svh;width:calc(100% - 22px);border-radius:10px}.dialog-layout{display:block;min-height:0}.room-illustration{height:145px;border-radius:10px 10px 0 0;background-size:100% auto;align-items:flex-end;padding:22px;background-position:50% 42%}.room-illustration p{font-size:21px;max-width:250px}.room-illustration.kitchen{background-size:200% auto;background-position:10% 44%}.room-illustration.sint{background-size:200% auto;background-position:50% 40%}.room-body{padding:28px 25px}.room-body h2,.plain-room h2{font-size:31px;margin-bottom:16px}.room-body p{font-size:13px}.plain-room{padding:48px 23px 28px}.form-row{gap:10px}.form-field label{font-size:10px}.child-card{padding:13px}.child-card .child-fields{grid-template-columns:1fr 1fr}.child-card .form-field:last-child{grid-column:1/-1;max-width:100px}.toast{bottom:100px;width:max-content;text-align:center;font-size:12px}.treasure-grid{gap:8px}.treasure-grid span{width:48px;height:60px}}
@media(min-width:701px) and (max-height:820px){.world{min-height:720px}.site-header{height:90px}.world-footer{height:85px}.welcome{top:21%}.welcome h1{font-size:60px;line-height:1.04;margin:18px 0 18px}.welcome p{font-size:13px;margin-bottom:20px}.welcome-note{margin-top:14px}.hall-heading{top:18%}.hall-heading h1{font-size:38px}.door-hotspot{top:63%}}
.room-dialog{overflow:hidden}#dialog-content{max-height:88svh;overflow:auto}@media(max-width:700px){#dialog-content{max-height:91svh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.mote{display:none}}
