@import"https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.7.0/style.css";@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap";:root{--paper: #f7f3ee;--ink: #2c2622;--muted: #8a8178;--line: #e6dfd6;--accent: #e07a6a;--sweet: #c45c7a;--elegant: #c4a574;--fresh: #5e9e8e;--sexy: #a66a7a;--cool: #6b7c8a;--radius-card: 18px;--shadow: 0 10px 30px rgba(44, 38, 34, .08);--font-display: "LXGW WenKai", "Noto Serif SC", serif;--font-body: "Noto Sans SC", sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body)}h1,h2,h3{font-family:var(--font-display);font-weight:500;letter-spacing:.02em}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit}.page{max-width:720px;margin:0 auto;padding:20px 16px 96px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.page-head h2{margin:0}.user-chip{display:flex;align-items:center;gap:10px;min-width:0;flex-shrink:0}.user-chip-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:8em}.user-chip-admin{font-size:13px;color:var(--muted)}.user-chip-out{appearance:none;border:0;background:none;color:var(--muted);cursor:pointer;padding:2px;display:flex;line-height:0}.user-chip-out svg{display:block}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;flex-shrink:0;overflow:hidden;background:#efe8df;color:var(--ink);font-weight:600;line-height:1}.avatar-pick{cursor:pointer;line-height:0;border-radius:50%}.author-row{display:flex;align-items:center;gap:8px;margin:8px 2px 0;font-size:14px}.author-row p{margin:0}.comment-row{display:flex;align-items:flex-start;gap:8px;margin:10px 0}.comment-row p{margin:0;min-width:0;flex:1;font-size:14px;line-height:1.5}.post-detail .score-head h2{font-size:24px}.post-detail .card-meta .author-row{font-size:14px}.post-detail>p{margin:8px 0 0;font-size:14px;line-height:1.6}.card{background:#fffdf9;border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:16px}.btn{appearance:none;border:0;border-radius:999px;background:var(--accent);color:#fff;padding:12px 18px;font-size:15px;cursor:pointer}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn:disabled{opacity:.5;cursor:not-allowed}.muted{color:var(--muted)}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 12px;border:1px solid var(--line);background:#fff;font-size:13px}.chip.active{border-color:var(--accent);color:var(--accent)}.nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:#f7f3eef0;border-top:1px solid var(--line);padding:6px 4px 10px}.nav a{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;font-size:10px;letter-spacing:.04em;color:var(--muted);padding:6px 0 4px;line-height:1.2}.nav a.active{color:var(--ink);font-weight:600}.nav-icon{display:block;width:22px;height:22px}.nav-icon svg{display:block;width:22px;height:22px}.feed{display:grid;grid-template-columns:1fr 1fr;gap:10px}.feed>*{display:block;min-width:0}.masonry{display:flex;gap:10px;align-items:flex-start}.masonry-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.feed .card,.masonry .card{padding:10px;overflow:hidden}.feed .card>h2,.masonry .card>h2{margin:10px 0 8px;font-size:20px}.score-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 10px}.score-head h2{margin:0;font-size:20px}.score-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:0 0 10px}.score-title b{font-weight:500;font-variant-numeric:tabular-nums}.score-grade{font-family:var(--font-display);font-size:13px;font-weight:500;letter-spacing:.12em;padding:1px 8px 2px;border:1px solid currentColor;border-radius:999px;line-height:1.3}.score-grade-perfect{color:var(--elegant)}.score-grade-great{color:var(--fresh)}.score-grade-ok{color:var(--cool)}.score-grade-fair{color:var(--muted)}.score-grade.is-plain{padding:0;border:0;border-radius:0;letter-spacing:.16em}.score-template{color:var(--muted);font-size:12px;text-align:right;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed .score-dim,.masonry .score-dim{margin-bottom:8px}.feed .score-dim-head,.masonry .score-dim-head{font-size:12px;margin-bottom:4px}.feed .score-dim-name .score-grade,.masonry .score-dim-name .score-grade{font-size:10px;letter-spacing:.12em}.feed .bar,.masonry .bar{height:6px}.feed .card>p,.masonry .card>p{margin:8px 0 0;font-size:12px;line-height:1.5}.btn.compact{width:100%;margin-top:8px;padding:8px 10px;font-size:12px}.share-confirm{margin-top:8px}.share-hint{margin:0 0 8px;font-size:12px;color:var(--muted);line-height:1.45}.share-hint.err{color:var(--accent)}.share-actions{display:flex;gap:8px;margin-top:8px}.share-confirm .share-actions,.share-actions .btn.compact{margin-top:0}a.card{display:block;color:inherit;text-decoration:none}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.card-meta .author-row{margin:0;min-width:0;font-size:12px}.card-meta .author-row p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.like-count{color:var(--muted);font-size:12px;flex-shrink:0}.photo{width:100%;aspect-ratio:3 / 4;display:block;border-radius:14px;object-fit:cover;background:var(--line)}.photo.natural{aspect-ratio:auto;height:auto;object-fit:contain;background:transparent}.photo-pick{display:flex;align-items:center;gap:12px;min-height:88px;padding:12px;border:1px dashed var(--line);border-radius:14px;background:#fff;cursor:pointer}.photo-pick.has-file{border-style:solid}.photo-pick.is-busy{pointer-events:none;opacity:.65;cursor:wait}.form-error{margin:8px 0 0;color:var(--accent);font-size:14px}.score-wait{margin-top:12px;border-radius:999px;background:#fff;border:1px solid var(--line);overflow:hidden}.score-wait-row{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px 8px}.score-wait-row strong{flex-shrink:0;font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--accent)}.score-wait-row span{min-width:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-wait-track{display:block;height:2px;background:var(--line);overflow:hidden}.score-wait-beam{display:block;width:38%;height:100%;background:linear-gradient(90deg,transparent,var(--accent),var(--elegant),transparent);animation:score-wait-scan 1.8s ease-in-out infinite}.score-wait-dots{display:flex;gap:5px;margin-left:auto;flex-shrink:0}.score-wait-dots i{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.28;animation:score-wait-dot 1.2s ease-in-out infinite}.score-wait-dots i:nth-child(2){background:var(--elegant);animation-delay:.18s}.score-wait-dots i:nth-child(3){background:var(--fresh);animation-delay:.36s}@keyframes score-wait-scan{0%{transform:translate(-120%)}to{transform:translate(280%)}}@keyframes score-wait-dot{0%,to{opacity:.22;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.score-wait-beam,.score-wait-dots i{animation:none}.score-wait-beam{width:100%;background:var(--accent);opacity:.45}.score-wait-dots i{opacity:.7}}.photo-pick-thumb{width:56px;height:74px;object-fit:cover;border-radius:10px;background:var(--line);flex-shrink:0}.photo-pick-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.photo-pick-copy strong{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-pick-copy span{color:var(--muted);font-size:13px}.challenge-compose{display:grid;grid-template-columns:minmax(128px,38%) 1fr;gap:10px 12px;align-items:stretch}.challenge-compose-goal{display:flex;flex-direction:column;gap:10px;min-width:0}.challenge-compose-goal .template-scale-wrap{flex:1;display:flex;flex-direction:column;min-height:0}.challenge-compose .score-template-line{margin:0}.challenge-compose .photo-pick{flex-direction:column;justify-content:center;text-align:center;gap:10px;flex:1;min-height:0;height:auto;padding:14px 10px;background:var(--paper);border-color:#ddd4c8}.challenge-compose .photo-pick.has-file{padding:10px}.challenge-compose .photo-pick.has-file .photo-pick-thumb{width:72px;height:96px}.challenge-compose-upload{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0}.challenge-compose-upload .btn{width:100%}.challenge-compose-upload .score-wait{margin-top:0}.challenge-compose .photo-pick:not(.has-file):before{content:"";width:34px;height:42px;border-radius:8px;border:1.5px solid #ddd4c8;background:#fffdf9;box-shadow:2px 2px #e6dfd6}.challenge-compose .photo-pick-copy{align-items:center}.challenge-compose .photo-pick-copy strong,.challenge-compose .photo-pick-copy span{max-width:100%}.challenge-compose .photo-pick-copy strong{font-family:var(--font-display);font-size:15px;font-weight:500}.free-compose{display:flex;flex-direction:column;gap:14px}.free-compose-meta{display:flex;flex-direction:column;gap:8px}.free-compose-summary{margin:0;color:var(--muted);font-size:13px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.free-compose .score-template-line{margin:0}.free-compose .photo-pick{flex-direction:column;justify-content:center;text-align:center;gap:10px;min-height:168px;padding:18px 12px;background:var(--paper);border-color:#ddd4c8}.free-compose .photo-pick.has-file{min-height:0;padding:12px}.free-compose .photo-pick.has-file .photo-pick-thumb{width:84px;height:112px}.free-compose .photo-pick:not(.has-file):before{content:"";width:34px;height:42px;border-radius:8px;border:1.5px solid #ddd4c8;background:#fffdf9;box-shadow:2px 2px #e6dfd6}.free-compose .photo-pick-copy{align-items:center}.free-compose .photo-pick-copy strong{font-family:var(--font-display);font-size:15px;font-weight:500}.free-compose .btn,.free-compose .score-wait{width:100%;margin-top:0}.template-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}.template-legend-item{appearance:none;border:0;background:none;padding:0 0 3px;margin:0;font-family:var(--font-display);font-size:15px;font-weight:500;letter-spacing:.12em;color:var(--ink);cursor:pointer;border-bottom:2px solid var(--accent)}.template-legend-item:hover,.template-legend-item:focus-visible{color:var(--muted)}.template-scale-wrap{min-width:0}.template-scale{list-style:none;margin:0;padding:2px 0;display:flex;flex-direction:column;justify-content:flex-start;gap:10px;min-width:0}.template-scale-empty{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.template-scale-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.template-scale-head span{font-family:var(--font-display);font-size:13px;letter-spacing:.04em}.template-scale-label{display:inline-flex;align-items:center;gap:4px;min-width:0}.template-scale-info{appearance:none;border:0;background:none;padding:0;margin:0 0 0 1px;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:#c9c0b6;cursor:pointer;flex-shrink:0;opacity:.7}.template-scale-info:hover,.template-scale-info:focus-visible{color:var(--muted);opacity:1}.template-scale-head b{font-size:12px;font-weight:500;color:var(--muted)}.template-scale-bar{height:4px;background:var(--line);border-radius:99px;overflow:hidden}.template-scale-bar>span{display:block;height:100%;border-radius:99px}.template-scale li.is-idle .template-scale-head span,.template-scale li.is-idle .template-scale-head b{color:var(--muted)}.template-scale li.is-idle .template-scale-bar{opacity:.55}.card-media{position:relative;margin-bottom:16px;overflow:hidden;border-radius:14px}.card-media:not(.result-photo) .result-badge-status{font-size:13px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink)}.score-dim{margin-bottom:16px}.score-dim-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;font-size:14px}.score-dim-name{display:flex;align-items:baseline;gap:8px;min-width:0}.score-dim-name .score-grade{font-size:12px}.score-dim-head strong{font-variant-numeric:tabular-nums;font-weight:600}.bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:99px}.seal{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border:2px solid var(--accent);color:var(--accent);border-radius:50%;font-family:var(--font-display);transform:rotate(-12deg);font-size:13px}.stamp{display:inline-block;border:2px solid var(--elegant);color:var(--elegant);padding:2px 8px;border-radius:6px;font-family:var(--font-display);transform:rotate(-8deg)}.card-media.result-photo{margin-bottom:22px;border-radius:14px;overflow:hidden}.result-badge{position:absolute;top:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px;max-width:min(240px,78%);padding:8px 12px 10px 10px;border-radius:14px 0 12px;background:#f7f3eef0;color:var(--ink);font-family:var(--font-display);text-align:left;pointer-events:none}.result-badge-kicker{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--muted)}.result-badge-status{font-size:16px;font-weight:500;letter-spacing:.12em;line-height:1}.result-badge.is-achieved .result-badge-status{color:var(--accent)}.result-badge.is-missed .result-badge-status{color:var(--muted)}.page-admin{max-width:800px;padding-bottom:40px}.page-back,.admin-back{margin:0 0 8px;font-size:13px;color:var(--muted)}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.admin-tabs a{border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:13px;color:var(--muted);background:#fff}.admin-tabs a.active{border-color:var(--accent);color:var(--accent)}.admin-list{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.admin-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.admin-notice{margin:12px 0 0;font-size:14px}.admin-notice.ok{color:var(--fresh)}.admin-notice.err{color:var(--accent)}.admin-notice.scene-status{margin-top:8px;padding:10px 12px;border-radius:10px;background:#efe8df;color:var(--ink)}.admin-notice.scene-status.ok{background:#e7f3ef;color:var(--fresh)}.admin-notice.scene-status.err{background:#fdecea;color:var(--accent)}.check{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:14px}.dim-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;position:relative;margin-bottom:10px;padding:12px 36px 12px 12px;background:#fff;border:1px solid var(--line);border-radius:14px}.dim-row .dim-desc{grid-column:1 / -1}.dim-remove{appearance:none;position:absolute;top:8px;right:8px;border:0;background:none;color:var(--muted);cursor:pointer;padding:4px;display:flex;line-height:0;border-radius:50%}.dim-remove:hover:not(:disabled){color:var(--ink)}.dim-remove:disabled{opacity:.35;cursor:not-allowed}.scene-art{width:100%;aspect-ratio:3 / 1;object-fit:cover;display:block;border-radius:14px;margin:0 0 12px;background:var(--line)}.scene-editor{margin:4px 0 16px;padding:12px;border-radius:var(--radius-card);background:#fff}.scene-editor .scene-art{margin-bottom:12px}.scene-prompt{font-size:13px;line-height:1.5;resize:vertical;background:var(--paper)}.score-template-line{color:var(--muted);font-size:13px}.score-template-name{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--accent);cursor:pointer}.sheet{border:0;padding:0;background:transparent;max-width:min(360px,calc(100vw - 40px));width:100%}.sheet::backdrop{background:#2c262259}.sheet-card{background:#fffdf9;border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);padding:20px 18px 16px}.sheet-card h2{margin:0 0 4px;font-size:18px}.sheet-card .btn{width:100%;margin-top:4px}.score-template-items{list-style:none;padding:0;margin:12px 0 16px}.score-template-items li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.score-template-items li:last-child{border-bottom:0}
