:root{--paper: #eff1f1;--sheet: #ffffff;--board: #e2e5e5;--board-peg: rgba(20, 26, 28, .11);--ink: #1a2022;--ink-2: #4e585b;--ink-3: #7b8588;--rule: #d8dddd;--rule-strong: #b9c1c1;--marker: #f0e23c;--danger: #b23a28;--r-sheet: 8px;--r-ctl: 6px;--r-xs: 4px;--r-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 19px;--fs-2xl: 24px;--fs-figure: 32px;--font: "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--tap: 44px;--shadow-overlay: 0 18px 48px rgba(20, 26, 28, .22);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}h1,h2,h3,p,figure{margin:0}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select{font:inherit;color:inherit}img{display:block;max-width:100%}:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:var(--r-xs)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app{min-height:100dvh;padding-bottom:calc(96px + var(--safe-bottom));background:var(--paper)}.stage-host{max-width:1120px;margin:0 auto;padding:var(--sp-3) var(--sp-3) 0}.layout{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}@media (min-width: 900px){.layout{grid-template-columns:minmax(340px,400px) minmax(0,1fr);align-items:start;gap:var(--sp-4)}.layout-aside{position:sticky;top:var(--sp-3);max-height:calc(100dvh - 100px);overflow-y:auto;padding-right:2px;scrollbar-width:thin}.layout-aside>*{flex-shrink:0}.app{padding-bottom:0}.cta-bar{position:static;max-width:1120px;margin:0 auto;padding:var(--sp-3) var(--sp-3) var(--sp-6);background:none}.cta-bar .cta{max-width:400px}}.layout-aside,.layout-main{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}@media (max-width: 899px){.layout{display:flex;flex-direction:column;gap:var(--sp-3)}.layout-aside,.layout-main{display:contents}.preview-card{order:1}.info-bar{order:2}.missing-card{order:3}.crop-card{order:4}.size-card{order:5}.param-block{order:6}.chip-card{order:7}}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:calc(var(--sp-3) + var(--safe-top)) var(--sp-4) var(--sp-3);background:var(--paper);border-bottom:1px solid var(--rule)}.topbar-brand{display:flex;flex-direction:column;gap:1px;min-width:0}.topbar-title{margin:0;font-size:var(--fs-lg);font-weight:600;letter-spacing:.02em;line-height:1.2;color:var(--ink)}.topbar-sub{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-btn,.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--tap);height:var(--tap);border-radius:var(--r-ctl);border:1px solid var(--rule);background:var(--sheet);color:var(--ink-2);font-size:22px;transition:border-color .15s,color .15s}.topbar-btn:hover,.icon-btn:hover{border-color:var(--rule-strong);color:var(--ink)}.topbar-btn:active,.icon-btn:active{background:var(--board)}.card{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-sheet);padding:var(--sp-4)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--rule)}.card-title{margin:0;font-size:var(--fs-sm);font-weight:600;color:var(--ink-2);letter-spacing:.04em}.card-meta{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.uploader-wrap{border-radius:var(--r-sheet)}.uploader{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-6) var(--sp-4);border:1px dashed var(--rule-strong);border-radius:var(--r-sheet);background:var(--sheet);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}.uploader:hover,.uploader-wrap.is-drag .uploader{border-color:var(--ink);background:#fffef2}.uploader-icon{display:grid;place-items:center;width:34px;height:34px;margin-bottom:var(--sp-1);border:1px solid var(--ink);border-radius:var(--r-xs);font-size:18px;line-height:1;color:var(--ink)}.uploader-title{font-size:var(--fs-lg);font-weight:600;color:var(--ink)}.uploader-sub{font-size:var(--fs-sm);color:var(--ink-3);letter-spacing:.01em}.empty-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4) var(--sp-6);max-width:520px;margin:0 auto;text-align:left}.empty-stage:before{content:"";position:absolute;inset:0;border-radius:var(--r-sheet);background-image:radial-gradient(circle at 1px 1px,var(--board-peg) 1px,transparent 0);background-size:14px 14px;opacity:.6;pointer-events:none;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 78%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),transparent 78%)}.empty-stage>*{position:relative}.empty-art{display:grid;grid-template-columns:repeat(var(--cols, 12),11px);grid-auto-rows:11px;gap:4px;margin-bottom:var(--sp-2);padding:12px;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-xs);box-shadow:0 14px 30px -22px #141a1c8c}.empty-art i{display:block;border-radius:50%;background:var(--board);box-shadow:inset 0 0 0 1px #141a1c14}.empty-art i[style]{background:var(--dot);box-shadow:inset 0 0 0 1px #141a1c2e}.empty-title{margin:0;font-size:var(--fs-2xl);font-weight:600;letter-spacing:.01em;line-height:1.25;color:var(--ink);text-align:center}.empty-sub{margin:0 0 var(--sp-2);font-size:var(--fs-md);color:var(--ink-2);line-height:1.7;max-width:30em;text-align:center}.empty-stage .uploader-wrap{width:100%}.empty-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--ink-3)}.crop-frame{position:relative;border-radius:var(--r-ctl);overflow:hidden;background:#161c1e}.crop-canvas{display:block;width:100%;touch-action:none;cursor:grab}.crop-canvas:active{cursor:grabbing}.preview-card{position:relative;padding:var(--sp-3);background:var(--board);background-image:radial-gradient(circle at 1px 1px,var(--board-peg) 1px,transparent 0);background-size:12px 12px;border:1px solid var(--rule-strong);border-radius:var(--r-sheet)}.preview-stage:before{content:"";position:absolute;inset:8px;pointer-events:none;--c: var(--rule-strong);--l: 12px;--t: 1px;background-image:linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c)),linear-gradient(var(--c),var(--c));background-repeat:no-repeat;background-size:var(--l) var(--t),var(--t) var(--l),var(--l) var(--t),var(--t) var(--l),var(--l) var(--t),var(--t) var(--l),var(--l) var(--t),var(--t) var(--l);background-position:left top,left top,right top,right top,left bottom,left bottom,right bottom,right bottom}.preview-floats{position:absolute;top:calc(var(--sp-3) + 6px);right:calc(var(--sp-3) + 6px);z-index:5;display:flex;gap:var(--sp-2)}.float-chip{height:30px;padding:0 10px;border-radius:var(--r-xs);background:var(--sheet);border:1px solid var(--rule-strong);font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);transition:background .15s,color .15s,border-color .15s}.float-chip:hover{border-color:var(--ink-3);color:var(--ink)}.float-chip.is-active{background:var(--marker);border-color:var(--ink);color:var(--ink)}.preview-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:200px;padding:var(--sp-4) var(--sp-2)}.preview-canvas{display:block;border:1px solid rgba(20,26,28,.35);border-radius:2px;box-shadow:0 10px 24px -16px #141a1cb3;touch-action:pan-y}.preview-canvas.is-editing{touch-action:none;cursor:crosshair}.preview-hint{margin:0;font-size:var(--fs-sm);color:var(--ink-2)}.preview-busy{position:absolute;top:0;left:0;right:0;height:2px;overflow:hidden;opacity:0;transition:opacity .15s}.preview-busy.is-on{opacity:1}.preview-busy:after{content:"";position:absolute;inset:0;width:38%;background:var(--ink);animation:busy-slide .9s ease-in-out infinite}@keyframes busy-slide{0%{transform:translate(-100%)}to{transform:translate(320%)}}.info-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--sp-2) var(--sp-4);padding:var(--sp-3) var(--sp-1) var(--sp-3);border-top:1px solid var(--ink-3);border-bottom:1px solid var(--rule)}.info-dims{grid-area:1 / 1;font-size:var(--fs-figure);font-weight:550;letter-spacing:-.02em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}.info-dims-x{margin:0 .12em;font-weight:300;color:var(--ink-3)}.info-sub{grid-column:1 / -1;font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;letter-spacing:.01em}.info-sub-empty{color:var(--ink-3)}.info-counts{grid-area:1 / 2;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;font-variant-numeric:tabular-nums}.info-beads{font-size:var(--fs-lg);font-weight:600;line-height:1;color:var(--ink)}.info-beads-unit{margin-left:2px;font-size:var(--fs-sm);font-weight:400;color:var(--ink-3)}.info-colors{font-size:var(--fs-sm);color:var(--ink-2)}.info-swatch-line{display:flex;gap:2px;margin-top:3px}.info-swatch-line i{width:8px;height:8px;border-radius:2px;box-shadow:inset 0 0 0 1px #141a1c2e}.slider-block{margin-bottom:var(--sp-3)}.slider-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2)}.slider-label{font-size:var(--fs-sm);color:var(--ink-2)}.slider-value{font-size:var(--fs-md);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.slider-row{display:flex;align-items:center;gap:var(--sp-2)}.slider-step{width:32px;height:32px;flex:none;border-radius:var(--r-xs);background:var(--sheet);border:1px solid var(--rule-strong);color:var(--ink-2);transition:border-color .15s,color .15s}.slider-step:hover{border-color:var(--ink);color:var(--ink)}.slider{flex:1;min-width:0;height:28px;appearance:none;background:transparent;cursor:pointer}.slider::-webkit-slider-runnable-track{height:2px;border-radius:0;background:var(--rule-strong)}.slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;margin-top:-8px;border-radius:var(--r-xs);background:var(--ink);border:3px solid var(--sheet);box-shadow:0 0 0 1px var(--ink)}.slider::-moz-range-track{height:2px;border-radius:0;background:var(--rule-strong)}.slider::-moz-range-thumb{width:14px;height:14px;border-radius:var(--r-xs);background:var(--ink);border:3px solid var(--sheet);box-shadow:0 0 0 1px var(--ink)}.slider-ends{display:flex;justify-content:space-between;margin-top:var(--sp-1);font-size:var(--fs-xs);color:var(--ink-3)}.field-row{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-3)}.field{display:flex;flex:1;flex-direction:column;gap:var(--sp-1);min-width:0}.field-label{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.03em}.num-input{width:100%;height:38px;padding:0 var(--sp-2);border:1px solid var(--rule-strong);border-radius:var(--r-ctl);background:var(--sheet);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:550}.num-input:focus{border-color:var(--ink);outline:none}.field-note{margin:calc(-1 * var(--sp-2)) 0 var(--sp-2);font-size:var(--fs-xs);color:var(--danger)}.bead-group{display:flex;gap:0;border:1px solid var(--rule-strong);border-radius:var(--r-ctl);overflow:hidden}.bead-item{flex:1;height:38px;border:none;border-right:1px solid var(--rule-strong);border-radius:0;background:var(--sheet);font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;transition:background .12s,color .12s}.bead-item:last-child{border-right:none}.bead-item:hover{color:var(--ink)}.bead-item.is-active{background:var(--marker);color:var(--ink);font-weight:600}.switch-list{display:flex;flex-direction:column;margin-top:var(--sp-1);border-top:1px solid var(--rule)}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:var(--tap);cursor:pointer;border-bottom:1px solid var(--rule)}.switch-row:last-child{border-bottom:none}.switch-label{font-size:var(--fs-md);color:var(--ink)}.switch{position:relative;flex:none;width:40px;height:24px}.switch-input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer;z-index:1}.switch-track{position:absolute;inset:0;border-radius:var(--r-pill);background:var(--board);box-shadow:inset 0 0 0 1px var(--rule-strong);transition:background .18s,box-shadow .18s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--sheet);box-shadow:0 1px 2px #141a1c40;transition:transform .18s}.switch-input:checked+.switch-track{background:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.switch-input:checked+.switch-track:after{transform:translate(16px)}.switch-input:focus-visible+.switch-track{outline:2px solid var(--ink);outline-offset:2px}.param-block{background:var(--sheet);border:1px solid var(--rule);border-radius:var(--r-sheet);overflow:hidden}.param-row{display:grid;grid-template-columns:repeat(3,1fr)}.param{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:var(--sp-3) var(--sp-3);border-right:1px solid var(--rule);text-align:left;transition:background .12s}.param:last-child{border-right:none}.param:hover{background:#f6f7f7}.param-label{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.03em}.param-value{font-size:var(--fs-md);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.param-note,.param-source{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);color:var(--ink-3);line-height:1.6}.param-note{background:#fbfbea;border-top:1px solid var(--rule)}.param-source{border-top:1px solid var(--rule)}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 6px;border:1px solid var(--rule-strong);border-radius:var(--r-xs);background:var(--sheet);font-size:var(--fs-sm)}.chip-swatch{width:12px;height:12px;border-radius:2px;box-shadow:inset 0 0 0 1px #141a1c29}.chip-code{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.chip-count{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.chip-remove{display:grid;place-items:center;width:20px;height:20px;border-radius:var(--r-xs);color:var(--ink-3);font-size:14px;line-height:1;transition:background .12s,color .12s}.chip-remove:hover{background:#fdeeeb;color:var(--danger)}.pixel-editor{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;flex-direction:column;max-height:46dvh;background:var(--sheet);border-top:1px solid var(--ink);padding-bottom:var(--safe-bottom)}body.is-editing{padding-bottom:46dvh}.editor-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--rule)}.editor-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink);letter-spacing:.04em}.editor-actions{display:flex;gap:6px}.editor-btn{height:32px;padding:0 12px;border-radius:var(--r-xs);background:var(--sheet);border:1px solid var(--rule-strong);font-size:var(--fs-sm);color:var(--ink-2);transition:border-color .12s,color .12s,background .12s}.editor-btn:hover{border-color:var(--ink);color:var(--ink)}.editor-btn.is-primary{background:var(--ink);border-color:var(--ink);color:var(--sheet);font-weight:600}.editor-btn.is-active{background:var(--marker);border-color:var(--ink);color:var(--ink)}.editor-btn:disabled{opacity:.35;cursor:not-allowed}.editor-tabs{display:flex;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) 0;border-bottom:1px solid var(--rule)}.tab{position:relative;height:34px;padding:0 2px;border-radius:0;font-size:var(--fs-sm);color:var(--ink-3);background:none}.tab.is-active{color:var(--ink);font-weight:600}.tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink)}.brush-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;padding:var(--sp-3) var(--sp-4);overflow-y:auto;-webkit-overflow-scrolling:touch}.brush-swatch{display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 0 4px;border-radius:var(--r-xs);border:1px solid transparent;transition:border-color .12s,background .12s}.brush-swatch:hover{border-color:var(--rule-strong)}.brush-swatch.is-active{border-color:var(--ink);background:var(--marker)}.brush-chip{width:28px;height:28px;border-radius:3px;background:var(--swatch);box-shadow:inset 0 0 0 1px #141a1c29}.brush-code{font-size:var(--fs-xs);color:var(--ink-2);font-variant-numeric:tabular-nums}.brush-swatch.is-active .brush-code{color:var(--ink);font-weight:600}.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:35;padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + var(--safe-bottom));background:var(--paper);border-top:1px solid var(--rule)}.cta{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;height:50px;border-radius:var(--r-ctl);background:var(--ink);color:var(--sheet);font-size:var(--fs-lg);font-weight:600;letter-spacing:.03em;transition:background .15s,transform .1s}.cta:hover:not(:disabled){background:#0d1214}.cta:active:not(:disabled){transform:scale(.995)}.cta:disabled{background:var(--sheet);color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--rule-strong);cursor:not-allowed}.cta.is-ghost{background:var(--sheet);color:var(--ink);border:1px solid var(--rule-strong)}.sheet-host{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}.sheet-backdrop{position:absolute;inset:0;background:#10161870;animation:fade-in .16s ease}.sheet{position:relative;max-height:82dvh;overflow-y:auto;padding:var(--sp-2) var(--sp-4) calc(var(--sp-5) + var(--safe-bottom));background:var(--sheet);border-top:1px solid var(--ink);border-radius:var(--r-sheet) var(--r-sheet) 0 0;box-shadow:var(--shadow-overlay);animation:sheet-up .2s cubic-bezier(.16,1,.3,1)}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) 0 var(--sp-3);border-bottom:1px solid var(--rule)}.sheet-title{margin:0;font-size:var(--fs-lg);font-weight:600;color:var(--ink)}.sheet-close{width:36px;height:36px;border-radius:var(--r-xs);font-size:20px;color:var(--ink-2)}.sheet-close:hover{background:var(--board)}.sheet-body{padding-top:var(--sp-3)}.sheet-value-row{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:var(--sp-2) 0 var(--sp-3)}.sheet-big-value{font-size:44px;font-weight:600;line-height:1;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums}.sheet-unit{font-size:var(--fs-md);color:var(--ink-3)}.preset-row{display:flex;flex-wrap:wrap;gap:6px;margin:var(--sp-3) 0}.preset{min-width:48px;height:34px;padding:0 12px;border-radius:var(--r-xs);background:var(--sheet);border:1px solid var(--rule-strong);font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;transition:border-color .12s,color .12s,background .12s}.preset:hover{border-color:var(--ink);color:var(--ink);background:var(--marker)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px;margin:var(--sp-3) 0 var(--sp-4)}.slot-item{height:46px;border-radius:var(--r-xs);border:1px solid var(--rule-strong);background:var(--sheet);font-size:var(--fs-md);color:var(--ink-2);font-variant-numeric:tabular-nums;transition:border-color .12s,background .12s,color .12s}.slot-item:hover{border-color:var(--ink);color:var(--ink)}.slot-item.is-active{border-color:var(--ink);background:var(--marker);color:var(--ink);font-weight:600}.hint-text{margin:var(--sp-1) 0;font-size:var(--fs-sm);line-height:1.65;color:var(--ink-3)}.result-page{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;background:#12181a}.result-page .topbar{background:#12181a;border-bottom-color:#ffffff1f}.result-page .topbar-title{color:#f2f4f4}.result-page .topbar-btn{background:transparent;border-color:#ffffff38;color:#e7eaea}.result-page .topbar-btn:hover{border-color:#ffffff80;color:#fff}.result-counter{min-width:44px;text-align:right;font-size:var(--fs-sm);color:#fff9;font-variant-numeric:tabular-nums}.result-track{flex:1;display:flex;min-height:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.result-slide{flex:0 0 100%;display:flex;align-items:center;justify-content:center;min-width:0;padding:var(--sp-3);scroll-snap-align:center}.result-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px;-webkit-touch-callout:default;user-select:none}.result-loading{margin:0;font-size:var(--fs-sm);color:#ffffff80}.result-dots{display:flex;justify-content:center;gap:6px;padding:var(--sp-2) 0}.result-dot{width:5px;height:5px;border-radius:50%;background:#ffffff42;transition:background .2s,width .2s}.result-dot.is-active{width:16px;border-radius:3px;background:var(--marker)}.result-hint{margin:0;padding-bottom:var(--sp-2);text-align:center;font-size:var(--fs-sm);color:#ffffff80}.result-actions{display:flex;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) calc(var(--sp-3) + var(--safe-bottom));border-top:1px solid rgba(255,255,255,.12)}.result-actions .cta{flex:1}.result-actions .cta.is-ghost{background:transparent;color:#e7eaea;border-color:#ffffff3d}.toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-bottom));transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:var(--sp-3);max-width:min(92vw,460px);padding:10px 10px 10px 14px;border-radius:var(--r-ctl);border:1px solid rgba(255,255,255,.14);background:#141a1cf5;color:#f2f4f4;font-size:var(--fs-sm);box-shadow:var(--shadow-overlay);animation:toast-in .18s ease}.toast-action{flex:none;height:28px;padding:0 10px;border-radius:var(--r-xs);background:var(--marker);color:var(--ink);font-size:var(--fs-sm);font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}}
