/* r4 · 窗台收藏 — lived-in shelf vs sparse free ghost mark */
.windowsill{
  position:absolute; left:auto; right:3.2%; bottom:16%; z-index:4;
  width:min(280px,32vw); max-width:280px;
  display:grid; gap:10px; padding:14px 16px 12px;
  border-radius:18px;
  background:linear-gradient(165deg,#1c2a2288,#121a158f 55%,#0e1511aa);
  border:1px solid #cbb77a55;
  box-shadow:0 18px 48px #06100c66, inset 0 1px 0 #f0e2b522;
  backdrop-filter:blur(10px) saturate(1.05);
  color:#f3ebe0; pointer-events:auto;
  transition:opacity .35s ease, transform .35s ease;
}
.windowsill[hidden]{ display:none!important; }
.windowsill-head{ display:grid; gap:2px; min-width:0; }
.windowsill-eyebrow{
  margin:0; font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:#d8c48a; font-family:"Noto Serif SC",serif;
}
.windowsill-title{
  margin:0; font:600 15px/1.35 "Noto Serif SC",serif; color:#f7f1e6;
  letter-spacing:.02em;
}
.windowsill-sub{
  margin:0; font-size:12px; line-height:1.45; color:#c9bba6; opacity:.92;
}
.windowsill-rail{
  list-style:none; margin:4px 0 0; padding:8px 4px 2px;
  display:flex; align-items:flex-end; gap:8px;
  min-height:72px;
  border-top:1px solid #cbb77a33;
  overflow-x:auto; scrollbar-width:thin;
}
.windowsill-mark{
  position:relative; flex:0 0 auto;
  width:52px; min-height:58px;
  display:grid; place-items:center; align-content:end; gap:2px;
  padding:6px 4px 4px; border-radius:12px 12px 8px 8px;
  background:linear-gradient(180deg,#2a3a3055,#1a241e88);
  border:1px solid #d2bf8a44;
  box-shadow:0 6px 14px #00000033;
  cursor:default; transition:transform .25s ease, opacity .3s ease;
  animation:sill-rise .55s cubic-bezier(.16,1,.3,1) both;
  animation-delay:calc(var(--i,0) * 45ms);
}
.windowsill-mark:hover{ transform:translateY(-3px); }
.windowsill-mark.is-faint{
  opacity:.42; filter:saturate(.55) brightness(.9);
  border-style:dashed; background:#1a241e44;
}
.windowsill-glyph{
  font-size:18px; line-height:1; color:#e8d6a0;
  text-shadow:0 0 12px #e8d6a066;
}
.windowsill-mark.kind-tea .windowsill-glyph{ color:#c4a882; }
.windowsill-mark.kind-lamp .windowsill-glyph{ color:#f0d58a; }
.windowsill-mark.kind-pose .windowsill-glyph{ color:#b8c9b0; }
.windowsill-mark.kind-quiet .windowsill-glyph{ color:#9aab9e; font-size:22px; }
.windowsill-meta{
  display:grid; gap:0; text-align:center; min-width:0;
}
.windowsill-meta em{
  font-style:normal; font-size:9px; color:#efe6d4; letter-spacing:.02em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:48px;
}
.windowsill-meta small{
  font-size:8px; color:#a89980; letter-spacing:.01em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:48px;
}
.windowsill-niche{
  flex:1 1 auto; min-width:148px; max-width:220px;
  display:flex; align-items:center; gap:10px;
  padding:10px 12px; border-radius:14px;
  background:linear-gradient(135deg,#3a3220cc,#241c12ee);
  border:1px solid #e2d09a88;
  box-shadow:0 10px 28px #0a100866, inset 0 1px 0 #f5e6b833;
  cursor:pointer; list-style:none;
  transition:transform .2s ease, border-color .2s ease;
}
.windowsill-niche:hover{ transform:translateY(-2px); border-color:#f0e2b0; }
.windowsill-niche:focus-visible{ outline:2px solid #e8d6a0; outline-offset:2px; }
.windowsill-niche-brass{
  width:28px; height:28px; border-radius:50%; flex:0 0 auto;
  background:radial-gradient(circle at 35% 30%,#f3e2a8,#b8944a 55%,#6e5320);
  box-shadow:inset 0 1px 0 #fff6,#00000044 0 4px 8px;
  position:relative;
}
.windowsill-niche-brass:after{
  content:""; position:absolute; inset:9px; border-radius:50%;
  border:1.5px solid #5a4218; background:#2a2010;
}
.windowsill-niche-copy{ display:grid; gap:2px; min-width:0; flex:1; }
.windowsill-niche-copy strong{
  font:600 12px/1.3 "Noto Serif SC",serif; color:#f5ecd8;
}
.windowsill-niche-copy em{
  font-style:normal; font-size:10px; line-height:1.35; color:#cbb89a;
}
.windowsill-niche-lock{
  font-size:10px; letter-spacing:.12em; color:#2a2010;
  background:#e8d6a0; border-radius:999px; padding:3px 7px; font-weight:700;
}
.windowsill-empty{
  flex:0 0 64px; display:grid; place-items:center;
  border:1px dashed #cbb77a44; border-radius:12px; color:#a8998088;
  font-size:10px; list-style:none; min-height:58px;
}
.windowsill-streak{
  margin:0; font-size:11px; color:#d8c48a; letter-spacing:.04em;
}

@keyframes sill-rise{
  from{ opacity:0; transform:translateY(8px) scale(.96); }
  to{ opacity:1; transform:none; }
}

/* Toast after settle */
.windowsill-toast{
  position:fixed; left:50%; bottom:28px; z-index:80;
  transform:translate(-50%,16px); opacity:0;
  display:grid; gap:4px; min-width:min(320px,90vw); max-width:420px;
  padding:14px 18px; border-radius:16px;
  background:linear-gradient(165deg,#24342adc,#15201adc);
  border:1px solid #d2bf8a77; color:#f3ebe0;
  box-shadow:0 20px 50px #00000066;
  transition:opacity .35s ease, transform .35s cubic-bezier(.16,1,.3,1);
  pointer-events:auto;
}
.windowsill-toast.is-in{ opacity:1; transform:translate(-50%,0); }
.windowsill-toast strong{ font:600 14px/1.3 "Noto Serif SC",serif; }
.windowsill-toast span{ font-size:12px; color:#c9bba6; }
.windowsill-toast em{ font-style:normal; font-size:11px; color:#d8c48a; }
.windowsill-toast button{
  margin-top:6px; justify-self:start;
  border:0; border-radius:999px; padding:6px 12px; cursor:pointer;
  background:#e8d6a0; color:#2a2010; font-size:12px; font-weight:600;
}

/* Soft paywall */
.windowsill-paywall{
  position:fixed; inset:0; z-index:90;
  display:grid; place-items:center; padding:24px;
  background:#0a120ecc; backdrop-filter:blur(8px);
}
.windowsill-pay-card{
  position:relative; width:min(440px,100%);
  padding:22px 22px 18px; border-radius:22px;
  background:linear-gradient(165deg,#24342a,#15201a 70%);
  border:1px solid #d2bf8a66; color:#f3ebe0;
  box-shadow:0 30px 80px #00000088;
  display:grid; gap:10px;
}
.windowsill-pay-close{
  position:absolute; top:10px; right:12px;
  width:36px; height:36px; border:0; border-radius:50%;
  background:#ffffff14; color:#f3ebe0; font-size:20px; cursor:pointer;
}
.windowsill-pay-stage{
  height:72px; border-radius:14px; margin-bottom:4px;
  background:linear-gradient(180deg,#1a2820,#0f1612);
  border:1px solid #cbb77a33; display:grid; place-items:center;
}
.windowsill-pay-shelf{
  display:flex; gap:14px; font-size:22px; color:#e8d6a0;
  filter:drop-shadow(0 0 10px #e8d6a044);
}
.windowsill-pay-card .eyebrow{
  margin:0; font-size:11px; letter-spacing:.16em; color:#d8c48a; text-transform:uppercase;
}
.windowsill-pay-card h2{
  margin:0; font:600 22px/1.35 "Noto Serif SC",serif; letter-spacing:.01em;
}
.windowsill-pay-lead{ margin:0; font-size:13px; line-height:1.55; color:#c9bba6; }
.windowsill-pay-benefits{
  list-style:none; margin:4px 0; padding:0; display:grid; gap:10px;
}
.windowsill-pay-benefits li{
  display:grid; gap:2px; padding:10px 12px; border-radius:12px;
  background:#ffffff08; border:1px solid #ffffff10;
}
.windowsill-pay-benefits strong{ font:600 13px/1.3 "Noto Serif SC",serif; color:#f5ecd8; }
.windowsill-pay-benefits span{ font-size:12px; line-height:1.45; color:#b9aa95; }
.windowsill-pay-price{ margin:2px 0 0; display:flex; align-items:baseline; gap:8px; }
.windowsill-pay-price strong{ font:600 28px/1 "Noto Serif SC",serif; color:#e8d6a0; }
.windowsill-pay-price span{ font-size:12px; color:#a89980; }
.windowsill-pay-actions{ display:grid; gap:8px; margin-top:4px; }
.windowsill-pay-primary{
  border:0; border-radius:999px; padding:12px 16px; cursor:pointer;
  background:linear-gradient(135deg,#e8d6a0,#c4a45e); color:#2a2010;
  font:600 14px/1.2 "Noto Serif SC",serif;
}
.windowsill-pay-ghost{
  border:0; border-radius:999px; padding:10px 14px; cursor:pointer;
  background:#ffffff10; color:#e8dcc8; font-size:13px;
}
.windowsill-pay-fine{ margin:0; font-size:11px; color:#8f8574; line-height:1.4; }

/* Lived-in room when Pro shelf is open */
body.sill-open .sanctuary-home-scene .sh-veil{
  background:linear-gradient(90deg,#14261bd0,#14261b99 28%,#14261b22 78%),
    linear-gradient(0deg,#19251eee,transparent 42%) !important;
}
body.sill-locked .sanctuary-home-scene .sh-scenery{
  filter:saturate(.92) brightness(.96);
}
body.sill-open .sanctuary-home-scene .sh-scenery{
  filter:saturate(1.05) brightness(1.02);
}

/* Demote old suite-door — no longer the primary sell */
.suite-door{
  opacity:.0 !important; pointer-events:none !important;
  visibility:hidden !important;
}
body.suite-locked .sanctuary-home-scene:after{ opacity:0 !important; content:none !important; }

@media (max-width:760px){
  .windowsill{
    left:16px; right:16px; width:auto; bottom:12%;
    max-width:none;
  }
  .windowsill-mark{ width:46px; min-height:52px; }
  .windowsill-niche{ min-width:132px; }
}
@media (prefers-reduced-motion:reduce){
  .windowsill-mark,.windowsill-toast{ animation:none!important; transition:none!important; }
}

/* r5 · richer sill objects (not just glyphs) + hospitality paywall */
.windowsill{
  background:linear-gradient(165deg,#1c2a22aa,#121a15b0 55%,#0e1511cc);
  border:1px solid #cbb77a66;
  box-shadow:0 22px 56px #06100c77, inset 0 1px 0 #f0e2b533;
  backdrop-filter:blur(14px) saturate(1.12);
}
.windowsill-obj{
  display:block; width:28px; height:28px; margin:0 auto 2px;
  position:relative;
}
.windowsill-mark.shape-feather .windowsill-obj{
  background:radial-gradient(ellipse 70% 40% at 50% 50%, #f5f0e8ee, #f5f0e822 70%, transparent);
  border-radius:50% 50% 40% 60%; transform:rotate(-25deg);
  box-shadow:0 0 10px #f5f0e855;
}
.windowsill-mark.shape-cup .windowsill-obj{
  width:18px; height:16px; margin-top:6px;
  background:linear-gradient(180deg,#f0e6d4,#c4a882);
  border-radius:2px 2px 7px 7px;
  box-shadow:inset 0 -5px 0 #a8885844, 0 0 8px #c4a88244;
}
.windowsill-mark.shape-cup .windowsill-obj:after{
  content:""; position:absolute; right:-5px; top:3px; width:5px; height:7px;
  border:1.5px solid #c4a882; border-left:0; border-radius:0 7px 7px 0;
}
.windowsill-mark.shape-lamp .windowsill-obj{
  width:22px; height:20px; margin-top:4px;
  background:linear-gradient(180deg,#f5ecd0,#c4a45e);
  clip-path:polygon(22% 0, 78% 0, 100% 100%, 0 100%);
  box-shadow:0 0 14px #f0d58a66;
}
.windowsill-mark.shape-note .windowsill-obj{
  width:20px; height:24px; margin-top:2px;
  background:linear-gradient(165deg,#f7f1e4,#e0d4bc);
  border-radius:2px; box-shadow:0 2px 6px #0004;
  transform:rotate(3deg);
}
.windowsill-mark.shape-note .windowsill-obj:before{
  content:""; position:absolute; left:4px; right:4px; top:7px; height:1px; background:#b8a88888;
  box-shadow:0 4px 0 #b8a88866, 0 8px 0 #b8a88844;
}
.windowsill-mark.shape-pebble .windowsill-obj{
  width:14px; height:10px; margin-top:10px;
  background:radial-gradient(circle at 35% 35%, #c8d0c4, #6a7a6e);
  border-radius:50%; box-shadow:0 2px 4px #0005;
}
.windowsill-mark.shape-book .windowsill-obj{
  width:14px; height:24px; margin-top:2px;
  background:linear-gradient(90deg,#5c4630,#a88848 40%,#5c4630);
  border-radius:1px; box-shadow:2px 0 0 #3a2c1c inset;
}
.windowsill-mark.shape-shell .windowsill-obj{
  width:22px; height:14px; margin-top:8px;
  background:radial-gradient(ellipse at 50% 80%, #f0e6d4, #c4b090);
  border-radius:50% 50% 40% 40%;
  box-shadow:inset 0 -3px 0 #a8987844;
}
.windowsill-glyph{ display:none; } /* superseded by .windowsill-obj */

.windowsill-niche-lock{
  background:#e8d6a0; color:#2a2010;
}
.windowsill-niche-copy strong{ letter-spacing:.01em; }

/* Hospitality soft paywall */
.windowsill-pay-card.is-hospitality{
  background:linear-gradient(165deg,#2a3a30,#1a2620 55%,#141c18);
  border:1px solid #d2bf8a77;
  gap:12px;
}
.windowsill-pay-card.is-hospitality h2{
  font-size:21px; font-weight:500; letter-spacing:.02em;
}
.windowsill-pay-card.is-hospitality .windowsill-pay-lead{
  font-size:13.5px; line-height:1.65; color:#d4c8b4;
}
.windowsill-pay-card.is-hospitality .windowsill-pay-primary{
  background:linear-gradient(135deg,#e8d6a0,#c9a96a);
  box-shadow:0 8px 24px #00000044;
}
.windowsill-pay-card.is-hospitality .windowsill-pay-ghost:last-of-type{
  background:transparent; color:#b9aa95; font-size:12.5px;
  text-decoration:underline; text-underline-offset:4px;
}
.windowsill-pay-shelf.lived{
  gap:16px; align-items:flex-end; height:48px;
}
.pay-obj{
  display:inline-block; position:relative;
  width:22px; height:22px;
}
.pay-obj.feather{
  background:radial-gradient(ellipse, #f5f0e8, transparent 70%);
  border-radius:50%; transform:rotate(-20deg); width:26px; height:12px;
}
.pay-obj.cup{
  width:16px; height:14px; background:linear-gradient(180deg,#f0e6d4,#c4a882);
  border-radius:2px 2px 6px 6px;
}
.pay-obj.lamp{
  width:20px; height:16px; background:linear-gradient(180deg,#f5ecd0,#c4a45e);
  clip-path:polygon(20% 0, 80% 0, 100% 100%, 0 100%);
  box-shadow:0 0 12px #f0d58a66;
}
.pay-obj.note{
  width:16px; height:20px; background:#f7f1e4; border-radius:2px;
  transform:rotate(4deg);
}
.pay-obj.book{
  width:10px; height:22px; background:linear-gradient(90deg,#4a5c48,#6a7e68);
}

/* Pro denser room coupling */
body.sill-open .sanctuary-home-scene .sh-veil{
  background:
    linear-gradient(90deg,#14261bc8,#14261b88 26%,#14261b18 72%),
    linear-gradient(0deg,#19251ef0,transparent 48%),
    radial-gradient(ellipse 50% 40% at 75% 30%, #f0d58a22, transparent 60%) !important;
}
body.sill-locked .sanctuary-home-scene .sh-scenery{
  filter:saturate(.88) brightness(.94) contrast(.98);
}
body.sill-open .sanctuary-home-scene .sh-scenery{
  filter:saturate(1.08) brightness(1.04) contrast(1.02);
}


/* r6 · photographic mementos */
.windowsill-obj{
  width:36px; height:36px; border-radius:10px;
  background:#1a241e center/cover no-repeat;
  box-shadow:0 4px 10px #00000055, inset 0 0 0 1px #cbb77a33;
  display:block;
}
.windowsill-obj[data-shape=feather],.windowsill-mark.kind-feather .windowsill-obj{ background-image:url('assets/r6/mementos/feather.jpg'); }
.windowsill-obj[data-shape=cup],.windowsill-obj[data-shape=tea],.windowsill-mark.kind-tea .windowsill-obj{ background-image:url('assets/r6/mementos/tea.jpg'); }
.windowsill-obj[data-shape=lamp],.windowsill-mark.kind-lamp .windowsill-obj{ background-image:url('assets/r6/mementos/lamp.jpg'); }
.windowsill-obj[data-shape=note],.windowsill-obj[data-shape=pose],.windowsill-mark.kind-pose .windowsill-obj{ background-image:url('assets/r6/mementos/note.jpg'); }
.windowsill-obj[data-shape=pebble],.windowsill-obj[data-shape=quiet],.windowsill-mark.kind-quiet .windowsill-obj{ background-image:url('assets/r6/mementos/pebble.jpg'); }
.windowsill-obj[data-shape=book],.windowsill-mark.kind-book .windowsill-obj{ background-image:url('assets/r6/mementos/book.jpg'); }
.windowsill-obj[data-shape=shell],.windowsill-mark.kind-shell .windowsill-obj{ background-image:url('assets/r6/mementos/shell.jpg'); }
.windowsill-mark.is-faint .windowsill-obj{ filter:saturate(.4) brightness(.75); opacity:.85; }
.windowsill{
  background:linear-gradient(165deg,#141c18bb,#0e1511cc 60%,#0a100ddd);
  border:1px solid #cbb77a66;
  box-shadow:0 22px 56px #02080577, inset 0 1px 0 #f0e2b528;
  backdrop-filter:blur(14px) saturate(1.08);
}
.windowsill-pay-stage{
  background:url('assets/r6/room-lived.jpg') center/cover no-repeat !important;
  min-height:120px; border-radius:12px; margin-bottom:12px;
  position:relative; overflow:hidden;
}
.windowsill-pay-stage:after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 20%,#0e1511ee);
}
.windowsill-pay-shelf{ display:none; }
.windowsill-pay-card.is-hospitality{
  background:linear-gradient(165deg,#f7f2e8,#ebe3d4);
  border:1px solid #cbb77a55;
  box-shadow:0 28px 80px #02080588;
}
.windowsill-pay-card .eyebrow{ color:#8a7344; letter-spacing:.16em; }
.windowsill-pay-primary{
  background:linear-gradient(180deg,#2a3c30,#1a281e) !important;
  border:1px solid #cbb77a66 !important;
  color:#f5ecd8 !important;
}
