.backdrop-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;transition:opacity var(--theme-fade, 1.5s) ease}.backdrop-layer--fading{opacity:0}.screen[data-theme=amber]{--surface: var(--primary);--ink: var(--quaternary-darkest);--ink-muted: color-mix(in srgb, var(--quaternary) 65%, transparent);--accent: var(--secondary-darker);--logo-filter: invert(1);--frame-width: 16px;--frame-cycle: 64s}.frame{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.frame__edge{position:absolute;overflow:hidden;animation-duration:var(--frame-cycle);animation-timing-function:cubic-bezier(.4,0,.2,1);animation-iteration-count:infinite;animation-delay:var(--frame-delay, 0s);animation-fill-mode:backwards;will-change:clip-path}.frame__edge-fill{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--edge-colour)}.frame__edge--top,.frame__edge--bottom{left:0;width:100%;height:var(--frame-width)}.frame__edge--left,.frame__edge--right{top:0;width:var(--frame-width);height:100%}.frame__edge--top{top:0;--edge-colour: var(--secondary);animation-name:sweep-right}.frame__edge--top .frame__edge-fill{clip-path:polygon(0 0,100% 0,calc(100% - var(--frame-width)) 100%,var(--frame-width) 100%)}.frame__edge--right{right:0;--edge-colour: var(--tertiary);animation-name:sweep-down}.frame__edge--right .frame__edge-fill{clip-path:polygon(100% 0,100% 100%,0 calc(100% - var(--frame-width)),0 var(--frame-width))}.frame__edge--bottom{bottom:0;--edge-colour: var(--quaternary);animation-name:sweep-left}.frame__edge--bottom .frame__edge-fill{clip-path:polygon(var(--frame-width) 0,calc(100% - var(--frame-width)) 0,100% 100%,0 100%)}.frame__edge--left{left:0;--edge-colour: var(--primary-darker);animation-name:sweep-up}.frame__edge--left .frame__edge-fill{clip-path:polygon(0 0,var(--frame-width) var(--frame-width),var(--frame-width) calc(100% - var(--frame-width)),0 100%)}@keyframes sweep-right{0%{clip-path:inset(0 100% 0 0)}12.5%,50%{clip-path:inset(0 0 0 0)}62.5%,to{clip-path:inset(0 0 0 100%)}}@keyframes sweep-down{0%{clip-path:inset(0 0 100% 0)}12.5%,50%{clip-path:inset(0 0 0 0)}62.5%,to{clip-path:inset(100% 0 0 0)}}@keyframes sweep-left{0%{clip-path:inset(0 0 0 100%)}12.5%,50%{clip-path:inset(0 0 0 0)}62.5%,to{clip-path:inset(0 100% 0 0)}}@keyframes sweep-up{0%{clip-path:inset(100% 0 0 0)}12.5%,50%{clip-path:inset(0 0 0 0)}62.5%,to{clip-path:inset(0 0 100% 0)}}.screen[data-theme=navy]{--surface: var(--quaternary-dark);--ink: #ffffff;--ink-muted: var(--quaternary-lightest);--accent: var(--primary);--logo-filter: none}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,var(--quaternary) 0%,var(--surface) 60%)}.backdrop__blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.42;will-change:transform;animation:drift var(--blob-duration, 44s) ease-in-out infinite alternate;animation-delay:var(--blob-delay, 0s)}@keyframes drift{0%{transform:translateZ(0) scale(1);opacity:.38}to{transform:translate3d(var(--blob-x, 4%),var(--blob-y, -5%),0) scale(1.08);opacity:.48}}.screen[data-theme=cream]{--surface: var(--primary-lightest);--ink: var(--quaternary);--ink-muted: var(--quaternary-lighter);--accent: var(--secondary-dark);--logo-filter: invert(1);--ball-size: 17vmin}.ball-row{position:absolute;inset:auto 0 0;z-index:0;height:calc(var(--ball-size) * 1.4);overflow:hidden;background:var(--surface)}.ball-row__ball{position:absolute;bottom:calc(var(--ball-size) * -.28);box-sizing:border-box;width:var(--ball-size);height:var(--ball-size);border-radius:50%;mix-blend-mode:multiply;will-change:transform;animation:slide var(--ball-duration, 18s) ease-in-out infinite alternate;animation-delay:var(--ball-delay, 0s)}.ball-row__ball--fill{background:var(--ball-colour)}.ball-row__ball--ring{background:transparent;border:calc(var(--ball-size) * .05) solid var(--ball-colour)}@keyframes slide{0%{transform:translate(calc(var(--ball-travel, 3vw) * -1))}to{transform:translate(var(--ball-travel, 3vw))}}@media (prefers-reduced-motion: reduce){.frame__edge{clip-path:inset(0 0 0 0)!important}}.screen{position:relative;background:var(--surface);color:var(--ink);transition:background-color var(--theme-fade, 1.5s) ease,color var(--theme-fade, 1.5s) ease;display:grid;grid-template-rows:auto 1fr auto;min-height:100%;overflow:hidden}.screen__header,.screen__footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);padding:var(--gap-lg) var(--gap-xl)}.screen__stage{position:relative;z-index:2;display:grid;place-items:center;padding:0 var(--gap-xl);text-align:center}.greeting{display:flex;flex-direction:column;align-items:center;gap:var(--gap-md);max-width:100%}.greeting--fading{opacity:0;transform:translateY(.5rem)}.greeting__lede{margin:0;transition:color var(--theme-fade, 1.5s) ease;font-size:clamp(.95rem,2vw,1.6rem);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted)}.greeting__names{display:grid;grid-template-columns:repeat(var(--name-columns, 1),auto);gap:0 var(--gap-xl);margin:0;padding:0;list-style:none;font-family:var(--font-display);font-size:var(--name-size);font-weight:var(--weight-display);line-height:var(--name-leading, 1);letter-spacing:var(--name-tracking, -.02em);text-wrap:balance}.greeting__names--columns{grid-auto-flow:column;grid-template-rows:repeat(var(--name-rows, 1),auto);grid-template-columns:none;text-align:left}.greeting__name{white-space:nowrap}.greeting__company{margin:0;transition:color var(--theme-fade, 1.5s) ease;font-family:var(--font-display);font-size:var(--company-size);font-weight:var(--weight-semibold);letter-spacing:.01em;color:var(--accent)}.greeting__empty{max-width:32ch;color:var(--ink-muted)}.logo{display:block;height:clamp(1.5rem,3vw,2.5rem);width:auto;filter:var(--logo-filter, none)}.menu-button{display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);opacity:.5;transition:opacity var(--transition),color var(--transition)}.menu-button:hover,.menu-button:focus-visible{color:var(--ink);opacity:1}.menu-button svg{width:1.5rem;height:1.5rem;stroke:currentColor;stroke-width:2;stroke-linecap:round}.admin{min-height:100%;padding:var(--gap-lg);background:var(--surface)}.admin__inner{display:flex;flex-direction:column;gap:var(--gap-lg);max-width:46rem;margin:0 auto}.admin__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap-md)}.admin__title{margin:0 0 var(--gap-xs);font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:var(--weight-display);letter-spacing:-.02em}.admin__subtitle{margin:0;color:var(--ink-muted)}.panel{padding:var(--gap-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised)}.field-group{margin:0 0 var(--gap-md);padding:0;border:0}.field-group__add{align-self:flex-start}.field{display:flex;flex-direction:column;gap:var(--gap-xs);margin-bottom:var(--gap-md)}.field__label{font-size:.85rem;font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.input{width:100%;padding:.6rem .75rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);transition:border-color var(--transition)}.input:focus-visible{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:1px}.people-row{display:flex;gap:var(--gap-sm);margin-bottom:var(--gap-sm)}.btn{padding:.55rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;transition:background var(--transition),border-color var(--transition)}.btn:hover{border-color:var(--accent)}.btn--primary{border-color:transparent;background:var(--accent);color:var(--quaternary-darkest);font-weight:var(--weight-semibold)}.btn--ghost{border-color:transparent;color:var(--ink-muted)}.btn--danger:hover{border-color:var(--danger);color:var(--secondary-light)}.btn-row{display:flex;gap:var(--gap-sm);align-items:center}.notice{padding:var(--gap-sm) var(--gap-md);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--secondary) 18%,transparent);color:var(--secondary-lighter)}.visitor-list{display:flex;flex-direction:column;gap:var(--gap-sm);margin:0;padding:0;list-style:none}.visitor{display:flex;align-items:center;justify-content:space-between;gap:var(--gap-md);padding:var(--gap-sm) var(--gap-md);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-raised)}.visitor__names{font-weight:var(--weight-semibold)}.visitor__meta{font-size:.875rem;color:var(--ink-muted)}.auth{display:grid;place-items:center;min-height:100%}.auth__card{width:min(24rem,100%)}.stage-panel{padding:var(--gap-md);border:1px dashed var(--line);border-radius:var(--radius-md);background:var(--surface-sunken);transition:border-color var(--transition),background var(--transition)}.stage-panel--filled{border-style:solid;border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.stage-panel--over,.waiting--over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-sunken))}.stage-panel__empty{margin:var(--gap-sm) 0 0;color:var(--ink-muted)}.waiting{padding:var(--gap-md);border:1px dashed transparent;border-radius:var(--radius-md);transition:border-color var(--transition),background var(--transition)}.visitor{cursor:grab}.visitor:active{cursor:grabbing}.visitor__grip{flex:0 0 auto;width:.75rem;height:1.25rem;background-image:radial-gradient(var(--quaternary-lightest) 1px,transparent 1px);background-size:4px 4px;opacity:.5}.visitor__body{flex:1 1 auto;min-width:0}.visitor--active{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.visitor--dragging{opacity:.4}.theme-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--gap-sm);margin-top:var(--gap-sm)}.theme-swatch{display:grid;gap:var(--gap-xs);padding:var(--gap-sm);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-sunken);text-align:left;transition:border-color var(--transition)}.theme-swatch:hover{border-color:var(--accent)}.theme-swatch--selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.theme-swatch__chip{height:2.25rem;border-radius:var(--radius-sm);background:var(--chip-ground, var(--surface));box-shadow:inset 0 0 0 3px var(--chip-edge, transparent)}.theme-swatch[data-theme-preview=amber]{--chip-ground: var(--primary);--chip-edge: var(--tertiary)}.theme-swatch[data-theme-preview=navy]{--chip-ground: var(--quaternary-dark);--chip-edge: var(--primary-dark)}.theme-swatch[data-theme-preview=cream]{--chip-ground: var(--primary-lightest);--chip-edge: var(--secondary)}.theme-swatch[data-theme-preview=alternate]{--chip-ground: linear-gradient( to right, var(--primary) 0 33.33%, var(--quaternary-dark) 33.33% 66.66%, var(--primary-lightest) 66.66% );--chip-edge: var(--tertiary)}.theme-swatch__label{font-weight:var(--weight-semibold)}.theme-swatch__hint{font-size:.8rem;color:var(--ink-muted)}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary-lightest: #fff4d6;--primary-lighter: #ffe6a5;--primary-light: #ffd46e;--primary: #fec042;--primary-dark: #e0a620;--primary-darker: #b88311;--primary-darkest: #7a5606;--secondary-lightest: #fce0d0;--secondary-lighter: #f8ba93;--secondary-light: #f59b63;--secondary: #f27d39;--secondary-dark: #d16220;--secondary-darker: #a8490d;--secondary-darkest: #6d2a00;--tertiary-lightest: #c9e9e8;--tertiary-lighter: #9dd1cf;--tertiary-light: #73bcba;--tertiary: #4fa6a4;--tertiary-dark: #3c8684;--tertiary-darker: #2a6867;--tertiary-darkest: #143d3d;--quaternary-lightest: #a3a5b8;--quaternary-lighter: #6c6f89;--quaternary-light: #484b63;--quaternary: #2b2d42;--quaternary-dark: #1d1f30;--quaternary-darker: #10111f;--quaternary-darkest: #000000;--surface: var(--quaternary-dark);--surface-raised: var(--quaternary);--surface-sunken: var(--quaternary-darker);--ink: #ffffff;--ink-muted: var(--quaternary-lightest);--accent: var(--primary);--accent-strong: var(--secondary);--accent-cool: var(--tertiary);--line: color-mix(in srgb, var(--quaternary-lightest) 22%, transparent);--danger: var(--secondary-dark);--gap-xs: .375rem;--gap-sm: .75rem;--gap-md: 1.25rem;--gap-lg: 2rem;--gap-xl: 3.5rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1.5rem;--font-display: "Plus Jakarta Sans Variable", "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-ui: var(--font-display);--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-display: 800;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--surface);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}input,textarea{font:inherit;color:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
