*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:#111a51;color:#fff;font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
body{overflow-x:hidden}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:0;color:inherit}
#viewport{width:100%;overflow:hidden;background:#10194f;min-height:100vh}
.stage{position:relative;width:768px;height:1024px;transform-origin:top left;overflow:hidden;background:#18286f}
.stage{background-repeat:no-repeat;background-size:768px 1024px;background-position:0 0}.stage-home{background-image:url('../img/bg-home.png')}.stage-score{background-image:url('../img/bg-score.png')}.stage-overview{background-image:url('../img/bg-overview.png')}.stage-success{background-image:url('../img/bg-success.png')}.stage>*{position:relative;z-index:1}
.event-name{position:absolute;top:47px;right:31px;font-size:11px;letter-spacing:3px;color:#d2c7ff;white-space:nowrap;text-shadow:0 0 8px rgba(115,85,255,.5)}
.page-title{position:absolute;left:31px;top:42px;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:38px;font-weight:400;line-height:1;color:#fff;text-shadow:0 0 2px rgba(255,255,255,.35)}
.page-title::after{content:"";position:absolute;width:50px;height:1px;right:-22px;bottom:-10px;background:rgba(255,255,255,.65);transform:rotate(-45deg);transform-origin:right center}

/* 首页 */
.home-title{left:44px;top:49px;font-size:38px}
.home-subtitle{position:absolute;left:42px;top:110px;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:20px;color:#d8c6ff;letter-spacing:1px}
.home-subtitle::before{content:"";display:inline-block;margin-right:8px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:8px solid #b59cff;vertical-align:1px}
.candidate-grid{position:absolute;left:45px;top:189px;width:691px;height:641px}
.candidate-card{position:absolute;width:331px;height:105px;color:#fff;overflow:visible}.candidate-card:nth-child(1){left:0;top:0}.candidate-card:nth-child(2){left:360px;top:0}.candidate-card:nth-child(3){left:0;top:134px}.candidate-card:nth-child(4){left:360px;top:134px}.candidate-card:nth-child(5){left:0;top:268px}.candidate-card:nth-child(6){left:360px;top:268px}.candidate-card:nth-child(7){left:0;top:402px}.candidate-card:nth-child(8){left:360px;top:402px}.candidate-card:nth-child(9){left:0;top:536px}.candidate-card:nth-child(10){left:360px;top:536px}
.candidate-card::before{content:"";position:absolute;left:67px;top:15px;width:188px;height:44px;background:linear-gradient(100deg,rgba(31,93,255,.16),rgba(31,93,255,0));filter:blur(.2px);transform:skewX(-22deg);pointer-events:none}
.candidate-card::after{content:"";position:absolute;left:71px;right:0;bottom:1px;height:1px;background:linear-gradient(90deg,rgba(79,85,255,0),#6e72ff 38%,#565de0 100%);box-shadow:0 0 1px rgba(139,137,255,.7)}
.card-corner{position:absolute;right:0;bottom:0;width:18px;height:18px;border-right:1px solid #7b79ff;border-bottom:1px solid #7b79ff}
.card-corner::after{content:"";position:absolute;width:21px;height:1px;background:#7b79ff;right:-3px;bottom:6px;transform:rotate(-45deg)}
.portrait-frame{position:absolute;left:0;top:0;width:70px;height:94px;border:1px solid #5f6cff;border-radius:6px;overflow:hidden;background:linear-gradient(180deg,#172f86,#293f91)}
.portrait-frame img{position:absolute;width:auto;height:98px;max-width:none;left:50%;bottom:-2px;transform:translateX(-50%)}
.candidate-meta{position:absolute;left:82px;top:0;width:245px}
.candidate-no{font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:700;margin-right:8px}
.candidate-name{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:15px;font-weight:600}
.candidate-project{margin-top:8px;font-size:20px;font-weight:700;line-height:1.12;letter-spacing:.2px;text-shadow:0 0 1px rgba(255,255,255,.2)}
.candidate-project.small{font-size:18px;line-height:1.05}
.candidate-slogan{margin-top:6px;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:11px;color:#c8b9f4;white-space:nowrap;overflow:hidden;text-overflow:clip}
.glow-button{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:48px;font-size:31px;font-weight:800;color:#073cd0;letter-spacing:1px;background:linear-gradient(100deg,#9ff8ff 0%,#f9ffff 36%,#fff 59%,#efd5ff 100%);border:2px solid rgba(255,255,255,.95);box-shadow:0 0 0 8px rgba(88,130,255,.38),0 0 22px rgba(60,213,255,.95),inset 0 -7px 16px rgba(101,171,255,.22)}
.home-start{left:178px;top:873px;width:414px;height:79px}

/* 评分页 */
.score-title{top:50px}
.score-progress{position:absolute;left:31px;top:101px;font-size:14px;color:#eef1ff}
.score-progress strong{font-size:18px;margin-right:8px}
.score-tabs{position:absolute;left:31px;top:129px;width:706px;height:53px;display:grid;grid-template-columns:repeat(10,1fr);gap:8px}
.score-tab{display:flex;align-items:center;justify-content:center;border-radius:8px;background:#77789a;color:#d5c1f5;font-size:18px}
.score-tab.active{background:linear-gradient(145deg,#803bff,#5b2cff);color:#fff;box-shadow:inset 0 0 12px rgba(255,255,255,.08)}
.score-info-card{position:absolute;left:31px;top:198px;width:706px;height:305px;border-radius:9px;background:linear-gradient(105deg,#07136e 0%,#14239a 55%,#5758df 100%);padding:14px 16px;box-shadow:inset 0 0 0 1px rgba(93,107,255,.25)}
.score-info-card::after{content:"✦";position:absolute;right:4px;bottom:-7px;font-size:39px;color:white;text-shadow:0 0 12px white}
.info-slogan{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:14px;color:#dec5ff;white-space:nowrap}
.info-slogan::before{content:"";display:inline-block;margin-right:9px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:7px solid #b594ff}
.info-project{font-size:29px;font-weight:800;margin-top:23px;border-bottom:1px solid rgba(151,134,255,.45);padding-bottom:4px;width:572px}
.info-desc{width:579px;margin-top:19px;font-size:14px;line-height:1.55;color:#e5d8ff}
.info-change{position:absolute;left:16px;bottom:68px;font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:19px;color:#fff}
.info-change strong{font-size:19px;margin-right:10px;font-weight:400}
.info-change span{font-size:14px;background:rgba(74,62,236,.55);padding:3px 10px;border-radius:10px}
.info-actions{position:absolute;left:16px;bottom:16px;display:flex;gap:18px}
.purple-small{height:35px;min-width:134px;padding:0 24px;border-radius:7px;background:linear-gradient(100deg,#7132ff,#6335ff);font-size:15px;box-shadow:inset 0 0 0 1px rgba(196,167,255,.2)}
.mini-person{position:absolute;right:17px;top:14px;width:69px;height:92px;border:1px solid #686fff;border-radius:6px;background:#293d98;overflow:hidden}
.mini-person img{position:absolute;height:88px;left:50%;bottom:0;transform:translateX(-50%)}
.mini-person .mini-no{position:absolute;left:4px;top:2px;font-size:12px;font-family:Georgia,serif;z-index:2}
.mini-person .mini-name{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-family:"Songti SC","STSong",serif;font-size:16px;color:white;text-shadow:0 1px 3px #182271}
.score-list{position:absolute;left:31px;top:519px;width:706px;display:flex;flex-direction:column;gap:11px}
.score-row{height:82px;border-radius:11px;background:linear-gradient(100deg,#08146f 0%,#2631b4 57%,#6060e9 100%);display:flex;align-items:center;position:relative;padding-left:17px;box-shadow:inset 0 0 0 1px rgba(90,98,226,.3)}
.score-label{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:24px;line-height:1.05}
.score-label small{display:block;font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:11px;color:#d9c7ff;margin-top:7px}
.score-control{position:absolute;right:12px;top:13px;height:57px;display:flex;align-items:center;gap:14px}
.score-minus,.score-plus{width:57px;height:57px;flex:0 0 57px;border-radius:9px;background:rgba(66,75,210,.24);border:1px solid #8f98ff;font-size:37px;font-weight:600;line-height:1;color:#fff}
.score-number{width:139px;min-width:139px;flex:0 0 139px;text-align:center;font-size:42px;font-weight:800;letter-spacing:1px;line-height:1}
.score-number span{font-size:20px;color:#c7b7f7;margin-left:4px;font-weight:500}
.total-score{position:absolute;right:31px;top:897px;font-size:18px;color:#d7ccff}
.total-score strong{font-size:35px;color:white;margin-left:4px;margin-right:3px}
.score-footer{position:absolute;left:31px;top:941px;width:706px;height:59px;display:grid;grid-template-columns:201px 1fr;gap:16px}
.prev-btn,.submit-next{height:59px;border-radius:8px;font-size:22px;font-weight:600}
.prev-btn{background:#747598;color:#d3c0ee}
.submit-next{background:linear-gradient(90deg,#6935ff,#6f31ff);color:#fff}

/* 总览 */
.overview-title{top:50px}
.overview-banner{position:absolute;left:31px;top:115px;width:706px;height:61px;border-radius:11px;background:rgba(80,91,185,.64);display:flex;align-items:center;color:#d8c7ff}
.overview-banner .count{width:127px;text-align:center;font-size:18px;font-weight:800}
.overview-banner .message{flex:1;text-align:left;font-size:18px;font-weight:700}
.overview-banner.incomplete{background:linear-gradient(100deg,#6a33ff,#6c32ff);color:#fff}
.overview-banner.incomplete .message{line-height:1.1}
.overview-banner.incomplete .message small{display:block;font-size:11px;font-weight:400;margin-top:4px}
.table-head{position:absolute;left:51px;top:196px;width:646px;display:grid;grid-template-columns:62px 1fr 120px 105px;font-size:12px;color:#fff}
.table-head span:nth-child(3),.table-head span:nth-child(4){text-align:center}
.overview-list{position:absolute;left:31px;top:220px;width:706px;display:flex;flex-direction:column;gap:5px}
.overview-row{height:61px;border-radius:9px;background:linear-gradient(100deg,rgba(15,28,103,.96) 0%,rgba(48,55,171,.96) 54%,rgba(93,91,232,.96) 100%);display:grid;grid-template-columns:81px 1fr 120px 125px;align-items:center;padding:0 14px 0 17px}
.overview-row.missing{background:linear-gradient(100deg,#6934ff,#7333ff)}
.row-no{font-family:Georgia,"Times New Roman",serif;font-size:28px;font-weight:400;position:relative;line-height:1}
.row-no::after{content:"";position:absolute;width:22px;height:1px;background:#fff;left:8px;bottom:-6px;transform:rotate(-12deg);opacity:.75}
.row-info{overflow:hidden}
.row-name{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:22px;line-height:1}
.row-project{font-size:11px;color:#cdbdf7;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-score{text-align:center;font-size:31px;font-weight:800}
.row-score span{font-size:22px;margin-left:4px}
.row-status{text-align:center;font-size:18px;font-weight:600;white-space:nowrap}
.check-circle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid #fff;border-radius:50%;margin-right:9px;font-size:15px;vertical-align:-2px}
.go-score{font-size:18px}
.overview-submit{left:207px;top:908px;width:354px;height:73px;font-size:25px}

/* 提交成功 */
.success-title{top:50px}
.success-copy{position:absolute;left:0;right:0;top:536px;text-align:center}
.success-copy h1{font-size:34px;margin:0;font-weight:800}
.success-copy p{font-size:18px;line-height:1.55;color:#dcc7ff;margin-top:22px}

/* 弹层 */
.modal-mask{position:absolute;left:0;top:0;width:768px;height:1024px;background:rgba(17,10,8,.79);z-index:20;display:block}
.modal-card{position:relative;margin:81px auto 0;width:706px;border:1px solid #aaa0ff;border-radius:16px;background:#4c4d68;box-shadow:0 0 17px rgba(120,108,255,.75),inset 0 0 30px rgba(49,48,77,.2);padding:23px 25px;color:white}
.modal-title{font-size:34px;font-weight:800;line-height:1;margin:3px 0 4px}
.modal-subtitle{font-size:17px;color:#ddc6ff;margin-bottom:12px}
.screenshot-box{height:572px;background:#6a6b8c;border-radius:7px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.screenshot-box img{width:646px;height:auto;display:block}
.gallery-nav{height:66px;margin-top:14px;display:grid;grid-template-columns:216px 1fr 216px;gap:16px;align-items:center;text-align:center}
.gallery-nav button{height:66px;border-radius:7px;background:#6f708f;font-size:22px}
.gallery-nav .counter{font-size:17px;color:#e6d2ff}
.close-score{width:100%;height:66px;border-radius:7px;background:linear-gradient(90deg,#6631ff,#6b31ff);font-size:22px;font-weight:600;margin-top:16px}
.video-card{padding-bottom:31px}
.video-card .video-frame{width:654px;height:368px;border-radius:7px;overflow:hidden;background:#fff}
.video-card .video-frame img{width:100%;height:100%;object-fit:cover}
.video-controls{display:flex;align-items:center;height:75px;padding:0 41px;gap:17px;color:#d6baff}
.play-triangle{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:19px solid #c6a2ff;filter:drop-shadow(0 0 1px white)}
.track{position:relative;flex:1;height:7px;border-radius:6px;background:#737393}
.track::before{content:"";position:absolute;left:-3px;top:-7px;width:21px;height:21px;border-radius:50%;background:#c59cff}
.video-time{font-size:18px;white-space:nowrap}
.volume{font-size:25px}
.video-hint{text-align:center;font-size:16px;margin:-3px 0 25px}

.confirm-modal{margin:370px auto 0;width:576px;height:286px;padding:0;border-radius:18px;background:linear-gradient(155deg,#4b4c67 0%,#42445e 45%,#5a4e68 100%);overflow:hidden;display:flex;flex-direction:column;align-items:center}
.confirm-modal::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(67,71,124,.25),transparent 45%),radial-gradient(ellipse at 70% 20%,rgba(123,72,255,.18),transparent 55%)}
.confirm-modal h2{font-size:27px;margin:48px 0 10px;z-index:1}
.confirm-modal p{text-align:center;font-size:17px;line-height:1.45;color:#d8c5f9;margin:0;z-index:1}
.confirm-actions{position:absolute;left:27px;right:27px;bottom:30px;display:flex;gap:25px;z-index:1}.confirm-actions .confirm-cancel{width:200px;flex:0 0 200px}.confirm-actions .confirm-ok{flex:1}
.confirm-actions button{height:61px;border-radius:6px;font-size:21px;font-weight:600}
.confirm-cancel{background:#cdd3e7;color:#505172}
.confirm-ok{background:linear-gradient(90deg,#6333ff,#6c31ff);color:#fff}

/* 小屏按宽度整体缩放；iPad 768px 下就是 1:1 */
@media (max-width:767px){body{background:#18276e}}
