:root{--accent-purple:#bba8f0;--accent-blue:#90c4e9;--accent-red:#8b0000;--accent-purple-dark:#2a1d2e;--surface-1:#111111;--surface-2:#17131b;--surface-3:#1c1722;--line-1:#2e2e33;--line-2:#2a2033;--ink:#faf6ed;--muted:#a899bc;--subtle:#888888;--notif-bg:#2e2e33;--notif-active:#4e0000;--notif-glow:rgba(199,95,95,0.6);--black-a40:rgba(0,0,0,0.4);--supporter-text:#e2d0ff;--supporter-text-muted:rgba(226,208,255,0.8);--supporter-glow:rgba(226,208,255,0.4);--tab-unselected:#d4c8c6;--color-bg:var(--bg);--color-panel:var(--surface-1);--color-panel-alt:var(--surface-2);--color-border:var(--line-1);--color-text:var(--ink);--color-text-muted:var(--muted);--color-text-subtle:var(--subtle);--color-accent:var(--accent-purple);--color-accent-2:var(--accent-blue);--color-accent-3:var(--accent-purple-dark);--color-blood:var(--accent-red);--color-supporter-text:var(--supporter-text);--color-supporter-text-muted:var(--supporter-text-muted);--color-supporter-glow:var(--supporter-glow);--color-tab-unselected:var(--tab-unselected);--color-notif-bg:var(--notif-bg);--color-notif-active:var(--notif-active);--color-notif-glow:var(--notif-glow);--shadow-panel:0 2px 10px var(--black-a40);--friends-max:820px;--friends-list-max:720px;--friends-card-max:680px;--c-bg:#181617;--c-card:#1e1c1d;--c-card-2:#1c1a1b;--c-card-3:#1b191a;--c-border:#2e2e33;--c-border-2:#3a3a3f;--c-text:#faf6ed;--c-muted:#afa4a1;--c-muted-2:#aaa;--c-accent:#c75f5f;--c-accent-2:#c8a8da;--c-danger:#6b1111;--c-danger-border:#8b1a1a;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--pad-sm:10px;--pad-md:14px;--pad-lg:16px;--shadow-soft:0 10px 24px rgba(0,0,0,0.22);--shadow-pop:0 12px 30px rgba(0,0,0,0.32);--ease:160ms ease}.friend-dashboard{max-width:var(--friends-max);margin:2rem auto;padding:1rem}.friend-tabs{border-bottom:1px solid var(--c-border);margin-bottom:1.25rem}.friend-tab-buttons{display:flex;gap:6px;flex-wrap:wrap;width:100%;justify-content:center}.friend-tab-button{padding:.75rem 1.25rem;background:transparent;color:var(--c-muted);border:none;border-bottom:2px solid transparent;font-family:Crimson Text,serif;font-size:1rem;cursor:pointer;transition:color var(--ease),border-color var(--ease),background var(--ease);border-radius:10px 10px 0 0;white-space:nowrap}.friend-tab-button:hover{color:var(--c-text);background:rgba(255,255,255,.03)}.friend-tab-button:focus-visible{outline:2px solid rgba(199,95,95,.55);outline-offset:2px}.friend-tab-button.active{color:var(--c-text);border-color:var(--c-accent);font-weight:700}.friend-tab-panel{display:none}.friend-tab-panel.active{display:block}.friend-list,.friend-request-inbox,.friend-request-sent{margin-bottom:32px}.friend-list h3,.friend-request-inbox h3,.friend-request-sent h3{font-size:1.55rem;font-weight:700;margin:0 0 12px;color:var(--c-text)}.friend-search-bar{padding:.6rem .9rem;margin-bottom:1rem;width:100%;max-width:420px;display:block;margin-left:auto;margin-right:auto;border-radius:var(--radius-sm);border:1px solid #444;background:#1c1c1f;color:#eee;font-family:Crimson Text,serif;font-size:1rem;transition:border-color var(--ease),box-shadow var(--ease)}.friend-search-bar:focus{outline:none;border-color:rgba(200,168,218,.55);box-shadow:0 0 0 3px rgba(200,168,218,.12)}.friend-card-list{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;max-height:640px;max-width:var(--friends-list-max);margin-left:auto;margin-right:auto;overflow-y:auto;padding-right:8px;align-items:start;justify-items:stretch;scrollbar-gutter:stable}.friend-card-list::-webkit-scrollbar{width:8px}.friend-card-list::-webkit-scrollbar-thumb{background:#444;border-radius:999px}.friends-list,.request-list{display:grid;grid-template-columns:1fr;grid-gap:14px;gap:14px;max-width:var(--friends-list-max);margin-left:auto;margin-right:auto;justify-items:stretch;align-items:stretch}.friend-card-list .friend-card,.friends-list .friend-row,.request-list .request-card{width:100%;max-width:none;margin-left:0;margin-right:0}@media (min-width:900px){.friends-list{grid-template-columns:1fr 1fr}}.friend-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:var(--pad-md) var(--pad-lg);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);width:100%;min-height:96px;box-sizing:border-box;transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease);box-shadow:0 8px 22px rgba(0,0,0,.28);max-width:var(--friends-card-max);margin-left:auto;margin-right:auto}.friend-card:hover{border-color:rgba(199,95,95,.35);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.friend-info{display:flex;align-items:center;gap:14px;overflow:hidden;flex:1 1;min-width:0}.friend-avatar{width:64px;height:64px;flex-shrink:0;border-radius:50%;object-fit:cover;border:1px solid #444}.friend-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:1.15rem;line-height:1.2;font-weight:700;color:var(--c-text);text-decoration:none;font-family:Crimson Text,serif;max-width:100%}.friend-name:hover{color:var(--c-accent);text-decoration:underline}.friend-name:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:3px;border-radius:6px}.friend-actions{display:flex;gap:10px;margin-left:auto}.friend-actions button{border:1px solid transparent;padding:8px 14px;border-radius:10px;cursor:pointer;font-size:.95rem;font-family:Crimson Text,serif;transition:transform 70ms ease,filter var(--ease),border-color var(--ease)}.friend-actions button:active{transform:translateY(1px)}.friend-actions button:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:2px}.btn-accept{background:var(--c-danger);color:#fff;border-color:var(--c-danger-border)}.btn-accept:hover{filter:brightness(1.08)}.btn-decline{background:var(--c-border);color:#eee;border-color:var(--c-border-2)}.btn-decline:hover{filter:brightness(1.08)}.friend-menu-wrapper{margin-left:auto;display:flex;align-items:center;position:relative}.friend-ellipsis-button{display:grid;place-items:center;height:34px;width:34px;font-size:1.4rem;border:1px solid transparent;background:transparent;color:var(--c-muted);cursor:pointer;padding:0;border-radius:10px;transition:color var(--ease),background var(--ease),border-color var(--ease)}.friend-ellipsis-button:hover{color:var(--c-text);background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.06)}.friend-ellipsis-button:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:2px}.friend-menu{position:absolute;top:calc(100% + 6px);right:0;background:#1c1c1f;border:1px solid #333;padding:6px;border-radius:10px;z-index:10;min-width:160px;box-shadow:var(--shadow-pop)}.friend-menu button{background:#4f1313;color:#fff;border:none;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:.92rem;font-family:Crimson Text,serif;width:100%;text-align:left;transition:background var(--ease),filter var(--ease)}.friend-menu button:hover{background:#7a1c1c}.friend-request-button,.friend-request-cancel{background:#3a1212;color:var(--c-text);border:1px solid #592020;padding:6px 14px;border-radius:999px;font-family:Crimson Text,serif;font-size:.95rem;cursor:pointer;transition:background var(--ease),border-color var(--ease),filter var(--ease)}.friend-request-button:hover,.friend-request-cancel:hover{background:#7a2b2b;border-color:#a33}.friend-request-status{color:var(--c-muted-2);font-size:.95rem;font-style:italic;font-family:Crimson Text,serif}.friend-pagination{display:flex;justify-content:center;gap:1rem;margin-top:1.25rem}.friend-pagination button{background:#222;color:var(--c-text);border:1px solid #444;padding:7px 12px;border-radius:10px;font-family:Crimson Text,serif;cursor:pointer;transition:background var(--ease),filter var(--ease)}.friend-pagination button:hover{background:#333}.friend-pagination button:disabled{opacity:.45;cursor:not-allowed}.request-card{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:var(--pad-md) var(--pad-lg);background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.015));border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease);box-shadow:0 8px 22px rgba(0,0,0,.28);max-width:var(--friends-card-max);margin-left:auto;margin-right:auto;min-height:96px}.request-card:hover{border-color:rgba(200,168,218,.22);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.rc-left{display:grid;grid-template-columns:64px 1fr;grid-gap:12px;gap:12px;align-items:center;min-width:0}.rc-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid var(--c-border-2)}.rc-name{color:var(--c-text);text-decoration:none;font-weight:700;font-size:1.15rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.rc-name:hover{color:var(--c-accent-2);text-decoration:underline}.rc-actions{display:flex;gap:10px}.rc-btn{padding:8px 14px;border-radius:10px;border:1px solid transparent;cursor:pointer;font-family:Crimson Text,serif;font-size:.98rem;transition:filter var(--ease),transform 70ms ease,border-color var(--ease);min-width:96px;font-weight:700;letter-spacing:.2px}.rc-btn:active{transform:translateY(1px)}.rc-btn:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:2px}.rc-accept{background:linear-gradient(180deg,#7a1717,#5a0f0f);border-color:var(--c-danger-border);color:#fff}.rc-decline{background:linear-gradient(180deg,#2f2f35,#24242a);border-color:var(--c-border-2);color:#eee}.rc-btn:hover{filter:brightness(1.08)}.friend-row{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:12px 14px;background:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,.01));border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-lg);transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease);box-shadow:0 8px 20px rgba(0,0,0,.26);max-width:var(--friends-card-max);margin-left:auto;margin-right:auto;min-height:84px}.friend-row:hover{border-color:rgba(199,95,95,.28);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.fr-left{display:grid;grid-template-columns:48px 1fr;grid-gap:12px;gap:12px;align-items:center;min-width:0}.fr-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;border:1px solid var(--c-border-2)}.fr-name{color:var(--c-text);text-decoration:none;font-weight:700;font-size:1.1rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.fr-name:hover{color:var(--c-accent-2);text-decoration:underline}.fr-name:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:3px;border-radius:6px}.fr-right{position:relative;display:flex;align-items:center}.fr-ellipsis{width:36px;height:36px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--c-muted);cursor:pointer;font-size:1.35rem;border-radius:10px;transition:color var(--ease),background var(--ease),border-color var(--ease)}.fr-ellipsis:hover{color:var(--c-text);background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.06)}.fr-ellipsis:focus-visible{outline:2px solid rgba(200,168,218,.55);outline-offset:2px}.fr-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#1c1c1f;border:1px solid #333;border-radius:10px;padding:6px;min-width:160px;z-index:10;box-shadow:var(--shadow-pop)}.fr-menu[data-open=true]{display:block}.fr-menu button{width:100%;text-align:left;background:#4f1313;color:#fff;border:none;border-radius:8px;padding:8px 10px;font-family:Crimson Text,serif;font-size:.95rem;cursor:pointer;transition:background var(--ease)}.fr-menu button:hover{background:#7a1c1c}@media (max-width:560px){.friend-tab-buttons{justify-content:stretch;gap:8px}.friend-tab-button{flex:1 1;padding:.7rem .75rem;font-size:.95rem;text-align:center;border-radius:12px 12px 0 0}.friend-card{display:grid;grid-template-columns:1fr;grid-template-areas:"info" "actions";align-items:center;grid-row-gap:10px;row-gap:10px}.friend-info{grid-area:info}.friend-actions,.friend-menu-wrapper{grid-area:actions;justify-self:start;margin-left:0}.friend-name{font-size:1.05rem}.request-card{grid-template-columns:1fr}.rc-actions{justify-self:start}.fr-name{-webkit-line-clamp:2}}.fresh-graves-section{margin-top:64px}.fresh-graves-title{font-family:Fredericka the Great,cursive;font-size:2.5rem;text-align:center;color:var(--color-blood,#8B0000);text-shadow:0 0 6px rgba(139,0,0,.7),0 0 12px rgba(139,0,0,.5);display:flex;align-items:center;justify-content:center;gap:14px;line-height:1;margin-bottom:32px;border-bottom:1px solid #322326;padding-bottom:8px}.grave-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));justify-items:center;grid-gap:32px;gap:32px;margin-bottom:60px}.grave-container{position:relative;width:180px;height:auto;text-align:center;cursor:pointer;transition:transform .3s ease}.grave-container:hover{transform:scale(1.05)}.grave-photo-frame{position:relative;width:195px;height:300px;margin:0 auto}.grave-photo-mask{position:absolute;top:83px;left:30px;width:120px;height:160px;border-radius:50%/60%;overflow:hidden;z-index:1;box-shadow:0 0 12px rgba(0,0,0,.6)}.grave-photo{width:100%;height:100%;object-fit:cover;display:block}.gothic-frame-overlay{position:absolute;top:0;left:0;width:185px;height:300px;pointer-events:none;z-index:2}.grave-name{top:300px;left:48%;font-family:Crimson Text,serif;font-size:1.2rem;font-weight:700;color:#f4ede4;white-space:nowrap;z-index:3}.grave-hover,.grave-name{position:absolute;transform:translateX(-50%)}.grave-hover{bottom:-80px;left:50%;background:rgba(15,15,15,.95);border:1px solid #3c3b3b;border-radius:8px;padding:12px;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;font-size:.75rem;color:#ccc;line-height:1.4;width:max-content;max-width:240px;z-index:10}.grave-container:hover .grave-hover{opacity:1;transform:translateX(-50%) translateY(-8px);pointer-events:auto}.grave-location{font-weight:700;color:#e5e0da;margin-bottom:4px}.grave-bands{font-style:italic}.fresh-graves-candle{height:35px;width:auto;display:inline-block;vertical-align:middle;filter:drop-shadow(0 0 6px rgba(255,174,66,.9)) drop-shadow(0 0 12px rgba(255,174,66,.6));animation:candleGlow 2.4s ease-in-out infinite alternate;pointer-events:none}.fresh-graves-candle.left-candle{transform:scaleX(-1)}@keyframes candleGlow{0%{filter:drop-shadow(0 0 4px rgba(255,174,66,.8)) drop-shadow(0 0 8px rgba(255,174,66,.5))}to{filter:drop-shadow(0 0 10px rgba(255,210,120,1)) drop-shadow(0 0 18px rgba(255,174,66,.85))}}.profiles-list .grave-card{max-width:220px;min-height:320px}.profiles-list .grave-card-inner{padding:16px;gap:10px}.profiles-list .grave-name{font-size:1.3rem}.profiles-list .grave-bands{font-size:.85rem;line-height:1.4}@media (max-width:768px){.fresh-graves-section{margin-top:48px}.fresh-graves-title{font-size:2rem;margin-bottom:28px;padding-bottom:6px;gap:10px}.fresh-graves-candle{height:28px}.grave-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));justify-items:center;grid-gap:24px;gap:24px;margin-bottom:48px}.grave-container{width:150px}.gothic-frame-overlay,.grave-photo-frame{width:160px;height:255px}.grave-photo-mask{top:70px;left:22px;width:108px;height:144px}.grave-photo{width:100%;height:100%;object-fit:cover}.grave-name{top:255px;font-size:1.05rem;left:50%;transform:translateX(-50%)}.grave-hover{bottom:-76px;font-size:.72rem;padding:10px 12px;max-width:200px;line-height:1.35}.grave-location{font-size:.78rem}.grave-bands{font-size:.72rem}.profiles-list .grave-card{max-width:180px;min-height:280px}.profiles-list .grave-name{font-size:1.15rem}.profiles-list .grave-bands{font-size:.78rem}}@media (max-width:480px){.fresh-graves-section{text-align:center;margin-top:12px}.fresh-graves-title{font-size:1.75rem;gap:8px}.fresh-graves-candle{height:22px}.grave-grid{display:flex;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:12px;margin:0 auto;padding:0;max-width:100%;box-sizing:border-box;margin-bottom:0!important}.grave-container{width:72px;display:flex;flex-direction:column;align-items:center;gap:4px;margin:0;text-align:center}.grave-photo-frame{width:68px;height:92px;position:relative;margin:0 auto}.gothic-frame-overlay{display:none!important}.grave-photo-mask{position:static!important;top:auto;left:auto;margin:0 auto;width:68px;height:92px;border-radius:50%/60%;overflow:hidden;border:1.5px solid #444;box-shadow:0 0 4px rgba(0,0,0,.5)}.grave-photo{width:100%;height:100%;object-fit:cover}.grave-name{position:static!important;top:auto;left:auto;transform:none;font-size:.7rem;line-height:1.1;text-align:center;color:#f3f0e5;margin-top:6px;max-width:100%;white-space:normal;word-break:break-word}.grave-hover{display:none!important}}@media (prefers-reduced-motion:reduce){.fresh-graves-candle{animation:none}}