/* SIMUL8OR — MEME GENERATOR v0.1 — requires s8-tokens.css + s8-ui.css.
   Option A composer desk adapted to the production meme-generator controls. */

.mm,.mm-mast{box-sizing:border-box;background:var(--s8-bg);color:var(--s8-fg);font-family:var(--s8-sans)}
.mm *,.mm-mast *{box-sizing:border-box}

/* Masthead */
.mm-mast{width:100%}
.mm-mast__row{display:contents}
.mm-mast__copy{display:grid;gap:var(--s8-3)}
.mm-mast h1{margin:var(--s8-4) 0 0;font-size:var(--s8c-fs-hero);font-weight:600;letter-spacing:-.028em;line-height:1.02;color:#fff}
.mm-mast p{margin:var(--s8-3) 0 0;max-width:var(--s8c-measure);font-size:clamp(16px,1.4vw,20px);color:var(--s8-fg-2);text-wrap:pretty}
.mm-eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--s8-mono);font-size:var(--s8-fs-micro);font-weight:700;letter-spacing:var(--s8-ls-caps);text-transform:uppercase;color:var(--s8-fg-3)}
.mm-eyebrow i{width:5px;height:5px;border-radius:50%;background:currentColor}
.mm-meta{display:flex;align-items:center;gap:var(--s8-3);font-family:var(--s8-mono);font-size:var(--s8-fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--s8-fg-4)}
.mm-meta i{width:1px;height:11px;background:var(--s8-line-2)}

/* Option A: templates rail, canvas, inspector. */
.mm-desk{display:grid;grid-template-columns:296px minmax(320px,1fr) 336px;grid-template-rows:auto auto auto;gap:var(--s8-4);align-items:start;margin-top:clamp(40px,6vw,72px)}
.mm-controls,.controls-panel{display:contents}
.mm-template-panel{grid-column:1;grid-row:1 / span 3;min-width:0}
.mm-stage-wrap{grid-column:2;grid-row:1 / span 3;min-width:0}
.mm-inspector{grid-column:3;min-width:0}
.mm-inspector--caption{grid-row:1}
.mm-inspector--context{grid-row:2}
.mm-inspector--styling{grid-row:3}

.mm-sec__head{display:flex;align-items:center;gap:var(--s8-2);padding:var(--s8-3) var(--s8-4) 0}
.mm-sec__head h3{margin:0;flex:1;font-size:var(--s8-fs-md);font-weight:600;color:#fff}
.mm-step{flex:none;display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--s8-accent-line);border-radius:var(--s8-r-sm);background:var(--s8-accent-tint);font-family:var(--s8-mono);font-size:var(--s8-fs-micro);font-weight:700;color:var(--s8-accent-fg)}

/* Template rail */
.mm-ph{background-color:var(--s8-inset);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 5px,transparent 5px 10px)}
.mm-rows{display:grid;gap:2px;padding:var(--s8-3) var(--s8-4) var(--s8-4);margin:0}
.mm-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;height:var(--s8-row);padding:0 var(--s8-2);border:1px solid transparent;border-radius:var(--s8-r);background:transparent;color:var(--s8-fg-2);font:inherit;font-size:var(--s8-fs-sm);text-align:left;cursor:pointer;transition:background var(--s8-t-fast) var(--s8-ease),color var(--s8-t-fast) var(--s8-ease)}
.mm-row:hover{background:var(--s8-hover);color:var(--s8-fg)}
.mm-row__thumb{width:26px;height:26px;border-radius:var(--s8-r-xs);border:1px solid var(--s8-line-2);position:relative;overflow:hidden}
.mm-row__thumb::after{content:attr(data-abbr);position:absolute;inset:0;display:grid;place-items:center;font-family:var(--s8-mono);font-size:9px;font-weight:700;color:var(--s8-fg-4)}
.mm-row__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.mm-row__hint{font-family:var(--s8-mono);font-size:var(--s8-fs-micro);color:var(--s8-fg-4);letter-spacing:.04em}
.mm-row.active,.mm-row[aria-selected="true"]{background:var(--s8-accent-tint);border-color:var(--s8-accent-line);color:#fff}
.mm-row.active .mm-row__hint,.mm-row[aria-selected="true"] .mm-row__hint{color:var(--s8-accent-fg)}

/* Canvas */
.mm-stage{display:grid;gap:var(--s8-3);width:100%;max-width:560px;margin:0 auto;padding:0;background:transparent;border:0}
.mm-canvas{position:relative;aspect-ratio:1/1;border:1px solid var(--s8-line-2);border-radius:var(--s8-r);background:var(--s8-inset);overflow:hidden}
#memeCanvas{display:block;width:100%;height:100%}
.mm-canvasbar{display:flex;align-items:center;gap:var(--s8-2);height:var(--s8-h-lg);padding:0 var(--s8-2) 0 var(--s8-3);border:1px solid var(--s8-line);border-radius:var(--s8-r);background:var(--s8-panel-2)}
.mm-canvasbar__sp{flex:1}
.mm-actions{display:flex;gap:var(--s8-2)}
.mm-actions .s8-btn{flex:1;white-space:nowrap}

/* Inspector */
.mm-inspector{padding:0;border:1px solid var(--s8-line);border-radius:var(--s8-r-lg);background:var(--s8-panel)}
.mm-inspector>.mm-sec__head{padding-bottom:var(--s8-3)}
.mm-inspector .mb-3{margin:0 0 var(--s8-3)}
.mm-inspector--caption>.mb-3,.mm-inspector--caption>div:not(.mm-sec__head){margin-left:var(--s8-4);margin-right:var(--s8-4)}
.mm-inspector--caption>div:last-child{margin-bottom:var(--s8-4)}
.mm-inspector--context{display:grid;grid-template-columns:1fr;gap:0}
.mm-inspector--context>div{padding:0 var(--s8-4) var(--s8-4)}
.mm-inspector--context>#ticker-section{padding-top:0}
.mm-inspector--context>#ticker-section .mm-sec__head{margin:0 calc(-1 * var(--s8-4));padding-bottom:var(--s8-3)}
.mm-inspector--context>#template-section{border-top:1px solid var(--s8-line);padding-top:var(--s8-3)}
.mm-inspector--styling>.row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8-3);padding:0 var(--s8-4) var(--s8-4)}
.mm-inspector--styling .col-6{min-width:0}
.mm-fieldrow{display:grid;gap:6px}
.mm-fieldrow>span,.form-label{display:block;margin:0 0 6px;font-size:var(--s8-fs-xs);font-weight:500;color:var(--s8-fg-2)}
.s8-input,.s8-select{width:100%}
.active-section{background:var(--s8-accent-tint)}

.mm-tone{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:2px;border:1px solid var(--s8-line);border-radius:var(--s8-r);background:var(--s8-inset)}
.mm-tone button{height:calc(var(--s8-h) - 6px);border:1px solid transparent;border-radius:var(--s8-r-sm);background:transparent;color:var(--s8-fg-2);font:inherit;font-size:var(--s8-fs-sm);font-weight:600;cursor:pointer}
.mm-tone button:hover{color:var(--s8-fg)}
.mm-tone button.active[data-tone="roast"],.mm-tone button[aria-selected="true"][data-tone="roast"]{background:var(--s8-down-tint);border-color:var(--s8-down-line);color:var(--s8-down)}
.mm-tone button.active[data-tone="hype"],.mm-tone button[aria-selected="true"][data-tone="hype"]{background:var(--s8-up-tint);border-color:var(--s8-up-line);color:var(--s8-up)}

.d-flex{display:flex}.align-items-center{align-items:center}.small{font-size:var(--s8-fs-xs)}
.mm-color{width:34px;height:34px;padding:2px;border:1px solid var(--s8-line-2);border-radius:var(--s8-r);background:var(--s8-inset);cursor:pointer}
.range-value{min-width:28px;margin-left:var(--s8-2);font-family:var(--s8-mono);font-size:var(--s8-fs-sm);font-variant-numeric:tabular-nums;color:var(--s8-fg);text-align:right}
.mm-range{-webkit-appearance:none;appearance:none;width:100%;height:16px;margin:0;background:transparent;cursor:pointer}
.mm-range::-webkit-slider-runnable-track{height:3px;border-radius:var(--s8-r-pill);background:var(--s8-active)}
.mm-range::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4.5px;border:0;border-radius:50%;background:var(--s8-fg)}
.mm-range::-moz-range-track{height:3px;border-radius:var(--s8-r-pill);background:var(--s8-active)}
.mm-range::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--s8-fg)}
.mm-range:focus-visible{outline:none;box-shadow:var(--s8-focus);border-radius:var(--s8-r-pill)}

@media(max-width:1180px){
  .mm-desk{grid-template-columns:250px minmax(300px,1fr) 310px;gap:var(--s8-3)}
  .mm-row__hint{display:none}
}
@media(max-width:960px){
  .mm-desk{grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto auto auto}
  .mm-template-panel{grid-column:1;grid-row:1 / span 3}
  .mm-stage-wrap{grid-column:2;grid-row:1}
  .mm-inspector{grid-column:2}
  .mm-inspector--caption{grid-row:2}.mm-inspector--context{grid-row:3}.mm-inspector--styling{grid-row:4}
}
@media(max-width:680px){
  .mm-meta{flex-wrap:wrap}
  .mm-desk{display:flex;flex-direction:column}.mm-desk>*{width:100%}
  .mm-stage-wrap{order:1}.mm-stage{max-width:100%}.mm-template-panel{order:2}.mm-inspector--caption{order:3}.mm-inspector--context{order:4}.mm-inspector--styling{order:5}
  .mm-rows{grid-template-columns:1fr 1fr}.mm-actions{flex-wrap:wrap}.mm-actions .s8-btn{min-width:calc(50% - var(--s8-2))}
}
@media(max-width:430px){.mm-rows{grid-template-columns:1fr}.mm-inspector--styling>.row{grid-template-columns:1fr}.mm-actions .s8-btn{width:100%;min-width:100%}}
