@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@500;600;700&display=swap";:root{color:#211d19;background:#f3f0ea;font-family:"Noto Serif SC",Songti SC,serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f3f0ea}html,body{overscroll-behavior-y:none}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid #c66341;outline-offset:3px}.button{display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:6px 13px;border:1px solid transparent;border-radius:2px;font-family:inherit;font-size:12px;line-height:1.5;white-space:nowrap;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}.button:disabled{cursor:default;opacity:.5}.button--filled{background:#c66041;border-color:#c66041;color:#fffaf4}.button--filled:hover:not(:disabled){background:#a44b32;border-color:#a44b32}.button--danger{background:#c9502f;border-color:#c9502f;color:#fffaf4}.button--danger:hover:not(:disabled){background:#aa3f24;border-color:#aa3f24}.button--outlined{background:transparent;border-color:#fffaf44d;color:#fffaf4}.button--outlined:hover:not(:disabled){background:#fffaf41a}.button--inverse{background:#fffaf4;border-color:#fffaf4;color:#2c201b}.button--inverse:hover:not(:disabled){background:#f4c9b5;border-color:#f4c9b5}.button__icon{font-size:18px;line-height:1}.onboarding-shell{position:relative;display:flex;min-height:100dvh;align-items:end;padding:clamp(28px,7vw,86px);overflow:hidden;color:#fffaf4;background:linear-gradient(90deg,#1b1410c2,#1b14105e 53%,#1b141024),url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1800&q=88) center / cover}.onboarding-shell:after{position:absolute;inset:0;content:"";background:linear-gradient(0deg,rgba(18,13,11,.42),transparent 52%);pointer-events:none}.onboarding-content{position:relative;z-index:1;width:min(530px,100%);animation:onboarding-rise .8s cubic-bezier(.2,.8,.2,1) both}.onboarding-brand{display:flex;align-items:center;gap:9px;margin-bottom:clamp(62px,15vh,154px);font-size:15px;font-weight:700;letter-spacing:.025em}.onboarding-mark{width:27px;height:27px;border-radius:50%;object-fit:cover;flex:none}.onboarding-kicker{margin:0 0 17px;color:#f0d7c7;font:500 11px/1.2 DM Mono,monospace;letter-spacing:.13em}.onboarding-content h1{max-width:none;font-size:clamp(48px,7vw,76px);letter-spacing:-.07em}.onboarding-copy{max-width:350px;margin:20px 0 30px;color:#f1e4da;font-size:15px;line-height:1.8}.onboarding-content .auth-message{margin:0 0 18px;color:#fff6ee;border-color:#f0c2a7;background:#68291a85}.onboarding-button{min-width:190px;padding:14px 20px;font-size:15px}.error-box{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;color:#2d2d2d;background:radial-gradient(ellipse at 50% 40%,#fff0f5,#fffbfc 60%)}.app-shell{min-height:100dvh;padding:0 32px 140px}.topbar{height:74px;display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:auto;border-bottom:1px solid #d8d1c6}.brand-lockup{display:flex;gap:9px;align-items:center;font-size:15px;font-weight:700;letter-spacing:.025em}.brand-mark{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:none}.visitor-chip{display:flex;align-items:center;gap:8px;max-width:160px;font-size:13px}.visitor-chip img,.visitor-chip span{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#c66341;color:#fff;display:grid;place-items:center;flex:none}.visitor-chip b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-intro{max-width:1280px;margin:0 auto;padding:76px 0 52px;animation:intro-in .7s cubic-bezier(.2,.8,.2,1) both}.eyebrow{margin:0 0 15px;font:500 11px/1.2 DM Mono,monospace;color:#9a5a41;letter-spacing:.13em}h1{margin:0;max-width:720px;font-size:clamp(39px,6vw,78px);line-height:1.09;letter-spacing:-.065em;font-weight:700}.album-meta{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:11px;color:#6a625a;font:12px/1.4 DM Mono,monospace}.album-meta i{width:3px;height:3px;border-radius:50%;background:#bdafa1}.auth-message{max-width:1280px;margin:-25px auto 24px;padding:11px 14px;color:#913d28;border-left:2px solid #b54d32;background:#f0ded7;font-size:13px}.view-switcher{position:sticky;top:0;z-index:4;max-width:1280px;margin:auto;display:flex;overflow-x:auto;border-top:1px solid #d8d1c6;border-bottom:1px solid #d8d1c6;background:#f3f0ea;scrollbar-width:none}.view-switcher::-webkit-scrollbar{display:none}.view-switcher button{flex:none}.view-switcher button{position:relative;padding:15px 22px 14px 0;margin-right:25px;color:#8b8278;border:0;background:transparent;font-size:14px}.view-switcher button.active{color:#211d19;font-weight:700}.tab-indicator{position:absolute;left:0;bottom:0;height:2px;background:#b45035;transition:transform .32s cubic-bezier(.2,0,0,1),width .32s cubic-bezier(.2,0,0,1);will-change:transform,width}.tab-track{position:relative;width:100%}.tab-panel{position:absolute;top:0;left:0;width:100%}.workspace{max-width:1280px;margin:auto;padding-top:28px;overflow:hidden;touch-action:pan-y}.masonry{display:flex;align-items:flex-start;gap:var(--masonry-gap, 3px)}.masonry-column{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--masonry-gap, 3px)}.photo-wall-cell{position:relative;line-height:0}.photo-wall-cell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#e4dcd1 20%,#f4efe8,#e4dcd1 60%);background-size:300% 100%;animation:photo-wall-shimmer 1.4s ease-in-out infinite}.photo-wall-cell--loaded:before{content:none}@keyframes photo-wall-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.photo-wall-cell.selected:after{content:"";position:absolute;inset:0;border:2px solid #b45035;pointer-events:none}.photo-wall-item{display:block;width:100%;padding:0;border:0;background:#ded7cc;line-height:0}.photo-wall-lock{position:absolute;right:6px;bottom:6px;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#211d196b;color:#fff;pointer-events:none}.photo-wall-lock svg{width:14px;height:14px}.photo-wall-check{position:absolute;top:6px;right:6px;width:32px;height:32px;padding:0;display:grid;place-items:center;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#211d192e;color:#fff;box-shadow:0 1px 4px #00000047;transition:background .16s ease,border-color .16s ease}.photo-wall-check svg{width:18px;height:18px}.photo-wall-check.checked{background:#b45035;border-color:#b45035}.photo-wall-item img{display:block;width:100%;height:auto;object-fit:cover;background:#ded7cc;transition:filter .3s ease,opacity .24s ease;animation:photo-wall-fade-in .24s ease both}@keyframes photo-wall-fade-in{0%{opacity:0}to{opacity:1}}.photo-wall-item:hover img{filter:saturate(1.06) brightness(1.02)}.uploader-groups{display:flex;flex-direction:column;gap:52px}.uploader-group{scroll-margin-top:20px}.uploader-heading{display:flex;align-items:center;gap:11px;margin-bottom:14px}.uploader-heading img{width:38px;height:38px;border-radius:50%;object-fit:cover}.uploader-heading div{display:grid;gap:1px}.uploader-heading strong{font-size:15px}.uploader-heading span{color:#887d72;font:11px DM Mono,monospace}.uploader-heading--action{padding:0;border:0;background:transparent;color:inherit;-webkit-text-fill-color:inherit;text-align:left;cursor:pointer}.uploader-heading strong{color:#211d19}.empty-state{grid-column:1 / -1;display:grid;place-items:center;min-height:330px;text-align:center;color:#786e64}.empty-state span{font-size:42px}.empty-state p{margin:12px 0 3px;color:#312a25}.empty-state small{font-size:12px}.upload-dock{position:fixed;z-index:5;left:50%;bottom:22px;transform:translate(-50%);width:min(630px,calc(100% - 32px));height:58px;box-sizing:border-box;padding:0 14px 0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fffaf4;background:#261f1af0;box-shadow:0 16px 36px #251b1538;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.upload-dock div{display:grid;gap:2px;min-width:0}.selection-dock{position:fixed;z-index:6;left:50%;bottom:22px;transform:translate(-50%);width:min(630px,calc(100% - 32px));height:58px;box-sizing:border-box;padding:0 14px 0 12px;display:flex;align-items:center;gap:12px;color:#fffaf4;background:#261f1af5;box-shadow:0 16px 36px #251b1538;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.selection-dock strong{font-size:13px;white-space:nowrap}.selection-close{width:26px;height:26px;flex:none;border:0;border-radius:50%;background:#fffaf41f;color:#fffaf4;font-size:16px;line-height:1}.selection-actions{margin-left:auto;display:flex;gap:8px}.selection-actions .button{flex:none}.visibility-sheet{position:absolute;left:0;right:0;bottom:0;padding:18px 16px calc(18px + env(safe-area-inset-bottom));display:grid;gap:8px;background:#fffaf4;border-radius:14px 14px 0 0}.visibility-sheet h2{margin:0 0 4px;font-size:14px;color:#211d19}.visibility-sheet button{display:grid;gap:3px;padding:12px 14px;border:1px solid #e2dbd0;border-radius:10px;background:#fff;text-align:left}.visibility-sheet strong{font-size:13px;color:#211d19}.visibility-sheet span{font-size:11px;color:#8b8278}.visibility-sheet .visibility-sheet-cancel{justify-items:center;border:0;background:transparent;color:#8b8278;font-size:13px}.upload-dock strong{font-size:13px}.upload-dock span{color:#d7ccc1;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-button{flex:none}.upload-button .button__icon{color:#fff}.upload-sheet-backdrop{position:fixed;z-index:15;inset:0;display:flex;align-items:end;justify-content:center;overscroll-behavior:contain;background:#1c161273;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-sheet{display:flex;flex-direction:column;width:min(760px,100%);max-height:min(82dvh,760px);overflow:hidden;background:#fffaf4;border-radius:14px 14px 0 0;box-shadow:0 -14px 48px #1f171233;animation:sheet-in .24s cubic-bezier(.2,.8,.2,1) both}.upload-sheet-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;padding:20px 24px 16px;border-bottom:1px solid #e3dbd1}.upload-sheet-header h2{margin:0;font-size:19px;line-height:1.2}.upload-sheet-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.segmented{display:flex;gap:2px;height:32px;box-sizing:border-box;padding:2px;border-radius:8px;background:#ece5db}.segmented button{flex:1;height:100%;padding:0 14px;border:0;border-radius:6px;background:transparent;color:#756b62;font-size:12px;white-space:nowrap;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.segmented button.selected{background:#fffaf4;color:#281f1a;font-weight:600;box-shadow:0 1px 3px #281f1a24}.upload-sheet-start{flex:none;height:32px}.upload-sheet-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:18px 0 20px}.upload-masonry{padding:0 16px}.upload-sheet-footer{flex:none;padding:12px 24px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #e3dbd1}.upload-sheet-footer .upload-sheet-start{width:100%}.upload-sheet-empty{display:grid;min-height:240px;place-items:center;align-content:center;color:#786e64;text-align:center}.upload-sheet-empty span{font-size:36px}.upload-sheet-empty p{margin:10px 0 4px;color:#312a25}.upload-sheet-empty small{font-size:12px}.upload-item{position:relative;min-height:90px;overflow:hidden;background:#ddd5ca}.upload-item img{display:block;width:100%;height:auto}.upload-item-scrim{position:absolute;inset:0;background:#1a141059}.upload-progress{position:absolute;top:50%;left:50%;width:52px;height:52px;transform:translate(-50%,-50%) rotate(-90deg)}.upload-progress circle{fill:none;stroke-width:4}.upload-progress-track{stroke:#ffffff59}.upload-progress-value{stroke:#fffaf4;transition:stroke-dashoffset .18s linear}.upload-item-status{position:absolute;right:6px;bottom:6px;padding:1px 6px;border-radius:4px;background:#1a14108c;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);font:500 11px DM Mono,monospace}.upload-item-remove{position:absolute;top:6px;right:6px;width:24px;height:24px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:#1a14106b;color:#fff;box-shadow:0 1px 4px #00000047}.upload-item-remove svg{width:12px;height:12px}.upload-item-status.complete{color:#d8f3dc}.upload-item-status.error{color:#ffb4a0}.viewer{position:fixed;z-index:20;inset:0;overflow:hidden;overscroll-behavior:contain;background:#15110ef5;animation:viewer-in .22s ease both}.viewer-stage{position:absolute;inset:0;overflow:hidden;touch-action:pan-y;cursor:zoom-out}.viewer-vertical{height:100%;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.viewer-vertical::-webkit-scrollbar{display:none}.viewer-group-slide{flex:0 0 100%;height:100%;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always}.viewer-horizontal{height:100%;display:flex;will-change:transform}.viewer-photo{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center;padding:36px}.viewer-image{width:100%;height:100%;object-fit:contain;transform-origin:center center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform}.viewer-counter{margin-right:6px;align-self:center;color:#b3a89e;font:11px DM Mono,monospace}.viewer-close{position:absolute;top:20px;right:24px;color:#fff;border:0;background:transparent;font:300 42px/1 Arial,sans-serif}.viewer-bottom{position:absolute;left:24px;right:24px;bottom:22px;display:flex;justify-content:space-between;align-items:center;color:#e4dcd3}.viewer-author{display:flex;align-items:center;gap:8px;font-size:12px}.viewer-author img{width:27px;height:27px;border-radius:50%;object-fit:cover}.viewer-actions{display:flex;gap:8px}.viewer-actions button{padding:8px 13px;color:#fff;border:1px solid #71675f;background:transparent;font-size:12px}.viewer-actions .danger{border-color:#aa5542;color:#f09983}@keyframes intro-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes onboarding-rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes viewer-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(max-width:680px){.onboarding-shell{padding:24px;background-position:61% center}.onboarding-brand{margin-bottom:82px}.onboarding-content h1{font-size:52px}.onboarding-copy{max-width:306px}.onboarding-button{width:100%}.app-shell{padding:0 16px 124px}.topbar{height:62px}.album-intro{padding:49px 0 36px}h1{font-size:43px;letter-spacing:-.08em}.album-meta{margin-top:18px;gap:8px}.view-switcher button{padding-right:13px;margin-right:12px;font-size:13px}.workspace{padding-top:18px}.uploader-groups{gap:36px}.upload-dock,.selection-dock{bottom:max(12px,env(safe-area-inset-bottom))}@media(prefers-reduced-motion:reduce){.tab-indicator,.tab-panel{transition:none;animation:none}}.upload-dock span{max-width:190px}.viewer-photo{padding:15px 0}.viewer-bottom{left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom))}.viewer-close{top:14px;right:14px}.viewer-image{max-height:calc(100dvh - 100px)}}.upload-sheet-empty{width:calc(100% - 32px);margin:0 16px;border:1px dashed #d3c8bc;background:transparent}.upload-add-photo{display:grid;width:100%;aspect-ratio:16 / 9;place-items:center;color:#9a5a41;border:1px dashed #cbbcaf;background:transparent;font-size:32px}.toast{position:fixed;z-index:40;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);min-width:240px;max-width:calc(100% - 48px);padding:10px 20px;color:#fffaf4;background:#261f1af0;border-radius:6px;font-size:13px;text-align:center;white-space:pre-line;animation:toast-in .18s ease both}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}
