/* A room with connected tables; conversation choices follow the seated people. */
.scene-stage.lunch-stage,.lunch-picker { display:flex;flex-direction:column;isolation:isolate;min-height:600px; }
.lunch-viewport { position:relative;flex:1;min-height:430px;overflow-x:auto;overflow-y:hidden;background:#293a34;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:thin;outline-offset:-4px; }
.lunch-canvas { position:relative;width:100%;min-width:960px;min-height:470px;height:100%;isolation:isolate; }
.lunch-photo { position:absolute;inset:0;width:100%;height:100%;object-fit:fill;max-width:none;pointer-events:none; }
.lunch-heading { position:absolute;top:15px;left:22px;z-index:15;color:#fff;text-shadow:0 2px 8px #000b;pointer-events:none; }
.lunch-heading h1 { font:28px/1.1 Georgia,serif;margin:4px 0; }
.lunch-heading p { font-size:12px;margin:5px 0; }
.lunch-heading .scene-location { font-size:9px;letter-spacing:2px; }
.lunch-canvas::before { content:'';position:absolute;inset:0 0 auto;height:24%;background:linear-gradient(#06191699,transparent);pointer-events:none;z-index:10; }
.lunch-student { position:absolute;left:var(--seat-x);top:var(--seat-top);height:var(--seat-height);width:calc(var(--seat-height) * .60);min-width:180px;transform:translateX(-50%);pointer-events:none;overflow:hidden;filter:brightness(.9) saturate(.85); }
.lunch-student img { position:absolute;top:-3%;left:50%;transform:translateX(-50%);height:220%;width:auto;max-width:none; }
.lunch-table-surface { z-index:8; }
.lunch-stage .scene-choice.lunch-chat,.lunch-picker .scene-choice.lunch-chat { position:absolute;left:var(--seat-x);top:var(--seat-top);transform:translate(-50%,-100%);width:190px;max-width:none;min-height:49px;padding:7px 9px;gap:7px;z-index:20;background:#142d30ef;border-color:#d3e1d4aa; }
.lunch-chat::after { content:'';position:absolute;width:2px;height:9px;background:#d3e1d4;bottom:-10px;left:calc(50% - 1px); }
.lunch-chat .choice-title { font-size:12px;line-height:1.25; }.lunch-chat .choice-detail { font-size:10px;line-height:1.2; }
.lunch-stage .scene-choice.lunch-table-choice,.lunch-picker .scene-choice.lunch-table-choice { position:absolute;left:var(--table-x);top:var(--table-y);transform:translate(-50%,-50%);width:195px;max-width:none;min-height:56px;padding:9px;gap:8px;z-index:15;background:#102c30ec;border-color:#e4e4cfa6; }
.lunch-table-choice .choice-title { font-size:12px;line-height:1.3; }.lunch-table-choice .choice-detail { font-size:10px;line-height:1.3; }
.lunch-stage .scene-choice::before,.lunch-picker .scene-choice::before { display:none; }
.lunch-navigation { display:flex;gap:7px;flex-wrap:wrap;align-items:center;padding:10px 16px;background:#152c2e;z-index:25;border-top:1px solid #cfe1d333; }
.lunch-nav { font-family:inherit;font-size:12px;line-height:1.3;color:#e4eee4;border:1px solid #adccbd66;border-radius:8px;background:#254340;min-height:42px;padding:9px 12px;cursor:pointer; }
.lunch-nav:hover { background:#395a52; }.lunch-nav:focus-visible { outline:3px solid #d5f0dd;outline-offset:2px; }
.lunch-navigation-hint { color:#c5d5cc;font-size:12px; }.lunch-pan-controls { display:none;gap:6px; }
.lunch-activities { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;padding:10px 16px 14px;background:#10272a;z-index:25; }
.lunch-stage .scene-choice.lunch-activity,.lunch-picker .scene-choice.lunch-activity { position:relative;left:auto;top:auto;width:auto;max-width:none;transform:none;padding:9px;min-height:54px;gap:8px; }
.lunch-activity .choice-title { font-size:12px; }.lunch-activity .choice-detail { font-size:10px; }
.lunch-outcome.scene-outcome { display:flex;flex-direction:column;padding-bottom:80px;overflow:auto; }
.lunch-outcome.scene-outcome::after { display:none; }.lunch-outcome .lunch-viewport { min-height:315px; }.lunch-outcome .lunch-canvas { min-height:370px; }
.lunch-outcome.scene-outcome .outcome-copy { position:relative;inset:auto;max-width:none;max-height:none;overflow:visible;padding:16px 25px;margin:0; }
.lunch-outcome .outcome-copy h2 { font-size:28px; }.lunch-outcome .outcome-copy p { font-size:14px; }
@media(max-width:960px){ .lunch-pan-controls { display:flex; }.lunch-canvas { height:470px; }.lunch-heading p { max-width:540px; } }
@media(max-width:760px){
 .scene-stage.lunch-stage,.lunch-picker { min-height:600px; }.lunch-viewport { min-height:420px; }.lunch-canvas { height:420px;min-height:420px;min-width:880px; }
 .lunch-heading { top:13px;left:16px; }.lunch-heading h1 { font-size:25px; }
 .lunch-navigation { padding:9px;gap:6px; }.lunch-nav { padding:8px 10px;min-height:44px;font-size:11px; }
 .lunch-navigation-hint { width:100%;line-height:1.5; }.lunch-pan-controls { width:100%; }
 .lunch-activities { padding:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
 .lunch-stage .scene-choice.lunch-activity { padding:8px;gap:6px; }
 .lunch-stage .scene-choice.lunch-chat,.lunch-picker .scene-choice.lunch-chat { width:174px; }
 .lunch-stage .scene-choice.lunch-table-choice,.lunch-picker .scene-choice.lunch-table-choice { width:184px; }
 .lunch-outcome .lunch-canvas { height:370px; }
}
@media(prefers-reduced-motion:reduce){.lunch-viewport { scroll-behavior:auto; }}
/* Keep the room name out of the head-anchored conversation choices. */
.lunch-stage:not([data-lunch-table="overview"]) .lunch-heading { max-width:200px; }
.lunch-stage:not([data-lunch-table="overview"]) .lunch-heading p { display:none; }
/* Table markers sit on photographed tables at their real depth. Names expand
   on hover/focus instead of covering the small distant tables with nine cards. */
.lunch-stage .scene-choice.lunch-table-choice,.lunch-picker .scene-choice.lunch-table-choice { width:46px;height:46px;min-height:46px;border-radius:50%;padding:0;display:grid;place-items:center; }
.lunch-table-choice .choice-number { flex:none;width:auto;border:0;padding:0;font-size:15px;line-height:1; }
.lunch-table-choice .choice-copy { position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:180px;padding:8px 10px;border:1px solid #c6d6c8;background:#163236f5;border-radius:8px;opacity:0;pointer-events:none;text-align:center;box-shadow:0 4px 15px #0005; }
.lunch-table-choice:hover,.lunch-table-choice:focus-visible { z-index:30!important; }
.lunch-table-choice:hover .choice-copy,.lunch-table-choice:focus-visible .choice-copy { opacity:1; }
.lunch-stage:not([data-lunch-table="overview"]) .lunch-heading .scene-location { display:none; }
.lunch-stage:not([data-lunch-table="overview"]) .lunch-heading h1 { font-size:19px;margin:0;line-height:1.15; }
/* The full set of lunch activities must contribute to the page's scroll height,
   never be cut off by the generic fixed-basis scene frame. */
.scene-stage.lunch-stage { flex:0 0 auto;min-height:0; }
.lunch-stage > .lunch-viewport { flex:none;height:470px; }
.lunch-current-table { font-size:13px;color:#edf2e6;margin-right:5px; }
.lunch-stage .choice-number[hidden],.lunch-picker .choice-number[hidden] { display:none!important; }
@media(max-width:760px){ .lunch-stage > .lunch-viewport { height:420px; }.lunch-current-table { width:100%;margin:0 0 2px; } }

/* Crop standing source cutouts at the waist and anchor the crop to the rear
   table edge. The crop, rather than the source image's feet, sets seat height. */
.lunch-canvas .lunch-overview-person { position:absolute;left:var(--person-x);top:calc(var(--person-bottom) - var(--person-height));height:var(--person-height);width:auto;aspect-ratio:7 / 10;min-width:0;transform:translateX(-50%);overflow:hidden;pointer-events:none;z-index:2;filter:brightness(.9) saturate(.85); }
.lunch-canvas .lunch-overview-person img { position:absolute;left:50%;top:-3%;transform:translateX(-50%);height:240%;width:auto;max-width:none;pointer-events:none; }

.site-update-ready { position:fixed;right:16px;bottom:100px;z-index:10000;box-shadow:0 4px 18px #0007; }
