:root{--paper:#fafaf7;--ink:#343936;--green:#456d58;--pale:#e6ede1;--line:#dbe1d6;--muted:#859084;--serif:'Songti SC','Noto Serif CJK SC','Source Han Serif SC','SimSun',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:4px}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:600}img{max-width:100%;display:block}button{color:inherit}.site-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #889e83;max-width:1440px;margin:0 auto;padding:24px 42px 19px;overflow:hidden}.brand{display:flex;gap:19px;align-items:center;white-space:nowrap;position:relative;z-index:1}.brand span{font-family:var(--serif);font-size:29px;font-weight:600;letter-spacing:1px}.brand img{width:48px;height:57px}.site-header nav{display:flex;align-items:center;gap:28px;padding-right:95px;position:relative;z-index:1}.site-header nav a,.nav-button{padding:7px 0;white-space:nowrap;border:0;background:transparent}.site-header nav a[aria-current]{border-bottom:2px solid var(--green);color:var(--green)}.site-header nav form{display:flex}.track{position:absolute;width:150px;height:85px;right:-50px;top:18px;transform:rotate(-13deg);pointer-events:none}.track span{position:absolute;inset:8px;border:1px solid #c1d0ae;border-radius:50%;background:transparent}.track span:nth-child(2){inset:15px;border-style:dashed}.track span:nth-child(3){inset:23px}.track:before{content:'✦';position:absolute;left:-22px;top:39px;color:#eadb91;font-size:16px}main{max-width:1360px;margin:0 auto;padding:36px 40px 50px;min-height:calc(100vh - 200px)}.art-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;align-items:start}.art-card{min-width:0}.art-image{background:#f0f1eb;overflow:hidden}.art-image img{width:100%;height:auto;transition:opacity .2s}.art-link:hover img{opacity:.9}.art-card h2{font-size:19px;margin:10px 0 8px;line-height:1.5;overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{padding:3px 13px;border-radius:30px;background:var(--pale);font-size:13px;line-height:1.6;overflow-wrap:anywhere;max-width:100%}.site-footer{max-width:1360px;margin:auto;padding:16px 40px 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:11px;color:#899185;letter-spacing:1px;border-top:1px solid #edf0e9}.filing-link{letter-spacing:0;text-align:center}.filing-link:hover{text-decoration:underline}.footer-flower{color:#c5b774;justify-self:end}.empty-gallery{min-height:58vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px}.empty-gallery h1{font-size:32px;font-weight:400;letter-spacing:3px}.empty-gallery p{color:var(--muted);font-size:14px}.empty-line,.short-rule{display:block;width:34px;height:1px;background:#8aa381}.empty-line{margin-bottom:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 23px;border:1px solid transparent;border-radius:6px;background:var(--green);color:white;font-size:14px;line-height:1.6;transition:background .15s}.button:hover{background:#355a45}.button-outline{background:transparent;border-color:#aebfac;color:var(--green)}.button-outline:hover,.button-soft:hover{background:#e6ecdf}.button-soft{background:#edf1e8;color:var(--green)}.button-danger{background:#9c534a}.button-danger:hover{background:#814139}.back-link{display:inline-flex;gap:10px;align-items:center;font-size:14px;color:var(--green);margin-bottom:24px}.art-detail{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px}.detail-picture img{width:100%;height:auto;max-height:76vh;object-fit:contain;object-position:left top}.original-link{display:inline-block;margin-top:15px;font-size:13px;color:var(--green)}.detail-copy{padding-top:25px;min-width:0}.detail-copy h1{font-size:34px;line-height:1.6;margin-bottom:16px;overflow-wrap:anywhere}.description{margin-top:38px}.description h2{font-size:20px;margin:26px 0 15px}.description-text{white-space:pre-wrap;line-height:2.1;overflow-wrap:anywhere;font-family:var(--serif);font-size:17px}.edit-link{display:inline-block;margin-top:32px;font-size:13px;color:var(--green)}.notice{background:#eaf1e4;border-left:2px solid #96ad8d;padding:11px 16px;margin-bottom:22px;font-size:14px}.login-panel{width:min(100%,390px);margin:70px auto 80px}.login-panel h1{font-size:28px;margin:25px 0 12px}.muted{color:var(--muted);font-size:13px}.login-panel form{margin-top:30px}.login-panel .button{width:100%;margin-top:23px}.login-panel .back-link{margin-top:25px}.login-panel label{display:block;margin-bottom:10px}input[type=text],input[type=password],textarea,select{width:100%;border:1px solid #d3dcd1;background:#ffffff70;border-radius:5px;padding:10px 13px;color:var(--ink);min-width:0}input::placeholder,textarea::placeholder{color:#9ca59a}textarea{resize:vertical;min-height:155px;line-height:1.8}.field-error,.errorlist{color:#a34f44;font-size:13px;margin:9px 0;padding:0;list-style:none}.manage-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:30px}.work-list{border-right:1px solid var(--line);padding-right:22px}.work-list h1,.editor>h1{font-size:24px;margin-bottom:20px}.upload-button{margin-bottom:20px}.filters{display:flex;gap:14px;font-size:12px;margin-bottom:20px;white-space:nowrap}.filters a{padding:4px 0;color:#839080}.filters a[aria-current]{color:var(--green);border-bottom:1px solid var(--green)}.work-items{display:flex;flex-direction:column;gap:12px}.work-item{padding:10px;display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px;border:1px solid transparent;border-radius:4px;align-items:start}.work-item.selected{border-color:#a3bda0;background:#f1f4ed}.work-item:hover{background:#f0f3eb}.work-item img{width:80px;max-height:108px;object-fit:contain}.work-item h2{font-size:15px;margin-bottom:7px;overflow-wrap:anywhere}.work-item .tag{font-size:10px;padding:2px 7px}.work-item .tags{gap:4px}.status-label{font-size:10px;color:#6e8665;display:block;margin-top:6px}.status-label.is-hidden{color:#9a9182}.status-label:before{content:'•';margin-right:5px}.editor{min-width:0}.editor-columns{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);gap:28px}.image-picker{display:flex;align-items:center;justify-content:center;min-height:330px;background:#f0f2eb;border:1px dashed #bccab5;cursor:pointer;color:#74856d;overflow:hidden;position:relative}.image-picker.has-image{min-height:0;border:0;background:transparent}.image-picker img{width:100%;height:auto;max-height:62vh;object-fit:contain}.image-picker span{text-align:center}.image-picker strong,.image-picker small{display:block}.upload-icon{display:block;font-size:35px;margin-bottom:16px;font-weight:200}.image-picker.dragover{outline:2px solid var(--green);outline-offset:4px}.file-select{margin-top:15px;text-align:center}.file-select input{display:block;font-size:11px;max-width:100%;margin:12px auto}.js .file-select input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.file-select .button{width:100%;cursor:pointer}.helper{color:#969e94;font-size:11px;line-height:1.7;margin-top:7px}.image-editor .helper{text-align:center}.file-name{font-size:11px;color:var(--green);text-align:center;overflow-wrap:anywhere;margin-top:5px}.field{margin-bottom:22px}.field>label{display:block;font-family:var(--serif);font-size:17px;margin-bottom:9px}.optional{color:#92998e;font-family:var(--sans);font-size:10px;margin-left:7px}.save-actions{display:flex;gap:12px}.save-actions>.button{flex:1}.tag-editor{display:flex;align-items:center;flex-wrap:wrap;gap:6px;border:1px solid #d3dcd1;background:#ffffff70;border-radius:5px;padding:9px 10px;min-height:47px}.tag-editor button{border:0;background:var(--pale);border-radius:20px;padding:4px 10px;font-size:12px}.tag-editor input{border:0;background:transparent;width:90px;flex:1;padding:3px;font-size:13px;outline-offset:1px;min-width:70px}.tag-editor button span{margin-left:7px;color:#6e8567}.editor-extra{display:flex;justify-content:space-between;align-items:center;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--green)}.delete-link{border:0;background:transparent;color:#a36c63;font-size:12px;padding:7px}.editor-idle{padding:90px 25px;text-align:center}.editor-idle .short-rule{margin:0 auto 28px}.editor-idle h2{font-size:25px;font-weight:400;margin-bottom:12px}.list-empty{padding:20px 0}.mobile-back{display:none}.upload-progress{margin-top:15px;font-size:12px;color:var(--green)}progress{display:block;width:100%;height:7px;margin-top:8px;accent-color:var(--green)}dialog{border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);padding:30px;max-width:calc(100vw - 32px)}dialog::backdrop{background:#24362b55}dialog h2{font-size:25px;margin-bottom:15px}dialog p{font-size:14px;line-height:1.9;overflow-wrap:anywhere}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:26px}[hidden]{display:none!important}@media(min-width:1500px){main{padding-top:44px}.art-grid{gap:45px 34px}}@media(max-width:1100px){.site-header{padding:20px 28px}.brand span{font-size:25px}.site-header nav{padding-right:55px;gap:22px}main{padding:30px 28px 45px}.manage-layout{grid-template-columns:225px minmax(0,1fr);gap:22px}.editor-columns{grid-template-columns:1fr}.image-picker img{max-height:400px}.text-editor{padding-top:3px}.image-picker{min-height:260px}.art-detail{gap:38px}}@media(max-width:800px){.brand span{font-size:22px}.brand{gap:12px}.brand img{width:37px;height:45px}.site-header nav{font-size:13px;padding-right:10px;gap:18px}.track{opacity:.45;right:-90px}.art-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.art-detail{gap:28px}.detail-copy h1{font-size:27px}.description-text{font-size:15px}.description{margin-top:26px}.manage-layout{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:600px){.site-header{padding:17px 18px 15px;gap:8px;flex-wrap:wrap}.brand{gap:8px}.brand span{font-size:19px;letter-spacing:0}.brand img{width:32px;height:39px}.site-header nav{gap:17px;padding-right:0;margin-left:auto;font-size:12px}.site-header nav a,.nav-button{padding:4px 0}.site-header nav form{font-size:12px}.track{width:80px;height:45px;right:-40px;top:1px;opacity:.5}.track:before{display:none}main{padding:26px 22px 40px}.site-footer{padding:14px 22px 22px;grid-template-columns:1fr auto}.filing-link{grid-column:1/-1;grid-row:2}.footer-flower{grid-column:2;grid-row:1}.art-grid{grid-template-columns:1fr;gap:28px}.art-card h2{font-size:20px;margin-top:11px}.tag{font-size:12px}.art-detail{grid-template-columns:1fr;gap:23px}.detail-copy{padding-top:0}.detail-copy h1{font-size:27px;margin-bottom:12px}.detail-picture img{max-height:none}.description{margin-top:27px}.description h2{margin-top:23px;font-size:19px}.description-text{font-size:16px}.back-link{margin-bottom:21px;font-size:13px}.login-panel{margin:45px auto 60px}.manage-layout{display:block}.work-list{border-right:0;padding-right:0}.has-editor .work-list{display:none}.manage-layout:not(.has-editor) .editor{display:none}.work-item{grid-template-columns:90px minmax(0,1fr);gap:18px;padding:13px 7px;border-bottom:1px solid var(--line);border-radius:0}.work-item img{width:90px;max-height:110px}.work-item h2{font-size:18px}.work-item .tag{font-size:11px;padding:3px 9px}.filters{gap:24px;font-size:13px}.work-list h1,.editor>h1{font-size:24px}.mobile-back{display:inline-flex}.image-picker img{max-height:none}.editor-columns{gap:24px}.image-picker{min-height:280px}.save-actions{flex-direction:column}.save-actions>.button{width:100%;padding:12px 20px}.field{margin-bottom:23px}.editor-extra{margin-top:30px}.empty-gallery h1{font-size:26px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Keep the shared header and footer visible; scroll only the content area. */
html { height: 100%; }
body {
  height: 100vh;
  height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
}
.site-header, .site-footer { width: 100%; }
main {
  width: 100%;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
}
.empty-gallery { min-height: min(58vh, 100%); }

/* Fit each complete gallery card into the available content height. */
main { container-type: size; }
.art-card {
  height: min(560px, calc(100dvh - 280px));
  height: min(560px, 100cqh);
  display: flex;
  flex-direction: column;
}
.art-link {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.art-image {
  background: transparent;
  flex: 1;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.art-image img { width: 100%; height: 100%; object-fit: contain; }
.art-card h2, .art-card > .tags { flex: none; }
.detail-picture img { max-height: calc(100cqh - 5.5rem); }
