*{box-sizing:border-box} :root{color-scheme:dark;font-family:Georgia,'Times New Roman',serif;color:#ebe7db;background:#060d18}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,#map:focus-visible{outline:1px solid #ebd7a7;outline-offset:5px}#observatory{height:100svh;min-height:560px;position:relative;overflow:hidden;background:#071322}#landscape{position:absolute;inset:-4%;background:url('balfiera.png') center 64%/cover no-repeat;will-change:transform}.veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,7,16,.25),transparent 38%,rgba(2,7,16,.04) 60%,rgba(2,7,16,.78)),linear-gradient(90deg,rgba(2,7,16,.35),transparent 40%);pointer-events:none}#sky{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}header{position:absolute;top:48px;left:54px;z-index:3;pointer-events:none}.eyebrow,.edition,.subtitle,footer,#detail h3,#source,#legend{font-family:Arial,sans-serif}.eyebrow{font-size:12px;letter-spacing:.24em;color:#b9ad92}h1{font-size:64px;font-weight:400;letter-spacing:.07em;line-height:1;margin:12px 0}.subtitle{color:#a8afb9;font-size:14px;letter-spacing:.13em}.edition{position:absolute;top:53px;right:52px;font-size:12px;letter-spacing:.2em;color:#b2b7c1;z-index:3}.edition span{padding:0 14px;color:#716a5b}#map{position:absolute;inset:0;touch-action:none;cursor:grab;overflow:hidden}#map.dragging{cursor:grabbing}#threads{position:absolute;width:100%;height:100%;overflow:visible;pointer-events:none}.thread{stroke:#c5b384;stroke-width:1;opacity:.36;vector-effect:non-scaling-stroke}.thread.clan{stroke:#99adca;stroke-dasharray:3 7;opacity:.26}.thread.active{opacity:.85;stroke-width:1.5}.star{position:absolute;width:44px;height:44px;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);touch-action:none}.star .light{position:absolute;width:7px;height:7px;left:18.5px;top:18.5px;border-radius:50%;background:#fff3d4;box-shadow:0 0 4px 2px #e8dbb9b0,0 0 16px 5px #dab87955,0 0 45px 12px #c4ac7c18}.star .light:before,.star .light:after{content:'';position:absolute;background:linear-gradient(transparent,#fff4dbb0,transparent);width:1px;height:29px;left:3px;top:-11px}.star .light:after{transform:rotate(90deg)}.star .label{position:absolute;left:22px;top:39px;transform:translateX(-50%);white-space:nowrap;font-size:19px;letter-spacing:.035em;text-shadow:0 2px 8px #000,0 0 18px #000}.star .role{display:block;font:12px Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase;color:#9baabe;margin-top:8px}.star:hover .light,.star.selected .light{box-shadow:0 0 8px 4px #fff0cabb,0 0 30px 10px #dcc79660}.star.selected:after{content:'';position:absolute;inset:2px;border:1px solid #ddc89c70;border-radius:50%}.star.dim{opacity:.45}footer{position:absolute;bottom:35px;left:52px;right:52px;display:flex;align-items:end;justify-content:space-between;gap:20px;pointer-events:none;z-index:4}.location p{font-family:Georgia,serif;font-size:17px;margin:10px 0;color:#aeb7c4}.navigation{text-align:center;pointer-events:auto}.navigation p{font-size:12px;letter-spacing:.07em;color:#aeb6c4;margin:0 0 15px}.controls{display:flex;align-items:center;border:1px solid #8c9caf40;background:#09121ed9;backdrop-filter:blur(15px);border-radius:3px;height:44px}.controls button{border:0;background:transparent;height:42px;min-width:43px;font:21px Arial,sans-serif}.controls #reset{font-size:13px;padding:0 16px}.controls span{height:18px;border-left:1px solid #ffffff24}.controls output{font-size:12px;width:46px;color:#aeb7c4}.controls button:hover,#about:hover{color:#f7dba4;background:#ffffff0a}#about{pointer-events:auto;border:0;background:transparent;color:#b4bdca;font:13px Arial,sans-serif;padding:14px 0}#about span{margin-left:10px}#detail{position:absolute;z-index:6;right:38px;top:110px;width:320px;padding:31px;background:linear-gradient(140deg,#101b2bef,#080f1bef);border:1px solid #8b98aa36;box-shadow:0 24px 80px #0007;backdrop-filter:blur(24px)}#close{position:absolute;right:13px;top:10px;border:0;background:transparent;font-size:26px;color:#bfc7d2}#detail h2{font-size:32px;font-weight:400;margin:15px 0 19px}#person-description{font-size:16px;line-height:1.7;color:#b9c1cd}#detail h3{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:#b9ad92;margin-top:29px}.relative{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #ffffff14;background:transparent;padding:12px 0;font-size:17px}.relative small{display:block;font:12px Arial,sans-serif;color:#99a6b7;margin-top:5px}.relative:hover{color:#efcf91}#source{display:inline-block;color:#baa985;font-size:12px;margin-top:25px;text-decoration:none}#legend{position:absolute;bottom:102px;right:50px;width:320px;z-index:7;padding:24px;background:#091321f5;border:1px solid #8b98aa36}#legend h2{font:22px Georgia,serif;font-weight:400}#legend p{font-size:13px;line-height:1.6;color:#bec6d1}#legend i{display:inline-block;width:27px;vertical-align:middle;margin-right:8px;border-top:1px solid #cfbd94}#legend i.dashed{border-top:1px dashed #99adca}#legend .note{font-size:12px;color:#94a1b3;margin-top:20px}[hidden]{display:none!important}@media(max-width:760px){header{left:25px;top:27px}h1{font-size:43px}.eyebrow{font-size:12px}.subtitle{font-size:12px}.edition{top:32px;right:24px;font-size:12px;letter-spacing:.1em;max-width:95px;text-align:right;line-height:1.8}.edition span{display:none}footer{left:22px;right:22px;bottom:22px;align-items:center;flex-wrap:wrap}.location{display:none}.navigation{text-align:left}.navigation p{font-size:12px}.star .label{font-size:16px}.star .role{font-size:12px}#detail{top:auto;bottom:110px;left:18px;right:18px;width:auto;max-height:55svh;overflow:auto;padding:24px}#detail h2{font-size:27px}#legend{right:18px;bottom:110px;max-width:calc(100% - 36px)}#about{font-size:12px;max-width:95px;text-align:right}#about span{display:none}#landscape{background-position:83% center}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.thread.proposed{stroke:#dcc19a;stroke-dasharray:8 5;opacity:.6}.star.queen .light{width:10px;height:10px;left:17px;top:17px;box-shadow:0 0 8px 3px #fff1ceaa,0 0 30px 10px #dabb7155}.star.queen .label{font-size:22px;color:#f1dfb9}.star.queen .role{color:#d1b984}#legend i.proposed{border-top:1px dashed #dcc19a}@media(max-width:760px){.star.queen .label{font-size:18px}}
@media(max-width:760px){.star .role{width:180px;white-space:normal;line-height:1.5;margin:6px auto 0;letter-spacing:.1em}.star .label{min-width:180px}.star.queen .label{min-width:230px}}

@font-face{font-family:'Cinzel Decorative';src:url('cinzel-decorative.ttf') format('truetype');font-weight:400;font-display:swap}h1{font-family:'Cinzel Decorative',Georgia,serif;font-size:56px;letter-spacing:.035em;line-height:1.15;margin:0 0 12px}h1 span{display:block;font-size:17px;letter-spacing:.24em;line-height:1.6;color:#caba97}.thread.spouses{stroke:#d5b4c9;stroke-dasharray:2 3;opacity:.7}.thread.twins{stroke:#a9c8d1}#legend i.spouse{border-top:1px dotted #d5b4c9}@media(max-width:760px){h1{font-size:38px}h1 span{font-size:14px}}
/* Biography reading surface */
#detail{width:420px;top:100px;bottom:110px;max-height:calc(100svh - 210px);overflow:auto;scrollbar-width:thin;scrollbar-color:#766b55 #0a1422;padding:32px;overscroll-behavior:contain}
#detail.reading{width:min(740px,calc(100vw - 100px));top:42px;bottom:42px;max-height:calc(100svh - 84px);padding:42px 52px;background:linear-gradient(135deg,#111d2dfb,#080f1bfb)}
#detail h2{margin:10px 0 8px;line-height:1.2;overflow-wrap:anywhere}
#person-title{font-family:'Cinzel Decorative',Georgia,serif;color:#d5c198;font-size:17px;margin:0 0 24px;line-height:1.5}
#close{position:sticky;float:right;top:0;right:auto;z-index:2;background:#0d1727;border:1px solid #ffffff1a;width:34px;height:34px;line-height:28px;margin:-15px -15px 0 8px;border-radius:50%}
.profile-tabs{display:flex;border-bottom:1px solid #b9ad9238;gap:18px;margin:25px 0 25px;font-family:Arial,sans-serif}
.profile-tabs button{background:none;border:0;border-bottom:2px solid transparent;color:#9da9bb;font-size:14px;line-height:1.5;padding:10px 0;min-height:44px}
.profile-tabs button[aria-selected=true]{border-bottom-color:#dbc392;color:#f0debb}
#biography-prose p{font-size:17px;line-height:1.85;color:#ced3dc;margin:0 0 20px}
#detail.reading #biography-prose p{font-size:19px;line-height:1.9}
#person-facts{border-bottom:1px solid #ffffff15;padding:0 0 18px;margin:0 0 23px;font:14px/1.6 Arial,sans-serif}
#person-facts div{display:grid;grid-template-columns:85px 1fr;gap:12px;margin:8px 0}#person-facts dt{color:#9ba7b8}#person-facts dd{margin:0;color:#d9d8d2}
#expand-biography{background:none;border:1px solid #b9ad924a;color:#e2cda4;font:14px/1.5 Arial,sans-serif;padding:11px 16px;min-height:44px;margin:0 0 8px}#expand-biography:hover{background:#cfba8b0c}
#detail h3{font-size:13px;letter-spacing:.14em;margin:27px 0 12px}.relative small{font-size:13px;line-height:1.5}
#continuity-content{font:15px/1.75 Arial,sans-serif;color:#bdc6d3}#continuity-content section{margin-bottom:25px}#continuity-content p{margin:10px 0 16px}#continuity-content a{color:#d7c193;display:block;padding:8px 0;text-underline-offset:4px;overflow-wrap:anywhere}
.evidence-row{border-bottom:1px solid #ffffff15;padding:12px 0}.evidence-person{display:block;font:18px Georgia,serif;color:#e3dfd4;border:0;background:none;padding:0;text-align:left}.evidence-origin{display:block;font-size:12px;color:#c4ae85;margin:7px 0}.evidence-row p{font-size:14px!important;margin:6px 0!important}
.continuity-policy{border-top:1px solid #b9ad9233;padding:20px 0;margin-top:28px}.continuity-policy summary{cursor:pointer;color:#cdb990;line-height:1.6}.continuity-policy details{margin:20px 0}.continuity-policy p{font-size:14px}
@media(max-width:760px){#detail{top:auto;left:16px;right:16px;bottom:106px;width:auto;padding:25px;max-height:65svh}#detail.reading{top:16px;bottom:16px;left:16px;right:16px;width:auto;max-height:calc(100svh - 32px);padding:28px}#detail.reading #biography-prose p{font-size:17px}#detail h2{font-size:28px}.profile-tabs{gap:16px}.profile-tabs button{font-size:14px}#person-title{font-size:16px}#person-facts div{grid-template-columns:65px 1fr}}
