.floor-map .fp-table{transition:opacity var(--duration-slow) var(--ease-luxe)}.floor-map .fp-table .fp-shape{transition:fill .55s var(--ease-luxe), stroke .55s var(--ease-luxe), stroke-width var(--duration-base) var(--ease-out), stroke-dasharray .55s var(--ease-luxe), filter .55s var(--ease-luxe)}.floor-map .fp-table text{transition:fill .55s var(--ease-luxe)}.floor-map .fp-table.is-zone-hover:not(.is-booked):not(.is-small) .fp-shape{stroke-width:2px;filter:drop-shadow(0 0 14px #c6a15b8c)}.floor-map .fp-table.is-zone-hover:not(.is-booked):not(.is-small) text{fill:var(--oc-foam)}.floor-plan-svg .fp-pulse,.floor-plan-svg .fp-ripple{fill:none;pointer-events:none;transform-box:fill-box;transform-origin:50%;vector-effect:non-scaling-stroke}.floor-plan-svg .fp-pulse{stroke:var(--oc-gold-300);stroke-width:2px;opacity:0}.floor-plan-svg .fp-ripple{stroke:var(--oc-ice);stroke-width:1.5px;opacity:0}@media (prefers-reduced-motion:no-preference){.floor-plan-svg .fp-pulse{animation:fp-pulse 2s var(--ease-out) infinite}.floor-plan-svg[data-inview=false] .fp-pulse{animation-play-state:paused}.floor-map .fp-table.is-free:hover .fp-ripple,.floor-map .fp-table.is-free:focus-visible .fp-ripple{animation:fp-ripple 1.15s var(--ease-out)}}@keyframes fp-pulse{0%{opacity:.85;transform:scale(1)}70%{opacity:.28}to{opacity:0;transform:scale(1.42)}}@keyframes fp-ripple{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.22)}}.floor-legend .legend-row{border-radius:var(--radius-input);padding-inline:var(--space-2,8px);margin-inline:calc(-1 * var(--space-2,8px));transition:background-color var(--duration-base) var(--ease-out)}.floor-legend .legend-swatch{transition:box-shadow var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out)}.floor-legend .legend-row__name,.floor-legend .legend-row__min{transition:var(--transition-color)}.floor-legend .legend-row:hover{background:var(--oc-foam-08)}.floor-legend .legend-row.legend-row--active{background:var(--oc-gold-25)}.floor-legend .legend-row.legend-row--active .legend-swatch{border-color:var(--oc-gold-300);box-shadow:0 0 12px #c6a15b99}.floor-legend .legend-row.legend-row--active .legend-row__name{color:var(--oc-foam)}.floor-legend .legend-row.legend-row--active .legend-row__min{color:var(--oc-gold-300)}@media (prefers-reduced-motion:no-preference){.floor-side .table-detail{animation:res-detail-in .55s var(--ease-luxe) both}.res-summary__table--swap{animation:res-detail-in .45s var(--ease-luxe) both}.res-error{animation:res-detail-in .4s var(--ease-luxe) both}}@keyframes res-detail-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.res-form .osc-field__label,.floor-controls .osc-field__label{transition:var(--transition-color), transform var(--duration-base) var(--ease-luxe), letter-spacing var(--duration-base) var(--ease-luxe)}.res-form .osc-field:focus-within .osc-field__label,.floor-controls .osc-field:focus-within .osc-field__label{color:var(--oc-gold-300);letter-spacing:var(--tracking-widest);transform:translateY(-2px)}.res-form .osc-input,.res-form .osc-select,.floor-controls .osc-select{transition:var(--transition-color), box-shadow var(--duration-slow) var(--ease-luxe)}.res-form .osc-input:focus,.res-form .osc-select:focus,.floor-controls .osc-select:focus{border-color:var(--oc-brass);box-shadow:0 0 0 3px var(--info-bg), inset 0 -2px 0 var(--oc-gold-300), 0 0 26px #c6a15b4d}.res-form .osc-btn--primary{transition:var(--transition-color), transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-slow) var(--ease-luxe)}.res-form .osc-btn--primary:active{box-shadow:0 0 36px #c6a15b8c}.res-consents{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--oc-foam-12);border-radius:var(--radius-input);background:var(--oc-foam-08);display:grid}.res-consents .osc-check{width:100%;min-height:44px}.res-consents .res-error{margin:calc(-1 * var(--space-2)) 0 0}.res-identity-status{color:var(--text-muted);font-size:var(--text-sm);margin:0}@media (prefers-reduced-motion:no-preference){.osc-dialog.res-dialog--celebrate{animation:res-dialog-celebrate .8s var(--ease-luxe) both}}@keyframes res-dialog-celebrate{0%{opacity:0;box-shadow:var(--shadow-xl), 0 0 0 #c6a15b00;transform:scale(.96)}45%{opacity:1;box-shadow:var(--shadow-xl), 0 0 64px #c6a15b6b}to{opacity:1;box-shadow:var(--shadow-xl), var(--shadow-inner-top), 0 0 20px #c6a15b1f;transform:scale(1)}}
