/* Vasco, Noname and Nina: local portraits piloting procedural 3D UFOs. */
.mess-ufo-stage{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:35}
.mess-ufo{position:absolute;left:0;top:0;width:140px;height:190px;z-index:35;pointer-events:none;user-select:none;-webkit-user-select:none;contain:layout style;transform-origin:0 0}
.mess-ufo[data-held="true"]{z-index:36}
.mess-ufo[hidden]{display:none!important}
.mess-ufo canvas{display:block;width:140px;height:190px;pointer-events:auto;touch-action:none;cursor:grab;background:transparent;clip-path:inset(0 0 75px 0)}
.mess-ufo canvas:active{cursor:grabbing}
.mess-ufo-close{position:absolute;right:-1px;top:1px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink,#141312);font:500 23px/1 Arial,sans-serif;cursor:pointer;pointer-events:auto;text-shadow:0 0 3px #f1eee7,0 0 3px #f1eee7}
.mess-ufo-close:hover{background:#f1eee7dd}
.mess-ufo canvas:focus-visible,.mess-ufo-close:focus-visible{outline:2px dashed var(--ink,#141312);outline-offset:2px}
@media print{.mess-ufo{display:none!important}}
/* The filter illuminates underlying page pixels and retains readable dark text. */
.mess-ufo-light{position:absolute;top:99px;left:-49px;width:238px;height:260px;opacity:0;pointer-events:none;clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);background:linear-gradient(180deg,#efff9e40,#faffd626 60%,#faffd608);-webkit-backdrop-filter:brightness(1.65) saturate(.8) contrast(1.2);backdrop-filter:brightness(1.65) saturate(.8) contrast(1.2);-webkit-mask-image:linear-gradient(#000 0%,#000 62%,transparent);mask-image:linear-gradient(#000 0%,#000 62%,transparent)}
.mess-ufo[data-pilot="NINA"] .mess-ufo-light{background:linear-gradient(180deg,#ffc6ed61,#ffe4f43a 60%,#ffe4f40a)}
.mess-ufo canvas{position:relative}
@media (max-width:600px){.mess-ufo-light{height:225px}}
@media print{.mess-ufo-stage{display:none!important}}


@media(max-width:600px){.mess-ufo-close{width:57px;height:57px;right:-8px;top:-6px}}

/* During autonomous crossings, the page controls keep receiving clicks. */
.mess-ufo[data-over-control="true"]:not([data-held="true"]) canvas,.mess-ufo[data-over-control="true"]:not([data-held="true"]) .mess-ufo-close{pointer-events:none}

/* Autonomous ships yield to readable panels; deliberate dragging remains free. */
.mess-ufo{transition:opacity 180ms ease}
.mess-ufo[data-over-control="true"]:not([data-held="true"]){opacity:0}
@media(prefers-reduced-motion:reduce){.mess-ufo{transition:none}}
