.photo-source{border:1px solid var(--line);padding:18px;margin:25px 0;background:#0e0e0e}.photo-source h3{margin-bottom:16px}.photo-source>p{font-size:11px;color:var(--muted);line-height:1.4;margin:14px 0 0}.source-grid{display:grid;gap:8px}.source-btn{display:flex;flex-direction:column;border:1px solid var(--line);padding:15px;background:#141414;cursor:pointer}.source-btn input{display:none}.source-btn b{text-transform:uppercase;letter-spacing:.1em;font-size:11px}.source-btn span{color:var(--muted);font-size:11px;margin-top:4px}.final-image,.quote-preview{background:#111;margin:18px -20px}.final-image canvas,.quote-preview canvas{width:100%;height:auto;display:block}.artwork-details{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin:18px 0}.artwork-details>div{padding:14px;border-bottom:1px solid var(--line)}.artwork-details span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.artwork-details b{font:400 15px Georgia,serif}.seasons{padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:25px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quote-preview{margin:20px 0}.final-actions{margin-top:20px}@media(min-width:760px){.source-grid{grid-template-columns:repeat(3,1fr)}.final-image{margin:24px 0}}
.debug{border:1px solid #5e4b30;background:#0d0c0a;padding:14px;margin:18px 0}.debug summary{color:var(--bronze);text-transform:uppercase;letter-spacing:.12em;font-size:10px;cursor:pointer}.debug label{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:10px;color:var(--muted)}.debug input{accent-color:var(--bronze)}.debug pre{max-height:230px;overflow:auto;background:#050505;padding:10px;color:#9eaa92;font:10px/1.45 monospace;white-space:pre-wrap}
.startup-error{padding:12px;background:#130d0d;color:#df9b8e;border:1px solid #5a302a;white-space:pre-wrap;overflow:auto;font:11px/1.45 monospace;margin:18px 0}
.ios-source{grid-template-columns:1fr!important}.source-single{text-align:center}.compare.editable{z-index:21}.compare.editable canvas{touch-action:none;cursor:move}.flexo-dragging .bottom-nav{pointer-events:none}.placement-adjust{border:1px solid var(--line);padding:16px;margin:18px 0;background:#0e0e0e}.placement-adjust h3{font-size:19px;margin-bottom:7px}.placement-adjust p{color:var(--muted);font-size:12px;line-height:1.45}.debug h4{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#777;margin:18px 0 8px}.debug-status{display:grid;gap:5px}.debug-status>div{display:flex;justify-content:space-between;gap:10px;padding:7px;background:#090909;font-size:9px}.debug-status span{color:var(--bronze);text-align:right}
.app.immersive{max-width:none;padding:0 0 calc(22px + var(--safe-bottom));min-height:100dvh}.simulation{min-height:100dvh;background:#050505}.simulation .compare{margin:0;background:#050505;min-height:70dvh;display:flex;align-items:center}.simulation .compare canvas{width:100%;max-height:78dvh;object-fit:contain}.size-control{padding:16px 20px 8px}.size-control label{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.size-control input{width:100%;accent-color:var(--bronze)}.zed-conseil-placeholder{width:calc(100% - 40px);margin:10px 20px}.simple-catalog{grid-template-columns:repeat(2,1fr)}.fallback-stage{position:relative;width:100vw;height:100dvh;background:#050505;touch-action:none}.fallback-stage img{width:100%;height:100%;object-fit:contain}.tap-hint{position:absolute;left:20px;right:20px;bottom:calc(30px + var(--safe-bottom));padding:12px;background:rgba(0,0,0,.72);text-align:center;font-size:12px}.immersive-generation{min-height:100dvh;background-size:contain;background-position:center;background-repeat:no-repeat}.immersive-generation:before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.38)}.immersive-generation>*{position:relative}.immersive-generation p{color:#fff}.flexo-dragging{overscroll-behavior:none}
.appearance-editor{margin:0 -8px 18px;padding:14px 12px;background:rgba(12,12,12,.96);border:1px solid var(--line)}
.appearance-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.appearance-title b{color:var(--text);font-weight:500;text-align:right}
.material-strip,.finish-strip{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}.material-strip button,.finish-strip button{flex:none;border:1px solid var(--line);background:#111;color:var(--muted);padding:9px 11px;border-radius:99px;font-size:11px}.material-strip button.selected,.finish-strip button.selected{border-color:var(--bronze);color:var(--text);background:#1b1711}
.color-palette{display:flex;gap:9px;overflow-x:auto;padding:7px 2px 12px}.color-palette button{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid #3a3834;background:var(--swatch)}.color-palette button.saved{box-shadow:0 0 0 2px var(--bronze)}
.color-inputs{display:grid;grid-template-columns:48px minmax(90px,1fr) auto;gap:8px}.color-inputs input,.color-inputs button{height:42px;border:1px solid var(--line);background:#111;color:var(--text);padding:8px}.color-inputs input[type=color]{padding:3px;width:48px}.color-inputs button{font-size:10px;text-transform:uppercase;letter-spacing:.08em}

/* Expérience galerie — couche visuelle uniquement. */
:root{--gallery-paper:#f1eee6;--gallery-gold:#c4a46e;--gallery-panel:rgba(13,13,13,.9);--gallery-radius:18px}
body{background:radial-gradient(circle at 50% -20%,#1a1917 0,#090909 46%,#060606 100%);letter-spacing:.005em}
.topbar{padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.07)}
.brand{color:var(--gallery-paper)}
.hero{display:flex;flex-direction:column;justify-content:center;min-height:60dvh;padding:4vh 0}
.hero h1{margin:5vh 0 22px;letter-spacing:-.035em;text-wrap:balance}
.hero .lead{max-width:460px}
.choice-card,.mode-card{position:relative;overflow:hidden;min-height:175px;padding:26px;border-color:rgba(255,255,255,.09);background:linear-gradient(145deg,rgba(29,28,26,.94),rgba(12,12,12,.98));border-radius:var(--gallery-radius);box-shadow:0 18px 50px rgba(0,0,0,.16);transition:transform .25s ease,border-color .25s ease,background .25s ease}
.choice-card:active,.mode-card:active{transform:scale(.985)}
.choice-card strong,.mode-card strong{letter-spacing:-.015em}
.gold-btn,.ghost-btn,.photo-save-btn{min-height:52px;border-radius:999px;transition:transform .18s ease,opacity .18s ease,background .18s ease}
.gold-btn:active,.ghost-btn:active,.photo-save-btn:active{transform:scale(.985)}
.bottom-nav{background:rgba(7,7,7,.82);border-color:rgba(255,255,255,.08);backdrop-filter:blur(24px) saturate(130%);-webkit-backdrop-filter:blur(24px) saturate(130%)}

.simulation{display:flex;flex-direction:column;background:#050505}
.simulation .compare{min-height:62dvh;background:radial-gradient(circle at center,#151515,#050505 72%)}
.simulation .compare canvas{max-height:76dvh}
.result-controls{position:relative;z-index:22;width:min(100%,760px);margin:-1px auto 0;padding:18px 18px calc(22px + var(--safe-bottom));background:linear-gradient(180deg,rgba(8,8,8,.96),#080808 50%)}
.result-controls .appearance-editor{margin:0 0 12px;padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:var(--gallery-radius);background:var(--gallery-panel);box-shadow:0 16px 45px rgba(0,0,0,.24);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.appearance-title{margin-bottom:15px}.appearance-title span{font-size:9px;letter-spacing:.18em}.appearance-title b{font-family:Georgia,serif;font-size:13px;letter-spacing:.01em;text-transform:none}
.material-strip button,.finish-strip button{border-color:rgba(255,255,255,.09);background:#151515;padding:10px 13px}
.material-strip button.selected,.finish-strip button.selected{border-color:var(--gallery-gold);background:#211b13}
.size-control{padding:12px 4px 16px}.size-control label{font-size:9px;letter-spacing:.18em;text-transform:uppercase}.size-control input{height:24px}
.photo-save-btn{width:100%;border:1px solid #d0b47f;background:linear-gradient(135deg,#d1b57e,#ad8953);color:#080706;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 12px 32px rgba(181,147,93,.2)}
.photo-save-btn span{font-size:16px;vertical-align:-1px;margin-right:5px}
.photo-save-btn:disabled{opacity:.68}
.save-status{min-height:18px;margin:10px 8px 0;color:#aaa59c;font-size:10px;line-height:1.45;text-align:center}
.save-status[data-tone="success"]{color:#c8b891}.save-status[data-tone="error"]{color:#df9b8e}
.save-spinner{display:inline-block;width:14px;height:14px;border:1.5px solid rgba(0,0,0,.28);border-top-color:#070707;border-radius:50%;animation:save-spin .75s linear infinite;vertical-align:-2px}
@keyframes save-spin{to{transform:rotate(360deg)}}
@media(min-width:760px){.result-controls{padding-left:24px;padding-right:24px}.simulation .compare{min-height:68dvh}.choice-card:hover,.mode-card:hover{border-color:rgba(196,164,110,.55);transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

.import-entry{margin:10px 0 26px}.artwork-drop{min-height:190px;margin:26px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1px dashed #6a5b42;border-radius:var(--gallery-radius);background:linear-gradient(145deg,#151412,#0c0c0c);cursor:pointer;transition:border-color .2s ease,background .2s ease}.artwork-drop.dragging{border-color:var(--gallery-gold);background:#211c14}.artwork-drop input{display:none}.artwork-drop span{font:400 20px Georgia,serif}.artwork-drop small{margin-top:8px;color:var(--muted)}.artwork-drop.has-file{min-height:90px}.import-wizard{display:grid;gap:13px}.import-preview{display:grid;grid-template-columns:120px 1fr;gap:18px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:var(--gallery-radius);background:#0d0d0d}.import-preview img{width:120px;height:150px;object-fit:contain;background:radial-gradient(circle,#2a2926,#111)}.import-preview b{display:block;font:400 21px Georgia,serif}.import-preview span{display:block;color:var(--muted);font-size:12px;margin-top:8px}.import-wizard .field{margin:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#101010}.import-wizard i,.import-materials legend i,.import-validation i{font-style:normal;color:var(--bronze);font-size:9px;letter-spacing:.15em;margin-right:7px}.import-dimensions{display:grid;gap:10px}.import-materials{margin:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#101010}.import-materials legend{padding:0 6px;color:var(--muted);font-size:13px}.import-materials label{display:flex;align-items:center;gap:10px;padding:9px 0;color:var(--text);font-size:13px}.import-materials input[type=checkbox]{width:18px;height:18px;accent-color:var(--bronze)}.import-materials>input{width:100%;padding:12px;margin-top:8px;border:1px solid var(--line);background:#090909;color:var(--text)}.import-validation{display:grid;gap:15px;padding:18px;border:1px solid #665437;border-radius:var(--gallery-radius);background:#15120e}.import-validation b{font:400 18px Georgia,serif}.import-validation span{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}@media(min-width:760px){.import-dimensions{grid-template-columns:repeat(3,1fr)}.import-validation{grid-template-columns:1fr 260px;align-items:center}}
.import-diagnostics{display:grid;gap:5px;margin:12px 0;padding:12px;border:1px solid #383838;border-radius:10px;background:#0b0b0b}.import-diagnostics b{font-size:11px;color:var(--muted)}.import-diagnostics code{font-size:10px;color:#bfa87d;white-space:normal;overflow-wrap:anywhere}
