*{box-sizing:border-box}body{color:#202326;background:#f7f6f3;margin:0;font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Arial,sans-serif}button,a{font:inherit}.brand{letter-spacing:.08em;font-family:Georgia,serif;font-size:18px}.landing{text-align:center;background:#fff;border:1px solid #ebe9e3;border-radius:24px;max-width:720px;margin:12vh auto;padding:48px}.landing h1{margin:30px 0 12px;font-size:42px}.landing p{color:#777;line-height:1.7}.actions{justify-content:center;gap:12px;margin-top:30px;display:flex}.primary,.secondary{cursor:pointer;border:0;border-radius:10px;padding:13px 20px;text-decoration:none}.primary{color:#fff;background:#202326}.primary:disabled{opacity:.35;cursor:not-allowed}.secondary{color:#202326;background:#fff;border:1px solid #d8d8d4}.full{width:100%}.mobile-shell{background:#fff;max-width:520px;min-height:100vh;margin:0 auto;padding-bottom:110px}.gallery-header{border-bottom:1px solid #eee;padding:28px 22px 14px}.gallery-header h1{margin:28px 0 8px;font-size:25px}.gallery-header p{color:#777;margin:5px 0;font-size:14px}.filter-row{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;background:#fffffff0;gap:8px;padding:16px 18px;display:flex;position:sticky;top:0}.chip{background:#f2f2ef;border:0;border-radius:999px;padding:9px 14px}.chip.active{color:#fff;background:#222}.photo-grid{grid-template-columns:1fr 1fr;gap:10px;padding:0 12px;display:grid}.photo-card{text-align:left;cursor:pointer;background:0 0;border:0;padding:0;position:relative}.photo-card img{aspect-ratio:3/4;object-fit:cover;border-radius:12px;width:100%;display:block}.photo-card.selected img{outline-offset:-3px;outline:3px solid #222}.photo-card small{color:#777;padding:7px 2px 12px;font-size:11px;display:block}.heart{background:#ffffffe6;border-radius:50%;place-items:center;width:31px;height:31px;font-size:20px;display:grid;position:absolute;top:10px;right:10px}.photo-card.selected .heart{color:#ef476f}.bottom-bar{z-index:4;background:#fffffff5;border-top:1px solid #ddd;justify-content:space-between;align-items:center;gap:14px;width:min(520px,100%);padding:14px 16px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-bar small{color:#888;display:block}.bottom-bar strong{font-size:21px}.success-screen{text-align:center;padding:28px 24px}.brand.top{text-align:left}.success-icon{color:#fff;background:#202326;border-radius:50%;place-items:center;width:70px;height:70px;margin:120px auto 25px;font-size:34px;display:grid}.success-screen h1{font-size:26px}.success-screen p{color:#777;line-height:1.7}.summary-card{text-align:left;background:#f7f6f3;border-radius:16px;grid-template-columns:1fr 1fr;gap:14px;margin:35px 0;padding:22px;font-size:14px;display:grid}.summary-card span{color:#888}.admin-shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.admin-shell aside{color:#fff;background:#1f2326;padding:28px 22px}.inverse{font-size:19px}.admin-shell aside small{color:#aeb2b4}.admin-shell nav{flex-direction:column;gap:9px;margin-top:38px;display:flex}.admin-shell nav b{color:#c7cbcd;border-radius:9px;padding:12px;font-weight:500}.admin-shell nav .nav-active{color:#fff;background:#343a3e}.admin-main{max-width:1250px;padding:40px}.admin-title,.section-title{justify-content:space-between;align-items:center;gap:20px;display:flex}.admin-title h1{margin:0;font-size:30px}.admin-title p{color:#888}.admin-card{background:#fff;border:1px solid #e8e6e1;border-radius:16px;margin-top:22px;padding:20px;overflow:auto}.tabs{border-bottom:1px solid #eee;gap:25px;padding-bottom:16px;display:flex}.tabs span{color:#888}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #eee;padding:15px 12px;font-size:14px}th{color:#777}.status{color:#25854a;background:#e9f5ec;border-radius:999px;padding:5px 9px}.file-chips{flex-wrap:wrap;gap:9px;display:flex}.file-chips code{background:#f5f4f1;border-radius:8px;padding:10px}@media (max-width:760px){.admin-shell{grid-template-columns:1fr}.admin-shell aside{display:none}.admin-main{padding:18px}.admin-title{align-items:flex-start}.admin-title .primary{white-space:nowrap}.landing{margin:20px}.landing h1{font-size:32px}}
