/* Assistant : esprit papeterie (papier, encre, tampon). */
:root{
  --paper:#f3eee4;
  --paper-2:#ebe4d6;
  --ink:#1c1a17;
  --ink-2:#4a453e;
  --muted:#7a7266;
  --rule:#cfc6b5;
  --stamp:#b0361e;
  --ok:#2f5d3a;
  --serif:"Source Serif 4", Georgia, serif;
  --display:"Instrument Serif", Georgia, serif;
  --mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--serif)}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--stamp)}
code{font:.85em var(--mono);background:var(--paper-2);padding:.05em .3em}
::selection{background:var(--ink);color:var(--paper)}

/* ---------- En-tête ---------- */
.masthead{
  display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;
  max-width:1120px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 18px;
  border-bottom:1px solid var(--ink);
}
.wordmark{font:400 1.7rem/1 var(--display);text-decoration:none;letter-spacing:-.01em}
.wordmark em{color:var(--stamp)}
.steps ol{display:flex;gap:22px;margin:0;padding:0;list-style:none;font:400 .78rem var(--mono);text-transform:uppercase;letter-spacing:.08em}
.steps a,.steps span{color:var(--muted);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}
.steps a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.steps .is-done a,.steps .is-done span{color:var(--ink-2)}
.steps .is-current span{color:var(--ink);border-bottom:2px solid var(--stamp)}

/* ---------- Page ---------- */
.page{max-width:1120px;margin:0 auto;padding:40px clamp(16px,4vw,40px) 96px}
.page-head{max-width:640px;margin-bottom:36px}
.page-head h1{font:400 clamp(2.4rem,6vw,3.4rem)/1.02 var(--display);margin:0 0 14px;letter-spacing:-.015em}
.page-head p{margin:0;color:var(--ink-2)}
.aside{color:var(--muted);font-style:italic;margin:24px 0 0}
.small{font-size:.85rem;color:var(--muted)}

.notice{margin:0 0 28px;padding:12px 16px;border-left:3px solid;font-size:.95rem;background:var(--paper-2)}
.notice-error{border-color:var(--stamp);color:var(--stamp)}
.notice-ok{border-color:var(--ok);color:var(--ok)}

/* ---------- Boutons ---------- */
.btn{
  display:inline-block;padding:13px 22px;border:1px solid var(--ink);border-radius:0;
  font:500 .78rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;text-decoration:none;text-align:center;
  cursor:pointer;transition:background .15s, color .15s;
}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-ink:hover{background:var(--stamp);border-color:var(--stamp);color:var(--paper)}
.btn-line{background:transparent;color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-accent{background:var(--stamp);border-color:var(--stamp);color:#fff}
.btn-accent:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-small{padding:9px 12px;font-size:.7rem}
.btn-block{display:block;width:100%}
.btn-text{background:none;border:0;padding:0;font:inherit;font-size:.92rem;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.btn-text:hover{color:var(--stamp)}
.btn:focus-visible,.btn-text:focus-visible,summary:focus-visible{outline:2px solid var(--stamp);outline-offset:3px}

.actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--ink)}

/* ---------- Étape 1 : thèmes ---------- */
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:28px}
.theme{position:relative;display:flex;flex-direction:column;cursor:pointer}
.theme input{position:absolute;opacity:0;pointer-events:none}
/* Miniature : la vraie page du thème (520 × 680) réduite à la largeur de la vignette */
.theme-scene{
  --scale:.55;
  position:relative;display:block;aspect-ratio:520/680;margin-bottom:14px;overflow:hidden;
  background:var(--t-bg);outline:1px solid var(--rule);outline-offset:6px;transition:outline-color .15s;
}
.theme-scene iframe{
  position:absolute;top:0;left:0;width:520px;height:680px;border:0;
  transform:scale(var(--scale));transform-origin:0 0;pointer-events:none;
}
.theme:hover .theme-scene{outline-color:var(--ink-2)}
.theme:has(input:checked) .theme-scene{outline:2px solid var(--ink)}
.theme:has(input:focus-visible) .theme-scene{outline:2px solid var(--stamp)}
.theme-name{font:400 1.7rem/1.1 var(--display)}
.theme-desc{color:var(--ink-2);font-size:.95rem;margin-top:4px}
.theme-chosen{
  position:absolute;top:14px;left:14px;padding:4px 7px;background:var(--paper);
  font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.1em;opacity:0;transition:opacity .15s;
}
.theme:has(input:checked) .theme-chosen{opacity:1}

/* ---------- Formulaire ---------- */
.section{border-top:1px solid var(--ink)}
.section:last-of-type{border-bottom:1px solid var(--ink)}
.section > summary{
  display:flex;align-items:baseline;gap:18px;padding:18px 0;list-style:none;cursor:default;
}
.section > summary::-webkit-details-marker{display:none}
.section.is-collapsible > summary{cursor:pointer}
.section.is-collapsible > summary::after{content:"+";margin-left:auto;font:400 1.4rem/1 var(--mono);color:var(--muted)}
.section.is-collapsible[open] > summary::after{content:"–"}
.section-num{font:400 .78rem var(--mono);color:var(--muted)}
.section-title{font:400 1.75rem/1.1 var(--display)}
.section-flag{font:500 .7rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--stamp)}
.section-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 40px;padding:4px 0 32px 44px}

.field{display:flex;flex-direction:column;min-width:0}
.field.is-wide{grid-column:1/-1}
.field label{font:400 .74rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin-bottom:6px}
.field-opt{text-transform:none;letter-spacing:0;color:var(--muted)}
.field input,.field textarea{
  width:100%;padding:6px 0 8px;border:0;border-bottom:1px solid var(--ink-2);border-radius:0;background:transparent;
  font:400 1.08rem/1.5 var(--serif);color:var(--ink);resize:vertical;
}
.field textarea{padding:8px 10px;border:1px solid var(--rule);background:rgba(255,255,255,.35)}
.field input::placeholder,.field textarea::placeholder{color:#b1a897;font-style:italic}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--stamp);box-shadow:0 1px 0 var(--stamp)}
.field textarea:focus{box-shadow:inset 0 0 0 1px var(--stamp)}
.field-help{margin-top:6px;font-size:.82rem;color:var(--muted);font-style:italic}
.field-error{margin-top:6px;font-size:.85rem;color:var(--stamp)}
.has-error input,.has-error textarea{border-color:var(--stamp)}

.section-body.is-colors{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px 32px}
.swatch{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.swatch input[type=color]{width:38px;height:38px;padding:0;border:1px solid var(--ink-2);background:none;cursor:pointer}
.swatch input[type=color]::-webkit-color-swatch-wrapper{padding:3px}
.swatch input[type=color]::-webkit-color-swatch{border:0}
.swatch label{font-size:.95rem}
.swatch-reset{grid-column:1/-1;margin:4px 0 0}

/* ---------- Étape 3 ---------- */
.review{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;align-items:start}
.preview{margin:0;position:sticky;top:24px}
.preview-frame{height:min(76vh,720px);background:#111;outline:1px solid var(--ink);outline-offset:8px}
.preview-frame iframe{display:block;width:100%;height:100%;border:0}
.preview-empty{display:grid;place-items:center;height:100%;margin:0;padding:24px;text-align:center;color:#ccc;font-style:italic}
.preview figcaption{display:flex;justify-content:center;gap:24px;margin-top:20px;font-size:.92rem}

.side{display:flex;flex-direction:column;gap:40px}
.block h2{font:400 2rem/1.1 var(--display);margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--ink)}
.block p{margin:0 0 14px}
.block form{margin:0}
.meta{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 18px}
.meta dt{font:400 .74rem/1.9 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.meta dd{margin:0;word-break:break-all}
.warning{padding:12px 14px;border:1px dashed var(--stamp);color:var(--stamp);font-size:.92rem}
.alt-send{margin-top:16px !important;text-align:center}
.block-done h2{color:var(--ok)}
.copy{display:flex;gap:8px;margin:0 0 12px}
.copy input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--rule);background:rgba(255,255,255,.45);font:.8rem var(--mono);color:var(--ink)}
.replies{list-style:none;margin:0;padding:0}
.replies li{padding:12px 0;border-bottom:1px solid var(--rule)}
.replies li:first-child{padding-top:0}
.replies p{margin:0}
.replies blockquote{margin:8px 0 0;font-style:italic;font-size:1.05rem}

.corrections{margin-top:72px}
.corrections > h2{font:400 2.4rem/1 var(--display);margin:0 0 20px}
.restart{margin-top:56px;text-align:center}

@media (max-width:900px){
  .review{grid-template-columns:1fr}
  .preview{position:static}
}
@media (max-width:640px){
  body{font-size:16px}
  .section-body{grid-template-columns:1fr;padding-left:0}
  .steps ol{gap:14px}
  .actions .btn{flex:1}
}
