:root{--color-paper: oklch(97.6% .008 75);--color-paper-2: oklch(95% .013 65);--color-paper-3: oklch(92.5% .022 40);--color-rule: oklch(86% .016 55);--color-rule-strong: oklch(74% .02 45);--color-field: oklch(60% .02 45);--color-muted: oklch(47% .022 40);--color-ink: oklch(25% .022 35);--color-ink-deep: oklch(21.5% .024 32);--color-on-ink: oklch(95.5% .012 70);--color-on-ink-muted: oklch(80% .02 55);--color-on-ink-rule: oklch(36% .02 35);--color-accent: oklch(52% .135 15);--color-accent-ink: oklch(97.6% .008 75);--color-accent-soft: oklch(90% .04 15);--color-focus: oklch(52% .15 15);--color-focus-on-ink: oklch(78% .11 15);--color-success: oklch(47% .09 155);--color-success-soft: oklch(94% .03 155);--color-danger: oklch(50% .17 27);--color-danger-soft: oklch(95% .03 27);--color-scrim: oklch(18% .02 30 / .9);--color-glass: oklch(97.6% .008 75 / .86);--color-silk-shadow: #b08b76;--color-silk-mid: #d8bba6;--color-silk-light: #f1e2d5;--color-silk-glow: #f8efe6;--color-silk-specular: #fff7ef;--shadow-1: 0 1px 2px oklch(25% .02 35 / .06), 0 8px 24px oklch(25% .02 35 / .07);--shadow-2: 0 2px 6px oklch(25% .02 35 / .08), 0 20px 48px oklch(25% .02 35 / .14);--font-display: "Fraunces", ui-serif, Georgia, serif;--font-body: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-body: 1.0625rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: clamp(1.75rem, 1.25rem + 1.5vw, 2.25rem);--text-2xl: clamp(2.125rem, 1.4rem + 2.6vw, 3.25rem);--text-display: clamp(2.625rem, 1.5rem + 4vw, 4.75rem);--lh-tight: 1.04;--lh-snug: 1.2;--lh-body: 1.6;--track-label: .12em;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--space-4xl: 8rem;--section-y: clamp(4rem, 2.5rem + 5vw, 8rem);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 999px;--radius-arch: 999px 999px var(--radius-sm) var(--radius-sm);--container: 1200px;--gutter: clamp(1rem, .5rem + 2vw, 2rem);--nav-h: 64px;--nav-offset: 12px;--header-space: calc(var(--nav-h) + var(--nav-offset) * 2);--field-h: 48px;--ease-out: cubic-bezier(.2, .7, .2, 1);--dur-1: .14s;--dur-2: .22s;--dur-3: .42s;--z-float: 900;--z-nav: 1000;--z-modal: 2000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-space) + var(--space-sm));overflow-x:clip}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--lh-body);color:var(--color-ink);background:var(--color-paper);overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal}img,picture,svg,video{display:block;max-width:100%}img{height:auto}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:340;font-variation-settings:"SOFT" 60;line-height:var(--lh-snug);letter-spacing:-.015em;color:inherit;text-wrap:balance;overflow-wrap:anywhere;min-width:0}h1{font-size:var(--text-display);line-height:var(--lh-tight);letter-spacing:-.025em}h2{font-size:var(--text-2xl);line-height:1.08;letter-spacing:-.02em}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}p{text-wrap:pretty}::selection{background:var(--color-accent-soft);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}code{font-family:ui-monospace,Menlo,monospace}.label{font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2xs);min-height:var(--field-h);padding:0 var(--space-md);border:1px solid var(--color-ink);border-radius:var(--radius-pill);background:transparent;color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;line-height:1;text-decoration:none;text-transform:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}.btn svg{flex:none;width:1.05em;height:1.05em}.btn:not(:disabled):hover{background:var(--color-ink);color:var(--color-paper)}.btn:not(:disabled):active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.btn-primary:not(:disabled):hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn-secondary,.btn-outline{background:transparent;border-color:var(--color-rule-strong);color:var(--color-ink)}.btn-secondary:not(:disabled):hover,.btn-outline:not(:disabled):hover{border-color:var(--color-ink);background:var(--color-paper-2);color:var(--color-ink)}.btn-success{background:var(--color-success-soft);border-color:var(--color-success);color:var(--color-success)}.btn-success:not(:disabled):hover{background:var(--color-success);border-color:var(--color-success);color:var(--color-paper)}.btn-danger{background:transparent;border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:not(:disabled):hover{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-paper)}.btn-sm{min-height:36px;padding:0 var(--space-sm);font-size:var(--text-xs)}.on-ink .btn{border-color:var(--color-on-ink-muted);color:var(--color-on-ink)}.on-ink .btn:not(:disabled):hover{background:var(--color-on-ink);border-color:var(--color-on-ink);color:var(--color-ink)}.on-ink .btn-primary{background:var(--color-on-ink);border-color:var(--color-on-ink);color:var(--color-ink)}.on-ink .btn-primary:not(:disabled):hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.on-ink :focus-visible{outline-color:var(--color-focus-on-ink)}.text-link{display:inline-flex;align-items:center;gap:var(--space-2xs);font-weight:600;text-decoration:underline;text-decoration-color:var(--color-rule-strong);text-underline-offset:.3em;transition:text-decoration-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out);white-space:nowrap}.text-link:hover{color:var(--color-accent);text-decoration-color:currentColor}.text-link svg{width:.9em;height:.9em}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=search],select,textarea{width:100%;min-height:var(--field-h);padding:0 var(--space-sm);border:1px solid var(--color-field);border-radius:var(--radius-sm);background:var(--color-paper);color:var(--color-ink);font-size:var(--text-base);outline:2px solid transparent;outline-offset:1px;transition:border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}textarea{padding-block:var(--space-xs)}input::placeholder,textarea::placeholder{color:var(--color-muted)}input:hover,textarea:hover,select:hover{border-color:var(--color-ink)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px;border-color:var(--color-ink)}input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed}input[type=checkbox],input[type=radio]{accent-color:var(--color-ink);width:1.1rem;height:1.1rem}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.site-header{position:fixed;top:var(--nav-offset);left:var(--gutter);right:var(--gutter);z-index:var(--z-nav);pointer-events:none}.nav-pill,.mobile-menu{pointer-events:auto;max-width:calc(var(--container) + var(--space-xl));margin-inline:auto}.nav-pill{display:flex;align-items:center;gap:var(--space-md);height:var(--nav-h);padding:0 var(--space-2xs) 0 var(--space-md);background:var(--color-glass);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border:1px solid var(--color-rule);border-radius:var(--radius-pill);transition:box-shadow var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease-out)}.site-header.is-scrolled .nav-pill,.site-header.menu-open .nav-pill{border-color:var(--color-rule-strong);box-shadow:var(--shadow-1)}.wordmark{display:grid;gap:4px;flex:none;line-height:1;text-decoration:none;color:var(--color-ink)}.wordmark-name{font-size:var(--text-xs);font-weight:600;letter-spacing:.22em;text-transform:uppercase}.wordmark-sub{font-size:.75rem;letter-spacing:.04em;color:var(--color-muted)}.wordmark:focus-visible{outline-offset:6px;border-radius:var(--radius-sm)}.nav-links{display:flex;align-items:center;gap:var(--space-md);margin-left:var(--space-sm)}.nav-link{position:relative;padding:var(--space-2xs) 0;font-size:var(--text-sm);font-weight:500;line-height:1;text-decoration:none;white-space:nowrap;color:var(--color-ink)}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-2) var(--ease-out)}.nav-link:hover:after,.nav-link.is-active:after{transform:scaleX(1)}.nav-link.is-active{color:var(--color-accent)}.nav-actions{display:flex;align-items:center;gap:var(--space-3xs);margin-left:auto}.icon-btn{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;color:var(--color-ink);transition:background-color var(--dur-2) var(--ease-out)}.icon-btn:hover{background:var(--color-paper-2)}.icon-btn:active{background:var(--color-paper-3)}.icon-btn svg{width:18px;height:18px}.cart-count{position:absolute;top:3px;right:1px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-accent-ink);font-size:.6875rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}.nav-login{padding:0 var(--space-xs);font-size:var(--text-sm);font-weight:500;white-space:nowrap;text-decoration:none}.nav-login:hover{text-decoration:underline}.nav-cta{min-height:44px;margin-left:var(--space-2xs)}.user-menu{position:relative}.user-button{display:inline-flex;align-items:center;gap:var(--space-2xs);height:44px;padding:0 var(--space-xs);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:500;line-height:1;transition:background-color var(--dur-2) var(--ease-out)}.user-button:hover{background:var(--color-paper-2)}.user-button svg{width:14px;height:14px}.user-name{max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown{position:absolute;top:calc(100% + var(--space-2xs));right:0;display:none;flex-direction:column;min-width:13rem;padding:var(--space-2xs);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-2)}.user-dropdown:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:var(--space-2xs)}.user-menu:hover .user-dropdown,.user-menu:focus-within .user-dropdown{display:flex}.user-dropdown a,.user-dropdown button{display:block;width:100%;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;text-decoration:none}.user-dropdown a:hover,.user-dropdown button:hover{background:var(--color-paper-2)}.menu-toggle{display:none}.mobile-menu{margin-top:var(--space-2xs);max-height:calc(100dvh - var(--header-space) - var(--space-lg));overflow-y:auto;padding:var(--space-md);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);animation:menu-in var(--dur-3) var(--ease-out)}.mobile-menu[hidden]{display:none}.mobile-links{list-style:none}.mobile-links .nav-link{display:block;padding:var(--space-xs) 0;border-bottom:1px solid var(--color-rule);font-family:var(--font-display);font-size:var(--text-xl);font-weight:340;line-height:1.1}.mobile-links .nav-link:after{display:none}.mobile-account{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin-top:var(--space-md)}.mobile-account a,.mobile-account button{font-size:var(--text-base);font-weight:500;text-decoration:underline;text-decoration-color:var(--color-rule-strong)}.mobile-cta{width:100%;margin-top:var(--space-md)}.mobile-social{display:flex;gap:var(--space-2xs);margin-top:var(--space-md)}.mobile-social .icon-btn{border:1px solid var(--color-rule)}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (max-width: 1099px){.nav-links,.nav-login,.user-menu{display:none}.menu-toggle{display:inline-grid}}@media (min-width: 1100px){.mobile-menu{display:none}}@media (max-width: 519px){.nav-pill{gap:var(--space-xs);padding-left:var(--space-sm)}.nav-cta{display:none}}.site-footer{padding-block:var(--space-3xl) var(--space-lg);background:var(--color-ink-deep);color:var(--color-on-ink)}.footer-mast{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-on-ink-rule)}.footer-brand{max-width:34rem}.footer-wordmark{display:inline-block;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:320;font-variation-settings:"SOFT" 60;line-height:1;letter-spacing:-.02em;text-decoration:none}.footer-tagline{margin-top:var(--space-2xs);font-size:var(--text-xs);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-on-ink-muted)}.footer-description{margin-top:var(--space-md);max-width:52ch;color:var(--color-on-ink-muted)}.footer-side{display:grid;justify-items:end;gap:var(--space-md)}.footer-nav{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md)}.footer-nav a{font-size:var(--text-base);font-weight:500;text-decoration:none;white-space:nowrap}.footer-nav a:hover{text-decoration:underline}.footer-info{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm) var(--space-xl);padding-block:var(--space-lg);border-bottom:1px solid var(--color-on-ink-rule);font-size:var(--text-sm);color:var(--color-on-ink-muted)}.footer-info a{text-decoration:none}.footer-info a:hover{color:var(--color-on-ink);text-decoration:underline}.footer-social{display:flex;gap:var(--space-2xs);margin-left:auto}.footer-social a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--color-on-ink-rule);border-radius:50%;color:var(--color-on-ink);transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.footer-social a:hover{background:var(--color-on-ink);color:var(--color-ink);text-decoration:none}.footer-social svg{width:16px;height:16px}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-sm);padding-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-on-ink-muted)}.footer-legal{display:flex;flex-wrap:wrap;gap:var(--space-md)}.footer-legal a{text-decoration:none}.footer-legal a:hover{color:var(--color-on-ink);text-decoration:underline}@media (max-width: 760px){.footer-side{justify-items:start}.footer-social{margin-left:0}}.hero{position:relative;isolation:isolate;display:grid;align-items:center;min-height:max(38rem,100svh);margin-top:calc(-1 * var(--header-space));padding-block:calc(var(--header-space) + var(--space-xl)) var(--space-3xl);overflow:hidden}.hero-silk{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:var(--color-silk-mid)}.silk-host{position:absolute;top:0;right:0;bottom:0;left:0}.silk-host.is-static{background:radial-gradient(ellipse 70% 62% at 50% 48%,var(--color-silk-glow) 0%,var(--color-silk-light) 40%,var(--color-silk-mid) 75%,var(--color-silk-shadow) 100%)}.silk-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;opacity:0;transition:opacity .7s var(--ease-out)}.silk-canvas.is-ready{opacity:1}.hero-inner{display:grid;justify-items:center;text-align:center}.hero-copy{display:grid;justify-items:center;max-width:60rem}.hero-copy h1{max-width:15ch;font-size:clamp(2.75rem,1.5rem + 4.8vw,5.5rem);line-height:1.02}.hero-lede{max-width:38ch;margin-top:var(--space-md);font-size:var(--text-md);line-height:1.5;color:var(--color-muted)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-xs);margin-top:var(--space-lg)}.hero .btn-secondary{background:var(--color-glass);border-color:var(--color-ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero .btn-secondary:not(:disabled):hover{background:var(--color-ink);color:var(--color-paper)}.hero-hours{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3xs) var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-sm);border-top:1px solid var(--color-rule-strong);font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums}@media (max-width: 600px){.hero{min-height:max(34rem,92svh)}}.about{background:var(--color-paper-2)}.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:var(--space-3xl)}.about-media img{width:100%;aspect-ratio:4 / 5;object-fit:cover;object-position:center 30%;border-radius:var(--radius-md);background:var(--color-paper-3)}.about-media figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2xs) var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-xs);border-top:1px solid var(--color-rule-strong)}.about-name{font-family:var(--font-display);font-size:var(--text-md);font-variation-settings:"SOFT" 60}.about-role{font-size:var(--text-xs);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--color-muted)}.about-copy h2{max-width:12ch}.about-text,.about-link{margin-top:var(--space-lg)}@media (max-width: 860px){.about-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.about-copy{order:-1}.about-media{max-width:28rem}}.services{background:var(--color-ink-deep);color:var(--color-on-ink)}.services-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:var(--space-3xl)}.services-intro{position:sticky;top:calc(var(--header-space) + var(--space-lg))}.services-intro h2{max-width:10ch}.services-img{width:100%;margin-top:var(--space-xl);aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--radius-md);background:var(--color-on-ink-rule)}.services-list{list-style:none;border-top:1px solid var(--color-on-ink-rule)}.service-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);column-gap:var(--space-xl);row-gap:var(--space-sm);padding-block:var(--space-xl);border-bottom:1px solid var(--color-on-ink-rule)}.service-row h3{grid-row:span 2;font-size:var(--text-xl);line-height:1.1}.service-row p{max-width:46ch;color:var(--color-on-ink-muted)}.service-link{justify-self:start;color:var(--color-on-ink);text-decoration-color:var(--color-on-ink-rule)}.service-link:hover{color:var(--color-on-ink);text-decoration-color:var(--color-focus-on-ink)}@media (max-width: 960px){.services-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.services-intro{position:static}.services-img{aspect-ratio:16 / 10;margin-top:var(--space-lg)}}@media (max-width: 600px){.service-row{grid-template-columns:minmax(0,1fr);padding-block:var(--space-lg)}.service-row h3{grid-row:auto}}.image-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-lg) var(--gutter);background:var(--color-scrim)}.image-modal-content{position:relative;display:grid;place-items:center;max-width:min(1100px,100%);max-height:100%}.modal-image{max-width:100%;max-height:calc(100dvh - 2 * var(--space-lg) - 3.5rem);width:auto;height:auto;object-fit:contain;border-radius:var(--radius-sm)}.close-button{justify-self:end;display:grid;place-items:center;width:44px;height:44px;margin-bottom:var(--space-xs);border-radius:50%;background:var(--color-paper);color:var(--color-ink);transition:background-color var(--dur-2) var(--ease-out)}.close-button:hover{background:var(--color-paper-3)}.close-button:focus-visible{outline-color:var(--color-focus-on-ink)}.close-button svg{width:16px;height:16px}.clickable-image{cursor:zoom-in}.gallery{--tile-h: clamp(18.75rem, 12rem + 18vw, 27.5rem);--edge: max(var(--gutter), calc((100vw - var(--container)) / 2 + var(--gutter)))}.gallery-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl)}.gallery-head h2{max-width:14ch}.gallery-controls{display:flex;gap:var(--space-2xs)}.gallery-nav{display:grid;place-items:center;width:var(--field-h);height:var(--field-h);border:1px solid var(--color-ink);border-radius:50%;color:var(--color-ink);transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.gallery-nav svg{width:16px;height:16px}.gallery-nav:not(:disabled):hover{background:var(--color-ink);color:var(--color-paper)}.gallery-nav:not(:disabled):active{transform:translateY(1px)}.gallery-nav:disabled{opacity:.35;cursor:not-allowed}.gallery-track{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);scrollbar-width:thin;scrollbar-color:var(--color-rule-strong) transparent}.gallery-track:focus-visible{outline-offset:-2px}.gallery-list{display:flex;gap:var(--space-sm);width:max-content;padding-inline:var(--edge);padding-bottom:var(--space-md);list-style:none}.gallery-item{flex:none;scroll-snap-align:start;border-radius:var(--radius-md)}.gallery-item img{width:auto;height:var(--tile-h);max-width:82vw;object-fit:cover;border-radius:var(--radius-md);background:var(--color-paper-3);transition:filter var(--dur-3) var(--ease-out)}.gallery-item .zoomable:hover img{filter:brightness(.94)}.salon{background:var(--color-paper-3)}.salon-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center;gap:var(--space-3xl)}.salon-media img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md)}.salon-copy h2{max-width:10ch}.salon-copy .lede{margin-top:var(--space-md);max-width:30ch}@media (max-width: 860px){.salon-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.salon-copy{order:-1}}.location-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:var(--space-3xl)}.location-copy .lede{margin-top:var(--space-sm)}.location-facts{margin-top:var(--space-xl);border-top:1px solid var(--color-rule)}.fact{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-md);border-bottom:1px solid var(--color-rule)}.fact dt{padding-top:.2em}.fact dd{font-size:var(--text-body)}.schedule{display:grid;gap:var(--space-3xs);list-style:none;font-variant-numeric:tabular-nums}.schedule li{display:flex;justify-content:space-between;gap:var(--space-md)}.schedule li span:first-child{color:var(--color-muted)}.phone-link{font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums}.phone-link:hover{color:var(--color-accent);text-decoration:underline}.location-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);margin-top:var(--space-xl)}.location-map{display:block;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-rule)}.location-map img{width:100%;transition:filter var(--dur-3) var(--ease-out)}.location-map:hover img{filter:saturate(1.1) brightness(.97)}.location-map:focus-visible{outline-offset:4px}@media (max-width: 900px){.location-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}}@media (max-width: 480px){.fact{grid-template-columns:minmax(0,1fr);gap:var(--space-2xs)}}.home{display:block}.whatsapp-float-container{position:fixed;right:var(--gutter);bottom:var(--gutter);z-index:var(--z-float);display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs)}.whatsapp-tooltip{position:relative;max-width:15rem;padding:var(--space-sm) var(--space-xl) var(--space-sm) var(--space-sm);background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-2);animation:float-in var(--dur-3) var(--ease-out)}.tooltip-title{font-size:var(--text-sm);font-weight:600}.tooltip-text{font-size:var(--text-sm);line-height:1.4;color:var(--color-muted)}.tooltip-close{position:absolute;top:var(--space-3xs);right:var(--space-3xs);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--color-muted);transition:background-color var(--dur-2) var(--ease-out)}.tooltip-close:hover{background:var(--color-paper-2);color:var(--color-ink)}.tooltip-close svg{width:12px;height:12px}.whatsapp-button{display:inline-flex;align-items:center;gap:var(--space-2xs);height:52px;padding:0 var(--space-md) 0 var(--space-sm);border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-paper);box-shadow:var(--shadow-2);font-size:var(--text-sm);font-weight:600;line-height:1;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-out)}.whatsapp-button svg{width:22px;height:22px}.whatsapp-button:hover{background:var(--color-accent);color:var(--color-accent-ink)}.whatsapp-button:active{transform:translateY(1px)}@keyframes float-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width: 640px){.whatsapp-button{justify-content:center;width:52px;padding:0}.whatsapp-text{display:none}}.chatbot-container{position:fixed;left:var(--gutter);bottom:var(--gutter);z-index:var(--z-float)}.chatbot-toggle{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--color-paper);border:1px solid var(--color-rule-strong);color:var(--color-ink);box-shadow:var(--shadow-1);transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.chatbot-toggle svg{width:22px;height:22px}.chatbot-toggle:hover,.chatbot-toggle.open{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.chatbot-window{position:absolute;left:0;bottom:calc(100% + var(--space-xs));display:flex;flex-direction:column;width:min(22.5rem,calc(100vw - 2 * var(--gutter)));height:min(32rem,calc(100dvh - var(--header-space) - 6rem));overflow:hidden;background:var(--color-paper);border:1px solid var(--color-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);animation:chat-in var(--dur-3) var(--ease-out)}.chatbot-window[hidden]{display:none}.chatbot-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-ink-deep);color:var(--color-on-ink)}.chatbot-header-info{display:flex;align-items:center;gap:var(--space-xs)}.chatbot-avatar{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--color-on-ink-rule);font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:.04em}.chatbot-header h4{font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;letter-spacing:0}.chatbot-header span{font-size:var(--text-xs);color:var(--color-on-ink-muted)}.chatbot-close{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--color-on-ink)}.chatbot-close:hover{background:var(--color-on-ink-rule)}.chatbot-close:focus-visible{outline-color:var(--color-focus-on-ink)}.chatbot-messages{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);overflow-y:auto;padding:var(--space-sm);background:var(--color-paper-2)}.message{display:grid;gap:var(--space-3xs);max-width:85%}.message.bot{align-self:flex-start}.message.user{align-self:flex-end;justify-items:end}.message-content{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.45;white-space:pre-line}.message.bot .message-content{background:var(--color-paper);border:1px solid var(--color-rule);border-bottom-left-radius:var(--radius-sm)}.message.user .message-content{background:var(--color-ink);color:var(--color-paper);border-bottom-right-radius:var(--radius-sm)}.message-time{font-size:.6875rem;color:var(--color-muted);font-variant-numeric:tabular-nums}.typing-indicator{display:flex;gap:4px;padding:4px 0}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--color-muted);animation:typing 1.2s infinite ease-in-out}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}.quick-questions{display:flex;flex-wrap:wrap;gap:var(--space-2xs);padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--color-rule);background:var(--color-paper)}.quick-questions-title{width:100%;font-size:var(--text-xs);color:var(--color-muted)}.quick-question-btn{padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-rule-strong);border-radius:var(--radius-pill);font-size:var(--text-xs);line-height:1.2;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.quick-question-btn:hover{border-color:var(--color-ink);background:var(--color-paper-2)}.chatbot-input{display:flex;gap:var(--space-2xs);padding:var(--space-xs);border-top:1px solid var(--color-rule);background:var(--color-paper)}.chatbot-input input{flex:1;min-height:44px}.chatbot-input button{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:var(--color-ink);color:var(--color-paper);transition:background-color var(--dur-2) var(--ease-out)}.chatbot-input button:not(:disabled):hover{background:var(--color-accent)}.chatbot-input button:disabled{opacity:.55;cursor:not-allowed}@keyframes chat-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes typing{0%,60%,to{opacity:.35}30%{opacity:1}}.App{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}main{flex:1;padding-top:var(--header-space)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-y)}.section-head{display:grid;gap:var(--space-sm);max-width:46rem;margin-bottom:var(--space-xl)}.section-head p{max-width:60ch;font-size:var(--text-body);color:var(--color-muted)}.page-header{padding-block:var(--space-2xl) var(--space-xl)}.page-header h1{max-width:18ch}.lede{max-width:58ch;font-size:var(--text-md);line-height:1.5;color:var(--color-muted)}.page-header .lede{margin-top:var(--space-md)}.prose{max-width:62ch;font-size:var(--text-body)}.prose p+p{margin-top:var(--space-sm)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xl);align-items:center}@media (max-width: 860px){.grid-2{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}}.cta-buttons{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.arch{border-radius:var(--radius-arch);overflow:hidden}.zoomable{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:inherit}.zoomable:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.form-group{display:grid;gap:var(--space-2xs)}.form-group label{font-size:var(--text-sm);font-weight:600}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.input-wrapper{position:relative}.input-wrapper .input-icon{position:absolute;top:50%;left:var(--space-sm);width:14px;height:14px;transform:translateY(-50%);color:var(--color-muted);pointer-events:none}.input-wrapper input{padding-left:calc(var(--space-sm) * 2 + 14px)}.input-wrapper .password-toggle{position:absolute;top:50%;right:var(--space-3xs);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--color-muted);transform:translateY(-50%)}.input-wrapper .password-toggle:hover{background:var(--color-paper-2);color:var(--color-ink)}.input-wrapper .password-toggle:disabled{opacity:.55;cursor:not-allowed}.input-wrapper:has(.password-toggle) input{padding-right:3rem}.auth-error{padding:var(--space-sm);border-radius:var(--radius-sm);background:var(--color-danger-soft);color:var(--color-danger);font-size:var(--text-sm);line-height:1.5}@media (max-width: 480px){.form-row{grid-template-columns:minmax(0,1fr)}}.route-loading{display:grid;place-items:center;min-height:60vh}.spinner{width:36px;height:36px;border:2px solid var(--color-rule);border-top-color:var(--color-ink);border-radius:50%;animation:spin .9s linear infinite}.btn .spinner{width:1em;height:1em;border-color:currentColor;border-top-color:transparent}@keyframes spin{to{transform:rotate(360deg)}}.not-found{padding-block:var(--space-3xl)}.not-found .lede{margin-block:var(--space-md) var(--space-lg)}
