@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Inter:wght@400;500;600&display=swap');

:root{
  --bg:#090a0b; --panel:#111416; --panel2:#171a1c; --text:#f0ede5;
  --muted:#a8aaa4; --gold:#caa65a; --gold2:#e3c982; --red:#741f25;
  --line:rgba(202,166,90,.23); --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at 50% -10%,#24201a 0,#0c0d0e 38%,#070808 100%);color:var(--text);font-family:Inter,system-ui,sans-serif;line-height:1.65}
a{color:inherit;text-decoration:none}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;border-bottom:1px solid var(--line);background:rgba(8,9,10,.82);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}
.brand{font:700 22px Cinzel,serif;letter-spacing:.12em}.brand span{color:var(--gold)}
.topbar nav{display:flex;gap:28px;color:#c9c7c0;font-size:14px}.topbar nav a:hover,.topbar>a:last-child:hover{color:var(--gold2)}
main{max-width:var(--max);margin:auto;padding:0 28px}
.hero{min-height:720px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px;padding:70px 0 55px}
.eyebrow{color:var(--gold2);font-size:12px;letter-spacing:.22em;font-weight:600}
h1,h2{font-family:Cinzel,serif;line-height:1.1;font-weight:600}
.hero h1{font-size:clamp(68px,10vw,132px);letter-spacing:.06em;margin:20px 0 5px;text-shadow:0 8px 30px #000}
h2{font-size:clamp(34px,4vw,58px);margin:15px 0 25px}
.lead{font:500 25px Cinzel,serif;color:#ddd3bc}.intro{max-width:600px;color:var(--muted);font-size:18px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:3px;border:1px solid var(--gold);font-weight:600;font-size:14px;cursor:pointer}
.primary{background:var(--gold);color:#17130b}.primary:hover{background:var(--gold2)}
.ghost{background:transparent;color:var(--gold2)}.ghost:hover{background:rgba(202,166,90,.09)}
.crest-card{text-align:center;padding:25px}.crest-card img{width:min(100%,520px);filter:drop-shadow(0 25px 45px rgba(0,0,0,.65));mix-blend-mode:screen}.crest-card small{display:block;color:#8f918c;margin-top:-15px}
.section{padding:30px 0 120px}.two-col{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px}.prose{font-size:17px;color:#c5c5be}.prose p{margin-top:0;margin-bottom:25px}.note{border-left:2px solid var(--gold);padding-left:20px;color:#999b95!important;font-size:14px}
.crest-section{display:grid;grid-template-columns:.7fr .8fr .55fr;align-items:center;gap:40px}.large-crest{width:100%;max-width:470px;margin:auto;mix-blend-mode:screen;filter:drop-shadow(0 20px 35px #000)}
.symbols{display:grid;gap:14px}.symbols span{border:1px solid var(--line);padding:14px 16px;color:#a9aaa4;font-size:13px}.symbols b{display:block;color:var(--gold2);margin-bottom:3px}
.access{padding-bottom:100px}.access-box{border:1px solid var(--line);background:linear-gradient(145deg,rgba(116,31,37,.18),rgba(17,20,22,.92));padding:65px;box-shadow:0 25px 70px rgba(0,0,0,.3)}
footer{border-top:1px solid var(--line);padding:30px 5vw;display:flex;justify-content:center;align-items:center;gap:30px;flex-wrap:wrap;color:#777a75;font-size:12px;letter-spacing:.12em}
.form-page{min-height:calc(100vh - 76px);display:grid;place-items:center;padding-top:60px;padding-bottom:80px}.form-card{width:min(620px,100%);background:var(--panel);border:1px solid var(--line);padding:45px;box-shadow:0 30px 80px #000}.form-card h1{font-size:45px}
form{display:grid;gap:18px}label{display:grid;gap:7px;color:#c8c8c2;font-size:13px}label span{color:#777}input,textarea{width:100%;background:#0a0c0d;border:1px solid #343a3c;color:#eee;padding:13px;border-radius:2px;font:inherit}input:focus,textarea:focus{outline:1px solid var(--gold)}
.success,.error{padding:15px;margin:20px 0;border:1px solid var(--line);background:rgba(202,166,90,.08)}.error{border-color:rgba(160,50,50,.7);background:rgba(120,30,35,.12)}
.internal,.admin{padding:70px 0 110px}.internal h1,.admin h1{font-size:54px}.internal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:45px}.internal-grid article,.admin-section{border:1px solid var(--line);background:var(--panel);padding:28px}.internal-grid h2{font-size:25px;margin-top:0}.internal-grid p{color:var(--muted)}
.admin-section{margin-top:25px;overflow:auto}.admin-section h2{font-size:28px}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:11px;border-bottom:1px solid #2a2e30;vertical-align:top}th{color:var(--gold2);font-weight:600}
button:not(.button){border:1px solid #555;background:#171a1c;color:#ddd;padding:7px 10px;cursor:pointer;margin-right:5px}.inline{display:flex;gap:5px}.user-form{grid-template-columns:repeat(3,1fr);align-items:end}.user-form .button{grid-column:1/-1;justify-self:start}
@media(max-width:850px){.hero,.two-col,.crest-section{grid-template-columns:1fr}.hero{padding-top:35px}.crest-card{order:-1}.counter-wrap{align-items:flex-start;flex-direction:column}.internal-grid{grid-template-columns:1fr}.user-form{grid-template-columns:1fr}.access-box{padding:35px 25px}.topbar nav{gap:12px}.topbar nav a:nth-child(-n+2){display:none}}

.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important}

.legal-page{padding:70px 0 110px}.legal-card{max-width:900px;margin:auto;background:var(--panel);border:1px solid var(--line);padding:48px;box-shadow:0 30px 80px #000}.legal-card h1{font-size:40px;margin-bottom:45px}.legal-card h2{font-size:21px;margin-top:38px;margin-bottom:12px}.legal-card p{color:#c5c5be}.legal-heading{font-family:Cinzel,serif;font-size:21px!important;margin-top:30px!important}.legal-editor{max-width:800px}.legal-editor textarea{resize:vertical}
@media(max-width:650px){.legal-card{padding:28px 20px}.legal-card h1{font-size:32px}}

.footer-counter{display:flex;align-items:center;gap:7px;color:#777a75}.footer-counter span{font-size:11px;text-transform:uppercase;letter-spacing:.12em}.footer-counter strong{font-family:Cinzel,serif;color:var(--gold2);font-size:15px}

.legal-editor h3{font-family:Cinzel,serif;color:var(--gold2);font-size:19px;margin:25px 0 0;border-top:1px solid var(--line);padding-top:25px}

.tree-area{margin-top:55px;border:1px solid var(--line);background:rgba(17,20,22,.72);padding:35px;overflow:hidden}
.tree-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;border-bottom:1px solid var(--line);padding-bottom:28px}
.tree-heading h2,.tree-editor h2{font-size:36px;margin:10px 0 12px}.tree-heading p:not(.eyebrow){color:var(--muted);max-width:720px;margin:0}
.tree-empty{margin:35px 0;padding:35px;text-align:center;border:1px dashed var(--line);color:var(--muted)}
.family-tree{min-width:max-content;padding:38px 15px 25px;position:relative}
.generation{position:relative;padding:0 0 55px}
.generation-label{text-align:center;color:#817f76;font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:18px}
.generation-nodes{display:flex;justify-content:center;gap:28px;flex-wrap:wrap}
.person-node{position:relative;width:220px;min-height:112px;background:linear-gradient(145deg,#1a1d1e,#0e1011);border:1px solid rgba(202,166,90,.42);padding:17px 17px 13px;text-align:center;box-shadow:0 15px 35px rgba(0,0,0,.25)}
.person-node:after{content:"";position:absolute;bottom:-56px;left:50%;width:1px;height:55px;background:rgba(202,166,90,.3)}
.generation:last-child .person-node:after{display:none}
.person-name{font:600 18px Cinzel,serif;color:#eee4cd}.person-dates{font-size:12px;color:var(--gold2);margin-top:6px}.person-parent{font-size:10px;color:#777b77;margin-top:8px}.delete-person{margin-top:9px;display:block}.delete-person button{font-size:10px;padding:3px 7px;color:#777}
.tree-editor{margin:15px 0 70px;border:1px solid var(--line);background:var(--panel);padding:35px}
.person-form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.parent-select{grid-column:1/-1}.person-form .button{justify-self:start}
.tree-editor h2{margin-bottom:25px}
select{width:100%;background:#0a0c0d;border:1px solid #343a3c;color:#eee;padding:13px;border-radius:2px;font:inherit}
select:focus{outline:1px solid var(--gold)}
@media(max-width:700px){.tree-heading{display:block}.tree-heading .button{margin-top:20px}.tree-area{padding:22px}.person-form{grid-template-columns:1fr}.parent-select{grid-column:auto}.person-form .button{width:100%}.person-node{width:200px}}


/* Family tree */
.tree-area{margin-top:55px;border:1px solid var(--line);background:rgba(17,20,22,.72);padding:35px;overflow:hidden}
.tree-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;border-bottom:1px solid var(--line);padding-bottom:28px}
.tree-heading h2{font-size:36px;margin:10px 0 12px}.tree-heading p:not(.eyebrow){color:var(--muted);max-width:720px;margin:0}
.tree-empty{margin:20px 0;padding:35px;text-align:center;border:1px dashed var(--line);color:var(--muted)}
.family-tree-wrap{margin-top:30px;border:1px solid rgba(202,166,90,.13);background:radial-gradient(circle at 50% 0%,rgba(116,31,37,.16),rgba(7,8,9,.28) 55%,rgba(7,8,9,.45));}
.family-tree-scroll{overflow:auto;padding:42px 34px 55px;-webkit-overflow-scrolling:touch}
.family-tree-root,.family-tree-root ul{display:flex;justify-content:center;position:relative;margin:0;padding:0;list-style:none}
.family-tree-root{gap:42px;min-width:max-content;align-items:flex-start}
.family-tree-branch{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:0}
.family-tree-children{display:flex;justify-content:center;gap:28px;position:relative;margin-top:58px!important;padding-top:28px!important}
.family-tree-children:before{content:"";position:absolute;top:0;left:50%;width:2px;height:28px;background:rgba(202,166,90,.48);transform:translateX(-50%)}
.family-tree-children>.family-tree-branch:before{content:"";position:absolute;top:-28px;left:50%;width:2px;height:28px;background:rgba(202,166,90,.48)}
.family-tree-children>.family-tree-branch:not(:first-child):after,.family-tree-children>.family-tree-branch:not(:last-child):after{content:"";position:absolute;top:-28px;height:2px;background:rgba(202,166,90,.48)}
.family-tree-children>.family-tree-branch:not(:first-child):after{right:50%;width:calc(50% + 14px)}
.family-tree-children>.family-tree-branch:not(:last-child):after{left:50%;width:calc(50% + 14px)}
.family-tree-person{position:relative;width:230px;min-height:112px;padding:16px 15px 14px;text-align:center;border:1px solid rgba(202,166,90,.55);border-radius:4px;background:linear-gradient(145deg,#1a1d1e,#0d0f10);box-shadow:0 14px 34px rgba(0,0,0,.42)}
.family-tree-person:after{content:"";position:absolute;bottom:-58px;left:50%;width:2px;height:58px;background:rgba(202,166,90,.48);transform:translateX(-50%)}
.family-tree-children .family-tree-person:after{display:none}
.family-tree-generation{font-size:8px;letter-spacing:.2em;color:#817f76;margin-bottom:8px}
.family-tree-name{font:600 19px/1.25 Cinzel,Georgia,serif;color:#eee4cd;word-break:normal}
.family-tree-dates{font-size:11px;color:var(--gold2);margin-top:8px;white-space:nowrap}
.admin-tree-preview{margin-top:25px;border:1px solid var(--line);background:#0b0d0e;padding:12px;overflow:hidden}
.admin-section h3{font-family:Cinzel,serif;color:var(--gold2);font-size:21px;margin:30px 0 15px;border-top:1px solid var(--line);padding-top:28px}
.person-form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.parent-select{grid-column:1/-1}.person-form .button{justify-self:start}
select{width:100%;background:#0a0c0d;border:1px solid #343a3c;color:#eee;padding:13px;border-radius:2px;font:inherit}select:focus{outline:1px solid var(--gold)}
.admin-person-list{display:grid;gap:4px}
.admin-person-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1.35fr auto;gap:10px;align-items:end;border:1px solid #292d2f;background:#0d1011;padding:14px;margin-top:10px}
.admin-person-actions{display:flex;align-items:end}.admin-person-actions .button{padding:11px 14px}
.admin-delete-row{display:flex;justify-content:flex-end;margin:0 0 8px;padding:0 14px}.admin-delete-row button{font-size:11px;color:#c28b8b;border-color:#49383a}
@media(max-width:900px){.admin-person-row{grid-template-columns:1fr 1fr}.admin-person-row label:nth-of-type(5),.admin-person-actions{grid-column:1/-1}.admin-person-actions .button{width:100%}}
@media(max-width:700px){.tree-heading{display:block}.tree-heading .button{margin-top:20px}.tree-area{padding:22px}.family-tree-scroll{padding-left:20px;padding-right:20px}.family-tree-person{width:205px}.family-tree-children{gap:18px}.person-form{grid-template-columns:1fr}.parent-select{grid-column:auto}.person-form .button{width:100%}}
