@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600&display=swap";:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#242522;background:#f7f6f2;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.welcome{width:min(100% - 40px,1080px);margin:0 auto;padding:72px 0 48px;text-align:center}.eyebrow{color:#929087;font-size:11px;letter-spacing:.22em}h1{margin:27px 0 14px;font-size:clamp(38px,6vw,68px);line-height:1.2;letter-spacing:-.055em;font-weight:500}.intro{color:#77766f;font-size:15px}.group-photo{margin:48px auto 18px}.photo-stage{position:relative;overflow:hidden;border-radius:20px;background:#e9e8e1}.group-photo-image{display:block;width:100%;height:auto}.person-layer{position:absolute;z-index:1;pointer-events:none;transform-origin:var(--person-origin, 50% 50%);transition:transform .36s cubic-bezier(.2,.85,.25,1);will-change:transform}.person-layer.is-hovered{transform:scale(1.025)}.person-layer.is-selected{transform:scale(1.045)}.person-cutout{display:block;width:100%;height:100%;object-fit:fill;transition:filter .25s ease}.person-layer.is-selected{z-index:2}.person-layer.is-hovered .person-cutout{filter:drop-shadow(0 4px 10px rgba(16,28,35,.28))}.person-layer.is-selected .person-cutout{filter:drop-shadow(0 0 5px rgba(255,255,255,.9)) drop-shadow(0 8px 16px rgba(16,28,35,.42)) brightness(1.04)}.person-hit-area{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.person-hit-area rect{pointer-events:visiblePainted;cursor:pointer}.person-hit-area path{fill:#fff0;stroke:transparent;pointer-events:visiblePainted;cursor:pointer}.person-hit-area path:focus-visible{stroke:#fffc;stroke-width:1.5;outline:none}.group-photo figcaption{padding:14px 18px;color:#77766f;font-size:13px;text-align:left}.setup-note{color:#aaa89f;font-size:12px}.profile-page{width:min(100% - 40px,1080px);margin:0 auto;padding:34px 0 50px}.back-button{border:0;padding:10px 0;background:transparent;color:#77766f;font:inherit;cursor:pointer}.profile-header{padding:76px 0 48px}.profile-header h1{margin-top:18px}.memory-sections{display:grid;gap:54px}.memory-section{border-top:1px solid #e5e3dc;padding-top:22px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.section-heading .eyebrow{margin:0 0 8px}.section-heading h2{margin:0;font-size:clamp(25px,4vw,36px);font-weight:500;letter-spacing:-.04em}.section-heading>span{color:#aaa89f;font-size:12px}.empty-state{min-height:136px;display:flex;align-items:center;gap:16px;padding:24px;border:1px solid #e9e7e1;border-radius:18px;color:#8a8981;background:#ffffff59}.empty-state p{max-width:540px;margin:0;font-size:14px;line-height:1.7}.empty-mark{color:#c8bfa9;font-size:24px}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.media-card{overflow:hidden;margin:0;border-radius:16px;background:#eeede7}.media-card img,.media-card video{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.audio-list{display:grid;gap:12px}.audio-card{display:grid;grid-template-columns:1fr;padding:12px 16px}.audio-card audio{display:block;width:100%;height:42px}.audio-card figcaption{padding:8px 0 0}.media-date{color:#a09e95}.media-card figcaption{padding:12px 14px;color:#55544e;font-size:13px}.note-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.note-card{padding:20px;border:1px solid #e9e7e1;border-radius:18px;background:#ffffff59}.note-card h3{margin:8px 0;font-size:18px;font-weight:500}.note-card p:last-child{margin:0;color:#77766f;font-size:14px;line-height:1.7}.note-date{color:#a09e95;font-size:11px;letter-spacing:.08em}.password-card{display:grid;grid-template-columns:auto 1fr minmax(240px,340px);align-items:center;gap:18px;padding:24px;border:1px solid #e9e7e1;border-radius:18px;background:#ffffff6b}.lock-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eeede7;color:#88867d;font-size:22px}.password-card h3{margin:0 0 6px;font-size:16px;font-weight:500}.password-card p{margin:0;color:#8a8981;font-size:13px;line-height:1.6}.password-controls{display:flex;gap:8px}.password-controls input{min-width:0;flex:1;padding:11px 13px;border:1px solid #dedcd4;border-radius:10px;background:#fff;font:inherit}.password-controls button{padding:0 18px;border:0;border-radius:10px;background:#252622;color:#fff;font:inherit;cursor:pointer}.password-error{grid-column:2 / -1;color:#a44d43!important}.profile-footer{padding-top:58px;color:#aaa89f;text-align:center;font-size:12px}.welcome.is-opening .photo-stage{animation:photo-focus .19s ease-out both}@keyframes photo-focus{to{filter:saturate(1.03)}}@media(prefers-reduced-motion:reduce){.person-layer,.person-cutout{transition:none}.welcome.is-opening .photo-stage{animation:none}}@media(max-width:600px){.welcome{padding-top:52px}.group-photo{margin-top:36px}.photo-stage{border-radius:14px}.group-photo figcaption{font-size:12px}}@media(max-width:600px){.profile-page{padding-top:20px}.profile-header{padding:54px 0 34px}.memory-sections{gap:38px}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.note-list{grid-template-columns:1fr}.empty-state{min-height:110px;padding:18px}}@media(max-width:600px){.password-card{grid-template-columns:auto 1fr;gap:14px;padding:18px}.password-controls,.password-error{grid-column:1 / -1}}
