@font-face{font-family:Ark;src:url('assets/fonts/ark-pixel.ttf')}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000;color:#eee}body,button,input,select,textarea,a{font-family:Ark,monospace;font-size:24px}button,a{color:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer;border-radius:0}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid white;outline-offset:-3px}#stage{position:absolute;left:50%;top:50%;width:816px;height:624px;transform:translate(-50%,-50%) scale(var(--scale,1));transform-origin:center;overflow:hidden;background:#080808}#world{position:absolute;inset:0}.window{background:linear-gradient(#151515f7,#030303f7);border:2px solid #080808;box-shadow:inset 0 0 0 1px #454545;text-shadow:2px 2px #000}.pixel-button{border:2px solid transparent;background:none;color:#eee;line-height:30px;padding:3px 10px;text-align:left}.pixel-button:hover,.pixel-button:focus-visible{border-color:#ddd;background:#ffffff1c}.hud{position:absolute;top:0;left:0;width:816px;height:62px;z-index:35;display:grid;grid-template-columns:1fr 126px 166px 44px;align-items:center;padding:5px 12px;font-size:22px;line-height:24px}.hud small{display:block;font-size:16px;color:#aaa}.timer{font-size:32px;text-align:center;border-left:1px solid #555;border-right:1px solid #555;font-variant-numeric:tabular-nums}.anger{padding-left:14px;font-size:19px}.anger-line{width:120px;height:7px;background:#333;margin-top:6px}.anger-line i{height:7px;background:#ddd;display:block}.pause-button{background:none;border:0;font-size:29px;height:44px}.urgent{background:#eee!important;color:#080808!important;text-shadow:none!important;animation:urgent .8s steps(2,end) infinite}.timer-label{font-size:14px!important;display:block}.worktop{position:absolute;left:0;top:62px;width:510px;height:386px;background:repeating-linear-gradient(9deg,#212121 0,#212121 3px,#262626 4px,#171717 6px);overflow:hidden}.board-photo{position:absolute;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.35);opacity:.85}.board{position:absolute;left:65px;top:108px;width:420px;height:239px;background:#85857d;transform:rotate(-3deg);border:10px solid #66665f;box-shadow:6px 14px 0 #0009;background-image:repeating-linear-gradient(92deg,transparent 0,transparent 30px,#0002 31px,#fff2 32px)}.board:after{content:'';position:absolute;inset:4px;border:1px solid #aaa8}.sandwich{position:absolute;left:107px;top:170px;width:340px;height:180px;filter:drop-shadow(0 9px 3px #0007)}.layer{position:absolute;left:0;bottom:0;width:340px;height:180px;object-fit:contain;transform:translateY(calc(var(--i)*-12px));animation:drop .16s ease-out;pointer-events:none}.split-left{clip-path:polygon(0 0,50% 0,50% 100%,0 100%);translate:-10px 0;rotate:-3deg}.split-right{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%);translate:10px 0;rotate:3deg}.package{position:absolute;inset:-40px -10px -12px;border:3px solid #eee8;background:repeating-linear-gradient(130deg,#fff2 0,#fff2 2px,transparent 2px,transparent 70px);z-index:90}.stamp{position:absolute;left:180px;top:93px;transform:rotate(-9deg);z-index:3;letter-spacing:5px;border:3px double #eee;padding:8px;background:#111d;font-size:27px}.phone-prop{position:absolute;left:14px;top:142px;width:70px;height:139px;transform:rotate(-6deg);border:5px solid #777;background:#080808;box-shadow:5px 8px #0009;border-radius:9px;z-index:5;padding:7px 4px;font-size:18px;text-align:center}.phone-prop:before{content:'';display:block;width:19px;height:3px;background:#555;margin:0 auto 16px}.phone-prop.unread{animation:vibrate 1s steps(2,end) infinite;background:#e5e5e0;color:#111}.phone-prop span{display:block;line-height:24px}.recipe-slip{position:absolute;left:17px;top:16px;background:#111e;border:1px solid #777;padding:5px 9px;font-size:19px;color:#ddd}.shelf{position:absolute;right:0;top:62px;width:306px;height:386px;padding:10px}.shelf-title{font-size:18px;color:#aaa;height:27px}.ingredient-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.ingredient{height:61px;position:relative;padding:1px 4px 1px 49px;line-height:20px;font-size:19px;white-space:normal;border:1px solid #454545;background:#111;text-align:left;color:#eee}.ingredient:hover{background:#333;border-color:#ddd}.ingredient img{position:absolute;width:47px;height:47px;left:0;top:6px;object-fit:contain;image-rendering:auto}.shelf-footer{display:flex;gap:5px;margin-top:9px}.shelf-footer button{font-size:19px;padding:2px 5px;white-space:nowrap}.message{position:absolute;left:0;bottom:0;width:816px;height:176px;padding:14px 18px;z-index:10;line-height:34px}.message .face{position:absolute;left:18px;top:15px;width:144px;height:144px;object-fit:contain;image-rendering:auto}.message .words{margin-left:164px;white-space:pre-wrap;font-size:24px;line-height:34px;max-height:140px;overflow:hidden}.speaker{position:absolute;left:0;bottom:176px;font-size:22px;padding:4px 13px;min-width:135px;z-index:12}.popup{position:absolute;z-index:25;padding:12px;max-height:376px;overflow:auto}.popup h2{font-size:23px;font-weight:400;margin:0 0 10px;line-height:28px}.popup .portrait{width:78px;height:78px;object-fit:contain;float:left;margin-right:12px}.popup p{font-size:21px;line-height:28px;margin:4px 0 14px;white-space:pre-wrap}.popup .actions{clear:both;display:flex;flex-direction:column;gap:4px}.popup .actions button{font-size:21px;line-height:27px;min-height:34px;white-space:normal}.popup .dismiss{position:absolute;top:4px;right:4px;font-size:21px;padding:0 7px}.phone-popup{right:16px;top:75px;width:384px}.kanata-popup{left:16px;top:76px;width:390px}.boss-popup{left:118px;top:106px;width:580px;z-index:32}.boss-popup .portrait{width:120px;height:120px}.boss-popup p{font-size:24px;line-height:34px}.mini-popup{left:14px;top:74px;width:320px;max-height:125px;z-index:18}.mini-popup .portrait{width:54px;height:54px}.mini-popup p{font-size:20px;line-height:26px;margin-bottom:5px}.phone-clock{font-size:18px;border-top:1px solid #777;margin-top:8px;padding-top:6px;line-height:24px}.song-status{font-size:16px;color:#aaa;position:absolute;left:19px;bottom:12px;width:465px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.veil{position:absolute;inset:0;background:#000c;z-index:45;display:flex;align-items:center;justify-content:center}.panel{width:580px;max-height:560px;overflow:auto;padding:22px}.panel h1{font-size:33px;font-weight:400;line-height:44px;margin:10px 0 20px}.panel h2{font-size:27px;font-weight:400}.panel p{font-size:22px;line-height:32px;white-space:pre-wrap}.panel .pixel-button{display:block;width:100%;margin:6px 0}.title-panel{background:#050505dc}.title-kicker{font-size:18px;letter-spacing:4px;color:#aaa}.summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:23px;line-height:32px;margin:18px 0}.order-review{max-height:290px;overflow:auto;padding:14px;border:1px solid #555;font-size:22px;line-height:32px}.recipe-item{font-size:20px;padding:6px 0;border-bottom:1px solid #333}.hint-banner{font-size:17px;color:#999;line-height:24px}.error-stack{animation:shake .3s steps(2,end) 2}.noscript{color:white}#toast{position:absolute;bottom:184px;left:10px;max-width:480px;z-index:40;font-size:18px;line-height:24px;padding:7px 10px;pointer-events:none}#toast:empty{display:none}.bottom-instruction{font-size:17px!important;color:#aaa}.audio-warning{font-size:18px;color:#aaa}@keyframes drop{from{opacity:.4;translate:0 -28px}to{opacity:1;translate:0 0}}@keyframes urgent{50%{background:#151515;color:#fff}}@keyframes shake{25%{translate:-8px}75%{translate:8px}}@keyframes vibrate{30%{rotate:3deg}60%{rotate:-3deg}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.board-photo{filter:contrast(1.12);opacity:1}.title-backdrop{position:absolute;inset:0}.title-backdrop img{width:100%;height:100%;object-fit:cover;filter:brightness(.38)}.title-backdrop div{position:absolute;inset:0;background:linear-gradient(90deg,#000b,transparent)}.panel>.portrait{float:right;width:124px;height:124px;object-fit:contain;margin:0 0 10px 12px}.order-chain{font-size:20px!important;line-height:26px!important}.mini-popup small{font-size:16px;color:#aaa;float:right}
.ingredient{height:54px}.ingredient img{height:43px;top:4px}.phone-prop{font-size:16px}.song-status{left:148px;width:345px;bottom:10px}.shelf-footer{margin-top:7px}.shelf-footer button{line-height:27px}.title-panel .hint-banner{line-height:26px}
.mini-popup{left:auto;right:14px;width:320px}.kanata-popup{padding:10px;max-height:372px}.kanata-popup .portrait{width:64px;height:64px;margin-right:10px}.kanata-popup h2{font-size:22px;line-height:26px;margin-bottom:6px}.kanata-popup p{font-size:20px;line-height:25px;margin:0 0 8px;min-height:55px}.kanata-popup .actions button{font-size:20px;line-height:24px;min-height:28px;padding:0 7px}.popup::-webkit-scrollbar{width:6px}.popup::-webkit-scrollbar-track{background:#111}.popup::-webkit-scrollbar-thumb{background:#888}

.song-status{background:#090909e8;border:1px solid #555;padding:3px 7px;color:#eee;text-shadow:1px 1px #000}
@font-face{font-family:FactorySC;src:url('assets/fonts/fusion-pixel-12px-proportional-zh_hans.ttf.woff2') format('woff2');font-display:swap;font-weight:100 900}
@font-face{font-family:FactoryEN;src:url('assets/fonts/fusion-pixel-12px-proportional-latin.ttf.woff2') format('woff2');font-display:swap;font-weight:100 900}
@font-face{font-family:FactoryJA;src:url('assets/fonts/fusion-pixel-12px-proportional-ja.ttf.woff2') format('woff2');font-display:swap;font-weight:100 900}
@font-face{font-family:FactoryKO;src:url('assets/fonts/fusion-pixel-12px-proportional-ko.ttf.woff2') format('woff2');font-display:swap;font-weight:100 900}
:root{--game-font:FactorySC,FactoryKO,FactoryJA,sans-serif}
:root[data-language=en]{--game-font:FactoryEN,FactorySC,FactoryKO,FactoryJA,sans-serif}
:root[data-language=ja]{--game-font:FactoryJA,FactorySC,FactoryKO,sans-serif}
:root[data-language=ko]{--game-font:FactoryKO,FactorySC,FactoryJA,sans-serif}
body,button,input,select,textarea,a{font-family:var(--game-font);font-synthesis:none}
button,a,p,h1,h2,span{overflow-wrap:anywhere}button{touch-action:manipulation}
.language-choice{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0 24px;font-size:22px}
.language-choice select{background:#111;color:#eee;border:1px solid #777;padding:8px 12px;min-width:200px;font-size:22px}
.panel h1{font-size:32px;line-height:1.4;overflow:visible}.panel .pixel-button{line-height:1.4;min-height:40px}
.ingredient{font-size:18px;line-height:1.25;height:54px;padding:3px 4px 3px 46px}
.ingredient-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.shelf-footer{gap:2px;display:grid;grid-template-columns:1.3fr 1fr 1fr}.shelf-footer button{font-size:18px;line-height:22px;white-space:normal;padding:1px 3px;min-height:34px}
.message .words{overflow:auto;max-height:144px;font-size:24px;line-height:32px;padding-bottom:4px}
.hud{grid-template-columns:minmax(0,1fr) 126px 168px 42px}.hud #orderName{font-size:20px;line-height:22px;max-height:54px;overflow:auto}.hud small{line-height:20px}.anger{font-size:18px;line-height:21px}.timer-label{font-size:15px!important;line-height:20px!important}
.popup p,.popup .actions button{line-height:1.35}.kanata-popup{max-height:390px}.kanata-popup p{font-size:20px;line-height:26px;margin-bottom:8px}.kanata-popup .actions button{font-size:19px;line-height:24px;min-height:28px;padding:1px 5px}.kanata-popup .actions{gap:2px}.mini-popup{max-height:150px}
.phone-prop{font-size:15px}.phone-prop span{line-height:22px}.phone-clock{line-height:26px;overflow-wrap:anywhere}
.song-status{display:flex;align-items:center;gap:7px;left:138px;width:357px;bottom:8px;min-height:35px;padding:4px 8px;font-size:16px;text-align:left;cursor:pointer}
.song-status svg{width:25px;height:25px;flex:none}.song-status #songName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.music-bars{height:18px;display:flex;gap:2px;align-items:center;flex:none}.music-bars i{background:#1db954;width:3px;height:4px}.is-playing .music-bars i{animation:equalizer .7s ease-in-out infinite alternate}.is-playing .music-bars i:nth-child(2){animation-delay:-.35s}.is-playing .music-bars i:nth-child(3){animation-delay:-.15s}.is-playing svg{animation:music-pulse 1.2s ease-in-out infinite alternate}.music-popup{right:16px;top:85px;width:360px;z-index:31}.music-popup .pixel-button{display:block;width:100%;font-size:20px}
.lyrics{position:absolute;left:0;top:0;width:816px;height:44px;z-index:42;text-align:center;font-size:24px;line-height:40px;padding:0 12px;overflow:hidden;white-space:nowrap}.lyrics[hidden]{display:none}.lyrics span{display:block;position:absolute;inset:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#lyricFill{color:#1ed760;clip-path:inset(0 100% 0 0)}
.has-lyrics .hud{top:44px}.has-lyrics .worktop,.has-lyrics .shelf{top:106px;height:342px}.has-lyrics .ingredient{height:46px;font-size:17px}.has-lyrics .ingredient img{height:37px}.has-lyrics .shelf-title{height:23px}.has-lyrics .shelf-footer{margin-top:5px}.has-lyrics .phone-popup,.has-lyrics .kanata-popup,.has-lyrics .mini-popup{top:118px;max-height:326px}.has-lyrics .sandwich{top:139px}.has-lyrics .boss-popup{top:145px}
@keyframes equalizer{to{height:18px}}@keyframes music-pulse{to{transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.is-playing .music-bars i,.is-playing svg{animation:none}.is-playing .music-bars i{height:14px}}
.hud #orderName{font-size:18px;line-height:18px;padding:2px 0;max-height:none;overflow:visible}.hud #orderName small{font-size:14px;line-height:16px}.anger{font-size:17px;line-height:19px}.anger-line{margin-top:3px}
html[data-language=ko] .ingredient,html[data-language=ko] .popup p,html[data-language=ko] .words{word-break:keep-all;overflow-wrap:anywhere}
.lyrics span{inset:0 auto auto 50%;width:max-content;max-width:calc(100% - 24px);transform:translateX(-50%)}
.interaction-veil{position:absolute;inset:62px 0 176px;background:#0009;z-index:30;display:flex;align-items:center;justify-content:center}
.required-popup.popup{position:relative;left:auto;right:auto;top:auto;width:744px;max-height:366px;padding:14px 18px;overflow:auto;display:grid;grid-template-columns:64px minmax(0,1fr) auto;column-gap:12px;row-gap:8px}
.required-popup.popup .portrait{grid-column:1;grid-row:1;width:64px;height:64px;margin:0;float:none}
.required-popup.popup h2{grid-column:2;grid-row:1;align-self:center;margin:0;font-size:24px;line-height:30px}
.required-popup .question-clock{grid-column:3;grid-row:1;align-self:center;font-size:19px;line-height:26px;padding:4px 7px;font-variant-numeric:tabular-nums}
.required-popup.popup p.question-text{grid-column:1/-1;clear:both;margin:0;font-size:20px;line-height:26px;min-height:0;max-height:168px;overflow:auto;white-space:pre-wrap}
.required-popup .actions{grid-column:1/-1;display:grid;gap:8px;clear:both}
.required-popup .answer-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.required-popup .actions button{font-size:19px;line-height:25px;min-height:44px;margin:0;padding:5px 8px;border:1px solid #666;background:#181818;white-space:normal}
.required-popup .actions button:hover{background:#333;border-color:#ddd}
.required-popup .emoji-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.emoji{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:32px;line-height:44px;white-space:nowrap;text-shadow:none}
.question-active .shelf{filter:brightness(.55)}
.question-active #toast{display:none}
.has-lyrics .interaction-veil{top:106px}
.has-lyrics .required-popup.popup{top:auto;max-height:328px}
.has-lyrics .required-popup.popup p.question-text{max-height:133px}
.achievement-list{clear:both;margin:16px 0}.achievement-row{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid #444;padding:9px 0;font-size:20px;line-height:26px}.achievement-row small{font-size:16px;white-space:nowrap;align-self:center}.achievement-row.locked{color:#888}.achievement-row.unlocked{color:#f2e9c5}.quiz-scores{display:grid;grid-template-columns:1fr 1fr;font-size:20px;line-height:30px;gap:5px}
html[data-layout=portrait] #stage{width:408px;height:840px}
html[data-layout=portrait] .hud{width:408px;height:84px;grid-template-columns:minmax(0,1fr) 96px 38px;padding:4px 8px 26px}
html[data-layout=portrait] .hud #orderName{font-size:16px;line-height:19px}
html[data-layout=portrait] .timer{font-size:26px}
html[data-layout=portrait] .anger{position:absolute;left:8px;right:8px;bottom:4px;display:flex;align-items:center;gap:8px;padding:0;font-size:15px}
html[data-layout=portrait] .anger-line{flex:1;margin:0}
html[data-layout=portrait] .pause-button{grid-column:3;grid-row:1}
html[data-layout=portrait] .worktop{top:84px;width:408px;height:300px}
html[data-layout=portrait] .sandwich{left:83px;top:90px;width:300px;height:170px}
html[data-layout=portrait] .layer{width:300px;height:170px}
html[data-layout=portrait] .phone-prop{top:88px;height:120px}
html[data-layout=portrait] .song-status{left:96px;width:300px;bottom:6px}
html[data-layout=portrait] .shelf{top:384px;width:408px;height:280px;padding:8px}
html[data-layout=portrait] .ingredient-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
html[data-layout=portrait] .ingredient{height:92px;padding:46px 3px 2px;text-align:center;font-size:16px;line-height:19px}
html[data-layout=portrait] .ingredient img{width:42px;height:42px;left:calc(50% - 21px);top:2px}
html[data-layout=portrait] .shelf-title{height:24px}
html[data-layout=portrait] .shelf-footer{margin-top:6px}
html[data-layout=portrait] .message{width:408px;padding:12px}
html[data-layout=portrait] .message .face{width:80px;height:100px;left:8px;top:10px}
html[data-layout=portrait] .message .words{margin-left:85px;font-size:20px;line-height:28px;max-height:148px}
html[data-layout=portrait] .speaker{font-size:18px;padding:3px 10px;min-width:90px}
html[data-layout=portrait] .interaction-veil{top:84px}
html[data-layout=portrait] .required-popup.popup{width:390px;max-height:564px;padding:12px;grid-template-columns:48px minmax(0,1fr);column-gap:8px;row-gap:10px}
html[data-layout=portrait] .required-popup.popup .portrait{width:48px;height:48px}
html[data-layout=portrait] .required-popup.popup h2{font-size:22px;line-height:28px}
html[data-layout=portrait] .required-popup .question-clock{grid-column:1/-1;grid-row:2;font-size:18px;line-height:22px;text-align:right;padding:0}
html[data-layout=portrait] .required-popup.popup p.question-text{font-size:19px;line-height:25px;max-height:250px}
html[data-layout=portrait] .required-popup .answer-grid{grid-template-columns:1fr;gap:6px}
html[data-layout=portrait] .required-popup .actions button{font-size:19px;line-height:24px;min-height:42px}
html[data-layout=portrait] .required-popup .emoji-grid{grid-template-columns:1fr 1fr}
html[data-layout=portrait] .panel{width:390px;max-height:810px;padding:16px}
html[data-layout=portrait] .panel h1{font-size:27px;line-height:38px}
html[data-layout=portrait] .panel .portrait{width:80px;height:80px}
html[data-layout=portrait] .language-choice select{min-width:165px;font-size:20px}
html[data-layout=portrait] .title-kicker{font-size:16px;letter-spacing:2px}
html[data-layout=portrait] .summary{font-size:19px;line-height:26px}
html[data-layout=portrait] .achievement-row{font-size:18px;line-height:24px}
html[data-layout=portrait] .popup:not(.required-popup){left:9px;right:auto;top:94px;width:390px;max-height:560px}
html[data-layout=portrait] .lyrics{width:408px;font-size:19px}
html[data-layout=portrait] .has-lyrics .hud{top:44px}
html[data-layout=portrait] .has-lyrics .worktop{top:128px;height:256px}
html[data-layout=portrait] .has-lyrics .sandwich{top:62px}
html[data-layout=portrait] .has-lyrics .shelf{top:384px;height:280px}
html[data-layout=portrait] .has-lyrics .ingredient{height:92px;font-size:16px}
html[data-layout=portrait] .has-lyrics .interaction-veil{top:128px}
html[data-layout=portrait] .has-lyrics .required-popup.popup{top:auto;max-height:520px}

.required-popup .answer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.answer-grid .pixel-button{white-space:normal;overflow-wrap:anywhere}html[data-layout="portrait"] .required-popup .answer-grid{grid-template-columns:1fr}
.fx-notice{position:absolute;left:50%;top:37%;translate:-50% -50%;z-index:36;padding:12px 28px;font-size:32px;line-height:1.4;pointer-events:none;white-space:nowrap;border:2px solid #d7cfaf;letter-spacing:3px}.order-enter{animation:notice-in 1.1s both}.complete-enter{animation:complete-in 1.1s both}.popup-enter{animation:popup-in .24s ease-out}.popup-shake,.scene-shake{animation:feedback-shake .35s ease-out}.countdown-hit{animation:countdown-hit .3s ease-out}.order-flash{animation:order-flash .8s}.layer-jolt{animation:layer-bounce .22s}.cut-jolt{animation:feedback-shake .24s}.pack-jolt{animation:pack-press .3s}.stamp-hit .stamp{animation:stamp-land .35s}
@keyframes notice-in{0%{opacity:0;transform:translateY(-18px)}18%,75%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(10px)}}
@keyframes complete-in{0%{opacity:0;transform:scale(1.3) rotate(-3deg)}20%,75%{opacity:1;transform:scale(1) rotate(-3deg)}100%{opacity:0;transform:scale(.95) rotate(-3deg)}}
@keyframes popup-in{0%{opacity:0;translate:0 12px}65%{translate:0 -3px}100%{opacity:1;translate:0 0}}
@keyframes feedback-shake{0%,100%{translate:0 0}20%{translate:-5px 1px}40%{translate:5px -1px}60%{translate:-3px 0}80%{translate:2px 0}}
@keyframes countdown-hit{0%{scale:1.13}100%{scale:1}}
@keyframes order-flash{0%,50%{color:#fff3b0}100%{color:inherit}}
@keyframes layer-bounce{0%{translate:0 -5px}65%{translate:0 2px}100%{translate:0 0}}
@keyframes pack-press{50%{scale:1 .92}100%{scale:1}}
@keyframes stamp-land{0%{opacity:0;scale:1.5}65%{opacity:1;scale:.95}100%{scale:1}}
@media(prefers-reduced-motion:reduce){.fx-notice,.popup-enter,.popup-shake,.scene-shake,.countdown-hit,.order-flash,.layer-jolt,.cut-jolt,.pack-jolt,.stamp-hit .stamp{animation:none!important}.fx-notice{opacity:1}}
/* Story notices leave every preparation control available. */
.interaction-veil{inset:62px auto auto 0;width:510px;height:386px;background:none;align-items:flex-start;padding-top:10px;pointer-events:none;z-index:30}.interaction-veil .required-popup{pointer-events:auto;width:490px;max-height:365px;grid-template-columns:40px minmax(0,1fr) auto;padding:10px;gap:6px}.required-popup.popup .portrait{width:40px;height:40px}.required-popup.popup h2{font-size:21px}.required-popup .question-clock{font-size:17px}.required-popup.popup p.question-text{font-size:18px;line-height:23px;max-height:130px}.required-popup .actions button{font-size:18px;line-height:22px;min-height:38px}.question-active .shelf{filter:none}.question-active #toast{display:block}.has-lyrics .interaction-veil{top:106px;height:342px}.has-lyrics .required-popup.popup{max-height:320px}
html[data-layout=portrait] .interaction-veil{inset:84px auto auto 0;width:408px;height:300px;padding-top:4px}html[data-layout=portrait] .required-popup.popup{width:400px;max-height:292px;grid-template-columns:32px minmax(0,1fr) auto;padding:7px;gap:4px}html[data-layout=portrait] .required-popup.popup .portrait{width:32px;height:32px}html[data-layout=portrait] .required-popup.popup h2{font-size:19px;line-height:22px}html[data-layout=portrait] .required-popup .question-clock{grid-column:3;grid-row:1;font-size:14px;line-height:18px}html[data-layout=portrait] .required-popup.popup p.question-text{font-size:17px;line-height:21px;max-height:128px}html[data-layout=portrait] .required-popup .answer-grid{grid-template-columns:1fr 1fr;gap:4px}html[data-layout=portrait] .required-popup .actions button{font-size:16px;line-height:20px;min-height:36px;padding:4px}html[data-layout=portrait] .has-lyrics .interaction-veil{top:128px;height:256px}html[data-layout=portrait] .has-lyrics .required-popup.popup{max-height:248px}html[data-layout=portrait] .has-lyrics .required-popup.popup p.question-text{max-height:80px}.lyrics{font-size:18px;line-height:20px}.lyrics span{white-space:normal;text-align:center}html[data-layout=portrait] .lyrics{font-size:14px;line-height:20px}
.interaction-veil.recipe-preview,.has-lyrics .interaction-veil.recipe-preview,html[data-layout=portrait] .interaction-veil.recipe-preview{inset:0;width:100%;height:100%;padding:0;align-items:center;background:#000c;pointer-events:auto;z-index:45}.recipe-preview .panel{position:relative;left:auto;top:auto;transform:none;width:680px;max-height:590px;padding:16px 24px}.recipe-preview .order-review{max-height:390px;margin:8px 0}.recipe-step{font-size:22px;line-height:28px}.recipe-preview p{margin:12px 0 4px}.sandwich.finished-photo{left:20px;top:74px;width:470px;height:260px;filter:drop-shadow(0 5px 5px #0006)}.finished-sandwich{width:100%;height:100%;object-fit:contain;animation:photo-reveal .35s ease-out}html[data-layout=portrait] .recipe-preview .panel{width:390px;max-height:800px;padding:16px}html[data-layout=portrait] .recipe-preview .order-review{max-height:540px}html[data-layout=portrait] .sandwich.finished-photo{left:24px;top:30px;width:360px;height:220px}@keyframes photo-reveal{from{opacity:0;scale:.93}to{opacity:1;scale:1}}
#popups{position:absolute;inset:0;pointer-events:none;z-index:40}#popups .popup,#popups .panel{pointer-events:auto}.interaction-veil.recipe-preview,.has-lyrics .interaction-veil.recipe-preview{width:816px;height:624px}html[data-layout=portrait] .interaction-veil.recipe-preview{width:408px;height:840px}
/* Patrol and lyrics have separate reserved rows. */
.patrol{position:absolute;left:0;top:62px;width:816px;height:34px;z-index:36;padding:0 28px;pointer-events:none}.patrol-track{position:relative;height:3px;background:#aaa;margin-top:23px}.patrol-danger{position:absolute;left:75%;right:0;height:5px;top:-1px;background:#bf4545}.patrol-track #patrolHead{position:absolute;bottom:-6px;translate:-50% 0;width:32px;height:32px}.patrol-avatar{width:32px;height:32px;object-fit:contain;filter:drop-shadow(0 1px 2px #000)}.patrol-track.danger .patrol-avatar{filter:drop-shadow(0 0 4px #e44)}
.worktop,.shelf{top:96px;height:352px}.ingredient{height:48px}.ingredient img{height:39px}.shelf-title{height:23px}.shelf-footer{margin-top:5px}.interaction-veil{top:96px;height:352px}.interaction-veil .required-popup{max-height:342px;min-width:0;overflow-x:hidden}.required-popup.popup{grid-template-columns:40px minmax(0,1fr)!important}.required-popup.popup h2{font-size:19px;line-height:23px;overflow-wrap:anywhere;min-width:0}.required-popup .question-clock{grid-column:2!important;grid-row:2!important;justify-self:end;font-size:16px;line-height:19px;padding:0}.required-popup .emoji-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.required-popup .actions button{min-width:0}.required-popup .song-choice{display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:44px}.emoji{font-size:26px;line-height:34px;white-space:normal;overflow-wrap:anywhere;max-width:100%}
.has-lyrics .patrol{top:106px}.has-lyrics .worktop,.has-lyrics .shelf{top:140px;height:308px}.has-lyrics .ingredient{height:42px;font-size:16px;line-height:18px}.has-lyrics .ingredient img{height:34px}.has-lyrics .interaction-veil{top:140px;height:308px}.has-lyrics .required-popup.popup{max-height:300px}.has-lyrics .required-popup.popup p.question-text{max-height:86px}.lyrics{height:44px;padding:2px 12px;font-size:18px;line-height:20px}.lyrics span{inset:2px 12px auto;transform:none;width:auto;max-width:none;height:40px;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
html[data-layout=portrait] .patrol{top:84px;width:408px}html[data-layout=portrait] .worktop{top:118px;height:266px}html[data-layout=portrait] .interaction-veil{top:118px;height:266px}html[data-layout=portrait] .required-popup.popup{max-height:258px}html[data-layout=portrait] .required-popup.popup h2{font-size:17px;line-height:21px}html[data-layout=portrait] .required-popup.popup p.question-text{max-height:88px}html[data-layout=portrait] .required-popup .question-clock{font-size:14px;line-height:16px}html[data-layout=portrait] .has-lyrics .patrol{top:128px}html[data-layout=portrait] .has-lyrics .worktop{top:162px;height:222px}html[data-layout=portrait] .has-lyrics .interaction-veil{top:162px;height:222px}html[data-layout=portrait] .has-lyrics .required-popup.popup{max-height:214px}html[data-layout=portrait] .has-lyrics .required-popup.popup p.question-text{max-height:50px}html[data-layout=portrait] .has-lyrics .shelf{top:384px;height:280px}html[data-layout=portrait] .has-lyrics .ingredient{height:92px;font-size:16px}html[data-layout=portrait] .has-lyrics .ingredient img{height:42px}html[data-layout=portrait] .emoji{font-size:23px;line-height:28px}html[data-layout=portrait] .required-popup .song-choice{min-height:34px}html[data-layout=portrait] .lyrics{font-size:14px;line-height:20px}
.song-status{cursor:default;pointer-events:none}
.message .words{font-size:20px;line-height:28px;overflow:auto}html[data-layout=portrait] .message .words{font-size:16px;line-height:22px;overflow:auto}

/* Character achievement cards shared by the ending and collection. */
.achievement-row{display:grid;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:14px;padding:14px 0}
.achievement-avatar{width:64px;height:64px;object-fit:contain;align-self:start}
.achievement-copy{min-width:0}.achievement-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.achievement-heading>span{overflow-wrap:anywhere}
.achievement-copy p{margin:5px 0 0;font-size:18px;line-height:1.45;color:#d3ccbd;overflow-wrap:anywhere}
.achievement-row.locked .achievement-avatar{filter:grayscale(1);opacity:.55}.achievement-row.locked p{color:#999}
html[data-layout=portrait] .achievement-row{grid-template-columns:48px minmax(0,1fr);gap:10px}
html[data-layout=portrait] .achievement-avatar{width:48px;height:48px}
html[data-layout=portrait] .achievement-copy p{font-size:16px;line-height:1.4}
/* Keep the speaker label inside the dialogue area, clear of preparation buttons. */
html[data-layout=portrait] .speaker{top:670px;bottom:auto;left:97px;max-width:299px;min-width:0;padding:2px 8px;font-size:16px;line-height:22px;pointer-events:none}
html[data-layout=portrait] .message .words{margin-top:28px;max-height:120px}

.achievement-rate{margin-top:7px;font-size:16px;line-height:1.4;color:#b9c8b4;overflow-wrap:anywhere}html[data-layout=portrait] .achievement-rate{font-size:14px}

.order-price{font-size:.75em;color:#dfd3a7;white-space:nowrap}.income-summary{clear:both;border-block:1px solid #555;padding:12px 0;margin:18px 0}.income-summary h2{margin:0 0 8px;color:#f1e4b7}.income-summary p{margin:5px 0;font-size:18px;line-height:1.5}#orderClock{font-variant-numeric:tabular-nums}html[data-layout=portrait] .income-summary p{font-size:16px}
