@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-content:"";--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-normal:400;--font-weight-medium:500;--tracking-widest:.1em;--leading-snug:1.375;--leading-normal:1.5;--radius-md:calc(var(--radius) * .8);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-body), var(--font-thai), sans-serif;--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:var(--font-body), var(--font-thai), sans-serif}}@layer components;@layer utilities{.\@container\/field-group{container:field-group/inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-50{z-index:50}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-auto{margin-inline:auto}.-my-2{margin-block:calc(var(--spacing) * -2)}.my-1{margin-block:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-14{width:calc(var(--spacing) * 14);height:calc(var(--spacing) * 14)}.h-1{height:var(--spacing)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-auto{height:auto}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-20{min-height:calc(var(--spacing) * 20)}.w-\(--radix-dropdown-menu-trigger-width\){width:var(--radix-dropdown-menu-trigger-width)}.w-64{width:calc(var(--spacing) * 64)}.w-\[100px\]{width:100px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:0}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-32{min-width:calc(var(--spacing) * 32)}.min-w-\[96px\]{min-width:96px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.resize{resize:both}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-center{align-items:center}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-\[--spacing\(var\(--gap\)\)\]{gap:calc(var(--spacing) * var(--gap))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-clip-padding{background-clip:padding-box}.object-cover{object-fit:cover}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.text-left{text-align:left}.font-heading{font-family:var(--font-body), var(--font-thai), sans-serif}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}:is(.\*\:w-full>*){width:100%}.group-focus\/dropdown-menu-item\:text-accent-foreground:is(:where(.group\/dropdown-menu-item):focus *){color:var(--accent-foreground)}.group-has-disabled\/field\:opacity-50:is(:where(.group\/field):has(:disabled) *){opacity:.5}.group-has-data-horizontal\/field\:text-balance:is(:where(.group\/field):has(:where([data-orientation=horizontal])) *){text-wrap:balance}.group-has-\[\:focus-visible\]\/field-label\:ring-0:is(:where(.group\/field-label):has(:focus-visible) *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.group-has-\[\:focus-visible\]\/field-label\:not-data-checked\:border-input:is(:where(.group\/field-label):has(:focus-visible) *):not(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--input)}.group-has-\[\>svg\]\/alert\:col-start-2:is(:where(.group\/alert):has(>svg) *){grid-column-start:2}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *),.group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled=true] *){opacity:.5}.group-data-\[spacing\=0\]\/toggle-group\:rounded-none:is(:where(.group\/toggle-group)[data-spacing="0"] *){border-radius:0}.group-data-\[spacing\=0\]\/toggle-group\:px-2:is(:where(.group\/toggle-group)[data-spacing="0"] *){padding-inline:calc(var(--spacing) * 2)}.group-data-\[variant\=outline\]\/field-group\:-mb-2:is(:where(.group\/field-group)[data-variant=outline] *){margin-bottom:calc(var(--spacing) * -2)}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *){display:block}.group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=bottom] *),.group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center:is(:where(.group\/drawer-content)[data-vaul-drawer-direction=top] *){text-align:center}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * -3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing) * -2)}.last\:mt-0:last-child{margin-top:0}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.focus\:\*\*\:text-accent-foreground:focus *),:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-end\]\:pr-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.group-data-\[spacing\=0\]\/toggle-group\:has-data-\[icon\=inline-start\]\:pl-1\.5:is(:where(.group\/toggle-group)[data-spacing="0"] *):has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[slot\=alert-action\]\:relative:has([data-slot=alert-action]){position:relative}.has-data-\[slot\=alert-action\]\:pr-18:has([data-slot=alert-action]){padding-right:calc(var(--spacing) * 18)}.has-data-checked\:border-primary\/30:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-data-checked\:border-primary\/30:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:color-mix(in oklab, var(--primary) 30%, transparent)}}.has-data-checked\:bg-primary\/5:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.has-data-checked\:bg-primary\/5:has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:color-mix(in oklab, var(--primary) 5%, transparent)}}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:calc(var(--spacing) * 3)}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:rounded-lg:has(>[data-slot=field]){border-radius:var(--radius)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-style:var(--tw-border-style);border-width:1px}@media (hover:hover){.has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has(>[data-slot=field]):not(:has(:is(:disabled,[data-disabled]))):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-\[\>\[data-slot\=field\]\]\:not-has-\[\:disabled\,\[data-disabled\]\]\:hover\:bg-muted\/50:has(>[data-slot=field]):not(:has(:is(:disabled,[data-disabled]))):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:border-ring:has(>[data-slot=field]):has(:focus-visible){border-color:var(--ring)}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-3:has(>[data-slot=field]):has(:focus-visible){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has(>[data-slot=field]):has(:focus-visible){--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.has-\[\>\[data-slot\=field\]\]\:has-\[\:focus-visible\]\:ring-ring\/50:has(>[data-slot=field]):has(:focus-visible){--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:calc(var(--spacing) * 3)}.has-\[\>svg\]\:grid-cols-\[auto_1fr\]:has(>svg){grid-template-columns:auto 1fr}.has-\[\>svg\]\:gap-x-2:has(>svg){column-gap:calc(var(--spacing) * 2)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-invalid\:aria-checked\:border-primary[aria-invalid=true][aria-checked=true]{border-color:var(--primary)}.aria-pressed\:bg-muted[aria-pressed=true]{background-color:var(--muted)}.data-inset\:pl-7[data-inset]{padding-left:calc(var(--spacing) * 7)}.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:var(--destructive)}.data-\[side\=bottom\]\:inset-x-0[data-side=bottom]{inset-inline:0}.data-\[side\=bottom\]\:bottom-0[data-side=bottom]{bottom:0}.data-\[side\=bottom\]\:h-auto[data-side=bottom]{height:auto}.data-\[side\=bottom\]\:border-t[data-side=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:inset-y-0[data-side=left]{inset-block:0}.data-\[side\=left\]\:left-0[data-side=left]{left:0}.data-\[side\=left\]\:h-full[data-side=left]{height:100%}.data-\[side\=left\]\:w-3\/4[data-side=left]{width:75%}.data-\[side\=left\]\:border-r[data-side=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:inset-y-0[data-side=right]{inset-block:0}.data-\[side\=right\]\:right-0[data-side=right]{right:0}.data-\[side\=right\]\:h-full[data-side=right]{height:100%}.data-\[side\=right\]\:w-3\/4[data-side=right]{width:75%}.data-\[side\=right\]\:border-l[data-side=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:inset-x-0[data-side=top]{inset-inline:0}.data-\[side\=top\]\:top-0[data-side=top]{top:0}.data-\[side\=top\]\:h-auto[data-side=top]{height:auto}.data-\[side\=top\]\:border-b[data-side=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:calc(var(--spacing) * 3)}:is(.\*\:data-\[slot\=field\]\:p-2\.5>*)[data-slot=field]{padding:calc(var(--spacing) * 2.5)}:is(.\*\:data-\[slot\=field-group\]\:gap-4>*)[data-slot=field-group]{gap:calc(var(--spacing) * 4)}:is(.\*\:data-\[slot\=field-label\]\:flex-auto>*)[data-slot=field-label]{flex:auto}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-l-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:first\:rounded-t-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:first-child{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-r-lg:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"]:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:last\:rounded-b-lg:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"]:last-child{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[state\=closed\]\:overflow-hidden[data-state=closed]{overflow:hidden}.data-\[state\=on\]\:bg-muted[data-state=on]{background-color:var(--muted)}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-l-0:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]{border-left-style:var(--tw-border-style);border-left-width:0}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:border-t-0:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]{border-top-style:var(--tw-border-style);border-top-width:0}.group-data-horizontal\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-l:is(:where(.group\/toggle-group):where([data-orientation=horizontal]) *)[data-spacing="0"][data-variant=outline]:first-child{border-left-style:var(--tw-border-style);border-left-width:1px}.group-data-vertical\/toggle-group\:data-\[spacing\=0\]\:data-\[variant\=outline\]\:first\:border-t:is(:where(.group\/toggle-group):where([data-orientation=vertical]) *)[data-spacing="0"][data-variant=outline]:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{inset-inline:0}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:0}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom]{max-height:80vh}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-xl[data-vaul-drawer-direction=bottom]{border-top-left-radius:calc(var(--radius) * 1.4);border-top-right-radius:calc(var(--radius) * 1.4)}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-style:var(--tw-border-style);border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left]{inset-block:0}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:0}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left]{width:75%}.data-\[vaul-drawer-direction\=left\]\:rounded-r-xl[data-vaul-drawer-direction=left]{border-top-right-radius:calc(var(--radius) * 1.4);border-bottom-right-radius:calc(var(--radius) * 1.4)}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-style:var(--tw-border-style);border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{inset-block:0}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:0}.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[vaul-drawer-direction\=right\]\:rounded-l-xl[data-vaul-drawer-direction=right]{border-top-left-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-style:var(--tw-border-style);border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{inset-inline:0}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:0}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:calc(var(--spacing) * 24)}.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[vaul-drawer-direction\=top\]\:rounded-b-xl[data-vaul-drawer-direction=top]{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.nth-last-2\:-mt-1:nth-last-child(2){margin-top:calc(var(--spacing) * -1)}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.data-\[side\=left\]\:sm\:max-w-sm[data-side=left],.data-\[side\=right\]\:sm\:max-w-sm[data-side=right],.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:var(--container-sm)}}@media (min-width:48rem){.md\:gap-0\.5{gap:calc(var(--spacing) * .5)}.md\:text-left{text-align:left}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.md\:text-pretty{text-wrap:pretty}}@container field-group (min-width:28rem){.\@md\/field-group\:flex-row{flex-direction:row}.\@md\/field-group\:items-center{align-items:center}:is(.\@md\/field-group\:\*\:w-auto>*){width:auto}.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}:is(.\@md\/field-group\:\*\:data-\[slot\=field-label\]\:flex-auto>*)[data-slot=field-label]{flex:auto}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dark\:has-data-checked\:border-primary\/20:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:color-mix(in oklab, var(--primary) 20%, transparent)}}.dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.dark\:has-data-checked\:bg-primary\/10:is(.dark *):has(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){background-color:color-mix(in oklab, var(--primary) 10%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:bg-accent:where([data-state=open]),.data-open\:bg-accent:where([data-open]:not([data-open=false])){background-color:var(--accent)}.data-open\:text-accent-foreground:where([data-state=open]),.data-open\:text-accent-foreground:where([data-open]:not([data-open=false])){color:var(--accent-foreground)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-state=open]),.data-\[side\=bottom\]\:data-open\:slide-in-from-bottom-10[data-side=bottom]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-state=open]),.data-\[side\=left\]\:data-open\:slide-in-from-left-10[data-side=left]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-state=open]),.data-\[side\=right\]\:data-open\:slide-in-from-right-10[data-side=right]:where([data-open]:not([data-open=false])){--tw-enter-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-state=open]),.data-\[side\=top\]\:data-open\:slide-in-from-top-10[data-side=top]:where([data-open]:not([data-open=false])){--tw-enter-translate-y:calc(.1*-100%)}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-state=closed]),.data-\[side\=bottom\]\:data-closed\:slide-out-to-bottom-10[data-side=bottom]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*100%)}.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-state=closed]),.data-\[side\=left\]\:data-closed\:slide-out-to-left-10[data-side=left]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*-100%)}.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-state=closed]),.data-\[side\=right\]\:data-closed\:slide-out-to-right-10[data-side=right]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-x:calc(.1*100%)}.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-state=closed]),.data-\[side\=top\]\:data-closed\:slide-out-to-top-10[data-side=top]:where([data-closed]:not([data-closed=false])){--tw-exit-translate-y:calc(.1*-100%)}.data-checked\:border-primary:where([data-state=checked]),.data-checked\:border-primary:where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.data-checked\:bg-primary:where([data-state=checked]),.data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.data-checked\:text-primary-foreground:where([data-state=checked]),.data-checked\:text-primary-foreground:where([data-checked]:not([data-checked=false])){color:var(--primary-foreground)}.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-state=checked]),.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.dark\:data-checked\:bg-primary:is(.dark *):where([data-state=checked]),.dark\:data-checked\:bg-primary:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-horizontal\:h-px:where([data-orientation=horizontal]){height:1px}.data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.data-vertical\:w-px:where([data-orientation=vertical]){width:1px}.data-vertical\:flex-col:where([data-orientation=vertical]){flex-direction:column}.data-vertical\:items-stretch:where([data-orientation=vertical]){align-items:stretch}.data-vertical\:self-stretch:where([data-orientation=vertical]){align-self:stretch}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_a\]\:underline-offset-3 a{text-underline-offset:3px}@media (hover:hover){.\[\&_a\]\:hover\:text-foreground a:hover{color:var(--foreground)}}.\[\&_p\:not\(\:last-child\)\]\:mb-4 p:not(:last-child){margin-bottom:calc(var(--spacing) * 4)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.\*\:\[svg\]\:row-span-2>*):is(svg){grid-row:span 2/span 2}:is(.\*\:\[svg\]\:translate-y-0\.5>*):is(svg){--tw-translate-y:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}:is(.\*\:\[svg\]\:text-current>*):is(svg){color:currentColor}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>*):is(svg:not([class*=size-])){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}:is(.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]){margin-top:1px}@container field-group (min-width:28rem){:is(.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]){margin-top:1px}}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>a\:hover\]\:text-primary>a:hover{color:var(--primary)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:calc(var(--spacing) * -1.5)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}:root{--paper:#fcf9f4;--cream:#f4ece2;--white:#fff;--ink:#423831;--quiet:#756960;--sage:#7a866f;--deep:#764b46;--line:#e5d8ca;--gold:#ad8d59;--error:#a33f47;--violet:#b08b82;--violet-deep:#8e5b54;--pink:#b47e77;--pink-pale:#faf0ec;--blue:#7a866f;--blue-pale:#f1f3ec;--background:#fcf9f4;--foreground:#423831;--card:#fff;--card-foreground:#423831;--popover:#fff;--popover-foreground:#423831;--primary:#8e5b54;--primary-foreground:#fff;--secondary:#f4ece2;--secondary-foreground:#764b46;--muted:#f4ece2;--muted-foreground:#756960;--accent:#faf0ec;--accent-foreground:#764b46;--destructive:#a33f47;--border:#e5d8ca;--input:#d6c2b5;--ring:#b08b82;--chart-1:#8e5b54;--chart-2:#7a866f;--chart-3:#ad8d59;--chart-4:#b47e77;--chart-5:#756960;--radius:.75rem;--sidebar:#fcf9f4;--sidebar-foreground:#423831;--sidebar-primary:#8e5b54;--sidebar-primary-foreground:#fff;--sidebar-accent:#f4ece2;--sidebar-accent-foreground:#764b46;--sidebar-border:#e5d8ca;--sidebar-ring:#b08b82}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Noto Sans Thai,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:500}h1,h2{font-family:var(--font-name), var(--font-thai), sans-serif}.eyebrow{letter-spacing:.25em;color:var(--sage);margin-bottom:1.2rem;font-size:.68rem;font-weight:700}.error{color:var(--error);background:#fbedeb;border:1px solid #efc9c4;border-radius:6px;padding:.7rem .9rem}.notice{color:#315743;background:#e6f0e5;border:1px solid #c7dfc9;border-radius:6px;padding:.7rem .9rem}.small-muted{color:var(--quiet);font-size:.8rem}.small{font-size:.75rem}.privacy-link{color:var(--deep);margin-top:.7rem;font-size:.82rem;text-decoration:underline;display:inline-block}.privacy-page{max-width:760px;min-height:100vh;margin:auto;padding:3rem 1.3rem 5rem;line-height:1.8}.privacy-back-top{align-items:center;gap:.55rem;min-height:44px;margin-bottom:clamp(1.75rem,4vw,2.5rem);font-size:.95rem;display:inline-flex}.privacy-top-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.privacy-top-row .guest-language-switch{flex-shrink:0}.guest-language-switch [data-slot=toggle-group-item]{min-height:36px}.privacy-page h1{margin-top:0;font-size:clamp(2rem,5vw,3.4rem)}.privacy-page h2{margin-top:2rem}.privacy-back{margin-top:1rem;display:inline-block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.centered{min-height:100vh;color:var(--quiet);flex-direction:column;justify-content:center;align-items:center;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--sage);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.welcome-page{background:#f7f4ed;grid-template-columns:46% 54%;min-height:100vh;display:grid}.welcome-photo{color:#f5efe5;letter-spacing:.2em;background:radial-gradient(circle at 35% 30%,#a6b6a3,#0000 22%),radial-gradient(circle at 75% 62%,#758a78,#0000 28%),linear-gradient(145deg,#849b86,#344c3d);justify-content:center;align-items:flex-end;min-height:100vh;padding:5rem;font-family:Georgia,serif;font-size:3rem;display:flex}.welcome-content{align-self:center;width:min(520px,80%);margin:auto;padding:5rem 0}.welcome-content h1,.gallery-hero h1{letter-spacing:-.05em;margin-bottom:1.7rem;font-size:clamp(3rem,6vw,6.5rem);line-height:1.12}.welcome-content h1 em,.gallery-hero h1 em{color:var(--sage);font-weight:400}.lede{color:var(--quiet);max-width:400px;line-height:1.9}.invite-form{margin-top:3rem}.invite-form label,.login-card label{margin-bottom:.7rem;font-size:.82rem;font-weight:700;display:block}.input-row{align-items:stretch;gap:.6rem;display:flex}.input-row input,.input-row select,.invite-form input,.login-card input,.toolbar select,.invite-result input{background:var(--white);min-width:0;color:var(--ink);border:1px solid #d7dbd3;border-radius:4px;outline:none;padding:.8rem .9rem}.input-row input{flex:1}.input-row input:focus,.login-card input:focus{border-color:var(--sage);box-shadow:0 0 0 3px #63806b26}.invite-form .input-row button,.primary-button,.download-button{background:var(--deep);color:#fff;border:1px solid var(--deep);white-space:nowrap;border-radius:4px;padding:.78rem 1.1rem;font-size:.86rem;font-weight:700}.invite-form .input-row button span{margin-left:.7rem}.primary-button:hover,.download-button:hover{background:#263d30}.outline-button{color:var(--deep);background:0 0;border:1px solid #a8b5a9;border-radius:4px;padding:.7rem 1rem;font-size:.85rem;font-weight:700}.outline-button:hover:not(:disabled){background:#eef3ee}.text-button{color:var(--ink);background:0 0;border:0;padding:.5rem;font-size:.82rem}.text-button:hover{text-decoration:underline}.site-shell{min-height:100vh}.brand{letter-spacing:-.08em;color:var(--deep);align-items:center;gap:.3rem;font-family:Georgia,serif;font-size:1.65rem;display:flex}.brand span{color:var(--gold);margin:.1rem;font-size:.75rem}.brand small{letter-spacing:.2em;border-left:1px solid var(--line);white-space:nowrap;margin-left:.7rem;padding-left:1rem;font-family:Arial,sans-serif;font-size:.58rem}.header-actions{align-items:center;gap:1.3rem;font-size:.82rem;display:flex}.gallery-hero{background:radial-gradient(circle at 81% 20%,#e4e9df 0,#0000 37%),linear-gradient(125deg,#f2ede4,#fbfaf5);padding:clamp(5rem,9vw,9rem) clamp(1.2rem,8vw,9rem) 6rem;position:relative;overflow:hidden}.gallery-hero:after{content:"✦";color:#d8dfd4;opacity:.5;font-family:Georgia,serif;font-size:16rem;position:absolute;top:12%;right:10%}.gallery-hero>*{z-index:1;position:relative}.gallery-hero h1{margin-bottom:1rem}.gallery-hero p:not(.eyebrow){color:var(--quiet);font-size:1rem}.hero-rule{background:var(--gold);width:120px;height:1px;margin-top:3rem}.gallery-section{max-width:1500px;margin:auto;padding:4.5rem clamp(1.2rem,5vw,5rem) 7rem}.section-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem;display:flex}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3.2rem)}.section-heading .eyebrow{margin-bottom:.6rem}.count-badge{color:var(--sage);white-space:nowrap;border:1px solid #ccd5ca;border-radius:99px;padding:.4rem .9rem;font-size:.78rem}.section-heading-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.65rem;display:flex}.person-face-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.7rem;margin-bottom:1.6rem;display:grid}.person-face-card{color:var(--deep);text-align:center;background:#fff;border:2px solid #d4ddd1;border-radius:10px;flex-direction:column;align-items:center;gap:.3rem;padding:.45rem;display:flex}.person-face-card.active{border-color:var(--deep);background:#e8f0e7;box-shadow:0 0 0 2px #e8f0e7}.person-face-card:disabled{opacity:.5}.person-face-card img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%}.person-face-card strong{font-size:.8rem;line-height:1.25}.person-face-card span{color:var(--quiet);font-size:.72rem}.person-pill{white-space:nowrap;color:var(--deep);background:0 0;border:1px solid #d4ddd1;border-radius:99px;padding:.7rem 1.1rem;font-size:.84rem}.person-pill.active{background:var(--deep);border-color:var(--deep);color:#fff}.person-pill span{opacity:.65;margin-left:.4rem;font-size:.72rem}.people-combination{color:var(--deep);flex-wrap:wrap;align-items:center;gap:.65rem;margin:-.7rem 0 1.5rem;font-size:.84rem;display:flex}.people-combination select{color:var(--deep);background:#fff;border:1px solid #d4ddd1;border-radius:4px;padding:.5rem .7rem}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.photo-card{aspect-ratio:4/3;background:#e8e8e1;border:0;padding:0;position:relative;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.photo-card:hover img{transform:scale(1.04)}.photo-card span{color:#fff;text-shadow:0 1px 5px #000;letter-spacing:.05em;font-size:.68rem;position:absolute;bottom:.75rem;left:.85rem}.more-row{text-align:center;padding:2.5rem}.empty-state{text-align:center;color:var(--quiet);border:1px dashed var(--line);border-radius:8px;padding:5rem 1rem}.empty-state span{color:var(--gold);font-family:Georgia,serif;font-size:3rem}.empty-state h3{color:var(--ink);margin:1rem 0 .4rem}.lightbox{z-index:20;background:#0c140ff0;justify-content:center;align-items:center;padding:2rem;display:flex;position:fixed;inset:0}.lightbox-inner{flex-direction:column;max-width:min(95vw,1200px);height:min(90vh,950px);display:flex;position:relative}.lightbox-inner>img{object-fit:contain;flex:1;width:100%;height:auto;min-height:0}.lightbox-footer{color:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;font-size:.85rem;display:flex}.close-button{color:#fff;z-index:1;background:0 0;border:0;font-size:2.4rem;position:absolute;top:-1.5rem;right:-1rem}.download-button{color:var(--deep);background:#f4f1e9;border-color:#f4f1e9}.download-button:hover{background:#fff}.admin-login{background:radial-gradient(circle at 75% 20%, #dce5d8, transparent 45%), var(--cream);place-items:center;min-height:100vh;display:grid}.login-card{background:#fff;width:min(430px,100% - 2rem);padding:3rem;box-shadow:0 20px 60px #344c3d17}.login-card h1{margin-bottom:.5rem;font-size:2.7rem}.login-card p:not(.eyebrow){color:var(--quiet);line-height:1.7}.login-card form{gap:.7rem;margin:2rem 0;display:grid}.login-card>a{color:var(--sage);font-size:.8rem}.admin-shell{grid-template-columns:230px minmax(0,1fr);min-height:100vh;display:grid}.admin-sidebar{color:#e9efe8;background:#263d30;flex-direction:column;gap:3rem;padding:2rem 1rem;display:flex}.admin-sidebar .brand{color:#fff;margin:.2rem 1rem}.admin-sidebar .brand small{color:#b9c7bc;border-color:#57725e;font-size:.5rem}.admin-sidebar nav{gap:.3rem;display:grid}.admin-sidebar nav button{color:#b9c7bc;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:1rem;padding:1rem;display:flex}.admin-sidebar nav button.active,.admin-sidebar nav button:hover{color:#fff;background:#3e5945}.sidebar-bottom{color:#b9c7bc;margin-top:auto;padding:1rem;font-size:.8rem}.admin-main{width:100%;min-width:0;max-width:1600px;padding:2.6rem clamp(1.2rem,3vw,3rem)}.admin-top{justify-content:space-between;align-items:start;margin-bottom:2.5rem;display:flex}.admin-top .eyebrow{margin-bottom:.3rem}.admin-top h1{margin:0;font-size:2.7rem}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem 0;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:.6rem;display:flex}.photo-toolbar .toolbar-left{flex-wrap:wrap}.toolbar-left span,.toolbar>span{color:var(--quiet);font-size:.8rem}.select-all{color:var(--quiet);align-items:center;gap:.5rem;margin:1rem 0;font-size:.8rem;display:flex}.admin-photo-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem;display:grid}.admin-photo-card,.face-card{border:1px solid var(--line);background:#fff;border-radius:5px;overflow:hidden}.admin-photo-image,.face-image{background:var(--cream);height:140px;position:relative}.admin-photo-image img,.face-image img{object-fit:cover;width:100%;height:100%}.photo-thumbnail-button{cursor:zoom-in;background:0 0;border:0;width:100%;height:100%;padding:0;display:block}.admin-photo-image label,.face-image label{z-index:1;background:#fff;border-radius:3px;padding:.25rem;display:flex;position:absolute;top:.6rem;left:.6rem}.admin-photo-image input,.face-image input{accent-color:var(--deep);width:17px;height:17px}.admin-photo-info,.face-details{justify-content:space-between;align-items:center;padding:.8rem .8rem .3rem;font-size:.83rem;display:flex}.admin-photo-card>p{color:var(--quiet);white-space:nowrap;text-overflow:ellipsis;padding:0 .8rem;font-size:.7rem;overflow:hidden}.status{color:#856a35;background:#f8f1df;border-radius:99px;padding:.25rem .5rem;font-size:.65rem;font-weight:700}.status.published{color:#386a4a;background:#e5f1e6}.status.failed{color:#9b3f37;background:#fae9e7}.card-actions{border-top:1px solid var(--line);justify-content:space-between;padding:.6rem .8rem .8rem;font-size:.74rem;display:flex}.card-actions a{color:var(--sage)}.card-actions button{color:var(--deep);background:0 0;border:0;padding:0;font-size:.74rem;font-weight:700}.review-history-panel{gap:.8rem;display:grid}.review-history-card{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem 1.2rem;display:flex}.review-history-card p{margin:.25rem 0}.selfie-search{border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;margin:0 0 1.5rem;padding:.9rem 1.15rem;position:relative}.selfie-search[data-state=open] .selfie-search-layout{grid-template-columns:minmax(240px,310px) minmax(0,1fr);align-items:center;gap:1rem;padding-right:6.5rem;display:grid}.selfie-search[data-state=closed]{margin-bottom:1.25rem;padding:.45rem .75rem}.selfie-search-copy{justify-content:space-between;align-items:center;gap:.5rem;min-width:0;display:flex}.selfie-search-copy>div{min-width:0}.selfie-search-copy [data-slot=collapsible-trigger]{flex:none;min-height:38px}.selfie-search[data-state=open] .selfie-search-copy [data-slot=collapsible-trigger]{position:absolute;top:.8rem;right:.9rem}.selfie-search[data-state=closed] .selfie-search-copy{align-items:center;gap:.5rem;margin-bottom:0}.selfie-search[data-state=closed] .eyebrow{display:none}.selfie-search[data-state=closed] h2{margin:0;font-size:clamp(.95rem,1.25vw,1.05rem);line-height:1.25}.selfie-search-content{border-left:1px solid var(--line);min-width:0;padding-left:1rem}.selfie-result{border-width:2px;border-color:var(--violet-deep);background:var(--card);box-shadow:0 3px 0 var(--line);margin-bottom:.65rem;padding:.7rem .85rem}.selfie-result>svg{color:var(--violet-deep);margin-top:.1rem}.selfie-result [data-slot=alert-title]{color:var(--violet-deep);font-size:.96rem;font-weight:800;line-height:1.3}.selfie-result [data-slot=alert-description]{color:var(--ink);flex-wrap:wrap;align-items:center;gap:.35rem .7rem;font-size:.82rem;line-height:1.45;display:flex}.selfie-result[data-kind=possible]{border-color:var(--blue)}.selfie-result[data-kind=possible]>svg,.selfie-result[data-kind=possible] [data-slot=alert-title]{color:#436b98}.selfie-result[data-kind=empty],.selfie-result[data-kind=error]{border-color:var(--pink)}.selfie-result[data-kind=empty]>svg,.selfie-result[data-kind=empty] [data-slot=alert-title],.selfie-result[data-kind=error]>svg,.selfie-result[data-kind=error] [data-slot=alert-title]{color:var(--error)}.selfie-result [data-slot=button]{border-color:var(--violet-deep);min-height:36px;color:var(--violet-deep);font-weight:700}.selfie-search h2{margin:.1rem 0 .15rem;font-size:clamp(1.1rem,1.45vw,1.35rem);line-height:1.3}.selfie-search p{margin:0}.selfie-search .eyebrow{font-size:.68rem}.selfie-search-copy>div>p:last-child{color:var(--ink);font-size:.82rem}.selfie-search-controls{gap:.3rem;min-width:0;max-width:1050px;margin-inline:auto;display:grid}.selfie-search-actions{grid-template-columns:minmax(150px,205px) minmax(0,1fr) minmax(145px,185px);align-items:stretch;gap:.5rem;display:grid}.selfie-search-actions>[data-slot=button]{width:100%;min-height:44px}.selfie-file-preview{border:1px solid var(--violet);background:var(--card);border-radius:10px;align-items:center;gap:.7rem;width:fit-content;max-width:100%;padding:.4rem;display:flex}.selfie-preview-thumb{background:var(--cream);width:68px;height:68px;color:var(--violet-deep);border-radius:7px;flex:none;place-items:center;display:grid;overflow:hidden}.selfie-preview-thumb img{object-fit:cover;width:100%;height:100%}.selfie-preview-details{gap:.1rem;min-width:0;padding-right:.35rem;font-size:.8rem;line-height:1.35;display:grid}.selfie-preview-details strong{color:var(--violet-deep)}.selfie-preview-details span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.selfie-preview-details small{color:var(--error)}.selfie-search .selfie-footnote{color:var(--ink);text-align:center;font-size:.78rem}.selfie-consent{border:1px solid var(--line);min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:9px;align-items:center;gap:.55rem;padding:.4rem .7rem;font-size:.78rem;line-height:1.35;display:flex}.selfie-consent:hover{border-color:var(--violet-deep);background:#fbf8ff}.selfie-consent:has([data-state=checked]){border-color:var(--violet-deep);background:#fbf8ff}.selfie-consent:focus-within{outline:3px solid var(--violet-deep);outline-offset:2px}.selfie-consent [data-slot=checkbox]{flex:none;width:1.05rem;height:1.05rem}.selfie-consent-copy{flex-wrap:wrap;align-items:center;gap:.15rem .5rem;min-width:0;display:flex}.selfie-consent-copy strong{color:var(--violet-deep);white-space:normal;background:#e9ddff;border:1px solid #c9b3f0;border-radius:5px;padding:.2rem .45rem;font-size:.85rem;font-weight:800}@media (max-width:1250px){.selfie-search[data-state=open] .selfie-search-layout{padding-right:0;display:block}.selfie-search[data-state=open] .selfie-search-copy{margin-bottom:.55rem}.selfie-search[data-state=open] .selfie-search-copy [data-slot=collapsible-trigger]{position:static}.selfie-search-content{border-top:1px solid var(--line);border-left:0;padding:.6rem 0 0}.selfie-search-controls{max-width:none}}@media (max-width:860px){.selfie-search-actions{grid-template-columns:minmax(0,1fr)}.selfie-search-actions>[data-slot=button],.selfie-consent{min-height:46px}.selfie-search .selfie-footnote{text-align:left}}.person-picker-scroll{flex:1;min-height:0;padding:1rem;overflow-y:auto}.person-picker-scroll .person-face-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:.55rem;margin:0}.person-picker-scroll .person-face-card{padding:.35rem}.person-picker-scroll .person-face-card span{font-size:.68rem;line-height:1.25}.person-picker-section+.person-picker-section{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.person-picker-section-heading{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.65rem;display:flex}.person-picker-section-heading h3{color:var(--violet-deep);margin:0;font-size:.9rem;font-weight:800}.person-picker-section-heading span{color:var(--quiet);font-size:.75rem}.person-picker-options{margin:0;padding:.8rem 1rem}.photo-preview-dialog{background:#fffdf8;border:0;border-radius:8px;width:min(1100px,96vw);max-height:94vh;padding:1rem;overflow:auto;box-shadow:0 18px 60px #10201766}.photo-preview-dialog::backdrop{background:#101b15c9}.photo-preview-header,.photo-preview-actions,.photo-preview-navigation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.photo-preview-header{margin-bottom:.8rem}.photo-preview-header div{flex-direction:column;gap:.2rem;min-width:0;display:flex}.photo-preview-header span,.photo-preview-navigation span{color:var(--quiet);font-size:.78rem}.photo-preview-image{object-fit:contain;background:#1c261f;width:100%;height:min(70vh,760px);display:block}.photo-face-toggle{color:var(--deep);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.55rem;font-size:.78rem;display:flex}.photo-face-toggle input{accent-color:var(--deep)}.photo-face-toggle span{color:var(--quiet)}.photo-preview-actions{margin-top:.8rem}.pager{color:var(--quiet);justify-content:center;align-items:center;gap:1.5rem;padding:2rem 0;font-size:.82rem;display:flex}.pager button{color:var(--deep);background:0 0;border:0;font-size:.82rem}.people-layout{grid-template-columns:270px minmax(0,1fr);gap:1.3rem;display:grid}.people-list,.face-workspace,.panel-card{border:1px solid var(--line);background:#fff;border-radius:5px}.people-list{align-self:start;max-height:calc(100vh - 170px);padding:1rem;overflow:auto}.people-list h2{justify-content:space-between;margin:.5rem;font-family:Arial,sans-serif;font-size:1.1rem;font-weight:700;display:flex}.people-list h2 span{color:var(--quiet);font-weight:400}.person-search{width:100%;color:var(--ink);background:#fff;border:1px solid #d7dbd3;border-radius:4px;padding:.7rem .8rem}.people-filters{gap:.55rem;margin:.8rem .25rem;display:grid}.people-filters label{color:var(--ink);cursor:pointer;align-items:center;gap:.55rem;font-size:.76rem;line-height:1.35;display:flex}.people-filters input{accent-color:var(--deep);flex:none;width:16px;height:16px;margin:0}.person-create-menu{border-top:1px solid var(--line);margin:.7rem .25rem 1rem;padding-top:.65rem}.person-create-menu summary{color:var(--quiet);cursor:pointer;font-size:.72rem}.person-create-menu>div{gap:.55rem;margin-top:.75rem;display:grid}.person-create-menu label{color:var(--ink);font-size:.72rem}.person-create-menu .outline-button{padding:.55rem .7rem;font-size:.75rem}.list-hint{padding:.5rem}.person-row{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:0 0;align-items:center;gap:.7rem;padding:.7rem .4rem;display:flex}.person-row.selected{background:#eef3ec}.person-row img,.avatar-placeholder{object-fit:cover;background:var(--cream);border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.person-row>span:nth-child(2){flex:1;min-width:0}.person-row strong,.person-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.person-row strong{font-size:.8rem}.person-row small{color:var(--quiet);margin-top:.25rem;font-size:.68rem}.person-row b{color:var(--sage)}.face-workspace{min-width:0;min-height:500px;padding:1.5rem}.face-workspace-head{justify-content:space-between;align-items:start;gap:1rem;display:flex}.face-workspace-head .eyebrow{margin-bottom:.5rem}.face-workspace-head h2{margin-bottom:.3rem;font-size:2rem}.face-workspace-head p:not(.eyebrow){color:var(--quiet);font-size:.8rem}.review-navigation{flex-direction:column;align-items:flex-end;gap:.7rem;display:flex}.review-group-confirmed{color:var(--deep);font-size:.8rem;font-weight:700}.face-review-heading{border-top:1px solid var(--line);margin-top:1.3rem;padding-top:1.3rem}.face-review-heading h3{margin:0 0 .3rem}.face-review-heading p{color:var(--quiet);margin:0;font-size:.8rem}.review-next-footer{justify-content:flex-end;margin:0 0 1.4rem;display:flex}.person-cover-panel{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:.9rem;margin:.8rem 0 1.3rem;padding:.8rem;display:flex}.person-cover-panel img{object-fit:cover;border-radius:6px;width:72px;height:72px}.person-cover-panel p{margin:.3rem 0}.face-grid{grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:.8rem;display:grid}.face-image{height:145px}.face-details{padding:.6rem;font-size:.7rem}.face-review-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem 1rem;margin:.9rem 0 1rem;display:flex}.face-review-toolbar .toolbar-left,.face-review-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.face-review-toolbar .toolbar-left span{color:var(--quiet);font-size:.8rem}.face-review-toolbar>p{flex-basis:100%;margin:0}.face-card-warning{border-color:#d9aa63}.face-card{flex-direction:column;display:flex}.face-card .face-image{flex:none}.face-warnings{flex-wrap:wrap;gap:.25rem;padding:0 .6rem .3rem;display:flex}.face-warnings span{color:#805620;background:#fbefd9;border-radius:3px;padding:.25rem .35rem;font-size:.6rem;line-height:1.2}.face-card .card-actions{flex-wrap:wrap;gap:.5rem;margin-top:auto;padding:.6rem;font-size:.65rem}.merge-panel{border:1.5px solid var(--line);border-radius:9px;margin:1.3rem 0 1.4rem;padding:1.25rem}.merge-panel h3{margin-bottom:.3rem}.merge-panel p{color:var(--quiet);font-size:.8rem}.merge-panel .input-row{max-width:500px}.merge-heading{justify-content:space-between;gap:1rem;display:flex}.suggestion-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;margin:.8rem 0 1.2rem;display:grid}.suggestion-card{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fafaf7;border-radius:5px;padding:0;position:relative;overflow:hidden}.suggestion-card:hover,.merge-results button:hover{border-color:var(--sage);background:#eef3ec}.suggestion-card.selected{border-color:var(--deep);box-shadow:0 0 0 2px var(--deep)}.suggestion-check{z-index:1;color:#fff;background:#ffffffd9;border:2px solid #fff;border-radius:5px;place-items:center;width:24px;height:24px;font-size:.85rem;font-weight:700;display:grid;position:absolute;top:.45rem;right:.45rem}.suggestion-card.selected .suggestion-check{background:var(--deep)}.merge-selection-bar{z-index:5;background:#f1f5ef;border:1px solid #d3e0d1;border-radius:5px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;padding:.6rem .75rem;font-size:.8rem;display:flex;position:sticky;top:0}.merge-selection-bar>div{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.merge-selection-bar .text-button{font-size:.75rem}.merge-selection-bar .primary-button{padding:.55rem .7rem}.suggestion-faces{height:84px;display:flex;overflow:hidden}.suggestion-faces img{object-fit:cover;flex:1;width:33.33%;height:100%}.suggestion-label{padding:.65rem;display:block}.suggestion-label strong,.suggestion-label small{display:block}.suggestion-label strong{font-size:.8rem}.suggestion-label small{color:var(--quiet);margin-top:.2rem;font-size:.7rem}.merge-search-label{margin:.9rem 0 .4rem;font-size:.75rem;font-weight:700;display:block}.merge-results{border:1px solid var(--line);border-radius:4px;max-height:230px;margin-top:.3rem;overflow:auto}.merge-results button{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:#fff;align-items:center;gap:.7rem;padding:.4rem .7rem;display:flex}.merge-results img{object-fit:cover;border-radius:50%;width:36px;height:36px}.merge-results span{flex:1}.merge-results small{color:var(--quiet)}.compare-backdrop{z-index:50;background:#17251caa;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.compare-dialog{background:#fff;border-radius:8px;width:min(850px,100%);max-height:95vh;padding:1.5rem;overflow:auto;box-shadow:0 18px 60px #17251c55}.compare-header,.compare-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.compare-header .eyebrow{margin-bottom:.3rem}.batch-compare{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1rem;display:grid}.batch-target,.batch-sources article{border:1px solid var(--line);border-radius:5px;padding:.8rem}.batch-target strong,.batch-target small,.batch-sources strong,.batch-sources small{display:block}.batch-target small,.batch-sources small{color:var(--quiet);margin:.3rem 0 .8rem}.batch-sources{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;max-height:min(54vh,490px);display:grid;overflow:auto}.batch-source-title{justify-content:space-between;gap:.5rem;display:flex}.batch-source-title .text-button{white-space:nowrap;align-self:start}.compare-faces{gap:.35rem;height:130px;display:flex}.compare-faces img{object-fit:cover;background:var(--cream);width:calc(33.33% - .24rem);height:100%}.compare-note{background:var(--cream);margin:1rem 0;padding:.8rem;font-size:.8rem;line-height:1.6}.compare-actions{justify-content:flex-end}.invitation-panel{gap:1.2rem;max-width:760px;display:grid}.panel-card{padding:1.5rem}.panel-card h2{font-family:Georgia,serif;font-size:1.8rem}.panel-card p{color:var(--quiet);font-size:.85rem}.invite-result{background:#ecf4eb;border:1px solid #d0e1d1;gap:.5rem;margin-top:1rem;padding:1rem;font-size:.8rem;display:grid}.invite-result input{width:100%}.invite-result label{font-weight:700}.invite-share-row{flex-wrap:wrap;gap:.5rem;display:flex}.invite-share-row input{flex:220px;min-width:0}.invite-result button{background:var(--deep);color:#fff;border:0;justify-self:start;padding:.5rem .8rem}.invite-qr{justify-items:start;gap:.5rem;margin-top:.5rem;display:grid}.invite-qr img{background:#fff;max-width:100%;height:auto}.invitation-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.invitation-row small{color:var(--quiet);margin-top:.25rem;font-size:.72rem;display:block}@media (max-width:900px){.welcome-page{grid-template-columns:1fr}.welcome-photo{min-height:35vh;font-size:2rem}.welcome-content{width:min(560px,90%);padding:3rem 0}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-shell{grid-template-columns:1fr}.admin-sidebar{z-index:10;flex-direction:row;justify-content:space-between;align-items:center;gap:0;padding:.8rem 1rem;position:sticky;top:0}.admin-sidebar nav{display:flex}.admin-sidebar nav button{padding:.7rem}.admin-sidebar .brand small,.sidebar-bottom{display:none}.admin-main{padding:1.5rem}.people-layout{grid-template-columns:220px minmax(0,1fr)}}@media (max-width:600px){.privacy-top-row{flex-wrap:wrap}.brand small{display:none}.gallery-hero{padding:5rem 1.3rem 4rem}.gallery-hero:after{font-size:8rem;top:20%;right:0}.gallery-section{padding:3rem 1rem 5rem}.section-heading{align-items:start}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.photo-card{aspect-ratio:1}.lightbox{padding:1rem}.download-button{font-size:.7rem}.welcome-content h1{font-size:3.7rem}.invite-form .input-row{flex-direction:column}.admin-sidebar .brand{margin:0;font-size:1.1rem}.admin-sidebar nav button{gap:0;font-size:.8rem}.admin-sidebar nav button span{display:none}.admin-main{padding:1rem}.admin-top h1{font-size:2rem}.admin-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.admin-photo-image{height:115px}.photo-preview-dialog{width:98vw;max-height:96vh;padding:.7rem}.photo-preview-image{height:55vh}.photo-preview-actions,.photo-preview-navigation{justify-content:center}.people-layout{grid-template-columns:1fr}.people-list{max-height:220px}.face-workspace{padding:1rem}.face-workspace-head{flex-direction:column}.review-navigation{flex-flow:wrap;justify-content:space-between;align-items:center;width:100%}.review-next-footer .outline-button{width:100%}.face-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar-right{width:100%}.toolbar-right button{flex:1}.input-row{flex-wrap:wrap}.batch-compare,.batch-sources{grid-template-columns:1fr}.compare-faces{height:95px}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#262626;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#d4d4d4;--chart-2:#737373;--chart-3:#525252;--chart-4:#404040;--chart-5:#262626;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(90.952% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(15.204% 0 -.00000596046);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(84.92% 0 -.0000119209);--chart-2:lab(48.496% 0 0);--chart-3:lab(34.924% 0 0);--chart-4:lab(27.036% 0 0);--chart-5:lab(15.204% 0 -.00000596046);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
html{font-family:var(--font-body), var(--font-thai), sans-serif}body{background:var(--paper);color:var(--ink);font-family:var(--font-body), var(--font-thai), sans-serif}h1,h2,h3{font-family:var(--font-name), var(--font-thai), Georgia, serif;font-weight:500}button,input,select{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[data-slot=dialog-content]:focus-visible{outline:3px solid var(--violet-deep);outline-offset:3px}::selection{background:var(--cream);color:var(--ink)}.eyebrow,.brand,.count-badge,.panel-card h2,.people-list h2,.empty-state span{font-family:var(--font-body), var(--font-thai), sans-serif}.eyebrow{color:var(--violet-deep);letter-spacing:.03em;font-size:.92rem}.small-muted{color:var(--quiet)}.error{color:#8a3159;background:#fff0f6;border-color:#efb5ce}.notice{color:#275b54;background:#effaf7;border-color:#afd7ce}.primary-button,.invite-form .input-row button,.download-button{border:2px solid var(--violet-deep);background:var(--violet-deep);color:#fff;border-radius:7px;min-height:42px;font-weight:500;box-shadow:0 4px 14px #49352e0a}.outline-button,.person-pill,.pager button{border:1.5px solid var(--violet);color:var(--violet-deep);background:#fff;border-radius:7px}.outline-button:hover:not(:disabled),.person-pill:not(.active):hover:not(:disabled),.pager button:hover:not(:disabled){background:#f7f1f0}input:not([type=checkbox]):not([type=file]),select,textarea{border-color:var(--input);color:var(--ink)}.lede{max-width:500px;color:var(--quiet);line-height:1.75}.invite-form{margin-top:1.6rem;padding:1.15rem}.invite-form label{color:var(--violet-deep);font-family:var(--font-body), var(--font-thai), sans-serif;font-size:1.1rem}.invite-form input{border:1.5px solid var(--input);background:#fff;min-height:45px}.invite-form .input-row button{white-space:nowrap}.privacy-link{color:var(--violet-deep)}.brand{color:var(--violet-deep);letter-spacing:0;font-size:1.55rem;font-weight:500}.brand small{border-color:var(--line);color:var(--violet);font-family:var(--font-body), var(--font-thai), sans-serif;letter-spacing:.04em;font-size:1.05rem}.header-actions{color:var(--violet-deep);align-items:center;gap:1.2rem;font-weight:500;display:flex}.text-button{color:var(--violet-deep)}.hero-rule{background:var(--pink);height:3px}.gallery-section{padding-top:3.5rem}.section-heading{border-bottom:2px solid var(--line);padding-bottom:1.4rem}.section-heading h2{color:var(--violet-deep)}.gallery-face-disclaimer{color:var(--quiet);margin:.85rem 0 1.25rem;font-size:.95rem;line-height:1.6}.grid-density-control{border:1px solid var(--line);background:#f7f1f0;border-radius:8px;align-items:center;gap:.2rem;padding:.2rem;display:inline-flex}.grid-density-button{width:2.75rem;height:2.75rem;color:var(--violet-deep);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;padding:0;display:grid}.grid-density-button svg{width:1.75rem;height:1rem}.grid-density-button:hover{background:var(--line)}.grid-density-button:focus-visible{outline:2px solid var(--violet-deep);outline-offset:2px}.face-picker-trigger{border:1px solid var(--violet-deep);min-height:2.75rem;padding-inline:1.2rem;font-size:1rem;font-weight:500;box-shadow:0 4px 14px #49352e0a}.face-picker-trigger:hover{box-shadow:0 4px 14px #49352e0a}.no-face-filter-trigger{border:1px solid var(--violet);min-height:2.75rem;padding-inline:1rem;font-size:1rem;font-weight:500;box-shadow:0 4px 14px #49352e0a}.no-face-filter-trigger[aria-pressed=true]{border-color:var(--violet-deep);color:var(--violet-deep);background:#f7f1f0}.no-face-filter-trigger:hover{box-shadow:0 4px 14px #49352e0a}.count-badge{color:var(--violet-deep);border-color:var(--violet);background:#f7f1f0;border-radius:6px;font-size:1rem}.person-face-card{border:2px solid var(--line);color:var(--ink);border-radius:9px;box-shadow:0 4px 14px #49352e0a}.person-face-card.active{border-color:var(--violet-deep);background:#f7f1f0;box-shadow:0 4px 14px #49352e0a}.person-face-card img{border-radius:4px}.person-face-card{justify-content:space-between}.person-face-card span{font-size:.8rem}.photo-person-picker-trigger{align-items:center;gap:.5rem;display:inline-flex}.photo-person-picker-trigger img{object-fit:cover;border-radius:4px;width:26px;height:26px}.face-picker-dialog{background:#fff;width:min(760px,100vw - 1.5rem);max-width:760px;max-height:min(85vh,780px);overflow:auto}.face-picker-suggestions{border:1px solid var(--line);background:#f7f1f0;border-radius:8px;padding:.7rem}.face-picker-suggestions p{color:var(--quiet);margin:.5rem 0 0;font-size:.8rem}.face-picker-section-heading{flex-wrap:wrap;align-items:baseline;gap:.3rem .65rem;display:flex}.face-picker-section-heading small{color:var(--quiet)}.face-picker-hint{color:var(--violet-deep);font-weight:500}.face-picker-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.65rem;max-height:55vh;padding:.2rem;display:grid;overflow:auto}.face-picker-option{border:2px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;flex-direction:column;align-items:center;gap:.2rem;padding:.4rem;display:flex}.face-picker-option.active,.face-picker-option:focus-visible{border-color:var(--violet-deep);outline:2px solid var(--violet-deep);outline-offset:2px}.face-picker-option img,.face-picker-placeholder{aspect-ratio:1;object-fit:cover;border-radius:5px;width:100%}.face-picker-placeholder{background:#f7f1f0;place-items:center;font-size:2rem;display:grid}.face-picker-option strong{overflow-wrap:anywhere;font-size:.78rem}.face-picker-option small{font-size:.7rem}.person-full-id{color:var(--quiet);margin:.3rem 0 .7rem;font-size:.74rem}.person-full-id summary{cursor:pointer}.person-full-id code{overflow-wrap:anywhere;margin:.35rem .5rem .2rem 0;display:inline-block}.person-pill.active{border-color:var(--violet-deep);background:var(--violet-deep);color:#fff}.person-pill.active:hover:not(:disabled){color:#fff;background:#985e4f;border-color:#985e4f}.people-combination{color:var(--violet-deep)}.people-combination select{border-color:var(--violet);color:var(--ink)}.photo-grid{align-items:start;gap:1rem}.photo-column{flex-direction:column;gap:1rem;min-width:0;display:flex}.photo-card{aspect-ratio:auto;background:var(--muted);width:100%;box-shadow:none;cursor:zoom-in;border:0;border-radius:14px;outline:0;display:block}.photo-card img{width:100%;height:auto;display:block}.photo-card:hover img{filter:brightness(.94);transform:none}.photo-card:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.photo-card span{opacity:0;background:#00000060;border-radius:999px;padding:.25rem .5rem;transition:opacity .15s}.photo-card:hover span,.photo-card:focus-visible span{opacity:1}.empty-state{border:1px solid var(--line);background:#f7f1f0}.empty-state span{color:var(--pink)}.selfie-search{border:2px solid var(--violet-deep);background:linear-gradient(110deg,#f7f1f0 0%,#fff0f9 70%,#fff9fd 100%);box-shadow:0 6px 24px #e8d7d2}.selfie-search h2{color:var(--violet-deep)}.person-picker-sheet{background:var(--card);border:0;gap:0;width:min(100vw,440px);max-width:440px}.person-picker-header,.person-picker-footer{background:#fff}.person-picker-header{border:0;padding:2rem 3rem 1rem 1.5rem}.person-picker-header [data-slot=sheet-title]{font-family:var(--font-body), var(--font-thai), sans-serif;color:var(--ink);font-size:1.25rem;font-weight:500}.person-picker-match-hint{color:var(--quiet);background:0 0;border:0;flex-basis:100%;margin:.25rem 0 0;padding:0;font-size:.75rem;font-weight:400;line-height:1.6}.person-picker-scroll{background:var(--card);overscroll-behavior:contain;padding:1rem 1.5rem 1.5rem}.person-picker-scroll .person-face-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem .8rem}.person-picker-scroll .person-face-card{min-width:0;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;gap:.6rem;padding:0}.person-face-portrait{aspect-ratio:1;background:var(--muted);border-radius:50%;place-items:center;width:100%;display:grid;position:relative}.person-picker-scroll .person-face-card img{aspect-ratio:1;object-fit:cover;border-radius:50%;width:100%;height:100%}.person-picker-scroll .person-face-card.active .person-face-portrait{outline:2px solid var(--primary);outline-offset:3px}.person-picker-scroll .person-face-card:hover .person-face-portrait{filter:brightness(.94)}.person-face-check{border:2px solid var(--card);background:var(--primary);width:22px;height:22px;color:var(--primary-foreground);border-radius:50%;position:absolute;bottom:-2px;right:-2px}.person-picker-scroll .person-face-card span{color:var(--quiet);font-size:.7rem;font-weight:400}.person-picker-options{background:var(--muted);border:0;border-radius:16px;margin:0 1.5rem 1rem;padding:1rem}.person-picker-options select{border:1px solid var(--border);background:var(--card);border-radius:8px;font-weight:400}.person-picker-footer{border-top:1px solid var(--line);flex-flow:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin:0;padding:1rem 1.5rem}.person-picker-footer-actions{align-items:center;gap:.5rem;display:flex}.person-picker-footer span{color:var(--quiet);font-size:.78rem}.photo-lightbox{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:0;width:min(94vw,1200px);max-width:none;max-height:94vh;padding:0;display:flex;overflow:hidden;box-shadow:0 20px 70px #37221d90}.photo-lightbox-media{touch-action:pan-y;background:#221916;place-items:center;width:100%;height:min(68dvh,760px);min-height:min(32dvh,260px);display:grid;position:relative;overflow:hidden}.photo-viewer-frame>img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.photo-viewer-frame>.photo-lightbox-thumbnail{object-fit:cover;filter:blur(18px)brightness(.55);transform:scale(1.05)}.photo-lightbox-preview{opacity:0;transition:opacity .22s}.photo-lightbox-preview.is-ready{opacity:1}.photo-viewer-loading{bottom:max(5.5rem, calc(env(safe-area-inset-bottom) + 4.5rem));opacity:0;pointer-events:none;background:#ffffff16;border-radius:999px;width:56px;height:2px;animation:.18s .35s forwards photo-loader-appear;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.photo-viewer-loading-track{border-radius:inherit;background:#fff9;width:40%;height:100%;animation:1.4s ease-in-out infinite photo-loader-travel;display:block}@keyframes photo-loader-appear{to{opacity:1}}@keyframes photo-loader-travel{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media (prefers-reduced-motion:reduce){.photo-viewer-loading{opacity:1;animation:none}.photo-viewer-loading-track{margin-inline:auto;animation:none}}.photo-lightbox-status{z-index:1;color:#fff;text-align:center;background:#221916bb;border:1px solid #fff5;border-radius:12px;flex-direction:column;align-items:center;gap:.75rem;max-width:calc(100% - 2rem);padding:1rem 1.25rem;display:flex;position:relative}.photo-lightbox-status>svg{width:1.5rem;height:1.5rem}.photo-loading-icon{animation:1s linear infinite photo-loading-spin}@keyframes photo-loading-spin{to{transform:rotate(360deg)}}.photo-lightbox [data-slot=button]{z-index:2;color:var(--violet-deep)}.lightbox-footer{color:var(--ink);background:#fff;margin:0;padding:.85rem 1.2rem}.lightbox-footer-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.photo-people-trigger{min-height:2.75rem}.lightbox-navigation-hint{color:var(--muted-foreground);font-size:.86rem}.mobile-navigation-hint{display:none}@media (max-width:640px){.desktop-navigation-hint{display:none}.mobile-navigation-hint{display:inline}}.photo-person-choice{flex-direction:column;align-items:stretch}.photo-person-choice p{margin:0;font-weight:500}.photo-person-choice>div{flex-wrap:wrap;gap:.5rem;display:flex}.photo-person-choice>div [data-slot=button]{flex:1}.download-button{border-color:var(--violet-deep);background:var(--violet-deep);color:#fff;flex:none;justify-content:center;align-items:center;width:44px;height:44px;min-height:44px;padding:0;display:inline-flex}.download-button svg{width:20px;height:20px}.download-button:hover{background:#985e4f}.login-card{width:auto;box-shadow:none;padding:2.5rem}.login-card h1{color:var(--violet-deep)}.login-card form input{min-height:42px}.admin-shell{background:#fff;gap:0;min-height:100vh}.admin-sidebar{color:var(--violet-deep);border-right:2px solid var(--violet);background:#f7f1f0}.admin-sidebar .brand{color:var(--violet-deep);margin-left:.55rem;font-size:1.3rem}.admin-sidebar .brand small{color:var(--violet);border-color:var(--line);font-size:.8rem}.admin-sidebar nav button{color:#79544a;border:1px solid #0000;border-radius:7px;font-weight:500}.admin-sidebar nav button.active,.admin-sidebar nav button:hover{color:var(--violet-deep);border-color:var(--violet);background:#fff;box-shadow:0 4px 14px #49352e0a}.sidebar-bottom{color:var(--violet-deep);margin-top:0}.admin-main{background:#f7f1f0;max-width:none;padding:0 clamp(1rem,3vw,3rem) 3rem}.admin-top h1{color:var(--violet-deep)}.admin-top>div:first-child{flex:1;min-width:0}.admin-top .eyebrow{color:var(--pink)}.toolbar select,.toolbar input{border-color:var(--input);color:var(--ink);background:#fff}.admin-label-editor{gap:.45rem;margin:1.5rem 0;display:grid}.admin-label-editor .input-row{gap:.6rem;display:flex}.admin-label-editor input{border:1px solid var(--input);min-width:0;color:var(--ink);background:#fff;border-radius:4px;flex:1;padding:.8rem .9rem}.admin-label-editor small{color:var(--quiet)}.admin-label-editor .guest-visibility-option,.person-create-menu .guest-visibility-option{cursor:pointer;align-items:center;gap:.55rem;display:flex}.admin-label-editor .guest-visibility-option input,.person-create-menu .guest-visibility-option input{width:1rem;min-width:0;height:1rem;accent-color:var(--ink);flex:none;margin:0;padding:0}.merge-label-choice{border:1px solid var(--line);border-radius:5px;gap:.55rem;margin:1rem 0;padding:.9rem;display:grid}.merge-label-choice label{cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:.6rem;display:flex}.merge-label-choice input[type=radio]{flex:none}.admin-photo-card,.face-card,.people-list,.face-workspace,.panel-card,.suggestion-card,.compare-dialog,.photo-preview-dialog,.login-card{border:1.5px solid var(--line);background:#fff;border-radius:9px;box-shadow:0 4px 14px #49352e0a}.admin-photo-card:hover,.face-card:hover,.suggestion-card:hover{border-color:var(--violet)}.status{color:#835c24;background:#fff3dc}.status.published{color:#3b7770;background:#e4f5f1}.status.failed{color:#a43b62;background:#ffedf4}.review-history-card{border-color:var(--line);border-radius:9px;box-shadow:0 4px 14px #49352e0a}.invite-result{border-color:var(--sage);background:var(--blue-pale)}.suggestion-card.selected{border-color:var(--violet-deep);background:#f7f1f0}.merge-results button,.batch-target,.batch-sources article{border-color:var(--line);background:#f7f1f0}.merge-panel,.compare-note{background:#f7f1f0}.photo-preview-dialog::backdrop{background:#39231ec9}.admin-photo-image,.face-image{background:var(--cream)}.admin-photo-image input,.face-image input{accent-color:var(--violet-deep)}.person-row.selected{background:#f7f1f0}.face-card-warning{border-color:#efc595}.merge-selection-bar{border-color:var(--violet);background:#f7f1f0}.panel-card h2{color:var(--violet-deep)}.photo-preview-dialog{border:1px solid var(--line)}.photo-preview-header,.invitation-row{border-color:var(--line)}.compare-backdrop{background:#39231e9c}.privacy-shell{background:var(--paper);min-height:100vh;padding:clamp(.75rem,3vw,2rem)}.privacy-page{max-width:none;min-height:0;padding:clamp(1.35rem,5vw,3.5rem)}.privacy-page h1{color:var(--violet-deep)}.privacy-page h2{border-bottom:1px solid var(--line);color:var(--sage);padding-bottom:.35rem}.privacy-page p{line-height:1.85}@media (max-width:900px){.admin-sidebar{border-right:0;border-bottom:1px solid var(--line)}.admin-main{padding-top:1.6rem}}@media (max-width:650px){.invite-form{padding:.8rem}.invite-form .input-row{flex-direction:column}.gallery-section{padding-top:2.5rem}.section-heading{flex-direction:column;align-items:start}.section-heading-actions{justify-content:flex-start}.count-badge{align-self:flex-start}.admin-sidebar nav{max-width:calc(100vw - 95px);overflow-x:auto}.admin-sidebar nav button{min-width:36px}.photo-lightbox{width:calc(100vw - 1rem);max-width:none}.lightbox-footer{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.photo-lightbox-preview{transition:none}.photo-loading-icon{animation:none}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.wedding-surface{background:0 0;min-width:0}.wedding-header{background:0 0;align-items:center;gap:1rem;padding:1.5rem clamp(1.2rem,5vw,5rem);display:flex}.wedding-header-title{font-family:var(--font-name), Georgia, serif;color:var(--primary);font-size:1.6rem;font-style:italic;font-weight:400}.wedding-header-actions{margin-left:auto}.header-actions{gap:1rem;font-size:.85rem;font-weight:400}.eyebrow{letter-spacing:.23em;color:var(--quiet);font-size:.65rem;font-weight:500}.welcome-page{background:var(--paper);min-height:100svh;padding:0;display:block}.welcome-surface{min-height:100svh;position:relative}.welcome-content{text-align:center;width:min(100%,760px);margin:0 auto;padding:1.5rem 1.5rem 6rem;display:block}.welcome-copy{width:100%}.wedding-sprig{width:150px;height:auto;margin:0 auto 1.5rem}.welcome-names{font-family:var(--font-name), Georgia, serif;letter-spacing:-.04em;color:var(--ink);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.15em;font-size:clamp(3.5rem,7vw,6rem);font-weight:400;line-height:1.15;display:flex}.welcome-amp{color:var(--pink);font-size:.65em;font-style:italic}.welcome-date{color:var(--quiet);letter-spacing:.08em;justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0 2.5rem;font-size:.8rem;display:flex}.welcome-date:before,.welcome-date:after{content:"";background:var(--line);width:32px;height:1px}.welcome-content h1{letter-spacing:0;margin-bottom:.75rem;font-size:clamp(1.45rem,3vw,2rem);font-weight:400;line-height:1.6}.welcome-content h1 span{color:var(--primary)}.welcome-copy .lede{max-width:440px;margin:0 auto;font-size:.9rem;line-height:1.9}.invite-form{width:min(100%,480px);box-shadow:none;text-align:left;background:0 0;border:0;margin:2rem auto 0;padding:0}.invite-form label{color:var(--quiet);font-size:.8rem;font-weight:400}.invite-form .input-row{gap:.65rem}.invite-form input{background:var(--card);border:1px solid var(--border);border-radius:10px;min-height:48px;font-size:.8rem}.album-button,.primary-button,.invite-form .input-row button,.download-button{background:var(--primary);color:var(--primary-foreground);box-shadow:none;border:0;border-radius:999px;font-weight:400}.invite-form .input-row button{min-height:48px;padding-inline:1.4rem}.primary-button:hover,.invite-form .input-row button:hover{background:var(--deep)}.welcome-copy>.small-muted{margin:1.25rem 0 .3rem;font-size:.7rem}.welcome-copy>.privacy-link{font-size:.7rem}.welcome-copy>.error{max-width:480px;margin:1rem auto}.site-shell{background:var(--paper);box-shadow:none;border:0;border-radius:0;margin:0}.site-header{max-width:1440px;margin:0 auto}.gallery-hero{background:var(--paper);text-align:center;min-height:0;padding:4rem 1.5rem 4.5rem;display:block;position:relative}.gallery-hero:after{display:none}.gallery-hero-copy{max-width:800px;margin-inline:auto}.gallery-hero h1{letter-spacing:0;margin:1rem 0;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:400;line-height:1.4}.gallery-hero h1 em{color:var(--primary);font-style:normal}.gallery-hero p:not(.eyebrow){color:var(--quiet);font-size:.85rem;line-height:1.8}.hero-rule{background:var(--gold);width:64px;height:1px;margin:2rem auto 0}.gallery-section{background:var(--card);border-top:0;max-width:1600px;padding:2rem clamp(1rem,3vw,3rem) 4rem}.section-heading{border-bottom:0;align-items:center;margin-bottom:.75rem;padding-bottom:0}.section-heading h2{font-family:var(--font-body), var(--font-thai), sans-serif;letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.25rem,2vw,1.6rem);font-weight:500}.section-heading-actions{gap:.5rem}.grid-density-control{background:var(--muted);border:0;border-radius:999px;padding:0}.grid-density-button{width:2.25rem;height:2.25rem;color:var(--quiet);border-radius:50%}.grid-density-button svg{width:1.3rem}.grid-density-button[aria-pressed=true]{background:var(--ink);color:var(--card)}.gallery-face-disclaimer{margin:0 0 1.5rem;font-size:.75rem}.gallery-face-disclaimer summary{cursor:pointer;width:fit-content}.gallery-face-disclaimer p{max-width:720px;margin:.5rem 0 0}.outline-button,.person-pill,.pager button,.count-badge,.face-picker-trigger,.no-face-filter-trigger{box-shadow:none;border-width:1px;border-radius:999px;font-weight:400}.face-picker-trigger:hover,.no-face-filter-trigger:hover,.person-face-card,.person-face-card.active{box-shadow:none}.selfie-search{background:var(--muted);box-shadow:none;border:0;border-radius:16px}.selfie-search[data-state=closed]{margin-bottom:1.5rem;padding:.6rem 1rem}.selfie-search h2{font-family:var(--font-body), var(--font-thai), sans-serif;align-items:center;gap:.6rem;font-weight:500;display:flex}.selfie-search h2 svg{flex-shrink:0;width:18px;height:18px}.selfie-search.selfie-search-primary{width:min(100%,760px);box-shadow:none;background:0 0;border:0;border-radius:0;margin:0 auto 3.5rem;padding:0}.selfie-search-primary h2{color:var(--foreground);text-align:center;margin:0;font-size:1.4rem;font-weight:400;display:block}.selfie-search-primary .photo-search-description{color:var(--muted-foreground);text-align:center;margin:.6rem 0 1.5rem;font-size:.85rem}.photo-search-bar{border:1px solid var(--border);background:var(--card);border-radius:999px;align-items:center;gap:.5rem;padding:.5rem;transition:border-color .2s,box-shadow .2s;display:flex}.photo-search-bar:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent)}.photo-search-bar .photo-search-upload{text-align:left;border-radius:999px;flex:1;justify-content:flex-start;gap:.9rem;min-width:0;height:52px;padding-inline:1.1rem}.photo-search-upload-copy{flex-direction:column;gap:.1rem;min-width:0;display:flex}.photo-search-filename{text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);font-size:.7rem;font-weight:400;overflow:hidden}.photo-search-thumb{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.photo-search-bar .photo-search-submit{border-radius:999px;flex-shrink:0;height:52px;padding-inline:1.5rem}.photo-search-consent{color:var(--muted-foreground);cursor:pointer;justify-content:center;align-items:center;gap:.6rem;margin:1rem 0 0;font-size:.75rem;font-weight:400;line-height:1.7;display:flex}.selfie-search-primary .photo-search-hint{color:var(--muted-foreground);text-align:center;margin:.4rem 0 0;font-size:.7rem}.selfie-search-primary>[data-slot=alert]{margin-top:1.25rem}@media (max-width:650px){.selfie-search.selfie-search-primary{margin-bottom:2.5rem}.photo-search-bar .photo-search-upload{gap:.6rem;padding-inline:.65rem}.photo-search-bar .photo-search-submit{width:48px;height:48px;padding:0}.photo-search-submit span{display:none}.gallery-section .section-heading{align-items:stretch;gap:.75rem}.gallery-section .section-heading-actions{justify-content:flex-start}.photo-grid,.photo-column{gap:.6rem}.photo-card{border-radius:10px}}.photo-lightbox[data-slot=dialog-content]{--foreground:#f5f5f5;--muted-foreground:#c5c5c5;--accent:#ffffff18;--accent-foreground:#fff;--tw-translate-x:0px;--tw-translate-y:0px;width:100vw;max-width:none;height:100dvh;max-height:none;color:var(--foreground);box-shadow:none;background:#111;border:0;border-radius:0;animation:.22s ease-out guest-fade-in;inset:0;transform:none}.lightbox-topbar{padding:max(1rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) 2rem max(1.5rem, env(safe-area-inset-left));color:var(--muted-foreground);pointer-events:none;background:linear-gradient(#111b,#1110);justify-content:space-between;align-items:center;font-size:.75rem;display:flex;position:absolute;top:0;left:0;right:0}.lightbox-topbar-actions{pointer-events:auto;align-items:center;gap:.5rem;display:flex}.photo-lightbox :is([data-slot=button],[data-slot=sheet-trigger]){min-width:44px;min-height:44px;color:var(--foreground)}.photo-lightbox .photo-lightbox-media{touch-action:pinch-zoom;background:0 0;height:100%;min-height:0;position:absolute;inset:0}.photo-viewer-viewport{touch-action:pan-y pinch-zoom;position:absolute;inset:0;overflow:hidden}.photo-viewer-rail{will-change:transform;height:100%;display:flex}.photo-viewer-frame{flex:0 0 100%;place-items:center;min-width:0;height:100%;display:grid;position:relative;overflow:hidden}.photo-lightbox[data-slot=dialog-content]:focus-visible{outline:none}.photo-lightbox :is(button,a){transition-property:background-color,color}.photo-lightbox :is(button,a):focus-visible{outline-offset:3px;box-shadow:none;border-color:#0000;outline:1px solid #ffffffb3}.archive-confirmation[data-slot=dialog-content]{background:var(--background);width:min(440px,100vw - 2.5rem);max-width:none;box-shadow:0 24px 80px color-mix(in srgb, var(--ink) 12%, transparent);border-radius:1.5rem;gap:1.5rem;padding:1.75rem}.archive-confirmation:focus-visible{outline:none}.archive-confirmation [data-slot=dialog-title]{font-family:var(--font-body), var(--font-thai), sans-serif;font-size:1.2rem;font-weight:500;line-height:1.5}.archive-confirmation [data-slot=dialog-description]{line-height:1.7}.archive-confirmation-file{background:color-mix(in srgb, var(--muted) 55%, var(--background));border-radius:1rem;align-items:center;gap:1rem;padding:1.1rem 1.2rem;display:flex}.archive-confirmation-file>svg{width:1.5rem;height:1.5rem;color:var(--muted-foreground);stroke-width:1.3px;flex-shrink:0}.archive-confirmation-file>div{min-width:0}.archive-confirmation-count{margin:0;font-size:1.2rem;font-weight:500;line-height:1.5}.archive-confirmation-count span{font-size:.9rem;font-weight:400}.archive-confirmation-filename{color:var(--muted-foreground);overflow-wrap:anywhere;margin:.2rem 0 0;font-size:.75rem;line-height:1.6}.archive-confirmation [data-slot=dialog-footer]{background:0 0;border:0;flex-direction:row;justify-content:flex-end;gap:.5rem;margin:0;padding:0}.archive-confirmation [data-slot=dialog-footer] button{border-radius:999px;min-height:44px;padding-inline:1.2rem}@media (max-width:400px){.archive-confirmation[data-slot=dialog-content]{padding:1.5rem}}.photo-lightbox .photo-viewer-frame>img{padding:max(4.5rem, env(safe-area-inset-top)) 4.5rem max(4.5rem, env(safe-area-inset-bottom))}.photo-lightbox .photo-lightbox-thumbnail{object-fit:contain;filter:blur(8px);transform:none}.photo-viewer-frame:has(.is-ready) .photo-lightbox-thumbnail{opacity:0;transition:opacity 0s linear .22s}.photo-lightbox .lightbox-footer{padding:1.5rem 4rem max(1rem, env(safe-area-inset-bottom));color:var(--foreground);pointer-events:none;background:linear-gradient(#1110,#111b);border:0;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-lightbox .lightbox-footer-actions{pointer-events:auto}.lightbox-navigation{pointer-events:none;position:absolute;inset:0}.lightbox-navigation>button{pointer-events:auto;position:absolute;top:50%;translate:0 -50%}.lightbox-navigation>button:first-child{left:1rem}.lightbox-navigation>button:last-child{right:1rem}@media (max-width:650px){.photo-lightbox .photo-viewer-frame>img{padding-inline:0}.lightbox-topbar{padding-inline:max(.75rem, env(safe-area-inset-left)) max(.75rem, env(safe-area-inset-right))}.lightbox-navigation>button{top:auto;bottom:max(1rem, env(safe-area-inset-bottom));translate:none}.lightbox-navigation>button:first-child{left:max(.5rem, env(safe-area-inset-left))}.lightbox-navigation>button:last-child{right:max(.5rem, env(safe-area-inset-right))}}.photo-lightbox .wedding-header{background:var(--card);padding:.9rem 1.2rem}.photo-lightbox .wedding-header-title{font-family:inherit;font-size:.85rem;font-style:normal}.photo-close-button{width:36px;height:36px;color:var(--quiet);background:var(--muted);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.photo-close-button svg{width:18px;height:18px}.admin-login{background:var(--paper);padding:2rem 1.5rem}.admin-login-surface{width:min(100%,420px)}.login-card{width:100%;box-shadow:none;background:0 0;border:0;padding:2rem 0}.login-card h1{font-size:2rem;font-weight:400}.admin-sidebar{background:var(--paper);border-right:1px solid var(--line)}.admin-sidebar .brand{font-family:var(--font-name), Georgia, serif;margin:0;font-size:1.5rem;font-weight:400;line-height:1.25}.admin-sidebar .brand small{font-family:var(--font-body), sans-serif;letter-spacing:.12em;border:0;margin-top:.8rem;font-size:.65rem}.admin-sidebar nav button{border:0;border-radius:10px;font-weight:400}.admin-sidebar nav button.active,.admin-sidebar nav button:hover{background:var(--secondary);box-shadow:none}.admin-main{background:var(--card);padding-top:2.5rem}.admin-top h1{color:var(--ink);font-size:2rem;font-weight:400}.panel-card,.people-list,.face-workspace,.invite-result{box-shadow:none;border-width:1px;border-radius:14px}.privacy-shell{background:var(--paper);padding:0 clamp(1.25rem,5vw,5rem)}.privacy-shell>.wedding-header{width:min(100%,1120px);margin-inline:auto;padding:1.5rem 0}.privacy-surface{width:min(100%,1120px);margin-inline:auto}.privacy-page{background:0 0;grid-template-columns:280px minmax(0,1fr);gap:2rem clamp(3rem,7vw,6rem);padding:2rem 0 4rem;display:grid}.privacy-top-row{grid-column:1/-1;align-items:center;margin:0}.privacy-heading,.privacy-document{min-width:0}.privacy-back-top{color:var(--quiet);margin:0;font-size:.85rem;text-decoration:none;transition:color .18s}.privacy-back-top:hover{color:var(--ink)}.privacy-back-top svg{stroke-width:1.5px;width:17px;height:17px}.privacy-page h1{color:var(--ink);margin:0;font-size:clamp(1.8rem,3vw,2.25rem);line-height:1.45}.privacy-page h2{color:var(--ink);font-family:var(--font-body), var(--font-thai), sans-serif;border:0;margin:2rem 0 .65rem;padding:0;font-size:1.05rem;font-weight:500}.privacy-page p{color:var(--quiet);margin:0;font-size:.95rem;line-height:1.85}.privacy-page .privacy-intro{color:var(--ink);font-size:1rem}.privacy-page .small-muted{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.5rem;font-size:.8rem}@media (max-width:900px){.privacy-page{grid-template-columns:1fr;row-gap:1.5rem;padding-top:1rem}}@media (max-width:650px){.wedding-header{padding:1rem 1.2rem}.wedding-header-title{font-size:1.35rem}.header-actions{gap:.5rem;font-size:.7rem}.welcome-content{padding:2rem 1.3rem 4rem}.welcome-names{flex-direction:column;align-items:center;gap:0;font-size:clamp(3.7rem,15vw,5rem)}.welcome-amp{margin-block:.08em;font-size:.5em}.welcome-date{margin-block:1.5rem 2rem}.wedding-sprig{width:120px}.invite-form .input-row{flex-direction:column}.gallery-hero{padding:3rem 1.2rem}.admin-main{padding-top:1.5rem}.admin-sidebar{border-right:0;border-bottom:1px solid var(--line)}.admin-sidebar .brand{max-width:110px;font-size:1.1rem}}.spring-brand{color:var(--primary);text-align:left;flex-shrink:0;align-items:center;display:inline-flex}.spring-brand-logo{width:200px;max-width:100%;height:auto;display:block}.spring-quote{max-width:480px;color:var(--primary);text-align:center;margin:1.5rem auto 2rem;padding:0}.spring-quote:before{content:"";background:var(--gold);width:28px;height:1px;margin:0 auto 1.2rem;display:block}.spring-quote p,.gallery-hero .spring-quote p{color:var(--primary);text-wrap:balance;margin:0;font-size:.95rem;font-weight:400;line-height:1.9}.spring-quote:lang(en) p,.gallery-hero .spring-quote:lang(en) p{font-family:var(--font-name), Georgia, serif;font-size:1.65rem;font-style:italic;line-height:1.4}.welcome-copy>h1{font-size:1.25rem}.login-card>.spring-brand{margin-bottom:2rem}.admin-sidebar>.spring-brand{margin-bottom:1.5rem}.admin-sidebar .spring-brand-logo{width:160px}@media (max-width:650px){.spring-brand-logo{width:155px}.admin-sidebar>.spring-brand{margin-bottom:0}.admin-sidebar .spring-brand-logo{width:110px}.spring-quote{margin-block:1.3rem 1.8rem}.spring-quote p{font-size:.88rem}}.site-footer{background:var(--paper);color:var(--quiet);padding:3.5rem max(1.5rem,50% - 800px) 1.5rem}.footer-main{grid-template-columns:1fr 1.25fr;gap:4rem;padding-bottom:2.5rem;display:grid}:is(.site-footer,.landing-powered) a[data-slot=button]{color:var(--primary-foreground);text-decoration:none}.footer-brand .spring-brand-logo{width:220px}.footer-identity p{margin:1rem 0 0;font-size:.8rem;line-height:1.7}.footer-inquiry>p{margin:0 0 1rem;font-size:.85rem;line-height:1.7}.footer-inquiry>.footer-inquiry-title{color:var(--ink);font-weight:500;font-family:var(--font-name), Georgia, serif;margin-bottom:.35rem;font-size:1.8rem;font-style:italic}.footer-inquiry>.footer-inquiry-title:lang(th){font-family:var(--font-thai), sans-serif;font-size:1.35rem;font-style:normal}.footer-details a{text-underline-offset:4px}.footer-details a:hover{color:var(--primary);text-decoration:underline}.footer-bottom{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.25rem;display:flex}.demo-copyright{margin:0;font-size:.7rem;line-height:1.7}.footer-details{flex-wrap:wrap;align-items:center;gap:1.5rem;font-size:.75rem;line-height:1.8;display:flex}@media (max-width:650px){.site-footer{padding-top:2.5rem}.footer-main{grid-template-columns:1fr;gap:2rem;padding-bottom:2rem}.footer-brand .spring-brand-logo{width:190px}.footer-bottom{flex-direction:column;align-items:flex-start}}.album-cover-settings{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 0;display:flex}.album-cover-settings img{object-fit:cover;border-radius:8px;width:56px;height:70px}.album-cover-settings>div{flex:1;min-width:200px}.album-cover-settings h2{margin:0 0 .35rem;font-family:inherit;font-size:.9rem;font-weight:500}.album-cover-settings p{color:var(--quiet);margin:0;font-size:.78rem;line-height:1.7}.admin-photo-card .card-actions{flex-wrap:wrap;gap:.4rem}.album-cover-picker{width:min(760px,100vw - 2rem);max-width:760px;max-height:85dvh;overflow-y:auto}.cover-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.cover-picker-photo{border:1px solid var(--line);background:var(--card);color:var(--ink);text-align:left;border-radius:12px;padding:0;overflow:hidden}.cover-picker-photo[aria-pressed=true]{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.cover-picker-photo img{aspect-ratio:4/3;object-fit:cover;width:100%}.cover-picker-photo span{padding:.6rem;font-size:.75rem;display:block}.cover-picker-pagination{justify-content:space-between;align-items:center;gap:1rem;display:flex}.cover-picker-empty{text-align:center;padding:1.5rem 0}@media (max-width:500px){.cover-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.album-name-settings{flex-direction:column;align-items:stretch;gap:1rem;max-width:680px;margin:0 0 1.5rem;display:flex}.album-name-settings>button{align-self:flex-start}@media (max-width:650px){.album-name-settings{flex-direction:column;align-items:stretch}}.site-shell-with-cover{position:relative}.site-shell-with-cover>.site-header{z-index:3;background:linear-gradient(var(--paper), #fcf9f4d9 55%, #fcf9f400);width:100%;max-width:none;padding:1.5rem clamp(1.5rem,8vw,9rem);position:absolute;inset:0 0 auto}.gallery-hero-with-photo{isolation:isolate;background:var(--cream);text-align:left;align-items:center;width:100%;max-width:none;min-height:max(700px,100svh);margin:0;padding:8rem clamp(1.5rem,8vw,9rem) 3rem;display:flex;position:relative;overflow:hidden}.gallery-cover{z-index:0;margin:0;position:absolute;inset:0}.gallery-cover img{object-fit:cover;object-position:50% 38%;border-radius:0;width:100%;height:100%;max-height:none}.hero-shade{z-index:1;pointer-events:none;background:linear-gradient(90deg,#fcf9f4f5 0%,#fcf9f4eb 22%,#fcf9f4ba 42%,#fcf9f43b 66%,#fcf9f400 85%);position:absolute;inset:0}.gallery-hero-with-photo .gallery-hero-copy{z-index:2;width:min(100%,640px);color:var(--ink);margin:0;position:relative}.gallery-hero .hero-names{letter-spacing:-.025em;color:var(--ink);overflow-wrap:anywhere;text-wrap:balance;margin:1rem 0 1.25rem;font-size:clamp(3rem,4.5vw,4.5rem);font-weight:400;line-height:1.08}.gallery-hero p.hero-album-label{color:var(--primary);margin-bottom:.5rem;font-size:1.15rem}.gallery-hero p.hero-date{color:var(--ink);font-size:clamp(1.15rem,1.6vw,1.5rem);font-weight:500}.gallery-hero-with-photo .eyebrow{color:var(--primary);font-size:.65rem}.gallery-hero-with-photo .spring-quote{text-align:left;max-width:400px;margin:1.75rem 0 0}.gallery-hero-with-photo .spring-quote p{color:var(--quiet);font-size:.88rem}.gallery-hero-with-photo .spring-quote:lang(en) p{font-size:1.3rem}.gallery-hero-with-photo .spring-quote:before{margin-left:0}.gallery-hero-with-photo .hero-rule{display:none}.footer-powered{align-items:center;gap:.5rem;display:inline-flex}.footer-powered img{width:95px;height:auto}@media (max-width:650px){.site-shell-with-cover>.site-header{padding:1.25rem 1rem 2.5rem}.gallery-hero-with-photo{align-items:flex-end;min-height:max(720px,100svh);padding:7rem 1.5rem 2.5rem}.hero-shade{background:linear-gradient(#fcf9f400 20%,#fcf9f47a 45%,#fcf9f4ed 72%,#fcf9f4fa 100%)}.gallery-hero .hero-names{font-size:clamp(2.7rem,10vw,3.5rem)}}.guest-experience .gallery-hero-copy>*,.guest-experience .welcome-copy>*{animation:1.1s cubic-bezier(.22,1,.36,1) both guest-arrive}.guest-experience .gallery-hero-copy>:nth-child(2),.guest-experience .welcome-copy>:nth-child(3){animation-delay:.12s}.guest-experience .gallery-hero-copy>:nth-child(3),.guest-experience .welcome-copy>:nth-child(4){animation-delay:.24s}.guest-experience .gallery-hero-copy>.spring-quote,.guest-experience .welcome-copy>.spring-quote{animation-delay:.4s}.guest-experience .gallery-cover img{animation:9s cubic-bezier(.16,1,.3,1) both guest-cover-settle}.guest-experience .spring-quote{padding:.8rem 0 .5rem;position:relative}.guest-experience .spring-quote:before{content:"“";width:auto;height:auto;color:var(--primary);font-family:var(--font-name), Georgia, serif;opacity:.2;pointer-events:none;background:0 0;margin:0;font-size:4.5rem;line-height:1;display:block;position:absolute;top:-1.6rem;left:-.5rem}.guest-experience .spring-quote p,.guest-experience .gallery-hero .spring-quote p{max-width:31ch;color:var(--primary);letter-spacing:.015em;text-wrap:balance;margin-inline:auto;font-size:clamp(1.05rem,1.3vw,1.2rem);font-weight:300;line-height:2.15}.guest-experience .gallery-hero-with-photo .spring-quote p{margin-left:0}.guest-experience .spring-quote:lang(th) p,.guest-experience .gallery-hero .spring-quote:lang(th) p{max-width:100%;font-family:var(--font-thai), sans-serif;color:var(--ink);letter-spacing:0;text-wrap:wrap;white-space:pre-line;word-break:normal;overflow-wrap:normal;font-size:clamp(1.1rem,1.45vw,1.35rem);font-style:normal;font-weight:300;line-height:1.8}.guest-experience .spring-quote:lang(th) p.quote-composed{white-space:normal}.guest-experience .quote-composed .quote-phrase{display:block}.guest-experience .quote-composed .quote-phrase+.quote-phrase{margin-top:.1rem}.guest-experience .gallery-hero-with-photo .quote-composed .quote-phrase+.quote-phrase{margin-left:0}.guest-experience .gallery-hero-with-photo .spring-quote{max-width:460px;margin-top:1.75rem}.guest-experience .hero-shade{background:radial-gradient(at 14% 52%,#fcf9f4eb,#0000 65%),linear-gradient(90deg,#fcf9f4de,#fcf9f4a8 34%,#fcf9f435 65%,#0000 88%)}@media (max-width:650px){.guest-experience .hero-shade{background:linear-gradient(#0000 12%,#fcf9f465 38%,#fcf9f4e6 68%,#fcf9f4fa)}}.spring-quote .quote-phrase{vertical-align:top;max-width:100%;display:inline-block}.guest-experience .spring-quote:lang(en) p,.guest-experience .gallery-hero .spring-quote:lang(en) p{letter-spacing:0;max-width:28ch;font-size:clamp(1.4rem,2vw,1.9rem);line-height:1.6}.guest-experience .hero-scroll-cue{z-index:2;width:max-content;color:var(--quiet);letter-spacing:.03em;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.65rem;animation:1.4s .8s both guest-fade-in;display:flex;position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%)}.guest-experience .hero-scroll-cue svg{width:15px;height:15px;animation:2.4s 1.5s 3 guest-scroll-hint}.guest-experience .gallery-hero-with-photo{padding-bottom:6rem}.guest-experience .photo-card{transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s}.guest-experience .photo-card img{transition:filter .45s,transform .7s cubic-bezier(.22,1,.36,1)}.guest-experience .photo-card[data-reveal-state=waiting]{opacity:0;transform:translateY(18px)}.guest-experience .photo-card[data-reveal-state=visible]{animation:1.5s cubic-bezier(.22,.61,.36,1) both guest-arrive}.guest-experience .photo-card[data-reveal-state=waiting]:focus-visible{opacity:1;transform:none}@media (hover:hover) and (pointer:fine){.guest-experience .photo-card:hover img{filter:brightness(1.02);transform:scale(1.025)}.guest-experience .photo-card:hover{box-shadow:0 12px 28px #42383112}}.welcome-surface>.site-header{z-index:3;position:absolute;inset:0 0 auto}.guest-experience .landing-hero{isolation:isolate;align-items:center;max-width:none;height:100svh;min-height:0;margin:0;padding:clamp(6rem,14svh,9rem) clamp(1.5rem,8vw,9rem) 4.5rem;display:flex;position:relative}.landing-hero .gallery-hero-copy{min-width:0;max-width:640px}.landing-hero .invite-form{margin:2rem 0 0}.landing-hero .invite-form .input-row{flex-wrap:wrap}.landing-hero .invite-form input{background:#fffdf9eb;flex:240px;min-width:0}.landing-hero .invite-form button{flex:none}.landing-hero p.small-muted{font-size:.7rem}.landing-hero .landing-powered{z-index:2;right:max(1.5rem, env(safe-area-inset-right));bottom:max(1.25rem, env(safe-area-inset-bottom));color:var(--quiet);font-size:.8rem;line-height:1.5;position:absolute}.landing-powered .footer-powered{white-space:nowrap}.landing-powered .footer-powered img{width:125px}.landing-hero:after{content:"";z-index:1;background:linear-gradient(0deg, var(--paper), #fcf9f4d9 55%, #fcf9f400);pointer-events:none;height:6rem;display:block;position:absolute;inset:auto 0 0}@media (min-width:651px){.guest-experience .gallery-hero-with-photo:after{content:"";z-index:1;pointer-events:none;opacity:1;background:linear-gradient(#fcf9f400 0%,#fcf9f424 26%,#fcf9f466 50%,#fcf9f4b3 72%,#fcf9f4eb 90%,#fcf9f4 100%);height:clamp(14rem,38svh,24rem);display:block;position:absolute;inset:auto 0 0}.guest-experience .hero-scroll-cue{color:var(--ink);gap:.65rem;font-size:.8rem;bottom:1.5rem}.guest-experience .hero-scroll-cue svg{width:18px;height:18px}}@media (max-width:650px){.guest-experience .landing-hero{align-items:flex-end;padding:clamp(6rem,15svh,10rem) 1.5rem 4.5rem}.guest-experience .landing-hero .hero-shade{background:linear-gradient(#0000,#fcf9f41f 18%,#fcf9f4cc 45%,#fcf9f4f0 68%,#fcf9f4fa)}.landing-hero .invite-form .input-row{flex-direction:column;align-items:stretch}.landing-hero .invite-form input{flex:auto;width:100%}}@media (max-height:740px){.landing-hero .hero-names{margin-block:.6rem .75rem;font-size:clamp(2rem,6svh,3.5rem)}.landing-hero p.hero-date{margin-block:.5rem;font-size:1.1rem}.guest-experience .landing-hero .spring-quote{margin-block:.75rem 0;padding-block:.4rem 0}.guest-experience .landing-hero .spring-quote p{font-size:1rem;line-height:1.65}.landing-hero .invite-form{margin-top:1.25rem}.landing-hero .small-muted{margin-top:.75rem}.landing-hero .wedding-sprig{width:80px;margin-bottom:.75rem}}@media (max-height:500px) and (min-width:651px){.guest-experience .landing-hero{padding:6rem 1.5rem 3rem}.landing-hero .gallery-hero-copy{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:2rem;width:100%;max-width:100%;display:grid}.landing-hero .gallery-hero-copy>:not(.invite-form):not(.small-muted):not(.privacy-link):not(.error){grid-column:1}.landing-hero .invite-form{grid-area:1/2/span 3;align-self:center;margin:0}.landing-hero .small-muted,.landing-hero .privacy-link,.landing-hero .error{grid-column:2}.landing-hero .small-muted{grid-row:4;align-self:end}.landing-hero .privacy-link{grid-row:5}.landing-hero .hero-names{font-size:2rem}.guest-experience .landing-hero .spring-quote{grid-row:4/span 2}.guest-experience .landing-hero .spring-quote p{font-size:.9rem}.landing-hero .wedding-sprig{display:none}}.guest-experience.welcome-page{background:radial-gradient(ellipse at 20% 30%, #e5d0c430, transparent 60%), radial-gradient(ellipse at 85% 70%, #c7cebb26, transparent 55%), var(--paper)}.guest-experience .wedding-sprig{transform-origin:50% 85%;animation:8s ease-in-out 2 guest-sprig-sway}@keyframes guest-arrive{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes guest-fade-in{0%{opacity:0}to{opacity:1}}@keyframes guest-cover-settle{0%{opacity:0;transform:scale(1.045)}15%{opacity:1}to{opacity:1;transform:scale(1)}}@keyframes guest-scroll-hint{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes guest-sprig-sway{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}@media (prefers-reduced-motion:reduce){.guest-experience .photo-card[data-reveal-state=waiting]{opacity:1;transform:none}.guest-experience *,.guest-experience :before,.guest-experience :after{transition:none!important;animation:none!important}}.photo-people-drawer[data-slot=drawer-content]{width:100%;max-width:none;max-height:80dvh;padding-bottom:env(safe-area-inset-bottom);background:var(--card);border:0;border-radius:24px 24px 0 0;gap:0;margin-top:0}.photo-people-drawer .person-picker-header{text-align:left;flex-shrink:0;padding:1.25rem 1.5rem .5rem}.photo-people-drawer [data-slot=drawer-title]{font-family:var(--font-body), var(--font-thai), sans-serif;font-size:1.15rem;font-weight:500}.photo-people-drawer .person-picker-scroll{flex:0 auto;min-height:0;overflow-y:auto}.photo-people-drawer .person-picker-footer{flex-shrink:0;margin-top:0}.photo-save-message{top:calc(100% - 1rem);right:max(1.25rem, env(safe-area-inset-right));color:#fff;background:#222e;border-radius:12px;max-width:calc(100vw - 2.5rem);padding:.65rem 1rem;font-size:.8rem;position:absolute}.photo-people-overlay[data-slot=drawer-overlay]{background:#0006}
