:root {
  --background: hsl(30,15%,97%);
  --foreground: hsl(30,10%,15%);
  --card: hsl(30,20%,99%);
  --card-foreground: hsl(30,10%,15%);
  --primary: hsl(17,95%,54%);
  --primary-foreground: hsl(0,0%,100%);
  --primary-10: hsla(17,95%,54%,0.1);
  --primary-5: hsla(17,95%,54%,0.05);
  --primary-30: hsla(17,95%,54%,0.3);
  --secondary: hsl(30,8%,92%);
  --secondary-foreground: hsl(30,10%,25%);
  --muted: hsl(30,10%,94%);
  --muted-foreground: hsl(30,8%,45%);
  --border: hsl(30,15%,88%);
  --marble-vein: hsl(30,5%,70%);
  --radius: 1rem;
  --shadow-soft: 0 4px 20px -4px rgba(38,32,22,0.08);
  --shadow-medium: 0 8px 30px -8px rgba(38,32,22,0.12);
  --shadow-lifted: 0 20px 50px -15px rgba(38,32,22,0.15);
  --gradient-card: linear-gradient(145deg,hsl(30,20%,99%) 0%,hsl(30,15%,96%) 100%);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Poppins',sans-serif;background:var(--background);color:var(--foreground);min-height:100vh;-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,h5,h6{font-family:'Poppins',sans-serif;}
a{text-decoration:none;color:inherit;}
button{font-family:'Poppins',sans-serif;cursor:pointer;border:none;background:none;}

/* Progress */
.progress-wrap{margin-bottom:2rem;}
.progress-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.back-btn{display:flex;align-items:center;gap:4px;color:var(--muted-foreground);font-size:.875rem;font-weight:500;transition:color .2s;background:none;border:none;cursor:pointer;padding:0;}
.back-btn:hover{color:var(--foreground);}
.back-btn:disabled{opacity:0;pointer-events:none;}
.step-count{font-size:.875rem;color:var(--muted-foreground);font-weight:500;}
.progress-bar{height:4px;border-radius:99px;background:var(--secondary);overflow:hidden;}
.progress-fill{height:100%;background:var(--primary);border-radius:99px;transition:width .5s ease-out;}

/* Wizard option cards */
.options-grid{display:grid;grid-template-columns:1fr;gap:1rem;max-width:42rem;margin:0 auto;}
@media(min-width:640px){.options-grid{grid-template-columns:1fr 1fr;}}
.wizard-option{position:relative;overflow:hidden;border-radius:.75rem;border:none;padding:1.25rem;cursor:pointer;text-align:left;background:var(--gradient-card);box-shadow:inset 0 0 0 2px transparent,var(--shadow-soft);transition:all .3s;width:100%;}
.wizard-option:hover{transform:scale(1.02);box-shadow:inset 0 0 0 2px var(--primary-30),var(--shadow-medium);}
.wizard-option.selected{background:linear-gradient(145deg,hsl(18,75%,45%,0.05) 0%,hsl(30,15%,96%) 100%);box-shadow:inset 0 0 0 2px var(--primary),var(--shadow-lifted);}
.option-inner{display:flex;align-items:flex-start;gap:1rem;}
.option-icon{display:flex;align-items:center;justify-content:center;transition:transform .3s;line-height:1;margin-bottom:0.25rem;color:var(--primary);}
.option-icon svg{width:32px;height:32px;}
.wizard-option:hover .option-icon{transform:scale(1.1);}
.option-label{font-weight:500;color:var(--foreground);font-size:1.0625rem;margin-bottom:.25rem;}
.option-desc{color:var(--muted-foreground);font-size:.875rem;line-height:1.4;}
.check-mark{position:absolute;top:.75rem;right:.75rem;width:1.5rem;height:1.5rem;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1) forwards;}
.check-mark svg{width:1rem;height:1rem;color:white;stroke:white;}

/* Wizard card */
.wizard-card{background:var(--gradient-card);box-shadow:var(--shadow-medium);border-radius:1rem;}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:.5rem;font-weight:500;transition:all .3s;cursor:pointer;border:none;font-family:'Poppins',sans-serif;}
.btn-primary{background:var(--primary);color:var(--primary-foreground);padding:.875rem 2.5rem;font-size:1.125rem;box-shadow:var(--shadow-lifted);}
.btn-primary:hover{transform:scale(1.05);box-shadow:var(--shadow-medium);}
.btn-outline{background:transparent;color:var(--foreground);border:1.5px solid var(--border);padding:.625rem 1.5rem;font-size:1rem;}
.btn-outline:hover{background:var(--secondary);}
.btn-sm{padding:.25rem .75rem;font-size:.75rem;border-radius:.375rem;}
.btn-sm.active{background:var(--primary);color:var(--primary-foreground);}
.btn-sm.inactive{background:transparent;color:var(--foreground);border:1.5px solid var(--border);}

/* Layout helpers */
.container{max-width:64rem;margin:0 auto;padding:0 1.5rem;}
.container-sm{max-width:48rem;margin:0 auto;padding:0 1.5rem;}
.container-xs{max-width:38rem;margin:0 auto;padding:0 1.5rem;}
.text-center{text-align:center;}
.flex-center{display:flex;align-items:center;justify-content:center;}
.flex-col{display:flex;flex-direction:column;}
.min-h-screen{min-height:100vh;}
.py-8{padding:2rem 0;}
.py-12{padding:3rem 0;}
.mb-2{margin-bottom:.5rem;}
.mb-3{margin-bottom:.75rem;}
.mb-4{margin-bottom:1rem;}
.mb-6{margin-bottom:1.5rem;}
.mb-8{margin-bottom:2rem;}
.mb-10{margin-bottom:2.5rem;}
.mt-2{margin-top:.5rem;}
.mt-8{margin-top:2rem;}
.gap-2{gap:.5rem;}
.gap-3{gap:.75rem;}
.gap-4{gap:1rem;}
.gap-6{gap:1.5rem;}
.grid-3{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media(min-width:640px){.grid-3{grid-template-columns:repeat(3,1fr);}}

/* Stone texture background */
.stone-texture{background-image:radial-gradient(ellipse at 20% 30%,rgba(180,172,156,.3) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(180,172,156,.2) 0%,transparent 40%),radial-gradient(ellipse at 50% 50%,rgba(180,172,156,.1) 0%,transparent 60%);}

/* Intro decorative blobs */
.blob-tr{position:absolute;top:-10rem;right:-10rem;width:20rem;height:20rem;background:var(--primary-5);border-radius:50%;filter:blur(48px);pointer-events:none;}
.blob-bl{position:absolute;bottom:-10rem;left:-10rem;width:20rem;height:20rem;background:var(--primary-5);border-radius:50%;filter:blur(48px);pointer-events:none;}

/* Results: score badge */
.match-badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--primary-10);color:var(--primary);padding:.5rem 1rem;border-radius:99px;font-size:.875rem;font-weight:500;margin-bottom:1rem;}
.match-badge svg{width:1rem;height:1rem;}
.score-card{border-radius:1rem;padding:1.5rem;text-align:center;}
.score-num{font-family:'Poppins',sans-serif;font-size:2rem;font-weight:700;color:var(--primary);}
.score-label{color:var(--muted-foreground);font-size:.875rem;}
.reason-row{display:flex;align-items:flex-start;gap:.75rem;background:var(--card);border-radius:.75rem;padding:1rem;box-shadow: var(--shadow-medium);}
.reason-icon{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--primary-10);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.reason-icon svg{width:1rem;height:1rem;stroke:var(--primary);}
.product-card{border-radius:1rem;overflow:hidden;background:var(--gradient-card);box-shadow:var(--shadow-medium);transition:box-shadow .3s, border-color .3s;display:block;text-decoration:none;color:inherit;transform-style:preserve-3d;border:2px solid transparent;}
.product-card:hover{box-shadow:var(--shadow-lifted);border-color:var(--primary-30);}
.product-img{aspect-ratio:3/2;overflow:hidden;background:var(--muted);}
.product-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.product-card:hover .product-img img{transform:scale(1.1);}
.product-info{padding:1rem;}
.product-name{font-weight:500;font-size:.9375rem;color:var(--foreground);transition:color .2s;}
.product-card:hover .product-name{color:var(--primary);}
.product-material{font-size:.8125rem;color:var(--muted-foreground);}
.product-ext{width:1rem;height:1rem;stroke:var(--muted-foreground);flex-shrink:0;transition:stroke .2s;}
.product-card:hover .product-ext{stroke:var(--primary);}
.other-pill{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem 1rem;background:var(--secondary);border-radius:99px;font-size:.875rem;color:var(--secondary-foreground);transition:background .2s;}
.other-pill-match{background:var(--primary-10);color:var(--primary);padding:0 .375rem;border-radius:4px;font-weight:600;font-size:.75rem;}
.other-pill:hover{background:var(--muted);}

/* Carousel */
.carousel-wrapper{position:relative;margin:0 -1rem;padding:0 1rem;}
@media(min-width:640px){.carousel-wrapper{margin:0;padding:0;}}
.carousel-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-top:1.5rem;padding-bottom:3rem;margin-top:-1.5rem;margin-bottom:-3rem;}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track{-ms-overflow-style:none;scrollbar-width:none;}
.carousel-item{flex:0 0 100%;scroll-snap-align:center;padding:0 0.75rem;transform-style:preserve-3d;}
@media(min-width:640px){.carousel-item{flex:0 0 50%;scroll-snap-align:start;}}
@media(min-width:1024px){.carousel-item{flex:0 0 33.333333%;}}
.carousel-arrow{display:none;position:absolute;top:calc(50% - 24px);transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:var(--background);border:1px solid var(--border);box-shadow:var(--shadow-soft);align-items:center;justify-content:center;color:var(--foreground);cursor:pointer;z-index:2;transition:all .2s;}
.carousel-arrow:hover{border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-medium);}
@media(min-width:1024px){.carousel-arrow{display:flex;}}
.carousel-prev{left:-24px;}
.carousel-next{right:-24px;}
.carousel-indicators{display:flex;justify-content:center;gap:0.5rem;margin-top:1.5rem;}
.indicator-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:all .3s;}
.indicator-dot.active{background:var(--primary);transform:scale(1.3);}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95);}to{opacity:1;transform:scale(1);}}
@keyframes gentleFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
@keyframes pulseGlow{0%,100%{opacity:.3;transform:scale(1);}50%{opacity:.6;transform:scale(1.05);}}
@keyframes floatOrb{0%,100%{transform:translateY(0) translateX(0);opacity:.3;}50%{transform:translateY(-20px) translateX(10px);opacity:.6;}}
.animate-fade-up{animation:fadeUp .5s ease-out forwards;}
.animate-scale-in{animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1) forwards;}
.float-diamond{animation:gentleFloat 3s ease-in-out infinite;}
.pulse-ring{animation:pulseGlow 2.5s ease-in-out infinite;}
.orb1{animation:floatOrb 4s ease-in-out infinite;}
.orb2{animation:floatOrb 5s ease-in-out infinite reverse;}
.orb3{animation:floatOrb 3.5s ease-in-out infinite 1s;}

/* Language selector */
.lang-wrap{display:flex;justify-content:center;gap:.5rem;margin-top:2rem;}

/* Question header */
.q-icon{display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--primary);}
.q-icon svg{width:48px;height:48px;}
.q-title{font-size:2rem;font-weight:600;letter-spacing:-1px;margin-bottom:.375rem;}
@media(min-width:640px){.q-title{font-size:2.5rem;}}
.q-subtitle{color:var(--muted-foreground);font-size:1.0625rem;}

/* Section headings */
.section-title{font-family:'Poppins',sans-serif;font-size:1.25rem;font-weight:500;text-align:center;margin-bottom:1rem;}

/* Start-over link */
.link-subtle{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted-foreground);font-size:.875rem;transition:color .2s;background:none;border:none;cursor:pointer;}
.link-subtle:hover{color:var(--foreground);}
.space-y-4>*+*{margin-top:1rem;}
