:root{--ink: #14141a;--muted: #6b6b7b;--line: #e5e5ec;--paper: #ffffff;--accent: #2b6bff;--accent-dark: #1d4fd0;--stage: #07070b;--radius: 16px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}.upload-page{max-width:560px;margin:0 auto;padding:32px 20px calc(48px + env(safe-area-inset-bottom));min-height:100%;display:flex;flex-direction:column;gap:22px}.upload-header{text-align:center}.upload-header h1{margin:0 0 6px;font-size:clamp(28px,8vw,38px);font-weight:700;letter-spacing:-.02em;line-height:1.1}.upload-header p{margin:0;color:var(--muted);font-size:17px}.name-field{display:block}.name-field span{display:block;font-size:14px;font-weight:600;margin-bottom:8px;color:var(--muted)}.name-field em{font-style:normal;font-weight:400;opacity:.75}.name-field input{width:100%;padding:15px 16px;font-size:17px;font-family:inherit;border:1.5px solid var(--line);border-radius:12px;background:#fafafc;transition:border-color .15s,background .15s}.name-field input:focus{outline:none;border-color:var(--accent);background:#fff}.big-button{width:100%;padding:22px 24px;font-size:19px;font-weight:650;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:var(--radius);cursor:pointer;box-shadow:0 6px 20px #2b6bff47;transition:transform .12s,background .15s,box-shadow .15s}.big-button:active{transform:scale(.985)}.big-button:hover:not(:disabled){background:var(--accent-dark)}.big-button:disabled{background:#a9b6d6;box-shadow:none;cursor:default}.thanks{margin:0;text-align:center;font-size:16px;font-weight:600;color:#12864a}.thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:#ededf2}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-uploading img{opacity:.45}.thumb-failed img{opacity:.35}.thumb-spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:24px;height:24px;border:3px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.thumb-check{position:absolute;right:6px;bottom:6px;width:22px;height:22px;border-radius:50%;background:#12864a;color:#fff;font-size:13px;display:grid;place-items:center;box-shadow:0 1px 4px #0000004d}.thumb-retry{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#c81e1ed1;color:#fff;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.fine-print{margin:auto 0 0;text-align:center;font-size:13px;color:var(--muted);line-height:1.5}.setup-warning{max-width:560px;margin:80px auto;padding:0 24px;line-height:1.6}.setup-warning code{background:#f0f0f5;padding:2px 6px;border-radius:5px;font-size:.9em}.show-root{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--stage);overflow:hidden;cursor:none}.slide{position:absolute;top:0;right:0;bottom:0;left:0}.slide-under{z-index:1}.slide-over{z-index:2;animation:fade-in 1.1s ease both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.slide-backdrop{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;background-size:cover;background-position:center;filter:blur(48px) brightness(.42) saturate(1.25);transform:scale(1.12)}.slide-img{position:absolute;top:0;right:0;bottom:10vh;left:0;margin:auto;max-width:90vw;max-height:76vh;object-fit:contain;border-radius:4px;box-shadow:0 30px 90px #0009;transform-origin:center}.drift-0{animation:drift-0 14s ease-out both}.drift-1{animation:drift-1 14s ease-out both}.drift-2{animation:drift-2 14s ease-out both}.drift-3{animation:drift-3 14s ease-out both}@keyframes drift-0{0%{transform:scale(1) translate(0)}to{transform:scale(1.05) translate(-1%,-.5%)}}@keyframes drift-1{0%{transform:scale(1.05) translate(1%)}to{transform:scale(1) translate(0)}}@keyframes drift-2{0%{transform:scale(1) translateY(.5%)}to{transform:scale(1.05) translate(1%,-.5%)}}@keyframes drift-3{0%{transform:scale(1.04) translate(-1%,.5%)}to{transform:scale(1) translate(0)}}@media (prefers-reduced-motion: reduce){.drift-0,.drift-1,.drift-2,.drift-3{animation:none}}.show-credit{position:absolute;left:3vw;bottom:3vh;z-index:5;color:#fff;font-size:clamp(18px,2.1vw,34px);font-weight:600;letter-spacing:-.01em;text-shadow:0 2px 14px rgba(0,0,0,.85);animation:fade-in 1.4s ease both}.show-new-badge{position:absolute;top:3vh;left:3vw;z-index:6;padding:.5em 1.1em;border-radius:999px;background:var(--accent);color:#fff;font-size:clamp(14px,1.4vw,22px);font-weight:700;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 6px 24px #2b6bff80;animation:pop-in .5s cubic-bezier(.2,1.5,.4,1) both}.show-pair{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex}.show-half{position:relative;flex:1 1 50%;height:100%;overflow:hidden}.show-half .slide-img{max-width:88%}.show-half .show-credit,.show-half .show-new-badge{left:6%}@keyframes pop-in{0%{opacity:0;transform:translateY(-12px) scale(.85)}to{opacity:1;transform:none}}.show-corner{position:absolute;right:2.5vw;bottom:2.5vh;z-index:5;display:flex;align-items:center;gap:14px;padding:12px 18px 12px 12px;border-radius:14px;background:#fffffff0;box-shadow:0 10px 40px #00000073}.show-corner img{width:clamp(64px,6.5vw,118px);height:auto;display:block;border-radius:6px}.show-corner-text{display:flex;flex-direction:column;gap:3px;color:#14141a}.show-corner-text strong{font-size:clamp(13px,1.15vw,20px)}.show-corner-text span{font-size:clamp(11px,.95vw,16px);color:#5a5a6b}.show-count{position:absolute;top:3vh;right:3vw;z-index:5;color:#ffffff8c;font-size:clamp(12px,1.05vw,18px);font-weight:500;letter-spacing:.02em}.show-offline{color:#ffb454}.show-paused{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;display:grid;place-items:center;color:#ffffffe6;font-size:clamp(24px,4vw,60px);font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#0006}.show-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#fff;text-align:center;padding:5vh 5vw}.show-empty h1{margin:0;font-size:clamp(28px,5vw,68px);font-weight:700;letter-spacing:-.02em}.show-empty-title{margin:0;font-size:clamp(16px,2.2vw,32px);color:#ffffffb3}.show-empty-qr{width:clamp(180px,26vw,380px);border-radius:14px;background:#fff;padding:14px;box-shadow:0 20px 60px #00000080}.show-empty-url{margin:0;font-size:clamp(14px,1.6vw,24px);color:#ffffff8c;letter-spacing:.02em}.admin-lock{max-width:380px;margin:15vh auto;padding:0 24px;text-align:center}.admin-lock h1{font-size:26px;margin:0 0 6px}.admin-lock p{color:var(--muted);margin:0 0 22px}.admin-lock form{display:flex;gap:10px}.admin-lock input{flex:1;padding:14px 16px;font-size:17px;font-family:inherit;border:1.5px solid var(--line);border-radius:12px}.admin-lock input:focus{outline:none;border-color:var(--accent)}.admin-lock button,.admin-header button{padding:14px 22px;font-size:16px;font-weight:600;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:12px;cursor:pointer}.admin-error{color:#c62828;font-size:15px;margin-top:16px}.admin-page{max-width:1200px;margin:0 auto;padding:28px 20px 60px}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.admin-header h1{margin:0 0 4px;font-size:26px}.admin-header p{margin:0;color:var(--muted);font-size:15px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.admin-card{margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;transition:opacity .2s}.admin-card.is-hidden{opacity:.42}.admin-card.is-working{opacity:.5;pointer-events:none}.admin-card img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block;background:#f0f0f5}.admin-card figcaption{padding:10px 12px 12px}.admin-card figcaption>span{display:block;font-size:14px;font-weight:600;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-actions{display:flex;gap:8px}.admin-actions button{flex:1;padding:8px;font-size:13px;font-weight:600;font-family:inherit;border:1px solid var(--line);border-radius:8px;background:#f7f7fa;color:var(--ink);cursor:pointer}.admin-actions button:hover{background:#eeeef4}.admin-actions .danger{color:#c62828;border-color:#f3d4d4}.admin-actions .danger:hover{background:#fdeaea}.admin-actions .danger.is-armed{color:#fff;background:#c62828;border-color:#c62828}.admin-actions .danger.is-armed:hover{background:#ad1f1f}.admin-empty{color:var(--muted);text-align:center;padding:60px 0}.sign-page{background:#f3f3f7;min-height:100%;padding:24px}.sign-toolbar{max-width:640px;margin:0 auto 24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.sign-toolbar button{padding:12px 20px;font-size:15px;font-weight:600;font-family:inherit;color:#fff;background:var(--accent);border:none;border-radius:10px;cursor:pointer}.sign-toolbar span{color:var(--muted);font-size:14px}.sign-sheet{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:24px}.sign-card{background:#fff;border-radius:14px;padding:40px 32px 34px;text-align:center;box-shadow:0 2px 12px #00000014;break-inside:avoid;page-break-inside:avoid}.sign-kicker{margin:0 0 10px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.sign-title{margin:0 0 8px;font-size:34px;font-weight:700;letter-spacing:-.02em}.sign-sub{margin:0 0 24px;color:var(--muted);font-size:16px}.sign-qr{width:230px;height:230px;display:block;margin:0 auto 24px}.sign-steps{margin:0 0 18px;display:flex;flex-direction:column;gap:6px;font-size:15px;color:#3a3a48}.sign-url{margin:0;font-size:14px;color:var(--muted);letter-spacing:.02em}@media print{.sign-page{background:#fff;padding:0}.sign-toolbar{display:none}.sign-sheet{max-width:none;gap:0}.sign-card{box-shadow:none;border-radius:0;padding:8% 10%}@page{margin:.4in}}
