/* ══════════════════════════════════════════════════════════════
   记忆书架 —— 整段搬自参考项目 Your-China-Travel（.memory-* 规则 + 关键帧）
   逻辑与样式未改；只在这里说明来源。
   ══════════════════════════════════════════════════════════════ */
/* ===== 城市记忆：省份书架 -> 城市章节 -> 旅行相册 ===== */
  .memory-shelf-overlay{position:fixed;inset:0;z-index:87;display:none;padding:24px;
    background:rgba(218,224,224,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
.memory-shelf-overlay.show{display:flex;animation:memoryOverlayIn .5s cubic-bezier(.16,1,.3,1) both;}
.memory-shelf-dialog{position:relative;width:min(1680px,100%);height:min(900px,calc(100dvh - 48px));margin:auto;overflow:hidden;
    display:flex;flex-direction:column;border:1px solid rgba(77,103,111,.2);border-radius:18px;
    background:
      radial-gradient(circle at 70% 12%,rgba(255,255,255,.92),transparent 34%),
      linear-gradient(145deg,#f5f4ee 0%,#edf2f2 56%,#e2eaec 100%);
    box-shadow:0 30px 90px rgba(55,72,77,.24),inset 0 1px 0 rgba(255,255,255,.9);
    color:#263b45;}
.memory-shelf-head{flex:0 0 auto;min-height:88px;padding:19px 132px 17px 28px;border-bottom:1px solid rgba(69,96,105,.14);
    display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(248,247,241,.74);}
.memory-shelf-kicker{display:block;color:#985627;font-size:12px;font-weight:700;letter-spacing:.14em;}
.memory-shelf-head h2{margin:5px 0 0;color:#183846;font-size:34px;line-height:1.14;letter-spacing:.02em;}
.memory-shelf-head p{margin:7px 0 0;color:#526b75;font-size:15px;line-height:1.55;}
.memory-shelf-grid,.memory-shelf-close{position:absolute;top:24px;height:38px;border:1px solid rgba(70,101,111,.24);border-radius:12px;
    background:rgba(252,251,246,.84);color:#395965;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease;}
.memory-shelf-grid{right:72px;padding:0 15px;font-size:13px;font-weight:700;}
.memory-shelf-close{right:22px;width:38px;font-size:22px;}
.memory-shelf-grid:hover,.memory-shelf-close:hover{border-color:rgba(166,101,50,.56);background:#fffdf8;color:#7c4a26;}
.memory-shelf-grid:active,.memory-shelf-close:active{transform:translateY(1px);}
.memory-shelf-body{flex:1 1 auto;min-height:0;position:relative;overflow:hidden;}
.memory-shelf-scene{position:relative;height:100%;min-height:0;display:grid;grid-template-columns:minmax(320px,390px) minmax(0,1fr);isolation:isolate;}
.memory-shelf-scene::after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 60% 20%,rgba(255,255,255,.76),transparent 32%),linear-gradient(118deg,transparent 42%,rgba(255,255,255,.24) 56%,transparent 72%);}
.memory-province-info{position:relative;z-index:4;min-width:0;padding:48px 36px 36px;border-right:1px solid rgba(69,96,105,.13);
    display:flex;flex-direction:column;justify-content:flex-start;background:linear-gradient(90deg,rgba(250,248,241,.9),rgba(250,248,241,.22));
    transition:opacity .18s ease,transform .18s ease;}
.memory-province-info.leaving{opacity:0;transform:translateY(8px);}
.memory-province-info.entering{opacity:0;transform:translateY(8px);}
.memory-info-count{color:#985627;font-size:15px;font-weight:700;line-height:1.5;letter-spacing:.14em;}
.memory-info-heading{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:14px 0 22px;}
.memory-info-name{min-width:0;max-width:100%;margin:0;font:500 clamp(46px,5vw,70px)/1.14 'Playfair Display','Noto Serif SC','Source Han Serif SC',serif;color:#183846;letter-spacing:.04em;white-space:normal;overflow-wrap:anywhere;}
.memory-info-name.long{font-size:clamp(36px,3.4vw,46px);white-space:normal;}
.memory-info-heading:has(.memory-info-name.extra-long){gap:10px;}
.memory-info-name.extra-long{font-size:clamp(24px,2.2vw,31px);line-height:1.18;letter-spacing:.01em;white-space:normal;}
.memory-province-edit{flex:0 0 auto;min-height:38px;margin-top:7px;padding:7px 13px;border:1px solid rgba(70,101,111,.34);border-radius:9px;background:rgba(255,253,248,.78);color:#2c505e;font-size:13px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease;}
.memory-province-edit:hover{border-color:rgba(166,101,50,.58);background:#fffdf8;color:#7c4a26;}
.memory-province-edit:active{transform:translateY(1px);}
.memory-info-stats{display:flex;align-items:baseline;gap:26px;margin-bottom:25px;color:#4e6974;font-size:15px;font-weight:600;}
.memory-info-stats b{color:#183846;font-size:28px;line-height:1;margin-right:5px;}
.memory-info-cities{max-width:30ch;margin:0 0 28px;display:flex;flex-wrap:wrap;gap:8px 17px;color:#365864;font-size:16px;font-weight:600;line-height:1.7;}
.memory-info-cities span{position:relative;}
.memory-info-cities span:not(:last-child)::after{content:"";position:absolute;right:-9px;top:50%;width:2px;height:2px;border-radius:50%;background:#91a3a7;}
.memory-info-date{padding-top:18px;border-top:1px solid rgba(69,96,105,.18);color:#985627;font-size:13px;font-weight:700;line-height:1.7;}
.memory-info-date strong{display:block;margin-top:3px;color:#294b58;font-size:16px;font-weight:700;}
.memory-info-review-block{margin-top:18px;padding:16px 17px;border-left:3px solid rgba(152,86,39,.68);background:rgba(255,253,248,.58);}
.memory-info-review{min-height:28px;margin:0;color:#294b58;font:600 15px/1.75 'Microsoft YaHei',sans-serif;white-space:pre-wrap;}
.memory-info-review.is-empty{color:#60757d;font-weight:500;}
body:not(.light-theme) .memory-info-review-block{border-left-color:rgba(73,102,112,.72);background:rgba(77,105,114,.11);}
body:not(.light-theme) .memory-info-review.is-empty{color:#4f6871;}
.memory-info-note{max-width:29ch;margin:auto 0 0;color:#536c76;font:14px/1.8 'Microsoft YaHei',sans-serif;}
.memory-province-editor{position:absolute;z-index:70;inset:0;display:flex;padding:24px;background:rgba(221,227,226,.82);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);}
.memory-province-editor[hidden]{display:none;}
.memory-province-editor-panel{width:min(920px,100%);max-height:min(720px,calc(100dvh - 64px));margin:auto;overflow:auto;border:1px solid rgba(70,101,111,.2);border-radius:16px;background:#f8f6ef;box-shadow:0 28px 76px rgba(55,72,77,.24);color:#263b45;}
.memory-province-editor-head{position:sticky;z-index:2;top:0;padding:22px 72px 20px 26px;border-bottom:1px solid rgba(69,96,105,.14);background:rgba(248,246,239,.96);}
.memory-province-editor-head span{display:block;color:#a66532;font-size:10px;letter-spacing:.18em;}
.memory-province-editor-head h2{margin:5px 0 0;font-size:25px;line-height:1.2;}
.memory-province-editor-close{position:absolute;right:20px;top:22px;width:38px;height:38px;border:1px solid rgba(70,101,111,.24);border-radius:10px;background:#fffdf8;color:#395965;font-size:21px;cursor:pointer;}
.memory-province-editor-body{display:grid;grid-template-columns:minmax(230px,.78fr) minmax(0,1.22fr);gap:34px;padding:28px;}
.memory-province-cover-preview{position:relative;aspect-ratio:2/3;overflow:hidden;border-radius:5px 10px 11px 5px;background:#dbe2e2 center/cover no-repeat;box-shadow:0 18px 38px rgba(45,59,62,.18);}
.memory-province-cover-preview::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(248,246,239,.9),rgba(248,246,239,.26) 25%,transparent 48%,rgba(25,43,49,.32));pointer-events:none;}
.memory-province-cover-copy{position:absolute;z-index:1;inset:22px 20px auto;color:#243945;}
.memory-province-cover-copy small{display:block;font-size:10px;font-weight:700;}
.memory-province-cover-copy strong{display:block;margin-top:12px;font:500 30px/1.15 'Noto Serif SC','Source Han Serif SC','STSong','SimSun',serif;}
.memory-province-cover-actions{display:flex;gap:8px;margin-top:14px;}
.memory-province-cover-actions label,.memory-province-cover-actions button{flex:1;min-height:36px;padding:8px 10px;border:1px solid rgba(70,101,111,.24);border-radius:9px;background:#fffdf8;color:#395965;font-size:12px;font-weight:700;text-align:center;cursor:pointer;}
.memory-province-cover-actions input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.memory-province-editor-form{min-width:0;}
.memory-province-editor-form h3{margin:0 0 6px;font-size:20px;}
.memory-province-editor-form>p{margin:0 0 22px;color:#718389;font-size:12px;line-height:1.7;}
.memory-province-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:20px;}
.memory-province-summary div{padding:14px 0;border-top:1px solid rgba(69,96,105,.16);}
.memory-province-summary span{display:block;color:#819196;font-size:11px;}
.memory-province-summary strong{display:block;margin-top:5px;color:#243945;font-size:20px;}
.memory-province-editor-field{display:block;margin-top:18px;}
.memory-province-editor-field>span{display:block;margin-bottom:8px;color:#405963;font-size:12px;font-weight:700;}
.memory-province-editor-cities{display:flex;flex-wrap:wrap;gap:7px 12px;color:#536c76;font-size:13px;line-height:1.6;}
.memory-province-editor-cities span:not(:last-child)::after{content:"、";}
.memory-province-editor-field textarea{width:100%;min-height:126px;resize:vertical;padding:12px 13px;border:1px solid rgba(70,101,111,.25);border-radius:10px;background:#fffdf8;color:#263b45;font:13px/1.75 'Microsoft YaHei',sans-serif;outline:none;}
.memory-province-editor-field textarea:focus{border-color:#a66532;box-shadow:0 0 0 3px rgba(166,101,50,.1);}
.memory-province-editor-count{display:block;margin-top:6px;color:#819196;font-size:11px;text-align:right;}
.memory-province-editor-message{min-height:20px;margin:12px 0 0;color:#9a4e31;font-size:12px;}
.memory-province-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.memory-province-editor-actions button{min-width:86px;height:38px;border:1px solid rgba(70,101,111,.25);border-radius:10px;background:#fffdf8;color:#395965;font-weight:700;cursor:pointer;}
.memory-province-editor-actions .primary{border-color:#a66532;background:#a66532;color:#fffaf2;}
.memory-province-editor-actions button:disabled{opacity:.55;cursor:wait;}
.memory-shelf-viewport{position:relative;min-width:0;overflow:hidden;perspective:1600px;perspective-origin:48% 46%;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none;background:radial-gradient(circle at 54% 14%,rgba(255,255,255,.9),transparent 38%),linear-gradient(180deg,rgba(229,238,240,.38),rgba(246,244,237,.2));}
.memory-shelf-viewport::before{content:"";position:absolute;z-index:0;left:6%;right:5%;bottom:76px;height:1px;background:linear-gradient(90deg,transparent,rgba(99,115,118,.2) 10%,rgba(99,115,118,.12) 88%,transparent);box-shadow:0 15px 36px rgba(82,91,89,.18);pointer-events:none;}
.memory-shelf-viewport.dragging{cursor:grabbing;}
.memory-shelf-viewport.rotating{cursor:ew-resize;}
.memory-shelf-track{position:absolute;inset:0;transform-style:preserve-3d;}
.memory-shelf-webgl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .12s ease;touch-action:none;}
.memory-shelf-viewport.webgl-pending .memory-shelf-track{visibility:hidden;pointer-events:none;}
.memory-shelf-viewport.webgl-ready .memory-shelf-webgl{opacity:1;}
.memory-shelf-viewport.webgl-ready .memory-shelf-track{opacity:0;pointer-events:none;}
.memory-book{--book-cover:#5b7085;--book-edge:#d6e3ea;--book-ink:#f4f8fb;--book-accent:#75c7e9;--book-tilt-x:0deg;--book-tilt-y:0deg;--book-lift:0px;--book-lift-z:0px;
    position:absolute;left:0;bottom:94px;width:308px;height:484px;padding:0;border:0;overflow:visible;background:transparent;color:var(--book-ink);text-align:left;
    transform-style:preserve-3d;transform-origin:center bottom;will-change:transform,opacity,filter;cursor:pointer;
    transition:transform .78s cubic-bezier(.16,1,.3,1),opacity .46s ease,filter .46s ease;}
.memory-book-object{position:absolute;inset:0;display:block;transform-style:preserve-3d;transform:translate3d(0,var(--book-lift),var(--book-lift-z)) rotateX(var(--book-tilt-x)) rotateY(var(--book-tilt-y));transition:transform .28s cubic-bezier(.16,1,.3,1);}
.memory-book:hover{--book-lift:0px;--book-lift-z:28px;}
.memory-book:active{--book-lift:0px;--book-lift-z:18px;}
.memory-book-shadow{position:absolute;left:2%;right:-2%;bottom:-24px;height:29px;border-radius:50%;background:radial-gradient(ellipse,rgba(65,72,70,.38),rgba(65,72,70,.14) 48%,transparent 73%);filter:blur(7px);transform:rotateX(74deg) translateZ(-22px);opacity:.7;pointer-events:none;}
.memory-book-page-face,.memory-book-page-edge,.memory-book-back,.memory-book-cover,.memory-book-spine-face,.memory-book-edge-top,.memory-book-edge-bottom{position:absolute;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;}
.memory-book-page-face{inset:7px 5px 7px 12px;overflow:hidden;border-radius:2px 5px 5px 2px;background:repeating-linear-gradient(0deg,var(--book-edge) 0 2px,color-mix(in srgb,var(--book-edge),#8b8a83 12%) 2px 3px);transform:translateZ(15px);box-shadow:inset 9px 0 15px rgba(45,49,48,.18);}
.memory-book-opening-page{position:absolute;inset:14px 12px 14px 20px;padding:20px 14px;background:linear-gradient(90deg,#ded4c5,#f8f3e9 10%,#f3eee4);color:#284252;text-align:left;opacity:0;transition:opacity .12s ease;}
.memory-book-opening-page-label{display:flex;justify-content:space-between;margin-bottom:12px;color:#527386;font-size:8px;letter-spacing:.12em;}
.memory-book-opening-entry{min-height:46px;padding:8px 2px;border-bottom:1px solid rgba(43,75,92,.14);display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:7px;}
.memory-book-opening-entry span{color:#79909d;font-size:9px;}
.memory-book-opening-entry b{font-size:11px;}
.memory-book-opening-entry small{color:#65808f;font-size:7px;white-space:nowrap;}
.memory-book-page-edge{right:-20px;top:7px;bottom:7px;width:40px;transform-origin:left center;transform:rotateY(90deg);border-radius:0 4px 4px 0;background:repeating-linear-gradient(0deg,var(--book-edge) 0 2px,color-mix(in srgb,var(--book-edge),#82969f 18%) 2px 3px);box-shadow:inset 7px 0 12px rgba(69,83,87,.2),inset -1px 0 rgba(255,255,255,.42);}
.memory-book-back{inset:0;border-radius:3px 10px 11px 3px;background:color-mix(in srgb,var(--book-cover),#101a20 12%);transform:translateZ(-20px) rotateY(180deg);}
.memory-book-spine-face{left:-21px;top:0;width:42px;height:100%;transform-origin:right center;transform:rotateY(-90deg);border-radius:11px 3px 3px 11px;background:linear-gradient(90deg,color-mix(in srgb,var(--book-cover),#07121a 24%),transparent 24%,rgba(255,255,255,.08) 55%,rgba(18,28,31,.12)),repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,rgba(25,34,36,.035) 1px 2px,transparent 2px 4px),repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 4px),var(--book-cover);background-blend-mode:multiply,soft-light,soft-light,normal;box-shadow:inset 4px 0 7px rgba(19,28,30,.2),inset -2px 0 4px rgba(255,255,255,.16);}
.memory-book-edge-top,.memory-book-edge-bottom{left:12px;right:5px;height:40px;background:repeating-linear-gradient(90deg,var(--book-edge) 0 2px,color-mix(in srgb,var(--book-edge),#92a2aa 14%) 2px 3px);transform-origin:center center;}
.memory-book-edge-top{top:-20px;transform:rotateX(90deg);}
.memory-book-edge-bottom{bottom:-20px;transform:rotateX(-90deg);}
.memory-book-spine-copy{position:absolute;inset:20px 4px 18px;display:flex;flex-direction:column;align-items:center;color:var(--book-ink);font-size:8px;letter-spacing:.08em;text-shadow:0 1px 1px rgba(255,255,255,.18),0 1px 2px rgba(20,30,34,.18);}
.memory-book-spine-copy b{margin:auto 0;font:700 20px/1.4 'Microsoft YaHei','Source Han Sans SC','Noto Sans CJK SC',sans-serif;letter-spacing:.06em;writing-mode:vertical-rl;}
.memory-book-spine-copy small{font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.28em;text-indent:.28em;}
.memory-book-spine-copy i{font:700 10px/1.2 'Microsoft YaHei UI','Microsoft YaHei','Source Han Sans SC',sans-serif;font-style:normal;letter-spacing:.32em;text-indent:.32em;}
.memory-book-cover{--book-ink:#253943;inset:0;padding:28px 20px 22px 36px;overflow:hidden;border-radius:3px 10px 11px 3px;display:flex;flex-direction:column;background:#f3f0e8;transform:translateZ(20px);box-shadow:0 29px 44px rgba(0,5,12,.4);transform-origin:left center;}
.memory-book-cover-inside{position:absolute;inset:0;overflow:hidden;border-radius:3px 10px 11px 3px;background:linear-gradient(90deg,#e4dbcd,#f8f3e9 10%,#f3eee4 92%,#d8cdbd);transform:translateZ(19px) rotateY(180deg);transform-origin:left center;backface-visibility:hidden;-webkit-backface-visibility:hidden;color:#1d3342;text-align:left;}
.memory-book-opening-photo{display:block;height:46%;background:#b8c9d1 center/cover no-repeat;box-shadow:inset 0 -28px 34px rgba(25,48,62,.24);}
.memory-book-opening-summary{display:block;padding:23px 28px;}
.memory-book-opening-summary small{display:block;color:#547383;font-size:8px;letter-spacing:.12em;}
.memory-book-opening-summary strong{display:block;margin:9px 0 7px;font:500 30px/1.15 'Noto Serif SC','Source Han Serif SC','STSong','SimSun',serif;}
.memory-book-opening-summary span{display:block;color:#67808f;font-size:9px;line-height:1.7;}
.memory-book-opening-totals{margin-top:16px!important;padding-top:12px;border-top:1px solid rgba(43,75,92,.14);color:#405d6d!important;font-weight:700;}
.memory-book-cover::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(71,94,103,.28),rgba(132,153,160,.15) 5px,transparent 12px,transparent calc(100% - 9px),rgba(96,111,116,.09) calc(100% - 4px),rgba(66,81,86,.23)),linear-gradient(180deg,rgba(255,255,255,.16),transparent 18%,transparent 86%,rgba(77,70,55,.035));pointer-events:none;}
.memory-book-cover::after{content:"";position:absolute;inset:0;opacity:.08;background:repeating-linear-gradient(0deg,rgba(255,255,255,.18) 0 1px,transparent 1px 5px);mix-blend-mode:soft-light;pointer-events:none;}
.memory-book-index{position:relative;z-index:1;color:var(--book-ink);font-size:10px;font-weight:600;letter-spacing:.14em;}
.memory-book-title{position:relative;z-index:1;margin:24px 0 0;font:500 38px/1.12 'Noto Serif SC','Source Han Serif SC','STSong','SimSun',serif;letter-spacing:.06em;}
.memory-book-title.long{font-size:29px;line-height:1.22;letter-spacing:.035em;}
.memory-book-title.extra-long{font-size:22px;line-height:1.3;letter-spacing:.015em;}
.memory-book-subtitle{display:none;}
.memory-book-photo{position:relative;z-index:1;flex:1 1 auto;min-height:250px;height:auto;margin:16px -20px -22px -36px;background:rgba(255,255,255,.08);background-size:cover;background-position:center;box-shadow:none;}
.memory-book-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f3f0e8,rgba(243,240,232,.72) 22%,transparent 48%,transparent 72%,rgba(20,34,38,.42) 100%);}
.memory-book-meta{position:absolute;z-index:2;left:36px;right:20px;bottom:18px;margin:0;padding:0;display:flex;justify-content:space-between;gap:10px;color:#f3f0e8;font-size:12px;font-weight:700;text-shadow:0 1px 3px rgba(14,28,33,.9);}
.memory-book-meta span:nth-child(3){display:none;}
.memory-book-open{display:none;}
.memory-book-open::after{content:"↗";font-size:14px;line-height:1;}
.memory-book-mark{display:none;}
.memory-book.active .memory-book-cover{box-shadow:0 43px 66px rgba(0,5,12,.52);}
.memory-book.active:not(.opening) .memory-book-back{opacity:0;}
.memory-book.active:not(.opening) .memory-book-spine-face{opacity:1;}
.memory-book.active.inspecting .memory-book-back,.memory-book.active.inspecting .memory-book-spine-face{opacity:1;}
.memory-book:not(.active) .memory-book-cover{filter:saturate(.9) brightness(.96);}
.memory-book:not(.active) .memory-book-open{display:none;}
.memory-book:not(.active) .memory-book-mark{opacity:.38;}
.memory-book:focus-visible{outline:2px solid var(--book-accent);outline-offset:8px;}
.memory-shelf-viewport.switching .memory-book.active .memory-book-object{animation:memoryBookExtract .78s cubic-bezier(.16,1,.3,1);}
.memory-shelf-viewport.opening{pointer-events:none;}
.memory-shelf-viewport.opening .memory-book:not(.opening){transform:translate3d(86vw,8px,-260px) rotateY(84deg) scale(.78)!important;opacity:0!important;filter:brightness(.45)!important;}
.memory-book.opening{z-index:50!important;transform:translate3d(calc(50vw - 50%),-12px,160px) rotateX(4deg) scale(1.06)!important;opacity:1!important;filter:none!important;}
.memory-book.opening .memory-book-object{--book-tilt-x:0deg;--book-tilt-y:0deg;--book-lift:0px;--book-lift-z:0px;}
.memory-book.opening .memory-book-cover{animation:memoryShelfCoverOpen .68s .16s cubic-bezier(.55,.06,.68,.19) both;}
.memory-book.opening .memory-book-cover-inside{animation:memoryShelfCoverInsideOpen .68s .16s cubic-bezier(.55,.06,.68,.19) both;}
.memory-book.opening .memory-book-opening-page{opacity:1;transition-delay:.18s;}
.memory-shelf-floor{position:absolute;left:5%;right:4%;bottom:66px;height:28px;border-radius:50%;background:radial-gradient(ellipse,rgba(92,100,97,.24),rgba(92,100,97,.07) 50%,transparent 73%);filter:blur(7px);pointer-events:none;}
.memory-shelf-hint{position:absolute;left:50%;bottom:24px;translate:-50% 0;color:#536d77;font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none;}
.memory-shelf-more{position:absolute;z-index:8;left:calc(100% - 30px);top:50%;translate:0 -50%;display:grid;width:28px;min-width:28px;height:36px;padding:0;border:1px solid rgba(70,101,111,.3);border-radius:8px;background:rgba(252,251,246,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 8px 22px rgba(55,72,77,.16),inset 0 1px rgba(255,255,255,.95);place-items:center;color:#315665;font:700 18px/1 Arial,sans-serif;cursor:pointer;transition:opacity .24s ease,transform .24s ease,background-color .24s ease,border-color .24s ease;}
.memory-shelf-more:hover{border-color:rgba(152,86,39,.5);background:#fffdf8;color:#8a4c23;transform:translateX(2px)}
.memory-shelf-more:active{transform:translateX(2px) scale(.96)}
.memory-shelf-more:focus-visible{outline:2px solid #a66532;outline-offset:3px}
.memory-shelf-more:disabled{opacity:.38;cursor:default;transform:none}
.memory-shelf-more[hidden]{display:none;}
.memory-empty{height:100%;min-height:420px;display:grid;place-content:center;justify-items:center;gap:11px;text-align:center;padding:32px;color:#829aa9;}
.memory-empty strong{color:#e9f6fb;font:400 30px 'Playfair Display','Noto Serif SC','Source Han Serif SC',serif;}
.memory-empty button,.memory-back,.memory-city-detail{min-height:38px;padding:0 15px;border:1px solid rgba(70,101,111,.28);border-radius:12px;background:rgba(252,251,246,.9);color:#315665;font-weight:700;cursor:pointer;}
.memory-empty button:hover,.memory-back:hover,.memory-city-detail:hover{border-color:rgba(152,86,39,.5);background:#fffdf8;color:#8a4c23;}
.memory-chapters,.memory-album{height:100%;min-height:0;padding:28px 34px 34px;display:flex;flex-direction:column;}
.memory-album{padding-bottom:52px;}
.memory-view-tools{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.memory-view-title{min-width:0;}
.memory-view-title span{display:block;color:#985627;font-size:10px;font-weight:700;letter-spacing:.16em;}
.memory-view-title h3{margin:5px 0 0;color:#183846;font-size:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.memory-chapter-book{flex:1 1 auto;min-height:0;width:min(1120px,100%);margin:auto;display:grid;grid-template-columns:1fr 1fr;perspective:1600px;
    filter:drop-shadow(0 28px 32px rgba(0,4,10,.34));animation:memoryBookOpen .72s cubic-bezier(.16,1,.3,1) both;}
.memory-chapter-page{position:relative;min-height:0;padding:48px 52px;background:#f2eee5;color:#30434a;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(119,91,61,.13),inset 0 -18px 28px rgba(113,83,51,.08);}
.memory-chapter-page::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.28;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.85) 0 1px,transparent 1.5px),radial-gradient(circle at 74% 68%,rgba(113,88,61,.16) 0 1px,transparent 1.5px),repeating-linear-gradient(0deg,rgba(122,99,74,.055) 0 1px,transparent 1px 5px);background-size:17px 19px,23px 27px,100% 5px;mix-blend-mode:multiply;}
.memory-chapter-page.left{border-radius:12px 2px 2px 12px;background:linear-gradient(90deg,#ded6c9,#f7f2e8 9%,#f2ede2 91%,#d4c8b9);transform-origin:right center;}
.memory-chapter-page.right{border-radius:2px 12px 12px 2px;background:linear-gradient(90deg,#d3c8b9,#f6f1e7 9%,#f2ede3 92%,#d8cec0);transform-origin:left center;}
.memory-chapter-page.left::after,.memory-chapter-page.right::before{content:"";position:absolute;top:0;bottom:0;width:28px;pointer-events:none;}
.memory-chapter-page.left::after{right:0;background:linear-gradient(90deg,transparent,rgba(76,58,42,.22));}
.memory-chapter-page.right::before{left:0;background:linear-gradient(90deg,rgba(76,58,42,.24),transparent);}
.memory-chapter-page.right::after{content:"";position:absolute;right:8%;bottom:7%;width:34%;height:26%;pointer-events:none;opacity:.16;background:radial-gradient(ellipse at 50% 80%,transparent 0 28%,#9b7048 29% 30%,transparent 31%),linear-gradient(135deg,transparent 48%,#78959a 49% 51%,transparent 52%),linear-gradient(25deg,transparent 47%,#b47c52 48% 50%,transparent 51%);filter:blur(.2px);}
.memory-chapter-cover{height:46%;margin:-48px -52px 34px;background:linear-gradient(145deg,#7b94a5,#516e82);background-size:cover;background-position:center;position:relative;}
.memory-chapter-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,38,52,.64),transparent 62%);}
.memory-chapter-label{color:#527386;font-size:10px;letter-spacing:.18em;}
.memory-chapter-page h4{margin:12px 0 8px;font:400 clamp(34px,4vw,58px)/1 'Playfair Display','Noto Serif SC','Source Han Serif SC',serif;color:#1d3342;}
.memory-chapter-page p{margin:0;color:#67808f;font-size:13px;line-height:1.8;}
.memory-chapter-totals{display:flex;gap:20px;margin-top:24px;color:#567283;font-size:12px;}
.memory-chapter-totals b{display:block;color:#203b4c;font-size:22px;}
.memory-chapter-list{height:100%;min-height:0;overflow:auto;padding:2px 8px 2px 20px;scrollbar-width:thin;scrollbar-color:#9fb1bb transparent;}
.memory-chapter-entry{width:100%;padding:14px 8px;border:0;border-bottom:1px solid rgba(111,84,57,.16);background:linear-gradient(90deg,rgba(255,255,255,.2),transparent);display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;color:#284252;text-align:left;cursor:pointer;}
.memory-chapter-entry:hover{color:#087fab;}
.memory-chapter-entry:focus-visible{outline:2px solid #1597c7;outline-offset:2px;}
.memory-chapter-no{font:600 16px 'Playfair Display',serif;color:#79909d;}
.memory-chapter-copy b,.memory-chapter-copy span{display:block;}
.memory-chapter-copy b{font-size:15px;}
.memory-chapter-copy span{margin-top:4px;color:#7c919c;font-size:10px;}
.memory-chapter-photos{color:#65808f;font-size:10px;white-space:nowrap;}
.memory-album{padding-inline:30px;}
.memory-album-frame{position:relative;flex:1 1 auto;min-height:0;}
.memory-album-stage{width:100%;height:100%;display:grid;place-items:center;perspective:1800px;}
.memory-album-book{position:relative;width:min(1180px,86vw);height:min(650px,68vh);display:grid;grid-template-columns:1fr 1fr;transform:rotateX(3deg);transform-style:preserve-3d;filter:drop-shadow(0 35px 40px rgba(0,4,10,.42));}
.memory-album-page{position:relative;min-width:0;min-height:0;padding:34px;background:#f2eee5;color:#30434a;overflow:hidden;transform-style:preserve-3d;backface-visibility:visible;-webkit-backface-visibility:visible;box-shadow:inset 0 0 0 1px rgba(119,91,61,.12),inset 0 -16px 24px rgba(113,83,51,.08);}
.memory-album-page.left{border-radius:13px 2px 2px 13px;background:linear-gradient(90deg,#ddd5c8,#f7f2e8 7%,#f0ebe0 94%,#d2c6b7);box-shadow:inset -18px 0 25px rgba(76,58,42,.16);}
.memory-album-page.right{border-radius:2px 13px 13px 2px;background:linear-gradient(90deg,#d2c6b7,#f6f1e7 7%,#f0ebe0);box-shadow:inset 18px 0 25px rgba(76,58,42,.15);}
.memory-album-page::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.1;background:repeating-linear-gradient(4deg,rgba(37,58,70,.16) 0 1px,transparent 1px 5px);mix-blend-mode:multiply;}
.memory-album-page-head{position:relative;z-index:1;height:34px;display:flex;align-items:start;justify-content:space-between;color:#536f7c;font-size:10px;font-weight:600;letter-spacing:.12em;}
.memory-album-page-head strong{color:#183846;font-size:13px;letter-spacing:.04em;}
.memory-album-grid{position:relative;z-index:1;height:calc(100% - 56px);display:grid;gap:12px;align-items:stretch;justify-items:stretch;}
.memory-album-grid.layout-single{display:flex;align-items:center;justify-content:center;padding:8px 12px;}
.memory-album-grid.layout-two-landscape{grid-template-columns:1fr;grid-template-rows:1fr 1fr;padding:2%;}
.memory-album-grid.layout-two-portrait{grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:2%;}
.memory-album-grid.layout-four{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;padding:2%;}
.memory-album-editorial{position:relative;z-index:1;height:calc(100% - 56px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:12%;text-align:center;color:#536f7c;}
.memory-album-editorial::before{content:"";width:42px;height:1px;background:#8198a3;}
.memory-album-editorial span{font-size:10px;font-weight:600;letter-spacing:.18em;}
.memory-album-editorial strong{color:#244654;font:400 34px 'Playfair Display','Noto Serif SC','Source Han Serif SC',serif;}
.memory-album-editorial p{max-width:28em;margin:0;color:#4f6874;font-size:12px;line-height:1.9;}
.memory-album-photo{position:relative;width:100%;height:100%;min-width:0;min-height:0;padding:5px;border:0;background:#f8faf9;box-shadow:0 8px 18px rgba(31,51,61,.17);cursor:grab;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .22s ease,box-shadow .22s ease;}
.memory-album-grid.layout-single .orientation-landscape{width:96%;height:72%;}
.memory-album-grid.layout-single .orientation-portrait{width:66%;height:96%;}
.memory-album-grid.layout-single .orientation-square{width:84%;height:84%;}
.memory-album-photo:hover{transform:translateY(-2px);box-shadow:0 14px 25px rgba(31,51,61,.24);}
.memory-album-photo:focus-visible{outline:2px solid #1293c0;outline-offset:3px;}
.memory-album-photo.adjusting{cursor:grabbing;transform:none;box-shadow:0 0 0 2px #1293c0,0 14px 25px rgba(31,51,61,.24);}
.memory-album-photo.adjusting::after{content:"拖动调整构图";position:absolute;left:50%;bottom:14px;translate:-50% 0;padding:6px 10px;border-radius:999px;background:rgba(14,31,40,.78);color:#f4fbff;font-size:10px;white-space:nowrap;pointer-events:none;}
.memory-album-photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%;background:#e4e9e9;pointer-events:none;-webkit-user-drag:none;}
.memory-album-intro{display:contents;color:#536b77;}
.memory-album-intro-label,.memory-album-intro h4,.memory-album-intro p,.memory-album-intro-meta{position:absolute;z-index:1;left:10%;right:10%;}
.memory-album-intro-label{top:17%;color:#985627;font-size:10px;font-weight:700;letter-spacing:.18em;}
.memory-album-intro h4{top:21%;margin:0;color:#183846;font:400 clamp(28px,3vw,42px)/1.2 'Playfair Display','Noto Serif SC','Source Han Serif SC',serif;letter-spacing:.05em;}
.memory-album-intro p{top:33%;bottom:19%;max-width:34em;margin:0;padding-right:8px;overflow:auto;white-space:pre-wrap;scrollbar-width:thin;scrollbar-color:#a9b8bd transparent;color:#365864;font:14px/2 'Microsoft YaHei',sans-serif;}
.memory-album-intro.empty p{color:#60757d;}
.memory-album-intro-meta{bottom:11%;color:#536d77;font-size:10px;font-weight:600;letter-spacing:.1em;}
.memory-album-page-foot{position:relative;z-index:1;height:22px;display:flex;align-items:end;justify-content:space-between;color:#5f7782;font-size:10px;font-weight:600;}
.memory-album-note{max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.memory-album .memory-view-tools{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;justify-content:stretch;}
.memory-album .memory-view-tools .memory-back{justify-self:start;}
.memory-album .memory-view-tools .memory-view-title{text-align:center;}
.memory-album .memory-view-tools .memory-city-detail{justify-self:end;}
.memory-album-side{position:absolute;z-index:16;top:50%;translate:0 -50%;width:44px;height:44px;border:1px solid rgba(70,101,111,.28);border-radius:12px;background:rgba(252,251,246,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#315665;font:700 22px/1 Arial,sans-serif;cursor:pointer;box-shadow:0 8px 22px rgba(55,72,77,.16),inset 0 1px rgba(255,255,255,.95);transition:border-color .24s ease,background-color .24s ease,color .24s ease,transform .24s ease,opacity .24s ease;}
.memory-album-side.prev{left:8px;}
.memory-album-side.next{right:8px;}
.memory-album-side:hover:not(:disabled){border-color:rgba(152,86,39,.5);background:#fffdf8;color:#8a4c23;transform:scale(1.06);}
.memory-album-side:active:not(:disabled){transform:scale(.94);}
.memory-album-side:disabled{opacity:.3;cursor:not-allowed;}
.memory-album-side:focus-visible{outline:2px solid #a66532;outline-offset:3px;}
.memory-album-counter{position:absolute;z-index:16;left:50%;bottom:-34px;translate:-50% 0;min-width:64px;color:#536d77;font-size:15px;font-weight:600;letter-spacing:.14em;text-align:center;pointer-events:none;}
.memory-album-book.turning{pointer-events:none;}
.memory-page-turner{position:absolute!important;top:0!important;bottom:0!important;width:50%!important;height:100%!important;z-index:12;pointer-events:none;transform-style:preserve-3d;background:#f2eee5!important;backface-visibility:visible;-webkit-backface-visibility:visible;will-change:transform;box-shadow:0 18px 30px rgba(76,58,42,.2);isolation:isolate;}
.memory-page-turner::before{content:"";position:absolute;inset:0;z-index:20;pointer-events:none;background:radial-gradient(circle at 16% 12%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),repeating-linear-gradient(0deg,rgba(122,99,74,.05) 0 1px,transparent 1px 5px),linear-gradient(90deg,#d3c7b8,#f5f0e6 12%,#f0eadf 90%,#d5c9ba);background-size:17px 19px,100% 5px,100% 100%;background-blend-mode:multiply,normal,normal;opacity:.96;transform:rotateY(180deg) translateZ(.8px);backface-visibility:hidden;-webkit-backface-visibility:hidden;}
.memory-page-turner.front-forward{left:50%!important;right:auto!important;transform-origin:left center;animation:memoryFoldForward .56s cubic-bezier(.55,.06,.85,.45) both;}
.memory-page-turner.back-forward{left:0!important;right:auto!important;transform-origin:right center;animation:memoryOpenForward .56s cubic-bezier(.14,.58,.28,1) both;}
.memory-page-turner.front-backward{left:0!important;right:auto!important;transform-origin:right center;animation:memoryFoldBackward .56s cubic-bezier(.55,.06,.85,.45) both;}
.memory-page-turner.back-backward{left:50%!important;right:auto!important;transform-origin:left center;animation:memoryOpenBackward .56s cubic-bezier(.14,.58,.28,1) both;}
body.light-theme .memory-shelf-overlay{background:rgba(218,224,224,.82);}
body.light-theme .memory-shelf-dialog{background:radial-gradient(circle at 70% 12%,rgba(255,255,255,.92),transparent 34%),linear-gradient(145deg,#f5f4ee,#e2eaec);border-color:rgba(77,103,111,.2);box-shadow:0 28px 78px rgba(55,72,77,.24),inset 0 1px #fff;color:#263b45;}
body.light-theme .memory-shelf-head{background:rgba(248,247,241,.74);border-color:rgba(69,96,105,.14);}
.light-theme .memory-shelf-head h2,.light-theme .memory-info-name,.light-theme .memory-empty strong,.light-theme .memory-view-title h3{color:#183846;}
.light-theme .memory-shelf-head p,.light-theme .memory-info-note{color:#526b75;}
.light-theme .memory-shelf-kicker,.light-theme .memory-info-count,.light-theme .memory-view-title span{color:#985627;}
body.light-theme .memory-shelf-grid,body.light-theme .memory-shelf-close{background:rgba(252,251,246,.84);border-color:rgba(70,101,111,.24);color:#395965;}
.light-theme .memory-province-info{background:linear-gradient(90deg,rgba(250,248,241,.9),rgba(250,248,241,.22));border-color:rgba(69,96,105,.13);}
.light-theme .memory-info-stats{color:#4e6974;}
.light-theme .memory-info-stats b{color:#183846;}
.light-theme .memory-info-cities{color:#365864;}
.light-theme .memory-info-date{border-color:rgba(69,96,105,.18);color:#985627;}
.light-theme .memory-info-date strong{color:#294b58;}
.light-theme .memory-shelf-floor{background:radial-gradient(ellipse,rgba(92,100,97,.24),rgba(92,100,97,.07) 50%,transparent 72%);}
.light-theme .memory-shelf-hint{color:#536d77;}
.light-theme .memory-empty{color:#60798b;}
body.light-theme .memory-empty button,body.light-theme .memory-back,body.light-theme .memory-city-detail{background:#fff;border-color:rgba(2,132,199,.26);color:#176f94;}
.light-theme .memory-album-nav button{background:#fff;border-color:rgba(2,132,199,.24);color:#176f94;}
.light-theme .memory-album-nav span{color:#5d7788;}
.memory-shelf-scene{grid-template-columns:290px minmax(0,1fr)}
.memory-province-info{padding-inline:24px}
.memory-info-heading{gap:10px}
.memory-info-name{font-size:46px}
.memory-info-name.long{font-size:32px}
.memory-info-name.extra-long{font-size:24px}
.memory-info-stats{gap:16px;font-size:14px}
.memory-info-stats b{font-size:24px}
.memory-info-cities{font-size:15px}
.memory-book{width:265px;height:417px;bottom:96px}
.memory-book-cover{padding:25px 18px 21px 31px}
.memory-book-title{font-size:31px}
.memory-book-title.long{font-size:24px}
.memory-book-title.extra-long{font-size:18px}
.memory-book-photo{min-height:0;height:auto;margin:21px -18px -21px -31px}
.memory-book-meta{left:31px;right:18px;bottom:17px;font-size:11px}
.memory-chapter-page{padding:34px}
.memory-chapter-cover{margin:-34px -34px 26px}
.memory-album-book{width:94vw}
.memory-album-page{padding:24px}
.memory-shelf-overlay{padding:8px}
.memory-shelf-dialog{height:calc(100dvh - 16px);border-radius:14px}
.memory-shelf-head{min-height:84px;padding:16px 104px 14px 16px}
.memory-shelf-kicker{font-size:11px}
.memory-shelf-head h2{font-size:25px}
.memory-shelf-head p{display:none}
.memory-shelf-grid{right:57px;top:20px;width:36px;padding:0;font-size:0}
.memory-shelf-grid::after{content:"览";font-size:13px}
.memory-shelf-close{right:12px;top:20px}
.memory-shelf-scene{display:block}
.memory-province-info{height:200px;padding:20px;border-right:0;border-bottom:1px solid rgba(125,211,252,.1);justify-content:start}
.memory-info-count{font-size:13px}
.memory-info-name{font-size:40px;margin:7px 0 10px}
.memory-info-name.extra-long{font-size:22px}
.memory-info-stats{margin:0;font-size:14px}
.memory-info-stats b{font-size:23px}
.memory-info-cities,.memory-info-date,.memory-info-review-block,.memory-info-note{display:none}
.memory-shelf-viewport{height:calc(100% - 200px);perspective-origin:40% 46%}
.memory-book{width:196px;height:309px;bottom:68px}
.memory-book-cover{padding:20px 14px 16px 24px}
.memory-book-title{font-size:24px;margin-top:14px}
.memory-book-title.long{font-size:18px}
.memory-book-title.extra-long{font-size:14px}
.memory-book-subtitle{display:none}
.memory-book-photo{min-height:0;height:auto;margin:16px -14px -16px -24px}
.memory-book-meta{left:24px;right:14px;bottom:12px;font-size:10px}
.memory-book-open{display:none}
.memory-book-spine-copy b{font-size:12px}
.memory-shelf-viewport::before{bottom:49px}
.memory-shelf-floor{bottom:43px}
.memory-shelf-hint{bottom:10px;font-size:11px}
.memory-shelf-more{left:calc(100% - 30px);width:28px;min-width:28px;height:36px;font-size:18px}
.memory-chapters,.memory-album{padding:18px 12px}
.memory-view-tools{margin-bottom:12px}
.memory-view-title h3{font-size:19px}
.memory-chapter-book{display:block;overflow:auto}
.memory-chapter-page.left,.memory-chapter-page.right{min-height:420px;border-radius:10px}
.memory-chapter-page.left{display:none}
.memory-chapter-page.right{padding:28px 18px}
.memory-chapter-list{padding-left:5px}
.memory-album-stage{display:block;overflow:auto}
.memory-album-book{width:100%;height:auto;display:block;transform:none}
.memory-album-page{min-height:430px;border-radius:10px!important;margin-bottom:10px}
.memory-album-grid{height:330px}
.memory-city-detail{display:none}
.light-theme .memory-album-side{background:rgba(255,255,255,.92);border-color:rgba(2,132,199,.24);color:#176f94;}
.light-theme .memory-album-side:hover:not(:disabled){border-color:rgba(2,132,199,.5);background:#fff;color:#0c5a7d;}
.light-theme .memory-album-counter{color:#5d7788;}
.memory-book-spine-copy b{font-size:15px}
.memory-album-frame{display:grid;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:auto minmax(0,1fr) auto;gap:10px}
.memory-album-stage{grid-row:1;grid-column:1/-1;overflow:auto}
.memory-album-side{position:static;translate:none;width:42px;height:42px;font-size:20px}
.memory-album-side.prev{grid-row:2;grid-column:1;justify-self:start}
.memory-album-counter{position:static;translate:none;grid-row:2;grid-column:2;min-width:0}
.memory-album-side.next{grid-row:2;grid-column:3;justify-self:end}
.memory-album-intro-label,.memory-album-intro h4,.memory-album-intro p,.memory-album-intro-meta{left:24px;right:24px}
.memory-album-intro-label{top:82px}
.memory-album-intro h4{top:108px;font-size:30px}
.memory-album-intro p{top:166px;bottom:72px;font-size:13px;line-height:1.85}
.memory-album-intro-meta{bottom:40px}
.memory-info-heading{margin:7px 0 10px}
.memory-info-heading .memory-info-name{font-size:40px}
.memory-info-heading .memory-info-name.long{font-size:32px}
.memory-info-heading .memory-info-name.extra-long{font-size:22px}
.memory-province-edit{min-height:36px;margin-top:2px;padding:6px 10px;font-size:13px}
.memory-province-editor{padding:8px}
.memory-province-editor-panel{max-height:calc(100dvh - 32px);border-radius:12px}
.memory-province-editor-head{padding:18px 62px 16px 18px}
.memory-province-editor-head h2{font-size:21px}
.memory-province-editor-close{right:14px;top:16px}
.memory-province-editor-body{display:block;padding:18px}
.memory-province-cover-preview{width:min(260px,100%);margin:auto}
.memory-province-editor-form{margin-top:25px}
.memory-province-summary{gap:8px}
.memory-province-editor-actions{position:sticky;bottom:-18px;padding:12px 0 18px;background:#f8f6ef}
.memory-shelf-overlay.show,.memory-chapter-book,.memory-page-turner,.memory-shelf-viewport.switching .memory-book.active .memory-book-object,.memory-book.opening .memory-book-cover,.memory-book.opening .memory-book-cover-inside{animation:none}
.memory-book,.memory-book-object,.memory-book-cover,.memory-book-cover-inside,.memory-province-info,.memory-album-photo,.memory-shelf-more{transition:none}
.memory-album-book{transform:none}
/* 城市相册：收紧为摄影书式阅读布局，保留原有翻页与照片交互 */
  .memory-album{--album-paper:#f3eee4;--album-ink:#183743;--album-muted:#687b80;--album-accent:#a35b38;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.86),transparent 48%),#e8edef;padding:24px 34px 72px;}
.memory-album .memory-view-tools{min-height:48px;margin-bottom:18px;}
.memory-album .memory-view-title span{color:var(--album-accent);font-size:10px;letter-spacing:.18em;}
.memory-album .memory-view-title h3{margin-top:3px;color:var(--album-ink);font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;font-weight:600;letter-spacing:.05em;}
.memory-album .memory-back,.memory-album .memory-city-detail{border-color:rgba(24,55,67,.2);background:rgba(255,255,255,.46);color:var(--album-ink);box-shadow:none;}
.memory-album .memory-back:hover,.memory-album .memory-city-detail:hover{border-color:var(--album-accent);background:#fffaf2;color:var(--album-accent);}
.memory-album-frame{max-width:1220px;width:100%;margin:0 auto;}
.memory-album-stage{perspective:none;}
.memory-album-book{width:min(1120px,100%);height:min(650px,calc(100vh - 240px));min-height:480px;transform:none;filter:drop-shadow(0 24px 36px rgba(44,61,64,.2));}
.memory-album-page{padding:34px 38px;background:var(--album-paper);box-shadow:inset 0 0 0 1px rgba(111,83,56,.12),inset 0 -16px 24px rgba(113,83,51,.06);}
.memory-album-page.left{border-radius:14px 2px 2px 14px;background:linear-gradient(90deg,#e2d9ca,#f8f3e9 8%,var(--album-paper) 94%,#d8cdbd);box-shadow:inset -18px 0 25px rgba(76,58,42,.12);}
.memory-album-page.right{border-radius:2px 14px 14px 2px;background:linear-gradient(90deg,#d8cdbd,var(--album-paper) 8%,#f1eadf);box-shadow:inset 18px 0 25px rgba(76,58,42,.1);}
.memory-album-page::after{opacity:.045;}
.memory-album-page-head{color:var(--album-muted);font-size:9px;letter-spacing:.16em;}
.memory-album-page-head strong{color:var(--album-ink);font-size:12px;}
.memory-album-grid{gap:16px;}
.memory-album-photo{padding:6px;border:1px solid rgba(87,73,56,.16);background:#fffdf8;box-shadow:0 10px 22px rgba(57,61,58,.16);border-radius:2px;}
.memory-album-photo:hover{box-shadow:0 15px 28px rgba(57,61,58,.22);}
.memory-album-photo:focus-visible{outline-color:var(--album-accent);}
.memory-album-photo.adjusting{box-shadow:0 0 0 2px var(--album-accent),0 15px 28px rgba(57,61,58,.22);}
.memory-album-photo.adjusting::after{background:rgba(24,55,67,.82);}
.memory-album-editorial{color:var(--album-muted);}
.memory-album-editorial::before{background:var(--album-accent);}
.memory-album-editorial strong{color:var(--album-ink);font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;}
.memory-album-editorial p{color:#617276;}
.memory-album-intro-label{color:var(--album-accent);}
.memory-album-intro h4{color:var(--album-ink);font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;}
.memory-album-intro p{color:#455e65;}
.memory-album-page-foot{color:var(--album-muted);}
.memory-album-side{border-color:rgba(24,55,67,.2);background:rgba(255,252,246,.88);color:var(--album-ink);box-shadow:0 8px 18px rgba(55,72,77,.12);}
.memory-album-side:hover:not(:disabled){border-color:var(--album-accent);background:#fffaf2;color:var(--album-accent);}
.memory-album-counter{bottom:-54px;color:var(--album-ink);font-variant-numeric:tabular-nums;letter-spacing:.18em;}
.memory-album{padding:18px 12px 28px}
.memory-album .memory-view-tools{margin-bottom:12px}
.memory-album-book{min-height:0;height:auto;filter:none}
.memory-album-page{min-height:430px;padding:28px 22px;border-radius:10px!important}
.memory-album-grid{gap:12px}
.memory-album-counter{letter-spacing:.12em}
/* 章节页与书架：减少信息竞争，保留原有选书与城市入口 */
  .memory-chapters{background:radial-gradient(circle at 58% 18%,rgba(255,255,255,.8),transparent 44%),#edf1f1;padding:24px 34px 34px;}
.memory-chapters .memory-view-tools{width:100%;min-height:48px;margin:0 0 14px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;}
.memory-chapters .memory-view-tools .memory-back{justify-self:start;}
.memory-chapters .memory-view-title{justify-self:center;text-align:center;}
.memory-chapters .memory-view-title h3{font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;font-weight:600;letter-spacing:.04em;}
.memory-chapter-book{width:min(1120px,100%);margin:0 auto;gap:0;filter:drop-shadow(0 22px 34px rgba(44,61,64,.18));}
.memory-chapter-page{padding:32px 40px;}
.memory-chapter-cover{height:38%;margin:-32px -40px 26px;background-position:center;}
.memory-chapter-page h4{margin:10px 0 8px;font-family:'Noto Serif SC','Source Han Serif SC','Songti SC',serif;font-weight:500;letter-spacing:.04em;}
.memory-chapter-page p{max-width:28em;line-height:1.7;}
.memory-chapter-totals{gap:28px;margin-top:22px;}
.memory-chapter-list{padding:8px 4px 8px 12px;}
.memory-chapter-entry{padding:17px 8px;grid-template-columns:34px 1fr auto;gap:12px;background:transparent;}
.memory-chapter-entry:hover{background:rgba(255,255,255,.46);color:#8b4d2a;}
.memory-chapter-no{font-size:14px;color:#9a806e;}
.memory-chapter-copy b{font-size:16px;color:#244654;}
.memory-chapter-copy span,.memory-chapter-photos{color:#7b8b8d;font-size:11px;}
.memory-shelf-scene{grid-template-columns:minmax(285px,320px) minmax(0,1fr);}
.memory-province-info{padding:42px 28px 28px;}
.memory-info-heading{gap:12px;margin:12px 0 18px;}
.memory-info-name{font-size:clamp(42px,4.4vw,62px);}
.memory-info-stats{gap:20px;margin-bottom:20px;font-size:14px;}
.memory-info-stats b{font-size:25px;}
.memory-info-cities{max-width:24ch;margin-bottom:22px;font-size:14px;gap:5px 14px;}
.memory-info-date{padding-top:15px;font-size:12px;}
.memory-info-date strong{font-size:15px;}
.memory-info-review-block{margin-top:14px;padding:12px 14px;}
.memory-info-review{font-size:13px;line-height:1.6;}
.memory-info-note{max-width:25ch;font-size:12px;line-height:1.65;}
.memory-shelf-hint{bottom:17px;font-size:11px;opacity:.72;}
.memory-chapters{padding:18px 12px}
.memory-chapters .memory-view-tools{grid-template-columns:auto minmax(0,1fr);gap:10px;margin-bottom:12px}
.memory-chapters .memory-view-title{justify-self:end;text-align:right}
.memory-chapter-book{width:100%;filter:none}
.memory-chapter-page{padding:28px 18px}
.memory-chapter-cover{margin:-28px -18px 24px;height:34%}
.memory-shelf-scene{grid-template-columns:1fr}
.memory-province-info{padding:20px}
.memory-info-name{font-size:40px}
.memory-album-stage{transform:translateY(-18px)}
.memory-album-side.prev{left:-48px}
.memory-album-side.next{right:-48px}
.memory-chapters .memory-chapter-book{position:relative;left:0}
.memory-province-info{height:260px;overflow-y:auto;}
.memory-shelf-viewport{height:calc(100% - 260px);}
.memory-info-heading{flex-shrink:0;}
.memory-province-edit{margin-top:0;}
/* 翻页：保留现有双页结构，增加摄影书式纸张弯折与书脊光影 */
  .memory-album-stage{perspective:1600px;perspective-origin:50% 48%;}
.memory-album-book{transform-style:preserve-3d;}
.memory-page-turner{background:linear-gradient(90deg,#d8cdbd 0%,#f3eee4 8%,#f8f3e9 92%,#e2d9ca 100%)!important;box-shadow:0 12px 24px rgba(76,58,42,.16),inset 0 0 0 1px rgba(111,83,56,.12);}
.memory-page-turner::after{content:"";position:absolute;inset:0;z-index:19;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.38) 38%,rgba(104,78,52,.2) 52%,transparent 70%);opacity:.62;mix-blend-mode:multiply;}
.memory-page-turner.front-forward{animation:memoryPhotobookFoldForward .54s cubic-bezier(.36,0,.72,.72) both;}
.memory-page-turner.back-forward{animation:memoryPhotobookOpenForward .54s cubic-bezier(.28,.28,.64,1) both;}
.memory-page-turner.front-backward{animation:memoryPhotobookFoldBackward .54s cubic-bezier(.36,0,.72,.72) both;}
.memory-page-turner.back-backward{animation:memoryPhotobookOpenBackward .54s cubic-bezier(.28,.28,.64,1) both;}
@keyframes memoryBookExtract {0%{transform:translate3d(0,0,0)}42%{transform:translate3d(0,-8px,24px)}100%{transform:translate3d(0,0,0)}}
@keyframes memoryShelfCoverOpen {0%{transform:translateZ(20px) rotateY(0deg)}100%{transform:translateZ(20px) rotateY(-108deg)}}
@keyframes memoryShelfCoverInsideOpen {0%{transform:translateZ(19px) rotateY(180deg)}100%{transform:translateZ(19px) rotateY(72deg)}}
@keyframes memoryOverlayIn {from{opacity:0}to{opacity:1}}
@keyframes memoryBookOpen {from{opacity:0;transform:translateY(32px) rotateX(12deg) scale(.9)}to{opacity:1;transform:none}}
@keyframes memoryFoldForward {from{transform:rotateY(0deg)}to{transform:rotateY(-89.5deg)}}
@keyframes memoryOpenForward {from{transform:rotateY(89.5deg)}to{transform:rotateY(0deg)}}
@keyframes memoryFoldBackward {from{transform:rotateY(0deg)}to{transform:rotateY(89.5deg)}}
@keyframes memoryOpenBackward {from{transform:rotateY(-89.5deg)}to{transform:rotateY(0deg)}}
@keyframes memoryPhotobookFoldForward {0%{transform:rotateY(0deg) translateZ(0)}48%{transform:rotateY(-64deg) translateZ(9px)}100%{transform:rotateY(-89.5deg) translateZ(1px)}}
@keyframes memoryPhotobookOpenForward {0%{transform:rotateY(89.5deg) translateZ(1px)}52%{transform:rotateY(55deg) translateZ(8px)}100%{transform:rotateY(0deg) translateZ(0)}}
@keyframes memoryPhotobookFoldBackward {0%{transform:rotateY(0deg) translateZ(0)}48%{transform:rotateY(64deg) translateZ(9px)}100%{transform:rotateY(89.5deg) translateZ(1px)}}
@keyframes memoryPhotobookOpenBackward {0%{transform:rotateY(-89.5deg) translateZ(1px)}52%{transform:rotateY(-55deg) translateZ(8px)}100%{transform:rotateY(0deg) translateZ(0)}}
@media(max-width:1060px){
@media(max-width:760px){
@media(prefers-reduced-motion:reduce){
@media(min-width:761px){
