.light-send-choice{padding:16px;border:1px solid #a0bb87;border-radius:18px;background:#fff9e7;margin:18px 0;color:#284639}
.light-send-choice label{display:block;font-weight:700;margin-bottom:8px}
.light-send-choice input{width:100%;max-width:140px;min-height:48px;font:inherit;background:#fff;color:#243e32;border:2px solid #769e66;border-radius:12px;padding:8px}
.received-lanterns{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;padding:10px;background:radial-gradient(ellipse,#ffe8a8a8,transparent 70%)}
.received-lanterns img{width:clamp(34px,8vw,62px);height:70px;object-fit:contain;filter:drop-shadow(0 0 9px #ffd560)}
.receive-bed>.fine{text-align:center}.with-light{box-shadow:0 0 22px #ffd46c66;border-radius:20px;background:#fff5d533}
.thank-light{margin:8px!important;background:#fff2bd!important;color:#354b34!important;border:1px solid #ae913d!important;min-height:44px}
.thank-light:disabled{opacity:.8}.light-journey{margin-top:28px;border-top:1px solid #8da893;padding-top:18px}
.journey-note{display:flex;gap:12px;align-items:center;padding:12px;border-radius:18px;background:#fff9e6c9;margin:10px 0;color:#2d4936;overflow-wrap:anywhere}
.journey-note img{width:45px;height:54px;object-fit:contain;flex-shrink:0}.journey-note p{margin:0}.journey-note.thanked{background:#fff3c6;border:1px solid #d5ba62}
.light-arrival .received-lanterns{animation:light-welcome 1.4s ease-out}
@keyframes light-welcome{0%{filter:brightness(1)}35%{filter:brightness(1.45);transform:scale(1.04)}100%{filter:brightness(1);transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.light-arrival .received-lanterns{animation:none}}
.reduced .light-arrival .received-lanterns{animation:none}

.has-unread{position:relative}
.has-unread::after{content:'';position:absolute;top:8px;right:8px;width:11px;height:11px;border-radius:50%;background:#1675e8;border:2px solid #fff;box-shadow:0 0 0 1px #135aae;pointer-events:none}
.unread-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
button.journey-note{width:100%;text-align:left;padding-right:26px}

/* Sibling buttons visually share a card; never nest interactive buttons. */
.received-message{position:relative}
.received-message .message-flower{padding-top:54px}
.received-message .message-delete{position:absolute;top:6px;right:6px;z-index:2;width:auto;min-height:44px;padding:6px 10px;font-size:12px;line-height:1.2;border-radius:12px;background:#fff8eedb;color:#694143;box-shadow:none}
.received-message .message-flower.has-unread::after{left:10px;right:auto;top:14px}

.received-message:has(>.thank-light:not([hidden]))>.message-flower{padding-bottom:70px}
.received-message>.thank-light{position:absolute;bottom:10px;left:12px;right:12px;margin:0!important;min-height:44px;padding:8px 10px;font-size:14px;line-height:1.3;border-radius:12px;z-index:2}

.path-card .path-art{position:relative;overflow:hidden;min-width:0;height:175px}.path-card .path-art>img:first-child{width:100%;height:100%;object-fit:cover}.path-card .path-art>.game-cue{position:absolute;right:6px;bottom:6px;width:96px;height:64px;min-height:0;object-fit:contain;pointer-events:none}
@media(max-width:700px){.path-card .path-art{height:100%;min-height:148px}.path-card .path-art>.game-cue{width:86px;height:58px;right:4px;bottom:6px}}

.light-garden.placed-garden,.receive-bed>.light-garden.placed-garden{display:block;container-type:inline-size;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:3/2;padding:0;background-size:100% 100%;overflow:hidden}
.placed-garden .garden-spot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;min-height:44px;padding:0;border:0!important;border-radius:50%;background:transparent!important;box-shadow:none;display:block}
.placed-garden .garden-spot>.picture-sprite{position:absolute;bottom:50%;left:50%;transform:translateX(-50%);width:var(--object-size);height:var(--object-size);max-height:none;object-fit:contain;filter:drop-shadow(0 2px 2px #1b302a66);animation:none}
.placement-dot{position:absolute;width:15px;height:15px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);background:#ffffffb8;border:1px solid #fff;box-shadow:0 1px 6px #15372c80;pointer-events:none}
.decorating .garden-spot:hover .placement-dot,.decorating .garden-spot:focus-visible .placement-dot{background:#fff;box-shadow:0 0 0 4px #ffffff60}
.receive-bed:has(.placed-garden):after{display:none}

.journey-update{position:relative}.journey-update>.journey-note{padding-right:94px;min-height:76px}.journey-update>.dismiss-update{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-height:44px;padding:6px 9px;font-size:12px;border-radius:10px;background:#fff8ee;color:#526346;box-shadow:none}.journey-update>.journey-note.has-unread::after{right:96px}

.message-listen{min-height:44px;padding:7px 14px;font-size:14px;border-radius:12px;background:#fff8db;color:#365747}
.narrated-message:has(>.message-listen:not([hidden]))>.message-flower{padding-bottom:70px}
.narrated-message:has(>.message-listen:not([hidden])):has(>.thank-light:not([hidden]))>.message-flower{padding-bottom:122px}
.narrated-message>.message-listen{position:absolute;bottom:10px;left:12px;z-index:2}
.narrated-message:has(>.thank-light:not([hidden]))>.message-listen{bottom:62px}
.narrated-update>.journey-note{padding-bottom:64px}
.narrated-update>.message-listen{position:absolute;bottom:10px;left:12px;z-index:2}

/* Suppress double-tap zoom/selection without blocking scrolling or pinch zoom. */
html,body{touch-action:manipulation}
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
input,textarea,[contenteditable=true],[contenteditable=true] *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
img{-webkit-user-drag:none}

button,a,[role=button],.kind-shell,.view,dialog{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.share-game{align-self:flex-start;margin:0 0 14px;min-height:44px;font-size:14px}.match-stage,.match-input button{touch-action:none}

.message-date{display:block;width:100%;grid-column:1 / -1;margin-top:7px;font-size:11px;font-weight:400;line-height:1.5;color:#50634f;white-space:normal}.message-date:empty{display:none}
