@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/space-grotesk-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display:"Space Grotesk",-apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI","Microsoft YaHei",sans-serif;--paper:#efefef;--paper-soft:#f6f6f6;--card:#ffffffbd;--card-solid:#fff;--line:#1414141a;--line-soft:#1414140f;--ink:#171717;--ink-soft:#3a3a3a;--muted:#6b6b6b;--muted-2:#9a9a9a;--accent:#1a1a1a;--accent-deep:#000;--accent-weak-bg:#eee;--accent-weak-ink:#2b2b2b;--deep-1:#2a2a2a;--deep-2:#141414;--deep-3:#050505;--danger:#dc2626;--vote:#e11d48;--r-sm:8px;--r-md:16px;--r-lg:24px;--ease:cubic-bezier(.16,1,.3,1);--t-tap:.18s;--t-in:.32s;--t-viewer:.5s;--shadow-sm:0 4px 14px #1111110d;--shadow-card:0 14px 40px #11111114,0 2px 8px #1111110a;--shadow-float:0 24px 64px #11111129,0 6px 18px #11111114;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at 20% -10%,#ffffffe6,transparent 36%), linear-gradient(180deg,#f5f5f5 0%,var(--paper) 44%,#e7e7e7 100%);-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;margin:0}svg{width:18px;height:18px}.app{max-width:1180px;min-height:100vh;margin:0 auto;padding:14px 14px 60px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px)saturate(1.1);backdrop-filter:blur(18px)saturate(1.1);border-bottom:1px solid var(--line-soft);background:linear-gradient(#f0f2f6f0,#f0f2f6b8);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:10px;min-width:0;display:flex}.brand img{width:auto;height:24px;display:block}.brand span{letter-spacing:-.04em;color:var(--ink);font-size:18px;font-weight:800}.topActions{flex:none;align-items:center;gap:8px;display:flex}.loginToggle,.adminToggle{border:1px solid var(--line);background:var(--card-solid);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:150px;transition:transform var(--t-tap) var(--ease),box-shadow var(--t-tap) ease,border-color var(--t-tap) ease;border-radius:999px;align-items:center;gap:6px;padding:9px 12px;font-weight:700;display:inline-flex;overflow:hidden}.loginToggle svg,.adminToggle svg{width:15px;height:15px}.loginToggle:hover,.adminToggle:hover{border-color:var(--muted-2);box-shadow:var(--shadow-sm)}.adminToggle.on{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000;box-shadow:0 8px 22px #11111138}.topbar input{display:none}.topbar input.nativeUploadInput{opacity:.001!important;pointer-events:none!important;width:1px!important;height:1px!important;display:block!important;position:absolute!important;top:auto!important;left:-9999px!important}.hero{grid-template-columns:1.12fr .88fr;gap:16px;margin-top:10px;display:grid}.heroText{border-radius:var(--r-lg);color:#fff;background:radial-gradient(circle at 82% 6%,#ffffff24,transparent 34%),linear-gradient(140deg,var(--deep-1),var(--deep-2) 60%,var(--deep-3) 130%);border:1px solid #ffffff14;flex-direction:column;justify-content:center;min-height:300px;padding:34px;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #0a0a0a47,0 6px 20px #0a0a0a1f}.heroText:after{content:"";pointer-events:none;background:radial-gradient(#ffffff1a,#0000 66%);height:52%;position:absolute;inset:auto -12% -36% 20%}.hero h1{letter-spacing:-.05em;margin:0 0 14px;font-size:clamp(34px,5.2vw,56px);line-height:1.04}.hero p{color:#e2e8f0bd;max-width:560px;margin:0;font-size:16px;line-height:1.7}.adminBadge{color:#e8e8e8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff24;border:1px solid #ffffff3d;border-radius:999px;width:max-content;max-width:100%;margin:0 0 14px;padding:7px 12px;font-size:13px;font-weight:700;display:inline-flex}.uploadBox{border:1px solid var(--line);border-radius:var(--r-lg);text-align:center;cursor:pointer;min-height:300px;color:inherit;font:inherit;appearance:none;width:100%;box-shadow:var(--shadow-card);transition:transform var(--t-in) var(--ease),box-shadow var(--t-in) var(--ease),border-color var(--t-tap) ease;background:linear-gradient(150deg,#fffffffa,#f4f6f9e6);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex;position:relative;overflow:hidden}.uploadBox:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #fff9;position:absolute;inset:1px}.uploadBox:hover{border-color:var(--accent);box-shadow:var(--shadow-float);transform:translateY(-2px)}.uploadBox:disabled{opacity:.72;cursor:wait;transform:none}.uploadBox>svg{width:46px;height:46px;color:var(--accent);z-index:3;background:#1e1e1e0f;border-radius:18px;padding:10px;position:relative;box-shadow:inset 0 0 0 1px #1e1e1e0d}.uploadBox strong{letter-spacing:-.03em;z-index:3;font-size:20px;position:relative}.uploadBox span{color:var(--muted);z-index:3;line-height:1.5;position:relative}.uploadBox input{display:none}.uploadHint{flex-direction:column;align-items:center;gap:4px;color:var(--muted)!important;line-height:1.35!important;display:flex!important}.uploadHint b{color:var(--ink);font-size:14px;font-weight:800}.uploadHint em{color:var(--muted-2);font-size:12px;font-style:normal;font-weight:600}.progressWrap{z-index:3;background:#1414141a;border-radius:999px;width:min(280px,100%);height:10px;margin-top:6px;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #1111111a}.progressWrap div{background:linear-gradient(90deg,var(--accent),var(--accent-deep));border-radius:999px;height:100%;transition:width .18s}.uploadBox .progressWrap+span{display:none}.uploadChoiceButtons{z-index:5;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:8px;display:flex;position:relative}.uploadChoiceButtons button,.uploadChoiceButtons .albumDirectButton{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;min-width:128px;height:44px;transition:transform var(--t-tap) var(--ease),box-shadow var(--t-tap) ease,filter var(--t-tap) ease;border:0;border-radius:999px;padding:11px 16px;font-weight:800;box-shadow:0 10px 24px #1113}.uploadChoiceButtons .albumDirectButton+button{color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#ffffffd1}.uploadChoiceButtons button:active,.uploadChoiceButtons .albumDirectButton:active{transform:scale(.975)}.uploadChoiceButtons button:disabled,.uploadChoiceButtons .albumDirectButton[aria-disabled=true]{opacity:.55;cursor:wait}.albumDirectButton{isolation:isolate;cursor:pointer;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.albumDirectInput{opacity:.001!important;cursor:pointer!important;z-index:4!important;width:100%!important;height:100%!important;display:block!important;position:absolute!important;inset:0!important}.albumDirectInput:disabled{cursor:wait!important}.notice{border-radius:var(--r-md);color:#fff;box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#111111f0;border:1px solid #ffffff1a;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:12px 14px;font-weight:700;display:flex}.notice span{flex:1}.notice.persistent{z-index:19;box-shadow:var(--shadow-float);position:sticky;top:64px}.notice button{color:#fff;background:#ffffff1f;border:1px solid #ffffff47;border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;font-size:22px;font-weight:700;line-height:26px;display:flex}.notice button.noticeAction{width:auto!important;height:30px!important;color:var(--ink)!important;background:#fff!important;border:0!important;border-radius:999px!important;padding:0 13px!important;font-size:13px!important;font-weight:800!important;line-height:1!important}.calendarNotice{background:var(--card);color:var(--muted);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;margin:10px 0;padding:9px 12px;font-size:13px;font-weight:600}.searchSummary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-radius:14px;margin:-4px 0 12px;padding:9px 12px;font-weight:700;display:inline-flex;box-shadow:0 8px 20px #1113}.uploadReviewBar{border-radius:var(--r-md);color:var(--accent-weak-ink);box-shadow:var(--shadow-card);background:linear-gradient(135deg,#f5f5f5f5,#ebebebe6);border:1px solid #1e1e1e24;justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px;padding:11px 14px;font-weight:700;display:flex}.uploadReviewBar button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;white-space:nowrap;transition:transform var(--t-tap) var(--ease);border:0;border-radius:999px;padding:8px 13px;font-weight:800}.uploadReviewBar button:active{transform:scale(.97)}.uploadReviewActions{align-items:center;gap:8px;display:flex}.batchDateReturnBar{background:var(--card);border-color:var(--line);color:var(--ink)}.projectSearchBar{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(20px)saturate(1.1);backdrop-filter:blur(20px)saturate(1.1);align-items:center;gap:9px;margin:0 0 14px;padding:10px;display:flex}.projectSearchBar svg{width:18px;height:18px;color:var(--muted);flex:none}.projectSearchBar input{min-width:120px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:16px;font-weight:600}.projectSearchBar input::placeholder{color:var(--muted-2)}.projectSearchBar button{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);white-space:nowrap;transition:transform var(--t-tap) var(--ease),box-shadow var(--t-tap) ease;border-radius:999px;padding:9px 13px;font-weight:800}.projectSearchBar button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000;box-shadow:0 8px 20px #1111112e}.projectSearchBar button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.projectSearchBar button:active{transform:scale(.975)}.projectSearchBar button:disabled{opacity:.55}.projectAdminBar{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);align-items:center;gap:10px;margin:-4px 0 14px;padding:10px 12px;display:flex}.projectAdminBar b{font-weight:800}.projectAdminBar span{color:var(--muted);flex:1;font-size:13px;font-weight:600}.projectAdminBar button{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:9px 13px;font-weight:800;display:inline-flex}.projectAdminBar button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000}.projectAdminBar button:disabled{opacity:.45}.filters{z-index:15;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(20px)saturate(1.12);backdrop-filter:blur(20px)saturate(1.12);scrollbar-width:none;gap:9px;margin:0 0 14px;padding:10px;display:flex;position:sticky;top:66px;overflow-x:auto}.filters::-webkit-scrollbar{display:none}.filters button{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);white-space:nowrap;transition:transform var(--t-tap) var(--ease),box-shadow var(--t-tap) ease,background var(--t-tap) ease,color var(--t-tap) ease,border-color var(--t-tap) ease;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:7px;padding:11px 15px;font-weight:700;display:inline-flex}.filters button:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.filters button:active{transform:scale(.975)}.filters button.on{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000;box-shadow:0 10px 24px #1113}.filters button.selectModeButton.on{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000}.monthStrip,.monthSlider{display:none!important}.monthPicker{z-index:13;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(20px)saturate(1.1);backdrop-filter:blur(20px)saturate(1.1);grid-template-columns:1fr 1fr auto auto;align-items:end;gap:10px;margin:-2px 0 14px;padding:10px 12px;display:grid;position:sticky;top:121px}.monthPicker label{flex-direction:column;gap:4px;display:flex}.monthPicker label span{color:var(--muted);font-size:11px;font-weight:700}.monthPicker select{border:1px solid var(--line);width:100%;height:38px;color:var(--ink);background:#ffffffbd;border-radius:12px;padding:0 10px;font-size:15px;font-weight:800}.monthPicker b{white-space:nowrap;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-radius:999px;align-items:center;height:38px;padding:0 12px;font-size:14px;font-weight:800;display:flex;box-shadow:0 8px 20px #1111112e}.monthPicker .allTimeButton{border:1px solid var(--line);background:var(--paper-soft);height:38px;color:var(--ink);white-space:nowrap;border-radius:999px;padding:0 12px;font-size:13px;font-weight:800}.selectionBar{z-index:14;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);-webkit-backdrop-filter:blur(20px)saturate(1.12);backdrop-filter:blur(20px)saturate(1.12);box-shadow:var(--shadow-card);justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px;padding:11px 14px;display:flex;position:sticky;top:118px}.selectionBar b{font-size:18px}.selectionActions{align-items:center;gap:7px;display:flex;overflow-x:auto}.selectionActions button{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);white-space:nowrap;transition:transform var(--t-tap) var(--ease);border-radius:999px;align-items:center;gap:6px;padding:9px 12px;font-weight:800;display:inline-flex}.selectionActions button:active{transform:scale(.97)}.selectionActions button.primary,.selectionActions button.timeAction{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000}.selectionActions button.dangerAction{background:var(--danger);color:#fff;border-color:#0000}.selectionActions button:disabled{opacity:.45}.selectionActions .iconOnly{justify-content:center;width:38px;height:38px;padding:0}.loadNewerBar{z-index:12;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-card);justify-content:center;align-items:center;gap:10px;margin:0 0 14px;padding:10px 12px;display:flex;position:sticky;top:197px}.loadNewerBar button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border:0;border-radius:999px;padding:9px 14px;font-weight:800;box-shadow:0 8px 20px #1111112e}.loadNewerBar button:disabled{opacity:.55}.loadNewerBar span{color:var(--muted);font-size:13px;font-weight:600}.loadMoreBar{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--muted);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-card);justify-content:center;align-items:center;gap:12px;margin:20px 0 8px;padding:14px;font-weight:700;display:flex}.loadMoreBar button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border:0;border-radius:999px;padding:10px 16px;font-weight:800;box-shadow:0 8px 20px #1111112e}.loadMoreBar button:disabled{opacity:.55}.loadMoreBar b{color:var(--ink);background:#1e1e1e0f;border-radius:999px;padding:8px 12px}.empty{border:1px solid var(--line);background:var(--card);border-radius:var(--r-lg);text-align:center;color:var(--muted);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);margin-top:28px;padding:46px 20px}.empty svg{width:50px;height:50px;color:var(--accent)}.empty h2{color:var(--ink);margin:14px 0 8px}.timeline{overflow-anchor:none;gap:26px;margin-top:8px;display:grid}.day{scroll-margin-top:190px}.dayHeader{justify-content:space-between;align-items:center;gap:10px;margin:2px 0 14px;display:flex}.dayHeader h2{letter-spacing:-.05em;margin:0;font-size:24px}.dayAddProject{border:1px solid var(--line);background:var(--card-solid);color:var(--accent);box-shadow:var(--shadow-sm);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.dayAddProject svg{width:15px;height:15px}.projectLine{border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 12px;padding:8px 10px;line-height:1.45;display:flex}.projectLinePlain{flex-wrap:wrap;align-items:center;gap:7px;display:flex!important}.projectChip{background:var(--accent-weak-bg);border:1px solid #1e1e1e29;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;display:inline-flex}.projectChip b{color:var(--accent-weak-ink);font-size:13px;font-weight:800;display:inline}.projectChip button{color:var(--accent-deep);white-space:nowrap;background:#fff9;border:1px solid #1113;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;line-height:1}.projectChip button:active{transform:scale(.97)}.manualProjectChip{background:var(--paper-soft);border-color:var(--line)}.manualProjectChip b{color:var(--ink-soft)}.manualProjectChip b:after{content:"手动";color:var(--accent-deep);vertical-align:middle;background:#1e1e1e1a;border-radius:999px;margin-left:6px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex}.grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;display:grid}.tile{aspect-ratio:1;border-radius:var(--r-sm);cursor:pointer;transition:transform .28s var(--ease),box-shadow .28s var(--ease),filter .24s ease;animation:tileSoftIn .3s var(--ease) both;background:#e2e2e2;border:0;padding:0;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 1px #ffffff80,0 8px 22px #1111110f}.tile img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease),filter .3s ease;will-change:transform;display:block}.tile:hover{transform:translateY(-2px);box-shadow:0 20px 46px #11111129}.tile:active{transform:scale(.985)}.tile:before{content:"";z-index:2;pointer-events:none;opacity:0;background:linear-gradient(#ffffff14,#0000 30%,#0a0a0a1f);transition:opacity .24s;position:absolute;inset:0}.tile:hover:before{opacity:1}.time{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0a8c;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;position:absolute;bottom:8px;left:8px;box-shadow:0 6px 16px #0000002e}.time.duration{background:#0a0a0aa8}.play{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0a8c;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;top:8px;right:8px}.play svg{width:14px;height:14px}.liveBadge{color:#fff;letter-spacing:.04em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0a99;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;position:absolute;top:8px;right:8px}.videoTile{background:linear-gradient(140deg,var(--deep-1),var(--deep-3));color:#fff;flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;display:flex}.videoTile svg{width:34px;height:34px}.videoTile span{font-weight:800}.rawTile{color:#2b2b2b;background:linear-gradient(140deg,#e0e0e0,#c9c9c9);flex-direction:column;justify-content:center;align-items:center;gap:8px;width:100%;height:100%;display:flex}.rawTile svg{width:34px;height:34px}.rawTile span{letter-spacing:.08em;font-weight:800}.votePill{z-index:5;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0a85;border-radius:999px;align-items:center;gap:4px;padding:5px 9px;font-size:12px;font-weight:800;display:inline-flex;position:absolute;top:8px;left:8px;box-shadow:0 6px 16px #0000002e}.votePill svg{width:14px;height:14px}.votePill.voted{background:linear-gradient(135deg,#f43f6e,var(--vote))}.deletePill{z-index:4;color:#fff;background:#dc2626eb;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;top:44px;right:8px;box-shadow:0 6px 16px #0003}.deletePill svg{width:15px;height:15px}.checkmark{z-index:3;width:32px;height:32px;color:var(--ink);animation:selectPop .28s var(--ease) both;background:#fffffff5;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px;box-shadow:0 8px 20px #0000002e}.checkmark svg{width:18px;height:18px}.tile.selectable{box-shadow:inset 0 0 0 1px #1414141a}.selectedTile .checkmark{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff}.selectable .liveBadge,.selectable .play{top:44px}.tile.uploadHighlight{animation:tileGlow 1.6s var(--ease) 1 both;box-shadow:inset 0 0 0 3px var(--accent),0 0 0 4px #11111129,0 14px 30px #1111112e!important}.tile.uploadHighlight:after{content:"本批";z-index:6;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;position:absolute;top:8px;left:8px;box-shadow:0 6px 16px #1111113d}.tile.jumpHighlight{animation:tileGlow 1.35s var(--ease) 2 both;box-shadow:inset 0 0 0 3px var(--accent),0 0 0 4px #11111129,0 14px 30px #1111112e!important}.highlightWall{display:block}.highlightWall .day h2{display:none}.highlightGrid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));width:100%}.viewer{z-index:50;animation:viewerFade var(--t-in) var(--ease) both;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.imageViewer,.videoViewer{background:radial-gradient(circle at 50% 40%,var(--deep-1),var(--deep-2) 48%,var(--deep-3) 82%);justify-content:center;align-items:center;padding:0}.imageStage{touch-action:none;overscroll-behavior:contain;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative;overflow:hidden}.imageStage:before{content:"";pointer-events:none;z-index:1;background:radial-gradient(circle,#0000 44%,#0000004d 100%);position:fixed;inset:0}.imageStage img{object-fit:contain;transform-origin:50%;will-change:transform;-webkit-user-drag:none;-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;width:auto;max-width:100vw;height:auto;max-height:100vh;animation:viewerMediaIn var(--t-viewer) var(--ease) both;position:absolute}.previewLayer{filter:blur(6px);opacity:.32;transform:scale(1.02)}.originalLayer{z-index:2}.imageStageZoomed{cursor:grab}.imageStageZoomed:active{cursor:grabbing}.imageStage img[style],.imageStageZoomed img,.imageStageZooming img{animation:none!important}.imageStageZooming img{transition:transform .18s var(--ease)!important}.imageStageZoomed .previewLayer,.imageStageZooming .previewLayer{opacity:.2!important;filter:blur(8px)!important}.imageStageZoomed .originalLayer{transition:transform 80ms linear!important}.viewerClose{left:14px;top:calc(14px + env(safe-area-inset-top));z-index:60;color:#fff;-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);width:44px;height:44px;animation:viewerMediaIn var(--t-in) var(--ease) both;background:#11111180;border:0;border-radius:999px;justify-content:center;align-items:center;font-size:30px;line-height:38px;display:flex;position:fixed;box-shadow:0 12px 32px #00000047,inset 0 0 0 1px #ffffff24}.viewerDelete{right:14px;top:calc(14px + env(safe-area-inset-top));z-index:60;color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#dc2626e6;border:0;border-radius:999px;align-items:center;gap:6px;height:44px;padding:0 14px;font-weight:800;display:flex;position:fixed;box-shadow:0 12px 32px #00000047}.viewerDelete svg{width:16px;height:16px}.viewerRotateTools{z-index:30;gap:8px;display:flex;position:fixed;top:72px;right:18px}.viewerRotateTools button{color:var(--ink);background:#ffffffeb;border:0;border-radius:999px;padding:9px 12px;font-weight:800;box-shadow:0 8px 22px #00000040}.viewerNav{z-index:63;color:#fff;-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);background:#1111116b;border:0;border-radius:999px;justify-content:center;align-items:center;width:50px;height:50px;transition:background .14s,filter .14s;display:flex;position:fixed;top:50%;box-shadow:0 12px 32px #00000042,inset 0 0 0 1px #ffffff24;transform:translateY(-50%)!important}.viewerNav svg{width:26px;height:26px}.viewerNav:hover{color:var(--ink);background:#ffffffe6}.viewerNav:active{filter:brightness(.92);transform:translateY(-50%)!important}.viewerPrev{left:16px!important}.viewerNext{right:16px!important}.imageZoomControls{left:50%;top:calc(14px + env(safe-area-inset-top));z-index:64;-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);background:#11111185;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:6px;padding:5px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 14px 36px #00000047}.imageZoomControls button{min-width:42px;height:36px;color:var(--ink);background:#ffffffeb;border:0;border-radius:999px;padding:0 12px;font-size:15px;font-weight:800}.imageZoomControls button:nth-child(2){color:#fff;background:#ffffff29;min-width:64px}.imageZoomControls button:disabled{opacity:.42}.imageZoomControls button:active{transform:scale(.96)}.imageHint{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:60;color:#ffffffd1;pointer-events:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#11111180;border:1px solid #ffffff1a;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:700;position:fixed;transform:translate(-50%)}.viewerVote{left:50%;bottom:calc(62px + env(safe-area-inset-bottom));z-index:62;color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border:0;border-radius:999px;align-items:center;gap:7px;padding:12px 17px;font-weight:800;display:flex;position:fixed;box-shadow:0 16px 42px #00000047,inset 0 0 0 1px #fff3;transform:translate(-50%)!important}.viewerVote svg{width:16px;height:16px}.viewerVote.voted{background:linear-gradient(135deg,#f43f6e,var(--vote));color:#fff}.viewerVote.videoVote{bottom:calc(98px + env(safe-area-inset-bottom))}.viewerJumpTimeline{left:50%;bottom:calc(152px + env(safe-area-inset-bottom));z-index:62;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);color:#ffffffeb;white-space:nowrap;background:#11111180;border:1px solid #ffffff3d;border-radius:999px;padding:9px 14px;font-size:13px;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000038}.dngDownload{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:63;color:#fff;background:linear-gradient(135deg,#ef4444,#c81e2c);border-radius:999px;padding:11px 16px;font-size:13px;font-weight:800;text-decoration:none;position:fixed;box-shadow:0 14px 34px #dc262657,0 8px 24px #00000047;transform:translate(-50%)!important}.rawViewer{border-radius:var(--r-lg);color:#2b2b2b;text-align:center;width:min(420px,80vw);min-height:260px;animation:viewerMediaIn var(--t-viewer) var(--ease) both;background:linear-gradient(140deg,#e6e6e6,#cfcfcf);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:26px;display:flex}.rawViewer svg{width:54px;height:54px}.rawViewer b{font-size:22px}.rawViewer span{color:var(--muted);font-weight:700;line-height:1.5}.videoStage{background:0 0;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.videoStage video{object-fit:contain;width:auto;max-width:100vw;height:auto;max-height:100vh;animation:viewerMediaIn var(--t-viewer) var(--ease) both}.viewerShiftNext .videoStage video{animation:viewerFromRight .42s var(--ease) both}.viewerShiftPrev .videoStage video{animation:viewerFromLeft .42s var(--ease) both}.videoActions,.videoShareTop,.videoOpenBottom,.videoShare,.videoSave{display:none!important}.videoDownloadHint{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:60;color:#fff;text-align:center;pointer-events:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1111118c;border:1px solid #ffffff1f;border-radius:999px;max-width:min(260px,62vw);padding:8px 12px;font-size:12px;font-weight:700;line-height:1.25;position:fixed;box-shadow:0 8px 24px #0000003d}.dateModal{z-index:70;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0a80;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.datePanel{box-sizing:border-box;border-radius:var(--r-lg);background:var(--card-solid);width:min(360px,100%);box-shadow:var(--shadow-float);animation:panelPop var(--t-in) var(--ease) both;padding:22px;overflow:hidden}.datePanel h3{letter-spacing:-.04em;margin:0 0 8px;font-size:22px}.datePanel p{color:var(--muted);margin:0 0 16px;line-height:1.5}.datePanel input{box-sizing:border-box;border:1px solid var(--line);background:var(--paper-soft);width:100%;height:48px;color:var(--ink);border-radius:14px;outline:none;padding:0 12px;font-size:16px;font-weight:700}.datePanel input[type=date]{appearance:none;text-align:center;min-width:0;max-width:100%;font-size:18px;font-weight:800;line-height:48px;display:block}.datePanel input[type=date]::-webkit-date-and-time-value{text-align:center}.datePanel input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1e1e1e24}.dateActions{gap:10px;margin-top:16px;display:flex}.dateActions button{background:var(--paper-soft);color:var(--ink);border:0;border-radius:14px;flex:1;padding:13px;font-weight:800}.dateActions button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff}.dateProjectSearch{gap:8px;margin:0 0 14px;display:flex}.dateProjectSearch input{border:1px solid var(--line);background:var(--paper-soft);min-width:0;height:44px;color:var(--ink);border-radius:14px;flex:1;padding:0 11px;font-size:16px;font-weight:700}.dateProjectSearch button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;white-space:nowrap;border:0;border-radius:14px;padding:0 12px;font-weight:800}.dateProjectSearch button:disabled{opacity:.5}.projectDateChoices{flex-direction:column;gap:7px;max-height:240px;margin:0 0 14px;display:flex;overflow:auto}.projectDateChoices>span{color:var(--muted);font-size:12px;font-weight:800}.projectDateChoices button{border:1px solid var(--line);background:var(--paper-soft);text-align:left;color:var(--ink);border-radius:14px;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.projectDateChoices button.on{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000}.projectDateChoices b{font-size:14px}.projectDateChoices em{color:inherit;opacity:.72;font-size:12px;font-style:normal;line-height:1.35}.manualDateField{flex-direction:column;gap:6px;display:flex}.manualDateField span{color:var(--muted);font-size:12px;font-weight:800}.backupPanel{width:min(560px,100%);max-height:86vh;overflow:auto}.backupLoading{background:var(--paper-soft);color:var(--muted);border-radius:16px;align-items:center;gap:8px;padding:14px;font-weight:700;display:flex}.backupStats{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 14px;display:grid}.backupStats span{border:1px solid var(--line);background:var(--paper-soft);border-radius:16px;flex-direction:column;gap:3px;padding:12px;display:flex}.backupStats b{letter-spacing:-.04em;font-size:18px}.backupStats em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.backupActions{grid-template-columns:1fr;gap:8px;margin:0 0 14px;display:grid}.backupActions button,.backupMonth button{border:1px solid var(--line);background:var(--paper-soft);color:var(--ink);border-radius:14px;justify-content:center;align-items:center;gap:7px;padding:11px 12px;font-weight:800;display:flex}.backupActions button.primary{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border-color:#0000}.backupMonthList{flex-direction:column;gap:7px;margin-top:8px;display:flex}.backupMonthList>b{color:var(--muted);font-size:13px}.backupMonth{border:1px solid var(--line);background:var(--card-solid);border-radius:14px;grid-template-columns:1fr auto auto;align-items:center;gap:7px;padding:8px;display:grid}.backupMonth span{font-weight:800}.backupMonth em{color:var(--muted);margin-top:2px;font-size:12px;font-style:normal;font-weight:600;display:block}.backupMonth button{border-radius:999px;padding:8px 10px}.uploadDistributionCard{border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);animation:panelPop var(--t-in) var(--ease) both;background:linear-gradient(#fffffff5,#f6f7f9eb);margin:0 0 14px;padding:14px;position:relative;overflow:hidden}.uploadDistributionHeader{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.uploadDistributionHeader b{letter-spacing:-.03em;font-size:18px;font-weight:800;display:block}.uploadDistributionHeader span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:600;line-height:1.45;display:block}.uploadDistributionHeader .iconOnly{background:var(--paper-soft);width:32px;height:32px;color:var(--ink);border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:22px;font-weight:800;line-height:1;display:flex}.uploadDistributionList{flex-direction:column;gap:8px;display:flex}.uploadDistributionItem{border:1px solid var(--line);border-radius:var(--r-md);transition:transform .22s var(--ease),box-shadow .22s var(--ease),background .22s ease;background:#ffffffb8;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px 13px;display:grid}.uploadDistributionItem:hover{box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.uploadDistributionItem b{color:var(--ink);font-size:15px;font-weight:800;display:block}.uploadDistributionItem span{color:var(--muted);margin-top:3px;font-size:12px;font-weight:600;display:block}.uploadDistributionItem button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;white-space:nowrap;border:0;border-radius:999px;padding:9px 15px;font-weight:800;box-shadow:0 8px 20px #1111112e}.loginGate{justify-content:center;align-items:center;min-height:100vh;display:flex}.loginCard{border-radius:var(--r-lg);background:var(--card-solid);text-align:center;width:min(420px,100%);box-shadow:var(--shadow-float);border:1px solid var(--line);padding:34px 24px}.loginCard img{width:auto;height:30px;margin-bottom:18px}.loginCard h1{letter-spacing:-.05em;margin:0 0 10px;font-size:34px}.loginCard p{color:var(--muted);margin:0 0 22px;line-height:1.6}.loginCard button{background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;border:0;border-radius:999px;align-items:center;gap:8px;padding:13px 18px;font-weight:800;display:inline-flex;box-shadow:0 12px 28px #11111138}.loginCard button svg{width:18px;height:18px}.backTop{right:18px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:45;color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111111db;border:1px solid #ffffff80;border-radius:999px;justify-content:center;align-items:center;width:46px;height:46px;font-size:24px;font-weight:800;display:flex;position:fixed;box-shadow:0 12px 30px #0000003d}.backTop:active{transform:scale(.96)}@keyframes tileSoftIn{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tileGlow{0%,to{box-shadow:inset 0 0 0 3px var(--accent),0 0 0 4px #11111124,0 12px 26px #11111124}50%{box-shadow:inset 0 0 0 3px var(--accent),0 0 0 8px #11111138,0 16px 34px #1113}}@keyframes selectPop{0%{opacity:.6;transform:scale(.85)}55%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes viewerFade{0%{opacity:0}to{opacity:1}}@keyframes viewerMediaIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes viewerFromRight{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes viewerFromLeft{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:translate(0)}}@keyframes panelPop{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.viewerVote,.imageHint,.dngDownload{animation:viewerMediaIn var(--t-in) var(--ease) both}.viewerVote{animation:none}@media (width<=760px){input,select,textarea{font-size:16px!important}.app{padding:10px 10px 52px}.topbar{gap:8px;padding:8px 0 10px;top:0}.brand img{height:22px}.brand span{font-size:17px}.loginToggle,.adminToggle{height:38px;padding:0 11px;font-size:13px;line-height:1}.loginToggle{max-width:104px}.hero{grid-template-columns:1fr;gap:12px;margin-top:2px}.heroText{border-radius:20px;justify-content:flex-start;min-height:184px;padding:30px 20px 24px;box-shadow:0 20px 54px #0a0a0a38}.hero h1{letter-spacing:-.05em;margin:0 0 16px;font-size:36px;line-height:1.08}.hero p{font-size:16px;line-height:1.7}.uploadBox{border-radius:20px;gap:10px;min-height:188px;padding:24px 18px}.uploadBox:hover{transform:none}.uploadBox>svg{width:44px;height:44px}.uploadChoiceButtons{gap:8px;width:100%}.uploadChoiceButtons button{flex:1;min-width:0;height:43px;padding:11px 10px;font-size:14px}.notice,.calendarNotice,.uploadReviewBar,.searchSummary{margin:0 0 12px}.notice.persistent{top:62px}.projectSearchBar{border-radius:18px;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:12px}.projectSearchBar input{flex-basis:calc(100% - 32px);min-height:26px;line-height:24px}.projectSearchBar button{flex:1;height:44px}.projectAdminBar{flex-direction:column;align-items:flex-start}.projectAdminBar span{flex:auto}.projectAdminBar button{justify-content:center;width:100%}.filters{gap:10px;margin:0 0 12px;padding:8px;position:sticky;top:55px}.filters button{height:44px;padding:0 15px}.monthPicker{gap:8px;box-shadow:var(--shadow-sm)!important;border-radius:18px!important;grid-template-columns:1fr 1fr!important;margin:0 0 14px!important;padding:10px!important;position:static!important;top:auto!important}.monthPicker b,.monthPicker .allTimeButton{display:none!important}.monthPicker select{border-radius:13px;height:40px;font-size:14px}.loadNewerBar{flex-direction:column;align-items:stretch;margin:0 0 12px!important;position:static!important;top:auto!important}.loadNewerBar button{width:100%}.loadNewerBar span{text-align:center;font-size:12px}.selectionBar{flex-direction:column;align-items:flex-start;top:107px}.selectionActions{width:100%}.selectable .liveBadge,.selectable .play{top:40px}.grid,.highlightGrid{grid-template-columns:repeat(3,1fr);gap:6px}.tile{box-shadow:none;border-radius:6px;animation:none}.tile:hover{box-shadow:none;transform:none}.tile:hover img{filter:none;transform:none}.tile:hover:before{opacity:0}.dayHeader h2{font-size:22px}.day{scroll-margin-top:138px}.projectLine{border-radius:14px;margin:-2px 0 10px;padding:8px}.projectChip{max-width:100%}.projectChip b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.loadMoreBar{flex-direction:column;margin:16px 0 4px}.loadMoreBar button{width:100%;height:44px}.viewerClose{left:10px;top:calc(10px + env(safe-area-inset-top))}.viewerDelete{right:10px;top:calc(10px + env(safe-area-inset-top))}.viewerRotateTools{top:64px;right:12px}.viewerRotateTools button{padding:8px 10px;font-size:12px}.viewerNav{background:#1116;width:42px;height:42px}.viewerNav svg{width:23px;height:23px}.viewerPrev{left:8px!important}.viewerNext{right:8px!important}.viewerVote{bottom:calc(58px + env(safe-area-inset-bottom));padding:11px 15px;font-size:13px}.viewerVote.videoVote{bottom:calc(94px + env(safe-area-inset-bottom))}.viewerJumpTimeline{bottom:calc(146px + env(safe-area-inset-bottom));padding:8px 12px;font-size:12px}.imageZoomControls{top:calc(10px + env(safe-area-inset-top));gap:5px;padding:4px}.imageZoomControls button{min-width:38px;height:34px;padding:0 10px}.imageZoomControls button:nth-child(2){min-width:58px;font-size:13px}.dngDownload{bottom:calc(12px + env(safe-area-inset-bottom));padding:10px 14px;font-size:12px}.videoDownloadHint{right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:68vw;padding:7px 10px;font-size:11px}.uploadReviewBar{flex-direction:column;align-items:flex-start}.uploadReviewBar button{width:100%}.uploadReviewActions{grid-template-columns:1fr 1fr;width:100%;display:grid}.uploadReviewActions button{width:100%}.uploadDistributionCard{border-radius:18px;padding:12px}.uploadDistributionItem{grid-template-columns:1fr;align-items:stretch}.uploadDistributionItem button{width:100%}.backupStats{grid-template-columns:1fr}.backupMonth{grid-template-columns:1fr 64px 64px}.backTop{right:12px;bottom:calc(14px + env(safe-area-inset-bottom));width:42px;height:42px;font-size:22px}.dateModal{padding:20px 22px}.datePanel{border-radius:22px;width:100%;max-width:360px;padding:22px 20px}.dateProjectSearch{flex-direction:column}.dateProjectSearch button{height:42px}}@media (width<=420px){.grid,.highlightGrid{grid-template-columns:repeat(3,1fr)}.hero h1{font-size:34px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.tile:hover,.tile:hover img{transform:none!important}}:root{--paper:#e9ecef;--paper-soft:#f5f6f7;--card:#ffffffdb;--line:#1212121c;--line-soft:#12121211;--ink:#111417;--ink-soft:#343a40;--muted:#687078;--muted-2:#9aa1a8;--r-sm:5px;--r-md:14px;--r-lg:28px;--shadow-sm:0 2px 8px #1212120b;--shadow-card:0 10px 34px #12121211,0 1px 2px #1212120a;--shadow-float:0 24px 72px #12121229,0 4px 14px #12121214}body{background:radial-gradient(circle at 12% -8%,#fffffff5,transparent 30%), linear-gradient(180deg,#f6f8f9 0%,var(--paper) 48%,#e2e6e9 100%)}.app{max-width:1280px;padding:16px 22px 72px}.topbar{background:linear-gradient(#f6f8f9f5,#f6f8f9cc);border-bottom-color:#12121213;min-height:58px;padding:10px 4px}.brand{position:relative}.brand:after{content:"WORK PHOTO ARCHIVE";letter-spacing:.16em;color:var(--muted-2);white-space:nowrap;margin-left:2px;font-size:9px;font-weight:800;line-height:1}.brand img{height:22px}.brand span{letter-spacing:-.035em;font-size:17px}.loginToggle,.adminToggle{height:36px;box-shadow:none;background:#ffffffb3;padding:0 12px}.hero{grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:12px;margin-top:16px;margin-bottom:16px}.heroText{isolation:isolate;min-height:286px;animation:heroCompose .72s var(--ease) both;background:radial-gradient(circle at 78% 14%,#ffffff21,#0000 27%),linear-gradient(128deg,#252525 0%,#111 56%,#030303 100%);padding:38px 42px;box-shadow:0 28px 80px #08080840,0 2px 8px #0808081a}.heroText:before{content:"24";z-index:-1;color:#ffffff0e;letter-spacing:-.1em;pointer-events:none;font-size:210px;font-weight:900;line-height:1;position:absolute;bottom:-36px;right:22px}.heroText:after{opacity:.8;height:66%;inset:auto -8% -43% 16%}.hero h1{max-width:720px;margin-bottom:18px;font-size:clamp(38px,5vw,64px);line-height:.98}.hero p{color:#ffffff9e;max-width:620px;font-size:15px;line-height:1.75}.uploadBox{min-height:286px;animation:heroCompose .72s 70ms var(--ease) both;background:linear-gradient(145deg,#fffffffa,#f7f6f2e6);border-color:#12121218;box-shadow:0 16px 48px #12121213}.uploadBox>svg{color:#fff;background:#151515;border-radius:50%;width:50px;height:50px;padding:14px;box-shadow:0 12px 30px #0000002e}.uploadBox:hover{border-color:#1212123d;transform:translateY(-3px);box-shadow:0 28px 68px #12121221}.uploadChoiceButtons button{box-shadow:none}.uploadChoiceButtons button:first-child{box-shadow:0 10px 26px #12121229}.projectSearchBar{border-color:#12121217;border-radius:16px;min-height:54px;margin-bottom:10px;padding:8px 9px 8px 16px;box-shadow:0 8px 30px #1212120e}.projectSearchBar:focus-within{border-color:#12121247;box-shadow:0 0 0 3px #1212120e,0 12px 34px #12121212}.projectSearchBar input{letter-spacing:-.01em;font-size:16px}.filters{-webkit-backdrop-filter:blur(18px)saturate(1.05);backdrop-filter:blur(18px)saturate(1.05);background:#111111e8;border:1px solid #ffffff1a;border-radius:16px;gap:4px;margin-bottom:12px;padding:6px;top:64px;box-shadow:0 14px 38px #0808082e}.filters button{color:#ffffffb0;min-height:40px;box-shadow:none;background:0 0;border-color:#0000;padding:0 13px}.filters button svg{opacity:.78}.filters button:hover{color:#fff;box-shadow:none;background:#ffffff17;transform:none}.filters button.on{color:#111;background:#fff;box-shadow:0 5px 16px #0003}.filters button.selectModeButton{color:#fff;background:#ffffff14;border-color:#ffffff21}.filters button.selectModeButton svg{color:#fff}.filters button.selectModeButton:hover{background:#ffffff24;border-color:#ffffff2e}.filters button.selectModeButton.on{color:#111;background:#fff}.filters button.selectModeButton.on svg{color:#111}.monthPicker{border-radius:14px;padding:9px 11px;top:118px;box-shadow:0 6px 22px #1212120d}.monthPicker b{box-shadow:none;background:#161616}.timeline{gap:42px;margin-top:20px}.day{border-left:1px solid #12121224;padding:4px 0 0 18px;position:relative}.day+.day{padding-top:34px}.dayHeader{justify-content:flex-start;min-height:38px;margin:0 0 13px}.dayHeader:before{content:"";width:7px;height:28px;box-shadow:0 0 0 4px var(--paper);background:#151515;border-radius:999px;flex:none;margin-left:-22px}.dayHeader h2{letter-spacing:-.055em;font-size:clamp(22px,2.4vw,30px);font-weight:850}.dayAddProject{box-shadow:none;background:0 0;margin-left:auto}.projectLine{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-left:1px solid #12121233;border-radius:0;margin:-2px 0 14px;padding:0 0 0 14px}.projectChip{background:#ffffffa8;border-color:#1212121a;padding:6px 11px}.grid{grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:8px}.tile{outline-offset:-1px;border-radius:5px;outline:1px solid #ffffff52;animation:none;box-shadow:0 1px 2px #1212120d}.tile img{transition:transform .5s var(--ease),filter .3s ease}.tile:hover{z-index:2;transform:translateY(-3px);box-shadow:0 18px 42px #1212122e}.tile:hover img{filter:contrast(1.025)saturate(1.035);transform:scale(1.045)}.tile:before{background:linear-gradient(#ffffff0d,#0000 44%,#0003)}.votePill,.time,.play,.liveBadge{-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1)}.votePill{background:#0808087a;padding:5px 8px}.selectedTile{transform:translateY(-2px);box-shadow:inset 0 0 0 3px #111,0 18px 42px #12121233!important}.notice,.uploadReviewBar,.selectionBar,.loadNewerBar,.loadMoreBar,.uploadDistributionCard,.datePanel{animation:surfaceArrive .38s var(--ease) both}.backTop{transition:transform .22s var(--ease),background .2s ease;animation:backTopIn .35s var(--ease) both;background:#111111e0}.backTop:hover{background:#000;transform:translateY(-2px)}.viewerClose,.viewerNav,.viewerDelete,.viewerRotateTools button,.imageZoomControls,.viewerVote,.viewerJumpTimeline{transition:transform .2s var(--ease),background .2s ease,color .2s ease,opacity .2s ease}.viewerClose:hover,.viewerDelete:hover,.viewerRotateTools button:hover{transform:scale(1.045)}.viewerVote:hover{transform:translate(-50%)translateY(-2px)!important}.imageViewer,.videoViewer{background:radial-gradient(circle at 50% 42%,#202020,#090909 58%,#000 100%)}@keyframes heroCompose{0%{opacity:0;filter:blur(5px);transform:translateY(12px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes surfaceArrive{0%{opacity:0;transform:translateY(8px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes backTopIn{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=760px){.app{padding:10px 10px 58px}.brand:after{display:none}.hero{grid-template-columns:1fr;margin-top:5px;margin-bottom:12px}.heroText{min-height:190px;padding:28px 20px 24px;animation:none}.heroText:before{font-size:145px;bottom:-24px;right:8px}.hero h1{margin-bottom:14px;font-size:36px;line-height:1.02}.hero p{font-size:15px;line-height:1.65}.uploadBox{min-height:190px;animation:none}.filters{border-radius:14px;margin-bottom:10px;padding:5px;top:55px}.filters button{height:42px;min-height:42px;padding:0 14px}.timeline{gap:34px;margin-top:16px}.day+.day{padding-top:28px}.dayHeader{margin-bottom:10px}.dayHeader:before{width:3px;height:24px}.dayHeader h2{font-size:23px}.projectLine{margin-bottom:10px;padding-left:10px}.grid,.highlightGrid{grid-template-columns:repeat(3,1fr);gap:5px}.tile{border-radius:4px;outline:none}.tile:hover{box-shadow:none;transform:none}.notice,.uploadReviewBar,.selectionBar,.loadNewerBar,.loadMoreBar,.uploadDistributionCard,.datePanel{animation:none}}@media (prefers-reduced-motion:reduce){.heroText,.uploadBox,.notice,.uploadReviewBar,.selectionBar,.loadNewerBar,.loadMoreBar,.uploadDistributionCard,.datePanel,.backTop{animation:none!important}}.brand span,.brand:after,.hero h1,.loginCard h1,.dayHeader h2,.datePanel h3,.time,.play,.liveBadge,.votePill,.monthPicker b,.backupStats b,.uploadDistributionHeader b{font-family:var(--font-display)}.hero h1{letter-spacing:-.045em;font-weight:600}.brand span{letter-spacing:-.02em;font-weight:700}.dayHeader h2{font-weight:600}.time,.votePill,.monthPicker b,.backupStats b{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.monthPicker,.uploadDistributionCard,.calendarNotice,.projectAdminBar,.loadMoreBar,.backupLoading,.projectSearchBar{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--card-solid)}.workspaceHeader{grid-template-columns:minmax(0,1fr) minmax(330px,430px);gap:10px;margin:10px 0;display:grid}.workspaceHeading,.quickUpload{border-radius:18px;min-height:132px}.workspaceHeading{color:#fff;background:linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/22px 100%,linear-gradient(135deg,#20262b,#0e1114 72%);flex-direction:column;justify-content:center;padding:20px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 50px #0a0e122e}.workspaceHeading:after{content:"24";font-family:var(--font-display);letter-spacing:-.1em;color:#ffffff0b;pointer-events:none;font-size:128px;font-weight:700;line-height:1;position:absolute;bottom:-34px;right:18px}.workspaceEyebrow{z-index:1;color:#ffffff80;font-family:var(--font-display);letter-spacing:.16em;margin-bottom:7px;font-size:10px;font-weight:700;position:relative}.workspaceTitleRow{z-index:1;align-items:center;gap:12px;display:flex;position:relative}.workspaceTitleRow h1{font-family:var(--font-display);letter-spacing:-.045em;margin:0;font-size:clamp(28px,3.2vw,42px);font-weight:600;line-height:1}.mediaTally{color:#ffffffa8;font-variant-numeric:tabular-nums;border:1px solid #ffffff26;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700}.workspaceHeading p{z-index:1;color:#ffffff8c;margin:7px 0 0;font-size:13px;position:relative}.viewTabs{z-index:2;gap:5px;margin-top:12px;display:flex;position:relative}.viewTabs button{color:#ffffffa3;background:0 0;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:5px;min-height:30px;padding:0 11px;font-weight:750;display:inline-flex}.viewTabs button svg{width:13px;height:13px}.viewTabs button.on{color:#111;background:#fff;border-color:#fff}.quickUpload{background:#ffffffe6;border:1px solid #1212121a;flex-direction:column;justify-content:center;gap:12px;padding:18px 20px;display:flex;box-shadow:0 10px 34px #12121212}.quickUploadStatus{align-items:center;gap:11px;display:flex}.quickUploadStatus>svg{color:#fff;background:#15191c;border-radius:50%;width:34px;height:34px;padding:8px}.quickUploadStatus div{flex-direction:column;gap:2px;min-width:0;display:flex}.quickUploadStatus strong{letter-spacing:-.02em;font-size:16px}.quickUploadStatus span{color:var(--muted);font-size:12px;font-weight:650}.quickUpload .uploadChoiceButtons{justify-content:flex-start;margin:0}.quickUpload .uploadChoiceButtons button,.quickUpload .uploadChoiceButtons .albumDirectButton{min-width:0;height:38px;box-shadow:none;padding:0 14px}.quickUpload .progressWrap{width:100%;margin:0}.controlDeck{margin-bottom:8px}.projectSearchBar{min-height:48px;margin-bottom:8px;padding:6px 8px 6px 14px}.filters{margin-bottom:8px;padding:5px;position:static;top:auto}.filters button{min-height:38px;padding:0 12px}.filters .filterSpacer{flex:1 0 12px}.filters button.utilityButton{color:#ffffff80}.monthPicker{gap:8px;margin:0 0 12px;padding:8px 10px;top:64px}.monthPicker select{height:36px}.monthPicker b{font-family:var(--font-display);font-variant-numeric:tabular-nums}.selectionBar{top:64px}.loadNewerBar{position:static;top:auto}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #4ea1ff}.viewerOriginalAction{pointer-events:auto;white-space:nowrap;text-decoration:none;animation:none}@media (width<=760px){.workspaceHeader{grid-template-columns:1fr;gap:6px;margin:4px 0 8px}.workspaceHeading,.quickUpload{border-radius:14px;min-height:0}.workspaceHeading{padding:14px 16px}.workspaceHeading:after{font-size:92px;bottom:-26px;right:10px}.workspaceEyebrow{margin-bottom:5px}.workspaceTitleRow h1{font-size:25px}.workspaceHeading p{display:none}.viewTabs{margin-top:9px}.quickUpload{gap:9px;padding:12px 14px}.quickUploadStatus>svg{width:30px;height:30px}.quickUploadStatus strong{font-size:15px}.quickUpload .uploadChoiceButtons{flex-wrap:nowrap}.quickUpload .uploadChoiceButtons button,.quickUpload .uploadChoiceButtons .albumDirectButton{height:38px;font-size:13px}.quickUpload:not(.uploading){padding:8px 10px}.quickUpload:not(.uploading) .quickUploadStatus{display:none}.quickUpload:not(.uploading) .uploadChoiceButtons{width:100%}.quickUpload:not(.uploading) .uploadChoiceButtons button,.quickUpload:not(.uploading) .uploadChoiceButtons .albumDirectButton{flex:1}.projectSearchBar{flex-wrap:nowrap!important;min-height:48px!important;padding:5px 6px 5px 12px!important}.projectSearchBar input{flex:auto!important;min-width:0!important;min-height:0!important}.projectSearchBar button{padding:0 14px;flex:none!important;width:auto!important;height:38px!important}.filters .filterSpacer{display:none}.filters button.utilityButton{margin-left:auto}.day{padding-left:10px}.dayHeader:before{width:5px;box-shadow:0 0 0 3px var(--paper);margin-left:-13px}}.grid,.highlightGrid{columns:190px;grid-template-columns:none;column-gap:8px;display:block}.tile{aspect-ratio:auto;break-inside:avoid;-webkit-column-break-inside:avoid;vertical-align:top;width:100%;margin:0 0 8px;display:inline-block}.tile img{object-fit:contain;width:100%;height:auto;display:block;position:static}.videoTile,.rawTile{aspect-ratio:4/3;width:100%}@media (width<=760px){.grid,.highlightGrid{columns:2;column-gap:5px}.tile{margin:0 0 5px}}@media (width<=420px){.grid,.highlightGrid{columns:2}}:root{--t-viewer:.26s}.viewerShiftNext .originalLayer{animation:viewerFromRight .24s var(--ease) both}.viewerShiftPrev .originalLayer{animation:viewerFromLeft .24s var(--ease) both}.previewLayer{filter:blur(4px);opacity:.28}.viewer{animation:viewerFade .2s var(--ease) both}@media (width>=761px){.grid,.highlightGrid{columns:210px;column-gap:12px}.tile{margin:0 0 12px}}@media (width>=1400px){.grid,.highlightGrid{column-gap:14px}.tile{margin:0 0 14px}}@media (width<=760px){.votePill{padding:7px 10px;font-size:12px}.votePill svg{width:15px;height:15px}.deletePill{width:32px;height:32px}.play{width:30px;height:30px}.time{padding:4px 8px;font-size:11px}.grid,.highlightGrid{column-gap:6px}.tile{margin:0 0 6px}.viewerNav{width:46px;height:46px}}
