:root {
  --background: 42 48% 96%;
  --foreground: 32 30% 13%;
  --primary: 38 72% 48%;
  --primary-foreground: 42 60% 98%;
  --secondary: 34 36% 88%;
  --secondary-foreground: 32 26% 16%;
  --muted: 36 22% 88%;
  --muted-foreground: 32 12% 42%;
  --destructive: 4 72% 48%;
  --destructive-foreground: 42 60% 98%;
  --border: 36 28% 78%;
  --card: 40 55% 98%;
  --success: 138 42% 38%;
  --warning: 29 86% 48%;
  --shadow-sm: 0 8px 24px rgba(87, 65, 34, 0.08);
  --shadow-md: 0 18px 50px rgba(87, 65, 34, 0.13);
  --shadow-lg: 0 30px 90px rgba(87, 65, 34, 0.18);
  --transition-fast: 160ms ease;
  --transition-smooth: 420ms cubic-bezier(.2,.8,.2,1);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 34px;
}
.dark {
  --background: 30 22% 9%;
  --foreground: 42 42% 94%;
  --primary: 40 82% 58%;
  --primary-foreground: 30 20% 9%;
  --secondary: 30 18% 18%;
  --secondary-foreground: 42 42% 94%;
  --muted: 30 14% 19%;
  --muted-foreground: 38 18% 70%;
  --destructive: 4 70% 58%;
  --destructive-foreground: 42 42% 96%;
  --border: 34 16% 28%;
  --card: 30 20% 12%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  min-height: 100vh;
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -2;
  background:
    radial-gradient(circle at 12% 8%, hsla(var(--primary), .18), transparent 28%),
    radial-gradient(circle at 82% 16%, hsla(30, 58%, 72%, .22), transparent 30%),
    linear-gradient(135deg, hsl(var(--background)), hsl(38 55% 92%));
}
.font-display { font-family: "Playfair Display", Georgia, serif; }
.glass {
  background: hsla(var(--card), .72);
  border: 1px solid hsla(var(--border), .78);
  box-shadow: var(--shadow-md);
  backdrop-filter: blur(22px);
}
.lux-card {
  background: linear-gradient(145deg, hsla(var(--card), .96), hsla(var(--secondary), .58));
  border: 1px solid hsla(var(--border), .72);
  box-shadow: var(--shadow-sm);
  transition: transform var(--transition-smooth), box-shadow var(--transition-smooth), border-color var(--transition-fast);
}
.lux-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: hsla(var(--primary), .5); }
.gold-text { background: linear-gradient(90deg, hsl(var(--primary)), hsl(29 85% 38%), hsl(44 92% 64%)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.room-3d {
  transform-style: preserve-3d;
  perspective: 900px;
}
.room-box {
  position: relative;
  min-height: 420px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(135deg, #fff8ea, #d9bb7c);
  box-shadow: inset 0 0 0 1px hsla(var(--border), .7), var(--shadow-lg);
}
.room-box::before { display: none; }
.interior-render { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(circle at 50% 10%, rgba(255,255,255,.95), transparent 34%), linear-gradient(180deg, #fff8ec 0%, #f0dcc0 48%, #b78647 100%); }
.render-ceiling { position: absolute; left: 8%; right: 8%; top: 0; height: 34%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); background: linear-gradient(180deg, #fffdf8, #ead9bd); box-shadow: inset 0 -18px 45px rgba(150,99,39,.16); }
.render-floor { position: absolute; left: -8%; right: -8%; bottom: -6%; height: 48%; clip-path: polygon(24% 0, 76% 0, 100% 100%, 0 100%); background: repeating-linear-gradient(92deg, rgba(110,72,34,.18) 0 2px, transparent 2px 74px), linear-gradient(135deg, #e5c38a, #8f5d31); box-shadow: inset 0 24px 60px rgba(255,255,255,.22); }
.render-wall { position: absolute; top: 14%; bottom: 21%; width: 38%; background: linear-gradient(135deg, rgba(255,250,239,.88), rgba(192,145,82,.32)); }
.render-wall-left { left: 0; clip-path: polygon(0 0, 100% 17%, 100% 100%, 0 88%); }
.render-wall-right { right: 0; clip-path: polygon(0 17%, 100% 0, 100% 88%, 0 100%); }
.render-window { position: absolute; left: 37%; top: 18%; width: 26%; height: 31%; border-radius: 24px 24px 10px 10px; background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(181,216,226,.5)); border: 8px solid rgba(120,83,42,.35); box-shadow: 0 22px 70px rgba(255,255,255,.42); }
.render-window span { position: absolute; background: rgba(117,82,44,.28); }
.render-window span:first-child { left: 48%; top: 0; width: 4px; height: 100%; }
.render-window span:last-child { left: 0; top: 48%; width: 100%; height: 4px; }
.render-chandelier { position: absolute; left: 50%; top: 6%; width: 86px; height: 86px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle, #fff8cc 0 16%, #d1a24b 17% 34%, transparent 35%); filter: drop-shadow(0 0 24px rgba(214,163,84,.72)); }
.render-chandelier::before { content: ""; position: absolute; left: 50%; top: -38px; width: 2px; height: 44px; background: rgba(108,73,34,.35); }
.render-panel { position: absolute; top: 24%; width: 10%; height: 34%; border-radius: 18px; background: linear-gradient(180deg, rgba(112,74,34,.55), rgba(229,199,145,.42)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); }
.render-panel-one { left: 18%; }
.render-panel-two { right: 18%; }
.render-rug { position: absolute; left: 26%; bottom: 8%; width: 48%; height: 25%; border-radius: 50%; background: radial-gradient(ellipse, rgba(255,248,232,.9), rgba(196,147,72,.48) 70%); transform: perspective(420px) rotateX(58deg); }
.render-sofa { position: absolute; left: 29%; bottom: 20%; width: 42%; height: 20%; border-radius: 28px 28px 12px 12px; background: linear-gradient(135deg, #fff0d6, #bf8f52); box-shadow: 0 28px 45px rgba(66,42,18,.28); }
.render-sofa::before { content: ""; position: absolute; left: -8%; right: -8%; bottom: 0; height: 44%; border-radius: 18px; background: linear-gradient(135deg, #8f5d31, #e8c989); }
.render-table { position: absolute; left: 42%; bottom: 14%; width: 16%; height: 9%; border-radius: 50%; background: linear-gradient(135deg, #3f2919, #d6a354); box-shadow: 0 18px 24px rgba(54,35,18,.24); }
.render-planter { position: absolute; right: 10%; bottom: 19%; width: 44px; height: 80px; border-radius: 12px 12px 18px 18px; background: linear-gradient(180deg, #537a45 0 46%, #9a6a35 47%); box-shadow: 0 15px 24px rgba(54,35,18,.2); }
.furniture { position: absolute; border-radius: 16px; box-shadow: 0 12px 24px rgba(71,48,21,.14); border: 1px solid hsla(var(--border), .85); cursor: grab; transition: transform var(--transition-fast); opacity: .82; backdrop-filter: blur(2px); }
.furniture:hover { transform: scale(1.04); }
.animate-float { animation: float 5s ease-in-out infinite; }
.animate-pulse-soft { animation: pulseSoft 2.8s ease-in-out infinite; }
@keyframes float { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-12px); } }
@keyframes pulseSoft { 0%,100%{ opacity: .72; transform: scale(1); } 50%{ opacity: 1; transform: scale(1.04); } }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: hsla(var(--primary), .45); border-radius: 999px; }
button, a, input, select { outline-color: hsl(var(--primary)); }
