@media (min-width:901px) {
  .altar-frame { top:calc((100vh - 60px)/2); }
  .offering-dock { right:calc((100vw - min(100vw,1280px))/2 + 48px); height:503px; min-height:0; }
  .offer-again { position:absolute; left:9px; bottom:10px; margin:0; }
  .feedback { position:absolute; left:6px; bottom:10px; margin:0; }
}

/* Reference-style expanding dedication sheet. */
.dedication-sheet { position:absolute; z-index:14; left:50%; top:calc(100vh - 52px); bottom:auto; width:min(864px,calc(100vw - 300px)); transform:translateX(-50%); background:rgba(250,247,241,.97); box-shadow:0 -3px 12px rgba(0,0,0,.08); backdrop-filter:blur(7px); }
.dedication-sheet .dedication-bar { position:relative; left:auto; bottom:auto; width:100%; transform:none; box-shadow:none; }
.dedication-form { padding:26px 0 30px; background:#faf7f1; }
.dedication-form label { display:block; margin:0 0 16px; color:#5c5248; font-size:14px; }
.dedication-form select,.dedication-form textarea { display:block; width:100%; margin-top:7px; padding:11px 13px; border:1px solid #d6cdbf; border-radius:7px; background:#fff; color:#51483f; font:14px/1.55 "Microsoft YaHei","PingFang SC",sans-serif; resize:vertical; }
.dedication-form .confirm-dedication { width:100%; height:48px; border:0; border-radius:7px; background:#75644e; color:#fff; cursor:pointer; }
.dedication-form .confirm-dedication:disabled { background:#7f9b85; cursor:default; }
.dedication-sheet.expanded { padding:0 0 0; }
.dedication-sheet.expanded .dedication-bar .chevron { transform:rotate(180deg); }

/* Complete reference-style feedback workflow. */
#feedback-dialog { width:min(92vw,512px); max-height:88vh; padding:0; overflow:auto; border:0; border-radius:13px; background:#faf8f4; color:#50483f; box-shadow:0 22px 70px rgba(0,0,0,.34); }
#feedback-dialog::backdrop { background:rgba(32,27,23,.45); backdrop-filter:blur(3px); }
.feedback-form { position:relative; padding:26px 30px 28px; }
.feedback-form .dialog-close { position:absolute; right:14px; top:13px; width:31px; height:31px; border:0; border-radius:50%; background:#ece8e1; cursor:pointer; }
.feedback-form h2 { margin:0; font-size:24px; }.feedback-form h2 + p { margin:3px 0 21px; color:#8c8278; font-size:13px; }
.feedback-form fieldset { margin:0 0 17px; padding:0; border:0; }.feedback-form legend,.feedback-form>div>label { margin-bottom:8px; font-size:13px; font-weight:600; }
.rating-field>div { display:flex; align-items:center; justify-content:space-between; gap:9px; }.rating-field small { color:#9a9086; }.ratings { display:flex; gap:8px; }.ratings label { cursor:pointer; }.ratings input { position:absolute; opacity:0; }.ratings i { width:34px; height:34px; display:grid; place-items:center; border:1px solid #d6cfc5; border-radius:50%; background:#fff; font-style:normal; }.ratings input:checked+i { border-color:#796653; background:#796653; color:#fff; }
.chip-row { display:flex; flex-wrap:wrap; gap:8px; }.chip-row button { padding:7px 12px; border:1px solid #d8d0c5; border-radius:17px; background:#fff; color:#675d54; font-size:12px; cursor:pointer; }.chip-row button.pressed { border-color:#7b6957; background:#7b6957; color:#fff; }.selected-category { margin-bottom:8px; color:#8b7e71; font-size:12px; }
.feedback-form label { position:relative; display:block; font-size:13px; font-weight:600; }.feedback-form textarea,.feedback-form input { display:block; width:100%; margin-top:6px; padding:10px 11px; border:1px solid #d6cfc5; border-radius:7px; background:#fff; color:#50483f; font:13px/1.5 inherit; resize:vertical; }.char-count { position:absolute; right:8px; bottom:6px; color:#a0978e; font-size:11px; font-weight:400; }.char-count b { font-weight:400; }
.toggle-contact { width:100%; margin:13px 0 4px; padding:9px 0; display:flex; justify-content:space-between; border:0; border-top:1px solid #e3ddd4; background:transparent; color:#6d6258; text-align:left; cursor:pointer; }.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.form-error { min-height:19px; margin:5px 0; color:#ba4436; font-size:12px; }.form-actions { display:flex; justify-content:flex-end; gap:9px; }.form-actions button,.feedback-thanks button { min-width:82px; height:38px; border:1px solid #cfc6bb; border-radius:7px; background:#fff; cursor:pointer; }.form-actions button[type="submit"] { border-color:#75644e; background:#75644e; color:#fff; }.form-actions button:disabled { opacity:.6; cursor:default; }
.feedback-thanks { padding:70px 15px; text-align:center; }.feedback-thanks p { color:#8c8278; }.feedback-thanks button { margin-top:12px; background:#75644e; color:#fff; }
body:has(.dedication-sheet.expanded) { overflow-y:auto; }
@media(max-width:900px){.dedication-sheet{width:100%}.dedication-form{padding:22px 18px 26px}.contact-fields{grid-template-columns:1fr}}
