@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Inter:wght@400;500;600&display=swap');
:root{color-scheme:dark;--gold:#c7a773;--ivory:#eee9dd;--muted:#a9b0ac}*{box-sizing:border-box}body{margin:0;background:#090e10;color:var(--ivory);font-family:Inter,Arial,sans-serif;min-height:100svh}.scene{position:fixed;inset:0;background:linear-gradient(90deg,rgba(5,11,13,.93) 0%,rgba(5,11,13,.75) 27%,rgba(5,11,13,.20) 58%,rgba(5,11,13,.10) 100%),linear-gradient(0deg,#090e10 0%,transparent 30%,rgba(5,11,13,.27) 90%),url('assets/castle-hero.png') center/cover no-repeat;z-index:-2}.mist{pointer-events:none;position:fixed;bottom:0;left:-25%;width:150%;height:36%;z-index:-1;background:radial-gradient(ellipse,rgba(132,155,148,.09),transparent 65%);animation:drift 18s ease-in-out infinite alternate}header{height:112px;margin:0 5%;display:flex;align-items:center;gap:60px;border-bottom:1px solid #a3b1a11d}.brand{color:var(--ivory);text-decoration:none;display:flex;align-items:center;gap:13px;font-family:Georgia,serif;font-size:18px;letter-spacing:3px}.crest{font-size:37px;color:var(--gold);border:1px solid #c7a77360;width:46px;height:52px;display:grid;place-items:center;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%)}.brand-sub{display:block;font-family:Inter,Arial,sans-serif;font-size:8px;letter-spacing:4.4px;margin-top:7px}nav{display:flex;gap:32px;margin-left:auto}button{font:inherit;cursor:pointer}nav button,footer button{background:none;border:0;color:#c9cbc3;font-size:12px;padding:10px 0}.tiny-lock{margin-left:8px;color:var(--gold)}.header-status{font-size:9px;letter-spacing:2px;color:#b6b8a8;display:flex;align-items:center;gap:9px}.header-status i{width:5px;height:5px;background:var(--gold);border-radius:50%;box-shadow:0 0 10px #c7a773}main{position:relative;min-height:calc(100svh - 188px)}.hero{padding:clamp(65px,11vh,130px) 0 130px 8%;max-width:750px}.eyebrow{color:var(--gold);font-size:10px;font-weight:500;letter-spacing:3px;display:flex;align-items:center;gap:15px}.eyebrow>span{height:1px;width:28px;background:var(--gold)}h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-size:clamp(64px,6.9vw,106px);line-height:.99;letter-spacing:-3px;margin:29px 0 28px;text-shadow:0 2px 25px #0005}h1 em{font-style:normal;color:#d6c6a8}.intro{font-size:14px;color:#b9c2bc;line-height:1.95;letter-spacing:.15px}.opening{font-family:'Cormorant Garamond',Georgia,serif;font-size:26px;color:#e1d4bc;margin:29px 0 23px}.actions{display:flex;gap:24px;align-items:center}.primary{border:1px solid #b89967;background:#bda071;color:#101716;padding:16px 22px;font-size:11px;font-weight:600;letter-spacing:.5px;display:flex;align-items:center;gap:32px}.primary:hover{background:#d1b68a}.text-button{background:none;border:0;color:#d4d6cd;font-size:11px;padding:16px 0;display:flex;gap:17px}.note{display:flex;gap:9px;font-size:10px;color:#8f9b92;margin-top:25px}.note>span{color:var(--gold)}.hotspot{position:absolute;background:none;border:0;color:#d6c9ae;display:flex;flex-direction:column;align-items:center;gap:13px;padding:15px}.pulse{display:block;width:9px;height:9px;border:1px solid #e0c18e;border-radius:50%;box-shadow:0 0 0 6px #c7a77315,0 0 20px #c7a77340}.hotspot:hover .pulse{background:var(--gold);box-shadow:0 0 0 10px #c7a77320}.hotspot-label{background:#091112aa;border:1px solid #c7a77330;padding:6px 10px;font-size:8px;letter-spacing:1.5px;white-space:nowrap}.raven{left:56%;top:38%}.gate{left:76%;top:65%}.scene-caption{position:absolute;bottom:33px;left:8%;right:6%;display:flex;justify-content:space-between;color:#8e9d94;font-size:9px;letter-spacing:2px}.scene-caption span:last-child{font-family:Georgia,serif;font-style:italic;font-size:13px;letter-spacing:.3px}footer{margin:0 5%;border-top:1px solid #a3b1a11d;min-height:76px;display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:2px;color:#83918a}footer button{font-size:9px;color:#b6b5a6}.footer-middle{font-family:Georgia,serif;font-style:italic;font-size:12px;letter-spacing:.3px}dialog{width:min(520px,calc(100% - 36px));padding:55px 45px 43px;background:linear-gradient(145deg,#172021,#0c1315);color:var(--ivory);border:1px solid #9a855646;box-shadow:0 30px 120px #000b}dialog::backdrop{background:#03080bd6;backdrop-filter:blur(7px)}.close{position:absolute;right:17px;top:13px;background:none;color:#b7c0b9;border:0;padding:10px}.dialog-mark{color:var(--gold);font-size:35px;margin-bottom:28px}dialog h2{font:400 43px/1.05 'Cormorant Garamond',Georgia,serif;margin:20px 0}#dialog-copy{color:#b6c1b9;line-height:1.85;font-size:14px}.dialog-foot{color:var(--gold);font:italic 19px Georgia,serif;margin:27px 0 33px}:focus-visible{outline:2px solid #e3bf82;outline-offset:6px}@keyframes drift{to{transform:translateX(10%)}}@media(min-width:1700px){.hero{padding-top:14vh}}@media(max-width:900px){header{gap:20px;height:95px}.header-status{display:none}h1{font-size:78px}.hero{padding-left:6%;max-width:600px}.scene-caption{left:6%}.raven{left:61%;top:25%}.gate{left:79%;top:62%}.hotspot-label{display:none}.footer-middle{display:none}}@media(max-width:600px){header{margin:0 6%;height:90px}.brand{font-size:12px;letter-spacing:2px;gap:9px}.crest{font-size:28px;width:33px;height:41px}.brand-sub{font-size:6px;letter-spacing:3px}nav{gap:18px}nav button{font-size:10px}.scene{background:linear-gradient(0deg,#090e10 3%,rgba(5,11,13,.9) 30%,rgba(5,11,13,.10) 67%),url('assets/castle-hero.png') 67% top/auto 72svh no-repeat}.hero{padding:38svh 6% 95px;max-width:none}.eyebrow{font-size:8px;letter-spacing:2.5px}h1{font-size:62px;letter-spacing:-2px;margin:22px 0}.intro{font-size:12px}.opening{font-size:24px;margin:25px 0 20px}.actions{gap:19px}.primary{padding:15px 17px;gap:18px;font-size:10px}.text-button{font-size:10px;gap:9px}.note{font-size:9px}.raven{left:40%;top:15%}.gate{left:74%;top:28%}.scene-caption{bottom:30px;font-size:8px;letter-spacing:1px}.scene-caption span:last-child{font-size:10px}footer{min-height:70px;margin:0 6%;font-size:7px;letter-spacing:1px}footer button{font-size:8px}dialog{padding:43px 28px 33px}dialog h2{font-size:38px}}@media(prefers-reduced-motion:reduce){.mist{animation:none}}
@media(min-width:901px){.raven{left:50%;top:13%}}

/* Markers share the fixed background image coordinate system. */
.hotspot{position:fixed;left:var(--marker-x)!important;top:var(--marker-y)!important;transform:translate(-50%,-19.5px);z-index:1}
.brand-logo{display:block;width:64px;height:64px;object-fit:contain}
@media(max-width:600px){.brand-logo{width:48px;height:48px}}
