:root{--font: "Inter", system-ui, sans-serif;--ink: #1a2027;--ink-soft: #5b6472;--ink-faint: #8a93a3;--accent: #3b82f6;--accent-ink: #ffffff;--glass-bg: rgba(255, 255, 255, .5);--glass-bg-strong: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .55);--glass-shadow: 0 12px 40px rgba(31, 41, 64, .16), 0 1.5px 0 rgba(255, 255, 255, .6) inset, 0 -1px 0 rgba(31, 41, 64, .04) inset;--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;color-scheme:light}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;font-family:var(--font);color:var(--ink)}body{margin:0;background:#eef1f6;overflow-x:hidden}.ambient-bg{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(180deg,#eef1f6,#e4e9f4)}.ambient-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;will-change:transform}.ambient-blob.b1{width:46vw;height:46vw;left:-10vw;top:-14vw;background:radial-gradient(circle,#ffb3ba,#ff8fa3 60%,transparent 75%);animation:driftA 26s ease-in-out infinite}.ambient-blob.b2{width:50vw;height:50vw;right:-16vw;top:-8vw;background:radial-gradient(circle,#a8c7ff,#7aa2ff 60%,transparent 75%);animation:driftB 32s ease-in-out infinite}.ambient-blob.b3{width:44vw;height:44vw;left:18vw;bottom:-20vw;background:radial-gradient(circle,#c7b3ff,#a78bfa 60%,transparent 75%);animation:driftC 30s ease-in-out infinite}@keyframes driftA{0%,to{transform:translate(0)}50%{transform:translate(4vw,5vw)}}@keyframes driftB{0%,to{transform:translate(0)}50%{transform:translate(-5vw,4vw)}}@keyframes driftC{0%,to{transform:translate(0)}50%{transform:translate(3vw,-4vw)}}@media(prefers-reduced-motion:reduce){.ambient-blob{animation:none}}.glass{position:relative;isolation:isolate;background:var(--glass-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.glass:before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:radial-gradient(circle at var(--mx, 50%) var(--my, 15%),rgba(255,255,255,.65),transparent 55%);opacity:.9;pointer-events:none;transition:opacity .25s ease}.glass:after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#fffffff2,#ffffff0d 45%,#fff6);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.glass>*{position:relative;z-index:1}.glass-strong{background:var(--glass-bg-strong)}.app-shell{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;padding:20px clamp(16px,4vw,40px) 48px;gap:20px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px}.app-title{display:flex;align-items:center;gap:10px;font-size:1.15rem;font-weight:700}.app-title .mark{width:28px;height:28px;border-radius:50%;background:conic-gradient(from -90deg,#e0665a 0 33.34%,#1a5276 33.34% 66.67%,#17765f 66.67% 100%);box-shadow:0 2px 6px #1f294040;flex-shrink:0}.app-tagline{font-size:.8rem;color:var(--ink-soft);font-weight:500}.header-actions{display:flex;gap:10px}.app-main{display:grid;grid-template-columns:minmax(340px,.75fr) minmax(0,1.25fr);gap:20px;align-items:start;flex:1}@media(max-width:960px){.app-main{grid-template-columns:minmax(0,1fr)}}.btn{font-family:var(--font);font-size:.85rem;font-weight:600;border:none;border-radius:var(--radius-sm);padding:10px 16px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;color:var(--ink);background:#ffffff8c;border:1px solid rgba(255,255,255,.6)}.btn:hover:not(:disabled){background:#fffc}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,#4f93ff,var(--accent));color:var(--accent-ink);border:1px solid rgba(255,255,255,.35);box-shadow:0 6px 18px #3b82f666}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#4088ff,#2b6fd6);box-shadow:0 8px 22px #3b82f680}.btn-block{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}.btn-ghost{background:transparent;border:1px solid rgba(31,41,64,.12)}.input,.textarea,.select{font-family:var(--font);font-size:.88rem;color:var(--ink);background:#fff9;border:1px solid rgba(31,41,64,.12);border-radius:var(--radius-sm);padding:9px 12px;outline:none;transition:border-color .15s,background .15s;width:100%}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background:#ffffffd9}.textarea{resize:vertical;min-height:44px}.editor-panel{padding:22px}.editor-panel{scrollbar-width:thin;scrollbar-color:rgba(31,41,64,.22) transparent}.editor-panel::-webkit-scrollbar{width:10px}.editor-panel::-webkit-scrollbar-track{background:transparent}.editor-panel::-webkit-scrollbar-thumb{background:#1f29402e;border-radius:999px;border:3px solid transparent;background-clip:content-box;transition:background .2s ease}.editor-panel::-webkit-scrollbar-thumb:hover{background:#1f294057;background-clip:content-box}.editor-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:22px 0 10px}.editor-section-title:first-child{margin-top:0}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.palette-swatch{border-radius:var(--radius-sm);border:2px solid transparent;padding:8px;cursor:pointer;background:#ffffff80;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.66rem;font-weight:600;color:var(--ink-soft);transition:border-color .15s,transform .15s}.palette-swatch:hover{transform:translateY(-1px)}.palette-swatch.active{border-color:var(--accent);color:var(--ink)}.palette-dots{display:flex;gap:3px}.palette-dot{width:14px;height:14px;border-radius:50%}.advanced-toggle{display:flex;align-items:center;gap:8px;width:100%;margin:22px 0 0;padding:10px 12px;font-family:var(--font);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);background:#ffffff73;border:1px solid rgba(31,41,64,.12);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease}.advanced-toggle:hover{background:#ffffffbf}.advanced-toggle .step-chevron{margin-left:auto}.advanced-dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.advanced-body{display:flex;flex-direction:column;gap:14px;padding:14px 12px;border:1px solid rgba(31,41,64,.1);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:#ffffff4d}.type-group{display:flex;flex-direction:column;gap:8px}.type-group-title{font-size:.76rem;font-weight:600;color:var(--ink-soft)}.type-font{cursor:pointer}.type-fields{display:flex;align-items:center;gap:10px}.type-range{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.type-readout{font-size:.74rem;font-variant-numeric:tabular-nums;color:var(--ink-soft);min-width:38px;text-align:right}.type-color{display:flex;align-items:center;gap:6px;cursor:pointer}.type-color input[type=color]{width:26px;height:26px;padding:0;border:1px solid rgba(31,41,64,.18);border-radius:var(--radius-sm);background:none;cursor:pointer}.type-color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.type-color input[type=color]::-webkit-color-swatch{border:none;border-radius:3px}.type-hex{font-size:.7rem;font-variant-numeric:tabular-nums;color:var(--ink-faint);min-width:56px}.direction-toggle,.scale-toggle{display:flex;gap:6px;background:#fff6;padding:4px;border-radius:var(--radius-sm)}.toggle-btn{flex:1;border:none;background:transparent;font-family:var(--font);font-size:.78rem;font-weight:600;color:var(--ink-soft);padding:7px 10px;border-radius:9px;cursor:pointer}.toggle-btn.active{background:var(--ink);color:#fff}.step-list{display:flex;flex-direction:column;gap:6px}.step{border-radius:var(--radius-md);border:1px solid transparent;background:#ffffff61;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.step:hover{background:#ffffff9e}.step.open{background:#ffffffb8;border-color:#3b82f659;box-shadow:0 6px 20px #1f29401a}.step-row{display:flex;align-items:center;gap:9px;padding:9px 12px;cursor:pointer;user-select:none;border-radius:inherit}.step-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.step-index{width:21px;height:21px;border-radius:50%;background:var(--ink);color:#fff;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step.open .step-index{background:var(--accent)}.step-glyph{display:flex;align-items:center;color:var(--ink-soft);width:15px;flex-shrink:0}.step-title{flex:1;min-width:0;font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-title em{color:var(--ink-faint);font-weight:400}.step-actions{display:flex;gap:2px;opacity:0;pointer-events:none;transition:opacity .15s ease;flex-shrink:0}.step:hover .step-actions,.step.open .step-actions,.step-row:focus-within .step-actions{opacity:1;pointer-events:auto}.step-chevron{color:var(--ink-faint);transition:transform .2s ease;flex-shrink:0}.step-chevron.open{transform:rotate(180deg)}.step-body{display:flex;flex-direction:column;gap:8px;padding:2px 12px 12px;animation:stepOpen .18s ease}@keyframes stepOpen{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.add-step-btn{margin-top:10px}.section-count{color:var(--ink-faint);font-weight:600}.icon-btn{width:26px;height:26px;border-radius:8px;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem}.icon-btn:hover{background:#1f294014;color:var(--ink)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn.danger:hover{background:#b3261e1f;color:#b3261e}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:6px;margin-top:2px}.icon-option{width:34px;height:34px;border-radius:9px;border:1.5px solid rgba(31,41,64,.1);background:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ink-soft)}.icon-option svg{width:16px;height:16px}.icon-option.active{border-color:var(--accent);background:#3b82f61f;color:var(--accent)}.preview-col{display:flex;flex-direction:column;gap:18px;position:sticky;top:20px}@media(max-width:960px){.preview-col{display:contents}.artboard-wrap{order:-1}.download-row{order:1}}.artboard-wrap{padding:clamp(14px,2.2vw,26px);display:flex;flex-direction:column;align-items:center;gap:10px}.artboard{background:#fff;border-radius:14px;box-shadow:0 20px 60px #1f294040,0 2px 8px #1f29401f;overflow:hidden;width:100%;aspect-ratio:7 / 5}.artboard svg{width:100%;height:100%;display:block}.artboard svg [data-segment]{cursor:pointer;transition:opacity .18s ease}.artboard[data-highlight] svg [data-segment]{opacity:.45}.artboard[data-highlight="0"] svg [data-segment="0"],.artboard[data-highlight="1"] svg [data-segment="1"],.artboard[data-highlight="2"] svg [data-segment="2"],.artboard[data-highlight="3"] svg [data-segment="3"],.artboard[data-highlight="4"] svg [data-segment="4"],.artboard[data-highlight="5"] svg [data-segment="5"],.artboard[data-highlight="6"] svg [data-segment="6"],.artboard[data-highlight="7"] svg [data-segment="7"],.artboard[data-highlight="8"] svg [data-segment="8"],.artboard[data-highlight="9"] svg [data-segment="9"]{opacity:1}.artboard-hint{margin:0;font-size:.72rem;color:var(--ink-faint);text-align:center}.download-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:18px 22px}.download-status{font-size:.8rem;color:var(--ink-soft);margin-left:auto}.download-status.error{color:#b3261e;font-weight:600}@media(max-width:640px){.app-header{padding:12px 16px;gap:12px}.app-title{font-size:1rem}.download-status{margin-left:0;width:100%}}@media(hover:none){.input,.textarea,.select{font-size:16px}.step-actions{display:none}.step.open .step-actions{display:flex}.icon-btn{width:38px;height:38px}.toggle-btn{padding:11px 10px}.icon-option{width:40px;height:40px}}@media(min-width:961px)and (min-height:680px){:root{--app-chrome-h: 305px}.app-shell{height:100vh;overflow:hidden;padding-bottom:20px}.app-main{min-height:0;align-items:stretch}.editor-panel{max-height:100%;overflow-y:auto;overscroll-behavior:contain}.preview-col{position:static;height:100%;min-height:0}.artboard-wrap{flex:1;min-height:0;justify-content:center}.artboard{width:min(100%,calc((100vh - var(--app-chrome-h)) * 7 / 5));max-height:100%}}
