/* One character, one stolen letter. The company name is always readable by assistive technology. */
.stolen-u{display:inline-block;position:relative;transform-origin:50% 85%;transition:opacity .15s,transform .3s}.hero{isolation:isolate}.logo-thief{position:absolute;z-index:3;left:0;top:0;opacity:0;width:80px;height:108px;padding:0;border:0;background:none;cursor:pointer;transition:left .85s cubic-bezier(.3,.05,.2,1),top .65s ease,opacity .25s;transform-origin:50% 100%;touch-action:manipulation}.logo-thief:disabled{cursor:default}.logo-thief img{position:absolute;bottom:0;left:8px;width:auto;height:88px;image-rendering:pixelated;transform:scaleX(-1);transform-origin:50% 100%}.thief-speech{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 9px;background:#101710;border:1px solid #687b50;color:#e8f3dd;font-size:12px;line-height:1.6;opacity:0;transition:opacity .2s}.thief-loot{position:absolute;bottom:0;left:0;font-size:85px;line-height:1.05;color:#d5ff45;opacity:0;transform:rotate(-12deg);pointer-events:none}.thief-controls{display:flex;flex-wrap:wrap;align-items:center;gap:15px;min-height:64px;font-size:11px;color:#adbf9a;margin-top:12px}.thief-controls button{color:#b9cda7;background:none;border:1px solid #526542;padding:9px 12px;min-height:36px;font-size:11px;cursor:pointer}.thief-controls .thief-pause{margin-left:auto}.thief-controls button:hover{color:#ffb4d9;border-color:#ffb4d9}.thief-active .logo-thief{opacity:1}.thief-active .thief-speech{opacity:1}.thief-tug .stolen-u{animation:u-tug .65s ease-in-out 2}.thief-tug .logo-thief img{animation:thief-pull .65s ease-in-out 2}.thief-stolen .stolen-u{opacity:.08}.thief-stolen .thief-loot{opacity:1}.thief-stolen .logo-thief img{left:22px;transform:scaleX(1)}.thief-running .logo-thief img{animation:thief-run .16s steps(2) 6}.thief-hiding .thief-loot{transform:rotate(0);font-size:98px;left:-5px}.thief-hiding .logo-thief img{height:76px;left:12px}.thief-returning .logo-thief{transition-duration:1.1s}.thief-returning .thief-loot{transform:rotate(6deg)}.thief-done .stolen-u{animation:u-pop .6s ease-out}.thief-done .logo-thief img{transform:scaleX(1) rotate(-8deg)}.thief-paused .logo-thief,.thief-paused .logo-thief img,.thief-paused .stolen-u{animation-play-state:paused!important}.thief-paused .logo-thief{transition:none}.logo-thief:focus-visible{outline:2px dashed #ffb4d9;outline-offset:5px}.thief-status{max-width:75%;line-height:1.8}@keyframes u-tug{0%,100%{transform:translateX(0) rotate(0)}60%{transform:translateX(9px) rotate(7deg)}}@keyframes thief-pull{0%,100%{transform:scaleX(-1) rotate(0)}60%{transform:scaleX(-1) rotate(-15deg)}}@keyframes thief-run{from{translate:0 0;rotate:-5deg}to{translate:0 -6px;rotate:5deg}}@keyframes u-pop{0%{transform:scale(.8) rotate(-9deg)}60%{transform:scale(1.08)}100%{transform:none}}@media(max-width:760px){.logo-thief{width:60px;height:82px}.logo-thief img{height:66px;left:0}.thief-loot{font-size:64px;left:-3px}.thief-hiding .thief-loot{font-size:76px}.thief-hiding .logo-thief img{height:58px;left:10px}.thief-speech{font-size:10px;padding:4px 7px}.thief-controls{gap:10px;min-height:76px}.thief-status{max-width:65%;font-size:10px}.thief-controls button{font-size:10px;padding:7px 9px}.thief-controls .thief-replay{margin-left:auto}}@media(prefers-reduced-motion:reduce){.stolen-u,.logo-thief,.logo-thief img,.thief-speech{animation:none!important;transition:none!important}}
/* Wandering, waiting, noticing: the character has a life between clicks. */
.thief-controls{margin-top:112px}.logo-thief{transition:left 1.35s cubic-bezier(.3,.1,.25,1),top 1.25s ease,opacity .25s}.logo-thief img{transform:scaleX(var(--face,-1));animation:thief-breathe 2.8s ease-in-out infinite}.thief-stolen .logo-thief img{transform:scaleX(var(--face,1))}.thief-running .logo-thief img{animation:thief-walk .23s steps(2) infinite}.thief-hopping .logo-thief{animation:thief-leap 1.1s ease-in-out}.thief-hopping .logo-thief img{animation:none}.thief-looking .logo-thief img{animation:thief-peek 2.6s ease-in-out infinite}.thief-sleeping .logo-thief img{animation:thief-doze 2s ease-in-out infinite;transform-origin:50% 100%}.thief-quiet .thief-speech{opacity:0}.thief-tug .logo-thief img{animation:thief-pull .65s ease-in-out 2}.thief-done .logo-thief img{transform:scaleX(var(--face,1))}.thief-paused .logo-thief,.thief-paused .logo-thief img{animation-play-state:paused!important}.thief-hiding .thief-loot{z-index:1}.thief-hiding .logo-thief img{bottom:-5px;left:8px}.thief-sleeping .thief-loot{transform:rotate(14deg)}@keyframes thief-breathe{0%,100%{translate:0 0;scale:1 1}50%{translate:0 -2px;scale:1.025 .98}}@keyframes thief-walk{from{translate:0 0;rotate:-5deg}to{translate:0 -5px;rotate:5deg}}@keyframes thief-leap{0%,100%{translate:0 0}45%{translate:0 -32px}75%{translate:0 -8px}}@keyframes thief-peek{0%,100%{rotate:0;translate:0 0}30%,55%{rotate:-10deg;translate:-4px 0}75%{rotate:5deg}}@keyframes thief-doze{0%,100%{rotate:8deg;scale:1 .88}50%{rotate:11deg;scale:1.035 .85}}@media(max-width:760px){.thief-controls{margin-top:104px}}@media(prefers-reduced-motion:reduce){.logo-thief,.logo-thief img{animation:none!important;transition:none!important}}
/* A small repertoire, sharing the same character and the same page. */
.logo-glyph{display:inline-block;transform-origin:50% 90%}.thief-music .logo-glyph{animation:letter-piano 1.8s ease-in-out 3;animation-delay:calc(var(--order)*.15s)}.thief-playthings{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.thief-prop{position:absolute;color:#ffb4d9;font-size:28px;line-height:1;pointer-events:none}.thief-prop:nth-child(even){color:#a6e8ff}.thief-prop:is(button){padding:5px;width:48px;height:48px;border:1px dashed #a6e8ff66;border-radius:50%;background:#101710;color:#a6e8ff;cursor:pointer;pointer-events:auto;touch-action:manipulation}.thief-prop:is(button):focus-visible{outline:2px solid #ffb4d9;outline-offset:3px}.prop-roll{animation:prop-roll 1.8s ease-out forwards}.prop-return{color:#ffb4d9!important}.prop-float{animation:prop-float 3.3s ease-out both;animation-delay:var(--delay,0s)}.prop-track{font-size:38px;color:#a6e8ff!important;animation:prop-track 5.5s ease-out both;animation-delay:var(--delay,0s)}.thief-dancing .logo-thief img{animation:thief-dance .75s ease-in-out infinite}.thief-paused .thief-prop,.thief-paused .logo-glyph{animation-play-state:paused!important}.thief-paused .thief-prop:is(button){pointer-events:none}@keyframes letter-piano{0%,65%,100%{translate:0 0;rotate:0}25%{translate:0 -13px;rotate:-4deg}45%{translate:0 2px;rotate:2deg}}@keyframes prop-roll{0%{transform:translateX(0) rotate(0)}45%{translate:0 -18px}100%{transform:translateX(var(--roll-x)) rotate(350deg);translate:0 0}}@keyframes prop-float{0%{opacity:0;transform:translate(0,0) scale(.5)}15%{opacity:1}100%{opacity:0;transform:translate(var(--drift,-30px),-90px) scale(1.15)}}@keyframes prop-track{0%{opacity:0}12%,70%{opacity:.8}100%{opacity:0}}@keyframes thief-dance{0%,100%{rotate:-9deg;translate:0 0;scale:1 1}25%{rotate:8deg;translate:0 -7px}50%{rotate:14deg;translate:3px 0;scale:1.08 .9}75%{rotate:-5deg;translate:0 -12px}}@media(max-width:760px){.thief-prop{font-size:24px}.thief-prop:is(button){width:44px;height:44px}.prop-track{font-size:32px}}@media(prefers-reduced-motion:reduce){.thief-prop,.logo-glyph{animation:none!important}.prop-float{opacity:1}.prop-roll{transform:translateX(var(--roll-x))}.prop-track{opacity:.6}}
/* Review refinements: readable action, visible causes, uninterrupted play. */
.thief-controls{margin-top:32px}.glyph-tapped{animation:glyph-touch .8s ease-out!important}.thief-noticed .logo-thief{filter:drop-shadow(0 0 4px #d5ff4525)}.thief-noticed .thief-speech{border-color:#a6e8ff}.thief-announcement{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.thief-prop:is(button){min-width:48px;min-height:48px}.thief-prop:is(button):disabled{cursor:default}@keyframes glyph-touch{0%{translate:0 0;scale:1 1}18%{translate:0 4px;scale:1.04 .92}50%{translate:0 -12px;scale:.98 1.04}100%{translate:0 0;scale:1 1}}@media(max-width:760px){.thief-controls{margin-top:30px}}@media(prefers-reduced-motion:reduce){.glyph-tapped{animation:none!important}}

/* Keep the wordmark's geometry stable while its first letters are borrowed. */
.logo-uchu .logo-glyph:first-child,.logo-chu .logo-glyph:nth-child(2){opacity:0}
.logo-uchu .logo-symbols{visibility:hidden}
.logo-uchu .wordmark:after{content:'✦';position:absolute;font-size:.18em;color:#a6e8ff;right:0;top:18%;line-height:1}
.logo-chu .wordmark:after{content:'♡';color:#ffb4d9}
.logo-thief[data-found-letter]:after{content:attr(data-found-letter);position:absolute;right:-8px;bottom:18px;font-family:inherit;font-size:28px;color:#d5ff45;transform:rotate(-12deg)}

/* Actual travel time follows distance; the speech bubble stays inside the hero. */
.logo-thief{transition:left var(--travel,850ms) linear,top var(--travel,850ms) linear,opacity .25s}
.thief-speech{left:var(--speech-shift,50%);max-width:calc(100vw - 28px);white-space:normal;width:max-content;text-align:center}
.borrowed-letter{font-size:38px;color:#d5ff45!important;transform:rotate(-12deg)}
.thief-paused .logo-thief{transition:none}
@media(prefers-reduced-motion:reduce){.logo-thief{transition:none!important}}

.thief-workbench.resident-at-desk{min-height:0;padding:4px;box-sizing:border-box;box-shadow:none}
.thief-workbench.resident-at-desk p{display:none}
.thief-workbench.resident-at-desk .room-mosaic{width:100%}
.thief-workbench.resident-at-desk .work-progress{margin-top:3px}
