@font-face{font-family:AlbumSerif;src:local("Georgia");font-display:swap}
:root{--paper:#f7f5f0;--surface:#fffdfa;--ink:#27392f;--muted:#737970;--line:#dedfd5;--sage:#e6ebe0;--green:#304d3d;--terra:#b36a4c;--danger:#a44136;--shadow:0 15px 45px #2533280a;--radius:14px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #b36a4c;outline-offset:4px}input:focus,textarea:focus,select:focus{border-color:var(--green)}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}svg{width:19px;height:19px;flex-shrink:0;vertical-align:middle;stroke-width:1.7}img{max-width:100%;display:block}button{border:0}dialog{color:var(--ink)}.serif,h1,h2,.brand{font-family:AlbumSerif,Georgia,"Times New Roman",serif}.muted{color:var(--muted)}.eyebrow{font-size:.71rem;letter-spacing:.19em;text-transform:uppercase;font-weight:650;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden,[hidden]{display:none!important}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:transparent;flex-shrink:0}.icon-button:hover{background:#27392f09}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px;padding:11px 18px;border:1px solid transparent;border-radius:7px;background:var(--green);color:#fff;font-size:.84rem;font-weight:550;line-height:1.3;white-space:nowrap;transition:background .15s,transform .15s}.button:hover{background:#213f2f}.button:active{transform:translateY(1px)}.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:#eeefe7}.button.ghost{background:transparent;color:var(--ink);border-color:transparent}.button.ghost:hover{background:#27392f07}.button.danger{background:#fff4f1;color:var(--danger);border-color:#eccfc9}.button.small{min-height:35px;padding:8px 13px;font-size:.76rem}.button.wide{width:100%}.button svg{width:17px;height:17px}.text-link{background:transparent;padding:0;color:var(--green);font-size:.82rem;text-decoration:underline;text-underline-offset:4px}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:30px;padding:5px 10px;font-size:.69rem;color:var(--muted);white-space:nowrap}.pill.draft{background:#f3e9d9;border-color:#eddfc9;color:#8b6841}.pill.family{background:#e8eee2;border-color:#d8e2d2;color:#496745}.pill svg{width:12px;height:12px}.brand{display:flex;align-items:center;gap:9px;font-size:1.4rem;letter-spacing:-.04em;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:29px;font-style:italic;font-weight:400;width:35px;height:35px;line-height:1;background:var(--green);color:#f8f8ee;border-radius:9px 9px 9px 2px;letter-spacing:-4px;padding-right:5px;padding-bottom:4px}.site-header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 6%;gap:20px;background:var(--paper)}.header-left,.header-right{display:flex;align-items:center;gap:26px}.header-divider{height:22px;width:1px;background:var(--line)}.header-label{font-size:.79rem;color:var(--muted)}.profile-button{display:flex;align-items:center;gap:10px;background:transparent;font-size:.81rem;padding:6px}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;background:#e8decf;color:#78644d;font-weight:600}.profile-button svg{width:13px;height:13px}.page{max-width:1380px;margin:0 auto;padding:50px 6% 32px}.page-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0 0;margin-top:58px;border-top:1px solid var(--line);font-size:.7rem;color:var(--muted)}.privacy-note{display:flex;align-items:center;gap:7px}.privacy-note svg{width:13px;height:13px}.library-hero{display:grid;grid-template-columns:1fr 220px;align-items:center;gap:35px;padding:7px 0 39px}.library-hero .eyebrow{margin-bottom:18px}.library-hero h1{font-size:clamp(2.5rem,4.4vw,4.25rem);line-height:1.08;letter-spacing:-.045em;max-width:800px}.library-hero h1 em{font-weight:400;color:var(--terra)}.hero-description{font-size:.89rem;line-height:1.75;color:var(--muted);max-width:485px;margin-top:20px}.hero-aside{text-align:center;transform:rotate(5deg);padding:15px 8px 0;color:#8d806e}.hero-aside .serif{font-style:italic;font-size:1.07rem;line-height:1.4}.memory-sketch{height:90px;position:relative;width:120px;margin:0 auto 13px}.sketch-frame{position:absolute;width:61px;height:71px;border:1px solid #a6b39d;background:#f3f3e9;padding:7px 7px 17px;top:6px;left:17px;transform:rotate(-15deg);box-shadow:2px 4px 0 #bac4af25}.sketch-frame:before{content:"";display:block;width:100%;height:100%;background:linear-gradient(155deg,transparent 42%,#b8c5a7 43% 70%,#6e8d69 71%);border:1px solid #c6ceba}.sketch-frame.second{left:58px;top:19px;transform:rotate(13deg);background:#fcfaf2;border-color:#c5ad94}.sketch-frame.second:before{background:linear-gradient(145deg,#d9c6a0 0 42%,#bd926b 43% 67%,#8b7c56 68%);border-color:#c3b694}.sketch-spark{position:absolute;top:0;right:-4px;color:#ad7d53;font-size:24px;transform:rotate(-8deg)}.library-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);margin-bottom:27px}.library-tabs{display:flex;align-items:center;gap:26px;flex-shrink:0}.tab-button{background:transparent;color:var(--muted);font-size:.8rem;padding:19px 0 18px;border-bottom:2px solid transparent;white-space:nowrap}.tab-button.active{color:var(--green);border-color:var(--green);font-weight:600}.tab-count{font-size:.65rem;display:inline-grid;place-items:center;background:#e9ece2;border-radius:5px;min-width:20px;height:18px;margin-left:6px;color:#6d7a65}.library-tools{display:flex;align-items:center;gap:11px}.search-field{position:relative}.search-field svg{position:absolute;left:12px;top:11px;width:16px;height:16px;color:#8e9489}.search-field input{width:210px;padding:10px 12px 10px 36px;border:1px solid var(--line);border-radius:6px;background:transparent;font-size:.77rem}.library-section-meta{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--muted);margin-bottom:22px}.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.album-card{min-width:0;position:relative}.album-card-link{display:block}.album-card-cover{aspect-ratio:1.32;border-radius:9px;overflow:hidden;background:#e4e8dd;position:relative}.album-card-cover:after{content:"";position:absolute;inset:0;border:1px solid #27392f0a;border-radius:9px;pointer-events:none}.album-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.album-card-link:hover img{transform:scale(1.035)}.album-card-cover .pill{position:absolute;top:14px;left:14px;box-shadow:0 1px 6px #0000000a}.cover-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#7d8a72;background:radial-gradient(ellipse at 20% 10%,#f0f0e4 0 15%,transparent 16%),linear-gradient(140deg,#e8ebdf,#d5dec8);font-family:Georgia,serif;font-size:1.15rem;font-style:italic}.cover-empty svg{width:32px;height:32px;opacity:.6}.theme-blush .cover-empty{background:radial-gradient(ellipse at 20% 10%,#f9ece4 0 15%,transparent 16%),linear-gradient(140deg,#efded4,#ddc1b5);color:#9e7969}.theme-linen .cover-empty{background:radial-gradient(ellipse at 20% 10%,#f5efdf 0 15%,transparent 16%),linear-gradient(140deg,#ebe4d6,#d8ceb9);color:#9a896e}.theme-midnight .cover-empty{background:radial-gradient(ellipse at 20% 10%,#435365 0 15%,transparent 16%),linear-gradient(140deg,#324351,#1f2b35);color:#b0bcc3}.album-card-info{padding:16px 1px 0}.album-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.album-card h2{font-size:1.45rem;line-height:1.2;letter-spacing:-.03em;overflow-wrap:anywhere}.album-card-heading svg{width:15px;height:15px;margin-top:5px;color:#939b8e}.album-card-description{font-size:.79rem;line-height:1.6;color:var(--muted);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.album-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:12px;font-size:.69rem;color:#8c9187}.meta-dot{width:3px;height:3px;background:#aaa99d;border-radius:50%}.empty-state{padding:48px 24px 57px;text-align:center;background:#eeefe6;border:1px dashed #ccd2c1;border-radius:10px;min-height:335px;display:flex;align-items:center;justify-content:center;flex-direction:column}.empty-state .memory-sketch{margin-bottom:24px}.empty-state h2{font-size:1.9rem;letter-spacing:-.035em}.empty-state p{max-width:410px;font-size:.84rem;line-height:1.75;color:var(--muted);margin:13px auto 22px}.empty-state .small-note{font-size:.7rem;margin:14px auto 0}.empty-search{padding:60px 20px;text-align:center;color:var(--muted)}.empty-search h2{font-size:1.7rem;color:var(--ink);margin-bottom:10px}.initial-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:17px}.initial-loading p{font-size:.8rem;color:var(--muted)}.loading-inline{padding:70px;text-align:center;color:var(--muted);font-size:.85rem}.error-state{padding:65px 20px;text-align:center}.error-state h1{font-size:2.7rem;margin-bottom:15px}.error-state p{margin-bottom:24px;color:var(--muted)}
/* The front door: illustrations are CSS, never private family photos. */
.login-page{min-height:100svh;display:grid;grid-template-columns:1fr 1fr}.login-visual{background:#e9ecdf;position:relative;overflow:hidden;display:flex;flex-direction:column;padding:47px 11% 34px;min-height:700px}.login-visual .brand{position:relative;z-index:2}.login-art{width:330px;height:270px;position:relative;margin:70px auto 30px;flex-shrink:0}.photo-paper{position:absolute;box-shadow:0 12px 25px #50604417;border:1px solid #fff9;background:#fffdf6;padding:11px 11px 34px;width:174px;height:216px;left:17px;top:15px;transform:rotate(-12deg)}.photo-paper.back{transform:rotate(13deg);left:143px;top:43px;width:159px;height:202px;background:#fffdf6}.paper-landscape{width:100%;height:100%;position:relative;overflow:hidden;background:#e7d8b7}.paper-landscape:before{content:"";position:absolute;left:20px;top:17px;border-radius:50%;background:#c38f59;width:39px;height:39px}.paper-landscape:after{content:"";position:absolute;width:180%;height:100%;border-radius:48% 65% 0 0;transform:rotate(-24deg);background:#8da17d;top:60%;left:-50%;box-shadow:50px -24px 0 0 #b7bd8e}.back .paper-landscape{background:#ead5c6}.back .paper-landscape:before{background:#d2aa86;left:83px;top:27px;width:29px;height:29px}.back .paper-landscape:after{background:#947c61;top:73%;box-shadow:50px -31px 0 0 #c0a184}.photo-tape{position:absolute;width:66px;height:24px;background:#d0c1a28a;left:71px;top:9px;transform:rotate(-16deg);z-index:2}.art-star{position:absolute;color:#a0784e;font-family:Georgia,serif;font-size:31px;right:5px;top:5px;transform:rotate(15deg)}.art-loop{position:absolute;width:53px;height:72px;border:1px solid #8b9679;border-radius:50%;transform:rotate(50deg);left:-16px;bottom:0;border-left-color:transparent;border-top-color:transparent}.login-tagline{font-size:clamp(2.5rem,4.2vw,4rem);letter-spacing:-.055em;line-height:1.1;position:relative;z-index:2}.login-tagline em{color:#a16e51;font-weight:400}.login-caption{font-size:.83rem;line-height:1.8;color:#6d7865;max-width:320px;margin-top:20px}.login-visual-footer{margin-top:auto;padding-top:36px;font-size:.68rem;letter-spacing:.06em;color:#7c8572;display:flex;gap:8px;align-items:center}.login-visual-footer svg{width:13px;height:13px}.login-main{display:flex;align-items:center;justify-content:center;padding:60px 12%;position:relative}.login-main-inner{width:100%;max-width:355px}.login-main .eyebrow{margin-bottom:19px}.login-main h1{font-size:2.7rem;letter-spacing:-.045em;line-height:1.1}.login-intro{font-size:.83rem;line-height:1.7;color:var(--muted);margin:15px 0 31px}.login-form{display:flex;flex-direction:column;gap:20px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field label,.field-label{font-size:.76rem;font-weight:600;color:#53604f}.field input,.field textarea,.field select{width:100%;border:1px solid #d9ddcf;border-radius:6px;background:var(--surface);min-height:44px;padding:11px 13px;font-size:.84rem;color:var(--ink)}.field textarea{resize:vertical;min-height:85px;line-height:1.6}.field input::placeholder,.field textarea::placeholder{color:#a1a496}.field small,.field-help{font-size:.7rem;line-height:1.6;color:var(--muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.password-field{position:relative}.password-field input{padding-right:46px}.password-field .icon-button{position:absolute;right:4px;top:3px;color:#829078}.login-form>.button{margin-top:7px;min-height:47px}.login-bottom{margin-top:28px;padding-top:24px;border-top:1px solid var(--line);font-size:.73rem;line-height:1.75;color:#89907e}.login-bottom strong{font-weight:500;color:#627257}.form-error{color:var(--danger);background:#faeae5;padding:11px 13px;border-radius:5px;font-size:.8rem;line-height:1.5}.form-error:empty{display:none}.login-mobile-brand{display:none}.login-privacy{position:absolute;bottom:30px;left:0;right:0;text-align:center;font-size:.67rem;color:#8e9486}.noscript{padding:30px;text-align:center}
/* Album pages */
.album-page{--album-bg:var(--paper);--album-text:var(--ink);--album-muted:var(--muted);background:var(--album-bg);color:var(--album-text);min-height:calc(100svh - 88px)}.album-page.theme-blush{--album-bg:#f5ebe5;--album-text:#654a40;--album-muted:#92766a;--line:#e3d3ca}.album-page.theme-sage{--album-bg:#edf0e6;--album-text:#354c36;--album-muted:#7c8872;--line:#d5ddcb}.album-page.theme-midnight{--album-bg:#202e37;--album-text:#e5e8df;--album-muted:#a5b2b4;--line:#40505a;--ink:#e5e8df;--muted:#a5b2b4;--surface:#2b3d46;--green:#4d6e5b}.album-page .page{padding-top:26px}.album-breadcrumb{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:.75rem;color:var(--album-muted);margin-bottom:39px}.back-link{display:inline-flex;align-items:center;gap:7px}.back-link svg{width:15px;height:15px}.album-top-actions{display:flex;gap:7px;align-items:center}.album-heading{text-align:center;margin:0 auto 35px;max-width:820px}.album-heading .eyebrow{color:var(--album-muted);display:flex;justify-content:center;gap:10px;align-items:center;margin-bottom:18px}.album-heading h1{font-size:clamp(2.5rem,5.5vw,5.1rem);line-height:1.08;letter-spacing:-.045em;overflow-wrap:anywhere}.album-heading .album-description{font-size:.91rem;line-height:1.85;max-width:610px;margin:20px auto 0;color:var(--album-muted);white-space:pre-wrap;overflow-wrap:anywhere}.album-heading-meta{font-size:.72rem;color:var(--album-muted);display:flex;align-items:center;justify-content:center;gap:9px;margin-top:19px}.album-divider{width:43px;height:1px;background:currentColor;opacity:.35;margin:28px auto}.album-action-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.album-action-left,.album-action-right{display:flex;align-items:center;gap:10px}.album-view-note{font-size:.71rem;color:var(--album-muted)}.edit-banner{background:#e8eddf;border:1px solid #cdd8bf;border-radius:8px;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;color:#506847;font-size:.76rem;line-height:1.55}.edit-banner-text{display:flex;gap:10px;align-items:center}.edit-banner svg{width:17px;height:17px;flex-shrink:0}.album-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;align-items:start}.photo-card{min-width:0;position:relative}.photo-view-button{padding:0;width:100%;background:transparent;display:block;text-align:left;border-radius:6px;overflow:hidden}.photo-card img{width:100%;aspect-ratio:1;object-fit:cover;background:#97a08e20}.photo-card-caption{font-family:Georgia,serif;font-size:.98rem;line-height:1.55;margin-top:13px;color:var(--album-text);white-space:pre-wrap;overflow-wrap:anywhere}.photo-count{font-size:.66rem;color:var(--album-muted);margin-top:8px}.layout-story{grid-template-columns:1fr;max-width:860px;margin:0 auto;gap:45px}.layout-story .photo-card{display:grid;grid-template-columns:1fr 210px;gap:30px;align-items:center}.layout-story .photo-card:nth-child(even){grid-template-columns:210px 1fr}.layout-story .photo-card:nth-child(even) .photo-view-button{order:2}.layout-story .photo-card:nth-child(even) .photo-caption-block{order:1}.layout-story .photo-card img{aspect-ratio:auto;max-height:680px;object-fit:contain;background:transparent}.layout-story .photo-card.featured{grid-template-columns:1fr;text-align:center}.layout-story .photo-card.featured .photo-view-button,.layout-story .photo-card.featured .photo-caption-block{order:initial}.layout-story .photo-card.featured .photo-card-caption{max-width:600px;margin:0 auto}.layout-story .photo-caption-block{padding:10px 0}.layout-story .photo-card-caption{font-size:1.3rem;line-height:1.65}.layout-story .photo-count{margin-top:15px}.layout-collage{grid-template-columns:repeat(6,minmax(0,1fr));gap:17px;align-items:stretch;grid-auto-flow:dense}.layout-collage .photo-card{grid-column:span 2;background:var(--surface);padding:10px 10px 15px;box-shadow:0 3px 12px #00000006}.layout-collage .photo-card:nth-child(3n+1){transform:rotate(-1deg)}.layout-collage .photo-card:nth-child(3n+2){transform:rotate(1deg)}.layout-collage .photo-card.featured{grid-column:span 4;grid-row:span 2}.layout-collage .photo-card.featured .photo-view-button{height:calc(100% - 60px);min-height:230px}.layout-collage .photo-card.featured img{height:100%;aspect-ratio:1.1;object-fit:cover}.layout-collage .photo-card-caption{font-style:italic;padding:0 4px}.layout-collage .photo-count{padding:0 4px}.layout-grid .photo-card.featured{grid-column:span 2;grid-row:span 2}.layout-grid .photo-card.featured img{aspect-ratio:1.04}.photo-card[draggable=true]{cursor:grab}.photo-card.dragging{opacity:.4;outline:2px dashed var(--terra);outline-offset:4px}.photo-card.drag-over{outline:3px solid var(--terra);outline-offset:5px}.photo-edit-controls{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px;margin-top:8px;border-top:1px solid var(--line);padding-top:8px;grid-column:1/-1}.photo-control-group{display:flex;gap:2px}.photo-edit-controls .icon-button{width:31px;height:31px;border-radius:5px;color:var(--album-muted)}.photo-edit-controls svg{width:16px;height:16px}.photo-edit-controls .selected{color:var(--terra);background:#b36a4c12}.photo-cover-badge{position:absolute;left:10px;top:10px;padding:5px 8px;background:#fffdf5ec;border-radius:4px;color:#61714e;font-size:.62rem;display:flex;align-items:center;gap:4px;pointer-events:none}.photo-cover-badge svg{width:11px;height:11px}.album-end{text-align:center;margin:60px auto 15px;color:var(--album-muted);font-family:Georgia,serif;font-style:italic;font-size:1rem}.album-end span{display:block;font-size:1.6rem;margin-bottom:10px;color:var(--terra)}.upload-status{padding:15px 19px;background:var(--sage);color:var(--green);border-radius:7px;margin-bottom:20px;font-size:.8rem;display:flex;align-items:center;gap:10px}.spinner{width:16px;height:16px;border:2px solid #6a815d40;border-top-color:#536e49;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}.upload-dropzone{border:1px dashed #bac7aa;border-radius:8px;padding:13px 20px;background:#e8eddf70;color:#6c7d5e;font-size:.75rem;line-height:1.5;text-align:center;margin-top:28px}.upload-dropzone.drag-over{border:2px solid var(--terra);background:#f0e6d8}.upload-dropzone button{margin:0 4px}.theme-midnight .empty-state{background:#2a3b42;border-color:#516151}.theme-midnight .empty-state p,.theme-midnight .empty-state .small-note{color:var(--album-muted)}.theme-midnight .edit-banner{background:#35493d;color:#d4e1ce;border-color:#50644c}.theme-midnight .button.ghost:hover{background:#ffffff0b}.theme-midnight .icon-button:hover{background:#ffffff10}
/* Dialogs, account management, and viewer */
.modal{border:1px solid #dedfd5;padding:0;border-radius:14px;max-width:min(560px,calc(100vw - 28px));width:560px;max-height:calc(100svh - 42px);background:var(--paper);box-shadow:0 25px 100px #15251b33;overflow:auto}.modal::backdrop{background:#1b2c235c;backdrop-filter:blur(3px)}.modal.modal-wide{width:740px;max-width:min(740px,calc(100vw - 28px))}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:26px 28px 18px}.modal-header .eyebrow{margin-bottom:8px}.modal-header h2{font-size:1.85rem;letter-spacing:-.035em}.modal-body{padding:2px 28px 26px}.modal-intro{font-size:.81rem;color:var(--muted);line-height:1.7;margin:0 0 22px}.modal-form{display:flex;flex-direction:column;gap:19px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding-top:6px}.modal-footer.spread{justify-content:space-between}.theme-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;cursor:pointer;font-size:.71rem;color:var(--muted)}.theme-option input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.theme-swatch{display:block;width:100%;height:48px;border:1px solid #ddd6c6;border-radius:6px;background:#eee7d6;position:relative}.theme-swatch:after{content:"Aa";font-family:Georgia,serif;font-size:21px;color:#8c7a5f;position:absolute;inset:0;display:grid;place-items:center}.theme-swatch.blush{background:#edd8cc;border-color:#dcc3b7}.theme-swatch.blush:after{color:#977163}.theme-swatch.sage{background:#dce4d0;border-color:#c7d3bc}.theme-swatch.sage:after{color:#73815f}.theme-swatch.midnight{background:#263943;border-color:#263943}.theme-swatch.midnight:after{color:#bdc7c5}.theme-option input:checked+.theme-swatch{outline:2px solid #6c7e5f;outline-offset:3px}.theme-option input:focus-visible+.theme-swatch{outline:3px solid var(--terra);outline-offset:3px}.choice-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.choice-option{position:relative;cursor:pointer}.choice-option input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}.choice-content{border:1px solid var(--line);border-radius:6px;padding:13px 8px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.75rem;background:var(--surface)}.choice-content svg{width:17px;height:17px}.choice-option input:checked+.choice-content{border-color:#6f8561;background:#e9edde;box-shadow:0 0 0 1px #6f8561}.choice-option input:focus-visible+.choice-content{outline:3px solid var(--terra);outline-offset:3px}.status-help{font-size:.71rem;line-height:1.6;color:var(--muted);padding:11px 13px;background:#eaeee2;border-radius:5px}.settings-summary{display:flex;align-items:center;gap:13px;padding:16px;background:#e9ede0;border-radius:7px;margin-bottom:24px}.settings-summary .avatar{width:42px;height:42px;font-size:.85rem;background:#d4ddc8}.settings-summary strong{font-size:.9rem;font-weight:550}.settings-summary p{font-size:.73rem;color:var(--muted);margin-top:5px}.settings-actions{display:flex;flex-direction:column;gap:11px}.settings-actions .button{justify-content:flex-start}.settings-actions .button svg:last-child{margin-left:auto}.settings-foot{margin-top:25px;border-top:1px solid var(--line);padding-top:17px;display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--muted)}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.admin-toolbar p{font-size:.76rem;line-height:1.6;color:var(--muted);max-width:390px}.user-list{display:flex;flex-direction:column;gap:9px}.user-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.user-row.inactive{opacity:.55}.user-detail{display:flex;align-items:center;gap:11px;min-width:0}.user-detail>div{min-width:0}.user-detail strong{font-size:.82rem;font-weight:550;overflow-wrap:anywhere}.user-detail p{font-size:.7rem;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.user-row-actions{display:flex;gap:7px;align-items:center}.user-row .pill{font-size:.62rem}.user-row .button{font-size:.69rem}.danger-zone{margin-top:25px;border-top:1px solid var(--line);padding-top:19px;display:flex;justify-content:space-between;align-items:center;gap:15px}.danger-zone p{font-size:.7rem;line-height:1.6;color:var(--muted)}.caption-preview{max-height:230px;max-width:100%;width:100%;object-fit:contain;border-radius:5px;background:#e9ece4;margin-bottom:20px}.toast-region{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:30;max-width:calc(100vw - 32px);pointer-events:none}.toast{background:#283e30;color:#fffdf5;padding:13px 20px;border-radius:7px;box-shadow:0 5px 20px #0002;font-size:.8rem;line-height:1.5;text-align:center;animation:toast-in .2s ease-out}.toast.error{background:#7f3b31}.lightbox{border:0;padding:0;width:100vw;max-width:100vw;height:100svh;max-height:100svh;background:#17201e;color:#eee;overflow:hidden;border-radius:0}.lightbox::backdrop{background:#17201e}.lightbox-inner{height:100%;display:grid;grid-template-rows:70px minmax(0,1fr) auto}.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 28px;color:#c6cdc6}.lightbox-title{font-family:Georgia,serif;font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox-actions{display:flex;gap:10px;align-items:center}.lightbox .button{background:#ffffff0c;color:#e5e9e0;border-color:#ffffff24}.lightbox .icon-button{background:#ffffff0b;color:#fff}.lightbox .icon-button:hover{background:#ffffff1f}.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:0;position:relative;padding:0 80px}.lightbox-stage img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain;user-select:none}.lightbox-prev,.lightbox-next{position:absolute;top:calc(50% - 23px);width:46px;height:46px}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-footer{text-align:center;min-height:100px;padding:22px 60px;color:#e1e5de}.lightbox-caption{font-family:Georgia,serif;font-size:1.1rem;line-height:1.5;max-width:800px;margin:0 auto;white-space:pre-wrap;max-height:100px;overflow:auto}.lightbox-position{font-size:.69rem;color:#89988c;margin-top:12px}.lightbox .button svg{width:14px;height:14px}.photo-selected-row{display:flex;align-items:center;gap:9px;font-size:.79rem;line-height:1.6}.photo-selected-row input{accent-color:var(--green);width:16px;height:16px}.delete-note{font-size:.8rem;line-height:1.7;color:var(--muted);margin-bottom:20px}.confirm-title{overflow-wrap:anywhere}.form-pending{opacity:.7}.form-pending button[type=submit]{pointer-events:none}.share-description{font-size:.8rem;line-height:1.7;color:var(--muted);margin-bottom:18px}.copy-link-row{display:flex;gap:10px}.copy-link-row input{min-width:0;flex:1;padding:10px;border:1px solid var(--line);border-radius:6px;font-size:.75rem;background:var(--surface);color:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes toast-in{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:1400px){.site-header{padding:0 max(6%,calc((100vw - 1214px)/2))}.page{padding-left:83px;padding-right:83px}.login-visual{padding-left:14%;padding-right:14%}}
@media(max-width:1050px){.header-left,.header-right{gap:18px}.library-hero{grid-template-columns:1fr 150px}.library-tools{gap:8px}.library-tabs{gap:20px}.search-field input{width:175px}.album-grid{gap:27px 19px}.album-photos{gap:19px}.login-visual{padding-left:11%;padding-right:8%}.login-art{transform:scale(.86);margin-left:-5px;margin-top:60px;margin-bottom:10px}.login-main{padding-left:12%;padding-right:12%}.login-tagline{font-size:3.25rem}.album-top-actions .button{font-size:.75rem;padding-left:13px;padding-right:13px}.layout-story .photo-card{grid-template-columns:1fr 180px;gap:23px}.layout-story .photo-card:nth-child(even){grid-template-columns:180px 1fr}}
@media(max-width:800px){.page{padding-left:5%;padding-right:5%;padding-top:35px}.site-header{height:75px;padding:0 5%}.header-label,.header-divider{display:none}.header-right>.privacy-note{display:none}.library-hero{grid-template-columns:1fr 130px;padding-bottom:28px;gap:15px}.library-hero h1{font-size:3rem}.hero-description{max-width:400px}.library-toolbar{align-items:flex-start;flex-direction:column;gap:0;position:relative}.library-tools{order:-1;width:100%;justify-content:space-between;padding-bottom:9px}.search-field input{width:230px}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:29px 21px}.album-photos{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.layout-story{grid-template-columns:1fr}.layout-collage{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.layout-collage .photo-card.featured{grid-column:span 4;grid-row:span 1}.layout-collage .photo-card.featured img{aspect-ratio:1.5}.layout-grid .photo-card.featured img{aspect-ratio:1.5}.album-breadcrumb{margin-bottom:32px}.album-action-row{flex-wrap:wrap}.album-view-note{font-size:.69rem}.login-visual{min-height:650px;padding-left:11%;padding-right:8%}.login-art{transform:scale(.72);transform-origin:left center;margin-left:0;width:240px;height:230px;margin-top:50px;margin-bottom:3px}.login-tagline{font-size:2.7rem}.login-caption{font-size:.77rem}.login-main{padding:50px 10%}.login-main h1{font-size:2.4rem}.login-intro{font-size:.78rem}.page-footer{margin-top:40px}.edit-banner{align-items:flex-start}.album-page{min-height:calc(100svh - 75px)}}
@media(max-width:600px){.login-page{display:flex;flex-direction:column}.login-visual{min-height:0;padding:26px 7% 30px}.login-visual .brand{font-size:1.2rem}.login-visual .brand-mark{width:30px;height:30px;font-size:25px}.login-art{position:absolute;right:3%;top:48px;transform:scale(.41);transform-origin:top right;margin:0;width:330px;height:270px;opacity:.85}.login-tagline{font-size:2.6rem;margin-top:31px;width:77%;line-height:1.05}.login-caption{max-width:75%;font-size:.75rem;margin-top:14px}.login-visual-footer{display:none}.login-main{padding:35px 8% 65px}.login-main-inner{max-width:430px}.login-main .eyebrow{font-size:.66rem;margin-bottom:12px}.login-main h1{font-size:2.25rem}.login-intro{margin:12px 0 25px}.login-form{gap:17px}.login-bottom{margin-top:23px;padding-top:19px}.login-privacy{bottom:20px;font-size:.63rem}.site-header{height:70px}.brand{font-size:1.25rem;gap:7px}.brand-mark{width:30px;height:30px;font-size:25px}.profile-button>span:not(.avatar){display:none}.profile-button{gap:5px}.header-left,.header-right{gap:9px}.page{padding:29px 6% 23px}.library-hero{grid-template-columns:1fr;gap:0;padding-bottom:26px}.hero-aside{display:none}.library-hero .eyebrow{font-size:.65rem;margin-bottom:14px}.library-hero h1{font-size:2.85rem;max-width:380px}.hero-description{font-size:.8rem;margin-top:15px;line-height:1.75;max-width:330px}.library-tools{gap:9px;padding-bottom:7px}.search-field{flex:1;min-width:0}.search-field input{width:100%;font-size:.72rem}.library-tools .button{padding:11px 13px;font-size:.74rem;gap:6px;min-height:38px}.library-tools .button svg{width:14px;height:14px}.library-tabs{gap:23px}.tab-button{font-size:.74rem;padding-top:17px;padding-bottom:15px}.library-toolbar{margin-bottom:22px}.library-section-meta{font-size:.66rem;margin-bottom:17px}.album-grid{gap:29px 15px}.album-card-cover{aspect-ratio:1}.album-card-cover .pill{top:9px;left:9px;font-size:.57rem;padding:4px 7px}.album-card h2{font-size:1.2rem}.album-card-info{padding-top:12px}.album-card-heading{gap:5px}.album-card-heading svg{width:12px;height:12px;margin-top:3px}.album-card-description{font-size:.71rem;margin-top:7px;line-height:1.6}.album-card-meta{font-size:.59rem;gap:5px;margin-top:9px}.cover-empty{font-size:.9rem;gap:8px}.cover-empty svg{width:26px;height:26px}.empty-state{min-height:320px;padding:35px 20px}.empty-state h2{font-size:1.75rem}.empty-state p{font-size:.79rem}.empty-state .small-note{font-size:.65rem}.page-footer{font-size:.62rem;flex-direction:column;gap:11px;margin-top:34px;padding-top:20px}.album-page .page{padding-top:20px}.album-breadcrumb{align-items:flex-start;gap:10px;margin-bottom:29px}.back-link{font-size:.69rem;white-space:nowrap;min-height:36px}.album-top-actions{gap:3px;flex-wrap:wrap;justify-content:flex-end}.album-top-actions .button{padding:8px 10px;min-height:34px;font-size:.69rem;gap:5px}.album-top-actions .button svg{width:14px;height:14px}.album-heading{margin-bottom:22px}.album-heading .eyebrow{font-size:.61rem;gap:7px;margin-bottom:16px}.album-heading h1{font-size:3rem}.album-heading .album-description{font-size:.8rem;line-height:1.8;margin-top:17px}.album-heading-meta{font-size:.64rem;gap:7px}.album-divider{margin:24px auto}.album-action-row{gap:14px;margin-bottom:20px}.album-action-left,.album-action-right{gap:6px}.album-action-row .button{font-size:.69rem;padding:9px 12px;min-height:35px;gap:6px}.album-action-row .button svg{width:15px;height:15px}.album-view-note{font-size:.65rem}.album-photos{gap:20px 13px}.photo-card-caption{font-size:.86rem;margin-top:10px}.photo-count{font-size:.58rem;margin-top:6px}.layout-grid .photo-card.featured img{aspect-ratio:1.23}.layout-story{gap:28px}.layout-story .photo-card,.layout-story .photo-card:nth-child(even){grid-template-columns:1fr;gap:5px}.layout-story .photo-card:nth-child(even) .photo-view-button,.layout-story .photo-card:nth-child(even) .photo-caption-block{order:initial}.layout-story .photo-caption-block{padding:8px 2px 0}.layout-story .photo-card-caption{font-size:1.15rem;line-height:1.5}.layout-story .photo-count{margin-top:9px}.layout-collage{gap:13px 10px}.layout-collage .photo-card{padding:7px 7px 11px}.layout-collage .photo-card.featured img{aspect-ratio:1.25}.layout-collage .photo-card.featured .photo-view-button{min-height:180px}.photo-edit-controls{justify-content:center;gap:3px}.photo-edit-controls .icon-button{width:28px;height:28px}.photo-edit-controls svg{width:14px;height:14px}.edit-banner{padding:12px;font-size:.7rem;gap:9px}.edit-banner .button{padding:6px 9px;font-size:.65rem}.upload-dropzone{font-size:.68rem;padding:12px 14px;line-height:1.8}.album-end{margin:43px auto 8px;font-size:.87rem}.album-end span{font-size:1.3rem}.modal-header{padding:22px 20px 17px}.modal-header h2{font-size:1.7rem}.modal-body{padding:0 20px 22px}.modal-intro{font-size:.77rem}.modal-form{gap:18px}.field-row{gap:12px}.theme-options{gap:9px}.choice-content{font-size:.7rem;padding:12px 6px;gap:5px}.choice-content svg{width:15px;height:15px}.modal-footer .button{font-size:.76rem;padding:10px 14px}.modal-footer.spread{gap:10px;align-items:flex-start}.danger-zone{align-items:flex-start}.danger-zone .button{font-size:.68rem;padding:9px 11px}.user-row{gap:8px;padding:10px}.user-row .avatar{width:28px;height:28px;font-size:.62rem}.user-detail{gap:9px}.user-detail strong{font-size:.75rem}.user-detail p{font-size:.64rem}.user-row-actions{gap:3px}.user-row .pill{display:none}.user-row .button{font-size:.64rem;padding:7px 9px}.admin-toolbar{align-items:flex-start;gap:13px}.admin-toolbar p{font-size:.7rem}.admin-toolbar .button{font-size:.67rem;padding:9px 11px;gap:5px}.admin-toolbar .button svg{width:13px;height:13px}.lightbox-toolbar{padding:13px 15px;gap:12px}.lightbox-title{font-size:.9rem;max-width:170px}.lightbox-actions{gap:5px}.lightbox-actions .button{font-size:.65rem;padding:8px 10px;gap:5px}.lightbox-stage{padding:0 10px}.lightbox-prev,.lightbox-next{width:35px;height:35px;background:#17201eb0!important}.lightbox-prev{left:13px}.lightbox-next{right:13px}.lightbox-footer{padding:20px 22px;min-height:90px}.lightbox-caption{font-size:.95rem}.lightbox-position{font-size:.63rem}.toast-region{bottom:18px;width:max-content}.toast{font-size:.74rem;padding:12px 16px}.copy-link-row{flex-direction:column}.copy-link-row .button{align-self:flex-end}.album-page{min-height:calc(100svh - 70px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.spinner{border-top-color:#536e49}}
