/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #E8B4A8;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #E8B4A8;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom select chevron indicator */
    .custom-select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.75' stroke='%23B77D69'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19.5 8.25l-7.5 7.5-7.5-7.5' /%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 1.25rem center;
      background-size: 1.15rem;
      appearance: none;
      -webkit-appearance: none;
    }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
/* Organic Linen Texture Overlay for Crisp Light Scheme */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #E8B4A8;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
::selection { background-color: #E8B4A8; color: #2B2B2B; }
    .link-underline { position: relative; }
    .link-underline::after { content: ''; position: absolute; width: 0; height: 1.5px; bottom: -2px; left: 0; background-color: currentColor; transition: width 0.35s ease; }
    .link-underline:hover::after { width: 100%; }
    
    /* Sticky Sidebar Behavior (moves with page scroll, stops at end of article) */
    @media (min-width: 1024px) {
      .sticky-sidebar-container {
        position: sticky;
        top: 100px; /* Offset to clear the sticky master header */
        height: auto;
      }
    }

/* --- Page Theme Styles --- */
/* Organic Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }
    ::selection {
      background-color: #E8B4A8;
      color: #2B2B2B;
    }
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }
    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1 !important;
      transform: translateY(0) !important;
    }
    @media (prefers-reduced-motion: reduce) {
      .reveal {
        opacity: 1 !important;
        transform: none !important;
      }
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

/* --- Page Theme Styles --- */
.linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }
    ::selection {
      background-color: #E8B4A8;
      color: #2B2B2B;
    }
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

/* --- Page Theme Styles --- */
::selection { background-color: #EFC7B8; color: #2B2B2B; }
    .link-underline { position: relative; }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after { width: 100%; }
    
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
::selection { background-color: #EFC7B8; color: #2B2B2B; }
    .link-underline { position: relative; }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after { width: 100%; }
    
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    
    .gallery-card {
      transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.4s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .gallery-card:hover {
      transform: translateY(-6px);
      box-shadow: 0 20px 35px -8px rgba(74, 69, 62, 0.12);
    }
    .gallery-card:hover img {
      transform: scale(1.04);
    }

/* --- Page Theme Styles --- */
/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #F5D7D0;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
.reveal {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .glass-nav {
      background: rgba(253, 251, 247, 0.88);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }
    .hero-mask {
      border-radius: 36px 36px 36px 80px;
    }
    @media (max-width: 640px) {
      .hero-mask {
        border-radius: 28px 28px 28px 48px;
      }
    }
    .material-card:hover .swatch-zoom {
      transform: scale(1.08);
    }

/* --- Page Theme Styles --- */
/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #A9C2C9;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #EFD9A0;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
/* Tactile Linen Texture Overlay */
    .linen-grain {
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.02'/%3E%3C/svg%3E");
    }

    ::selection {
      background-color: #D9E2CE;
      color: #2B2B2B;
    }

    /* Animated editorial link underline */
    .link-underline {
      position: relative;
    }
    .link-underline::after {
      content: '';
      position: absolute;
      width: 0;
      height: 1.5px;
      bottom: -2px;
      left: 0;
      background-color: currentColor;
      transition: width 0.35s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .link-underline:hover::after {
      width: 100%;
    }

    /* Scroll reveal transitions */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1), transform 0.85s cubic-bezier(0.16, 1, 0.3, 1);
      will-change: opacity, transform;
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .delay-100 { transition-delay: 100ms; }
    .delay-200 { transition-delay: 200ms; }
    .delay-300 { transition-delay: 300ms; }

    /* Custom light luxury scrollbar */
    ::-webkit-scrollbar { width: 7px; }
    ::-webkit-scrollbar-track { background: #FDFBF7; }
    ::-webkit-scrollbar-thumb { background: #E3D8C3; border-radius: 4px; }
    ::-webkit-scrollbar-thumb:hover { background: #D8AFA0; }

/* --- Page Theme Styles --- */
.reveal {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .reveal.is-revealed {
      opacity: 1;
      transform: translateY(0);
    }
    .glass-nav {
      background: rgba(253, 251, 247, 0.88);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }
    .hero-mask {
      border-radius: 36px 36px 36px 80px;
    }
    @media (max-width: 640px) {
      .hero-mask {
        border-radius: 28px 28px 28px 48px;
      }
    }