:root{--color-primary: #3E2723;--color-primary-soft: #5D4037;--color-secondary: #8D7B6F;--color-accent: #C9A961;--color-accent-soft: #D4B87E;--color-accent-glow: rgba(201, 169, 97, .15);--color-bg: #F5F0EB;--color-bg-warm: #EDE6DC;--color-bg-card: #FFFFFF;--color-surface: #FFFFFF;--color-surface-hover: #FDFCFA;--color-text: #3E2723;--color-text-secondary: #5D4037;--color-text-muted: #73625A;--color-border: #E7E5E4;--color-border-light: #F0EFED;--color-divider: #EDEBE8;--color-success: #16A34A;--color-error: #DC2626;--color-warning: #F59E0B;--color-info: #3B82F6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-30: 120px;--space-section: clamp(80px, 10vw, 160px);--font-heading: "Bodoni Moda", "Noto Serif SC", Georgia, serif;--font-body: "Jost", "PingFang SC", "Helvetica Neue", -apple-system, sans-serif;--font-ui: "Jost", "PingFang SC", -apple-system, sans-serif;--text-xs: clamp(.6875rem, .66rem + .14vw, .75rem);--text-sm: clamp(.75rem, .71rem + .21vw, .875rem);--text-base: clamp(.9375rem, .9rem + .21vw, 1rem);--text-lg: clamp(1.0625rem, 1rem + .28vw, 1.125rem);--text-xl: clamp(1.25rem, 1.11rem + .7vw, 1.5rem);--text-2xl: clamp(1.5rem, 1.27rem + 1.16vw, 2rem);--text-3xl: clamp(2rem, 1.61rem + 1.95vw, 2.8rem);--text-hero: clamp(2rem, .8rem + 6vw, 4.5rem);--leading-tight: 1.15;--leading-snug: 1.35;--leading-normal: 1.6;--leading-relaxed: 1.8;--leading-loose: 2.2;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-wider: .08em;--tracking-widest: .16em;--duration-instant: 80ms;--duration-fast: .15s;--duration-normal: .28s;--duration-slow: .4s;--duration-glacial: .6s;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quint: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-back: cubic-bezier(.34, 1.3, .64, 1);--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.08);--shadow-xl: 0 16px 48px rgba(0,0,0,.1);--shadow-card-hover: 0 8px 30px rgba(0,0,0,.1);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 500;--z-modal-backdrop: 800;--z-modal: 900;--z-toast: 1000;--z-tooltip: 1100;--container-max: 1400px;--nav-height: 72px}@media(prefers-color-scheme:dark){:root{--color-bg: #0C0A09;--color-bg-warm: #141210;--color-bg-card: #1C1917;--color-surface: #1C1917;--color-surface-hover: #24211E;--color-text: #FAFAF9;--color-text-secondary: #A8A29E;--color-text-muted: #A8A29E;--color-border: #292524;--color-border-light: #1F1D1B;--color-divider: #24211E;--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.3);--shadow-lg: 0 8px 32px rgba(0,0,0,.4);--shadow-card-hover: 0 8px 30px rgba(0,0,0,.5);--color-accent-glow: rgba(202, 138, 4, .18)}.product-images{background-color:#1c1917}.product-detail-left{background-color:#141210}.shoot-section{background-color:#f5f4f1;color:#1c1917}.shoot-section .shoot-desc{color:#57534e}.shoot-section .btn-secondary{color:#1c1917;border-color:#1c1917}.shoot-section .btn-secondary:hover{background:#1c1917;color:#fff}.footer-subscribe-input{color:#1c1917}.nav-search-dropdown{background:#1c1917}}[data-theme=dark]{--color-bg: #0C0A09;--color-bg-warm: #141210;--color-bg-card: #1C1917;--color-surface: #1C1917;--color-surface-hover: #24211E;--color-text: #FAFAF9;--color-text-secondary: #A8A29E;--color-text-muted: #A8A29E;--color-border: #292524;--color-border-light: #1F1D1B;--color-divider: #24211E;--shadow-sm: 0 1px 2px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.3);--shadow-lg: 0 8px 32px rgba(0,0,0,.4)}[data-theme=dark] .product-images{background-color:#1c1917}[data-theme=dark] .product-detail-left{background-color:#141210}[data-theme=dark] .nav-search-dropdown{background:#1c1917}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);line-height:var(--leading-relaxed);font-size:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit}button{font-family:inherit}.skip-link{position:absolute;top:-100%;left:var(--space-4);z-index:var(--z-tooltip);padding:var(--space-3) var(--space-5);background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-family:var(--font-body);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm);text-decoration:none;transition:top var(--duration-fast) var(--ease-out-expo)}.skip-link:focus{top:var(--space-4)}#skeletonApp{background:var(--color-bg)}.sk-hero{width:100%;height:70vh;background:var(--color-bg-warm);animation:skShimmer 1.5s ease-in-out infinite}.sk-section{padding:40px 20px}.sk-line{height:14px;background:var(--color-border);border-radius:4px;animation:skShimmer 1.5s ease-in-out infinite;animation-delay:.1s}.sk-line-short{height:18px;width:60%}.sk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1200px;margin:0 auto;padding:0 20px}.sk-card{text-align:center}.sk-img{width:100%;aspect-ratio:3/4;background:var(--color-bg-warm);border-radius:var(--radius-md);animation:skShimmer 1.5s ease-in-out infinite}@keyframes skShimmer{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}@media(max-width:768px){.sk-grid{grid-template-columns:repeat(2,1fr)}.sk-hero{height:50vh}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}button:focus-visible,.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::selection{background:var(--color-accent-glow);color:var(--color-primary)}#nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-fixed);padding:var(--space-4) var(--space-10);transition:all var(--duration-slow) var(--ease-out-expo);height:var(--nav-height);display:flex;align-items:center}#nav.scrolled{background-color:#fafaf9eb;box-shadow:0 1px #0000000a;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.nav-container{max-width:var(--container-max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px}.nav-logo{font-family:var(--font-heading);font-size:26px;font-weight:400;letter-spacing:var(--tracking-widest);text-decoration:none;transition:color var(--duration-slow) var(--ease-out-expo);line-height:44px;display:inline-block;padding:0 var(--space-1)}.nav-links{display:flex;gap:var(--space-10)}.nav-link{font-size:var(--text-sm);font-family:var(--font-body);font-weight:400;letter-spacing:var(--tracking-wide);text-decoration:none;position:relative;transition:opacity var(--duration-normal) var(--ease-out-expo),color var(--duration-slow) var(--ease-out-expo);padding:var(--space-3) 0;color:inherit}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1.5px;background-color:var(--color-accent);transition:width var(--duration-slow) var(--ease-out-expo)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link:hover{opacity:.75}.nav-menu-btn{display:none;background:none;border:none;font-size:24px;cursor:pointer;padding:var(--space-2);color:inherit}.nav-mobile-brand{display:none;font-family:var(--font-heading);font-size:20px;font-weight:400;letter-spacing:var(--tracking-wide);color:inherit;text-decoration:none;line-height:44px}.nav-actions{display:flex;align-items:center;gap:var(--space-2)}.nav-search-btn{background:none;border:none;cursor:pointer;color:inherit;padding:var(--space-2);display:flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;transition:opacity var(--duration-fast) var(--ease-out-expo)}.nav-search-btn:hover{opacity:.7}.nav-search-label{font-size:11px;letter-spacing:1px;margin-left:2px;display:inline}.nav-search-btn{gap:var(--space-1);background:var(--color-border-light);border-radius:var(--radius-full);padding:var(--space-2) var(--space-4)}.nav-search-wrap{display:flex;flex:1;max-width:360px;position:relative}@media(max-width:768px){.nav-search-wrap{display:none}.nav-search-wrap.open{display:flex}}.nav-search-input{width:100%;padding:var(--space-3) 0;font-size:var(--text-sm);font-family:var(--font-body);background:transparent;border:none;border-bottom:1.5px solid var(--color-text-muted);outline:none;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out-expo)}.nav-search-input:focus{border-color:var(--color-accent)}.nav-search-input::placeholder{color:var(--color-text-muted)}.nav-search-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);margin-top:0;overflow:hidden;z-index:var(--z-dropdown)}.nav-search-dropdown.show{display:block}.nav-search-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--color-text);transition:background var(--duration-fast) var(--ease-out-expo)}.nav-search-item:hover{background:var(--color-surface-hover)}.nav-search-thumb{width:40px;height:50px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.nav-search-info{display:flex;flex-direction:column;gap:2px}.nav-search-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.nav-search-cat{font-size:var(--text-xs);color:var(--color-secondary)}.nav-search-empty{padding:var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}#nav.transparent .nav-logo,#nav.transparent .nav-link,#nav.transparent .nav-menu-btn,#nav.transparent .nav-mobile-brand,#nav.transparent .nav-search-btn{color:#fff}#nav.transparent .nav-link:after{background-color:#fff}#nav.transparent.scrolled .nav-logo,#nav.transparent.scrolled .nav-link,#nav.transparent.scrolled .nav-menu-btn,#nav.transparent.scrolled .nav-search-btn{color:var(--color-text)}#nav.transparent.scrolled .nav-link:after{background-color:var(--color-accent)}.nav-cart-btn{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:inherit;text-decoration:none;transition:opacity var(--duration-fast) var(--ease-out-expo)}.nav-cart-btn:hover{opacity:.7}.cart-badge{position:absolute;top:4px;right:2px;min-width:16px;height:16px;border-radius:var(--radius-full);background:var(--color-error);color:#fff;font-size:10px;font-weight:500;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.hero{height:100vh;min-height:500px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-bg{position:absolute;inset:0}.hero-bg img{width:100%;height:100%;object-fit:cover;transition:opacity .8s ease}.hero-carousel-dots{position:absolute;bottom:24px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:10}.hero-carousel-dot{width:8px;height:8px;border-radius:50%;background:#fff6;cursor:pointer;transition:all .3s;border:none}.hero-carousel-dot.active{background:#fff;width:24px;border-radius:4px}.hero-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:44px;height:44px;border-radius:50%;background:#ffffff26;border:none;color:#fff;font-size:20px;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.hero-carousel-arrow:hover{background:#ffffff4d}.hero-carousel-prev{left:16px}.hero-carousel-next{right:16px}@media(max-width:768px){.hero-carousel-arrow{width:36px;height:36px;font-size:16px}.hero-carousel-prev{left:8px}.hero-carousel-next{right:8px}}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#00000059,#00000026 40%,#00000059);z-index:0}.hero-content{position:relative;z-index:1;text-align:center;color:#fff;padding:0 var(--space-6)}.hero-title{font-family:var(--font-heading);font-size:var(--text-hero);font-weight:400;letter-spacing:var(--tracking-widest);margin-bottom:var(--space-6);text-shadow:0 2px 30px rgba(0,0,0,.3);line-height:var(--leading-tight)}.hero-slogan{font-size:var(--text-lg);font-family:var(--font-body);font-weight:300;letter-spacing:var(--tracking-wider);opacity:.9;text-shadow:0 1px 15px rgba(0,0,0,.2);margin-bottom:var(--space-8)}.hero-cta-btn{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:15px 48px;border:1.5px solid rgba(255,255,255,.55);color:#fff;text-decoration:none;font-size:var(--text-sm);font-family:var(--font-body);font-weight:400;letter-spacing:var(--tracking-wide);transition:all var(--duration-normal) var(--ease-out-expo);border-radius:var(--radius-sm);backdrop-filter:blur(4px)}.hero-cta-btn:hover{background:#fff;color:var(--color-primary);border-color:#fff;transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.hero-scroll-indicator{position:absolute;bottom:var(--space-8);left:50%;transform:translate(-50%);z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);opacity:.6;transition:opacity var(--duration-normal) var(--ease-out-expo)}.hero-scroll-indicator:hover{opacity:1}.hero-scroll-line{width:1px;height:40px;background:#ffffff80;animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{transform:scaleY(.5);opacity:.3}50%{transform:scaleY(1);opacity:1}}.brand-section{background-color:var(--color-bg-warm);text-align:center;padding:var(--space-section) var(--space-10)}.brand-content{max-width:640px;margin:0 auto}.brand-big{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:400;font-style:italic;letter-spacing:var(--tracking-tight);color:var(--color-text);margin-bottom:var(--space-4);line-height:var(--leading-snug)}.brand-cn{font-size:var(--text-base);font-family:var(--font-body);letter-spacing:var(--tracking-wider);color:var(--color-accent);margin-bottom:var(--space-8)}.brand-desc{font-size:var(--text-base);line-height:var(--leading-loose);color:var(--color-text-secondary);max-width:520px;margin:0 auto}.section{padding:var(--space-section) var(--space-10);max-width:var(--container-max);margin:0 auto}.section-title{font-family:var(--font-heading);font-size:var(--text-sm);font-weight:400;letter-spacing:var(--tracking-wider);text-align:center;margin-bottom:var(--space-16);color:var(--color-text);position:relative;padding-bottom:var(--space-4)}.section-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:40px;height:1px;background:var(--color-accent)}.title-en{font-family:var(--font-body);color:var(--color-text-muted);margin-left:var(--space-3);font-size:var(--text-xs);letter-spacing:var(--tracking-widest)}.daily-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-16);max-width:900px;margin:0 auto}.daily-card{display:flex;gap:var(--space-6);align-items:flex-start;padding:var(--space-6);background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);transition:all var(--duration-normal) var(--ease-out-expo)}.daily-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:transparent}.daily-avatar{flex-shrink:0;width:80px;height:80px;border-radius:50%;overflow:hidden;box-shadow:var(--shadow-sm)}.daily-avatar img{width:100%;height:100%;object-fit:cover}.daily-info{flex:1}.daily-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.daily-name{font-size:var(--text-sm);font-family:var(--font-heading);letter-spacing:var(--tracking-wide);font-weight:500}.daily-identity{display:inline-block;font-size:var(--text-xs);color:var(--color-accent);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.daily-date{font-size:var(--text-xs);color:var(--color-text-muted)}.daily-quote{font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-4);font-style:italic}.daily-products{display:flex;gap:var(--space-3);position:relative}.daily-product-link{display:block;width:60px;height:80px;overflow:hidden;border-radius:var(--radius-sm)}.daily-product-link img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out-expo)}.daily-product-link:hover img{transform:scale(1.08)}.category-blocks{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-16)}.category-block{text-align:center}.category-preview{margin-bottom:var(--space-6);overflow:hidden;border-radius:var(--radius-lg)}.category-preview-single{aspect-ratio:4/5;position:relative}.category-hero-img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-glacial) var(--ease-out-expo)}.category-block:hover .category-hero-img{transform:scale(1.04)}.category-preview-link{display:block;text-decoration:none;color:inherit}.category-images{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden}.category-thumb{overflow:hidden;aspect-ratio:1}.category-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-glacial) var(--ease-out-expo)}.category-block:hover .category-thumb img{transform:scale(1.06)}.category-name{font-family:var(--font-heading);font-size:var(--text-lg);letter-spacing:var(--tracking-wide);font-weight:400;margin-bottom:var(--space-3)}.category-link{font-size:var(--text-sm);color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-out-expo);display:inline-block;padding:var(--space-2) 0}.category-link:hover{color:var(--color-text)}.new-arrival-banner{display:block;text-align:center;padding:var(--space-12) var(--space-5);background:var(--color-accent-glow);text-decoration:none;transition:background var(--duration-normal) var(--ease-out-expo);border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.new-arrival-banner:hover{background:#a162072e}.new-arrival-banner span{font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:var(--tracking-widest);color:var(--color-accent)}.shoot-section{background-color:var(--color-primary);color:#fff;text-align:center;padding:var(--space-section) var(--space-10);max-width:none}.shoot-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:300;letter-spacing:var(--tracking-widest);margin-bottom:var(--space-8);line-height:var(--leading-snug)}.shoot-cases{display:flex;gap:var(--space-4);justify-content:center;margin-bottom:var(--space-8);flex-wrap:wrap}.shoot-case{text-align:center}.shoot-case img{width:120px;height:160px;object-fit:cover;border-radius:var(--radius-lg);margin-bottom:var(--space-2);transition:transform var(--duration-normal) var(--ease-out-expo)}.shoot-case:hover img{transform:scale(1.04)}.shoot-case span{display:block;font-size:var(--text-xs);color:#ffffff80;letter-spacing:var(--tracking-wide)}.shoot-desc{font-size:var(--text-base);line-height:var(--leading-loose);color:#ffffffa6;margin-bottom:var(--space-12)}.shoot-portfolio-link{display:inline-block;margin-top:var(--space-4);font-size:var(--text-sm);color:#ffffff80;text-decoration:none;letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo)}.shoot-portfolio-link:hover{color:#fff}.social-section{background:var(--color-bg-card);padding:var(--space-section) var(--space-10)}.social-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);max-width:var(--container-max);margin:0 auto}.social-card{padding:var(--space-6);background:var(--color-bg-warm);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);transition:all var(--duration-normal) var(--ease-out-expo)}.social-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:15px 48px;font-size:var(--text-sm);font-family:var(--font-body);font-weight:400;letter-spacing:var(--tracking-wide);text-decoration:none;cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);border:none;border-radius:var(--radius-sm);position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.btn:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,.2) 0%,transparent 70%);opacity:0;transition:opacity var(--duration-instant);pointer-events:none}.btn:active:after{opacity:1}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-soft);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:transparent;color:var(--color-text);border:1.5px solid var(--color-primary)}.btn-secondary:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-1px)}.shoot-section .btn-secondary{color:#fff;border-color:#ffffffb3}.shoot-section .btn-secondary:hover{background-color:#fff;color:var(--color-primary);border-color:#fff}.btn-small{padding:var(--space-2) var(--space-5);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);border-radius:var(--radius-sm)}.btn-text{background:none;border:none;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);transition:color var(--duration-fast) var(--ease-out-expo);padding:0}.btn-text:hover{color:var(--color-error)}.shop-section{padding-top:calc(var(--nav-height) + var(--space-16))}.shop-tabs{display:flex;justify-content:center;gap:var(--space-10);margin-bottom:var(--space-16);flex-wrap:wrap}.tab-btn{background:none;border:none;font-size:var(--text-sm);font-family:var(--font-body);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);cursor:pointer;padding:var(--space-2) 0;position:relative;transition:color var(--duration-normal) var(--ease-out-expo)}.tab-btn:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--color-accent);transition:width var(--duration-normal) var(--ease-out-expo)}.tab-btn.active,.tab-btn:hover{color:var(--color-text)}.tab-btn.active:after{width:100%}.shop-count{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:-50px;margin-bottom:var(--space-10)}.shop-sort-row{display:flex;justify-content:flex-end;max-width:var(--container-max);margin:0 auto var(--space-6);padding:0 var(--space-4)}.sort-dropdown{position:relative;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);cursor:pointer;user-select:none}.sort-current{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) 0}.sort-options{display:none;position:absolute;top:100%;right:0;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:160px;z-index:var(--z-dropdown);overflow:hidden;border:1px solid var(--color-border-light)}.sort-dropdown.open .sort-options{display:block}.sort-option{padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);transition:background var(--duration-fast) var(--ease-out-expo);white-space:nowrap}.sort-option:hover{background:var(--color-surface-hover)}.sort-option.active{color:var(--color-text);font-weight:500}.shop-filter-row{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);max-width:var(--container-max);margin:0 auto var(--space-6);padding:0 var(--space-4)}.filter-group{position:relative}.filter-toggle{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);background:var(--color-border-light);border:1px solid transparent;border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast);font-family:var(--font-body)}.filter-toggle:hover{border-color:var(--color-border)}.filter-toggle.active{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-accent-glow, rgba(201,169,97,.08))}.filter-panel{display:none;position:absolute;top:calc(100% + 4px);right:0;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:140px;z-index:var(--z-dropdown);overflow:hidden;border:1px solid var(--color-border-light);padding:var(--space-1) 0}.filter-panel .filter-option{display:block;width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);background:none;border:none;text-align:left;cursor:pointer;font-family:var(--font-body);transition:background var(--duration-fast);white-space:nowrap}.filter-panel .filter-option:hover{background:var(--color-surface-hover)}.filter-panel .filter-option.active{color:var(--color-text);font-weight:500}.filter-clear{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);background:none;border:none;cursor:pointer;text-decoration:underline;font-family:var(--font-body);letter-spacing:var(--tracking-wide)}.filter-clear:hover{color:var(--color-text)}.nav-search-view-all{display:block;text-align:center;padding:var(--space-3) var(--space-4);font-size:var(--text-xs);color:var(--color-accent);text-decoration:none;border-top:1px solid var(--color-border-light);transition:background var(--duration-fast) var(--ease-out-expo)}.nav-search-view-all:hover{background:var(--color-surface-hover)}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8)}.product-card{cursor:pointer;text-align:center;transition:transform var(--duration-normal) var(--ease-out-expo),box-shadow var(--duration-normal) var(--ease-out-expo);position:relative;border-radius:var(--radius-md);overflow:hidden}.product-card:hover{transform:translateY(-6px)}.product-card:hover .product-images{box-shadow:var(--shadow-card-hover)}.product-images{position:relative;aspect-ratio:4/5;overflow:hidden;background-color:#f5f5f3;margin-bottom:var(--space-4);border-radius:var(--radius-md);transition:box-shadow var(--duration-normal) var(--ease-out-expo)}.product-images img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity var(--duration-glacial) var(--ease-out-expo),transform var(--duration-slow) var(--ease-out-expo)}.product-card:hover .product-images img{transform:scale(1.03)}.product-img-default{opacity:1}.product-img-hover,.product-card:hover .product-img-default{opacity:0}.product-img-hover{filter:brightness(1.05) contrast(1.08) saturate(1.05)}.product-card:hover .product-img-hover{opacity:1}.product-name{font-size:var(--text-sm);font-family:var(--font-body);font-weight:400;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2);transition:color var(--duration-fast) var(--ease-out-expo)}.product-card:hover .product-name{color:var(--color-accent)}.product-info{cursor:pointer;padding:0 var(--space-1)}.product-price{font-size:var(--text-sm);color:var(--color-text-secondary)}.product-badge{position:absolute;top:var(--space-3);left:var(--space-3);z-index:2;padding:3px 10px;border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-body);letter-spacing:var(--tracking-wider);color:#fff}.badge-new{background:var(--color-primary)}.badge-hot{background:var(--color-error)}.wishlist-heart{position:absolute;top:var(--space-2);right:var(--space-2);z-index:5;width:32px;height:32px;border-radius:50%;background:#ffffffe6;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-normal) var(--ease-spring);box-shadow:var(--shadow-sm);padding:0;backdrop-filter:blur(8px)}.wishlist-heart:hover{background:#fff;transform:scale(1.12)}.wishlist-heart.wishlisted{background:#fffffff2}.wishlist-heart.bouncing{animation:heartBounce .3s var(--ease-out-expo)}@keyframes heartBounce{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.wishlist-heart-sm{width:24px;height:24px;top:2px;right:2px;background:#ffffffd9;box-shadow:0 1px 2px #0000000f}.wishlist-heart-sm svg{width:11px;height:11px}.product-breadcrumb{padding:calc(var(--nav-height) + var(--space-3)) var(--space-10) var(--space-3);max-width:var(--container-max);margin:0 auto var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);border-bottom:1px solid var(--color-border-light)}.product-breadcrumb a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast)}.product-breadcrumb a:hover{color:var(--color-text)}.breadcrumb-current{color:var(--color-text-secondary)}.product-detail{padding-top:var(--nav-height)}.product-detail-container{display:grid;grid-template-columns:5fr 4fr;min-height:100vh}.product-detail-left{position:sticky;top:0;height:100vh;display:flex;align-items:center;justify-content:center;background-color:#f5f5f3;padding:var(--space-8);border-right:1px solid var(--color-accent)}.product-detail-images{max-width:100%;max-height:88vh}.product-detail-images img{width:100%;height:100%;object-fit:contain}.product-detail-img-main{width:100%;height:auto;object-fit:contain}.product-gallery{width:100%}.gallery-main{width:100%;margin-bottom:var(--space-3)}.gallery-main img{width:100%;max-height:68vh;object-fit:contain;border-radius:var(--radius-md)}.gallery-thumbs{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:var(--space-1);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.gallery-thumbs::-webkit-scrollbar{height:3px}.gallery-thumbs::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.gallery-thumb{width:64px;height:80px;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;opacity:.55;transition:all var(--duration-fast) var(--ease-out-expo);scroll-snap-align:start}.gallery-thumb.active,.gallery-thumb:hover{border-color:var(--color-accent);opacity:1}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.lightbox-overlay{position:fixed;inset:0;background:#000000eb;z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.lightbox-overlay.active{opacity:1;pointer-events:auto}.lightbox-overlay img{max-width:90vw;max-height:85vh;object-fit:contain;transform-origin:center center;transition:transform .15s ease;cursor:zoom-out;border-radius:4px}.lightbox-overlay img.zoomed{cursor:grab}.lightbox-close{position:fixed;top:20px;right:24px;color:#fff;font-size:32px;cursor:pointer;z-index:10001;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:50%;border:none;line-height:1;transition:background .2s}.lightbox-close:hover{background:#fff3}.lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);color:#fff;font-size:36px;cursor:pointer;z-index:10001;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:50%;border:none;transition:background .2s;user-select:none}.lightbox-nav:hover{background:#ffffff40}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-counter{position:fixed;bottom:24px;left:50%;transform:translate(-50%);color:#fff9;font-size:13px;letter-spacing:1px;z-index:10001}.lightbox-hint{position:fixed;bottom:50px;left:50%;transform:translate(-50%);color:#ffffff80;font-size:11px;letter-spacing:1.5px;z-index:10001;pointer-events:none}.gallery-main{position:relative}.gallery-main:after{content:"\1f50d";position:absolute;bottom:12px;right:12px;font-size:16px;color:#ffffffb3;background:#00000059;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:.7;pointer-events:none;transition:opacity .2s}.gallery-main:hover:after{opacity:1}.product-detail-right{padding:var(--space-20) var(--space-10);display:flex;align-items:flex-start;padding-top:var(--space-30)}.product-detail-content{max-width:360px}.product-category{font-size:var(--text-xs);font-family:var(--font-body);letter-spacing:var(--tracking-wider);color:var(--color-accent);display:block;margin-bottom:var(--space-4)}.product-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:400;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-6);line-height:var(--leading-snug)}.product-desc{font-size:var(--text-base);line-height:var(--leading-loose);color:var(--color-text-secondary);margin-bottom:var(--space-8)}.product-price-large{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-2)}.product-actions{display:flex;gap:var(--space-4);margin-bottom:var(--space-10)}.product-actions .btn{flex:1;text-align:center}.product-note{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-loose)}.product-note p:before{content:"\b7  "}.product-inspiration{font-style:italic;color:var(--color-accent);margin-top:var(--space-3);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.product-inspiration:before{content:""!important}.product-specs{margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-bg-warm);border-radius:var(--radius-md)}.product-extra-links{display:flex;gap:var(--space-6);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border-light)}.product-link-btn{background:none;border:none;font-size:var(--text-sm);color:var(--color-accent);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo);padding:var(--space-1) 0}.product-link-btn:hover{color:var(--color-text)}.btn-wishlist-detail{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;margin-top:var(--space-3);padding:14px 48px;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);background:transparent;color:var(--color-text);border:1.5px solid var(--color-primary);cursor:pointer;font-family:var(--font-body);transition:all var(--duration-normal) var(--ease-out-expo);border-radius:var(--radius-sm)}.btn-wishlist-detail:hover{background:var(--color-primary);color:#fff}.btn-wishlist-detail.wishlisted{background:var(--color-error);color:#fff;border-color:var(--color-error)}.related-section{background-color:var(--color-bg-card)}.faq-section{margin-top:var(--space-10)}.faq-list{margin:0}.faq-item{border-bottom:1px solid var(--color-border-light)}.faq-q{padding:var(--space-5) 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-base);font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo)}.faq-q:hover{color:var(--color-accent)}.faq-q span{font-size:20px;color:var(--color-accent);transition:transform var(--duration-normal) var(--ease-out-expo)}.faq-item.open .faq-q span{transform:rotate(45deg)}.faq-a{max-height:0;overflow:hidden;transition:max-height var(--duration-slow) var(--ease-out-expo);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed)}.faq-item.open .faq-a{max-height:300px;padding-bottom:var(--space-5)}.grass-section{padding-top:calc(var(--nav-height) + var(--space-10))}.grass-feed{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-8)}.grass-tag-bar{display:flex;gap:var(--space-2);overflow-x:auto;padding:0 0 var(--space-5);max-width:640px;margin:-30px auto var(--space-3);-webkit-overflow-scrolling:touch}.grass-tag-bar::-webkit-scrollbar{display:none}.grass-tag-chip{flex-shrink:0;padding:6px 16px;border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-bg-card);font-size:var(--text-xs);font-family:var(--font-body);letter-spacing:var(--tracking-wide);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out-expo)}.grass-tag-chip:hover{border-color:var(--color-text-muted)}.grass-tag-chip.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-bg-warm)}.grass-sort-row{display:flex;justify-content:center;gap:var(--space-6);margin-bottom:var(--space-8)}.grass-sort-btn{background:none;border:none;font-size:var(--text-sm);font-family:var(--font-body);letter-spacing:var(--tracking-wide);color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) 0;border-bottom:2px solid transparent;transition:all var(--duration-fast) var(--ease-out-expo)}.grass-sort-btn.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.grass-topic-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--space-3)}.grass-topic-tag{font-size:var(--text-xs);color:var(--color-accent);background:var(--color-accent-glow);padding:2px 10px;border-radius:var(--radius-full);letter-spacing:var(--tracking-wide);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo)}.grass-topic-tag:hover{background:#a1620733}.grass-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-border-light);transition:all var(--duration-normal) var(--ease-out-expo)}.grass-card:hover{box-shadow:var(--shadow-md);border-color:transparent}.grass-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.grass-author,.grass-user-info{display:flex;align-items:center;gap:var(--space-3)}.grass-user-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--color-bg-warm);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-expo);margin-right:var(--space-3)}.grass-user-avatar:hover{transform:scale(1.1)}.grass-user-avatar img{width:100%;height:100%;object-fit:cover}.grass-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--color-bg-warm);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-expo)}.grass-avatar:hover{transform:scale(1.1)}.grass-avatar img{width:100%;height:100%;object-fit:cover}.grass-author-info,.grass-user-info{display:flex;flex-direction:column}.grass-author-name,.grass-user-name{font-size:var(--text-sm);font-family:var(--font-body);font-weight:500;letter-spacing:var(--tracking-wide)}.grass-time,.grass-post-time{font-size:var(--text-xs);color:var(--color-text-muted)}.grass-add-friend-btn{background:var(--color-accent);color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-out-expo);margin-left:auto;flex-shrink:0}.grass-add-friend-btn:hover{background:var(--color-accent-soft);transform:scale(1.1)}.grass-card-text{font-size:var(--text-base);line-height:var(--leading-loose);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.grass-card-body{padding:0}.grass-post-menu-btn{background:none;border:none;font-size:16px;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);letter-spacing:2px;transition:color var(--duration-fast) var(--ease-out-expo)}.grass-post-menu-btn:hover{color:var(--color-text)}.grass-images-single{margin-bottom:var(--space-4);border-radius:var(--radius-md);overflow:hidden}.grass-images-single img{width:100%;max-height:520px;object-fit:cover;border-radius:var(--radius-md)}.grass-images-double{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:var(--space-4);border-radius:var(--radius-md);overflow:hidden}.grass-images-triple{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:var(--space-4)}.grass-images-triple .grass-img-wrap:first-child{grid-column:1 / -1}.grass-img-wrap{overflow:hidden;aspect-ratio:4/5;border-radius:var(--radius-sm);transition:transform var(--duration-slow) var(--ease-out-expo)}.grass-img-wrap:hover{transform:scale(1.02)}.grass-img-wrap img{width:100%;height:100%;object-fit:cover}.grass-images-scroll{display:flex;overflow-x:auto;gap:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px;margin-bottom:var(--space-4);-ms-overflow-style:none;scrollbar-width:thin;position:relative}.grass-images-scroll:after{content:"";position:sticky;right:0;top:0;bottom:0;width:32px;flex-shrink:0;background:linear-gradient(to right,transparent,rgba(0,0,0,.08));pointer-events:none;border-radius:0 var(--radius-md) var(--radius-md) 0;z-index:1}.grass-images-scroll::-webkit-scrollbar{height:3px}.grass-images-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.grass-img-scroll-item{flex-shrink:0;width:62vw;max-width:380px;min-width:240px;scroll-snap-align:start;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3/4;cursor:pointer;transition:opacity .2s ease}.grass-img-scroll-item:last-child{margin-right:8px}.grass-img-scroll-item img{width:100%;height:100%;object-fit:cover;display:block}.grass-video-wrap{margin-bottom:var(--space-4);border-radius:var(--radius-md);overflow:hidden;background:#000}.grass-video-wrap video{display:block;max-height:480px;width:100%}.grass-product-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.grass-tag-link{font-size:var(--text-xs);color:var(--color-accent);text-decoration:none;padding:4px 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);transition:all var(--duration-fast) var(--ease-out-expo)}.grass-tag-link:hover{background-color:var(--color-accent);color:#fff;border-color:var(--color-accent)}.grass-card-actions{display:flex;gap:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--color-border-light);margin-top:var(--space-3)}.grass-action-btn{background:none;border:none;cursor:pointer;font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text-muted);display:flex;align-items:center;gap:6px;transition:color var(--duration-fast) var(--ease-out-expo);padding:var(--space-1) 0}.grass-action-btn:hover{color:var(--color-text)}.grass-like-btn.liked{color:var(--color-error)}.grass-like-count{font-size:var(--text-sm)}.grass-comment-btn svg{vertical-align:middle}.grass-comments{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-4)}.grass-comments-list{margin-bottom:var(--space-4)}.grass-comment-item{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-light);display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:baseline}.grass-comment-item:last-child{border-bottom:none}.grass-comment-user{font-size:var(--text-sm);font-weight:500;color:var(--color-accent)}.grass-comment-text{font-size:var(--text-sm);color:var(--color-text-secondary);flex:1}.grass-comment-time{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.grass-comment-input-wrap{display:flex;gap:var(--space-2)}.grass-comment-input{flex:1;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);border:1.5px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-card);outline:none;transition:border-color var(--duration-fast) var(--ease-out-expo);color:var(--color-text)}.grass-comment-input:focus{border-color:var(--color-accent)}.grass-comment-submit{background:var(--color-primary);color:#fff;border:none;padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--text-sm);font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo)}.grass-comment-submit:hover{background:var(--color-primary-soft)}.grass-fab{position:fixed;bottom:var(--space-8);right:var(--space-8);width:56px;height:56px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:28px;border:none;cursor:pointer;z-index:var(--z-sticky);box-shadow:var(--shadow-lg);transition:all var(--duration-normal) var(--ease-spring);display:flex;align-items:center;justify-content:center}.grass-fab:hover{transform:scale(1.12);background:var(--color-primary-soft);box-shadow:var(--shadow-xl)}.grass-fab:active{transform:scale(.95)}.grass-upload-area{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-10);text-align:center;color:var(--color-text-muted);cursor:pointer;margin-bottom:var(--space-5);transition:all var(--duration-fast) var(--ease-out-expo)}.grass-upload-area:hover{border-color:var(--color-accent);color:var(--color-accent)}.grass-create-text{width:100%;padding:var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-warm);resize:vertical;outline:none;margin-bottom:var(--space-4);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out-expo)}.grass-create-text:focus{border-color:var(--color-accent)}.grass-product-select{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-body);border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-warm);outline:none;color:var(--color-text)}.grass-publish-btn{width:100%;margin-top:var(--space-5)}.grass-image-previews{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.image-preview-item{position:relative;width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-light)}.image-preview-item img{width:100%;height:100%;object-fit:cover}.image-remove-btn{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.grass-video-upload{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;color:var(--color-text-muted);cursor:pointer;margin-bottom:var(--space-5);transition:all var(--duration-fast) var(--ease-out-expo)}.grass-video-upload:hover{border-color:var(--color-accent);color:var(--color-accent)}.grass-video-preview{margin-bottom:var(--space-3)}.video-preview-item{position:relative;background:var(--color-bg-warm);border-radius:var(--radius-md);overflow:hidden}.video-preview-item video{display:block;max-height:200px;width:100%}.video-file-name{display:block;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}.video-remove-btn{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.post-detail-section{padding-top:calc(var(--nav-height) + var(--space-10));max-width:640px;margin:0 auto;padding-bottom:100px;padding-left:var(--space-6);padding-right:var(--space-6)}.post-back-btn{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:none;font-size:var(--text-sm);font-family:var(--font-body);color:var(--color-text-secondary);cursor:pointer;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-6);transition:color var(--duration-fast) var(--ease-out-expo);padding:var(--space-2) 0}.post-back-btn:hover{color:var(--color-text)}.post-hero-img{width:100%;aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-6);background:var(--color-bg-warm)}.post-hero-img img{width:100%;height:100%;object-fit:cover}.post-author-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6)}.post-author-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;flex-shrink:0}.post-author-avatar img{width:100%;height:100%;object-fit:cover}.post-author-info{display:flex;flex-direction:column;gap:2px}.post-author-name{font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-wide)}.post-time{font-size:var(--text-xs);color:var(--color-text-muted)}.post-content-full{font-size:var(--text-base);line-height:var(--leading-loose);color:var(--color-text-secondary);margin-bottom:var(--space-8)}.post-related-products{margin-bottom:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-border-light)}.post-product-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-warm);border-radius:var(--radius-md);text-decoration:none;color:inherit;transition:background var(--duration-fast) var(--ease-out-expo);margin-bottom:var(--space-2)}.post-product-card:hover{background:var(--color-border-light)}.post-product-card img{width:48px;height:60px;object-fit:cover;border-radius:var(--radius-sm)}.post-product-info{display:flex;flex-direction:column;gap:2px}.post-product-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.post-product-price{font-size:var(--text-xs);color:var(--color-text-secondary)}.post-comments-section{border-top:1px solid var(--color-border-light);padding-top:var(--space-6);margin-bottom:var(--space-10)}.post-comment-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light)}.post-comment-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;flex-shrink:0}.post-comment-avatar img{width:100%;height:100%;object-fit:cover}.post-comment-body{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:baseline;flex:1}.post-comment-user{font-size:var(--text-xs);color:var(--color-accent);font-weight:500}.post-comment-text{font-size:var(--text-sm);color:var(--color-text-secondary);flex:1}.post-comment-time{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.post-comment-input-wrap{display:flex;gap:var(--space-2);margin-top:var(--space-4)}.post-comment-input{flex:1;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);font-family:var(--font-body);outline:none;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out-expo)}.post-comment-input:focus{border-color:var(--color-accent)}.post-comment-send{background:var(--color-primary);color:#fff;border:none;padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-size:var(--text-sm);font-family:var(--font-body);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo)}.post-comment-send:hover{background:var(--color-primary-soft)}.post-like-bar{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-card);border-top:1px solid var(--color-border-light);padding:var(--space-3) var(--space-6);padding-bottom:calc(12px + env(safe-area-inset-bottom));z-index:calc(var(--z-fixed) + 1);display:flex;justify-content:center}.post-like-btn{display:flex;align-items:center;gap:var(--space-2);background:none;border:none;font-size:var(--text-base);font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-out-expo);padding:var(--space-2) var(--space-6)}.post-like-btn:hover{color:var(--color-text)}.post-like-btn.liked{color:var(--color-error)}.profile-section{padding-top:calc(var(--nav-height) + var(--space-10));max-width:560px;margin:0 auto;padding-left:var(--space-6);padding-right:var(--space-6);padding-bottom:var(--space-20)}.profile-hero{display:flex;flex-direction:column;align-items:center;padding:var(--space-20) 0 var(--space-16)}.profile-avatar-lg{width:88px;height:88px;border-radius:50%;overflow:hidden;background:var(--color-bg-warm);cursor:pointer;margin-bottom:var(--space-5);transition:all var(--duration-normal) var(--ease-out-expo);box-shadow:var(--shadow-sm)}.profile-avatar-lg:hover{opacity:.85;transform:scale(1.05);box-shadow:var(--shadow-md)}.profile-avatar-lg img{width:100%;height:100%;object-fit:cover}.profile-name-lg{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:400;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.profile-vip-info{font-size:var(--text-sm);color:var(--color-accent);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-3)}.profile-points-bar{width:200px;height:4px;border-radius:2px;background:var(--color-border-light);margin:0 auto var(--space-2);overflow:hidden}.profile-points-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width var(--duration-glacial) var(--ease-out-expo)}.profile-points-hint{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-2)}.profile-points-detail-btn{background:none;border:none;font-size:var(--text-xs);color:var(--color-accent);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-3);transition:color var(--duration-fast) var(--ease-out-expo)}.profile-points-detail-btn:hover{color:var(--color-text)}.profile-edit-link{background:none;border:none;font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo)}.profile-edit-link:hover{color:var(--color-text)}.profile-register-hint{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-2)}.profile-flywheel{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-6)}.flywheel-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);text-align:center;cursor:pointer;transition:all var(--duration-normal) var(--ease-out-expo);border:1px solid var(--color-border-light)}.flywheel-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:transparent}.flywheel-icon{display:block;margin-bottom:var(--space-3);color:var(--color-text)}.flywheel-label{display:block;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);margin-bottom:2px;color:var(--color-text)}.flywheel-count{font-size:var(--text-xs);color:var(--color-text-muted)}.profile-tools{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-4)}.profile-tools .flywheel-card{position:relative}.profile-tool-badge{position:absolute;top:var(--space-2);right:var(--space-2);min-width:18px;height:18px;border-radius:9px;background:var(--color-error);color:#fff;font-size:10px;display:flex;align-items:center;justify-content:center;padding:0 5px;z-index:2}.profile-row-link{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4);background:var(--color-bg-warm);border-radius:var(--radius-lg);text-decoration:none;color:inherit;margin-bottom:var(--space-2);transition:background var(--duration-fast) var(--ease-out-expo);font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.profile-row-link:hover{background:var(--color-border-light)}.profile-row-arrow{font-size:var(--text-xs);color:var(--color-text-muted)}.profile-card{background:var(--color-bg-card);border-radius:var(--radius-lg);margin-bottom:var(--space-3);border:1px solid var(--color-border-light);overflow:hidden}.profile-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo)}.profile-card-header:hover{background:var(--color-surface-hover)}.profile-card-title{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.profile-card-arrow{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.profile-card-preview{padding:0 var(--space-6) var(--space-5)}.profile-card-empty{padding:0 var(--space-6) var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted)}.profile-card-expand{padding:0 var(--space-6) var(--space-6);border-top:1px solid var(--color-border-light);padding-top:var(--space-5)}.profile-bottom-actions{display:flex;justify-content:center;gap:var(--space-6);margin-top:var(--space-8)}.profile-logout-btn{display:block;margin:var(--space-10) auto 0;background:none;border:none;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo)}.profile-logout-btn:hover{color:var(--color-error)}.profile-clear-cache-btn{display:block;margin:var(--space-2) auto 0;background:none;border:none;font-size:var(--text-xs);color:var(--color-border);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:color var(--duration-fast) var(--ease-out-expo)}.profile-clear-cache-btn:hover{color:var(--color-text-muted)}.profile-empty{text-align:center;color:var(--color-text-muted);padding:var(--space-8) 0;font-size:var(--text-sm)}.profile-empty p{margin-bottom:var(--space-4)}.empty-state-guide{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.empty-state-guide .es-icon{font-size:48px;display:block;margin-bottom:16px;opacity:.6}.empty-state-guide .es-title{font-size:15px;color:var(--color-text-secondary);margin-bottom:8px;font-weight:500}.empty-state-guide .es-desc{font-size:13px;margin-bottom:20px;line-height:1.6}.empty-state-guide .btn{margin:0 4px}.order-mini{display:flex;align-items:center;gap:var(--space-3)}.order-mini-img{width:48px;height:60px;object-fit:cover;border-radius:var(--radius-sm)}.order-mini-info{display:flex;flex-direction:column;gap:var(--space-1)}.order-mini-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.order-mini-status{font-size:var(--text-xs);color:var(--color-text-muted)}.address-mini{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browse-thumbs{display:flex;gap:var(--space-2);overflow-x:auto}.browse-thumb-link{width:60px;height:75px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.browse-thumb-link img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-fast) var(--ease-out-expo)}.browse-thumb-link:hover img{transform:scale(1.05)}.orders-list,.orders-list-new{display:flex;flex-direction:column;gap:var(--space-3)}.order-card,.order-card-new{background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-4);text-decoration:none;color:inherit;transition:all var(--duration-fast) var(--ease-out-expo)}.order-card-new:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.order-header,.ocn-header{display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.order-no,.ocn-id{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.ocn-date{font-size:var(--text-xs);color:var(--color-text-muted)}.order-status,.ocn-status{font-size:var(--text-xs);padding:2px 10px;border-radius:var(--radius-full);font-weight:500}.status-pending{background:#fff8e1;color:#e5a04e}.status-paid{background:#e3f2fd;color:#4a90d9}.status-shipped{background:#e8f5e9;color:#5bae6a}.status-done{background:var(--color-bg-warm);color:var(--color-text-muted)}.status-cancelled{background:#ffebee;color:var(--color-error)}.order-body,.ocn-body{display:flex;gap:var(--space-3);align-items:center}.order-product-img,.ocn-images img{width:56px;height:70px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.ocn-images{display:flex;gap:var(--space-1)}.ocn-images img{width:40px;height:50px}.order-info{flex:1}.order-product-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide);margin-bottom:2px}.order-price{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.order-time{font-size:var(--text-xs);color:var(--color-text-muted)}.ocn-summary{flex:1;font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocn-amount{font-size:var(--text-sm);font-weight:500}.ocn-main-img{width:80px;height:100px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.ocn-info{flex:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.ocn-items{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-2)}.ocn-item-line{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:var(--tracking-wide);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ocn-footer{display:flex;justify-content:space-between;align-items:center}.ocn-total-label{font-size:var(--text-xs);color:var(--color-text-muted)}.ocn-status-row{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-2)}.ocn-actions{display:flex;gap:var(--space-3);align-items:center}.ocn-detail-link{font-size:var(--text-xs);color:var(--color-accent);text-decoration:none;letter-spacing:var(--tracking-wide)}.ocn-detail-link:hover{text-decoration:underline}.ocn-cancel-btn{background:none;border:1px solid var(--color-error);color:var(--color-error);font-size:var(--text-xs);padding:2px 10px;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);letter-spacing:var(--tracking-wide);transition:all var(--duration-fast) var(--ease-out-expo)}.ocn-cancel-btn:hover{background:var(--color-error);color:#fff}.order-body-new{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.order-item-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) 0}.order-item-img{width:56px;height:70px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.order-item-info{display:flex;flex-direction:column;gap:2px;flex:1}.order-item-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.order-item-qty{font-size:var(--text-xs);color:var(--color-text-muted)}.order-footer-row{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.order-total-label{font-size:var(--text-xs);color:var(--color-text-muted)}.order-total-amount{font-size:var(--text-base);font-weight:500;letter-spacing:var(--tracking-wide)}.order-actions-row{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-light)}.order-timeline,.order-status-timeline{display:flex;justify-content:space-between;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-light);position:relative}.timeline-step,.ostep{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.timeline-step:after{content:"";position:absolute;top:4px;left:50%;right:-50%;height:1px;background:var(--color-border)}.timeline-step:last-child:after{display:none}.timeline-step.done:after{background:var(--color-accent)}.ostep:after{content:"";position:absolute;top:5px;left:55%;right:-45%;height:1px;background:var(--color-border)}.ostep:last-child:after{display:none}.ostep.done:after{background:var(--color-accent)}.timeline-dot,.ostep-dot{width:8px;height:8px;border-radius:50%;background:var(--color-bg-card);border:2px solid var(--color-border);margin-bottom:var(--space-2);position:relative;z-index:1}.timeline-step.done .timeline-dot,.ostep.done .ostep-dot{background:var(--color-accent);border-color:var(--color-accent)}.timeline-step.active .timeline-dot,.ostep.active .ostep-dot{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow)}.timeline-label,.ostep-label{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.timeline-step.done .timeline-label,.ostep.done .ostep-label{color:var(--color-text-secondary)}.timeline-step.active .timeline-label,.ostep.active .ostep-label{color:var(--color-text);font-weight:500}.order-detail-section{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-light)}.order-detail-section h4{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-muted);margin-bottom:var(--space-3)}.order-addr-card{background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1)}.order-addr-card span:first-child{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.order-addr-card span:last-child{font-size:var(--text-xs);color:var(--color-text-muted)}.order-amount-row{display:flex;justify-content:space-between;font-size:var(--text-sm);padding:var(--space-1) 0}.order-amount-row span:first-child{color:var(--color-text-secondary)}.addresses-list{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.address-card{background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-4);border:1px solid var(--color-border-light);transition:border-color var(--duration-fast) var(--ease-out-expo)}.address-card.address-default{border-color:var(--color-accent);background:var(--color-accent-glow)}.address-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.address-name{font-size:var(--text-sm);font-weight:500}.address-phone{font-size:var(--text-sm);color:var(--color-text-muted)}.address-tag{font-size:var(--text-xs);background:var(--color-accent);color:#fff;padding:1px 6px;border-radius:var(--radius-full)}.address-full{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-normal);margin-bottom:var(--space-2)}.address-actions{display:flex;gap:var(--space-4);margin-top:var(--space-2)}.address-default-btn{color:var(--color-accent)}.address-default-btn:hover{color:var(--color-text)}.address-default-btn:disabled{color:var(--color-text-muted);cursor:default}.address-add-btn{width:100%}.points-hero{text-align:center;padding:var(--space-10) 0}.points-hero-num{display:block;font-size:56px;font-weight:200;font-family:var(--font-heading);letter-spacing:var(--tracking-wide);color:var(--color-text)}.points-hero-label{display:block;font-size:var(--text-sm);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);margin:var(--space-2) 0 var(--space-1)}.points-hero-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.points-expire-warning{background:#fff8e1;color:var(--color-warning);font-size:var(--text-xs);text-align:center;padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-5);letter-spacing:var(--tracking-wide)}.points-log{display:flex;flex-direction:column}.points-log-item{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light)}.points-log-amount{font-size:var(--text-sm);font-weight:500;min-width:64px}.points-log-amount.green{color:var(--color-success)}.points-log-amount.red{color:var(--color-error)}.points-log-desc{flex:1;font-size:var(--text-sm);color:var(--color-text-secondary)}.points-log-date{font-size:var(--text-xs);color:var(--color-text-muted)}.notif-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--color-error);color:#fff;border-radius:50%;font-size:10px;margin-right:var(--space-1);vertical-align:middle}.notif-list{display:flex;flex-direction:column}.notif-item{display:flex;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border-light);position:relative}.notif-item.notif-unread:before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--color-info)}.notif-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center}.notif-body{flex:1;display:flex;flex-direction:column;gap:2px}.notif-title{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.notif-content,.notif-time{font-size:var(--text-xs);color:var(--color-text-muted)}.certified-badge{display:inline-block;font-size:10px;color:var(--color-accent);letter-spacing:.5px;background:var(--color-accent-glow);border-radius:var(--radius-sm);padding:1px 4px;margin-left:var(--space-1);vertical-align:middle}footer{background:var(--color-primary);color:#fff;padding:var(--space-20) var(--space-10) var(--space-10)}.footer-subscribe{max-width:500px;margin:0 auto var(--space-16);text-align:center;padding:0 var(--space-5)}.footer-subscribe-text{font-size:var(--text-sm);color:#ffffffb3;letter-spacing:var(--tracking-wide);display:block;margin-bottom:var(--space-4)}.footer-subscribe-form{display:flex;gap:var(--space-2);justify-content:center}.footer-subscribe-input{flex:1;max-width:280px;padding:var(--space-3) var(--space-4);border:1.5px solid rgba(255,255,255,.2);background:transparent;color:#fff;font-size:var(--text-sm);font-family:var(--font-body);outline:none;border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out-expo)}.footer-subscribe-input::placeholder{color:#ffffff4d}.footer-subscribe-input:focus{border-color:#ffffff80}.footer-subscribe-btn{background:#fff;color:var(--color-primary);border:none;padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-family:var(--font-body);letter-spacing:var(--tracking-wide);cursor:pointer;border-radius:var(--radius-sm);transition:opacity var(--duration-fast) var(--ease-out-expo)}.footer-subscribe-btn:hover{opacity:.85}.footer-subscribe-status{font-size:var(--text-xs);margin-top:var(--space-2);min-height:16px}.footer-grid{display:grid;grid-template-columns:1.5fr 2fr 1fr;gap:var(--space-16);max-width:var(--container-max);margin:0 auto}.footer-logo{font-family:var(--font-heading);font-size:28px;letter-spacing:var(--tracking-widest);margin-bottom:var(--space-3)}.footer-tagline{font-size:var(--text-sm);color:#ffffff80;line-height:var(--leading-relaxed)}.footer-links-group{display:flex;gap:var(--space-16)}.footer-links-column h4{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wider);color:#fff9;margin-bottom:var(--space-4)}.footer-links-column a{display:block;font-size:var(--text-sm);color:#ffffff73;text-decoration:none;margin-bottom:var(--space-2);transition:color var(--duration-fast) var(--ease-out-expo)}.footer-links-column a:hover{color:#fff}.footer-contact h4{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wider);color:#fff9;margin-bottom:var(--space-4)}.footer-contact p{font-size:var(--text-sm);color:#ffffff73;margin-bottom:var(--space-2)}.footer-trust{display:flex;justify-content:center;gap:var(--space-10);padding:var(--space-6) 0;margin-top:var(--space-12);border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.footer-trust-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#ffffff73;letter-spacing:var(--tracking-wide)}.footer-trust-icon{font-size:14px}.footer-bottom{text-align:center;margin-top:var(--space-8);padding-top:var(--space-8);font-size:var(--text-xs);color:#ffffff40;letter-spacing:var(--tracking-wide)}#modal{position:fixed;inset:0;z-index:var(--z-modal-backdrop);display:none;align-items:center;justify-content:center}#modal.active{display:flex}.modal-overlay{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);max-width:440px;width:calc(100% - 48px);max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:modalIn var(--duration-normal) var(--ease-out-expo)}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-desc{text-align:center;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:var(--leading-relaxed)}.modal-close{position:absolute;top:var(--space-4);right:var(--space-4);background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all var(--duration-fast) var(--ease-out-expo)}.modal-close:hover{background:var(--color-bg-warm);color:var(--color-text)}.modal-title{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:400;letter-spacing:var(--tracking-wide);text-align:center;margin-bottom:var(--space-8)}.modal-actions{display:flex;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}.modal-content .btn-cancel{background:transparent;border:1.5px solid var(--color-border);color:var(--color-text-secondary);padding:var(--space-3) var(--space-8);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);cursor:pointer;font-family:var(--font-body);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out-expo)}.modal-content .btn-cancel:hover{border-color:var(--color-text-muted);color:var(--color-text)}.modal-content .btn-danger{background:var(--color-error);border:none;color:#fff;padding:var(--space-3) var(--space-8);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);cursor:pointer;font-family:var(--font-body);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out-expo)}.modal-content .btn-danger:hover{background:#b91c1c}.modal-grass-create{max-width:520px;text-align:left}.modal-edit-profile{max-width:400px}.modal-bookings{max-width:480px}.wechat-qr{width:180px;height:180px;object-fit:contain;margin:0 auto var(--space-3);display:block}.booking-hero{background:var(--color-primary);color:#fff;padding:calc(var(--nav-height) + var(--space-20)) var(--space-10) var(--space-30);text-align:center;max-width:none}.booking-hero-content{max-width:640px;margin:0 auto}.booking-hero-title{font-family:var(--font-heading);font-size:var(--text-3xl);font-weight:300;letter-spacing:var(--tracking-widest);margin-bottom:var(--space-6)}.booking-hero-sub{font-size:var(--text-base);color:#ffffff80;letter-spacing:var(--tracking-wide)}.booking-flow{display:flex;flex-direction:column;gap:0;max-width:480px;margin:0 auto}.bflow-step{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) 0;position:relative}.bflow-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;background:var(--color-bg-card);transition:all var(--duration-normal) var(--ease-out-expo);z-index:2}.bflow-circle span{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.bflow-step.active .bflow-circle{border-color:var(--color-primary);background:var(--color-primary)}.bflow-step.active .bflow-circle span{color:#fff}.bflow-content h4{font-size:var(--text-base);letter-spacing:var(--tracking-wide);margin-bottom:2px;font-weight:400}.bflow-content p{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal)}.bflow-line{width:2px;height:24px;background:var(--color-border);margin-left:17px}.booking-steps-section,.booking-cases-section{max-width:960px;margin:0 auto}.booking-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-10);text-align:center}.booking-step-num{font-size:48px;font-weight:200;font-family:var(--font-heading);letter-spacing:var(--tracking-wide);color:var(--color-border);margin-bottom:var(--space-4)}.booking-step-title{font-size:var(--text-base);letter-spacing:var(--tracking-wide);margin-bottom:var(--space-3);font-weight:400}.booking-step-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.booking-cases{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.booking-case{text-align:left}.booking-case img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-lg);margin-bottom:var(--space-3)}.booking-case-text{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);font-style:italic}.booking-cta-section{background:var(--color-bg-warm);text-align:center;padding:var(--space-section) var(--space-10);max-width:none}.booking-cta-title{font-family:var(--font-heading);font-size:var(--text-2xl);font-weight:300;letter-spacing:var(--tracking-wide);margin-bottom:var(--space-4)}.booking-cta-desc{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-10);line-height:var(--leading-relaxed)}.booking-cta-btn{padding:18px 64px;font-size:var(--text-base)}.booking-mini-status.status-pending{background:#fff8e1;color:#e5a04e}.booking-mini-status.status-confirmed{background:#e8f5e9;color:#5bae6a}.booking-mini-status.status-done{background:var(--color-bg-warm);color:var(--color-text-muted)}.booking-mini-status.status-cancelled{background:#ffebee;color:var(--color-error)}.booking-mini{background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-4)}.booking-mini-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}.booking-mini-id{font-size:var(--text-xs);color:var(--color-text-muted)}.booking-mini-status{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-full)}.booking-mini-info{font-size:var(--text-sm);color:var(--color-text);margin-bottom:2px}.booking-mini-msg{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:2px}.booking-mini-time{font-size:var(--text-xs);color:var(--color-text-muted)}.cart-items{display:flex;flex-direction:column;gap:0}.cart-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border-light);transition:opacity var(--duration-normal) var(--ease-out-expo)}.cart-item-img{width:60px;height:75px;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0}.cart-item-info{flex:1;display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.cart-item-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-price{font-size:var(--text-xs);color:var(--color-text-muted)}.cart-item-qty{display:flex;align-items:center;gap:var(--space-2)}.cart-qty-btn{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--color-border);background:var(--color-bg-card);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out-expo);font-family:var(--font-body);line-height:1}.cart-qty-btn:hover{border-color:var(--color-text-muted);color:var(--color-text)}.cart-qty-num{font-size:var(--text-sm);min-width:24px;text-align:center}.cart-item-subtotal{font-size:var(--text-sm);font-weight:500;min-width:60px;text-align:right}.cart-item-remove{background:none;border:none;font-size:18px;color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);transition:color var(--duration-fast) var(--ease-out-expo);font-family:var(--font-body)}.cart-item-remove:hover{color:var(--color-error)}.cart-footer{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-card);border-top:1px solid var(--color-border-light);padding:var(--space-4) var(--space-6);padding-bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;z-index:var(--z-dropdown)}.cart-footer-left{display:flex;flex-direction:column;gap:2px}.cart-footer-count{font-size:var(--text-xs);color:var(--color-text-muted)}.cart-footer-total{font-size:var(--text-xl);font-weight:500;letter-spacing:var(--tracking-wide)}.cart-checkout-btn{padding:14px 40px;font-size:var(--text-sm)}.cart-slideout{position:fixed;inset:0;z-index:1100;display:none}.cart-slideout.open{display:block}.cart-slideout-overlay{position:absolute;inset:0;background:#0006;backdrop-filter:blur(2px)}.cart-slideout-panel{position:absolute;top:0;right:0;bottom:0;width:400px;max-width:90vw;background:var(--color-bg-card);display:flex;flex-direction:column;animation:slideInRight .3s var(--ease-out-expo)}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.cart-slideout-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-light)}.cart-slideout-header h3{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:400;letter-spacing:var(--tracking-wide)}.cart-slideout-close{background:none;border:none;font-size:28px;cursor:pointer;color:var(--color-text-muted);width:40px;height:40px;display:flex;align-items:center;justify-content:center}.cart-slideout-body{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-6)}.cart-slideout-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-light)}.cart-slideout-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-light);align-items:center}.cart-slideout-item img{width:56px;height:70px;object-fit:cover;border-radius:var(--radius-sm)}.cart-slideout-item-info{flex:1}.cart-slideout-item-name{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.cart-slideout-item-price{font-size:var(--text-xs);color:var(--color-text-muted)}.cart-slideout-item-remove{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:18px;padding:4px}.cart-slideout-empty{text-align:center;padding:var(--space-10) 0;color:var(--color-text-muted)}.cart-slideout-total{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.cart-slideout-total span:first-child{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.cart-slideout-total span:last-child{font-size:var(--text-lg);font-weight:500}.cart-pick-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:360px;overflow-y:auto}.cart-pick-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-warm);border-radius:var(--radius-md);cursor:pointer;transition:background var(--duration-fast)}.cart-pick-item:hover{background:var(--color-border-light)}.cart-pick-img{width:48px;height:60px;object-fit:cover;border-radius:var(--radius-sm)}.cart-pick-info{flex:1;display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}.checkout-section{margin-bottom:var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border-light)}.checkout-label{font-size:var(--text-xs);letter-spacing:var(--tracking-wider);color:var(--color-text-muted);margin-bottom:var(--space-3);text-transform:uppercase}.checkout-addr{margin-bottom:var(--space-2)}.checkout-addr-name{display:block;font-size:var(--text-sm);letter-spacing:var(--tracking-wide);margin-bottom:2px}.checkout-addr-detail{font-size:var(--text-xs);color:var(--color-text-muted)}.checkout-change-link{font-size:var(--text-xs);color:var(--color-accent);text-decoration:none}.checkout-addr-empty{text-align:center;padding:var(--space-4) 0}.checkout-addr-empty p{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-3)}.checkout-items{margin-bottom:var(--space-3)}.checkout-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) 0}.checkout-item-img{width:40px;height:50px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.checkout-item-name{flex:1;font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.checkout-item-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.checkout-summary{display:flex;justify-content:space-between;font-size:var(--text-sm);padding-top:var(--space-3)}.checkout-points-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm);color:var(--color-text-secondary)}.points-switch{position:relative;display:inline-block;width:44px;height:24px}.points-switch input{opacity:0;width:0;height:0}.points-switch-slider{position:absolute;cursor:pointer;inset:0;background:var(--color-border);border-radius:12px;transition:var(--duration-fast) var(--ease-out-expo)}.points-switch input:checked+.points-switch-slider{background:var(--color-accent)}.points-switch-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:var(--duration-fast) var(--ease-out-expo)}.points-switch input:checked+.points-switch-slider:before{transform:translate(20px)}.checkout-total-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) 0;margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border-light)}.checkout-total-label{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.checkout-total-amount{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:500;letter-spacing:var(--tracking-wide)}.checkout-payment{text-align:center;margin-bottom:var(--space-5)}.checkout-qr{width:200px;height:200px;object-fit:contain;margin:0 auto var(--space-2);display:block}.checkout-qr-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.payment-tabs{display:flex;gap:0;margin-bottom:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.payment-tab{flex:1;padding:10px;text-align:center;cursor:pointer;border:none;background:transparent;color:var(--color-text-secondary);font-family:var(--font-body);font-size:13px;transition:all .2s}.payment-tab.active{background:var(--color-accent);color:#fff}.payment-tab:hover:not(.active){background:var(--color-bg-warm)}.btn:active,button:active{transform:scale(.97);transition:transform .1s ease}.product-card:hover,.daily-card:hover,.grass-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001f;transition:all .25s ease}.product-card,.daily-card,.grass-card{transition:all .25s ease}@keyframes cartBounce{0%,to{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.9)}}.cart-bounce{animation:cartBounce .4s ease}.wishlist-heart svg{transition:all .3s ease}.wishlist-heart.wishlisted svg{animation:heartPop .35s ease}@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.3)}60%{transform:scale(.85)}to{transform:scale(1)}}#app{animation:pageFadeIn .25s ease}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.variant-options{display:flex;gap:6px;flex-wrap:wrap}.variant-btn{padding:6px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer;font-family:var(--font-body);font-size:12px;transition:all .2s}.variant-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:#c9a96e14}.variant-btn:hover:not(.active){background:var(--color-bg-warm)}.order-tabs{display:flex;gap:4px;margin-bottom:24px;flex-wrap:wrap}.order-tab{padding:8px 16px;border-radius:100px;font-size:13px;cursor:pointer;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-family:var(--font-body);transition:all .2s;display:flex;align-items:center;gap:6px}.order-tab span{background:var(--color-bg-warm);padding:1px 8px;border-radius:10px;font-size:11px}.order-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.order-tab.active span{background:#fff3;color:#fff}.order-tab:hover:not(.active){background:var(--color-bg-warm)}.checkout-footer-note{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);margin-top:var(--space-6)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-1);letter-spacing:var(--tracking-wide)}.form-input{width:100%;padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-body);background:var(--color-bg-warm);outline:none;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out-expo)}.form-input:focus{border-color:var(--color-accent)}.form-input-row{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2)}.form-input-row input[type=text],input.profile-input{padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-body);background:var(--color-bg-warm);outline:none;color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-out-expo)}.form-input-row input[type=text]:focus,input.profile-input:focus{border-color:var(--color-accent)}.edit-profile-form{margin-top:var(--space-6)}.edit-avatar-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);cursor:pointer}.edit-avatar-preview{width:72px;height:72px;border-radius:50%;object-fit:cover;background:var(--color-bg-warm)}.edit-avatar-hint{font-size:var(--text-xs);color:var(--color-accent);letter-spacing:var(--tracking-wide)}.ami-toast{position:fixed;top:80px;left:50%;transform:translate(-50%) translateY(-20px);z-index:var(--z-toast);background:var(--color-primary);color:#fff;padding:var(--space-3) var(--space-6);border-radius:100px;font-size:var(--text-sm);font-family:var(--font-body);letter-spacing:var(--tracking-wide);opacity:0;transition:opacity var(--duration-normal) var(--ease-out-expo),transform var(--duration-normal) var(--ease-out-expo);pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg)}.ami-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.ami-toast a{color:#fff;text-decoration:underline}@media(max-width:768px){.ami-toast{top:70px}}.skeleton{background:var(--color-border-light);animation:skeletonPulse 1.5s var(--ease-in-out) infinite;border-radius:var(--radius-sm)}@keyframes skeletonPulse{0%,to{opacity:.5}50%{opacity:1}}.skeleton-img{width:100%;aspect-ratio:4/5}.skeleton-text{height:14px;margin:var(--space-2) 0;border-radius:var(--radius-sm);width:100%}.skeleton-text.short{width:60%}.skeleton-card{pointer-events:none}.share-panel{position:relative;background:var(--color-bg-card);padding:var(--space-10) var(--space-8) var(--space-8);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:400px;width:100%;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 24px #0000001a}.share-options{display:flex;gap:var(--space-6);justify-content:center;margin-top:var(--space-6)}.share-option-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);background:var(--color-bg-warm);border:1.5px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out-expo);min-width:120px}.share-option-btn:hover{border-color:var(--color-text-muted);background:var(--color-surface-hover)}.grass-word-count{text-align:right;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:-12px;margin-bottom:var(--space-3)}.grass-tag-select{margin-bottom:var(--space-4)}.grass-tag-select label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);letter-spacing:var(--tracking-wide)}.grass-tag-chips{display:flex;gap:6px;flex-wrap:wrap}.grass-tag-chip-select{padding:5px 12px;border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-bg-card);font-size:var(--text-xs);font-family:var(--font-body);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out-expo)}.grass-tag-chip-select.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.grass-tag-chip-select:hover{border-color:var(--color-text-muted)}.grass-product-picker{margin-bottom:var(--space-3)}.grass-product-picker label{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);letter-spacing:var(--tracking-wide)}.grass-selected-products{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-top:var(--space-2)}.grass-selected-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 8px;background:var(--color-bg-warm);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-secondary)}.grass-product-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin:var(--space-3) 0;max-height:240px;overflow-y:auto}.grass-picker-item{text-align:center;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:background var(--duration-fast)}.grass-picker-item:hover{background:var(--color-bg-warm)}.grass-picker-item.selected{background:var(--color-accent-glow)}.grass-picker-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:var(--space-1)}.grass-picker-item span{font-size:10px;color:var(--color-text-secondary)}.inbox-list{display:flex;flex-direction:column;gap:var(--space-3)}.inbox-msg{background:var(--color-bg-warm);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.inbox-msg-header{display:flex;justify-content:space-between;margin-bottom:var(--space-1)}.inbox-msg p{font-size:var(--text-sm);color:var(--color-text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.section,.brand-section,.category-block,.product-card,.grass-card,.daily-card,.flywheel-card{opacity:0;transform:translateY(24px);transition:opacity var(--duration-glacial) var(--ease-out-expo),transform var(--duration-glacial) var(--ease-out-expo)}.section.revealed,.brand-section.revealed,.category-block.revealed,.product-card.revealed,.grass-card.revealed,.daily-card.revealed,.flywheel-card.revealed{opacity:1;transform:translateY(0)}#app{transition:opacity var(--duration-normal) var(--ease-out-expo)}#app.fade-out{opacity:0;transition:opacity var(--duration-fast) var(--ease-out-expo)}#app.fade-in{opacity:1;transition:opacity var(--duration-normal) var(--ease-out-expo)}.product-grid{transition:opacity var(--duration-normal) var(--ease-out-expo)}.product-grid.fade-out{opacity:0;transition:opacity var(--duration-fast) var(--ease-out-expo)}.product-grid.fade-in{opacity:1;transition:opacity var(--duration-normal) var(--ease-out-expo)}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:60px;background:#fafaf9eb;border-top:1px solid var(--color-border-light);z-index:var(--z-fixed);padding:0 var(--space-2);padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--color-text-muted);min-width:48px;min-height:48px;transition:color var(--duration-fast) var(--ease-out-expo);-webkit-tap-highlight-color:transparent}.mobile-nav-item.active{color:var(--color-accent)}.mobile-nav-item span{font-size:10px;font-family:var(--font-body);letter-spacing:var(--tracking-wide)}@media(max-width:1024px){.product-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.hero-title{font-size:clamp(3rem,2rem + 6vw,5rem);letter-spacing:var(--tracking-widest)}.daily-grid{gap:var(--space-10)}.footer-grid{grid-template-columns:1fr 1fr}.footer-contact{grid-column:1 / -1}}@media(max-width:768px){:root{--nav-height: 60px}#nav{padding:var(--space-3) var(--space-6)}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background-color:#fafaf9fa;flex-direction:column;gap:0;padding:var(--space-4) 0;box-shadow:var(--shadow-md);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.nav-links.open{display:flex}.nav-backdrop{display:none;position:fixed;inset:0;background:#0000004d;z-index:900}.nav-backdrop.show{display:block}.nav-link{padding:var(--space-4) var(--space-6);text-align:center}.nav-menu-btn,.nav-mobile-brand{display:block}#nav .nav-logo{display:none}.hero{height:55vh;min-height:380px}.hero:after{background:linear-gradient(to bottom,#0006,#0000001a 35%,#0006)}.hero-title{font-size:clamp(2rem,1rem + 7vw,3rem);letter-spacing:var(--tracking-wide)}.hero-slogan{font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.hero-cta-btn{padding:13px 36px;font-size:var(--text-xs)}.section{padding:var(--space-16) var(--space-6)}.section-title{margin-bottom:var(--space-10)}.daily-grid{grid-template-columns:1fr;gap:var(--space-8)}.daily-card{padding:var(--space-4)}.category-blocks{grid-template-columns:1fr;gap:var(--space-10)}.shoot-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-wide)}.shoot-case img{width:90px;height:120px}.product-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.product-detail-container{grid-template-columns:1fr}.product-detail-left{position:relative;height:auto;padding:var(--space-20) var(--space-6)}.product-detail-right{padding:var(--space-10) var(--space-6)}.product-title{font-size:var(--text-xl)}.product-actions{flex-direction:column}.product-actions .btn{width:100%}.shop-section{padding-top:calc(var(--nav-height) + var(--space-8))}.shop-tabs{gap:var(--space-6)}.tab-btn{font-size:var(--text-sm)}.product-breadcrumb{padding-left:var(--space-6);padding-right:var(--space-6);font-size:var(--text-xs)}.grass-section{padding:calc(var(--nav-height) + var(--space-6)) var(--space-4) var(--space-10)}.grass-card{padding:var(--space-5) var(--space-4)}.grass-images-single img{max-height:360px}.grass-img-scroll-item{width:78vw;max-width:340px;min-width:220px}.grass-fab{bottom:calc(84px + env(safe-area-inset-bottom));right:var(--space-6);width:48px;height:48px;font-size:24px}.social-grid{grid-template-columns:1fr;gap:var(--space-4)}.profile-section{padding:calc(var(--nav-height) + var(--space-6)) var(--space-4) var(--space-10)}.profile-hero{padding:var(--space-10) 0 var(--space-8)}.profile-avatar-lg{width:72px;height:72px}.profile-name-lg{font-size:var(--text-lg)}.footer-grid{grid-template-columns:1fr;gap:var(--space-10)}.footer-links-group{gap:var(--space-10)}.modal-content{padding:var(--space-8) var(--space-6)}.about-content{padding:0 var(--space-6)}.about-title{font-size:var(--text-xl);letter-spacing:var(--tracking-wide)}.booking-hero{padding:calc(var(--nav-height) + var(--space-10)) var(--space-6) var(--space-16)}.booking-hero-title{font-size:var(--text-2xl);letter-spacing:var(--tracking-wide)}.booking-steps{grid-template-columns:1fr;gap:var(--space-8)}.booking-cases{grid-template-columns:1fr;gap:var(--space-6)}.booking-cta-title{font-size:var(--text-xl);letter-spacing:var(--tracking-wide)}.cart-item{gap:var(--space-2);padding:var(--space-3) 0}.cart-item-img{width:48px;height:60px}.cart-item-name{font-size:var(--text-sm)}.cart-item-subtotal{font-size:var(--text-sm);min-width:50px}.cart-footer{padding:var(--space-3) var(--space-4);padding-bottom:calc(72px + env(safe-area-inset-bottom))}.cart-slideout-body{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom) + 60px)}.cart-checkout-btn{padding:var(--space-3) var(--space-6);font-size:var(--text-sm)}}.booking-success{text-align:center;padding:40px 20px}.booking-success-icon{font-size:48px;display:block;margin-bottom:8px}.my-bookings-list{display:flex;flex-direction:column;gap:16px}.my-booking-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.my-booking-card .mbc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.my-booking-card .mbc-id{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:1px}.my-booking-card .mbc-date{font-size:var(--text-xs);color:var(--color-text-muted)}.my-booking-timeline{display:flex;justify-content:space-between;margin-bottom:14px;position:relative}.my-booking-timeline:before{content:"";position:absolute;top:8px;left:0;right:0;height:2px;background:var(--color-border);z-index:0}.mbt-step{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1;flex:1}.mbt-step .mbt-dot{width:16px;height:16px;border-radius:50%;background:var(--color-border);border:2px solid var(--color-surface)}.mbt-step.done .mbt-dot{background:var(--color-primary)}.mbt-step.active .mbt-dot{background:var(--color-accent);box-shadow:0 0 0 4px var(--color-accent-glow)}.mbt-step .mbt-label{font-size:10px;color:var(--color-text-muted);white-space:nowrap}.mbt-step.done .mbt-label,.mbt-step.active .mbt-label{color:var(--color-text)}.my-booking-card .mbc-products{font-size:var(--text-sm);color:var(--color-text-secondary);margin:8px 0}.my-booking-card .mbc-style{font-size:var(--text-sm);color:var(--color-text-muted);margin:4px 0;font-style:italic}.my-booking-card .mbc-note{font-size:var(--text-xs);color:var(--color-accent);margin-top:8px;padding:8px 12px;background:var(--color-accent-glow);border-radius:var(--radius-sm)}.my-booking-card .mbc-photos{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.my-booking-card .mbc-photos img{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-sm)}.mbc-chat{margin-top:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.mbc-chat-title{padding:10px 14px;font-size:12px;color:var(--color-text-muted);background:var(--color-bg-warm);border-bottom:1px solid var(--color-border);letter-spacing:1px}.mbc-chat-msgs{padding:12px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.mbc-chat-empty{text-align:center;font-size:12px;color:var(--color-text-muted);padding:20px 0}.mbc-chat-bubble{max-width:82%;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.6;word-break:break-word}.mbc-chat-bubble.admin{align-self:flex-start;background:#f0ede8;color:var(--color-text);border-bottom-left-radius:4px}.mbc-chat-bubble.customer{align-self:flex-end;background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.mbc-chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-bg)}.mbc-chat-input-row input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:20px;font-size:13px;font-family:inherit;outline:none;background:var(--color-surface)}.mbc-chat-input-row input:focus{border-color:var(--color-primary)}.mbc-chat-send-btn{padding:10px 18px;background:var(--color-primary);color:#fff;border:none;border-radius:20px;font-size:13px;cursor:pointer;font-family:inherit;letter-spacing:1px;white-space:nowrap}.checkout-total-amount{font-size:var(--text-lg)}.gallery-thumbs{overflow-x:auto;scroll-snap-type:x mandatory}.gallery-thumb{scroll-snap-align:start}.wechat-qr{width:160px;height:160px}.order-card-new{padding:var(--space-3)}.ocn-body{flex-wrap:wrap}.ostep-label{font-size:9px}.points-hero-num{font-size:42px}.mobile-nav{display:flex}body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}button,.btn,.btn-sm{min-height:44px}.category-link{display:inline-block;padding:var(--space-3) 0;min-height:44px;line-height:44px}.grass-tag-link{display:inline-block;padding:var(--space-2) var(--space-4);min-height:44px;line-height:28px}.grass-action-btn{min-width:44px;min-height:44px;padding:var(--space-3)}.nav-link{min-height:44px;display:flex;align-items:center}.tab-btn{min-height:44px;padding:var(--space-3) 0}.product-card{cursor:pointer}.nav-search{width:100px!important}.profile-section{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.grass-action-btn svg{width:20px;height:20px}} @media (max-width: 480px){.hero{height:45vh;min-height:300px}.hero-title{font-size:clamp(1.6rem,.8rem + 6vw,2.2rem);letter-spacing:var(--tracking-wide)}.hero-slogan{font-size:var(--text-xs);letter-spacing:var(--tracking-normal)}.hero-cta-btn{padding:12px 28px}.product-grid{gap:var(--space-3)}.product-name,.product-price{font-size:var(--text-xs)}.btn{padding:14px 32px;font-size:var(--text-xs)}.profile-flywheel{grid-template-columns:1fr 1fr 1fr;gap:var(--space-2)}.flywheel-card{padding:var(--space-4) var(--space-2)}.flywheel-icon svg{width:20px;height:20px}.flywheel-label,.flywheel-count{font-size:var(--text-xs)}.brand-big{font-size:var(--text-2xl)}.shoot-title{font-size:var(--text-xl);letter-spacing:var(--tracking-wide)}.section-title{font-size:var(--text-xs)}}@media(hover:none){.btn:active{opacity:.7;transform:scale(.97);transition:all .1s var(--ease-out-expo)}.product-card:active,.grass-card:active,.flywheel-card:active{transform:scale(.98);transition:all .1s var(--ease-out-expo)}button:active,a:active{opacity:.8}}.hero.visible .hero-content{animation:fadeIn 1s var(--ease-out-expo) .2s forwards}@keyframes ctaPulse{0%,to{box-shadow:0 0 #c9a96166}50%{box-shadow:0 0 0 12px #c9a96100}}.hero-cta-btn.pulse{animation:ctaPulse 3s ease-in-out infinite}.promo-badge{position:absolute;top:12px;left:12px;background:#e53935;color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.5px;z-index:5}.promo-badge.low-stock{background:#ff9800;animation:stockBlink 1s ease-in-out infinite}@keyframes stockBlink{0%,to{opacity:1}50%{opacity:.5}}.price-original{text-decoration:line-through;color:var(--color-text-muted);font-size:.85em;margin-right:8px}.price-discount{color:#e53935;font-weight:600}.countdown{display:flex;gap:6px;align-items:center;font-family:var(--font-heading)}.countdown-item{background:var(--color-primary);color:#fff;padding:4px 8px;border-radius:4px;font-size:16px;min-width:32px;text-align:center}.countdown-sep{color:var(--color-primary);font-size:14px}@keyframes starPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.3)}to{transform:scale(1);opacity:1}}.msg-float-btn{position:fixed;top:80px;right:16px;z-index:1000;width:46px;height:46px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 16px #0000002e;transition:transform .2s,box-shadow .2s}.msg-float-btn:hover{transform:scale(1.08);box-shadow:0 4px 20px #00000040}.msg-float-badge{position:absolute;top:-5px;right:-5px;background:#dc2626;color:#fff;font-size:10px;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px;line-height:1}.msg-panel-backdrop{position:fixed;inset:0;z-index:9998;background:#0000004d;display:none}.msg-panel-backdrop.show{display:block}.msg-panel{position:fixed;top:0;right:-380px;width:360px;max-width:90vw;height:100vh;height:100dvh;z-index:9999;background:var(--color-surface);box-shadow:-2px 0 24px #00000026;transition:right .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}.msg-panel.open{right:0}.msg-panel-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.msg-panel-header h3{font-family:var(--font-heading);font-size:16px;letter-spacing:2px;font-weight:400;margin:0}.msg-panel-close{background:none;border:none;font-size:22px;cursor:pointer;color:var(--color-text-muted);padding:0 4px}.msg-panel-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.msg-conv-item{padding:14px 20px;border-bottom:1px solid var(--color-border-light);cursor:pointer;transition:background .15s}.msg-conv-item:hover{background:var(--color-bg-warm)}.msg-conv-item .unread-count{background:#dc2626;color:#fff;font-size:10px;font-weight:600;padding:2px 8px;border-radius:10px}.msg-panel-back-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm)}.msg-chat-msgs{padding:12px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;min-height:200px}.msg-chat-bubble{max-width:82%;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.6;word-break:break-word}.msg-chat-bubble.admin{align-self:flex-start;background:#f0ede8;color:var(--color-text);border-bottom-left-radius:4px}.msg-chat-bubble.customer{align-self:flex-end;background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.msg-chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.msg-chat-input-row input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:20px;font-size:13px;font-family:inherit;outline:none;background:var(--color-surface)}.msg-chat-input-row input:focus{border-color:var(--color-primary)}.msg-chat-send-btn{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:20px;font-size:13px;cursor:pointer;font-family:inherit;letter-spacing:1px;white-space:nowrap}.msg-chat-send-btn:active{opacity:.85}.booking-msg-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.booking-msg-item{padding:14px 18px;cursor:pointer;border-bottom:1px solid var(--color-border-light);transition:background .15s;background:var(--color-surface)}.booking-msg-item:last-child{border-bottom:none}.booking-msg-item:hover{background:var(--color-bg-warm)}.bmi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.bmi-name{font-size:14px;font-weight:500}.bmi-badge{background:#dc2626;color:#fff;font-size:10px;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}.bmi-preview{font-size:12px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bmi-meta{font-size:10px;color:var(--color-text-muted);margin-top:4px}.booking-chat-view{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface)}.bcv-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-warm)}.bcv-msgs{padding:14px;display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;min-height:160px}.bcv-bubble{max-width:82%;padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.6;word-break:break-word}.bcv-bubble.admin{align-self:flex-start;background:#f0ede8;color:var(--color-text);border-bottom-left-radius:4px}.bcv-bubble.customer{align-self:flex-end;background:var(--color-primary);color:#fff;border-bottom-right-radius:4px}.bcv-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-bg)}.bcv-input-row input{flex:1;padding:10px 14px;border:1px solid var(--color-border);border-radius:20px;font-size:13px;font-family:inherit;outline:none;background:var(--color-surface)}.bcv-input-row input:focus{border-color:var(--color-primary)}.bcv-send-btn{padding:10px 20px;background:var(--color-primary);color:#fff;border:none;border-radius:20px;font-size:13px;cursor:pointer;font-family:inherit;letter-spacing:1px;white-space:nowrap}.star-rating .star{display:inline-block;animation:starPop .3s ease backwards}
