#scene-boot{display:block!important;overflow:hidden}#scene-boot[hidden]{display:none!important}
#scene-boot::after{background:linear-gradient(180deg,rgba(15,19,24,.68),rgba(15,19,24,.18) 23%,rgba(15,19,24,.24) 72%,rgba(15,19,24,.85))}
.confession-river{position:absolute;inset:0;overflow:hidden;pointer-events:none;mask-image:linear-gradient(transparent 135px,#000 180px,#000 calc(100% - 210px),transparent calc(100% - 150px));-webkit-mask-image:linear-gradient(transparent 135px,#000 180px,#000 calc(100% - 210px),transparent calc(100% - 150px))}
.confession-row{position:absolute;top:100%;left:0;width:100%;padding:0 14px;box-sizing:border-box;display:flex;justify-content:center;align-items:center;gap:2px;white-space:nowrap;line-height:24px;font-size:var(--size,14px);text-shadow:0 2px 8px #0009;animation:confession-rise var(--duration,72s) linear infinite;animation-delay:var(--delay,0s);will-change:transform;color:#fff9ec}
.confession-emoji{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:1.35em;margin-right:5px;flex:none}.confession-name{color:#d8e5e6;flex:none}.confession-words{overflow:hidden;text-overflow:ellipsis;max-width:68vw}.confession-own{color:#ffdf93;font-weight:600}.confession-own .confession-name{color:#ffdf93}
@keyframes confession-rise{from{transform:translateY(5vh)}to{transform:translateY(-110vh)}}
.confession-header{position:absolute;top:0;left:0;right:0;text-align:center;padding:max(20px,env(safe-area-inset-top)) 16px 8px;z-index:2;background:linear-gradient(#20272e99,transparent)}
.confession-kicker{font-size:10px;letter-spacing:.18em;opacity:.68}.confession-header h1{font:500 29px Georgia,'Songti SC',serif;letter-spacing:.12em;margin:8px 0}.confession-header p{font-size:11px;margin:5px 0 12px;opacity:.72}
.confession-meals{display:flex;justify-content:center;gap:6px}.confession-meals button,#scene-boot .confession-tools button{color:inherit;font:inherit;border:1px solid #ffffff2b;background:#ffffff0d;border-radius:30px;padding:8px 13px;cursor:pointer;font-size:12px;min-height:36px}.confession-meals button[aria-pressed=true]{background:#ffffff26;border-color:#ffffff88}.confession-meals button:hover{background:#ffffff25}
.confession-dock{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);box-sizing:border-box;padding:12px 18px max(16px,env(safe-area-inset-bottom));z-index:2;text-align:center;background:linear-gradient(transparent,#20262ca6 40%)}
.confession-context{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin:0 2px 9px;color:#fffc}.confession-context #confession-meal{font-size:11px;color:#fff}
#confession-form{display:flex;gap:8px;padding:5px;border:1px solid #ffffff50;border-radius:28px;background:#ffffff13;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 #ffffff1a}
#confession-text{font:inherit;font-size:16px;color:#fff;min-width:0;flex:1;border:0;outline:none;background:transparent;padding:7px 10px;width:100%}#confession-text::placeholder{font-size:12px;color:#ffffff9c}#confession-form:focus-within{border-color:#fff}
#confession-send{font:inherit;border:0;border-radius:22px;background:#f3eee4;color:#283036;padding:9px 16px;min-height:40px;white-space:nowrap;font-size:13px;cursor:pointer}#confession-send:disabled{opacity:.5}
#confession-feedback{font-size:11px;min-height:14px;margin:6px 0 0;color:#ffdda4}#confession-connection{font-size:10px;color:#ffdda4}
#scene-boot .confession-tools{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:5px}#scene-boot .confession-tools #boot-enter{background:#ffffff1f;min-width:130px;border-color:#ffffff66;font-size:13px}#scene-boot .confession-tools #boot-stay{border-color:transparent;font-size:11px;background:transparent}
#boot-status{font-size:10px;opacity:.6;margin:10px 0 0;min-height:12px}#boot-retry{margin-top:7px!important}#boot-retry[hidden]{display:none}
#confessions-open{font-size:12px!important;white-space:nowrap;padding-inline:13px!important}.is-revealed .confession-row{animation-play-state:paused}
@media(min-width:700px){.confession-row{--size:18px!important;gap:5px}.confession-header h1{font-size:38px}.confession-header{padding-top:30px}}
@media(max-height:550px){.confession-header h1{font-size:21px;margin:2px}.confession-header p,.confession-kicker,.confession-context,#boot-status{display:none}.confession-header{padding-top:8px}.confession-dock{padding-bottom:8px}.confession-meals button{padding:4px 10px;min-height:28px}.confession-row{line-height:18px}}
@media(prefers-reduced-motion:reduce){.confession-row{animation-duration:calc(var(--duration,72s) * 1.35);animation-delay:calc(var(--delay,0s) * 1.35)}}
.confession-meals button{white-space:nowrap}
.confession-river{mask-image:linear-gradient(transparent 150px,#000 185px,#000 calc(100% - 225px),transparent calc(100% - 185px));-webkit-mask-image:linear-gradient(transparent 150px,#000 185px,#000 calc(100% - 225px),transparent calc(100% - 185px))}
@media(max-width:360px){.confession-meals{gap:4px}.confession-meals button{padding:8px 10px;font-size:11px}.confession-row{font-size:min(var(--size,13px),13px)}}
@media(max-height:550px){.confession-river{mask-image:linear-gradient(transparent 65px,#000 90px,#000 calc(100% - 155px),transparent calc(100% - 125px));-webkit-mask-image:linear-gradient(transparent 65px,#000 90px,#000 calc(100% - 155px),transparent calc(100% - 125px))}.confession-row{font-size:14px!important}}

#scene-boot .confession-tools button{white-space:nowrap}
@media(max-width:360px){#scene-boot .confession-tools{gap:4px}#scene-boot .confession-tools button{padding-inline:10px}}
/* Emoji food rankings share the curtain, without food photography. */
.confession-views,.rank-periods{display:flex;justify-content:center;gap:18px;margin-top:9px}
.confession-views button,.rank-periods button,#meal-rank-status button,#meal-rank-detail button{font:inherit;font-size:12px;color:#fffb;background:none;border:0;padding:6px 4px;cursor:pointer}
.confession-views button[aria-pressed=true],.rank-periods button[aria-pressed=true]{color:#fff;border-bottom:1px solid #fff9}
#meal-ranks{position:absolute;inset:205px 0 88px;z-index:2;display:flex;flex-direction:column;width:min(100%,580px);margin:auto;padding:0 18px;box-sizing:border-box;overflow:hidden}
#meal-ranks[hidden],#meal-rank-detail[hidden]{display:none!important}
.rank-periods{flex:none;margin:0;gap:28px}#meal-rank-status{font-size:11px;text-align:center;color:#fffc;min-height:18px;margin:8px 0;flex:none}
#meal-rank-list{margin:0;padding:0;list-style:none;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;flex:1;min-height:0}
#meal-rank-list li{display:flex;align-items:center;gap:9px;min-height:52px;border-bottom:1px solid #ffffff14}
.meal-place{width:24px;text-align:center;font-size:12px;color:#fff8;flex:none}.meal-name,.meal-like{font:inherit;color:#fff;border:0;background:none;cursor:pointer;padding:10px 0;text-align:left}.meal-name{font-size:14px;flex:1;min-width:0}.meal-heat{font-size:11px;white-space:nowrap;color:#fffc}.meal-like{font-size:12px;white-space:nowrap;padding-left:5px}
#meal-rank-detail{position:relative;flex:none;text-align:center;padding:12px;border:1px solid #ffffff30;border-radius:15px;background:#ffffff12;margin-bottom:8px}#meal-rank-detail strong{font-size:16px;font-weight:500}#meal-rank-detail p{font-size:12px;margin:8px 0 2px;color:#fffb}
.show-meal-ranks .confession-river,.show-meal-ranks .confession-context,.show-meal-ranks #confession-form,.show-meal-ranks #confession-feedback,.show-meal-ranks #confession-connection,.show-meal-ranks #boot-status,.show-meal-ranks #boot-stay{display:none!important}
.show-meal-ranks .confession-dock{padding-top:10px}.show-meal-ranks .confession-header{background:linear-gradient(#20272ec9,#20272e55)}
#meal-ranks button:focus-visible,.confession-views button:focus-visible{outline:1px solid white;outline-offset:2px;border-radius:5px}
.confession-river{mask-image:linear-gradient(transparent 195px,#000 225px,#000 calc(100% - 225px),transparent calc(100% - 185px));-webkit-mask-image:linear-gradient(transparent 195px,#000 225px,#000 calc(100% - 225px),transparent calc(100% - 185px))}
@media(min-width:700px){#meal-ranks{top:228px}.meal-name{font-size:16px}#meal-rank-list li{min-height:57px}}
@media(max-height:550px){#meal-ranks{top:130px;bottom:66px}.confession-views{margin-top:2px}.confession-river{mask-image:linear-gradient(transparent 115px,#000 145px,#000 calc(100% - 155px),transparent calc(100% - 125px));-webkit-mask-image:linear-gradient(transparent 115px,#000 145px,#000 calc(100% - 155px),transparent calc(100% - 125px))}}
@media(max-width:360px){#meal-ranks{padding-inline:10px}#meal-rank-list li{gap:5px}.meal-name{font-size:13px}}

/* Longer remarks wrap naturally, short remarks keep their own centered width. */
.confession-copy{min-width:0;max-width:min(620px,calc(100vw - 68px));white-space:normal;line-height:1.45;text-align:center;overflow-wrap:anywhere}
.confession-copy .confession-name{display:inline}.confession-copy .confession-words{display:inline;overflow:visible;text-overflow:clip;max-width:none}
.confession-row{align-items:center}.confession-emoji{align-self:center}
@media(max-width:699px){.confession-row{font-size:14px}.confession-copy{max-width:calc(100vw - 68px);line-height:1.4}}
@media(max-width:360px){.confession-row{font-size:13px}}

/* Keep loading announcements separate from the fixed registration footer. */
#scene-boot #boot-status{position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.boot-record{font-size:10px;line-height:14px;opacity:.6;margin:10px 0 0;text-align:center}
