.memories-hint{margin:0 0 1rem}.memories-wrap{position:relative}.memories-wrap>.collectible{z-index:2;color:#fff5f8;position:absolute;top:3rem;right:.75rem}.room-progress{color:var(--muted);margin:0 0 .75rem}.room-complete{font-family:var(--font-display);font-size:var(--step-1);margin:1rem 0 0}.room{aspect-ratio:3/4;background:radial-gradient(at 50% 25%,#ffcdaa8c,#0000 65%),linear-gradient(160deg,#5b3a4d,#33202f);border-radius:1rem;width:100%;position:relative;box-shadow:inset 0 0 4rem #00000059}@media (width>=640px){.room{aspect-ratio:4/3}}.mem-object{left:var(--x);top:var(--y);translate:-50% -50%;rotate:var(--r);cursor:pointer;background:#fff5f8;border:0;border-radius:50%;width:clamp(3.8rem,15vw,5.6rem);height:clamp(3.8rem,15vw,5.6rem);padding:.9rem;transition:scale .25s,rotate .25s;position:absolute;box-shadow:0 .4rem 1rem #00000059}.mem-object:hover,.mem-object:focus-visible{scale:1.12;rotate:calc(var(--r) * -1)}.mem-object svg{width:100%;height:100%;display:block}.mem-object:before{content:"";z-index:-1;animation:halo 3.2s ease-in-out calc(var(--n) * .4s) infinite;background:radial-gradient(circle,#ffd6bebf,#0000 65%);border-radius:50%;position:absolute;inset:-30%}.mem-object.is-seen:before{opacity:0;animation:none}.mem-object.is-seen:after{content:"";background:var(--accent);border:2px solid #fff5f8;border-radius:50%;width:.9rem;height:.9rem;position:absolute;bottom:2%;right:2%}.ic-a{fill:var(--accent)}.ic-b{fill:#ffe6ee}.ic-l{stroke:#2a1a2e;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.mem-object svg :not(.ic-l){stroke:none}.mem-object svg .ic-l:not(.ic-a):not(.ic-b){fill:none}.memory-dialog{background:var(--bg);width:min(92vw,30rem);max-height:90svh;color:var(--text);border:0;border-radius:14px;padding:0;overflow:auto}.memory-dialog[open]{animation:.4s cubic-bezier(.2,.9,.3,1.05) open-card}.memory-dialog::backdrop{background:#140a19b8}.memory-dialog__close{z-index:2;border-radius:var(--radius);color:#2a1a2e;min-height:2.75rem;font:inherit;cursor:pointer;background:#fff5f8eb;border:0;padding:.5rem 1rem;font-weight:600;position:absolute;top:.5rem;right:.5rem}.memory{display:grid}.memory[hidden]{display:none}.memory .smart{border-radius:0;max-width:none}.memory__text{padding:1.25rem 1.5rem 1.75rem}.memory__text h2{margin-bottom:.25rem}.memory__date{color:var(--muted);margin:0 0 .75rem}.memory__text p:last-child{margin:0}.memory-dialog[open] .memory:not([hidden]) .smart{animation:1s .2s both mem-develop}@keyframes halo{0%,to{opacity:.25;scale:.9}50%{opacity:.9;scale:1.1}}@keyframes open-card{0%{opacity:0;transform:scale(.1)}}@keyframes mem-develop{0%{opacity:0;filter:blur(10px)grayscale()brightness(1.5)}}.your-turn{background:radial-gradient(circle at 14% 18%, #a3245b0d, transparent 42%), radial-gradient(circle at 88% 86%, #a3245b0f, transparent 46%), linear-gradient(175deg, #fffaf4 0%, var(--bg-2) 100%);border-radius:1.1rem 1.1rem .4rem .4rem;margin:3.5rem 0 0;padding:2.5rem 1.75rem 2.25rem;position:relative;box-shadow:0 1.2rem 2.5rem #2a1a2e24,0 0 0 1px #a3245b14}.your-turn:after{content:"";background:linear-gradient(135deg, transparent 50%, var(--bg) 50%);pointer-events:none;border-radius:0 1.1rem 0 .6rem;width:1.75rem;height:1.75rem;position:absolute;top:0;right:0;box-shadow:-2px 2px 4px #2a1a2e1f}.your-turn h2{margin:0;font-style:italic;display:inline-block}.your-turn h2:after{content:"";opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 12'%3E%3Cpath d='M2 7 Q15 -1 28 7 T54 7 T80 7' fill='none' stroke='%23A3245B' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;width:4.5rem;height:.6rem;margin:.2rem 0 0;display:block}.your-turn__subtitle{color:var(--muted);max-width:var(--measure);margin:.9rem 0 1.75rem;font-style:italic}.memory-form{gap:1.4rem;max-width:30rem;display:grid}.field{gap:.4rem;display:grid}.field label{font-family:var(--font-display);color:var(--muted);font-size:1.05rem;font-style:italic;font-weight:500}.field input,.field textarea{font:inherit;color:var(--text);transition:border-color .25s,background-position .25s}.field input{border:0;border-bottom:2px solid var(--line);background:0 0;border-radius:0;padding:.5rem .15rem}.field input:focus-visible{border-bottom-color:var(--accent)}.field textarea{border:1px solid var(--line);border-radius:var(--radius);background-color:#fffdf9;background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 1.54em, var(--line) 1.54em, var(--line) calc(1.54em + 1px));resize:vertical;padding:.75rem .9rem;line-height:1.55em}.field__error{color:#b3261e;margin:0;font-size:.9rem}.memory-form .btn{justify-self:start;margin-top:.25rem}.memory-archive{background:#fffdf9;border-radius:.5rem;gap:.5rem;max-width:30rem;margin:1.75rem 0 0;padding:1.75rem 1.5rem 1.5rem;display:grid;position:relative;rotate:-.6deg;box-shadow:0 1rem 2rem #2a1a2e29}.memory-archive:before{content:"";background:#f6c9a0d9;width:4.5rem;height:1.4rem;position:absolute;top:-.7rem;left:50%;translate:-50%;rotate:-2deg;box-shadow:0 2px 4px #2a1a2e26}.memory-archive__heading{font-family:var(--font-display);font-style:italic;font-size:var(--step-1);margin:0 0 .25rem;font-weight:600}.memory-archive__label{font-family:var(--font-display);letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin:0;font-size:.8rem;font-weight:700}.memory-archive__title{font-family:var(--font-display);font-size:var(--step-1);margin:0;font-weight:600}.memory-archive__date{color:var(--muted);margin:0}.memory-archive__text{white-space:pre-line;overflow-wrap:anywhere;margin:.25rem 0 .75rem}.memory-archive__reaction{background:var(--bg-2);overflow-wrap:anywhere;border-radius:0 .9rem .9rem;margin:.35rem 0 0;padding:.9rem 1rem;font-style:italic;position:relative}.memory-archive__actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.75rem;display:flex}.memory-archive__replay{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem 0;text-decoration:underline}.memory-archive__replay:hover{color:var(--text)}.memory-archive__confirm{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.js .memory-archive.is-revealed{animation:.8s both archive-in}@keyframes archive-in{0%{opacity:0;translate:0 .6rem;scale:.98}}
