:root{--bg:#f7f6f2;--surface:#fff;--surface-2:#ecebe5;--ink:#1c1c1a;--ink-2:#55544f;--muted:#8a8880;--line:#1c1c1a1a;--line-strong:#1c1c1a38;--accent:#c8462b;--radius:10px;--gutter:clamp(16px, 4vw, 48px);--content:1440px;--header-height:60px;--font-sans:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", serif}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}body.lightbox-open{overflow:hidden}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.archive-header{z-index:30;height:var(--header-height);padding:0 var(--gutter);border-bottom:1px solid var(--line);-webkit-backdrop-filter:saturate(1.4)blur(14px);background:#f7f6f2db;justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.archive-wordmark{font-family:var(--font-serif);letter-spacing:.06em;white-space:nowrap;flex:none;padding:0;font-size:19px;font-weight:600}.archive-nav{align-items:center;gap:2px;min-width:0;display:flex}.archive-nav button,.archive-nav a{color:var(--ink-2);white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:14px;transition:background .15s,color .15s}.archive-nav button:hover,.archive-nav a:hover{color:var(--ink)}.archive-nav .archive-page-link{color:var(--muted)}.archive-nav button.active,.archive-nav .archive-page-link.active{background:var(--ink);color:var(--bg)}.nav-divider{background:var(--line-strong);flex:none;width:1px;height:16px;margin:0 8px}.archive-view{width:100%;max-width:var(--content);min-height:calc(100svh - var(--header-height));padding:clamp(32px, 5vw, 64px) var(--gutter) clamp(64px, 8vw, 112px);margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(28px,4vw,44px);display:flex}.page-head h1{font-family:var(--font-serif);letter-spacing:.01em;text-wrap:balance;margin:0;font-size:clamp(28px,4.2vw,46px);font-weight:600;line-height:1.2}.page-lead{max-width:640px;color:var(--muted);margin:10px 0 0;font-size:15px}.micro-label{color:var(--ink);margin:0;font-size:14px;font-weight:600}.pill-action{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;flex:none;align-items:center;gap:6px;padding:9px 18px;font-size:14px;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.pill-action:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:var(--bg)}.pill-action:disabled{cursor:wait;opacity:.5}.text-action{color:var(--ink-2);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:4px;padding:0;font-size:14px}.text-action:hover{color:var(--ink);text-decoration-color:currentColor}.masonry{columns:3;column-gap:24px}.archive-photo{break-inside:avoid;width:100%;margin:0 0 32px;display:inline-block}.archive-photo-media{position:relative}.archive-photo-button{background:var(--surface-2);cursor:zoom-in;border-radius:8px;width:100%;padding:0;display:block;overflow:hidden}.archive-photo-button img{width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.archive-photo-button:hover img{transform:scale(1.02)}.photo-like{z-index:2;-webkit-backdrop-filter:blur(8px);min-width:34px;height:34px;color:var(--ink);font-variant-numeric:tabular-nums;background:#ffffffe0;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 11px;font-size:13px;transition:opacity .15s,color .15s,transform .15s;display:inline-flex;position:absolute;top:10px;right:10px}.photo-like span{font-size:15px;line-height:1}.photo-like.active{color:var(--accent)}.photo-like:hover:not(:disabled){transform:scale(1.05)}.photo-like:disabled{cursor:wait;opacity:.6}@media (hover:hover){.photo-like:not(.active){opacity:0}.archive-photo-media:hover .photo-like,.archive-photo-media:focus-within .photo-like{opacity:1}}.archive-photo-meta{margin-top:12px}.archive-photo-meta h3{margin:0;font-size:15px;font-weight:500;line-height:1.45}.archive-photo-meta p{color:var(--muted);margin:2px 0 0;font-size:13px}.archive-photo-meta .photo-origin{color:var(--ink-2)}.tile-description{color:var(--ink-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:8px 0 0;font-size:13px;line-height:1.7;display:-webkit-box;overflow:hidden}.tile-tags{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:12px;display:flex}.photo-placeholder-media{aspect-ratio:4/3;background:var(--surface-2);border-radius:8px;animation:1.4s ease-in-out infinite alternate placeholder-pulse}.photo-placeholder:nth-child(3n+2) .photo-placeholder-media{aspect-ratio:3/4}.photo-placeholder-title{background:var(--surface-2);border-radius:4px;width:45%;height:12px;margin-top:14px}@keyframes placeholder-pulse{0%{opacity:1}to{opacity:.55}}.empty-state{border:1px dashed var(--line-strong);min-height:220px;color:var(--muted);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:48px 16px;display:flex}.empty-state p{margin:0 0 12px}.search-box{max-width:640px;display:block;position:relative}.search-box svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:17px;transform:translateY(-50%)}.search-box input{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;outline:none;width:100%;height:48px;padding:0 16px 0 44px;font-size:15px;transition:border-color .15s,box-shadow .15s}.search-box input:focus{border-color:var(--ink);box-shadow:0 0 0 4px #1c1c1a12}.search-box input::placeholder{color:var(--muted)}.tag-browser{margin-top:20px}.tag-index{flex-wrap:wrap;gap:8px;display:flex}.tag-index button,.dialog-tags button{border:1px solid var(--line-strong);border-radius:999px;padding:6px 13px;font-size:13px;transition:background .15s,color .15s,border-color .15s}.tag-index button span{color:var(--muted);margin-left:4px;font-size:12px}.tag-index button:hover{border-color:var(--ink)}.tag-index button.active{border-color:var(--ink);background:var(--ink);color:var(--bg)}.tag-index button.active span{color:#f7f6f299}.tag-index .tag-toggle{color:var(--ink-2);border-style:dashed}.result-summary{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin:28px 0 20px;padding-top:20px;display:flex}.result-summary p{color:var(--ink-2);margin:0;font-size:14px}.result-actions{align-items:center;gap:16px;display:flex}.sort-control select{border:1px solid var(--line-strong);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%2355544f' stroke-width='1.5'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center;appearance:none;border-radius:999px;padding:7px 34px 7px 14px;font-size:13px}.album-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;display:grid}.album-card{text-align:left;align-self:start;padding:0;display:block}.album-cover{aspect-ratio:4/3;background:var(--surface-2);border-radius:10px;display:block;overflow:hidden}.album-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.album-card:hover .album-cover img{transform:scale(1.03)}.album-copy{flex-direction:column;gap:2px;margin-top:12px;display:flex}.album-copy strong{font-size:17px;font-weight:500}.album-copy small{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}.album-detail{scroll-margin-top:calc(var(--header-height) + 24px);outline:none}.album-detail-head{margin:16px 0 28px}.album-detail h2{font-family:var(--font-serif);margin:0;font-size:clamp(24px,3vw,34px);font-weight:600}.album-detail-head p{max-width:640px;color:var(--muted);margin:6px 0 0;font-size:14px}.guestbook-layout{grid-template-columns:minmax(300px,400px) minmax(0,1fr);align-items:start;gap:clamp(32px,5vw,72px);display:grid}.guestbook-form,.submission-form-panel{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:clamp(20px,3vw,32px)}.field,.submission-field{margin-bottom:20px;display:block}.field>span,.submission-field>span{color:var(--ink-2);justify-content:space-between;margin-bottom:8px;font-size:13px;font-weight:500;display:flex}.field>span small{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.field input,.field textarea,.submission-field input,.submission-field textarea{border:1px solid var(--line-strong);background:var(--bg);resize:vertical;border-radius:10px;outline:none;width:100%;padding:11px 14px;font-size:15px;line-height:1.6;transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus,.field textarea:focus,.submission-field input:focus,.submission-field textarea:focus{border-color:var(--ink);background:var(--surface);box-shadow:0 0 0 4px #1c1c1a12}.field input:disabled,.field textarea:disabled,.submission-field input:disabled,.submission-field textarea:disabled{opacity:.5}.field input::placeholder,.field textarea::placeholder,.submission-field input::placeholder,.submission-field textarea::placeholder{color:var(--muted)}.submission-field small{color:var(--muted);margin-top:6px;font-size:12px;display:block}.guestbook-notice,.guestbook-error,.guestbook-success{background:var(--surface-2);color:var(--ink-2);border-radius:10px;margin:0 0 16px;padding:10px 14px;font-size:13px;line-height:1.6}.guestbook-error{color:#9a3420;background:#fbeae6}.guestbook-success{color:#3f6326;background:#e9f1e3}.guestbook-submit,.submission-file-button{background:var(--ink);width:100%;color:var(--bg);cursor:pointer;text-align:center;border-radius:999px;padding:13px 18px;font-size:15px;font-weight:500;transition:opacity .15s;display:block}.guestbook-submit:hover:not(:disabled),.submission-file-button:hover{opacity:.86}.guestbook-submit:disabled{opacity:.3}.list-head{align-items:baseline;gap:8px;margin:0 0 8px;font-size:14px;font-weight:600;display:flex}.list-head span{color:var(--muted);font-weight:400}.guestbook-list{min-width:0}.guestbook-entry{border-bottom:1px solid var(--line);padding:18px 0}.guestbook-entry header{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:6px;display:flex}.guestbook-entry strong{font-size:15px;font-weight:600}.guestbook-entry time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.guestbook-entry>p{color:var(--ink-2);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.8}.guestbook-empty{border:1px dashed var(--line-strong);min-height:200px;color:var(--muted);border-radius:14px;place-items:center;margin:0;display:grid}.submission-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(24px,4vw,56px);display:grid}.submission-preview,.submission-form-panel{min-width:0}.submission-preview{top:calc(var(--header-height) + 24px);position:sticky}.submission-panel-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.submission-panel-head>span{color:var(--muted);font-size:12px}.submission-image{aspect-ratio:4/3;border:1px dashed var(--line-strong);background:var(--surface);color:var(--muted);text-align:center;border-radius:16px;place-items:center;padding:16px;display:grid;overflow:hidden}.submission-image.selected{background:#1c1c1a;border-style:solid;padding:0}.submission-image img{object-fit:contain;width:100%;height:100%}.submission-image strong{color:var(--ink);font-family:var(--font-serif);font-size:clamp(20px,2.4vw,26px);font-weight:600;display:block}.submission-image p{margin:8px 0 0;font-size:13px}.submission-file-button{margin-top:14px}.visually-hidden:focus-visible+.submission-file-button{outline:2px solid var(--ink);outline-offset:3px}.submission-file-name{color:var(--muted);overflow-wrap:anywhere;margin:10px 0 0;font-size:13px}.submission-code-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.submission-captcha{border:1px solid var(--line);background:var(--bg);border-radius:12px;align-items:center;gap:16px;margin:0 0 18px;padding:10px;display:flex}.submission-captcha img{object-fit:contain;background:#f4f3ec;border-radius:8px;width:210px;max-width:62%;height:72px}.submission-captcha>div{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.submission-captcha span{color:var(--muted);font-size:12px}.submission-captcha button,.submission-resend{color:var(--ink-2);text-underline-offset:4px;padding:0;font-size:13px;text-decoration:underline}.submission-captcha button:disabled,.submission-resend:disabled{opacity:.45}.submission-secondary-button{border:1px solid var(--ink);border-radius:10px;min-width:120px;height:48px;margin-bottom:20px;padding:0 16px;font-size:14px;transition:background .15s,color .15s}.submission-secondary-button:hover:not(:disabled){background:var(--ink);color:var(--bg)}.submission-secondary-button:disabled{opacity:.4}.submission-resend{margin:-8px 0 20px}.submission-debug{color:#5f6d0c;margin:-8px 0 20px;font-size:13px}.submission-paired-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.submission-consent{color:var(--ink-2);cursor:pointer;align-items:flex-start;gap:10px;margin:4px 0 20px;font-size:13px;line-height:1.6;display:flex}.submission-consent input{width:16px;height:16px;accent-color:var(--ink);flex:none;margin-top:2px}.archive-footer{max-width:var(--content);padding:32px var(--gutter) 40px;border-top:1px solid var(--line);color:var(--muted);grid-template-columns:1fr auto auto;align-items:center;gap:24px 48px;margin:0 auto;font-size:13px;display:grid}.footer-brand{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.footer-brand strong{color:var(--ink);font-family:var(--font-serif);letter-spacing:.04em;font-size:16px;font-weight:600}.archive-footer a:hover{color:var(--ink)}.footer-note{grid-column:1/-1;margin:0;font-size:12px}.footer-note a{text-underline-offset:3px;text-decoration:underline}.footer-links,.footer-meta{flex-wrap:wrap;gap:4px 20px;display:flex}.like-notice{z-index:120;background:var(--ink);color:var(--bg);border-radius:999px;margin:0;padding:10px 18px;font-size:14px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0000002e}.photo-dialog{z-index:100;color:#efeee8;cursor:zoom-out;background:#111110;justify-content:center;align-items:center;padding:64px 88px 24px;animation:.18s both dialog-in;display:flex;position:fixed;inset:0}.dialog-bar{z-index:3;color:#8f8d85;font-variant-numeric:tabular-nums;cursor:default;justify-content:space-between;align-items:center;height:60px;padding:0 16px 0 24px;font-size:13px;display:flex;position:absolute;top:0;left:0;right:0}.dialog-close,.dialog-step{color:#efeee8;background:#ffffff14;border-radius:999px;place-items:center;width:44px;height:44px;font-size:26px;line-height:1;transition:background .15s;display:grid}.dialog-close:hover,.dialog-step:hover{background:#ffffff2e}.dialog-step{z-index:3;font-size:30px;position:absolute;top:50%;transform:translateY(-50%)}.dialog-step.prev{left:22px}.dialog-step.next{right:22px}.dialog-content{cursor:default;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,3vw,48px);width:min(1560px,100%);height:100%;display:grid}.dialog-content figure{place-items:center;min-width:0;min-height:0;margin:0;display:grid}.dialog-content figure img{object-fit:contain;grid-area:1/1;width:auto;max-width:100%;height:auto;max-height:calc(100svh - 100px)}.dialog-full{opacity:0;transition:opacity .28s}figure.loaded .dialog-full{opacity:1}.dialog-preview{filter:blur(2px)}.photo-info{align-self:center;max-height:calc(100vh - 100px);padding-right:4px;overflow:auto}.photo-source{color:#8f8d85;margin:0 0 8px;font-size:13px}.photo-info h2{font-family:var(--font-serif);margin:0;font-size:clamp(24px,2.4vw,32px);font-weight:600;line-height:1.3}.photo-description{color:#c4c2ba;margin:14px 0 0;font-size:14px;line-height:1.8}.dialog-like-button{color:#efeee8;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:8px;margin:20px 0 24px;padding:8px 16px;font-size:14px;transition:background .15s,border-color .15s;display:inline-flex}.dialog-like-button span{font-size:16px;line-height:1}.dialog-like-button small{color:#8f8d85;font-variant-numeric:tabular-nums;font-size:13px}.dialog-like-button:hover:not(:disabled){border-color:#ffffff80}.dialog-like-button.active{border-color:var(--accent);background:var(--accent)}.dialog-like-button.active small{color:#ffffffbf}.dialog-like-button:disabled{cursor:wait;opacity:.6}.exif-grid{margin:0}.exif-grid div{border-top:1px solid #ffffff14;grid-template-columns:64px 1fr;gap:12px;padding:9px 0;display:grid}.exif-grid dt,.exif-grid dd{margin:0;font-size:13px}.exif-grid dt{color:#8f8d85}.exif-grid dd{color:#dddbd3}.exif-grid dd small{color:#8f8d85;font-size:12px;display:block}.dialog-tags{flex-wrap:wrap;gap:6px;margin-top:20px;display:flex}.dialog-tags button{color:#c4c2ba;border-color:#ffffff2e;padding:4px 11px;font-size:12px}.dialog-tags button:hover{color:#efeee8;border-color:#efeee8}@keyframes dialog-in{0%{opacity:0}to{opacity:1}}@media (max-width:1100px){.archive-header{flex-wrap:wrap;gap:0;height:auto;padding:0}.archive-wordmark{height:52px;padding:0 var(--gutter);align-items:center;display:flex}.archive-nav{width:100%;height:48px;padding:0 calc(var(--gutter) - 10px);border-top:1px solid var(--line);scrollbar-width:none;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000);mask-image:linear-gradient(90deg,#000 85%,#0000)}.archive-nav::-webkit-scrollbar{display:none}.archive-view{min-height:calc(100svh - 101px)}.album-detail,.submission-preview{scroll-margin-top:124px;top:124px}.masonry{columns:2}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-content{grid-template-columns:minmax(0,1fr) 280px}}@media (max-width:760px){.page-head{flex-direction:column;align-items:flex-start;gap:16px}.guestbook-layout,.submission-layout{grid-template-columns:1fr}.submission-preview{position:static}.archive-footer{grid-template-columns:1fr;gap:12px}.photo-dialog{padding:60px 0 24px;display:block;overflow:auto}.dialog-content{height:auto;display:block}.dialog-content figure img{max-height:70svh}.dialog-step{display:none}.photo-info{max-height:none;padding:24px 20px 48px}.like-notice{text-align:center;border-radius:12px;left:16px;right:16px;transform:none}}@media (max-width:560px){.masonry{columns:1}.album-grid{grid-template-columns:1fr}.result-summary{flex-direction:column;align-items:flex-start;gap:12px}.result-actions{justify-content:space-between;width:100%}.submission-paired-fields,.submission-code-row{grid-template-columns:1fr;gap:0}.submission-secondary-button{width:100%}.submission-captcha{flex-direction:column;align-items:flex-start}.submission-captcha img{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
