:root{--ink:#253e38;--muted:#6c7770;--green:#365c4e;--paper:#f7f5ef;--line:#dddfd5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header{max-width:1440px;margin:auto;padding:26px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;color:var(--green);text-decoration:none;font:italic 42px Georgia,serif}.brand span{font:600 19px system-ui}.brand small{display:block;font-size:9px;letter-spacing:2.2px;font-weight:500;margin-top:4px;color:var(--muted)}nav{display:flex;gap:8px;flex-wrap:wrap}button,.button{font:inherit;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:7px;padding:11px 17px;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#e9ece3}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--green);color:white;border:1px solid var(--green)}.primary:hover{background:#284438;color:white}main{max-width:1440px;margin:auto;padding:45px 5%;min-height:75vh}h1{font:normal clamp(36px,4.2vw,62px)/1.12 Georgia,serif;letter-spacing:-1.8px;margin:14px 0 20px}h2{font:normal 29px/1.2 Georgia,serif;margin:12px 0 24px}h3{font-size:17px}.eyebrow{font-size:10px;letter-spacing:2.1px;color:var(--green);font-weight:700}.intro{color:var(--muted);font-size:17px}.welcome{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:center;padding:30px 0}.welcome h1{font-size:clamp(48px,6vw,78px)}.card{border:1px solid var(--line);background:#fffdf7;border-radius:14px;padding:30px}.welcome .card{max-width:430px;width:100%;box-shadow:0 16px 55px #344d3810}label{display:block;font-size:13px;font-weight:600;margin:18px 0}input{display:block;width:100%;padding:13px;border:1px solid #cbd1c5;border-radius:6px;background:#fff;color:var(--ink);font:inherit;margin-top:8px}input:focus{outline:2px solid #88a895;outline-offset:2px}.welcome button{width:100%;text-align:left}.welcome button span{float:right}.hint{font-size:12px;color:var(--muted);line-height:1.7}.art{width:310px;height:155px;position:relative;overflow:hidden;border-radius:140px 140px 15px 15px;background:#e6e8dc;margin-top:34px}.sun{position:absolute;width:58px;height:58px;border-radius:50%;background:#dcb887;top:23px;left:158px}.hill{position:absolute;width:290px;height:150px;background:#9daa8f;border-radius:50%;transform:rotate(-12deg);top:95px;left:-50px}.hill.second{background:#4f6e57;left:106px;top:99px;transform:rotate(15deg)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px}.toolbar h1{font-size:clamp(34px,4vw,50px)}.actions{display:flex;gap:12px;flex-shrink:0}.collectionbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:30px 0 22px;padding-top:24px;border-top:1px solid var(--line)}.collectionbar input{width:340px;margin:0;background:transparent}.collectionbar span{font-size:13px;color:var(--muted)}#grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.photo{display:block;width:100%;padding:0;border:0;text-align:left;background:white;border-radius:10px;overflow:hidden;box-shadow:0 3px 12px #24372b08}.photo img{display:block;width:100%;height:240px;object-fit:cover;background:#e7e9df;transition:transform .25s}.photo:hover img{transform:scale(1.025)}.photo p{font-size:13px;padding:14px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{text-align:center;padding:85px 20px}.empty p{color:var(--muted)}#notice{padding:14px 20px;background:#e5eddd;border:1px solid #c7d5bf;border-radius:8px;margin-bottom:25px;white-space:pre-line}#notice.error{background:#fbe6df;border-color:#e7bbae}#progress{margin-bottom:24px}progress{display:block;width:100%;height:10px;margin-top:16px;accent-color:var(--green)}#moreBtn{display:block;margin:30px auto}footer{max-width:1440px;margin:auto;padding:26px 5%;border-top:1px solid var(--line);font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:15px}dialog{border:1px solid var(--line);border-radius:14px;padding:32px;background:var(--paper);color:var(--ink);width:min(95vw,580px);max-height:90vh;overflow:auto}dialog::backdrop{background:#14231ed9}dialog .close{position:absolute;right:10px;top:8px;padding:2px 12px;font-size:25px;border:0}#viewer{width:min(95vw,1100px);padding:42px 22px 20px}#viewImage{display:block;max-width:100%;height:65vh;object-fit:contain;margin:auto}.viewerbar{display:flex;align-items:center;justify-content:space-between;gap:20px}.viewerbar p{word-break:break-word}.userrow{padding:17px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.userrow span{flex:1}.userrow button{font-size:12px;padding:7px 9px}hr{border:0;border-top:1px solid var(--line);margin:30px 0}[hidden]{display:none!important}@media(max-width:1050px){#grid{grid-template-columns:repeat(3,1fr)}.welcome{gap:35px}.toolbar{align-items:flex-start;flex-direction:column}}@media(max-width:700px){header{align-items:flex-start;flex-direction:column;padding:18px 5%}.brand span{font-size:17px}nav button{padding:6px 9px;font-size:12px}main{padding-top:25px}.welcome{grid-template-columns:1fr;padding:0}.welcome .card{max-width:none}.art{display:none}.welcome h1{font-size:48px}.welcome .intro{font-size:15px}#grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo img{height:185px}.photo p{padding:10px;font-size:11px}.collectionbar{gap:10px}.collectionbar input{width:65%;font-size:13px}.actions{width:100%}.actions button{flex:1}.toolbar h1{font-size:36px}.card{padding:22px}footer{flex-direction:column}.viewerbar{align-items:flex-start;flex-direction:column;gap:4px}#viewImage{height:52vh}}
/* Folder albums */
#breadcrumbs,#uploadCrumbs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:25px 0 5px}#breadcrumbs button,#uploadCrumbs button{padding:6px 10px;font-size:13px;border-color:transparent}#breadcrumbs button[aria-current],#uploadCrumbs button[aria-current]{background:#e7ecdf;font-weight:600}.sortlabel{display:flex;align-items:center;gap:9px;margin:0;color:var(--muted);font-size:12px;font-weight:400}.sortlabel select{font:inherit;font-size:13px;padding:11px 10px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px}#albumGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-bottom:28px}.album{padding:0 0 18px;text-align:left;border-radius:12px;background:#eeefe5;overflow:hidden;min-width:0}.albumArt{height:165px;position:relative;background:linear-gradient(135deg,#dce4cf,#b6c6a7);overflow:hidden}.albumArt img{width:100%;height:100%;object-fit:cover}.folderIcon{position:absolute;bottom:12px;left:15px;font-size:32px;color:#fff;text-shadow:0 1px 6px #233c3277}.album strong{display:block;padding:14px 16px 0;overflow-wrap:anywhere;font-size:19px;font-family:Georgia,serif;font-weight:400}.album small{display:block;padding:3px 16px;color:var(--muted)}.folderChoice{display:block;width:100%;text-align:left;margin:8px 0;background:#edf0e5}.destination{padding:14px;background:#e7ecdf;border-radius:7px;overflow-wrap:anywhere;font-size:14px}.dialogError{padding:12px;background:#fbe6df;border-radius:6px;color:#80372a}#uploadFolders{max-height:28vh;overflow:auto}#uploadMore{margin-top:10px}#destinationHint{overflow-wrap:anywhere}.collectionbar{flex-wrap:wrap}.toolbar .actions{flex-wrap:wrap;justify-content:flex-end}#grid:empty,#albumGrid:empty{display:none}@media(max-width:1050px){#albumGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.toolbar .actions{justify-content:flex-start}}@media(max-width:700px){#albumGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.albumArt{height:125px}.album strong{font-size:17px}.collectionbar input{width:100%}.collectionbar .sortlabel{width:auto}.actions button{font-size:13px;padding:10px 12px}.collectionbar #count{margin-left:auto}}

/* Video cards and original playback */
.videoCard{position:relative}.playBadge{position:absolute;top:14px;left:14px;color:#fff;background:#18372ed9;border-radius:20px;padding:7px 12px;font-size:13px;pointer-events:none}.videoCard img:not([src]){background:linear-gradient(135deg,#365c4e,#99ac90)}#viewVideo{display:block;width:100%;height:min(65vh,700px);background:#101c17;object-fit:contain;border-radius:8px}#videoMessage{max-width:850px}.viewerbar a{flex-shrink:0}

/* FAMILY_HAPPY_THEME_START */
:root{--ink:#182230;--muted:#475467;--green:#be185d;--paper:#f4f6f8;--line:#d0d5dd}
body{background:#f4f6f8;color:#182230;font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
header{background:#fff;border-bottom:1px solid #d0d5dd;padding-top:22px;padding-bottom:22px}.brand,.brand span{color:#182230}.brand small{color:#475467;font-size:11px;font-weight:600;letter-spacing:1.3px}
button,.button,input,select{font-family:inherit;font-size:15px}button,.button{color:#182230;background:#fff;border:1px solid #b7c0cb;border-radius:8px;font-weight:600}button:hover,.button:hover{background:#fdf0f6;border-color:#8493a7}.primary{background:#be185d;border-color:#be185d;color:#fff}.primary:hover{background:#9d174d;border-color:#9d174d;color:#fff}
button:focus-visible,.button:focus-visible,input:focus,select:focus-visible{outline:3px solid #f9a8d4;outline-offset:3px}nav button{background:#fff;color:#182230}
main{padding-top:30px}h1,h2,h3{font-family:inherit;color:#182230;letter-spacing:-.6px}.toolbar{padding:24px;background:#fff;border:1px solid #d0d5dd;border-radius:12px;gap:22px}.toolbar h1{font:700 clamp(28px,3.4vw,42px)/1.2 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-1px;margin:12px 0 14px}.toolbar h1::after{content:none}.eyebrow{color:#344054;font-size:12px;font-weight:700;letter-spacing:1.4px}.intro,.toolbar .intro{color:#475467;font-size:17px}.toolbar .actions{gap:9px;flex-wrap:wrap}
#breadcrumbs button,#uploadCrumbs button{color:#243b53;font-size:15px}#breadcrumbs button[aria-current],#uploadCrumbs button[aria-current]{background:#fce7f3;color:#9d174d;font-weight:700}.hint,#destinationHint{font-size:14px;color:#475467}.collectionbar{border-color:#d0d5dd}.collectionbar input{background:#fff;color:#182230;font-size:15px;border-color:#a8b3c2}.collectionbar #count{font-size:14px;color:#344054}input{background:#fff;color:#182230;border-color:#a8b3c2}input::placeholder{color:#596579;opacity:1}.sortlabel{font-size:14px;color:#344054}.sortlabel select{font-size:15px;background:#fff;color:#182230;border-color:#a8b3c2}
#albumGrid{gap:18px;margin-bottom:28px}.album{background:#fff;border-color:#d0d5dd;border-radius:10px;box-shadow:none}.album:hover{background:#fff;border-color:#8493a7;box-shadow:0 4px 12px #1d29390d}.album .albumArt{height:92px;background:#f9d5e5}.album .albumArt::before{content:none}.album strong{font:700 18px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;color:#182230;padding:14px 16px 0}.album small{font-size:14px;color:#475467;padding-top:4px}.folderIcon{font-size:0;width:40px;height:27px;bottom:18px;left:17px;text-shadow:none}.folderIcon::before{content:'';position:absolute;inset:0;background:#9d3560;border-radius:4px 6px 6px 6px}.folderIcon::after{content:'';position:absolute;width:18px;height:7px;left:0;top:-5px;background:#9d3560;border-radius:4px 4px 0 0}
.photo{background:#fff;border:1px solid #d0d5dd;border-radius:10px;box-shadow:none}.photo:hover{background:#fff}.photo p{font-size:14px;font-weight:500;color:#182230;padding:13px}.playBadge{background:#182230ec;color:#fff}.videoCard img:not([src]){background:#f9d5e5}.card{background:#fff;border-color:#d0d5dd}.welcome h1{font-family:inherit;color:#182230;font-weight:700}label{font-size:15px;color:#182230}dialog{background:#fff;color:#182230;border-color:#a8b3c2;border-radius:12px}dialog::backdrop{background:#101828c9}dialog h2{font-size:27px;font-weight:700}.folderChoice{background:#fdf0f6;color:#182230;border-color:#b7c0cb}.destination{background:#fce7f3;color:#243b53}.empty h2{font-size:26px;font-weight:600}.empty p{color:#475467}.viewerbar p{color:#182230}#viewVideo{background:#101828}progress{accent-color:#be185d}#notice{background:#eaf5ec;color:#205c32;border-color:#a6cdb0}#notice.error,.dialogError{background:#fff0ec;color:#912018;border-color:#e9b0a8}footer{background:#f4f6f8;border-color:#d0d5dd;color:#475467;font-size:13px}
@media(max-width:1050px){.toolbar{align-items:flex-start;flex-direction:column}.toolbar .actions{width:100%;justify-content:flex-start}}
@media(max-width:700px){.toolbar{padding:19px}.toolbar h1{font-size:29px;letter-spacing:-.5px}.toolbar .intro{font-size:16px}.toolbar .actions{gap:8px}.toolbar .actions button{font-size:14px;padding:10px}.toolbar .actions .primary{flex-basis:100%}.album .albumArt{height:78px}.album strong{font-size:17px}.album small{font-size:13px}.photo p{font-size:13px}.collectionbar #count{font-size:14px}nav button{font-size:14px;padding:8px}.brand span{font-size:18px}.hint,#destinationHint{font-size:14px}footer{font-size:12px}}
.family-heart{display:inline-block;font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-size:.7em;font-weight:400;vertical-align:middle;margin-left:8px}
/* FAMILY_HAPPY_THEME_END */

/* Lighter pink album covers */
.album .albumArt { background: #fff0f6; }
.album .folderIcon::before,
.album .folderIcon::after { background: #cc7a9d; }
