.jys{--jys-accent:hsl(var(--primary,12 51% 47%));--jys-accent-strong:color-mix(in srgb,hsl(var(--primary,12 51% 47%)) 82%,#000);--jys-ink:#211c17;--jys-muted:#7a6f60;--jys-bg:#f6f1e8;--jys-surface:#fff;--jys-surface-2:#f0e8da;--jys-line:#e3d9c8;--jys-on-accent:#fff7ee;min-height:100dvh;display:flex;flex-direction:column;background:var(--jys-bg);color:var(--jys-ink);font-family:var(--font-body,system-ui,sans-serif);line-height:1.45}.jys *,.jys :after,.jys :before{box-sizing:border-box}.jys-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px max(16px,env(safe-area-inset-left,0)) 11px max(16px,env(safe-area-inset-right,0));border-bottom:1px solid var(--jys-line);background:var(--jys-surface)}.jys-bar img{height:30px;width:auto;display:block}.jys-bar-right{display:flex;align-items:center;gap:12px}.jys-bar a.jys-site{font-size:.82rem;font-weight:600;color:var(--jys-accent);text-decoration:none}.jys-bar a.jys-site:hover{text-decoration:underline}.jys-lang{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:.8rem;font-weight:600;line-height:1;color:var(--jys-ink);background:var(--jys-bg);border:1px solid var(--jys-line);border-radius:999px;padding:6px 11px;cursor:pointer}.jys-lang:hover{border-color:var(--jys-accent);color:var(--jys-accent)}.jys-flow{flex:1;min-height:0;width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;padding-left:max(16px,env(safe-area-inset-left,0));padding-right:max(16px,env(safe-area-inset-right,0))}.jys-steps{flex:none;list-style:none;margin:0;padding:16px 0 6px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.jys-stepitem{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.jys-stepitem:before{content:"";position:absolute;top:13px;left:-50%;width:100%;height:2px;background:var(--jys-line);z-index:0}.jys-stepitem:first-child:before{display:none}.jys-stepitem[data-state=current]:before,.jys-stepitem[data-state=done]:before{background:var(--jys-accent)}.jys-stepnum{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;background:var(--jys-surface);color:var(--jys-muted);border:2px solid var(--jys-line)}.jys-stepitem[data-state=current] .jys-stepnum,.jys-stepitem[data-state=done] .jys-stepnum{background:var(--jys-accent);color:var(--jys-on-accent);border-color:var(--jys-accent)}.jys-steplabel{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:var(--jys-muted)}.jys-stepitem[data-state=current] .jys-steplabel{color:var(--jys-ink)}.jys-body{flex:1;min-height:0;overflow-y:auto;padding:10px 0 16px}.jys-steptitle{font-family:var(--font-display);font-size:clamp(1.3rem,5vw,1.6rem);font-weight:800;letter-spacing:-.01em;margin:6px 0 4px;text-wrap:balance}.jys-stephelp{color:var(--jys-muted);font-size:.9rem;margin:0 0 14px}.jys-stage{display:flex;flex-direction:column;align-items:center}.jys-canvas-box{position:relative;display:flex;justify-content:center;width:100%}.jys canvas{display:block;width:auto;height:auto;max-width:min(100%,340px);max-height:52vh;border-radius:12px;background:var(--jys-surface-2);touch-action:none;cursor:grab;border:1px solid var(--jys-line)}.jys-flow[data-step=identity] .jys canvas,.jys-flow[data-step=identity] canvas{max-height:34vh}.jys canvas.jys-dragging{cursor:grabbing}.jys-canvas-prompt{position:absolute;inset:0;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:none;background:transparent;cursor:pointer;color:var(--jys-accent);font:inherit;font-weight:700;font-size:.9rem;text-align:center}.jys-canvas-prompt svg{background:var(--jys-surface);border-radius:50%;padding:9px;box-shadow:0 2px 10px #0002}.jys-canvas-prompt span{background:var(--jys-surface);padding:5px 12px;border-radius:999px;box-shadow:0 2px 10px #0001}.jys-zoom{display:flex;align-items:center;gap:12px;width:100%;max-width:340px;margin:14px 0 2px;color:var(--jys-muted)}.jys-zoom input[type=range]{flex:1;accent-color:var(--jys-accent);height:4px}.jys-hint{color:var(--jys-muted);font-size:.8rem;margin:6px 0 0;text-align:center}.jys-fields{margin-top:16px;display:flex;flex-direction:column;gap:14px}.jys label.jys-field,.jys span.jys-field{display:block;font-size:.82rem;font-weight:600;color:var(--jys-ink);margin:0 0 6px}.jys input[type=text]{width:100%;font:inherit;font-size:1rem;padding:12px 13px;border:1px solid var(--jys-line);border-radius:10px;background:var(--jys-surface);color:var(--jys-ink)}.jys input[type=text]:focus-visible{outline:2px solid var(--jys-accent);outline-offset:1px;border-color:transparent}.jys-field-row{margin:0}.jys-count{float:right;color:var(--jys-muted);font-weight:500;font-size:.72rem}.jys-variants{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.jys-swatch{position:relative;border:2px solid var(--jys-line);border-radius:12px;padding:9px 8px 8px;cursor:pointer;background:var(--jys-surface);text-align:center;transition:border-color .15s}.jys-swatch:hover{border-color:color-mix(in srgb,var(--jys-accent) 45%,transparent)}.jys-swatch[aria-pressed=true]{border-color:var(--jys-accent)}.jys-chip{height:30px;border-radius:8px;border:1px solid #0001;margin-bottom:6px}.jys-swatch span{font-size:.76rem;font-weight:600}.jys-swatch[aria-pressed=true]:after{content:"✓";position:absolute;top:5px;right:8px;color:var(--jys-accent);font-weight:800;font-size:.78rem}.jys-actionbar{flex:none;display:flex;gap:10px;padding:12px 0 max(14px,env(safe-area-inset-bottom,0));border-top:1px solid var(--jys-line);background:var(--jys-bg);position:sticky;bottom:0}.jys-cta{flex:1;font:inherit;font-size:1.02rem;font-weight:700;padding:15px;border-radius:12px;border:none;background:var(--jys-accent);color:var(--jys-on-accent);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px}.jys-cta:hover{background:var(--jys-accent-strong)}.jys-cta:disabled{opacity:.5;cursor:not-allowed}.jys-btn{font:inherit;font-weight:600;border-radius:12px;border:1px solid var(--jys-line);background:var(--jys-surface);color:var(--jys-ink);padding:13px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.jys-btn:hover{border-color:var(--jys-accent)}.jys-btn.jys-ghost{flex:0 0 auto}.jys-btn.jys-small{font-size:.82rem;padding:7px 11px}.jys-result-img{display:block;width:100%;max-width:320px;margin:4px auto 16px;border-radius:12px;border:1px solid var(--jys-line)}.jys-dl-row{display:flex;gap:10px;margin-bottom:16px}.jys-caption-box{background:var(--jys-surface);border:1px solid var(--jys-line);border-radius:12px;padding:12px 13px}.jys-cap-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.jys-cap-head span{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--jys-muted)}.jys-cap-text{white-space:pre-wrap;font-size:.86rem}.jys-result-nav{display:flex;gap:10px;margin-top:16px}.jys-result-nav .jys-btn{flex:1}.jys-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media (prefers-reduced-motion:reduce){.jys *{transition:none!important}}@media (min-width:700px){.jys canvas{max-height:58vh}.jys-flow[data-step=identity] .jys canvas,.jys-flow[data-step=identity] canvas{max-height:42vh}.jys-actionbar{padding-bottom:16px}}