/* 延续纸面水彩作品集；大按钮、低动效，优先照顾手机画友。 */
.place-page { font-size: 18px; }
.place-nav { display:flex; justify-content:space-between; gap:1rem; padding-block:1.5rem; border-bottom:1px solid var(--line); }
.place-nav a { color:var(--forest); }
.place-preview-notice { margin-top:1.5rem; padding:.8rem 1rem; background:#f4e6d5; color:#654524; font-size:16px; }
.place-hero { padding:2rem 0 3rem; max-width:48rem; }
.place-hero h1 { font-size:clamp(2.5rem,6vw,4.7rem); margin:.5rem 0 1rem; }
.place-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; }
.place-page .button { min-height:48px; font-size:17px; cursor:pointer; white-space:normal; }
.place-page .button-primary { background:#2d5f3f; color:#fffdf8; border:1px solid #2d5f3f; }
.place-outline { color:#2d5f3f; background:transparent; border:1px solid #2d5f3f; }
.place-activity { padding:1.5rem 2rem; background:#e8eee4; border-left:4px solid #2d5f3f; }
.place-activity h2 { font-size:1.5rem; }
.place-help { font-size:16px; color:#536252; }
.place-section { padding-block:3rem; border-bottom:1px solid var(--line); scroll-margin-top:1rem; }
.place-section h2 { font-size:clamp(1.7rem,3vw,2.3rem); }
.place-empty { padding:2rem; margin-top:1.5rem; border:1px dashed #889783; }
.place-empty p { margin-bottom:0; }
.place-upload { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:3rem; }
.place-upload form { min-width:0; }
.place-upload label:not(.place-consent) { display:block; margin:.8rem 0 .4rem; color:#244d33; font-weight:600; }
.place-upload input:not([type=checkbox]), .place-upload textarea { width:100%; min-height:48px; padding:.75rem; background:#fffdf8; border:1px solid #879381; border-radius:4px; font:inherit; color:#263c2e; }
.place-upload textarea { resize:vertical; }
.place-consent { display:flex; gap:.7rem; align-items:flex-start; margin-block:1rem; font-size:16px; }
.place-consent input { flex:none; width:22px; height:22px; margin-top:3px; accent-color:#2d5f3f; }
.place-file-previews, .place-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.place-file-previews figure { margin:0; min-width:0; }
.place-file-previews img { width:100%; height:130px; object-fit:contain; background:#e8eee4; }
.place-file-previews figcaption { font-size:14px; overflow-wrap:anywhere; }
.place-remove-image { min-width:44px; min-height:44px; margin-top:.35rem; padding:.4rem .75rem; border:1px solid #2d5f3f; border-radius:4px; background:#fffdf8; color:#2d5f3f; font:inherit; font-size:16px; cursor:pointer; }
.place-remove-image:disabled { opacity:.55; cursor:wait; }
.place-work-images { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:1rem; margin-block:1rem; }
.place-work-images button { border:1px solid var(--line); padding:1rem; background:var(--paper-bright); cursor:zoom-in; }
.place-work-images img { width:100%; height:320px; object-fit:contain; }
.place-work-note { white-space:pre-wrap; overflow-wrap:anywhere; }
.place-gallery article { min-width:0; overflow-wrap:anywhere; }
[data-preview-card] { overflow-wrap:anywhere; }
[data-preview-card] img { display:block; max-width:100%; max-height:65vh; object-fit:contain; margin-block:1rem; }
.place-lightbox { max-width:95vw; max-height:95dvh; padding:1rem; background:#fffdf8; border:0; }
.place-lightbox::backdrop { background:rgb(15 30 20 / .8); }
.place-lightbox button { display:block; margin:0 0 1rem auto; min-height:48px; padding:.5rem 1rem; }
.place-lightbox img { max-width:85vw; max-height:75dvh; object-fit:contain; }
.place-page :focus-visible { outline:3px solid #b54f20; outline-offset:4px; }
.place-page [hidden] { display:none!important; }
[data-upload-status] { margin-top:1rem; color:#78401f; }
.place-upload-first .place-hero { padding:1rem 0; }
.place-upload-first .place-hero h1 { font-size:clamp(2rem,4vw,3rem); }
.place-upload-first .place-upload { padding-top:0; }
.place-upload-first .place-upload > div { display:none; }
.place-upload-first .place-upload { display:block; max-width:760px; }
.place-upload-first .place-upload form > label:first-child { margin-top:0; }
@media(max-width:767px) { .place-upload { grid-template-columns:1fr; gap:1rem; } .place-section { padding-block:2rem; } .place-activity { padding:1rem; } .place-actions .button { flex:1; } .place-file-previews { gap:.5rem; } .place-file-previews img { height:95px; } .place-gallery { grid-template-columns:1fr; } }
