
/* chez vous : essayer une toile sur son propre mur */
.chezvous{padding-bottom:clamp(90px,14vh,160px)}
.cv-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(20px,3vw,44px);padding:0 clamp(16px,4vw,56px);align-items:start}
@media (max-width:900px){.cv-wrap{grid-template-columns:minmax(0,1fr)}}
.cv-stage{position:relative;overflow:hidden;background:var(--ink-2);touch-action:none;user-select:none;-webkit-user-select:none;border-radius:2px;box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.cv-room{width:100%;height:auto;max-height:none;pointer-events:none}
.cv-art{position:absolute;left:50%;top:36%;width:30%;transform:translate(-50%,-50%);cursor:grab;touch-action:none}
.cv-art img{width:100%;height:auto;pointer-events:none;box-shadow:0 18px 32px -10px rgba(0,0,0,.6),0 4px 10px rgba(0,0,0,.28)}
.cv-art.drag{cursor:grabbing}
.cv-art.drag::after,.cv-art:focus-visible::after{content:"";position:absolute;inset:-8px;border:1px dashed rgba(242,239,233,.7);pointer-events:none}
.cv-art:focus-visible{outline:none}
.cv-hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);white-space:nowrap;background:rgba(11,15,23,.72);backdrop-filter:blur(8px);padding:8px 16px;border-radius:99px;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;pointer-events:none;transition:opacity .6s}
.cv-hint.gone{opacity:0}
.cv-panel{display:flex;flex-direction:column;gap:12px}
.cv-step{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-top:12px}
.cv-step:first-child{margin-top:0}
.cv-upload{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;border:1px dashed rgba(242,239,233,.35);border-radius:4px;cursor:pointer;text-align:center;transition:border-color .3s,background .3s}
.cv-upload:hover,.cv-upload:focus-within{border-color:var(--paper);background:rgba(242,239,233,.04)}
.cv-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.cv-upload svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}
.cv-note{font-size:.8rem;color:var(--muted);line-height:1.5}
.cv-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cv-thumbs button{aspect-ratio:1;overflow:hidden;border:1px solid transparent;opacity:.55;transition:opacity .3s,border-color .3s}
.cv-thumbs button:hover{opacity:.9}
.cv-thumbs button.active{opacity:1;border-color:var(--paper)}
.cv-thumbs img{width:100%;height:100%;object-fit:cover}
.cv-name{font-family:var(--serif);font-size:1.4rem;font-weight:300}
.cv-range{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:12px;font-size:.85rem;color:#c9ced8}
.cv-range input{width:100%;accent-color:var(--paper)}
.cv-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.cv-btn{padding:14px 22px;border-radius:99px;background:var(--paper);color:var(--ink);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:500;transition:background .3s,color .3s}
.cv-btn:hover{background:var(--blue);color:var(--paper)}
.cv-btn.ghost{background:none;color:var(--paper);border:1px solid rgba(242,239,233,.3)}
.cv-btn.ghost:hover{border-color:var(--paper)}
@media (max-width:640px){.nav nav a:nth-child(4){display:none}}

/* décors proposés */
.cv-scenes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cv-scenes button{padding:12px 10px;border:1px solid rgba(242,239,233,.25);border-radius:4px;font-size:.78rem;letter-spacing:.06em;transition:all .3s}
.cv-scenes button:hover{border-color:var(--paper)}
.cv-scenes button.active{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.cv-upload.active{border-style:solid;border-color:var(--paper)}
.cv-credit{position:absolute;right:8px;bottom:6px;font-size:.6rem;color:rgba(255,255,255,.75);text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none}
.cv-credit:empty{display:none}
