:root{--card-ink:#534634;--card-muted:#83745f;--card-green:#626e52;--card-paper:#fbf5e9;--reveal-time:850ms}
body{color:var(--card-ink)}
.wick{width:var(--candle-hit-width,72px);height:var(--candle-hit-height,240px);transform:translate(-50%,-30px);border-radius:30px;cursor:pointer;touch-action:manipulation}
.wick.near,.wick:focus-visible{background:radial-gradient(ellipse 34px 38px at 50% 30px,#f7dca055,transparent)}
#destination{display:block;overflow:auto;background:radial-gradient(ellipse at 50% 45%,#fcf9f0,#f2ecdf 85%);padding:0 24px 18px}
.card-masthead{width:100%;max-width:1280px;margin:auto;height:66px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:var(--card-muted);letter-spacing:.06em}
.brand{color:var(--card-ink);font-size:15px;text-decoration:none;letter-spacing:-.04em}.brand span{font-style:italic;color:var(--card-muted)}
.card-experience{display:flex;flex-direction:column;align-items:center;max-width:600px;margin:0 auto;text-align:center}
.arrival-note{font-size:14px;letter-spacing:.16em;margin:8px 0 22px;color:var(--card-muted)}
.card-wrap{position:relative;width:min(390px,100%);perspective:1200px}
.card-shadow{position:absolute;inset:10px -5px -8px 5px;transform:rotate(2deg);border-radius:20px;background:#eae1ce;box-shadow:0 20px 45px #59462b13}
.lumi-card{position:relative;aspect-ratio:4/5;border-radius:20px;overflow:hidden;background:var(--card-paper);box-shadow:0 8px 20px #58472f10,0 1px 4px #58472f12;transform-origin:50% 85%;outline-offset:8px;isolation:isolate}
.lumi-card>img{display:block;width:100%;height:100%;object-fit:cover}
.card-copy{position:absolute;inset:0 6% auto;padding-top:7%;z-index:1}
.lumi-card:focus{outline:none}
.card-theme{font-size:11px;letter-spacing:.18em;color:#8c7d64;margin:0 0 14px}
.card-copy h1{white-space:pre-line;font-weight:400;font-family:'Songti SC','STSong','Noto Serif CJK SC',serif;font-size:clamp(23px,2.8vw,29px);line-height:1.55;letter-spacing:.04em;margin:0;color:#534634;text-wrap:balance}
.card-bottom{position:absolute;inset:auto 0 0;padding:25px 22px 20px;background:linear-gradient(transparent,rgba(251,245,233,.96) 32%);z-index:1}
.card-bottom p{font-size:12px;line-height:1.7;letter-spacing:.035em;max-width:28em;margin:0 auto 12px;text-wrap:balance}
.card-signature{display:block;font-size:9px;color:#8b7d65;letter-spacing:.16em}.card-signature span{margin-left:12px;font-size:8px}
.card-actions{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:26px}
.save-card{background:var(--card-green);border:1px solid var(--card-green);border-radius:100px;color:#fffaf0;padding:12px 23px;min-height:46px;font-size:13px;letter-spacing:.06em;cursor:pointer;transition:transform .18s,background .18s}.save-card span{margin-left:10px}.save-card:hover{background:#4f5c40}.save-card:active{transform:scale(.97)}.save-card:disabled{opacity:.7;cursor:wait}
.card-actions .quiet-button{font-size:13px;color:#534634}
.save-status{font:11px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;color:var(--card-muted);min-height:17px;margin:6px 0 0}
.card-source{max-width:390px;font:11px/1.9 -apple-system,BlinkMacSystemFont,sans-serif;color:#81725c;margin:5px 0 0;padding:0 12px}
.card-source summary{cursor:pointer;list-style:none;min-height:36px;display:flex;align-items:center;justify-content:center}.card-source summary::after{content:'＋';font-size:10px;margin-left:8px}.card-source[open] summary::after{content:'−'}.card-source summary::-webkit-details-marker{display:none}.card-source p{margin:4px 0 8px}.card-source a{color:#626e52;text-underline-offset:3px}
.card-footer{text-align:center;font-size:10px;letter-spacing:.12em;font-style:italic;color:#9b8d76;margin:20px 0 6px}
.draw-invitation{position:fixed;bottom:35px;left:75px;right:75px;text-align:center;z-index:4;font-size:13px;letter-spacing:.12em;color:#8a6c48;pointer-events:none;margin:0;transition:opacity .35s}
body[data-state="igniting"] .draw-invitation{opacity:.4}body[data-state="leaving"] .draw-invitation,body[data-state="entered"] .draw-invitation{opacity:0;visibility:hidden}
body[data-state="leaving"] .lumi-card{animation:card-arrive var(--reveal-time) cubic-bezier(.19,.65,.25,1) both}.lumi-card.is-revealed .card-copy{animation:words-arrive .55s ease-out both}.lumi-card.is-revealed .card-bottom{animation:words-arrive .7s .08s ease-out both}
@keyframes card-arrive{from{opacity:0;transform:translateY(28px) rotateY(-14deg) rotate(-3deg) scale(.96)}to{opacity:1;transform:none}}
@keyframes words-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
a:focus-visible,summary:focus-visible{outline:2px solid #a17b43;outline-offset:5px}
@media(min-width:601px) and (max-height:800px){.card-masthead{height:50px}.arrival-note{margin:3px 0 16px}.card-wrap{width:min(355px,100%)}.card-copy h1{font-size:26px}.card-actions{margin-top:19px}.card-footer{margin:8px 0 4px}}
@media(max-width:600px){#destination{padding:0 22px 12px}.card-masthead{height:60px;font-size:10px;letter-spacing:.03em}.brand{font-size:14px}.arrival-note{font-size:12px;margin:12px 0 20px}.card-wrap{width:min(355px,100%)}.card-copy h1{font-size:clamp(22px,6.6vw,27px)}.card-copy{padding-top:7.6%}.card-theme{font-size:10px;margin-bottom:11px}.card-bottom{padding:24px 16px 17px}.card-bottom p{font-size:11px;line-height:1.7;margin-bottom:10px}.card-signature{font-size:8px}.card-actions{gap:21px;margin-top:25px}.card-footer{margin-top:13px}.draw-invitation{bottom:55px;left:25px;right:25px;font-size:12px;letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){.lumi-card,.lumi-card.is-revealed .card-copy,.lumi-card.is-revealed .card-bottom{animation:none}}
