:root{--purple:#4b2a6d;--soft:#7d638f;--muted:#9b90a3;--line:#e9e2ed;--wash:#faf8fc;--serif:"Songti SC","Songti TC","STSong","SimSun","Noto Serif CJK SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--purple);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #cab5db;outline-offset:4px}.page{max-width:440px;margin:0 auto;padding:14px 24px 110px}.hero{text-align:center;padding:0 0 30px}.crest{display:block;width:150px;height:150px;object-fit:contain;margin:0 auto}h1{font-family:var(--serif);font-size:29px;font-weight:500;letter-spacing:3px;margin:4px 0 11px}.hero>p{font-family:var(--serif);font-size:13px;letter-spacing:2px;color:var(--soft);margin:0}.latest{border-top:1px solid var(--line);padding-top:21px}.location-heading{display:flex;align-items:center;justify-content:space-between;height:23px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--muted)}.icon-button{border:0;background:none;color:var(--soft);font-size:24px;width:40px;height:40px;display:grid;place-items:center;margin-right:-10px}h2{font-family:var(--serif);font-weight:500}#latest-location{font-size:26px;line-height:1.5;letter-spacing:1px;margin:7px 0 5px;overflow-wrap:anywhere}#latest-time{font-size:11px;line-height:1.7;color:var(--muted)}.latest-photo{width:100%;border:0;border-radius:7px;overflow:hidden;background:var(--wash);padding:0;margin:19px 0 0;display:block;cursor:zoom-in;aspect-ratio:4/3}.latest-photo img{display:block;width:100%;height:100%;object-fit:cover}.photo-hint{font-size:10px;text-align:center;color:var(--muted);margin:12px 0 0}.page-status{font-family:var(--serif);font-size:15px;text-align:center;line-height:1.9;color:var(--soft);margin:40px 0}.empty{padding:23px 10px 34px;text-align:center}.empty-mark{display:block;font-size:29px;color:#c3ae79;margin-bottom:15px}.empty p{font-family:var(--serif);font-size:21px;letter-spacing:1px;margin:0 0 12px}.empty>span:last-child{color:var(--muted);font-size:12px;line-height:1.8}#retry-load{display:block;margin:0 auto 25px}footer{text-align:center;color:#aaa0b0;font-size:10px;letter-spacing:.5px;margin-top:30px}.bottom-bar{position:fixed;z-index:1;bottom:0;left:0;right:0;padding:15px 24px max(17px,env(safe-area-inset-bottom));background:linear-gradient(to bottom,#ffffff00,#fff 15px);display:flex;justify-content:center}.primary{border:1px solid var(--purple);background:var(--purple);color:white;border-radius:7px;min-height:50px;width:100%;font-family:var(--serif);font-size:18px;letter-spacing:2px;padding:13px 16px;transition:background .15s}.primary:active{background:#634180}.bottom-bar .primary{max-width:392px}.primary>span{font-family:var(--sans);font-size:19px;margin-right:5px}.text-button{border:0;background:none;color:var(--soft);font-size:12px;padding:12px 6px;min-height:42px;text-decoration:underline;text-underline-offset:4px}
.sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:440px;max-height:94dvh;overflow:auto;overscroll-behavior:contain;border:0;border-radius:19px 19px 0 0;padding:25px 24px max(24px,env(safe-area-inset-bottom));color:var(--purple);background:white}.sheet::backdrop,.photo-dialog::backdrop{background:#25133166}.sheet-handle{width:32px;height:4px;border-radius:4px;background:#ddd3e3;position:absolute;top:10px;left:calc(50% - 16px)}.close-button{position:absolute;right:10px;top:14px;width:44px;height:44px;background:transparent;border:0;font-size:28px;font-weight:300;line-height:1;color:var(--soft)}.sheet h2{font-size:24px;letter-spacing:2px;margin:14px 40px 10px 0}.sheet-description{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 24px}form>label{display:block;font-size:13px;color:var(--soft);margin:19px 0 10px}#location{display:block;width:100%;height:49px;min-width:0;border:1px solid #ddd3e5;border-radius:6px;background:white;font-size:16px;padding:12px;color:var(--purple)}#location::placeholder{color:#b1a5b8;font-size:14px}.location-hint{font-size:10px;line-height:1.7;color:var(--muted);margin:7px 0 0}.upload-zone{display:flex;position:relative;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-height:164px;padding:20px 10px;border:1px dashed #c9b7d8;border-radius:6px;background:var(--wash);text-align:center;cursor:pointer;overflow:hidden}.upload-zone:focus-within{outline:3px solid #cab5db;outline-offset:3px}.upload-zone svg{width:30px;height:30px;color:#896ba1;margin:3px 0}#photo-label{font-size:13px;color:var(--soft)}#photo-hint{font-size:10px;color:#a195a9}.upload-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-zone img{display:block;max-height:175px;max-width:100%;object-fit:contain;border-radius:3px}.consent{font-size:10px;line-height:1.8;color:var(--muted);margin:16px 0}.form-message{font-size:13px;line-height:1.9;margin:14px 0;color:var(--soft);overflow-wrap:anywhere}.form-message.error{color:#a4435a}.withdraw{display:block;margin:8px auto 0}#turnstile{margin-top:14px;overflow:hidden}#turnstile:empty{display:none}.photo-dialog{position:fixed;inset:0;margin:auto;width:100%;max-width:100%;max-height:100dvh;padding:55px 0 20px;border:0;background:transparent;overflow:visible}.photo-dialog::backdrop{background:#160f1ce8}.photo-dialog img{display:block;max-width:100%;max-height:85dvh;object-fit:contain;margin:auto}.photo-dialog .close-button{color:#fff;right:12px;top:0}
/* The review console is operational only and is not linked from the public page. */
.admin-page{max-width:780px;margin:32px auto;padding:0 20px}.admin-page h1{margin:30px 0 15px}.admin-page p{line-height:1.9;font-size:13px}.admin-login{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.admin-login input{flex:1;min-width:200px;padding:12px;border:1px solid var(--line);border-radius:4px;font-size:16px}.admin-login button,.admin-actions button{border:1px solid var(--line);background:var(--wash);color:var(--purple);border-radius:4px;padding:11px 14px}.admin-card{padding:24px 0;border-bottom:1px solid var(--line)}.admin-card p{white-space:pre-wrap;overflow-wrap:anywhere}.admin-card img{max-width:100%;max-height:350px;object-fit:contain}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-meta{font-size:11px!important;color:var(--muted)}.status-badge{font-size:10px;padding:3px 7px;background:#eee6f4;color:var(--purple);border-radius:3px}.load-more{margin:20px 0;padding:13px;border:1px solid var(--line);background:var(--wash);color:var(--purple);width:100%}
@media(min-width:640px){.page{padding-top:38px}.sheet{inset:0;margin:auto;height:fit-content;max-height:90dvh;border-radius:14px}.sheet-handle{display:none}.bottom-bar{background:#fff}.hero{padding-bottom:35px}}@media(max-width:359px){.page{padding:6px 20px 102px}.crest{width:125px;height:125px}h1{font-size:26px}.hero{padding-bottom:24px}.sheet{padding-left:20px;padding-right:20px}.bottom-bar{padding-left:20px;padding-right:20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
