:root{color-scheme:light;--bg:#fcf8f5;--paper:#fff;--ink:#342d3f;--muted:#74697e;--purple:#704194;--line:#e9dfec;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar,main::-webkit-scrollbar{display:none;width:0;height:0}body{position:fixed;inset:0}body.dialog-open main{overflow-y:hidden}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}:focus{outline:none}
:root{--safe-area-top:env(safe-area-inset-top,0px)}
html.viewer-open,html.viewer-open body{background:#161119;color-scheme:dark}
main{position:fixed;inset:var(--safe-area-top) 0 0;max-width:920px;margin:0 auto;padding:0 14px calc(110px + env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:none}.hero{text-align:center;padding:30px 18px 28px}.hero h1{font:400 28px/1.25 Georgia,serif;margin:0;text-wrap:balance}.hero p{font-size:13px;line-height:1.6;color:var(--muted);margin:12px auto 0;max-width:260px}.page-message{text-align:center;color:var(--muted);font-size:14px;padding:44px 20px;line-height:1.6}.wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1px;gap:9px;align-items:stretch;overflow-anchor:none}.tile{position:relative;min-width:0;width:100%;border:0;border-radius:12px;overflow:hidden;padding:0;background:#e8dfea;isolation:isolate}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile-time{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,#24182caa);padding:20px 9px 8px;color:white;font-size:11px;text-align:left}.retry-load{margin:18px auto}.upload-dock{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,640px);padding:12px 17px calc(14px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);z-index:3}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;width:100%;padding:12px 16px;border:0;border-radius:14px;font-size:14px;line-height:1.4;text-decoration:none}.primary{background:var(--purple);color:#fff;font-weight:500}.secondary{background:var(--bg);color:var(--purple);border:1px solid var(--line)}.latest{position:fixed;bottom:calc(91px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:2;min-height:44px;display:flex;align-items:center;gap:7px;padding:10px 15px;background:var(--paper);color:var(--purple);border:1px solid var(--line);border-radius:24px;box-shadow:0 4px 16px #3020382b;white-space:nowrap;font-size:13px}
dialog{border:0;color:var(--ink)}dialog::backdrop{background:#21152e77}.upload-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,430px);max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;border-radius:25px 25px 0 0;background:var(--paper);padding:16px 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -10px 35px #23122f20}.sheet-handle{width:36px;height:4px;border-radius:5px;background:var(--line);margin:0 auto 17px}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.sheet-header h2{font:400 24px/1.2 Georgia,serif;margin:0}.icon-button{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:0;background:var(--bg);color:var(--ink);border-radius:50%}.help{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 17px}.file-picker{position:relative;overflow:hidden;cursor:pointer}.file-picker input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.selection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0}.selected-photo{position:relative;min-width:0}.selected-photo img,.selected-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100px;object-fit:cover;border-radius:10px;background:#e8dfea}.selected-placeholder svg{width:32px;height:32px;color:var(--purple)}.selected-name{display:block;font-size:11px;overflow-wrap:anywhere;color:var(--muted);margin:5px 0}.selected-state{font-size:11px;color:var(--purple)}.selected-state.failed{color:#a22c38}.consent{font-size:11px;line-height:1.6;color:var(--muted);margin:17px 0}.error{color:#a22c38;font-size:13px;line-height:1.6}progress{width:100%;height:6px;appearance:none;border:0;border-radius:5px;overflow:hidden;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--purple)}progress::-moz-progress-bar{background:var(--purple)}#progress-label{font-size:13px;color:var(--muted)}#upload-success{text-align:center}#upload-success h3{font:400 24px/1.2 Georgia,serif;margin:0 0 12px}#upload-success .secondary{margin-top:10px}.success-mark{width:56px;height:56px;border-radius:50%;background:var(--bg);color:var(--purple);display:grid;place-items:center;margin:6px auto 18px}.success-mark svg{width:28px;height:28px}
.viewer{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;background:#161119;color:#fff;padding:0;overflow:hidden}.viewer[open]{display:flex;flex-direction:column}.viewer::backdrop{background:#161119}.viewer-header,.viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.viewer-header{padding:calc(24px + env(safe-area-inset-top,0px)) max(20px,calc(12px + env(safe-area-inset-right,0px))) 12px max(20px,calc(12px + env(safe-area-inset-left,0px)))}.viewer-footer{padding:12px max(20px,calc(12px + env(safe-area-inset-right,0px))) calc(24px + env(safe-area-inset-bottom,0px)) max(20px,calc(12px + env(safe-area-inset-left,0px)))}.viewer-button{width:44px;height:44px;display:grid;place-items:center;padding:8px;border:0;border-radius:50%;background:#322839;color:#fff;text-decoration:none;flex-shrink:0}.viewer-button svg{width:22px;height:22px}.photo-count,#photo-time{font-size:12px;color:#e1d5e8}.swipe{display:flex;align-items:center;justify-content:center;position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none;user-select:none}.swipe img{width:100%;height:100%;object-fit:contain;display:block;flex-shrink:0;-webkit-user-drag:none}.swipe #photo-error{position:absolute;margin:0 30px;text-align:center;font-size:13px;color:#e1d5e8}.viewer[aria-busy="true"] .swipe{opacity:.65}
.viewer-actions{position:relative;flex-shrink:0}.photo-actions{position:absolute;top:calc(100% + 10px);right:0;z-index:2;min-width:210px;max-width:calc(100vw - 40px);padding:6px;background:#322839;border:1px solid #51415d;border-radius:16px;box-shadow:0 8px 24px #0006}.photo-action{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px;border:0;border-radius:10px;background:transparent;color:#fff;text-align:left;text-decoration:none;font-size:14px}.photo-action:active{background:#4a3d54}
.share-help{flex-shrink:0;text-align:center;padding:0 20px;font-size:13px;line-height:1.5;color:#e1d5e8}.share-help p{margin:8px 0}.share-help a{display:inline-block;padding:10px;color:#fff;text-underline-offset:3px}#share-photo[aria-busy="true"]{opacity:.65}
@media(min-width:700px){.wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hero{padding-top:40px;padding-bottom:34px}.hero h1{font-size:34px}.upload-dialog{inset:50% auto auto 50%;transform:translate(-50%,-50%);border-radius:24px;padding-bottom:24px}.upload-dock{border-radius:20px 20px 0 0}}@media(max-width:360px){.hero h1{font-size:24px}main{padding-left:10px;padding-right:10px}.upload-dialog{padding-left:18px;padding-right:18px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
