/* LITORRA Canvas & Wall Guide — ivoire #FDFBF7, noir #111111, tons minéraux ; mobile d'abord, cibles tactiles de 44 px. */
.lg{--lg-ivory:#FDFBF7;--lg-ink:#111111;--lg-sand:#E9DFCF;--lg-greige:#B9AD9C;--lg-line:#DED6C8;position:relative;padding-bottom:88px}
.lg-head h1 em{font-style:italic}
.lg-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lg-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:0 0 24px;counter-reset:lg}
.lg-progress li{counter-increment:lg;border-top:3px solid var(--lg-line);padding-top:8px;font-size:13px;color:var(--v1-muted);cursor:default;min-width:0}
.lg-progress li::before{content:counter(lg,decimal-leading-zero) " ";font-variant-numeric:tabular-nums}
.lg-progress li.done{border-color:var(--lg-greige);color:var(--lg-ink);cursor:pointer}
.lg-progress li[aria-current]{border-color:var(--lg-ink);color:var(--lg-ink);font-weight:600}
.lg-screen h2{font-size:clamp(26px,5vw,38px);margin:0 0 16px}
.lg-screen h2:focus{outline:none}
.lg-drop{position:relative;border:1.5px dashed var(--lg-greige);background:var(--lg-ivory);padding:20px;text-align:center;transition:border-color .2s,background .2s}
.lg-drop.lg-drag{border-color:var(--lg-ink);background:var(--lg-sand)}
.lg-file{position:absolute;width:1px;height:1px;opacity:0}
.lg-drop-label{display:flex;flex-direction:column;gap:6px;min-height:120px;justify-content:center;cursor:pointer}
.lg-drop-label strong{font-family:var(--v1-serif);font-size:26px;font-weight:400}
.lg-drop-label span{font-size:14px;color:var(--v1-muted)}
.lg-file:focus-visible+.lg-drop-label{outline:2px solid var(--lg-ink);outline-offset:4px}
.lg-preview img{max-height:260px;max-width:100%;margin:12px auto 0;display:block;object-fit:contain}
.lg-has-image .lg-drop-label{min-height:56px}
.lg-error{color:#9b2c1f;font-size:14px;margin:8px 0 0}
.lg-error:empty{display:none}
.lg-or{margin:22px 0 10px;font-size:15px}
.lg-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lg-card{display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--lg-line);background:#fbf9f4;color:var(--lg-ink);font:inherit;cursor:pointer;min-width:0}
.lg-card picture,.lg-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--lg-sand)}
.lg-card-body{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px}
.lg-card-body strong{font-family:var(--v1-serif);font-size:19px;font-weight:400}
.lg-card-body span{font-size:13px;color:var(--v1-muted)}
.lg-card-body em{font-style:normal;font-size:12px;letter-spacing:.14em;margin-top:4px}
.lg-card[aria-checked=true]{border-color:var(--lg-ink);box-shadow:inset 0 0 0 2px var(--lg-ink)}
.lg-card:focus-visible{outline:2px solid var(--lg-ink);outline-offset:3px}
.lg-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:22px 0}
.lg-actions .button,.lg-nav .button{min-height:48px}
.lg-support,.lg-kit-set{border:0;padding:0;margin:22px 0 10px}
.lg-support legend,.lg-kit-set legend{font-weight:600;margin-bottom:8px;padding:0}
.lg-radio{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:8px 0;cursor:pointer}
.lg-radio input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--lg-ink)}
.lg-format{margin:6px 0 10px}
.lg-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lg-wall .v1-hint{grid-column:1/-1;margin:0}
.lg-format input,.lg-format select,.lg-format textarea{min-height:44px;font-size:16px}
.lg-boxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lg-boxfmt{position:relative;display:block;cursor:pointer}
.lg-boxfmt input{position:absolute;opacity:0;width:1px;height:1px}
.lg-boxfmt>span{display:flex;flex-direction:column;gap:2px;border:1px solid var(--lg-line);background:#fbf9f4;padding:12px 10px;min-height:88px}
.lg-boxfmt strong{font-family:var(--v1-serif);font-size:20px;font-weight:400}
.lg-boxfmt span span{font-size:13px;color:var(--v1-muted)}
.lg-boxfmt em{font-style:normal;font-size:12px;letter-spacing:.08em}
.lg-boxfmt input:checked+span{border-color:var(--lg-ink);box-shadow:inset 0 0 0 2px var(--lg-ink)}
.lg-boxfmt input:focus-visible+span{outline:2px solid var(--lg-ink);outline-offset:3px}
.lg-style{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;align-items:start}
.lg-style h3{font-family:var(--v1-serif);font-weight:400;font-size:28px;margin:2px 0 4px}
.lg-thumb{width:96px;height:96px;object-fit:cover;background:var(--lg-sand)}
.lg-visual{font-style:italic}
.lg-palette ul{display:flex;flex-wrap:wrap;gap:8px 14px;list-style:none;padding:0;margin:6px 0 10px}
.lg-palette li{display:flex;align-items:center;gap:6px;font-size:13px}
.lg-palette .v2-dot{width:22px;height:22px;border-radius:50%;background:var(--c);border:1px solid rgba(17,17,17,.15)}
.lg-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--v1-muted);margin:14px 0 0}
.lg-adjust{display:grid;gap:10px;margin:16px 0;padding:14px;background:var(--lg-ivory);border:1px solid var(--lg-line)}
.lg-adjust input[type=range]{width:100%;min-height:44px;accent-color:var(--lg-ink)}
.lg-adjust select{min-height:44px;font-size:16px}
.lg-step{background:var(--lg-ivory);border:1px solid var(--lg-line);padding:18px 16px}
.lg-count{font-size:13px;letter-spacing:.1em;color:var(--v1-muted);margin:0}
.lg-count span{color:var(--lg-ink);font-weight:600}
.lg-schema{color:var(--lg-ink);margin:10px 0}
.lg-schema svg{width:100%;max-width:360px;height:auto;display:block}
.lg-step-title{font-family:var(--v1-serif);font-weight:400;font-size:30px;margin:4px 0 6px}
.lg-step-title:focus{outline:none}
.lg-gesture{font-size:18px;line-height:1.45}
.lg-tool{display:flex;gap:10px;align-items:center}
.lg-tool svg,.lg-ov-tool svg{width:24px;height:24px;flex:none}
.lg-knife{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-left:3px solid var(--lg-greige);background:#fff}
.lg-moment{font-weight:600}
.lg-reassure{font-family:var(--v1-serif);font-size:20px;font-style:italic}
.lg-check{display:flex;gap:10px;align-items:center;min-height:44px;font-weight:600}
.lg-check input{width:22px;height:22px;accent-color:var(--lg-ink)}
.lg-timer{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin:8px 0 14px}
.lg-timer-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--v1-muted)}
.lg-timer output{font-variant-numeric:tabular-nums;font-size:22px;min-width:9ch}
.lg-timer select{min-height:44px}
.lg-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lg-nav .button{padding-inline:8px}
.lg-dots{display:flex;gap:6px;justify-content:center;margin:14px 0 0}
.lg-dots span{width:9px;height:9px;border-radius:50%;background:var(--lg-line)}
.lg-dots span.ok{background:var(--lg-greige)}
.lg-dots span.on{background:var(--lg-ink)}
.lg-all{margin:18px 0}
.lg-all summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600}
.lg-overview{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:10px}
.lg-ov{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;border-top:1px solid var(--lg-line);padding-top:10px}
.lg-ov>*{grid-column:2}
.lg-ov-n{grid-column:1;grid-row:1/span 5;font-family:var(--v1-serif);font-size:28px;line-height:1}
.lg-ov-schema svg{width:160px;height:auto}
.lg-ov-tool{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--v1-muted)}
.lg-ov-dry{font-size:14px;font-weight:600}
.lg-kit{background:var(--lg-ivory);border:1px solid var(--lg-line);padding:18px 16px}
.lg-kit-format{font-size:16px}
.lg-kit-table{width:100%;border-collapse:collapse;font-size:15px;margin:10px 0}
.lg-kit-table th{text-align:left;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--v1-muted);font-weight:400;border-bottom:1px solid var(--lg-line);padding:6px 6px 6px 0}
.lg-kit-table td{border-bottom:1px solid var(--lg-line);padding:10px 6px 10px 0;vertical-align:top}
.lg-kit-table td:first-child{color:var(--v1-muted);font-size:13px;width:26%}
.lg-artist{background:var(--lg-sand);padding:12px 14px;border-left:3px solid var(--lg-ink)}
.lg-wa{width:100%;min-height:52px;font-size:17px;margin-top:6px}
.lg-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--lg-ink);color:var(--lg-ivory)}
.lg-bar .button{background:var(--lg-ivory);color:var(--lg-ink);border-color:var(--lg-ivory);min-height:44px}
.lg-bar[hidden]{display:none}
/* projector */
.lg-noscroll{overflow:hidden}
.lg-proj{position:fixed;inset:0;z-index:1000;background:#000;color:#FFFFFF;display:flex;flex-direction:column}
.lg-proj canvas{flex:1;width:100%;height:100%;display:block;touch-action:manipulation}
.lg-proj-caption{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-direction:column;gap:4px;pointer-events:none;text-shadow:0 0 6px #000}
.lg-proj-caption strong{font-size:clamp(18px,3vw,30px);font-weight:600}
.lg-proj-caption span{font-size:clamp(14px,2vw,20px);max-width:60ch}
.lg-proj-bar{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:10px 10px calc(10px + env(safe-area-inset-bottom));background:rgba(0,0,0,.82)}
.lg-proj-bar button,.lg-proj-bar label{min-height:44px;min-width:44px;padding:0 12px;border:1px solid #FFFFFF;background:#000;color:#FFFFFF;font:inherit;font-size:14px;display:inline-flex;align-items:center;gap:8px}
.lg-proj-bar button[aria-pressed=true]{background:#FFFFFF;color:#000}
.lg-proj-bar input[type=range]{width:110px;accent-color:#FFFFFF}
.lg-proj-bar button:focus-visible,.lg-proj-bar input:focus-visible{outline:2px solid #FFFFFF;outline-offset:2px}
.lg-proj-clean .lg-proj-bar,.lg-proj-clean .lg-proj-caption{display:none}
@media (min-width:760px){
  .lg-library{grid-template-columns:repeat(4,minmax(0,1fr))}
  .lg-step{padding:26px 28px}
  .lg-style{grid-template-columns:140px minmax(0,1fr)}
  .lg-thumb{width:140px;height:140px}
  .lg-adjust{grid-template-columns:1fr 1fr}
  .lg-wall{grid-template-columns:repeat(2,minmax(0,220px))}
  .lg-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lg-kit{padding:26px 28px;max-width:760px}
  .lg-wa{width:auto;padding-inline:28px}
}
@media (prefers-reduced-motion:reduce){.lg-drop{transition:none}}

/* review fixes: progress buttons, back, busy state, bar reserve, swipe, restart */
.lg-progress li{padding-top:0}
.lg-progress li::before{content:none}
.lg-progress button{width:100%;min-height:44px;padding:8px 0 0;border:0;background:none;font:inherit;font-size:13px;text-align:left;color:inherit;cursor:pointer}
.lg-progress button:disabled{cursor:default;opacity:.55}
.lg-progress button[aria-current]{font-weight:600}
.lg-progress li:has(button[aria-current]){border-color:var(--lg-ink);color:var(--lg-ink)}
.lg-back{min-height:44px;margin:0 0 6px}
.lg-busy{opacity:.6;pointer-events:none}
body.lg-has-bar{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
[data-viewer]{touch-action:pan-y}
.lg-restart{text-align:center;margin:10px 0 0;font-size:14px}
[aria-invalid=true]{border-color:#9b2c1f!important}

.lg-late{background:var(--lg-sand);padding:10px 12px;border-left:3px solid var(--lg-ink)}
