/* FMT-S21-tarot — Travelers’ notes on their own cork board */
/* FMT-S20-tarot — Quiet fairies in the garden air (background only) */
/* FMT-S19-tarot — Travelers’ board as left-behind scrolls; weekday plus date */
/* FMT-S18-tarot — Travelers’ board in The Spheres */
/* FMT-S17-tarot — Niche day column + message board */
/* FMT-S14-tarot — Lock card readable on the terrace photo (no flood overlay) */

.spv-door{
  max-width:22rem;
  margin:2.8rem auto 3.2rem;
  position:relative;
  z-index:1;
  background:transparent;
  border:none;
  padding:0;
}
.spv-pair{
  margin:0;
  position:relative;
}
.spv-pair img{
  display:block;
  width:100%;
  height:auto;
  border:0;
  filter:saturate(0.85) contrast(1.05);
  opacity:0.92;
}
.spv-whisper-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0.35rem;
  margin-top:0.45rem;
}
.spv-whisper{
  width:7.5rem;
  font-family:'EB Garamond',serif;
  font-size:0.78rem;
  letter-spacing:0.08em;
  padding:0.18rem 0.35rem;
  border:none;
  border-bottom:1px solid rgba(42,31,14,0.28);
  background:transparent;
  color:var(--ink-mid, #4a3820);
  outline:none;
}
.spv-star{
  width:1.55rem;
  height:1.55rem;
  padding:0;
  border:none;
  background:transparent;
  cursor:pointer;
  color:rgba(122,26,26,0.72);
  line-height:0;
}
.spv-star:hover{color:rgba(122,26,26,0.95);}
.spv-star-mark{width:100%;height:100%;display:block;fill:currentColor;}
.spv-err{
  margin:0.35rem 0 0;
  text-align:center;
  color:var(--red-wax, #7a1a1a);
  font-size:0.78rem;
  font-style:italic;
  min-height:0;
}
.spv-gate.is-sealed .spv-hint{color:var(--red-wax, #7a1a1a);text-align:center;font-size:0.8rem;}

.spv-vault-page{
  --vault-leaf:#A8B5A0;
  --vault-moss:#8a9a82;
  --vault-gold:#C4A35A;
  --vault-linen:#F8F4EC;
  --vault-ink:#2c2a26;
  font-family:'Source Sans 3',sans-serif;
  color:var(--vault-ink);
  min-height:100vh;
  background:linear-gradient(180deg, #d5e0d0 0%, #F8F4EC 100%);
  overflow-x:hidden;
}
.spv-garden-air{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.spv-garden-river,
.spv-garden-river-caustic,
.spv-garden-water,
.spv-garden-leaf{
  display:none;
}
.spv-garden-photo{
  position:absolute;
  inset:0;
  background:
    url("/img/hanging-garden-terrace.jpg") 50% 42% / 112% auto no-repeat;
  transform:none;
  -webkit-mask-image:none;
  mask-image:none;
  animation:spv-terrace-live 56s ease-in-out infinite alternate;
}
@keyframes spv-terrace-live{
  from{background-position:48% 40%; background-size:110% auto;}
  to{background-position:54% 46%; background-size:118% auto;}
}
.spv-garden-shimmer{
  position:absolute;
  inset:-10%;
  background:radial-gradient(ellipse at 28% 22%, rgba(255,236,200,0.12), transparent 52%);
  animation:spv-shimmer 36s ease-in-out infinite alternate;
  mix-blend-mode:soft-light;
  opacity:0.35;
  pointer-events:none;
}
@keyframes spv-shimmer{
  0%{transform:translate(0,0) scale(1);opacity:0.12;}
  100%{transform:translate(36px,-18px) scale(1.08);opacity:0.22;}
}
.spv-garden-fairies{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
}
.spv-fairy{
  position:absolute;
  width:16px;
  height:16px;
  margin:0;
  pointer-events:none;
  filter:drop-shadow(0 0 7px rgba(255,236,190,0.9));
}
.spv-fairy::before{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:7px;
  height:7px;
  margin:-3.5px 0 0 -3.5px;
  border-radius:50%;
  background:radial-gradient(circle, #fffef6 0%, #f0d070 50%, rgba(196,163,90,0.2) 100%);
  box-shadow:0 0 12px 4px rgba(255,228,170,0.7);
}
.spv-fairy::after{
  content:'';
  position:absolute;
  left:50%;
  top:50%;
  width:20px;
  height:11px;
  margin:-5.5px 0 0 -10px;
  background:
    radial-gradient(ellipse 42% 70% at 18% 50%, rgba(255,255,245,0.7), rgba(200,220,170,0.12) 70%, transparent 72%),
    radial-gradient(ellipse 42% 70% at 82% 50%, rgba(255,255,245,0.7), rgba(200,220,170,0.12) 70%, transparent 72%);
  animation:spv-fairy-wing 0.16s ease-in-out infinite;
  opacity:0.85;
}
.spv-fairy-a{ left:14%; top:22%; animation:spv-fairy-a 13s ease-in-out infinite; }
.spv-fairy-b{ left:38%; top:18%; width:9px; height:9px; animation:spv-fairy-b 16s ease-in-out infinite 0.8s; }
.spv-fairy-c{ left:62%; top:26%; animation:spv-fairy-c 11s ease-in-out infinite 1.4s; }
.spv-fairy-d{ left:78%; top:14%; width:8px; height:8px; animation:spv-fairy-d 18s ease-in-out infinite 0.3s; }
.spv-fairy-e{ left:22%; top:48%; width:10px; height:10px; animation:spv-fairy-e 14s ease-in-out infinite 2s; }
.spv-fairy-f{ left:52%; top:12%; width:8px; height:8px; animation:spv-fairy-f 12s ease-in-out infinite 1.1s; }
.spv-fairy-g{ left:70%; top:40%; animation:spv-fairy-g 15s ease-in-out infinite 0.6s; }
@keyframes spv-fairy-wing{
  from{transform:scaleX(0.55) rotate(-8deg);opacity:0.45;}
  to{transform:scaleX(1.15) rotate(8deg);opacity:0.9;}
}
@keyframes spv-fairy-a{
  0%{transform:translate(0,0);}
  25%{transform:translate(42px,-28px);}
  50%{transform:translate(88px,18px);}
  75%{transform:translate(24px,36px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-b{
  0%{transform:translate(0,0);}
  30%{transform:translate(-56px,22px);}
  60%{transform:translate(30px,48px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-c{
  0%{transform:translate(0,0);}
  40%{transform:translate(-70px,-20px);}
  70%{transform:translate(18px,40px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-d{
  0%{transform:translate(0,0);}
  50%{transform:translate(-90px,30px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-e{
  0%{transform:translate(0,0);}
  35%{transform:translate(50px,-40px);}
  65%{transform:translate(-20px,-18px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-f{
  0%{transform:translate(0,0);}
  50%{transform:translate(64px,26px);}
  100%{transform:translate(0,0);}
}
@keyframes spv-fairy-g{
  0%{transform:translate(0,0);}
  25%{transform:translate(-34px,-32px);}
  55%{transform:translate(40px,12px);}
  100%{transform:translate(0,0);}
}
.spv-vault-page.spv-hushed .spv-garden-shimmer,
.spv-vault-page.spv-hushed .spv-garden-photo,
.spv-vault-page.spv-hushed .spv-fairy,
.spv-vault-page.spv-hushed .spv-fairy::after{
  animation-play-state:paused;
}
.spv-vault-page.spv-hushed .spv-garden-fairies{opacity:0.18;}
@media (prefers-reduced-motion:reduce){
  .spv-garden-shimmer,
  .spv-garden-photo,
  .spv-garden-fairies,
  .spv-fairy,
  .spv-fairy::after,
  .spv-vault-page .spv-laying-star{animation:none;}
  .spv-garden-fairies{opacity:0.22;}
}
.spv-hush{
  position:fixed;
  z-index:4;
  left:1rem;
  bottom:1rem;
  display:flex;
  align-items:center;
  gap:0.4rem;
  font-family:'Cinzel',serif;
  font-size:0.5rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:#C4A35A;
  background:rgba(248,244,236,0.86);
  border:1px solid rgba(196,163,90,0.55);
  border-radius:999px;
  padding:0.38rem 0.8rem 0.38rem 0.5rem;
  cursor:pointer;
}
.spv-hush-mark{width:1.15rem;height:1.15rem;display:block;}
.spv-hush[aria-pressed="true"]{opacity:0.5;color:#8a9a82;}
.spv-vault-page .spv-house{
  max-width:38rem;
  margin:0 auto;
  padding:1.8rem 1.25rem 3.6rem;
  position:relative;
  z-index:2;
}
.spv-vault-page .spv-house::before{
  content:"";
  position:absolute;
  inset:0.85rem 0.55rem 1.2rem;
  background:rgba(248,244,236,0.78);
  border:1px solid rgba(168,181,160,0.55);
  border-radius:12px;
  box-shadow:0 10px 40px rgba(40,45,32,0.12);
  pointer-events:none;
  z-index:-1;
}
.spv-vault-lintel{
  text-align:center;
  font-family:'Cinzel',serif;
  font-size:0.72rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:#C4A35A;
  margin:0.6rem 0 0.85rem;
}
.spv-vault-mark{
  display:flex;
  justify-content:center;
  margin-bottom:1.1rem;
}
.spv-vault-djed{
  display:block;
  width:2.65rem;
  height:auto;
}
.spv-vault-page .spv-gate,
.spv-vault-page .spv-pair{
  position:relative;
  z-index:5;
  max-width:22rem;
  margin:0.35rem auto 0;
  padding:1.15rem 1.25rem 1.3rem;
  background:rgba(248,244,236,0.95);
  border:1px solid rgba(196,163,90,0.5);
  border-radius:14px;
  box-shadow:0 16px 44px rgba(30,28,20,0.2);
}
.spv-vault-page .spv-k{
  font-family:'Cinzel',serif;
  font-size:0.62rem;
  letter-spacing:0.26em;
  text-transform:uppercase;
  color:#C4A35A;
  text-align:center;
  margin-bottom:0.45rem;
}
.spv-vault-page .spv-hint{
  font-family:'Source Sans 3',sans-serif;
  font-style:italic;
  font-size:0.98rem;
  color:rgba(44,42,38,0.72);
  text-align:center;
  margin:0 0 1.1rem;
  letter-spacing:0.01em;
}
.spv-vault-page .spv-whisper{
  width:12rem;
  background:#F8F4EC;
  border:1px solid rgba(168,181,160,0.75);
  border-radius:8px;
  padding:0.45rem 0.7rem;
  color:var(--vault-ink);
  font-family:'Source Sans 3',sans-serif;
  font-size:1rem;
}
.spv-vault-page .spv-star{color:rgba(196,163,90,0.9);}
.spv-vault-page .spv-star:hover{color:#C4A35A;}
.spv-vault-page .spv-drop{
  display:block;
  position:relative;
  overflow:hidden;
  border:1px dashed rgba(168,181,160,0.7);
  border-radius:12px;
  padding:1.4rem 0.8rem;
  text-align:center;
  cursor:pointer;
  font-family:'Source Sans 3',sans-serif;
  font-style:italic;
  color:rgba(44,42,38,0.78);
  margin:0.4rem 0 1rem;
  background:rgba(248,244,236,0.92);
  box-shadow:0 1px 0 rgba(255,255,255,0.8);
  transition:transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.spv-vault-page .spv-drop:hover{
  transform:translateY(-1px);
  border-color:rgba(196,163,90,0.7);
  box-shadow:0 6px 18px rgba(40,45,32,0.08);
}
.spv-vault-page .spv-drop.is-over{
  background:rgba(232,240,226,0.95);
  border-color:rgba(196,163,90,0.85);
}
.spv-vault-page .spv-drop.is-uploading{
  pointer-events:none;
  cursor:wait;
  border-style:solid;
  border-color:rgba(168,181,160,0.7);
}
.spv-vault-page .spv-drop input.spv-file{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
  font-size:0;
  z-index:2;
}
.spv-vault-page .spv-laying{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.5rem;
}
.spv-vault-page .spv-laying[hidden]{display:none;}
.spv-vault-page .spv-laying-star{
  width:1.9rem;
  height:1.9rem;
  position:relative;
  animation:spv-lay 1.15s linear infinite;
}
.spv-vault-page .spv-laying-star::before,
.spv-vault-page .spv-laying-star::after{
  content:"";
  position:absolute;
  inset:0;
  background:var(--vault-gold);
  clip-path:polygon(50% 0, 58% 42%, 100% 50%, 58% 58%, 50% 100%, 42% 58%, 0 50%, 42% 42%);
}
.spv-vault-page .spv-laying-star::after{transform:rotate(45deg);}
.spv-vault-page .spv-laying-words{
  font-size:0.95rem;
  font-style:normal;
  color:#5a6456;
}
@keyframes spv-lay{
  to{transform:rotate(360deg);}
}
.spv-vault-page .spv-list{list-style:none;margin:0;padding:0;}
.spv-vault-page .spv-niche-head{
  display:grid;
  grid-template-columns:8.2rem minmax(0,1fr);
  gap:0.35rem 0.65rem;
  padding:0.15rem 0.7rem 0.35rem;
  font-family:'Cinzel',serif;
  font-size:0.48rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(90,100,86,0.72);
}
.spv-vault-page .spv-item{
  display:grid;
  grid-template-columns:8.2rem minmax(0,1fr) auto;
  grid-template-areas:"day open del" "day meta del";
  align-items:baseline;
  gap:0.12rem 0.65rem;
  padding:0.7rem 0.7rem;
  margin-bottom:0.45rem;
  border:1px solid rgba(168,181,160,0.45);
  background:rgba(248,244,236,0.94);
  border-radius:10px;
  box-shadow:0 2px 10px rgba(40,45,32,0.05);
  transition:transform 0.18s ease, box-shadow 0.18s ease;
}
.spv-vault-page .spv-item:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(40,45,32,0.08);
}
.spv-vault-page .spv-open,
.spv-vault-page .spv-del{
  font-family:'Cinzel',serif;
  font-size:0.52rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  background:transparent;
  border:1px solid transparent;
  color:#5a6456;
  padding:0.35rem 0.65rem;
  cursor:pointer;
}
.spv-vault-page .spv-open{
  grid-area:open;
  flex:1;
  text-align:left;
  text-transform:none;
  letter-spacing:0.03em;
  font-family:'Source Sans 3',sans-serif;
  font-size:1.02rem;
  color:var(--vault-ink);
  border-radius:0;
}
.spv-vault-page .spv-open:hover{
  box-shadow:inset 0 -1px 0 #C4A35A;
}
.spv-vault-page .spv-del{
  grid-area:del;
  align-self:center;
  border-radius:999px;
  background:var(--vault-linen);
  border:1px solid rgba(168,181,160,0.55);
  color:#5a6456;
}
.spv-vault-page .spv-del:hover{
  border-color:#C4A35A;
  color:#6a5a32;
}
.spv-vault-page .spv-day{
  grid-area:day;
  display:flex;
  flex-direction:column;
  gap:0.12rem;
  font-family:'Cinzel',serif;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(44,42,38,0.62);
  padding-top:0.2rem;
}
.spv-vault-page .spv-weekday{
  font-size:0.62rem;
  letter-spacing:0.14em;
  color:rgba(44,42,38,0.78);
}
.spv-vault-page .spv-date{
  font-size:0.52rem;
  letter-spacing:0.1em;
  color:rgba(44,42,38,0.52);
}
.spv-vault-page .spv-meta{grid-area:meta;font-size:0.78rem;color:rgba(44,42,38,0.48);}
.spv-vault-page .spv-empty{font-style:italic;color:rgba(90,100,86,0.7);padding:0.5rem 0;text-align:center;grid-column:1/-1;}
.spv-vault-page .spv-board-open{
  font-family:'Cinzel',serif;
  font-size:0.52rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:0.32rem 0.75rem;
  border:1px solid rgba(196,163,90,0.55);
  background:rgba(248,244,236,0.96);
  color:#6a5a32;
  border-radius:999px;
  cursor:pointer;
}
.spv-vault-page .spv-board-open:hover{border-color:#C4A35A;}
.spv-vault-page .spv-msg-board{
  margin-top:0.2rem;
  padding:0.85rem 0.75rem 1rem;
  min-height:16rem;
  background:
    radial-gradient(ellipse at 20% 10%, rgba(255,248,230,0.18), transparent 46%),
    repeating-linear-gradient(135deg, rgba(90,60,30,0.07) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, #c4a070 0%, #b08958 48%, #9a7348 100%);
  border:8px solid #6e4e2c;
  border-radius:4px;
  box-shadow:
    inset 0 0 0 2px rgba(242,220,170,0.35),
    0 8px 22px rgba(42,31,14,0.18);
}
.spv-vault-page .spv-board-form{
  display:flex;
  flex-direction:column;
  gap:0.45rem;
  margin:0.35rem auto 1rem;
  max-width:26rem;
  width:100%;
}
.spv-vault-page .spv-board-write{
  width:100%;
  min-height:4.6rem;
  resize:vertical;
  font-family:'EB Garamond',Georgia,serif;
  font-style:italic;
  font-size:1.05rem;
  line-height:1.5;
  color:var(--vault-ink,#2c2a26);
  background:
    linear-gradient(180deg, rgba(255,250,236,0.98), rgba(242,228,196,0.94));
  border:1px solid rgba(168,140,80,0.38);
  border-top:3px solid rgba(90,70,40,0.22);
  border-bottom:3px solid rgba(90,70,40,0.22);
  border-radius:2px;
  padding:0.7rem 0.85rem 0.8rem;
  box-shadow:2px 4px 10px rgba(42,31,14,0.07);
}
.spv-vault-page .spv-board-leave{
  align-self:center;
  font-family:'Cinzel',serif;
  font-size:0.52rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:0.4rem 0.9rem;
  border:1px solid rgba(168,181,160,0.55);
  background:rgba(248,244,236,0.96);
  color:#5a6456;
  border-radius:999px;
  cursor:pointer;
}
.spv-vault-page .spv-board-leave:hover{border-color:#C4A35A;color:#6a5a32;}
.spv-vault-page .spv-board-list{
  list-style:none;
  margin:0;
  padding:0.15rem;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));
  gap:0.85rem;
  max-height:46vh;
  overflow-y:auto;
  align-items:start;
}
.spv-vault-page .spv-board-item{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0.35rem;
  margin:0;
  max-width:none;
  width:100%;
  padding:0.85rem 0.9rem 0.7rem;
  background:
    linear-gradient(175deg, #f8f0dc 0%, #efe3c0 48%, #e8d6a8 100%);
  border:1px solid rgba(168,140,80,0.38);
  border-top:3px solid rgba(90,70,40,0.28);
  border-bottom:3px solid rgba(90,70,40,0.28);
  border-radius:2px;
  box-shadow:
    2px 5px 14px rgba(42,31,14,0.16),
    inset 0 1px 0 rgba(255,255,255,0.45);
}
.spv-vault-page .spv-board-item::before,
.spv-vault-page .spv-board-item::after{
  content:'';
  position:absolute;
  left:12%;
  right:12%;
  height:7px;
  border-radius:50%;
  background:linear-gradient(180deg, rgba(42,31,14,0.1), transparent);
  pointer-events:none;
}
.spv-vault-page .spv-board-item::before{top:4px;}
.spv-vault-page .spv-board-item::after{bottom:4px;transform:rotate(180deg);}
.spv-vault-page .spv-board-item:nth-child(odd){
  transform:rotate(-1.1deg);
}
.spv-vault-page .spv-board-item:nth-child(even){
  transform:rotate(1.15deg);
}
.spv-vault-page .spv-scroll-head{
  display:flex;
  flex-direction:column;
  gap:0.08rem;
  font-family:'Cinzel',serif;
  text-transform:uppercase;
}
.spv-vault-page .spv-scroll-head .spv-weekday{
  font-size:0.58rem;
  letter-spacing:0.18em;
  color:rgba(90,70,40,0.78);
}
.spv-vault-page .spv-scroll-head .spv-date{
  font-size:0.5rem;
  letter-spacing:0.12em;
  color:rgba(90,70,40,0.52);
}
.spv-vault-page .spv-board-text{
  margin:0.15rem 0 0.2rem;
  font-family:'EB Garamond',Georgia,serif;
  font-style:italic;
  font-size:1.08rem;
  line-height:1.55;
  color:#2c2a26;
}
.spv-vault-page .spv-board-item .spv-del{
  align-self:flex-end;
  margin-top:0.15rem;
}
@media (prefers-reduced-motion: reduce){
  .spv-vault-page .spv-board-item:nth-child(odd),
  .spv-vault-page .spv-board-item:nth-child(even){
    transform:none;
    align-self:stretch;
    max-width:none;
  }
}
.spv-vault-page .spv-err{color:#7a1a1a;}
.spv-shut{
  text-align:center;
  font-family:'Source Sans 3',sans-serif;
  font-style:italic;
  color:rgba(44,42,38,0.55);
  padding:4rem 1rem;
}
.spv-vault-page .spv-shut{
  max-width:22rem;
  margin:0.35rem auto 0;
  padding:1.2rem 1.25rem;
  background:rgba(248,244,236,0.95);
  border:1px solid rgba(196,163,90,0.5);
  border-radius:14px;
  color:rgba(44,42,38,0.72);
}
