.interaction-inline{display:flex;gap:.7rem;align-items:center;margin-top:1rem}.interaction-like,.interaction-comment-open,.interaction-profile-link,.interaction-detail button,.interaction-drawer button{border:1px solid rgba(104,145,172,.25);border-radius:999px;background:rgba(245,250,252,.84);color:#4c718b;padding:.45rem .85rem;font:inherit;cursor:pointer;transition:background .18s,transform .18s,border-color .18s}.interaction-like:hover:not(:disabled),.interaction-comment-open:hover,.interaction-profile-link:hover,.interaction-detail button:hover:not(:disabled),.interaction-drawer button:hover:not(:disabled){background:#e4f3fb;border-color:#8abed9;transform:translateY(-1px)}.interaction-like[data-liked=true]{color:#bd6374;background:#fff0f2}.interaction-like:disabled,.interaction-detail button:disabled{opacity:.53;cursor:default}.interaction-identity{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-weight:700;margin-left:.45rem}.article-row .interaction-like{align-self:start;margin-top:.5rem}.interaction-detail{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(112,145,163,.25)}.interaction-detail>h2{font-size:1.5rem}.interaction-detail>.interaction-like{margin:0 0 1.25rem}.interaction-section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.interaction-section-head h3{margin:.4rem 0 1rem;font-size:1.2rem}.interaction-section-head select{border:1px solid #a8c7d8;background:#f7fbfd;color:#496b7f;padding:.35rem .6rem;border-radius:9px}.interaction-comment{display:flex;gap:.8rem;padding:1.2rem 0;border-top:1px solid rgba(112,145,163,.2)}.interaction-comment-copy{flex:1;min-width:0}.interaction-comment-copy>p,.interaction-reply p,.interaction-history p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:.35rem 0}.interaction-comment-head{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.interaction-comment-head time,.interaction-reply time,.interaction-history time{color:#8196a5;font-size:.83rem}.interaction-comment-head em{font-size:.76rem;color:#a77739;font-style:normal}.interaction-avatar,.interaction-reply img{width:38px;height:38px;flex:0 0 38px;border-radius:50%;overflow:hidden;background:#d8e8f2;display:grid;place-items:center;color:#457493}.interaction-avatar img,.interaction-reply img{object-fit:cover;width:100%;height:100%}.interaction-comment-copy>button{padding:.12rem .45rem;font-size:.8rem}.interaction-reply{display:flex;gap:.6rem;margin-top:1rem;padding:.7rem 1rem;border-left:2px solid #a8c9dc;background:rgba(228,242,249,.45);border-radius:0 12px 12px 0}.interaction-reply img{width:29px;height:29px;flex-basis:29px}.interaction-reply strong{margin-right:.5rem}.interaction-empty,.interaction-loading{color:#7891a1;padding:1rem 0}.interaction-compose,.interaction-verify{display:grid;gap:.7rem;margin-top:1.25rem;padding:1rem;border:1px solid rgba(112,145,163,.23);border-radius:16px;background:rgba(246,250,252,.74)}.interaction-compose label,.interaction-verify label,.interaction-profile label{display:grid;gap:.35rem;font-size:.89rem;color:#537084}.interaction-compose textarea,.interaction-verify input,.interaction-profile input,.interaction-profile textarea{width:100%;border:1px solid #b9cedc;border-radius:10px;padding:.65rem .8rem;background:#fff;color:#283e50;font:inherit}.interaction-compose>div:last-child{display:flex;gap:.7rem;justify-content:space-between;align-items:center}.interaction-compose small,.interaction-verify small{color:#8398a6}.interaction-profile-link{margin-top:.7rem}.interaction-overlay{position:fixed;inset:0;z-index:1200;display:flex;justify-content:flex-end}.interaction-backdrop{position:absolute;inset:0;background:#10273783;border:0;cursor:pointer}.interaction-drawer{position:relative;z-index:1;width:min(480px,100%);height:100%;overflow:auto;padding:1.4rem;background:#f5f9fb;box-shadow:-12px 0 50px #10263833;animation:interaction-slide .23s ease-out}.interaction-drawer>header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #c7d8e3;margin-bottom:1rem}.interaction-drawer>header h2{margin:.2rem 0 1rem}.interaction-drawer>header button{width:38px;height:38px;padding:0;font-size:1.5rem}.interaction-panel-open{overflow:hidden}.interaction-profile{display:grid;gap:.8rem}.interaction-profile strong{font-size:1.2rem}.interaction-profile span{color:#708ba0}.interaction-profile form{display:grid;gap:.5rem;border-top:1px solid #d1dfe7;padding-top:.8rem}.interaction-pending-hint{background:#fff3db;color:#866838;padding:1rem;border-radius:12px;margin:1rem 0}.interaction-history{border-top:1px solid #d4e1e9;padding:.9rem 0}.interaction-history a{color:#367da5;font-weight:700}.interaction-history time{display:block}#interaction-notice{position:fixed;right:1rem;bottom:1rem;z-index:1500;padding:.7rem 1rem;background:#234e69;color:#fff;border-radius:12px;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s;pointer-events:none}#interaction-notice.show{opacity:1;transform:translateY(0)}#interaction-confirm{border:1px solid #bfd2df;border-radius:18px;padding:1.4rem;color:#314b5e;background:#f9fcfd;max-width:min(400px,calc(100vw - 2rem))}#interaction-confirm::backdrop{background:#102b3c80}#interaction-confirm form>div{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}#interaction-confirm button{border:1px solid #b9ccd9;border-radius:9px;padding:.45rem .9rem;background:#f3f8fb;color:#385d75}#interaction-confirm button[value=confirm]{background:#a94e5e;color:#fff;border-color:#a94e5e}@keyframes interaction-slide{from{transform:translateX(20px);opacity:.8}to{transform:translateX(0);opacity:1}}
[data-theme=dark] .interaction-like,[data-theme=dark] .interaction-comment-open,[data-theme=dark] .interaction-profile-link,[data-theme=dark] .interaction-detail button,[data-theme=dark] .interaction-drawer button{background:#17374a;color:#b8d9e9;border-color:#54809a66}[data-theme=dark] .interaction-like[data-liked=true]{color:#f4a7b4;background:#4c2938}[data-theme=dark] .interaction-like:hover:not(:disabled),[data-theme=dark] .interaction-comment-open:hover,[data-theme=dark] .interaction-detail button:hover:not(:disabled),[data-theme=dark] .interaction-drawer button:hover:not(:disabled){background:#26516b}[data-theme=dark] .interaction-section-head select,[data-theme=dark] .interaction-compose textarea,[data-theme=dark] .interaction-verify input,[data-theme=dark] .interaction-profile input{background:#153549;color:#e7f3f8;border-color:#587e92}[data-theme=dark] .interaction-compose,[data-theme=dark] .interaction-verify{background:#153247c9;border-color:#64849a55}[data-theme=dark] .interaction-drawer{background:#102838;color:#e8f3f8}[data-theme=dark] .interaction-reply{background:#1b3d50}[data-theme=dark] .interaction-pending-hint{background:#4c3d28;color:#f5dcab}[data-theme=dark] #interaction-confirm{background:#173347;color:#e5f2f8;border-color:#53788e}
@media(max-width:700px){.interaction-overlay{align-items:flex-end}.interaction-drawer{width:100%;height:min(84vh,800px);border-radius:20px 20px 0 0;animation:interaction-rise .23s ease-out}.interaction-identity{width:36px;height:36px}.interaction-compose>div:last-child{align-items:flex-start;flex-direction:column}}@keyframes interaction-rise{from{transform:translateY(25px);opacity:.8}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.interaction-drawer{animation:none}.interaction-like,.interaction-comment-open,#interaction-notice{transition:none}}
.interaction-identity img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.interaction-profile-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#dbeaf8;color:#2674aa;font-size:1.5rem;font-weight:700}

/* Interactions share the existing reading layout, not a second page shell. */
.article-side-column { position: static !important; height: auto; max-height: none; overflow: visible; }
.article-side-column .interaction-detail { margin: 0; padding: .85rem; border: 1px solid var(--line, rgba(112,145,163,.25)); border-radius: 16px; font-size: .84rem; }
.article-side-column .interaction-section-head { gap: .5rem; }
.article-side-column .interaction-section-head h3 { font-size: 1.1rem; }
.article-side-column .interaction-avatar { width: 30px; height: 30px; flex-basis: 30px; }
.article-side-column .interaction-comment { gap: .55rem; }
.article-side-column .interaction-compose, .article-side-column .interaction-verify { padding: .7rem; }
.article-side-column .interaction-compose > div:last-child { flex-direction: column; align-items: stretch; }
.interaction-article-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin: 1.4rem 0 0; }
.interaction-article-actions a { font-size: .9rem; color: var(--accent, #4c718b); }
.interaction-pause-hint { color: var(--muted, #7891a1); font-size: .8rem; }
.interaction-inline { flex-wrap: wrap; }
.interaction-comment-open:disabled { opacity: .53; cursor: default; transform: none; }
.interaction-detail *, .interaction-drawer * { box-sizing: border-box; }
.interaction-detail input, .interaction-detail textarea, .interaction-drawer input, .interaction-drawer textarea { min-width: 0; }
.interaction-identity { flex-shrink: 0; overflow: hidden; pointer-events: auto; }
.interaction-detail :is(button, input, textarea, select):focus-visible,
.interaction-drawer :is(button, input, textarea, select, a):focus-visible,
.interaction-identity:focus-visible, .interaction-like:focus-visible, .interaction-comment-open:focus-visible {
  outline: 2px solid #6ca4c2; outline-offset: 3px;
}
.interaction-verify [data-verify-message] { overflow-wrap: anywhere; }
.interaction-detail button, .interaction-drawer button { min-height: 36px; }
.interaction-identity:active, .interaction-like:active:not(:disabled) { transform: scale(.96); }
[data-theme=dark] .interaction-compose label, [data-theme=dark] .interaction-verify label,
[data-theme=dark] .interaction-profile label { color: #b6ccd9; }
[data-theme=dark] .interaction-comment-head time, [data-theme=dark] .interaction-reply time,
[data-theme=dark] .interaction-history time, [data-theme=dark] .interaction-empty,
[data-theme=dark] .interaction-loading, [data-theme=dark] .interaction-compose small,
[data-theme=dark] .interaction-verify small { color: #a6becb; }
@media (max-width: 900px) {
  .article-side-column.article-side-column--interaction { width: 100%; height: auto; max-height: none; overflow: visible; margin-top: 1rem; }
  .article-side-column .interaction-detail { padding: .85rem; }
}
@media (max-width: 760px) {
  .site-header:has(.interaction-identity), .site-header.is-scrolled:has(.interaction-identity) {
    grid-template-columns: 2.45rem minmax(0,1fr) 2.45rem 2.45rem !important;
  }
  .site-header:has(.interaction-identity) .brand { max-width: calc(100vw - 11rem) !important; font-size: clamp(.9rem,4vw,1.1rem); }
  .site-header .interaction-identity { grid-column: 4; grid-row: 1; width: 2.45rem; height: 2.45rem; margin: 0; }
  body:has(.gallery) .site-header .interaction-identity { position: fixed; top: 4.25rem; right: .8rem; pointer-events: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .interaction-identity, .interaction-detail *, .interaction-drawer * { animation: none !important; transition: none !important; scroll-behavior: auto; }
}
.interaction-identity[data-open-login]{font-size:.82rem;line-height:1;white-space:nowrap}

/* Search, identity and note comments share one centered glass dialog geometry. */
.interaction-overlay, .interaction-overlay-closing { position: fixed; inset: 0; z-index: 1200; display: grid; grid-template-columns: minmax(0,1fr); place-items: start center; justify-content: normal; align-content: start; padding: min(8svh,72px) 1rem 1rem; }
.interaction-backdrop { background: rgba(23,35,49,.44); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: interaction-fade-in 200ms ease both; }
.interaction-drawer.search-dialog, .interaction-drawer-closing.search-dialog {
  width: min(760px,100%); height: auto; max-height: calc(100svh - min(8svh,72px) - 1rem); margin: 0; padding: 1.3rem;
  overflow-y: auto; border: 1px solid rgba(255,255,255,.7); border-radius: 1.7rem;
  background: rgba(246,250,252,.9); color: var(--ink); box-shadow: 0 24px 70px rgba(15,31,44,.22), inset 0 1px 0 rgba(255,255,255,.8);
  backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%);
  opacity: 1; clip-path: none; transform: none; transform-origin: center; transition: none; animation: none;
}
.interaction-drawer > header { align-items: center; padding-bottom: .75rem; }
.interaction-drawer > header h2 { font: 600 1.8rem var(--serif); margin: 0; }
.article-side-column .article-toc.glass-panel { box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 5px 16px rgba(14,28,37,.09); padding: 1rem; border-radius: 16px; }
[data-theme=dark] .article-side-column .article-toc.glass-panel { box-shadow: inset 0 1px 0 rgba(180,220,245,.12), 0 5px 16px rgba(0,7,15,.18); }
.article-side-column .article-toc header { font-size: .95rem; }
.article-side-column .article-toc a { font-size: .85rem; padding: .4rem .45rem; }
.article-side-column .article-toc a.is-subheading { font-size: .8rem; }
.article-side-column .interaction-section-head h3 { font-size: 1rem; margin: .2rem 0 .55rem; }
.article-side-column .interaction-compose { margin-top: .6rem; gap: .5rem; padding: .7rem; border-radius: 12px; }
.article-side-column .interaction-compose textarea { min-height: 72px; padding: .5rem .6rem; }
.article-side-column .interaction-comment { gap: .55rem; padding: .85rem 0; }
.article-side-column .interaction-avatar { width: 30px; height: 30px; flex-basis: 30px; }
.article-side-column .interaction-empty { padding: .6rem 0; }
.interaction-drawer > header button { flex: none; }
.interaction-overlay.is-closing { pointer-events: none; }
.interaction-overlay.is-closing .interaction-backdrop { animation: interaction-fade-out 200ms ease both; }
.interaction-drawer[data-popup-motion] { backdrop-filter:none; -webkit-backdrop-filter:none; }
.interaction-verify { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.interaction-verify > :is(p,small,[data-turnstile-host]), .interaction-verify > label:has([name=email]) { grid-column: 1 / -1; }
.interaction-verify [data-send-code] { grid-column: 1 / -1; justify-self: start; }
.interaction-verify > button[type=submit] { grid-column: 1 / -1; }
.site-header .interaction-identity { width: 2.8rem; height: 2.8rem; margin: 0 0 0 .45rem; color: white; padding: 0; }
.site-header .interaction-identity svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.site-header.is-scrolled .interaction-identity { color: var(--ink); }
.article-side-column .article-toc { position: static !important; top: auto !important; right: auto !important; bottom: auto; width: 100% !important; height: auto !important; max-height: none !important; overflow: visible; opacity: 1; visibility: visible; transform: none !important; pointer-events: auto; }
.article-side-column .article-toc nav { max-height: none; overflow: visible; }
.article-side-column .article-toc header button, body:has(.article-side-column) :is(.article-toc-toggle,.article-toc-backdrop) { display: none; }
[data-theme=dark] .interaction-drawer.search-dialog, [data-theme=dark] .interaction-drawer-closing.search-dialog { background: rgba(12,30,47,.94); border-color: rgba(129,200,238,.28); color: var(--ink); box-shadow: 0 24px 70px rgba(0,5,12,.45), inset 0 1px 0 rgba(186,227,249,.15); }
[data-theme=dark] .interaction-backdrop { background: rgba(2,9,15,.65); }
@keyframes interaction-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes interaction-expand { from { opacity: 0; transform: translateY(12px) scale(.975); } to { opacity: 1; transform: none; } }
@keyframes interaction-fade-out { to { opacity: 0; } }
@keyframes interaction-collapse { to { opacity: 0; transform: translateY(8px) scale(.98); } }
@media(max-width:760px) {
  .article-side-column, .article-side-column--toc-only { width: 100%; height: auto; margin-top: 1rem; }
  .article-side-column .article-author-card { display: block; }
  .interaction-overlay, .interaction-overlay-closing { padding: .5rem; }
  .interaction-drawer.search-dialog, .interaction-drawer-closing.search-dialog { max-height: calc(100svh - 1rem); padding: 1rem; border-radius: 1.25rem; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .interaction-backdrop { backdrop-filter:none; -webkit-backdrop-filter:none; }
  .interaction-overlay :is(input,textarea,select) { font-size:16px; }
  .site-header .interaction-identity { width: 2.45rem; height: 2.45rem; margin: 0; }
  body:has(.gallery) .site-header .interaction-identity { display: grid !important; }
  .interaction-verify { grid-template-columns: minmax(0,1fr); }
}
@media(prefers-reduced-motion:reduce) { .interaction-overlay-closing, .interaction-backdrop, .interaction-drawer.search-dialog { animation: none; } }

/* A pinned paper wall in the site's blue-gray glass material. */
.page-intro.message-page-hero { width:100%; margin-inline:0; padding-bottom:8rem; border-radius:0; box-shadow:none; }
.page-intro.message-page-hero::before { background:linear-gradient(90deg,rgba(12,24,33,.58),rgba(12,24,33,.12) 65%); }
.message-wall-page { width:min(1160px,calc(100% - 2rem)); margin:-4.5rem auto 3rem; position:relative; z-index:2; display:grid; gap:1.2rem; color:var(--ink); }
.message-wall-page [hidden] { display:none!important; }
.message-wall-board,.message-wall-compose { position:relative; border-radius:1.75rem; background:rgba(224,238,247,.55); backdrop-filter:blur(18px); box-shadow:inset 0 1px rgba(255,255,255,.8),0 12px 32px rgba(30,60,80,.12); }
.message-wall-board { padding:1.5rem 1.7rem 2.5rem; overflow:hidden; }
.message-wall-page .message-wall-board { border-radius:1.9rem; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }
.message-wall-board::before,.message-wall-compose::before { content:''; position:absolute; inset:6px; border:1px solid rgba(255,255,255,.4); border-radius:inherit; pointer-events:none; }
.message-wall-scroll { height:auto; overflow:visible; padding:1rem .3rem; }
.message-wall-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); align-items:start; gap:2.8rem 1.4rem; }
.wall-note { --paper:#e7f3fc; --paper-ink:#35536a; --pin:#78a7c5; position:relative; width:100%; min-width:0; max-width:184px; margin:auto; transform:rotate(var(--tilt)); transition:transform .22s ease,filter .22s ease; }
.wall-note:hover { transform:rotate(0deg) translateY(-2px); filter:brightness(1.025); z-index:1; }
.wall-note--1 { --paper:#edf6e9;--paper-ink:#365740;--pin:#89b090; }
.wall-note--2 { --paper:#fff4dd;--paper-ink:#66523b;--pin:#dbb16c; }
.wall-note--3 { --paper:#f9e6eb;--paper-ink:#6b4652;--pin:#c991a2; }
.wall-note--4 { --paper:#ede9fa;--paper-ink:#554775;--pin:#a191c7; }
.wall-paper { position:relative; min-height:190px; padding:1.7rem 1.15rem 1rem; background:var(--paper); color:var(--paper-ink); box-shadow:0 8px 16px rgba(28,54,76,.12),inset 0 1px rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.65); overflow:hidden; }
.wall-paper::before { content:''; position:absolute; inset:0; opacity:.1; background-image:linear-gradient(#849aaf55 1px,transparent 1px),linear-gradient(90deg,#849aaf40 1px,transparent 1px); background-size:22px 22px; pointer-events:none; }
.wall-paper::after { content:''; position:absolute; bottom:0; right:0; width:2.2rem; height:2.2rem; background:rgba(255,255,255,.5); clip-path:polygon(100% 0,0 100%,100% 100%); }
.wall-pin { position:absolute; z-index:2; width:20px; height:20px; border-radius:50%; top:-10px; left:calc(50% - 10px); background:radial-gradient(circle at 30% 25%,#ffffff90,var(--pin) 48%,color-mix(in srgb,var(--pin) 80%,#304859)); box-shadow:1px 4px 5px #35506f40; }
.wall-pin::after { content:''; position:absolute; top:18px; left:9px; height:8px; width:2px; background:#8295a077; }
.wall-tape { position:absolute; z-index:2; width:70px; height:27px; top:-12px; left:calc(50% - 35px); transform:rotate(-4deg); background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--pin) 60%,transparent) 0 8px,#ffffff66 8px 10px); clip-path:polygon(3% 0,97% 5%,100% 100%,0 95%); }
.wall-sticker { position:absolute; right:.9rem; bottom:2.7rem; font:2.2rem/1 var(--serif); color:var(--pin); opacity:.45; pointer-events:none; }
.wall-inline-emoji { display:inline-block; vertical-align:-.2em; line-height:1; }
.wall-inline-emoji svg { display:block; width:1.25em; height:1.25em; }
.wall-paper>p { position:relative; z-index:1; font:400 1.06rem/1.75 var(--serif); letter-spacing:.04em; white-space:pre-wrap; overflow-wrap:anywhere; margin:0; }
.wall-paper footer { position:relative; z-index:1; display:grid; gap:.45rem; border-top:1px solid #6d8ba222; margin-top:1.2rem; padding-top:.65rem; font-size:.68rem; line-height:1.5; }
.wall-paper footer strong { font-weight:600; overflow-wrap:anywhere; }
.wall-paper footer time { font-size:.62rem; opacity:.8; }
.wall-paper>p,.wall-paper footer :is(strong,time) { color:var(--paper-ink); }
[data-theme=dark] .wall-paper>p,[data-theme=dark] .wall-paper footer :is(strong,time) { color:var(--paper-ink); }
.wall-scroll-hint { display:none; }
.wall-empty { grid-column:1/-1; text-align:center; color:var(--muted); padding:4rem 1rem; line-height:1.7; }
.wall-loading { grid-column:1/-1; margin:0; min-height:180px; display:grid; place-items:center; color:var(--muted); }
.wall-empty button { display:block; margin:1rem auto; padding:.5rem 1rem; }
.wall-more { display:block; margin:2rem auto 0; padding:.6rem 1.2rem; font:inherit; color:var(--blue-deep); }
.message-wall-compose { padding:1.3rem 1.6rem 1rem; }
.message-wall-compose header { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.message-wall-compose header h2 { font:600 1.2rem var(--serif); margin:0; }
.message-wall-compose header::after { content:''; flex:1; border-top:1px dashed #8aa5ba66; }
.message-wall-compose header>span { color:#c6ad74; order:2; }
.wall-fields { display:grid; grid-template-columns:240px minmax(0,1fr) auto; gap:.75rem; align-items:end; }
.wall-fields label { display:grid; gap:.35rem; font-size:.75rem; color:var(--muted); min-width:0; }
.wall-fields input,.wall-fields textarea { width:100%; min-width:0; height:76px; padding:1rem; border:1px solid #ffffffa0; border-radius:12px; color:var(--ink); background:rgba(255,255,255,.55); font:inherit; font-size:.9rem; line-height:1.5; box-shadow:inset 0 1px rgba(255,255,255,.8); }
.wall-fields textarea { resize:vertical; min-height:76px; max-height:200px; }
.wall-submit { position:relative; display:flex; gap:.5rem; align-items:center; height:76px; }
.wall-submit button { font:inherit; border-radius:12px; padding:.65rem 1rem; cursor:pointer; white-space:nowrap; color:var(--blue-deep); transition:transform .2s,background .2s; }
.wall-submit [type=submit] { background:rgba(106,150,189,.85); color:#fff; }
.wall-submit button:hover:not(:disabled) { transform:translateY(-1px); background:#618db2; color:#fff; }
.wall-submit button:disabled { opacity:.45; cursor:default; }
.wall-emojis { position:absolute; bottom:calc(100% - .5rem); right:0; width:220px; padding:.6rem; display:grid; grid-template-columns:repeat(4,1fr); background:var(--paper,#edf5fa); box-shadow:0 8px 20px #19374920; border:1px solid #b9cfdf; border-radius:14px; z-index:3; }
.wall-emojis button { padding:.45rem; background:transparent; border:0; font-size:1.1rem; }
.wall-emoji svg,.wall-emojis svg { width:24px; height:24px; display:block; }
.wall-emojis button { display:grid; place-items:center; min-height:42px; border-radius:8px; }
.message-wall-compose>footer { display:flex; justify-content:space-between; gap:.7rem; flex-wrap:wrap; font-size:.72rem; color:var(--muted); margin-top:.65rem; }
.wall-feedback { font-size:.8rem; color:var(--blue-deep); line-height:1.6; margin:.4rem 0 0; }
.wall-feedback:empty { display:none; }.wall-feedback.is-error { color:#b25966; }
.wall-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.wall-thanks { text-align:center; font-size:.8rem; color:var(--muted); letter-spacing:.1em; margin:0; }
.message-wall-page :is(input,textarea,button,.message-wall-scroll):focus-visible { outline:2px solid #709ebd; outline-offset:3px; }
[data-theme=dark] :is(.message-wall-board,.message-wall-compose) { background:rgba(15,37,57,.78); border-color:#99bedb45; box-shadow:inset 0 1px #bbddf522,0 12px 32px #000b1733; }
[data-theme=dark] .message-wall-page .message-wall-board { box-shadow:inset 0 1px 0 rgba(187,221,245,.13); }
[data-theme=dark] .wall-scroll-hint { background:linear-gradient(transparent,#102b40f0); color:#abc7db; }
[data-theme=dark] .wall-fields :is(input,textarea) { background:#172f47b3; color:#e5f1f8; border-color:#95bedb45; box-shadow:inset 0 1px #bad7ee15; }
[data-theme=dark] .wall-emojis { background:#1b3549; border-color:#95bedb45; }
[data-theme=dark] .wall-note { --paper:#1c3041;--paper-ink:#dce8ef; }
[data-theme=dark] .wall-note--1 { --paper:#20352f; }
[data-theme=dark] .wall-note--2 { --paper:#363329; }
[data-theme=dark] .wall-note--3 { --paper:#342e37; }
[data-theme=dark] .wall-note--4 { --paper:#2c2f40; }
[data-theme=dark] .wall-note--5 { --paper:#1d343a; }
[data-theme=dark] .wall-note--6 { --paper:#35322e; }
[data-theme=dark] .wall-note--7 { --paper:#283443; }
@media(max-width:1100px) { .message-wall-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.wall-fields { grid-template-columns:200px minmax(0,1fr); }.wall-submit { grid-column:1/-1; height:auto; justify-content:flex-end; } }
@media(max-width:820px) { .message-wall-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.message-wall-board { padding-inline:1.1rem; } }
@media(max-width:600px) { .page-intro.message-page-hero { padding-bottom:6rem; }.message-wall-page { width:calc(100% - 1rem); margin-top:-3rem; }.message-wall-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 1rem; }.message-wall-scroll { height:560px; padding-inline:.4rem; }.wall-paper { padding:1.6rem .8rem .9rem; }.wall-paper>p { font-size:.95rem; }.wall-fields { grid-template-columns:1fr; }.wall-submit { grid-column:auto; }.wall-fields input { height:48px; }.message-wall-compose { padding:1.1rem; } }
@media(max-width:350px) { .message-wall-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .wall-note { animation:none; transition:none; }.wall-note:hover { transform:rotate(var(--tilt)); } }

/* Private feedback and daily statistics: identical geometry in both themes. */
.glass-panel:is(.privacy-panel,.site-statistics,.feedback-compose,.my-feedback){box-shadow:none!important}
.site-statistics dt{display:flex;align-items:center;gap:.55rem}.site-statistics dt svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.feedback-fields{grid-template-columns:1fr!important}
.about-information-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:clamp(1.25rem,3vw,2.4rem);margin-top:1.5rem;align-items:stretch}
.about-information-grid>section,.feedback-compose,.my-feedback{padding:1.5rem;border-radius:18px;min-width:0;background:rgba(248,251,253,.9);border:1px solid rgba(105,142,174,.2)}
.about-information-grid h2{margin:0 0 1rem;font-size:1.4rem}.privacy-panel p{margin:.5rem 0 0}
.site-statistics dl{margin:0}.site-statistics dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line,rgba(105,142,174,.2))}.site-statistics dt{color:var(--muted,#6c8293)}.site-statistics dd{margin:0;font-variant-numeric:tabular-nums;white-space:nowrap}.site-statistics>p{font-size:.85rem;line-height:1.7;color:var(--muted,#6c8293);margin:1rem 0 0}
.feedback-center{display:grid;gap:1.3rem;max-width:1000px;margin:auto}.feedback-center>header p{line-height:1.7;color:var(--muted,#6c8293)}.feedback-compose{display:grid;gap:1rem}.feedback-compose h2,.my-feedback h2{font-size:1.4rem;margin:0}.feedback-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.feedback-compose label{display:grid;gap:.45rem;font-size:.95rem}.feedback-compose :is(input,textarea){width:100%;min-width:0;box-sizing:border-box;border:1px solid rgba(105,142,174,.35);border-radius:10px;padding:.75rem;background:rgba(255,255,255,.94);color:inherit;font:inherit;resize:vertical}.feedback-compose footer,.my-feedback>header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.feedback-compose footer span{font-size:.85rem;color:var(--muted,#6c8293)}.feedback-compose [data-feedback-result]:empty{display:none}.feedback-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem}.feedback-item header{display:flex;gap:1rem;align-items:center;justify-content:space-between}.feedback-status{font-size:.8rem;padding:.25rem .6rem;border-radius:999px;background:#e9edf4;color:#55718b}.feedback-status[data-status=handled]{background:#e1f4eb;color:#267356}.feedback-status[data-status=replied]{background:#e2efff;color:#386eab}.feedback-reply{border-left:2px solid #85acce;padding:.6rem .85rem;margin-top:.8rem;background:rgba(130,167,200,.1);border-radius:0 10px 10px 0}.feedback-item p{white-space:pre-wrap;overflow-wrap:anywhere}.feedback-compose :is(input,textarea):focus-visible{outline:2px solid #70a4cc;outline-offset:2px}
[data-theme=dark] :is(.privacy-panel,.site-statistics,.feedback-compose,.my-feedback){background:rgba(14,36,53,.95);border-color:rgba(141,175,202,.22)}[data-theme=dark] .feedback-compose :is(input,textarea){background:rgba(19,45,63,.95);border-color:rgba(141,175,202,.3)}[data-theme=dark] .feedback-status{background:#354452;color:#d4dfe7}[data-theme=dark] .feedback-status[data-status=handled]{background:#1e4a3e;color:#abdfca}[data-theme=dark] .feedback-status[data-status=replied]{background:#244966;color:#b7d7f3}
@media(max-width:820px){.about-information-grid{grid-template-columns:1fr}.about-tabs.glass-filter{flex-wrap:wrap;gap:.3rem;height:auto}.about-tabs a{white-space:nowrap}.feedback-fields{grid-template-columns:1fr}.feedback-compose footer{flex-wrap:wrap}.feedback-compose,.my-feedback,.about-information-grid>section{padding:1rem}}

/* Rounded dialogs keep their scrollbar inside the glass frame. */
.interaction-drawer.search-dialog{box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.interaction-drawer.search-dialog>header{flex:none}
.interaction-drawer.search-dialog>:is(.interaction-verify,[data-profile-content],[data-panel-comments]){min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9bb7c9 transparent;padding-right:.65rem;box-sizing:border-box}
.interaction-drawer.search-dialog>.interaction-verify{flex:1 1 auto;margin-bottom:0}
[data-profile-content]{scrollbar-gutter:stable}
.profile-person{display:grid;grid-template-columns:112px minmax(0,1fr);gap:1.3rem;align-items:center;padding:.25rem 0 .8rem}
.interaction-profile .interaction-profile-avatar{width:112px;height:112px;font-size:2.5rem;flex:none}
.profile-identity{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.45rem;min-width:0}.profile-identity>strong{font-size:1.45rem}.profile-identity>span{overflow-wrap:anywhere;font-size:.95rem}
.profile-identity-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.3rem}
.interaction-profile form[data-nickname-form]{grid-template-columns:minmax(0,1fr) auto;align-items:end}.interaction-profile [data-avatar-form]{gap:.6rem}
.profile-avatar-upload{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.profile-avatar-upload>[data-avatar-filename]{flex:1;min-width:100px;font-size:.85rem;overflow-wrap:anywhere}
.interaction-profile .profile-file-picker{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(104,145,172,.3);background:rgba(244,250,253,.75);cursor:pointer;color:inherit;overflow:hidden;transition:background .18s,border-color .18s}
.profile-file-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.profile-file-picker:focus-within{outline:2px solid #70a4cc;outline-offset:2px}.profile-file-picker:hover{background:#e4f3fb;border-color:#8abed9}
.profile-comments{margin-top:1.3rem}.profile-comments h3{margin:0 0 .8rem}.profile-history-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.6rem;margin-bottom:.8rem}
.profile-history-controls :is(input,select){min-width:0;max-width:100%;min-height:42px;padding:.6rem .75rem;border:1px solid rgba(104,145,172,.3);border-radius:12px;background:rgba(249,252,253,.86);font:inherit;font-size:.9rem;color:inherit}
.profile-comment-link{display:block;padding:1rem;border:1px solid rgba(104,145,172,.2);border-radius:14px;margin:.7rem 0;text-decoration:none;color:inherit;background:rgba(247,251,254,.65);transition:background .18s,border-color .18s,transform .18s}
.profile-comment-link>strong{display:block;font-size:1rem;overflow-wrap:anywhere}.profile-comment-link:hover{border-color:#88b5cc;background:rgba(230,243,251,.88);transform:translateY(-1px)}.profile-comment-link:focus-visible{outline:2px solid #70a4cc;outline-offset:2px}
.profile-author-reply{border-left:2px solid #97bcd2;padding:.4rem .8rem;margin-top:.7rem}.profile-author-reply strong{font-size:.85rem}.profile-author-reply p{font-size:.95rem}
.interaction-comment.is-profile-target{border-radius:12px;outline:2px solid #80aecb;outline-offset:3px;background:rgba(155,197,224,.12);scroll-margin-top:110px}
.site-statistics :is(p,dt,dd){font-family:inherit;font-size:.95rem;line-height:1.8}
.privacy-panel{font-family:var(--sans);font-size:1rem;line-height:var(--body-leading,1.82)}
.privacy-panel h2{margin:0 0 .6rem;font-size:clamp(1.35rem,2.2vw,1.7rem);line-height:1.3}
.privacy-panel p{font:inherit;color:inherit}
.about-page{--about-panel-padding:clamp(1.2rem,3vw,1.8rem)}
.about-content-section,.about-information-grid>section{padding:var(--about-panel-padding)}
.about-information-grid>section{width:100%;max-width:none;margin:0;border-radius:1.2rem}
@media(max-width:820px){.about-page{--about-panel-padding:1rem}}
.feedback-center .glass-control{box-sizing:border-box;min-height:42px;padding:.55rem 1.1rem;border:1px solid rgba(114,155,181,.3);border-radius:999px;background:rgba(241,249,253,.72);color:var(--ink,#294653);font:inherit;font-size:.95rem;box-shadow:inset 0 1px rgba(255,255,255,.8);backdrop-filter:blur(16px);cursor:pointer;transition:background .18s,border-color .18s,color .18s,transform .18s}
.feedback-center .glass-control:hover:not(:disabled){background:rgba(216,236,249,.88);border-color:#88b5cc;transform:translateY(-1px) scale(1.02)}.feedback-center .glass-control:active:not(:disabled){transform:scale(.98)}.feedback-center .glass-control:focus-visible{outline:2px solid #70a4cc;outline-offset:3px}.feedback-center .glass-control:disabled{opacity:.55;cursor:default}
[data-theme=dark] :is(.profile-comment-link,.profile-history-controls input,.profile-history-controls select,.interaction-profile .profile-file-picker,.feedback-center .glass-control){background:rgba(20,49,68,.84);border-color:rgba(124,163,188,.35);color:#d8e9f3;box-shadow:inset 0 1px rgba(178,211,231,.12)}
[data-theme=dark] :is(.profile-comment-link:hover,.interaction-profile .profile-file-picker:hover,.feedback-center .glass-control:hover:not(:disabled)){background:#234a63;border-color:#719ab5}
@media(max-width:600px){.profile-person{grid-template-columns:88px minmax(0,1fr);gap:.85rem}.interaction-profile .interaction-profile-avatar{width:88px;height:88px;font-size:2rem}.profile-identity>strong{font-size:1.2rem}.profile-identity-actions button{font-size:.8rem;padding:.4rem .65rem}.profile-history-controls{grid-template-columns:1fr 1fr}.profile-history-controls input{grid-column:1/-1}.interaction-profile form[data-nickname-form]{grid-template-columns:1fr}.profile-avatar-upload>[data-avatar-filename]{min-width:0;flex-basis:45%}}
@media(prefers-reduced-motion:reduce){.feedback-center .glass-control,.profile-comment-link,.profile-file-picker{transition:none!important;transform:none!important}}

/* Auxiliary interaction controls use the same dark materials as the site. */
[data-theme=dark] :is(.feedback-pagination button,.interaction-profile-initial) { background:var(--control-bg);border-color:var(--control-border);color:var(--ink);box-shadow:var(--control-shadow) }
[data-theme=dark] .feedback-pagination button:hover:not(:disabled) { background:var(--control-hover);color:var(--ink) }
[data-theme=dark] #interaction-confirm button { background:var(--control-bg);border-color:var(--control-border);color:var(--ink) }
[data-theme=dark] #interaction-confirm button[value=confirm] { background:#864154;border-color:#b66e81;color:#fff }
[data-theme=dark] :is(.interaction-comment,.interaction-history,.interaction-profile form,.interaction-drawer>header) { border-color:var(--line) }
[data-theme=dark] .interaction-profile :is(textarea,input)::placeholder,[data-theme=dark] .interaction-verify input::placeholder,[data-theme=dark] .feedback-compose :is(input,textarea)::placeholder { color:var(--muted);opacity:1 }
[data-theme=dark] .interaction-profile textarea { background:var(--control-bg);border-color:var(--control-border);color:var(--ink) }


/* Consistent, restrained surface depth across pages and interaction panels. */
:root {
  --shadow-surface: 0 5px 18px rgba(29,60,84,.075), inset 0 1px rgba(255,255,255,.5);
  --shadow-overlay: 0 12px 34px rgba(12,35,53,.16);
  --shadow-control: 0 2px 7px rgba(29,60,84,.08), inset 0 1px rgba(255,255,255,.35);
  --shadow-cloth: var(--shadow-surface);
}
[data-theme="dark"] {
  --shadow-surface: 0 5px 18px rgba(0,9,18,.16), inset 0 1px rgba(196,225,243,.08);
  --shadow-overlay: 0 12px 34px rgba(0,7,15,.28);
  --shadow-control: 0 2px 7px rgba(0,9,18,.14), inset 0 1px rgba(196,225,243,.09);
  --shadow-cloth: var(--shadow-surface);
}
body :is(.glass-panel,.content-cloth,.calendar-card,.clock-card,.profile-card,.development-log-card,.article-toc,.article-meta,.short-notes-board,.interaction-detail) { box-shadow:var(--shadow-surface); }
body :is(.glass-control,.social-links a,.pagination a,.pagination button,.short-note-periods a,.calendar-picker>button) { box-shadow:var(--shadow-control); }
body :is(.search-modal,.interaction-drawer,#interaction-confirm,.calendar-picker__menu) { box-shadow:var(--shadow-overlay); }
body :is(.privacy-panel,.about-privacy,.about-site-stats,.site-statistics,.feedback-compose,.feedback-owned,.my-feedback) { box-shadow:none; }
body select { min-width:0; max-width:100%; font:inherit; color:var(--ink); background-color:var(--control-bg,rgba(248,252,255,.9)); color-scheme:light; border-color:var(--line); }
body select option { color:#213b50; background:#f7fbff; }
[data-theme="dark"] select { color-scheme:dark; }
[data-theme="dark"] select option { color:#e9f3fa; background:#142c40; }
body :is(.calendar-picker__menu,.reading-size__options,.interaction-profile-tools) { max-width:calc(100vw - 2rem); }
@media(max-width:700px) {
  html.is-message-page,html.is-message-page body { scrollbar-width:none; overflow-x:clip; }
  html.is-message-page::-webkit-scrollbar,html.is-message-page body::-webkit-scrollbar,.message-wall-page *::-webkit-scrollbar { display:none;width:0;height:0; }
  .message-wall-page * { scrollbar-width:none; }
  .message-wall-scroll { height:auto; max-height:none; overflow:visible; overscroll-behavior:auto; }
  .message-wall-board::before,.message-wall-compose::before { display:none; }
  .message-wall-page .message-wall-board { border-inline:0; box-shadow:none; }
  .wall-scroll-hint { display:none; }
  .message-wall-page,.message-wall-board,.message-wall-grid { min-width:0; max-width:100%; }
  .message-wall-grid { overflow:visible; }
  .wall-paper { overflow-wrap:anywhere; }
  .interaction-section-head select,.profile-comment-tools select { min-height:44px; }
}

.article-body mark,.rich-editor mark { background:#ffe58a; color:#283747; padding:0 .12em; border-radius:.15em; }
.article-body .image-caption { display:block; text-align:center; font-size:.85em; color:var(--muted); margin:.45rem 0 1.2rem; }
.article-body table { width:100%; border-collapse:collapse; font-size:.95em; }
.article-body :is(th,td) { border:1px solid var(--line); padding:.6rem .8rem; text-align:left; overflow-wrap:anywhere; }
.article-body th { background:rgba(111,151,176,.12); }
.article-body .markdown-table-scroll { overflow-x:auto; max-width:100%; }

/* The profile is a working dialog, not an extra transparent layer over navigation. */
body .interaction-backdrop { background:rgba(12,30,47,.56); }
body .interaction-drawer.search-dialog { background:#f5f9fc; }
[data-theme=dark] body .interaction-drawer.search-dialog { background:#102b3f; }
.profile-settings { border-block:1px solid var(--line);padding-block:.75rem; }
.profile-settings>summary { cursor:pointer;color:var(--muted);font-size:.9rem;min-height:32px; }
.profile-settings[open]>summary { margin-bottom:.5rem; }
.profile-settings summary:focus-visible { outline:2px solid var(--accent,#3a86b8);outline-offset:3px;border-radius:6px; }
body :is(button,a,input,select,textarea,summary):focus-visible { outline:2px solid var(--accent,#3a86b8);outline-offset:3px; }
body select:disabled { opacity:.55;cursor:not-allowed; }
@media(hover:none) { body .interaction-drawer button:hover,body .interaction-comment-open:hover { transform:none; } }

/* Keep the same mobile navigation grid before and after scrolling. */
@media(max-width:700px){
  .site-header:has(.interaction-identity),.site-header.is-scrolled:has(.interaction-identity){display:grid!important;grid-template-columns:2.45rem minmax(0,1fr) 2.45rem 2.45rem!important;column-gap:.5rem;grid-template-rows:auto auto}
  .site-header:has(.interaction-identity) .brand,.site-header.is-scrolled:has(.interaction-identity) .brand{position:static!important;grid-column:2;grid-row:1;justify-self:center;margin:0;max-width:100%!important;min-width:0;transform:none!important}
  .site-header:has(.interaction-identity) .header-search,.site-header.is-scrolled:has(.interaction-identity) .header-search{display:grid!important;visibility:visible!important;opacity:1!important;position:static!important;grid-column:1;grid-row:1;transform:none!important;width:2.45rem;height:2.45rem;margin:0}
  .site-header:has(.interaction-identity) .theme-toggle{grid-column:3;grid-row:1;position:static!important;margin:0}
  .site-header:has(.interaction-identity) .interaction-identity,.site-header.is-scrolled:has(.interaction-identity) .interaction-identity{grid-column:4;grid-row:1;position:static!important;transform:none!important;margin:0;width:2.45rem;height:2.45rem}
  .site-header:has(.interaction-identity) .glass-nav{grid-column:1/-1;grid-row:2}
}
body:has(.gallery) .site-header .interaction-identity{display:none!important}
.profile-settings>summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:46px;padding:.65rem .85rem;border:1px solid var(--line);border-radius:12px;background:var(--control-bg);color:var(--ink);font-size:1.05rem;font-weight:600;list-style:none;transition:border-color .18s,background .18s}
.profile-settings>summary::-webkit-details-marker{display:none}.profile-settings>summary::after{content:'展开 ⌄';font-size:.8rem;font-weight:400;color:var(--muted)}.profile-settings[open]>summary::after{content:'收起 ⌃'}.profile-settings>summary:hover{border-color:var(--accent)}
@media(hover:hover) and (pointer:fine){
  :is(.article-row__cover,.article-card__cover,.article-reading-cover,.article-hero--editorial,.album-card__cover,.photo-stack,.latest-albums__grid a){overflow:hidden}
  :is(.article-row__cover,.article-card__cover,.article-reading-cover,.article-hero--editorial,.album-card__cover,.photo-stack) img{transition:transform .28s cubic-bezier(.2,.7,.2,1)}
  .album-card__image{scale:1;transform-origin:center;transition:scale .28s cubic-bezier(.2,.7,.2,1)}
  .short-note-item__content img{transform-origin:center;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
  :is(.article-row,.article-card,.album-card,.photo-wall-card):hover :is(.article-row__cover,.article-card__cover,.album-card__cover,.photo-stack) img{transform:scale(1.035)}
  .article-reading-cover:hover img,.article-hero--editorial:hover>img{transform:scale(1.025)}
  /* Translate before scaling so the inherited image centering stays unchanged. */
  .short-note-item__content img:hover{transform:translateX(-50%) scale(1.035)}
  .album-card:hover>.album-card__image{scale:1.035}
  .glass-highlight-local{position:relative}
  .glass-pointer-sheen{position:absolute!important;inset:0;margin:0!important;padding:0!important;display:block!important;border:0!important;box-sizing:border-box;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:2;opacity:0;transition:opacity .18s;background:radial-gradient(190px circle at var(--glass-x,50%) var(--glass-y,50%),rgba(255,255,255,.2),transparent 75%)}
  .glass-is-hovered>.glass-pointer-sheen{opacity:1}.glass-is-hovered{border-color:color-mix(in srgb,var(--line) 65%,#accfe5 35%)}
  [data-theme=dark] .glass-pointer-sheen{background:radial-gradient(190px circle at var(--glass-x,50%) var(--glass-y,50%),rgba(157,213,243,.12),transparent 75%)}
}
.photo-wall[hidden],.album-film[hidden]{display:none!important}
.album-layout-stage{min-width:0;overflow-anchor:none}
.album-layout-stage.is-morphing{overflow:clip}
.album-layout-motion{position:fixed;inset:0;z-index:35;pointer-events:none;overflow:hidden}
.album-layout-cover{position:absolute;left:0;top:0;overflow:hidden;pointer-events:none;box-shadow:0 8px 20px #12243618;will-change:transform}
.album-layout-cover img{display:block;width:100%;height:100%;object-fit:cover}
[data-layout-moving] :is(.photo-stack,.album-film-frame){transition:none}
.route-feedback{position:fixed;z-index:85;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 6px 22px #102f4318;font-size:.9rem}
.route-feedback span{min-width:0}.route-feedback button{flex:none;padding:5px 9px;font:inherit}
body .search-dialog .search-field input:focus-visible{outline:none;box-shadow:none}
body .search-dialog .search-field:focus-within{border-color:var(--line)}
.search-overlay.is-closing .search-overlay__backdrop{opacity:0;transition:opacity 240ms ease}
@media(prefers-reduced-motion:reduce){.search-overlay.is-closing .search-overlay__backdrop{transition:none}}
.photo-index-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.photo-index-heading>div p{font:500 clamp(25px,3vw,36px)/1.4 Georgia,'Noto Serif SC',serif}.photo-index-heading small{font-size:.9rem;color:var(--muted)}

/* Personal workspace: strong actions, quiet surfaces and distinct sections. */
body .interaction-drawer.profile-dialog{width:min(740px,calc(100vw - 32px));height:min(800px,calc(100dvh - 48px));max-height:calc(100dvh - 48px);padding:24px;background:#f2f7fbed}
[data-theme=dark] body .interaction-drawer.profile-dialog{background:#132b3ff0}
.profile-kicker{font:500 12px/1.4 var(--sans,system-ui);letter-spacing:.1em;color:var(--muted);margin:0 0 4px}
body .profile-dialog>header h2{font-size:26px;line-height:1.3}
.profile-dialog [data-profile-content]{display:grid;gap:18px;padding:8px 3px 3px!important;scrollbar-gutter:stable}
.profile-dialog .interaction-profile,.profile-dialog .profile-section{padding:20px;border:1px solid var(--line);border-radius:16px;background:#ffffffd9;min-width:0}
[data-theme=dark] .profile-dialog .interaction-profile,[data-theme=dark] .profile-dialog .profile-section{background:#19364ad9;border-color:#b3cfe32a}
.profile-dialog .profile-person{padding:0 0 16px;grid-template-columns:88px minmax(0,1fr);gap:20px}
.profile-dialog .interaction-profile-avatar{width:88px;height:88px;font-size:28px;border:3px solid #fff9;box-shadow:0 2px 12px #102a3912}
.profile-dialog .profile-identity>strong{font:600 21px/1.4 var(--sans,system-ui)}
.profile-dialog .profile-identity>span{font-size:14px;color:var(--muted)}
.profile-dialog button,.profile-dialog .profile-file-picker{min-height:40px;border-radius:10px;font-size:14px;padding:9px 13px;color:#24557a;background:#e8f1f8;border-color:#93b5d255;box-shadow:none;transition:background 180ms,border-color 180ms,transform 180ms}
.profile-dialog :is([data-nickname-form],[data-avatar-form]) button[type=submit]{color:white;background:#3278a8;border-color:#3278a8}
.profile-dialog [data-sign-out]{background:#fff0ef;color:#a94e4a;border-color:#dfaaa66e}
.profile-dialog .profile-file-picker{background:#fff;color:#3278a8;border:1px dashed #6c9fc4}
.profile-dialog .profile-file-picker>span{font-size:14px}
.profile-dialog .profile-settings{padding:0;border:0;margin:0}
.profile-dialog .profile-settings>summary{background:#eef5fa;border-color:#bfd1df7a;font-size:15px;min-height:44px;color:#295777;padding:11px 13px}
.profile-dialog .profile-settings-body{display:grid;gap:18px;padding-top:16px;min-width:0}
.profile-dialog .profile-settings form{margin:0;padding:0;border:0;gap:10px}
.profile-dialog label{font-size:14px;line-height:1.6;color:var(--ink)}
.profile-dialog :is(input:not([type=file]),textarea){background:#fff;border:1px solid #aac3d875;border-radius:10px;color:var(--ink);min-height:42px;padding:10px 12px;font-size:14px;min-width:0}
.profile-dialog .profile-avatar-upload{gap:9px;align-items:center;flex-wrap:wrap}
.profile-dialog [data-avatar-filename]{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.profile-dialog .profile-comments{margin-top:0}
.profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.profile-section-head h3{font:600 18px/1.4 var(--sans,system-ui);margin:0!important;color:var(--ink)}
.profile-section-head h3>span{color:#4082ae;margin-right:5px}
.profile-feedback .profile-section-head h3>span{color:#a98a54}
.profile-count{border:1px solid #a3bfd544;border-radius:8px;padding:3px 8px;font-size:12px;color:var(--muted);background:#8caed30d;white-space:nowrap}
.profile-dialog .profile-history-controls{margin-bottom:14px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}
.profile-dialog .profile-comment-link{display:block;border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 10px;background:#f6fafe;transition:border-color .18s,background .18s}
.profile-dialog .profile-comment-link>strong{font-size:15px;font-weight:600;color:var(--ink)}
.profile-dialog .profile-comment-link>time{font-size:12px;color:var(--muted)}
.profile-dialog .profile-comment-link>p{font-size:14px;line-height:1.75;margin-top:8px}
.profile-dialog .profile-author-reply{background:#78a5cf10;border-left:2px solid #85b5d1;border-radius:0 8px 8px 0;margin-top:12px;padding:10px 12px}
.profile-dialog .interaction-empty{font-size:14px;text-align:center;padding:24px 12px;border:1px dashed var(--line);border-radius:12px;background:#8cacd008;color:var(--muted)}
.profile-dialog .feedback-pagination{gap:7px;flex-wrap:wrap}.profile-dialog .feedback-pagination>span{font-size:12px}.profile-dialog .feedback-pagination button{min-height:36px;padding:7px 10px;font-size:13px}
.profile-select{position:relative;min-width:0}.profile-dialog .profile-select-trigger{display:flex;align-items:center;gap:12px;justify-content:space-between;min-height:42px;white-space:nowrap;background:#e7f0f8;color:#28597d;border-color:#9fbfd866}
.profile-select-trigger:after{content:'⌄';font-size:15px;transition:transform .2s}.profile-select-trigger[aria-expanded=true]:after{transform:rotate(180deg)}
.profile-select-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:5;display:grid;gap:4px;min-width:160px;max-width:calc(100vw - 56px);padding:6px;border:1px solid var(--line);border-radius:12px;background:#f8fbff;box-shadow:var(--shadow-overlay)}
.profile-select-menu[hidden]{display:none}.profile-dialog .profile-select-menu button{min-height:38px;background:transparent;border-color:transparent;text-align:left;border-radius:8px;padding:8px 12px;color:var(--ink)}
.profile-select-menu.opens-up{top:auto;bottom:calc(100% + 7px)}
.profile-dialog button:disabled{opacity:.42;cursor:default;transform:none}
.profile-dialog button:focus-visible,.profile-dialog .profile-settings>summary:focus-visible{outline:2px solid #5895c5;outline-offset:3px}
.profile-dialog .profile-select-menu button[aria-selected=true]{background:#dbeafa;color:#255d89}
[data-theme=dark] .profile-dialog :is(input:not([type=file]),textarea){background:#122c3e;border-color:#9bbbd136;color:#e4f1f9}
[data-theme=dark] .profile-dialog :is(button,.profile-settings>summary,.profile-file-picker){background:#284a64;color:#d3e8f8;border-color:#a0bdd63d}
[data-theme=dark] .profile-dialog :is([data-nickname-form],[data-avatar-form]) button[type=submit]{background:#4487b6;color:white;border-color:#77aad0}
[data-theme=dark] .profile-dialog [data-sign-out]{background:#52353d;color:#f1bdbe;border-color:#c17c8a59}
[data-theme=dark] .profile-dialog :is(.profile-comment-link,.profile-select-menu){background:#172f44;border-color:#a0bdd633}
[data-theme=dark] .profile-dialog .profile-select-menu button{background:transparent;color:#d8eafa}[data-theme=dark] .profile-dialog .profile-select-menu button[aria-selected=true]{background:#325772;color:white}
@media(hover:hover){.profile-dialog button:hover:not(:disabled),.profile-dialog .profile-file-picker:hover{border-color:#609dcb;background:#d5e7f5;transform:translateY(-1px)}.profile-dialog :is([data-nickname-form],[data-avatar-form]) button[type=submit]:hover{background:#28658f;color:white}.profile-dialog .profile-comment-link:hover{border-color:#83adc9;background:#eef6fb}[data-theme=dark] .profile-dialog button:hover:not(:disabled){background:#365e7e;color:#f1f7ff}}
@media(max-width:600px){body .interaction-drawer.profile-dialog{width:calc(100vw - 20px);height:calc(100svh - 24px);max-height:calc(100svh - 24px);padding:16px;border-radius:20px}.profile-dialog .interaction-profile,.profile-dialog .profile-section{padding:15px}.profile-dialog .profile-person{grid-template-columns:68px minmax(0,1fr);gap:13px}.profile-dialog .interaction-profile-avatar{width:68px;height:68px}.profile-dialog .profile-identity>strong{font-size:19px}.profile-dialog .profile-identity-actions{gap:6px}.profile-dialog .profile-identity-actions button{font-size:12px;min-height:36px;padding:8px 9px}.profile-dialog .profile-history-controls{grid-template-columns:1fr 1fr}.profile-dialog .profile-history-controls>input{grid-column:1/-1}.profile-select-trigger{width:100%}.profile-dialog [data-profile-content]{gap:14px}.profile-dialog .profile-settings-body{gap:15px}}
.album-layout-switch{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem 1rem;flex:none;font-size:.9rem}.album-layout-switch svg{width:19px;height:19px}
.album-film{position:relative;isolation:isolate;container-type:inline-size;padding:18px 0 6px;min-width:0}
.album-film-viewport{position:relative;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-y;padding:32px 0;cursor:grab;overscroll-behavior-x:contain;mask-image:linear-gradient(90deg,transparent,#000 2%,#000 98%,transparent)}
.album-film-viewport::-webkit-scrollbar{display:none}.album-film-viewport.is-dragging{cursor:grabbing;user-select:none}
.album-film-track{display:flex;width:max-content;gap:0}.album-film-group{display:flex;gap:18px;flex:none;align-items:center;padding:20px 18px 20px 0;position:relative;border-block:1px solid var(--line);background:color-mix(in srgb,var(--ink) 9%,transparent)}
.album-film-group::before,.album-film-group::after{content:'';position:absolute;left:0;right:0;height:10px;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 12px,color-mix(in srgb,var(--ink) 24%,transparent) 12px 24px,transparent 24px 34px);border-radius:2px}.album-film-group::before{top:5px}.album-film-group::after{bottom:5px}
.album-film-item{--film-info-width:min(290px,calc(100cqw - 64px));display:flex;align-items:stretch;flex:none;min-width:0;height:255px;overflow-anchor:none}
.album-film-frame{position:relative;display:block;width:210px;height:255px;flex:none;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:8px;background:var(--ink);padding:6px;overflow:hidden;transform-origin:center;transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s,border-color .22s;will-change:auto}
.album-film-frame img{display:block;width:100%;height:100%;object-fit:cover;border-radius:4px;pointer-events:none}.album-film-frame.is-active{transform:scale(1.06);z-index:3;border-color:#c7b08b;box-shadow:0 8px 26px #142f4524,0 0 18px #d7b9851c}
.film-contour{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s;overflow:visible}
.film-contour rect{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dashoffset:0}
.film-contour-tail{stroke:#d8bd88;stroke-width:3.5;stroke-dasharray:38 62;opacity:.23;filter:blur(1.4px)}
.film-contour-light{stroke:#f1dfb6;stroke-width:1.3;stroke-dasharray:20 80;opacity:.72;filter:drop-shadow(0 0 3px #dfc18b80)}
.album-film-frame.is-active .film-contour{opacity:1}
.album-film-frame.is-active .film-contour rect{animation:film-light-flow 5.5s linear infinite}
[data-theme=dark] .album-film-frame.is-active{border-color:#ae9470;box-shadow:0 8px 26px #04121d50,0 0 22px #dfbf8926}
@keyframes film-light-flow{to{stroke-dashoffset:-100}}
.album-film-info{position:relative;flex:none;width:0;height:255px;margin-left:0;border-radius:12px;overflow:hidden;color:var(--ink);opacity:0;transform:translateX(-12px);transform-origin:left center;pointer-events:none;transition:width .34s cubic-bezier(.22,.75,.25,1),margin-left .34s cubic-bezier(.22,.75,.25,1),opacity .22s ease,transform .34s cubic-bezier(.22,.75,.25,1);overflow-anchor:none}
.film-info-content{position:relative;display:flex;flex-direction:column;width:var(--film-info-width);height:100%;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--page-bg,#f6f9fc) 94%,transparent);box-sizing:border-box}
.album-film-item.is-open .album-film-info{width:var(--film-info-width);margin-left:22px;opacity:1;transform:none;pointer-events:auto;animation:film-info-breathe 4.8s ease-in-out infinite}
.album-film-item.is-open .film-info-content{border-color:color-mix(in srgb,var(--line) 60%,#cdb07d 40%)}
@keyframes film-info-breathe{0%,100%{box-shadow:0 0 12px 1px rgba(188,153,92,.07)}50%{box-shadow:0 0 24px 3px rgba(188,153,92,.17)}}
[data-theme=dark] .album-film-item.is-open .album-film-info{animation-name:film-info-breathe-dark}
@keyframes film-info-breathe-dark{0%,100%{box-shadow:0 0 14px 1px rgba(219,186,125,.08)}50%{box-shadow:0 0 25px 3px rgba(219,186,125,.18)}}
.album-film-viewport.is-dragging .album-film-info{transition:none;animation:none}
.album-film-info h2{font:500 25px/1.4 Georgia,'Noto Serif SC',serif;margin:0 28px 4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.album-film-info p{font-size:.95rem;line-height:1.7;margin:6px 0;overflow-wrap:anywhere}.album-film-info .film-album-meta{font-size:.8rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}.film-album-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.9rem}.album-film-info small{display:flex;align-items:center;gap:7px;margin:auto 0 9px;font-size:.85rem;flex:none}.album-film-info small svg{width:18px;height:18px}.album-film-info a{display:inline-flex;align-items:center;align-self:flex-start;gap:12px;text-decoration:none;font-size:.9rem;padding:.55rem 1rem;flex:none;white-space:nowrap}.album-film-info a svg{width:18px;height:18px}
.album-film-close{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:30px;height:30px;padding:5px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;transition:background .18s,color .18s}.album-film-close svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.album-film-close:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 8%,transparent)}
.album-film-info small svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
[data-theme=dark] .film-info-content{background:rgba(12,28,41,.94);border-color:rgba(172,206,228,.26)}
.album-film-hint{text-align:center;margin:4px 0 8px;color:var(--muted);font-size:.85rem}
.album-film-frame{background:#172731;padding:5px;border-color:rgba(127,160,182,.28)}
:is(.album-film-info,.photo-index-heading) .glass-control{position:relative;border:1px solid var(--line);border-radius:999px;background:var(--control-bg,rgba(240,249,255,.65));color:var(--ink);font:inherit;box-shadow:inset 0 1px 0 #ffffff30;backdrop-filter:blur(12px);transition:background .18s,border-color .18s,transform .18s}
:is(.album-film-info,.photo-index-heading) .glass-control svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
[data-theme=dark] :is(.album-film-info,.photo-index-heading) .glass-control{background:rgba(31,53,69,.65);color:#dbeaf5}
@media(max-width:800px){.photo-index-heading{align-items:flex-start;gap:10px}.album-layout-switch{padding:.55rem .7rem;font-size:.8rem}.album-film-hint{font-size:.8rem}}
@media(prefers-reduced-motion:reduce){.album-film-frame,.film-contour,.film-contour rect,.album-film-info,.glass-pointer-sheen,.short-note-item__content img,.album-card__image,.article-row__cover img,.article-card__cover img,.article-reading-cover img,.article-hero--editorial img{transition:none;animation:none!important}}
.album-film-frame,.album-film-frame img,.gallery-thumbnail{user-select:none;-webkit-user-drag:none}.album-film-viewport,.gallery-filmstrip__track{overflow-anchor:none;scroll-behavior:auto}

/* Hallmark · component polish · existing blue-grey glass · shared dropdowns. */
html[data-theme] :is(.interaction-section-head,.profile-history-controls) .profile-select-trigger {
  display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-xs);
  min-height: 44px; min-width: 92px; padding: var(--space-2xs) var(--space-xs); white-space: nowrap;
  border: 1px solid var(--color-rule); border-radius: var(--radius-input); background: var(--color-hover); color: var(--color-ink);
  font: 500 var(--text-sm)/1.2 var(--font-body); box-shadow: none;
  transition: background-color var(--dur-short) var(--ease-out),border-color var(--dur-short) var(--ease-out);
}
html[data-theme] .profile-select-menu { background: var(--color-field); color: var(--color-ink); border-color: var(--color-rule); box-shadow: var(--shadow-card); }
html[data-theme] .profile-select-menu button { display: block; width: 100%; min-height: 44px; padding: var(--space-2xs) var(--space-xs); border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--color-ink); text-align: start; font-size: var(--text-sm); }
html[data-theme] .profile-select-menu button[aria-selected=true] { background: var(--color-hover); color: var(--color-accent); }
html[data-theme] .profile-select :is(button):focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
html[data-theme] .profile-select-trigger:active { background: var(--color-field); }
html[data-theme] .profile-select-trigger:disabled { cursor: not-allowed; opacity: .55; }
[data-comment-sort][hidden] { display: none !important; }
.email-change-disclosure { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 280ms var(--ease-in-out); overflow-anchor: none; }
.email-change-body { min-height: 0; overflow: hidden; opacity: 0; transform: translateY(-6px); transition: opacity 220ms var(--ease-out),transform 280ms var(--ease-out); }
.email-change-disclosure.is-open { grid-template-rows: 1fr; }
.email-change-disclosure.is-open .email-change-body { opacity: 1; transform: none; }
@media(hover:hover) and (pointer:fine) { html[data-theme] .profile-select button:hover:not(:disabled) { background: var(--color-hover); color: var(--color-accent); border-color: var(--color-accent); transform: none; } }
@media(prefers-reduced-motion:reduce) { .email-change-disclosure,.email-change-body { transition: none; transform: none; } }
