:root{--color-bg: #fafaf9;--color-text: #1c1917;--color-muted: #78716c;--color-border: #e7e5e4;--color-accent: #44403c;--color-card: #ffffff;--font-body: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;--radius: 12px}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.75;letter-spacing:.04em}a{color:inherit;text-decoration:none}button{font-family:inherit;border:none;background:none;cursor:pointer}img{max-width:100%;display:block}.container{max-width:640px;margin:0 auto;padding:0 24px}.page{min-height:100vh;padding-top:64px;padding-bottom:64px}.header{position:fixed;top:0;left:0;right:0;height:56px;background:#fafaf9d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:100;border-bottom:1px solid var(--color-border)}.header-logo{font-size:1.1rem;font-weight:500;letter-spacing:.08em}.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 32px;border-radius:999px;font-size:1rem;font-weight:500;transition:all .2s ease;letter-spacing:.06em}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.card{background:var(--color-card);border-radius:var(--radius);padding:24px;border:1px solid var(--color-border)}.bubble{max-width:80%;padding:16px 20px;border-radius:20px;font-size:.95rem;line-height:1.7}.bubble-user{background:var(--color-accent);color:#fff;border-bottom-right-radius:4px}.bubble-bot{background:var(--color-card);border:1px solid var(--color-border);border-bottom-left-radius:4px}.product-card{background:var(--color-card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border)}.product-image{width:100%;aspect-ratio:1 / 1;object-fit:cover;background:var(--color-bg)}.product-body{padding:20px}.product-name{font-size:1.1rem;font-weight:600;margin-bottom:4px}.product-price{font-size:.95rem;color:var(--color-muted);margin-bottom:12px}.product-reason{font-size:.9rem;color:var(--color-muted);line-height:1.7}.chip{display:inline-flex;align-items:center;padding:10px 20px;border-radius:999px;font-size:.9rem;border:1px solid var(--color-border);background:var(--color-card);cursor:pointer;transition:all .15s ease}.chip:hover{border-color:var(--color-muted)}.chip-selected{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.flex{display:flex}.flex-col{flex-direction:column}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-12{margin-top:48px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.text-center{text-align:center}.text-sm{font-size:.875rem}.text-lg{font-size:1.25rem}.text-xl{font-size:1.5rem}.font-medium{font-weight:500}.font-bold{font-weight:700}.tracking-wide{letter-spacing:.08em}.leading-relaxed{line-height:1.75}.text-muted{color:var(--color-muted)}.grid{display:grid}.grid-cols-1{grid-template-columns:1fr}.items-center{align-items:center}.justify-center{justify-content:center}.w-full{width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes typingDot{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pageEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes lineExpand{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.fade-in{animation:fadeInUp .5s ease forwards}.fade-in-scale{animation:fadeInScale .5s ease forwards}.slide-in-right{animation:slideInRight .4s ease forwards}.slide-in-left{animation:slideInLeft .4s ease forwards}.slide-in-up{animation:slideInUp .5s ease forwards}.page-enter{animation:pageEnter .4s ease forwards}.stagger-1{animation-delay:.1s;opacity:0}.stagger-2{animation-delay:.2s;opacity:0}.stagger-3{animation-delay:.3s;opacity:0}.stagger-4{animation-delay:.4s;opacity:0}.stagger-5{animation-delay:.5s;opacity:0}.stagger-6{animation-delay:.6s;opacity:0}.typing-indicator{display:inline-flex;gap:4px;padding:12px 16px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--color-muted);animation:typingDot 1.4s infinite ease-in-out both}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}.skeleton{background:linear-gradient(90deg,#f5f5f4 25%,#e7e5e4,#f5f5f4 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000000f}.line-animate{transform-origin:center;animation:lineExpand .8s ease forwards}.scroll-fade{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.scroll-fade.visible{opacity:1;transform:translateY(0)}.img-zoom{overflow:hidden}.img-zoom img{transition:transform .6s ease}.img-zoom:hover img{transform:scale(1.04)}.btn-press{transition:transform .15s ease}.btn-press:active{transform:scale(.97)}.animate-on-mount{opacity:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scroll-fade{opacity:1;transform:none}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
