@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:ital,wght@0,500;0,600;0,700;0,800;0,900;1,500;1,600;1,700&family=Caveat:wght@500;600&display=swap');
:root{--paper:#f8edcc;--ink:#243a2b;--red:#a33d30;--yellow:#eab74f;--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',sans-serif;--hand:'Caveat',cursive}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:16px var(--sans);color:var(--ink);overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}[hidden]{display:none!important}#cafe{height:100svh;min-height:540px;overflow:hidden;position:relative;isolation:isolate}.backdrop{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#eee5c4}.backdrop img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease-out;will-change:transform}header{position:absolute;left:0;top:0;width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 35px;z-index:20;pointer-events:none}header>*{pointer-events:auto}.wordmark{background:none;text-align:left;padding:0}.wordmark>span{font:800 35px/.8 var(--serif);letter-spacing:-1.7px;display:block}.registered{font:12px var(--sans);position:relative;top:-18px;left:3px}.wordmark small{font-size:9px;letter-spacing:3.2px;display:block;margin-top:12px}.header-right{display:flex;align-items:center;gap:15px}.address-label{font-size:9px;letter-spacing:1px;line-height:1.6;text-align:right;margin-right:16px}.circle-button{border:1.5px solid var(--ink);border-radius:50%;background:var(--paper);width:36px;height:36px;display:grid;place-items:center;font-size:15px;box-shadow:2px 2px 0 var(--ink)}.circle-button:hover{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}.intro{position:absolute;left:5.5%;top:18%;z-index:4;pointer-events:none;transition:opacity .3s}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600}.intro h1{font:700 clamp(46px,5.4vw,84px)/.98 var(--serif);letter-spacing:-4px;margin:15px 0 21px}.intro h1 em{font-weight:600;color:var(--red)}.intro p{font-size:14px;line-height:1.7;margin:0}.hand-note{font:25px/1.1 var(--hand);margin-top:25px;transform:rotate(-7deg);color:var(--red);padding-left:15px}.hand-note span{padding-left:25px}.stage{position:absolute;width:1600px;height:1000px;left:50%;top:50%;transform-origin:center;transform:translate(-50%,-50%) scale(var(--stage-scale,.8));pointer-events:none;z-index:3;transition:translate .45s ease-out}.stage>*{position:absolute}.hit{pointer-events:auto;cursor:pointer;border:0;background-color:transparent;padding:0;outline-offset:-35px!important;touch-action:manipulation}.character{left:750px;top:225px;width:555px;height:555px;z-index:3;transition:transform .25s}.cat-sprite{display:block;width:100%;height:100%;background-image:url('assets/cat-sprites-tabby.png');background-size:300% 200%;background-position:0 0;animation:breathe 3.8s ease-in-out infinite;transform-origin:50% 90%}.character:hover{transform:rotate(-1deg)}.prop{background-image:url('assets/props.png');background-size:300% 200%;background-repeat:no-repeat;transform-origin:50% 85%}.table{left:430px;top:560px;width:850px;height:850px;background-position:0 0;z-index:4;pointer-events:none}.laptop{left:505px;top:470px;width:420px;height:420px;background-position:50% 0;z-index:5;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.cup{left:1040px;top:625px;width:180px;height:180px;background-position:100% 0;z-index:7;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .3s}.pastry{left:870px;top:690px;width:195px;height:195px;background-position:0 100%;z-index:8;transition:transform .25s,opacity .2s}.radio{left:250px;top:725px;width:185px;height:185px;background-position:50% 100%;z-index:6;transition:transform .2s}.notebook{left:1200px;top:750px;width:185px;height:185px;background-position:100% 100%;z-index:6;transition:transform .25s}.laptop:hover{transform:translateY(-12px) rotate(-3deg)}.cup:hover{transform:translateY(-13px) rotate(5deg)}.pastry:hover{transform:translateY(-12px) rotate(-9deg)}.radio:hover{transform:rotate(-6deg)}.notebook:hover{transform:translateY(-12px) rotate(5deg)}.object-label{position:absolute;bottom:12%;left:50%;transform:translateX(-50%) rotate(-3deg);white-space:nowrap;background:var(--paper);border:1.5px solid var(--ink);padding:8px 13px;font:23px var(--hand);box-shadow:3px 3px 0 var(--ink);opacity:0;transition:opacity .18s;pointer-events:none;z-index:20}.hit:hover .object-label,.hit:focus-visible .object-label{opacity:1}.cat-label{top:7%;bottom:auto;left:75%}.sipping .cup{transform:translate(-90px,-260px) rotate(-20deg) scale(.6);opacity:0}.feeding .pastry{transform:translate(100px,-310px) rotate(60deg) scale(.5);opacity:0}.feeding .cat-sprite{animation:munch .2s 6 ease-in-out}.booping .cat-sprite{animation:boop .45s ease-in-out}.radio-playing .radio{animation:radioBob 1.6s ease-in-out infinite}.machine-opening .laptop{transform:translateY(-45px) rotate(-5deg) scale(1.09)}#music-notes{left:325px;top:660px;z-index:8;display:none;font:42px var(--serif);color:var(--red)}.radio-playing #music-notes{display:block}#music-notes span{display:inline-block;animation:musicFloat 2.4s infinite ease-out;margin:0 4px}#music-notes span:nth-child(2){animation-delay:.7s}#music-notes span:nth-child(3){animation-delay:1.4s}footer{position:absolute;bottom:22px;left:35px;right:35px;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:20;pointer-events:none}footer>*{pointer-events:auto}.scene-caption{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:1.4px;line-height:1.5}.asterisk{font-size:41px;color:var(--red);line-height:1;animation:slowSpin 30s linear infinite}.action-strip{display:flex;background:var(--paper);border:1.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);transform:rotate(-1deg)}.action-strip button{background:none;padding:12px 17px;border-right:1px solid #243a2b44;font-size:13px}.action-strip button:last-child{border:0}.action-strip button:hover{background:var(--yellow)}kbd{font:9px var(--sans);border:1px solid #243a2b55;padding:1px 4px;margin-left:6px}.action-strip #music-status{font-size:8px;margin-left:5px;color:var(--red)}.journal-shortcut{font:italic 19px var(--serif);background:var(--paper);border:1.5px solid var(--ink);padding:10px 15px;transform:rotate(4deg);box-shadow:3px 3px 0 var(--ink)}.journal-shortcut span{font:11px var(--sans);margin-left:10px}.speech{position:absolute;top:16%;left:57%;width:330px;z-index:15;padding:20px 25px;background:var(--paper);border:2px solid var(--ink);border-radius:48% 45% 40% 8%/15% 15% 15% 10%;box-shadow:4px 5px 0 var(--ink);transform:rotate(3deg);animation:bubble .3s ease-out}.speech>span{font-size:8px;letter-spacing:1.8px;color:var(--red)}.speech p{font:500 25px/1.2 var(--serif);letter-spacing:-.7px;margin:10px 0 0}.speech button{position:absolute;top:7px;right:12px;background:none;font-size:20px}.receipt{position:absolute;left:5%;bottom:140px;z-index:14;background:var(--paper);border:1px solid var(--ink);box-shadow:3px 3px 0 #243a2b55;transform:rotate(-6deg);padding:22px 21px;width:220px;font:11px/1.7 monospace;animation:paper .4s}.receipt>b{font-size:11px;display:block;border-bottom:1px dashed var(--ink);padding-bottom:10px;margin-bottom:10px}.receipt>div{display:flex;justify-content:space-between}.receipt p{border-top:1px dashed var(--ink);padding-top:9px;margin:12px 0 6px}.receipt small{font-size:9px}.receipt button{position:absolute;top:0;right:5px;background:none;font-size:20px}.toast{position:absolute;left:50%;top:95px;transform:translateX(-50%) rotate(-2deg);background:var(--yellow);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);padding:10px 18px;font-size:13px;z-index:40;white-space:nowrap;animation:bubble .3s}.drag-prop{position:absolute;width:120px;height:120px;z-index:50;pointer-events:none;transform:translate(-50%,-50%) rotate(-13deg)}#mouth-target{left:1010px;top:350px;width:135px;height:135px;border:3px dashed var(--red);border-radius:50%;display:grid;place-items:center;font:27px var(--hand);z-index:10;background:#f8edcc44;pointer-events:none}#particles{position:absolute;inset:0;pointer-events:none;z-index:16;overflow:hidden}.crumb{position:absolute;width:6px;height:6px;background:var(--yellow);border:1px solid var(--ink);border-radius:50%;animation:crumb .8s ease-out forwards}.popword{position:absolute;color:var(--red);font:700 30px var(--hand);animation:popword .9s ease-out forwards}dialog{border:2px solid var(--ink);color:var(--ink);max-height:calc(100svh - 34px);max-width:calc(100vw - 30px);overflow:auto;box-shadow:8px 8px 0 #182b2199;animation:paper .3s;background:var(--paper)}dialog::backdrop{background:#243a2b9c;backdrop-filter:blur(4px)}#laptop-dialog{padding:0;width:650px;border-radius:12px;transform:rotate(-1deg);background:#d0d7bb}.machine-bar{display:flex;justify-content:space-between;align-items:center;padding:13px 22px;border-bottom:2px solid var(--ink)}.machine-bar>span{font-size:10px;letter-spacing:1px}.machine-bar button,.journal-top button{font-size:26px;line-height:1;padding:0;background:none}.computer-screen{margin:16px;border:2px solid var(--ink);border-radius:5px;background:var(--paper);padding:24px 27px}.screen-heading h2{font:600 31px/1.1 var(--serif);letter-spacing:-1px;margin:10px 0 20px}.screen-heading h2 i{color:var(--red)}.sticker-tabs{display:flex;gap:23px;align-items:center;padding:7px 10px 22px;border-bottom:1px solid #243a2b55}.sticker{padding:13px 16px;border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform .2s;font:500 14px/1.1 var(--serif)}.sticker:hover{transform:rotate(0) scale(1.05)}.sticker[aria-pressed=true]{outline:2px dashed var(--red);outline-offset:5px}.sticker strong{font-size:24px}.sticker small{display:block;font:8px var(--sans);margin-top:7px;letter-spacing:1px}.sticker-best{background:var(--yellow);transform:rotate(-6deg)}.sticker-30t{background:var(--red);color:var(--paper);transform:rotate(5deg);border-radius:50%;width:102px;height:102px}.sticker-30t strong{font-size:33px}.sticker-miaou{background:var(--ink);color:var(--paper);transform:rotate(-3deg);font-size:24px}.file{padding-top:20px}.file-label{font-size:9px;letter-spacing:1.3px;color:var(--red)}.file h3{font:600 24px/1.15 var(--serif);letter-spacing:-.5px;margin:10px 0 14px}.file p{font-size:15px;line-height:1.7;margin:0}.file a{font-size:12px;text-decoration:underline;text-underline-offset:4px;display:inline-block;margin-top:15px}.file>button{display:block;background:var(--ink);color:var(--paper);padding:11px 14px;margin-top:15px;font-size:13px}.file pre{font:11px/1.7 monospace;white-space:pre-wrap;background:#e5dcae;padding:15px;border:1px dashed var(--ink)}.machine-footer{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;padding:0 24px 15px}#journal{width:520px;padding:25px 30px;transform:rotate(1deg)}.journal-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #243a2b55;padding-bottom:15px}.journal-top>span{font-size:9px;letter-spacing:1px}#journal h2{font:600 37px/1.05 var(--serif);letter-spacing:-1px;margin:25px 0 15px}#journal h2 em{color:var(--red)}.journal-intro{font-size:14px;line-height:1.6}#discoveries{list-style:none;padding:0;margin:20px 0}#discoveries li{display:flex;gap:15px;align-items:center;padding:13px 0;border-top:1px solid #243a2b44;opacity:.55}#discoveries li.found{opacity:1}#discoveries li>span{font:italic 22px var(--serif);color:var(--red)}#discoveries li div{flex:1}#discoveries strong{font-size:14px;font-weight:500;display:block}#discoveries small{font-size:12px;display:block;margin-top:4px}#discoveries b{font:23px var(--hand);color:var(--red)}#journal-complete{font:26px/1.2 var(--hand);color:var(--red)}.journal-links{display:flex;gap:20px;font-size:13px}.journal-links a{text-decoration:underline;text-underline-offset:3px}.contract{border-top:1px solid #243a2b44;padding-top:20px;margin-top:20px;display:flex;flex-wrap:wrap;gap:9px}.contract>span{width:100%;font-size:10px;letter-spacing:1px}.contract code{font-size:11px;overflow-wrap:anywhere;max-width:100%}.contract button{padding:7px 10px;background:var(--ink);color:var(--paper);font-size:12px}.fine-print{font-size:11px;line-height:1.6;color:#6a7563;margin:20px 0 0}.paused *,.paused *:before,.paused *:after{animation-play-state:paused!important}.paused .backdrop img,.paused .stage{transition:none!important}
@keyframes breathe{50%{transform:translateY(-3px) scale(1.006,1.013)}}@keyframes munch{50%{transform:translateY(-5px) rotate(1.7deg) scale(1.025,.99)}}@keyframes boop{30%{transform:translateY(9px) scale(1.04,.96)}65%{transform:translateY(-7px) scale(.99,1.03)}}@keyframes radioBob{50%{transform:rotate(3deg) translateY(-3px)}}@keyframes musicFloat{0%{opacity:0;transform:translateY(20px) rotate(-15deg)}30%{opacity:1}100%{opacity:0;transform:translateY(-65px) rotate(15deg)}}@keyframes slowSpin{to{transform:rotate(360deg)}}@keyframes bubble{from{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes paper{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}@keyframes crumb{to{translate:var(--dx) var(--dy);opacity:0;rotate:180deg}}@keyframes popword{to{translate:0 -65px;opacity:0;rotate:10deg}}
@media(max-width:1100px){.intro h1{font-size:62px}.intro{left:4%;top:19%}.hand-note{font-size:22px}.scene-caption{display:none}footer{left:25px;right:25px}.action-strip{margin-right:auto}.speech{left:auto;right:8%;top:17%;width:290px}.speech p{font-size:23px}.address-label{display:none}}
@media(max-width:760px){header{padding:20px}.wordmark>span{font-size:28px}.wordmark small{font-size:7px;letter-spacing:2.5px}.registered{top:-13px;font-size:10px}.header-right{gap:11px}.circle-button{height:31px;width:31px;font-size:12px}.intro{left:23px;top:15%;max-width:80%;transition:opacity .2s}.intro h1{font-size:51px;letter-spacing:-2px;line-height:1;margin:10px 0 15px}.intro p{font-size:12px}.intro .eyebrow{font-size:8px;letter-spacing:1.5px}.hand-note{display:none}.stage{top:auto;bottom:72px;left:50%;transform-origin:50% 100%;transform:translateX(-50%) scale(var(--stage-scale,.47))}.character{left:580px;top:190px}.table{left:370px;top:530px}.laptop{left:370px;top:470px;width:400px;height:400px}.cup{left:930px;top:605px;width:190px;height:190px}.pastry{left:765px;top:690px;width:210px;height:210px}.radio{left:360px;top:805px;width:180px;height:180px}.notebook{left:1090px;top:790px;width:180px;height:180px}.object-label{font-size:25px;white-space:normal;min-width:170px;text-align:center}.cat-label{top:10%;left:80%}#music-notes{left:410px;top:745px}#mouth-target{left:840px;top:300px}footer{left:15px;right:15px;bottom:18px;gap:10px;align-items:center}.action-strip{flex:1;justify-content:space-around}.action-strip button{padding:12px 8px;font-size:10px;white-space:nowrap}kbd{display:none}.action-strip #music-status{font-size:7px;margin-left:2px}.journal-shortcut{padding:9px 10px;font-size:14px}.journal-shortcut span{display:block;margin:3px 0 0;font-size:9px}.speech{top:14%;left:25px;right:25px;width:auto;max-width:320px;padding:18px 23px}.speech p{font-size:23px}.interacted .intro{opacity:0;pointer-events:none}.receipt{left:20px;bottom:auto;top:38%;width:175px;font-size:10px;padding:20px 15px}.receipt>b{font-size:10px}.receipt small{font-size:8px}.toast{top:81px;font-size:11px;padding:9px 12px;max-width:90%;white-space:normal;text-align:center;width:max-content}#laptop-dialog{transform:none}.computer-screen{padding:20px 17px;margin:10px}.machine-bar{padding:12px 16px}.machine-bar>span{font-size:8px}.screen-heading h2{font-size:26px}.sticker-tabs{gap:13px;padding:5px 4px 20px}.sticker{padding:11px 10px;font-size:12px}.sticker strong{font-size:20px}.sticker-30t{width:81px;height:81px}.sticker-30t strong{font-size:28px}.sticker small{font-size:6px}.sticker-miaou{font-size:18px}.file h3{font-size:23px}.file p{font-size:14px}.machine-footer{font-size:7px;padding:0 18px 12px}#journal{padding:20px 22px;transform:none}#journal h2{font-size:32px}#discoveries strong{font-size:13px}#discoveries small{font-size:11px}.journal-links{font-size:12px;gap:15px}.sipping .cup{transform:translate(-130px,-280px) scale(.6)}}
@media(max-height:650px) and (min-width:761px){header{padding-top:18px}.intro h1{font-size:53px}.intro{top:22%}.hand-note{display:none}.intro p{font-size:13px}footer{bottom:15px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Individual atlas windows keep adjacent props out of each hit area. */
.table{background-size:357.20930% 204.80000%;background-position:4.06872% 3.81679%;aspect-ratio:430/500;height:auto}
.laptop{background-size:276.75676% 252.83951%;background-position:48.92966% 9.69305%;aspect-ratio:555/405;height:auto}
.cup{background-size:349.09091% 292.57143%;background-position:98.54015% 15.57864%;aspect-ratio:440/350;height:auto}
.pastry{background-size:298.25243% 243.80952%;background-position:3.42801% 94.37086%;aspect-ratio:515/420;height:auto}
.radio{background-size:333.91304% 280.54795%;background-position:52.97398% 88.01214%;aspect-ratio:460/365;height:auto}
.notebook{background-size:349.09091% 213.33333%;background-position:98.54015% 96.50735%;aspect-ratio:440/480;height:auto}
.table{left:505px;top:585px;width:715px}.laptop{left:485px;top:515px;width:455px}.cup{left:1060px;top:655px;width:158px}.pastry{left:880px;top:720px;width:196px;touch-action:none}.radio{left:260px;top:750px;width:167px}.notebook{left:1220px;top:755px;width:163px}.drag-prop{left:0;top:0;width:115px;position:absolute}#mouth-target{left:972px;top:345px}
@media(max-width:760px){.table{left:445px;top:570px;width:715px}.laptop{left:350px;top:500px;width:455px}.cup{left:970px;top:665px;width:166px}.pastry{left:780px;top:730px;width:210px}.radio{left:370px;top:820px;width:175px}.notebook{left:1100px;top:810px;width:163px}.drag-prop{left:0;top:0;width:100px}#mouth-target{left:802px;top:310px}}
/* A printed café notice keeps the lettering readable over the busy façade. */
#cafe{overflow:clip}html,body{width:100%;height:100%;overflow:hidden}.wordmark{background:var(--paper);padding:13px 16px 10px;border:1.5px solid var(--ink);transform:rotate(-3deg);box-shadow:3px 3px 0 var(--ink)}.intro{left:3%;top:22%;padding:26px 28px 28px;background:var(--paper);border:1.5px solid var(--ink);box-shadow:5px 5px 0 #243a2b;transform:rotate(-3deg);max-width:360px}.intro h1{font-size:58px;letter-spacing:-2.8px;margin:15px 0 20px}.intro .hand-note{font-size:23px;margin-top:18px}.scene-caption{padding:9px;background:var(--paper);border:1px solid var(--ink)}.speech{top:11%;left:56%;width:330px}.drag-prop{transform-origin:center}
@media(max-width:1100px){.intro{max-width:310px;padding:23px}.intro h1{font-size:49px}.intro p{font-size:12px}.speech{left:auto;right:5%}}
@media(max-width:760px){.wordmark{padding:11px 12px}.intro{top:17%;left:23px;padding:17px 21px 20px;max-width:280px}.intro h1{font-size:43px;margin:9px 0 10px}.intro p{font-size:11px}.intro .hand-note{display:none}.speech{top:17%;left:25px;right:25px;width:auto}.scene-caption{display:none}}
@media(max-height:650px) and (min-width:761px){.intro{top:25%;padding:20px}.intro h1{font-size:46px}.intro p{font-size:12px}.intro .hand-note{display:none}}
/* Café annotations: a wider shared surface and a seat beneath the patron. */
.wordmark>span{font-size:31px;letter-spacing:-1.5px}.wordmark small{letter-spacing:3px}.table{left:430px;top:590px;width:990px;height:545px;aspect-ratio:auto}.laptop{left:540px;top:465px;width:400px;height:400px}.cup{left:1070px;top:620px;width:150px}.pastry{left:880px;top:715px;width:180px}.radio{left:490px;top:630px;width:150px}.notebook{left:1210px;top:665px;width:180px;height:150px}.stool{left:805px;top:685px;width:445px;height:445px;z-index:2;pointer-events:none}#music-notes{left:515px;top:565px}.stool,.laptop,.notebook{background-image:url('assets/cafe-updates.png');background-size:300% 200%;aspect-ratio:1;background-repeat:no-repeat}.stool{background-position:0 0}.laptop{background-position:50% 0}.notebook{background-position:100% 0}.character:hover{transform:none}
@media(max-width:760px){.wordmark>span{font-size:25px;letter-spacing:-1.2px}.wordmark small{letter-spacing:2px}.table{left:330px;top:585px;width:1050px;height:435px}.stool{left:640px;top:640px;width:440px;height:440px}.laptop{left:445px;top:465px;width:350px;height:350px}.cup{left:970px;top:625px;width:155px}.pastry{left:785px;top:695px;width:190px}.radio{left:390px;top:640px;width:150px}.notebook{left:1130px;top:665px;width:170px;height:145px}#music-notes{left:425px;top:575px}}
/* Match the objects' contact edges to the tabletop plane. */
.laptop{left:630px;top:410px;width:340px;height:300px;background-size:379.25926% 284.44444%;background-position:53.05040% 15.06024%;aspect-ratio:405/360}.radio{left:510px;top:590px;width:130px}.cup{left:1080px;top:590px;width:150px}.pastry{left:920px;top:595px;width:180px}.notebook{left:1190px;top:570px;width:180px;height:150px}#music-notes{left:540px;top:520px}
@media(max-width:760px){.laptop{left:520px;top:405px;width:320px;height:284px}.radio{left:390px;top:600px;width:125px}.cup{left:980px;top:580px;width:150px}.pastry{left:810px;top:625px;width:175px}.notebook{left:1110px;top:550px;width:175px;height:145px}#music-notes{left:410px;top:530px}}
/* Clear sightlines, anchored seating, and shorter lore. */
.intro{top:19%;width:315px;max-width:315px;padding:24px}.intro h1{font-size:45px;line-height:1.05;margin:0;letter-spacing:-2px}.intro .hand-note{font-size:23px;transform:none;padding:0;margin:16px 0 0}.stage{translate:none!important}.character{left:900px;top:215px;width:690px;height:690px}.cat-sprite{position:absolute;inset:0;background-image:url('assets/cat-seated.png');background-size:300% 200%;background-position:0 0}.cat-sprite{animation:none!important;transform:translateX(var(--pose-shift,0%))!important;background-repeat:no-repeat}.table{left:435px;top:590px;width:890px;height:460px}.laptop{left:565px;top:330px;width:440px;height:440px;background-image:url('assets/laptop-right.png');background-size:contain;background-position:center;aspect-ratio:1}.cup{left:1090px;top:585px;width:140px}.pastry{left:910px;top:610px;width:155px}.notebook{left:1180px;top:565px;width:150px;height:125px}.radio-ground{position:absolute;left:7%;bottom:140px;width:140px;height:110px;z-index:5}.radio-ground .radio{position:static;display:block;width:100%;height:100%;filter:drop-shadow(0 5px 2px #243a2b55);transform:none!important;animation:none!important}.radio-ground #music-notes{position:absolute;left:20px;top:-45px;font-size:30px}.radio-ground .object-label{bottom:100%;font-size:20px}#mouth-target{left:1190px;top:310px}.speech{left:auto;right:4%;top:13%;width:290px}
#laptop-dialog{width:540px}.computer-screen{padding:20px 24px}.screen-heading h2{font-size:30px;margin:0 0 22px}.sticker-tabs{justify-content:space-around;padding:6px 0 23px;gap:15px}.file{padding-top:17px}.file h3{font-size:25px;margin:0 0 10px}.file p{font-size:16px;line-height:1.5;max-width:36ch}.file a{font-size:14px;margin-top:16px}.file>button{font-size:14px}.machine-bar>span{font-size:12px}.machine-footer{font-size:10px}.file pre{font-size:14px}
@media(max-width:1100px){.intro{width:285px;max-width:285px;padding:22px;top:19%}.intro h1{font-size:40px}.intro .hand-note{font-size:21px}.radio-ground{left:8%;bottom:130px;width:120px;height:95px}}
@media(max-width:760px){.intro{top:18%;left:23px;width:255px;max-width:255px;padding:17px 21px}.intro h1{font-size:36px;letter-spacing:-1.5px}.intro .hand-note{display:block;font-size:20px;margin-top:10px}.character{left:610px;top:200px;width:660px;height:660px}.table{left:290px;top:585px;width:810px;height:400px}.laptop{left:380px;top:340px;width:410px;height:410px}.cup{left:850px;top:580px;width:140px}.pastry{left:700px;top:635px;width:155px}.notebook{left:970px;top:565px;width:140px;height:115px}.radio-ground{left:22px;bottom:130px;width:78px;height:62px}.radio-ground #music-notes{left:10px;top:-28px;font-size:22px}.radio-ground .object-label{font-size:17px;min-width:120px}#mouth-target{left:890px;top:295px;width:120px;height:120px}.speech{top:18%;left:25px;right:25px;width:auto}.computer-screen{padding:20px 17px}.screen-heading h2{font-size:28px;margin-bottom:18px}.file h3{font-size:24px}.file p{font-size:16px}.machine-bar>span{font-size:11px}.machine-footer{font-size:9px}.file a{font-size:14px}.sticker-tabs{gap:12px}}
.scene-caption{display:none}.radio-ground{bottom:82px;width:130px;height:103px}footer{justify-content:center}.journal-shortcut{position:absolute;right:0}.action-strip{margin-left:auto;margin-right:auto}
@media(max-width:1100px){.radio-ground{bottom:100px;width:120px;height:95px}.action-strip{margin-left:0}.journal-shortcut{position:static}footer{justify-content:space-between}}
@media(max-width:760px){.radio-ground{bottom:110px;width:78px;height:62px}.action-strip{margin:0}.journal-shortcut{position:static}}
@media(max-width:760px){.table{width:750px}.cup{left:850px;top:580px;width:125px}.notebook{left:930px;top:560px;width:120px;height:100px}.pastry{width:140px}}

.dex-link{width:46px;border-radius:18px;font-size:11px;font-weight:700;letter-spacing:.4px}@media(max-width:760px){.header-right{gap:8px}.dex-link{width:38px;font-size:10px}}

/* Fixed composition; local reactions never move the scene. */
.backdrop img{transform:none!important;transition:none;will-change:auto}.stage{transition:none}.character,.prop{transition:none}.character:hover,.laptop:hover,.cup:hover,.pastry:hover,.radio:hover,.notebook:hover,.machine-opening .laptop{transform:none}.sipping .cup,.feeding .pastry{transform:none;opacity:0}.radio-playing .radio{animation:none}.hit:hover .object-label{opacity:0}.hit:focus-visible .object-label{opacity:1}
@media(max-width:760px){
 .stage{bottom:82px}.character{left:550px;top:210px;width:640px;height:640px}.table{left:380px;top:585px;width:640px;height:360px}.laptop{left:420px;top:330px;width:400px;height:400px}.cup{left:850px;top:575px;width:125px}.notebook{left:890px;top:550px;width:130px;height:108px}.pastry{left:735px;top:600px;width:145px}.radio-ground{left:9%;bottom:130px;width:90px;height:72px}#mouth-target{left:825px;top:300px;width:115px;height:115px}.intro{top:15%;width:240px;max-width:240px;padding:16px 19px}.intro h1{font-size:34px}.intro .hand-note{font-size:19px}.interacted .intro{opacity:1}.speech{top:15%}.receipt{top:36%}.action-strip button{font-size:11px;padding:13px 8px}
}
@media(max-width:760px) and (max-height:720px){.intro{top:107px;width:210px;max-width:210px;padding:13px 16px}.intro h1{font-size:29px}.intro .hand-note{font-size:16px;margin-top:8px}.radio-ground{bottom:120px}.speech{top:110px}}
@media(max-width:760px){.cup{left:800px}.pastry{left:690px;width:130px}.notebook{left:920px;width:120px;height:100px}}
@media(max-width:360px){footer{left:10px;right:10px;gap:7px}.action-strip button{font-size:10px;padding:12px 5px}.journal-shortcut{padding:8px;font-size:13px}}

/* Brief invitations to interact, independently of music playback. */
#radio.interaction-cue{animation:radioRattle .65s ease-in-out 2!important;transform-origin:50% 95%}
@keyframes radioRattle{0%,100%{rotate:0deg}15%,55%{rotate:-2deg}35%,75%{rotate:2deg}90%{rotate:-.7deg}}
.coffee-steam{position:absolute;left:29%;top:-59%;width:44%;height:80%;pointer-events:none;z-index:2}
.coffee-steam i{position:absolute;bottom:0;width:23%;height:76%;border-left:3px solid #fff8e6;border-radius:50%;opacity:0;filter:blur(1px);transform-origin:50% 100%}
.coffee-steam i:nth-child(1){left:5%}.coffee-steam i:nth-child(2){left:38%;height:95%}.coffee-steam i:nth-child(3){left:72%;height:70%}
#cup.interaction-cue .coffee-steam i{animation:espressoSteam 2.1s ease-out both}
#cup.interaction-cue .coffee-steam i:nth-child(2){animation-delay:.25s}
#cup.interaction-cue .coffee-steam i:nth-child(3){animation-delay:.5s}
@keyframes espressoSteam{0%{opacity:0;transform:translateY(-15%) scale(.7)}25%{opacity:.85}65%{opacity:.55}100%{opacity:0;transform:translateY(-120%) translateX(12px) scale(1.15)}}
@media(prefers-reduced-motion:reduce){#radio.interaction-cue,#cup.interaction-cue .coffee-steam i{animation:none!important}}
