.marriage-dialog{max-width:min(620px,94vw);max-height:88vh;overflow:auto;padding:20px;background:#100f10;color:#f6e6bd;border:2px solid #b98c48;border-radius:8px}.marriage-dialog::backdrop{background:#000b}.marriage-dialog button,.marriage-equipment button,.social-room button,.wedding-banner button{cursor:pointer;background:#251b13;color:#f6e6bd;border:1px solid #b98c48;padding:10px;margin:4px;border-radius:4px;font:inherit}.marriage-dialog button:disabled{opacity:.5;cursor:not-allowed}.marriage-item-art{width:140px;height:95px;object-fit:contain;display:block}.marriage-shop-card{display:inline-grid;margin:8px;padding:10px;border:1px solid #796039;max-width:160px}.marriage-equipment{margin-top:16px}.wedding-banner{position:sticky;top:0;z-index:50;background:#180f1fee;border-block:1px solid #b98c48;color:#ffe4ae;text-align:center;padding:8px}.wedding-banner[hidden]{display:none}.marriage-notice{position:fixed;z-index:10000;bottom:20px;left:50%;transform:translateX(-50%);max-width:85vw;padding:14px;background:#160e16;color:#ffe7ab;border:1px solid #b98c48}.social-room[hidden]{display:none!important}.social-map-viewport{overflow-x:auto;width:100%}.social-map{position:relative;min-width:900px;width:100%;isolation:isolate}.social-map>img{display:block;width:100%;height:auto}.social-markers{position:absolute;inset:0;pointer-events:none;z-index:4}.social-markers .social-player{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:grid;justify-items:center;gap:1px;background:#0c121dcc;padding:2px;margin:0;border:0;max-width:9%;font-size:11px;color:#fff;text-shadow:0 1px 3px #000}.social-player img{width:36px;height:36px;object-fit:cover;border-radius:50%;border:2px solid #c8a46b}.social-player strong{font-size:11px;overflow-wrap:anywhere}.social-player small{font-size:10px}.social-player.speaking img{box-shadow:0 0 0 3px #8fe6c5,0 0 12px #5dffc0}.social-bubble{position:absolute;bottom:100%;white-space:nowrap;background:#201322;padding:5px;font-size:18px;animation:social-float 2.8s forwards;pointer-events:none}@keyframes social-float{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-60px)}}.social-chat-log{max-height:230px;overflow-y:auto;background:#0c1016;padding:10px}.social-chat form{display:flex;gap:8px}.social-chat input,.wedding-ceremony input{min-width:0;flex:1;padding:12px;background:#161821;color:#fff;border:1px solid #9b7f52}.wedding-ceremony label{display:grid;gap:8px}.wedding-ceremony{padding:12px}.social-voice{display:flex;align-items:center;flex-wrap:wrap}.marriage-dialog>img:not(.marriage-item-art){max-width:80px;border-radius:50%}.dungeon-map.cupid-map{background:radial-gradient(ellipse at center,#4a143c,#160f20 60%,#080a10);border-color:#b99158}.social-room .map-location-label{margin:0;border:0;border-radius:0}body.valdyr-mode .world-page #screen-world>.world-panel#social-room{display:block}body.valdyr-mode .world-page #screen-world>.world-panel#social-room[hidden]{display:none!important}

/* Supplied Cupid plaques are artwork: never overlay another painted label. */
.world-panel .cupid-map .cupid-hotspot{position:absolute;z-index:3;transform:translate(-50%,-50%);height:4.6%;min-height:28px;margin:0;padding:0;border:1px solid transparent;border-radius:5px;background:transparent;box-shadow:none;color:transparent;cursor:pointer}
.world-panel .cupid-map .cupid-hotspot:is(:hover,:focus-visible){background:transparent;outline:1px solid #f6d17e;box-shadow:0 0 10px #eebf65}
.world-panel .cupid-map .cupid-hotspot.state-active{box-shadow:0 0 9px #ff789c}
.cupid-map{aspect-ratio:3/2;background-size:100% 100%;background-repeat:no-repeat;min-width:900px}

/* Painted plaques use empty, accessible hit areas in the artwork's coordinate plane. */
.world-panel.social-room .social-map-hotspot{position:absolute;z-index:3;box-sizing:border-box;transform:translate(-50%,-50%);min-width:0;min-height:0;margin:0;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:transparent;box-shadow:none;cursor:pointer}
.world-panel.social-room .social-map-hotspot:is(:hover,:focus-visible){background:transparent;outline:1px solid #f6d17e;outline-offset:1px;box-shadow:0 0 9px #eebf65}

/* All Plaza layers use percentages of the exact supplied artwork. */
.plaza-walk-points{position:absolute;inset:0;z-index:2;pointer-events:none}
.world-panel.social-room .plaza-walk-hotspot{position:absolute;transform:translate(-50%,-50%);width:3.2%;height:3.8%;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:transparent;box-shadow:none;pointer-events:auto;cursor:pointer}
.world-panel.social-room .plaza-walk-hotspot:disabled{cursor:default;opacity:1}
.world-panel.social-room .plaza-walk-hotspot:not(:disabled):is(:hover,:focus-visible){outline:1px solid #ffe9af99;outline-offset:2px;background:transparent;box-shadow:0 0 8px #ffe1a044}
.plaza-map .social-player{transform:translate(-50%,-100%);transition:left .85s ease-in-out,top .85s ease-in-out;z-index:1}
.plaza-map .social-player:is(:hover,:focus-visible){z-index:2}
@media(prefers-reduced-motion:reduce){.plaza-map .social-player{transition:none}.plaza-map .social-bubble{animation:none}}
