:root{--color-primary:#c4a4a4;--color-primary-hover:#b89494;--color-primary-light:#e8d5d5;--color-primary-dark:#9b7a7a;--color-secondary:#d4c4b0;--color-secondary-light:#ede6dc;--color-accent-gold:#b8a088;--color-accent-mauve:#a8919a;--color-accent-sage:#a8b5a0;--color-background:#fff;--color-background-warm:#fdfbf9;--color-background-blush:#fbf7f7;--color-surface:#fff;--color-surface-elevated:#fefefe;--color-text-primary:#2d2926;--color-text-secondary:#6b6560;--color-text-muted:#9a948f;--color-text-inverse:#fff;--color-border:#e8e4e1;--color-border-light:#f2efec;--color-success:#7dae7d;--color-warning:#d4a574;--color-error:#c9807a;--color-info:#8fa4b8;--font-display:var(--font-cormorant),"Cormorant Garamond",Georgia,serif;--font-body:var(--font-dm-sans),"DM Sans",system-ui,sans-serif;--font-accent:"Bodoni Moda",serif;--text-xs:clamp(.75rem,2vw,.75rem);--text-sm:clamp(.875rem,2.5vw,.875rem);--text-base:clamp(1rem,3vw,1rem);--text-lg:clamp(1.125rem,3.5vw,1.25rem);--text-xl:clamp(1.25rem,4vw,1.5rem);--text-2xl:clamp(1.5rem,5vw,2rem);--text-3xl:clamp(1.875rem,6vw,2.5rem);--text-4xl:clamp(2.25rem,7vw,3.5rem);--text-5xl:clamp(3rem,8vw,4.5rem);--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1440px;--container-max:1536px;--breakpoint-xs:320px;--breakpoint-sm:375px;--breakpoint-md:428px;--breakpoint-lg:768px;--breakpoint-xl:1024px;--breakpoint-2xl:1280px;--breakpoint-3xl:1536px;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-toast:800;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--border-width:1px;--border-width-2:2px;--shadow-sm:0 1px 2px #2d29260a;--shadow-md:0 4px 12px #2d29260f;--shadow-lg:0 8px 24px #2d292614;--shadow-xl:0 16px 48px #2d29261a;--shadow-2xl:0 24px 64px #2d29261f;--focus-ring:0 0 0 3px #c4a4a466;--duration-instant:75ms;--duration-fast:.15s;--duration-normal:.3s;--duration-slow:.5s;--duration-slowest:.7s;--ease-out-expo:cubic-bezier(.16,1,.3,1);--ease-out-back:cubic-bezier(.34,1.56,.64,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--ease-spring:cubic-bezier(.175,.885,.32,1.275);--touch-target-min:44px;--input-height:48px;--input-height-sm:40px;--input-height-lg:56px;--header-height:64px;--header-height-mobile:56px;--bottom-nav-height:64px;--app-fixed-top-inset:0px;--app-fixed-bottom-inset:0px;--product-card-aspect:4/5}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;font-size:16px}@media (max-width:768px){:root{--app-fixed-bottom-inset:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px))}}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh;padding-bottom:var(--app-fixed-bottom-inset);scroll-padding-bottom:var(--app-fixed-bottom-inset);overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-text-primary)}h1{font-size:var(--text-4xl);letter-spacing:var(--tracking-tight)}h2{font-size:var(--text-3xl);letter-spacing:var(--tracking-tight)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base);font-weight:var(--font-medium)}p{margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--color-primary-dark);transition:color var(--duration-fast)var(--ease-in-out);text-decoration:none}a:hover{color:var(--color-primary)}a:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}strong,b{font-weight:var(--font-semibold)}small{font-size:var(--text-sm)}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}.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}.container{width:100%;max-width:var(--container-max);padding-left:var(--space-4);padding-right:var(--space-4);margin-left:auto;margin-right:auto}@media (min-width:768px){.container{padding-left:var(--space-8);padding-right:var(--space-8)}}@media (min-width:1280px){.container{padding-left:var(--space-16);padding-right:var(--space-16)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}::selection{background-color:var(--color-primary-light);color:var(--color-text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-background-warm)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fadeIn{animation:fadeIn var(--duration-normal)var(--ease-out-expo)}.animate-fadeInUp{animation:fadeInUp var(--duration-normal)var(--ease-out-expo)}.animate-spin{animation:1s linear infinite spin}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}
