.generator-page { background:#080808; }
.maker-hero { padding:9vh 5vw 10vh; border-bottom:1px solid var(--line); }
.maker-hero h1 { margin:42px 0; font-family:Arial Black,Impact,sans-serif; font-size:clamp(68px,12vw,180px); line-height:.8; letter-spacing:-.075em; }
.maker-hero > p:last-child { max-width:720px; color:#aaa; font-family:Arial,sans-serif; font-size:17px; line-height:1.7; }
.maker-shell { padding:70px 5vw 110px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr); gap:5vw; align-items:start; }
.maker-stage { position:sticky; top:25px; }
.canvas-frame { position:relative; background:#111; border:1px solid #444; box-shadow:18px 18px 0 var(--acid); }
#memeCanvas { display:block; width:100%; height:auto; background:#111; }
.canvas-corner { position:absolute; right:10px; bottom:10px; padding:7px 9px; background:#080808; color:var(--acid); font-size:8px; letter-spacing:1px; }
.stage-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:38px; }
button { font:inherit; cursor:pointer; }
.maker-controls { border-top:1px solid var(--line); }
.control-block { padding:30px 0 36px; border-bottom:1px solid var(--line); }
.control-title { display:flex; gap:18px; align-items:baseline; margin-bottom:24px; }
.control-title span { color:var(--acid); font-size:10px; }
.control-title h2 { margin:0; font-family:Arial Black,sans-serif; font-size:24px; letter-spacing:-.04em; }
.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.asset-choice { min-width:0; padding:0; border:1px solid #333; background:#111; color:#aaa; text-align:left; transition:.2s; }
.asset-choice img { display:block; width:100%; aspect-ratio:1; object-fit:cover; background:#171717; }
.asset-choice span { display:block; padding:9px 8px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:8px; letter-spacing:.5px; }
.asset-choice:hover,.asset-choice.active { border-color:var(--acid); color:var(--acid); transform:translateY(-2px); }
.empty-thumb { display:grid; place-items:center; width:100%; aspect-ratio:1; color:#777; font-size:30px; background:repeating-linear-gradient(135deg,#111 0 10px,#181818 10px 20px); }
.message-controls label,.toggle-row > span { display:block; color:#777; font-size:9px; letter-spacing:1px; margin-bottom:9px; }
.message-controls textarea { width:100%; resize:vertical; min-height:96px; padding:14px; border:1px solid #444; background:#111; color:#fff; font-family:"rixneonsign-pro",Impact,"Arial Black",sans-serif; font-weight:400; font-style:normal; font-size:24px; line-height:1.05; }
.message-controls textarea:focus { outline:1px solid var(--acid); border-color:var(--acid); }
.second-text-label { margin-top:22px; }
.slider-row { margin-top:22px; }
.slider-row label { display:flex; justify-content:space-between; }
.slider-row input { width:100%; accent-color:var(--acid); }
.toggle-row { display:flex; align-items:center; gap:12px; margin-top:24px; }
.toggle-row > span { margin:0 auto 0 0; }
.color-choice { width:30px; height:30px; padding:0; border:2px solid #333; border-radius:50%; background:var(--swatch); }
.color-choice.active { outline:2px solid var(--paper); outline-offset:3px; }
.check-row { display:flex!important; align-items:center; gap:10px; margin:24px 0 0!important; color:#aaa!important; }
.check-row input { accent-color:var(--acid); }
.logo-row { margin-top:0!important; }
.control-note { margin:12px 0 0; color:#666; font-family:Arial,sans-serif; font-size:12px; }
.stack-note { margin:0 0 18px; line-height:1.5; }
.maker-note { padding:55px 5vw; display:grid; grid-template-columns:1fr 2fr; border-top:1px solid var(--line); }
.maker-note span { color:var(--acid); font-size:10px; letter-spacing:1px; }
.maker-note p { margin:0; color:#888; font-family:Arial,sans-serif; }
@media(max-width:950px){
  .maker-shell { grid-template-columns:1fr; padding:45px 20px 80px; }
  .maker-stage { position:relative; top:0; margin-bottom:45px; }
  .canvas-frame { box-shadow:9px 9px 0 var(--acid); }
  .maker-hero { padding:70px 20px; }
  .maker-hero h1 { font-size:18vw; }
  .choice-grid { grid-template-columns:repeat(3,1fr); }
  .maker-note { grid-template-columns:1fr; gap:15px; padding:45px 20px; }
}
@media(max-width:520px){
  .choice-grid { grid-template-columns:repeat(2,1fr); }
  .stage-actions { justify-content:stretch; }
  .stage-actions .button { flex:1; padding:13px 8px; text-align:center; }
}
