@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--cream:#fff1d1;--gold:#edbf64;--sans:'DM Sans',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}*{box-sizing:border-box}body{margin:0;background:#101713;color:var(--cream);font-family:var(--sans);min-height:100svh}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #fadc8d;outline-offset:4px}a{color:inherit}.topbar{height:60px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 28px;gap:20px}.wordmark{font:800 23px/1 var(--display);letter-spacing:.04em;text-decoration:none;display:flex;align-items:center;gap:12px}.wordmark span{font:700 12px var(--sans);color:var(--gold);border:1px solid #82704c;padding:4px 6px;letter-spacing:.1em}.topbar p{font-size:12px;letter-spacing:.24em;color:#b6b49f}.sound-control{border:0;background:none;display:flex;gap:9px;align-items:center;font-size:12px;letter-spacing:.08em;font-weight:700}.sound-bars{display:flex;align-items:center;gap:3px;height:19px}.sound-bars i{width:2px;height:5px;background:var(--gold)}.sound-bars i:nth-child(2){height:14px}.sound-bars i:nth-child(3){height:19px}.sound-bars i:nth-child(4){height:10px}.sound-control[aria-pressed=false] .sound-bars{opacity:.4}
.game{position:relative;isolation:isolate;overflow:hidden;width:min(100%,calc((100svh - 100px)*1.5),1440px);aspect-ratio:3/2;margin:auto;background:#171811;box-shadow:0 0 90px #0007;container-type:inline-size}.world,.counter,.vignette,.transition{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.world{background-size:cover;background-position:center;transition:opacity .65s ease,transform 1.1s ease,filter .8s}.exterior{background-image:url('assets/exterior.webp');opacity:1}.interior{background-image:url('assets/interior.webp');opacity:0}.vignette{z-index:5;background:linear-gradient(0deg,#050904c4 0%,transparent 38%),radial-gradient(ellipse at center,transparent 46%,#0006 100%)}.game[data-scene=inside] .interior{opacity:1}.game[data-scene=inside] .exterior{opacity:0}
.fascia{position:absolute;z-index:6;left:13%;top:8.7%;width:77%;height:11.4%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-shadow:0 2px 4px #260704;transition:opacity .3s}.fascia h1{font:900 clamp(30px,6.6cqw,94px)/.85 var(--display);letter-spacing:.14em;margin:0 0 .05em .14em;color:#ffe3a1}.fascia-small{font:600 clamp(8px,.85cqw,13px) var(--display);letter-spacing:.3em;margin-bottom:.4em}.fascia-tag{font:600 clamp(8px,.85cqw,13px) var(--display);letter-spacing:.2em;margin-top:.4em}.outside-poster{position:absolute;z-index:6;top:29%;width:8.9%;height:22%;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#541f1b;transform:rotate(-.8deg)}.poster-left{left:12.1%}.poster-right{right:11%;transform:rotate(.5deg)}.outside-poster>span{font:700 clamp(8px,.8cqw,13px) var(--display);border-bottom:1px solid #794e34;padding-bottom:.5em}.outside-poster strong{font:900 clamp(12px,2.3cqw,34px)/.98 var(--display);margin:.3em 0}.outside-poster small{font:500 clamp(8px,.9cqw,13px) var(--display)}
.project-menu{position:absolute;left:26%;top:7.5%;width:50%;z-index:9;padding:1.1% 2%;color:#f4e3b9;opacity:0;visibility:hidden;transition:opacity .5s}.menu-heading{display:flex;justify-content:space-between;border-bottom:1px solid #ab8d485e;padding-bottom:.65em;font:700 clamp(14px,1.25cqw,20px) var(--display);letter-spacing:.08em}.menu-heading span:last-child{color:var(--gold)}.menu-links{display:flex;justify-content:space-between;gap:9px;margin:.8em 0}.menu-links a{font:700 clamp(14px,1.45cqw,22px) var(--display);letter-spacing:.045em;text-decoration:none;transition:color .2s,transform .2s}.menu-links a:hover:not([aria-disabled=true]){color:#ffdc86;transform:translateY(-2px)}[aria-disabled=true]{opacity:.36;cursor:default}.contract-line{display:flex;justify-content:space-between;gap:8px;align-items:center;border-top:1px dashed #b59a654d;padding-top:.65em;font:12px var(--sans);color:#b9ae91}.contract-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-line button{font:700 13px var(--display);letter-spacing:.08em;border:1px solid #bea2677a;background:#15160f;padding:6px 12px;color:#ffda8c;min-width:78px;white-space:nowrap}.contract-line button:disabled{opacity:.35}
.boss-position{position:absolute;width:31%;height:39%;left:36%;bottom:35%;z-index:2;visibility:hidden;transform-origin:center bottom;transition:transform .6s}.boss-position img{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:drop-shadow(4px 7px 5px #10090088);transform-origin:50% 92%;user-select:none}.boss-position.talking img{animation:none}.boss-position.nod .boss-idle{animation:nod .8s ease-in-out}.counter{object-fit:cover;clip-path:inset(63.3% 0 0 0);z-index:3;visibility:hidden}.kitchen-note{position:absolute;left:10%;top:40%;width:15%;padding:1.2%;background:#e2d3a8;color:#58291c;z-index:4;transform:rotate(-5deg);text-align:center;box-shadow:2px 4px 8px #0005;visibility:hidden}.kitchen-note span{font:600 12px var(--display);letter-spacing:.08em}.kitchen-note strong{display:block;font:800 clamp(15px,1.8cqw,27px)/1 var(--display);margin-top:.3em}.game[data-scene=inside] :is(.boss-position,.counter,.kitchen-note){visibility:visible}.game[data-scene=inside] .project-menu,.game[data-step=finished] .project-menu{opacity:1;visibility:visible}.game[data-scene=inside] :is(.fascia,.outside-poster){visibility:hidden;opacity:0}.takeaway{position:absolute;z-index:7;bottom:31.5%;left:57%;width:23%;max-height:30%;object-fit:contain;filter:drop-shadow(4px 10px 6px #0007);transform:rotate(5deg);animation:bagSlide 1.15s cubic-bezier(.22,.68,.25,1)}.extras-pop{position:absolute;left:62%;top:43%;z-index:11;font:800 clamp(24px,4cqw,54px)/.95 var(--display);color:#ffdc8d;text-shadow:3px 3px #672d14;transform:rotate(7deg);pointer-events:none;opacity:0}.extras-pop.show{animation:extraPop 1.8s ease forwards}
.scene-meta{position:absolute;z-index:10;left:3%;right:3%;top:3%;display:flex;justify-content:space-between;color:#e0d8bd;font:600 11px var(--sans);letter-spacing:.13em;text-shadow:1px 2px 4px #000}.game[data-scene=inside] .scene-meta{top:30%;left:4%;right:4%;font-size:10px;opacity:.65}.dialogue{position:absolute;z-index:15;bottom:3.5%;left:50%;transform:translateX(-50%);width:86%;max-width:1010px;padding:18px 24px 13px;background:#151d17f2;border:1px solid #e4c17864;box-shadow:0 12px 40px #0005}.dialogue:before{content:'';position:absolute;left:24px;top:-2px;height:3px;width:42px;background:var(--gold)}.dialogue-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:18px}#speaker{font:700 12px var(--sans);letter-spacing:.15em;color:var(--gold)}.repeat-line{font:600 10px var(--sans);letter-spacing:.08em;color:#c4c6b2;background:none;border:0;padding:4px}#line{font-size:clamp(16px,1.65cqw,23px);line-height:1.45;margin:9px 0 15px;min-height:1.45em}.choices{display:flex;gap:9px}.choice{flex:1;text-align:left;background:#e8dcb909;border:1px solid #f6e3b12b;padding:12px 13px;min-height:46px;font:500 clamp(14px,1.14cqw,17px)/1.3 var(--sans);display:flex;align-items:center;gap:10px;transition:background .18s,border-color .18s,transform .18s}.choice-number{font:700 12px var(--display);color:#bfa574;border:1px solid #b69a624d;min-width:20px;height:22px;display:grid;place-items:center}.choice:hover{background:#e8c27a1a;border-color:var(--gold);transform:translateY(-2px)}.choice:active{transform:translateY(0)}.key-hint{display:block;text-align:center;font:500 9px var(--sans);letter-spacing:.16em;color:#898f7e;margin-top:11px}
.mirror{position:absolute;z-index:12;top:24%;left:50%;transform:translateX(-50%) rotate(-1.4deg);width:25%;height:44%;background:#242b25;padding:10px 12px 7px;border:6px ridge #ac9c77;box-shadow:0 10px 60px #000a;text-align:center}.mirror-top{display:block;font:600 10px var(--display);letter-spacing:.2em;color:#cdc6ac;margin:0 0 6px}.mirror-glass{height:calc(100% - 46px);overflow:hidden;position:relative;background:linear-gradient(125deg,#a3ada5,#c0c3b0 50%,#a6afa2);border:1px solid #0009}.mirror-glass img{position:absolute;height:96%;width:115%;max-width:none;object-fit:contain;object-position:bottom;left:-7.5%;bottom:0;filter:saturate(.3) brightness(.88)}.mirror-shine{position:absolute;inset:0;background:linear-gradient(125deg,transparent 38%,#ffffff25 39%,#fff1 47%,transparent 48%,transparent 63%,#fff2 64%,transparent 65%);pointer-events:none}.mirror p{font:500 12px var(--sans);margin:7px 0 0;color:#dedac7}.game[data-step=mirror-in] .world,.game[data-step=mirror-out] .world{filter:brightness(.55) blur(2px);transform:scale(1.025)}.game[data-step=mirror-out] .mirror-glass{background:linear-gradient(125deg,#d9c59a,#eadbb7 50%,#afbea6)}.game[data-step=mirror-out] .mirror-glass img{filter:brightness(1.06)}.game[data-step=mirror-out] .mirror{box-shadow:0 0 65px #ebb95d33,0 10px 60px #000a}
.receipt{position:absolute;right:9%;top:29%;width:23%;background:#eee7d1;color:#363325;padding:17px 18px 24px;transform:rotate(5deg);z-index:13;box-shadow:0 7px 25px #0005;font:12px/1.5 ui-monospace,monospace;border-bottom:7px dotted #a59979}.receipt>span{font:800 25px var(--display);display:block;text-align:center;letter-spacing:.08em}.receipt>strong{display:block;text-align:center;font-size:10px;border-bottom:1px dashed #696452;padding-bottom:10px;margin-bottom:10px}.receipt-item{display:flex;justify-content:space-between;gap:6px;margin:3px 0}.receipt-total{margin-top:12px;padding-top:10px;border-top:1px dashed #696452;display:flex;justify-content:space-between;gap:5px;font-size:10px}.receipt small{display:block;text-align:center;font-size:9px;margin-top:14px}.game[data-step=finished] .project-menu{top:28%;left:68%;width:23%;padding:15px;background:#ebe0bb;color:#682723;box-shadow:0 5px 16px #0006;transform:rotate(2deg)}.game[data-step=finished] .menu-links{flex-direction:column;gap:8px}.game[data-step=finished] .menu-heading span:last-child{color:#81251e}.game[data-step=finished] .contract-line{color:#58291c;flex-direction:column;align-items:stretch}.game[data-step=finished] .contract-line button{background:#7c2320;color:#ffe3a6}.game[data-step=finished] .poster-right{visibility:hidden}.game[data-step=finished] .receipt{left:12%;right:auto;top:29%;transform:rotate(-4deg)}.game[data-step=finished] .takeaway{left:39%;width:25%;bottom:32%}.transition{z-index:30;background:#0a0d0a;opacity:0;transition:opacity .32s ease}.game.transitioning .transition{opacity:1}.game.transitioning .choices{pointer-events:none}
footer{max-width:1440px;min-height:40px;padding:12px 28px;display:flex;align-items:center;justify-content:space-between;gap:14px;font:500 9px var(--sans);letter-spacing:.13em;color:#8b9180}footer button{border:0;padding:0;background:none;color:inherit;font:inherit;letter-spacing:inherit}footer button:hover{color:var(--gold)}dialog{width:min(90vw,550px);background:#192119;color:#f7e9c8;border:1px solid #b39356;padding:28px;font-size:16px;line-height:1.6}dialog::backdrop{background:#000b}dialog h2{font:700 30px var(--display)}dialog li{margin:12px 0}#close-credits{float:right;border:0;background:none;font-size:30px}[hidden]{display:none!important}
@keyframes nod{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(3px) rotate(.7deg)}}@keyframes bagSlide{0%{opacity:0;transform:translate(-40%,-18%) scale(.75) rotate(0)}15%{opacity:1}100%{opacity:1;transform:translate(0,0) scale(1) rotate(5deg)}}@keyframes extraPop{0%{opacity:0;transform:translateY(10px) rotate(7deg) scale(.6)}15%,72%{opacity:1;transform:translateY(0) rotate(7deg) scale(1)}100%{opacity:0;transform:translateY(-22px) rotate(7deg) scale(1)}}
@media(max-width:760px){.topbar{height:55px;padding:0 16px}.topbar p{display:none}.wordmark{font-size:22px}.game{width:100%;height:calc(100svh - 89px);min-height:660px;max-height:1000px;aspect-ratio:auto;container-type:normal}.world{background-size:auto 100%;background-position:center}.exterior{background-size:auto 86%;background-position:center top;background-repeat:no-repeat;background-color:#182019}.fascia{top:8.1%;left:4%;width:92%;height:9%}.fascia h1{font-size:clamp(38px,11vw,72px)}.fascia-small{font-size:9px}.fascia-tag{font-size:9px;letter-spacing:.1em}.outside-poster{display:none}.scene-meta{font-size:9px;left:5%;right:5%}.dialogue{width:92%;bottom:3%;padding:16px 16px 11px;min-height:200px}.dialogue:before{left:16px}#line{font-size:17px;line-height:1.45;margin:10px 0 12px}.choices{flex-direction:column;gap:7px}.choice{font-size:14px;padding:10px;min-height:42px}.key-hint{display:none}.project-menu{left:5%;top:4.5%;width:90%;padding:15px 13px;background:#121b13ee;border:1px solid #baa26977}.menu-heading{font-size:17px}.menu-links a{font-size:17px}.contract-line{font-size:11px}.game[data-scene=inside] .scene-meta{top:26%;font-size:9px}.boss-position{left:23%;bottom:39%;width:54%;height:33%}.counter{clip-path:inset(60.5% 0 0)}.kitchen-note{left:4%;top:34%;width:24%;padding:8px}.kitchen-note span{font-size:10px}.kitchen-note strong{font-size:18px}.extras-pop{font-size:36px;left:62%;top:40%}.takeaway{left:56%;bottom:39%;width:37%;max-height:23%}.mirror{top:24%;height:36%;width:48%;padding:8px;border-width:5px}.mirror-top{font-size:9px}.mirror p{font-size:11px}.game[data-step=mirror-out] .mirror{left:33%;width:45%;top:25%;height:34%}.receipt{right:3%;top:30%;width:35%;padding:10px 9px 18px;font-size:9px}.receipt>span{font-size:20px}.receipt>strong{font-size:8px}.receipt-total{flex-direction:column;gap:0}.receipt small{font-size:8px}.game[data-step=finished] .receipt{left:5%;top:25%;width:40%}.game[data-step=finished] .project-menu{left:51%;top:25%;width:44%;padding:12px;transform:rotate(2deg)}.game[data-step=finished] .menu-heading{font-size:14px}.game[data-step=finished] .menu-links{display:grid;grid-template-columns:1fr 1fr;gap:9px 5px}.game[data-step=finished] .menu-links a{font-size:13px}.game[data-step=finished] .takeaway{left:37%;bottom:30%;width:29%;max-height:20%}footer{padding:10px 16px;font-size:8px;min-height:34px}footer>span:last-child{display:none}.game[data-step=mirror-in] .dialogue,.game[data-step=mirror-out] .dialogue{min-height:155px}.game[data-step=finished] .dialogue,.game[data-step=arrival] .dialogue{min-height:170px}}

/* Purposeful cutout actions: a finite carving sequence, a handover, then stillness. */
.boss-position{transition:left .85s cubic-bezier(.4,0,.2,1),transform .7s ease}
.boss-position img{position:absolute;inset:0;opacity:0;pointer-events:none}
.boss-position[data-pose="idle"] .boss-idle,.boss-position[data-pose="carve-up"] .boss-carve-up,.boss-position[data-pose="carve-down"] .boss-carve-down,.boss-position[data-pose="serve"] .boss-serve{opacity:1}
.boss-position.at-doner{left:59%;transform:none}
.boss-position.handing-over{left:41%;transform:translateY(1%)}
.takeaway.wrapping{animation:wrapBag 1.5s ease-in-out 1}
@keyframes wrapBag{0%,100%{transform:rotate(5deg)}25%{transform:translateY(-3px) rotate(3deg)}55%{transform:translateY(0) rotate(6deg)}80%{transform:translateY(-2px) rotate(4deg)}}
@media(max-width:760px){
 .interior{transition:opacity .65s ease,transform 1.1s ease,filter .8s,background-position .85s ease}
 .counter{object-position:center;transition:object-position .85s ease}
 .game.carving .interior{background-position:right center}
 .game.carving .counter{object-position:right center}
 .boss-position.at-doner{left:12%}
 .boss-position.handing-over{left:29%}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Overall volume covers speech and every shop sound. */
.audio-controls{display:flex;align-items:center;gap:10px}
#volume{width:90px;height:28px;margin:0;accent-color:var(--gold);cursor:pointer}
#volume:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#volume-value{font-size:12px;font-variant-numeric:tabular-nums;min-width:34px;color:var(--gold)}
.fascia h1{font-size:clamp(30px,5.2cqw,75px);letter-spacing:.08em;margin-left:.08em;white-space:nowrap}
@media(max-width:760px){.topbar{gap:10px}.audio-controls{gap:7px}.sound-control{padding:0}#volume{width:70px}.fascia h1{font-size:clamp(28px,8vw,58px)}}
@media(max-width:420px){.wordmark{font-size:20px;gap:8px}.wordmark span{font-size:10px}.audio-controls #sound-label{display:none}#volume{width:65px}}
