@font-face { font-family:"Abril Fatface"; src:url("/fonts/zOL64pLDlL1D99S8g8PtiKchq-dmjQ.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Baloo 2"; src:url("/fonts/wXKrE3kTposypRyd51jcAA.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Bangers"; src:url("/fonts/FeVQS0BTqb0h60ACH55Q2A.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Bebas Neue"; src:url("/fonts/JTUSjIg69CK48gW7PXoo9Wlhyw.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Caveat"; src:url("/fonts/Wnz6HAc5bAfYB2Q7ZjYY.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Cinzel"; src:url("/fonts/8vIJ7ww63mVu7gt79mT7.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Dancing Script"; src:url("/fonts/If2RXTr6YS-zF4S-kcSWSVi_szLgiuE.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Fredoka"; src:url("/fonts/X7n64b87HvSqjb_WIi2yDCRwoQ_k7367_DWu89U.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Great Vibes"; src:url("/fonts/RWmMoKWR9v4ksMfaWd_JN9XFiaQ.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Lobster"; src:url("/fonts/neILzCirqoswsqX9zoKmMw.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Montserrat"; src:url("/fonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Pacifico"; src:url("/fonts/FwZY7-Qmy14u9lezJ-6H6Mk.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Playfair Display"; src:url("/fonts/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2") format("woff2"); font-weight:400 700; font-display:swap; }
@font-face { font-family:"Sacramento"; src:url("/fonts/buEzpo6gcdjy0EiZMBUG4C0f_Q.woff2") format("woff2"); font-weight:400; font-display:swap; }

:root { --ink:#252131; --purple:#583687; --lavender:#eee8f6; --line:#ddd6e8; --soft:#fbf9fd; --green:#dff3df; --orange:#fff0cd; --red:#ffe1df; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ink); background:#f7f5f2; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html, body { margin:0; min-height:100%; }
button, input, select { font:inherit; }
button { cursor:pointer; }
.page-shell { max-width:1600px; margin:auto; padding:0 20px 14px; }
.topbar { min-height:64px; display:flex; align-items:center; border-bottom:1px solid var(--line); gap:18px; }
.brand { font-size:24px; font-weight:800; color:var(--purple); text-decoration:none; letter-spacing:-1.2px; }
.brand span { color:#f28b75; }
.product-pill { background:#f1eaf9; color:#593785; padding:6px 11px; border-radius:100px; font-size:13px; font-weight:700; }
.step-label { margin-left:auto; color:#6f687a; font-size:14px; }
.intro { padding:12px 0; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.eyebrow { display:none; }
.intro h1 { margin:0; font-size:22px; line-height:1.1; letter-spacing:-.6px; }
.intro p:not(.eyebrow) { color:#655f6d; margin:4px 0 0; font-size:13px; }
.history-controls { display:flex; gap:8px; }
.icon-button, .secondary, .text-button, .reset-all { border:1px solid var(--line); background:#fff; border-radius:9px; padding:9px 12px; color:#352a47; font-weight:650; }
.icon-button:disabled { opacity:.4; cursor:not-allowed; }
.designer { display:grid; grid-template-columns:330px minmax(0,1fr); gap:16px; min-height:0; overflow:hidden; }
.tools { min-height:0; background:#fff; border:1px solid var(--line); border-radius:14px; overflow-y:auto; scrollbar-gutter:stable; }
.tool-section { padding:16px 18px; border-bottom:1px solid #eee9f3; }
.tool-section h2 { font-size:15px; margin:0 0 12px; }
.tool-section label { display:grid; gap:7px; font-size:13px; font-weight:700; color:#514a5c; }
.upload-button { display:block !important; text-align:center; background:var(--purple); color:white !important; border-radius:9px; padding:10px; cursor:pointer; }
.help, .safety-section p, .canvas-help { margin:8px 0 0; font-size:12px; line-height:1.4; color:#756e7e; }
.status { margin-top:10px; border-radius:8px; padding:9px 10px; font-size:12px; line-height:1.35; }
.neutral { background:#f2eff4; }
.good { background:var(--green); color:#1e5b27; }
.warning { background:var(--orange); color:#75520d; }
.bad { background:var(--red); color:#862b25; }
.image-tools, #text-tools { margin-top:13px; display:grid; gap:10px; }
.image-tools output, #text-tools output { float:right; color:#755493; }
.font-picker { display:grid; gap:7px; }
.font-picker-label { font-size:13px; font-weight:700; color:#514a5c; }
.font-picker-trigger { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:8px 11px; border:1px solid #cfc5dc; border-radius:9px; color:#2f253a; background:#fff; text-align:left; }
.font-picker-trigger::after { content:"⌄"; font-family:Arial,sans-serif; font-size:18px; color:#755493; }
.font-picker-trigger[aria-expanded="true"]::after { content:"⌃"; }
.font-picker-current { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:20px; }
.font-picker-menu { max-height:390px; overflow-y:auto; padding:10px; border:1px solid #ded5e8; border-radius:11px; background:#fbf9fd; box-shadow:0 8px 20px rgba(54,37,69,.12); }
.font-picker-note { margin:0 0 10px; color:#756e7e; font-size:11px; line-height:1.35; }
.font-group-title { margin:10px 2px 7px; color:#755493; font-size:11px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; }
.font-group-title:first-of-type { margin-top:0; }
.font-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.font-option { min-width:0; display:grid; gap:2px; min-height:67px; padding:8px 9px; border:1px solid #e2d9eb; border-radius:9px; color:#33283f; background:#fff; text-align:left; }
.font-option:hover { border-color:#a98bc4; background:#faf6fd; }
.font-option.selected { border:2px solid var(--purple); padding:7px 8px; background:#f1e9f8; }
.font-preview { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-family:var(--preview-font); font-size:22px; line-height:1.25; }
.font-option small { overflow:hidden; color:#756e7e; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.button-row { display:flex; gap:8px; align-items:center; }
.button-row > * { flex:1; }
.text-button { border:0; background:transparent; padding:7px 0; text-align:left; color:#6a526f; }
.danger { color:#a53838; }
.two-column { display:grid; grid-template-columns:1fr 72px; gap:10px; }
.two-column input[type="color"], .color-control input[type="color"], .style-group input[type="color"] { width:100%; height:34px; padding:2px; }
.style-group { display:grid; gap:10px; padding:10px; border:1px solid #e7e0ee; background:#fbf9fd; border-radius:9px; }
.shape-tools { display:grid; gap:10px; }
.color-control { display:grid; grid-template-columns:72px; }
.gradient-tools { display:grid; gap:10px; }
.gradient-colors { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.gradient-presets { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
.gradient-presets button { border:1px solid #d9d0e4; border-radius:7px; padding:7px 5px; background:#fff; color:#4d3c5d; font-size:11px; font-weight:700; }
.gradient-presets button:nth-child(1) { background:linear-gradient(90deg,#ef476f,#6c3fd8); color:#fff; }
.gradient-presets button:nth-child(2) { background:linear-gradient(90deg,#ff6b6b,#ffd166,#8b5cf6); }
.gradient-presets button:nth-child(3) { background:linear-gradient(90deg,#ef476f,#ffd166,#06d6a0,#118ab2); }
.emoji-palette { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }
.emoji-palette button { min-height:44px; border:1px solid #f4dfe9; border-radius:9px; background:#fff0f5; font-size:23px; line-height:1; transition:transform .15s,background .15s; }
.emoji-palette button:hover { background:#fbe2ed; transform:translateY(-1px); }
.sticker-tools { margin-top:12px; display:grid; gap:10px; padding:10px; border:1px solid #e7e0ee; background:#fbf9fd; border-radius:9px; }
.sticker-tools output { float:right; color:#755493; }
.toggle.active { background:#e6dcf2; border-color:#a584c4; color:#43246d; }
.color-line { grid-template-columns:1fr auto; align-items:center; }
.color-line input { width:42px; height:30px; }
.switch { display:flex !important; grid-template-columns:auto 1fr; align-items:center; gap:9px; }
.switch input { display:none; }
.switch span { width:36px; height:20px; border-radius:20px; background:#cfc6d8; position:relative; }
.switch span::after { content:""; position:absolute; background:#fff; width:14px; height:14px; border-radius:50%; top:3px; left:3px; transition:.2s; }
.switch input:checked + span { background:#73519b; }
.switch input:checked + span::after { left:19px; }
.reset-all { display:block; margin:14px auto; color:#8a3c42; }
.workspace { min-width:0; min-height:0; display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; }
.canvas-heading { display:flex; justify-content:space-between; font-weight:750; font-size:14px; margin:2px 2px 8px; }
.muted { color:#787080; font-size:12px; font-weight:500; }
.orientation-control { display:flex; align-items:center; justify-content:flex-end; gap:7px; margin:0 2px 8px; }
.orientation-label { margin-right:auto; color:#6f6878; font-size:12px; font-weight:700; }
.orientation-button { min-height:38px; display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid var(--line); border-radius:9px; color:#4e405f; background:#fff; font-size:12px; font-weight:750; }
.orientation-button.active { color:#fff; border-color:var(--purple); background:var(--purple); }
.page-icon { display:inline-block; width:12px; height:16px; border:1.5px solid currentColor; border-radius:2px; }
.page-icon.landscape { width:16px; height:12px; }
.canvas-frame { min-height:0; background:#ded9e5; padding:14px; border-radius:14px; display:flex; justify-content:center; align-items:center; position:relative; overflow:hidden; }
.canvas-frame canvas { display:block; height:100%; width:auto; max-width:100%; max-height:100%; aspect-ratio:1000/1421; background:#fff; box-shadow:0 10px 24px rgba(44,31,57,.18); touch-action:none; }
.empty-canvas { position:absolute; color:#71687a; background:rgba(255,255,255,.86); padding:10px 16px; border-radius:99px; font-size:13px; }
.empty-canvas[hidden] { display:none; }
.canvas-help { margin-left:2px; }
.actionbar { margin-top:10px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:10px 13px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.actionbar span { color:#706a77; font-size:12px; }
.export-buttons { display:flex; gap:8px; }
.primary { background:var(--purple); border:1px solid var(--purple); color:white; border-radius:9px; padding:10px 13px; font-weight:750; }
.primary:disabled { opacity:.65; cursor:wait; }
.secondary { background:#fff; }
.secondary:hover, .icon-button:hover { background:#f7f2fb; }
.finish-status { min-height:16px; margin:4px 0 0; font-size:12px; color:#635b6b; }
.finish-status:empty { min-height:0; margin:0; }
.finish-status.working { color:#583687; }
.finish-status.error { color:#9a2f2f; }

@media (min-width:801px) {
  html, body { height:100%; overflow:hidden; }
  .page-shell { height:100dvh; display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; }
}

@media (max-width:800px) {
  body { background:#f7f5f2; }
  .page-shell { padding:0 12px 16px; }
  .topbar { min-height:50px; position:sticky; top:0; z-index:20; background:#f7f5f2; }
  .step-label { display:none; }
  .intro { min-height:48px; padding:4px 0; justify-content:flex-end; }
  .intro > div:first-child { display:none; }
  .history-controls .icon-button span { display:none; }
  .history-controls .icon-button { min-width:44px; min-height:44px; padding:8px 11px; }
  .designer { display:flex; flex-direction:column-reverse; gap:12px; overflow:visible; }
  .workspace, .tools { width:100%; }
  .workspace { position:sticky; top:50px; z-index:15; background:#f7f5f2; padding-bottom:5px; grid-template-rows:auto auto minmax(0,34dvh) auto; }
  .canvas-heading { margin:1px 2px 5px; }
  .orientation-control { margin-bottom:6px; }
  .orientation-button { min-height:42px; padding:8px 12px; }
  .canvas-frame { height:34dvh; min-height:220px; max-height:320px; padding:8px; border-radius:12px; }
  .canvas-frame canvas { height:100%; width:auto; max-width:100%; }
  .canvas-help { margin-top:5px; font-size:11px; }
  .tools { position:relative; z-index:5; border-radius:18px 18px 12px 12px; overflow:visible; box-shadow:0 -8px 24px rgba(44,31,57,.08); }
  .tools::before { content:""; display:block; width:42px; height:4px; margin:8px auto 0; border-radius:99px; background:#d9d0e2; }
  .tool-section { padding:13px 15px; }
  .tool-section button, .tool-section select, .tool-section input[type="text"] { min-height:44px; }
  .actionbar { align-items:stretch; flex-direction:column; margin-top:12px; }
  .export-buttons { display:grid; grid-template-columns:1fr; }
  .export-buttons button { width:100%; }
  .product-pill { margin-left:auto; }
  .brand { font-size:21px; }
}

@media (max-width:430px) {
  .page-shell { padding-inline:9px; }
  .orientation-control { gap:5px; }
  .orientation-label { font-size:11px; }
  .orientation-button { flex:1; justify-content:center; padding-inline:8px; }
  .canvas-frame { min-height:205px; }
}

@media (max-height:700px) and (min-width:801px) {
  .topbar { min-height:54px; }
  .intro { padding:8px 0; }
  .intro p:not(.eyebrow) { display:none; }
  .actionbar { padding:8px 11px; }
}
