.memory-page{animation:memory-arrive .7s var(--space-ease)}
.memory-stage{height:clamp(400px,calc(100dvh - 270px),650px);position:relative;overflow:hidden;border-radius:24px;background:#e1eae0;border:1px solid rgba(255,255,255,.8);box-shadow:0 12px 45px rgba(43,72,57,.06)}
.memory-canvas{position:absolute;inset:0}.memory-canvas canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.memory-canvas canvas:focus-visible{outline:2px solid var(--space-accent);outline-offset:-4px}
.memory-stage-status{position:absolute;left:24px;right:24px;top:20px;margin:0;text-align:center;z-index:2;font-size:12px;color:#4e6a58;line-height:1.7;pointer-events:none}
.memory-scene-controls{position:absolute;right:18px;bottom:20px;display:flex;gap:3px;padding:4px;border-radius:12px;background:rgba(255,252,247,.92);box-shadow:0 5px 20px rgba(43,72,57,.06)}
.memory-scene-hint{position:absolute;left:23px;bottom:20px;margin:0;color:#526c5d;font-size:10px;letter-spacing:.035em;pointer-events:none}
.memory-empty{text-align:center;padding:35px 10px 18px}.memory-empty h2{font:400 18px/1.9 "Noto Serif SC",serif;color:var(--space-ink);letter-spacing:.04em;margin:0 0 18px}.memory-empty .space-button{font-size:12px}
.memory-list-heading{display:flex;justify-content:space-between;gap:15px;margin:30px 0 18px;font-size:11px;color:var(--space-muted);align-items:center}.memory-list-heading>div{display:flex;gap:12px;align-items:center}.memory-list-heading>p{margin:0}.memory-list-heading .space-text-button{font-size:11px}
.memory-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.memory-card{text-align:left;padding:9px 9px 13px;min-width:0;border:1px solid rgba(255,255,255,.9);border-radius:13px;background:var(--space-paper);box-shadow:0 4px 20px rgba(43,72,57,.045);transition:transform .5s var(--space-ease),box-shadow .5s}
.memory-card>span{display:block;aspect-ratio:1.05;overflow:hidden;border-radius:7px;background:rgba(201,182,166,.18)}.memory-card img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--space-ease)}.memory-card strong{display:block;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:12px 5px 4px}.memory-card time{font-size:10px;margin-left:5px;color:var(--space-muted)}.memory-card:hover{transform:translateY(-3px);box-shadow:0 13px 30px rgba(43,72,57,.09)}.memory-card:hover img{transform:scale(1.035)}
.memory-photo-picker{min-height:100px;border:1px dashed rgba(186,119,139,.45);padding:20px;text-align:center;display:flex!important;align-items:center;justify-content:center;gap:9px!important;border-radius:13px;background:rgba(244,220,224,.14);color:var(--space-ink);overflow-wrap:anywhere}.memory-photo-picker small{font-size:10px;color:var(--space-muted)}
.memory-viewer{padding:0;max-width:1000px;width:calc(100% - 40px);background:var(--space-paper);overflow:auto}.memory-viewer>.space-dialog-close{position:absolute;right:13px;top:13px;z-index:2;background:rgba(255,253,247,.9);color:#4e6a58;border-radius:50%;width:34px;height:34px;font-size:22px}.memory-original{min-height:100px;max-height:65dvh;display:grid;place-items:center;background:rgba(89,113,93,.07)}.memory-original img{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain}.memory-viewer-copy{padding:27px 32px 30px}.memory-viewer-copy>p:not(.space-eyebrow){font-size:13px;white-space:pre-wrap;line-height:1.95;color:var(--space-muted);overflow-wrap:anywhere}.memory-viewer-copy footer{margin-top:25px}.memory-viewer-copy footer a{margin-left:auto}.memory-viewer h2{overflow-wrap:anywhere}.memory-photo-picker>span{font-size:13px}
html[data-space-theme=dark] .memory-stage{border-color:rgba(154,183,158,.18)}html[data-space-theme=dark] .memory-scene-controls{background:rgba(36,53,44,.93)}html[data-space-theme=dark] .memory-scene-hint,html[data-space-theme=dark] .memory-stage-status{color:#d1e1ce}html[data-space-theme=dark] .memory-card{border-color:var(--space-line)}
@keyframes memory-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.memory-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.memory-stage{height:clamp(400px,calc(100dvh - 270px),560px)}}
@media(max-width:760px){.memory-stage{height:470px;border-radius:18px;margin:0 -6px}.memory-page .space-heading{display:flex;align-items:center;gap:10px}.memory-page .space-heading>button{font-size:11px;padding:11px 12px}.memory-page .space-heading>div>p:last-child{max-width:16em}.memory-scene-hint{left:16px;right:16px;bottom:65px;font-size:9px;text-align:center}.memory-scene-controls{right:50%;transform:translateX(50%);bottom:15px}.memory-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.memory-empty{padding-top:27px}.memory-empty h2{font-size:16px}.memory-list-heading{font-size:10px;gap:10px}.memory-viewer{width:calc(100% - 22px)}.memory-viewer-copy{padding:23px 21px}.memory-viewer-copy footer{flex-wrap:wrap;gap:10px}.memory-viewer-copy footer a{margin-left:0}.memory-original,.memory-original img{max-height:52dvh}}
@media(prefers-reduced-motion:reduce){.memory-page,.memory-card,.memory-card img{animation:none;transition:none}.memory-card:hover,.memory-card:hover img{transform:none}}
