:root{--bg:#fff;--bg-hi:#fff;--bg-lo:#f5f5f3;--canvas:#fff;--ink:#161616;--muted:#6b6b6b;--faint:#a8a8a8;--line:#00000014;--accent:#161616;--accent-hi:#3a3a3a;--accent-lo:#0d0d0d;--cream:#f8e8a8;--cream-hi:#fdf6dc;--cream-lo:#ecd47c;--good:#2f8f5b;--ok:#b7791f;--sh-d:#0000001a;--sh-l:#fff;--raise-xs:1px 2px 5px var(--sh-d), -1px -1px 3px var(--sh-l);--raise-sm:3px 4px 11px var(--sh-d), -3px -3px 8px var(--sh-l);--raise:5px 7px 18px #0000001f, -4px -4px 10px var(--sh-l);--raise-lg:10px 14px 38px #0000001a, -8px -8px 24px var(--sh-l);--inset-sm:inset 2px 2px 5px #00000017, inset -2px -2px 5px var(--sh-l);--inset:inset 3px 3px 8px #0000001a, inset -3px -3px 8px var(--sh-l);--accent-raise:3px 5px 12px #0000003d, -3px -3px 8px var(--sh-l);--ease:cubic-bezier(.2, .8, .2, 1);--font:"Inter", "SF Pro Text", -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:"SF Mono", "JetBrains Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}input,select,textarea{font:inherit}:focus-visible{outline-offset:2px;outline:2px solid #16161680}.neu-btn{background:var(--bg);min-width:42px;height:42px;box-shadow:var(--raise-sm);color:var(--ink);white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0;font-size:13px;font-weight:700;transition:box-shadow .2s,color .2s,background .2s;display:inline-flex}.neu-btn.is-wide{padding:0 17px}.neu-btn.is-sm{min-width:32px;height:32px}.neu-btn small{font:600 11px var(--mono);color:var(--faint)}.neu-btn:hover:not(:disabled){box-shadow:var(--raise)}.neu-btn:active:not(:disabled),.neu-btn.is-on{box-shadow:var(--inset-sm);background:var(--cream-hi);color:var(--ink)}.neu-btn.is-accent{background:linear-gradient(145deg, var(--accent-hi), var(--accent-lo));color:#fff;box-shadow:var(--accent-raise)}.neu-btn.is-accent:hover{box-shadow:5px 8px 16px #00000047, -4px -4px 10px var(--sh-l)}.neu-btn.is-accent:active{background:var(--accent-lo);color:#fff;box-shadow:inset 3px 3px 7px #0009,inset -2px -2px 6px #ffffff2e}.page{background:var(--bg);height:100dvh;padding:20px}.card{background:var(--bg);width:100%;max-width:1440px;height:100%;box-shadow:var(--raise-lg);border-radius:32px;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid;position:relative;overflow:hidden}.topbar{z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:20px 26px 0;display:flex;position:relative}.topbar-left{align-items:center;gap:14px;min-width:0;display:flex}.pill{background:var(--bg);height:36px;box-shadow:var(--raise-sm);white-space:nowrap;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:700;transition:box-shadow .2s;display:inline-flex}.pill:hover{box-shadow:var(--raise)}.pill[aria-expanded=true]{box-shadow:var(--inset-sm)}.product-title{align-items:baseline;gap:10px;min-width:0;display:flex}.product-title b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}.product-title span{color:var(--faint);font-size:12px;font-family:var(--mono)}.badge{color:var(--accent);box-shadow:var(--inset-sm);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:10.5px;font-style:normal;font-weight:700}.dropdown{flex:none;position:relative}.dropdown-menu{background:var(--bg);width:260px;box-shadow:var(--raise-lg);z-index:40;animation:pop .2s var(--ease);border-radius:20px;padding:8px;position:absolute;top:46px;right:0}.dropdown-item{text-align:left;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:flex-start;width:100%;padding:9px 12px;transition:box-shadow .15s;display:flex}.dropdown-item b{font-size:13px}.dropdown-item span{color:var(--faint);margin-top:2px;font-size:11.5px}.dropdown-item:hover{box-shadow:var(--raise-xs)}.dropdown-item.is-active{box-shadow:var(--inset-sm);background:var(--cream-hi);color:var(--ink)}.dropdown-item.is-active span{color:var(--muted)}.dropdown-sep{height:2px;box-shadow:inset 1px 1px 1px var(--sh-d), inset -1px -1px 1px var(--sh-l);border-radius:2px;margin:6px 8px}.viewport{background:var(--canvas);border-radius:24px;min-height:0;margin:14px 22px 0;position:relative;overflow:hidden}.viewport:after{content:"";z-index:25;border-radius:inherit;box-shadow:inset 6px 6px 14px var(--sh-d), inset -6px -6px 14px var(--sh-l);pointer-events:none;position:absolute;inset:0}.main-canvas{touch-action:none;inset:0;position:absolute!important}.step-number{letter-spacing:-2px;pointer-events:none;font-variant-numeric:tabular-nums;color:var(--ink);text-shadow:2px 3px 6px #0000001f;font-size:54px;font-weight:800;line-height:1;position:absolute;top:12px;left:18px}.step-number span{letter-spacing:0;color:var(--muted);text-shadow:none;margin-left:4px;font-size:14px;font-weight:600}.step-number.is-design{letter-spacing:0;font-size:30px}.step-number.is-design span{color:var(--faint);margin:6px 0 0;font-size:12px;display:block}.hint{color:var(--faint);pointer-events:none;font-size:11px;position:absolute;bottom:12px;left:18px}.leader{pointer-events:none;z-index:3;width:100%;height:100%;position:absolute;inset:0}.leader line{stroke:var(--muted);stroke-width:1.2px;transition:opacity .2s}.detail{aspect-ratio:1;z-index:4;width:clamp(150px,25vw,270px);animation:.35s ease-out pop;position:absolute;top:18px;right:20px}.detail-canvas{box-shadow:6px 9px 22px #00000024, -4px -4px 12px var(--sh-l), inset 0 0 0 5px var(--bg);background:#fff;border-radius:50%;position:absolute;inset:0;overflow:hidden}.detail-caption{text-align:center;color:var(--muted);font-size:11px;font-weight:600;position:absolute;bottom:-22px;left:0;right:0}.detail-note{color:var(--accent);white-space:nowrap;background:var(--cream);border-radius:6px;padding:1px 6px;font-size:10.5px;font-weight:700}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.focus-ring{border:4px solid var(--ink);opacity:.85;background:#f8e8a873;border-radius:50%;width:44px;height:44px;animation:1.8s ease-in-out infinite ring}@keyframes ring{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.part-label{white-space:nowrap;background:var(--cream);box-shadow:var(--raise-xs);color:var(--ink);border-radius:9px;align-items:baseline;gap:6px;padding:4px 9px;font-size:11px;display:flex}.part-label b{font-weight:700}.part-label span{color:var(--muted);font-family:var(--mono);font-size:10.5px}.part-label.is-suggest{color:var(--muted);background:#fffffff5}.callout-layer{pointer-events:none;z-index:3;position:absolute;inset:0;overflow:hidden}.callout-layer circle{fill:var(--ink);transition:opacity .35s}.callout-layer line{transition:opacity .35s}.callout{white-space:nowrap;background:#fffffff5;border-radius:10px;flex-direction:column;gap:1px;padding:5px 10px;font-size:11.5px;transition:opacity .35s;display:flex;position:absolute;top:0;left:0;box-shadow:2px 4px 12px #0000001f}.callout b{font-weight:700}.callout span{color:var(--muted);font-size:10.5px}.dim-label{font-family:var(--mono);background:var(--canvas);white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11px}.dim-label.is-accent{color:var(--ink);background:var(--cream);box-shadow:var(--raise-xs);font-weight:700}.info{max-height:32vh;padding:16px 28px 4px;animation:.35s ease-out fade;overflow:auto}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.chips{flex-wrap:wrap;gap:9px;padding:3px;display:flex}.chip{background:var(--bg);height:30px;box-shadow:var(--raise-xs);white-space:nowrap;color:var(--ink);border:0;border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 13px;font-size:12px;font-weight:700;transition:box-shadow .18s,color .18s;display:inline-flex}button.chip:hover{box-shadow:var(--raise-sm)}.chip.is-on,button.chip:active{box-shadow:var(--inset-sm);background:var(--cream);color:var(--ink)}.chip.is-on small{color:#1616168c}.chip i{background:var(--ink);border-radius:50%;width:7px;height:7px}.chip small{color:var(--faint);font-weight:500;font-family:var(--mono);font-size:11px}.chip.is-good i{background:var(--good)}.chip.is-ok i{background:var(--ok)}.info h2{margin:12px 0 4px;font-size:15px;font-weight:800}.info p{color:var(--muted);max-width:820px;margin:0;font-size:13px;line-height:1.6}.info p.tip{color:var(--faint);margin-top:4px;font-size:12px}.controls{align-items:center;gap:12px;padding:12px 26px 24px;display:flex}.round{background:var(--bg);width:42px;height:42px;box-shadow:var(--raise-sm);border:0;border-radius:50%;flex:none;place-items:center;transition:box-shadow .18s,color .18s;display:grid}.round:hover:not(:disabled){box-shadow:var(--raise)}.round:active:not(:disabled),.round.is-on{box-shadow:var(--inset-sm);background:var(--cream-hi);color:var(--ink)}.round:disabled{opacity:.4;box-shadow:var(--raise-xs)}.round.small{width:34px;height:34px}.round.small svg{width:15px;height:15px}.timeline{background:var(--bg-lo);min-width:0;height:42px;box-shadow:var(--inset);border-radius:999px;flex:1;align-items:center;gap:14px;padding:0 18px;display:flex;overflow:hidden}.timeline-label{color:var(--muted);font-size:12px;font-weight:600}.timeline-count{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;font-weight:800}.timeline-track{cursor:pointer;touch-action:none;flex:1;height:100%;position:relative}.timeline-fill{background:linear-gradient(90deg, #f8e8a84d, var(--cream));box-sizing:content-box;border-radius:0 999px 999px 0;padding-left:60px;transition:width .4s;position:absolute;top:12px;bottom:12px;left:-60px}.timeline-tick{background:#cfcfcf;border-radius:1px;width:2px;height:6px;position:absolute;bottom:7px}.timeline-thumb{background:var(--accent);border-radius:3px;width:6px;margin-left:-3px;transition:left .4s;position:absolute;top:8px;bottom:8px;box-shadow:1px 1px 3px #00000059}@keyframes fadeIn{0%{opacity:0}}.settings-menu{width:280px;padding:14px 16px 10px;left:0;right:auto}.settings-label{letter-spacing:1px;color:var(--faint);margin-bottom:9px;font-size:11px;font-weight:700}.seg{background:var(--bg);height:38px;box-shadow:var(--inset-sm);border-radius:999px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.seg button{color:var(--muted);background:0 0;border:0;border-radius:999px;font-size:13px;font-weight:700;transition:box-shadow .18s,color .18s,background .18s}.seg button:hover:not(:disabled):not(.is-on){color:var(--ink)}.seg{background:var(--bg-lo)}.seg button.is-on{background:var(--bg-hi);color:var(--ink);box-shadow:var(--raise-xs)}.seg button:disabled{color:#c8c8c8;cursor:not-allowed}.settings-note{color:var(--faint);margin:7px 2px 0;font-size:11px}.settings-menu .dropdown-sep{margin:12px 0 6px}.panel-section h4{letter-spacing:1px;color:var(--faint);margin:0 0 9px;font-size:11px;font-weight:700}.menu-item{text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:9px 10px;display:flex}.menu-item span{flex-direction:column;display:flex}.menu-item b{font-size:13px}.menu-item small{color:var(--faint);margin-top:1px;font-size:11.5px}.menu-item:hover{box-shadow:var(--raise-xs)}.menu-item.is-active{box-shadow:var(--inset-sm)}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:13px;font-weight:600;display:flex}.switch-row span{flex-direction:column;display:flex}.switch-row small{color:var(--faint);font-size:11px;font-weight:500}.switch-row input{appearance:none;background:var(--bg);width:42px;height:24px;box-shadow:var(--inset-sm);cursor:pointer;border-radius:999px;flex:none;margin:0;transition:background .2s;position:relative}.switch-row input:after{content:"";background:var(--bg-hi);width:18px;height:18px;box-shadow:2px 2px 4px var(--sh-d), -1px -1px 2px var(--sh-l);transition:transform .2s var(--ease), background .2s;border-radius:50%;position:absolute;top:3px;left:3px}.switch-row input:checked{background:var(--cream)}.switch-row input:checked:after{background:var(--ink);transform:translate(18px);box-shadow:1px 1px 3px #00000059}.panel{z-index:26;background:var(--bg);width:370px;max-width:calc(100% - 24px);box-shadow:var(--raise-lg);border-radius:22px;flex-direction:column;animation:.25s ease-out slideInR;display:flex;position:absolute;top:12px;bottom:12px;right:12px}@keyframes slideInR{0%{opacity:0;transform:translate(16px)}}.panel-head{justify-content:space-between;align-items:center;padding:16px 16px 6px 20px;display:flex}.panel-head h3{margin:0;font-size:15px;font-weight:800}.panel-body{flex:1;padding:4px 20px 12px;overflow:auto}.panel-foot{gap:10px;padding:12px 16px 16px;display:flex}.panel-foot .btn{flex:1}.panel-section{padding:14px 0}.panel-section+.panel-section{box-shadow:0 -2px 0 -1px var(--sh-l), 0 -1px 0 -.5px var(--line)}.field{margin:8px 0 12px}.field>label,.field-head label{margin-bottom:7px;font-size:12.5px;font-weight:700;display:block}.field-head{justify-content:space-between;align-items:center;display:flex}.field-head label{margin:0}.num-input{color:var(--faint);align-items:center;gap:4px;font-size:11px;display:inline-flex}.num-input input{background:var(--bg);width:66px;height:28px;box-shadow:var(--inset-sm);font-family:var(--mono);text-align:right;color:var(--ink);border:0;border-radius:9px;padding:0 8px;font-size:12px}.num-input input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 0}.field-note{color:var(--faint);margin:6px 0 0;font-size:11.5px;line-height:1.55}.segmented{background:var(--bg-lo);box-shadow:var(--inset-sm);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented button{white-space:nowrap;height:30px;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;padding:0 4px;font-size:12px;font-weight:600}.segmented button.is-on{background:var(--bg-hi);color:var(--ink);box-shadow:var(--raise-xs)}.segmented button:not(.is-on):hover{color:var(--ink)}.preset-row{flex-wrap:wrap;gap:8px;display:flex}.tag-btn{background:var(--bg);height:28px;box-shadow:var(--raise-xs);border:0;border-radius:999px;padding:0 11px;font-size:12px;font-weight:600}.tag-btn:hover{box-shadow:var(--raise-sm)}.metric-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.metric{background:var(--bg);box-shadow:var(--inset-sm);border-radius:14px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.metric small{color:var(--faint);font-size:10.5px}.metric b{font-size:17px;font-family:var(--mono)}.metric span{color:var(--muted);font-size:11px;font-weight:700}.metric.is-good span{color:var(--good)}.metric.is-ok span{color:var(--ok)}.metric.is-warn span{color:var(--accent)}.warnings{flex-direction:column;gap:6px;margin:10px 0 0;padding:0;list-style:none;display:flex}.warnings li{background:var(--cream-hi);color:var(--ink);border-radius:12px;padding:8px 12px 8px 26px;font-size:12px;line-height:1.5;position:relative}.warnings li:before{content:"!";font-weight:900;position:absolute;top:8px;left:11px}.btn{background:var(--bg);height:38px;box-shadow:var(--raise-sm);white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 17px;font-size:13px;font-weight:700;transition:box-shadow .18s;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--raise)}.btn:active:not(:disabled){box-shadow:var(--inset-sm)}.btn.primary{background:linear-gradient(145deg, var(--accent-hi), var(--accent-lo));color:#fff;box-shadow:var(--accent-raise)}.btn.primary:active:not(:disabled){box-shadow:inset 3px 3px 7px #0009,inset -2px -2px 6px #ffffff2e}.btn.ghost{background:var(--bg)}.btn:disabled{opacity:.45;box-shadow:var(--raise-xs)}.tabs{box-shadow:var(--inset-sm);border-radius:14px;gap:6px;margin:4px 16px 0;padding:4px;display:flex}.tabs button{color:var(--faint);background:0 0;border:0;border-radius:10px;flex:1;padding:7px 8px;font-size:12.5px;font-weight:700}.tabs button.is-on{color:var(--ink);background:var(--bg-hi);box-shadow:var(--raise-xs)}.bom{border-collapse:collapse;width:100%;margin-top:8px;font-size:12.5px}.bom th{text-align:left;color:var(--faint);border-bottom:1px solid var(--line);padding:6px 4px;font-size:10.5px;font-weight:700}.bom td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 4px;font-weight:600}.bom td small{color:var(--faint);margin-top:2px;font-size:10.5px;font-weight:500;display:block}.bom td small.inline{color:var(--muted);font-size:11.5px;display:inline}.mono{font-family:var(--mono);white-space:nowrap}.tool-list,.manual-steps{margin:10px 0;padding-left:20px;font-size:13px;line-height:2}.manual-steps span{color:var(--muted);margin-bottom:6px;font-size:12px;line-height:1.4;display:block}.manual-pages figure{margin:12px 0}.manual-pages img{width:100%;box-shadow:var(--raise-sm);border-radius:12px;display:block}.manual-pages figcaption{color:var(--muted);margin-top:6px;font-size:12px}.field-note.is-warn{color:var(--accent)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(6px);background:#fff9;place-items:center;padding:16px;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.modal{background:var(--bg);width:min(640px,100%);max-height:92dvh;box-shadow:var(--raise-lg);border-radius:28px;flex-direction:column;animation:.25s ease-out pop;display:flex}.modal-head{justify-content:space-between;align-items:flex-start;padding:20px 22px 8px;display:flex}.modal-head h3{margin:0;font-size:17px;font-weight:800}.modal-head small{color:var(--faint);font-size:11.5px}.modal-body{padding:8px 22px 12px;overflow:auto}.modal-foot{justify-content:flex-end;gap:10px;padding:12px 22px 20px;display:flex}.dropzone{text-align:center;background:var(--bg);box-shadow:var(--inset);border-radius:20px;flex-direction:column;align-items:center;gap:6px;padding:24px;display:flex}.dropzone p{margin:8px 0 0;font-size:14px;font-weight:700}.dropzone small{color:var(--faint);font-size:12px}.drop-actions{gap:10px;margin-top:14px;display:flex}.thumbs{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.thumb{background:var(--bg-hi);width:92px;height:120px;box-shadow:var(--raise-sm);border-radius:12px;position:relative;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.thumb button{color:#fff;background:#161616b3;border:0;border-radius:50%;place-items:center;width:22px;height:22px;display:grid;position:absolute;top:5px;right:5px}.thumb span{background:var(--bg-hi);border-radius:6px;padding:0 5px;font-size:10px;font-weight:800;position:absolute;bottom:5px;left:5px}.hint-field{flex-direction:column;gap:7px;margin-top:14px;font-size:12.5px;font-weight:700;display:flex}.hint-field input{background:var(--bg-lo);height:40px;box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:12px;padding:0 14px;font-size:13px}.hint-field input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.hint-field small{color:var(--faint);margin-top:1px;font-size:11.5px;font-weight:400;line-height:1.5;display:block}.hint-field .form-images .thumb,.hint-field .thumb-add{width:64px;height:64px}.analyzing{align-items:center;gap:24px;padding:20px;display:flex}.scan{background:var(--canvas);width:150px;height:196px;box-shadow:var(--inset);border-radius:14px;flex:none;position:relative;overflow:hidden}.scan img{object-fit:cover;filter:grayscale()contrast(1.1);opacity:.85;width:100%;height:100%}.scan-placeholder{background:repeating-linear-gradient(#e2e2e2 0 1px,#0000 1px 14px);position:absolute;inset:18px}.scan-line{background:var(--accent);height:2px;box-shadow:0 0 12px var(--accent);animation:1.6s ease-in-out infinite alternate scan;position:absolute;left:0;right:0}@keyframes scan{0%{top:4%}to{top:96%}}.stages{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.stages li{color:var(--faint);align-items:center;gap:10px;font-size:13.5px;font-weight:600;display:flex}.stages li span{width:26px;height:26px;box-shadow:var(--inset-sm);border-radius:50%;place-items:center;font-size:11px;display:grid}.stages li.doing{color:var(--ink)}.stages li.doing span{color:var(--accent);box-shadow:var(--raise-xs);animation:1s infinite ring}.stages li.done{color:var(--ink)}.stages li.done span{background:linear-gradient(145deg, var(--accent-hi), var(--accent-lo));color:#fff;box-shadow:var(--raise-xs)}.notice{background:var(--bg);box-shadow:var(--inset-sm);color:var(--muted);border-radius:14px;margin-bottom:10px;padding:10px 14px;font-size:12px;line-height:1.5}.notice.warn{background:var(--cream-hi);color:var(--ink)}.result-head{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.result-head small{color:var(--faint);font-size:11px}.result-head h4{margin:2px 0 0;font-size:16px}.confidence{align-items:center;gap:8px;display:flex}.confidence small{color:var(--faint);font-size:11px}.confidence .bar{background:var(--bg);width:90px;height:8px;box-shadow:var(--inset-sm);border-radius:999px;overflow:hidden}.confidence .bar i{background:var(--accent);border-radius:999px;height:100%;display:block}.confidence b{font-family:var(--mono);font-size:12px}.params tr.is-default td{color:var(--faint)}.src{white-space:nowrap;cursor:default;border-radius:6px;padding:2px 7px;font-size:10.5px;font-weight:700}.src.manual{background:var(--ink);color:#fff}.src.default{box-shadow:var(--inset-sm);color:var(--faint)}.parts-found{margin-top:12px;font-size:12.5px}.parts-found summary{cursor:pointer;font-weight:700}.parts-found ul{color:var(--muted);margin:6px 0 0;padding-left:18px;line-height:1.8}.error-box{background:var(--cream);color:var(--ink);border-radius:16px;padding:16px;font-weight:600}.error-box p{word-break:break-all;margin:6px 0 0;font-size:12.5px}.pdf-card{background:var(--bg);width:100%;box-shadow:var(--raise-sm);text-align:left;border:0;border-radius:16px;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.pdf-icon{width:38px;height:46px;color:var(--accent);box-shadow:var(--inset-sm);border-radius:4px 12px 4px 4px;flex:none;place-items:center;font-size:10px;font-weight:900;display:grid}.pdf-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pdf-info b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.pdf-info small{color:var(--faint);font-size:11.5px}.pdf-range{color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:700;display:flex}.pdf-range input{width:130px;height:32px;font:12.5px var(--mono);background:var(--bg-lo);box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:10px;padding:0 10px}.pdf-range input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.check-field{cursor:pointer;align-items:flex-start;gap:8px;margin-top:10px;font-size:12.5px;font-weight:600;display:flex}.check-field input{accent-color:var(--accent);margin:2px 0 0}.check-field small{color:var(--faint);margin-top:1px;font-size:11.5px;font-weight:400;display:block}.link-btn{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-btn:disabled{color:var(--faint);cursor:default}.job-progress{flex-direction:column;gap:12px;min-width:0;display:flex}.job-meta{font:11.5px/1.5 var(--mono);color:var(--faint);margin:8px 0 0}.job-log{margin-top:12px;font-size:12.5px}.job-log summary{cursor:pointer;font-weight:700}.job-log ol{background:var(--bg);max-height:168px;box-shadow:var(--inset-sm);font:11px/1.6 var(--mono);color:var(--muted);border-radius:14px;margin:8px 0 0;padding:10px 12px;list-style:none;overflow:auto}.job-log li{gap:8px;display:flex}.job-log time{color:var(--faint);flex:none}.job-log li.ok{color:var(--ink)}.job-log li.warn,.job-log li.error{color:var(--ink);font-weight:700}@media (width<=760px){.page{padding:0}.card{box-shadow:none;border-radius:0}.topbar{padding:12px 14px 0}.product-title span,.badge{display:none}.product-title b{font-size:13px}.topbar-left{gap:10px}.timeline{gap:8px}.timeline-count{font-size:11px}.pill{height:34px;padding:0 13px;font-size:12px}.viewport{border-radius:20px;margin:10px 10px 0}.step-number{font-size:40px;top:10px;left:14px}.detail{width:132px;top:12px;right:12px}.detail-caption{font-size:10px;bottom:-18px}.hint{display:none}.info{max-height:30vh;padding:10px 14px 2px}.chips{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.chip{height:28px;font-size:11.5px}.info h2{margin-top:10px;font-size:14px}.info p{font-size:12.5px}.controls{padding:10px 12px calc(14px + env(safe-area-inset-bottom));gap:8px}.round{width:38px;height:38px}.timeline{height:38px;padding:0 12px}.timeline-label{display:none}.panel{border-radius:24px 24px 0 0;width:auto;max-width:none;height:70%;inset:auto 0 0}.analyzing{flex-direction:column}.modal{border-radius:24px}}.topbar-right{flex:none;align-items:center;gap:12px;display:flex}.round.small.back{width:36px;height:36px}.guide-pill .pill-text{text-overflow:ellipsis;max-width:200px;overflow:hidden}.note-actions{background:var(--bg);height:36px;box-shadow:var(--raise-sm);border-radius:999px;align-items:stretch;gap:4px;padding:3px;display:inline-flex}.note-actions button{font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:999px;align-items:center;gap:5px;padding:0 12px;font-size:12.5px;font-weight:700;transition:box-shadow .18s,color .18s;display:inline-flex}.note-actions button:hover{box-shadow:var(--raise-xs)}.note-actions button.is-liked,.note-actions button.is-saved,.note-actions button.is-active{color:var(--ink);background:var(--cream);box-shadow:var(--inset-sm)}.note-actions button.is-liked svg{animation:.35s ease-out beat}@keyframes beat{50%{transform:scale(1.3)}}.controls .note-actions{flex:none;height:42px}.controls .note-actions button{padding:0 14px;font-size:13px}.avatar{box-shadow:2px 2px 4px var(--sh-d), -2px -2px 4px var(--sh-l);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:800;line-height:1;display:inline-grid}.avatar.is-official{color:#fff;background:linear-gradient(145deg,#3a3a3a,#111)}.user-badge{background:var(--ink);color:#fff;vertical-align:1px;border-radius:6px;flex:none;margin-left:6px;padding:3px 6px;font-size:10px;font-style:normal;font-weight:800;line-height:1}.user-badge.is-soft{box-shadow:var(--inset-sm);color:var(--muted);background:0 0}.toast{z-index:300;background:var(--ink);color:#fff;border-radius:999px;max-width:calc(100vw - 40px);padding:11px 20px;font-size:13px;font-weight:600;animation:.25s ease-out fade;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:6px 8px 20px #00000040}.note-sheet{z-index:30;background:var(--bg);visibility:hidden;height:min(52%,470px);min-height:300px;transition:transform .34s var(--ease), visibility 0s linear .34s;border-radius:26px 26px 0 0;grid-template:"head head""note list"minmax(0,1fr)"note box"/minmax(0,1fr) minmax(0,1fr);display:grid;position:absolute;bottom:0;left:14px;right:14px;transform:translateY(calc(100% + 40px));box-shadow:0 -10px 34px #0000001a}.note-sheet.is-open{visibility:visible;transition:transform .34s var(--ease), visibility 0s;transform:none}.note-sheet.is-single{grid-template:"head""note"minmax(0,1fr)/minmax(0,1fr)}.sheet-head{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;grid-area:head;align-items:center;gap:12px;padding:20px 16px 12px 24px;display:flex;position:relative}.sheet-grip{cursor:pointer;width:80px;height:20px;margin-left:-40px;position:absolute;top:0;left:50%}.sheet-grip:after{content:"";width:40px;height:5px;box-shadow:var(--inset-sm);border-radius:3px;position:absolute;top:8px;left:20px}.sheet-head h3{white-space:nowrap;margin:0;font-size:15px;font-weight:800}.sheet-head-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.sheet-body{display:contents}.sheet-note{grid-area:note;padding:8px 24px 16px;overflow:auto}.sheet-comments{border-left:1px solid var(--line);grid-area:list;padding:8px 24px 8px 22px;overflow:auto}.sheet-comments.comments{margin-top:0}.note-sheet .comment-box{border-left:1px solid var(--line);grid-area:box;padding-left:22px;padding-right:20px}.comment-thread{padding-bottom:10px}.comment-thread+.comment-thread{border-top:1px solid var(--line)}.note-sheet .note-author{white-space:normal;align-items:center;gap:10px;display:flex;overflow:visible}.note-sheet .note-author span{flex-direction:column;gap:2px;min-width:0;display:flex}.note-sheet .note-author b{align-items:center;font-size:13.5px;display:flex}.note-sheet .note-author small{color:var(--faint);font-size:11.5px}.note-sheet .note-h{margin-top:12px}.note-h{margin:14px 0 8px;font-size:17px;font-weight:800;line-height:1.42}.note-images{gap:8px;margin:4px 0 12px;display:grid}.note-images.n2{grid-template-columns:1fr 1fr}.note-images.n3{grid-template-columns:1fr 1fr 1fr}.note-images img{aspect-ratio:1;object-fit:cover;width:100%;box-shadow:var(--raise-sm);border-radius:14px;display:block}.note-images.n1 img{aspect-ratio:auto;max-height:300px}.note-text{color:#3a3a3a;white-space:pre-wrap;word-break:break-word;margin:0 0 12px;font-size:13px;line-height:1.75}.note-tags{flex-wrap:wrap;gap:8px;margin-bottom:6px;padding:2px;display:flex}.note-tags span{box-shadow:var(--inset-sm);color:var(--muted);border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:700}.notice-actions{justify-content:flex-end;margin-top:10px;display:flex}.link-btn.danger{color:var(--accent);align-items:center;gap:5px;margin:8px 0 4px;font-size:12.5px;font-weight:700;text-decoration:none;display:inline-flex}.comments{margin-top:12px;padding-top:12px}.comments h4{letter-spacing:1px;color:var(--faint);margin:0 0 4px;font-size:11px;font-weight:700}.comment{gap:10px;padding:11px 0 3px;display:flex}.comment.is-reply{padding:6px 0 2px 38px}.comment-main{flex:1;min-width:0}.comment-head{align-items:center;min-width:0;display:flex}.comment-head b{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.comment p{word-break:break-word;margin:3px 0 4px;font-size:13px;line-height:1.6}.reply-to{color:var(--faint)}.comment-foot{color:var(--faint);align-items:center;gap:12px;font-size:11px;display:flex}.comment-foot .link-btn{color:var(--muted);font-size:11px;font-weight:700;text-decoration:none}.comment-foot .link-btn:hover{color:var(--ink)}.comment-like{min-width:30px;color:var(--faint);font-variant-numeric:tabular-nums;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:3px;margin-left:auto;padding:2px 0;font-size:11px;display:inline-flex}.comment-like.is-on{color:var(--accent)}.comments-empty{color:var(--faint);text-align:center;margin:16px 0;font-size:12.5px}.comment-box{padding:12px 16px 14px}.replying{box-shadow:var(--inset-sm);color:var(--muted);white-space:nowrap;border-radius:12px;align-items:center;gap:4px;margin-bottom:8px;padding:5px 6px 5px 12px;font-size:11.5px;display:flex;overflow:hidden}.replying b{color:var(--ink)}.replying button{background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-left:auto;display:grid}.replying button:hover{box-shadow:var(--raise-xs)}.comment-input{align-items:center;gap:10px;display:flex}.comment-input input{background:var(--bg-lo);min-width:0;height:38px;box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:999px;flex:1;padding:0 16px;font-size:13px}.comment-input input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.comment-input .btn{height:38px;padding:0 16px}.publish-choices{gap:14px;padding:4px 2px 20px;display:grid}.choice{background:var(--bg);box-shadow:var(--raise-sm);text-align:left;border:0;border-radius:20px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:3px 14px;padding:16px;transition:box-shadow .18s;display:grid}.choice:hover{box-shadow:var(--raise)}.choice:active{box-shadow:var(--inset-sm)}.choice-icon{width:48px;height:48px;box-shadow:var(--inset-sm);color:var(--muted);border-radius:15px;grid-row:span 2;place-items:center;display:grid}.choice-icon.is-dark{background:linear-gradient(145deg, var(--accent-hi), var(--accent-lo));color:#fff;box-shadow:var(--accent-raise)}.choice b{font-size:14px}.choice small{color:var(--faint);font-size:12px;line-height:1.55}.post-form{padding-bottom:6px}.form-field{flex-direction:column;gap:7px;margin-bottom:14px;display:flex}.form-field>span{justify-content:space-between;align-items:baseline;font-size:12.5px;font-weight:700;display:flex}.form-field>span small{color:var(--faint);font-size:11px;font-weight:500;font-family:var(--mono)}.form-field input,.form-field select,.form-field textarea{width:100%;font:inherit;background:var(--bg);box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:14px;padding:10px 14px;font-size:13px}.form-field textarea{resize:vertical;min-height:110px;line-height:1.6}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.form-images{flex-wrap:wrap;gap:10px;padding:2px;display:flex}.form-images .thumb{width:78px;height:78px}.thumb-add{background:var(--bg);width:78px;height:78px;box-shadow:var(--inset-sm);color:var(--muted);border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.thumb-add small{font-size:11px;font-weight:600}.thumb-add:hover{color:var(--accent)}.form-actions{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.publish-inline{box-shadow:0 -1px 0 var(--line);margin-top:18px;padding-top:16px}.publish-inline h4{margin:0;font-size:14px;font-weight:800}.publish-inline .field-note{margin:4px 0 12px}.cover-stage{background:var(--canvas);position:fixed;inset:0}.sprite-stage{position:fixed;inset:0}html:has(.sprite-stage){background:0 0}html:has(.sprite-stage) body{background:0 0}.card.is-empty{place-items:center;display:grid}.missing{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.missing b{font-size:17px}.missing p{color:var(--muted);margin:0 0 10px;font-size:13px}.plaza-page{background:var(--bg);position:fixed;inset:0;overflow:hidden}.plaza{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background-color:#fff;background-repeat:repeat;position:absolute;inset:0;overflow:hidden}.plaza.is-dragging{cursor:grabbing}.plaza.is-dragging .ptile{pointer-events:none}.plaza-world{transform-origin:0 0;will-change:transform;position:absolute;top:0;left:0}.ptile{width:0;height:0;color:inherit;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;transition:left .75s var(--ease), top .75s var(--ease);text-decoration:none;position:absolute}.ptile:focus-visible{outline:none}.ptile-lift{z-index:calc(100 + var(--z));transition:transform .28s var(--ease), opacity .45s, filter .45s;animation:rise .7s var(--ease) both;animation-delay:calc(var(--i) * 26ms);position:absolute;top:0;left:0}@keyframes rise{0%{opacity:0;translate:0 34px}}.ptile-lot{z-index:1;pointer-events:none;opacity:0;transition:opacity .45s;position:absolute;overflow:visible}.ptile-lot path{fill:var(--cream-hi)}.ptile.is-best .ptile-lot,.ptile.is-hit .ptile-lot{opacity:1}.ptile.is-best .ptile-lot path{fill:var(--cream);filter:drop-shadow(0 0 16px #ecd47c8c)}.ptile-shadow{z-index:2;pointer-events:none;transition:transform .28s var(--ease), opacity .45s;animation:.7s ease-out both appear;animation-delay:calc(var(--i) * 26ms);background:radial-gradient(closest-side,#0003,#00000014 55%,#0000);border-radius:50%;position:absolute}@keyframes appear{0%{opacity:0}}.ptile:hover .ptile-shadow,.ptile:focus-visible .ptile-shadow{opacity:.75;transform:scale(.86)}.ptile-model{pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;position:absolute}.ptile-hit{cursor:pointer;position:absolute}.ptile-blank,.ptile-photo{background:var(--bg);width:92px;height:104px;box-shadow:var(--raise-sm);color:var(--faint);border-radius:20px;place-items:center;display:grid;position:absolute;top:-112px;left:-46px}.ptile-photo{padding:6px}.ptile-photo img{object-fit:cover;border-radius:15px;width:100%;height:100%}.ptile:hover .ptile-lift,.ptile:focus-visible .ptile-lift{transform:translateY(-10px)}.ptile-label{z-index:calc(1000 + var(--z));text-align:center;pointer-events:none;opacity:0;transform-origin:50% 0;width:230px;transform:translateY(calc(8px - 100%));scale:calc(max(var(--zoom,1), .85) / var(--zoom,1));transition:opacity .3s, transform .3s var(--ease);flex-direction:column;align-items:center;gap:2px;margin-left:-115px;display:flex;position:absolute;left:0}.ptile.is-focus .ptile-label,.ptile.is-best .ptile-label,.ptile.is-hit .ptile-label,.ptile:hover .ptile-label,.ptile:focus-visible .ptile-label{opacity:1;transform:translateY(-100%)}.ptile:hover .ptile-label,.ptile:focus-visible .ptile-label{transform:translateY(calc(-100% - 10px))}.ptile-label b{text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-shadow:0 1px 0 #ffffffe6, 0 0 8px var(--bg), 0 0 3px var(--bg);padding:0 4px;font-size:13px;font-weight:800;line-height:1.35;overflow:hidden}.ptile-label small{color:var(--muted);text-shadow:0 0 6px var(--bg), 0 0 2px var(--bg);font-size:11px}.ptile-label em{color:#fff;background:var(--ink);border-radius:999px;margin-bottom:3px;padding:3px 9px;font-size:10.5px;font-style:normal;font-weight:800;box-shadow:2px 3px 7px #00000038}.ptile-label em.is-draft{color:var(--ink);background:var(--cream);box-shadow:var(--raise-xs)}.ptile:focus-visible .ptile-label b{outline-offset:2px;border-radius:6px;outline:2px solid #16161680}.plaza.is-far .ptile-label small,.ptile.is-hit:not(.is-focus,:hover,:focus-visible) .ptile-label small{display:none}.ptile.is-best .ptile-label b{font-size:14.5px}.ptile.is-near .ptile-lift{opacity:.6;filter:saturate(.55)}.ptile.is-far .ptile-lift{opacity:.22;filter:saturate(0)}.ptile.is-near .ptile-shadow{opacity:.6}.ptile.is-far .ptile-shadow{opacity:.2}.ptile.is-near:hover .ptile-lift,.ptile.is-far:hover .ptile-lift{opacity:1;filter:none}.plaza-top{z-index:20;pointer-events:none;grid-template-columns:minmax(0,1fr) minmax(0,560px) auto minmax(0,1fr);grid-template-areas:"brand search view actions";align-items:center;gap:18px 14px;display:grid;position:absolute;top:18px;left:22px;right:22px}.plaza-top .home-brand{grid-area:brand}.plaza-top .search{grid-area:search}.plaza-top .view-toggle{grid-area:view}.plaza-top .home-actions{grid-area:actions}.view-toggle{grid-template-columns:auto auto;height:46px;padding:5px}.view-toggle button{align-items:center;gap:6px;padding:0 14px;font-size:12.5px;display:inline-flex}.view-toggle button.is-on{background:var(--cream);box-shadow:var(--raise-xs)}.plaza-top>*{pointer-events:auto}.home-brand{color:inherit;justify-self:start;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-mark{background:var(--bg);width:46px;height:46px;box-shadow:var(--raise-sm);border-radius:16px;flex:none;place-items:center;display:grid}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text b{letter-spacing:1.5px;white-space:nowrap;font-size:18px;font-weight:900}.brand-text em{letter-spacing:.5px;color:var(--faint);margin-left:6px;font-size:12px;font-style:normal;font-weight:800}.search{background:var(--bg-lo);width:100%;height:48px;box-shadow:var(--inset), 0 0 0 6px #ffffffd9;color:var(--muted);border-radius:999px;align-items:center;gap:10px;padding:0 8px 0 18px;transition:box-shadow .2s;display:flex}.search:focus-within{box-shadow:var(--inset), 0 0 0 6px #ffffffd9, 0 0 0 9px var(--cream)}.search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:14px}.search input::placeholder{color:var(--faint)}.search-clear{background:var(--bg);width:32px;height:32px;box-shadow:var(--raise-xs);color:var(--muted);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.search-clear:active{box-shadow:var(--inset-sm)}.home-actions{justify-self:end;align-items:center;gap:4px;display:flex}.me-group{box-shadow:var(--raise-sm);background:#fff;border-radius:999px;gap:2px;padding:4px}.mine-btn{height:38px;color:var(--ink);background:0 0;border:0;border-radius:999px;padding:0 12px 0 16px;font-size:13.5px;font-weight:700;transition:background .18s,box-shadow .18s}.mine-btn:hover{background:var(--bg-lo)}.mine-btn.is-on{background:var(--cream);box-shadow:var(--inset-sm)}.me-group .avatar-btn{box-shadow:none;background:0 0;padding:2px;transition:background .18s}.me-group .avatar-btn:hover{background:var(--bg-lo)}.me-group .avatar-btn:active{box-shadow:var(--inset-sm)}.avatar-btn{background:var(--bg);box-shadow:var(--raise-sm);border:0;border-radius:50%;padding:4px;display:grid}.avatar-btn .avatar{box-shadow:none}.avatar-btn:active{box-shadow:var(--inset-sm)}.profile-menu{width:296px;padding:12px}.profile-head{align-items:center;gap:12px;padding:4px 4px 12px;display:flex}.profile-head span{flex-direction:column;gap:3px;min-width:0;display:flex}.profile-head b{font-size:14px}.profile-head small{color:var(--faint);font-size:11px;line-height:1.45}.profile-name{gap:8px;padding:0 4px 8px;display:flex}.profile-name input{background:var(--bg-lo);min-width:0;height:36px;box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:999px;flex:1;padding:0 14px;font-size:13px}.profile-name input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.profile-name .btn{height:36px;padding:0 13px;font-size:12px}.profile-pass{flex-direction:column;gap:8px;padding:4px 4px 10px;display:flex}.profile-pass input{background:var(--bg-lo);height:36px;box-shadow:var(--inset-sm);color:var(--ink);border:0;border-radius:999px;padding:0 14px;font-size:13px}.profile-pass input:focus{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream);outline:none}.profile-pass p{color:#c2410c;margin:0 6px;font-size:12px}.profile-pass .btn{height:36px;font-size:12.5px}@media (pointer:coarse){.profile-name input,.profile-pass input{font-size:16px}}a.dropdown-item{color:inherit;text-decoration:none}.dropdown-item.is-quiet b{color:var(--muted);font-weight:600}.admin-btn{background:var(--ink);color:#fff;letter-spacing:1px;border-radius:999px;align-items:center;height:38px;padding:0 14px;font-size:12.5px;font-weight:800;text-decoration:none;display:inline-flex}.admin-btn:hover{background:var(--accent-hi)}.auth{width:min(340px,100vw - 40px);margin-top:24px;animation:.35s fadeIn}.auth-tabs{height:42px}.auth-title{flex-direction:column;justify-content:center;align-items:center;gap:3px;height:42px;display:flex}.auth-title b{font-size:15px}.auth-title span{color:var(--faint);font-size:11.5px}.auth-form{flex-direction:column;gap:10px;margin-top:16px;display:flex}.auth-field{background:var(--bg);height:46px;box-shadow:var(--inset-sm);cursor:text;border-radius:14px;align-items:center;padding:0 8px 0 16px;transition:box-shadow .18s;display:flex}.auth-field:focus-within{box-shadow:var(--inset-sm), 0 0 0 3px var(--cream)}.auth-field span{width:54px;color:var(--muted);flex:none;font-size:12.5px;font-weight:700}.auth-field input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;flex:1;padding:0;font-size:16px}.auth-field input:focus-visible{outline:none}.auth-field input::placeholder{color:#c4c4c0;font-size:14px}.auth-code{gap:10px;display:flex}.auth-code .auth-field{flex:1;min-width:0}.auth-send{border-radius:14px;flex:none;min-width:104px;height:46px;padding:0 14px;font-size:12.5px}.auth-msg{color:var(--muted);margin:0;padding:0 4px;font-size:12px;line-height:1.55}.auth-msg.is-error{color:#c2410c}.auth-submit{letter-spacing:2px;border-radius:14px;height:48px;margin-top:4px;font-size:14.5px}.auth-foot{text-align:center;min-height:18px;color:var(--faint);margin:14px 0 0;font-size:11.5px}.auth-link{color:var(--muted);background:0 0;border:0;padding:2px 6px;font-size:12px;font-weight:700}.auth-link:hover{color:var(--ink)}.plaza-cats{z-index:19;scrollbar-width:none;pointer-events:none;gap:10px;padding:10px 24px 16px;display:flex;position:absolute;top:82px;left:0;right:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000)}.plaza-cats::-webkit-scrollbar{display:none}.plaza-cats .chip{pointer-events:auto;height:32px}.plaza-cats .chip:first-child{margin-left:auto}.plaza-cats .chip:last-child{margin-right:auto}.plaza-cats.is-mine{-webkit-mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 32px),#0000)}.plaza-cats .chip.is-scope{background:var(--ink);color:#fff;box-shadow:var(--raise-xs);gap:3px;padding:0 14px 0 9px}.plaza-cats .chip.is-scope:hover{background:#2c2c2c}.plaza-cats .chip.is-scope:active{box-shadow:var(--inset-sm);background:#000}.cats-sep{background:#0000001f;flex:none;align-self:center;width:1px;height:18px;margin:0 4px}.mine-empty{z-index:16;width:min(360px,100% - 40px);box-shadow:var(--raise);text-align:center;background:#fff;border-radius:26px;flex-direction:column;align-items:center;gap:6px;padding:30px 26px 26px;animation:.3s ease-out fade;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-40%)}.mine-empty b{font-size:15px}.mine-empty p{color:var(--muted);margin:0 0 10px;font-size:12.5px;line-height:1.6}.plaza-hint{z-index:18;background:var(--bg);max-width:calc(100% - 560px);box-shadow:var(--raise-sm);color:var(--muted);white-space:nowrap;border-radius:999px;gap:8px;margin:0;padding:10px 18px;font-size:12.5px;animation:.3s ease-out fade;display:flex;position:absolute;bottom:24px;left:50%;overflow:hidden;transform:translate(-50%)}.plaza-hint span{flex:none}.plaza-hint span:first-child{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.plaza-hint span+span:before{content:"·";color:var(--faint);margin-right:8px}.plaza-hint b{color:var(--ink)}.plaza-zoom{z-index:21;gap:10px;display:flex;position:absolute;bottom:22px;left:22px}.fab{z-index:23;position:absolute;bottom:22px;right:22px}.fab-btn{background:var(--ink);color:#fff;width:58px;height:58px;box-shadow:var(--accent-raise);transition:background .18s, transform .18s var(--ease), box-shadow .18s;border:0;border-radius:50%;place-items:center;display:grid}.fab-btn svg{transition:transform .32s var(--ease)}.fab-btn:hover{background:#2c2c2c}.fab-btn:active{transform:scale(.94)}.fab-btn:focus-visible{box-shadow:var(--accent-raise), 0 0 0 4px var(--cream);outline:none}.fab.is-open .fab-btn svg{transform:rotate(135deg)}.fab-menu{pointer-events:none;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:calc(100% + 14px);right:0}.fab.is-open .fab-menu{pointer-events:auto}.fab-item{box-shadow:var(--raise);color:var(--ink);text-align:left;white-space:nowrap;opacity:0;transform-origin:calc(100% - 22px) 100%;transition:opacity .16s, transform .2s var(--ease), box-shadow .18s;transition-delay:calc((1 - var(--k)) * 30ms);background:#fff;border:0;border-radius:999px;align-items:center;gap:11px;padding:7px 18px 7px 7px;display:flex;transform:translateY(16px)scale(.6)}.fab.is-open .fab-item{opacity:1;transition:opacity .2s,transform .34s cubic-bezier(.34,1.5,.64,1),box-shadow .18s;transition-delay:calc(var(--k) * 55ms);transform:none}.fab-item:hover{box-shadow:var(--raise-lg)}.fab-item:active{box-shadow:var(--inset-sm)}.fab-item-icon{background:var(--bg-lo);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;transition:background .18s;display:grid}.fab-item:hover .fab-item-icon{background:var(--cream)}.fab-item-text{flex-direction:column;gap:1px;display:flex}.fab-item-text b{font-size:13.5px}.fab-item-text small{color:var(--muted);font-size:11px}.plaza-tip{z-index:15;color:var(--faint);pointer-events:none;white-space:nowrap;margin:0;font-size:11.5px;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.feed{overscroll-behavior:contain;background:#fff;position:absolute;inset:0;overflow-y:auto}.feed-inner{max-width:1520px;margin:0 auto;padding:152px 24px 110px}.feed-veil{z-index:17;pointer-events:none;background:linear-gradient(#fff 76%,#fff0);height:146px;position:absolute;top:0;left:0;right:12px}.feed-head{align-items:center;gap:14px;min-height:36px;margin:0 4px 18px;display:flex}.feed-sort{grid-template-columns:auto auto;height:36px;padding:4px}.feed-sort button{padding:0 16px;font-size:12.5px}.feed-sort button.is-on{background:var(--cream)}.feed-summary{color:var(--muted);margin:0;font-size:12.5px}.feed-summary b{color:var(--ink)}.feed-cols{align-items:flex-start;gap:18px;display:flex}.feed-col{flex-direction:column;flex:1;gap:18px;min-width:0;display:flex}.fcard{box-shadow:var(--raise-sm);transition:box-shadow .2s, transform .25s var(--ease);background:#fff;border-radius:22px;animation:.45s ease-out both appear;overflow:hidden}.fcard:hover{box-shadow:var(--raise);transform:translateY(-3px)}.fcard.is-best{box-shadow:0 0 0 3px var(--cream), var(--raise)}.fcard-link{color:inherit;-webkit-tap-highlight-color:transparent;text-decoration:none;display:block}.fcard-media{color:var(--faint);background:var(--bg-lo);place-items:center;display:grid;position:relative;overflow:hidden}.fcard-media img{object-fit:cover;width:100%;height:100%;display:block}.fcard-tags{flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:10px;left:10px;right:10px}.fcard-tags em{box-shadow:var(--raise-xs);background:#fffffff0;border-radius:999px;padding:3px 9px;font-size:11px;font-style:normal;font-weight:700}.fcard-tags em.is-best{background:var(--ink);color:#fff}.fcard-tags em.is-draft{background:var(--cream)}.fcard-local{color:var(--faint);flex:none;margin-left:auto;padding-right:6px;font-size:11px}.fcard-kind{color:#fff;background:#161616d1;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;bottom:10px;left:10px}.fcard-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:12px 14px 0;font-size:13.5px;font-weight:700;line-height:1.45;display:-webkit-box;overflow:hidden}.fcard-meta{min-width:0;color:var(--muted);align-items:center;gap:7px;padding:9px 10px 12px 14px;font-size:11.5px;display:flex}.fcard-author{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fcard-like{height:26px;color:var(--muted);font:600 11.5px var(--mono);background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:4px;margin-left:auto;padding:0 9px;transition:box-shadow .18s,background .18s;display:inline-flex}.fcard-like:hover{box-shadow:var(--raise-xs)}.fcard-like.is-on{color:var(--ink);background:var(--cream);box-shadow:var(--inset-sm)}@media (width<=1080px){.plaza-top{grid-template-columns:auto minmax(0,1fr) auto auto}.view-toggle button span{display:none}.view-toggle button{padding:0 11px}}@media (width<=760px){.plaza-top{top:calc(10px + env(safe-area-inset-top));grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand actions actions""search search view";gap:10px;left:12px;right:12px}.plaza-top .home-actions{justify-self:end}.view-toggle{height:44px;padding:4px}.feed-inner{padding:calc(182px + env(safe-area-inset-top)) 12px calc(96px + env(safe-area-inset-bottom))}.feed-veil{height:calc(176px + env(safe-area-inset-top));right:0}.feed-head{gap:10px;margin:0 2px 12px}.feed-summary{font-size:11.5px}.feed-cols,.feed-col{gap:10px}.fcard{border-radius:18px}.fcard-title{margin:10px 11px 0;font-size:13px}.fcard-meta{gap:5px;padding:8px 6px 10px 11px}.fcard-meta .user-badge{display:none}.home-brand{grid-area:brand;gap:10px}.brand-mark{border-radius:14px;width:40px;height:40px}.brand-mark img{width:28px;height:28px}.brand-text b{font-size:16px}.home-actions{grid-area:actions}.mine-btn{height:34px;padding:0 10px 0 14px;font-size:13px}.search{grid-area:search;height:44px}.search input{font-size:16px}.plaza-cats{top:calc(116px + env(safe-area-inset-top));gap:8px;padding:8px 14px 14px}.plaza-cats .chip:first-child{margin-left:0}.plaza-cats .chip:last-child{margin-right:0}.plaza-hint{bottom:calc(74px + env(safe-area-inset-bottom));max-width:calc(100% - 24px);padding:8px 14px;font-size:12px}.plaza-hint span:nth-child(3){display:none}.plaza-zoom{left:12px;bottom:calc(14px + env(safe-area-inset-bottom))}.plaza-zoom .neu-btn:not(:first-child),.plaza-tip{display:none}.fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))}.fab-btn{width:54px;height:54px}.topbar-left .pill .pill-label{display:none}.topbar-left .pill{padding:0 10px}.topbar-right{gap:8px}.controls .note-actions{height:38px}.controls .note-actions button{padding:0 10px;font-size:12px}.guide-pill .pill-text{max-width:140px}.round.small.back{width:34px;height:34px}.note-sheet{border-radius:24px 24px 0 0;flex-direction:column;height:70%;min-height:0;display:flex;left:0;right:0}.sheet-head{padding:18px 12px 8px 16px}.sheet-body{flex:1;min-height:0;display:block;overflow:auto}.sheet-note{padding:8px 16px 4px;overflow:visible}.sheet-comments{border-left:0;border-top:1px solid var(--line);margin:8px 16px 0;padding:14px 0 10px;overflow:visible}.note-sheet .comment-box{padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-left:0;border-top:1px solid var(--line)}}@media (width<=480px){.topbar .product-title{display:none}.guide-pill .pill-text{max-width:190px}.controls .note-actions button{padding:0 9px}.controls .note-actions button span{display:none}.controls .note-actions button:only-child span{display:inline}}@media (prefers-reduced-motion:reduce){.ptile,.ptile-lift,.ptile-label{transition:none;animation:none}}
