:root{color:#f5f7ff;background:#05070c;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background-color:#05070c}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.app-shell{position:relative;min-height:100vh;overflow:hidden;background-color:#05070c;background-image:url(/art/obsidian-aurora.png);background-position:center top;background-repeat:no-repeat;background-size:cover}.app-shell:before{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;pointer-events:none;background-color:#0204088c;content:""}.site-header,.gallery-layout,.folder-page,.detail-page{position:relative;z-index:1}.site-header{display:flex;align-items:center;justify-content:space-between;min-height:106px;margin:0 clamp(24px,4vw,62px);border-bottom:1px solid rgb(203 221 255 / 13%)}.site-header-compact{min-height:82px}.wordmark{color:#fff;font-size:20px;font-weight:500;letter-spacing:.42em;line-height:1}.header-actions{display:flex;align-items:center;gap:12px}.visitor-chip,.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:1px solid transparent;border-radius:13px;color:#eef3ff;font-size:14px;font-weight:500;line-height:1;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,box-shadow .22s ease}.visitor-chip{padding:0 14px;border-color:#ccdcff1c;color:#e6eeffab;font-size:12px}.button{padding:0 16px;background:transparent}.button:hover{transform:translateY(-2px)}.button:disabled{cursor:wait;opacity:.56;transform:none}.quiet-button{border-color:#c5daff38;background-color:#09101db8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.quiet-button:hover{border-color:#b2d0ff7a;background-color:#15223bc7}.upload-button,.primary-wide{border-color:#5997ffbf;background-color:#0d55d3;box-shadow:0 0 0 1px #82b4ff29 inset,0 0 29px #2870ff54}.upload-button:hover,.primary-wide:hover{background-color:#1768ef;box-shadow:0 0 0 1px #aaceff4d inset,0 0 38px #3075ff75}.gallery-layout{display:grid;grid-template-columns:140px minmax(0,1fr);max-width:1540px;min-height:calc(100vh - 106px);margin:0 auto;padding:clamp(48px,7vw,105px) clamp(24px,4vw,62px) 130px}.timeline-rail{padding-top:83px;color:#cddaf16b}.timeline-label{display:block;margin-bottom:28px;font-size:10px;letter-spacing:.2em}.timeline-track{position:relative;display:grid;gap:47px;min-height:355px;padding-left:1px}.timeline-track:before{position:absolute;top:9px;bottom:0;left:5px;width:1px;background-color:#c2d8ff3b;content:""}.timeline-point{position:relative;display:flex;align-items:center;gap:12px;font-size:12px}.timeline-dot,.timeline-empty-dot{position:relative;z-index:1;width:10px;height:10px;border:2px solid #9da8ba;border-radius:999px;background-color:#080c15}.timeline-dot.active{border-color:#5ba2ff;background-color:#c8e3ff;box-shadow:0 0 0 7px #2d7bff1f,0 0 22px #2571e5;animation:current-marker 2.7s ease-in-out infinite}.timeline-content{min-width:0}.gallery-intro{max-width:540px;margin-bottom:74px}.eyebrow{margin:0 0 16px;color:#8ebdff;font-size:10px;font-weight:700;letter-spacing:.2em}.gallery-intro h1,.folder-heading h1,.unlock-card h1,.admin-panel h1{margin:0;color:#f9fbff;font-size:clamp(56px,9vw,118px);font-weight:300;letter-spacing:-.07em;line-height:.95}.gallery-intro>p:last-child{margin:23px 0 0;color:#e0e9f99c;font-size:16px}.date-group{margin:0 0 74px}.date-heading{display:flex;align-items:baseline;gap:16px;margin-bottom:22px}.date-heading>span{font-size:clamp(30px,3vw,48px);font-weight:300;letter-spacing:-.05em}.date-heading small{color:#d9e4f978;font-size:12px}.image-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:clamp(11px,1.4vw,19px)}.image-tile{position:relative;min-height:180px;overflow:hidden;padding:0;border:1px solid rgb(202 223 255 / 11%);border-radius:15px;background-color:#121927;text-align:left;isolation:isolate;transition:transform .31s cubic-bezier(.2,.8,.2,1),border-color .25s ease,box-shadow .25s ease}.image-tile:hover{z-index:2;border-color:#97c4ff99;box-shadow:0 20px 45px #00000075,0 0 0 1px #6da9ff30 inset;transform:translateY(-7px) scale(1.01)}.image-tile img{width:100%;height:100%;min-height:inherit;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .3s ease}.image-tile:hover img{filter:brightness(1.08);transform:scale(1.06)}.image-tile-shade{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;background-color:#0000000f;transition:background-color .25s ease}.image-tile:hover .image-tile-shade{background-color:#00000059}.image-tile-meta{position:absolute;z-index:2;right:14px;bottom:13px;left:14px;display:flex;gap:11px;color:#ecf3ff;font-size:11px;opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}.image-tile:hover .image-tile-meta{opacity:1;transform:translateY(0)}.image-tile-open{position:absolute;z-index:2;top:13px;right:13px;display:grid;width:32px;height:32px;place-items:center;border:1px solid rgb(226 237 255 / 35%);border-radius:999px;background-color:#05091194;color:#fff;opacity:0;transform:scale(.8);transition:opacity .2s ease,transform .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-tile:hover .image-tile-open{opacity:1;transform:scale(1)}.image-tile-1{grid-column:span 5;min-height:350px}.image-tile-2{grid-column:span 4;min-height:350px}.image-tile-3{grid-column:span 3;min-height:350px}.image-tile-4{grid-column:span 3;min-height:250px}.image-tile-5{grid-column:span 6;min-height:250px}.image-tile-6{grid-column:span 3;min-height:250px}.image-tile-7{grid-column:span 4;min-height:250px}.empty-gallery,.loading-gallery{display:flex;min-height:370px;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgb(198 222 255 / 17%);border-radius:23px;background-color:#090e19a6;color:#e2ebfba3;text-align:center;-webkit-backdrop-filter:blur(21px);backdrop-filter:blur(21px)}.empty-gallery svg{margin-bottom:18px;color:#8bbdff}.empty-gallery h2{margin:0;color:#f6f9ff;font-size:27px;font-weight:400;letter-spacing:-.04em}.empty-gallery p{max-width:380px;margin:14px 25px 25px;font-size:14px;line-height:1.65}.page-error,.form-error,.folder-error{color:#ffb4b4;font-size:13px;line-height:1.5}.page-error{margin:-45px 0 45px}.dialog-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background-color:#010308ba;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:backdrop-in .18s ease-out both}.dialog{position:relative;width:min(100%,515px);max-height:min(850px,calc(100vh - 48px));overflow:auto;border:1px solid rgb(185 215 255 / 29%);border-radius:28px;background-color:#0f1623eb;box-shadow:0 31px 90px #0009,0 0 70px #2470ff1c;padding:42px;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);animation:dialog-in .33s cubic-bezier(.2,.85,.25,1) both}.icon-button{position:absolute;top:16px;right:16px;display:grid;width:36px;height:36px;place-items:center;border:1px solid rgb(195 218 255 / 18%);border-radius:999px;background-color:#060b159e;color:#e8f0ff}.dialog-icon{display:grid;width:51px;height:51px;place-items:center;border:1px solid rgb(115 176 255 / 39%);border-radius:16px;background-color:#1444894a;color:#8ec0ff;box-shadow:0 0 30px #2c78ff29}.dialog .eyebrow{margin-top:25px}.dialog h2{margin:0;color:#f7faff;font-size:34px;font-weight:400;letter-spacing:-.05em}.dialog-description{margin:15px 0 28px;color:#dfe9fba1;font-size:14px;line-height:1.65}.file-picker{display:flex;width:100%;align-items:center;gap:12px;min-height:67px;border:1px dashed rgb(155 194 255 / 39%);border-radius:16px;background-color:#0a122182;padding:0 19px;color:#dbeaff;text-align:left}.file-picker span{flex:1}.selected-files{max-height:154px;margin:12px 0 18px;overflow:auto;padding:0;list-style:none}.selected-files li{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid rgb(202 220 255 / 10%);padding:9px 2px;color:#e3ebfac4;font-size:12px}.selected-files span{color:#bed3f773;white-space:nowrap}.primary-wide{width:100%;min-height:50px;margin-top:18px;border-radius:14px}.form-error{margin:14px 0 0}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}.preview-dialog{width:min(100%,1100px);padding:14px}.preview-image-wrap{display:grid;min-height:min(63vh,700px);place-items:center;overflow:hidden;border-radius:19px;background-color:#05070c}.preview-image-wrap img{max-width:100%;max-height:min(63vh,700px);display:block;object-fit:contain}.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 11px 5px}.preview-footer p{max-width:56vw;margin:0 0 6px;overflow:hidden;color:#f3f7ff;font-size:14px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.preview-footer span{color:#dce7f982;font-size:12px}.download-button{min-width:110px;border-color:#b9d6ff3d;background-color:#182e4fd4}.preview-error{padding:0 11px 7px}.folders-dialog{width:min(100%,610px)}.folder-form{display:grid;gap:14px}.folder-form label,.unlock-card label,.admin-login label{display:grid;gap:8px;color:#e2ebfcba;font-size:12px}.folder-form input,.unlock-card input,.admin-login input{width:100%;height:49px;border:1px solid rgb(187 212 253 / 22%);border-radius:12px;outline:none;background-color:#040a13a3;padding:0 14px;color:#f5f8ff;transition:border-color .18s ease,box-shadow .18s ease}.folder-form input:focus,.unlock-card input:focus,.admin-login input:focus{border-color:#6fafff;box-shadow:0 0 0 4px #458dff29}.created-folder{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:25px;border:1px solid rgb(104 178 255 / 31%);border-radius:15px;background-color:#123d763d;padding:14px;color:#d9ecff;font-size:13px}.created-folder svg{color:#80c4ff}.created-folder button,.created-folder a{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:#9fd0ff;font-size:12px}.recent-folders{margin-top:30px;border-top:1px solid rgb(201 220 255 / 13%);padding-top:20px}.recent-folders>p{margin:0 0 9px;color:#dfeafa82;font-size:12px}.recent-folders a{display:flex;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid rgb(201 220 255 / 8%);color:#e6efff;font-size:13px}.recent-folders a svg:last-child{margin-left:auto;color:#8ebdff}.folder-shell{min-height:100vh}.folder-page,.detail-page{max-width:1240px;margin:0 auto;padding:45px 32px 100px}.back-link{display:inline-flex;align-items:center;gap:9px;margin-bottom:57px;color:#dbe7fa9c;font-size:13px}.back-link:hover{color:#fff}.unlock-card{width:min(100%,505px);margin:4vh auto 0;border:1px solid rgb(183 211 255 / 24%);border-radius:26px;background-color:#0e1521e0;padding:50px;text-align:center;box-shadow:0 30px 70px #0000006b;-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px)}.lock-orb{display:grid;width:72px;height:72px;place-items:center;margin:0 auto 29px;border:1px solid rgb(111 178 255 / 44%);border-radius:999px;background-color:#0f438d52;color:#a4d3ff;box-shadow:0 0 38px #2b80ff40;animation:current-marker 3s ease-in-out infinite}.unlock-card .eyebrow{margin-bottom:17px}.unlock-card h1{font-size:clamp(40px,5vw,62px)}.unlock-card>p:not(.eyebrow){margin:22px auto 31px;color:#e0eafba6;font-size:14px;line-height:1.7}.unlock-card form{display:grid;gap:11px;text-align:left}.unlock-card .primary-wide{margin-top:8px}.private-gallery{padding-top:8px}.folder-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:45px}.folder-heading h1{font-size:clamp(50px,7vw,86px)}.folder-heading>div>p:last-child{margin:16px 0 0;color:#e2ebfb8f;font-size:14px}.admin-shell{min-height:100vh;padding:42px clamp(24px,6vw,92px);background-color:#070a11;color:#edf3ff}.admin-panel{max-width:930px;margin:95px auto 0}.admin-panel h1{margin-bottom:40px;font-size:clamp(48px,7vw,84px)}.admin-login{display:grid;max-width:420px;gap:17px;border:1px solid rgb(189 213 255 / 17%);border-radius:21px;background-color:#101726;padding:28px}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;color:#e1ebfc9c;font-size:13px}.admin-table{overflow:hidden;border:1px solid rgb(191 215 255 / 17%);border-radius:18px;background-color:#0d131fc2}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;border-bottom:1px solid rgb(194 216 255 / 10%);padding:15px 17px}.admin-row:last-child{border-bottom:0}.admin-row strong,.admin-row span{display:block}.admin-row strong{max-width:52vw;overflow:hidden;color:#eff5ff;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.admin-row span{margin-top:5px;color:#dce6fa7a;font-size:12px}.admin-row.is-deleted{opacity:.45}.admin-row-actions{flex:0 0 auto}.delete-button{min-height:36px;border-color:#ff9d9d5e;color:#ffc3c3}@keyframes current-marker{50%{box-shadow:0 0 0 10px #2d7bff0d,0 0 31px #2571e5;transform:scale(1.08)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:820px){.site-header{min-height:82px;margin:0 20px}.wordmark{font-size:15px;letter-spacing:.29em}.visitor-chip{display:none}.header-actions{gap:7px}.button{min-height:40px;padding:0 11px;font-size:12px}.quiet-button svg+*{display:none}.gallery-layout{grid-template-columns:1fr;padding:47px 20px 80px}.timeline-rail{display:none}.gallery-intro{margin-bottom:49px}.date-group{margin-bottom:50px}.image-grid{gap:10px}.image-tile-1{grid-column:span 12;min-height:290px}.image-tile-2,.image-tile-3{grid-column:span 6;min-height:220px}.image-tile-4,.image-tile-5,.image-tile-6,.image-tile-7{grid-column:span 6;min-height:180px}.dialog{padding:34px 24px 25px;border-radius:23px}.preview-dialog{padding:10px}.preview-image-wrap{min-height:48vh}.preview-footer{align-items:flex-start;flex-direction:column;gap:13px}.preview-footer p{max-width:70vw}.folder-page,.detail-page{padding:34px 20px 70px}.back-link{margin-bottom:38px}.unlock-card{padding:37px 24px}.folder-heading{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.quiet-button{width:40px;padding:0}.upload-button{font-size:0;width:42px;padding:0}.upload-button svg{margin:0}.image-tile-2,.image-tile-3,.image-tile-4,.image-tile-5,.image-tile-6,.image-tile-7{grid-column:span 12;min-height:230px}.gallery-intro h1{font-size:65px}.folder-heading h1{font-size:55px}.admin-shell{padding:30px 18px}.admin-panel{margin-top:75px}.admin-row{align-items:flex-start;flex-direction:column}}
