.memory-row { display:grid; grid-template-columns:68px minmax(0,1fr) 34px; gap:18px; align-items:center; padding:27px 0; }
.memory-row .memory-number { align-self:start; padding-top:5px; }
.memory-link { display:flex; flex-direction:column; gap:7px; min-width:0; }
.memory-link strong { font-size:clamp(1.3rem,3vw,2rem); transition:color .2s ease,text-shadow .2s ease; }
.memory-link small { color:var(--muted); }.memory-link b { color:var(--cyan); font-weight:700; margin-left:9px; }
.memory-link:hover strong { color:var(--pink); text-shadow:0 0 20px rgba(255,63,155,.42); }
.memory-row .memory-toggle { width:34px; min-height:34px; padding:0; display:grid; grid-column:3; border:0; background:transparent; }
.memory-row .toggle-symbol { transition:transform .32s cubic-bezier(.2,.9,.25,1.25),color .25s ease; }
.memory-card.open .toggle-symbol { transform:rotate(45deg) scale(1.1); }
.memory-detail-inner { padding-left:86px; }
.memory-carousel,.album-carousel { position:relative; overflow:hidden; isolation:isolate; border:1px solid var(--line); border-radius:6px; background:#10001d; box-shadow:0 24px 60px rgba(0,0,0,.28); }
.memory-carousel { max-width:760px; }.carousel-viewport { overflow:hidden; }.carousel-track { display:flex; transform:translateX(0); transition:transform .65s cubic-bezier(.2,.75,.25,1); will-change:transform; }.carousel-slide { min-width:100%; margin:0; display:grid; place-items:center; background:radial-gradient(circle at 50% 50%,rgba(255,63,155,.19),transparent 60%),#0b0014; }.memory-carousel .carousel-slide { aspect-ratio:16/9; }.album-carousel .carousel-slide { aspect-ratio:16/10; max-height:74vh; }.carousel-slide img { width:100%; height:100%; display:block; object-fit:cover; }
.carousel-control { position:absolute; top:50%; z-index:2; display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.25); border-radius:50%; color:var(--ink); background:rgba(8,0,20,.62); backdrop-filter:blur(9px); transform:translateY(-50%); transition:background .2s ease,transform .2s ease; }.carousel-control:hover { background:var(--pink); color:#17001f; }.carousel-control:focus-visible,.message-note:focus-visible,.memory-toggle:focus-visible,.memory-link:focus-visible { outline:2px solid var(--cyan); outline-offset:4px; }.carousel-control.previous { left:15px; }.carousel-control.next { right:15px; }.carousel-meta { position:absolute; z-index:2; right:15px; bottom:14px; left:15px; display:flex; justify-content:space-between; align-items:center; color:#fff; font-size:.78rem; text-shadow:0 1px 8px #000; }.carousel-dots { display:flex; gap:6px; }.carousel-dot { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.42); transition:width .25s ease,background .25s ease; }.carousel-dot.active { width:22px; border-radius:99px; background:var(--cyan); }
.album-page { width:min(1120px,calc(100% - 40px)); margin:0 auto; padding:44px 0 94px; }.back-link { display:inline-flex; margin-bottom:64px; color:var(--cyan); font-weight:700; }.album-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.55fr); gap:38px; align-items:end; margin-bottom:42px; }.album-heading .eyebrow { grid-column:1 / -1; margin-bottom:-19px; }.album-heading h1 { margin:0; font-size:clamp(3rem,7vw,6.6rem); }.album-heading > p { margin:0; color:var(--muted); line-height:1.7; }.album-carousel { width:100%; }.album-carousel::after { content:""; position:absolute; z-index:1; inset:auto 0 0; height:25%; pointer-events:none; background:linear-gradient(transparent,rgba(0,0,0,.35)); }
.message-note { width:100%; color:var(--ink); border:1px solid var(--line); text-align:left; cursor:pointer; overflow:hidden; position:relative; }.message-note small { color:var(--cyan); font-weight:700; opacity:0; transform:translateY(5px); transition:opacity .22s ease,transform .22s ease; }.message-note:hover small,.message-note:focus-visible small { opacity:1; transform:translateY(0); }.message-note.message-activated { animation:message-pop .68s cubic-bezier(.2,.9,.25,1.15); }.message-note.message-activated::after { content:""; position:absolute; inset:-40%; z-index:-1; background:radial-gradient(circle,rgba(255,255,255,.35),rgba(255,63,155,.18) 22%,transparent 55%); animation:message-ripple .8s ease-out both; }
.message-spark { position:fixed; z-index:30; pointer-events:none; font-size:clamp(1.25rem,3vw,2.1rem); filter:drop-shadow(0 0 8px rgba(255,255,255,.75)); animation:message-spark 1.18s cubic-bezier(.16,.84,.35,1) forwards; }.message-flash { position:fixed; z-index:29; inset:0; pointer-events:none; background:radial-gradient(circle at var(--flash-x) var(--flash-y),rgba(255,255,255,.72),rgba(255,209,102,.3) 7%,rgba(255,63,155,.12) 18%,transparent 46%); animation:message-flash .74s ease-out forwards; }
@keyframes message-pop { 0% { transform:scale(1); } 32% { transform:scale(1.035) rotate(-.55deg); } 100% { transform:scale(1); } }
@keyframes message-ripple { from { transform:scale(.2); opacity:1; } to { transform:scale(1.25); opacity:0; } }
@keyframes message-spark { from { transform:translate(-50%,-50%) scale(1) rotate(0); opacity:1; } to { transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(.22) rotate(var(--spark-rotate)); opacity:0; } }
@keyframes message-flash { from { opacity:1; } to { opacity:0; } }
.admin-section { margin-top:64px; }.admin-section h2 { font-size:1.6rem; }.message-form { grid-template-columns:minmax(0,1fr) 220px auto; align-items:end; }.message-form .message-body { grid-column:1 / -1; }.message-form textarea { resize:vertical; }.admin-event .admin-actions { flex-direction:row; align-items:center; gap:14px; }.edit-link { color:var(--cyan); font-weight:700; font-size:.9rem; }.admin-return { display:inline-flex; margin:28px 0 10px; }.edit-panel { margin-top:24px; }
.memory-form select { width:100%; min-height:46px; padding:12px 13px; color:var(--ink); border:1px solid var(--line); border-radius:4px; outline:none; background:#130021; }.memory-form select:focus { border-color:var(--cyan); }
.admin-nav { display:flex; align-items:center; gap:18px; }
.admin-logout,.nav-lock { margin:0; }.admin-logout button,.nav-lock button { padding:0; border:0; color:var(--muted); background:transparent; font-size:.9rem; cursor:pointer; }.admin-logout button:hover,.nav-lock button:hover { color:var(--cyan); }
.access-page { min-height:calc(100vh - 82px); display:grid; place-items:center; padding:40px 20px; }.access-card { width:min(100%,520px); padding:42px; border:1px solid var(--line); border-radius:7px; background:rgba(20,0,37,.78); box-shadow:0 20px 80px rgba(0,0,0,.3),0 0 45px rgba(255,63,155,.12); }.access-card h1 { font-size:clamp(2.7rem,7vw,4.5rem); margin-bottom:17px; }.access-card > p:not(.eyebrow) { color:var(--muted); line-height:1.6; }.admin-sections { display:flex; gap:8px; margin:26px 0 0; padding-bottom:15px; border-bottom:1px solid var(--line); }.admin-sections a { padding:8px 11px; color:var(--muted); font-size:.88rem; font-weight:700; }.admin-sections a:hover { color:var(--cyan); }.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:30px 0 18px; }.settings-card { min-height:212px; padding:24px; border:1px solid var(--line); border-radius:6px; background:var(--panel); }.settings-card .eyebrow { margin-bottom:11px; }.settings-card h2 { font-size:1.7rem; }.settings-card p:not(.eyebrow) { color:var(--muted); line-height:1.55; }.settings-card .button { margin-top:12px; }.settings-form { margin-top:0; }
.background-icons { position:fixed; z-index:0; inset:0; overflow:hidden; pointer-events:none; }.background-icons span { position:absolute; display:grid; place-items:center; width:clamp(40px,6vw,76px); aspect-ratio:1; color:#fff; font-size:clamp(1.6rem,3vw,3rem); opacity:.24; filter:drop-shadow(0 0 13px rgba(255,63,155,.7)); animation:background-drift 8s ease-in-out infinite; }.background-icons span:nth-child(1) { top:18%; left:5%; }.background-icons span:nth-child(2) { top:11%; right:8%; color:var(--pink); animation-delay:-1.2s; }.background-icons span:nth-child(3) { top:56%; left:8%; color:var(--cyan); animation-delay:-3.1s; }.background-icons span:nth-child(4) { top:43%; right:5%; animation-delay:-4.4s; }.background-icons span:nth-child(5) { bottom:9%; left:23%; color:var(--gold); animation-delay:-2s; }.background-icons span:nth-child(6) { right:21%; bottom:13%; color:var(--cyan); animation-delay:-5.2s; }.site-header,main,footer { position:relative; z-index:1; } @keyframes background-drift { 50% { transform:translateY(-25px) rotate(10deg) scale(1.08); opacity:.42; } }
.message-stage { position:fixed; z-index:1000; inset:0; pointer-events:none; overflow:hidden; background:radial-gradient(circle at var(--burst-x) var(--burst-y),rgba(255,255,255,.8),rgba(255,209,102,.38) 6%,rgba(255,63,155,.2) 17%,transparent 44%); animation:stage-fade 3.1s ease-out forwards; }.message-stage::before,.message-stage::after { content:""; position:absolute; left:var(--burst-x); top:var(--burst-y); width:24px; height:24px; border:3px solid var(--cyan); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 35px var(--cyan); animation:burst-ring 2.7s cubic-bezier(.12,.75,.25,1) forwards; }.message-stage::after { border-color:var(--pink); box-shadow:0 0 35px var(--pink); animation-delay:.22s; }
.message-spark { z-index:1002; font-size:clamp(1.5rem,3.8vw,2.8rem); animation-duration:3s; }.message-flash { z-index:1001; animation-duration:3.1s; }
@keyframes stage-fade { 0%,35% { opacity:1; } 100% { opacity:0; } }
@keyframes burst-ring { 0% { opacity:1; width:20px; height:20px; } 72% { opacity:.66; } 100% { width:min(140vw,1300px); height:min(140vw,1300px); opacity:0; } }
@keyframes message-spark { 0% { transform:translate(-50%,-50%) scale(.35) rotate(0); opacity:0; } 12% { opacity:1; } 58% { opacity:1; } 100% { transform:translate(calc(-50% + var(--spark-x)),calc(-50% + var(--spark-y))) scale(.78) rotate(var(--spark-rotate)); opacity:0; } }
@keyframes message-flash { 0%,30% { opacity:1; } 100% { opacity:0; } }
@media (max-width:700px) { .memory-row { grid-template-columns:42px minmax(0,1fr) 34px; gap:11px; padding:21px 0; }.memory-detail-inner { padding-left:0; }.memory-link b { display:block; margin:5px 0 0; }.carousel-control { width:36px; height:36px; }.carousel-control.previous { left:10px; }.carousel-control.next { right:10px; }.album-page { width:min(100% - 26px,1120px); padding:30px 0 74px; }.back-link { margin-bottom:42px; }.album-heading { display:block; margin-bottom:29px; }.album-heading .eyebrow { margin-bottom:12px; }.album-heading h1 { margin-bottom:20px; }.album-carousel .carousel-slide { aspect-ratio:4/5; }.message-form { grid-template-columns:1fr; }.message-form .message-body { grid-column:auto; }.admin-event .admin-actions { gap:9px; flex-wrap:wrap; justify-content:flex-end; }.access-card { padding:30px 23px; }.settings-grid { grid-template-columns:1fr; }.admin-sections { overflow-x:auto; } }
