/* A single strand of light, with no visible stops. Photos stay in the foreground. */
/* Clip sideways decoration without creating a body scroll container that traps sticky. */
body {overflow-x:clip;}
#memories.memory-journey {display:block;position:relative;padding:0;height:660svh;min-height:0;}
.memory-sticky {position:sticky;top:0;height:100svh;min-height:600px;padding:76px 24px 22px;
  display:flex;align-items:center;}
.memory-inner {width:100%;max-width:900px;margin:auto;}
.memory-heading .kicker {margin-bottom:13px;background:rgba(240,249,255,.45);border:1px solid #ffffffb3;color:#628499;}
.memory-heading .h2 {font-family:'Songti SC','SimSun',serif;font-weight:400;letter-spacing:.07em;
  font-size:clamp(27px,3.4vw,42px);color:#3e647b;margin-bottom:12px;}
.memory-intro {margin:0 0 12px;color:#6a8798;font-size:13px;line-height:1.85;letter-spacing:.08em;}
.memory-stage {position:relative;height:clamp(330px,calc(100svh - 300px),620px);width:100%;
  --memory-y:34px;--memory-progress:0;--photo-y:10px;isolation:isolate;}
.memory-rail {position:absolute;left:0;top:0;bottom:0;width:64px;cursor:ns-resize;
  pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none;outline-offset:0;border-radius:32px;}
.memory-rail:focus-visible {outline:1px solid #74a9c4;background:#eefaff24;}
.memory-rail-label {position:absolute;left:0;width:64px;text-align:center;
  font-family:'Songti SC','SimSun',serif;font-size:10px;letter-spacing:.25em;color:#7c9bae;}
.memory-rail-start {top:0;}.memory-rail-end {bottom:0;}
.memory-thread {position:absolute;top:34px;bottom:34px;left:31px;width:2px;overflow:hidden;border-radius:100px;
  background:linear-gradient(#fff7,#ffffffb3,#b8dbef73);
  box-shadow:0 0 0 1px #fff3,0 0 15px 2px #c2eaff8c,inset 0 0 2px #fff;}
.memory-thread-lit {position:absolute;inset:0;background:linear-gradient(#e7f6ff,#83c7f1,#fff3c9);
  transform-origin:top;transform:scaleY(var(--memory-progress));box-shadow:0 0 8px #c1e8ff;}
.memory-orb {position:absolute;top:var(--memory-y);left:32px;width:22px;height:22px;
  transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 32% 26%,#fff 5%,#e6faff 32%,#a8d8f2 68%,#ffffffb3 85%);
  border:1px solid #fff;box-shadow:0 0 0 6px #ffffff26,0 0 24px 7px #ddf6ffad,0 2px 7px #659bb333;
  transition:box-shadow .3s;}
.memory-orb span {position:absolute;inset:-12px;border:1px solid #ffffffe0;border-radius:50%;opacity:.4;animation:memory-breathe 3s ease-in-out infinite;}
.is-scrubbing .memory-orb {box-shadow:0 0 0 9px #ffffff45,0 0 32px 10px #eafaff,0 3px 8px #659bb333;}
.memory-connection {position:absolute;left:43px;right:calc(100% - 93px);height:1px;top:var(--memory-y);
  background:linear-gradient(90deg,#f9fdff,#fff8,#fffc);opacity:.75;}
.memory-photo-stack {position:absolute;left:86px;right:0;top:var(--photo-y);height:79%;
  max-height:490px;border-radius:27px;transition:top .16s ease-out,height .45s cubic-bezier(.16,1,.3,1);}
.memory-slide {position:absolute;inset:0;margin:0;padding:8px;border:1px solid #ffffffe6;border-radius:inherit;
  background:linear-gradient(140deg,#ffffff99,#f0f9ff66 48%,#ffffffa6);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 18px 40px #5c93b01c,inset 0 1px 0 #fff;opacity:0;transform:translateY(12px) scale(.985);
  transition:opacity .42s ease,transform .65s cubic-bezier(.16,1,.3,1);overflow:hidden;pointer-events:none;}
.memory-slide.is-current {opacity:1;transform:none;z-index:1;pointer-events:auto;cursor:zoom-in;}
.memory-slide:focus-visible {outline:2px solid #fff;outline-offset:3px;}
.memory-slide img {display:block;width:100%;height:100%;object-fit:contain;border-radius:20px;}
.memory-photo-glint {position:absolute;inset:0;z-index:2;border-radius:inherit;pointer-events:none;
  box-shadow:inset 0 0 0 1px #fff9;}
#memory-sparkles {position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;}
.memory-loading {position:absolute;left:86px;right:0;top:45%;margin:0;text-align:center;
  font-size:12px;letter-spacing:.1em;color:#69899d;}
.memory-loading[hidden] {display:none;}
.memory-foot {margin-top:12px;padding-left:86px;}
.memory-caption {display:flex;align-items:center;gap:12px;margin:0;font-size:11px;color:#648498;letter-spacing:.055em;}
#memory-caption {max-width:70%;line-height:1.7;}
.memory-caption-rule {flex:1;min-width:4px;height:1px;background:#ffffff80;}
.memory-count {flex:none;font-size:10px;letter-spacing:0;white-space:nowrap;}
.memory-count b {font-size:17px;font-weight:400;color:#48718b;}.memory-count span {opacity:.65;}
.memory-instruction {margin:12px 0 0;font-size:10px;letter-spacing:.04em;color:#7192a5;line-height:1.6;}
.memory-instruction>span {display:inline-block;margin-right:3px;color:#5d94b1;}
.memory-sr {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.memory-preview {position:fixed;inset:0;z-index:520;display:grid;place-items:center;padding:42px 16px 50px;
  background:rgba(17,39,57,.82);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  overscroll-behavior:contain;}
.memory-preview[hidden] {display:none;}
.memory-preview img {display:block;max-width:min(calc(100vw - 40px),1100px);max-height:calc(100svh - 110px);width:auto;height:auto;
  object-fit:contain;border-radius:14px;box-shadow:0 24px 100px #05182570,0 0 0 1px #fff9;}
.memory-preview-close {position:absolute;top:calc(12px + env(safe-area-inset-top));right:calc(14px + env(safe-area-inset-right));
  display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffffa6;border-radius:50%;
  background:#f2faff30;backdrop-filter:blur(12px);color:#fff;font-size:28px;line-height:1;cursor:pointer;}
.memory-preview-close:focus-visible {outline:2px solid #fff;outline-offset:3px;}
.memory-preview-count {position:absolute;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);
  color:#e6f7ff;font-size:11px;letter-spacing:.24em;white-space:nowrap;}
@keyframes memory-breathe {50%{transform:scale(1.15);opacity:.15;}}
@media(min-width:768px){.memory-sticky{padding:90px 56px 30px;}.memory-intro br{display:none;}
  .memory-photo-stack{left:120px;right:20px;padding:0;}.memory-foot{padding-left:120px;}
  .memory-connection{right:calc(100% - 128px);}.memory-stage{max-width:800px;}
  .memory-slide{padding:12px;}.memory-slide img{border-radius:18px;}.memory-heading .h2{font-size:38px;}}
@media(max-width:360px){.memory-sticky{padding-left:16px;padding-right:16px;}.memory-photo-stack{left:71px;border-radius:23px;}
  .memory-foot{padding-left:71px;}.memory-connection{right:calc(100% - 79px);}.memory-caption{gap:7px;font-size:10px;}
  .memory-instruction{font-size:9px;}.memory-stage{height:clamp(300px,calc(100svh - 300px),620px);}}
@media(prefers-reduced-motion:reduce){.memory-slide,.memory-photo-stack{transition:none;transform:none;}.memory-orb span{animation:none;}}
