:root {
  --paper: #f8f5ef;
  --paper-2: #eee9df;
  --ink: #171713;
  --muted: #6e6b64;
  --line: rgba(23, 23, 19, .13);
  --card: rgba(255,255,255,.56);
  --shadow: 0 24px 70px rgba(55, 47, 36, .10);
  --radius: 28px;
  --radius-sm: 18px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); min-height: 100vh; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
img, video { max-width: 100%; }
a { color: inherit; }
.noise { position: fixed; inset: 0; pointer-events: none; opacity: .12; z-index: 100; mix-blend-mode: multiply; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E"); }
.eyebrow { font-size: .69rem; letter-spacing: .18em; font-weight: 800; color: var(--muted); }
.muted { color: var(--muted); line-height: 1.6; }
.hero { min-height: 68vh; padding: 26px clamp(22px, 5vw, 84px) 40px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; border-bottom: 1px solid var(--line); background:
 radial-gradient(circle at 78% 12%, rgba(255,255,255,.9), transparent 31%),
 radial-gradient(circle at 16% 74%, rgba(214,199,169,.30), transparent 25%),
 linear-gradient(135deg,#f8f5ef,#f1eadf 58%,#e8dfd1); }
.hero::after { content: ""; position: absolute; width: 34vw; aspect-ratio:1; border: 1px solid rgba(23,23,19,.09); border-radius:50%; right:-8vw; bottom:-14vw; box-shadow:0 0 0 4vw rgba(255,255,255,.12),0 0 0 8vw rgba(255,255,255,.08); }
.hero-top, .card-title-row, .section-heading, .admin-topbar, .moderation-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; position:relative; z-index:1; }
.icon-btn { width: 44px; height:44px; border-radius:50%; background: rgba(255,255,255,.44); border:1px solid var(--line); display:grid; place-items:center; color:var(--ink); font-size:1.1rem; backdrop-filter: blur(10px); }
.hero-copy { position:relative; z-index:1; max-width: 1000px; margin: 55px 0 28px; }
.hero-copy .date { font-size:.76rem; font-weight:800; letter-spacing:.2em; color:var(--muted); }
.hero h1 { font-family:var(--serif); font-size:clamp(4rem, 12vw, 10.5rem); line-height:.78; font-weight:400; margin:22px 0 34px; letter-spacing:-.065em; }
.hero h1 em { font-weight:400; font-style:italic; font-size:.7em; color:#817666; }
.hero-subtitle { font-family:var(--serif); font-style:italic; font-size:clamp(1.25rem,2.3vw,2rem); color:#514d46; margin:0; }
.hero-actions { position:relative; z-index:1; display:flex; gap:12px; flex-wrap:wrap; }
.primary-btn,.secondary-btn,.ghost-btn { border-radius:999px; padding:14px 21px; border:1px solid var(--ink); font-weight:800; letter-spacing:-.01em; transition:.2s ease; }
.primary-btn { background:var(--ink); color:white; box-shadow:0 12px 24px rgba(23,23,19,.14); }
.primary-btn:hover { transform:translateY(-2px); box-shadow:0 16px 34px rgba(23,23,19,.2); }
.primary-btn:disabled { opacity:.4; cursor:not-allowed; transform:none; box-shadow:none; }
.primary-btn.small { padding:11px 16px; font-size:.9rem; }
.secondary-btn { background:rgba(255,255,255,.45); color:var(--ink); backdrop-filter:blur(10px); }
.secondary-btn:hover,.ghost-btn:hover { background:white; }
.ghost-btn { padding:10px 14px; background:transparent; border-color:var(--line); }
.full { width:100%; margin-top:18px; }
.event-stats { display:flex; gap:1px; width:min(520px,100%); margin-top:30px; position:relative; z-index:1; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:rgba(255,255,255,.34); }
.event-stats div { padding:14px 18px; flex:1; border-right:1px solid var(--line); }
.event-stats div:last-child{border-right:0}.event-stats strong{display:block;font-family:var(--serif);font-size:1.55rem;font-weight:400}.event-stats span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.tabbar { position:sticky; top:0; z-index:50; display:flex; overflow:auto; justify-content:center; gap:7px; padding:11px 16px; border-bottom:1px solid var(--line); background:rgba(248,245,239,.82); backdrop-filter:blur(18px); }
.tab { border:0; background:transparent; padding:10px 16px; border-radius:999px; color:var(--muted); font-weight:750; white-space:nowrap; }
.tab.active { color:var(--ink); background:#fff; box-shadow:0 5px 18px rgba(0,0,0,.05); }
main { width:min(1420px,calc(100% - 36px)); margin:0 auto; }
.panel { display:none; padding:68px 0 100px; }
.panel.active { display:block; animation:fadeUp .35s ease; }
@keyframes fadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.section-heading { align-items:end; margin-bottom:30px; }
.section-heading h2,.admin-view h2 { font-family:var(--serif); font-size:clamp(2.1rem,4vw,4.5rem); font-weight:400; letter-spacing:-.045em; line-height:.98; margin:10px 0 0; max-width:820px; }
.heading-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.select-control { border:1px solid var(--line); background:rgba(255,255,255,.6); border-radius:999px; padding:10px 36px 10px 14px; color:var(--ink); }
.featured-card { min-height:390px; border-radius:34px; overflow:hidden; background:#1b1a17; margin-bottom:18px; position:relative; box-shadow:var(--shadow); }
.featured-card img,.featured-card video { width:100%; height:clamp(390px,58vh,720px); object-fit:cover; display:block; opacity:.86; }
.featured-card::after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.54)); pointer-events:none; }
.featured-info { position:absolute; left:28px; right:28px; bottom:24px; z-index:2; color:white; display:flex; justify-content:space-between; align-items:end; gap:16px; }
.featured-info h3 { font-family:var(--serif); font-size:2rem; font-weight:400; margin:0 0 4px; }
.featured-info small{opacity:.8}.featured-placeholder{display:grid;place-items:center;text-align:center;min-height:390px;color:#d7d2c8}.featured-placeholder span{font-size:3rem;display:block}.featured-placeholder p{font-family:var(--serif);font-size:1.2rem}
.gallery { columns:4 260px; column-gap:14px; }
.memory-card { break-inside:avoid; margin-bottom:14px; border-radius:20px; overflow:hidden; position:relative; background:#ddd8ce; cursor:pointer; box-shadow:0 8px 25px rgba(0,0,0,.06); }
.memory-card img,.memory-card video { display:block; width:100%; height:auto; min-height:180px; object-fit:cover; }
.memory-card .memory-overlay { position:absolute; inset:auto 0 0; padding:42px 14px 12px; background:linear-gradient(transparent,rgba(0,0,0,.66)); color:white; display:flex; justify-content:space-between; align-items:end; opacity:0; transition:.2s ease; }
.memory-card:hover .memory-overlay{opacity:1}.memory-overlay span{font-size:.78rem}.heart-btn{border:0;background:rgba(255,255,255,.18);color:white;border-radius:999px;padding:7px 10px;backdrop-filter:blur(8px)}.heart-btn.loved{background:white;color:#b8424b}
.empty-state { text-align:center; padding:80px 20px; border:1px dashed rgba(23,23,19,.18); border-radius:28px; }
.empty-state.hidden{display:none}.empty-icon{font-size:2.2rem}.empty-state h3{font-family:var(--serif);font-size:2rem;font-weight:400;margin:14px 0 8px}.empty-state p{color:var(--muted);max-width:560px;margin:0 auto 22px;line-height:1.6}
.card,.admin-card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:0 16px 55px rgba(47,39,29,.05); backdrop-filter:blur(12px); }
.challenge-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.challenge-card { position:relative; min-height:220px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.challenge-number{font-family:var(--serif);font-size:3rem;color:#bbb3a4}.challenge-card h3{font-family:var(--serif);font-size:1.55rem;font-weight:400;margin:12px 0 8px}.challenge-card p{color:var(--muted);margin:0;line-height:1.5}.challenge-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.challenge-points{font-size:.75rem;font-weight:800;letter-spacing:.08em}.challenge-done{border:1px solid var(--line);background:white;border-radius:50%;width:38px;height:38px}.challenge-done.completed{background:var(--ink);color:white}
.score-pill,.soft-badge { padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);white-space:nowrap}.soft-badge{padding:7px 10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
.leaderboard { margin-top:16px; }
.leader-row { display:grid; grid-template-columns:42px 1fr auto; gap:12px; align-items:center; padding:13px 0; border-top:1px solid var(--line); }.leader-row:first-of-type{margin-top:16px}.leader-rank{font-family:var(--serif);font-size:1.3rem;color:var(--muted)}.leader-row strong{font-size:.92rem}.leader-row span:last-child{font-weight:800}
.guestbook-layout{display:grid;grid-template-columns:minmax(300px,.75fr) 1.25fr;gap:16px;align-items:start}.guestbook-form{position:sticky;top:92px}.guestbook-form label,.settings-form label{display:grid;gap:8px;font-size:.78rem;font-weight:800;margin-bottom:16px}.guestbook-form label>span,.settings-form label>span{font-weight:400}.guestbook-form input,.guestbook-form textarea,.settings-form input,.settings-form textarea,.inline-form input,.identity-card input{width:100%;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.72);padding:13px 14px;outline:none}.guestbook-form textarea,.settings-form textarea{resize:vertical}.guestbook-form input:focus,.guestbook-form textarea:focus,.settings-form input:focus,.settings-form textarea:focus,.inline-form input:focus,.identity-card input:focus{border-color:rgba(23,23,19,.45);box-shadow:0 0 0 3px rgba(23,23,19,.05)}
.switch-row{grid-template-columns:auto 1fr!important;align-items:start}.switch-row input{width:auto;margin-top:4px}.switch-row span{display:grid;gap:2px}.switch-row small{color:var(--muted);font-weight:400;line-height:1.4}.form-note{font-size:.8rem;color:var(--muted);min-height:1.2em}
.guestbook-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.message-card{min-height:190px;display:flex;flex-direction:column;justify-content:space-between}.message-card blockquote{font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.35;margin:10px 0 24px}.message-card footer{font-size:.77rem;color:var(--muted)}.message-private{background:#181815;color:white}.message-private .eyebrow,.message-private footer{color:#aaa69e}
.info-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:14px}.info-grid h3,.song-section h3{font-family:var(--serif);font-size:1.7rem;font-weight:400;margin:11px 0 8px}.text-link{font-size:.83rem;font-weight:800;text-underline-offset:3px}.timeline{margin-top:18px}.timeline-item{display:grid;grid-template-columns:70px 14px 1fr;gap:10px;align-items:start}.timeline-time{font-weight:800;font-size:.8rem}.timeline-line{display:grid;justify-items:center;height:52px}.timeline-line::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink)}.timeline-line::after{content:"";width:1px;flex:1;background:var(--line)}.timeline-item:last-child .timeline-line::after{display:none}.timeline-item strong{font-family:var(--serif);font-weight:400;font-size:1.05rem}.timeline-item small{display:block;color:var(--muted);margin-top:2px}.copy-line{width:100%;display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);background:white;border-radius:14px;padding:12px 13px}.copy-line span{font-family:monospace}.copy-line small{color:var(--muted)}
.song-section{margin-top:14px}.inline-form{display:flex;gap:10px;margin:18px 0}.inline-form input{flex:1}.song-list{display:grid;gap:8px}.song-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.song-row button{border:1px solid var(--line);border-radius:999px;background:white;padding:7px 10px}.song-row small{color:var(--muted)}
.floating-upload{position:fixed;right:22px;bottom:22px;z-index:45;width:58px;height:58px;border:0;border-radius:50%;background:var(--ink);color:white;font-size:1.8rem;box-shadow:0 16px 35px rgba(0,0,0,.2);display:none}
dialog{border:0}.sheet{width:min(720px,calc(100% - 24px));max-height:92vh;border-radius:30px;padding:0;background:var(--paper);box-shadow:0 35px 100px rgba(0,0,0,.32)}.sheet::backdrop,.camera-dialog::backdrop,.viewer-dialog::backdrop{background:rgba(18,17,14,.72);backdrop-filter:blur(10px)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}.sheet-header h2{font-family:var(--serif);font-size:2rem;font-weight:400;margin:6px 0 0}.sheet-body{padding:20px 24px 24px;overflow:auto;max-height:calc(92vh - 90px)}.upload-dropzone{border:1px dashed rgba(23,23,19,.25);border-radius:24px;padding:34px 20px;text-align:center;background:rgba(255,255,255,.35)}.upload-icon{width:50px;height:50px;display:grid;place-items:center;margin:auto;border-radius:50%;background:var(--ink);color:white;font-size:1.5rem}.upload-dropzone h3{font-family:var(--serif);font-size:1.7rem;font-weight:400;margin:15px 0 6px}.upload-dropzone p{color:var(--muted);margin:0}.upload-buttons{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:18px}.file-label{cursor:pointer}.identity-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px;border-radius:20px;background:rgba(255,255,255,.52);margin-top:12px}.identity-card label{display:grid;gap:7px;font-size:.78rem;font-weight:800}.identity-card label span{font-weight:400;color:var(--muted)}.selected-files{display:grid;gap:8px;margin-top:12px}.selected-file{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid var(--line);border-radius:14px}.selected-thumb{width:42px;height:42px;border-radius:10px;object-fit:cover;background:#ddd}.selected-file strong{font-size:.8rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}.selected-file small{font-size:.72rem;color:var(--muted)}.selected-file button{border:0;background:transparent;font-size:1.1rem}.file-progress{height:3px;background:#ddd;border-radius:999px;overflow:hidden;margin-top:5px}.file-progress span{display:block;height:100%;background:var(--ink);width:0;transition:.2s}.upload-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:18px}
.camera-dialog{padding:0;background:#090909;color:white;width:min(540px,calc(100% - 20px));border-radius:32px;overflow:hidden}.camera-shell{min-height:min(820px,92vh);display:flex;flex-direction:column}.camera-topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;font-size:.72rem;letter-spacing:.12em}.camera-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e95555;margin-right:7px}.camera-dialog .icon-btn{color:white;border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.08)}.camera-view{margin:0 16px;flex:1;border-radius:24px;position:relative;overflow:hidden;background:radial-gradient(circle at 70% 20%,#59554b,transparent 30%),linear-gradient(145deg,#2e2d29,#0f0f0e)}.camera-copy{position:absolute;left:28px;bottom:34px}.camera-copy span{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#c8c2b7}.camera-copy h2{font-family:var(--serif);font-weight:400;font-size:2.8rem;line-height:.95;margin:10px 0}.camera-copy p{color:#c6c1b8}.viewfinder-corners::before,.viewfinder-corners::after{content:"";position:absolute;width:48px;height:48px;border-top:1px solid white;top:22px}.viewfinder-corners::before{left:22px;border-left:1px solid white}.viewfinder-corners::after{right:22px;border-right:1px solid white}.shutter{display:grid;place-items:center;padding:20px;cursor:pointer}.shutter>span{width:66px;height:66px;border-radius:50%;border:4px solid white;position:relative}.shutter>span::after{content:"";position:absolute;inset:6px;border-radius:50%;background:white}.shutter.disabled{opacity:.28;pointer-events:none}
.viewer-dialog{padding:0;background:#10100e;color:white;width:min(1100px,calc(100% - 20px));height:min(900px,calc(100vh - 20px));border-radius:24px;overflow:hidden}.viewer-close{position:absolute;right:16px;top:16px;z-index:3;background:rgba(0,0,0,.35);color:white;border-color:rgba(255,255,255,.2)}.viewer-content{height:calc(100% - 90px);display:grid;place-items:center;background:#050505}.viewer-content img,.viewer-content video{max-width:100%;max-height:100%;object-fit:contain}.viewer-meta{height:90px;padding:17px 22px;display:flex;justify-content:space-between;align-items:center}.viewer-meta strong{font-family:var(--serif);font-size:1.2rem}.viewer-meta small{color:#aaa}
.toast{position:fixed;z-index:999;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#151513;color:white;border-radius:999px;padding:11px 17px;box-shadow:0 12px 40px rgba(0,0,0,.25);font-size:.83rem;font-weight:700;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Admin */
.admin-body{background:#efebe3}.admin-shell{min-height:100vh;display:grid;grid-template-columns:270px 1fr}.admin-sidebar{position:sticky;top:0;height:100vh;background:#151512;color:white;padding:28px 22px;display:flex;flex-direction:column;justify-content:space-between}.admin-sidebar .eyebrow{color:#8d8a81}.admin-sidebar h2{font-family:var(--serif);font-weight:400;font-size:2rem;margin:12px 0}.admin-sidebar nav{display:grid;gap:5px;margin-top:50px}.admin-nav{border:0;background:transparent;color:#aaa79f;text-align:left;border-radius:13px;padding:12px 14px;font-weight:750}.admin-nav.active,.admin-nav:hover{background:#292923;color:white}.sidebar-footer{font-size:.8rem}.admin-main{padding:38px clamp(24px,4vw,68px) 80px;min-width:0}.admin-topbar{align-items:end;margin-bottom:34px}.admin-topbar h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,5vw,5rem);letter-spacing:-.05em;margin:8px 0 0}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-view{display:none}.admin-view.active{display:block;animation:fadeUp .3s ease}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px}.metric-card span{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.metric-card strong{font-family:var(--serif);font-size:2.7rem;font-weight:400;display:block;margin:10px 0 4px}.metric-card small{color:var(--muted)}.admin-grid-2{display:grid;grid-template-columns:1.35fr .65fr;gap:12px;margin-top:12px}.admin-card{background:rgba(255,255,255,.72)}.admin-card h3{font-family:var(--serif);font-size:1.7rem;font-weight:400;margin:9px 0}.admin-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:18px}.admin-gallery-item{aspect-ratio:1;border-radius:12px;overflow:hidden;background:#ddd}.admin-gallery-item img,.admin-gallery-item video{width:100%;height:100%;object-fit:cover}.control-list{margin-top:18px}.control-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--line);padding:14px 0}.control-row span{display:grid;gap:3px}.control-row small{color:var(--muted)}.control-row input{width:38px;height:22px}.moderation-heading{align-items:end;margin-bottom:22px}.filter-pills{display:flex;gap:7px}.pill{border:1px solid var(--line);background:white;border-radius:999px;padding:9px 12px;font-size:.8rem;font-weight:800}.pill.active{background:var(--ink);color:white}.moderation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.moderation-item{background:white;border-radius:18px;overflow:hidden;border:1px solid var(--line)}.moderation-media{aspect-ratio:1;background:#ddd}.moderation-media img,.moderation-media video{width:100%;height:100%;object-fit:cover}.moderation-meta{padding:11px}.moderation-meta small{color:var(--muted);display:block}.moderation-actions{display:flex;gap:5px;margin-top:9px}.moderation-actions button{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px;background:white;font-size:.75rem;font-weight:800}.moderation-actions button.approve{background:#181815;color:white}.admin-messages{columns:3 320px;column-gap:12px;margin-top:24px}.admin-messages .message-card{break-inside:avoid;margin-bottom:12px}.settings-form{margin-top:24px;max-width:980px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
/* Wall */
.wall-body{margin:0;background:#0e0e0c;color:#fff;overflow:hidden;height:100vh;display:grid;grid-template-rows:auto 1fr auto}.wall-header,.wall-footer{display:flex;justify-content:space-between;align-items:center;padding:24px 34px}.wall-header h1{font-family:var(--serif);font-weight:400;font-size:3rem;letter-spacing:-.04em;margin:5px 0 0}.wall-header .eyebrow{color:#8e8b84}.wall-counter{text-align:right}.wall-counter strong{display:block;font-family:var(--serif);font-weight:400;font-size:2.2rem}.wall-counter span{font-size:.7rem;color:#99968f;text-transform:uppercase;letter-spacing:.1em}.wall-stage{min-height:0;position:relative;margin:0 22px 8px;border-radius:30px;overflow:hidden;background:#191917;display:grid;place-items:center}.wall-stage img,.wall-stage video{width:100%;height:100%;object-fit:contain;position:absolute;inset:0;animation:wallReveal .7s ease}.wall-stage.cover img,.wall-stage.cover video{object-fit:cover}.wall-empty{font-family:var(--serif);color:#9b978f;font-size:1.4rem}.wall-media-caption{position:absolute;left:28px;bottom:24px;z-index:3;background:rgba(0,0,0,.45);padding:10px 14px;border-radius:999px;backdrop-filter:blur(8px);font-size:.8rem}.wall-footer{padding-top:12px;color:#aaa69e;font-family:var(--serif);font-style:italic}.wall-pulse{font-family:var(--sans);font-style:normal;font-size:.7rem;letter-spacing:.12em;color:#e77d7d}@keyframes wallReveal{from{opacity:0;transform:scale(1.015)}to{opacity:1;transform:none}}
@media(max-width:980px){.challenge-grid{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr 1fr}.guestbook-layout{grid-template-columns:1fr}.guestbook-form{position:static}.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;display:block;padding:18px}.admin-sidebar nav{display:flex;overflow:auto;margin:18px 0 0}.sidebar-footer{display:none}.metrics-grid{grid-template-columns:1fr 1fr}.admin-grid-2{grid-template-columns:1fr}.moderation-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.hero{min-height:76vh;padding:20px 18px 26px}.hero-copy{margin:40px 0 24px}.hero h1{font-size:clamp(3.6rem,23vw,7rem);line-height:.83}.hero-actions>*{flex:1}.event-stats{margin-top:22px}.event-stats div{padding:11px 10px}.event-stats strong{font-size:1.3rem}.event-stats span{font-size:.58rem}.tabbar{justify-content:flex-start}.panel{padding:44px 0 82px}.section-heading,.admin-topbar,.moderation-heading{align-items:flex-start;flex-direction:column}.section-heading h2{font-size:2.7rem}.heading-actions{justify-content:flex-start}.featured-card{min-height:310px;border-radius:24px}.featured-card img,.featured-card video{height:390px}.featured-info{left:18px;right:18px;bottom:17px}.gallery{columns:2 140px;column-gap:8px}.memory-card{margin-bottom:8px;border-radius:13px}.memory-card .memory-overlay{opacity:1;padding:35px 9px 8px}.challenge-grid{grid-template-columns:1fr}.guestbook-feed{grid-template-columns:1fr}.info-grid{grid-template-columns:1fr}.inline-form{flex-direction:column}.floating-upload{display:grid;place-items:center}.identity-card{grid-template-columns:1fr}.upload-footer{align-items:stretch;flex-direction:column}.upload-footer .primary-btn{width:100%}.sheet{width:100%;max-height:96vh;border-radius:28px 28px 0 0;margin:auto 0 0}.sheet-body{max-height:calc(96vh - 90px)}.metrics-grid{grid-template-columns:1fr 1fr}.metric-card strong{font-size:2rem}.admin-main{padding:26px 16px 60px}.admin-actions{width:100%;justify-content:flex-start}.moderation-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.wall-header{padding:18px}.wall-header h1{font-size:2rem}.wall-stage{margin:0 10px;border-radius:20px}.wall-footer{padding:12px 18px}.wall-counter{display:none}}

.storage-warning {
  margin: 0 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(135, 45, 25, .28);
  border-radius: 14px;
  background: rgba(172, 72, 45, .09);
  font-size: .92rem;
  line-height: 1.45;
}
.storage-warning.hidden { display: none; }

/* David & Ligia — photo-only experience */
.photo-only-body { background: #f7f3ec; }
.photo-hero { min-height: 92vh; padding-bottom: 34px; background:
  radial-gradient(circle at 84% 10%, rgba(255,255,255,.92), transparent 30%),
  radial-gradient(circle at 8% 88%, rgba(198,174,139,.24), transparent 28%),
  linear-gradient(140deg,#faf8f3 0%,#f0e8dc 62%,#e6dac8 100%); }
.photo-hero::after { opacity:.65; }
.photo-hero-top { align-items:flex-start; }
.hero-mark { font-family:var(--serif); font-style:italic; font-size:1rem; color:#8b7d69; border:1px solid var(--line); border-radius:999px; padding:8px 11px; background:rgba(255,255,255,.38); }
.photo-hero-copy { max-width:1100px; margin-top:70px; }
.photo-hero-copy h1 { margin-bottom:38px; }
.hero-story { max-width:760px; line-height:1.38; }
.hero-story strong { font-weight:400; }
.story-link { display:inline-flex; gap:10px; align-items:center; margin-top:30px; text-decoration:none; font-weight:800; border-bottom:1px solid rgba(23,23,19,.25); padding-bottom:5px; position:relative; z-index:2; }
.story-link span { transition:.2s ease; }.story-link:hover span { transform:translateY(3px); }
.photo-actions { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:12px; width:min(980px,100%); margin-top:42px; }
.photo-action-card { display:grid; grid-template-columns:auto 1fr auto; gap:17px; align-items:center; padding:20px 22px; border:1px solid var(--line); border-radius:24px; background:rgba(255,255,255,.58); backdrop-filter:blur(14px); cursor:pointer; box-shadow:0 14px 42px rgba(51,42,30,.06); transition:.2s ease; }
.photo-action-card:hover { transform:translateY(-3px); background:rgba(255,255,255,.85); box-shadow:0 20px 50px rgba(51,42,30,.10); }
.photo-action-icon { width:50px; height:50px; border-radius:50%; display:grid; place-items:center; background:#171713; color:white; font-size:1.25rem; }
.upload-action .photo-action-icon { font-family:var(--serif); font-size:1.6rem; }
.photo-action-copy { display:grid; gap:5px; }.photo-action-copy strong { font-family:var(--serif); font-size:1.35rem; font-weight:400; }.photo-action-copy small { color:var(--muted); line-height:1.45; }
.photo-action-arrow { font-size:1.35rem; color:#817666; }
.photo-stats { width:min(370px,100%); margin-top:22px; }
.photo-main { width:min(1420px,calc(100% - 36px)); margin:0 auto; }
.album-intro { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:82px 0 38px; }
.album-intro h2 { font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(2.25rem,4.6vw,5rem); line-height:1.03; letter-spacing:-.045em; max-width:1000px; margin:14px 0 0; }
.photo-album-section { padding-bottom:110px; }
.warm-placeholder { color:#d9d2c7; background:radial-gradient(circle at 65% 25%,#3b3932,transparent 28%),linear-gradient(145deg,#24231f,#11110f); }
.warm-placeholder>div { max-width:620px; padding:28px; }.warm-placeholder h3 { font-family:var(--serif); font-size:clamp(2rem,4vw,3.6rem); font-weight:400; margin:18px 0 8px; }.warm-placeholder p { color:#bdb7ac; line-height:1.6; font-family:var(--sans); font-size:1rem; }
.gallery-toolbar { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:34px 0 16px; }.gallery-toolbar p { margin:7px 0 0; color:var(--muted); }
.photo-memory-card .simple-overlay { opacity:0; justify-content:flex-start; }.photo-memory-card:hover .simple-overlay { opacity:1; }
.photo-identity-card { grid-template-columns:1fr; }
.photo-admin-metrics { grid-template-columns:repeat(3,1fr); }
@media(max-width:680px){
  .photo-hero { min-height:auto; padding-bottom:28px; }
  .photo-hero-copy { margin:48px 0 18px; }
  .photo-hero-copy h1 { font-size:clamp(4rem,22vw,6.4rem); margin:20px 0 26px; }
  .hero-story { font-size:1.22rem; }
  .story-link { margin-top:20px; }
  .photo-actions { grid-template-columns:1fr; margin-top:34px; }
  .photo-action-card { padding:17px; border-radius:20px; }
  .photo-action-copy strong { font-size:1.22rem; }
  .photo-action-copy small { font-size:.83rem; }
  .photo-stats { margin-top:16px; }
  .album-intro { padding:56px 0 28px; align-items:flex-start; flex-direction:column; }
  .album-intro h2 { font-size:2.65rem; }
  .gallery-toolbar { align-items:flex-start; flex-direction:column; }
  .photo-memory-card .simple-overlay { opacity:1; }
  .photo-admin-metrics { grid-template-columns:1fr 1fr; }
}
