@property --rx{syntax:"<angle>";inherits:true;initial-value:0deg}@property --ry{syntax:"<angle>";inherits:true;initial-value:0deg}@property --mx{syntax:"<percentage>";inherits:true;initial-value:35%}@property --my{syntax:"<percentage>";inherits:true;initial-value:20%}.kc-stage{width:var(--kc-w,248px);perspective:1100px;margin:0 auto;position:relative;container-type:inline-size}.kc-stage:after{content:"";filter:blur(4px);z-index:-1;background:radial-gradient(#0009 0%,#0000 70%);height:10cqw;transition:transform .6s cubic-bezier(.23,1,.32,1),opacity .6s;position:absolute;bottom:-5cqw;left:10%;right:10%}.kc-stage:has([data-state=open]):after{opacity:.4;transform:scaleX(.85)}.kc-card{--gold-foil:linear-gradient(115deg, #8f6c38 0%, #e9d29e 24%, #b08a4e 42%, #f5e5bb 58%, #a07a42 76%, #dcc187 100%);aspect-ratio:54/85.6;isolation:isolate;color:#f2e8d7;width:100%;transform:rotateX(var(--rx)) rotateY(var(--ry));background:radial-gradient(130% 70% at 20% -10%,#ffe4c81a,#0000 55%),radial-gradient(90% 60% at 100% 110%,#00000059,#0000 60%),linear-gradient(162deg,#741f3a 0%,#561528 45%,#330b18 100%);border-radius:5.5cqw;flex-direction:column;align-items:center;padding:16cqw 10cqw 9cqw;transition:transform .6s cubic-bezier(.23,1,.32,1),--rx .6s cubic-bezier(.23,1,.32,1),--ry .6s cubic-bezier(.23,1,.32,1),--mx .6s ease-out,--my .6s ease-out;animation:.9s cubic-bezier(.23,1,.32,1) both kc-deal;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0d,inset 0 1px #ffecd62e,inset 0 -1.5px #00000073,0 26px 44px -14px #000000b3,0 3px 8px #00000059}.kc-card:before{content:"";z-index:-1;opacity:.12;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.kc-frame{pointer-events:none;border:1px solid #d6b67a6b;border-radius:3cqw;position:absolute;inset:4.6cqw;box-shadow:inset 0 0 0 1.4cqw #0000,inset 0 0 0 calc(1.4cqw + 1px) #d6b67a24}.kc-arrow{clip-path:polygon(50% 0,100% 100%,0 100%);background:#d6b67a8c;width:5cqw;height:2.6cqw;position:absolute;top:8.4cqw;left:50%;transform:translate(-50%)}.kc-foil{background:var(--gold-foil);background-size:220% 100%;background-position:var(--mx) 50%;display:block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.kc-crest{flex-direction:column;align-items:center;display:flex}.kc-logo{aspect-ratio:794/568;filter:drop-shadow(0 .4cqw #00000059);width:50cqw;-webkit-mask-image:url(/hotel/casa-melia-logo-840.webp);mask-image:url(/hotel/casa-melia-logo-840.webp);-webkit-mask-size:105.8%;mask-size:105.8%}.kc-kicker{font-family:var(--font-display,system-ui, sans-serif);letter-spacing:.34em;text-transform:uppercase;color:#dec492c7;margin-top:4.5cqw;padding-left:.34em;font-size:max(7.5px,3.5cqw);font-weight:600}.kc-field{flex-direction:column;align-items:center;width:100%;margin:auto 0;display:flex}.kc-label{font-family:var(--font-display,system-ui, sans-serif);letter-spacing:.26em;text-transform:uppercase;color:#f2e8d780;margin-bottom:3cqw;padding-left:.26em;font-size:max(7.5px,3.2cqw);font-weight:600}.kc-code{width:100%;font-family:var(--font-display,system-ui, sans-serif);letter-spacing:.05em;text-align:center;text-transform:uppercase;color:#f4eadb;font-variant-numeric:tabular-nums;font-size:max(13px,6.3cqw);font-weight:500}.kc-input{appearance:none;caret-color:#e2c88e;background:0 0;border:0;border-radius:0;outline:none;padding:1.5cqw 0 2.2cqw}.kc-input::placeholder{color:#d6b67a57}.kc-input:disabled{color:#f4eadb;-webkit-text-fill-color:#f4eadb;opacity:1}.kc-rule{background:#d6b67a38;width:82cqw;height:1px;position:relative}.kc-rule span{transform:scaleX(var(--fill,0));background:#e2c88e;transition:transform .35s cubic-bezier(.23,1,.32,1);position:absolute;inset:0}.kc-card:focus-within .kc-rule{background:#d6b67a66}.kc-room{font-family:var(--font-display,system-ui, sans-serif);letter-spacing:.02em;color:#f4eadb;font-size:17cqw;font-weight:400;line-height:1}.kc-code--issued{color:#ead6a8;-webkit-user-select:all;user-select:all;border-top:1px solid #d6b67a4d;width:82cqw;margin-top:5cqw;padding-top:3.5cqw;font-size:6.4cqw}.kc-foot{flex-direction:column;align-items:center;gap:2cqw;display:flex}.kc-a18{aspect-ratio:1077/652;opacity:.85;width:12cqw;-webkit-mask-image:url(/hotel/a18-logo.webp);mask-image:url(/hotel/a18-logo.webp);-webkit-mask-size:contain;mask-size:contain}.kc-motto{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:.08em;color:#f2e8d76b;font-size:max(7.5px,3cqw);font-style:italic}.kc-led{background:#d6b67a33;border-radius:50%;width:2cqw;height:2cqw;transition:background .3s,box-shadow .3s;position:absolute;bottom:10.5cqw;right:10.5cqw}.kc-card[data-complete] .kc-led{background:#e2c88e;box-shadow:0 0 2.5cqw #e2c88ecc}.kc-card[data-state=reading] .kc-led{animation:.5s steps(2,jump-none) infinite kc-blink}.kc-card[data-state=open] .kc-led{background:#9fe0b0;box-shadow:0 0 3.5cqw #9fe0b0f2}.kc-card[data-state=error] .kc-led{background:#e88a76;box-shadow:0 0 3cqw #e88a76d9}.kc-sheen{pointer-events:none;mix-blend-mode:screen;background:radial-gradient(60cqw 60cqw at var(--mx) var(--my), #ffeccd24, transparent 70%), linear-gradient(118deg, transparent 38%, #fff5e412 48%, transparent 58%);position:absolute;inset:0}.kc-card[data-state=reading] .kc-sheen:after{content:"";background:linear-gradient(100deg,#0000 40%,#ffeccd38 50%,#0000 60%);animation:1s cubic-bezier(.65,0,.35,1) infinite kc-read;position:absolute;inset:-20% -60%}.kc-card[data-state=open]{transition:transform .55s cubic-bezier(.65,0,.35,1);transform:translateY(-5%)rotateX(10deg)scale(.97)}.kc-card--shake{animation:.42s cubic-bezier(.36,.07,.19,.97) both kc-shake}.kc-cta{width:max(var(--kc-w,248px), 264px);white-space:nowrap;min-height:48px;font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.14em;text-transform:uppercase;color:#1b0f0a;cursor:pointer;background:linear-gradient(#dcc18b 0%,#c4a267 100%);border:0;border-radius:2px;margin-top:4px;padding:0 16px;font-size:.75rem;font-weight:600;transition:background .3s ease-out,color .3s ease-out,box-shadow .3s ease-out,transform .16s ease-out,letter-spacing .3s cubic-bezier(.23,1,.32,1);box-shadow:0 10px 26px -12px #000c,inset 0 1px #ffffff59}.kc-cta:hover:not(:disabled){letter-spacing:.18em;background:linear-gradient(#e6cd9a 0%,#cdab70 100%)}.kc-cta:active:not(:disabled){transform:scale(.98)}.kc-cta:focus-visible{outline-offset:3px;outline:1px solid #ffffffb3}.kc-cta:disabled{cursor:default;color:#ede4d680;background:#1009088c;box-shadow:inset 0 0 0 1px #c9a96e4d}@keyframes kc-deal{0%{opacity:0;transform:translateY(14%)rotateX(24deg)scale(.96)}to{opacity:1;transform:rotateX(var(--rx)) rotateY(var(--ry))}}@keyframes kc-read{0%{transform:translate(-45%)}to{transform:translate(45%)}}@keyframes kc-blink{0%{background:#e2c88e}to{background:#d6b67a26}}@keyframes kc-shake{10%,90%{transform:translate(-1%)}20%,80%{transform:translate(2%)}30%,50%,70%{transform:translate(-3%)}40%,60%{transform:translate(3%)}}@keyframes kc-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.kc-card{transition:none;animation:.2s ease-out both kc-fade}.kc-card--shake,.kc-card[data-state=reading] .kc-sheen:after{animation:none}.kc-card[data-state=open]{transform:none}.kc-cta{transition:none}}.kc-room-line{font-family:var(--font-display,system-ui, sans-serif);letter-spacing:.08em;color:#f4eadb;margin-bottom:5cqw;font-size:4.4cqw}.kc-code--otp{letter-spacing:.3em;font-size:9cqw;font-family:var(--font-sans,system-ui, sans-serif);font-variant-numeric:lining-nums tabular-nums;padding-left:.3em}.kc-code--email{font-family:var(--font-sans,system-ui, sans-serif);letter-spacing:.01em;text-transform:none;font-size:5cqw}.kc-code--email::placeholder{text-transform:none}.kc-card[data-state=error] .kc-rule span{background:#e88a76}.kc-desk{--kc-w:min(clamp(200px, 26dvh, 300px), 58vw, calc(43dvh * .6308));padding:clamp(110px, 35dvh, 540px) max(16px, env(safe-area-inset-right)) calc(max(96px, env(safe-area-inset-bottom) + 80px) + var(--kb,0px)) max(16px, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:12px;display:flex}.kc-desk-head{top:max(4dvh, calc(env(safe-area-inset-top) + 80px));text-align:center;pointer-events:none;animation:.5s ease-out both kc-desk-in;position:absolute;left:16px;right:16px}.kc-desk-eyebrow{font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.18em;text-transform:uppercase;color:#c9a96e;margin:0 0 8px;font-size:.6875rem;font-weight:600}.kc-desk-title{font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.02em;color:#f1e8da;text-shadow:0 2px 12px #0009;margin:0;font-size:1.375rem;font-weight:400}.kc-desk-title:focus{outline:none}.kc-note{width:calc(var(--kc-w) + 64px);max-width:100%;min-height:2.9em;font-family:var(--font-sans,system-ui, sans-serif);text-align:center;color:#ede4d6ad;text-shadow:0 1px 6px #000000bf;margin:18px 0 0;font-size:.75rem;line-height:1.45;animation:.5s ease-out .35s both kc-desk-in}.kc-note a{color:#d7ba82}.kc-note--error{color:#f2b7a9}.kc-note--welcome{color:#e9d5a6;font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.12em;text-transform:uppercase;font-size:.8125rem}.kc-desk .kc-cta{animation:.5s ease-out .45s both kc-desk-in}.kc-link{min-height:44px;font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.14em;text-transform:uppercase;color:#d7ba82;text-underline-offset:5px;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:.6875rem;font-weight:600;-webkit-text-decoration:underline #c9a96e73;text-decoration:underline #c9a96e73}.kc-link:hover{color:#ecd3a0}.kc-link:focus-visible{outline-offset:2px;outline:1px solid #fff9}.kc-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 18px;min-height:44px;display:flex}.kc-status{color:#d7ba82;font-size:.75rem}.kc-back{top:max(20px, env(safe-area-inset-top));left:max(20px, env(safe-area-inset-left));z-index:2;min-height:44px;font-family:var(--hotel-display,var(--font-display,system-ui));letter-spacing:.14em;text-transform:uppercase;color:#ffffffb8;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:.75rem;font-weight:600;transition:color .25s cubic-bezier(.23,1,.32,1),letter-spacing .3s cubic-bezier(.23,1,.32,1);animation:.5s ease-out .2s both kc-desk-in;display:inline-flex;position:absolute}.kc-back:hover:not(:disabled),.kc-back:focus-visible{color:#fffffff2;letter-spacing:.18em}.kc-back:focus-visible{outline-offset:2px;outline:1px solid #fff9}.kc-back:disabled{opacity:.4;cursor:default}@keyframes kc-desk-in{0%{opacity:0}to{opacity:1}}@media (max-width:600px){.kc-desk{padding-top:clamp(96px,34dvh,300px)}.kc-desk-title{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){.kc-desk-head,.kc-note,.kc-desk .kc-cta,.kc-back{animation-duration:10ms;animation-delay:0s}}@media (orientation:landscape) and (max-height:640px){.kc-desk{--kc-w:min(210px, calc((100dvh - 36px) * .6308));grid-template-columns:var(--kc-w) minmax(120px, 1fr) minmax(190px, 240px);min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) calc(max(16px, env(safe-area-inset-bottom)) + var(--kb,0px)) max(20px, env(safe-area-inset-left));box-sizing:border-box;grid-auto-rows:min-content;align-content:center;gap:10px 16px;display:grid}.kc-desk>.kc-stage{grid-area:1/1/span 6;align-self:center;margin:0}.kc-desk>:not(.kc-stage){grid-column:3}.kc-desk-head{text-align:left;animation:none;position:static}.kc-desk-eyebrow{margin-bottom:4px}.kc-desk-title{font-size:1.125rem}.kc-note{text-align:left;width:auto;min-height:0;margin:0}.kc-cta{width:100%}.kc-link{justify-self:start}.kc-row{justify-content:flex-start}.kc-back{top:auto;left:auto;right:max(20px, env(safe-area-inset-right));bottom:max(8px, env(safe-area-inset-bottom))}}@media (max-width:600px) and (max-height:700px) and (orientation:portrait){.kc-desk{--kc-w:min(200px, 58vw, calc(40dvh * .6308));gap:8px;padding-top:clamp(96px,34dvh,260px)}.kc-note{min-height:0;margin-top:10px}}@media (pointer:coarse){.kc-input.kc-code{font-size:max(16px,6.3cqw)}.kc-input.kc-code--otp{font-size:max(16px,9cqw)}.kc-input.kc-code--email{font-size:max(16px,5cqw)}}
.reserve-scene{isolation:isolate;height:100dvh;min-height:100dvh;padding-bottom:max(72px, calc(env(safe-area-inset-bottom) + 56px));background:#100b08;position:relative;overflow:auto}.reserve-reception{opacity:1;visibility:visible;z-index:-1}.reserve-camera{transform:translateY(var(--desk-y)) scale(var(--desk-scale));transform-origin:var(--desk-origin)}.reserve-scene .hotel-header{padding-top:max(22px, env(safe-area-inset-top));margin-bottom:0;position:relative}.reserve-scene .hotel-content{width:min(100%,410px);margin:max(28dvh,80px) auto 0;position:relative}.reserve-scene .hotel-card{background:#140d09f0;border:1px solid #c9a96e3d;border-radius:0;padding:24px;box-shadow:0 12px 48px #00000038}.reserve-scene .hotel-steps{margin-bottom:12px}.reserve-scene .hotel-section-title{font-size:21px;font-weight:400}.reserve-scene .hotel-back{color:#e8e0d4;align-items:center;min-height:44px;display:inline-flex}.reserve-success{text-align:center}.reserve-eyebrow,.reserve-key-label{color:#c9a96e;letter-spacing:.14em;text-transform:uppercase;font-size:11px}.reserve-eyebrow{margin-bottom:14px}.reserve-room{color:#e8e0d4;margin:14px 0 20px;font-size:14px}.reserve-key{letter-spacing:.06em;color:#f4ebdd;-webkit-user-select:text;user-select:text;overflow-wrap:anywhere;margin-top:10px;font-family:ui-monospace,monospace;font-size:clamp(18px,5.2vw,24px);display:block}.reserve-copy{color:#d7ba82;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #c9a96e59;margin-top:4px;font-size:12px;display:inline-block}.reserve-copy-notice{color:#e8e0d4;min-height:18px;font-size:12px}.reserve-success .hotel-btn{min-height:44px;margin-top:18px}.reserve-copy:focus-visible,.reserve-success .hotel-back:focus-visible{outline-offset:4px;outline:2px solid #c9a96e}.reserve-success h2:focus{outline:none}@media (max-width:600px){.reserve-camera{transform:translateY(var(--desk-mobile-y)) scale(var(--desk-mobile-scale));transform-origin:var(--desk-mobile-origin)}.reserve-scene{padding-left:18px;padding-right:18px}.reserve-scene .hotel-content{margin-top:max(22dvh,50px)}.reserve-scene .hotel-card{padding:20px}}@media (max-height:680px){.reserve-scene .hotel-content{margin-top:20px}}.reserve-scene .hotel-btn-primary{color:#180f09;background:#c9a96e;border-color:#c9a96e}.reserve-scene .hotel-btn-primary:hover{color:#180f09;background:#d9bc87;border-color:#d9bc87}.reserve-scene.reserve-scene--embedded{z-index:60;background:0 0;position:absolute;inset:0}.reserve-scene--embedded:not([hidden]) .hotel-content,.reserve-scene--embedded:not([hidden]) .hotel-header{animation:.45s cubic-bezier(.23,1,.32,1) both reserve-in}@keyframes reserve-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.reserve-scene:not([data-step=rooms]):before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#08040400 0% 24%,#08040461 56%,#080404a8 100%);position:fixed;inset:0}.reserve-scene:not([data-step=rooms]){padding:0;display:block}@media (prefers-reduced-motion:reduce){.reserve-scene--embedded:not([hidden]) .hotel-content,.reserve-scene--embedded:not([hidden]) .hotel-header{animation:none}}.reserve-scene[hidden]{display:none}.reserve-scene .hotel-back{font:inherit;cursor:pointer;font-family:var(--hotel-display,system-ui);letter-spacing:.14em;text-transform:uppercase;color:#ffffffb8;background:0 0;border:0;font-size:.75rem;font-weight:600;transition:color .25s cubic-bezier(.23,1,.32,1),letter-spacing .3s cubic-bezier(.23,1,.32,1)}.reserve-scene .hotel-back:hover{color:#fffffff2;letter-spacing:.18em}
.checkin-scene{isolation:isolate;overscroll-behavior:contain;height:100dvh;min-height:100dvh;position:relative;overflow:auto}.checkin-scene.checkin-scene--embedded{z-index:60;background:0 0;position:absolute;inset:0}.checkin-scene[hidden]{display:none}.checkin-scene:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#08040400 0% 24%,#08040461 56%,#080404a8 100%);animation:.6s ease-out both kc-desk-in;position:fixed;inset:0}
