:root{--hotel-bg:#0a0a0a;--hotel-bg-elevated:#111;--hotel-bg-card:#161616;--hotel-border:#222;--hotel-text:#ededed;--hotel-text-muted:#888;--hotel-text-dim:#555;--hotel-accent:#8b2252;--hotel-accent-light:#a83269;--hotel-accent-glow:#8b225226;--hotel-gold:#c9a96e;--hotel-gold-dim:#c9a96e26;--hotel-success:#2e7d32;--hotel-error:#c62828;--hotel-display:system-ui, sans-serif;--hotel-sans:system-ui, -apple-system, sans-serif;--hotel-mono:"SF Mono", "Fira Code", monospace;--hotel-radius:2px;--hotel-max-width:640px}.hotel-page{--hotel-display:var(--font-display), system-ui, sans-serif;--hotel-sans:var(--font-sans), system-ui, -apple-system, sans-serif;min-height:100vh;font-family:var(--hotel-sans);color:var(--hotel-text);background:var(--hotel-bg);flex-direction:column;align-items:center;padding:48px 16px;display:flex}.hotel-header{text-align:center;margin-bottom:48px}.hotel-title{font-family:var(--hotel-display);letter-spacing:.2em;text-transform:uppercase;color:var(--hotel-gold);margin-bottom:4px;font-size:1.5rem;font-weight:400}.hotel-subtitle{letter-spacing:.15em;text-transform:uppercase;color:var(--hotel-text-muted);font-size:.75rem}.hotel-content{width:100%;max-width:var(--hotel-max-width)}.hotel-card{background:var(--hotel-bg-card);border:1px solid var(--hotel-border);border-radius:var(--hotel-radius);margin-bottom:24px;padding:32px}.hotel-section-title{font-family:var(--hotel-display);letter-spacing:.05em;color:var(--hotel-text);margin-bottom:16px;font-size:1.125rem;font-weight:400}.hotel-divider{border:none;border-top:1px solid var(--hotel-border);margin:24px 0}.hotel-btn{font-family:var(--hotel-sans);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--hotel-border);border-radius:var(--hotel-radius);color:var(--hotel-text);cursor:pointer;background:0 0;justify-content:center;align-items:center;min-width:160px;padding:12px 32px;font-size:.875rem;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.hotel-btn:hover{border-color:var(--hotel-accent);color:var(--hotel-accent-light)}.hotel-btn:disabled{opacity:.4;cursor:not-allowed}.hotel-btn:disabled:hover{border-color:var(--hotel-border);color:var(--hotel-text)}.hotel-btn-primary{background:var(--hotel-accent);border-color:var(--hotel-accent);color:#fff}.hotel-btn-primary:hover{background:var(--hotel-accent-light);border-color:var(--hotel-accent-light);color:#fff}.hotel-btn-primary:disabled:hover{background:var(--hotel-accent);border-color:var(--hotel-accent);color:#fff}.hotel-btn-block{width:100%}.hotel-input{width:100%;font-family:var(--hotel-sans);color:var(--hotel-text);background:var(--hotel-bg);border:1px solid var(--hotel-border);border-radius:var(--hotel-radius);outline:none;padding:12px 16px;font-size:1rem;transition:border-color .2s}.hotel-input:focus{border-color:var(--hotel-accent)}.hotel-input::placeholder{color:var(--hotel-text-dim)}.hotel-input-key{font-family:var(--hotel-mono);letter-spacing:.15em;text-align:center;text-transform:uppercase;font-size:1.25rem}.hotel-label{letter-spacing:.1em;text-transform:uppercase;color:var(--hotel-text-muted);margin-bottom:8px;font-size:.75rem;display:block}.hotel-field{margin-bottom:20px}.hotel-error{color:var(--hotel-error);margin-top:8px;font-size:.875rem}.hotel-success{color:var(--hotel-success);margin-top:8px;font-size:.875rem}.hotel-info{color:var(--hotel-text-muted);font-size:.875rem;line-height:1.5}.hotel-vacancy-badge{letter-spacing:.15em;text-transform:uppercase;border-radius:var(--hotel-radius);padding:6px 16px;font-size:.75rem;font-weight:600;display:inline-block}.hotel-vacancy-badge-available{background:var(--hotel-accent-glow);color:var(--hotel-accent-light);border:1px solid var(--hotel-accent)}.hotel-vacancy-badge-none{background:var(--hotel-gold-dim);color:var(--hotel-gold);border:1px solid #c9a96e4d}.hotel-room-list{margin:0;padding:0;list-style:none}.hotel-room-item{border:1px solid var(--hotel-border);border-radius:var(--hotel-radius);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:8px;padding:16px;transition:border-color .2s,background .2s;display:flex}.hotel-room-item:hover,.hotel-room-item-selected{border-color:var(--hotel-accent);background:var(--hotel-accent-glow)}.hotel-room-number{font-family:var(--hotel-mono);letter-spacing:.1em;font-size:1rem}.hotel-room-drop{color:var(--hotel-text-muted);font-size:.75rem}.hotel-steps{justify-content:center;gap:8px;margin-bottom:32px;display:flex}.hotel-step{background:var(--hotel-border);border-radius:50%;width:8px;height:8px;transition:background .2s}.hotel-step-active{background:var(--hotel-accent)}.hotel-step-done{background:var(--hotel-gold)}.hotel-room-view{width:100%;max-width:800px}.hotel-room-scene{grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;display:grid}@media (max-width:600px){.hotel-room-scene{grid-template-columns:1fr}}.hotel-object{background:var(--hotel-bg-card);border:1px solid var(--hotel-border);border-radius:var(--hotel-radius);cursor:pointer;padding:24px;transition:border-color .3s,box-shadow .3s}.hotel-object:hover{border-color:var(--hotel-accent);box-shadow:0 0 20px var(--hotel-accent-glow)}.hotel-object-label{font-family:var(--hotel-display);letter-spacing:.1em;text-transform:uppercase;color:var(--hotel-gold);margin-bottom:8px;font-size:.875rem}.hotel-nav{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:24px;display:flex}.hotel-spinner{border:2px solid var(--hotel-border);border-top-color:var(--hotel-accent);border-radius:50%;width:16px;height:16px;animation:.6s linear infinite hotel-spin;display:inline-block}@keyframes hotel-spin{to{transform:rotate(360deg)}}.hotel-key-display{font-family:var(--hotel-mono);letter-spacing:.2em;text-align:center;background:var(--hotel-bg);border:1px solid var(--hotel-gold);border-radius:var(--hotel-radius);color:var(--hotel-gold);margin:16px 0;padding:16px;font-size:1.5rem}.hotel-otp-input{font-family:var(--hotel-mono);letter-spacing:.3em;text-align:center;width:200px;padding:12px;font-size:1.5rem}.hotel-back{color:var(--hotel-text-muted);letter-spacing:.1em;text-transform:uppercase;margin-bottom:24px;font-size:.75rem;text-decoration:none;transition:color .2s;display:inline-block}.hotel-back:hover{color:var(--hotel-text)}.hotel-confirmed{text-align:center;padding:32px 0}.hotel-confirmed-icon{color:var(--hotel-gold);margin-bottom:16px;font-size:2rem}.he-vignette{pointer-events:none;background:radial-gradient(#0000 40%,#000000b3 100%);position:absolute;inset:0}.he-grain{opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:128px;position:absolute;inset:0}.he-root{--hotel-display:var(--font-display), system-ui, sans-serif;--hotel-sans:var(--font-sans), system-ui, -apple-system, sans-serif;width:100%;min-height:100dvh;color:var(--hotel-text);background:#050505;position:relative;overflow:hidden}.he-intro{z-index:1000;pointer-events:none;--a18-size:260px;--a18-x:50%;--a18-y:50%;background:#050505;position:fixed;inset:0}.he-intro--hole{background:0 0}.he-intro--done{display:none}.he-intro-veil{will-change:transform;position:absolute;inset:0}.he-intro-svg{display:block;position:absolute;inset:0}.he-intro-mark{left:var(--a18-x);top:var(--a18-y);width:var(--a18-size);aspect-ratio:1077/652;opacity:0;will-change:opacity;-webkit-user-select:none;user-select:none;pointer-events:none;height:auto;position:absolute;transform:translate(-50%,-50%)}@media (max-width:800px){.he-intro{--a18-size:min(190px, 68vw)}}.he-exterior{z-index:10;background:#050505;position:fixed;inset:0;overflow:hidden}.he-exterior-img{object-fit:cover;object-position:center 45%;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.he-vignette--exterior{background:linear-gradient(#0000001a 0%,#0000 25% 45%,#00000080 78%,#000000b3 100%),radial-gradient(#0000 50%,#0000004d 100%)}.he-exterior-content{z-index:2;text-align:center;flex-direction:column;justify-content:flex-end;align-items:center;gap:20px;padding:0 16px 6vh;display:flex;position:absolute;inset:0}.he-brand{flex-direction:column;align-items:center;display:flex}.he-logo-img{-webkit-user-select:none;user-select:none;filter:drop-shadow(0 2px 24px #00000080);width:clamp(180px,38vw,420px);height:auto}.he-enter-prompt{color:#ffffffdb;cursor:pointer;font-family:var(--hotel-display);letter-spacing:.35em;text-transform:uppercase;text-shadow:0 1px 12px #0009;background:0 0;border:1px solid #ffffff1f;padding:18px 48px;font-size:.75rem;font-weight:600;transition:color .3s cubic-bezier(.23,1,.32,1),border-color .3s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1);animation:5s ease-in-out infinite he-prompt-breathe;position:relative}.he-enter-prompt:before{content:"";background:#ffffff1f;width:32px;height:1px;transition:width .4s cubic-bezier(.23,1,.32,1),background .3s;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}.he-enter-prompt:hover,.he-enter-prompt:focus-visible{color:#fffffff2;border-color:#fff3;animation:none}.he-enter-prompt:hover:before{background:#ffffff59;width:60%}.he-enter-prompt:active{transform:scale(.97)}.he-enter-prompt:focus-visible{outline-offset:6px;outline:1px solid #ffffffb3}.he-enter-prompt:disabled{opacity:.1;cursor:wait;border-color:#0000;animation:none}.he-enter-prompt:disabled:before{display:none}.he-enter-prompt--waiting{cursor:progress;animation:none}.he-enter-prompt--waiting:before{animation:1.6s ease-in-out infinite he-prompt-wait}@keyframes he-prompt-wait{0%,to{background:#fff3;width:32px}50%{background:#ffffff80;width:60%}}@keyframes he-prompt-breathe{0%,to{opacity:1}50%{opacity:.72}}.he-reception-scene{z-index:1;opacity:0;visibility:hidden;position:fixed;inset:0;overflow:hidden}.he-scene-img{object-fit:cover;object-position:center 45%;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.he-camera{z-index:1;transform-origin:50% 38%;position:absolute;inset:-5%}.he-vignette--desk{opacity:0;visibility:hidden;background:radial-gradient(at 50% 40%,#0000 18%,#00000073 52%,#000000d9 100%)}.he-transition-dark{z-index:5;pointer-events:none;opacity:0;visibility:hidden;background:#020202;position:fixed;inset:0}.he-character-layer{z-index:3;pointer-events:none;position:absolute;inset:0}.he-character-slot{width:clamp(120px,22vw,240px);height:clamp(200px,40vh,400px);position:absolute;bottom:38%;left:50%;transform:translate(-50%)}.he-desk-occlusion{z-index:4;pointer-events:none;position:absolute;inset:0}.he-reception-brand{z-index:10;opacity:0;visibility:hidden;justify-content:center;display:flex;position:absolute;top:clamp(20px,3.5vh,32px);left:0;right:0}.he-reception-wordmark{font-family:var(--font-casa-melia), var(--hotel-display);letter-spacing:.3em;text-transform:uppercase;color:#fff9;text-shadow:0 1px 8px #00000080;margin:0;font-size:clamp(.7rem,1.4vw,.75rem);font-weight:400}.he-approach-zone{z-index:10;opacity:0;visibility:hidden;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:clamp(48px,12vh,120px);left:0;right:0}.he-approach-prompt{color:#ffffffdb;cursor:pointer;font-family:var(--hotel-display);letter-spacing:.35em;text-transform:uppercase;text-shadow:0 1px 12px #0009;background:0 0;border:none;padding:36px 64px 24px;font-size:.75rem;font-weight:600;transition:color .25s cubic-bezier(.23,1,.32,1),transform .16s cubic-bezier(.23,1,.32,1);animation:5s ease-in-out infinite he-prompt-breathe;position:relative}.he-approach-prompt:before{content:"";background:0 0;border:1px solid #ffffff40;width:5px;height:5px;transition:border-color .3s cubic-bezier(.23,1,.32,1),width .3s cubic-bezier(.23,1,.32,1),height .3s cubic-bezier(.23,1,.32,1);position:absolute;top:6px;left:50%;transform:translate(-50%)rotate(45deg)}.he-approach-prompt:after{content:"";background:#ffffff1a;width:1px;height:10px;transition:height .3s cubic-bezier(.23,1,.32,1),background .3s;position:absolute;top:15px;left:50%;transform:translate(-50%)}.he-approach-prompt:hover,.he-approach-prompt:focus-visible{color:#fffffff2;animation:none!important}.he-approach-prompt:hover:before{border-color:#fff9;width:7px;height:7px}.he-approach-prompt:hover:after{background:#ffffff4d;height:14px}.he-approach-prompt:active{transform:scale(.97)}.he-approach-prompt:focus-visible{outline-offset:6px;outline:1px solid #ffffff4d}.he-dialogue-zone{z-index:10;padding:0 16px calc(env(safe-area-inset-bottom,0px) + clamp(24px, 5vh, 48px));justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}@media (max-width:480px){.he-dialogue-zone{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 52px)}}.he-dialogue{opacity:0;visibility:hidden;background:linear-gradient(#0000004d 0%,#000000a6 100%);border:none;border-top:1px solid #ffffff0f;flex-direction:column;gap:16px;width:100%;max-width:420px;padding:28px 32px 32px;display:flex}.he-dialogue-line{font-family:var(--hotel-display);letter-spacing:.01em;color:#ffffffd9;margin:0;font-size:clamp(.9rem,2.4vw,1.05rem);font-style:normal;font-weight:400;line-height:1.6}.he-dialogue-line--aside{font-family:var(--hotel-sans);color:#ffffffa8;letter-spacing:.03em;font-size:.8125rem;font-style:normal;font-weight:400}.he-dialogue-choices{border-top:1px solid #ffffff0f;flex-direction:column;gap:0;margin-top:8px;padding-top:4px;display:flex}.he-choice{width:100%;font-family:var(--hotel-display);letter-spacing:.14em;text-transform:uppercase;text-align:left;color:#ffffffb8;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffffff0f;min-height:44px;padding:14px 16px 14px 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),transform .16s cubic-bezier(.23,1,.32,1);position:relative}.he-choice:last-child{border-bottom:none}.he-choice:after{content:"";background:#ffffff40;width:0;height:1px;transition:width .35s cubic-bezier(.23,1,.32,1);position:absolute;bottom:-1px;left:0}.he-choice:active{transform:scale(.98)}.he-choice:hover,.he-choice:focus-visible{color:#fffffff2;letter-spacing:.18em}.he-choice:hover:after,.he-choice:focus-visible:after{width:100%}.he-choice:focus-visible{outline-offset:2px;outline:1px solid #fff9}.he-choice--primary{color:#ffffffdb}.he-choice--primary:after{background:var(--hotel-accent-light)}.he-choice--primary:hover,.he-choice--primary:focus-visible{color:#fff}.he-choice--return{color:#fff9;letter-spacing:.1em;border-bottom:none;margin-top:4px;font-size:.6875rem}.he-choice--return:after{background:#ffffff1a}.he-choice--return:hover,.he-choice--return:focus-visible{color:#ffffffe6}nextjs-portal{display:none!important}@media (prefers-reduced-motion:reduce){.he-approach-prompt,.he-enter-prompt{animation:none!important}.he-enter-prompt--waiting:before{width:60%;animation:none}}@media (max-width:600px){.he-exterior-img{object-position:center 40%}.he-exterior-content{gap:16px;padding-bottom:5vh}.he-wordmark span{font-size:clamp(3rem,12vw,4.5rem)}.he-enter-prompt{padding:16px 40px}.he-approach-prompt{padding:32px 48px 20px}.he-dialogue{max-width:100%;padding:24px 20px 28px}.he-choice{padding:13px 0}}@keyframes he-pulse{0%,to{border-color:#c9a96e4d}50%{border-color:#c9a96e80}}.cc-overlay{z-index:900;padding:0 16px calc(env(safe-area-inset-bottom,0px) + 16px);pointer-events:none;justify-content:center;display:flex;position:fixed;inset:auto 0 0}.cc-overlay--modal{pointer-events:auto;background:#0505058c;align-items:flex-end;inset:0}.cc-banner{pointer-events:auto;color:#e8e0d4;width:100%;max-width:520px;max-height:calc(100dvh - 32px);font-family:var(--hotel-sans);background:#0e0b09;border:1px solid #e8e0d424;padding:22px 24px 24px;overflow-y:auto;box-shadow:0 18px 48px #0000008c}.cc-title{font-family:var(--hotel-display);letter-spacing:.22em;text-transform:uppercase;color:#f3ece1;margin-bottom:10px;font-size:.75rem;font-weight:600}.cc-desc{color:#e8e0d4c7;margin-bottom:18px;font-size:.8125rem;line-height:1.6}.cc-link{color:#d9c7a5;text-underline-offset:3px;-webkit-text-decoration:underline #d9c7a573;text-decoration:underline #d9c7a573}.cc-link:hover{text-decoration-color:currentColor}.cc-link:focus-visible{outline-offset:2px;outline:2px solid #d9c7a5}.cc-actions{flex-wrap:wrap;gap:8px;display:flex}.cc-btn{color:#e8e0d4;min-width:0;min-height:44px;font-family:var(--hotel-sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #e8e0d447;border-radius:0;flex:1 1 0;padding:10px 16px;font-size:.6875rem;font-weight:600;transition:background-color .16s ease-out,border-color .16s ease-out,transform .16s ease-out}.cc-btn:hover{background:#e8e0d40f;border-color:#e8e0d480}.cc-btn:active{transform:scale(.97)}.cc-btn:focus-visible{outline-offset:2px;outline:2px solid #d9c7a5}.cc-btn-settings{color:#e8e0d4c7;border-color:#e8e0d424;flex-basis:100%}@media (max-width:600px){.cc-banner{padding:18px}.cc-desc{margin-bottom:14px}.cc-btn{letter-spacing:.1em;padding:10px 8px}}.cc-category{border-bottom:1px solid #e8e0d41a;padding:12px 0}.cc-category:last-of-type{margin-bottom:16px}.cc-category-header{justify-content:space-between;align-items:center;display:flex}.cc-category-name{cursor:pointer;font-size:.875rem;font-weight:500}.cc-category-badge{color:#e8e0d49e;text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem}.cc-category-desc{color:#e8e0d4b3;margin-top:4px;font-size:.75rem;line-height:1.5}.cc-toggle{appearance:none;cursor:pointer;background:#2a221d;border-radius:10px;flex-shrink:0;width:36px;height:20px;position:relative;box-shadow:inset 0 0 0 1px #e8e0d438}.cc-toggle:after{content:"";background:#e8e0d4b3;border-radius:50%;width:16px;height:16px;transition:transform .16s ease-out,background-color .16s ease-out;position:absolute;top:2px;left:2px}.cc-toggle:checked{background:#7d2434}.cc-toggle:checked:after{background:#f3ece1;transform:translate(16px)}.cc-toggle:focus-visible{outline-offset:2px;outline:2px solid #d9c7a5}.lg-gate-privacy{color:#e8e0d49e;text-align:center;margin:0;font-size:.75rem;line-height:1.5}.lg-gate-consent a{color:#d9c7a5;text-underline-offset:2px;-webkit-text-decoration:underline #d9c7a573;text-decoration:underline #d9c7a573}.lg-gate-consent a:focus-visible{outline-offset:2px;outline:1px solid #d9c7a5}.hotel-privacy-notice{color:var(--hotel-text-muted,#888);margin:8px 0 12px;font-size:.6875rem;line-height:1.5}.hotel-privacy-notice a{color:var(--hotel-gold,#c9a96e);text-underline-offset:2px;text-decoration:underline}.legal-trigger{z-index:50;font-family:var(--hotel-sans);color:#e8e0d4bd;text-transform:uppercase;letter-spacing:.08em;text-shadow:0 1px 6px #0009;cursor:pointer;background:0 0;border:none;justify-content:flex-end;align-items:flex-end;min-width:44px;min-height:44px;padding:6px 0;font-size:.75rem;transition:color .2s;display:flex;position:fixed;bottom:12px;right:16px}.legal-trigger:hover,.legal-trigger[aria-expanded=true]{color:#e8e0d4d9}.legal-trigger:focus-visible{outline:2px solid var(--hotel-gold,#c9a96e);outline-offset:2px}@media (max-width:600px){.legal-trigger{bottom:env(safe-area-inset-bottom,0px);letter-spacing:.16em;color:#e8e0d499;min-height:32px;padding:0 8px 8px;font-size:.625rem;font-weight:400;right:8px}}.legal-sheet{z-index:100;background:var(--hotel-bg-elevated,#111);border:1px solid var(--hotel-border,#222);border-radius:var(--hotel-radius,2px);opacity:0;min-width:200px;padding:8px 0;animation:.18s ease-out forwards legal-sheet-in;position:fixed;bottom:48px;right:16px;transform:translateY(4px)}@keyframes legal-sheet-in{to{opacity:1;transform:translateY(0)}}.legal-sheet-nav{flex-direction:column;display:flex}.legal-sheet-link{font-family:var(--hotel-sans);color:var(--hotel-text,#ededed);letter-spacing:.01em;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 20px;font-size:.8125rem;text-decoration:none;display:block}.legal-sheet-link:hover{background:var(--hotel-bg-card,#161616)}.legal-sheet-link:focus-visible{outline:2px solid var(--hotel-gold,#c9a96e);outline-offset:-2px}.legal-sheet-btn{border-top:1px solid var(--hotel-border,#222);margin-top:4px;padding-top:12px}@media (max-width:480px){.legal-sheet{left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom,0px) + 52px);min-width:0}.legal-sheet-link{padding:13px 20px}}@media (prefers-reduced-motion:reduce){.legal-sheet{animation-name:legal-sheet-fade;transform:none}}@keyframes legal-sheet-fade{to{opacity:1}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[tabindex="-1"]:focus{outline:none}
