:root{--ink: #2b0709;--burgundy: #521010;--wine: #8a181d;--gold: #b8913f;--gold-soft: #cdaa64;--paper: #f7f1e6;--card: #fffdf8;--line: #e7dcc8;--text: #2e1a17;--muted: #7a6559}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text);font-family:EB Garamond,Georgia,serif;font-size:17px;line-height:1.5}::selection{background:var(--gold-soft);color:var(--ink)}:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:4px}button{font:inherit;cursor:pointer}.top{background:var(--burgundy);color:#f4ecda}.top__inner{display:flex;align-items:center;gap:16px;max-width:1080px;margin:0 auto;padding:22px 20px 14px}.top__mono{margin:0;font-family:Bodoni Moda,serif;font-size:30px;color:#e2d184}.top__mono em{font-family:Pinyon Script,cursive;font-style:normal;font-size:.75em}.top h1{margin:0;font-family:Bodoni Moda,serif;font-weight:500;font-size:22px;letter-spacing:.08em}.top__sub{margin:0;font-size:14.5px;color:#f4ecdab8}.top .ghost{margin-left:auto;color:#e2d184;border-color:#e2d18473}.tabs{display:flex;gap:4px;max-width:1080px;margin:0 auto;padding:0 20px}.tabs button{padding:12px 18px 14px;border:0;border-bottom:2px solid transparent;background:none;color:#f4ecdab3;font-size:16px}.tabs button span{margin-left:6px;font-size:13.5px;opacity:.75;font-variant-numeric:tabular-nums}.tabs button[aria-selected=true]{color:#fff;border-bottom-color:#e2d184}.wrap{max-width:1080px;margin:0 auto;padding:24px 20px 60px}.gate{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.stats{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin-bottom:20px}.stat{padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.stat__label{margin:0 0 4px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.stat__value{margin:0;font-family:EB Garamond,serif;font-weight:500;font-size:38px;line-height:1.1;color:var(--burgundy);font-variant-numeric:tabular-nums}.stat__value small{font-size:20px;color:var(--muted)}.stat__note{margin:8px 0 0;font-size:14.5px;color:var(--muted)}.bar{height:6px;margin-top:12px;border-radius:6px;background:#efe5d4;overflow:hidden}.bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--burgundy),var(--wine));transition:transform .6s cubic-bezier(.16,1,.3,1)}.panel{margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:var(--card);overflow:hidden}.panel__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line)}.panel h2{margin:0;font-family:Bodoni Moda,serif;font-weight:500;font-size:19px;color:var(--burgundy)}.panel__tools{display:flex;gap:8px}.panel input[type=search]{width:220px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font:inherit;font-size:15.5px;color:var(--text)}.ghost{padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:none;color:var(--burgundy);font-size:14.5px;letter-spacing:.04em}.ghost:hover{background:#5210100f}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:16px}th{padding:10px 20px;text-align:left;font-size:12.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:#fbf7ef}td{padding:11px 20px;border-top:1px solid #f0e8da;font-variant-numeric:tabular-nums}.num{text-align:right}td.num{font-weight:600;color:var(--burgundy)}td a{color:var(--wine);text-decoration:none}tr:hover td{background:#fdf9f1}.empty{margin:0;padding:18px 20px;color:var(--muted);font-style:italic}.wishes{list-style:none;margin:0;padding:0}.wishes li{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 20px;border-top:1px solid #f0e8da}.wishes li:first-child{border-top:0}.wishes li.is-hidden{opacity:.45}.w__name{font-weight:600;color:var(--burgundy)}.w__meta{font-size:13.5px;color:var(--muted)}.w__msg{grid-column:1 / -1;margin:0;white-space:pre-line}@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}.stat--main{grid-column:1 / -1}.panel input[type=search],.panel__tools{width:100%}td,th{padding-left:14px;padding-right:14px}}
