:root{
  --bg:#070509;
  --bg-deep:#0b0710;
  --panel:#0d0a12;
  --panel-strong:#130d1a;
  --ink:#f7f2f9;
  --muted:#a79cab;
  --line:rgba(222,185,255,.11);
  --glass:rgba(17,12,21,.8);
  --brand-rose:#f4b7d8;
  --brand-lilac:#d69aef;
  --brand-violet:#9a75f2;
  --brand-plum:#4e2d81;
  --purple:var(--brand-violet);
  --coral:var(--brand-rose);
  --teal:var(--brand-plum);
  --radius:24px;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 12% 8%,rgba(239,145,210,.095),transparent 29%),
    radial-gradient(circle at 88% 18%,rgba(164,111,232,.09),transparent 27%),
    linear-gradient(180deg,#070509 0%,#0b0710 52%,#050407 100%);
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden;
}
button,a{font:inherit}button{color:inherit}.app-shell{min-height:100vh}
.site-header,
.topbar{
  position:fixed;z-index:20;top:16px;left:50%;width:min(1180px,calc(100vw - 32px));height:74px;transform:translateX(-50%);
  padding:0 14px 0 18px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:rgba(14,10,18,.78);
  backdrop-filter:blur(20px) saturate(135%);box-shadow:0 14px 45px rgba(0,0,0,.28);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
}
.brand{display:flex;align-items:center;gap:11px;justify-self:start;color:inherit;text-decoration:none}.brand-logo,.brand-mark,.brand-gem,.footer-mark{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:visible;background:transparent !important;border:none !important;border-radius:0 !important;box-shadow:none !important;padding:0;outline:none !important}.brand-logo img,.brand-mark img,.brand-gem img,.footer-mark img{width:100%;height:100%;display:block;object-fit:contain;background:transparent;filter:none}.brand-copy{display:flex;flex-direction:column;gap:2px}.brand-copy strong{font-size:11px;letter-spacing:.20em;font-weight:850;color:#f7f2f9}.brand-copy small{font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:#c4b7d1}
.nav-links{display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}
.nav-links a{padding:9px 13px;border-radius:999px;font-size:10px;letter-spacing:.08em;color:#d3cbd6;transition:background .25s ease,color .25s ease;text-decoration:none}
.nav-links a:hover{background:rgba(255,255,255,.08);color:#fff}
.header-cta{justify-self:end;display:flex;align-items:center;gap:12px;padding:11px 14px 11px 16px;border-radius:14px;background:linear-gradient(135deg,#1f1721,#332b3c);color:#fff;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;transition:transform .25s ease,box-shadow .25s ease;text-decoration:none;border:1px solid rgba(255,255,255,.06)}
.header-cta:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.24)}
.header-cta span{font-size:15px;line-height:1}
.lab-chip,.back-link{display:none}

.configurator{width:min(94vw,1480px);margin:0 auto;padding:132px 0 100px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);gap:24px;align-items:start}
.viewer-column{min-width:0}.viewer-copy{padding:25px 12px 38px}.eyebrow{margin:0 0 15px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;font-weight:750;color:#c6afd5}.viewer-copy h1,.sales-cta h2{margin:0;font-size:clamp(58px,6.6vw,108px);letter-spacing:-.067em;line-height:.86;font-weight:800}.viewer-copy h1 span,.sales-cta h2 span{background:linear-gradient(100deg,var(--coral) 5%,var(--purple) 50%,var(--teal) 94%);-webkit-background-clip:text;background-clip:text;color:transparent}.intro{max-width:650px;margin:28px 0 0;color:var(--muted);font-size:clamp(15px,1.25vw,19px);line-height:1.58}
.viewer-sticky{position:sticky;top:122px}.viewer{height:min(70vh,720px);min-height:520px;position:relative;border:1px solid rgba(255,255,255,.08);border-radius:30px;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(20,15,26,.92) 0%,rgba(11,8,14,.94) 54%,rgba(8,6,11,.98) 100%);box-shadow:0 32px 80px rgba(0,0,0,.22)}#scene{position:absolute;inset:0;width:100%;height:100%;display:block}
.loading{position:absolute;inset:0;z-index:20;padding:28px;background:rgba(8,6,12,.94);display:flex;flex-direction:column;justify-content:center;transition:opacity .45s ease,visibility .45s ease}.loading.hidden{opacity:0;visibility:hidden}.loading-topline{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#f7f2f9}.loading-track{height:1px;background:rgba(255,255,255,.10);margin-top:15px;overflow:hidden}.loading-track span{height:100%;width:0;display:block;background:linear-gradient(90deg,var(--coral),var(--purple),var(--teal));transition:width .2s}.loading p{color:var(--muted);font-size:12px;margin:14px 0 0}
.viewer-badge{position:absolute;z-index:5;top:20px;left:20px;border-radius:999px;background:rgba(15,11,19,.8);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);padding:9px 12px;font-size:9px;letter-spacing:.13em;font-weight:800;display:flex;align-items:center;gap:8px;color:#f7f2f9}.pulse{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(139,122,170,.18)}
.camera-controls{position:absolute;z-index:5;top:20px;right:20px;padding:4px;border-radius:999px;background:rgba(18,13,22,.8);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08);display:flex}.camera-btn{border:0;background:transparent;border-radius:999px;padding:8px 12px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;color:#c7b9d4}.camera-btn.active{background:linear-gradient(135deg,#f4b7d8,#c39bff);color:#120d18}.viewer-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.62);white-space:nowrap}.separator{padding:0 7px}
.viewer-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:12px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--line)}.viewer-meta>div{background:rgba(17,12,21,.92);padding:16px 18px;display:flex;flex-direction:column;gap:3px}.meta-value{font-size:12px;font-weight:800;letter-spacing:.08em;color:#fff}.meta-label{font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.panel{border:1px solid var(--line);border-radius:28px;background:rgba(18,13,22,.84);box-shadow:0 24px 70px rgba(0,0,0,.22);overflow:hidden}.panel-head{padding:26px 26px 22px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}.panel-head h2{font-size:36px;letter-spacing:-.045em;margin:0;color:#fff}.text-btn{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:#d0c2d8}
.model-materials{padding:18px 25px;border-bottom:1px solid var(--line);background:rgba(185,140,240,.06)}.model-materials>span{font-size:8px;letter-spacing:.16em;font-weight:800;color:#d0b8ee}.material-legend{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.material-legend span{border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:999px;padding:6px 9px;font-size:9px;color:#f3ebf6}.material-legend em{font-size:10px;color:var(--muted)}
.control-section{border-bottom:1px solid var(--line)}.section-title{width:100%;border:0;background:transparent;padding:19px 25px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;font-size:12px;font-weight:750;color:#f3ebf6}.section-title b{font-size:8px;letter-spacing:.12em;color:#d0b4e5;margin-right:10px}.plus{font-size:18px;font-weight:400}.section-body{padding:0 25px 22px;display:none}.control-section.open .section-body{display:block}
.material-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.material-btn{position:relative;min-height:58px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025);padding:10px 12px;cursor:pointer;text-align:left;transition:.2s ease;overflow:hidden;color:#f6eff8}.material-btn:hover{transform:translateY(-1px);border-color:rgba(189,162,255,.32)}.material-btn.active{border-color:#b98cf0;box-shadow:inset 0 0 0 1px rgba(185,140,240,.5);background:rgba(185,140,240,.09)}.material-btn strong{display:block;font-size:10px;line-height:1.2;word-break:break-word}.material-btn small{display:block;margin-top:4px;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.material-btn.active:after{content:"✓";position:absolute;right:10px;top:9px;font-size:10px;font-weight:900;color:#f0c9ef}
.interaction-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.action-card{min-height:78px;border:1px solid rgba(255,255,255,.08);border-radius:15px;background:rgba(255,255,255,.025);padding:12px;display:flex;gap:11px;align-items:center;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease;color:#f3ebf6}.action-card:hover{transform:translateY(-1px);border-color:rgba(189,162,255,.3)}.action-card.active{background:linear-gradient(135deg,rgba(244,183,216,.15),rgba(154,117,242,.12));color:#fff}.action-icon{font-size:21px}.action-card strong{font-size:10px;display:block}.action-card small{font-size:8px;color:var(--muted);display:block;margin-top:4px}.action-card.active small{color:rgba(255,255,255,.7)}
.explore-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}.explore-card.active{background:linear-gradient(135deg,rgba(244,183,216,.12),rgba(154,117,242,.11));border-color:rgba(189,162,255,.3);box-shadow:inset 0 0 0 1px rgba(189,162,255,.2)}
.action-grid{margin-top:10px}
.panel-footer{padding:22px 25px 25px;background:rgba(255,255,255,.02)}.config-summary{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.config-summary span{font-size:8px;letter-spacing:.15em;color:var(--muted)}.config-summary strong{font-size:11px;line-height:1.45;color:#f3ebf6}.primary-btn{width:100%;height:50px;border:0;border-radius:999px;background:linear-gradient(135deg,#f4b7d8,#c39bff);color:#120d18;font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:750;cursor:pointer}.primary-btn span{margin-left:8px}
.sales-cta{width:min(94vw,1480px);margin:0 auto 24px;border-radius:34px;background:#16151a;color:#f6f1e9;padding:clamp(55px,7vw,105px);overflow:hidden}.sales-cta .eyebrow{color:#b4a8c4}.cta-row{display:flex;align-items:flex-end;justify-content:space-between;gap:45px}.sales-cta h2{font-size:clamp(54px,7vw,110px)}.round-cta{width:170px;height:170px;flex:0 0 170px;border-radius:50%;background:linear-gradient(135deg,var(--coral),var(--purple) 56%,var(--teal));color:white;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:1.25;font-weight:750;letter-spacing:.04em;transition:transform .3s}.round-cta:hover{transform:rotate(4deg) scale(1.04)}.round-cta span{display:block;margin-left:4px}
.toast{position:fixed;z-index:80;left:50%;bottom:25px;transform:translate(-50%,20px);background:#18141d;color:#fff;border-radius:999px;padding:11px 16px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.configurator{grid-template-columns:1fr}.viewer-sticky{position:relative;top:auto}.panel{margin-top:15px}.viewer{height:65vh}.topbar{grid-template-columns:1fr auto}.lab-chip{display:none}}
@media(max-width:650px){.topbar{top:10px;min-height:58px}.brand-copy small{display:none}.back-link{font-size:8px;padding:10px 12px}.configurator{padding-top:105px}.viewer-copy{padding-left:2px;padding-right:2px}.viewer{min-height:450px;height:58vh;border-radius:22px}.camera-controls{top:auto;right:50%;bottom:43px;transform:translateX(50%)}.viewer-hint{bottom:16px}.viewer-meta{grid-template-columns:1fr}.material-options,.interaction-grid{grid-template-columns:1fr}.cta-row{align-items:flex-start;flex-direction:column}.round-cta{width:145px;height:145px;flex-basis:145px}.sales-cta{border-radius:25px}}

.fixed-material{cursor:default}.fixed-material:hover{transform:none;border-color:var(--purple)}
.variant-status{margin:0 25px 20px;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.02)}
.variant-status strong{display:block;font-size:10px;margin-bottom:5px;color:#f3ebf6}.variant-status p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}
.detected-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.detected-row:last-child{border-bottom:0}.detected-row span{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.11em}.detected-row strong{font-size:10px;text-align:right;color:#f3ebf6}
.material-btn[disabled]{cursor:default;opacity:.48}.material-btn[disabled]:hover{transform:none;border-color:rgba(255,255,255,.08)}
.material-btn .swatch{width:100%;height:24px;border-radius:8px;margin-bottom:8px;background:linear-gradient(135deg,rgba(244,183,216,.18),rgba(154,117,242,.18))}
.dev-note{margin-top:8px;font-size:8px!important;color:#d8c5d8!important}

/* Cocina 03 — material families generated from the GLB naming convention. */
.variant-categories{display:grid;gap:18px}
.variant-category{display:grid;gap:9px}
.variant-category + .variant-category{padding-top:16px;border-top:1px solid var(--line)}
.variant-category-head{display:flex;align-items:end;justify-content:space-between;gap:12px}
.variant-category-head strong{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:#f3ebf6}
.variant-category-head small{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;text-align:right}
.variant-status{margin:16px 0 0}
.material-btn.only-option{cursor:default}
.material-btn.only-option:hover{transform:none}
.material-btn .option-note{display:block;margin-top:5px;font-size:8px;line-height:1.35;color:var(--muted);text-transform:none;letter-spacing:0}

@media(max-width:800px){
  .configurator{padding-top:108px!important}
  .viewer{min-height:430px!important}
}

/* Always-visible lighting adjustment. */
.lighting-control{padding:22px 25px;border-bottom:1px solid var(--line)}
.lighting-label{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;font-size:12px;font-weight:750;color:#f3ebf6}
.lighting-label output{color:#d0b4e5;font-variant-numeric:tabular-nums}
#lightIntensity{display:block;width:100%;height:24px;margin:0;accent-color:#ce9feb;cursor:pointer}
#lightIntensity:focus-visible{outline:2px solid #ce9feb;outline-offset:4px;border-radius:4px}
.lighting-control p{margin:9px 0 0;font-size:11px;line-height:1.5;color:#b6a7c0}
