:root{--cream:#f6f2eb;--card:#fffdf9;--ink:#1d252c;--muted:#716e68;--line:#dfd7cb;--navy:#102a42;--green:#5b8d45;--wood:#a86e3f;--wood-dark:#70401f;--shadow:0 12px 36px rgba(62,46,30,.1)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit}.site-header{display:flex;align-items:center;height:64px;padding:6px 32px;background:#faf9f7;border-bottom:1px solid var(--line)}.site-logo-frame{display:block;width:220px;height:44px;overflow:hidden}.site-logo-frame img{width:100%;height:100%;object-fit:cover}main{width:min(100% - 24px,1040px);margin:auto;padding:24px 0 48px}.game-card{padding:20px 24px 24px;border:1px solid #e6dfd5;border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.game-head{display:flex;align-items:center;justify-content:flex-end}.game-head h1{margin:0;font-size:20px;letter-spacing:.045em}.icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #d8cfc1;border-radius:14px;background:white;color:var(--ink);font-size:18px;font-weight:700;text-decoration:none;box-shadow:0 3px 8px #493b2820;cursor:pointer}.layout{display:grid;grid-template-columns:minmax(500px,1fr) minmax(235px,300px);gap:30px;align-items:center}.play-area{min-width:0}.window{margin:12px auto 2px;text-align:center;color:var(--green);font-size:14px;font-weight:800;letter-spacing:.04em}.window span{display:block;width:0;height:0;margin:3px auto;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--green)}.table{position:relative;width:min(62vw,460px);aspect-ratio:1;margin:62px auto 68px;border:3px solid var(--wood-dark);border-radius:50%;background:radial-gradient(circle at 40% 32%,#bd8352,var(--wood) 68%,#946038);box-shadow:inset 0 0 0 2px #d9a577,0 12px 24px #4a2d1925}.table:after{content:"";position:absolute;inset:8%;border-radius:50%;opacity:.15;background:repeating-linear-gradient(0deg,transparent 0 9px,#4d2815 10px)}.plant{position:absolute;z-index:1;left:50%;top:50%;display:grid;place-items:center;width:58px;height:58px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(#b3a34a 0 8%,#426322 10% 30%,#648b32 32% 52%,#34571d 54%);color:#d1b84a;font-size:22px;box-shadow:0 5px 10px #2d241840}.seat{position:absolute;z-index:2;width:78px;height:92px;transform:translate(-50%,-50%);display:grid;place-items:center;border:2px solid #c29a70;border-radius:20px;background:#e1bd94;box-shadow:inset 0 0 0 4px #eed1aa,0 5px 10px #49331f24;transition:.15s}.seat.over{border-color:var(--green);transform:translate(-50%,-50%) scale(1.06);box-shadow:0 0 0 5px #6d9b5440}.seat-0{left:50%;top:-8%}.seat-1{left:94%;top:8%}.seat-2{left:108%;top:50%}.seat-3{left:94%;top:92%}.seat-4{left:50%;top:108%}.seat-5{left:6%;top:92%}.seat-6{left:-8%;top:50%}.seat-7{left:6%;top:8%}.empty{color:#987047;font-size:26px;font-weight:300}.person{width:68px;height:80px;padding:4px;border:1px solid #d8cbb9;border-radius:16px;background:#fffaf1;color:var(--ink);box-shadow:0 3px 8px #4c321f28;cursor:grab;touch-action:none}.person:active{cursor:grabbing}.person.selected{outline:3px solid #5f934b;transform:translateY(-3px)}.person.dragging{opacity:.45}.person.revealed{box-shadow:0 0 0 4px #72a85a,0 3px 8px #4c321f28}.person strong{display:block;font-size:11px;text-transform:uppercase;line-height:1.1}.portrait{position:relative;display:block;width:45px;height:50px;margin:0 auto 2px;overflow:hidden;border-radius:50% 50% 42% 42%;background:var(--hair)}.portrait:before{content:"";position:absolute;z-index:1;width:31px;height:37px;left:7px;top:11px;border-radius:48% 48% 45% 45%;background:var(--skin)}.portrait:after{content:"••";position:absolute;z-index:2;left:14px;top:22px;color:#30251f;font-size:9px;letter-spacing:7px}.portrait i{position:absolute;z-index:3;width:16px;height:7px;left:15px;top:33px;border-bottom:2px solid #fff;border-radius:50%}.portrait b{position:absolute;z-index:2;width:34px;height:18px;left:6px;top:3px;border-radius:50%;background:var(--hair)}.tray{display:flex;gap:8px;min-height:98px;padding:8px;overflow-x:auto;border:1px solid #ded6ca;border-radius:19px;background:#fbf8f2;box-shadow:inset 0 2px 8px #6d584214}.tray.over{outline:3px solid #79a965}.tray .person{flex:0 0 68px}.clue-panel{align-self:center;padding:25px;border:1px solid var(--line);border-radius:18px;background:#faf7f0}.eyebrow{margin:0 0 5px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.clue-panel h2{margin:0 0 6px;font-size:24px}.instruction{margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.5}.clue-panel ol{margin:0;padding-left:23px}.clue-panel li{padding:7px 0 7px 4px;border-top:1px solid #e5ded4;font-size:13px;line-height:1.35}.message{min-height:22px;margin:5px 0 12px;text-align:center;color:var(--muted);font-size:13px}.message.error{color:#a33a32}.message.success{color:#39762d;font-weight:700}footer{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:start}footer>div{text-align:center}.hint,.submit,.reset{min-height:52px;border-radius:14px;font-weight:800;letter-spacing:.05em;cursor:pointer}.hint{width:100%;border:2px solid #d0c5b5;background:white;color:var(--ink)}.submit{width:min(100%,320px);border:0;background:var(--navy);color:white;font-size:16px}.submit:disabled,.hint:disabled{opacity:.5;cursor:not-allowed}footer small{display:block;margin-top:6px;color:var(--muted);font-size:11px}dialog{width:min(90vw,470px);padding:30px;border:1px solid var(--line);border-radius:20px;color:var(--ink);box-shadow:0 20px 70px #20180f66}dialog::backdrop{background:#20180f66}.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;cursor:pointer}dialog h2{margin-top:0}dialog p{color:var(--muted);line-height:1.55}.result-order{padding:16px;border-radius:10px;background:var(--cream);font-weight:700;line-height:1.6}dialog dl{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}dialog dl div{padding:10px;background:#f8f6f1;border-radius:9px}dialog dt{color:var(--muted);font-size:10px;text-transform:uppercase}dialog dd{margin:4px 0 0;font-weight:800}.reset{width:100%;border:0;background:var(--navy);color:white}
@media(max-width:800px){.layout{grid-template-columns:1fr}.clue-panel{margin-top:4px}.table{width:min(66vw,430px)}footer{grid-template-columns:1fr 1.5fr}}@media(max-width:620px){.site-header{height:auto;min-height:88px;padding:6px 12px;flex-wrap:wrap}.site-logo-frame{width:185px;height:38px}.site-nav{width:100%;overflow-x:auto;justify-content:flex-start}.site-nav a{flex:0 0 auto}.game-card{padding:13px 10px 18px;border-radius:18px}.game-head h1{font-size:16px}.icon-button{width:39px;height:39px}.table{width:min(68vw,330px);margin:56px auto 58px}.seat{width:58px;height:70px;border-radius:15px}.person{width:52px;height:62px;padding:2px;border-radius:12px}.portrait{width:36px;height:38px}.portrait:before{width:25px;height:28px;left:6px;top:9px}.portrait:after{left:11px;top:16px;font-size:7px;letter-spacing:5px}.portrait i{left:11px;top:25px}.portrait b{width:28px;height:14px}.person strong{font-size:9px}.tray .person{flex-basis:52px}.tray{min-height:78px}.plant{width:45px;height:45px}.clue-panel{padding:18px}.clue-panel li{font-size:13px}footer{grid-template-columns:1fr 1.35fr;gap:10px}.hint,.submit{min-height:50px;font-size:13px}}@media(max-width:390px){.table{width:65vw}.seat{width:51px;height:64px}.person{width:46px;height:57px}.portrait{width:32px;height:34px}.portrait:after{left:9px;top:14px}.portrait i{top:22px}.seat-1,.seat-3{left:91%}.seat-5,.seat-7{left:9%}}

/* Character and completion refinements. */
.window{height:34px;margin-bottom:20px}.table{margin-top:78px}.hidden{display:none!important}.person.locked{cursor:default;box-shadow:0 0 0 4px #72a85a,0 3px 8px #4c321f28}.person.locked:after{content:"✓";position:absolute;right:-5px;top:-6px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#4f8a3e;color:#fff;font-size:11px;font-weight:900}.person{position:relative}.portrait em{position:absolute;z-index:4;left:3px;right:3px;bottom:-2px;height:15px;border-radius:50% 50% 0 0;background:var(--shirt)}
.look-0 .portrait b{height:25px;border-radius:55% 55% 18% 18%}.look-0 .portrait:before{border-radius:48% 48% 42% 42%}.look-1 .portrait b{width:42px;left:2px;height:13px;transform:rotate(-5deg)}.look-1 .portrait:before{box-shadow:-7px -2px 0 var(--hair),7px -4px 0 var(--hair)}.look-2 .portrait b{width:30px;left:8px;height:15px;border-radius:70% 35% 50% 20%}.look-2 .portrait:after{content:"· •"}.look-3 .portrait b{width:45px;left:0;height:30px;border-radius:55% 55% 20% 20%}.look-3 .portrait:before{box-shadow:-8px 13px 0 var(--hair),8px 13px 0 var(--hair)}.look-4 .portrait b{width:38px;left:4px;height:12px;clip-path:polygon(0 70%,15% 0,30% 55%,50% 0,68% 55%,85% 0,100% 70%,100% 100%,0 100%)}.look-4 .portrait i{border-bottom-color:#6d3828}.look-5 .portrait b{width:36px;left:5px;height:22px;border-radius:65% 35% 45% 15%;transform:rotate(5deg)}.look-5 .portrait:after{content:"• ·"}.look-6 .portrait b{width:44px;left:1px;height:16px;border-radius:50%;box-shadow:0 -4px 0 var(--hair)}.look-6 .portrait:before{box-shadow:0 8px 0 -5px #75422c}.look-7 .portrait b{width:45px;left:0;height:28px;border-radius:48% 48% 10% 10%}.look-7 .portrait:before{box-shadow:-9px 15px 0 var(--hair),9px 15px 0 var(--hair)}.look-7 .portrait:after{content:"• •"}
.table{margin-top:86px}@media(max-width:620px){.window{height:32px;margin-bottom:22px}.table{margin-top:78px}.person.locked:after{right:-4px;top:-5px;width:16px;height:16px;font-size:10px}}
/* Polished CSS-only faces: shared proportions, aligned features, intentional hair. */
.portrait:before{left:7px;top:10px;width:31px;height:37px;border-radius:48% 48% 45% 45%;background:radial-gradient(circle at 35% 45%,#30251f 0 1.35px,transparent 1.8px),radial-gradient(circle at 65% 45%,#30251f 0 1.35px,transparent 1.8px),var(--skin);box-shadow:none}.portrait:after{content:""!important;display:none}.portrait i{left:50%;top:31px;width:13px;height:7px;transform:translateX(-50%);border:0;border-bottom:2px solid rgba(112,56,43,.7);border-radius:0 0 50% 50%}.portrait b{z-index:3;margin:0;box-shadow:none}
.look-0 .portrait b{left:4px;top:2px;width:38px;height:22px;border-radius:54% 54% 30% 30%;clip-path:polygon(0 0,100% 0,100% 72%,83% 55%,72% 74%,59% 55%,46% 73%,32% 55%,18% 72%,0 62%)}.look-1 .portrait b{left:2px;top:1px;width:42px;height:18px;border-radius:62% 48% 36% 28%;transform:none;clip-path:polygon(0 0,100% 0,100% 62%,78% 48%,62% 68%,45% 49%,27% 66%,8% 52%,0 73%)}.look-2 .portrait b{left:5px;top:2px;width:36px;height:18px;border-radius:68% 42% 38% 25%;transform:rotate(-2deg);clip-path:polygon(0 0,100% 0,100% 70%,75% 58%,58% 72%,38% 54%,16% 74%,0 63%)}.look-3 .portrait b{left:1px;top:1px;width:44px;height:31px;border-radius:56% 56% 22% 22%;clip-path:polygon(0 0,100% 0,100% 100%,84% 100%,80% 47%,65% 62%,52% 48%,38% 63%,21% 47%,17% 100%,0 100%)}
.look-4 .portrait b{left:3px;top:1px;width:40px;height:18px;border-radius:48% 62% 34% 32%;transform:none;clip-path:polygon(0 18%,18% 3%,42% 14%,67% 0,100% 22%,100% 72%,73% 54%,54% 69%,34% 52%,13% 70%,0 58%)}.look-5 .portrait b{left:3px;top:1px;width:40px;height:21px;border-radius:68% 42% 36% 25%;transform:none;clip-path:polygon(0 0,100% 0,100% 74%,80% 50%,59% 64%,43% 46%,26% 65%,8% 50%,0 78%)}.look-6 .portrait b{left:1px;top:0;width:44px;height:19px;border-radius:55% 55% 32% 32%;box-shadow:none;clip-path:polygon(0 20%,12% 3%,27% 16%,42% 0,56% 16%,72% 1%,88% 16%,100% 8%,100% 72%,82% 57%,66% 72%,49% 55%,31% 70%,14% 54%,0 68%)}.look-7 .portrait b{left:1px;top:1px;width:44px;height:31px;border-radius:52% 52% 18% 18%;clip-path:polygon(0 0,100% 0,100% 100%,82% 100%,80% 43%,65% 43%,65% 60%,50% 48%,35% 60%,35% 43%,19% 43%,17% 100%,0 100%)}
@media(max-width:620px){.portrait:before{left:6px;top:8px;width:25px;height:28px;background:radial-gradient(circle at 35% 45%,#30251f 0 1px,transparent 1.45px),radial-gradient(circle at 65% 45%,#30251f 0 1px,transparent 1.45px),var(--skin)}.portrait i{top:23px;width:11px;height:6px;border-bottom-width:1.5px}.look-0 .portrait b,.look-1 .portrait b,.look-2 .portrait b,.look-3 .portrait b,.look-4 .portrait b,.look-5 .portrait b,.look-6 .portrait b,.look-7 .portrait b{transform:scale(.8);transform-origin:top left}}

/* Compact attempts display and CSS-only top-down succulent. */
.attempts{margin-top:9px;color:#4f5558;font-size:11px;font-weight:800;letter-spacing:.09em}.plant{width:58px;height:58px;border-radius:0;background:none;color:transparent;box-shadow:0 8px 12px rgba(55,39,22,.2)}.plant span{position:absolute;left:50%;top:50%;width:15px;height:31px;margin:-26px 0 0 -7.5px;border:1px solid rgba(39,77,35,.42);border-radius:70% 70% 58% 58%;background:linear-gradient(90deg,#486f35,#72964b 48%,#3f682f);transform-origin:50% 26px}.plant span:nth-child(1){transform:rotate(0deg)}.plant span:nth-child(2){transform:rotate(45deg);background:linear-gradient(90deg,#587f3c,#82a658 48%,#4a7437)}.plant span:nth-child(3){transform:rotate(90deg)}.plant span:nth-child(4){transform:rotate(135deg);background:linear-gradient(90deg,#527b39,#789e50 48%,#446f33)}.plant span:nth-child(5){transform:rotate(180deg)}.plant span:nth-child(6){transform:rotate(225deg);background:linear-gradient(90deg,#5c8440,#88a95c 48%,#4a7437)}.plant span:nth-child(7){transform:rotate(270deg)}.plant span:nth-child(8){transform:rotate(315deg);background:linear-gradient(90deg,#517a39,#7da353 48%,#436d32)}.plant span:nth-child(9){width:12px;height:24px;margin:-20px 0 0 -6px;transform:rotate(22deg);transform-origin:50% 20px;background:#7fa253}.plant span:nth-child(10){width:12px;height:24px;margin:-20px 0 0 -6px;transform:rotate(202deg);transform-origin:50% 20px;background:#6e9649}.plant i{position:absolute;z-index:2;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);border-radius:50%;background:#9aaa59;box-shadow:0 0 0 3px rgba(49,91,40,.35)}
@media(max-width:620px){.attempts{font-size:10px;letter-spacing:.07em}.plant{width:46px;height:46px}.plant span{width:12px;height:25px;margin:-21px 0 0 -6px;transform-origin:50% 21px}.plant span:nth-child(9),.plant span:nth-child(10){width:10px;height:20px;margin:-17px 0 0 -5px;transform-origin:50% 17px}.plant i{width:8px;height:8px}}

/* Shared Got Stumped game header, for all public games. */
.topbar{display:flex;align-items:center;justify-content:space-between;min-height:52px;margin-bottom:18px;padding:0 4px}.brand{color:var(--ink);font-size:23px;font-weight:800;letter-spacing:.06em}.game-stats{display:flex;align-items:center;gap:20px}.stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.stat-label{color:var(--muted);font-size:11px}.stat strong{font-size:14px;font-variant-numeric:tabular-nums}.attempts-stat strong{color:var(--navy);font-size:12px;letter-spacing:2px}.game-head h1{color:var(--green);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.attempts{display:none}
@media(max-width:620px){.topbar{margin-bottom:7px;padding:0 6px}.brand{font-size:20px}.game-stats{gap:16px}.game-head h1{font-size:11px}}

/* Exact LOCK card-intro and status hierarchy. */
.brand{font-size:23px;font-weight:800;letter-spacing:.06em}.stat-label{font-size:11px;font-weight:400}.stat strong{color:var(--ink);font-size:14px;font-weight:700}.attempts-stat strong{color:#1264a3;font-size:12px;font-weight:700;letter-spacing:2px}.game-head{margin-bottom:0}.intro{text-align:center;margin:0 0 34px}.puzzle-number{margin:0 0 8px;color:#1264a3;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.intro h1{margin:0 0 9px;color:var(--ink);font-size:clamp(25px,6vw,32px);font-weight:700;line-height:1.15;letter-spacing:-.025em}.intro>p:last-child{margin:0;color:var(--muted);font-size:15px;font-weight:400;line-height:1.5}.clue-panel .eyebrow{margin-bottom:10px}
@media(max-width:620px){.brand{font-size:23px}.intro{margin-bottom:29px}.puzzle-number{font-size:12px}.intro>p:last-child{font-size:15px}}

/* Final Lunch Table accent and readability polish. */
.puzzle-number{color:var(--green)}.clue-panel li{font-size:13.5px}

/* Clue-panel readability only; width and board layout remain unchanged. */
.clue-panel li{font-size:15px;line-height:1.4}

/* Match instruction type size to clues while preserving its existing line height. */
.clue-panel .instruction{font-size:15px;line-height:18px}

/* Experimental fixed seat meals, drawn entirely with CSS. */
.meal-plate{position:absolute;z-index:2;width:46px;height:34px;transform:translate(-50%,-50%);border:2px solid #eee7dc;border-radius:50%;background:#fffdf8;box-shadow:0 3px 6px rgba(62,39,20,.2),inset 0 0 0 2px #d9d1c5;pointer-events:none}.plate-0{left:50%;top:13%}.plate-1{left:76%;top:23%}.plate-2{left:87%;top:50%}.plate-3{left:76%;top:77%}.plate-4{left:50%;top:87%}.plate-5{left:24%;top:77%}.plate-6{left:13%;top:50%}.plate-7{left:24%;top:23%}.food{position:absolute;left:50%;top:50%;display:block;transform:translate(-50%,-50%)}.food.burger{width:27px;height:18px;border-radius:8px 8px 4px 4px;background:linear-gradient(#dfa84f 0 38%,#628440 39% 49%,#713e25 50% 69%,#e1a94e 70%);box-shadow:inset 0 -1px #a66d2d}.food.burger:before{content:"";position:absolute;left:4px;top:3px;width:2px;height:1px;border-radius:50%;background:#f7df9a;box-shadow:6px -1px #f7df9a,13px 1px #f7df9a,17px -1px #f7df9a}.food.pizza{width:27px;height:25px;background:#e5b655;clip-path:polygon(50% 100%,5% 10%,95% 10%)}.food.pizza:before{content:"";position:absolute;left:4px;top:2px;width:20px;height:5px;border-radius:4px;background:#a96b32}.food.pizza:after{content:"";position:absolute;left:10px;top:9px;width:5px;height:5px;border-radius:50%;background:#b94b36;box-shadow:8px 5px #b94b36,1px 9px #b94b36}.food.salad{width:28px;height:18px;overflow:hidden;border-radius:3px 3px 14px 14px;background:#6d9c55;box-shadow:inset 0 -4px #527d41}.food.salad:before{content:"";position:absolute;left:2px;top:-7px;width:10px;height:12px;border-radius:70% 30%;background:#7aa65b;transform:rotate(-25deg);box-shadow:7px 3px #527f42,14px 0 #88ad61}.food.salad:after{content:"";position:absolute;left:8px;top:4px;width:4px;height:4px;border-radius:50%;background:#d86d43;box-shadow:8px 2px #d9b74d}.food.taco{width:28px;height:18px;border-radius:15px 15px 4px 4px;background:#dfa94e;box-shadow:inset 0 3px #f0c96d}.food.taco:before{content:"";position:absolute;left:4px;top:2px;width:20px;height:7px;border-radius:8px;background:repeating-linear-gradient(90deg,#5c8b43 0 4px,#b84e37 4px 7px,#e4c255 7px 10px)}
@media(max-width:620px){.meal-plate{width:36px;height:27px}.food{transform:translate(-50%,-50%) scale(.78)}}

/* Expanded experimental food library. */
.food.hot-dog{width:29px;height:13px;border-radius:8px;background:#dca456;box-shadow:inset 0 3px #efc978,inset 0 -2px #b97e3c}.food.hot-dog:before{content:"";position:absolute;left:4px;top:3px;width:21px;height:7px;border-radius:7px;background:#a94d36}.food.hot-dog:after{content:"";position:absolute;left:7px;top:5px;width:16px;height:2px;border-radius:2px;background:#e8c94f;transform:rotate(-7deg)}
.food.sandwich{width:28px;height:22px;clip-path:polygon(50% 2%,98% 92%,2% 92%);background:linear-gradient(135deg,#efd398 0 44%,#71904b 45% 55%,#c75b42 56% 64%,#d9b76b 65%)}.food.sandwich:after{content:"";position:absolute;inset:3px 5px 5px;border:1px solid rgba(134,91,40,.35);clip-path:inherit}
.food.sushi{width:28px;height:18px}.food.sushi:before,.food.sushi:after,.food.sushi i{content:"";position:absolute;top:2px;width:10px;height:14px;border-radius:45%;background:radial-gradient(circle,#d77354 0 2px,#f7f0dc 2.5px 5px,#263f32 5.5px);box-shadow:0 2px 1px #372c2430}.food.sushi:before{left:0}.food.sushi i{left:9px}.food.sushi:after{left:18px}
.food.fries{width:23px;height:21px;overflow:visible;border-radius:2px 2px 7px 7px;background:#bf4b3d;clip-path:polygon(5% 25%,95% 25%,82% 100%,18% 100%)}.food.fries:before{content:"";position:absolute;left:4px;top:-4px;width:3px;height:14px;background:#e9b94e;box-shadow:5px -3px #f2c75b,10px 1px #dca43c,15px -2px #efc45a}.food.fries:after{content:"";position:absolute;left:8px;top:10px;width:8px;height:5px;border-radius:50%;background:#e6b642}
.food.ramen{width:29px;height:18px;border-radius:3px 3px 14px 14px;background:#a94c3d;box-shadow:inset 0 4px #f3ddad}.food.ramen:before{content:"";position:absolute;left:4px;top:2px;width:21px;height:7px;border-radius:50%;background:repeating-radial-gradient(ellipse at 50% 120%,#d99e38 0 1.5px,#f0c75d 2px 3px)}.food.ramen:after{content:"";position:absolute;left:3px;top:-4px;width:27px;height:2px;border-radius:2px;background:#71462f;transform:rotate(-12deg)}
.food.burrito{width:29px;height:14px;border-radius:8px;background:linear-gradient(90deg,#d8d0bd 0 23%,#dbad65 24% 82%,#c78c4c 83%);box-shadow:inset 0 2px #edca8c,inset 0 -2px #a76d38}.food.burrito:after{content:"";position:absolute;left:8px;top:2px;width:2px;height:10px;background:#b77d42;transform:rotate(-12deg)}
.food.chicken-drumstick{width:22px;height:16px;border-radius:60% 48% 52% 55%;background:#a85b35;transform:translate(-58%,-50%) rotate(-18deg);box-shadow:inset 2px 2px #cf8050}.food.chicken-drumstick:before{content:"";position:absolute;right:-9px;top:6px;width:12px;height:5px;border-radius:4px;background:#e9d8b7}.food.chicken-drumstick:after{content:"";position:absolute;right:-11px;top:4px;width:5px;height:5px;border-radius:50%;background:#f1e1c1;box-shadow:1px 4px #f1e1c1}
.food.soup{width:29px;height:17px;border-radius:3px 3px 14px 14px;background:#64879a;box-shadow:inset 0 4px #d47a3d}.food.soup:before{content:"";position:absolute;left:4px;top:2px;width:21px;height:5px;border-radius:50%;background:radial-gradient(circle at 30% 50%,#72a354 0 2px,transparent 2.5px),radial-gradient(circle at 70% 50%,#e2b94b 0 2px,transparent 2.5px),#c96539}.food.soup:after{content:"≈";position:absolute;left:8px;top:-11px;color:#8f8a7f;font-size:11px;letter-spacing:3px}
.food.rice-bowl{width:29px;height:18px;border-radius:3px 3px 15px 15px;background:#547a83;box-shadow:inset 0 4px #f2ead8}.food.rice-bowl:before{content:"";position:absolute;left:4px;top:-3px;width:21px;height:9px;border-radius:50% 50% 35% 35%;background:radial-gradient(circle at 65% 35%,#70a058 0 2px,transparent 2.5px),#f7f0dd}.food.rice-bowl:after{content:"";position:absolute;left:10px;bottom:-3px;width:9px;height:3px;border-radius:50%;background:#3e626b}
.food.pancakes{width:28px;height:16px;border-radius:50%;background:#d8933f;box-shadow:0 3px 0 #bd7533,0 6px 0 #e0a34d}.food.pancakes:before{content:"";position:absolute;left:10px;top:1px;width:8px;height:6px;border-radius:2px;background:#f1d16a}.food.pancakes:after{content:"";position:absolute;left:5px;top:4px;width:18px;height:7px;border-radius:50%;border:2px solid #a95c2f;border-top-color:transparent}
.food.pasta{width:29px;height:18px;border-radius:50%;background:#c76143;box-shadow:inset 0 0 0 3px #f0e2c9}.food.pasta:before{content:"";position:absolute;left:5px;top:4px;width:19px;height:10px;border-radius:50%;background:repeating-radial-gradient(ellipse,#e7b743 0 1px,#f0cc61 1.5px 3px)}.food.pasta:after{content:"";position:absolute;left:12px;top:6px;width:5px;height:5px;border-radius:50%;background:#b95037}
.food.steak{width:28px;height:19px;border-radius:55% 45% 52% 38%;background:#8f4938;transform:translate(-50%,-50%) rotate(-8deg);box-shadow:inset 3px 2px #bc6e51}.food.steak:before{content:"";position:absolute;right:3px;top:4px;width:7px;height:8px;border-radius:50%;background:#e4c399}.food.steak:after{content:"";position:absolute;left:6px;top:5px;width:10px;height:2px;background:#66332b;box-shadow:0 4px #66332b;transform:rotate(18deg)}
.food.fish{width:24px;height:14px;border-radius:55% 48% 48% 55%;background:#6d9aa4;transform:translate(-57%,-50%);box-shadow:inset 0 2px #91bbc0}.food.fish:before{content:"";position:absolute;right:-8px;top:1px;width:10px;height:12px;background:#5e8993;clip-path:polygon(100% 0,100% 100%,0 50%)}.food.fish:after{content:"";position:absolute;left:4px;top:4px;width:3px;height:3px;border-radius:50%;background:#26383b;box-shadow:7px 3px 0 -1px #dbe7df}
.food.waffles{width:24px;height:22px;border-radius:4px;background:repeating-linear-gradient(0deg,transparent 0 4px,#b8772f 4px 5px),repeating-linear-gradient(90deg,#e2a84c 0 4px,#b8772f 4px 5px);transform:translate(-50%,-50%) rotate(4deg);box-shadow:inset 0 0 0 2px #c98735}.food.waffles:after{content:"";position:absolute;left:8px;top:7px;width:8px;height:7px;border-radius:2px;background:#f1d16b}
.food.dumplings{width:30px;height:17px}.food.dumplings:before,.food.dumplings:after,.food.dumplings i{content:"";position:absolute;top:3px;width:13px;height:11px;border-radius:9px 9px 6px 6px;background:#ead9b6;border-bottom:2px solid #c7a77d;clip-path:polygon(0 100%,12% 38%,28% 12%,44% 35%,60% 10%,76% 34%,92% 18%,100% 100%)}.food.dumplings:before{left:0;transform:rotate(-9deg)}.food.dumplings i{left:9px;top:1px;z-index:1}.food.dumplings:after{left:18px;transform:rotate(9deg)}
.food.baked-potato{width:28px;height:18px;border-radius:52% 46% 55% 44%;background:#9b683d;transform:translate(-50%,-50%) rotate(-5deg);box-shadow:inset 2px 2px #bf8a57}.food.baked-potato:before{content:"";position:absolute;left:7px;top:4px;width:15px;height:7px;border-radius:50%;background:#efe2bd;clip-path:polygon(0 60%,40% 0,55% 55%,100% 10%,87% 100%,12% 100%)}.food.baked-potato:after{content:"";position:absolute;left:12px;top:5px;width:6px;height:5px;border-radius:2px;background:#eac956}

/* Experiment-only preview utility. */
.food-showcase{padding:34px;border:1px solid #e6dfd5;border-radius:24px;background:var(--card);box-shadow:var(--shadow);text-align:center}.food-showcase h1{margin:0 0 8px;font-size:30px}.food-showcase>p:not(.eyebrow){margin:0;color:var(--muted);font-size:14px}.food-showcase-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-top:28px}.food-showcase-item{display:grid;place-items:center;align-content:center;min-height:104px;margin:0;padding:14px 8px 10px;border:1px solid var(--line);border-radius:15px;background:#faf7f0}.food-showcase-item .showcase-plate{position:relative;left:auto;top:auto;transform:none}.food-showcase-item figcaption{margin-top:10px;color:var(--ink);font-size:12px;font-weight:700}

/* Keep the fixed bottom chair clear of the avatar tray. */
.table{margin-bottom:104px}
@media(max-width:800px){.food-showcase-grid{grid-template-columns:repeat(4,minmax(100px,1fr))}}
@media(max-width:620px){.table{margin-bottom:84px}.food.chicken-drumstick{transform:translate(-58%,-50%) scale(.78) rotate(-18deg)}.food.steak{transform:translate(-50%,-50%) scale(.78) rotate(-8deg)}.food.waffles{transform:translate(-50%,-50%) scale(.78) rotate(4deg)}.food.baked-potato{transform:translate(-50%,-50%) scale(.78) rotate(-5deg)}.food.fish{transform:translate(-57%,-50%) scale(.78)}.food-showcase{padding:24px 14px}.food-showcase h1{font-size:25px}.food-showcase-grid{grid-template-columns:repeat(2,minmax(110px,1fr));gap:10px}.food-showcase-item{min-height:92px}.food-showcase-item .showcase-plate{width:46px;height:34px;transform:none}.food-showcase-item .food{transform:translate(-50%,-50%)}}

/* Hidden production-generator inspection, available only with ?dev=1. */

/* Final player-facing status and Food Key polish. */
.stat-label{font-size:12px}.stat strong{font-size:16px}.attempts-stat strong{font-size:14px}.clue-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.clue-panel-head .eyebrow{margin:0}.food-key-button{padding:6px 9px;border:1px solid #9ab58a;border-radius:9px;background:#fffdf9;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.08em;cursor:pointer}.food-key-button:hover{background:#f1f6ed}.food-key-button:focus-visible{outline:3px solid #5b8d4540;outline-offset:2px}.food-key-dialog{width:min(92vw,780px);max-height:min(86vh,760px);overflow-y:auto;padding:30px}.food-key-dialog h2{margin:0 0 7px;font-size:28px}.food-key-dialog>p{margin:0}.food-key-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:14px;margin-top:24px}
@media(max-width:800px){.food-key-grid{grid-template-columns:repeat(4,minmax(90px,1fr))}}
@media(max-width:620px){.food-key-dialog{padding:26px 14px 20px}.food-key-dialog h2{font-size:25px}.food-key-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.food-key-grid .food-showcase-item{min-height:92px}.food-key-grid .showcase-plate{width:46px;height:34px}.food-key-grid .food{transform:translate(-50%,-50%)}}

/* Static solved-board answer key, composed from the existing Lunch Table pieces. */
.solution-dialog{width:min(94vw,520px);max-height:92vh;overflow-y:auto}.solution-dialog h2{margin:0 44px 6px;text-align:center}.solution-dialog #dialogBody>p{margin:0 44px 12px;text-align:center}.solution-board{position:relative;width:100%;height:425px;overflow:hidden}.solution-scene{position:absolute;left:50%;top:0;width:620px;transform:translateX(-50%) scale(.62);transform-origin:top center}.solution-board .table{width:460px}.solution-board .solution-person{cursor:default;pointer-events:none}
@media(max-width:620px){.solution-dialog{width:min(96vw,470px);padding:25px 14px 20px}.solution-dialog h2{margin-inline:36px}.solution-dialog #dialogBody>p{margin-inline:28px}.solution-board{height:414px}.solution-scene{position:relative;left:auto;width:100%;transform:none}.solution-board .table{width:min(58vw,230px)}}


/* Keyboard destinations sit beside person buttons without intercepting pointer play. */
.seat-target,.tray-target{position:absolute;z-index:5;border:0;background:transparent;opacity:0;pointer-events:none}
.seat-target{inset:0;border-radius:inherit}
.tray{position:relative}
.tray-target{inset:0;border-radius:19px}
.seat-target:focus-visible,.tray-target:focus-visible{opacity:1;outline:3px solid #5f934b;outline-offset:3px;box-shadow:0 0 0 6px #fff9}
.person:not(button),
.person:not(button):active {
  cursor: default;
  touch-action: auto;
}


/* Spoiler-free result sharing. */
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.share-result,.solution-dialog .reset{width:100%;min-height:52px;border-radius:14px;font-weight:800;letter-spacing:.05em;cursor:pointer}
.share-result{border:0;background:var(--green);color:white}
.share-result:hover{background:#477138}
.share-result:disabled{opacity:.55;cursor:wait}
.solution-dialog .reset{border:2px solid #d0c5b5;background:white;color:var(--ink)}
.share-status{min-height:20px;margin:7px 0 0!important;text-align:center;font-size:12px;line-height:1.35;color:var(--muted)}
@media(max-width:400px){.result-actions{grid-template-columns:1fr}}
