*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#05070d;color:#f0f4ff}.landing-container,.dashboard-container{position:relative;width:100vw;height:100vh;overflow:hidden}.landing-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}.landing-logo{font-size:3rem;letter-spacing:.3em;font-weight:300}.landing-tagline{font-size:1.1rem;opacity:.8;margin-top:.5rem}.landing-actions{pointer-events:auto;margin-top:2rem;display:flex;gap:1rem}.landing-actions button{padding:.75rem 1.75rem;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:#ffffff14;color:#fff;cursor:pointer;font-size:.95rem;backdrop-filter:blur(6px);transition:background .2s}.landing-actions button:hover{background:#ffffff2e}.landing-actions .secondary{background:transparent}.try-demo-link{pointer-events:auto;margin-top:1.25rem;background:none;border:none;color:#f0f4ff;opacity:.7;font-size:.85rem;cursor:pointer;text-decoration:underline}.try-demo-link:hover{opacity:1}.dashboard-toolbar{position:absolute;top:1.5rem;left:1.5rem;display:flex;gap:1rem;z-index:10;align-items:center}.dashboard-toolbar button,.dashboard-toolbar a{padding:.6rem 1.2rem;border-radius:8px;background:#ffffff1a;color:#fff;border:none;text-decoration:none;cursor:pointer}.demo-badge{padding:.5rem 1rem;background:#ffb34726;color:#ffb347;border-radius:8px;font-size:.85rem;font-weight:500}.tree-panel{position:fixed;top:0;right:0;width:60vw;height:100vh;background:#080a12f7;backdrop-filter:blur(10px);z-index:50;padding:2rem;overflow:auto}.tree-panel-close{position:absolute;top:1rem;right:1.5rem;font-size:1.5rem;background:none;color:#fff;border:none;cursor:pointer}.tree-panel-canvas{width:100%;height:100%}.auth-page{max-width:400px;margin:5rem auto;padding:2rem}.auth-page form{display:flex;flex-direction:column;gap:1rem}.auth-page input{padding:.75rem;border-radius:8px;border:1px solid #333;background:#10131c;color:#fff}.auth-page button{padding:.75rem;border-radius:8px;background:#5aa9ff;border:none;color:#05070d;font-weight:600;cursor:pointer}.consent-note{font-size:.8rem;opacity:.7;line-height:1.4}.error{color:#ff6b6b}.consent-page{max-width:600px;margin:4rem auto;padding:2rem}.consent-row{margin-bottom:1.25rem}.consent-warn{font-size:.8rem;color:#ffb347;margin-left:1.6rem}.profile-page{max-width:600px;margin:4rem auto;padding:2rem}.profile-card{background:#ffffff0d;border-radius:16px;padding:2rem}.profile-photo{width:100px;height:100px;border-radius:50%;object-fit:cover;margin-bottom:1rem}.memorial-dates{opacity:.7;font-style:italic}.profile-actions{display:flex;gap:1rem;margin-top:1.5rem;align-items:center}.profile-actions button{padding:.6rem 1.2rem;border-radius:8px;background:#5aa9ff;border:none;color:#05070d;font-weight:600;cursor:pointer}.profile-actions a{color:#5aa9ff;font-size:.9rem}.attestation-badge{display:inline-block;font-size:.75rem;opacity:.7;margin-top:.75rem;padding:.3rem .7rem;background:#6ee7a01a;border-radius:999px}.add-person-form{display:flex;flex-direction:column;gap:.75rem;max-width:480px;margin:2rem auto}.add-person-form input,.add-person-form select,.add-person-form textarea{padding:.75rem;border-radius:8px;border:1px solid #333;background:#10131c;color:#fff}.attestation-block{background:#ffb34714;border:1px solid rgba(255,179,71,.3);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.attestation-title{font-size:.85rem;opacity:.85}.attestation-checkbox{display:flex;gap:.5rem;font-size:.8rem;line-height:1.4;align-items:flex-start}.timeline-scrubber{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:1rem;background:#080a12bf;backdrop-filter:blur(8px);padding:.75rem 1.5rem;border-radius:999px;border:1px solid rgba(255,255,255,.15)}.timeline-scrubber input[type=range]{width:320px;accent-color:#5aa9ff}.timeline-scrubber span{font-size:.9rem;color:#f0f4ff;min-width:3.5ch;text-align:right}.matches-page{max-width:640px;margin:3rem auto;padding:2rem}.matches-page button{margin:1rem 0;padding:.7rem 1.4rem;border-radius:8px;background:#5aa9ff;border:none;color:#05070d;font-weight:600;cursor:pointer}.matches-empty{opacity:.6;margin-top:2rem}.matches-list{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem}.match-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:1.5rem}.match-card-header{margin-bottom:.75rem}.match-confidence{display:inline-block;background:#5aa9ff26;color:#5aa9ff;padding:.25rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600}.match-description{margin-bottom:.5rem;line-height:1.5}.match-candidate{font-size:1.1rem;margin-bottom:.5rem}.match-years{opacity:.6;font-style:italic}.match-note{font-size:.8rem;opacity:.65;margin-bottom:1rem}.match-actions{display:flex;gap:.75rem}.match-actions button{padding:.6rem 1.2rem;border-radius:8px;border:none;cursor:pointer;font-weight:500}.match-actions button:first-child{background:#5aa9ff;color:#05070d}.match-actions .secondary{background:#ffffff14;color:#fff}.match-pending{color:#ffb347;font-size:.85rem;margin-top:.75rem}.match-success{color:#6ee7a0;font-size:.85rem;margin-top:.75rem}.memorial-page{max-width:600px;margin:4rem auto;padding:2rem}.memorial-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:2.5rem;text-align:center}.memorial-photo{width:140px;height:140px;border-radius:50%;object-fit:cover;margin-bottom:1.25rem}.memorial-bio{line-height:1.6;margin-bottom:1.5rem;text-align:left}.memorial-relations{list-style:none;text-align:left;margin-top:.5rem}.memorial-relations li{padding:.35rem 0;opacity:.85}.memorial-footer-note{font-size:.75rem;opacity:.5;margin-top:2rem}.add-person-page{max-width:560px;margin:3rem auto;padding:2rem}
