@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { color-scheme: dark; --bg:#090a10; --panel:#11121a; --panel-2:#171822; --line:rgba(255,255,255,.09); --muted:#898a99; --text:#f6f4ff; --violet:#8f6dff; --cyan:#58d9ff; --pink:#f36bc7; --x:50%; --y:50%; --rx:0deg; --ry:0deg; --glare-opacity:.48; --glare-brightness:1; --glare-spread:36%; --glare-core-size:12.7%; --glare-core-opacity:.4; --holo-response-opacity:.14; --glare-blend-mode:soft-light; --foil-opacity:.54; --grid-opacity:.68; --grain-opacity:.23; }
* { box-sizing:border-box; }
html { min-width:320px; background:var(--bg); }
body { margin:0; min-height:100vh; color:var(--text); font-family:'DM Sans',system-ui,sans-serif; background:radial-gradient(circle at 16% 5%,rgba(83,52,174,.18),transparent 32rem),var(--bg); }
button,input,select { font:inherit; }
button,select,input[type=range] { cursor:pointer; }
.topbar { height:74px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(22px,4vw,64px); border-bottom:1px solid var(--line); background:rgba(9,10,16,.74); backdrop-filter:blur(18px); position:relative; z-index:10; }
.brand { color:#fff; text-decoration:none; font:700 19px 'Space Grotesk'; letter-spacing:.11em; display:flex; align-items:center; gap:10px; }
.brand > span:last-child span { color:#a78bfa; }
.brand-mark { width:32px; height:32px; border-radius:10px; display:grid; place-items:center; background:linear-gradient(135deg,#925cff,#4ac7fa); box-shadow:0 0 28px rgba(142,101,255,.35); }
.topbar-actions { display:flex; align-items:center; gap:10px; }
.autosave { font-size:12px; color:#9b9ca9; margin-right:12px; }.autosave i { display:inline-block; width:6px;height:6px;border-radius:50%;background:#5de3ab;margin-right:7px;box-shadow:0 0 8px #5de3ab; }
button { color:#e9e8ef; border:1px solid var(--line); background:#171821; border-radius:9px; padding:10px 15px; }
.ghost-button { background:transparent; }.export-button { border:0; background:#f4f2fa; color:#17151d; font-weight:700; }.export-button span { margin-right:5px; }
.workspace { min-height:calc(100vh - 112px); display:grid; grid-template-columns:minmax(440px,1.05fr) minmax(510px,.95fr); }
.preview-panel { min-height:850px; padding:54px clamp(36px,5vw,82px) 30px; position:sticky; top:0; height:calc(100vh - 38px); overflow:hidden; border-right:1px solid var(--line); display:flex; flex-direction:column; }
.section-heading,.editor-header { display:flex; justify-content:space-between; align-items:flex-start; }
.eyebrow { margin:0 0 10px; font-size:10px; font-weight:700; letter-spacing:.2em; color:#8f70e8; }
h1,h2,h3,p { margin-top:0; } h1 { margin-bottom:0; font:600 clamp(25px,2.4vw,38px) 'Space Grotesk'; letter-spacing:-.035em; } h2 { margin:0; font:600 29px 'Space Grotesk'; letter-spacing:-.03em; }
.preview-actions{display:flex;align-items:center;gap:8px}.inspect-button{height:40px;padding:0 13px;background:rgba(255,255,255,.04);font-size:10px}.inspect-button span{margin-right:5px;font-size:14px}
.card-stage { flex:1; min-height:520px; display:grid; place-items:center; position:relative; perspective:800px; }
.ambient-glow { position:absolute; width:var(--halo-size,420px);height:var(--halo-size,420px);border-radius:50%; opacity:var(--halo-opacity,.55); background:radial-gradient(circle,rgba(137,92,255,.46),rgba(70,185,226,.2) 43%,rgba(71,104,190,.08) 60%,transparent 74%); filter:blur(var(--halo-blur,12px)); transition:opacity .25s ease,width .25s ease,height .25s ease,filter .25s ease; }
.holo-card::before { content:''; position:absolute; z-index:-1; inset:-2px; border-radius:5.5% / 4%; pointer-events:none; opacity:var(--halo-edge-opacity,.187); box-shadow:0 0 var(--halo-edge-spread,6px) rgba(137,92,255,.78),0 0 calc(var(--halo-edge-spread,6px) + 8px) rgba(70,185,226,.34); transition:opacity .25s ease,box-shadow .25s ease; }
.holo-card { width:min(330px,62%); aspect-ratio:733/1024; transform-style:preserve-3d; transform:rotateX(var(--rx)) rotateY(var(--ry)); transition:transform .12s ease-out; filter:drop-shadow(0 18px 24px rgba(0,0,0,.48)); position:relative; z-index:2; }
.card-surface,.card-surface > * { position:absolute; inset:0; width:100%;height:100%; border-radius:4.8% / 3.5%; }
.card-surface { overflow:hidden; transform-style:preserve-3d; background:#121015; box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 0 0 1px rgba(255,255,255,.15); }
.card-surface::before,.card-surface::after { content:''; position:absolute; inset:0; z-index:8; pointer-events:none; border-radius:inherit; opacity:0; transition:opacity .2s ease; }
.holo-card.finish-scratches .card-surface::before { opacity:.18; mix-blend-mode:screen; background:repeating-linear-gradient(104deg,transparent 0 27px,rgba(255,255,255,.2) 28px,transparent 29px 51px); }
.holo-card.finish-grain .card-surface::after { opacity:.12; mix-blend-mode:overlay; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.card-surface img { object-fit:cover; user-select:none; }
.content-layers,.art-layer,.art-layer > *{position:absolute;inset:0;width:100%;height:100%}
.content-layers{transform-style:preserve-3d}
.art-layer{transform:translateZ(var(--layer-depth,0));transform-style:preserve-3d;isolation:isolate;pointer-events:none}
.art-layer img{z-index:0;display:block;object-fit:cover}
.art-layer-effect{z-index:1;pointer-events:none;-webkit-mask-image:var(--layer-mask);mask-image:var(--layer-mask);-webkit-mask-size:cover;mask-size:cover;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.art-layer .holo-grid,.art-layer .holo-zigzag,.art-layer .holo-facets{z-index:2}.art-layer .holo-rainbow{z-index:3}.art-layer .holo-grain{z-index:4}
.art-layer:not(.clip-support) .holo-rainbow{-webkit-mask-image:none;mask-image:none}.art-layer:not(.clip-textures) .art-layer-effect:not(.holo-rainbow){-webkit-mask-image:none;mask-image:none}
.art-layer .holo-grid,.art-layer .holo-rainbow,.art-layer .holo-grain,.art-layer .holo-zigzag,.art-layer .holo-facets{opacity:0}
.art-layer.effect-grid .holo-grid{opacity:var(--layer-grid-opacity,.68)}
.art-layer.effect-foil .holo-rainbow{opacity:var(--layer-foil-opacity,.54)}
.art-layer.effect-glitter .holo-grain{opacity:var(--layer-glitter-opacity,.23)}
.art-layer.effect-zigzag .holo-zigzag,.art-layer.effect-facets .holo-facets{opacity:var(--layer-grid-opacity,.68)}
.holo-grid { opacity:var(--grid-opacity); mix-blend-mode:screen; background-image:repeating-linear-gradient(var(--layer-angle,55deg),transparent 0 var(--layer-grid-gap,6.6px),rgba(255,255,255,.42) var(--layer-grid-line,7.4px),rgba(92,214,255,.25) var(--layer-grid-end,9.4px)),repeating-linear-gradient(calc(180deg - var(--layer-angle,55deg)),transparent 0 var(--layer-grid-gap,6.6px),rgba(255,255,255,.32) var(--layer-grid-line,7.4px),rgba(255,92,207,.2) var(--layer-grid-end,9.4px)); background-position:0 0; filter:contrast(1.12); transition:opacity .2s ease; }
.holo-rainbow { opacity:var(--foil-opacity); mix-blend-mode:screen; background-size:240% 240%; background-position:var(--x) var(--y); filter:contrast(1.25) brightness(.96) saturate(1.3); transition:opacity .2s ease; }
.holo-grain { opacity:var(--grain-opacity); mix-blend-mode:screen; background-image:radial-gradient(circle at 20% 30%,rgba(255,255,255,.54) 0 1.2px,transparent 1.9px),radial-gradient(circle at 80% 70%,rgba(255,247,207,.48) 0 1.1px,transparent 1.8px),radial-gradient(circle at 45% 84%,rgba(223,248,255,.5) 0 1px,transparent 1.7px); background-size:calc(var(--layer-grid-size,12px) * 1.6) calc(var(--layer-grid-size,12px) * 1.9),calc(var(--layer-grid-size,12px) * 2.25) calc(var(--layer-grid-size,12px) * 2.6),calc(var(--layer-grid-size,12px) * 1.1) calc(var(--layer-grid-size,12px) * 1.4); background-position:0 0,7px 11px,3px 5px; filter:drop-shadow(0 0 1px rgba(255,255,255,.45)); transition:opacity .2s ease; }
.holo-zigzag{mix-blend-mode:screen;background-image:linear-gradient(135deg,transparent 42%,rgba(255,255,255,.62) 43% 48%,transparent 49%),linear-gradient(45deg,transparent 42%,rgba(151,108,255,.48) 43% 48%,transparent 49%);background-size:var(--layer-grid-size,12px) var(--layer-grid-size,12px);background-position:0 0;transition:opacity .2s ease}
.holo-facets{mix-blend-mode:screen;background-image:linear-gradient(30deg,rgba(255,120,203,.38) 12%,transparent 12.5% 87%,rgba(255,120,203,.38) 87.5%),linear-gradient(150deg,rgba(91,223,255,.32) 12%,transparent 12.5% 87%,rgba(91,223,255,.32) 87.5%),linear-gradient(30deg,rgba(255,255,255,.18) 12%,transparent 12.5% 87%,rgba(255,255,255,.18) 87.5%);background-size:calc(var(--layer-grid-size,12px) * 2) calc(var(--layer-grid-size,12px) * 3.4);background-position:0 0;transition:opacity .2s ease}
.card-glare { opacity:var(--glare-opacity); mix-blend-mode:var(--glare-blend-mode,soft-light); background:radial-gradient(circle at var(--x) var(--y),rgba(255,255,255,.82) 0,rgba(218,235,255,.28) 16%,rgba(255,255,255,0) var(--glare-spread)); filter:brightness(var(--glare-brightness,1)); transition:opacity .2s ease,filter .2s ease; }
.card-glare::before,.card-glare::after { content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none; }
.card-glare::before { opacity:var(--glare-core-opacity,.4); mix-blend-mode:screen; background:radial-gradient(circle at var(--x) var(--y),rgba(255,255,255,1) 0,rgba(230,245,255,.92) var(--glare-core-size),rgba(255,255,255,0) calc(var(--glare-core-size) + 9%)); }
.card-glare::after { opacity:var(--holo-response-opacity,.14); mix-blend-mode:color-dodge; background:radial-gradient(circle at var(--x) var(--y),rgba(255,255,255,.92) 0,rgba(80,235,255,.58) 8%,rgba(255,91,220,.45) 16%,rgba(115,83,255,.3) 25%,transparent min(48%,var(--glare-spread))); }
.card-surface > .is-hidden { opacity:0 !important; }
.holo-card:not(.finish-glitter) .holo-grain { opacity:0; }
.holo-card.finish-glitter .art-layer.effect-glitter .holo-grain{opacity:var(--layer-glitter-opacity,.23)}
.ambient-glow.is-hidden { opacity:0; }
.holo-card.no-spring { transition:none; }
.drag-hint { position:absolute; bottom:8px; color:#737482; font-size:11px; letter-spacing:.04em; }.drag-hint span { display:inline-grid;place-items:center;width:23px;height:23px;border:1px solid var(--line);border-radius:7px;margin-right:7px; }
.card-caption { border-top:1px solid var(--line);padding-top:20px; }.card-caption strong { display:block;font:600 15px 'Space Grotesk'; }
.layer-legend { display:flex;gap:8px;margin-top:17px;color:#727380;font-size:10px;flex-wrap:wrap; }.layer-legend i { display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:3px; }.layer-toggle { padding:7px 9px;background:rgba(255,255,255,.025);color:#777986;font-size:10px;border-radius:7px;transition:.2s;}.layer-toggle b{font-size:7px;margin-left:3px;color:#41424d}.layer-toggle.active{color:#e4e2eb;border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.055)}.layer-toggle.selected{box-shadow:inset 0 0 0 1px rgba(143,105,255,.65)}.layer-toggle.active b{color:#70e0ad}.violet{background:#976cff}.cyan{background:#5bdfff}.pink{background:#ff78cb}.gold{background:#ffd56f}.white{background:#fff}
.preview-effect-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px;padding:9px 10px;border:1px solid rgba(143,105,255,.18);border-radius:9px;background:rgba(119,81,218,.055)}.preview-effect-bar>span{min-width:0;display:flex;flex-direction:column;gap:2px}.preview-effect-bar small{color:#7766ae;font-size:7px;letter-spacing:.11em}.preview-effect-bar strong{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.preview-effect-bar>div{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}.effect-preview-toggle{display:flex;align-items:center;gap:5px;padding:6px 8px;background:#0d0e14;color:#777986;font-size:8px}.effect-preview-toggle i,.effect-preview-inherited>i{width:6px;height:6px;flex:0 0 6px;border-radius:50%;filter:saturate(.4);opacity:.45}.effect-preview-toggle.active{border-color:rgba(255,255,255,.22);color:#f0edf7;background:rgba(255,255,255,.055)}.effect-preview-toggle.active i{filter:none;opacity:1;box-shadow:0 0 7px currentColor}.effect-preview-inherited{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px dashed rgba(255,255,255,.14);border-radius:8px;color:#a5a2ae;background:rgba(255,255,255,.025);font-size:8px}.effect-preview-inherited>i{filter:none;opacity:.8}.effect-preview-inherited>span{display:flex;flex-direction:column;gap:1px}.effect-preview-inherited small{color:#777986;font-size:7px;letter-spacing:0}.effect-preview-inherited>b{color:#806cb8;font-size:11px}.effect-preview-empty{padding:5px 1px;color:#737480;font-size:8px;font-style:italic}
.editor-panel { background:linear-gradient(180deg,rgba(20,21,30,.98),rgba(14,15,22,.98)); padding:54px clamp(30px,4.5vw,68px) 40px; }
.editor-header { padding-bottom:25px; }.step-counter { font:600 11px 'Space Grotesk';color:#777887;border:1px solid var(--line);padding:7px 10px;border-radius:20px; }
.tabs { display:flex;border-bottom:1px solid var(--line);gap:25px;margin-bottom:8px; }.tab { position:relative;padding:13px 1px;background:none;border:0;border-radius:0;color:#71727e;font-size:12px;font-weight:600; }.tab.active { color:#fff; }.tab.active::after { content:'';position:absolute;height:2px;left:0;right:0;bottom:-1px;background:linear-gradient(90deg,#8664f5,#d46cdb); }
.form-section { padding:25px 0;border-bottom:1px solid var(--line); }.form-title { display:flex;gap:13px;align-items:flex-start;margin-bottom:20px; }.form-title > span { flex:0 0 28px;height:28px;display:grid;place-items:center;border-radius:8px;background:rgba(133,98,232,.12);color:#a98cff;font-size:10px;font-weight:700; }.form-title h3 { margin:1px 0 3px;font:600 14px 'Space Grotesk'; }.form-title p,.upload-box p,.mask-row p { margin:0;color:#747582;font-size:10px; }.form-title.with-action>div{flex:1}.reset-section{padding:6px 9px;background:transparent;color:#9697a4;font-size:9px;white-space:nowrap}.reset-section:hover{color:#d1c6ff;border-color:rgba(143,105,255,.42)}
.field-grid { display:grid;gap:13px;margin-bottom:14px; }.two-columns{grid-template-columns:1.35fr 1fr}.three-columns{grid-template-columns:repeat(3,1fr)}
label { display:flex;flex-direction:column;gap:7px;color:#9b9ba7;font-size:10px;font-weight:600;letter-spacing:.02em; } input[type=text],select { width:100%;border:1px solid var(--line);border-radius:8px;color:#e8e7ee;background:#0e0f16;padding:11px 12px;outline:none;font-size:11px; } input:focus,select:focus { border-color:rgba(145,105,255,.65); }
.upload-box { display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:12px;border:1px dashed rgba(255,255,255,.15);border-radius:10px;padding:12px;margin-bottom:14px;background:rgba(255,255,255,.018); }.upload-icon,.mini-preview { width:43px;height:43px;border-radius:8px;background:linear-gradient(135deg,#5c397d,#2a95ae);display:grid;place-items:center;font-size:21px; }.upload-box strong,.mask-row strong { font-size:11px;display:block;margin-bottom:4px; }.upload-box button { padding:7px 10px;background:transparent;font-size:10px; }
.restore-image { width:100%;margin:-5px 0 16px;padding:7px 10px;border:0;background:transparent;color:#7f808d;font-size:9px;text-align:left; }.restore-image:hover{color:#bba7ff}
.layer-panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.layer-panel-heading>span{display:flex;flex-direction:column;gap:2px}.layer-panel-heading b{font-size:10px;color:#b8b8c3}.layer-panel-heading small{font-size:8px;color:#62636f}.layer-panel-heading button{padding:7px 10px;border-color:rgba(143,105,255,.3);background:rgba(119,81,218,.1);color:#c8baff;font-size:9px}
.layer-manager{display:flex;flex-direction:column-reverse;gap:7px;max-height:665px;margin-bottom:9px;padding:6px;overflow-y:auto;overscroll-behavior:contain;scroll-padding:6px;border:1px solid var(--line);border-radius:10px;background:#0b0c12;scrollbar-width:thin;scrollbar-color:rgba(143,109,255,.42) transparent}.layer-manager::-webkit-scrollbar{width:7px}.layer-manager::-webkit-scrollbar-thumb{border:2px solid #0b0c12;border-radius:8px;background:rgba(143,109,255,.42)}
.layer-item{position:relative;display:grid;grid-template-columns:20px 26px minmax(0,1fr) 96px 34px;align-items:center;gap:7px;width:100%;min-height:148px;padding:8px;border:1px solid transparent;border-radius:9px;background:#11121a;color:#aaaab5;cursor:pointer;transition:border-color .16s,background .16s,opacity .16s}
.layer-item.selected{border-color:rgba(143,105,255,.68);background:linear-gradient(90deg,rgba(119,81,218,.18),rgba(119,81,218,.07));color:#fff;box-shadow:inset 2px 0 #9274ff}.layer-item.dragging{opacity:.42}.layer-item.drag-over{border-color:#58d9ff;background:rgba(88,217,255,.08)}
.layer-drag-handle{width:20px;height:34px;padding:0;border:0;background:transparent;color:#5d5e6b;font-size:15px;cursor:grab}.layer-drag-handle:active{cursor:grabbing}.layer-item.selected .layer-drag-handle{color:#a995ed}
.layer-item .visibility{width:26px;height:26px;padding:0;border:0;background:transparent;color:#8a8b98}.layer-item .visibility:hover{color:#fff}.layer-item .visibility.off{opacity:.35}
.layer-select{min-width:0;display:grid;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:9px}.layer-thumb-button{width:48px;height:58px;padding:0;overflow:hidden;border-color:rgba(255,255,255,.08);background:#252631}.layer-thumb{display:block;width:100%;height:100%;object-fit:cover}.layer-copy{min-width:0;display:flex;flex-direction:column;gap:7px}.layer-name-controls{min-width:0;display:grid;grid-template-columns:minmax(90px,1fr) auto;align-items:center;gap:6px}.layer-primary-actions{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.layer-primary-actions::-webkit-scrollbar{display:none}.layer-primary-actions .layer-treatment-chip{min-height:24px;padding:3px 6px;font-size:7px;white-space:nowrap}
.layer-inline-name{width:100%;min-width:0;padding:2px 4px!important;border:1px solid transparent!important;border-radius:4px!important;background:transparent!important;color:#b9bac5!important;font-size:10px!important;font-weight:600}.layer-item.selected .layer-inline-name{color:#fff!important}.layer-inline-name:hover,.layer-inline-name:focus{border-color:rgba(143,105,255,.45)!important;background:rgba(0,0,0,.2)!important}
.layer-texture-list{display:flex;align-items:stretch;gap:5px;min-width:0;padding-bottom:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.layer-texture-list::-webkit-scrollbar{display:none}.layer-treatment-chip{width:auto;min-height:20px;padding:3px 7px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:#090a10;color:#858693;font-size:7px;line-height:1.2}.layer-treatment-chip.reflection:hover,.layer-texture-add:hover{border-color:rgba(143,105,255,.42);color:#ded9ed}.layer-treatment-chip.reflection.active{border-color:rgba(255,120,203,.42);background:rgba(255,120,203,.09);color:#ff9bd7}.layer-treatment-chip.clip,.layer-treatment-chip.propagate-support{color:#7d7f8c}.layer-treatment-chip.clip.active,.layer-treatment-chip.propagate-support.active{border-color:rgba(112,224,173,.38);background:rgba(83,190,143,.08);color:#8be8bd}.layer-treatment-chip.pattern{display:inline-flex;align-items:center;gap:4px;padding-right:2px;background:rgba(255,255,255,.035)}.layer-treatment-chip.pattern button{width:17px;height:17px;padding:0;border:0;border-radius:50%;background:transparent;color:currentColor;font-size:9px;opacity:.58}.layer-treatment-chip.pattern button:hover{background:rgba(255,255,255,.1);opacity:1}.layer-treatment-chip.pattern.cyan{color:#75e5ff}.layer-treatment-chip.pattern.gold{color:#ffe096}.layer-treatment-chip.pattern.violet{color:#b39cff}.layer-treatment-chip.pattern.pink{color:#ff9bd7}.layer-texture-card{flex:0 0 142px;display:grid;grid-template-columns:32px minmax(0,1fr) 19px;align-items:center;gap:6px;min-height:40px;padding:4px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0c0d13}.layer-texture-card.inherited{border-style:dashed;opacity:.72}.layer-texture-sample{width:32px;height:32px;border-radius:5px;background-color:#242632}.layer-texture-sample.texture-crosshatch{background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(96,225,255,.75) 5px,transparent 6px),repeating-linear-gradient(135deg,transparent 0 5px,rgba(255,114,218,.55) 6px,transparent 7px)}.layer-texture-sample.texture-sparkle{background-image:radial-gradient(circle,white 0 1px,transparent 1.7px),radial-gradient(circle,#ffd77c 0 1px,transparent 1.6px);background-size:9px 11px,13px 15px;background-position:0 0,5px 7px}.layer-texture-sample.texture-zigzag{background-image:linear-gradient(135deg,transparent 42%,#a989ff 43% 49%,transparent 50%),linear-gradient(45deg,transparent 42%,#67ddff 43% 49%,transparent 50%);background-size:12px 12px}.layer-texture-sample.texture-facets{background-image:linear-gradient(30deg,rgba(255,120,203,.72) 12%,transparent 13% 86%,rgba(255,120,203,.72) 87%),linear-gradient(150deg,rgba(91,223,255,.65) 12%,transparent 13% 86%,rgba(91,223,255,.65) 87%);background-size:18px 30px}.layer-texture-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.layer-texture-copy strong,.layer-texture-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-texture-copy strong{color:#c5c5cf;font-size:7px}.layer-texture-copy small{color:#62636f;font-size:6px}.layer-texture-actions{display:flex;flex-direction:column}.layer-texture-actions button{width:18px;height:17px;padding:0;border:0;background:transparent;color:#6f7080;font-size:8px}.layer-texture-actions button:hover{color:#ddd8ed}.layer-texture-actions button:disabled{opacity:.25}.layer-texture-add{flex:0 0 104px;display:flex;align-items:center;justify-content:center;gap:4px;min-height:40px;padding:5px;border-style:dashed;background:rgba(119,81,218,.045);color:#9f91cc;font-size:7px}.layer-texture-add span{font-size:12px}.layer-texture-add b{font-weight:600}.layer-propagation{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding-top:5px;border-top:1px solid rgba(255,255,255,.06)}.layer-propagation>small{flex:1;color:#686a77;font-size:6px;line-height:1.3}.layer-propagation-actions{display:flex;gap:4px}.layer-propagation-button{min-height:22px;padding:3px 7px;border-color:rgba(143,109,255,.2);background:rgba(119,81,218,.055);color:#81778f;font-size:7px;white-space:nowrap}.layer-propagation-button.active{border-color:rgba(112,224,173,.48);background:rgba(83,190,143,.12);color:#92edc4}.layer-propagation-button:disabled{opacity:.3;cursor:not-allowed}.layer-received-effects{display:flex;align-items:center;gap:8px;min-width:0;padding-top:5px;border-top:1px solid rgba(255,255,255,.06)}.layer-received-effects[hidden]{display:none}.layer-received-effects>small{flex:0 0 82px;color:#686a77;font-size:6px;line-height:1.3}.layer-received-list{display:flex;gap:5px;min-width:0;overflow-x:auto;scrollbar-width:none}.layer-received-list::-webkit-scrollbar{display:none}.received-effect-badge{flex:0 0 auto;display:flex;flex-direction:column;gap:2px;max-width:190px;padding:4px 7px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:#0b0c12}.received-effect-badge b,.received-effect-badge small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.received-effect-badge b{color:#d1ccd9;font-size:7px}.received-effect-badge small{color:#777986;font-size:6px}.received-effect-badge.support{border-color:rgba(255,120,203,.32)}.received-effect-badge.support b{color:#ff9bd7}.received-effect-badge.texture.cyan b{color:#75e5ff}.received-effect-badge.texture.gold b{color:#ffe096}.received-effect-badge.texture.violet b{color:#b39cff}.received-effect-badge.texture.pink b{color:#ff9bd7}
.layer-position-wrap{align-self:stretch;display:grid;place-items:center;border-left:1px solid rgba(255,255,255,.08);padding-left:7px}.layer-position{display:grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:rgba(255,255,255,.055);color:#858694;font-size:7px}.layer-quick-actions{display:flex;flex-direction:column;gap:2px}.layer-quick-actions button{width:96px;height:24px;display:flex;align-items:center;gap:6px;padding:0 7px;border:0;background:transparent;color:#777885;font-size:9px;text-align:left}.layer-quick-actions button span{width:13px;color:#8f80bd;font-size:11px}.layer-quick-actions button b{font-size:7px;font-weight:600}.layer-quick-actions button:hover{color:#d6d2df;background:rgba(255,255,255,.055)}.layer-quick-actions .layer-remove:hover{color:#ff8f9d}.layer-quick-actions button:disabled{opacity:.2;cursor:not-allowed}
.layer-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:12px}
.layer-actions button{padding:8px;font-size:9px;background:transparent}.layer-actions .danger-action{color:#c9848e}
.layer-name-field{margin-bottom:14px}.layer-name-field input{padding:9px 11px}
.layer-effect-picker{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:17px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#0e0f16}
.layer-effect-picker>span{width:100%;color:#9b9ba7;font-size:10px;font-weight:600}
.layer-effect-picker label{flex-direction:row;align-items:center;gap:5px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:9px}.layer-effect-picker label:has(input:checked){border-color:rgba(143,105,255,.48);background:rgba(119,81,218,.1);color:#e9e4ff}.layer-effect-picker label i{width:6px;height:6px;border-radius:50%}
.selected-layer-banner{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding:9px;border:1px solid rgba(143,105,255,.22);border-radius:9px;background:rgba(119,81,218,.07)}.selected-layer-banner img{width:38px;height:38px;object-fit:cover;border-radius:6px}.selected-layer-banner span{display:flex;flex-direction:column;gap:3px}.selected-layer-banner small{font-size:7px;letter-spacing:.13em;color:#856bd2}.selected-layer-banner strong{font-size:10px}
.foil-controls{margin-top:14px}.palette-field{margin:16px 0;padding:0;border:0}.palette-field legend{margin-bottom:8px;color:#9b9ba7;font-size:10px;font-weight:600}.palette-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.palette-presets button{display:flex;flex-direction:column;gap:6px;padding:6px;background:#0e0f16;color:#777885;font-size:8px}.palette-presets button i{height:14px;width:100%;border-radius:4px;background:var(--palette)}.palette-presets button.selected{border-color:rgba(143,105,255,.65);color:#eee9ff;background:rgba(119,81,218,.1)}
.mask-row { display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:12px; }.mini-preview { background:repeating-linear-gradient(45deg,#292a33 0 5px,#111219 5px 10px); }.mask-row.compact { grid-template-columns:1fr auto;padding-top:4px; }
.switch { position:relative;display:block;width:35px;height:20px; }.switch input{position:absolute;opacity:0}.switch span{position:absolute;inset:0;background:#30313a;border-radius:20px;transition:.2s}.switch span::after{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;border-radius:50%;background:#858591;transition:.2s}.switch input:checked+span{background:#7251df}.switch input:checked+span::after{transform:translateX(15px);background:white}
.color-field { margin:17px 0; }.color-field>span { display:block;color:#9b9ba7;font-size:10px;font-weight:600;margin-bottom:9px; }.swatches{display:flex;gap:8px}.swatches i,.swatches button{width:27px;height:27px;padding:0;border-radius:7px;background:var(--c);border:2px solid rgba(255,255,255,.1)}.swatches button{background:#111219;color:#8f909c;border:1px dashed #454650}
.range-field { margin:16px 0; }.range-field>span{display:flex;justify-content:space-between;align-items:center}.range-field b{font-weight:600}.range-field output{color:#a98bff;font-size:10px}.range-field input{width:100%;height:3px;accent-color:#8563ed}
.check-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }.check-grid label { position:relative;align-items:center;justify-content:center;height:65px;border:1px solid var(--line);border-radius:8px;background:#0e0f16;gap:5px;color:#7d7e8b; }.check-grid input{position:absolute;opacity:0}.check-grid span{font-size:15px}.check-grid b{font-size:9px}.check-grid label:has(input:checked){border-color:rgba(143,105,255,.52);color:#c7b7ff;background:rgba(117,78,216,.08)}
.form-footer { display:grid;grid-template-columns:1fr 1.2fr;gap:10px;padding-top:26px; }.form-footer button{height:45px;font-size:11px;font-weight:700}.secondary-action{background:transparent}.primary-action{border:0;background:linear-gradient(110deg,#7855dd,#9b6ce5);box-shadow:0 9px 30px rgba(108,71,204,.2)}.primary-action span{float:right;font-size:16px}
footer { height:38px;border-top:1px solid var(--line);display:grid;place-items:center;color:#555663;font-size:9px;letter-spacing:.06em; }
.crop-dialog { width:min(940px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;border:1px solid rgba(255,255,255,.13);border-radius:16px;color:var(--text);background:#12131b;box-shadow:0 28px 90px rgba(0,0,0,.7);overflow:auto; }
.crop-dialog::backdrop { background:rgba(4,5,9,.82);backdrop-filter:blur(8px); }
.crop-modal { padding:28px; }.crop-header { display:flex;justify-content:space-between;gap:30px;padding-bottom:22px;border-bottom:1px solid var(--line); }.crop-header h2{margin-bottom:7px}.crop-header p:last-child{margin:0;color:#7c7d89;font-size:11px}.crop-close{width:36px;height:36px;padding:0;border-radius:50%;background:transparent;font-size:22px;color:#898a95}
.crop-layout { display:grid;grid-template-columns:minmax(330px,1.15fr) minmax(260px,.85fr);gap:34px;padding:28px 0; }.crop-preview-wrap{display:flex;flex-direction:column;align-items:center}.crop-canvas-shell{position:relative;width:min(330px,100%);aspect-ratio:733/1024;border-radius:4.8% / 3.5%;overflow:hidden;background:#07080c;box-shadow:0 24px 50px rgba(0,0,0,.45);cursor:grab;touch-action:none}.crop-canvas-shell.dragging{cursor:grabbing}.crop-canvas-shell canvas{display:block;width:100%;height:100%}.crop-canvas-shell::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;mix-blend-mode:color-dodge;background:linear-gradient(115deg,#ff3e91,#ffdb67 20%,#5affe0 40%,#5aa2ff 60%,#cb6dff 80%,#ff3e91);background-size:220% 220%;transition:opacity .2s}.crop-canvas-shell.effects-on::after{opacity:.38}.crop-guides{position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.72)}.crop-guides i{position:absolute;background:rgba(255,255,255,.26)}.crop-guides i:nth-child(1),.crop-guides i:nth-child(2){top:0;bottom:0;width:1px}.crop-guides i:nth-child(1){left:33.333%}.crop-guides i:nth-child(2){left:66.666%}.crop-guides i:nth-child(3),.crop-guides i:nth-child(4){left:0;right:0;height:1px}.crop-guides i:nth-child(3){top:33.333%}.crop-guides i:nth-child(4){top:66.666%}.crop-drag-hint{margin:12px 0 0;color:#6f707d;font-size:9px}
.crop-controls{min-width:0}.source-info{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#0e0f16;margin-bottom:22px}.source-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:rgba(132,97,234,.13);color:#ae92ff;font-size:18px}.source-info strong{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.source-info p{margin:3px 0 0;color:#737480;font-size:9px}.crop-control-group{margin:20px 0}.crop-control-group>span{display:block;margin-bottom:8px;color:#9b9ba7;font-size:10px;font-weight:600}.segmented-controls{display:grid;grid-template-columns:1fr 1fr;gap:7px}.segmented-controls button{padding:9px;font-size:9px;background:#0e0f16}.segmented-controls button.selected{border-color:rgba(143,105,255,.58);background:rgba(119,81,218,.12);color:#c9b9ff}.crop-effects-toggle{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:22px 0;padding:13px;border:1px solid var(--line);border-radius:10px;background:#0e0f16}.crop-effects-toggle strong,.crop-effects-toggle small{display:block}.crop-effects-toggle small{margin-top:3px;color:#6d6e79;font-size:9px}.crop-reset{width:100%;background:transparent;color:#9a9ba7;font-size:10px}.crop-error{min-height:15px;margin:10px 0 0;color:#ff8a9b;font-size:10px}
.crop-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:20px;border-top:1px solid var(--line)}.crop-footer>span{color:#696a76;font-size:9px}.crop-footer>div{display:flex;gap:8px}.crop-footer button{font-size:10px}.crop-footer .primary-action{min-width:155px}.crop-footer .primary-action span{margin-left:12px}
body:has(.crop-dialog[open]){overflow:hidden}
.pattern-dialog{width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:0;border:1px solid rgba(255,255,255,.13);border-radius:16px;color:var(--text);background:#11121a;box-shadow:0 28px 90px rgba(0,0,0,.74);overflow:auto}.pattern-dialog::backdrop{background:rgba(4,5,9,.84);backdrop-filter:blur(9px)}.pattern-modal{padding:28px}.pattern-header{display:flex;justify-content:space-between;gap:28px;padding-bottom:21px;border-bottom:1px solid var(--line)}.pattern-header h2{margin-bottom:6px}.pattern-header p:last-child{margin:0;color:#7c7d89;font-size:11px}.pattern-header p strong{color:#c9baff}.pattern-layout{display:grid;grid-template-columns:minmax(290px,.82fr) minmax(400px,1.18fr);gap:32px;padding:28px 0}.pattern-preview-section{display:flex;flex-direction:column;align-items:center}.pattern-preview-card{position:relative;width:min(290px,100%);aspect-ratio:733/1024;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:4.8% / 3.5%;background:radial-gradient(circle at 50% 38%,rgba(110,79,191,.19),transparent 34%),#090a10;box-shadow:0 22px 48px rgba(0,0,0,.42);--x:58%;--y:38%}.pattern-preview-card .art-layer{transform:none}.pattern-preview-card.patterns-only .art-layer img{opacity:0}.pattern-preview-card.patterns-only .art-layer-effect{-webkit-mask-image:none;mask-image:none}.pattern-preview-modes{width:100%;margin:17px 0 0;padding:0;border:0}.pattern-preview-modes legend{margin-bottom:8px;color:#8e8f9c;font-size:9px}.pattern-preview-modes label{display:flex;flex-direction:row;align-items:center;gap:6px;margin-bottom:6px;color:#a7a7b2;font-size:9px}.pattern-preview-modes input{accent-color:#8f6dff}.pattern-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}.pattern-settings-heading strong{font-size:12px}.pattern-settings-heading p{margin:4px 0 0;color:#747582;font-size:9px}.pattern-settings-heading>span{padding:5px 8px;border-radius:12px;background:rgba(143,109,255,.1);color:#b6a4ef;font-size:8px;white-space:nowrap}.pattern-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.pattern-choice{position:relative;display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;gap:2px 10px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#0c0d13;cursor:pointer}.pattern-choice input{position:absolute;right:8px;top:8px;accent-color:#8f6dff}.pattern-choice .pattern-sample{grid-row:1/3;width:48px;height:48px;border-radius:7px;background-color:#151621;opacity:.78}.pattern-choice strong{align-self:end;padding-right:18px;color:#bbbcc6;font-size:9px}.pattern-choice small{align-self:start;color:#62636f;font-size:7px}.pattern-choice:has(input:checked){border-color:rgba(143,109,255,.62);background:rgba(119,81,218,.11);box-shadow:inset 2px 0 #9274ff}.pattern-choice:has(input:checked) strong{color:#fff}.pattern-choice .holo-grid,.pattern-choice .holo-grain,.pattern-choice .holo-zigzag,.pattern-choice .holo-facets{opacity:.82}.pattern-spacing{margin:23px 0 17px}.pattern-note{margin:0;padding:11px;border-left:2px solid rgba(143,109,255,.5);background:rgba(143,109,255,.055);color:#777886;font-size:8px;line-height:1.5}.pattern-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:20px;border-top:1px solid var(--line)}.pattern-footer button{font-size:10px}.pattern-footer .primary-action{min-width:170px}.pattern-footer .primary-action:disabled{opacity:.4;cursor:not-allowed}body:has(.pattern-dialog[open]){overflow:hidden}
.inspection-dialog{width:min(1100px,calc(100vw - 24px));height:min(920px,calc(100vh - 24px));max-width:none;max-height:none;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:16px;color:var(--text);background:#0d0e14;box-shadow:0 30px 100px rgba(0,0,0,.78);overflow:hidden}.inspection-dialog::backdrop{background:rgba(3,4,7,.9);backdrop-filter:blur(10px)}.inspection-modal{height:100%;display:grid;grid-template-rows:auto 1fr auto}.inspection-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line);background:rgba(18,19,27,.92)}.inspection-header h2{margin:0;font-size:21px}.inspection-header .eyebrow{margin-bottom:6px}.inspection-tools{display:flex;align-items:center;gap:8px}.inspection-tools>button{height:36px;font-size:10px;background:#171821}.inspection-tools>button[aria-pressed="true"]{border-color:rgba(143,105,255,.62);background:rgba(119,81,218,.15);color:#c8b9ff}.zoom-options{display:flex;padding:3px;border:1px solid var(--line);border-radius:9px;background:#090a10}.zoom-options button{padding:6px 9px;border:0;background:transparent;color:#6f707c;font-size:9px}.zoom-options button.selected{background:#242532;color:#fff}.inspection-tools .crop-close{width:36px;padding:0;margin-left:4px;background:transparent;font-size:21px}.inspection-stage{position:relative;display:grid;place-items:center;min-height:0;overflow:hidden;perspective:1100px;background:radial-gradient(circle at 50% 45%,rgba(80,55,153,.16),transparent 38%),linear-gradient(135deg,#0c0d13,#08090e)}.inspection-glow{position:absolute;width:min(70vh,700px);height:min(70vh,700px);border-radius:50%;opacity:var(--halo-opacity,.55);background:radial-gradient(circle,rgba(111,75,203,.24),rgba(60,147,180,.07) 43%,transparent 70%);filter:blur(var(--halo-blur,18px));transform:scale(var(--halo-scale,1));transition:opacity .25s ease,transform .25s ease,filter .25s ease}.inspection-card{width:auto;height:min(76vh,760px);max-height:calc(100vh - 155px);aspect-ratio:733/1024;transition:transform .14s ease-out;filter:drop-shadow(0 20px 30px rgba(0,0,0,.5))}.inspection-footer{height:42px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);background:#11121a;color:#686975;font-size:9px}.detail-lens{position:absolute;z-index:20;width:240px;height:180px;display:none;overflow:hidden;border:2px solid rgba(255,255,255,.82);border-radius:12px;background:#08090d;box-shadow:0 16px 45px rgba(0,0,0,.6),0 0 0 5px rgba(120,85,220,.14);pointer-events:none}.inspection-stage.magnifier-active{cursor:crosshair}.inspection-stage.magnifier-active .detail-lens.visible{display:block}.lens-card{position:absolute!important;left:0;top:0;width:auto!important;max-height:none!important;filter:none!important;transition:none!important;transform-origin:top left!important}body:has(.inspection-dialog[open]){overflow:hidden}
@media (max-width:960px){.workspace{grid-template-columns:1fr}.preview-panel{position:relative;height:auto;min-height:780px;border-right:0;border-bottom:1px solid var(--line)}.editor-panel{padding-bottom:70px}.holo-card{width:min(320px,55vw)}}
@media (max-width:700px){.crop-layout{grid-template-columns:1fr}.crop-canvas-shell{width:min(270px,75vw)}.crop-footer{align-items:flex-start;flex-direction:column}.crop-footer>div{width:100%}.crop-footer button{flex:1}}
@media (max-width:760px){.pattern-layout{grid-template-columns:1fr}.pattern-preview-card{width:min(245px,70vw)}.pattern-grid{grid-template-columns:1fr}.pattern-footer button{flex:1}}
@media (max-width:700px){.inspection-dialog{width:100vw;height:100vh;border:0;border-radius:0}.inspection-header{padding:15px;align-items:flex-start}.inspection-header h2{font-size:18px}.inspection-tools{flex-wrap:wrap;justify-content:flex-end}.inspection-tools>button{height:32px}.zoom-options{order:3}.inspection-card{height:auto;width:min(74vw,360px);max-height:68vh}.detail-lens{width:190px;height:145px}.inspection-footer{padding:0 15px}.inspection-footer span:last-child{display:none}}
@media (max-width:620px){.topbar{height:62px}.autosave,.ghost-button{display:none}.workspace{min-height:0}.preview-panel,.editor-panel{padding:34px 20px}.preview-panel{min-height:660px}.card-stage{min-height:440px}.holo-card{width:min(280px,72vw)}.two-columns,.three-columns{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.form-footer{grid-template-columns:1fr}.tabs{gap:15px}.layer-legend{flex-wrap:wrap}.crop-modal{padding:20px}.crop-header{padding-bottom:17px}.crop-layout{padding:20px 0;gap:24px}}
@media (max-width:620px){.preview-effect-bar{align-items:flex-start;flex-direction:column}.preview-effect-bar>div{width:100%}.effect-preview-toggle{flex:1;justify-content:center}}
.inspection-footer{height:auto;min-height:48px;padding:6px 18px;gap:14px}.inspection-layers{display:flex;align-items:center;justify-content:center;gap:5px}.inspection-layers>span{margin-right:3px;color:#858692}.inspection-layers button{padding:5px 7px;border-radius:6px;background:transparent;color:#5f606c;font-size:8px}.inspection-layers button i{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:4px}.inspection-layers button.active{color:#dedce6;border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.045)}
@media (max-width:700px){.inspection-card{max-height:63vh}.inspection-footer{padding:7px 10px;flex-direction:column;gap:5px}.inspection-footer>#inspectionHint,.inspection-footer>.escape-hint{display:none}.inspection-layers{width:100%;flex-wrap:wrap}.inspection-layers button{padding:5px 6px}}
.inspection-stage > .inspection-card{width:min(54vh,544px,calc(100% - 48px));height:auto;max-height:none;aspect-ratio:733/1024;margin:0}
.inspection-stage > .inspection-card > .card-surface{inset:0;width:auto;height:auto;box-sizing:border-box}
@media (max-width:700px){.inspection-stage > .inspection-card{width:min(74vw,360px);height:auto;max-height:none}}
@media (prefers-reduced-motion:reduce){.holo-card{transition:none}}

/* Réglages indépendants de chaque motif dans l’atelier. */
.pattern-choice{display:block;cursor:default}
.pattern-choice>label{position:relative;display:grid;grid-template-columns:48px 1fr;grid-template-rows:auto auto;gap:2px 10px;cursor:pointer}
.pattern-choice>label .pattern-choice-toggle{position:absolute;right:0;top:0;accent-color:#8f6dff}
.pattern-choice.active{border-color:rgba(143,109,255,.62);background:rgba(119,81,218,.11);box-shadow:inset 2px 0 #9274ff}
.pattern-choice.active strong{color:#fff}
.pattern-choice-controls{margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.07)}
.pattern-choice-controls[hidden]{display:none}
.mini-range{gap:5px}.mini-range>span{display:flex;justify-content:space-between;color:#8d8e9a;font-size:8px}.mini-range output{color:#b5a0fa}.mini-range input{position:static;width:100%;height:3px;accent-color:#8563ed}
.propagate-choice{display:flex;flex-direction:row;align-items:center;gap:6px;margin-top:10px;color:#9a9ba7;font-size:8px;cursor:pointer}.propagate-choice input{position:static;accent-color:#8f6dff}
.pattern-note{margin-top:17px}
.layer-treatment-chip.pattern.inherited{border-style:dashed;opacity:.78}.layer-treatment-chip.pattern.inherited button:disabled{opacity:.72;cursor:help}
.texture-matte{filter:grayscale(.75) contrast(1.05);mix-blend-mode:soft-light!important;opacity:.42!important}.texture-holographic{filter:saturate(calc(1 + var(--texture-treatment-intensity,.5))) brightness(calc(.82 + var(--texture-treatment-intensity,.5) * .5))}.texture-holographic.material-etched{filter:grayscale(.45) contrast(1.35) brightness(calc(.8 + var(--texture-treatment-intensity,.5) * .45))}.texture-holographic.material-rainbow{filter:hue-rotate(18deg) saturate(2) brightness(calc(.8 + var(--texture-treatment-intensity,.5) * .5))}.texture-holographic.material-galaxy{filter:hue-rotate(225deg) saturate(1.8) contrast(1.25)}
.holo-grain.texture-holographic::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:calc(.25 + var(--texture-treatment-intensity,.5) * .75);background:radial-gradient(circle at var(--x) var(--y),#fff 0 3%,#7ef4ff 9%,#a36cff 18%,#ff77c8 27%,rgba(255,213,111,.35) 38%,transparent 56%);-webkit-mask-image:radial-gradient(circle at 20% 30%,#000 0 1.2px,transparent 1.9px),radial-gradient(circle at 80% 70%,#000 0 1.1px,transparent 1.8px),radial-gradient(circle at 45% 84%,#000 0 1px,transparent 1.7px);mask-image:radial-gradient(circle at 20% 30%,#000 0 1.2px,transparent 1.9px),radial-gradient(circle at 80% 70%,#000 0 1.1px,transparent 1.8px),radial-gradient(circle at 45% 84%,#000 0 1px,transparent 1.7px);-webkit-mask-size:calc(var(--layer-grid-size,12px) * 1.6) calc(var(--layer-grid-size,12px) * 1.9),calc(var(--layer-grid-size,12px) * 2.25) calc(var(--layer-grid-size,12px) * 2.6),calc(var(--layer-grid-size,12px) * 1.1) calc(var(--layer-grid-size,12px) * 1.4);mask-size:calc(var(--layer-grid-size,12px) * 1.6) calc(var(--layer-grid-size,12px) * 1.9),calc(var(--layer-grid-size,12px) * 2.25) calc(var(--layer-grid-size,12px) * 2.6),calc(var(--layer-grid-size,12px) * 1.1) calc(var(--layer-grid-size,12px) * 1.4);-webkit-mask-position:0 0,7px 11px,3px 5px;mask-position:0 0,7px 11px,3px 5px}
@keyframes texture-shimmer{0%,100%{filter:brightness(.85) saturate(1.15)}50%{filter:brightness(1.7) saturate(2)}}@keyframes texture-drift{from{background-position:0 0}to{background-position:90px 55px}}@keyframes texture-pulse{0%,100%{opacity:.28}50%{opacity:.9}}
.texture-animated.animation-shimmer{animation:texture-shimmer var(--texture-animation-duration,4s) ease-in-out infinite}.texture-animated.animation-drift{animation:texture-drift var(--texture-animation-duration,4s) linear infinite}.texture-animated.animation-pulse{animation:texture-pulse var(--texture-animation-duration,4s) ease-in-out infinite}
.texture-property-block{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07)}.texture-property-block.digital-only{border-top-style:dashed}.texture-property-toggle{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.texture-property-toggle>span:first-child{display:flex;flex-direction:column;gap:2px}.texture-property-toggle b{color:#c2c2cd;font-size:8px}.texture-property-toggle small{color:#686976;font-size:7px}.texture-property-toggle .switch{flex:0 0 35px}.texture-property-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;padding:8px;border-radius:8px;background:rgba(0,0,0,.18)}.texture-property-settings[hidden]{display:none}.texture-property-settings>label{font-size:7px}.texture-property-settings select{padding:7px 8px;font-size:8px}.texture-property-settings .mini-range{margin:0}.digital-only .texture-property-toggle b{color:#c4afff}.digital-only .texture-property-toggle small::before{content:'WEB · ';color:#826bd0;font-weight:700}

/* Lisibilite : tailles minimales pour les informations et commandes de l'atelier. */
:root { --muted:#a3a4b2; }
.autosave { font-size:14px; }
.topbar button { font-size:14px; }
.eyebrow { font-size:12px; letter-spacing:.15em; }
.inspect-button { font-size:13px; }
.drag-hint { color:#9899a7; font-size:13px; }
.card-caption strong { font-size:16px; }
.layer-legend { color:#9b9ca9; font-size:13px; }
.layer-toggle { font-size:13px; }
.layer-toggle b { font-size:9px; }
.preview-effect-bar small { color:#a18bdc; font-size:11px; }
.preview-effect-bar strong { font-size:13px; }
.effect-preview-toggle { font-size:12px; }
.step-counter { color:#a1a2af; font-size:12px; }
.form-title h3 { font-size:16px; }
.form-title p, .upload-box p, .mask-row p { color:#9697a5; font-size:13px; line-height:1.45; }
.form-title > span { font-size:12px; }
label { color:#b4b4c0; font-size:13px; }
input[type=text], select { font-size:14px; }
.upload-box strong, .mask-row strong { font-size:14px; }
.upload-box button { font-size:13px; }
.reset-section, .restore-image { font-size:12px; }
.layer-panel-heading b { font-size:13px; }
.layer-panel-heading small { color:#9293a0; font-size:11px; }
.layer-panel-heading button { font-size:12px; }
.layer-inline-name { font-size:13px!important; }
.layer-primary-actions .layer-treatment-chip, .layer-treatment-chip { min-height:26px; font-size:11px; }
.layer-texture-copy strong { font-size:11px; }
.layer-texture-copy small { color:#90919e; font-size:10px; }
.color-field > span, .range-field output { font-size:13px; }
.check-grid b { font-size:12px; }
.form-footer button { font-size:14px; }
footer { color:#747583; font-size:11px; }

/* Les fenetres de detail suivent la meme echelle de lecture. */
.crop-header p:last-child, .pattern-header p:last-child { font-size:13px; }
.crop-drag-hint, .source-info p, .crop-effects-toggle small, .crop-footer > span,
.pattern-preview-modes legend, .pattern-preview-modes label, .pattern-settings-heading p,
.pattern-note, .inspection-footer { font-size:12px; }
.source-info strong, .crop-control-group > span, .segmented-controls button, .crop-reset,
.crop-footer button, .pattern-choice strong, .pattern-footer button,
.inspection-tools > button, .zoom-options button { font-size:13px; }
.pattern-choice small, .pattern-settings-heading > span { font-size:11px; }
.mini-range > span, .propagate-choice, .texture-property-toggle b,
.texture-property-settings > label, .texture-property-settings select { font-size:11px; }
.texture-property-toggle small { color:#9293a0; font-size:10px; }

/* Lisibilite renforcee dans les vignettes de gestion des calques. */
.layer-item {
  grid-template-columns:20px 26px minmax(0,1fr) 112px 34px;
  min-height:230px;
  height:auto;
  gap:9px;
  padding:10px;
}
.layer-manager { gap:12px; }
.layer-select { align-self:stretch; }
.layer-copy { justify-content:center; }
.layer-received-effects { min-height:48px; }
.received-effect-badge { min-height:42px; }
.layer-copy { gap:9px; }
.layer-primary-actions { gap:6px; }
.layer-primary-actions .layer-treatment-chip,
.layer-treatment-chip {
  min-height:30px;
  padding:5px 9px;
  font-size:12px;
}
.layer-treatment-chip.pattern button {
  width:22px;
  height:22px;
  font-size:12px;
}
.layer-texture-list { gap:7px; }
.layer-texture-add {
  flex-basis:150px;
  min-height:34px;
  padding:7px 10px;
  color:#c2b1ef;
  font-size:12px;
}
.layer-texture-add span { font-size:16px; }
.layer-propagation,
.layer-received-effects {
  align-items:center;
  gap:10px;
  padding-top:8px;
}
.layer-propagation > small {
  color:#a5a6b3;
  font-size:12px;
  line-height:1.4;
}
.layer-propagation-actions { gap:6px; }
.layer-propagation-button {
  min-height:30px;
  padding:5px 9px;
  color:#aaa1b8;
  font-size:12px;
}
.layer-received-effects > small {
  flex-basis:128px;
  color:#a5a6b3;
  font-size:12px;
  line-height:1.4;
}
.layer-received-list { gap:7px; }
.received-effect-badge {
  gap:3px;
  padding:7px 10px;
}
.received-effect-badge b { font-size:12px; }
.received-effect-badge small { color:#a0a1ae; font-size:11px; }
.layer-quick-actions { gap:4px; }
.layer-quick-actions button {
  width:112px;
  height:32px;
  gap:8px;
  padding:0 9px;
  color:#a7a8b5;
}
.layer-quick-actions button span {
  width:16px;
  font-size:15px;
}
.layer-quick-actions button b { font-size:12px; }
.layer-actions button { font-size:12px; }

/* Outils du calque regroupes sous son apercu. */
.crop-canvas-shell canvas{position:relative;z-index:1}
.crop-context-layers{position:absolute;inset:0;pointer-events:none}
.crop-context-under{z-index:0}
.crop-context-over{z-index:2}
.crop-context-layers img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.crop-canvas-shell::after,.crop-canvas-shell.effects-on::after{opacity:0}
.crop-effects-preview.holo-card{display:none;position:absolute;inset:0;z-index:3;width:100%;height:100%;aspect-ratio:auto;transform:none;filter:none;pointer-events:none}
.crop-canvas-shell.effects-on .crop-effects-preview{display:block}
.crop-canvas-shell.effects-on canvas,.crop-canvas-shell.effects-on .crop-context-layers{visibility:hidden}
.crop-guides{z-index:4}
.crop-context-toggle{margin:14px 0 0}
.crop-context-toggle:has(input:disabled){opacity:.5}
.crop-angle-control{display:block;margin-top:13px;color:#9b9ba7;font-size:10px;font-weight:600}
.crop-angle-control>span{display:flex;align-items:center;gap:8px;margin-top:7px}
.crop-angle-control input[type=range]{flex:1;min-width:0;accent-color:#8563ed}
.crop-angle-control input[type=number]{width:56px;padding:7px 4px;border:1px solid var(--line);border-radius:6px;background:#0e0f16;color:var(--text);text-align:center;font:inherit}
.crop-angle-control b{color:#a98bff;font-size:12px}
.source-thumbnail{display:block;flex:none;width:38px;height:46px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#252631;object-fit:cover}

/* Outils du calque regroupes sous son apercu. */
.layer-item {
  grid-template-columns:20px minmax(0,1fr) 46px;
  min-height:270px;
}
.layer-select {
  grid-template-columns:116px minmax(0,1fr);
  align-items:start;
  gap:12px;
}
.layer-media-tools {
  width:116px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
}
.layer-thumb-button {
  width:84px;
  height:102px;
}
.layer-quick-actions {
  width:116px;
}
.layer-quick-actions button,
.layer-item .layer-quick-actions .visibility {
  width:116px;
  height:32px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 9px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#a7a8b5;
  text-align:left;
}
.layer-item .layer-quick-actions .visibility.off { opacity:1; }
.layer-quick-actions .visibility.off span { opacity:.45; }
.layer-quick-actions .visibility:hover,
.layer-quick-actions .visibility:focus-visible { color:#f0edf7; background:rgba(255,255,255,.055); }
.layer-position-wrap {
  min-width:40px;
  padding-left:9px;
}
.layer-position {
  min-width:34px;
  height:34px;
  border-radius:17px;
  color:#d7d2e4;
  background:rgba(143,109,255,.16);
  font-size:16px;
  font-weight:700;
}

.layer-mobile-order,.layer-mobile-heading { display:none; }
.mobile-hint { display:none; }
.motion-button[hidden] { display:none; }
@media (max-width:700px) {
  .preview-panel .section-heading { flex-direction:column; align-items:center; gap:16px; margin-bottom:24px; text-align:center; }
  .preview-panel .preview-actions { width:100%; justify-content:center; }
  .card-stage { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; padding-bottom:24px; }
  .card-stage > .holo-card { flex:none; }
  .desktop-hint { display:none; }
  .mobile-hint { display:block; position:relative; bottom:auto; flex:none; width:100%; text-align:center; line-height:1.4; }
  .motion-button { position:relative; align-self:center; margin-top:-9px; padding:0 14px; min-height:40px; font-size:10px; }
  .layer-manager { overflow-x:hidden; overscroll-behavior-y:auto; }
  .layer-item { flex:0 0 auto; grid-template-columns:38px minmax(0,1fr); grid-template-rows:auto auto; gap:8px; min-height:0; height:auto; align-items:stretch; }
  .layer-drag-handle,.layer-position-wrap { display:none; }
  .layer-mobile-order { display:flex; grid-column:1; grid-row:1 / 3; flex-direction:column; justify-content:center; gap:6px; align-self:stretch; }
  .layer-mobile-order button { width:38px; height:38px; padding:0; font-size:20px; touch-action:manipulation; }
  .layer-mobile-order button:disabled { opacity:.35; }
  .layer-mobile-heading { display:flex; grid-column:2; grid-row:1; align-items:center; justify-content:space-between; gap:8px; width:100%; min-width:0; padding:7px 9px; color:#f1ecff; font-size:13px; font-weight:700; text-align:left; overflow-wrap:anywhere; }
  .layer-mobile-heading span:first-child { min-width:0; }
  .layer-expand-icon { flex:none; font-size:18px; transition:transform .15s; }
  .layer-item.mobile-expanded .layer-expand-icon { transform:rotate(180deg); }
  .layer-select { grid-column:2; grid-row:2; grid-template-columns:minmax(0,1fr); gap:10px; }
  .layer-media-tools { width:100%; flex-direction:row; align-items:center; }
  .layer-thumb-button { flex:none; width:70px; height:88px; }
  .layer-quick-actions { width:auto; flex:1; min-width:0; }
  .layer-quick-actions button,.layer-item .layer-quick-actions .visibility { width:100%; }
  .layer-copy { display:none; }
  .layer-item.mobile-expanded .layer-copy { display:flex; }
  .layer-copy,.layer-name-controls,.layer-select,.layer-item { min-width:0; }
  .layer-name-controls { grid-template-columns:minmax(0,1fr); }
  .layer-name-controls > .layer-inline-name { display:none; }
  .layer-primary-actions,.layer-texture-list { flex-wrap:wrap; overflow-x:visible; }
  .layer-texture-card { flex:1 1 130px; min-width:0; }
  .layer-texture-add { flex:1 1 130px; }
  .layer-propagation { flex-wrap:wrap; }
  .layer-propagation-actions { flex-wrap:wrap; }
  .layer-received-effects { flex-wrap:wrap; }
  .layer-received-list { flex-wrap:wrap; overflow-x:visible; max-width:100%; }
  .received-effect-badge { min-width:0; max-width:100%; }
  .layer-item { overflow:visible; }
  .card-surface { -webkit-clip-path:inset(0 round 4.8% / 3.5%); clip-path:inset(0 round 4.8% / 3.5%); }
  .preview-actions { flex-wrap:wrap; justify-content:flex-end; }
}
@media (hover:none) and (pointer:coarse) {
  .inspection-stage { touch-action:none; }
}
.inspection-mobile-hint { display:none; }
@media (max-width:700px) {
  .inspection-header { position:relative; flex-direction:column; align-items:stretch; gap:12px; }
  .inspection-header h2 { display:none; }
  .inspection-header .eyebrow { margin-bottom:0; }
  .inspection-tools { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:7px; width:100%; }
  .inspection-tools > #toggleMagnifier { white-space:nowrap; padding:0 10px; }
  .inspection-tools > .zoom-options { order:0; min-width:0; justify-content:center; }
  .inspection-tools > .zoom-options button { flex:1 1 auto; min-width:0; padding:6px 4px; }
  .inspection-tools > .crop-close { position:absolute; top:10px; right:15px; margin-left:0; }
  .inspection-stage { padding-bottom:40px; }
  .inspection-mobile-hint { display:block; position:absolute; right:12px; bottom:12px; left:12px; color:#b9b6c5; font-size:12px; text-align:center; pointer-events:none; }
}
