:root{--bg:#f5f7fb;--fg:#1b2742;--muted:#6e7a94;--line:#e4e9f2;--blue:#245bd7;--pale:#eef3ff;--green:#158165;--danger:#ca4050;--sh:#182b500e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.6 'PingFang SC','Microsoft YaHei',system-ui,sans-serif;background:var(--bg);color:var(--fg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0}a{color:var(--blue)}.shell{max-width:1250px;margin:auto;padding:28px 24px 80px}.top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.wordmark{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--fg)}.logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#173b80,#497be1);display:grid;place-items:center;color:white;font-size:23px}.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,4vw,35px);line-height:1.24;letter-spacing:-.02em;margin-bottom:10px}h2{font-size:20px;margin:0 0 14px}h3{font-size:16px;margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:12px}.hero{background:linear-gradient(120deg,#12335e,#1f50a0 65%,#547ee2);border-radius:22px;color:white;padding:36px;position:relative;overflow:hidden;margin-bottom:24px}.hero:after{content:'◉';font-family:serif;position:absolute;right:-20px;top:-85px;font-size:320px;color:#ffffff0c;pointer-events:none}.hero p{max-width:600px;color:#dce8ff;margin-bottom:0}.hero .eyebrow{color:#b7ceff}.panel{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 30px var(--sh);padding:22px;margin-bottom:18px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.toolbar>*{min-width:0}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.btn{background:var(--blue);color:white;padding:10px 16px;border-radius:10px;border:1px solid var(--blue);font-weight:650;display:inline-flex;align-items:center;gap:6px;justify-content:center;white-space:nowrap;transition:.15s}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn.soft{background:var(--pale);border-color:#d9e3fb;color:#2452a9}.btn.plain{background:white;border-color:var(--line);color:var(--fg)}.btn.danger{background:#fff1f1;border-color:#f3d4d4;color:var(--danger)}.btn.sm{font-size:12px;padding:6px 10px}.btn[disabled]{opacity:.48;pointer-events:none}.input{border:1px solid #d6dfeb;background:#fff;padding:10px 12px;border-radius:10px;min-width:0;width:100%;outline:0;color:var(--fg)}.input:focus{border-color:#7198eb;box-shadow:0 0 0 3px #eaf0ff}textarea.input{min-height:120px;resize:vertical}.field label{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px}.field{margin-bottom:14px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:18px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:15px}.stat b{font-size:25px;display:block;line-height:1.3;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--muted)}.tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tab{border:1px solid var(--line);background:white;border-radius:10px;padding:10px 16px;color:#58677d;font-weight:600}.tab.on{background:var(--blue);border-color:var(--blue);color:white}.hidden{display:none!important}.photo-card{background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 5px 22px var(--sh)}.photo-card .photo{height:230px;display:grid;place-items:center;background:#ecf0f7;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.photo-body{padding:16px}.photo-title{font-size:16px;font-weight:800;margin:0}.review{border-top:1px solid #edf0f6;margin-top:12px;padding-top:12px}.review b{font-size:12px;color:#285caf}.review p{white-space:pre-wrap;margin:6px 0 0;color:#48556a;font-size:13px}.pill{display:inline-flex;align-items:center;border:1px solid #d7e4fc;background:#eef5ff;border-radius:50px;padding:3px 9px;color:#3660a6;font-size:12px}.pill.ok{background:#e8f8ef;color:#14815b;border-color:#bee7d1}.pill.draft{background:#fff6e5;color:#9f6417;border-color:#f3ddb6}.pill.off{background:#f8f0f0;color:#b14f5c;border-color:#eed7d7}.empty{text-align:center;color:var(--muted);padding:45px 16px}.tablewrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:13px;min-width:650px}.table th,.table td{text-align:left;padding:12px 11px;border-bottom:1px solid #edf0f5;vertical-align:middle}.table th{background:#f8faff;color:#71809c;font-size:12px;white-space:nowrap}.thumb{width:64px;height:52px;object-fit:cover;border-radius:8px;background:#e5ecf3;cursor:zoom-in}.rowbtn{display:flex;gap:5px;flex-wrap:wrap}.drop{border:2px dashed #adc5ea;background:#f8fbff;border-radius:16px;padding:26px;text-align:center;transition:.15s}.drop.over{background:#eaf2ff;border-color:var(--blue)}.drop .big{font-size:38px;line-height:1.2}.note{border-left:3px solid #b1c9fa;padding:10px 14px;background:#f6f9ff;font-size:13px;color:#64728d}.alert{color:var(--danger);background:#fff3f4;padding:9px 11px;border-radius:8px;margin:10px 0}.codebox{font:12px/1.5 ui-monospace,monospace;color:#344f7c;background:#f5f8ff;padding:12px;border-radius:9px;overflow-wrap:anywhere}.qr{border:1px solid var(--line);border-radius:12px;width:230px;max-width:100%;padding:8px}.qr-section{display:grid;grid-template-columns:250px 1fr;gap:20px;align-items:start}.loginwrap{max-width:460px;margin:10vh auto;padding:20px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#1e3458;color:#fff;border-radius:11px;padding:12px 20px;z-index:200;box-shadow:0 14px 38px #18273d40;max-width:90vw}.loading{opacity:.6}.modal-back{position:fixed;inset:0;background:#0a1a36bb;z-index:100;display:grid;place-items:center;padding:18px}.modal{background:white;border-radius:20px;padding:24px;max-width:600px;width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 90px #0f254a40}.close{float:right;background:#eef2f9;color:#475976;border-radius:9px;font-size:24px;line-height:1;padding:7px 12px}.viewimage{max-width:88vw;max-height:80vh;object-fit:contain;display:block;margin:auto;border-radius:8px}.pages{display:flex;gap:6px;justify-content:center;padding:20px}.footer{text-align:center;color:#a0acc0;font-size:12px;margin-top:30px}@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.qr-section{grid-template-columns:1fr}}@media(max-width:560px){.shell{padding:17px 14px 55px}.top{align-items:flex-start}.hero{padding:26px 22px}.panel{padding:16px}.grid,.form-row{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card .photo{height:255px}.toolbar{align-items:stretch}.toolbar .input{width:100%}.qr{width:200px}.loginwrap{margin:6vh auto}}

/* V1.3: 温暖的未来感 · 适配社区摄影活动与中老年参与者 */
:root{--bg:#f0f5f5;--fg:#183444;--muted:#708392;--line:#e0eae9;--blue:#166c86;--pale:#ecf8f7;--sh:#21475112}
body{font-size:15px;background:linear-gradient(160deg,#f3f9f8 0%,#f7f9fb 43%,#fff9f2 100%);min-height:100vh}
.ambient{position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 6% 10%,#bceee94f,transparent 26%),radial-gradient(circle at 90% 7%,#ffe1ab53,transparent 23%),radial-gradient(circle at 35% 100%,#b9dded40,transparent 28%)}
.shell{max-width:1320px;padding-top:30px}
.top{margin-bottom:26px;min-height:52px}
.wordmark{letter-spacing:.01em}.wordmark b{font-size:17px}.logo{border-radius:16px;width:48px;height:48px;background:linear-gradient(135deg,#126d80,#5cbdaf 52%,#deb874);box-shadow:0 8px 26px #378e9550;font-size:25px}
.eyebrow{letter-spacing:.19em;font-weight:750}.eyebrow.light{color:#ffe7b3}.section-kicker{display:block;letter-spacing:.20em;font-size:11px;font-weight:800;color:#a77a45;margin-bottom:9px}
.hero{isolation:isolate;min-height:245px;display:flex;align-items:center;position:relative;border:1px solid #c8e4e5;border-radius:28px;padding:50px 6%;box-shadow:0 18px 52px #12405018;background:radial-gradient(ellipse at 76% 16%,#bba9773f 0%,transparent 42%),radial-gradient(ellipse at 16% 96%,#379b9949 0%,transparent 49%),linear-gradient(115deg,#103247 2%,#1c5971 54%,#497e82 100%)}
.hero:before{content:'';position:absolute;z-index:-1;inset:-10%;background:radial-gradient(circle at 82% 28%,#f5d8a733,transparent 21%),radial-gradient(circle at 63% 78%,#80e3d72b,transparent 19%);animation:lightFloat 14s ease-in-out infinite alternate;pointer-events:none}
.hero:after{content:'✧';color:#ffffff0a;top:auto;right:5%;bottom:-155px;font-size:410px;pointer-events:none;line-height:1}
.hero-inner{position:relative;z-index:2;max-width:800px}.hero h1{font-size:clamp(30px,4.4vw,48px);font-weight:850;letter-spacing:.025em;line-height:1.26;text-shadow:0 4px 20px #09233130}.hero p{font-size:17px;color:#e5f3f2;letter-spacing:.03em;max-width:700px}
.hero-gallery{min-height:310px}.hero-gallery h1{font-size:clamp(35px,5vw,55px);margin:10px 0 14px}.hero-gallery .hero-mark{display:inline-block;margin-top:18px;color:#efcc88;letter-spacing:1.2em}
.hero-compact{min-height:185px;padding:35px 5%}.hero-compact h1{font-size:clamp(28px,4vw,40px)}.hero-compact p{font-size:15px}
.hero-particles{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
@keyframes lightFloat{to{transform:translate(-3%,2%) scale(1.1)}}
.panel{border:1px solid #dee9e7;border-radius:22px;background:#fffffff0;box-shadow:0 10px 34px #1239430c;padding:25px}
.gallery-panel{padding:28px}.gallery-panel .toolbar h2{font-size:27px}
.btn{background:linear-gradient(110deg,#126780,#218b94);border-color:#2a8490;border-radius:12px;padding:11px 17px;box-shadow:0 4px 12px #1b687c16;transition:transform .16s ease,box-shadow .18s ease;min-height:43px}
.btn:hover{filter:none;transform:translateY(-2px);box-shadow:0 9px 20px #196c8730}.btn.soft{background:#eef9f7;border-color:#cfe7df;color:#176e76}.btn.plain{background:white;color:#356073;border-color:#d7e6e6}.btn.danger{background:#fff4f1;border-color:#f3dacf;color:#ae564b}
.input{border-radius:12px;border-color:#d8e6e5;min-height:43px}.input:focus{border-color:#62a9a9;box-shadow:0 0 0 3px #c5e7e75a}.input.search{width:100%;max-width:315px}
.photo-card{border-radius:21px;background:#fff;border-color:#e3eae9;box-shadow:0 10px 28px #164a5610;transition:transform .22s ease,box-shadow .22s ease}.photo-card:hover{transform:translateY(-3px);box-shadow:0 15px 33px #164a5625}.photo-card .photo{height:245px;background:linear-gradient(140deg,#e1edeb,#f7eddc)}.photo img{transition:transform .45s ease}.photo-card:hover .photo img{transform:scale(1.025)}.photo-body{padding:19px}.photo-title{font-size:18px}.review b{color:#267c89}.review p{font-size:14px;line-height:1.7;color:#53626b}
.stats{gap:14px}.stat{background:linear-gradient(135deg,#fff,#f3faf9);border-color:#dfedeb;border-radius:17px;padding:20px;box-shadow:0 8px 22px #1c5e7210}.stat b{font-size:30px;color:#16687f}.stat span{font-size:13px}.tabs{gap:10px}.tab{padding:11px 17px;font-size:14px;border-radius:13px;border-color:#dce8e7}.tab.on{background:#1e687c;border-color:#1e687c}
.pill{border-color:#cfdfdf;background:#edf7f5;color:#27778a;font-size:12px;padding:4px 11px}.pill-gold{background:#fff6e5;border:1px solid #f4dfb8;color:#976e30}
.drop{background:linear-gradient(145deg,#f5fbfa,#fffaf0);border-color:#b7d5d6;border-radius:18px;padding:36px}.drop .big{color:#bd9959;font-size:44px}.drop h3{font-size:18px}
.loginwrap{margin:7vh auto 11vh;max-width:480px;padding:36px}.loginwrap h1{font-size:32px}.login-decoration{float:right;font-size:50px;color:#d5ad63}.field label{font-size:13px}.field{margin-bottom:17px}
.table th{background:#eef6f6;color:#516d73}.table td{border-color:#edf2f2}
.eventbar{border:1px solid #d9e6e2;border-radius:20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;background:linear-gradient(115deg,#ffffff,#f5faf7);padding:19px 23px;margin-bottom:18px;box-shadow:0 7px 22px #14506512}.eventbar h2{margin:0;font-size:22px;color:#17566b}.event-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.event-controls select{min-width:220px;max-width:350px}.switch-label{font-weight:650;color:#225468}
.footer{margin-top:35px;color:#83999a;letter-spacing:.04em}.qr{background:white;border-color:#e2e5e3;border-radius:20px;padding:14px;box-shadow:0 9px 25px #2a576017}
@media(max-width:850px){.event-controls{width:100%}.event-controls select{flex:1;min-width:175px}}
@media(max-width:560px){body{font-size:15px}.shell{padding:18px 14px 54px}.top{align-items:center}.wordmark b{font-size:14px}.logo{width:41px;height:41px}.hero{padding:29px 24px;min-height:210px;border-radius:23px}.hero-gallery{min-height:275px}.hero-gallery h1{font-size:32px}.hero p{font-size:14px}.panel,.gallery-panel{padding:17px;border-radius:18px}.grid{gap:14px}.photo-card .photo{height:245px}.eventbar{padding:17px}.eventbar h2{font-size:19px}.event-controls select{width:100%;max-width:none}.event-controls .btn{flex:1}.loginwrap{margin:6vh auto;padding:23px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat b{font-size:26px}.tabs{flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;padding-bottom:5px}.tab{flex:0 0 auto}.qr-section{grid-template-columns:1fr}.qr{width:220px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* V1.4 浮动影像：仅使用当前活动中已公开的作品，动画只在展厅四周播放 */
.hero-gallery{min-height:330px;overflow:hidden}
.floating-gallery{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;isolation:isolate}
.float-photo{position:absolute;width:96px;height:70px;padding:4px 4px 14px;border-radius:5px;background:#fffbf0ec;box-shadow:0 9px 24px #051d3473,0 0 15px #f3d9ab45;border:1px solid #ffffffbd;transform:rotate(var(--rot,0deg));opacity:.75;animation:float-photo-drift var(--dur,14s) ease-in-out var(--delay,0s) infinite alternate;will-change:transform;contain:paint}
.float-photo img{width:100%;height:100%;object-fit:cover;border-radius:2px;display:block}
.float-photo:nth-child(1){left:2%;top:4%}.float-photo:nth-child(2){left:58%;top:2%}.float-photo:nth-child(3){right:5%;top:6%}.float-photo:nth-child(4){right:2%;top:56%}.float-photo:nth-child(5){left:60%;bottom:1%}.float-photo:nth-child(6){left:1%;bottom:0%}.float-photo:nth-child(7){right:25%;top:13%}.float-photo:nth-child(8){right:24%;bottom:3%}.float-photo:nth-child(9){right:42%;top:46%}.float-photo:nth-child(10){right:10%;bottom:8%}
.hero-gallery .hero-inner{position:relative;z-index:2;padding-right:90px}
@keyframes float-photo-drift{0%{transform:translate3d(0,0,0) rotate(var(--rot,0deg)) scale(.97)}45%{opacity:.92}100%{transform:translate3d(var(--dx,14px),var(--dy,-18px),0) rotate(var(--rot2,7deg)) scale(1.045)}}
@media(max-width:900px){.float-photo{width:68px;height:54px;opacity:.55}.float-photo:nth-child(n+7){display:none}.hero-gallery .hero-inner{padding-right:34px}}
@media(max-width:650px){.float-photo{display:none}.hero-gallery .hero-inner{padding-right:0}.hero-gallery{min-height:250px}}
@media(prefers-reduced-motion:reduce){.float-photo{animation:none!important;opacity:.55}}

/* V1.9.4：上传失败使用明确的模态弹窗，而不是仅显示短暂提示 */
.upload-alert-back{z-index:500}.upload-alert{padding:8px 2px 2px}.upload-alert-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#fff2e8;border:1px solid #f5d0ad;color:#b45309;font-size:28px;font-weight:800;margin:0 0 14px}.upload-alert h2{margin:0 48px 10px 0;color:#17384b}.upload-alert-message{margin:0;color:#4c6072;white-space:pre-wrap;overflow-wrap:anywhere}.upload-alert-list{margin:14px 0 4px;padding:12px 12px 12px 30px;border:1px solid #e5edf3;border-radius:12px;background:#f7fafc;color:#45576a;font-size:13px;line-height:1.65;max-height:34vh;overflow:auto;overflow-wrap:anywhere}.upload-alert-list li+li{margin-top:5px}.upload-alert-actions{display:flex;justify-content:flex-end;margin-top:20px}

/* V1.9.5 - configuration of activity upload policy */
.upload-policy-settings{border:1px solid #dbe7e6;border-radius:18px;padding:20px;margin:18px 0 22px;background:linear-gradient(135deg,#f7fbfa,#fffefa);min-width:0}
.upload-policy-settings legend{padding:0 10px;font-weight:750;color:#183e4d}
.policy-format-options{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.policy-format-options label{display:inline-flex;gap:8px;align-items:center;border:1px solid #d8e4e4;border-radius:12px;padding:12px 16px;background:#fff;cursor:pointer;color:#244452}
.policy-format-options input{accent-color:#148e98;width:18px;height:18px}
.upload-policy-preview{background:#eaf6f4;border-radius:12px;padding:14px;color:#185769;font-weight:650;overflow-wrap:anywhere}
@media(max-width:620px){.upload-policy-settings{padding:16px}.policy-format-options label{flex:1 1 140px}}

/* 智汇栈光影记忆 V1.5 · 温暖科技摄影展 / 仅静态光影装饰，不请求参赛照片 */
:root{--ink:#143b51;--teal:#0a7283;--gold:#edc98c;--cream:#fff4e3}
body.photo-home{background:radial-gradient(ellipse 760px 450px at 0% 0%,#e2f8f3 0%,transparent 74%),radial-gradient(ellipse 570px 360px at 100% 0%,#fff1db 0%,transparent 79%),linear-gradient(180deg,#f6fafa,#fbfbf9 65%,#fffdfa);color:var(--ink)}
.photo-home .shell{max-width:1440px;padding:24px 34px 60px}
.photo-home .public-top{margin-bottom:23px;min-height:65px}
.photo-home .wordmark{gap:14px;align-items:center}
.official-logo{width:59px;height:59px;border-radius:15px;background:#fff;border:1px solid #d7eeee;box-shadow:0 7px 23px #03507023;display:grid;place-items:center;overflow:hidden;flex-shrink:0}
.official-logo img{width:51px;height:51px;object-fit:contain;display:block}
.photo-home .wordmark b{font-weight:850;font-size:21px;letter-spacing:.02em;color:#123a4d;line-height:1.27;display:block}
.brand-en{display:block;letter-spacing:.18em;font-size:11px;font-weight:800;color:#748d9b;margin-top:3px}
.exhibit-pill{display:flex;gap:9px;align-items:center;font-weight:750;font-size:13px;color:#9b753f;background:#fff9ed;border:1px solid #efddb9;padding:10px 17px;border-radius:999px;box-shadow:0 8px 22px #cfad7030}
.exhibit-dot{height:7px;width:7px;border-radius:50%;background:#d2a65c;box-shadow:0 0 0 4px #f6dfb775}
.right-arr{font-size:17px;margin-left:4px}
/* Hero */
.photo-home .aurora-hero{position:relative;isolation:isolate;min-height:454px;margin:0 0 -34px;padding:55px 6.2% 96px;border:none;border-radius:31px;overflow:hidden;box-shadow:0 26px 60px #0a4a5940;background:radial-gradient(circle at 82% 32%,#2c818877,transparent 38%),linear-gradient(112deg,#062639 0%,#0d4056 51%,#136578 100%);align-items:center}
.photo-home .aurora-hero:before{position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 72% 45%,#1598a245,transparent 45%),radial-gradient(circle at 29% 99%,#0ea3bc28,transparent 33%);animation:hero-glow 9s ease-in-out infinite alternate;content:''}
.photo-home .aurora-hero:after{display:none}
@keyframes hero-glow{to{filter:hue-rotate(9deg);transform:translateX(2%) scale(1.02)}}
.aurora-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:1;mix-blend-mode:screen}
.aurora-css{position:absolute;inset:-25%;z-index:0;pointer-events:none;overflow:hidden;filter:blur(42px);opacity:.55}
.aurora-blob{position:absolute;display:block;will-change:transform}
.aurora-blob.a{width:68%;height:45%;left:28%;top:31%;border-radius:60% 30% 60% 40%;background:radial-gradient(ellipse,#1acdc66c 4%,#109ee059 44%,transparent 80%);transform:rotate(-17deg);animation:blob-a 17s ease-in-out infinite alternate}
.aurora-blob.b{width:46%;height:48%;right:-4%;top:8%;border-radius:50%;background:radial-gradient(ellipse,#f1c47b7c,transparent 69%);animation:blob-b 14s ease-in-out infinite alternate}
@keyframes blob-a{to{transform:translate(8%,8%) rotate(-4deg) scale(1.16)}}@keyframes blob-b{to{transform:translate(-15%,12%) scale(.89)}}
.hero-rays{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(112deg,transparent 15%,#f2d49d0c 45%,transparent 61%),radial-gradient(ellipse at 87% 84%,#5fe5ff12,transparent 30%)}
.hero-bottom-shine{position:absolute;left:12%;right:12%;bottom:4px;height:2px;z-index:2;background:linear-gradient(90deg,transparent,#8de8dfbb 40%,#f3dc9ad7 72%,transparent);filter:blur(3px)}
.photo-home .hero-inner{position:relative;z-index:3;max-width:620px;padding:0!important}
.photo-home .aurora-hero .hero-kicker{display:inline-flex;align-items:center;gap:8px;color:#f7d89f;font-size:13px;font-weight:750;letter-spacing:.24em}
.photo-home .aurora-hero h1{margin:22px 0 17px;font-size:clamp(40px,4.8vw,69px);line-height:1.28;color:#fffef9;letter-spacing:.024em;font-weight:900;text-shadow:0 10px 38px #061c2c60}
.gold-text{background:linear-gradient(100deg,#fff8e6,#ffe4ac 60%,#fff0cd);background-clip:text;-webkit-background-clip:text;color:transparent}
.photo-home .aurora-hero p{font-size:18px;font-weight:460;color:#e8f5f5;letter-spacing:.04em;margin:0 0 34px}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.hero-cta{display:inline-flex;align-items:center;gap:12px;text-decoration:none;border-radius:16px;padding:14px 24px;font-weight:800;min-height:50px}
.hero-primary{color:#543e20;background:linear-gradient(110deg,#fff0cf,#f5c678);box-shadow:0 8px 28px #f8ce8050}
.hero-primary:hover{transform:translateY(-2px);filter:brightness(1.035)}
.hero-decor-small{color:#b9d7db;font-size:10px;font-weight:650;letter-spacing:.2em;opacity:.73}
.hero-side-note{position:absolute;right:22px;top:130px;writing-mode:vertical-rl;letter-spacing:.3em;color:#f3dfb5a8;font-size:12px;z-index:2}
/* Non-private locally bundled floating decorative photos */
.photo-home .floating-gallery{z-index:2;inset:0;overflow:hidden;pointer-events:none}
.photo-home .float-photo{width:145px;height:113px;padding:5px 5px 16px;border-radius:9px;background:#fefbf2f5;opacity:.91;box-shadow:0 20px 55px #06223585,0 0 24px #fef1dc36;animation-name:float-photo-drift,shimmer-photo;animation-duration:var(--dur,17s),9s;animation-iteration-count:infinite,infinite;animation-direction:alternate,alternate}
.photo-home .float-photo img{width:100%;height:100%;border-radius:5px;object-fit:cover;filter:saturate(.97)}
.photo-home .float-photo.card-a{left:auto;right:20%;top:8%;--rot:-7deg;--rot2:1deg;width:170px;height:139px}
.photo-home .float-photo.card-b{left:auto;right:3%;top:15%;--rot:12deg;--rot2:2deg;width:129px;height:104px}
.photo-home .float-photo.card-c{left:auto;right:31%;top:53%;--rot:6deg;--rot2:-3deg;width:133px;height:109px}
.photo-home .float-photo.card-d{left:auto;right:8%;top:64%;--rot:-9deg;--rot2:4deg;width:132px;height:108px}
.photo-home .float-photo.card-e{left:auto;right:39%;top:2%;--rot:-14deg;--rot2:-2deg;width:82px;height:70px;opacity:.55;filter:blur(1.1px)}
.photo-home .float-photo.card-f{left:auto;right:1%;top:40%;--rot:8deg;--rot2:0deg;width:74px;height:67px;opacity:.5;filter:blur(1.3px)}
@keyframes shimmer-photo{from{box-shadow:0 20px 50px #06223585,0 0 10px #fff4c826}to{box-shadow:0 24px 60px #06223582,0 0 32px #f9ddaa5e}}
/* Search-first glass gallery */
.photo-home .gallery-exhibit{position:relative;z-index:5;border-radius:30px;background:#fffffff7;border:1px solid #e4eeeb;padding:33px 37px 28px;box-shadow:0 18px 45px #173c5216,0 -3px 30px #eef9f52a}
.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}
.photo-home .gallery-exhibit .section-kicker{font-size:11px;letter-spacing:.16em;color:#b1844b}
.photo-home .gallery-exhibit h2{font-size:31px;font-weight:860;margin:6px 0 5px;color:#173e54}
.h2-star{font-size:17px;color:#d4ab69;vertical-align:top;margin-left:10px}
.gallery-slogan{font-size:14px;color:#77909a;margin:0;letter-spacing:.02em}
.gallery-tag{font-size:12px;font-weight:700;color:#b18b57;border:1px solid #f1e5d2;padding:9px 14px;border-radius:20px;background:#fff9ed}
.search-form{display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:12px;margin:25px 0 13px}
.search-bar{position:relative;display:flex;align-items:center;border:1px solid #dce9e8;border-radius:17px;background:#f8fbfa;box-shadow:0 3px 10px #0b647507;min-height:59px;padding:0 18px;gap:12px;transition:box-shadow .18s,border-color .18s}
.search-bar:focus-within{border-color:#65bdb6;box-shadow:0 0 0 4px #bdeee55e}
.search-ico{font-size:27px;line-height:1;color:#7a9a9f;transform:rotate(-20deg)}
.search-bar input{flex:1;border:0!important;outline:0!important;background:transparent!important;color:#21495a;font-size:16px;width:100%;min-width:0;box-shadow:none!important}
.search-bar input::placeholder{color:#94a7af}
.search-clear{color:#90a6ab;border-radius:50%;font-size:22px;width:26px;height:26px;background:transparent}.search-clear[hidden]{display:none}
.search-btn{border:0;border-radius:17px;background:linear-gradient(112deg,#0f7388,#23a7a2);color:white;font-size:16px;font-weight:800;box-shadow:0 7px 17px #0c7d8240;transition:transform .18s,filter .18s;min-height:57px}
.search-btn:hover{transform:translateY(-2px);filter:brightness(1.07)}.search-btn:disabled{opacity:.6;cursor:wait}
.search-btn span{margin-left:8px}
.topic-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 24px;font-size:13px;color:#91a3a8}
.topic{background:#f2f7f5;border:1px solid #e9efed;color:#607e86;border-radius:999px;padding:6px 14px;font-size:13px;transition:background .16s}
.topic:hover{background:#e0f4ee}.topic-hint{margin-left:auto;font-size:12px;color:#8b9da2}
.result-top{border-top:1px solid #e9f0ef;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:20px 0 13px;font-size:14px;font-weight:760;color:#2b5965}.load-note{font-size:12px;color:#8da3a6;font-weight:500}
.photo-home .results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;min-height:230px}
.search-welcome{grid-column:1/-1;background:radial-gradient(circle at 50% 45%,#f8ecd15c,transparent 33%),linear-gradient(120deg,#fbfefe,#fbfdfc);border:1px dashed #d9e8e7;border-radius:24px;min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:32px 16px}
.search-emblem{font-family:serif;font-size:32px;color:#dab57a;line-height:1.25;display:inline-grid;place-items:center;width:56px;height:56px;border:1px solid #ead8b8;border-radius:50%;background:#fff9ed;box-shadow:0 0 25px #e7ca9740;margin-bottom:14px}
.search-welcome h3{font-size:18px;color:#315767;font-weight:770;margin:2px 0 3px}.search-welcome p{font-size:14px;color:#8a9ea4;margin:0}
.result-card{border-radius:17px;overflow:hidden;padding:0!important;box-shadow:0 10px 24px #143d5415!important;transition:transform .18s,box-shadow .18s;background:white}
.result-card:hover{transform:translateY(-4px);box-shadow:0 16px 37px #17384923!important}
.photo-card-link{display:flex;flex-direction:column;text-align:left;width:100%;padding:0;background:white;color:inherit}
.photo-home .photo-card-link .photo{display:block;overflow:hidden;width:100%;height:188px;background:#e6f2ef}
.photo-card-link .photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo-card-caption{padding:13px 14px 16px;display:flex;flex-direction:column;gap:3px}.photo-card-caption b{font-size:15px;color:#254455;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card-caption small{font-size:12px;color:#889ca5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.detail-content h3{font-size:19px;margin:14px 0 4px}.detail-content>.muted{margin:0 0 10px}.detail-content .review{font-size:14px;background:#f5faf8;padding:12px 14px;border-radius:10px}.detail-loading{text-align:center;padding:30px 0;color:#496877}
.photo-home .pages{gap:15px;align-items:center}.page-link{border:1px solid #dbe9e7;background:#f6fbf9;color:#1b7584;border-radius:11px;padding:9px 16px;font-size:13px}.page-link:disabled{opacity:.32;cursor:not-allowed}.page-index{font-size:13px;color:#718b96}
.public-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px 10px 0;color:#789399;font-size:12px}.public-footer span{display:inline-flex;align-items:center;gap:8px;font-weight:800}.public-footer img{width:22px;height:22px;object-fit:contain}.public-footer small{font-size:12px}
/* Shared logo on admin & jury pages; never replace original files */
.brand-logo-img{width:48px;height:48px;object-fit:contain;background:white;border:1px solid #cfe2e4;border-radius:14px;padding:4px;box-shadow:0 6px 18px #2b719a21}
/* Mobiles and reduced motion */
@media(max-width:1050px){.photo-home .float-photo.card-e,.photo-home .float-photo.card-f{display:none}.photo-home .float-photo.card-c{right:22%;top:64%}.photo-home .hero-inner{max-width:500px}.photo-home .aurora-hero h1{font-size:49px}.photo-home .photo-card-link .photo{height:170px}}
@media(max-width:810px){.photo-home .shell{padding:20px 18px 50px}.photo-home .float-photo.card-c,.photo-home .float-photo.card-d{display:none}.photo-home .float-photo.card-a{right:12%;top:10%;opacity:.53}.photo-home .float-photo.card-b{right:2%;top:49%;opacity:.45}.photo-home .aurora-hero h1{font-size:clamp(37px,5.5vw,49px)}.photo-home .results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.photo-home .shell{padding:17px 13px 43px}.photo-home .public-top{min-height:53px;margin-bottom:17px}.official-logo{width:46px;height:46px;border-radius:12px}.official-logo img{width:41px;height:41px}.photo-home .wordmark b{font-size:15px}.brand-en{font-size:9px;letter-spacing:.14em}.exhibit-pill{padding:7px 10px;font-size:11px}.right-arr{display:none}.photo-home .aurora-hero{min-height:343px;padding:38px 25px 61px;border-radius:23px;margin-bottom:-25px}.photo-home .aurora-hero h1{font-size:clamp(32px,8.9vw,48px);margin:16px 0}.photo-home .aurora-hero p{font-size:14px;max-width:280px;margin-bottom:27px}.photo-home .hero-kicker{font-size:10px!important;letter-spacing:.12em!important}.hero-decor-small,.hero-side-note{display:none}.hero-cta{min-height:43px;padding:11px 16px;font-size:14px}.photo-home .gallery-exhibit{padding:23px 17px 22px;border-radius:22px}.gallery-heading{margin-bottom:8px}.gallery-tag{display:none}.photo-home .gallery-exhibit h2{font-size:26px}.gallery-slogan{font-size:13px}.search-form{grid-template-columns:1fr;gap:10px;margin-top:20px}.search-bar{min-height:53px}.search-btn{min-height:49px}.topic-hint{display:none}.photo-home .float-photo{display:none!important}.photo-home .results-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-home .photo-card-link .photo{height:136px}.photo-card-caption{padding:10px}.photo-card-caption b{font-size:13px}.public-footer{justify-content:center;flex-wrap:wrap;padding-top:18px}.public-footer small{display:none}.result-top{font-size:12px}.load-note{display:none}}
@media(max-width:380px){.photo-home .results-grid{grid-template-columns:1fr}.photo-home .photo-card-link .photo{height:230px}}
@media(prefers-reduced-motion:reduce){.aurora-canvas,.aurora-blob{display:none!important}.photo-home .float-photo{animation:none!important}}

/* Liquid ribbons as a GPU-independent visual fallback, always active alongside WebGL */
.liquid-ribbons{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;mix-blend-mode:screen;opacity:.98;transform:translate3d(0,0,0)}
.ribbon-r1{transform-origin:63% 47%;animation:ribbon-one 17s ease-in-out infinite alternate}
.ribbon-r2{transform-origin:75% 62%;animation:ribbon-two 13s ease-in-out infinite alternate}
@keyframes ribbon-one{to{transform:translate3d(-5%,3%,0) scale(1.07) skewY(-3deg)}}
@keyframes ribbon-two{to{transform:translate3d(4%,-5%,0) scale(1.13) skewY(4deg)}}
@media(max-width:650px){.liquid-ribbons{opacity:.63}}
@media(prefers-reduced-motion:reduce){.ribbon-r1,.ribbon-r2{animation:none!important}}

/* V1.6 可编辑比赛题目与长标题适配 */
.photo-home .aurora-hero h1{max-width:740px;overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(34px,4.35vw,62px)}
.event-competition-line{color:#6b8792;font-size:13px;margin:6px 0 0;overflow-wrap:anywhere}
.event-settings-panel{max-width:940px;padding:30px}
.event-settings-panel .field{margin-bottom:19px}.event-settings-panel label{font-size:14px;color:#355a67}
.event-settings-panel .title-field{font-weight:750;font-size:18px}
.event-settings-panel .title-preview{margin:24px 0;padding:28px 30px;border-radius:20px;background:radial-gradient(circle at 78% 21%,#48b8b554,transparent 47%),linear-gradient(115deg,#0d344c,#176177);color:white;overflow-wrap:anywhere}
.event-settings-panel .title-preview small{display:block;margin:11px 0 5px;color:#ffd99f;font-size:14px}
.event-settings-panel .title-preview h3{font-size:clamp(22px,3vw,35px);margin:9px 0;color:#fff;font-weight:850}
.event-settings-panel .title-preview p{color:#e1f4f2;margin:0}
@media(max-width:650px){.photo-home .aurora-hero h1{font-size:clamp(30px,7.8vw,45px)}.event-settings-panel{padding:19px}.event-settings-panel .title-preview{padding:20px}}

/* 智汇栈·光影记忆 V1.7：真实作品缩略图、精致操作控件、克制的视觉排版 */
:root{--photo-border:#dcebe9;--photo-blue:#12536b;--photo-teal:#117985;--photo-warm:#f1ce97;--photo-shadow:0 13px 40px rgba(13,51,69,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
button,input,select,textarea{font-family:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{touch-action:manipulation}
:focus-visible{outline:3px solid #66b8c5!important;outline-offset:3px}
.wordmark{min-width:0}
.wordmark b{overflow-wrap:anywhere}
.wordmark img,.official-logo img{object-fit:contain}
.public-top{justify-content:flex-start!important}
.photo-home .aurora-hero{min-height:435px;box-shadow:0 28px 65px rgba(6,47,69,.28)}
.photo-home .hero-inner{max-width:62%;position:relative;z-index:4}
.photo-home .hero-kicker{font-weight:650;letter-spacing:.14em}
.photo-home .aurora-hero h1{letter-spacing:-.022em;line-height:1.26;max-width:710px;text-wrap:balance;text-shadow:0 5px 26px #0321367a}
.photo-home .aurora-hero p{color:#d3ede7;line-height:1.75}
.photo-home .floating-gallery{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.photo-home .float-photo{width:145px;height:113px;padding:5px;border-radius:14px;overflow:hidden;background:#fffdf5e8;border:1px solid #ffe2b5aa;opacity:.96;box-shadow:0 18px 50px #001e358c,0 0 0 1px #fbeed342;backdrop-filter:blur(5px)}
.photo-home .float-photo img{border-radius:10px;width:100%;height:100%;object-fit:cover;filter:saturate(.98);display:block}
.photo-home .float-photo.card-a{right:15%;top:12%;width:167px;height:133px}
.photo-home .float-photo.card-b{right:3%;top:23%;width:126px;height:103px}
.photo-home .float-photo.card-c{right:27%;top:55%;width:139px;height:107px}
.photo-home .float-photo.card-d{right:6%;top:70%;width:130px;height:97px}
/* Hero cta button: quiet reflective rim, genuine icon, comfortable hit area */
.hero-cta.hero-primary{position:relative;isolation:isolate;border:1px solid #fff9ef9e;background:linear-gradient(135deg,#fff0c5,#f5d191 78%,#dbaa67);color:#173e50!important;box-shadow:inset 0 1px 0 #fffdf1,0 12px 32px #001c3159;padding:14px 22px;border-radius:16px;min-height:52px;gap:11px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.hero-cta.hero-primary::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#fff9dd93 48%,transparent 60%);transform:translateX(-145%);transition:transform .72s ease;z-index:-1}
.hero-cta.hero-primary:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 #fffdf1,0 16px 35px #001c3166}
.hero-cta.hero-primary:hover::before{transform:translateX(140%)}
/* Search glass */
.photo-home .gallery-exhibit{border:1px solid #e3efed;box-shadow:0 20px 70px #163e541a;background:linear-gradient(145deg,#fff,#fdfefd);padding:36px 40px 35px}
.photo-home .gallery-heading{margin-bottom:0}
.photo-home .gallery-exhibit h2{position:relative;font-size:30px;line-height:1.3;margin:0;font-weight:830;letter-spacing:.018em}
.photo-home .gallery-exhibit h2::after{content:"";display:block;width:43px;height:3px;margin-top:12px;border-radius:99px;background:linear-gradient(90deg,#e5bb75,#7ccbc3)}
.search-form{grid-template-columns:minmax(0,1fr) 156px;margin:27px 0 8px;gap:12px}
.search-bar{background:#f9fcfb;border:1px solid #dbe9e8;box-shadow:inset 0 1px 3px rgba(4,54,72,.02);border-radius:16px;min-height:59px;padding:0 19px;gap:12px}
.search-ico{transform:none;display:inline-flex;color:#538b95}
.search-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:1px solid #45adb2;color:#fff;border-radius:16px;box-shadow:0 12px 25px #0a778547,inset 0 1px 0 #a8ffff4f;background:linear-gradient(115deg,#0a6179,#169398);letter-spacing:.02em}
.search-btn svg{flex:none;transition:transform .15s}.search-btn:hover svg{transform:translateX(3px)}
.result-top{border:none;padding:12px 1px 12px;min-height:33px}
.result-top:empty{display:none}
.result-top span:empty{display:none}
.results-grid{min-height:100px!important}
.search-welcome{min-height:142px;padding:26px 15px;border-radius:20px;border:1px dashed #dce8e8;background:linear-gradient(130deg,#fcfefd,#f7fbf9);display:flex;align-items:center;justify-content:center}
.search-welcome h3{font-size:15px;color:#63838e;font-weight:600;margin:0;letter-spacing:.015em}
.search-welcome p,.search-emblem{display:none!important}
.photo-home .photo-card-link .photo{background:#e7f2ee}
.result-card{border:1px solid #e7efed;box-shadow:0 10px 30px #0a3a501c!important}
.photo-card-link:focus-visible{outline-offset:-4px}
.public-footer{border-top:1px solid #e8efed;margin-top:32px}
/* Consistent high-end controls across admin and jury */
.btn{border-radius:13px!important;min-height:42px;font-weight:700;letter-spacing:.01em;box-shadow:0 5px 14px rgba(20,82,101,.14);transition:transform .18s,filter .18s,box-shadow .18s}
.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.035);box-shadow:0 9px 22px rgba(11,80,102,.2)}
.btn:active:not(:disabled),.search-btn:active:not(:disabled){transform:translateY(0)}
.btn.soft{border:1px solid #dae9e7!important;background:#f1f9f7!important;color:#12647a!important}
.btn.plain{border:1px solid #d9e8e6!important;background:#fff!important;color:#32627b!important}
.btn.danger{background:#fff4f0!important;border:1px solid #f2c6bd!important;color:#a43f3b!important}
.tab{transition:background .18s,color .18s,border-color .18s;white-space:nowrap}
.tab.on{background:linear-gradient(120deg,#0e627c,#168b8d)!important;color:#fff!important;box-shadow:0 7px 20px #0a678132}
.tabs{display:flex;flex-wrap:wrap;gap:7px}
.controls{flex-wrap:wrap;gap:9px}
.toolbar{flex-wrap:wrap;gap:12px}
.event-controls{display:flex;flex-wrap:wrap;gap:9px}
.input:focus{outline:2px solid #72c6c7;outline-offset:1px}
.pill{font-size:12px}
.drop{border-radius:21px!important;border:1px dashed #b9dcd8!important;background:linear-gradient(125deg,#f9fefe,#f4faf8)!important}
.drop .big{font-size:23px!important;color:#57a9aa!important}
.qr-section{flex-wrap:wrap}
.qr{border:8px solid #fff;border-radius:12px;box-shadow:0 8px 26px #13495d21}
/* Label-safe: no overlap, wrapping on mobile */
label,.pill,.tab,.btn,.section-kicker{overflow-wrap:anywhere}
.codebox{overflow-wrap:anywhere;word-break:break-word}
.tablewrap{max-width:100%;overflow-x:auto}
.photo-home button:disabled{cursor:wait}
@media (max-width:1050px){.photo-home .hero-inner{max-width:65%}.photo-home .float-photo.card-b{right:1%}.photo-home .float-photo.card-c{right:18%}}
@media (max-width:810px){.photo-home .hero-inner{max-width:75%}.photo-home .float-photo{opacity:.48!important;filter:saturate(.8)}.photo-home .float-photo.card-a{right:3%;top:9%}.photo-home .float-photo.card-b{right:4%;top:66%}}
@media (max-width:650px){
 .photo-home .aurora-hero{min-height:340px;padding:38px 22px 55px}
 .photo-home .hero-inner{max-width:100%}
 .photo-home .float-photo{display:none!important}
 .photo-home .gallery-exhibit{padding:26px 19px 25px}
 .photo-home .gallery-exhibit h2{font-size:25px}
 .search-form{grid-template-columns:minmax(0,1fr);margin-top:20px;gap:9px}
 .search-btn,.search-bar{min-height:53px}
 .photo-home .hero-cta.hero-primary{min-height:45px;padding:11px 16px}
 .gallery-heading{margin-bottom:10px}
 .tabs{gap:5px}.tab{flex:0 0 auto}
 .event-controls .btn{flex:1}
 .btn{min-height:45px}
}
@media (prefers-reduced-motion:reduce){.hero-cta.hero-primary,.btn,.search-btn{transition:none!important}.hero-cta.hero-primary::before{display:none}}

/* V1.7.2 - 光带统一合成：移除矩形块、降低亮度、提高标题可读性 */
.photo-home .aurora-hero{isolation:isolate;background:
 radial-gradient(ellipse 44% 55% at 84% 48%,rgba(28,128,137,.18),transparent 92%),
 radial-gradient(ellipse 44% 80% at 92% 94%,rgba(16,92,112,.22),transparent 95%),
 linear-gradient(112deg,#061f30 0%,#09364b 53%,#10546a 100%)!important;
 box-shadow:0 23px 58px rgba(8,51,67,.19)!important}
/* Previous editions combined SVG, blur blobs and GLSL. Only one flowing GPU layer is enabled now. */
.photo-home .liquid-ribbons,.photo-home .aurora-css,.photo-home .aurora-blob{display:none!important}
.photo-home .aurora-hero::before{display:none!important}
.photo-home .aurora-canvas{position:absolute!important;inset:0;width:100%;height:100%;pointer-events:none;
 z-index:0;opacity:1;mix-blend-mode:screen;
 -webkit-mask-image:radial-gradient(ellipse 85% 115% at 72% 57%,#000 10%,rgba(0,0,0,.97) 48%,transparent 92%);
 mask-image:radial-gradient(ellipse 85% 115% at 72% 57%,#000 10%,rgba(0,0,0,.97) 48%,transparent 92%)}
.photo-home .aurora-hero::after{content:'';display:block;position:absolute;z-index:0;pointer-events:none;
 width:60%;height:74%;top:17%;right:-3%;border-radius:50%;
 background:radial-gradient(ellipse at center,rgba(21,151,167,.125),rgba(27,124,133,.05) 40%,transparent 76%);
 filter:blur(32px)}
.photo-home .hero-rays{opacity:.30;z-index:1}
.photo-home .hero-particles{opacity:.54}
.photo-home .hero-inner{z-index:4;max-width:67%}
.photo-home .aurora-hero h1{font-size:clamp(33px,4.2vw,59px)!important;max-width:850px!important;text-wrap:balance;overflow-wrap:break-word;
 text-shadow:0 3px 18px rgba(0,15,26,.28)}
.photo-home .float-photo{z-index:3}
.photo-home .aurora-hero .hero-kicker{color:#f6dab1}
.photo-home .hero-bottom-shine{opacity:.35}
@media(max-width:1000px){.photo-home .hero-inner{max-width:69%}}
@media(max-width:810px){.photo-home .hero-inner{max-width:95%}.photo-home .float-photo{opacity:.31!important}}
@media(max-width:650px){.photo-home .aurora-hero{min-height:333px}.photo-home .aurora-hero h1{font-size:clamp(30px,7.7vw,45px)!important}}
@media(prefers-reduced-motion:reduce){.photo-home .aurora-canvas{display:none!important}.photo-home .aurora-hero::after{filter:blur(25px)}}

/* V1.7.3 - 手机优先：让移动页面真正具备层次与动态丝带感。
   只覆盖首页移动端；既有后台与电脑端排版完全保留。 */
@media (max-width:650px) {
 html{scroll-padding-top:14px}
 .photo-home{background:radial-gradient(ellipse 100% 48% at 9% 4%,rgba(154,230,224,.21),transparent 80%),
                          linear-gradient(170deg,#fbfcfa 3%,#f4fbf9 43%,#fffaf4 100%)}
 .photo-home .shell{padding:14px 12px 40px}
 .photo-home .public-top{padding:3px 7px 0;margin-bottom:18px;min-height:57px}
 .photo-home .wordmark{gap:11px;align-items:center}
 .photo-home .wordmark b{font-size:16px;letter-spacing:.01em}
 .photo-home .wordmark .brand-en{font-size:9.5px;letter-spacing:.19em;margin-top:4px}
 .photo-home .official-logo{width:51px;height:51px;background:#fff;border:1px solid #e1edef;border-radius:15px;box-shadow:0 7px 24px rgba(12,80,101,.14)}
 .photo-home .official-logo img{width:47px;height:47px;object-fit:contain}
 .photo-home .aurora-hero{
   min-height:445px;position:relative;display:flex;align-items:flex-start;
   padding:39px 25px 150px;border-radius:27px;margin-bottom:-42px;
   box-shadow:0 17px 40px rgba(10,59,74,.23)!important;
   background:radial-gradient(ellipse at 95% 90%,rgba(18,99,123,.41),transparent 64%),
              linear-gradient(145deg,#071e2e 0%,#07354b 56%,#084964 100%)!important;
 }
 .photo-home .aurora-hero:before{display:none!important}
 .photo-home .aurora-hero:after{display:none!important}
 .photo-home .aurora-canvas{
   width:100%;height:100%;opacity:.98;mix-blend-mode:screen;
   -webkit-mask-image:linear-gradient(to bottom,transparent 4%,#000 22%,#000 96%,transparent 100%);
   mask-image:linear-gradient(to bottom,transparent 4%,#000 22%,#000 96%,transparent 100%);
 }
 .photo-home .aurora-hero .hero-inner{width:100%;max-width:100%;position:relative;z-index:4}
 .photo-home .hero-kicker{font-size:10.5px!important;color:#fbe0b9!important;letter-spacing:.10em!important;line-height:1.6}
 .photo-home .aurora-hero h1{margin:17px 0 12px;font-size:clamp(32px,8.2vw,42px)!important;line-height:1.28;letter-spacing:-.035em;max-width:320px!important;word-break:normal;overflow-wrap:anywhere;text-shadow:0 7px 20px rgba(0,12,26,.55)}
 .photo-home .aurora-hero p{font-size:13px;line-height:1.7;color:#d7edec;max-width:285px;margin:0 0 22px}
 .photo-home .hero-cta.hero-primary{border-radius:15px;min-height:50px;padding:12px 19px;box-shadow:inset 0 1px #fff9e8,0 10px 28px rgba(0,21,33,.25)}
 .photo-home .hero-rays{opacity:.35}
 .photo-home .hero-bottom-shine{opacity:.8;height:2px;left:13%;right:13%;filter:blur(2px)}
 /* Only server-authorized and published photographs appear; two thumbnails maximum. */
 .photo-home .floating-gallery{z-index:2;overflow:hidden}
 .photo-home .float-photo,
 .photo-home .float-photo.card-a,
 .photo-home .float-photo.card-b{display:block!important;position:absolute;opacity:.94!important;padding:5px;background:#fffaf1f0;
   border:1px solid rgba(255,232,198,.91);border-radius:13px;filter:none!important;
   box-shadow:0 18px 40px rgba(0,12,29,.5),0 0 17px rgba(141,244,230,.2)}
 .photo-home .float-photo.card-a{width:126px;height:99px;left:auto;right:22%;top:auto;bottom:10%;--rot:-12deg;transform:rotate(-12deg)}
 .photo-home .float-photo.card-b{width:97px;height:82px;left:auto;right:3%;top:auto;bottom:6%;--rot:10deg;transform:rotate(10deg)}
 .photo-home .float-photo img{border-radius:9px;filter:none}
 .photo-home .aurora-hero.long-title{min-height:500px;padding-bottom:174px}
 .photo-home .aurora-hero.long-title .float-photo{opacity:.55!important}
 .photo-home .gallery-exhibit{position:relative;z-index:5;padding:25px 20px 30px;border-radius:25px;
   box-shadow:0 16px 45px rgba(20,58,67,.12)}
 .photo-home .gallery-exhibit h2{font-size:26px;margin:0}
 .photo-home .search-form{margin:22px 0 6px;gap:11px}
 .photo-home .search-bar{border-radius:15px;min-height:56px;background:#f9fcfa;border-color:#dbece9}
 .photo-home .search-bar input{font-size:14px;min-width:0}
 .photo-home .search-btn{min-height:52px;border-radius:15px;font-size:15px;
   background:linear-gradient(110deg,#0c627b,#169396);box-shadow:0 12px 24px rgba(12,92,104,.22)}
 .photo-home .results-grid{min-height:0!important}
 .photo-home .search-welcome{margin-top:8px;min-height:122px;border-radius:17px;background:#f9fcfb}
 .photo-home .search-welcome h3{font-size:13px}
 .photo-home .public-footer{margin-top:27px}
}
@media(max-width:360px){.photo-home .aurora-hero{padding-left:19px;padding-right:19px}.photo-home .aurora-hero h1{font-size:30px!important}.photo-home .float-photo.card-a{right:20%}}
@media(prefers-reduced-motion:reduce){.photo-home .float-photo{display:none!important}.photo-home .aurora-hero{min-height:340px;padding-bottom:65px}}

/* V1.7.4 文字动态更新保障：移动桌面一致；仅在错误时显示重试提示 */
.public-sync-notice[hidden]{display:none!important}
.public-sync-notice{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;margin:11px 0 14px;
 border:1px solid rgba(250,210,159,.58);border-radius:12px;background:rgba(6,30,46,.74);backdrop-filter:blur(12px);
 color:#fff1da;font-size:13px;max-width:510px;line-height:1.55}
.public-sync-notice button{appearance:none;cursor:pointer;background:#ffe2ad;color:#153b4c;border:0;border-radius:9px;
 padding:7px 13px;font-size:12px;font-weight:700;white-space:nowrap}
.public-sync-notice button:focus-visible{outline:3px solid #9feee6;outline-offset:2px}
.version-debug{display:block;margin:8px 0 0;color:#cce9de;font-size:11px;letter-spacing:.01em}
@media(max-width:650px){
 .photo-home .aurora-hero h1{hyphens:auto;word-break:break-word;overflow-wrap:anywhere}
 .photo-home .public-sync-notice{font-size:12px;gap:9px;padding:10px 11px;border-radius:11px;margin:11px 0 12px}
 .photo-home .public-sync-notice button{min-height:34px}
 .photo-home .aurora-hero.long-title{min-height:520px}
}

/* Shared layout corrections, appended after the existing theme. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;line-height:1.35;white-space:nowrap;word-break:normal;overflow-wrap:normal;vertical-align:middle}
.btn.sm{min-height:36px;padding:7px 11px;font-size:13px}
.btn:disabled{opacity:.55;cursor:wait;transform:none!important}
.controls,.toolbar,.rowbtn{align-items:center}
.toolbar{gap:16px;margin-bottom:18px}
.toolbar h2{margin:0;min-width:0}
.toolbar>.input{margin-left:auto;max-width:360px;min-width:0;min-height:44px}
.toolbar>.controls{margin-left:auto}
.form-row{align-items:start;gap:18px}
.field{min-width:0}
.input{min-width:0;max-width:100%}
.eventbar{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,650px);align-items:center;gap:24px}
.event-label{min-width:0}.event-label h2,.event-competition-line{overflow-wrap:anywhere}
.event-controls{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;width:100%;align-items:center;gap:10px}
.event-controls select{min-width:0;max-width:none;width:100%;height:44px;padding-top:8px;padding-bottom:8px}
.event-controls .btn{height:44px;padding:8px 14px}
.drop{padding:24px!important}.drop h3{margin:8px 0 18px}
.drop .controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:540px;margin:0 auto;gap:12px}
.drop .btn{width:100%;min-height:46px}
.import-report:empty{display:none}
.import-report{margin-top:16px;padding:14px 16px;border:1px solid #c4dfdf;border-radius:12px;background:#f0f8f8;color:#245766;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.rowbtn{gap:8px;flex-wrap:nowrap}
.table th,.table td{padding:14px 12px}.table td{overflow-wrap:anywhere}
.tablewrap{overscroll-behavior-x:contain}.table{min-width:760px}
.switch-label{display:inline-flex;align-items:center;gap:8px;min-height:44px}
.switch-label input{margin:0;width:17px;height:17px;flex:none}
.photo-body .controls{gap:12px}
.modal .controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}
.modal .controls>.btn{width:100%}
.modal .viewimage{max-width:100%}
.pages{align-items:center;flex-wrap:wrap;gap:8px}
.pages button{min-width:40px;min-height:40px}
@media(max-width:1050px){
 .eventbar{grid-template-columns:1fr;gap:16px}
 .event-controls{grid-template-columns:minmax(180px,1fr) auto auto}
}
@media(max-width:650px){
 .event-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .event-controls select{grid-column:1/-1}
 .event-controls .btn{width:100%;min-width:0}
 .toolbar{align-items:stretch;gap:12px}.toolbar h2{width:100%}
 .toolbar>.input,.toolbar>.controls{margin-left:0;max-width:none;width:100%}
 .toolbar>.controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .toolbar>.btn{align-self:flex-start}
 .drop{padding:20px 14px!important}.drop .controls{gap:8px}
 .drop .btn{font-size:13px;padding:10px 6px;min-height:44px}
 .import-report{padding:12px;font-size:14px}
 .top{gap:12px}.wordmark{min-width:0}.wordmark b{overflow-wrap:anywhere}
 .photo-home .search-form{gap:10px}
 .modal{padding:20px 16px;max-height:calc(100dvh - 32px)}
}
@media(max-width:380px){.drop .controls{grid-template-columns:1fr}.toolbar>.controls{grid-template-columns:1fr}.modal .controls{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.btn{transition:none!important}}

/* V1.9.6: reduce painting cost while keeping a refined dark gradient and readable content. */
.photo-perf-lite .ambient,.photo-perf-static .ambient{display:none!important}
.photo-perf-lite .hero::before,.photo-perf-static .hero::before,
.photo-perf-lite .hero:before,.photo-perf-static .hero:before,
.photo-perf-lite .hero-rays,.photo-perf-static .hero-rays,
.photo-perf-lite .hero-bottom-shine,.photo-perf-static .hero-bottom-shine{animation:none!important;filter:none!important}
.photo-perf-lite .aurora-hero::after,.photo-perf-static .aurora-hero::after{filter:none!important;opacity:.65}
.photo-perf-lite .hero-particles,.photo-perf-static .hero-particles{display:none!important}
.photo-perf-lite .float-photo,.photo-perf-static .float-photo{animation:none!important;will-change:auto!important}
.photo-perf-lite .photo-home .float-photo{opacity:.4!important}
.photo-perf-static .aurora-canvas,.photo-perf-static .floating-gallery{display:none!important}
.photo-perf-lite .aurora-css,.photo-perf-static .aurora-css{display:none!important}
@media(max-width:760px){
 .photo-perf-lite .photo-home .hero::after{filter:none!important}
 .photo-perf-lite .photo-home .aurora-hero{box-shadow:0 10px 22px rgba(8,51,67,.15)!important}
}
