:root{--bg:#f6f6f1;--ink:#1c241b;--muted:#62685c;--accent:#c1fb61;--line:#d8dccf;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 Arial,"Microsoft YaHei","PingFang SC",sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #7153c7;outline-offset:4px}header{max-width:1160px;margin:auto;padding:24px 30px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.brand{font:bold 24px Arial;letter-spacing:-.7px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand b{display:inline-block;padding:4px 6px;border-radius:5px;background:var(--ink);color:var(--accent)}.credit{font:13px/1.6 Arial,sans-serif;color:#858585;margin-top:5px;letter-spacing:0}.language{display:flex;gap:9px;align-items:center;margin-left:auto;font-size:14px}.language select{background:white;border:1px solid #aeb5a5;border-radius:8px;padding:9px;min-height:42px;max-width:160px}main{max-width:1100px;margin:auto;padding:30px 24px 110px}h1{font-size:clamp(28px,4vw,46px);line-height:1.25;letter-spacing:-1px;margin:12px 0 16px}h2{font-size:23px;line-height:1.4;margin:10px 0 18px}p{margin:10px 0}em{font-style:normal;background:var(--accent);padding:0 7px}.eyebrow{font:13px/1.6 monospace;letter-spacing:2px;color:var(--muted);margin-top:14px}.intro{margin-bottom:25px}.sub{color:var(--muted);max-width:820px}.steps{display:flex;flex-wrap:wrap;gap:18px;color:#78816f;font-size:14px;margin-bottom:20px}.steps .current{font-weight:bold;color:var(--ink)}.tabs,.tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0}.tab,.text-button,.outline{background:transparent;border:1px solid var(--line);border-radius:30px;padding:8px 15px;font-size:14px}.tab.on{background:var(--ink);color:var(--accent);border-color:var(--ink)}.text-button{border:0;text-decoration:underline;padding:8px}.group-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.group-card{background:var(--white);border:1px solid var(--line);border-radius:12px;min-height:106px;padding:18px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.group-card:hover{border-color:var(--ink);background:#faffee}.group-card strong{font-size:17px}.meta{font-size:14px;color:var(--muted)}.back{display:inline-block;background:none;border:0;padding:6px 0;font-size:14px;color:var(--muted);text-decoration:underline}.choose-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cp-choice{padding:8px;border:1px solid var(--line);border-radius:14px;background:white;text-align:left;position:relative;min-width:0}.cp-choice.selected{border:2px solid var(--ink);padding:7px;background:#f1fbe6}.pair-photos{display:grid;grid-template-columns:1fr 1fr;gap:4px;overflow:hidden;border-radius:10px;background:#e5e9df}.portrait{position:relative;overflow:hidden;aspect-ratio:4/5;background:#e0e4da;min-width:0}.portrait img{width:100%;height:100%;object-fit:cover;display:block}.pair-name{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;font-weight:bold;font-size:16px;line-height:1.5;text-align:center;margin:10px 3px 5px;overflow-wrap:anywhere}.pair-name .cross{color:#7c8870;font-weight:normal}.selected-mark{position:absolute;right:14px;top:14px;background:white;border:1px solid #a4ad9b;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:15px}.selected .selected-mark{background:var(--accent);border-color:var(--ink)}.bottom-bar{position:fixed;bottom:0;left:0;right:0;background:#f6f6f1f5;backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:14px 22px;z-index:5}.bar-inner{max-width:1052px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.count{font-size:22px;font-weight:bold}.button{border:0;border-radius:8px;background:var(--ink);color:white;padding:13px 22px;font-weight:bold;font-size:16px;line-height:1.5}.button.lime{background:var(--accent);color:var(--ink)}.button.outline{background:transparent;color:var(--ink);border:1px solid var(--line)}.notice{background:#edf0e7;border-radius:9px;padding:12px 16px;font-size:14px;color:#505b45;max-width:900px}.progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.progress{height:6px;border-radius:6px;background:#dce2d4;overflow:hidden;margin:14px 0 22px}.progress div{height:100%;background:var(--ink)}.duel{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;gap:14px;margin:28px auto;max-width:970px}.duel-card{border:1px solid var(--line);border-radius:17px;background:white;padding:12px;min-width:0;transition:transform .12s,border-color .12s}.duel-card:hover{border-color:var(--ink);transform:translateY(-2px)}.duel-card .pair-name{font-size:20px;margin:15px 3px 12px}.vs{text-align:center;font:italic bold 21px Georgia,serif;color:#707969}.duel-label{display:block;text-align:center;font-size:14px;color:#5c6752;padding-bottom:3px}.play-tools{display:flex;align-items:center;justify-content:center;gap:18px}.rank-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.result-actions{display:flex;gap:10px;flex-wrap:wrap}.winner{background:white;border:1px solid var(--line);border-radius:18px;padding:26px;text-align:center;margin:25px auto;max-width:640px}.winner .pair-photos{max-width:460px;margin:20px auto 12px}.winner .pair-name{font-size:24px}.score-big{font-size:39px;font-weight:bold;line-height:1.3;margin:12px 0 4px}.score-big span{font-size:16px;color:var(--muted);font-weight:normal}.tie-list{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin:12px 0}.tie-list button{padding:7px 12px;background:#edf0e7;border:1px solid var(--line);border-radius:7px;font-size:14px}.tie-list button.on{background:var(--accent);border-color:var(--ink)}.rank-list{display:grid;gap:10px;margin:20px auto;max-width:900px}.rank-row{display:grid;grid-template-columns:45px 100px minmax(0,1fr) 105px;align-items:center;gap:16px;padding:12px;background:white;border:1px solid var(--line);border-radius:12px}.rank-number{font:bold 23px Arial;text-align:center}.rank-row .pair-name{justify-content:flex-start;text-align:left;font-size:17px;margin:0}.rank-row .portrait{aspect-ratio:1}.rank-score{text-align:right;font-size:23px;font-weight:bold;font-variant-numeric:tabular-nums}.rank-score .meta{font-weight:normal}.rank-row.top{border-color:#8b9f74;background:#f6ffe9}footer{max-width:1100px;margin:auto;padding:15px 24px 100px;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;font-size:13px;color:#747d6b}footer .text-button{font-size:13px}dialog{border:1px solid var(--line);border-radius:15px;width:calc(100% - 32px);max-width:620px;max-height:85vh;padding:24px;overflow:auto}dialog::backdrop{background:#0008}dialog a{color:#416428}dialog .source{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.save-preview{width:100%;display:block;margin:15px 0}#toast{display:none;position:fixed;bottom:105px;left:50%;transform:translateX(-50%);max-width:90%;background:var(--ink);color:white;border-radius:8px;padding:12px 20px;z-index:20;font-size:14px}.empty{padding:40px;text-align:center;border:1px dashed var(--line)}
@media(max-width:760px){.group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.choose-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.duel{gap:9px;grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr)}.duel-card{padding:8px}.duel-card .pair-name{font-size:17px}.rank-row{gap:10px;grid-template-columns:35px 80px minmax(0,1fr) 85px}}
@media(max-width:520px){header{padding:18px 20px;gap:12px}.brand{font-size:22px}.credit{font-size:12px}.language{gap:6px}.language select{max-width:126px;font-size:14px}.language>span{display:none}main{padding:23px 16px 110px}h1{font-size:30px;letter-spacing:0}.group-grid,.choose-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.group-card{padding:14px;min-height:95px}.group-card strong{font-size:16px}.steps{gap:12px;font-size:13px}.pair-name{font-size:15px}.count{font-size:18px}.button{padding:11px 15px;font-size:14px}.bar-inner{align-items:center}.duel{grid-template-columns:minmax(0,1fr);max-width:380px;gap:8px;margin-top:20px}.duel-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px;text-align:center;padding:10px;align-items:center}.duel-card .pair-name{font-size:16px;margin:3px}.duel-card .duel-label{font-size:13px;margin-top:8px}.vs{font-size:17px;line-height:1.2}.duel .pair-photos{gap:3px}.winner{padding:20px 15px}.winner .pair-name{font-size:20px}.rank-row{grid-template-columns:26px 68px minmax(0,1fr) 62px;gap:8px;padding:10px 8px}.rank-row .pair-name{font-size:14px;gap:3px}.rank-number{font-size:18px}.rank-score{font-size:19px}.rank-score .meta{font-size:12px}.rank-row .meta{font-size:12px}.meta{font-size:13px}.tools{gap:4px}footer{padding-left:16px;padding-right:16px}.result-actions{width:100%}.notice{font-size:14px}.progress-head{font-size:14px}}

.group-card.selected{border:2px solid var(--ink);background:#edffd4}.pair-group{font-size:13px;color:var(--muted);text-align:center;margin:3px 0 9px;overflow-wrap:anywhere}.rank-row .pair-group{text-align:left;margin:2px 0}.pair-section{margin:30px 0}.pair-section h2{margin-bottom:4px}
