:root{--sakura-50: #fff5f8;--sakura-100: #ffe8ef;--sakura-200: #fcd3e0;--sakura-300: #f9b6ca;--sakura-400: #f48fac;--sakura-500: #e66f95;--sakura-600: #d14c7a;--sakura-700: #a73560;--sakura-800: #7c2446;--cream-50: #fefaf7;--cream-100: #fdf2ec;--cream-200: #f7e4d7;--ink-900: #3d2a35;--ink-700: #5c3f52;--ink-500: #8a6d7e;--ink-400: #b69ba9;--ink-200: #e5d5dc;--gold: #caa472;--sage: #9ab29f;--teal-50: #f1faf9;--teal-100: #d8ede9;--teal-200: #afd9d2;--teal-300: #7ebfb5;--teal-400: #4ea399;--teal-500: #2f8079;--teal-600: #226660;--teal-700: #194e49;--teal-800: #123834;--shop-bg: linear-gradient(180deg, #fafbfb 0%, #f3f7f6 100%);--shadow-shop-sm: 0 1px 3px rgba(34, 102, 96, .06), 0 1px 2px rgba(34, 102, 96, .04);--shadow-shop-md: 0 4px 14px rgba(34, 102, 96, .08), 0 2px 4px rgba(34, 102, 96, .05);--shadow-shop-lg: 0 14px 36px rgba(34, 102, 96, .12), 0 4px 10px rgba(34, 102, 96, .06);--bg: linear-gradient(180deg, var(--sakura-50), var(--cream-50));--shadow-sm: 0 1px 3px rgba(209, 76, 122, .06), 0 1px 2px rgba(209, 76, 122, .04);--shadow-md: 0 4px 12px rgba(209, 76, 122, .08), 0 2px 4px rgba(209, 76, 122, .05);--shadow-lg: 0 12px 32px rgba(209, 76, 122, .12), 0 4px 8px rgba(209, 76, 122, .06);--font-sans: "Noto Sans JP", "Microsoft JhengHei", "Segoe UI", sans-serif;--font-serif: "Shippori Mincho", "Noto Serif JP", "Microsoft JhengHei", serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{max-width:100vw;overflow-x:hidden}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink-900);min-height:100vh;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,select,textarea,button{font-family:inherit}@media (max-width: 640px){input[type=text],input[type=number],input[type=date],input[type=email],input[type=search],textarea,select{font-size:16px!important}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes petalFall{0%{transform:translateY(-10vh) rotate(0);opacity:0}10%{opacity:.85}to{transform:translate(var(--drift, 40px),110vh) rotate(720deg);opacity:0}}.sakura-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.sakura-bg .petal{position:absolute;top:0;width:14px;height:14px;background:radial-gradient(ellipse at 50% 40%,var(--sakura-200) 0%,var(--sakura-300) 55%,var(--sakura-400) 100%);border-radius:100% 0 60% 50%/60% 0 100% 50%;opacity:0;filter:drop-shadow(0 1px 2px rgba(209,76,122,.15));animation:petalFall linear infinite}.anim-fade-up{animation:fadeInUp .5s ease-out both}.anim-fade-in{animation:fadeIn .5s ease-out both}.anim-scale-in{animation:scaleIn .4s ease-out both}.anim-float{animation:float 3s ease-in-out infinite}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stagger>*{animation:fadeInUp .5s ease-out both}.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.1s}.stagger>*:nth-child(3){animation-delay:.15s}.stagger>*:nth-child(4){animation-delay:.2s}.stagger>*:nth-child(5){animation-delay:.25s}.stagger>*:nth-child(6){animation-delay:.3s}.stagger>*:nth-child(7){animation-delay:.35s}.stagger>*:nth-child(8){animation-delay:.4s}.stagger>*:nth-child(n+9){animation-delay:.45s}@keyframes slideFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.shop-slide-r{animation:slideFromRight .5s ease-out both}.shop-slide-l{animation:slideFromLeft .5s ease-out both}.shop-card{transition:transform .25s ease,box-shadow .25s ease}.shop-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-shop-md)}.shop-card:hover .shop-card-img{transform:scale(1.04)}.shop-card-img{transition:transform .4s ease}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--sakura-200);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--sakura-300)}
