:root{--cream: #fdf5e6;--cream-deep: #f2e2c9;--ink: #3a2a1c;--ink-soft: #7d6853;--line: rgba(122, 96, 66, .22);--ui-yellow: #ffcc00;--ui-yellow-dark: #b48000;--ui-green: #76c442;--ui-red: #e2543c;--ui-grey: #e5e5eb;--slice: 13;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;color:var(--ink);background:radial-gradient(120% 92% at 50% -12%,#fffdf7 0%,var(--cream) 46%,var(--cream-deep) 100%);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}.display{font-family:Kenney Future,PingFang SC,system-ui,sans-serif;letter-spacing:.04em}.app{display:flex;flex-direction:column;height:100%;min-height:100dvh;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px clamp(12px,3vw,26px) 8px;flex-wrap:wrap;position:relative}.topbar:after{content:"";position:absolute;left:clamp(12px,3vw,26px);right:clamp(12px,3vw,26px);bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(122,96,66,.22) 18%,rgba(122,96,66,.22) 82%,transparent)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-star{width:30px;height:30px;flex:none;filter:drop-shadow(0 2px 0 rgba(120,80,20,.25))}.brand-text h1{margin:0;font-size:clamp(17px,2.3vw,21px);letter-spacing:.06em}.brand-sub{margin:1px 0 0;font-size:10px;letter-spacing:.24em;color:var(--ink-soft)}.topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.level-tag{font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px;background:#ffe9a8;border:1px solid #e8c65f;color:#7a5300;white-space:nowrap}.meter{display:flex;align-items:baseline;gap:6px;padding:5px 12px;border-radius:999px;background:#fffc;border:1px solid var(--line)}.meter-label{font-size:11px;color:var(--ink-soft)}.meter-value{font-size:14px;color:var(--ink)}.meter-unit{margin-left:1px;font-family:inherit;font-size:11px;letter-spacing:0;opacity:.75}.meter--alert{background:#fde3dd;border-color:#e9b3a2;color:#a83a21}.meter--alert .meter-value{color:#a83a21}.btn{--sprite: var(--sprite-rect-grey);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;padding:2px 12px;border:calc(var(--slice) * 1px) solid transparent;border-image:var(--sprite) var(--slice) fill / 1 / 0 stretch;border-radius:0;background:#e9e9ef;font-size:13px;font-weight:600;line-height:1.15;cursor:pointer;transition:transform .1s ease,filter .12s ease;-webkit-user-select:none;user-select:none}.btn--sm{--slice: 11;min-height:26px;padding:0 8px;font-size:12px}.btn--yellow{--sprite: var(--sprite-rect-yellow)}.btn--green{--sprite: var(--sprite-rect-green)}.btn--red{--sprite: var(--sprite-rect-red)}.btn:hover:not(:disabled){filter:brightness(1.06) saturate(1.04)}.btn:active:not(:disabled){transform:translateY(2px);filter:brightness(.95)}.btn:disabled{filter:grayscale(.7) brightness(.95);opacity:.66;cursor:not-allowed}.btn--icon{min-width:0;padding:0 8px}.btn-icon{width:14px;height:14px;object-fit:contain;pointer-events:none}.btn-icon--trail{transform:rotate(-90deg)}:where(button,a):focus-visible{outline:3px solid #e08a4a;outline-offset:3px}.stage{position:relative;flex:1;min-height:0;margin:0 clamp(8px,2.2vw,22px);border-radius:22px;overflow:hidden;border:1px solid rgba(122,96,66,.18);box-shadow:inset 0 1px #fff,0 20px 44px -26px #4a342199;background:linear-gradient(180deg,#fffaf0,#f6e7d2 58%,#eedcbe)}.game-canvas-host{position:absolute;inset:0}.game-canvas{display:block;width:100%;height:100%;touch-action:none}.stage:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:radial-gradient(118% 96% at 50% 40%,transparent 52%,rgba(88,58,28,.2) 100%),linear-gradient(180deg,rgba(255,255,255,.35) 0%,transparent 18%)}.stage-tip{position:absolute;left:50%;top:12px;z-index:2;transform:translate(-50%);padding:6px 15px;border-radius:999px;background:#ffffffe6;border:1px solid var(--line);font-size:12px;color:var(--ink-soft);pointer-events:none;white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;animation:tipIn .28s ease}@keyframes tipIn{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.overlay{position:absolute;inset:0;z-index:3;display:grid;place-items:center;padding:18px;background:#34261a57;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .2s ease;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.overlay-card{width:min(430px,100%);padding:20px 22px 18px;text-align:center;border-radius:18px;background:#fffdf8;border:1px solid rgba(122,96,66,.2);box-shadow:0 22px 42px -24px #4a34218c,inset 0 1px #fff;animation:popIn .22s cubic-bezier(.34,1.4,.64,1)}@keyframes popIn{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.badge{display:inline-block;padding:3px 12px;border-radius:999px;font-size:11px;letter-spacing:.08em;font-weight:700;background:#ffe38a;color:#7a5300}.badge--good{background:#d4ebc4;color:#35672a}.badge--warn{background:#fbd7cd;color:#9c3a25}.overlay-card h2{margin:10px 0 6px;font-size:20px}.overlay-card p{margin:0;font-size:13px;line-height:1.65;color:var(--ink-soft)}.overlay-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.menu{position:relative;height:100%;overflow-y:auto;display:flex;justify-content:center;padding:clamp(12px,2.4vw,22px)}.menu-card{width:min(680px,100%);align-self:flex-start;padding:20px clamp(16px,3vw,26px) 18px;border-radius:20px;background:#fffdf8;border:1px solid rgba(122,96,66,.2);box-shadow:0 22px 44px -26px #4a342180,inset 0 1px #fff}.menu-eyebrow{margin:0 0 6px;font-size:11px;letter-spacing:.32em;color:#b48000}.menu-title{margin:0 0 8px;font-size:clamp(19px,3vw,25px);line-height:1.35;letter-spacing:.01em}.menu-copy{margin:0 0 6px;font-size:13.5px;line-height:1.75;color:var(--ink-soft)}.cover-food{display:flex;justify-content:center;align-items:flex-end;gap:2px;height:78px;margin:4px 0 10px}.cover-food-item{width:62px;height:62px;display:grid;place-items:center;filter:drop-shadow(0 6px 8px rgba(140,100,50,.28))}.cover-food-item img{width:100%;height:100%;object-fit:contain}.cover-food-item--0{transform:translateY(6px) rotate(-9deg) scale(.94)}.cover-food-item--1{transform:translateY(-4px) rotate(4deg)}.cover-food-item--2{transform:translateY(-12px) scale(1.1)}.cover-food-item--3{transform:translateY(-3px) rotate(-4deg)}.cover-food-item--4{transform:translateY(7px) rotate(10deg) scale(.92)}.menu-status{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.chip{font-size:11.5px;padding:4px 11px;border-radius:999px;background:#ffffffe6;border:1px solid var(--line);color:var(--ink-soft)}.level-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.level-card{--slice: 14;width:100%;justify-content:flex-start;gap:12px;min-height:52px;padding:4px 14px;text-align:left}.level-card--locked{filter:grayscale(.5)}.level-index{font-size:17px;color:#b48000;min-width:26px}.level-card:disabled .level-index{color:var(--ink-soft)}.level-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.level-name{font-size:14px}.level-meta{font-size:11.5px;font-weight:500;color:var(--ink-soft)}.level-state{font-size:12px;font-weight:700;color:#8a5c1c;white-space:nowrap}.level-card:disabled .level-state{color:var(--ink-soft)}.dock{display:flex;align-items:stretch;justify-content:center;gap:12px;padding:10px clamp(10px,2.6vw,22px) 14px;flex-wrap:wrap}.tray-wrap{flex:1;max-width:640px;min-width:min(100%,320px);padding:10px 12px 12px;border-radius:16px;background:#fffdf8;border:1px solid rgba(122,96,66,.2);box-shadow:0 16px 30px -22px #4a342180,inset 0 1px #fff;transition:border-color .2s ease,box-shadow .2s ease}.tray-wrap.is-warn{border-color:#e5c07a;box-shadow:0 0 0 3px #f0b4291f,0 16px 30px -22px #4a342180}.tray-wrap.is-danger{border-color:#e0a08e;box-shadow:0 0 0 3px #d3452f24,0 16px 30px -22px #4a342180;animation:trayPulse 1.6s ease-in-out infinite}@keyframes trayPulse{0%,to{box-shadow:0 0 0 3px #d3452f1a,0 16px 30px -22px #4a342180}50%{box-shadow:0 0 0 6px #d3452f33,0 16px 30px -22px #4a342180}}.tray-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.tray-label{font-size:12px;font-weight:700;color:var(--ink-soft);white-space:nowrap}.tray-track{display:flex;gap:3px;flex:1;min-width:0}.tray-track i{height:5px;flex:1;border-radius:3px;background:#7a60422e;transition:background .15s ease}.tray-track i.is-on{background:#f0b429}.tray-track i.is-on.is-warn{background:#e8892f}.tray-track i.is-on.is-danger{background:#d3452f}.tray-count{font-size:12px;color:var(--ink-soft);white-space:nowrap}.tray-count.is-warn{color:#b07a1f}.tray-count.is-danger{color:#b23a22}.tray{position:relative;display:grid;gap:5px}.slot{position:relative;aspect-ratio:1;min-width:0;display:grid;place-items:center;border-style:solid;border-width:10px;border-image:var(--sprite-square-grey) 10 fill / 1 / 0 stretch;background:#e2e2e8;opacity:.42;transition:opacity .15s ease}.slot--filled{opacity:1}.slot-img{width:96%;height:96%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(120,80,30,.28));animation:slotIn .22s cubic-bezier(.34,1.5,.64,1)}.slot-text{font-size:11px;font-weight:700;color:var(--ink-soft)}.slot-dot{width:5px;height:5px;border-radius:50%;background:#7a60424d}@keyframes slotIn{0%{opacity:0;transform:scale(.6) translateY(5px)}to{opacity:1;transform:scale(1) translateY(0)}}.burst-layer{position:absolute;inset:0;pointer-events:none}.burst-img{position:absolute;left:50%;top:50%;width:40px;height:40px;object-fit:contain;animation:burstUp .62s ease-out forwards;filter:drop-shadow(0 5px 7px rgba(160,90,40,.4))}.burst-img:nth-child(2){animation-delay:.04s;rotate:-8deg}.burst-img:nth-child(3){animation-delay:.08s;rotate:8deg}@keyframes burstUp{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}30%{opacity:1;transform:translate(-50%,-85%) scale(1.06)}to{opacity:0;transform:translate(-50%,-195%) scale(.86)}}.props{display:flex;gap:8px;align-items:stretch}.prop-btn{--slice: 14;flex-direction:column;gap:1px;min-width:82px;padding:6px 10px}.prop-icon{width:18px;height:18px;object-fit:contain;pointer-events:none}.prop-label{font-size:11.5px;font-weight:700}.prop-left{min-width:16px;padding:0 5px;border-radius:999px;background:#ffffff8c;font-size:10.5px;line-height:1.5;color:#6b5220;opacity:.9}@media(max-width:760px){.topbar{padding:8px 10px 4px;gap:6px}.brand-sub{display:none}.stage{margin:0 8px;border-radius:16px}.dock{padding:6px 8px 8px;gap:6px}.tray-wrap{order:2;min-width:100%;border-width:12px}.props{order:1;width:100%;justify-content:flex-end}.prop-btn{--slice: 12;flex-direction:row;gap:5px;min-width:0;padding:2px 8px}.slot{border-width:8px}.tray{gap:4px}.stage-tip{top:8px;font-size:11px}.menu-card{border-width:14px;padding:14px 12px 16px}.cover-food{height:62px}.cover-food-item{width:50px;height:50px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
