:root{--cream:#faf3e7;--paper:#fffaf1;--ink:#2b1d16;--muted:#6f5a4e;--wine:#7a2e1e;--wine-dark:#5c2116;--gold:#b98a3c;--sage:#5b6f52;--line:#7a2e1e2e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at 15% 10%, #b98a3c29, transparent 45%), radial-gradient(circle at 85% 90%, #5b6f521f, transparent 40%), var(--cream);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif}h1,h2,h3{letter-spacing:-.01em;margin:0;font-family:Fraunces,Georgia,serif;font-weight:600}p{margin:0;line-height:1.6}.shell{width:min(680px,100%);margin:0 auto;padding:28px 18px 64px}.invite{border:1px solid var(--line);background:linear-gradient(160deg,#fffaf1 0%,#f7ecd9 100%);border-radius:22px;padding:34px 26px 30px;position:relative;overflow:hidden;box-shadow:0 24px 60px -34px #3c1e0f73}.invite:before,.invite:after{content:"";border:1px solid #b98a3c59;border-radius:50%;width:150px;height:150px;position:absolute}.invite:before{top:-78px;right:-58px}.invite:after{border-color:#7a2e1e24;width:180px;height:180px;bottom:-90px;left:-60px}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--wine);font-size:11px;font-weight:600}.invite h1{color:var(--wine-dark);margin-top:10px;font-size:clamp(28px,7.5vw,38px);line-height:1.08}.motto{color:var(--muted);margin-top:10px;font-family:Fraunces,Georgia,serif;font-size:17px;font-style:italic}.verse{letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-top:14px;font-size:12.5px;font-weight:600}.date-strip{background:var(--wine);color:#fff6e9;border-radius:999px;align-items:center;gap:10px;margin-top:22px;padding:9px 14px;font-size:13px;font-weight:500;display:inline-flex}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;margin-top:20px;padding:24px 22px;box-shadow:0 18px 44px -30px #3c1e0f66}.card h2{color:var(--wine-dark);font-size:21px}.card .hint{color:var(--muted);margin-top:6px;font-size:13.5px}.field{margin-top:18px;display:block}.field span{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:7px;font-size:11.5px;font-weight:600;display:block}.field input,.field select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:12px;outline:none;padding:13px 14px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--wine);box-shadow:0 0 0 3px #7a2e1e1f}.btn{background:var(--wine);color:#fff6e9;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;width:100%;margin-top:22px;padding:15px 20px;font-family:inherit;font-size:16px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--wine-dark)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.55;cursor:default}.alert{color:var(--wine-dark);background:#7a2e1e14;border:1px solid #7a2e1e33;border-radius:12px;margin-top:18px;padding:13px 15px;font-size:14px}.alert.ok{color:#3d4d37;background:#5b6f521a;border-color:#5b6f5247}.greeting{text-align:center;margin-top:20px}.greeting h2{color:var(--wine-dark);font-size:clamp(24px,6vw,30px)}.greeting p{color:var(--muted);margin-top:8px;font-size:14.5px}.badge{color:#40503a;background:#5b6f521f;border-radius:999px;align-items:center;gap:8px;margin-top:14px;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.dot{background:var(--sage);border-radius:50%;width:7px;height:7px}.timeline-head{text-align:center;margin-top:34px}.timeline-head h2{color:var(--wine-dark);font-size:24px}.timeline-head p{color:var(--muted);margin-top:6px;font-size:13px}.timeline{background:var(--paper);border:1px solid var(--line);border-radius:20px;margin-top:20px;overflow:hidden}.slot{border-top:1px solid var(--line);grid-template-columns:94px 1fr;gap:14px;padding:15px 18px;display:grid}.slot:first-child{border-top:0}.slot time{color:var(--wine);white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:2px;font-size:12.5px;font-weight:600}.slot h3{color:var(--ink);font-size:16.5px}.slot p{color:var(--muted);margin-top:3px;font-size:13.5px}.slot.key{background:linear-gradient(90deg,#b98a3c1a,#0000)}.workshops{background:#5b6f5214;border:1px solid #5b6f5233;border-radius:18px;margin-top:18px;padding:20px 20px 22px}.workshops h3{color:#3d4d37;font-size:16px}.workshops p{color:var(--muted);margin-top:6px;font-size:13.5px}.chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chip{color:#3d4d37;background:#fff;border:1px solid #5b6f5247;border-radius:999px;padding:6px 11px;font-size:12.5px}.admin-table{border-collapse:collapse;width:100%;font-size:13.5px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}.admin-table th{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;background:linear-gradient(#fbf1e2,#f6e9d5);font-size:11px}.admin-table tbody tr:nth-child(2n){background:#b98a3c0e}.admin-table tbody tr:hover{background:#7a2e1e11}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table td:first-child{color:var(--ink);font-weight:600}.admin-table code{letter-spacing:.06em;color:var(--wine-dark);background:#b98a3c1f;border:1px solid #b98a3c33;border-radius:7px;padding:3px 7px;font-size:12px;display:inline-block}.sort-btn{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.sort-btn:hover,.sort-btn.active{color:var(--wine-dark)}.sort-btn:focus-visible{outline:2px solid var(--wine);outline-offset:3px;border-radius:4px}.sort-indicator{opacity:.38;font-size:11px;transition:opacity .15s,color .15s}.sort-btn:hover .sort-indicator{opacity:.7}.sort-btn.active .sort-indicator{opacity:1;color:var(--wine)}.stats{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;flex:140px;padding:14px 16px}.stat strong{color:var(--wine-dark);font-family:Fraunces,Georgia,serif;font-size:26px;display:block}.stat span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:12px}.grid-2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.created{background:#5b6f5214;border:1px solid #5b6f5240;border-radius:14px;margin-top:20px;padding:16px 16px 18px}.key-line{letter-spacing:.22em;color:var(--wine-dark);margin-top:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:22px;font-weight:600}.link-line{color:var(--muted);word-break:break-all;margin-top:6px;font-size:12.5px}.actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.btn.small{border-radius:10px;width:auto;margin-top:0;padding:9px 13px;font-size:13px;text-decoration:none}.btn.ghost{color:var(--wine);border:1px solid var(--line);background:0 0}.btn.ghost:hover{background:#7a2e1e0f}.table-wrap{border:1px solid var(--line);background:#fffdf8;border-radius:14px;margin-top:18px;overflow-x:auto;box-shadow:0 12px 32px -28px #3c1e0f80}.table-wrap .admin-table{margin-top:0}.row-actions{flex-wrap:nowrap;gap:5px;display:flex}.row-actions .btn.small{padding:6px 9px;font-size:12px}.tag{color:var(--wine-dark);white-space:nowrap;background:#7a2e1e14;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-block}.tag:before{content:"";opacity:.6;vertical-align:1px;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.tag.ok{color:#40503a;background:#5b6f5224}@media (max-width:520px){.grid-2{grid-template-columns:1fr}.admin-table{font-size:13px}.admin-table th,.admin-table td{padding:10px 12px}}.footer{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:30px;font-size:12px}@media (prefers-reduced-motion:no-preference){.slot,.card,.invite{animation:.5s both rise}.card{animation-delay:50ms}.timeline{animation-delay:.1s}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
