.border-glow-card{--border-radius: 28px;position:relative;display:block;width:100%;height:100%;border-radius:var(--border-radius);filter:drop-shadow(0 18px 44px rgba(116,83,76,.08))}.border-glow-card:before{content:"";position:absolute;inset:0;z-index:2;border:1px solid rgba(255,255,255,.56);border-radius:inherit;box-shadow:inset 0 1px #ffffff6b,0 0 24px #ffffff1f;pointer-events:none}.border-glow-inner{position:relative;z-index:1;display:block;width:100%;height:100%;border-radius:inherit}.border-glow-inner>*{border-radius:inherit}.memory-card-glow,.hero-panel-glow,.hero-copy-glow,.timeline-intro-glow,.detail-hero-glow,.detail-memory-glow,.detail-cover-glow,.gallery-item-glow{width:100%}.hero-copy-glow,.hero-panel-glow{height:100%}.memory-card-glow,.gallery-item-glow{transition:transform .18s ease}.memory-card-glow:hover,.memory-card-glow:focus-within,.gallery-item-glow:hover,.gallery-item-glow:focus-within{transform:translateY(-3px)}.memory-card-glow:hover .memory-card,.memory-card-glow:focus-within .memory-card,.gallery-item-glow:hover .gallery-item,.gallery-item-glow:focus-within .gallery-item{box-shadow:var(--glass-shadow);border-color:#ffffffd1}:root{--bg-main: #f4ebdf;--bg-soft: rgba(255, 252, 247, .78);--paper: rgba(255, 255, 255, .38);--paper-strong: rgba(255, 255, 255, .56);--line: rgba(255, 255, 255, .42);--ink: #45322f;--ink-soft: #725c54;--accent: #be7f70;--accent-deep: #995d4d;--shadow-soft: 0 28px 70px rgba(92, 80, 88, .14);--shadow-strong: 0 42px 120px rgba(68, 55, 64, .18);--glass-surface: rgba(255, 255, 255, .18);--glass-surface-strong: rgba(255, 253, 251, .34);--glass-edge: rgba(255, 255, 255, .76);--glass-edge-soft: rgba(247, 227, 220, .5);--glass-shadow: 0 28px 82px rgba(116, 83, 76, .12);--glass-blur: 24px;--radius-xl: 36px;--radius-lg: 28px;--radius-sm: 999px;--shell-width: min(100% - 64px, 1700px);--serif: "STKaiti", "KaiTi", "Noto Serif SC", "Source Han Serif SC", serif;--body: "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;color:var(--ink);font-family:var(--body);background:radial-gradient(circle at 12% 10%,rgba(255,255,255,.94),transparent 26%),radial-gradient(circle at 82% 14%,rgba(255,228,240,.28),transparent 20%),radial-gradient(circle at 76% 42%,rgba(210,232,255,.2),transparent 22%),linear-gradient(180deg,#fbf4eb,#f1e7dd 52%,#e9e0d7)}a,button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}img{display:block;width:100%}#root{min-height:100vh}.shell{width:var(--shell-width);margin:0 auto;position:relative;z-index:1}.paper-grain{position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(rgba(120,84,68,.08) .9px,transparent .9px),radial-gradient(rgba(255,255,255,.22) .9px,transparent .9px);background-size:18px 18px;background-position:0 0,10px 10px}.eyebrow{margin:0 0 12px;letter-spacing:.22em;text-transform:uppercase;font-size:12px;color:var(--accent-deep)}.card{position:relative;isolation:isolate;background:linear-gradient(180deg,#ffffff7a,#fff8f433),var(--glass-surface);border:1px solid var(--glass-edge);border-radius:var(--radius-xl);box-shadow:inset 0 1px #ffffffc7,inset 0 -1px 0 var(--glass-edge-soft),var(--glass-shadow);backdrop-filter:blur(var(--glass-blur)) saturate(132%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(132%)}.glass-panel{position:relative;isolation:isolate;background:linear-gradient(135deg,#ffffff70,#fff7f329),var(--glass-surface);border:1px solid var(--glass-edge);box-shadow:inset 0 1px #ffffffc7,inset 0 -1px 0 var(--glass-edge-soft),inset 0 0 0 1px #fff7f329,var(--glass-shadow);backdrop-filter:blur(26px) saturate(135%);-webkit-backdrop-filter:blur(26px) saturate(135%)}.glass-subpanel{position:relative;isolation:isolate;background:linear-gradient(180deg,#ffffff6b,#fff7f32e),#ffffff24;border:1px solid var(--glass-edge-soft);box-shadow:inset 0 1px #ffffffad,inset 0 -1px #f7e3dc61,0 20px 52px #74534c14;backdrop-filter:blur(20px) saturate(128%);-webkit-backdrop-filter:blur(20px) saturate(128%)}@supports not (backdrop-filter: blur(1px)){.card,.glass-panel,.glass-subpanel,.music-toggle{background:#fff8f4d1}}.card-polaroid{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffffc7,#fff7f36b),var(--glass-surface-strong)}.tape{position:absolute;top:-12px;width:104px;height:30px;border-radius:8px;background:linear-gradient(180deg,#ffe8caeb,#e8c5a3a8);opacity:.78}.tape-left{left:42px;transform:rotate(-8deg)}.tape-right{right:42px;transform:rotate(10deg)}.tag-list{display:flex;flex-wrap:wrap;gap:10px}.tag-pill{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid rgba(190,127,112,.18);background:#ffffff57;color:var(--accent-deep);font-size:14px}.page-home{padding:44px 0 96px}.entrance-shell{position:relative;isolation:isolate;min-height:100vh;display:grid;place-items:center;padding:36px 20px;overflow:hidden;background:radial-gradient(circle at top left,rgba(255,255,255,.7),transparent 28%),radial-gradient(circle at 84% 14%,rgba(255,223,213,.36),transparent 22%),linear-gradient(180deg,#f7efe6,#efe4da,#ebe0d5)}.entrance-shell:before,.entrance-shell:after{content:"";position:absolute;inset:auto;border-radius:50%;pointer-events:none;filter:blur(18px);z-index:0}.entrance-shell:before{top:8%;left:-120px;width:280px;height:280px;background:#ffefe6a3}.entrance-shell:after{right:-80px;bottom:9%;width:260px;height:260px;background:#f4ded37a}.entrance-wall-layer{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.entrance-wall{height:100%;padding:14px;--entrance-wall-gap: 10px;display:grid;grid-template-columns:repeat(var(--entrance-columns),minmax(0,1fr));column-gap:10px;align-content:start;align-items:start;overflow:hidden}.entrance-wall-column{align-self:start;height:100%;overflow:hidden;display:flex;flex-direction:column}.entrance-wall-track{display:flex;flex-direction:column;gap:var(--entrance-wall-gap);will-change:transform}.entrance-wall-copy{display:flex;flex-direction:column;gap:var(--entrance-wall-gap);flex:0 0 auto}.entrance-wall-tile{margin:0;position:relative;overflow:hidden;border-radius:30px;background:#eee1d6ad;box-shadow:inset 0 1px #ffffffb8,0 20px 48px #745a4d1f;opacity:.92}.entrance-wall-tile:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff0f,#72584c1f),linear-gradient(180deg,#f8f0e938,#f8f0e90f)}.entrance-wall-tile img{height:100%;object-fit:cover;filter:saturate(.9) brightness(.94);transform:scale(1.02)}.entrance-wall-tile.is-portrait{aspect-ratio:.76}.entrance-wall-tile.is-landscape{aspect-ratio:1.32}.entrance-wall-tile.is-square{aspect-ratio:1}.entrance-wall-wash{position:absolute;inset:0;background:radial-gradient(circle at 20% 16%,rgba(255,255,255,.44),transparent 24%),radial-gradient(circle at 82% 12%,rgba(255,233,222,.28),transparent 22%),linear-gradient(180deg,#f8f0ea47,#e9dfd680)}.entrance-content{position:fixed;inset:0;z-index:1;width:100%;margin:0;display:grid;place-items:center;pointer-events:none}.entrance-glow{width:min(100%,920px);height:auto;justify-self:center;pointer-events:auto}.entrance-glow .border-glow-inner{height:auto}.entrance-card{position:relative;overflow:hidden;min-height:430px;padding:56px 58px 46px;border-radius:40px;display:grid;align-content:center;gap:18px;text-align:center;justify-items:center;background:linear-gradient(180deg,#fffcf8c2,#fff4ed94),#fffbf747;border:1px solid rgba(255,255,255,.8);box-shadow:inset 0 1px #ffffffe0,inset 0 -1px #f4dfd67a,0 38px 86px #6e544829;backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);animation:gate-appear .9s ease both}.entrance-card:before{content:"";position:absolute;inset:auto auto -120px -80px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(255,218,207,.42),transparent 74%);pointer-events:none}.entrance-card:after{content:"";position:absolute;inset:28px 34px auto auto;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(255,246,239,.54),transparent 72%);pointer-events:none}.entrance-card h1{width:fit-content;max-width:100%;margin:0;font-family:var(--serif);font-size:clamp(2.7rem,3.6vw,4rem);font-weight:600;line-height:1.12;white-space:nowrap;text-align:center}.entrance-copy{width:100%;max-width:32rem;margin:0;color:var(--ink-soft);font-size:1.02rem;line-height:1.9;text-align:center}.entrance-note-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.entrance-note-list:empty{display:none}.entrance-note-list span{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:var(--radius-sm);background:#ffffff57;border:1px solid rgba(255,255,255,.58);color:var(--accent-deep);box-shadow:inset 0 1px #ffffffa3}.entrance-button{justify-self:center;display:grid;gap:6px;min-width:min(100%,360px);padding:16px 24px;border-radius:28px;background:linear-gradient(180deg,#fffcf9f0,#ffefe6ad),#ffffff47;border:1px solid rgba(255,255,255,.9);color:var(--accent-deep);box-shadow:inset 0 1px #ffffffeb,0 24px 60px #74534c29;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.entrance-button:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fffffff0,0 30px 72px #74534c2e}.entrance-button-title{font-family:var(--serif);font-size:1.7rem;font-weight:600}.entrance-button-subtitle{font-size:.95rem;color:var(--ink-soft)}.music-player{position:fixed;right:28px;bottom:28px;z-index:10}.music-toggle{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px 0 12px;border:1px solid var(--glass-edge);border-radius:var(--radius-sm);background:linear-gradient(180deg,#ffffff8a,#fff6f13d),#fff3;color:var(--accent-deep);box-shadow:inset 0 1px #ffffffb8,0 22px 58px #74534c24;backdrop-filter:blur(18px) saturate(128%);-webkit-backdrop-filter:blur(18px) saturate(128%)}.music-toggle.is-playing{background:linear-gradient(180deg,#fffaf7b3,#ffece457),#fff4ed47}.music-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-deep);color:#fff9f3;font-size:12px;line-height:1}.hero{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.9fr);gap:32px;align-items:stretch}.hero-copy-block,.hero-panel{height:100%;min-height:460px}.hero-panel-glow,.timeline-intro-glow,.detail-hero-glow,.detail-memory-glow{width:100%}.hero-copy-block{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:58px 58px 56px;border-radius:var(--radius-xl);background:#f3f8f547;border:1px solid rgba(245,250,247,.36);box-shadow:0 24px 62px #45524924;backdrop-filter:blur(8px) saturate(108%);-webkit-backdrop-filter:blur(8px) saturate(108%)}.hero-copy-block:before,.hero-copy-block:after{content:"";position:absolute;pointer-events:none}.hero-copy-block:before{inset:-24px;z-index:0;background:url(../images/shared/hero-lake-bg.jpg) center 55% / cover no-repeat;filter:blur(7px) saturate(76%) brightness(1.1);opacity:.82;transform:scale(1.06)}.hero-copy-block:after{inset:0;z-index:0;background:#f7f9f538}.hero-copy-block>*{position:relative;z-index:1}.hero-copy-glow:before{border-color:#f5faf747;box-shadow:none}.hero h1,.timeline-intro h2,.gallery-head h2,.detail-hero h1,.empty-card h1{margin:0;font-family:var(--serif);font-weight:600;line-height:1.15}.hero h1{max-width:12ch;font-size:clamp(3.4rem,5vw,5.9rem)}.hero-copy{max-width:42rem;margin:24px 0 0;font-size:1.08rem;line-height:1.95;color:var(--ink-soft)}.hero-note-list{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}.hero-note-list span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:var(--radius-sm);background:#fff8f3e0;border:1px solid rgba(190,127,112,.2);color:var(--accent-deep)}.hero-panel{padding:38px 34px 34px;display:flex;flex-direction:column;gap:24px;justify-content:space-between}.hero-panel>.eyebrow{text-align:center;font-size:18px}.hero-panel-content{flex:1;display:flex;flex-direction:column;gap:20px;align-items:stretch}.love-timer{position:relative;isolation:isolate;overflow:hidden;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px 30px;border-radius:var(--radius-lg);background:#261d1947;border:1px solid rgba(255,240,228,.34);box-shadow:0 20px 52px #34241f2e}.love-timer:before,.love-timer:after{content:"";position:absolute;pointer-events:none}.love-timer:before{inset:-18px;z-index:0;background:url(../images/shared/love-timer-night-bg.jpg) center 48% / cover no-repeat;filter:blur(3px) saturate(96%) brightness(.94);opacity:.96;transform:scale(1.02)}.love-timer:after{inset:0;z-index:0;background:linear-gradient(180deg,#251b1814,#1f181633)}.love-timer>*{position:relative;z-index:1}.love-timer-start{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:var(--radius-sm);background:#fff8f124;border:1px solid rgba(255,248,241,.34);color:#fff6ef;font-size:14px;text-shadow:0 2px 12px rgba(24,16,14,.54)}.love-timer-main{display:flex;align-items:baseline;justify-content:center;gap:10px 12px;text-align:center;color:#fff7f0;text-shadow:0 2px 16px rgba(24,16,14,.6)}.love-timer-main-label{font-size:1rem;letter-spacing:.08em}.love-timer-main-value{font-size:clamp(3.4rem,5.8vw,5.8rem);font-family:var(--serif);font-weight:600;line-height:1}.love-timer-main-unit{font-size:clamp(1.3rem,2vw,1.8rem);font-family:var(--serif)}.love-timer-clock{margin:0;font-size:clamp(2.8rem,4.8vw,4rem);font-family:var(--serif);font-weight:600;letter-spacing:.08em;color:#fff7f0;text-shadow:0 2px 16px rgba(24,16,14,.6)}.love-timer-detail,.hero-panel-copy{margin:0;color:var(--ink-soft);line-height:1.8}.love-timer-detail{font-size:1rem;text-align:center;color:#fff3eae0;text-shadow:0 2px 12px rgba(24,16,14,.5)}.hero-panel-copy{display:flex;align-items:center;justify-content:center;padding:18px 22px;border-radius:var(--radius-lg);background:linear-gradient(160deg,#ffffff70,#fff7f32e),#ffffff24;font-family:var(--serif);font-size:clamp(1rem,1.35vw,1.22rem);line-height:1.7;text-align:center}.timeline-shell{padding-top:34px}.timeline-intro{position:relative;isolation:isolate;padding:32px 34px;min-height:320px;display:flex;align-items:stretch}.timeline-intro:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#fffdfaf7,#fffcf8f2 36%,#fff9f4c2 58%,#f4ede55c),url(../images/shared/timeline-intro-bg.jpg) 100% 38% / cover no-repeat}.timeline-intro:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 14% 24%,rgba(255,255,255,.52),transparent 26%),linear-gradient(180deg,#fffcf729,#fff4ec38)}.timeline-intro-copy{max-width:min(34%,380px);display:flex;flex-direction:column;justify-content:center}.timeline-intro h2{max-width:16ch;font-size:clamp(2rem,3vw,3rem)}.timeline-intro p:last-child{max-width:54rem;margin:16px 0 0;line-height:1.9;color:var(--ink-soft)}.timeline{display:flex;gap:12px;height:clamp(390px,33vw,540px);padding:34px 0 20px}.timeline-item{position:relative;flex:.8 1 0;min-width:0;opacity:0;transform:translateY(20px);animation:rise-in .75s ease forwards;transition:flex-grow .52s cubic-bezier(.22,.8,.2,1)}.timeline-item.is-expanded{flex-grow:5.6}.timeline .memory-card{display:grid;grid-template-columns:minmax(0,1fr) 0fr;height:100%;overflow:hidden;text-decoration:none;color:inherit;transition:grid-template-columns .52s cubic-bezier(.22,.8,.2,1),box-shadow .18s ease,border-color .18s ease}.timeline-item.is-expanded .memory-card{grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr)}.memory-cover-wrap,.detail-hero-cover{position:relative;background:linear-gradient(180deg,#efd9d0d1,#f8efeab8)}.memory-cover,.detail-hero-cover img,.gallery-item img,.lightbox-figure img{height:100%;object-fit:cover}.timeline .memory-cover-wrap{min-width:0;overflow:hidden}.memory-stamp{position:absolute;left:22px;top:22px;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:var(--radius-sm);background:#ffffff42;border:1px solid rgba(255,255,255,.42);color:var(--accent-deep);font-weight:600;transition:opacity .26s ease,transform .26s ease}.memory-rail{position:absolute;right:14px;bottom:18px;color:#fff9f3;font-family:var(--serif);font-size:1.02rem;font-weight:600;letter-spacing:.08em;text-shadow:0 2px 12px rgba(56,35,28,.5);writing-mode:vertical-rl;transition:opacity .22s ease,transform .22s ease}.memory-body{padding:30px 30px 28px;display:flex;flex-direction:column;gap:14px}.timeline .memory-body{min-width:0;opacity:0;overflow:hidden;pointer-events:none;transform:translate(18px);transition:opacity .22s ease 90ms,transform .36s ease 90ms}.timeline-item.is-expanded .memory-body{opacity:1;pointer-events:auto;transform:translate(0)}.timeline-item.is-expanded .memory-rail{opacity:0;transform:translateY(8px)}.timeline-item.is-expanded .memory-stamp{transform:translateY(-2px)}.memory-meta,.detail-date{display:flex;flex-wrap:wrap;gap:10px 12px;color:var(--accent-deep);font-size:14px;letter-spacing:.05em}.meta-place:before{content:"·";opacity:.58;margin-right:4px}.memory-body h3{margin:0;font-family:var(--serif);font-size:clamp(1.8rem,2.2vw,2.5rem);font-weight:600;line-height:1.22}.memory-body p,.detail-summary,.detail-memory p,.empty-card p{margin:0;line-height:1.92;color:var(--ink-soft)}.memory-link,.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent-deep);font-weight:600;text-decoration:none}.memory-link{margin-top:auto}.page-detail{padding:42px 0 90px;display:grid;gap:24px}.detail-hero{padding:30px 32px 34px}.detail-hero-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);gap:28px;align-items:center}.detail-hero-cover{width:100%;aspect-ratio:5 / 4;border-radius:28px;overflow:hidden}.detail-hero-body{display:flex;flex-direction:column;gap:18px}.detail-hero h1{font-size:clamp(2.8rem,4vw,4.5rem)}.detail-summary{font-size:1.04rem}.detail-memory{position:relative;padding:28px 30px}.note-pin{position:absolute;top:18px;right:22px;width:16px;height:16px;border-radius:50%;background:#d47761;box-shadow:0 8px 20px #d4776152}.gallery-section{display:grid;gap:18px}.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:18px}.gallery-count{margin:0;padding:10px 16px;border-radius:var(--radius-sm);background:#ffffff3d;border:1px solid rgba(255,255,255,.4);color:var(--accent-deep);box-shadow:inset 0 1px #ffffff85}.gallery-head h2{font-size:clamp(2rem,3vw,3.2rem)}.toggle-gallery{min-height:48px;padding:0 18px;border-radius:var(--radius-sm);background:#fff8f3eb;border:1px solid rgba(190,127,112,.2);color:var(--accent-deep);box-shadow:var(--shadow-soft)}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.photo-accordion-mobile-grid{display:none}.photo-accordion{display:flex;gap:14px;height:clamp(390px,33vw,540px)}.photo-accordion-glow{flex:1 1 0;min-width:0;transition:flex-grow .46s cubic-bezier(.22,.8,.2,1)}.photo-accordion-glow.is-expanded{flex-grow:5.4}.photo-accordion-item{position:relative;width:100%;height:100%;padding:0;overflow:hidden;text-align:left;color:inherit;background:#ffffff29}.photo-accordion-item img{width:100%;height:100%;object-fit:cover;transition:transform .46s cubic-bezier(.22,.8,.2,1),filter .24s ease}.photo-accordion-glow:not(.is-expanded) .photo-accordion-item img{filter:saturate(76%) brightness(.9)}.photo-accordion-glow.is-expanded .photo-accordion-item img{transform:scale(1.025)}.photo-accordion-index{position:absolute;top:18px;left:18px;color:#fff8f2;font-family:var(--serif);font-size:1.04rem;font-weight:600;letter-spacing:.08em;text-shadow:0 2px 12px rgba(37,24,20,.64)}.photo-accordion-caption{position:absolute;right:0;bottom:0;left:0;padding:46px 22px 20px;color:#fff8f2;font-size:.98rem;line-height:1.72;background:linear-gradient(180deg,transparent,rgba(40,27,23,.82));opacity:0;transform:translateY(12px);transition:opacity .22s ease .15s,transform .3s ease .15s}.photo-accordion-glow.is-expanded .photo-accordion-caption{opacity:1;transform:translateY(0)}.gallery-item{position:relative;padding:0;overflow:hidden;text-align:left;min-height:320px;background:linear-gradient(180deg,#ffffff57,#fff7f324),#ffffff1f;transition:transform .18s ease,box-shadow .18s ease}.gallery-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-strong)}.gallery-item img{height:100%;aspect-ratio:.9}.gallery-caption{position:absolute;left:0;right:0;bottom:0;padding:18px 16px;font-size:14px;line-height:1.7;color:#fff7f1;background:linear-gradient(180deg,transparent,rgba(48,31,26,.86))}.lightbox{position:fixed;inset:0;z-index:20}.lightbox-backdrop{position:absolute;inset:0;background:#211613d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.lightbox-dialog{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px;padding:42px}.lightbox-close,.lightbox-nav{width:56px;height:56px;border-radius:50%;background:#fffcf92e;color:#fff8f3;font-size:2rem}.lightbox-close{position:absolute;top:24px;right:24px}.lightbox-figure{margin:0;display:grid;gap:18px;justify-items:center}.lightbox-figure img{width:auto;max-width:min(82vw,1240px);max-height:78vh;border-radius:28px;box-shadow:0 28px 72px #00000052}.lightbox figcaption{display:grid;gap:8px;max-width:min(72vw,860px);color:#fff4ec;text-align:center}.lightbox figcaption span{font-size:14px;letter-spacing:.08em;text-transform:uppercase}.lightbox figcaption p{margin:0;line-height:1.8}.empty-state{padding:15vh 0 64px}.empty-card{padding:36px;max-width:720px}.empty-card h1{font-size:clamp(2.4rem,4vw,4rem);margin-bottom:16px}@keyframes rise-in{to{opacity:1;transform:translateY(0)}}@keyframes gate-appear{0%{opacity:0;transform:translateY(20px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1440px){:root{--shell-width: min(100% - 48px, 1700px)}.hero{grid-template-columns:minmax(0,1fr) 420px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1280px){.hero{grid-template-columns:1fr}.hero-copy-block,.hero-panel{height:auto;min-height:auto}.detail-hero-layout{grid-template-columns:1fr}.timeline-intro-copy{max-width:min(42%,420px)}}@media(max-width:980px){:root{--shell-width: min(100% - 28px, 1700px)}.entrance-wall{padding:12px;column-gap:10px}.entrance-card{min-height:390px;padding:42px 28px 34px}.entrance-card h1{font-size:3rem}.entrance-button{width:100%;min-width:0}.page-home{padding-top:22px}.hero-copy-block{padding:38px 28px}.hero-panel{padding:28px 24px}.hero-panel-content{gap:16px}.hero h1{font-size:clamp(2.6rem,10vw,4rem)}.timeline-intro,.detail-hero,.detail-memory,.empty-card{padding:24px}.timeline-intro{min-height:0}.timeline-intro:before{background:linear-gradient(180deg,#fffdfaf2,#fffaf6e0 52%,#f5ede5ad),url(../images/shared/timeline-intro-bg.jpg) center 42% / cover no-repeat}.timeline-intro-copy{max-width:100%}.timeline{flex-direction:column;height:auto;gap:14px}.timeline-item,.timeline-item.is-expanded{flex:none;height:92px}.timeline-item.is-expanded{height:316px}.timeline .memory-card,.timeline-item.is-expanded .memory-card{grid-template-columns:minmax(124px,.42fr) minmax(0,1fr)}.timeline .memory-body{display:none}.timeline-item.is-expanded .memory-body{display:flex}.timeline-item:not(.is-expanded) .memory-cover-wrap{display:flex;align-items:center}.timeline-item:not(.is-expanded) .memory-card{position:relative}.timeline-item:not(.is-expanded) .memory-card:after,.timeline-item:not(.is-expanded) .memory-card:before{position:absolute;left:142px;z-index:1;color:var(--accent-deep);font-family:var(--serif);pointer-events:none}.timeline-item:not(.is-expanded) .memory-card:after{content:"轻点展开这段回忆";font-size:1.15rem;font-weight:600;top:22px;white-space:nowrap}.timeline-item:not(.is-expanded) .memory-card:before{content:attr(data-date);bottom:18px;font-size:.84rem;letter-spacing:.08em}.timeline-item:not(.is-expanded) .memory-cover{width:104px;border-radius:0 18px 18px 0}.timeline-item:not(.is-expanded) .memory-stamp{left:18px;top:16px}.timeline-item:not(.is-expanded) .memory-rail{display:none}.gallery-head{align-items:start;flex-direction:column}.toggle-gallery{width:100%}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-accordion{display:none}.photo-accordion-mobile-grid{display:block}.lightbox-dialog{grid-template-columns:1fr;justify-items:center;padding:84px 20px 28px}.lightbox-nav{position:fixed;bottom:24px}.lightbox-prev{left:20px}.lightbox-next{right:20px}}@media(max-width:640px){.entrance-wall{padding:10px;column-gap:12px;--entrance-wall-gap: 12px}.entrance-wall.is-mobile .entrance-wall-column{height:auto;overflow:visible}.entrance-wall.is-mobile .entrance-wall-track{gap:0}.entrance-card{min-height:360px;padding:34px 22px 28px}.entrance-card h1{font-size:2.3rem;white-space:normal}.entrance-copy{max-width:19rem;font-size:.96rem}.entrance-button{width:100%;min-width:0}.entrance-shell{padding:20px 14px}.entrance-note-list{gap:10px}.entrance-note-list span{min-height:36px;padding:0 13px;font-size:14px}.entrance-button-title{font-size:1.46rem}.music-player{right:14px;bottom:14px}.music-toggle{min-height:44px;padding-right:13px}.love-timer{padding:24px 20px}.love-timer-main{flex-wrap:wrap;gap:8px 10px}.hero-panel-copy{padding:18px;font-size:1rem}.timeline-item.is-expanded{height:356px}.timeline .memory-card,.timeline-item.is-expanded .memory-card{grid-template-columns:108px minmax(0,1fr)}.timeline .memory-body{padding:20px 18px;gap:10px}.timeline .memory-body h3{font-size:1.6rem}.timeline .memory-body p{font-size:.92rem;line-height:1.72}.timeline .tag-list{gap:6px}.timeline .tag-pill{min-height:30px;padding:5px 9px;font-size:12px}.timeline-item:not(.is-expanded) .memory-card:after,.timeline-item:not(.is-expanded) .memory-card:before{left:122px}.timeline-item:not(.is-expanded) .memory-card:after{font-size:1rem}.gallery-grid{grid-template-columns:1fr}.gallery-item{min-height:280px}.lightbox-figure img{max-width:92vw;max-height:66vh}}@media(prefers-reduced-motion:reduce){.entrance-wall-track{transform:none!important;will-change:auto}}
