:root {
  color-scheme: light;
  --brand-50: #fff1f6;
  --brand-100: #fce4ee;
  --brand-300: #f5a4c6;
  --brand-500: #e83787;
  --brand-700: #a50064;
  --brand-800: #870051;
  --brand-900: #56132f;
  --page: #fdfbf7;
  --surface: #fffdfb;
  --border: #e6dce8;
  --ink: #30202a;
  --muted: #75616e;
  --pink: #e65f91;
  --blue: #5d91db;
  --empty: #b8b8c2;
  --shadow-card: 0 12px 30px rgba(74, 21, 59, 0.07);
  --shadow-raised: 0 16px 34px rgba(74, 21, 59, 0.15);
  font-family: "Outfit", system-ui, sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { min-width: 320px; background: var(--page); }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(ellipse 48% 34% at -8% 40%, rgba(205, 184, 216, 0.36), transparent 70%),
    radial-gradient(ellipse 48% 40% at 108% 72%, rgba(237, 227, 242, 0.88), transparent 70%),
    var(--page);
}

button, input, select { font: inherit; }
button { color: inherit; }

.app-shell { min-height: 100vh; }

.topbar {
  min-height: 104px;
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto minmax(240px, 1fr);
  align-items: center;
  gap: 28px;
  padding: 18px clamp(24px, 4vw, 64px);
  border-bottom: 1px solid rgba(230, 220, 232, 0.8);
  background: rgba(255, 253, 251, 0.87);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  gap: 12px;
  color: var(--brand-900);
  text-decoration: none;
}

.brand__mark { width: 52px; height: 52px; flex: 0 0 auto; overflow: visible; }
.brand__petal--top, .brand__petal--bottom { fill: url(#petal-lavender); }
.brand__petal--left, .brand__petal--right { fill: url(#petal-rose); }
.topbar .brand__petal--top, .topbar .brand__petal--bottom { fill: #af89b4; }
.topbar .brand__petal--left, .topbar .brand__petal--right { fill: #bf889b; }
.brand__center-ring { fill: #fffaf8; opacity: .92; }
.brand__center { fill: #84607f; }

.brand__name {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-family: "Outfit", system-ui, sans-serif;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 700;
  line-height: 1;
  transform: translateY(2px);
  white-space: nowrap;
}

.progress { display: flex; align-items: flex-start; justify-content: center; }
.progress i { width: clamp(24px, 4vw, 64px); height: 1px; margin-top: 17px; background: var(--border); }

.progress__item {
  min-width: 62px;
  display: grid;
  justify-items: center;
  gap: 6px;
  color: #91889a;
  font-size: 0.82rem;
}

.progress__item b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  font-size: 0.85rem;
}

.progress__item.is-active { color: var(--brand-800); font-weight: 700; }
.progress__item.is-active b { color: #fff; border-color: var(--brand-700); background: var(--brand-700); box-shadow: 0 0 0 6px var(--brand-100); }
.progress__item.is-complete { color: var(--brand-700); }
.progress__item.is-complete b { color: #fff; border-color: var(--brand-500); background: var(--brand-500); }

.locale-button {
  justify-self: end;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,0.7);
  cursor: pointer;
}

.language-picker { position:relative; display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:0 10px; border:1px solid var(--border); border-radius:999px; color:var(--brand-800); background:rgba(255,253,251,.96); box-shadow:0 5px 14px rgba(74,21,59,.08); direction:ltr; }
.language-picker__icon { display:inline-grid; flex:0 0 auto; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--brand-700); background:linear-gradient(145deg,#f7eaf2,#fffaf7); box-shadow:inset 0 0 0 1px rgba(129,36,95,.12); font-size:15px; line-height:1; pointer-events:none; }
.utility-emoji { display:block; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; line-height:1; }
.language-picker__icon svg,
.reference-help-link__icon svg,
.mobile-help-link__icon svg { width:58%; height:58%; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.language-picker select { min-width:108px; padding:8px 20px 8px 0; border:0; color:inherit; background:transparent; cursor:pointer; font-size:13px; font-weight:700; outline:none; }
.language-picker select:focus-visible { outline:2px solid var(--brand-500); outline-offset:2px; border-radius:6px; }
.language-picker--reference { position:absolute; top:2.0%; right:2.0%; z-index:12; }
.language-picker--editor { flex:0 0 auto; min-height:42px; }
.mobile-header__tools { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.language-picker--mobile { min-height:44px; padding-inline:9px; box-shadow:none; }
.language-picker--mobile select { min-width:76px; font-size:12px; }

.page {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: clamp(56px, 8vh, 90px) 0 52px;
}

.page-heading { max-width: 850px; margin: 0 auto 48px; text-align: center; }
.eyebrow { margin: 0 0 12px; color: var(--brand-700); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
h1, h2, h3 { font-family: "Outfit", system-ui, sans-serif; }
h1 { margin: 0; font-size: clamp(2.55rem, 5.1vw, 4.5rem); line-height: 1.03; letter-spacing: -0.035em; }

.event-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.event-card {
  position: relative;
  min-height: 168px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: rgba(255, 253, 251, 0.9);
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background 160ms ease;
}

.event-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-raised); border-color: var(--brand-300); }
.event-card:active { transform: translateY(-1px) scale(.985); transition-duration: 90ms; }
.event-card:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(205, 184, 216, 0.54), var(--shadow-raised); }
.event-card.is-selected { border-color: var(--brand-700); background: linear-gradient(155deg, #fffdfb, var(--brand-50)); }

.event-card__icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  color: var(--brand-700);
  background: linear-gradient(145deg, #f7eff7, #eadde9);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 16px rgba(74,21,59,.09);
  font-family: Georgia, serif;
  font-size: 2rem;
}

.event-card__label { font-family: "Outfit", system-ui, sans-serif; font-size: 1.3rem; font-weight: 700; }

.event-card__check {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: transparent;
  background: transparent;
  font-weight: 700;
}

.event-card.is-selected .event-card__check { color: #fff; background: var(--brand-700); }

.step-actions { display: flex; gap: 16px; margin-top: 38px; }
.step-actions--end { justify-content: flex-end; }

.button {
  min-height: 56px;
  min-width: 240px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  border: 1px solid transparent;
  border-radius: 16px;
  padding: 0 32px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 8px 18px rgba(74,21,59,.14);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.button:hover { transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255,255,255,.5), 0 12px 24px rgba(74,21,59,.19); }
.button:active { transform: translateY(0) scale(.985); transition-duration: 90ms; box-shadow: inset 0 2px 3px rgba(74,21,59,.18), 0 4px 10px rgba(74,21,59,.12); }
.button:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(205,184,216,.62), 0 10px 22px rgba(74,21,59,.18); }
.button--primary { color: #fff; border-color: var(--brand-800); background: linear-gradient(180deg, #bd2479 0%, #a50064 100%); }
.button--secondary { color: var(--ink); border-color: #cfc1d4; background: linear-gradient(#fffdfb, #f8f2f7); }
.button--ghost { min-width: auto; min-height: 44px; padding-inline: 18px; color: var(--brand-800); border-color: var(--border); background: rgba(255,255,255,.72); box-shadow: 0 5px 14px rgba(74,21,59,.08); }
.button--small { min-width: auto; min-height: 44px; padding-inline: 18px; border-radius: 13px; font-size: .9rem; }

.choice-group { display: flex; gap: 10px; flex-wrap: wrap; }
.choice-pill {
  min-height: 46px;
  padding: 0 19px;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--muted);
  background: var(--surface);
  cursor: pointer;
}
.choice-pill.is-selected { color: var(--brand-800); border-color: var(--brand-700); background: var(--brand-50); box-shadow: 0 0 0 3px rgba(205,184,216,.32); }
.choice-pill:active { transform: scale(.985); transition: transform 90ms ease-out; }

.split-layout { display: grid; grid-template-columns: minmax(360px, .85fr) minmax(480px, 1.35fr); gap: 22px; align-items: stretch; }
.panel {
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 30px;
  background: rgba(255,253,251,.92);
  box-shadow: var(--shadow-card);
}
.panel h2, .panel h3 { margin: 0; }
.form-stack { display: grid; gap: 22px; }
.field-group { display: grid; gap: 9px; }
.field-label { font-size: .9rem; font-weight: 700; color: var(--ink); }
.field-help { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.input-wrap { position: relative; }
.input-wrap input, .text-input, .select-input {
  width: 100%;
  min-height: 54px;
  padding: 0 54px 0 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  color: var(--ink);
  background: #fff;
  outline: none;
}
.input-wrap input:focus, .text-input:focus, .select-input:focus { border-color: var(--brand-700); box-shadow: 0 0 0 4px rgba(205,184,216,.42); }
.input-unit { position: absolute; top: 50%; right: 16px; transform: translateY(-50%); color: var(--muted); font-size: .86rem; }
.area-summary { display: flex; align-items: center; justify-content: space-between; padding: 17px 18px; border-radius: 16px; background: var(--brand-50); }
.area-summary strong { font-family: "Outfit", system-ui, sans-serif; font-size: 1.65rem; color: var(--brand-800); }

.venue-preview, .summary-plan {
  position: relative;
  min-height: 530px;
  overflow: hidden;
  border: 1px solid #e2d5dc;
  border-radius: 24px;
  background:
    linear-gradient(rgba(126,72,104,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(126,72,104,.055) 1px, transparent 1px),
    linear-gradient(145deg, #fff9f2, #efe4df);
  background-size: 28px 28px, 28px 28px, auto;
  box-shadow: inset 0 0 70px rgba(104,25,78,.05), var(--shadow-card);
}
.venue-preview::before, .summary-plan::before { content: "SAHNE"; position: absolute; top: 25px; left: 50%; transform: translateX(-50%); width: 150px; padding: 12px 0; border-radius: 12px; text-align: center; color: var(--brand-800); background: #e7d7e9; font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.preview-floor { position: absolute; inset: 84px 38px 54px; }
.preview-table { position: absolute; width: 84px; height: 84px; display: grid; place-items: center; border: 8px solid #f6eee9; border-radius: 50%; color: var(--brand-900); background: #fffdf9; box-shadow: 0 10px 18px rgba(92,55,73,.12), inset 0 0 0 1px #e5d7d2; font-family: "Outfit", system-ui, sans-serif; font-weight: 700; transform: translate(-50%,-50%); }
.preview-table::after { content: ""; position: absolute; inset: -18px; border: 7px dotted #c99a9d; border-radius: 50%; opacity: .78; }
.preview-dance { position: absolute; left: 50%; top: 51%; width: 29%; aspect-ratio: 1.18; display: grid; place-items: center; transform: translate(-50%,-50%); border: 1px solid #e4bbc7; border-radius: 22px; color: #895b67; background: rgba(238,202,211,.58); font-family: "Outfit", system-ui, sans-serif; font-weight: 700; }
.entrance-label { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: var(--brand-800); font-size: .78rem; font-weight: 800; letter-spacing: .06em; }

.arrangement-grid { display: grid; grid-template-columns: .82fr 1.35fr .82fr; gap: 16px; }
.metric-card { min-height: 234px; }
.metric-card h3, .shape-panel h3 { font-size: 1.3rem; }
.metric-card p, .shape-panel p { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }
.number-stepper { display: grid; grid-template-columns: 62px 1fr 62px; min-height: 76px; margin-top: 28px; overflow: hidden; border: 1px solid var(--border); border-radius: 18px; background: #fff; }
.number-stepper button { border: 0; color: var(--brand-700); background: var(--brand-50); font-size: 1.5rem; cursor: pointer; }
.number-stepper strong { display: grid; place-items: center; font-family: "Outfit", system-ui, sans-serif; font-size: 2.1rem; }
.shape-panel { min-height: 234px; }
.shape-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; }
.shape-card { position: relative; min-height: 132px; display: grid; place-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 17px; background: #fff; cursor: pointer; }
.shape-card.is-selected { border-color: var(--brand-700); background: var(--brand-50); box-shadow: 0 0 0 3px rgba(205,184,216,.3); }
.shape-icon { display: block; width: 58px; height: 42px; border: 6px solid #c99791; background: #fff8f3; box-shadow: 0 7px 12px rgba(74,21,59,.1); }
.shape-icon.round { border-radius: 50%; }
.shape-icon.square { width: 44px; }
.shape-icon.rectangle { width: 67px; }
.capacity-card { display: grid; grid-template-columns: 1fr minmax(440px, 1.7fr); gap: 20px; align-items: center; margin-top: 17px; }
.capacity-copy { padding: 8px 18px; }
.status-badge { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; color: #286446; background: #e4f4e9; font-weight: 700; font-size: .86rem; }
.status-badge--warning { color: #8a4b16; background: #fff0dc; }
.capacity-copy h3 { margin: 16px 0 4px; font-size: 1.65rem; }
.capacity-copy p { margin: 0; color: var(--muted); }
.mini-hall { min-height: 230px; border-radius: 20px; }

.summary-layout { display: grid; grid-template-columns: 340px 1fr; gap: 18px; }
.summary-list { margin: 0; padding: 0; list-style: none; }
.summary-list li { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 62px; border-bottom: 1px solid var(--border); }
.summary-list li:last-child { border: 0; }
.summary-list span { color: var(--muted); }
.summary-list strong { font-family: "Outfit", system-ui, sans-serif; font-size: 1.15rem; }
.summary-plan { min-height: 560px; }

.editor-shell { min-height: 100vh; background: #f7f2f7; }
.editor-header { min-height: 80px; display: grid; grid-template-columns: auto minmax(240px,1fr) auto; align-items: center; gap: 24px; padding: 14px 24px; border-bottom: 1px solid var(--border); background: #fffdfb; }
.event-name { min-width: 0; padding-left: 24px; border-left: 1px solid var(--border); }
.event-name strong, .event-name small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.event-name small { margin-top: 2px; color: var(--muted); }
.editor-actions { display: flex; gap: 10px; align-items: center; }
.share-status { margin-right: 8px; color: #347451; font-size: .84rem; white-space: nowrap; }
.reference-editor-share-status {
  position: absolute;
  z-index: 13;
  left: 61.6%;
  top: 3.1%;
  width: 9.4%;
  margin: 0;
  overflow: hidden;
  color: #347451;
  font: 700 clamp(7px,.74vw,12px)/1.2 "Outfit",sans-serif;
  text-align: center;
  text-overflow: ellipsis;
}
.editor-layout { height: calc(100vh - 80px); display: grid; grid-template-columns: 330px 1fr; }
.inspector { z-index: 5; overflow-y: auto; padding: 24px; border-right: 1px solid var(--border); background: #fffdfb; box-shadow: 8px 0 26px rgba(74,21,59,.06); }
.inspector-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.inspector-title .button { width: 44px; min-width: 44px; padding: 0; flex: 0 0 44px; }
.inspector h2 { margin: 0; font-size: 1.8rem; }
.occupancy { display: inline-flex; margin-top: 7px; padding: 7px 12px; border-radius: 999px; color: #286446; background: #e4f4e9; font-size: .82rem; font-weight: 700; }
.inspector-section { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--border); }
.inspector-section h3 { margin: 0 0 14px; font-size: 1rem; font-family: "Outfit", sans-serif; }
.capacity-control { display: grid; grid-template-columns: 46px 1fr 46px; min-height: 46px; overflow: hidden; border: 1px solid var(--border); border-radius: 13px; }
.capacity-control button { border: 0; color: var(--brand-700); background: var(--brand-50); cursor: pointer; }
.capacity-control strong { display: grid; place-items: center; }
.guest-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.guest-row { min-height: 35px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; }
.guest-row small { color: var(--muted); }
.guest-row--editable { position:relative; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items:start; gap:8px; padding:10px; border:1px solid var(--border); border-radius:12px; }
.guest-row--editable > label { min-width:0; }
.guest-row--editable > label:first-of-type { grid-column:1 / -1; }
.guest-row--editable > .seat-dot { position:absolute; top:23px; inset-inline-start:20px; width:16px; height:16px; pointer-events:none; }
.guest-row--editable .guest-name-input { min-width:0; min-height:42px; padding-inline-start:34px; font-size:14px; }
.guest-row--editable .guest-side-select,
.guest-row--editable .guest-group-select { min-width:0; min-height:40px; font-size:14px; }
.guest-row--editable.is-selected { border-color: var(--brand-300); background: var(--brand-50); }
.guest-group-note { margin: -6px 0 10px; color: var(--muted); font-size: .74rem; }
.guest-name-input, .guest-side-select, .guest-group-select, .guest-group-name-input { width: 100%; min-height: 34px; border: 1px solid var(--border); border-radius: 9px; color: var(--ink); background: #fff; font: 500 .78rem/1.2 "Outfit", sans-serif; }
.guest-name-input { padding: 0 9px; }
.guest-side-select, .guest-group-select { padding: 0 6px; cursor: pointer; }
.guest-group-field { display:grid; gap:5px; min-width:0; }
.guest-group-name-input { padding: 0 8px; }
.guest-name-input:focus, .guest-side-select:focus, .guest-group-select:focus, .guest-group-name-input:focus { outline: 2px solid var(--brand-300); outline-offset: 1px; }
.seat-dot { width: 18px; height: 18px; display: block; border: 1px solid #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(37,22,47,.18); }
.seat--empty { background: var(--empty); }
.seat--occupied { background: #a90067; }
.seat--bride { background: var(--pink); }
.seat--groom { background: var(--blue); }
.seat--both { background: linear-gradient(to right, var(--pink) 0%, var(--pink) 50%, var(--blue) 50%, var(--blue) 100%); }
.legend { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; }
.legend-item { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .78rem; }
.canvas-wrap { position: relative; min-width: 0; overflow: hidden; background: #ede6eb; }
.canvas-stage { position:absolute; inset:18px 18px 84px; display:grid; place-items:center; min-width:0; min-height:0; }
.canvas-wrap.is-portrait-workspace { overflow:hidden; }
.editor-shell:has(.is-portrait-workspace) { height:100svh; min-height:0; display:flex; flex-direction:column; }
.editor-shell:has(.is-portrait-workspace) .editor-header { flex:none; }
.editor-shell:has(.is-portrait-workspace) .editor-layout { flex:1; height:auto; min-height:0; overflow:hidden; }
.canvas-scrollport { position:absolute; inset:42px 18px 104px; overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y; }
.is-portrait-workspace .canvas-stage { position:relative; inset:auto; min-width:100%; min-height:100%; display:grid; place-items:center; }
.is-portrait-workspace .floor-canvas { touch-action:pan-x pan-y; }
.canvas-scrollport.is-panning,.canvas-scrollport.is-panning .floor-canvas { cursor:grabbing; }
.portrait-canvas-hint { position:absolute; top:10px; inset-inline:18px; margin:0; color:var(--muted); font-size:12px; pointer-events:none; }
@media(max-width:600px) {
  .canvas-scrollport { inset:42px 12px 86px; }
}
.floor-canvas { position: relative; overflow: hidden; border: 1px solid #ddd1d8; border-radius: 20px; background: linear-gradient(rgba(126,72,104,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(126,72,104,.045) 1px, transparent 1px), #fbf5ef; background-size: 28px 28px; box-shadow: 0 14px 34px rgba(74,21,59,.09); touch-action: none; }
.floor-canvas.is-outdoor { border-color:#9bb184; background:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px),radial-gradient(circle at 18% 27%,rgba(255,255,255,.13) 0 1px,transparent 2px),linear-gradient(145deg,#87a86d,#6f9258); background-size:28px 28px,28px 28px,15px 15px,auto; box-shadow:inset 0 0 80px rgba(45,76,34,.2),0 14px 34px rgba(74,21,59,.09); }
.floor-canvas.is-outdoor .venue-feature { --venue-soft:#f1e7e6; }
.floor-canvas.is-custom-shape { border-radius:0; }
.stage { position: absolute; top: 18px; left: 50%; width: 220px; height: 64px; display: grid; place-items: center; transform: translateX(-50%); border-radius: 14px; color: var(--brand-800); background: #e5d6e7; font-weight: 800; }
.dance-floor { position: absolute; left: 50%; top: 48%; width: min(25%, 260px); aspect-ratio: 1.18; display: grid; place-items: center; transform: translate(-50%,-50%); border: 2px solid #e3b4c2; border-radius: 24px; color: #845966; background: rgba(237,200,210,.58); font-family: "Outfit", system-ui, sans-serif; font-size: 1.1rem; font-weight: 700; }
.canvas-table { position: absolute; z-index: 3; width: clamp(68px, 8.4vw, 122px); height: clamp(68px, 8.4vw, 122px); transform: translate(-50%,-50%); cursor: grab; user-select: none; touch-action: none; will-change: left, top, transform; }
.canvas-table:active { cursor: grabbing; }
.table-surface { position: absolute; inset: 22%; display: grid; place-items: center; border: 1px solid #ddcfca; border-radius: 50%; background: #fffdfa; box-shadow: 0 8px 14px rgba(74,21,59,.12), inset 0 0 0 7px #f3eae5; text-align: center; font-size: clamp(.52rem, .72vw, .73rem); font-weight: 800; }
.canvas-table.shape--square .table-surface { border-radius: 13px; }
.canvas-table.shape--rectangle .table-surface { inset: 27% 13%; border-radius: 12px; }
.table-surface { background:var(--furnishing-table,#eee2c7); color:var(--furnishing-ink,#291c30); box-shadow:0 8px 14px rgba(74,21,59,.12),inset 0 0 0 2px rgba(255,255,255,.28); }
.table-surface small { display: block; margin-top: 2px; color:inherit; font-size: .65rem; font-weight: 500; }
.canvas-table.is-selected::after { content: ""; position: absolute; inset: 7px; border: 2px solid var(--brand-700); border-radius: 18px; box-shadow: 0 0 0 3px rgba(129,36,95,.11); pointer-events: none; }
.seat-button { position: absolute; left: 50%; top: 50%; width: 22px; height: 18px; padding: 0; border: 3px solid #fffaf5; border-radius: 7px 7px 10px 10px; box-shadow: 0 2px 5px rgba(37,22,47,.22), inset 0 -3px 0 rgba(74,21,59,.08); transform: translate(-50%,-50%); cursor: pointer; }
.seat-button:focus-visible { outline: 3px solid var(--brand-700); outline-offset: 2px; }
.seat-button { border-color:var(--furnishing-chair,#edc5d0); }
.furnishing-diagram { display:block; width:100%; height:100%; }
.furnishing-colors { display:grid; grid-template-columns:1fr 1fr; gap:24px; max-width:1500px; margin:20px auto 32px; padding:24px; border:1px solid #e6dbe3; border-radius:20px; background:#fffdfb; box-shadow:0 8px 22px #56132f08; }
.furnishing-colors fieldset { border:0; padding:0; min-width:0; margin:0; }
.furnishing-colors legend { margin-bottom:14px; color:#56132f; font:700 18px/1.3 'DM Sans',sans-serif; }
.furnishing-swatches { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.furnishing-swatches button { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px; border:1px solid #e6dbe3; border-radius:10px; background:#fff; color:#34283a; font:600 14px/1.25 'DM Sans',sans-serif; cursor:pointer; text-align:start; }
.furnishing-swatches i { flex:none; width:22px; height:22px; border-radius:50%; border:1px solid #0003; box-shadow:inset 0 0 0 2px #ffffff55; }
.furnishing-swatches button[aria-pressed="true"] { border-color:#a50064; box-shadow:0 0 0 1px #a50064; background:#fbf4f9; }
.furnishing-swatches button:focus-visible { outline:3px solid #ad76a0; outline-offset:3px; }
.editor-colors { margin:16px 0; border:1px solid #e6dbe3; border-radius:14px; background:#fffdfb; overflow:hidden; }
.editor-colors summary { padding:16px; color:#56132f; font-weight:700; font-size:15px; cursor:pointer; }
.editor-colors summary:focus-visible { outline:2px solid #a50064; outline-offset:-3px; }
.editor-colors__preview { width:120px; height:120px; margin:0 auto; }
.editor-colors .furnishing-colors { grid-template-columns:1fr; gap:20px; margin:0; padding:16px; border:0; border-radius:0; box-shadow:none; }
.editor-colors .furnishing-swatches { grid-template-columns:repeat(2,minmax(0,1fr)); }
.editor-colors .furnishing-swatches button { overflow-wrap:anywhere; }
.editor-colors .furnishing-colors legend { font-size:15px; }
@media(max-width:900px) { .furnishing-colors { grid-template-columns:1fr; margin:16px; padding:16px; } }
@media(max-width:480px) { .furnishing-swatches { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.floating-toolbar { position: absolute; left: 50%; bottom: 20px; min-height: 52px; display: flex; align-items: stretch; gap: 4px; padding: 5px; transform: translateX(-50%); border: 1px solid rgba(230,220,232,.82); border-radius: 17px; background: rgba(255,253,251,.78); box-shadow: 0 12px 32px rgba(74,21,59,.16), inset 0 1px 0 rgba(255,255,255,.72); backdrop-filter: blur(20px) saturate(1.25); -webkit-backdrop-filter: blur(20px) saturate(1.25); }
.tool-button { min-width: 78px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; cursor: pointer; }
.tool-button:active, .zoom-control button:active { transform: scale(.95); transition: transform 90ms ease-out; }
.tool-button:focus-visible, .zoom-control button:focus-visible { outline: 3px solid rgba(129,36,95,.36); outline-offset: 2px; }
.tool-button.is-active { color: #fff; background: var(--brand-700); }
.zoom-control { display: flex; align-items: center; gap: 7px; padding: 0 8px; border-left: 1px solid var(--border); color: var(--muted); }
.zoom-control button { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: 9px; background: #fff; cursor: pointer; }
.custom-text, .custom-area { position: absolute; z-index: 1; transform: translate(-50%,-50%); color: var(--brand-800); }
.custom-text { padding: 8px 12px; border: 1px dashed var(--brand-300); border-radius: 10px; background: rgba(255,253,251,.84); font-weight: 700; }
.custom-area { width: 150px; height: 86px; display: grid; place-items: center; border: 2px dashed var(--brand-500); border-radius: 18px; background: rgba(237,227,242,.44); font-weight: 700; }
.venue-feature { position: absolute; z-index: 2; display: grid; place-items: center; transform: translate(-50%,-50%); border: 2px solid color-mix(in srgb, var(--venue-accent, #a50064) 62%, #fff); border-radius: 22px; color: color-mix(in srgb, var(--venue-accent, #a50064) 82%, #30202a); background: color-mix(in srgb, var(--venue-soft, #eadde9) 78%, rgba(255,255,255,.72)); box-shadow: 0 10px 24px rgba(74,21,59,.12), inset 0 1px rgba(255,255,255,.7); font-family: "Outfit", system-ui, sans-serif; font-size: clamp(.78rem, 1.2vw, 1.05rem); font-weight: 700; text-align: center; cursor: grab; user-select: none; touch-action: none; will-change: left, top, width, height, transform; }
.venue-feature:active { cursor: grabbing; }
.venue-feature b { font: inherit; }
.feature-grip { position: absolute; top: 7px; left: 9px; opacity: .48; font-family: sans-serif; font-size: .72rem; letter-spacing: -3px; }
.venue-feature.is-selected { outline: 3px solid color-mix(in srgb, var(--venue-accent, #a50064) 78%, #fff); outline-offset: 4px; box-shadow: 0 0 0 7px rgba(129,36,95,.09), 0 12px 28px rgba(74,21,59,.16); }
.element-delete, .element-resize { position: absolute; z-index: 8; padding: 0; opacity: 0; pointer-events: none; transition: opacity 150ms ease, transform 150ms ease, box-shadow 150ms ease; }
.is-selected > .element-delete, .is-selected > .element-resize { opacity: 1; pointer-events: auto; }
.element-delete { top: -22px; right: 16px; width: 27px; height: 27px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 9px; color: #fff; background: #c73545; box-shadow: 0 5px 14px rgba(118,24,36,.34); cursor: pointer; }
.element-delete svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.element-delete:hover, .element-delete:focus-visible { transform: scale(1.08); background: #ad2435; box-shadow: 0 7px 18px rgba(118,24,36,.4); }
.element-delete:focus-visible, .element-resize:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.element-resize { width: 14px; height: 14px; border: 2px solid var(--brand-700); border-radius: 4px; background: #fff; box-shadow: 0 2px 7px rgba(74,21,59,.24); }
.element-resize--nw { left: -7px; top: -7px; cursor: nwse-resize; }
.element-resize--ne { right: -7px; top: -7px; cursor: nesw-resize; }
.element-resize--sw { left: -7px; bottom: -7px; cursor: nesw-resize; }
.element-resize--se { right: -7px; bottom: -7px; cursor: nwse-resize; }
.element-resize:hover { transform: scale(1.2); background: var(--brand-50); }
.venue-feature--stage { border-radius: 16px; }
.venue-feature--entrance { z-index:4; border-style:dashed; border-radius:14px; background:rgba(255,253,251,.92); font-family:"Outfit",sans-serif; font-size:clamp(.68rem,.9vw,.84rem); text-transform:uppercase; letter-spacing:.08em; }
.venue-feature--entrance b::before { content:"↑ "; color:var(--venue-accent,#a50064); font-size:1.1em; }
.is-collision { filter: saturate(1.2); outline: 4px solid rgba(194,49,62,.7); outline-offset: 3px; }
.venue-theme--wedding { --venue-accent:#8d2f6e; --venue-soft:#ead7e8; }
.venue-theme--engagement { --venue-accent:#9f557c; --venue-soft:#f1dce8; }
.venue-theme--henna { --venue-accent:#9d263f; --venue-soft:#f3d3d8; }
.venue-theme--birthday { --venue-accent:#aa6b42; --venue-soft:#f5dfcf; }
.venue-theme--corporate { --venue-accent:#3f5b79; --venue-soft:#dce6ef; }
.venue-theme--other { --venue-accent:#6f527f; --venue-soft:#e7dfec; }
.floor-canvas.venue-theme--engagement { background-color:#fbf2f6; }
.floor-canvas.venue-theme--henna { background-color:#fcf1f1; }
.floor-canvas.venue-theme--birthday { background-color:#fff7ee; }
.floor-canvas.venue-theme--corporate { background-color:#f2f6f9; }
.inspector-event-details .field-row { grid-template-columns: 1fr; }
.editor-layout.is-preview { grid-template-columns: 1fr; }
.editor-layout.is-preview .inspector, .editor-layout.is-preview .floating-toolbar { display: none; }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 20; max-width: 340px; padding: 14px 17px; border: 1px solid var(--border); border-radius: 14px; color: var(--ink); background: #fff; box-shadow: var(--shadow-raised); animation: toast-in 180ms ease-out; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

@media (max-width: 900px) {
  .topbar { grid-template-columns: 1fr auto; min-height: 84px; }
  .progress { grid-column: 1 / -1; grid-row: 2; width: 100%; padding-top: 8px; }
  .locale-button { grid-column: 2; grid-row: 1; }
  .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-layout, .summary-layout { grid-template-columns: 1fr; }
  .arrangement-grid { grid-template-columns: 1fr 1fr; }
  .shape-panel { grid-column: 1 / -1; grid-row: 1; }
  .capacity-card { grid-template-columns: 1fr; }
  .editor-header { grid-template-columns: 1fr auto; }
  .editor-header .brand { display: none; }
  .event-name { padding-left: 0; border-left: 0; }
  .editor-layout { grid-template-columns: 280px 1fr; }
  .inspector { padding-inline: 18px; overflow-x: hidden; }
  .editor-actions .button--ghost[data-action="preview"] { display: none; }
}

@media (max-width: 620px) and (orientation: portrait) {
  .topbar { padding: 14px 18px; gap: 14px; }
  .brand__name { font-size: 1.35rem; }
  .brand__mark { width: 38px; height: 38px; }
  .progress__item span { display: none; }
  .progress__item { min-width: 38px; }
  .page { width: min(100% - 28px, 1180px); padding-top: 48px; }
  .event-grid { grid-template-columns: 1fr; gap: 14px; }
  .event-card { min-height: 112px; grid-template-columns: auto 1fr; justify-items: start; align-items: center; align-content: center; text-align: left; }
  .event-card__icon { width: 54px; height: 54px; }
  .step-actions, .step-actions--end { justify-content: stretch; }
  .button { width: 100%; min-width: 0; }
  .field-row, .arrangement-grid { grid-template-columns: 1fr; }
  .shape-panel { grid-column: auto; }
  .shape-options { grid-template-columns: 1fr 1fr 1fr; }
  .capacity-card { padding: 20px; }
  .summary-plan { min-height: 480px; }
  .editor-header { min-height: 70px; padding: 10px 14px; }
  .editor-actions .button--ghost[data-action="preview"] { display: none; }
  .editor-actions .share-status { max-width:150px; overflow:hidden; text-overflow:ellipsis; font-size:.76rem; }
  .editor-layout { height: calc(100vh - 70px); grid-template-columns: 1fr; }
  .inspector { position: absolute; left: 12px; right: 12px; bottom: 82px; z-index: 10; max-height: 54vh; display: none; border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--shadow-raised); }
  .inspector.is-open { display: block; }
  .canvas-stage { inset: 10px 10px 76px; }
  .floating-toolbar { max-width: calc(100% - 20px); overflow-x: auto; justify-content: flex-start; }
  .tool-button { min-width: 68px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .event-card:active, .button:active, .choice-pill:active, .tool-button:active, .zoom-control button:active { transform: none !important; }
}

@media (prefers-reduced-transparency: reduce) {
  .topbar, .floating-toolbar, .reference-event-summary { background: var(--surface); backdrop-filter: none; -webkit-backdrop-filter: none; }
}

@media (prefers-contrast: more) {
  :root { --border: #b8a9bb; --muted: #51485c; }
  .button, .choice-pill, .event-card, .floating-toolbar, .venue-feature { border-width: 2px; }
  .seat-button:focus-visible, .tool-button:focus-visible, .zoom-control button:focus-visible { outline-width: 4px; }
}

/* The approved 1672 × 941 screens are the visual source of truth. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

body.reference-mode {
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f7f2f5;
}

.reference-mode .app-shell {
  width: 100%;
  min-height: 100vh;
  height: auto;
}

.reference-app {
  width: 100%;
  height: 100vh;
  display: grid;
  place-items: center;
  overflow: auto;
  background: #f7f2f5;
}

.reference-shell {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
}

.reference-canvas {
  position: relative;
  width: min(100%, calc(100vh * 1.7768331562));
  aspect-ratio: 1672 / 941;
  flex: none;
  overflow: hidden;
  background: #fbf8f6;
  box-shadow: 0 0 42px rgba(61, 35, 55, 0.08);
}

.reference-image {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.reference-brand-fix {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 8;
  width: 31%;
  height: 10.35%;
  display: flex;
  align-items: center;
  gap: clamp(7px, .8vw, 12px);
  padding: 0 3.65%;
  border: 0;
  color: #56132f;
  background: linear-gradient(90deg,#fbf8f6 0%,#fbf8f6 72%,rgba(251,248,246,.94) 84%,rgba(251,248,246,0) 100%);
  cursor: pointer;
  appearance: none;
  text-align: left;
  isolation: isolate;
}

.reference-brand-fix .sr-only { position:absolute; }
.reference-brand-fix .brand__mark { width:clamp(24px,3.1vw,52px); height:clamp(24px,3.1vw,52px); }
.reference-brand-fix .brand__name { min-height:0; font-size:clamp(17px,2vw,32px); transform:translateY(1px); }
.reference-brand-fix:focus-visible { outline:3px solid rgba(129,36,95,.3); outline-offset:-4px; border-radius:12px; }

.reference-header-tools {
  position: absolute;
  top: 2%;
  right: 2%;
  z-index: 12;
  width: 31.5%;
  min-width: 330px;
  max-width: 510px;
  height: 5.4%;
  min-height: 44px;
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  align-items: stretch;
  gap: 8px;
  padding: 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: none;
  direction: ltr;
}

.reference-header-tools .language-picker--reference,
.reference-header-tools .reference-help-link {
  position: static;
  inset: auto;
  z-index: auto;
  width: 100%;
  height: 100%;
  align-self: start;
  margin: 0;
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
}

.reference-header-tools .language-picker--reference {
  position:relative;
  justify-content: flex-start;
  gap:10px;
  padding:5px 12px 5px 7px;
  border:1px solid rgba(129,36,95,.18);
  border-radius:999px;
  background:rgba(255,253,252,.96);
  box-shadow:0 5px 16px rgba(74,21,59,.055),inset 0 1px 0 #fff;
  transition:transform 160ms cubic-bezier(.22,1,.36,1),background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease;
}

.reference-header-tools .language-picker--reference::after {
  content:"";
  position:absolute;
  right:14px;
  top:50%;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}

.reference-header-tools .language-picker--reference select {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  box-sizing: border-box;
  appearance:none;
  -webkit-appearance:none;
  padding-block: 0;
  padding-right: 26px;
  font-size: 15px;
  font-weight:700;
  height:100%;
  text-align:center;
  line-height:1.2;
  letter-spacing:-.01em;
}

.reference-header-tools .language-picker__icon,
.reference-help-link__icon {
  width:32px;
  height:32px;
  border-radius:50%;
  background:#fbf1f6;
  box-shadow:inset 0 0 0 1px rgba(129,36,95,.11);
}

.reference-help-link {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  padding:5px 7px;
  border:1px solid rgba(129,36,95,.18);
  border-radius:999px;
  color:var(--brand-800);
  background:rgba(255,253,252,.96);
  box-shadow:0 5px 16px rgba(74,21,59,.055),inset 0 1px 0 #fff;
  font:700 15px/1.2 "Outfit",sans-serif;
  text-decoration:none;
  letter-spacing:-.005em;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  transition:transform 160ms cubic-bezier(.22,1,.36,1),box-shadow 160ms ease,border-color 160ms ease,background-color 160ms ease;
}
.reference-header-tools .reference-help-link { position:relative; }
.reference-help-link__icon { display:inline-grid; flex:0 0 auto; place-items:center; color:#a50064; line-height:1; }
.reference-header-tools .reference-help-link__icon { background:none; box-shadow:none; }
.reference-header-tools .reference-help-link b { flex:1; padding-right:32px; font-weight:700; text-align:center; }
.reference-header-tools .reference-help-link__icon { background:#fbf1f6; box-shadow:inset 0 0 0 1px rgba(129,36,95,.11); }
.reference-header-tools .utility-emoji { display:block; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; font-size:17px; line-height:1; transform:translateY(.5px); }
.reference-header-tools svg { width:21px; height:21px; stroke-width:1.7; }
.reference-help-link:hover,
.reference-header-tools .language-picker--reference:hover { transform:translateY(-1px); border-color:rgba(129,36,95,.28); background:#fff; box-shadow:0 8px 20px rgba(74,21,59,.08),inset 0 1px 0 #fff; }
.reference-header-tools .language-picker--reference:focus-within { outline:2px solid #a50064; outline-offset:1px; }
.reference-help-link:active { transform:scale(.98); }
.reference-help-link:focus-visible { outline: 3px solid #a50064; outline-offset: 3px; }

.table-plan-preview { position:absolute; z-index:2; overflow:hidden; border:1px solid #ded2da; border-radius:13px; background:#faf5ef; box-shadow:0 10px 26px rgba(74,21,59,.09); }
.table-plan-preview--arrangement { left:28%; top:62.85%; width:68%; height:26.1%; border-radius:0 13px 13px 0; }
.table-plan-preview--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; }
.table-plan-preview--mobile { position:relative; width:100%; aspect-ratio:1.4; margin-bottom:18px; }
.table-plan-preview__room { position:absolute; inset:0; background:linear-gradient(rgba(126,72,104,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(126,72,104,.04) 1px,transparent 1px),#faf5ef; background-size:24px 24px; }
.table-plan-preview.is-outdoor .table-plan-preview__room { background-color:#e4edda; }
.plan-preview-table,.plan-preview-feature,.plan-preview-note { position:absolute; transform:translate(-50%,-50%); }
.plan-preview-table { z-index:2; }
.plan-preview-table__art { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:block; width:100%; aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; mix-blend-mode:multiply; }
.plan-preview-table__name { position:absolute; top:100%; left:50%; transform:translateX(-50%); color:#4a3547; font:600 clamp(8px,.65vw,12px)/1.2 'DM Sans',sans-serif; white-space:nowrap; }
.plan-preview-feature { display:flex; align-items:center; justify-content:center; border:1px solid #d6c1d0; border-radius:8px; background:#f0e4ed; color:#6d365b; font:600 clamp(8px,.75vw,13px)/1.2 'DM Sans',sans-serif; text-align:center; }
.plan-preview-note { z-index:3; color:#4a3547; font:600 12px/1.2 'DM Sans',sans-serif; }
.reference-event-venue {
  position: absolute;
  z-index: 2;
  display: block;
  object-fit: cover;
  object-position: center;
  background: #f7f2f5;
  pointer-events: none;
  user-select: none;
  animation: none;
}

.reference-venue-visual-backdrop { position:absolute; z-index:1; display:block; background:#eee4eb; pointer-events:none; }
.reference-venue-visual-backdrop--venue { left:41.55%; top:14.35%; width:55.35%; height:61.15%; border-radius:16px; box-shadow:0 12px 28px rgba(74,21,59,.10); }
.reference-venue-visual-backdrop--arrangement { left:28.0%; top:62.85%; width:68.0%; height:26.1%; border-radius:0 13px 13px 0; }
.reference-venue-visual-backdrop--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; border-radius:13px; }
.reference-event-venue.is-custom { filter:drop-shadow(0 11px 14px rgba(74,21,59,.16)); }

.reference-event-venue--venue { left:42.25%; top:20.65%; width:49.05%; height:53.5%; border-radius:9px; }
.reference-event-venue--arrangement { left:28.0%; top:62.85%; width:68.0%; height:26.1%; border-radius:0 13px 13px 0; object-position:center 48%; }
.reference-event-venue--summary { left:28%; top:23.2%; width:69.2%; height:62.9%; border-radius:13px; }

.reference-venue-viewport { position:absolute; z-index:2; overflow:hidden; border:1px solid rgba(92,55,73,.14); border-radius:9px; background:#eee4eb; box-shadow:0 12px 28px rgba(74,21,59,.13); pointer-events:none; }
.reference-event-venue--viewport { position:absolute; max-width:none; max-height:none; display:block; object-fit:cover; object-position:center; border-radius:9px; pointer-events:none; user-select:none; }
.reference-venue-aspect-frame { position:absolute; z-index:3; display:block; border:1px solid rgba(104,25,78,.22); border-radius:10px; pointer-events:none; }
.reference-venue-aspect-frame::after { content:none; }
.reference-venue-dimension { position:absolute; z-index:4; display:block; color:#870051; pointer-events:none; }
.reference-venue-dimension::before,.reference-venue-dimension::after { content:""; position:absolute; width:6px; height:6px; border-radius:50%; background:#a50064; }
.reference-venue-dimension b { position:absolute; display:block; padding:5px 12px; border:1px solid rgba(129,36,95,.13); border-radius:8px; background:rgba(255,253,251,.96); box-shadow:0 3px 10px rgba(74,21,59,.12); font:800 clamp(10px,.82vw,14px)/1 "Outfit",sans-serif; white-space:nowrap; }
.reference-venue-dimension--width { height:1px; border-top:1px solid #a50064; }
.reference-venue-dimension--width::before { left:-3px; top:-3px; }
.reference-venue-dimension--width::after { right:-3px; top:-3px; }
.reference-venue-dimension--width b { left:50%; top:0; transform:translate(-50%,-50%); }
.reference-venue-dimension--height { width:1px; border-left:1px solid #a50064; }
.reference-venue-dimension--height::before { left:-3px; top:-3px; }
.reference-venue-dimension--height::after { left:-3px; bottom:-3px; }
.reference-venue-dimension--height b { left:0; top:50%; transform:translate(-50%,-50%); }

.reference-venue-type-toggle { position:absolute; left:69.7%; top:22.2%; z-index:5; width:20.8%; min-height:4.9%; display:flex; align-items:center; justify-content:center; gap:8px; padding:6px 10px; border:1px solid rgba(129,36,95,.18); border-radius:999px; background:rgba(255,253,251,.94); box-shadow:0 8px 22px rgba(74,21,59,.13); backdrop-filter:blur(14px); }
.venue-type-switch__label { color:#746879; font:700 clamp(9px,.68vw,12px)/1 "Outfit",sans-serif; white-space:nowrap; transition:color 160ms ease; }
.venue-type-switch__label.is-active { color:#870051; }
.venue-type-switch__control { position:relative; flex:0 0 42px; width:42px; height:24px; padding:0; border:0; border-radius:999px; background:#d9ccd8; box-shadow:inset 0 1px 3px rgba(74,21,59,.18); cursor:pointer; transition:background 180ms ease,box-shadow 180ms ease; }
.venue-type-switch__control i { position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(74,21,59,.28); transition:transform 180ms cubic-bezier(.2,.78,.22,1); }
.venue-type-switch__control[aria-checked="true"] { background:#6f8c5d; box-shadow:inset 0 1px 3px rgba(45,76,34,.24); }
.venue-type-switch__control[aria-checked="true"] i { transform:translateX(18px); }
.venue-type-switch__control:active i { transform:scale(.9); }
.venue-type-switch__control[aria-checked="true"]:active i { transform:translateX(18px) scale(.9); }
.venue-type-switch__control:focus-visible { outline:3px solid #d0b4d0; outline-offset:3px; }

.custom-shape-editor { position:absolute; left:42.25%; top:20.65%; z-index:4; width:49.05%; height:53.5%; touch-action:none; }
.custom-shape-editor svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; filter:drop-shadow(0 8px 10px rgba(74,21,59,.16)); pointer-events:none; }
.custom-shape-editor polygon { fill:rgba(255,255,255,.08); stroke:#a50064; stroke-width:.8; vector-effect:non-scaling-stroke; stroke-dasharray:3 2; }
.custom-shape-point { position:absolute; z-index:2; width:22px; height:22px; padding:0; border:4px solid #fff; border-radius:50%; background:#a50064; box-shadow:0 5px 13px rgba(74,21,59,.35); transform:translate(-50%,-50%); cursor:grab; touch-action:none; }
.custom-shape-point:active { cursor:grabbing; transform:translate(-50%,-50%) scale(1.12); }
.custom-shape-point:focus-visible { outline:3px solid #d6b8d2; outline-offset:3px; }
.custom-shape-hint { position:absolute; left:18px; bottom:18px; display:grid; gap:2px; padding:10px 13px; border:1px solid rgba(129,36,95,.16); border-radius:13px; color:#493b50; background:rgba(255,253,251,.92); box-shadow:0 8px 20px rgba(74,21,59,.13); backdrop-filter:blur(12px); pointer-events:none; }
.custom-shape-hint b { font-size:13px; }
.custom-shape-hint span { color:#a50064; font-size:12px; font-weight:800; }

@keyframes reference-venue-in {
  from { transform: scale(.994); filter:blur(1px); }
  to { transform: scale(1); filter:blur(0); }
}

.reference-hotspot {
  position: absolute;
  z-index: 2;
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 16px;
  color: transparent;
  background: transparent;
  font-size: 0;
  cursor: pointer;
  text-decoration: none;
}

.reference-hotspot.reference-action {
  z-index: 7;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(4px, .45vw, 8px);
  overflow: hidden;
  padding: 0 clamp(6px, .8vw, 14px);
  border: 1px solid #c7bdc8;
  border-radius: clamp(7px, .7vw, 12px);
  color: #2b1c32;
  background: rgba(255,253,251,.98);
  box-shadow: 0 3px 10px rgba(74,21,59,.06);
  font: 700 clamp(8px, .98vw, 16px)/1.15 "Outfit",sans-serif;
  white-space: nowrap;
}

.reference-hotspot.reference-action span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reference-hotspot.reference-action i {
  flex: none;
  font-style: normal;
  font-size: 1.25em;
  line-height: 1;
}

.reference-hotspot.reference-action--primary {
  border-color: #7b205d;
  color: #fff;
  background: linear-gradient(135deg,#94316f 0%,#7b205d 100%);
  box-shadow: 0 7px 16px rgba(91,25,70,.18);
}

.reference-hotspot.reference-action--secondary:hover {
  border-color: rgba(129,36,95,.45);
  background: #fff;
}

.reference-hotspot:hover {
  box-shadow: inset 0 0 0 2px rgba(129, 36, 95, 0.18);
}
.reference-hotspot:active { background:rgba(129,36,95,.06); }
.reference-hotspot { touch-action:manipulation; }
/* Feedback decorates the hit area; raster artwork never shifts or scales. */
.reference-hotspot::before { content:""; position:absolute; inset:0; border-radius:inherit; background:rgba(129,36,95,.08); opacity:0; transition:opacity 120ms ease-out; pointer-events:none; }
.reference-hotspot:active::before { opacity:1; transition-duration:0ms; }
/* Native controls respond on press; moving canvas geometry is excluded. */
:is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice) {
  touch-action:manipulation;
  transition:scale 180ms cubic-bezier(.22,1,.36,1),background-color 120ms ease-out,box-shadow 120ms ease-out;
}
:is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice):active:not(:disabled) {
  scale:.98;
  transition-duration:70ms;
}
.button:active, .tool-button:active, .zoom-control button:active { transform:none; }
@media (prefers-reduced-motion:reduce) {
  :is(.button,.tool-button,.zoom-control button,.reference-modal__save,.reference-table-variation,.uniform-choice):active { scale:1; }
}
.reference-hotspot.selection-confirmed::after { animation:selection-confirm 180ms cubic-bezier(.22,1,.36,1) both; }
@keyframes selection-confirm { from { opacity:0; transform:scale(.85); } to { opacity:1; transform:scale(1); } }
.reference-modal__save, .reference-table-variation, .element-delete { touch-action:manipulation; }
.reference-modal__save:active, .reference-table-variation:active { filter:brightness(.96); }
@media (prefers-reduced-motion:reduce) {
  .reference-hotspot.selection-confirmed::after { animation:none; }
}
@media (prefers-contrast:more) {
  .reference-hotspot:focus-visible { outline:3px solid #481238; outline-offset:2px; }
  .floating-toolbar, .reference-modal { background:#fff; border:2px solid #481238; }
}
.screen-loading { padding:40px; text-align:center; color:#75616e; }
.planner-loading { display:grid; place-items:center; width:100%; min-height:100%; background:var(--page); }
.planner-loading__ring { width:34px; height:34px; border:3px solid var(--brand-100); border-top-color:var(--brand-700); border-radius:50%; animation:planner-loading-turn 650ms linear infinite; }
@keyframes planner-loading-turn { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .planner-loading__ring { animation:none; } }
/* Keep scrollbars from changing the canvas width between editor and setup. */
html { scrollbar-gutter: stable; }
.topbar[hidden] { display: none; }
body { overflow-x:clip; }

.reference-hotspot.is-current { z-index:3; box-shadow: inset 0 0 0 3px #a50064, 0 8px 22px rgba(74,21,59,.16); }
.reference-hotspot.is-current::after { content:"✓"; position:absolute; top:12px; right:12px; width:30px; height:30px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#a50064; box-shadow:0 0 0 5px rgba(255,255,255,.72); font-size:16px; }
.reference-neutral-card { position:absolute; z-index:1; pointer-events:none; overflow:hidden; border:1px solid #e9e5e9; border-radius:8px; background:#fff; display:flex; flex-direction:column; align-items:center; }
.reference-neutral-card::before { content:""; display:block; width:100%; flex:1; min-height:0; background-position:center; background-repeat:no-repeat; background-size:contain; }
.reference-neutral-card::after { display:block; flex:none; width:100%; padding:0 0 5%; color:#171126; text-align:center; font:400 clamp(12px,1.45vw,25px)/1.25 "Outfit",Arial,sans-serif; }
.reference-neutral-event { left:52.3%; top:14.4%; width:21.1%; height:24.4%; box-shadow:0 5px 15px #3525320b; }
.reference-neutral-event::before { background-image:url('/assets/cards/wedding-clean.webp'); }
.reference-neutral-event::after { content:"Düğün"; }
.reference-neutral-round { left:31%; top:37.5%; width:12.2%; height:21.6%; }
.reference-neutral-round::before { background-image:url('/assets/cards/round-clean.png'); }
.reference-neutral-round::after { content:"Yuvarlak"; }
.reference-neutral-room { left:6.1%; top:29.65%; width:10.45%; height:15.55%; }
.reference-neutral-room::before { background-size:42% 65%; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 76 64'%3E%3Cpath d='M10 12H66V52H10Z' fill='none' stroke='%23b98294' stroke-width='3'/%3E%3Cg fill='%23b98294'%3E%3Ccircle cx='10' cy='12' r='5'/%3E%3Ccircle cx='66' cy='12' r='5'/%3E%3Ccircle cx='10' cy='52' r='5'/%3E%3Ccircle cx='66' cy='52' r='5'/%3E%3C/g%3E%3C/svg%3E"); }
.reference-neutral-room::after { content:"Dikdörtgen"; padding-bottom:10%; }
.choice-group-backdrop { position:absolute; z-index:1; background:#faf8f8; pointer-events:none; }
.reference-hotspot.uniform-choice { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2px 6px 6px; gap:2px; background:#fff; border:3px solid transparent; border-radius:12px; box-shadow:inset 0 0 0 1px #e9e5e9,0 3px 10px #35253208; overflow:hidden; }
.reference-hotspot.uniform-choice.is-current { border-color:#a50064; box-shadow:0 3px 10px #35253208; }
.reference-hotspot.uniform-choice:hover:not(.is-current) { box-shadow:inset 0 0 0 1px #c9b5c5,0 3px 10px #35253208; }
.uniform-choice .choice-art { display:block; width:100%; flex:1; min-height:0; object-fit:contain; pointer-events:none; }
.uniform-choice svg.choice-art:not(.choice-room-icon) { mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 7%,#000 90%,transparent); mask-composite:intersect; }
.uniform-choice .choice-room-icon { width:43%; fill:none; stroke:#b98294; stroke-width:3; }
.uniform-choice .choice-label { display:block; flex:none; color:#171126; font:400 clamp(10px,1.45vw,25px)/1.25 "Outfit",Arial,sans-serif; }
.uniform-choice .themed-table-art { flex:none; width:min(100%, 10.5vw); aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; background-color:#fff; }
.venue-feature.venue-feature--aisle { background:rgba(235,232,237,.32); border:0; border-left:2px solid #b9b7c666; border-right:2px solid #b9b7c666; border-radius:0; box-shadow:none; color:#747082; }
.venue-feature--aisle:not(.is-selected) .feature-grip { opacity:0; }
.assembly-frames { position:relative; width:min(520px,86vw,68svh); aspect-ratio:1; margin:16px auto; overflow:hidden; }
.assembly-frame { position:absolute; inset:0; background-size:300% 200%; background-repeat:no-repeat; }
.assembly-frames { mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent); }
.mobile-app { max-width:760px; margin:auto; padding:0 18px calc(110px + env(safe-area-inset-bottom)); }
.mobile-header { padding:20px 0 18px; }
.mobile-header__top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.mobile-header .brand { background:none; border:0; padding:0; cursor:pointer; }
.mobile-help-link { flex:none; display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:7px 14px 7px 8px; border:1px solid var(--border); border-radius:999px; color:var(--brand-700); background:#fff; font-size:14px; font-weight:700; text-decoration:none; transition:transform 160ms cubic-bezier(.22,1,.36,1),border-color 160ms ease,box-shadow 160ms ease; }
.mobile-help-link__icon { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--brand-700); background:#f8edf4; box-shadow:inset 0 0 0 1px rgba(129,36,95,.12); }
.mobile-header__tools .mobile-help-link,
.mobile-header__tools .language-picker { border-radius:12px; border-color:#e5d8e1; box-shadow:none; font-weight:600; }
.mobile-header__tools .mobile-help-link { order:-1; }
.mobile-header__tools .language-picker { background:#f6f0f5; }
.mobile-header__tools .language-picker select { font-size:14px; font-weight:600; }
.mobile-header__tools .mobile-help-link__icon,
.mobile-header__tools .language-picker__icon { width:24px; height:24px; background:none; box-shadow:none; }
.mobile-header__tools svg { width:21px; height:21px; stroke-width:1.7; }
.mobile-header nav { display:flex; justify-content:space-between; margin-top:24px; gap:8px; }
.mobile-header nav span { display:grid; justify-items:center; gap:6px; color:var(--muted); font-size:12px; }
.mobile-header nav i { display:grid; place-items:center; font-style:normal; width:28px; height:28px; border-radius:50%; background:#eee5ef; }
.mobile-header [aria-current] { color:var(--brand-700); font-weight:700; }
.mobile-header [aria-current] i { background:var(--brand-700); color:white; }
.mobile-step h1 { font:600 30px/1.15 "Outfit",Arial,sans-serif; margin:12px 0 24px; letter-spacing:-.6px; }
.mobile-step h2 { font:600 20px "Outfit",Arial,sans-serif; margin:0 0 16px; }
.mobile-events { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.mobile-choice { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; min-width:0; padding:11px 5px; border:2px solid transparent; border-radius:16px; background:white; box-shadow:inset 0 0 0 1px var(--border),0 5px 16px #56132f09; cursor:pointer; transform:translateZ(0); transition:transform 180ms cubic-bezier(.22,1,.36,1),border-color 150ms ease,box-shadow 180ms ease,background-color 150ms ease; }
.mobile-choice img,.mobile-choice svg { width:100%; height:104px; object-fit:contain; }
.mobile-choice b { font:500 17px "Outfit",Arial,sans-serif; }
.mobile-choice.is-selected { border-color:var(--brand-700); box-shadow:0 5px 16px #56132f09; }
.mobile-choice.is-selected::after { content:'✓'; position:absolute; top:7px; right:7px; width:23px; height:23px; display:grid; place-items:center; border-radius:50%; background:var(--brand-700); color:white; font-size:13px; }
.mobile-choice.is-selected::after { animation:selection-confirm 180ms ease-out; }
.mobile-stepper button { touch-action:manipulation; transition:background-color 120ms ease,scale 120ms ease; }
.mobile-stepper button:active { background:#e7d7e7; scale:.94; }
.mobile-choice:active,.mobile-mixed:active,.mobile-help-link:active { transform:scale(.975); transition-duration:70ms; }
.mobile-choice:focus-visible { outline:3px solid #bba0c7; outline-offset:3px; }
.mobile-panel { background:#fffdfb; border:1px solid var(--border); border-radius:20px; padding:18px; margin-bottom:16px; box-shadow:var(--shadow-card); }
.mobile-venue { display:block; width:100%; max-height:280px; object-fit:cover; border-radius:20px; margin-bottom:18px; }
.mobile-venue-shell { position:relative; min-height:210px; margin-bottom:18px; overflow:hidden; border-radius:20px; background:linear-gradient(145deg,#f1e7ec,#e8dce5); box-shadow:var(--shadow-card); }
.mobile-venue-shell.is-square { width:min(100%,460px); min-height:0; aspect-ratio:1; margin-inline:auto; }
.mobile-venue-shell .mobile-venue { height:100%; min-height:210px; margin:0; border-radius:20px; }
.mobile-venue-shell.is-square .mobile-venue { min-height:0; }
.mobile-venue-shell .custom-shape-editor { inset:0; width:100%; height:100%; }
.mobile-venue-shell .custom-shape-point { width:18px; height:18px; border-width:3px; }
.mobile-venue-shell .custom-shape-hint { left:10px; bottom:10px; padding:7px 9px; }
.mobile-venue-shell .custom-shape-hint b { font-size:11px; }
.mobile-venue-shell .custom-shape-hint span { font-size:10px; }
.mobile-venue-type-toggle { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; padding:12px; border:1px solid var(--border); border-radius:15px; background:#f8f3f7; }
.mobile-venue-type-toggle .venue-type-switch__label { font-size:14px; }
.mobile-venue-type-toggle .venue-type-switch__control { flex-basis:50px; width:50px; height:28px; }
.mobile-venue-type-toggle .venue-type-switch__control i { width:22px; height:22px; }
.mobile-venue-type-toggle .venue-type-switch__control[aria-checked="true"] i { transform:translateX(22px); }
.mobile-venue-type-toggle .venue-type-switch__control[aria-checked="true"]:active i { transform:translateX(22px) scale(.9); }
.mobile-room-shapes,.mobile-table-shapes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:18px; }
.mobile-room-shapes span { font-size:36px; color:var(--brand-500); }
.mobile-room-shapes b,.mobile-table-shapes b { font-size:14px; }
.mobile-table-shapes { margin:0; }
.mobile-table-art { width:100%; aspect-ratio:1; background-size:300% 100%; background-repeat:no-repeat; }
.mobile-metric { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:10px 0; }
.mobile-metric label { font-weight:600; }
.mobile-stepper { display:grid; grid-template-columns:44px 64px 44px; border:1px solid var(--border); border-radius:12px; overflow:hidden; flex-shrink:0; }
.mobile-stepper button { min-height:48px; background:#f7f2f7; border:0; color:var(--brand-700); font-size:24px; }
.mobile-stepper input { min-width:0; width:100%; border:0; text-align:center; background:white; font-size:20px; padding:4px; appearance:textfield; }
.mobile-stepper input::-webkit-inner-spin-button { appearance:none; }
.mobile-capacity.reference-capacity-value { position:static; width:auto; height:auto; min-height:0; padding:18px; margin:0 0 12px; background:white; border:1px solid var(--border); border-radius:16px; }
.mobile-capacity.reference-capacity-value b { font:600 21px "Outfit",Arial,sans-serif; }
.mobile-capacity.reference-capacity-value span { font-size:16px; }
.mobile-capacity.reference-capacity-value small { font-size:14px; }
.mobile-mixed { width:100%; min-height:48px; text-align:left; border:0; background:#fce4ee; padding:12px 16px; border-radius:12px; }
.mobile-summary { margin:0; }
.mobile-summary div { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--border); }
.mobile-summary dt { color:var(--muted); }
.mobile-summary dd { margin:0; font-weight:600; }
.mobile-warning { color:#a73946; }
.mobile-actions { position:fixed; z-index:12; bottom:0; left:0; right:0; display:flex; gap:12px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); background:#fcf8f2f5; border-top:1px solid var(--border); }
.mobile-actions .button { flex:1; min-height:50px; padding:12px 14px; font-size:16px; gap:8px; white-space:nowrap; }
@media (max-width:760px) and (orientation:portrait) {
  html,body { overflow-x:clip; }
  input,select,textarea { font-size:16px; }
  .mobile-app .field-row { grid-template-columns:1fr 1fr; }
  .mobile-app .area-summary { margin-top:16px; gap:10px; }
  .mobile-app .area-summary strong { white-space:nowrap; font-size:25px; }
  .editor-header { display:flex; flex-wrap:wrap; padding:12px; gap:10px; }
  .editor-header .brand { display:inline-flex; flex:1 0 100%; }
  .editor-header .brand__mark { width:32px; height:32px; }
  .editor-header .brand__name { font-size:23px; }
  .event-name { min-width:0; flex:1; }
  .event-name strong { font-size:15px; }
  .event-name small { font-size:12px; }
  .editor-actions { gap:6px; }
  .editor-actions .button { width:auto; min-width:0; padding:10px; }
  .mobile-inspector-toggle { flex:1 0 100%; min-height:44px; }
  .editor-layout { display:block; height:calc(100svh - 170px); min-height:400px; }
  .canvas-wrap { height:100%; overflow:auto; padding:12px 12px 94px; touch-action:pan-x pan-y; }
  .canvas-stage { position:relative; inset:auto; width:740px; height:530px; }
  .floor-canvas { position:relative; touch-action:pan-x pan-y; }
  .canvas-table { width:95px; height:95px; }
  .seat-button::before { content:""; position:absolute; inset:-10px; border-radius:50%; }
  .element-resize::after { content:""; position:absolute; inset:-15px; }
  .element-delete::after { content:""; position:absolute; inset:-9px; }
  .floating-toolbar { position:fixed; z-index:11; bottom:calc(10px + env(safe-area-inset-bottom)); width:calc(100% - 20px); max-width:none; overflow-x:auto; justify-content:flex-start; }
  .tool-button { min-width:56px; min-height:48px; }
  .zoom-control button { min-width:44px; height:44px; }
  .inspector { position:fixed; left:0; right:0; bottom:0; z-index:25; max-height:72svh; display:none; border-radius:24px 24px 0 0; padding:20px 18px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -10px 50px #30202a30; overscroll-behavior:contain; }
  .inspector.is-open { display:block; animation:sheet-in 280ms cubic-bezier(.2,.8,.2,1); }
  .inspector-title { position:sticky; top:-20px; background:#fffdfb; padding:12px 0; z-index:2; }
  .guest-name-input,.guest-side-select,.guest-group-select,.guest-group-name-input { min-height:44px; font-size:16px; }
  .guest-row--editable .guest-name-input,.guest-row--editable .guest-side-select,.guest-row--editable .guest-group-select { min-height:44px; font-size:16px; }
  .guest-group-note { font-size:12px; }
  .planning-info { padding:18px; margin:0 0 100px; font-size:14px; }
  .toast { bottom:100px; right:14px; left:14px; max-width:none; }
}
@keyframes sheet-in { from { transform:translateY(32px); opacity:0; } to { transform:translateY(0); opacity:1; } }
@media (hover:hover) {
  .mobile-choice:hover { transform:translateY(-2px); box-shadow:inset 0 0 0 1px #ccb8c8,0 10px 24px rgba(74,21,59,.1); }
  .mobile-help-link:hover { transform:translateY(-1px); border-color:#c3a8bd; box-shadow:0 7px 18px rgba(74,21,59,.09); }
  .reference-event-summary:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(74,21,59,.16); }
}
@media (prefers-reduced-motion:reduce) { .mobile-choice,.mobile-mixed,.mobile-help-link { transition:none; } .inspector.is-open { animation:none; } }
.assembly-overlay { position:fixed; inset:0; z-index:100; display:grid; place-items:center; background:#faf7fa; color:#56132f; }
.assembly-content { text-align:center; }
.assembly-content p { font:500 18px/1.4 'DM Sans',sans-serif; }
.assembly-table { position:relative; width:min(340px,60vw,50svh); height:min(340px,60vw,50svh); margin:96px auto; }
.assembly-surface { position:absolute; inset:22%; display:flex; flex-direction:column; justify-content:center; gap:8px; background:radial-gradient(circle at 35% 25%,#fff,#f0e5da); border:6px solid #eee0d2; box-shadow:0 12px 24px #5a374624,inset 0 0 0 2px #fff; border-radius:20%; font:600 20px "Outfit",Arial,sans-serif; }
.assembly-surface small { font:400 13px 'DM Sans',sans-serif; }
.assembly-table--round .assembly-surface { border-radius:50%; }
.assembly-table--rectangle .assembly-surface { inset:28% 17%; border-radius:12px; }
.assembly-seat { position:absolute; width:28px; height:30px; border:3px solid #fff; border-radius:10px 10px 7px 7px; background:linear-gradient(#c8a9b9,#a7859e); box-shadow:0 4px 7px #56132f25; transform:translate(-50%,-50%); }
.venue-theme--henna .assembly-seat { background:linear-gradient(#c78090,#96364d); }
.venue-theme--engagement .assembly-seat { background:linear-gradient(#e5bdcc,#b18baf); }
.venue-theme--other .assembly-seat { background:linear-gradient(#c9c9cc,#9a98a0); }
.venue-theme--corporate .assembly-seat { background:linear-gradient(#adbbcd,#71849e); }
.venue-theme--birthday .assembly-seat { background:linear-gradient(#f2c1ce,#d995ac); }
.reference-guest-caption { position:absolute; z-index:2; left:12%; top:51.5%; width:9%; height:3.2%; background:#fff; color:#7b7591; text-align:center; font:400 clamp(10px,1.2vw,20px)/1.3 "Outfit",Arial,sans-serif; }
.planning-info { max-width:960px; margin:32px auto; padding:24px; color:#61566a; font:400 16px/1.65 "Outfit",sans-serif; }
.planning-info h2 { margin:0 0 12px; color:#56132f; font:600 24px/1.3 "Outfit",Arial,sans-serif; }
.planning-info p { margin:10px 0; }
.planning-info nav { display:flex; flex-wrap:wrap; gap:8px 18px; margin:18px 0; }
.planning-info a { color:#a50064; font-weight:700; }
.planning-info .planning-info__legal { margin-top:26px; padding-top:18px; border-top:1px solid #e7dce7; font-size:14px; }
.planning-info h3 { margin:24px 0 10px; color:#56132f; font:600 20px/1.3 "Outfit",Arial,sans-serif; }
.planning-info details { padding:10px 0; border-top:1px solid #e7dce7; }
.planning-info summary { cursor:pointer; font-weight:600; }
.is-editor .planning-info { display:none; }
@media print { .planning-info { display:none; } }

.reference-hotspot:focus-visible {
  outline: 4px solid #a50064;
  outline-offset: 2px;
}

.reference-venue-lower-cleanup { position:absolute; left:3.75%; top:68.15%; z-index:4; width:35.9%; height:20.05%; border-radius:0 0 14px 14px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); pointer-events:none; }
.reference-first-step-cleanup { position:absolute; left:18.35%; top:14.45%; z-index:4; width:10.3%; height:3.4%; border-radius:3px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); box-shadow:0 0 8px rgba(255,253,251,.88); pointer-events:none; }
.reference-header-cleanup { position:absolute; z-index:4; pointer-events:none; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf9 100%); box-shadow:0 0 8px rgba(255,253,251,.88); }
.reference-header-cleanup--onboarding { left:74.5%; top:0; width:25.5%; height:10.2%; }
.reference-header-cleanup--summary { left:79.5%; top:0; width:20.5%; height:9.2%; }
.reference-header-cleanup--editor { left:61.4%; top:0; width:9.8%; height:9.2%; }

.reference-localized-progress {
  position:absolute;
  left:37.2%;
  top:6.1%;
  z-index:6;
  width:25.6%;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:center;
  gap:.45vw;
  padding:.2% .4%;
  color:#6f6576;
  background:#fbf8f6;
  font:600 clamp(7px,.72vw,12px)/1.2 "Outfit",sans-serif;
  text-align:center;
  pointer-events:none;
}
.reference-localized-progress.is-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.reference-localized-progress span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reference-localized-progress span.is-active { color:#870051; font-weight:800; }
.reference-localized-copy {
  position:absolute;
  z-index:6;
  display:grid;
  align-content:center;
  gap:.6vw;
  padding:.8% 1.25%;
  color:#24142d;
  background:linear-gradient(90deg,#fbf8f6 0%,#fbf8f6 94%,rgba(251,248,246,.72) 100%);
  pointer-events:none;
}
.reference-localized-copy h2 { margin:0; font:700 clamp(17px,2.55vw,43px)/1.05 "Outfit", system-ui, sans-serif; letter-spacing:-.025em; }
.reference-localized-copy p { margin:0; max-width:42ch; color:#75616e; font:500 clamp(8px,.95vw,16px)/1.35 "Outfit",sans-serif; }
.reference-localized-copy--event { left:18.2%; top:14.2%; width:30.2%; height:21.2%; }
.reference-localized-copy--venue { left:4.1%; top:15.4%; width:35.5%; height:12.9%; }
.reference-localized-copy--layout { left:29.6%; top:13.0%; width:40.8%; height:11.4%; text-align:center; background:#fbf8f6; }
.reference-localized-copy--layout p { margin-inline:auto; }
.reference-localized-copy--summary { left:35.1%; top:13.1%; width:29.8%; height:8.3%; text-align:center; background:#fbf8f6; }

.reference-localized-label {
  position:absolute;
  z-index:6;
  display:flex;
  align-items:center;
  color:#30202a;
  background:#fffdfb;
  font:700 clamp(8px,.95vw,16px)/1.2 "Outfit",sans-serif;
  pointer-events:none;
}
.reference-localized-label--venue-width { left:6.15%; top:47.2%; width:12%; height:3.1%; }
.reference-localized-label--venue-height { left:22.75%; top:47.2%; width:12%; height:3.1%; }
.reference-localized-label--venue-area { left:11.2%; top:59.2%; width:13%; height:4.2%; justify-content:center; background:#f4ecf3; }
.reference-localized-label--arr-guests { left:10.4%; top:29.2%; width:14.8%; height:3.3%; }
.reference-localized-label--arr-guests-note { left:10.4%; top:32.4%; width:16.9%; height:2.8%; }
.reference-localized-label--arr-shape { left:36.2%; top:29.0%; width:15%; height:3.4%; }
.reference-localized-label--arr-shape-note { left:36.2%; top:32.3%; width:24.4%; height:2.8%; }
.reference-localized-label--arr-tables { left:77.6%; top:29.0%; width:14%; height:3.4%; }
.reference-localized-label--arr-tables-note { left:77.6%; top:32.3%; width:16.3%; height:2.8%; }
.reference-localized-label--arr-seats { left:77.6%; top:46.2%; width:14%; height:3.4%; }
.reference-localized-label--arr-seats-note { left:77.6%; top:49.5%; width:16.3%; height:2.8%; }
.reference-localized-label--arr-guests-note,
.reference-localized-label--arr-shape-note,
.reference-localized-label--arr-tables-note,
.reference-localized-label--arr-seats-note { color:#75616e; font-size:clamp(6px,.68vw,11px); font-weight:500; }
.reference-localized-label--arr-mixed { left:10.9%; top:81.4%; width:12.4%; height:3.2%; justify-content:center; background:#fffdfb; font-size:clamp(7px,.78vw,13px); }
.reference-localized-label--sum-area,
.reference-localized-label--sum-guests,
.reference-localized-label--sum-tables,
.reference-localized-label--sum-shape,
.reference-localized-label--sum-seats,
.reference-localized-label--sum-total { left:11.2%; width:14.7%; height:4%; background:#fffdfb; }
.reference-localized-label--sum-area { top:26.8%; }
.reference-localized-label--sum-guests { top:35.4%; }
.reference-localized-label--sum-tables { top:44.1%; }
.reference-localized-label--sum-shape { top:52.8%; }
.reference-localized-label--sum-seats { top:61.5%; }
.reference-localized-label--sum-total { top:70.2%; }
.reference-localized-label--event-next,
.reference-localized-label--venue-back,
.reference-localized-label--venue-next,
.reference-localized-label--arr-back,
.reference-localized-label--arr-next,
.reference-localized-label--sum-back,
.reference-localized-label--sum-next { justify-content:center; border-radius:9px; font-size:clamp(9px,1.05vw,18px); }
.reference-localized-label--event-next { left:83%; top:89.7%; width:13.5%; height:6.8%; color:#fff; background:#a50064; }
.reference-localized-label--venue-back { left:36.4%; top:89.9%; width:13%; height:6.2%; border:1px solid #bdb4be; }
.reference-localized-label--venue-next { left:50.6%; top:89.8%; width:13.5%; height:6.4%; color:#fff; background:#a50064; }
.reference-localized-label--arr-back { left:32.9%; top:90.7%; width:16.2%; height:7.2%; border:1px solid #bdb4be; }
.reference-localized-label--arr-next { left:50%; top:90.7%; width:17%; height:7.2%; color:#fff; background:#a50064; }
.reference-localized-label--sum-back { left:33.2%; top:89.6%; width:16.5%; height:6.8%; border:1px solid #bdb4be; }
.reference-localized-label--sum-next { left:50.5%; top:89.6%; width:16.5%; height:6.8%; color:#fff; background:#a50064; }

body.is-rtl .reference-localized-copy { direction:rtl; text-align:right; }
body.is-rtl .reference-localized-copy--layout,
body.is-rtl .reference-localized-copy--summary { text-align:center; }
body.is-rtl .reference-canvas { direction:ltr; }
body.is-rtl .reference-localized-copy,
body.is-rtl .language-picker { direction:rtl; }
body.is-rtl .reference-localized-progress { direction:ltr; }
body.is-rtl .reference-localized-progress span,
body.is-rtl .reference-localized-label { direction:rtl; }
body.is-rtl .language-picker select { padding:8px 0 8px 20px; }
body.is-rtl .reference-header-tools .language-picker--reference { direction:ltr; }
body.is-rtl .reference-header-tools .language-picker--reference select { direction:ltr; padding:0 26px 0 0; }
body.is-rtl .event-name { padding-left:0; padding-right:24px; border-left:0; border-right:1px solid var(--border); text-align:right; }
body.is-rtl .inspector { border-right:0; border-left:1px solid var(--border); }
body.is-rtl .inspector,
body.is-rtl .mobile-app,
body.is-rtl .reference-modal { direction:rtl; text-align:right; }
body.is-rtl input[type="number"],
body.is-rtl .date-entry__parts input { direction:ltr; text-align:center; }
body.is-rtl .guest-name-input,
body.is-rtl .guest-group-name-input { text-align:right; }

.reference-seat {
  z-index: 4;
  width: 1.52%;
  height: 3.10%;
  padding: 0;
  border: max(1px, 0.12vw) solid #fffaf5;
  border-radius: 42%;
  transform: translate(-50%, -50%);
  box-shadow: 0 1px 5px rgba(48, 30, 42, 0.32);
}

.reference-seat.seat--empty { background: #b8b8c2; }
.reference-seat.seat--bride { background: #e65f91; }
.reference-seat.seat--groom { background: #5d91db; }
.reference-seat.seat--both {
  background: linear-gradient(to right, #e65f91 0%, #e65f91 50%, #5d91db 50%, #5d91db 100%);
}

.reference-event-summary { position:absolute; left:18.8%; bottom:3.7%; z-index:4; width:29%; min-height:64px; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-items:center; gap:2px 12px; padding:11px 16px; border:1px solid rgba(129,36,95,.22); border-radius:18px; color:#56132f; background:rgba(255,253,251,.92); box-shadow:0 12px 30px rgba(74,21,59,.12); text-align:left; cursor:pointer; backdrop-filter:blur(16px); transition:transform 180ms cubic-bezier(.22,1,.36,1),box-shadow 180ms ease,border-color 160ms ease; }
.reference-empty-plan-cleanup { position:absolute; left:67.15%; top:88.35%; z-index:3; width:15.35%; height:9.05%; border-radius:0; background:linear-gradient(180deg,#fbf8f6 0%,#fcfaf8 100%); pointer-events:none; }
.reference-event-summary:active { transform:scale(.985); transition-duration:70ms; }
.reference-event-summary b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 17px/1.2 "Outfit", system-ui, sans-serif; }
.reference-event-summary span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#75616e; font-size:12px; }
.reference-event-summary em { grid-column:2; grid-row:1 / 3; font-style:normal; font-size:20px; }
.reference-modal__backdrop { position:absolute; inset:0; z-index:19; border:0; background:rgba(45,26,42,.28); backdrop-filter:blur(3px); }
.reference-modal { position:absolute; left:50%; top:50%; z-index:20; width:min(560px,82%); transform:translate(-50%,-50%); padding:28px; border:1px solid #e2d7e3; border-radius:26px; color:#30202a; background:#fffdfb; box-shadow:0 28px 80px rgba(43,20,38,.28); }
.reference-modal__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.reference-modal__head small { color:#a50064; font-weight:800; letter-spacing:.12em; }
.reference-modal__head h2 { margin:5px 0 0; font-size:30px; }
.reference-modal__head button { width:42px; height:42px; border:1px solid #e6dce8; border-radius:13px; background:#fff; cursor:pointer; }
.reference-modal__grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:24px; }
.reference-modal__grid > label:first-child { grid-column:1 / -1; }
.reference-modal__grid > label { display:grid; gap:7px; color:#56132f; font-size:13px; font-weight:700; }
.reference-modal__grid input { width:100%; min-height:50px; padding:0 14px; border:1px solid #e6dce8; border-radius:13px; color:#30202a; background:#fff; outline:none; }
.reference-modal__grid input:focus { border-color:#a50064; box-shadow:0 0 0 4px rgba(205,184,216,.45); }
.date-entry { width:100%; min-width:0; margin:0; padding:0; overflow:hidden; border:0; }
.date-entry legend { width:100%; margin:0 0 9px; padding:0; color:inherit; font:inherit; text-align:center; }
.date-entry__parts { width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,.8fr) minmax(0,1.15fr); gap:8px; }
.date-entry__parts label { min-width:0; display:grid; grid-column:auto; gap:4px; color:#6f6678; font-size:11px; font-weight:700; text-align:center; }
.date-entry__parts label > span { min-width:0; overflow:hidden; text-align:center; text-overflow:ellipsis; white-space:nowrap; }
.date-entry__parts input { width:100%; max-width:100%; min-width:0; padding-inline:6px; text-align:center; font-variant-numeric:tabular-nums; }
.date-entry__parts input:invalid { border-color:#b54253; }
.reference-modal__save { width:100%; min-height:50px; margin-top:20px; border:1px solid #870051; border-radius:14px; color:#fff; background:linear-gradient(#bd2479,#a50064); font-weight:800; cursor:pointer; box-shadow:0 9px 20px rgba(74,21,59,.18); }
.reference-number-input { position:absolute; z-index:4; min-width:0; padding:0 clamp(6px,.8vw,14px); overflow:hidden; border:0; color:#30202a; background:#fffdfb; text-align:center; text-overflow:clip; font:700 clamp(16px,1.45vw,24px)/1 "Outfit", system-ui, sans-serif; font-variant-numeric:tabular-nums; appearance:textfield; -moz-appearance:textfield; outline:none; }
.reference-number-input::-webkit-inner-spin-button,.reference-number-input::-webkit-outer-spin-button { margin:0; appearance:none; }
.reference-number-input:focus { box-shadow:inset 0 0 0 3px rgba(129,36,95,.38); }
.reference-area-value { position:absolute; left:27.15%; top:59.15%; z-index:4; width:11.9%; height:8.65%; min-width:0; display:grid; place-items:center; overflow:hidden; padding:0 4px; white-space:nowrap; color:#870051; background:linear-gradient(90deg,#f7eff7,#f8f1f7); text-align:center; text-overflow:clip; font:700 clamp(14px,1.5vw,24px)/1 "Outfit", system-ui, sans-serif; font-variant-numeric:tabular-nums; }
.reference-step-value { position:absolute; z-index:4; display:grid; place-items:center; padding:0 0 .14em; color:#30202a; background:#fffdfb; font:700 35px/1 "Outfit", system-ui, sans-serif; }
.reference-step-input { padding:0 0 .14em; border:0; border-radius:10px; text-align:center; appearance:textfield; -moz-appearance:textfield; outline:none; }
.reference-step-input::-webkit-inner-spin-button, .reference-step-input::-webkit-outer-spin-button { margin:0; appearance:none; }
.reference-step-input:focus { box-shadow:inset 0 0 0 3px rgba(129,36,95,.42); }
.reference-step-value--guests { left:11%; top:42%; width:10.8%; height:8%; }
.reference-step-value--tables { left:82%; top:36.3%; width:8.5%; height:6.4%; }
.reference-step-value--seats { left:82%; top:53.3%; width:8.5%; height:6.4%; }
.reference-capacity-value { position:absolute; left:6.2%; top:64.5%; z-index:4; width:24.8%; height:14.5%; display:grid; align-content:center; gap:4px; overflow:hidden; padding:8px 16px; color:#30202a; background:rgba(255,253,251,.99); border-radius:12px; }
.reference-capacity-value b { display:block; white-space:nowrap; font:700 clamp(14px,1.25vw,21px)/1.2 "Outfit", system-ui, sans-serif; }
.reference-capacity-value span { display:block; white-space:nowrap; color:#367450; font-size:clamp(10px,0.78vw,13px); font-weight:700; }
.reference-capacity-value small { color:#75616e; font-size:11px; }
.reference-capacity-value.status-danger { border-left:4px solid #c2444c; }
.reference-capacity-value.status-danger span { color:#b23b46 !important; }
.reference-capacity-value.status-surplus { border-left:4px solid #b7833f; }
.reference-capacity-value.status-surplus span { color:#9b6726 !important; }
.reference-arrangement-cleanup { position:absolute; top:62.6%; z-index:2; width:7.0%; height:26.6%; pointer-events:none; }
.reference-arrangement-cleanup--left { left:0; background:linear-gradient(90deg,#f4eaf5 0%,#faf6f3 72%,rgba(250,246,243,0) 100%); }
.reference-arrangement-cleanup--right { right:0; background:linear-gradient(270deg,#f4eaf5 0%,#faf6f3 72%,rgba(250,246,243,0) 100%); }
.reference-arrangement-panel-cleanup { position:absolute; left:4%; top:62.6%; z-index:3; width:27.1%; height:26.2%; border-radius:12px 0 0 12px; background:linear-gradient(180deg,#fffdfb 0%,#fcfaf8 100%); pointer-events:none; }
.reference-table-variation { position:absolute; left:6.2%; top:80.1%; z-index:5; width:21.8%; height:6.0%; display:flex; align-items:center; gap:12px; padding:0 14px; border:0; border-radius:11px; color:#51485c; background:rgba(255,253,251,.99); font-size:clamp(11px,.92vw,15px); cursor:pointer; text-align:left; }
.reference-table-variation i { position:relative; width:42px; height:24px; flex:0 0 auto; border-radius:999px; background:#cbc7d1; box-shadow:inset 0 1px 3px rgba(37,22,47,.16); transition:background 140ms ease; }
.reference-table-variation i::after { content:""; position:absolute; left:3px; top:3px; width:18px; height:18px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(37,22,47,.22); transition:transform 140ms ease; }
.reference-table-variation b { font-weight:700; white-space:nowrap; }
.reference-table-variation.is-on i { background:#a50064; }
.reference-table-variation.is-on i::after { transform:translateX(18px); }
.reference-table-variation:focus-visible { outline:3px solid rgba(129,36,95,.5); outline-offset:2px; }
.reference-summary-values { position:absolute; left:20.0%; top:25.5%; z-index:4; width:8%; height:51.5%; padding-inline-start:.8%; display:grid; grid-template-rows:repeat(6,1fr); align-items:center; color:#30202a; background:#fffdfb; font:700 clamp(13px,1.15vw,19px)/1 "Outfit", system-ui, sans-serif; }
.reference-summary-values b { display:flex; align-items:center; min-height:100%; }
.reference-summary-status { position:absolute; left:5.8%; top:77.0%; z-index:4; width:22.6%; min-height:6.4%; display:flex; align-items:center; padding:0 24px; border-radius:14px; color:#286446; background:rgba(228,244,233,.98); font-size:15px; font-weight:800; }
.reference-summary-status.status-danger { color:#a73946; background:rgba(253,231,232,.98); }
.reference-summary-status.status-surplus { color:#8d5f26; background:rgba(255,241,220,.98); }

.orientation-gate { display:none; }

@media (max-width: 760px) and (orientation: portrait) {
  html, body { min-height:100%; overflow:hidden !important; overscroll-behavior:none; }
  body > .app-shell,
  body > .consent-banner,
  body > .consent-preferences { visibility:hidden !important; pointer-events:none !important; }
  .orientation-gate {
    position:fixed;
    inset:0;
    z-index:100000;
    display:grid;
    place-items:center;
    padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));
    color:#2b1834;
    background:
      radial-gradient(circle at 18% 14%,rgba(205,177,207,.42),transparent 31%),
      radial-gradient(circle at 88% 84%,rgba(231,198,207,.46),transparent 34%),
      #fcf8f2;
  }
  .orientation-gate__card {
    width:min(100%,390px);
    padding:34px 26px 30px;
    border:1px solid rgba(129,36,95,.14);
    border-radius:28px;
    background:rgba(255,255,255,.76);
    box-shadow:0 24px 60px rgba(74,21,59,.12);
    text-align:center;
  }
  .orientation-gate__visual {
    position:relative;
    width:138px;
    height:112px;
    margin:0 auto 20px;
  }
  .orientation-gate__phone {
    position:absolute;
    left:42px;
    top:8px;
    width:54px;
    height:94px;
    border:4px solid #a50064;
    border-radius:13px;
    background:linear-gradient(145deg,#fff,#f2e7f1);
    box-shadow:0 12px 24px rgba(74,21,59,.14);
    transform-origin:50% 54%;
    animation:turn-phone 2.4s cubic-bezier(.22,1,.36,1) infinite;
  }
  .orientation-gate__phone::before {
    content:"";
    position:absolute;
    top:6px;
    left:50%;
    width:18px;
    height:3px;
    border-radius:99px;
    background:#c8adc5;
    transform:translateX(-50%);
  }
  .orientation-gate__phone i {
    position:absolute;
    left:50%;
    bottom:6px;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#c8adc5;
    transform:translateX(-50%);
  }
  .orientation-gate__arrow {
    position:absolute;
    right:4px;
    top:34px;
    color:#a25a86;
    font:500 34px/1 "Outfit",sans-serif;
    animation:turn-arrow 2.4s ease-in-out infinite;
  }
  .orientation-gate__eyebrow {
    margin:0 0 8px;
    color:#a50064;
    font-size:12px;
    font-weight:800;
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  .orientation-gate h2 {
    margin:0 0 12px;
    font:700 clamp(29px,9vw,38px)/1.08 "Outfit", system-ui, sans-serif;
    letter-spacing:-.03em;
  }
  .orientation-gate__card > p:last-child {
    margin:0 auto;
    max-width:31ch;
    color:#6f6476;
    font-size:15px;
    line-height:1.55;
  }
  body.reference-mode { overflow: auto; }
  .reference-app { place-items: start center; }
  .reference-shell { width: 100%; height: auto; min-width: 0; min-height: 0; display: block; }
  .reference-canvas { width: 100%; max-width: 100%; overflow: visible; }
  .reference-event-summary { min-height: 34px; padding: 5px 8px; border-radius: 9px; }
  .reference-event-summary b { font-size: 9px; }
  .reference-event-summary span { font-size: 7px; }
  .reference-event-summary em { font-size: 11px; }
  .reference-hotspot.is-current::after { top:4px; right:4px; width:15px; height:15px; font-size:8px; }
  .reference-brand-fix { padding:0 3.65%; }
  .reference-number-input { padding:0 5px; font-size:13px; }
  .reference-area-value { font-size:12px; }
  .reference-step-value { font-size:14px; }
  .reference-capacity-value { min-height: 36px; padding: 3px 7px; }
  .reference-capacity-value b { font-size: 10px; }
  .reference-capacity-value span { font-size: 7px; }
  .reference-summary-values { font-size: 10px; }
  .reference-summary-status { min-height: 34px; padding: 3px 7px; border-radius: 8px; font-size: 8px; }
  .reference-modal { width: 94%; padding: 18px; border-radius: 18px; }
}

@keyframes turn-phone {
  0%,18% { transform:rotate(0deg) scale(1); }
  48%,72% { transform:rotate(90deg) scale(.96); }
  92%,100% { transform:rotate(0deg) scale(1); }
}
@keyframes turn-arrow {
  0%,18% { opacity:.25; transform:rotate(-24deg) scale(.9); }
  46%,72% { opacity:1; transform:rotate(68deg) scale(1); }
  88%,100% { opacity:0; transform:rotate(96deg) scale(.9); }
}

@media (prefers-reduced-motion: reduce) {
  .reference-event-venue { animation: none; }
  .orientation-gate__phone { animation:none; transform:rotate(90deg); }
  .orientation-gate__arrow { animation:none; opacity:1; transform:rotate(68deg); }
}

@media (prefers-reduced-transparency: reduce) {
  .reference-event-summary, .reference-modal { background: #fffdfb; backdrop-filter: none; -webkit-backdrop-filter: none; }
}

body.is-page-transitioning { overflow-x:clip; }
.page-transition-ghost {
  position:fixed !important;
  z-index:90;
  margin:0 !important;
  overflow:hidden;
  pointer-events:none !important;
  user-select:none;
  contain:paint;
  background:var(--page);
  backface-visibility:hidden;
  transform-origin:center;
  will-change:transform,opacity;
}
.page-transition-ghost img { visibility:visible !important; opacity:1 !important; }
