.meme-page{background:var(--page-bg);color:var(--text-strong)}.mg-wrap{min-height:80vh;padding:42px 18px 64px}.mg-inner{max-width:1180px;margin:0 auto}.mg-heading{max-width:820px;margin:0 auto 30px;text-align:center}.mg-kicker{display:inline-flex;padding:7px 14px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.82rem;font-weight:900;margin-bottom:14px}.mg-heading h1{font-family:var(--font-display);font-size:clamp(2.15rem,5.5vw,4rem);line-height:1;margin:0 0 14px;letter-spacing:0}.mg-heading h1 span{color:var(--accent-strong)}.mg-heading p{color:var(--text-soft);font-size:1.02rem;line-height:1.7;margin:0}.mg-card,.mg-preview-panel,.mg-controls{background:var(--panel);border:1px solid var(--header-border);border-radius:8px;box-shadow:var(--shadow)}.mg-card{padding:clamp(18px,3vw,28px)}.mg-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mg-drop{width:100%;min-height:230px;border:2px dashed color-mix(in srgb,var(--accent) 42%,var(--header-border));border-radius:8px;background:var(--panel-soft);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--text-strong);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .2s ease}.mg-drop:hover,.mg-drop.is-dragging{background:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px)}.mg-drop-icon{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--accent);color:var(--accent-contrast);font-family:var(--font-display);font-weight:900}.mg-drop-title{font-family:var(--font-display);font-size:1.35rem;font-weight:900}.mg-drop-sub,.mg-preview-head p,.mg-status{color:var(--text-muted)}.mg-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;margin-top:22px;align-items:start}.mg-preview-panel,.mg-controls{padding:18px}.mg-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.mg-preview-head h2,.mg-control-block h2{font-family:var(--font-display);font-size:1.1rem;margin:0}.mg-preview-head p{margin:4px 0 0;font-size:.9rem}.mg-ghost-btn{border:1px solid var(--header-border);background:var(--panel-soft);color:var(--text-strong);border-radius:8px;padding:9px 12px;font-weight:800;cursor:pointer}.mg-canvas-frame{min-height:390px;border-radius:8px;border:1px solid var(--header-border);background:var(--panel-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.mg-canvas-frame canvas{max-width:100%;max-height:580px;display:block}.mg-status{margin:12px 0 0;font-size:.9rem}.mg-controls{display:flex;flex-direction:column;gap:16px}.mg-control-block{padding-bottom:16px;border-bottom:1px solid var(--header-border)}.mg-control-block:last-of-type{border-bottom:0;padding-bottom:0}.mg-control-block h2{margin-bottom:12px}.mg-controls label{display:grid;gap:7px;color:var(--text-soft);font-size:.9rem;font-weight:800;margin-bottom:12px}.mg-controls textarea,.mg-controls input[type=color],.mg-controls select{width:100%;border:1px solid var(--header-border);background:var(--panel-soft);color:var(--text-strong);border-radius:8px;padding:11px 12px;font:inherit}.mg-controls textarea{resize:vertical;text-transform:uppercase}.mg-controls input[type=color]{height:46px;padding:5px}.mg-controls input[type=range]{accent-color:var(--accent)}.mg-actions{display:grid;gap:10px}.mg-primary-btn,.mg-download-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:8px;border:0;padding:12px 16px;font-family:var(--font-display);font-weight:900;text-decoration:none;cursor:pointer}.mg-primary-btn{background:var(--accent);color:var(--accent-contrast)}.mg-download-btn{background:var(--panel-soft);color:var(--accent-strong);border:1px solid var(--accent-soft)}.is-hidden{display:none!important}@media(max-width:900px){.mg-workspace{grid-template-columns:1fr}}@media(max-width:560px){.mg-wrap{padding-inline:14px}.mg-preview-head{flex-direction:column}.mg-ghost-btn,.mg-primary-btn,.mg-download-btn{width:100%}}