/* Greeting cards and memes: mobile first */
main.tp{min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr)}
.cd{margin:8px 0;position:relative;min-width:0;max-width:100%;contain:inline-size;-webkit-tap-highlight-color:transparent}
.cd *{box-sizing:border-box}
.cd button,.cd input,.cd select,.cd textarea{font:inherit;color:inherit;touch-action:manipulation}
.cd button{cursor:pointer}
.cd :focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.cd input[type=text],.cd textarea{width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px;min-height:50px;font-size:17px;min-width:0}
.cd textarea{resize:vertical;min-height:84px;line-height:1.4}
.cd label.cl{display:block;font-size:13px;font-weight:700;color:var(--muted);margin:14px 0 6px}
.cd-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px;margin-bottom:12px}
.cd-tabs button{border:0;background:none;border-radius:12px;min-height:48px;font-weight:700;font-size:16px;color:var(--muted)}
.cd-tabs button.on{background:var(--brand);color:#fff}
.cd-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;margin:0 -2px;scrollbar-width:thin}
.cd-chips.wrap{flex-wrap:wrap;overflow:visible}
.cd-chip{flex:0 0 auto;border:1.5px solid var(--line);background:var(--surface);border-radius:999px;min-height:44px;padding:8px 15px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.cd-chip.on{border-color:var(--brand);background:var(--brand);color:#fff}
.cd-chips.wrap .cd-chip{white-space:normal;text-align:left;max-width:100%;line-height:1.3}
.cd-row{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:560px){.cd-row.two{grid-template-columns:1fr 1fr}}
.cd-view{display:flex;justify-content:center;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:12px;margin:14px 0 10px}
.cd-view canvas{display:block;flex:0 1 auto;min-width:0;max-width:100%;max-height:72vh;width:auto;height:auto;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.18)}
.cd-act{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cd-act.one{grid-template-columns:1fr}
.cd-btn{border:1.5px solid var(--line);background:var(--surface);border-radius:14px;min-height:52px;padding:10px 14px;font-weight:700;font-size:16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:inherit}
.cd-btn.pri{background:var(--brand);border-color:var(--brand);color:#fff}
.cd-btn[hidden]{display:none}
.cd-btn:disabled{opacity:.5;cursor:default}
.cd-sw{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;margin:0 -2px}
.cd-sw button{flex:0 0 auto;width:52px;height:52px;border-radius:14px;border:3px solid transparent;box-shadow:0 0 0 1.5px var(--line);padding:0}
.cd-sw button.on{border-color:var(--bg);box-shadow:0 0 0 3px var(--brand)}
.cd-chk{display:flex;align-items:center;gap:10px;min-height:48px;font-size:16px;margin-top:6px}
.cd-chk input{width:22px;height:22px;accent-color:var(--brand)}
.cd-rng{width:100%;accent-color:var(--brand);min-height:36px}
.cd-note{color:var(--muted);font-size:14px;line-height:1.45;margin:10px 0 0}
.cd-sec{margin-top:18px}
.cd-sec h3{font-size:18px;margin:0 0 6px}
.cd-emo{display:flex;gap:8px;flex-wrap:wrap}
.cd-emo button{width:52px;height:52px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-size:28px;line-height:1;padding:0}
.cd-emo button.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}
.cd-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
