.dedication-app-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#0F1114;color:#EAE7E1;overflow:hidden;font-family:Montserrat,Arial,sans-serif;color-scheme:dark}
.dedication-app-dialog[open]{display:flex;flex-direction:column}
.dedication-app-dialog::backdrop{background:#0F1114f5}
.dedication-app-bar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none;min-height:70px;padding:12px 25px;border-bottom:1px solid #46433e;background:#0F1114}
.dedication-app-title{font:400 clamp(16px,1.8vw,23px)/1.3 Cinzel,Georgia,serif;margin:0;letter-spacing:-.01em;overflow-wrap:anywhere}
.dedication-app-close,.dedication-app-retry{display:inline-flex;align-items:center;justify-content:center;flex:none;min-height:44px;padding:10px 17px;border:1px solid #B98A4A;border-radius:7px;background:#B98A4A;color:#0F1114;font:600 12px/1.4 Montserrat,Arial,sans-serif;cursor:pointer;white-space:nowrap}
.dedication-app-close:hover,.dedication-app-retry:hover{background:#c79a5a;color:#0F1114}
.dedication-app-dialog :is(button,a):focus-visible{outline:3px solid #EAE7E1;outline-offset:4px}
.dedication-app-body{position:relative;flex:1;min-height:0;width:100%;overflow:hidden}
.dedication-app-frame{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:#eae7e1;color-scheme:light}
.dedication-app-dialog.is-app-ready .dedication-app-bar,.dedication-app-dialog.is-app-ready .dedication-app-fallback{display:none}
.dedication-app-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:30px;text-align:center;font-size:14px;color:#d3cec4}
.dedication-app-loading p{max-width:48ch;line-height:1.7;margin:0}
.dedication-app-loading[hidden],.dedication-app-retry[hidden]{display:none!important}
.dedication-app-fallback{flex:none;padding:9px 22px;background:#0F1114;border:0;color:#bcb7ae;text-align:center;font:400 11px/1.5 Montserrat,Arial,sans-serif;margin:0}
.dedication-app-direct{color:#d6b487;text-underline-offset:3px}
.dedication-app-flip{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;filter:grayscale(.85) brightness(.76)}
@media(max-width:600px){.dedication-app-bar{padding:10px 13px;min-height:67px;gap:12px}.dedication-app-title{font-size:15px}.dedication-app-close{padding:9px 12px;font-size:11px;white-space:normal;max-width:102px}.dedication-app-fallback{padding:8px 14px;font-size:10px}}

/* The plaque stays put and quiets while its page is prepared. The border alone breathes. */
#dedications .plaque-artwork .plaque-image,
.mn-result-art img{transition:box-shadow .3s ease,filter 260ms ease}
.plaque-artwork.is-plaque-loading .plaque-image,
.mn-result-art.is-plaque-loading img{filter:grayscale(.85) brightness(.76)}
.plaque-artwork.is-plaque-loading::after,
.mn-result-art.is-plaque-loading::after{
  content:"";position:absolute;inset:0;z-index:5;pointer-events:none;box-sizing:border-box;
  border:1.5px solid #7d6240;background:transparent;
  animation:plaque-border-shimmer 2.8s ease-in-out infinite;
}
.plaque-artwork.is-plaque-away .plaque-image,
.mn-result-art.is-plaque-away img,
.plaque-artwork.is-plaque-away::after,
.mn-result-art.is-plaque-away::after,
.plaque-artwork.is-plaque-loading .plaque-unsolved-corner,
.plaque-artwork.is-plaque-away .plaque-unsolved-corner,
.mn-result-art.is-plaque-loading .plaque-unsolved-corner,
.mn-result-art.is-plaque-away .plaque-unsolved-corner{visibility:hidden}
@keyframes plaque-border-shimmer{
  0%,100%{border-color:#7d6240;filter:brightness(.82)}
  50%{border-color:#e7c99a;filter:brightness(1.08)}
}

/* Lift, hold, flip at plaque size, then fill. Scale stays on the place; only the card rotates. */
.dedication-app-dialog.is-clear{background:transparent;overflow:hidden}
.dedication-app-dialog.is-clear::backdrop{background:transparent}
.dedication-app-dialog.is-holding :is(.dedication-app-bar,.dedication-app-body,.dedication-app-fallback){visibility:hidden;pointer-events:none}
.dedication-turn{position:fixed;inset:0;z-index:4;perspective:1800px;perspective-origin:center center;pointer-events:none}
.dedication-turn.is-preloading{transform:translate3d(-120vw,0,0)}
.dedication-turn.is-settled{pointer-events:auto}
.dedication-turn-place{position:absolute;inset:0;transform-origin:center center;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}
.dedication-turn-card{width:100%;height:100%;position:relative;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform-origin:center center}
.dedication-turn.is-live .dedication-turn-place,.dedication-turn.is-live .dedication-turn-card{will-change:transform}
.dedication-turn-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#eae7e1}
.dedication-turn-back{transform:rotateY(180deg)}
.dedication-turn-loader{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;overflow:hidden;pointer-events:none;background:#5c4a32;transform:scaleY(calc(1 / var(--turn-sy, 1)));transform-origin:bottom center}
.dedication-turn-loader::after{content:"";position:absolute;inset:0 auto 0 0;width:40%;height:100%;background:#B98A4A;animation:dedication-turn-loader 1.1s ease-in-out infinite}
.dedication-turn-loader[hidden]{display:none!important}
@keyframes dedication-turn-loader{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}
.dedication-turn.is-flat{perspective:none}
.dedication-turn.is-flat .dedication-turn-place{transform:none!important}
.dedication-turn.is-flat .dedication-turn-card{transform:none!important;transform-style:flat;-webkit-transform-style:flat}
.dedication-turn.is-flat .dedication-turn-front{opacity:0}
.dedication-turn.is-flat .dedication-turn-back{transform:none}
.dedication-turn-back .dedication-app-frame{position:absolute;inset:0;width:100%;height:100%;background:#eae7e1}
@media(prefers-reduced-motion:reduce){
  .plaque-artwork.is-plaque-loading .plaque-image,
  .mn-result-art.is-plaque-loading img{transition:none}
  .plaque-artwork.is-plaque-loading::after,
  .mn-result-art.is-plaque-loading::after{animation:none;border-color:#c4a574;filter:none}
  .dedication-turn-loader::after{animation:none;width:100%}
}

