.gallery-app{min-height:100%;background:#11120f;color:#f5f3ed}.site-head{height:92px;display:flex;align-items:center;gap:clamp(44px,8vw,140px);padding:0 34px;background:#f6f4ee;border-bottom:1px solid rgba(18,19,15,.14);position:relative;z-index:22}.identity{display:block;width:190px}.identity img{display:block;width:100%;height:auto}.style-tabs{align-self:stretch;display:flex;align-items:flex-end;gap:38px}.style-tabs button{height:100%;padding:4px 0 20px;border:0;border-bottom:3px solid transparent;background:transparent;color:#777970;font:500 12px/1 var(--sans);letter-spacing:.06em;cursor:pointer;position:relative}.style-tabs button:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:#11120f;transform:scaleX(0);transform-origin:left;transition:transform .22s ease}.style-tabs button:hover,.style-tabs button.active{color:#11120f}.style-tabs button.active:after{transform:scaleX(1)}.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}.gallery-main{margin-left:54px;transition:margin-left .28s ease}.library-is-open .gallery-main{margin-left:258px}.library-drawer{position:fixed;left:0;top:92px;bottom:0;width:54px;background:#f6f4ee;color:#151611;border-right:1px solid rgba(18,19,15,.14);z-index:20;overflow:hidden;transition:width .28s ease;box-shadow:8px 0 30px #0000000a}.library-drawer.open{width:258px}.library-toggle{position:absolute;top:14px;left:9px;width:36px;height:36px;padding:0;border:1px solid #d8d6ce;border-radius:50%;background:#fff;color:#11120f;display:grid;place-items:center;cursor:pointer;z-index:2}.library-toggle:hover{background:#cfff25;border-color:#cfff25}.library-icon{width:16px;height:15px;position:relative;display:block}.library-icon i{position:absolute;left:1px;width:14px;height:7px;border:1.5px solid currentColor;border-radius:1px;background:#fff;transition:.2s}.library-icon i:nth-child(1){top:0}.library-icon i:nth-child(2){top:4px}.library-icon i:nth-child(3){top:8px}.library-toggle:hover .library-icon i{background:#cfff25}.library-content{width:258px;padding:21px 16px 28px 60px;opacity:0;transform:translate(-8px);transition:.18s;pointer-events:none}.library-drawer.open .library-content{opacity:1;transform:none;pointer-events:auto;transition-delay:.08s}.library-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 20px}.library-title p{margin:0;font:400 20px/1 var(--serif)}.library-title>button{width:28px;height:28px;border:1px solid #d8d6ce;border-radius:50%;background:#fff;font-size:19px;line-height:1;cursor:pointer}.library-title>button:hover{background:#cfff25;border-color:#cfff25}.library-content nav{display:grid;gap:4px}.library-content nav button{width:100%;border:0;border-radius:7px;background:transparent;color:#63655d;padding:11px 10px;display:flex;align-items:center;justify-content:space-between;text-align:left;font-size:11px;cursor:pointer}.library-content nav button:hover{background:#eceae3;color:#11120f}.library-content nav button.active{background:#11120f;color:#fff}.library-content nav button.utility{margin-top:14px;border-top:1px solid #deddd6;border-radius:0;padding-top:16px}.library-content nav small{font-size:9px;color:#999b92}.library-content nav button.active small{color:#c9cbc2}.new-collection{display:flex;gap:5px;margin-top:12px}.new-collection input{min-width:0;width:100%;border:1px solid #d8d6ce;border-radius:6px;background:#fff;padding:9px;font-size:10px;outline:none}.new-collection input:focus{border-color:#11120f}.new-collection button{border:0;border-radius:6px;background:#11120f;color:#fff;padding:0 10px;font-size:9px;cursor:pointer}.works{background:#11120f;color:#f5f3ed;padding:0 2.3vw 100px}.collection-head{min-height:126px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:30px 2px 24px}.collection-head small{display:block;margin-bottom:9px;color:#a7a99f;font-size:8px;letter-spacing:.2em}.collection-head h1{margin:0;font:400 clamp(26px,3vw,44px)/1 var(--serif);letter-spacing:-.02em}.collection-head p{max-width:380px;margin:0 0 4px;color:#a7a99f;font-size:10px;line-height:1.7;letter-spacing:.05em;text-align:right}.empty-library{min-height:calc(100vh - 92px);display:grid;place-content:center;justify-items:center;color:#777970}.empty-library span{font-size:34px}.empty-library p{font-size:11px;letter-spacing:.08em}.masonry{columns:4 260px;column-gap:12px}.work-card{display:block;width:100%;margin:0 0 12px;background:#252621;position:relative;overflow:hidden;break-inside:avoid}.work-image{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.work-card img{display:block;width:100%;height:auto;min-height:220px;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .3s}.work-card:hover img{transform:scale(1.025);filter:brightness(.74)}.work-tools{position:absolute;top:12px;right:12px;display:flex;gap:6px;opacity:0;transform:translateY(-4px);transition:.2s}.work-card:hover .work-tools,.work-card:focus-within .work-tools{opacity:1;transform:none}.work-tools button,.work-tools a{width:34px;height:34px;padding:0;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:#0a0b09a8;backdrop-filter:blur(8px);color:#fff;display:grid;place-items:center;font:500 15px/1 var(--sans);cursor:pointer;text-decoration:none;box-sizing:border-box}.work-tools button:hover,.work-tools a:hover,.work-tools .favorite.active{background:#cfff25;border-color:#cfff25;color:#11120f}.work-tools .remove:hover{background:#ff6259;border-color:#ff6259;color:#fff}.work-tools .restore{background:#cfff25;border-color:#cfff25;color:#11120f}.work-info{position:absolute;right:12px;top:54px;min-width:154px;padding:13px 14px;background:#0a0b09d1;backdrop-filter:blur(10px);color:#fff;display:grid;gap:7px;font-size:9px;letter-spacing:.08em}.collection-backdrop{position:fixed;inset:0;background:#0809078f;z-index:45;display:grid;place-items:center;padding:20px}.collection-dialog{width:min(430px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 40px));background:#f7f6f1;color:#11120f;border-radius:16px;overflow:hidden;box-shadow:0 28px 90px #00000057}.collection-dialog header{height:66px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #deddd6;position:relative}.collection-dialog h2{font:600 15px/1 var(--sans);margin:0}.collection-dialog header button{position:absolute;right:15px;border:0;background:transparent;font-size:25px;cursor:pointer}.collection-list{max-height:390px;overflow:auto;padding:10px}.collection-list>p{padding:34px 12px;text-align:center;color:#888a81;font-size:11px}.collection-list button{width:100%;border:0;border-radius:9px;background:transparent;padding:12px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer}.collection-list button:hover{background:#ebe9e2}.collection-list button.saved{background:#11120f;color:#fff}.collection-list small{font-size:9px}.dialog-create{display:flex;align-items:center;gap:10px;padding:12px 16px 16px;border-top:1px solid #deddd6}.dialog-create>span{width:38px;height:38px;border-radius:9px;background:#e4e3dc;display:grid;place-items:center;font-size:23px}.dialog-create input{min-width:0;flex:1;border:0;background:transparent;padding:10px 0;outline:none}.dialog-create button{border:0;border-radius:99px;background:#11120f;color:#fff;padding:9px 14px;font-size:10px;cursor:pointer}.dialog-create{gap:9px;padding:14px 16px 16px}.dialog-create .dialog-plus{width:40px;height:40px;flex:0 0 40px;border:0;border-radius:9px;background:#e4e3dc;color:#11120f;display:grid;place-items:center;padding:0;font-size:23px;cursor:pointer}.dialog-create .dialog-plus:hover{background:#cfff25}.dialog-create input{border:1px solid #cfcec6;border-radius:8px;background:#fff;padding:11px 12px;font-size:11px}.dialog-create input:focus{border-color:#11120f;box-shadow:0 0 0 2px #11120f1a}.dialog-create .dialog-submit{padding:10px 15px}.dialog-create .dialog-submit:disabled{background:#cbc9c1;color:#8d8e87;cursor:not-allowed}.viewer{position:fixed;inset:0;background:#080907f7;z-index:50;color:#fff;display:grid;place-items:center;padding:42px 70px 104px;transition:padding-left .25s ease}.viewer.info-visible{padding-left:390px}.viewer-info{position:absolute;left:0;top:0;bottom:0;width:320px;padding:84px 28px 30px;background:#1d1e1b;border-right:1px solid rgba(255,255,255,.1);transform:translate(-100%);opacity:0;transition:.25s;z-index:2}.viewer.info-visible .viewer-info{transform:none;opacity:1}.viewer-info>small{font-size:8px;letter-spacing:.18em;color:#85877f}.viewer-info dl{margin:32px 0 0;display:grid;gap:0}.viewer-info dl>div{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1)}.viewer-info dt{font-size:9px;color:#777970;margin-bottom:5px}.viewer-info dd{margin:0;font-size:11px;line-height:1.5;word-break:break-all}.viewer-info>p{position:absolute;left:28px;bottom:28px;margin:0;font-size:9px;color:#777970}.viewer-stage{width:100%;height:100%;display:block;overflow:auto;overscroll-behavior:contain}.viewer-canvas{display:grid;place-items:center;transform-origin:top left;transition:width .18s ease,height .18s ease}.viewer-stage img{display:block;max-width:none;max-height:none;object-fit:contain;transform-origin:center;transition:width .18s ease,height .18s ease,transform .18s ease;will-change:width,height,transform}.viewer-close{position:absolute;border:0;background:transparent;color:#fff;cursor:pointer}.viewer-close{right:28px;top:20px;font:200 34px/1 var(--sans)}.viewer-controls{position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:center;gap:6px;padding:8px;border:1px solid rgba(255,255,255,.16);border-radius:99px;background:#1c1d1adb;backdrop-filter:blur(12px);box-shadow:0 12px 38px #00000052}.viewer.info-visible .viewer-controls{left:calc(50% + 160px)}.viewer-controls button,.viewer-controls a{min-width:38px;height:38px;padding:0 10px;border:0;border-radius:99px;background:#343631;color:#fff;font:500 15px/1 var(--sans);cursor:pointer;text-decoration:none;display:grid;place-items:center;box-sizing:border-box}.viewer-controls button:hover,.viewer-controls a:hover{background:#cfff25;color:#11120f}.viewer-controls input{width:120px;accent-color:#cfff25;cursor:pointer}.viewer-controls output{width:43px;text-align:center;font-size:9px;color:#b9bbb2;font-variant-numeric:tabular-nums}.is-viewing{overflow:hidden}@media(max-width:800px){.site-head{height:76px;gap:24px;padding:0 14px}.identity{width:128px;flex:0 0 128px}.style-tabs{gap:16px;overflow-x:auto}.style-tabs button{white-space:nowrap;padding-bottom:15px;font-size:9px}.library-drawer{top:76px;width:46px}.library-drawer.open{width:238px}.library-toggle{left:6px}.library-content{width:238px;padding-left:54px}.gallery-main,.library-is-open .gallery-main{margin-left:46px}.library-drawer.open{box-shadow:18px 0 46px #0000004d}.works{padding:0 8px 70px}.collection-head{min-height:104px;padding:24px 4px 18px}.collection-head p{display:none}.masonry{columns:2 135px;column-gap:8px}.work-card{margin-bottom:8px}.work-tools{top:7px;right:7px;gap:4px;opacity:1;transform:none;flex-wrap:wrap;justify-content:flex-end;max-width:68px}.work-tools button,.work-tools a{width:30px;height:30px}.viewer{padding:54px 10px 92px}.viewer.info-visible{padding-left:10px}.viewer-info{width:min(82vw,300px);padding:70px 22px 24px}.viewer-controls,.viewer.info-visible .viewer-controls{left:50%;bottom:14px;max-width:calc(100vw - 20px);overflow-x:auto}.viewer-controls input{width:76px}.viewer-controls button,.viewer-controls a{min-width:34px;height:34px;padding:0 8px}}:root{--paper: #f4f1e9;--paper-raised: #faf8f2;--ink: #1e201b;--ink-soft: #45473f;--muted: #8b8c81;--hair: rgba(30, 32, 27, .16);--hair-soft: rgba(30, 32, 27, .08);--gold: #8a7046;--serif: "Instrument Serif", "Songti SC", "Noto Serif SC", serif;--sans: "DM Sans", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:400 13px/1.55 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;color:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
