:root{font-family:DM Sans,sans-serif;color-scheme:light;color:var(--text);background:var(--page-bg);font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--page-bg: #f7f8f6;--surface: #fff;--surface-raised: #fff;--surface-soft: #eff4ef;--text: #202720;--ink: #202720;--muted: #818981;--soft-text: #667067;--line: #e7eae5;--green: #41785f;--green-dark: #315e49;--pale: #eff4ef;--share-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M10 13a5 5 0 0 0 7.1 0l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1M14 11a5 5 0 0 0-7.1 0l-2 2A5 5 0 0 0 12 20.1l1.1-1.1' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--serif: "Manrope", sans-serif }*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--page-bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:10px;font:800 21px var(--serif);letter-spacing:-1px;color:#294a37}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#dcebdd;color:#41785f;font:800 23px var(--serif);letter-spacing:-2px;object-fit:contain}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.55px;color:#899189;margin:0 0 11px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.button{border:0;border-radius:9px;padding:11px 16px;font-weight:600;font-size:13px;transition:background .15s,transform .15s}.button:active{transform:translateY(1px)}.button.primary{background:#3f765b;color:#fff;box-shadow:0 4px 10px #3f765b22}.button.primary:hover{background:#315e49}.button.subtle{background:#fff;border:1px solid var(--line);color:#445148}.button.subtle:hover{background:#f1f5f0}.button.danger{background:#b94f45}.button.danger-text{background:#fff0ee;color:#aa443a}.button.full{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:8px}.error-text{font-size:13px;color:#a64339}.checking{min-height:100vh;display:grid;place-content:center;justify-items:center;color:#818981}.checking .brand-mark{width:48px;height:48px;font-size:31px}.login-layout{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#fff}.login-art{position:relative;overflow:hidden;min-height:100vh;background:#e8f0e7;padding:37px 7vw;display:flex;flex-direction:column}.art-copy{position:relative;z-index:1;margin:auto 0 150px}.art-copy .eyebrow{color:#64826b}.art-copy h1{font:600 clamp(45px,5vw,71px)/1.07 var(--serif);letter-spacing:-3px;margin:0 0 20px;color:#26382d}.art-copy>p:last-child{font-size:16px;color:#6b786d}.art-decoration{position:absolute;inset:auto -12% -80px 15%;height:380px;transform:rotate(-8deg);border-radius:48% 52% 0 0;background:#d4e4d3}.art-decoration:before,.art-decoration:after{content:"";position:absolute;border-radius:50%;background:#c2d9c5}.art-decoration:before{width:300px;height:300px;left:8%;top:-90px}.art-decoration:after{width:230px;height:230px;right:9%;top:30px;background:#bdd4c0}.art-decoration span{position:absolute;bottom:117px;left:30%;font-size:9px;letter-spacing:2px;color:#66806b;z-index:1}.shape{position:absolute;z-index:2;border:9px solid #edf4ec;border-radius:20px;box-shadow:0 16px 30px #607a6020;transform:rotate(12deg)}.shape-one{width:160px;height:205px;left:43%;top:-20px;background:#e9ded1}.shape-two{width:117px;height:145px;left:67%;top:34px;background:#d9e3ed;transform:rotate(-12deg)}.shape-three{width:100px;height:125px;left:25%;top:60px;background:#e8d5d2;transform:rotate(21deg)}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:50px 9vw;position:relative}.login-form{width:min(360px,100%)}.login-form h2{font:700 29px var(--serif);letter-spacing:-1.1px;margin:0 0 7px}.login-form>.muted{margin:0 0 32px}.login-form label,.modal-body label{display:block;color:#434c44;font-size:12px;font-weight:600;margin:0 0 8px}.login-form input,.modal input,.modal textarea,.modal select{width:100%;border:1px solid #dfe4dd;border-radius:8px;padding:12px 13px;background:#fff;color:var(--ink);outline:none}.login-form input:focus,.modal input:focus,.modal textarea:focus,.modal select:focus{border-color:#76a184;box-shadow:0 0 0 3px #76a1841c}.login-note{margin-top:24px;color:#899189;font-size:11px;display:flex;gap:8px;align-items:center}.lock-icon{font-size:18px}.login-foot{position:absolute;bottom:28px;color:#a0a69f;font-size:11px}.mobile-brand{display:none}.app-shell{min-height:100vh;display:flex}.sidebar{width:250px;flex-shrink:0;position:sticky;top:0;z-index:10;align-self:flex-start;background:#fff;border-right:1px solid var(--line);padding:26px 15px 15px;display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 8px 36px}.sidebar-header .brand{min-width:0}.side-label{padding:0 12px;color:#a0a69f;font-size:9px;font-weight:700;letter-spacing:1.5px;margin-bottom:10px}.nav-list{display:grid;gap:3px}.nav-list>button{height:40px;width:100%;border:0;background:transparent;border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 12px;text-align:left;color:#667067;font-size:12px}.nav-list>button>span:first-child{font-size:15px;color:#819083}.nav-list>button:hover,.nav-list>button.active{background:#eff4ef;color:#37664c}.nav-list>button em{font-size:10px;font-style:normal;margin-left:auto;color:#99a099}.album-label{margin-top:31px;display:flex;justify-content:space-between}.album-label span{font-size:10px;letter-spacing:0}.album-nav{flex:0 1 auto;min-height:0;align-content:start;overflow-y:auto}.album-nav>button .album-dot{height:7px;width:7px;border-radius:50%;background:#93ad91;flex-shrink:0}.album-nav>button:nth-child(3n+2) .album-dot{background:#cf9d82}.album-nav>button:nth-child(3n) .album-dot{background:#8aa3b3}.album-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.album-item{display:flex;align-items:center;min-width:0;gap:0;position:relative}.album-child{padding-left:6px}.album-child>.album-item>.album-row{font-size:.9rem}.album-expand{display:grid;place-items:center;flex:0 0 20px;width:20px;height:34px;border:0;background:transparent;color:#78877b;font-size:15px}.album-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0;height:36px;padding:0 7px;border:0;border-radius:7px;background:transparent;color:#667067;text-align:left}.album-row:hover,.album-row.active{background:#eff4ef;color:#37664c}.album-dot{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#93ad91}.album-item .delete-album-icon{width:20px;flex:0 0 20px}.albums-overview .content-wrap{max-width:1120px}.album-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;color:var(--muted);font-size:12px}.album-breadcrumbs button{padding:0;border:0;background:transparent;color:var(--green)}.subalbum-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:9px;margin:0 0 22px}.subalbum-strip-heading{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.subalbum-strip-heading .eyebrow{margin:0}.subalbum-chip{display:flex;align-items:center;gap:10px;min-width:0;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);text-align:left}.subalbum-chip:hover{border-color:#b6c8b7;background:var(--surface-soft)}.subalbum-chip .subalbum-arrow{margin-left:auto;color:var(--muted)}.subalbum-create{margin-bottom:22px}.album-tree-overview{display:grid;gap:12px;padding:20px 0}.album-root-drop{padding:10px 14px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:12px;text-align:center}.album-tree-node{display:grid;gap:9px}.album-tree-card,.album-tree-leaf{min-width:0;padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.album-tree-card.is-drop-target{border-color:var(--green);background:var(--surface-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}.albums-overview .album-root-drop.is-drop-target{border-color:var(--green);color:var(--green-dark);background:var(--surface-soft);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}.album-drag-preview{position:fixed;top:-1000px;left:-1000px;max-width:260px;overflow:hidden;padding:8px 12px;border:1px solid var(--green);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:0 5px 16px #0002;font:600 13px DM Sans,sans-serif;text-overflow:ellipsis;white-space:nowrap}.album-card-heading,.album-tree-leaf{display:flex;align-items:center;justify-content:space-between;gap:12px}.album-card-open{display:flex;align-items:center;min-width:0;gap:10px;padding:7px 0;border:0;background:transparent;color:var(--text);text-align:left}.album-card-open strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-card-open small{color:var(--muted);white-space:nowrap}.album-card-open small+small:before{content:"·";margin-right:8px}.album-card-actions{display:flex;flex-wrap:wrap;gap:6px}.album-card-actions .button{padding:8px 10px}.album-tree-children{display:grid;gap:9px;margin:0 0 0 10px;border-left:1px solid var(--line)}.album-tree-leaf{padding:7px 10px}@media(max-width:620px){.album-card-heading,.album-tree-leaf{align-items:flex-start;flex-direction:column}.album-card-actions{width:100%}}.delete-album-icon{border:0;background:transparent;color:#9ba39c;font-size:18px;line-height:1;opacity:0}.album-nav>button:hover .delete-album-icon{opacity:1}.delete-album-icon:hover{color:#b94f45}.new-album{display:flex;flex:0 0 auto;margin:14px 5px 15px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.new-album input{min-width:0;width:100%;border:0;background:transparent;padding:9px 10px;font-size:10px;outline:none}.new-album button{border:0;background:#f4f6f3;color:#4f795c;width:34px;font-size:20px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:12px 5px 4px;display:flex;flex-direction:column;align-items:stretch;gap:8px}.sidebar-action{min-height:34px;border:0;background:transparent;color:#859085;border-radius:6px;display:flex;align-items:center;gap:9px;padding:0 9px;text-align:left;font-size:11px}.sidebar-action:hover{background:#eff4ef;color:#37664c}.sidebar-action span{font-size:14px}.signout>span:first-child{transform:rotate(45deg)}.main-content{flex:1;min-width:0}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.1vw}.breadcrumb{display:flex;align-items:center;gap:11px;color:#989f98;font-size:11px}.breadcrumb i{font-style:normal;color:#c0c5bf}.breadcrumb strong{color:#4d584e;font-weight:600}.top-actions{display:flex;align-items:center;gap:12px}.private-badge{display:flex;align-items:center;gap:6px;border:1px solid #e5ebe4;border-radius:30px;padding:6px 9px;font-size:8px;letter-spacing:1px;color:#718072;font-weight:700}.private-badge span{width:6px;height:6px;background:#7daa76;border-radius:50%}.top-actions .button{padding:7px 10px;font-size:16px}.content-wrap{width:100%;padding:44px clamp(24px,4vw,72px) 80px;margin:auto}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.section-heading h1{font:700 30px var(--serif);letter-spacing:-1px;margin:0;color:#27342a}.heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.subalbum-inline-form{display:flex;align-items:center;gap:5px;min-width:0;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.subalbum-inline-form input{width:150px;min-width:70px;padding:7px 8px;border:0;outline:none;color:var(--text);background:transparent;font-size:12px}.subalbum-inline-form .button{padding:8px 10px}.heading-count{font:500 12px DM Sans,sans-serif;vertical-align:middle;margin-left:10px;color:#889188;background:#edf1eb;padding:4px 8px;border-radius:20px}.section-subtitle{margin:8px 0 0;color:#919990;font-size:12px}.upload-button{position:relative;overflow:hidden;padding:10px 15px}.upload-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.toolbar{height:36px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.toolbar .eyebrow{font-size:9px}.sort-label{font-size:10px;color:#8e978e}.sort-label span{margin-left:5px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}.load-more{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 0 12px}.photo-card{position:relative;display:block;overflow:hidden;border:0;padding:0;background:#e7ebe5;border-radius:9px;aspect-ratio:1/1;text-align:left;box-shadow:0 1px 3px #1e2b2010}.photo-image-button{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;cursor:pointer}.photo-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .28s}.photo-title{position:absolute;z-index:1;top:0;left:0;right:0;max-width:none;padding:14px 12px 30px;background:linear-gradient(#101b15b8,transparent);color:#fff;opacity:0;transition:opacity .15s;pointer-events:none}.photo-actions{position:absolute;z-index:2;right:10px;bottom:10px;display:flex;gap:6px;opacity:0;transition:opacity .15s}.photo-action{display:grid;place-items:center;width:30px;height:30px;padding:6px;border:1px solid #ffffff50;border-radius:7px;background:#1f2c2385;color:#fff;cursor:pointer;transition:background .15s,transform .15s}.photo-action:hover{background:#1f2c23d9;transform:translateY(-1px)}.photo-action:focus-visible{outline:2px solid #fff;outline-offset:2px}.photo-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.photo-share-action:before,.share-icon-button:before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:var(--share-icon) center / contain no-repeat;mask:var(--share-icon) center / contain no-repeat}.photo-card:not(.public-card) .photo-date{inset:auto auto 10px 10px;z-index:2}.photo-card:not(.public-card):hover .photo-title,.photo-card:not(.public-card):focus-within .photo-title,.photo-card:not(.public-card):hover .photo-actions,.photo-card:not(.public-card):focus-within .photo-actions{opacity:1}.photo-card:hover img{transform:scale(1.035)}.photo-overlay{position:absolute;left:0;right:0;bottom:0;padding:38px 12px 18px;background:linear-gradient(transparent,#101b15a8);display:flex;align-items:center;justify-content:space-between;color:#fff;opacity:0;transition:opacity .15s;pointer-events:none}.photo-card:hover .photo-overlay{opacity:1}.photo-name{max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.photo-more{border:0;border-radius:5px;padding:0 5px;color:inherit;background:transparent;font-size:20px;line-height:1;cursor:pointer;pointer-events:auto;transition:background .15s,transform .15s}.photo-more:hover{background:#ffffff35;transform:scale(1.12)}.photo-more:focus-visible,.photo-image-button:focus-visible{outline:2px solid #fff;outline-offset:-3px}.photo-date{position:absolute;top:10px;right:10px;color:#fff;background:#1f2c2370;border-radius:5px;padding:4px 6px;font-size:8px;opacity:0;transition:opacity .15s;pointer-events:none}.photo-card:hover .photo-date{opacity:1}.empty-state{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#8e988e}.empty-state h2{font:600 19px var(--serif);letter-spacing:-.4px;color:#465247;margin:15px 0 5px}.empty-state p{font-size:12px;margin:0}.empty-icon{width:48px;height:48px;border-radius:15px;background:#edf3ec;color:#739375;display:grid;place-items:center;font-size:22px}.empty-hint{margin-top:19px;font-size:10px;color:#a9afa7}.compact{min-height:150px}.toast-stack{position:fixed;z-index:50;top:18px;right:18px;width:min(420px,calc(100vw - 36px));display:grid;gap:8px;pointer-events:none}.toast{padding:11px 14px;border:1px solid #dce8da;background:#f3f8f1;border-radius:8px;color:#527252;font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;box-shadow:0 8px 24px #17251b1c;cursor:pointer;pointer-events:auto}.error-toast{border-color:#efd7d3;background:#fff6f4;color:#a54b43}.toast span{color:inherit;font-size:17px}.toast-enter-active,.toast-leave-active{transition:opacity .18s ease,transform .18s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-6px)}.modal-backdrop{position:fixed;inset:0;z-index:30;background:#15201966;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;overflow:auto}.image-viewer{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:0;background:#0b100def;overscroll-behavior:contain;overflow:hidden}.image-viewer-stage{position:absolute;z-index:1;inset:0;display:flex;overflow:auto;overscroll-behavior:contain}.image-viewer.is-auto-scrolling .image-viewer-stage{cursor:all-scroll}.image-viewer-autoscroll-marker{position:absolute;z-index:4;display:grid;place-items:center;width:36px;height:36px;border:2px solid #fff;border-radius:50%;color:#fff;background:#101713ef;box-shadow:0 2px 10px #0009;font-size:23px;line-height:1;transform:translate(-50%,-50%);pointer-events:none}.image-viewer-canvas{flex:none;margin:auto}.image-viewer-image{display:block;width:100%;height:100%;object-fit:contain;cursor:zoom-in}.image-viewer-image.is-full-zoom{cursor:zoom-out}.image-viewer-zoom{position:absolute;z-index:3;top:20px;right:80px;display:flex;align-items:center;gap:5px;padding:5px;border:1px solid #ffffff80;border-radius:24px;color:#fff;background:#101713f2;box-shadow:0 2px 12px #0009}.image-viewer-zoom button{display:grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border:0;border-radius:18px;color:inherit;background:transparent;cursor:pointer}.image-viewer-zoom-trigger{flex:0 0 32px;transition:flex-basis .2s ease,min-width .2s ease,width .2s ease,padding .2s ease,opacity .15s ease}.image-viewer-zoom-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.image-viewer-zoom-options{display:flex;align-items:center;gap:5px;max-width:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-width .2s ease,opacity .15s ease}.image-viewer-zoom:hover .image-viewer-zoom-options,.image-viewer-zoom:has(:focus-visible) .image-viewer-zoom-options,.image-viewer-zoom.is-open .image-viewer-zoom-options{max-width:220px;opacity:1;visibility:visible}.image-viewer-zoom:hover,.image-viewer-zoom:has(:focus-visible),.image-viewer-zoom.is-open{gap:0}.image-viewer-zoom:hover .image-viewer-zoom-trigger,.image-viewer-zoom:has(:focus-visible) .image-viewer-zoom-trigger,.image-viewer-zoom.is-open .image-viewer-zoom-trigger{flex-basis:0;width:0;min-width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none}.image-viewer-zoom button:not(:disabled):hover,.image-viewer-zoom button:focus-visible{background:#ffffff35}.image-viewer-zoom button:disabled{opacity:.4;cursor:default}.image-viewer-zoom span{min-width:42px;font-size:11px;text-align:center;font-variant-numeric:tabular-nums}.image-viewer-zoom .image-viewer-zoom-compact-percent{flex:none;transition:flex-basis .2s ease,min-width .2s ease,width .2s ease,opacity .15s ease}.image-viewer-zoom:hover .image-viewer-zoom-compact-percent,.image-viewer-zoom:has(:focus-visible) .image-viewer-zoom-compact-percent,.image-viewer-zoom.is-open .image-viewer-zoom-compact-percent{flex-basis:0;width:0;min-width:0;opacity:0;overflow:hidden}.image-viewer-zoom .image-viewer-full{min-width:42px;border-left:1px solid #ffffff3d;border-radius:0 18px 18px 0;font-size:11px}.image-viewer-close,.image-viewer-nav{position:absolute;z-index:2;display:grid;place-items:center;border:1px solid #ffffff3d;color:#fff;background:#ffffff1a;cursor:pointer;transition:background .15s,opacity .18s}.image-viewer-close:hover,.image-viewer-nav:not(:disabled):hover{background:#26352c}.image-viewer-close{z-index:3;top:20px;right:22px;width:44px;height:44px;border-color:#ffffff80;border-radius:50%;font-size:29px;line-height:1;background:#101713f2;box-shadow:0 2px 12px #0009}.image-viewer-nav{top:0;width:clamp(72px,12vw,150px);height:100%;border:0;border-radius:0;font-size:42px;line-height:1;opacity:0;background:transparent}.image-viewer-nav:not(:disabled):hover,.image-viewer-nav:not(:disabled):focus-visible{opacity:1;background:linear-gradient(90deg,#101713eF 0%,#101713a8 55%,transparent 100%);text-shadow:0 1px 5px #000}.image-viewer-nav:disabled{opacity:0;cursor:default;pointer-events:none}.image-viewer-prev{left:0;justify-items:start;padding-left:18px}.image-viewer-next{right:0;justify-items:end;padding-right:18px}.image-viewer-next:not(:disabled):hover,.image-viewer-next:not(:disabled):focus-visible{background:linear-gradient(270deg,#101713eF 0%,#101713a8 55%,transparent 100%)}.image-viewer-caption{position:absolute;bottom:0;z-index:1;left:50%;max-width:calc(100% - 32px);margin:0;padding:20px 24px 16px;color:#fff;font-size:12px;text-align:center;transform:translate(-50%);background:#101713ef;border:1px solid #ffffff40;border-radius:12px 12px 0 0;box-shadow:0 -2px 12px #0006;pointer-events:none}.image-viewer-caption span{margin-left:9px;color:#ffffffa6}.modal{position:relative;background:#fff;width:min(760px,100%);border-radius:15px;box-shadow:0 20px 70px #1620182b;overflow:hidden}.modal-close{position:absolute;right:13px;top:12px;z-index:2;width:31px;height:31px;border:0;border-radius:50%;background:#ffffffdb;color:#4c574d;font-size:20px}.photo-modal{display:grid;grid-template-columns:1fr 1fr;min-height:430px}.modal-preview{background:#e8ece7;display:grid;place-items:center;min-height:430px}.modal-preview img{max-width:100%;max-height:560px;object-fit:contain}.modal-body{padding:37px 33px}.album-edit-modal{width:min(520px,100%)}.description-count{color:#899189;font-size:11px}.modal-body h2,.confirm-modal h2{font:700 23px var(--serif);letter-spacing:-.7px;margin:0 0 24px}.modal-body label{margin-bottom:15px}.modal-body input,.modal-body textarea,.modal-body select{margin-top:7px;font-size:12px;font-weight:400}.modal-body textarea{resize:vertical}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:22px}.modal-actions .button{font-size:11px;padding:10px 13px}.share-inline{border:0;background:transparent;color:#4a7957;padding:18px 0 0;font-size:11px;font-weight:600}.confirm-modal{width:min(470px,100%);padding:35px 36px 29px}.warning-icon{width:39px;height:39px;border-radius:12px;background:#fff1df;color:#bc7e31;display:grid;place-items:center;font-weight:700;margin-bottom:19px}.confirm-modal h2{margin-bottom:7px}.confirm-modal>.muted{margin:0 0 20px;font-size:12px}.confirm-modal>.muted strong{color:#596259}.choice-list{display:grid;gap:8px}.choice-list>label{display:flex;gap:11px;align-items:flex-start;border:1px solid #e5e9e3;border-radius:9px;padding:12px;cursor:pointer}.choice-list>label.chosen{border-color:#8eae8f;background:#f5f8f3}.choice-list input{accent-color:#447858;margin:3px 0 0}.choice-list label span{display:grid;gap:4px}.choice-list label strong{font-size:11px;font-weight:600}.choice-list label small{font-size:10px;color:#90988f;line-height:1.4}.choice-list .destructive-choice{border-color:#f0d9d6}.choice-list .destructive-choice.chosen{border-color:#cc8b83;background:#fff8f6}.choice-list .destructive-choice input{accent-color:#b94f45}.target-select{margin:0 0 4px 26px!important;width:calc(100% - 26px)!important;font-size:11px!important;padding:9px!important}.confirm-modal .modal-actions{margin-top:24px;justify-content:flex-end}.public-page{min-height:100vh;background:#f8f9f7}.public-header{padding:0 max(calc((100vw - 1100px)/2),6vw);min-height:76px;padding-top:12px;padding-bottom:12px}.public-album-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;flex:1;justify-content:flex-end;min-width:0}.public-album-meta h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 17px var(--serif);letter-spacing:-.3px;margin:0;color:#27342a}.public-album-description{margin:0;color:#818981;font-size:11px;white-space:pre-wrap}.public-album-page .public-header{height:64px;min-height:64px;padding:8px clamp(18px,4vw,64px);justify-content:flex-start;gap:clamp(16px,3vw,42px)}.public-album-page .public-album-meta{display:block;flex:1;min-width:0}.public-album-page .public-album-meta h1{margin-bottom:3px}.public-album-count{margin-left:auto}.public-image{width:min(1000px,90vw);margin:56px auto;text-align:center}.image-stage{min-height:350px;max-height:70vh;background:#e9ede8;border-radius:12px;display:grid;place-items:center;overflow:hidden}.image-stage img{max-height:70vh;max-width:100%;object-fit:contain}.public-image h1,.public-album h1{font:700 28px var(--serif);letter-spacing:-.8px;margin:24px 0 5px}.public-image p{color:#818981;font-size:13px}.public-image-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.public-image-page .public-header{min-height:64px;flex:0 0 64px;padding:8px clamp(18px,4vw,64px)}.public-image-page .public-image{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;margin:0 auto;padding:12px clamp(16px,4vw,64px) 20px;text-align:left}.public-image-page .image-stage{width:100%;flex:1;min-height:0;max-height:none}.public-image-page .image-stage img{width:100%;height:100%;max-width:none;max-height:none}.public-image-details{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 24px;flex:0 0 auto}.public-image-details h1{font:700 22px/1.2 var(--serif);letter-spacing:-.4px;margin:0}.public-image-details p{color:#818981;font-size:13px;line-height:1.5;white-space:pre-wrap;margin:5px 0 0}.public-image-details time{grid-column:2;grid-row:1 / span 2;color:#818981;font-size:12px;white-space:nowrap}.public-album{width:calc(100vw - 250px - (2*clamp(24px,4vw,72px)));margin:20px auto 40px}.public-card{cursor:default}.public-card:focus-within .photo-overlay,.public-card:focus-within .photo-date{opacity:1}.public-card img{object-fit:cover}.count-pill{border-radius:20px;background:#edf2eb;color:#718070;padding:6px 10px;font-size:11px;white-space:nowrap}.public-footer{text-align:center;border-top:1px solid var(--line);padding:24px;color:#a0a79f;font-size:10px;letter-spacing:.3px}.landing-page{min-height:100vh;background:#f8f9f7}.landing-content{min-height:calc(100vh - 76px);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:35px 22px 100px}.landing-mark{width:53px;height:53px;border-radius:17px;background:#e6efe4;color:#477b59;display:grid;place-items:center;object-fit:contain;margin-bottom:30px}.landing-content h1{font:700 clamp(34px,5vw,52px)/1.18 var(--serif);letter-spacing:-1.9px;color:#2d3b31;margin:5px 0 15px}.landing-content h1 span{color:#78907a}.landing-content>p:not(.eyebrow){max-width:390px;color:#858e85;font-size:13px;line-height:1.75;margin:0}.landing-rule{width:44px;height:1px;background:#d7dfd5;margin:27px 0 15px}.landing-note{font-size:8px;letter-spacing:1.5px;color:#a0a89f}@media(max-width:850px){.sidebar{width:205px}.content-wrap{padding-left:28px;padding-right:28px}.public-album{width:calc(100vw - 261px)}.topbar{padding:0 28px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:13px}.login-art{padding-left:5vw;padding-right:5vw}.login-panel{padding-left:6vw;padding-right:6vw}}@media(max-width:620px){.login-layout{display:block}.login-art{display:none}.login-panel{min-height:100vh;padding:25px}.mobile-brand{display:flex;margin-bottom:58px}.login-foot{bottom:22px}.app-shell{display:block}.sidebar{width:100%;position:static;height:auto;min-height:0;padding:13px 15px 10px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-header{padding:0 0 13px}.sidebar .side-label,.sidebar .album-nav,.sidebar .new-album{display:none}.sidebar-bottom{display:flex;flex-direction:row;justify-content:flex-start;border-top:0;padding:8px 0 0}.sidebar-bottom .sidebar-action:not(.theme-action){display:none}.nav-list{display:flex;overflow:auto}.nav-list>button{width:auto;white-space:nowrap;padding:0 12px;height:35px}.nav-list>button em{display:none}.nav-list>button .album-dot{display:none}.sidebar .nav-list:first-of-type:after{content:""}.album-label{display:none}.main-content{width:100%}.topbar{height:52px;padding:0 18px}.content-wrap{padding:29px 18px 60px}.section-heading{align-items:center;gap:8px;flex-wrap:wrap}.section-heading h1{font-size:25px}.heading-actions{gap:6px;flex-wrap:wrap}.subalbum-inline-form{order:2}.subalbum-inline-form input{width:115px}.upload-button{font-size:10px;padding:9px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card{border-radius:7px}.photo-overlay{opacity:1;padding:28px 8px 8px}.photo-title{opacity:1;padding:12px 8px 26px}.photo-actions{right:6px;bottom:6px;gap:4px;opacity:1}.photo-action{width:27px;height:27px;padding:5px}.photo-name{font-size:9px}.photo-date{opacity:1;top:6px;right:6px;font-size:7px}.photo-card:not(.public-card) .photo-date{inset:auto auto 6px 6px}.photo-modal{display:block;width:min(440px,100%)}.modal-preview{min-height:190px;height:220px}.modal-preview img{max-height:210px}.modal-body{padding:25px 22px}.confirm-modal{padding:30px 21px 24px}.public-header{padding:0 18px;gap:12px}.public-album-page .public-header{height:58px;min-height:58px;padding:6px 16px;gap:12px}.public-image{margin:32px auto}.public-image-page .public-header{min-height:54px;flex-basis:54px;padding:6px 16px}.public-image-page .public-image{gap:12px;padding:8px 12px 14px}.public-image-details{grid-template-columns:minmax(0,1fr);gap:6px}.public-image-details h1{font-size:19px}.public-image-details p{font-size:12px}.public-image-details time{grid-column:1;grid-row:auto;font-size:11px}.image-stage{min-height:250px}.public-album{margin:14px auto 28px;width:calc(100% - 36px)}.public-album-page .public-album-meta{flex:1}.public-album-page .public-album-meta h1{font-size:14px}.public-album-count{font-size:9px;padding:5px 7px}.public-album-page .public-album-description{font-size:10px}}.share-actions{display:flex;gap:7px;align-items:center}.share-actions .button{font-size:11px;padding:10px 12px}.share-actions .share-icon-button{width:38px;height:38px;padding:9px;display:grid;place-items:center}.share-icon-button:before{width:18px;height:18px}.album-nav>.album-item{display:flex;align-items:center;gap:3px}.album-nav>.album-item>.album-row{border:0;background:transparent;height:40px;min-width:0;flex:1;border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 12px;color:#667067;font-size:12px;text-align:left;cursor:pointer}.album-nav>.album-item>.album-row:hover,.album-nav>.album-item>.album-row.active{background:#eff4ef;color:#37664c}.album-nav>.album-item>.album-row .album-dot{height:7px;width:7px;border-radius:50%;background:#93ad91;flex-shrink:0}.album-nav>.album-item:nth-child(3n+2) .album-dot{background:#cf9d82}.album-nav>.album-item:nth-child(3n) .album-dot{background:#8aa3b3}.album-nav>.album-item:hover .delete-album-icon,.album-nav>.album-item:focus-within .delete-album-icon{opacity:1}.album-nav .album-tree-node>.album-item>.album-row:hover,.album-nav .album-tree-node>.album-item>.album-row.active{background:#eff4ef;color:#37664c}.album-tree-node>.album-item>.album-expand{position:absolute;z-index:1;left:3px;top:50%;transform:translateY(-50%);width:14px;flex:0 0 14px;height:20px;margin:0;padding:0;border:0;border-radius:3px;background:transparent;color:#78877b;font-size:15px}.album-tree-node>.album-item>.album-expand:hover{background:transparent;color:#37664c}.album-tree-node .album-dot-placeholder{background:transparent}.album-tree-node>.album-item>.delete-album-icon{width:20px;flex:0 0 20px;height:28px;margin:0 3px;padding:0;border:0;border-radius:6px;background:transparent;color:#899189;opacity:0}.album-tree-node>.album-item>.delete-album-icon:hover{background:#eff4ef;color:#667067;opacity:1}.album-tree-node>.album-item:hover>.delete-album-icon,.album-tree-node>.album-item:focus-within>.delete-album-icon{opacity:1}.album-tree-node>.album-item>.album-row.active{background:#eff4ef;color:#37664c}.album-row:focus-visible,.delete-album-icon:focus-visible{outline:2px solid #6c9471;outline-offset:1px}:root[data-theme=dark]{color-scheme:dark;--page-bg: #111612;--surface: #1a211b;--surface-raised: #202922;--surface-soft: #253129;--text: #e4ebe4;--ink: #e4ebe4;--muted: #a0aaa1;--soft-text: #b7c1b8;--line: #303b32;--green: #8db99a;--green-dark: #a6c8ad;--pale: #25352a;background:var(--page-bg);color:var(--text)}:root[data-theme=dark] body,:root[data-theme=dark] .app-shell,:root[data-theme=dark] .login-layout,:root[data-theme=dark] .login-panel,:root[data-theme=dark] .public-page,:root[data-theme=dark] .landing-page{background:var(--page-bg);color:var(--text)}:root[data-theme=dark] .sidebar,:root[data-theme=dark] .topbar,:root[data-theme=dark] .modal{background:var(--surface)}:root[data-theme=dark] .brand,:root[data-theme=dark] .section-heading h1,:root[data-theme=dark] .public-album-meta h1,:root[data-theme=dark] .landing-content h1,:root[data-theme=dark] .login-form h2,:root[data-theme=dark] .modal-body h2,:root[data-theme=dark] .confirm-modal h2,:root[data-theme=dark] .empty-state h2{color:var(--text)}:root[data-theme=dark] .brand-mark,:root[data-theme=dark] .landing-mark,:root[data-theme=dark] .upload-symbol,:root[data-theme=dark] .empty-icon,:root[data-theme=dark] .heading-count,:root[data-theme=dark] .count-pill,:root[data-theme=dark] .new-album button{background:var(--surface-soft);color:var(--green)}:root[data-theme=dark] .button.subtle,:root[data-theme=dark] .login-form input,:root[data-theme=dark] .modal input,:root[data-theme=dark] .modal textarea,:root[data-theme=dark] .modal select,:root[data-theme=dark] .new-album input{background:var(--surface-raised);border-color:var(--line);color:var(--text)}:root[data-theme=dark] .button.subtle:hover,:root[data-theme=dark] .nav-list>button:hover,:root[data-theme=dark] .nav-list>button.active,:root[data-theme=dark] .album-nav>.album-item>.album-row:hover,:root[data-theme=dark] .album-nav>.album-item>.album-row.active,:root[data-theme=dark] .album-tree-node>.album-item>.album-row:hover,:root[data-theme=dark] .album-tree-node>.album-item>.album-row.active,:root[data-theme=dark] .sidebar-action:hover{background:var(--surface-soft);color:#b1d1b7}:root[data-theme=dark] .login-form label,:root[data-theme=dark] .modal-body label,:root[data-theme=dark] .breadcrumb strong,:root[data-theme=dark] .album-nav>.album-item>.album-row,:root[data-theme=dark] .album-tree-node>.album-item>.album-row,:root[data-theme=dark] .nav-list>button,:root[data-theme=dark] .button.subtle,:root[data-theme=dark] .public-card figcaption,:root[data-theme=dark] .confirm-modal>.muted strong{color:var(--soft-text)}:root[data-theme=dark] .side-label,:root[data-theme=dark] .eyebrow,:root[data-theme=dark] .section-subtitle,:root[data-theme=dark] .breadcrumb,:root[data-theme=dark] .sort-label,:root[data-theme=dark] .photo-date,:root[data-theme=dark] .empty-state,:root[data-theme=dark] .empty-hint,:root[data-theme=dark] .login-note,:root[data-theme=dark] .login-foot,:root[data-theme=dark] .choice-list label small,:root[data-theme=dark] .public-image p,:root[data-theme=dark] .public-image-details time,:root[data-theme=dark] .public-footer,:root[data-theme=dark] .landing-content>p:not(.eyebrow),:root[data-theme=dark] .landing-note{color:var(--muted)}:root[data-theme=dark] .button.primary{background:#477a58;color:#fff}:root[data-theme=dark] .button.primary:hover{background:#578b68}:root[data-theme=dark] .topbar,:root[data-theme=dark] .sidebar,:root[data-theme=dark] .toolbar,:root[data-theme=dark] .public-footer{border-color:var(--line)}:root[data-theme=dark] .private-badge,:root[data-theme=dark] .choice-list>label{border-color:var(--line);color:var(--soft-text)}:root[data-theme=dark] .choice-list>label.chosen{border-color:#587d60;background:#243328}:root[data-theme=dark] .choice-list .destructive-choice.chosen{border-color:#9c625b;background:#382624}:root[data-theme=dark] .toast{border-color:#3a5540;background:#1d2b20;color:#a9c9ad}:root[data-theme=dark] .error-toast{border-color:#62403c;background:#30211f;color:#e2a49b}:root[data-theme=dark] .share-inline{color:#a9c9ad}:root[data-theme=dark] .image-stage,:root[data-theme=dark] .modal-preview,:root[data-theme=dark] .photo-card{background:#252e27}:root[data-theme=dark] .modal-close{background:#202922e8;color:var(--text)}:root[data-theme=dark] .landing-rule{background:var(--line)}:root[data-theme=dark] .landing-content h1 span{color:#9ab69e}:root[data-theme=dark] .login-art{background:#202b22}:root[data-theme=dark] .login-art .art-copy h1{color:#e4ebe4}:root[data-theme=dark] .login-art .art-copy>p:last-child{color:#b0bdb1}:root[data-theme=dark] .login-art .art-copy .eyebrow,:root[data-theme=dark] .login-art .art-decoration span{color:#a4c0a7}:root[data-theme=dark] .art-decoration{background:#314334}:root[data-theme=dark] .art-decoration:before,:root[data-theme=dark] .art-decoration:after{background:#3d5741}:root[data-theme=dark] .shape{border-color:#29382c}:root[data-theme=dark] .error-text{color:#e2a49b!important}
