:root{--bg:#0c0a08;--surface:#1a1612;--gold:#c9a96e;--gold-dim:#8b7150;--cream:#e8dcc8;--cream-dim:#b0a090;--red-deny:#8b2020;--mono:"IBM Plex Mono", monospace;--serif:"Cormorant Garamond", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--cream);font-family:var(--serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}.app{background:var(--bg);min-height:100vh}body:after{content:"";pointer-events:none;z-index:9999;opacity:.25;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");position:fixed;inset:0}.login-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.login-bg-video{object-fit:cover;opacity:.18;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.login-bg-overlay{background:radial-gradient(ellipse at center, transparent 0%, var(--bg) 75%);pointer-events:none;position:absolute;inset:0}.floral{color:var(--gold);opacity:.04;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:5rem;line-height:1;position:absolute}.floral--tl{top:2rem;left:2rem}.floral--tr{top:2rem;right:2rem;transform:scaleX(-1)}.floral--bl{bottom:2rem;left:2rem;transform:scaleY(-1)}.floral--br{bottom:2rem;right:2rem;transform:scale(-1)}.login-sdc-wrap{justify-content:center;margin-bottom:2.5rem;display:flex}.login-sdc-logo{opacity:.55;filter:brightness(1.1);width:auto;height:52px;transition:opacity .3s}.login-sdc-logo:hover{opacity:.85}.terminal{width:100%;max-width:460px}.terminal-line{font-family:var(--mono);color:var(--cream);letter-spacing:.05em;min-height:2.5rem;margin-bottom:3rem;font-size:1.6rem;font-weight:300}.cursor{color:var(--gold);margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.fields-container{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(8px)}.fields-visible{opacity:1;transform:translateY(0)}.field-group{margin-bottom:2rem}.field-label{font-family:var(--mono);color:var(--gold-dim);letter-spacing:.15em;margin-bottom:.6rem;font-size:.85rem;display:block}.terminal-input{border:none;border-bottom:1px solid var(--gold-dim);color:var(--cream);font-family:var(--mono);letter-spacing:.1em;background:0 0;outline:none;width:100%;padding:.5rem 0;font-size:1.2rem;font-weight:300;transition:border-color .3s}.terminal-input:focus{border-bottom-color:var(--gold)}.enter-btn{border:1px solid var(--gold-dim);color:var(--gold);font-family:var(--mono);letter-spacing:.2em;cursor:pointer;background:0 0;margin-top:1.8rem;padding:.8rem 2rem;font-size:.9rem;transition:all .3s}.enter-btn:hover{background:var(--gold);color:var(--bg)}.denied-text{font-family:var(--mono);letter-spacing:.2em;color:var(--red-deny);margin-top:1.4rem;font-size:.9rem;animation:.3s fadeIn}.checking-text{font-family:var(--mono);letter-spacing:.15em;color:var(--gold-dim);margin-top:1.4rem;font-size:.85rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.transition-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.transition-text{font-family:var(--mono);letter-spacing:.3em;color:var(--gold-dim);font-size:.9rem;animation:.8s ease-in-out infinite alternate pulse}@keyframes pulse{0%{opacity:.3}to{opacity:1}}.hero-section{opacity:0;width:100%;height:100vh;min-height:600px;transition:opacity 1.2s;position:relative;overflow:hidden}.hero-section.reveal{opacity:1}.hero-video-wrap{z-index:0;position:absolute;inset:0}.hero-video{object-fit:cover;width:100%;height:100%;display:block}.hero-overlay{background:linear-gradient(#0c0a0833 0%,#0c0a081a 40%,#0c0a08b3 80%,#0c0a08 100%);position:absolute;inset:0}.hero-content{z-index:1;text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;padding-bottom:6rem;padding-left:2rem;padding-right:2rem;display:flex;position:relative}.sdc-logo{opacity:.85;filter:brightness(1.1);width:auto;height:120px;margin-bottom:2.5rem}.hero-title{font-family:var(--serif);color:var(--cream);letter-spacing:.08em;margin-bottom:1rem;font-size:clamp(2.8rem,7vw,5.5rem);font-weight:300;line-height:1.1}.hero-sub{font-family:var(--serif);color:var(--gold);letter-spacing:.06em;margin-bottom:1.8rem;font-size:clamp(1rem,2.5vw,1.4rem);font-style:italic;font-weight:300}.hero-welcome{font-family:var(--mono);letter-spacing:.25em;color:var(--cream-dim);text-transform:lowercase;font-size:.85rem}.hero-welcome em{color:var(--cream);font-style:normal}.content-wrap{max-width:900px;margin:0 auto;padding:6rem 3rem 8rem}.story-section,.gallery-section,.info-section,.sdc-section{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(24px)}.reveal{opacity:1!important;transform:translateY(0)!important}.story-section{max-width:620px;margin-bottom:6rem;margin-left:auto;margin-right:auto}.story-text{font-family:var(--serif);color:var(--cream);margin-bottom:1.8rem;font-size:1.35rem;font-weight:300;line-height:1.9}.story-text--secondary{color:var(--cream-dim)}.story-text--accent{color:var(--gold);font-size:1.15rem;font-style:italic}.gallery-section{margin-bottom:5rem}.gallery-grid{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.gallery-slot{aspect-ratio:4/3;background:var(--surface);overflow:hidden}.gallery-slot--main{aspect-ratio:16/9;grid-column:1/3}.gallery-slot--wide{aspect-ratio:21/9;grid-column:1/-1}.gallery-slot img{object-fit:cover;filter:saturate(.85)brightness(.92);width:100%;height:100%;transition:filter .4s,transform .6s;display:block}.gallery-slot:hover img{filter:saturate()brightness();transform:scale(1.02)}.photo-placeholder{background:var(--surface);border:1px solid #2a2420;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.photo-placeholder span{font-family:var(--mono);letter-spacing:.2em;color:var(--gold-dim);opacity:0;font-size:.7rem}.info-section{border-top:1px solid #2a2420;margin-bottom:4rem;padding-top:3rem}.section-heading{font-family:var(--serif);letter-spacing:.35em;color:var(--gold);text-transform:uppercase;margin-bottom:2.2rem;font-size:1rem;font-weight:400}.info-block{flex-direction:column;gap:1.2rem;display:flex}.info-row{align-items:baseline;gap:2.5rem;display:flex}.info-label{font-family:var(--mono);letter-spacing:.12em;color:var(--gold-dim);flex-shrink:0;min-width:110px;font-size:.85rem}.info-value{font-family:var(--serif);color:var(--cream);font-size:1.2rem;font-weight:300}.code-reveal{font-family:var(--mono);letter-spacing:.25em;color:var(--gold)}.rules-list{flex-direction:column;gap:1rem;display:flex}.rules-list p{font-family:var(--serif);color:var(--cream-dim);padding-left:1.6rem;font-size:1.15rem;font-weight:300;line-height:1.7;position:relative}.rules-list p:before{content:"—";color:var(--gold-dim);position:absolute;left:0}.sdc-mid-banner{justify-content:center;margin-bottom:4rem;display:flex}.sdc-section{border-top:1px solid #2a2420;flex-direction:column;align-items:center;gap:1.5rem;padding-top:3rem;display:flex}.sdc-banner-link{opacity:.85;transition:opacity .3s;display:inline-block}.sdc-banner-link:hover{opacity:1}.sdc-banner{max-width:100%;height:auto;display:block}.sdc-banner--main{max-width:600px}.footer-note{font-family:var(--mono);letter-spacing:.12em;color:#3a3028;text-align:center;font-size:.65rem;line-height:1.8}.breakfast-section{opacity:0;margin-bottom:6rem;transition:opacity .9s,transform .9s;transform:translateY(24px)}.breakfast-inner{border:1px solid #2a2420;max-width:620px;margin:0 auto;padding:3rem;position:relative}.breakfast-inner:before{content:"";background:linear-gradient(to right, transparent, var(--gold-dim), transparent);height:1px;position:absolute;top:-1px;left:3rem;right:3rem}.breakfast-label{font-family:var(--mono);letter-spacing:.35em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:1rem;font-size:.6rem}.breakfast-title{font-family:var(--serif);color:var(--cream);letter-spacing:.04em;margin-bottom:2rem;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:300}.breakfast-text{font-family:var(--serif);color:var(--cream-dim);margin-bottom:1.4rem;font-size:1.15rem;font-weight:300;line-height:1.9}.breakfast-text--accent{color:var(--gold);margin-bottom:0;font-size:1.05rem;font-style:italic}.transfer-section{opacity:0;border-top:1px solid #2a2420;margin-bottom:4rem;padding-top:3rem;transition:opacity .9s,transform .9s;transform:translateY(24px)}.transfer-inner{align-items:center;gap:3rem;display:flex}.transfer-text{flex:1}.transfer-label{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.8rem;font-size:.6rem}.transfer-title{font-family:var(--serif);color:var(--cream);letter-spacing:.04em;margin-bottom:1.4rem;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:300}.transfer-desc{font-family:var(--serif);color:var(--cream-dim);margin-bottom:1rem;font-size:1.1rem;font-weight:300;line-height:1.9}.transfer-desc--sub{color:#6a5f50;margin-bottom:0;font-size:.95rem}.transfer-badge{text-align:center;border:1px solid #2a2420;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:.6rem;width:140px;height:140px;display:flex}.transfer-badge-icon{font-size:1.6rem;line-height:1}.transfer-badge-text{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dim);font-size:.52rem;line-height:1.6}.housekeeping-section{opacity:0;border-top:1px solid #2a2420;margin-bottom:5rem;padding-top:3rem;transition:opacity .9s,transform .9s;transform:translateY(24px)}.hk-intro{font-family:var(--serif);color:var(--gold);max-width:560px;margin-bottom:2.5rem;font-size:1.1rem;font-style:italic;font-weight:300;line-height:1.8}.hk-grid{grid-template-columns:1fr 1fr;gap:2rem 3rem;display:grid}.hk-item{align-items:flex-start;gap:1rem;display:flex}.hk-icon{color:var(--gold-dim);flex-shrink:0;margin-top:.35rem;font-size:.7rem}.hk-title{font-family:var(--mono);letter-spacing:.12em;color:var(--cream);margin-bottom:.5rem;font-size:.72rem}.hk-desc{font-family:var(--serif);color:var(--cream-dim);font-size:1rem;font-weight:300;line-height:1.8}.places-section{opacity:0;border-top:1px solid #2a2420;margin-bottom:5rem;padding-top:3rem;transition:opacity .9s,transform .9s;transform:translateY(24px)}.places-intro{font-family:var(--mono);letter-spacing:.12em;color:var(--gold-dim);margin-bottom:2.5rem;font-size:.75rem}.places-grid{grid-template-columns:1fr 1fr;gap:1.5px;display:grid}.place-card{background:var(--surface);flex-direction:column;min-height:280px;display:flex;position:relative;overflow:hidden}.place-card-overlay{z-index:0;background:linear-gradient(#0c0a0880 0%,#0c0a08f7 60%);position:absolute;inset:0}.place-card-content{z-index:1;flex-direction:column;justify-content:flex-end;gap:.6rem;height:100%;padding:2rem;display:flex;position:relative}.place-type{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--gold-dim);font-size:.52rem}.place-name{font-family:var(--serif);color:var(--cream);letter-spacing:.02em;font-size:1.2rem;font-weight:400}.place-text{font-family:var(--serif);color:var(--cream-dim);flex:1;font-size:1rem;font-weight:300;line-height:1.8}.place-note{font-family:var(--serif);color:var(--gold);margin-top:.2rem;font-size:.9rem;font-style:italic}.place-footer{justify-content:space-between;align-items:center;margin-top:.6rem;display:flex}.place-detail{font-family:var(--mono);letter-spacing:.15em;color:#4a3f30;font-size:.6rem}.place-map-link{font-family:var(--mono);letter-spacing:.12em;color:var(--gold-dim);font-size:.6rem;text-decoration:none;transition:color .3s}.place-map-link:hover{color:var(--gold)}.booking-note{font-family:var(--mono);letter-spacing:.1em;color:var(--gold-dim);margin-bottom:2.5rem;font-size:.72rem;line-height:1.7}.booking-form{flex-direction:column;gap:0;display:flex}.booking-row{grid-template-columns:1fr 1fr;gap:2.5rem;margin-bottom:2rem;display:grid}.booking-field{flex-direction:column;display:flex}.terminal-input--date{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.terminal-input--textarea{resize:vertical;min-height:80px;font-family:var(--mono);font-size:.9rem;line-height:1.6}.booking-error{font-family:var(--mono);letter-spacing:.1em;color:var(--red-deny);margin-bottom:1.4rem;font-size:.8rem}.booking-success{border:1px solid var(--gold-dim);text-align:center;padding:2.5rem}.booking-success-title{font-family:var(--serif);color:var(--gold);margin-bottom:.8rem;font-size:1.4rem;font-weight:300}.booking-success-sub{font-family:var(--mono);letter-spacing:.1em;color:var(--cream-dim);font-size:.72rem;line-height:1.8}@media (width<=600px){.content-wrap{padding:4rem 1.5rem 6rem}.hero-title{font-size:2.4rem}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-slot--main{grid-column:1/-1}.gallery-slot--wide{aspect-ratio:16/9;grid-column:1/-1}.info-row{flex-direction:column;gap:.3rem}.story-text{font-size:1.15rem}.places-grid,.hk-grid{grid-template-columns:1fr}.transfer-inner{flex-direction:column-reverse}.transfer-badge{width:110px;height:110px}.booking-row{grid-template-columns:1fr;gap:0}.breakfast-inner{padding:2rem 1.5rem}}
