:root{--teal:#087e83;--ink:#202d35;--muted:#79848a;--line:#e6ebe9;--bg:#fcfdfb;--size:235px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;background:white;border:1px solid var(--line);border-radius:9px;padding:10px 13px;color:var(--ink);transition:background .15s,box-shadow .15s}button:hover{background:#edf5f3;border-color:#c6dbd7}button:focus-visible,a:focus-visible{outline:3px solid #69bbc1;outline-offset:3px}input,select{border:1px solid var(--line);padding:10px;border-radius:8px;background:white;color:var(--ink)}input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px;vertical-align:middle}input[type=range]{accent-color:var(--teal);padding:0;cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,.brand{font-family:'Libre Caslon Display',Georgia,serif;font-weight:500}h1{font-size:46px;letter-spacing:-1.5px;margin:5px 0 7px}h2{font-size:30px;margin:22px 0 15px}h3{font-size:17px}.sidebar{position:fixed;width:226px;inset:0 auto 0 0;border-right:1px solid var(--line);padding:29px 16px;background:#f5f7f4;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-size:23px;text-decoration:none;color:var(--ink);margin:0 8px 38px;white-space:nowrap}.brandmark{color:var(--teal);font-family:system-ui;font-size:31px}nav{display:grid;gap:6px}nav button{display:flex;text-align:left;align-items:center;gap:13px;border:0;background:none;padding:13px 17px;color:#69757b}nav button .icon{width:21px;font-size:21px;line-height:20px}nav button.active{background:#e0efec;color:#056d73;font-weight:600}nav .navcount{font-size:11px;background:#d7e7e3;border-radius:6px;padding:3px 6px;margin-left:auto}.side-bottom{margin-top:auto;padding:20px 8px 0;color:var(--muted);font-size:11px}.side-bottom p{line-height:1.6;margin-top:8px}.prototype-dot{display:inline-block;border-radius:50%;width:6px;height:6px;background:#9aaf7d;margin-right:6px}.profile{display:flex;align-items:center;text-align:left;gap:10px;margin:22px -8px -9px;border:0;background:none;padding:12px 7px;width:calc(100% + 16px);font-size:12px}.profile small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#e7d7c6;color:#625345;width:35px;height:35px;font-size:11px;font-weight:700;flex-shrink:0}.avatar.ab{background:#dbe6ce}.avatar.cm{background:#e4ddeb}main{margin-left:226px;padding:34px 36px 10px}header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:2px;color:#89928c;font-weight:600}header p{color:var(--muted);font-size:13px;margin:0}.header-actions{display:flex;gap:13px;align-items:center}.search{display:flex;align-items:center;background:#f0f3ef;border-radius:10px;padding:0 13px;width:310px;gap:9px;color:#7b8583}.search span{font-size:23px}.search input{padding:13px 0;border:0;outline:none;width:100%;background:transparent;font-size:12px}.search kbd{background:#fcfdfb;border:1px solid #e0e6df;padding:2px 5px;border-radius:3px;font-size:10px}.primary{background:var(--teal);color:white;border-color:var(--teal);font-weight:600}.primary:hover{background:#066a6e;color:white}.toolbar{display:flex;gap:12px;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;flex-wrap:wrap}.filters,.view-tools{display:flex;gap:7px;align-items:center}.filters button,.view-tools button,.view-tools select{font-size:11px;padding:9px 12px;border-radius:8px;white-space:nowrap}.filters button.active{background:#e6f3f0;border-color:#87b6b0;color:var(--teal)}.active-filters{display:flex;gap:7px;flex-wrap:wrap}.active-filters:has(button){padding-top:15px}.chip{font-size:11px;padding:5px 9px;background:#e7f1ed;border:0;color:#34635c}.collection-line{display:flex;align-items:center;justify-content:space-between;margin:19px 0 25px;color:var(--muted);font-size:11px;gap:12px}.collection-line>div{display:flex;align-items:center;gap:22px}.toggle-label{display:flex;align-items:center;gap:7px;cursor:pointer}.size-control{display:flex;align-items:center;gap:10px}.size-control input{width:100px;height:4px}.gallery{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}.tile{position:relative;height:var(--size);flex-grow:1;min-width:150px;max-width:100%;border:0;padding:0;border-radius:9px;overflow:visible;background:#d7ddd3;cursor:zoom-in}.tile img{width:100%;height:100%;object-fit:cover;display:block;border-radius:9px}.tile:focus-visible{outline-offset:4px}.tile .badge{position:absolute;right:10px;top:10px;background:#263432cc;color:white;border-radius:50%;width:29px;height:29px;display:flex;align-items:center;justify-content:center;font-size:9px;border:1px solid #ffffff4d;box-shadow:0 2px 5px #0001}.hide-badges .badge{display:none}.tile .caption{position:absolute;inset:auto 0 0;background:linear-gradient(transparent,#112321bb);padding:25px 12px 12px;color:white;border-radius:0 0 9px 9px;opacity:0;transition:opacity .15s;text-align:left}.tile:hover .caption,.tile:focus-within .caption{opacity:1}.caption strong{font-size:12px;font-weight:500;display:block;margin-bottom:3px}.caption small{font-size:9px;color:#d6e4df}.tile .quick-rating{position:absolute;bottom:60px;left:12px;background:#fffffff5;color:var(--ink);border-radius:8px;padding:9px 12px;font-size:10px;opacity:0;pointer-events:none;box-shadow:0 3px 18px #0002;z-index:3;text-align:left}.tile:hover .quick-rating,.tile:focus-within .quick-rating{opacity:1}.quick-rating div{margin:3px 0;display:flex;justify-content:space-between;gap:15px}.stars{color:#be8a38;white-space:nowrap}.stack-count{position:absolute;bottom:10px;right:10px;background:#fffffff2;padding:5px 8px;border-radius:6px;font-size:10px;font-weight:600;color:#23534c;z-index:4;box-shadow:0 1px 5px #0002}.tile.stacked:before,.tile.stacked:after{content:'';position:absolute;inset:-5px 4px 5px;background:#d6e4de;border:1px solid #a6bfb3;border-radius:9px;z-index:-1;transform:rotate(1deg)}.tile.stacked:after{inset:-8px 7px 8px;transform:rotate(-1deg)}.tile.stacked{margin-top:8px;isolation:isolate}.empty{text-align:center;padding:65px 20px;color:var(--muted)}.empty .empty-icon{font-size:42px;color:#8eaaa0;margin:0 0 14px}.empty h2{color:var(--ink)}footer{padding:24px 0 8px;border-top:1px solid var(--line);font-size:10px;color:#85918b;display:flex;justify-content:space-between;gap:20px}footer span{text-align:right;color:#a2aaa4}.popover{position:fixed;z-index:50;box-shadow:0 12px 50px #193c3420;background:white;border:1px solid var(--line);border-radius:14px;padding:20px;width:340px;max-width:calc(100vw - 24px);max-height:75vh;overflow:auto}.popover h3{font-family:Georgia,serif;font-size:21px;margin:0 0 14px}.popover .wide{width:100%;margin-bottom:14px}.popover .row{display:flex;align-items:center;gap:9px;margin:12px 0;font-size:12px}.popover .row>span:nth-child(2){flex:1}.segments{display:flex}.segments button{font-size:10px;padding:7px;border-radius:0}.segments button:first-child{border-radius:6px 0 0 6px}.segments button:last-child{border-radius:0 6px 6px 0}.segments button.chosen{background:var(--teal);color:white}.segments button.exclude.chosen{background:#ab4c4c}.popover .avatar{width:28px;height:28px;font-size:9px}.popover .links{display:flex;gap:13px;margin:12px 0}.link{background:none;border:0;padding:0;font-size:11px;color:var(--teal);text-decoration:underline}.pop-foot{border-top:1px solid var(--line);margin-top:15px;padding-top:14px;display:flex;justify-content:space-between;gap:10px}.help{color:var(--muted);font-size:11px;line-height:1.6}.checkrow{display:flex;align-items:center;gap:9px;padding:9px 0;font-size:13px}.panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:20px}.album-card{padding:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:white;text-align:left}.album-card img{display:block;width:100%;height:190px;object-fit:cover}.album-info{padding:18px}.album-info h3{margin:0 0 7px;font-family:Georgia,serif;font-weight:400;font-size:22px}.album-info p{font-size:11px;color:var(--muted);margin:0 0 14px}.album-info button{font-size:11px}.section-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:12px 0 22px}.section-actions h2{margin:0}.person-card{background:white;border:1px solid var(--line);border-radius:12px;padding:28px;text-align:center}.person-card .avatar{width:70px;height:70px;font-size:23px;margin-bottom:12px}.person-card h3{margin:0 0 7px}.person-card p{font-size:12px;color:var(--muted)}dialog{border:1px solid #dfe8e4;border-radius:18px;max-width:min(1160px,94vw);width:94vw;padding:0;color:var(--ink);box-shadow:0 20px 90px #0003}dialog::backdrop{background:#122722ba;backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-head button{border:0;padding:5px 9px;font-size:22px;background:transparent}.modal-body{padding:24px;max-height:80vh;overflow:auto}.photo-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:500px}.photo-stage{background:#132421;display:flex;flex-direction:column;min-width:0}.photo-viewport{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:400px;padding:20px}.photo-viewport img{max-width:100%;max-height:65vh;object-fit:contain;transition:width .15s}.photo-viewport.zoomed{display:block}.photo-viewport.zoomed img{max-width:none;max-height:none}.zoom-tools{padding:12px;color:white;text-align:center;display:flex;justify-content:center;align-items:center;gap:15px}.zoom-tools button{background:#ffffff15;color:white;border-color:#ffffff30}.photo-details{padding:23px;max-height:78vh;overflow:auto}.photo-details h2{font-size:25px;margin:4px 0 9px}.photo-details section{border-top:1px solid var(--line);padding:18px 0 0;margin-top:18px}.photo-details h4{font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin:0 0 12px}.star-buttons{display:flex}.star-buttons button{border:0;background:none;font-size:25px;color:#c29343;padding:1px 3px}.reactions{display:flex;gap:8px;margin-top:12px}.reactions button{font-size:11px;flex:1}.reactions button.selected{background:#dceee8;color:var(--teal);border-color:#7aaea5}.rating-row{display:flex;justify-content:space-between;font-size:11px;padding:7px 0;gap:6px}.rating-row span:first-child{flex:1}.taglist{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.taglist button{font-size:10px;background:#eff3ed;border:0;padding:5px 8px}.small-form{display:flex;gap:5px;margin:8px 0}.small-form input{min-width:0;width:100%;font-size:11px;padding:8px}.small-form button{padding:6px 9px;font-size:11px}.danger{color:#a34949}.form-fields{display:grid;gap:15px;max-width:600px;margin:auto}.form-fields label{display:grid;gap:7px;font-size:12px}.matrix{width:100%;border-collapse:collapse;font-size:12px}.matrix td,.matrix th{padding:14px 12px;border-bottom:1px solid var(--line);text-align:center}.matrix th:first-child,.matrix td:first-child{text-align:left}.matrix th{font-weight:500;background:#f3f6f2}.matrix button{font-size:10px}.upload-zone{border:2px dashed #b7d3c6;border-radius:14px;padding:45px;text-align:center;background:#f6faf6}.upload-zone .upload-icon{font-size:42px;color:var(--teal)}.upload-zone h2{margin:12px 0}.upload-zone p{color:var(--muted);font-size:12px}.upload-zone button{margin:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#183f38;color:white;padding:13px 23px;border-radius:10px;font-size:12px;box-shadow:0 5px 25px #0002;z-index:100;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}.duplicate-group{border:1px solid var(--line);border-radius:12px;padding:20px;margin:18px 0;background:white}.duplicate-group .gallery{margin-bottom:4px}.duplicate-group h3{margin:0}.duplicate-group .tile{flex-grow:0}.notice{background:#edf5ee;border:1px solid #d8e7d9;border-radius:10px;padding:13px 17px;color:#5f7568;font-size:12px;margin:10px 0 20px;line-height:1.6}.saved-card{border:1px solid var(--line);background:white;border-radius:12px;padding:20px;display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:15px}.saved-card h3{margin:0 0 7px}.saved-card p{font-size:11px;color:var(--muted);margin:0}.saved-card button{font-size:11px}.mobile-logo{display:none}@media(min-width:1600px){main{padding-left:48px;padding-right:48px}.search{width:390px}}@media(max-width:1200px){header{align-items:flex-start}.search{width:240px}.filters{flex-wrap:wrap}.sidebar{width:195px}.brand{font-size:20px}main{margin-left:195px;padding:28px 24px}.view-tools{margin-left:auto}.toolbar{gap:14px}.header-actions{margin-top:16px}.collection-line>div{gap:14px}}@media(max-width:850px){.sidebar{width:76px;padding:20px 10px}.brand{font-size:0;margin:0 10px 25px}.brandmark{font-size:30px}nav button{padding:13px;justify-content:center}nav button .navlabel,nav .navcount,.side-bottom>p,.side-bottom>.prototype-dot{display:none}.side-bottom{font-size:0;padding:0}.profile{padding:6px 10px;margin:0;width:100%}.profile>span:not(.avatar){display:none}main{margin-left:76px;padding:24px 20px}.header-actions{margin:0}.search{width:210px}.eyebrow{font-size:8px}h1{font-size:39px}header{gap:10px}.photo-layout{grid-template-columns:minmax(0,1fr) 260px}.photo-details{padding:18px}}@media(max-width:600px){.sidebar{inset:auto 0 0;width:100%;height:66px;border-top:1px solid var(--line);border-right:0;padding:5px 6px;background:#f8faf5f7;backdrop-filter:blur(10px)}.brand,.side-bottom{display:none}nav{display:flex;justify-content:space-around;gap:0}nav button{padding:6px 8px;display:grid;gap:4px;justify-items:center;background:transparent;border-radius:8px}nav button .icon{font-size:20px}nav button .navlabel{display:block;font-size:8px}nav button:last-child{display:none}main{margin-left:0;padding:23px 16px 80px}header{display:block;margin-bottom:22px}.header-actions{margin-top:18px}.search{flex:1;width:auto}.search input{font-size:12px}.header-actions .primary{padding:12px 17px}.eyebrow{font-size:8px}h1{font-size:43px}.toolbar{padding-bottom:15px}.filters{gap:6px}.filters button{font-size:10px;padding:8px 10px}.view-tools{width:100%;justify-content:space-between}.view-tools select{flex:1}.collection-line{margin:15px 0;align-items:flex-start}.collection-line>div{flex-wrap:wrap;justify-content:flex-end;gap:10px}.collection-line>span{max-width:120px;line-height:1.7}.size-control input{width:75px}.size-control{gap:7px}.toggle-label{font-size:10px}.gallery{gap:6px}.tile{min-width:110px;height:calc(var(--size) * .68)}h2{font-size:27px;margin:25px 0 14px}.tile .badge{width:24px;height:24px;right:7px;top:7px;font-size:8px}.tile .caption{opacity:1;padding:22px 9px 9px}.caption strong{font-size:10px}.caption small{display:none}.tile .quick-rating{display:none}.stack-count{font-size:9px;padding:4px 6px;right:6px;bottom:7px}.tile.stacked .caption{padding-bottom:33px}.photo-layout{display:block}.photo-viewport{min-height:260px;max-height:43vh}.photo-viewport img{max-height:37vh}.photo-details{max-height:none}.photo-details section{margin-top:15px;padding-top:15px}.photo-layout .photo-details{padding:20px}.modal-body{padding:17px}.modal-head{padding:14px 17px}.photo-layout{max-height:80vh;overflow:auto}.photo-details{overflow:visible}footer{font-size:9px}footer span{max-width:60%}.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.album-card img{height:140px}.album-info{padding:12px}.album-info h3{font-size:20px}.album-info p{font-size:10px}.album-info button{padding:7px}.matrix td,.matrix th{padding:12px 6px;font-size:10px}.section-actions h2{font-size:26px}.section-actions button{font-size:11px}.upload-zone{padding:25px 10px}.popover{left:12px!important}.duplicate-group{padding:12px}.duplicate-group .gallery{margin-top:15px}.duplicate-group .tile{flex-grow:1}.duplicate-group h3{font-size:14px}}

[hidden]{display:none!important}

.login-panel{max-width:380px;margin:12vh auto;padding:25px}.login-panel h1{margin:14px 0}.login-panel p{color:var(--muted)}.login-panel form,.login-panel label{display:grid;gap:12px}.login-panel form{gap:20px}.guest-panel{max-width:1400px;margin:0 auto;padding:35px 25px}.guest-panel form,.guest-panel label{display:grid;gap:12px;max-width:360px}#accountMobile{display:none}.tile{overflow:hidden}.photo-details a{font-size:12px;color:var(--teal)}@media(max-width:850px){#accountMobile{display:block}}@media(max-width:600px){nav{overflow-x:auto;justify-content:flex-start}nav button{min-width:63px}nav button:last-child{display:grid}.sidebar nav{width:100%}.login-panel{margin-top:6vh}}
